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,117 @@
1
+ import { ExitCode } from "../utils/errors.js";
2
+ //#region src/cli/launch-client.ts
3
+ function clientBinary(app, clientId) {
4
+ if (!app.clients.has(clientId)) return clientId;
5
+ const client = app.clients.get(clientId);
6
+ if (client.binaryEnvVar) {
7
+ const fromEnv = process.env[client.binaryEnvVar];
8
+ if (fromEnv && fromEnv.length > 0) return fromEnv;
9
+ }
10
+ return client.binaryName ?? clientId;
11
+ }
12
+ function publicTransport(transport) {
13
+ const { managedProxy, ...rest } = transport;
14
+ return {
15
+ ...rest,
16
+ ...managedProxy ? { managedProxy: {
17
+ provider: managedProxy.provider,
18
+ ...managedProxy.account ? { account: managedProxy.account } : {},
19
+ port: managedProxy.port
20
+ } } : {}
21
+ };
22
+ }
23
+ /**
24
+ * Prepare ephemeral runtime and spawn the client binary.
25
+ * Returns the process exit code (does not call process.exit).
26
+ */
27
+ async function launchClient(app, client, opts = {}) {
28
+ const result = await app.bindingService.runPrepare(client, {
29
+ with: opts.with,
30
+ model: opts.model,
31
+ dryRun: Boolean(opts.dryRun || opts.json),
32
+ verbose: opts.verbose,
33
+ childArgs: opts.childArgs
34
+ });
35
+ if (opts.json || opts.dryRun) {
36
+ if (opts.json) console.log(JSON.stringify({
37
+ client,
38
+ source: result.plan.resolvedSource.display,
39
+ transport: publicTransport(result.plan.transport),
40
+ dryRun: result.dryRun,
41
+ steps: result.plan.steps.map((s) => s.kind),
42
+ proxyEndpoint: result.proxyEndpoint
43
+ }));
44
+ else {
45
+ console.log("Dry run — ephemeral plan:");
46
+ for (const step of result.plan.steps) console.log(` · ${step.kind}${step.detail ? ` — ${step.detail}` : ""}`);
47
+ }
48
+ return 0;
49
+ }
50
+ const bin = clientBinary(app, client);
51
+ const childArgs = [...result.isolated?.args ?? [], ...opts.childArgs ?? []];
52
+ const { spawn } = await import("node:child_process");
53
+ const env = {
54
+ ...result.isolated ? Object.fromEntries(Object.entries(process.env).filter(([key]) => !/(?:API[_-]?KEY|ACCESS[_-]?TOKEN|REFRESH[_-]?TOKEN|SECRET|PASSWORD|CREDENTIAL|AWS_|GOOGLE_|AZURE_)/i.test(key))) : process.env,
55
+ ...result.isolated?.environment
56
+ };
57
+ if (!result.isolated && result.proxyEndpoint) {
58
+ if (result.plan.transport.protocol === "anthropic") {
59
+ env.ANTHROPIC_BASE_URL = result.proxyEndpoint;
60
+ env.ANTHROPIC_AUTH_TOKEN = env.ANTHROPIC_AUTH_TOKEN ?? "anypick";
61
+ }
62
+ }
63
+ const cleanup = async () => {
64
+ if (result.cleanup) {
65
+ try {
66
+ await result.cleanup();
67
+ } catch {}
68
+ return;
69
+ }
70
+ if (result.isolated) try {
71
+ await result.isolated.cleanup();
72
+ } catch {}
73
+ };
74
+ let child;
75
+ try {
76
+ child = spawn(bin, childArgs, {
77
+ stdio: "inherit",
78
+ env,
79
+ shell: false
80
+ });
81
+ } catch {
82
+ await cleanup();
83
+ return ExitCode.MISSING_DEPENDENCY;
84
+ }
85
+ let childExited = false;
86
+ let forwardedSignals = 0;
87
+ const forward = (sig) => {
88
+ if (childExited) return;
89
+ forwardedSignals += 1;
90
+ child.kill(forwardedSignals > 1 ? "SIGKILL" : sig);
91
+ };
92
+ const onSigInt = () => forward("SIGINT");
93
+ const onSigTerm = () => forward("SIGTERM");
94
+ process.on("SIGINT", onSigInt);
95
+ process.on("SIGTERM", onSigTerm);
96
+ try {
97
+ return await new Promise((resolve) => {
98
+ child.once("exit", (c, signal) => {
99
+ childExited = true;
100
+ if (signal) resolve(128 + (signal === "SIGINT" ? 2 : 15));
101
+ else resolve(c ?? 1);
102
+ });
103
+ child.once("error", () => {
104
+ childExited = true;
105
+ resolve(ExitCode.MISSING_DEPENDENCY);
106
+ });
107
+ });
108
+ } finally {
109
+ process.off("SIGINT", onSigInt);
110
+ process.off("SIGTERM", onSigTerm);
111
+ await cleanup();
112
+ }
113
+ }
114
+ //#endregion
115
+ export { launchClient };
116
+
117
+ //# sourceMappingURL=launch-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch-client.js","names":[],"sources":["../../src/cli/launch-client.ts"],"sourcesContent":["/**\n * Shared client launch path used by `anypick run` and the root launcher.\n */\n\nimport type { AnyPickApp } from '../core/app';\nimport type { ResolvedTransport } from '../types';\nimport { ExitCode } from '../utils/errors';\n\nexport interface LaunchClientOpts {\n with?: string;\n model?: string;\n dryRun?: boolean;\n verbose?: boolean;\n json?: boolean;\n childArgs?: string[];\n}\n\nfunction clientBinary(app: AnyPickApp, clientId: string): string {\n if (!app.clients.has(clientId)) {\n return clientId;\n }\n const client = app.clients.get(clientId);\n if (client.binaryEnvVar) {\n const fromEnv = process.env[client.binaryEnvVar];\n if (fromEnv && fromEnv.length > 0) {\n return fromEnv;\n }\n }\n return client.binaryName ?? clientId;\n}\n\nfunction publicTransport(transport: ResolvedTransport): Record<string, unknown> {\n const { managedProxy, ...rest } = transport;\n return {\n ...rest,\n ...(managedProxy\n ? {\n managedProxy: {\n provider: managedProxy.provider,\n ...(managedProxy.account ? { account: managedProxy.account } : {}),\n port: managedProxy.port,\n },\n }\n : {}),\n };\n}\n\n/**\n * Prepare ephemeral runtime and spawn the client binary.\n * Returns the process exit code (does not call process.exit).\n */\nexport async function launchClient(\n app: AnyPickApp,\n client: string,\n opts: LaunchClientOpts = {},\n): Promise<number> {\n const result = await app.bindingService.runPrepare(client, {\n with: opts.with,\n model: opts.model,\n // JSON is a machine-readable plan contract. Never perform activation,\n // spawn a proxy, or create a secret-bearing temporary home merely because\n // a caller asked for serialized output.\n dryRun: Boolean(opts.dryRun || opts.json),\n verbose: opts.verbose,\n childArgs: opts.childArgs,\n });\n\n if (opts.json || opts.dryRun) {\n if (opts.json) {\n console.log(\n JSON.stringify({\n client,\n source: result.plan.resolvedSource.display,\n transport: publicTransport(result.plan.transport),\n dryRun: result.dryRun,\n steps: result.plan.steps.map((s) => s.kind),\n proxyEndpoint: result.proxyEndpoint,\n }),\n );\n } else {\n console.log('Dry run — ephemeral plan:');\n for (const step of result.plan.steps) {\n console.log(` · ${step.kind}${step.detail ? ` — ${step.detail}` : ''}`);\n }\n }\n return 0;\n }\n\n const bin = clientBinary(app, client);\n const childArgs = [...(result.isolated?.args ?? []), ...(opts.childArgs ?? [])];\n const { spawn } = await import('node:child_process');\n const inherited = result.isolated\n ? Object.fromEntries(\n Object.entries(process.env).filter(\n ([key]) =>\n !/(?:API[_-]?KEY|ACCESS[_-]?TOKEN|REFRESH[_-]?TOKEN|SECRET|PASSWORD|CREDENTIAL|AWS_|GOOGLE_|AZURE_)/i.test(\n key,\n ),\n ),\n )\n : process.env;\n const env: NodeJS.ProcessEnv = {\n ...inherited,\n ...result.isolated?.environment,\n };\n // When the ephemeral plan did not materialize an isolated home, still point\n // Anthropic-protocol clients at the managed proxy endpoint via env.\n if (!result.isolated && result.proxyEndpoint) {\n const protocol = result.plan.transport.protocol;\n if (protocol === 'anthropic') {\n env.ANTHROPIC_BASE_URL = result.proxyEndpoint;\n env.ANTHROPIC_AUTH_TOKEN = env.ANTHROPIC_AUTH_TOKEN ?? 'anypick';\n }\n }\n\n const cleanup = async () => {\n if (result.cleanup) {\n try {\n await result.cleanup();\n } catch {\n // best-effort\n }\n return;\n }\n if (result.isolated) {\n try {\n await result.isolated.cleanup();\n } catch {\n // best-effort\n }\n }\n };\n\n let child: import('node:child_process').ChildProcess;\n try {\n child = spawn(bin, childArgs, {\n stdio: 'inherit',\n env,\n shell: false,\n });\n } catch {\n await cleanup();\n return ExitCode.MISSING_DEPENDENCY;\n }\n\n let childExited = false;\n let forwardedSignals = 0;\n const forward = (sig: NodeJS.Signals) => {\n if (childExited) {\n return;\n }\n forwardedSignals += 1;\n // A second interrupt is an explicit escalation request. `child.killed`\n // only means a signal was sent, not that the process has exited.\n child.kill(forwardedSignals > 1 ? 'SIGKILL' : sig);\n };\n const onSigInt = () => forward('SIGINT');\n const onSigTerm = () => forward('SIGTERM');\n process.on('SIGINT', onSigInt);\n process.on('SIGTERM', onSigTerm);\n\n try {\n const code: number = await new Promise((resolve) => {\n child.once('exit', (c, signal) => {\n childExited = true;\n if (signal) {\n resolve(128 + (signal === 'SIGINT' ? 2 : 15));\n } else {\n resolve(c ?? 1);\n }\n });\n child.once('error', () => {\n childExited = true;\n resolve(ExitCode.MISSING_DEPENDENCY);\n });\n });\n return code;\n } finally {\n process.off('SIGINT', onSigInt);\n process.off('SIGTERM', onSigTerm);\n await cleanup();\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Root launcher action model (spec §7 rev 2.5).
3
+ * Pure data — no I/O chrome. First paint uses local state only.
4
+ */
5
+ import type { AnyPickApp } from '../core/app.js';
6
+ import { shortClientName } from '../presentation/client-name.js';
7
+ export { shortClientName };
8
+ export type LauncherSection = 'attention' | 'run' | 'configure' | 'more' | 'get-started' | 'other';
9
+ export type LauncherActionKind = 'run' | 'fix-attention' | 'change-default' | 'add-connection' | 'link' | 'view-details' | 'doctor' | 'connect-client' | 'add-account' | 'add-gateway';
10
+ export interface LauncherAction {
11
+ /** Stable semantic id for selection restore across refresh. */
12
+ id: string;
13
+ kind: LauncherActionKind;
14
+ section: LauncherSection;
15
+ /** Primary label (e.g. "Claude"). */
16
+ label: string;
17
+ /** Middle column (source display). */
18
+ detail?: string;
19
+ /** Right column status (ready / token expired / …). */
20
+ status?: string;
21
+ /** Client id when applicable. */
22
+ clientId?: string;
23
+ /** Severity for attention items. */
24
+ severity?: 'error' | 'warn';
25
+ /** Footer hint when this row is focused. */
26
+ preview?: string;
27
+ }
28
+ export interface LauncherModel {
29
+ cwd: string;
30
+ cwdShort: string;
31
+ mode: 'ready' | 'empty' | 'degraded';
32
+ title: string;
33
+ subtitle: string;
34
+ actions: LauncherAction[];
35
+ }
36
+ export interface ClientRow {
37
+ clientId: string;
38
+ clientName: string;
39
+ shortName: string;
40
+ /** Effective source display, if any. */
41
+ source?: string;
42
+ /** Effective primary model when the binding pins one. */
43
+ model?: string;
44
+ /** Binding scope reported by the resolver (normally global on the launcher). */
45
+ scope?: string | null;
46
+ status: 'ready' | 'attention' | 'native' | 'unbound';
47
+ /** Identity reported by the matching native provider when no AnyPick route exists. */
48
+ nativeIdentity?: string;
49
+ attention?: string;
50
+ }
51
+ export declare function buildClientRows(app: AnyPickApp): Promise<ClientRow[]>;
52
+ /**
53
+ * Matching account/client ids identify native auth without a client-specific
54
+ * branch. Native means "usable outside AnyPick", not "AnyPick route exists".
55
+ */
56
+ export declare function nativeConnectionFor(app: AnyPickApp, clientId: string): Promise<{
57
+ identity?: string;
58
+ } | null>;
59
+ export declare function buildLauncherModel(app: AnyPickApp, opts?: {
60
+ cwd?: string;
61
+ }): Promise<LauncherModel>;
62
+ export declare const SECTION_LABELS: Record<LauncherSection, string>;
63
+ export declare const SECTION_ORDER: LauncherSection[];
64
+ //# sourceMappingURL=launcher-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launcher-model.d.ts","sourceRoot":"","sources":["../../src/cli/launcher-model.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,KAAK,GAAG,WAAW,GAAG,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC;AAEnG,MAAM,MAAM,kBAAkB,GAC1B,KAAK,GACL,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,MAAM,GACN,cAAc,GACd,QAAQ,GACR,gBAAgB,GAChB,aAAa,GACb,aAAa,CAAC;AAElB,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,eAAe,CAAC;IACzB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IACrD,sFAAsF;IACtF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAqBD,wBAAsB,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAkE3E;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,UAAU,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAUvC;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,UAAU,EACf,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1B,OAAO,CAAC,aAAa,CAAC,CAgIxB;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAO1D,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,eAAe,EAO1C,CAAC"}
@@ -0,0 +1,200 @@
1
+ import { localAttentionFor } from "./local-health.js";
2
+ import { shortCwd } from "./render-util.js";
3
+ import { shortClientName } from "../presentation/client-name.js";
4
+ //#region src/cli/launcher-model.ts
5
+ function sourceDisplay(source) {
6
+ if (source.kind === "account" && source.provider && source.name) return `${source.provider}/${source.name}`;
7
+ if (source.kind === "gateway" && source.name) return source.name;
8
+ if (source.kind === "preset" && source.name) return `@${source.name}`;
9
+ if (source.kind === "account-pool" && source.provider) return `pool:${source.provider}`;
10
+ if (source.kind === "proxy-hub" && source.name) return `hub:${source.name}`;
11
+ return "?";
12
+ }
13
+ async function buildClientRows(app) {
14
+ const clients = app.clients.list();
15
+ return Promise.all(clients.map(async (c) => {
16
+ const shortName = shortClientName(c.id, c.name, c.shortName);
17
+ let effective;
18
+ try {
19
+ effective = app.bindingService.current(c.id)[0];
20
+ } catch {
21
+ effective = void 0;
22
+ }
23
+ const binding = effective?.binding;
24
+ if (!binding) {
25
+ const native = await nativeConnectionFor(app, c.id);
26
+ if (native) return {
27
+ clientId: c.id,
28
+ clientName: c.name,
29
+ shortName,
30
+ source: "native login",
31
+ status: "native",
32
+ nativeIdentity: native.identity
33
+ };
34
+ return {
35
+ clientId: c.id,
36
+ clientName: c.name,
37
+ shortName,
38
+ status: "unbound"
39
+ };
40
+ }
41
+ const src = binding.spec.source;
42
+ const display = sourceDisplay(src);
43
+ const model = binding.spec.model.mode === "explicit" ? binding.spec.model.id : typeof binding.spec.clientOptions.modelRoles === "object" && binding.spec.clientOptions.modelRoles && "default" in binding.spec.clientOptions.modelRoles && typeof binding.spec.clientOptions.modelRoles.default === "string" ? binding.spec.clientOptions.modelRoles.default : void 0;
44
+ const attention = await localAttentionFor(app, c.id, src);
45
+ if (attention) return {
46
+ clientId: c.id,
47
+ clientName: c.name,
48
+ shortName,
49
+ source: display,
50
+ model,
51
+ scope: effective?.scope,
52
+ status: "attention",
53
+ attention
54
+ };
55
+ return {
56
+ clientId: c.id,
57
+ clientName: c.name,
58
+ shortName,
59
+ source: display,
60
+ model,
61
+ scope: effective?.scope,
62
+ status: "ready"
63
+ };
64
+ }));
65
+ }
66
+ /**
67
+ * Matching account/client ids identify native auth without a client-specific
68
+ * branch. Native means "usable outside AnyPick", not "AnyPick route exists".
69
+ */
70
+ async function nativeConnectionFor(app, clientId) {
71
+ if (!app.accountRegistry.has(clientId)) return null;
72
+ try {
73
+ const current = await app.accounts.current(clientId);
74
+ return current.live.present ? { identity: current.live.identity } : null;
75
+ } catch {
76
+ return null;
77
+ }
78
+ }
79
+ async function buildLauncherModel(app, opts = {}) {
80
+ const cwd = opts.cwd ?? process.cwd();
81
+ const clientRows = await buildClientRows(app);
82
+ const ready = clientRows.filter((r) => r.status === "ready");
83
+ const attention = clientRows.filter((r) => r.status === "attention");
84
+ const native = clientRows.filter((r) => r.status === "native");
85
+ const unbound = clientRows.filter((r) => r.status === "unbound" || r.status === "native");
86
+ const actions = [];
87
+ if (ready.length === 0 && attention.length === 0) {
88
+ for (const r of unbound) actions.push({
89
+ id: `connect:${r.clientId}`,
90
+ kind: "connect-client",
91
+ section: "get-started",
92
+ label: r.status === "native" ? `Connect ${r.shortName} to AnyPick` : `Connect ${r.shortName}`,
93
+ detail: r.status === "native" ? r.nativeIdentity ?? "native login active" : void 0,
94
+ clientId: r.clientId,
95
+ preview: `set ${r.clientId} source`
96
+ });
97
+ actions.push({
98
+ id: "other:add-account",
99
+ kind: "add-account",
100
+ section: "other",
101
+ label: "Add account",
102
+ preview: "save a native login"
103
+ }, {
104
+ id: "other:add-gateway",
105
+ kind: "add-gateway",
106
+ section: "other",
107
+ label: "Add gateway",
108
+ preview: "API endpoint + key"
109
+ });
110
+ return {
111
+ cwd,
112
+ cwdShort: shortCwd(cwd),
113
+ mode: "empty",
114
+ title: "anypick",
115
+ subtitle: native.length ? "Native clients found · no AnyPick routes yet" : "No clients connected yet",
116
+ actions
117
+ };
118
+ }
119
+ for (const r of attention) actions.push({
120
+ id: `attention:${r.clientId}`,
121
+ kind: "fix-attention",
122
+ section: "attention",
123
+ label: `Fix ${r.shortName}`,
124
+ detail: r.attention,
125
+ clientId: r.clientId,
126
+ severity: "error",
127
+ preview: `repair ${r.clientId}`
128
+ });
129
+ for (const r of ready) actions.push({
130
+ id: `run:${r.clientId}`,
131
+ kind: "run",
132
+ section: "run",
133
+ label: r.shortName,
134
+ detail: r.source,
135
+ status: "ready",
136
+ clientId: r.clientId,
137
+ preview: `anypick run ${r.clientId}`
138
+ });
139
+ actions.push({
140
+ id: "configure:change-default",
141
+ kind: "change-default",
142
+ section: "configure",
143
+ label: "Change a default",
144
+ preview: "anypick use <client> --with …"
145
+ }, {
146
+ id: "configure:add-connection",
147
+ kind: "add-connection",
148
+ section: "configure",
149
+ label: "Add connection",
150
+ preview: "account or gateway"
151
+ }, {
152
+ id: "configure:link",
153
+ kind: "link",
154
+ section: "configure",
155
+ label: "Link this project",
156
+ preview: "project-local binding"
157
+ });
158
+ actions.push({
159
+ id: "more:details",
160
+ kind: "view-details",
161
+ section: "more",
162
+ label: "View details",
163
+ preview: "anypick current"
164
+ }, {
165
+ id: "more:doctor",
166
+ kind: "doctor",
167
+ section: "more",
168
+ label: "Diagnose",
169
+ preview: "anypick doctor"
170
+ });
171
+ const mode = attention.length > 0 ? "degraded" : "ready";
172
+ return {
173
+ cwd,
174
+ cwdShort: shortCwd(cwd),
175
+ mode,
176
+ title: "anypick",
177
+ subtitle: mode === "degraded" ? "Needs attention" : "AI CLI connections",
178
+ actions
179
+ };
180
+ }
181
+ var SECTION_LABELS = {
182
+ attention: "Attention",
183
+ run: "Run",
184
+ configure: "Configure",
185
+ more: "More",
186
+ "get-started": "Get started",
187
+ other: "Other"
188
+ };
189
+ var SECTION_ORDER = [
190
+ "attention",
191
+ "run",
192
+ "get-started",
193
+ "configure",
194
+ "other",
195
+ "more"
196
+ ];
197
+ //#endregion
198
+ export { SECTION_LABELS, SECTION_ORDER, buildClientRows, buildLauncherModel, nativeConnectionFor, shortClientName };
199
+
200
+ //# sourceMappingURL=launcher-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launcher-model.js","names":[],"sources":["../../src/cli/launcher-model.ts"],"sourcesContent":["/**\n * Root launcher action model (spec §7 rev 2.5).\n * Pure data — no I/O chrome. First paint uses local state only.\n */\n\nimport type { AnyPickApp } from '../core/app';\nimport { localAttentionFor } from './local-health';\nimport { shortCwd } from './render-util';\nimport { shortClientName } from '../presentation/client-name';\n\nexport { shortClientName };\n\nexport type LauncherSection = 'attention' | 'run' | 'configure' | 'more' | 'get-started' | 'other';\n\nexport type LauncherActionKind =\n | 'run'\n | 'fix-attention'\n | 'change-default'\n | 'add-connection'\n | 'link'\n | 'view-details'\n | 'doctor'\n | 'connect-client'\n | 'add-account'\n | 'add-gateway';\n\nexport interface LauncherAction {\n /** Stable semantic id for selection restore across refresh. */\n id: string;\n kind: LauncherActionKind;\n section: LauncherSection;\n /** Primary label (e.g. \"Claude\"). */\n label: string;\n /** Middle column (source display). */\n detail?: string;\n /** Right column status (ready / token expired / …). */\n status?: string;\n /** Client id when applicable. */\n clientId?: string;\n /** Severity for attention items. */\n severity?: 'error' | 'warn';\n /** Footer hint when this row is focused. */\n preview?: string;\n}\n\nexport interface LauncherModel {\n cwd: string;\n cwdShort: string;\n mode: 'ready' | 'empty' | 'degraded';\n title: string;\n subtitle: string;\n actions: LauncherAction[];\n}\n\nexport interface ClientRow {\n clientId: string;\n clientName: string;\n shortName: string;\n /** Effective source display, if any. */\n source?: string;\n /** Effective primary model when the binding pins one. */\n model?: string;\n /** Binding scope reported by the resolver (normally global on the launcher). */\n scope?: string | null;\n status: 'ready' | 'attention' | 'native' | 'unbound';\n /** Identity reported by the matching native provider when no AnyPick route exists. */\n nativeIdentity?: string;\n attention?: string;\n}\n\nfunction sourceDisplay(source: { kind: string; provider?: string; name?: string }): string {\n if (source.kind === 'account' && source.provider && source.name) {\n return `${source.provider}/${source.name}`;\n }\n if (source.kind === 'gateway' && source.name) {\n return source.name;\n }\n if (source.kind === 'preset' && source.name) {\n return `@${source.name}`;\n }\n if (source.kind === 'account-pool' && source.provider) {\n return `pool:${source.provider}`;\n }\n if (source.kind === 'proxy-hub' && source.name) {\n return `hub:${source.name}`;\n }\n return '?';\n}\n\nexport async function buildClientRows(app: AnyPickApp): Promise<ClientRow[]> {\n const clients = app.clients.list();\n return Promise.all(\n clients.map(async (c) => {\n const shortName = shortClientName(c.id, c.name, c.shortName);\n let effective;\n try {\n effective = app.bindingService.current(c.id)[0];\n } catch {\n effective = undefined;\n }\n const binding = effective?.binding;\n if (!binding) {\n const native = await nativeConnectionFor(app, c.id);\n if (native) {\n return {\n clientId: c.id,\n clientName: c.name,\n shortName,\n source: 'native login',\n status: 'native' as const,\n nativeIdentity: native.identity,\n };\n }\n return {\n clientId: c.id,\n clientName: c.name,\n shortName,\n status: 'unbound' as const,\n };\n }\n const src = binding.spec.source;\n const display = sourceDisplay(src);\n const model =\n binding.spec.model.mode === 'explicit'\n ? binding.spec.model.id\n : typeof binding.spec.clientOptions.modelRoles === 'object' &&\n binding.spec.clientOptions.modelRoles &&\n 'default' in binding.spec.clientOptions.modelRoles &&\n typeof binding.spec.clientOptions.modelRoles.default === 'string'\n ? binding.spec.clientOptions.modelRoles.default\n : undefined;\n const attention = await localAttentionFor(app, c.id, src);\n if (attention) {\n return {\n clientId: c.id,\n clientName: c.name,\n shortName,\n source: display,\n model,\n scope: effective?.scope,\n status: 'attention' as const,\n attention,\n };\n }\n return {\n clientId: c.id,\n clientName: c.name,\n shortName,\n source: display,\n model,\n scope: effective?.scope,\n status: 'ready' as const,\n };\n }),\n );\n}\n\n/**\n * Matching account/client ids identify native auth without a client-specific\n * branch. Native means \"usable outside AnyPick\", not \"AnyPick route exists\".\n */\nexport async function nativeConnectionFor(\n app: AnyPickApp,\n clientId: string,\n): Promise<{ identity?: string } | null> {\n if (!app.accountRegistry.has(clientId)) {\n return null;\n }\n try {\n const current = await app.accounts.current(clientId);\n return current.live.present ? { identity: current.live.identity } : null;\n } catch {\n return null;\n }\n}\n\nexport async function buildLauncherModel(\n app: AnyPickApp,\n opts: { cwd?: string } = {},\n): Promise<LauncherModel> {\n const cwd = opts.cwd ?? process.cwd();\n const clientRows = await buildClientRows(app);\n const ready = clientRows.filter((r) => r.status === 'ready');\n const attention = clientRows.filter((r) => r.status === 'attention');\n const native = clientRows.filter((r) => r.status === 'native');\n const unbound = clientRows.filter((r) => r.status === 'unbound' || r.status === 'native');\n\n const actions: LauncherAction[] = [];\n\n // Empty: no bindings at all\n if (ready.length === 0 && attention.length === 0) {\n for (const r of unbound) {\n actions.push({\n id: `connect:${r.clientId}`,\n kind: 'connect-client',\n section: 'get-started',\n label:\n r.status === 'native' ? `Connect ${r.shortName} to AnyPick` : `Connect ${r.shortName}`,\n detail: r.status === 'native' ? (r.nativeIdentity ?? 'native login active') : undefined,\n clientId: r.clientId,\n preview: `set ${r.clientId} source`,\n });\n }\n actions.push(\n {\n id: 'other:add-account',\n kind: 'add-account',\n section: 'other',\n label: 'Add account',\n preview: 'save a native login',\n },\n {\n id: 'other:add-gateway',\n kind: 'add-gateway',\n section: 'other',\n label: 'Add gateway',\n preview: 'API endpoint + key',\n },\n );\n return {\n cwd,\n cwdShort: shortCwd(cwd),\n mode: 'empty',\n title: 'anypick',\n subtitle: native.length\n ? 'Native clients found · no AnyPick routes yet'\n : 'No clients connected yet',\n actions,\n };\n }\n\n for (const r of attention) {\n actions.push({\n id: `attention:${r.clientId}`,\n kind: 'fix-attention',\n section: 'attention',\n label: `Fix ${r.shortName}`,\n detail: r.attention,\n clientId: r.clientId,\n severity: 'error',\n preview: `repair ${r.clientId}`,\n });\n }\n\n for (const r of ready) {\n actions.push({\n id: `run:${r.clientId}`,\n kind: 'run',\n section: 'run',\n label: r.shortName,\n detail: r.source,\n status: 'ready',\n clientId: r.clientId,\n preview: `anypick run ${r.clientId}`,\n });\n }\n\n actions.push(\n {\n id: 'configure:change-default',\n kind: 'change-default',\n section: 'configure',\n label: 'Change a default',\n preview: 'anypick use <client> --with …',\n },\n {\n id: 'configure:add-connection',\n kind: 'add-connection',\n section: 'configure',\n label: 'Add connection',\n preview: 'account or gateway',\n },\n {\n id: 'configure:link',\n kind: 'link',\n section: 'configure',\n label: 'Link this project',\n preview: 'project-local binding',\n },\n );\n\n actions.push(\n {\n id: 'more:details',\n kind: 'view-details',\n section: 'more',\n label: 'View details',\n preview: 'anypick current',\n },\n {\n id: 'more:doctor',\n kind: 'doctor',\n section: 'more',\n label: 'Diagnose',\n preview: 'anypick doctor',\n },\n );\n\n const mode: LauncherModel['mode'] = attention.length > 0 ? 'degraded' : 'ready';\n return {\n cwd,\n cwdShort: shortCwd(cwd),\n mode,\n title: 'anypick',\n subtitle: mode === 'degraded' ? 'Needs attention' : 'AI CLI connections',\n actions,\n };\n}\n\nexport const SECTION_LABELS: Record<LauncherSection, string> = {\n attention: 'Attention',\n run: 'Run',\n configure: 'Configure',\n more: 'More',\n 'get-started': 'Get started',\n other: 'Other',\n};\n\nexport const SECTION_ORDER: LauncherSection[] = [\n 'attention',\n 'run',\n 'get-started',\n 'configure',\n 'other',\n 'more',\n];\n"],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Pure renderer for the root command-center launcher (spec §7 rev 2.5).
3
+ * Compact, scannable, no Clack rails.
4
+ */
5
+ import { type LauncherAction, type LauncherModel } from './launcher-model.js';
6
+ export type { LayoutWidth } from './render-util.js';
7
+ export { layoutForColumns } from './render-util.js';
8
+ export interface RenderFrameOpts {
9
+ cursor: number;
10
+ columns?: number;
11
+ color?: boolean;
12
+ /** When set, show a settled/submit frame instead of interactive chrome. */
13
+ settled?: 'submit' | 'cancel';
14
+ }
15
+ /**
16
+ * Render a full launcher frame. `cursor` is the index into ordered actions.
17
+ */
18
+ export declare function renderLauncherFrame(model: LauncherModel, opts: RenderFrameOpts): string;
19
+ /** Flat list of action ids in render order (must match cursor indices). */
20
+ export declare function orderedActions(model: LauncherModel): LauncherAction[];
21
+ export declare function cursorForActionId(model: LauncherModel, id: string | undefined): number;
22
+ //# sourceMappingURL=launcher-render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launcher-render.d.ts","sourceRoot":"","sources":["../../src/cli/launcher-render.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,aAAa,EAEnB,MAAM,kBAAkB,CAAC;AAa1B,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAcjD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe,GAAG,MAAM,CAuDvF;AA8FD,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,EAAE,CAUrE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAOtF"}
@@ -0,0 +1,113 @@
1
+ import { MARK } from "./ux.js";
2
+ import { layoutForColumns } from "../presentation/layout.js";
3
+ import { noColor, padEndVisible, paint, truncate, visibleLen } from "./render-util.js";
4
+ import { SECTION_LABELS, SECTION_ORDER } from "./launcher-model.js";
5
+ //#region src/cli/launcher-render.ts
6
+ /**
7
+ * Pure renderer for the root command-center launcher (spec §7 rev 2.5).
8
+ * Compact, scannable, no Clack rails.
9
+ */
10
+ var identity = (s) => s;
11
+ function groupBySection(actions) {
12
+ const map = /* @__PURE__ */ new Map();
13
+ for (const a of actions) {
14
+ const list = map.get(a.section) ?? [];
15
+ list.push(a);
16
+ map.set(a.section, list);
17
+ }
18
+ return map;
19
+ }
20
+ /**
21
+ * Render a full launcher frame. `cursor` is the index into ordered actions.
22
+ */
23
+ function renderLauncherFrame(model, opts) {
24
+ const cols = Math.max(40, opts.columns ?? process.stdout.columns ?? 80);
25
+ const layout = layoutForColumns(cols);
26
+ const c = paint(opts.color ?? !noColor());
27
+ const focused = orderedActions(model)[opts.cursor];
28
+ const lines = [];
29
+ lines.push(renderHeader(model, cols, layout, c));
30
+ if (model.mode === "degraded") lines.push(` ${c.yellow(model.subtitle)}`);
31
+ else if (model.mode === "empty") lines.push(` ${c.dim(model.subtitle)}`);
32
+ else lines.push(` ${c.dim(model.subtitle)}`);
33
+ lines.push("");
34
+ const bySection = groupBySection(model.actions);
35
+ let actionIndex = 0;
36
+ let sectionCount = 0;
37
+ for (const section of SECTION_ORDER) {
38
+ const items = bySection.get(section);
39
+ if (!items?.length) continue;
40
+ if (sectionCount > 0) lines.push("");
41
+ sectionCount++;
42
+ lines.push(` ${c.dim(SECTION_LABELS[section].toUpperCase())}`);
43
+ for (const action of items) {
44
+ const selected = actionIndex === opts.cursor && !opts.settled;
45
+ const hotkey = actionIndex < 9 ? String(actionIndex + 1) : " ";
46
+ lines.push(formatActionRow(action, {
47
+ selected,
48
+ layout,
49
+ cols,
50
+ c,
51
+ hotkey
52
+ }));
53
+ actionIndex++;
54
+ }
55
+ }
56
+ lines.push("");
57
+ if (opts.settled === "cancel") lines.push(` ${c.dim("quit")}`);
58
+ else if (opts.settled === "submit" && focused) lines.push(` ${c.cyan("→")} ${c.dim(focused.preview ?? focused.label)}`);
59
+ else lines.push(renderFooter(focused, c, layout));
60
+ return lines.join("\n");
61
+ }
62
+ function renderHeader(model, cols, layout, c) {
63
+ const brand = c.bold(" anypick");
64
+ if (layout === "narrow") return brand;
65
+ const right = c.dim(model.cwdShort);
66
+ const gap = Math.max(2, cols - visibleLen(` anypick`) - visibleLen(model.cwdShort) - 1);
67
+ return brand + " ".repeat(gap) + right;
68
+ }
69
+ function renderFooter(focused, c, layout) {
70
+ if (layout === "narrow") {
71
+ if (focused?.preview) return ` ${c.cyan("↵")} ${c.dim(truncate(focused.preview, 26))} ${c.dim("esc · 1-9")}`;
72
+ return ` ${c.dim("↑↓ ↵ esc 1-9")}`;
73
+ }
74
+ const nav = c.dim("↑↓") + " " + c.dim("esc") + " " + c.dim("1-9");
75
+ if (!focused?.preview) return ` ${nav}`;
76
+ return ` ${c.cyan("↵")} ${c.dim(focused.preview)} ${nav}`;
77
+ }
78
+ function formatActionRow(action, opts) {
79
+ const { selected, layout, c, hotkey } = opts;
80
+ const marker = selected ? c.cyan(MARK.focus) : " ";
81
+ const num = c.dim(hotkey);
82
+ if (layout === "narrow") return ` ${marker} ${num} ${selected ? c.bold(action.label) : action.label}${action.section === "run" ? ` ${statusBadge(action, c, true)}` : action.detail ? c.dim(` ${truncate(action.detail, 16)}`) : ""}`;
83
+ const labelW = layout === "wide" ? 14 : 12;
84
+ const detailW = layout === "wide" ? 22 : 18;
85
+ if (action.section === "attention") return ` ${marker} ${num} ${padEndVisible((selected ? c.bold : identity)(truncate(action.label, labelW + 6)), labelW + 6)} ${c.red(truncate(action.detail ?? "", detailW + 8))}`;
86
+ if (action.section === "run") return ` ${marker} ${num} ${padEndVisible((selected ? c.bold : c.white)(truncate(action.label, labelW)), labelW)} ${padEndVisible(c.dim(truncate(action.detail ?? "", detailW)), detailW)} ${statusBadge(action, c, false)}`;
87
+ return ` ${marker} ${num} ${selected ? c.bold(action.label) : action.label}`;
88
+ }
89
+ function statusBadge(action, c, compact) {
90
+ if (action.status === "ready") return compact ? c.green(MARK.live) : c.green(MARK.live) + c.dim(" ready");
91
+ if (action.severity === "error") return compact ? c.red("!") : c.red(MARK.live) + c.dim(" " + (action.detail ?? "error"));
92
+ if (action.status) return c.dim(action.status);
93
+ return "";
94
+ }
95
+ /** Flat list of action ids in render order (must match cursor indices). */
96
+ function orderedActions(model) {
97
+ const bySection = groupBySection(model.actions);
98
+ const out = [];
99
+ for (const section of SECTION_ORDER) {
100
+ const items = bySection.get(section);
101
+ if (items) out.push(...items);
102
+ }
103
+ return out;
104
+ }
105
+ function cursorForActionId(model, id) {
106
+ if (!id) return 0;
107
+ const idx = orderedActions(model).findIndex((a) => a.id === id);
108
+ return idx >= 0 ? idx : 0;
109
+ }
110
+ //#endregion
111
+ export { cursorForActionId, orderedActions, renderLauncherFrame };
112
+
113
+ //# sourceMappingURL=launcher-render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launcher-render.js","names":[],"sources":["../../src/cli/launcher-render.ts"],"sourcesContent":["/**\n * Pure renderer for the root command-center launcher (spec §7 rev 2.5).\n * Compact, scannable, no Clack rails.\n */\n\nimport {\n SECTION_LABELS,\n SECTION_ORDER,\n type LauncherAction,\n type LauncherModel,\n type LauncherSection,\n} from './launcher-model';\nimport {\n layoutForColumns,\n noColor,\n paint,\n padEndVisible,\n truncate,\n visibleLen,\n type LayoutWidth,\n type Paint,\n} from './render-util';\nimport { MARK } from './ux';\n\nexport type { LayoutWidth } from './render-util';\nexport { layoutForColumns } from './render-util';\n\nconst identity = (s: string) => s;\n\nfunction groupBySection(actions: LauncherAction[]): Map<LauncherSection, LauncherAction[]> {\n const map = new Map<LauncherSection, LauncherAction[]>();\n for (const a of actions) {\n const list = map.get(a.section) ?? [];\n list.push(a);\n map.set(a.section, list);\n }\n return map;\n}\n\nexport interface RenderFrameOpts {\n cursor: number;\n columns?: number;\n color?: boolean;\n /** When set, show a settled/submit frame instead of interactive chrome. */\n settled?: 'submit' | 'cancel';\n}\n\n/**\n * Render a full launcher frame. `cursor` is the index into ordered actions.\n */\nexport function renderLauncherFrame(model: LauncherModel, opts: RenderFrameOpts): string {\n const cols = Math.max(40, opts.columns ?? process.stdout.columns ?? 80);\n const layout = layoutForColumns(cols);\n const c = paint(opts.color ?? !noColor());\n const ordered = orderedActions(model);\n const focused = ordered[opts.cursor];\n const lines: string[] = [];\n\n // ── Header ────────────────────────────────────────────────────\n lines.push(renderHeader(model, cols, layout, c));\n if (model.mode === 'degraded') {\n lines.push(` ${c.yellow(model.subtitle)}`);\n } else if (model.mode === 'empty') {\n lines.push(` ${c.dim(model.subtitle)}`);\n } else {\n lines.push(` ${c.dim(model.subtitle)}`);\n }\n lines.push('');\n\n // ── Body ──────────────────────────────────────────────────────\n const bySection = groupBySection(model.actions);\n let actionIndex = 0;\n let sectionCount = 0;\n\n for (const section of SECTION_ORDER) {\n const items = bySection.get(section);\n if (!items?.length) {\n continue;\n }\n if (sectionCount > 0) {\n lines.push('');\n }\n sectionCount++;\n lines.push(` ${c.dim(SECTION_LABELS[section].toUpperCase())}`);\n\n for (const action of items) {\n const selected = actionIndex === opts.cursor && !opts.settled;\n const hotkey = actionIndex < 9 ? String(actionIndex + 1) : ' ';\n lines.push(formatActionRow(action, { selected, layout, cols, c, hotkey }));\n actionIndex++;\n }\n }\n\n lines.push('');\n\n // ── Footer (contextual) ───────────────────────────────────────\n if (opts.settled === 'cancel') {\n lines.push(` ${c.dim('quit')}`);\n } else if (opts.settled === 'submit' && focused) {\n lines.push(` ${c.cyan('→')} ${c.dim(focused.preview ?? focused.label)}`);\n } else {\n lines.push(renderFooter(focused, c, layout));\n }\n\n return lines.join('\\n');\n}\n\nfunction renderHeader(model: LauncherModel, cols: number, layout: LayoutWidth, c: Paint): string {\n const brand = c.bold(' anypick');\n if (layout === 'narrow') {\n return brand;\n }\n const right = c.dim(model.cwdShort);\n const gap = Math.max(2, cols - visibleLen(` anypick`) - visibleLen(model.cwdShort) - 1);\n return brand + ' '.repeat(gap) + right;\n}\n\nfunction renderFooter(focused: LauncherAction | undefined, c: Paint, layout: LayoutWidth): string {\n if (layout === 'narrow') {\n if (focused?.preview) {\n return ` ${c.cyan('↵')} ${c.dim(truncate(focused.preview, 26))} ${c.dim('esc · 1-9')}`;\n }\n return ` ${c.dim('↑↓ ↵ esc 1-9')}`;\n }\n\n const nav = c.dim('↑↓') + ' ' + c.dim('esc') + ' ' + c.dim('1-9');\n if (!focused?.preview) {\n return ` ${nav}`;\n }\n // Contextual action on the left — the \"what enter does\" signal\n return ` ${c.cyan('↵')} ${c.dim(focused.preview)} ${nav}`;\n}\n\nfunction formatActionRow(\n action: LauncherAction,\n opts: {\n selected: boolean;\n layout: LayoutWidth;\n cols: number;\n c: Paint;\n hotkey: string;\n },\n): string {\n const { selected, layout, c, hotkey } = opts;\n // Fixed-width marker so rows don't jump\n const marker = selected ? c.cyan(MARK.focus) : ' ';\n const num = c.dim(hotkey);\n\n if (layout === 'narrow') {\n const label = selected ? c.bold(action.label) : action.label;\n const tail =\n action.section === 'run'\n ? ` ${statusBadge(action, c, true)}`\n : action.detail\n ? c.dim(` ${truncate(action.detail, 16)}`)\n : '';\n return ` ${marker} ${num} ${label}${tail}`;\n }\n\n const labelW = layout === 'wide' ? 14 : 12;\n const detailW = layout === 'wide' ? 22 : 18;\n\n if (action.section === 'attention') {\n const lab = padEndVisible(\n (selected ? c.bold : identity)(truncate(action.label, labelW + 6)),\n labelW + 6,\n );\n const reason = c.red(truncate(action.detail ?? '', detailW + 8));\n return ` ${marker} ${num} ${lab} ${reason}`;\n }\n\n if (action.section === 'run') {\n const lab = padEndVisible(\n (selected ? c.bold : c.white)(truncate(action.label, labelW)),\n labelW,\n );\n const det = padEndVisible(c.dim(truncate(action.detail ?? '', detailW)), detailW);\n const badge = statusBadge(action, c, false);\n return ` ${marker} ${num} ${lab} ${det} ${badge}`;\n }\n\n // configure / more / get-started / other\n const body = selected ? c.bold(action.label) : action.label;\n return ` ${marker} ${num} ${body}`;\n}\n\nfunction statusBadge(action: LauncherAction, c: Paint, compact: boolean): string {\n if (action.status === 'ready') {\n return compact ? c.green(MARK.live) : c.green(MARK.live) + c.dim(' ready');\n }\n if (action.severity === 'error') {\n return compact ? c.red('!') : c.red(MARK.live) + c.dim(' ' + (action.detail ?? 'error'));\n }\n if (action.status) {\n return c.dim(action.status);\n }\n return '';\n}\n\n/** Flat list of action ids in render order (must match cursor indices). */\nexport function orderedActions(model: LauncherModel): LauncherAction[] {\n const bySection = groupBySection(model.actions);\n const out: LauncherAction[] = [];\n for (const section of SECTION_ORDER) {\n const items = bySection.get(section);\n if (items) {\n out.push(...items);\n }\n }\n return out;\n}\n\nexport function cursorForActionId(model: LauncherModel, id: string | undefined): number {\n if (!id) {\n return 0;\n }\n const list = orderedActions(model);\n const idx = list.findIndex((a) => a.id === id);\n return idx >= 0 ? idx : 0;\n}\n"],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Root command-center launcher using @clack/core SelectPrompt + custom render.
3
+ * Does NOT use @clack/prompts intro/note/select/outro chrome.
4
+ */
5
+ import { type LauncherAction, type LauncherModel } from './launcher-model.js';
6
+ import type { AnyPickApp } from '../core/app.js';
7
+ export type LauncherResult = {
8
+ kind: 'action';
9
+ action: LauncherAction;
10
+ model: LauncherModel;
11
+ } | {
12
+ kind: 'quit';
13
+ exitCode: number;
14
+ };
15
+ export interface OpenLauncherOpts {
16
+ /** Restore selection by semantic action id. */
17
+ previousActionId?: string;
18
+ cwd?: string;
19
+ }
20
+ /**
21
+ * Show the root launcher once. Resolves with the chosen action, or quit.
22
+ * Esc / q → exitCode 0; Ctrl-C → exitCode 130; 1-9 select that row.
23
+ */
24
+ export declare function openRootLauncher(app: AnyPickApp, opts?: OpenLauncherOpts): Promise<LauncherResult>;
25
+ /** Listen for SIGINT during launcher so Ctrl-C maps to 130 if process gets it. */
26
+ export declare function installLauncherSigint(): () => void;
27
+ //# sourceMappingURL=launcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/cli/launcher.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAsB,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE/F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC,MAAM,WAAW,gBAAgB;IAC/B,+CAA+C;IAC/C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAMD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,UAAU,EACf,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,cAAc,CAAC,CAkFzB;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,IAAI,MAAM,IAAI,CAGlD"}