anypick 1.0.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1231) hide show
  1. package/README.md +16 -582
  2. package/bin/anypick.js +249 -0
  3. package/package.json +14 -106
  4. package/dist/adapters.d.ts +0 -4
  5. package/dist/adapters.d.ts.map +0 -1
  6. package/dist/adapters.js +0 -2
  7. package/dist/catalog/model-fetch.d.ts +0 -34
  8. package/dist/catalog/model-fetch.d.ts.map +0 -1
  9. package/dist/catalog/model-fetch.js +0 -99
  10. package/dist/catalog/model-fetch.js.map +0 -1
  11. package/dist/catalog/providers.d.ts +0 -42
  12. package/dist/catalog/providers.d.ts.map +0 -1
  13. package/dist/catalog/providers.js +0 -424
  14. package/dist/catalog/providers.js.map +0 -1
  15. package/dist/cli/bootstrap.d.ts +0 -3
  16. package/dist/cli/bootstrap.d.ts.map +0 -1
  17. package/dist/cli/bootstrap.js +0 -78
  18. package/dist/cli/bootstrap.js.map +0 -1
  19. package/dist/cli/commands.d.ts +0 -29
  20. package/dist/cli/commands.d.ts.map +0 -1
  21. package/dist/cli/commands.js +0 -1043
  22. package/dist/cli/commands.js.map +0 -1
  23. package/dist/cli/completion.d.ts +0 -6
  24. package/dist/cli/completion.d.ts.map +0 -1
  25. package/dist/cli/completion.js +0 -202
  26. package/dist/cli/completion.js.map +0 -1
  27. package/dist/cli/errors.d.ts +0 -20
  28. package/dist/cli/errors.d.ts.map +0 -1
  29. package/dist/cli/errors.js +0 -47
  30. package/dist/cli/errors.js.map +0 -1
  31. package/dist/cli/format.d.ts +0 -6
  32. package/dist/cli/format.d.ts.map +0 -1
  33. package/dist/cli/format.js +0 -75
  34. package/dist/cli/format.js.map +0 -1
  35. package/dist/cli/help.d.ts +0 -6
  36. package/dist/cli/help.d.ts.map +0 -1
  37. package/dist/cli/help.js +0 -66
  38. package/dist/cli/help.js.map +0 -1
  39. package/dist/cli/interactive-accounts.d.ts +0 -3
  40. package/dist/cli/interactive-accounts.d.ts.map +0 -1
  41. package/dist/cli/interactive-accounts.js +0 -86
  42. package/dist/cli/interactive-accounts.js.map +0 -1
  43. package/dist/cli/interactive-maintenance.d.ts +0 -4
  44. package/dist/cli/interactive-maintenance.d.ts.map +0 -1
  45. package/dist/cli/interactive-maintenance.js +0 -30
  46. package/dist/cli/interactive-maintenance.js.map +0 -1
  47. package/dist/cli/interactive.d.ts +0 -14
  48. package/dist/cli/interactive.d.ts.map +0 -1
  49. package/dist/cli/interactive.js +0 -242
  50. package/dist/cli/interactive.js.map +0 -1
  51. package/dist/cli/launch-client.d.ts +0 -18
  52. package/dist/cli/launch-client.d.ts.map +0 -1
  53. package/dist/cli/launch-client.js +0 -117
  54. package/dist/cli/launch-client.js.map +0 -1
  55. package/dist/cli/launcher-model.d.ts +0 -64
  56. package/dist/cli/launcher-model.d.ts.map +0 -1
  57. package/dist/cli/launcher-model.js +0 -200
  58. package/dist/cli/launcher-model.js.map +0 -1
  59. package/dist/cli/launcher-render.d.ts +0 -22
  60. package/dist/cli/launcher-render.d.ts.map +0 -1
  61. package/dist/cli/launcher-render.js +0 -113
  62. package/dist/cli/launcher-render.js.map +0 -1
  63. package/dist/cli/launcher.d.ts +0 -27
  64. package/dist/cli/launcher.d.ts.map +0 -1
  65. package/dist/cli/launcher.js +0 -93
  66. package/dist/cli/launcher.js.map +0 -1
  67. package/dist/cli/local-health.d.ts +0 -17
  68. package/dist/cli/local-health.d.ts.map +0 -1
  69. package/dist/cli/local-health.js +0 -31
  70. package/dist/cli/local-health.js.map +0 -1
  71. package/dist/cli/plugin-commands.d.ts +0 -4
  72. package/dist/cli/plugin-commands.d.ts.map +0 -1
  73. package/dist/cli/plugin-commands.js +0 -160
  74. package/dist/cli/plugin-commands.js.map +0 -1
  75. package/dist/cli/primary.d.ts +0 -18
  76. package/dist/cli/primary.d.ts.map +0 -1
  77. package/dist/cli/primary.js +0 -593
  78. package/dist/cli/primary.js.map +0 -1
  79. package/dist/cli/render-util.d.ts +0 -24
  80. package/dist/cli/render-util.d.ts.map +0 -1
  81. package/dist/cli/render-util.js +0 -58
  82. package/dist/cli/render-util.js.map +0 -1
  83. package/dist/cli/ux.d.ts +0 -43
  84. package/dist/cli/ux.d.ts.map +0 -1
  85. package/dist/cli/ux.js +0 -114
  86. package/dist/cli/ux.js.map +0 -1
  87. package/dist/cli.d.ts +0 -3
  88. package/dist/cli.d.ts.map +0 -1
  89. package/dist/cli.js +0 -35
  90. package/dist/cli.js.map +0 -1
  91. package/dist/clients/claude-client-apply.d.ts +0 -8
  92. package/dist/clients/claude-client-apply.d.ts.map +0 -1
  93. package/dist/clients/claude-client-apply.js +0 -108
  94. package/dist/clients/claude-client-apply.js.map +0 -1
  95. package/dist/clients/claude-code.d.ts +0 -5
  96. package/dist/clients/claude-code.d.ts.map +0 -1
  97. package/dist/clients/claude-code.js +0 -189
  98. package/dist/clients/claude-code.js.map +0 -1
  99. package/dist/clients/claude-settings-guard.d.ts +0 -18
  100. package/dist/clients/claude-settings-guard.d.ts.map +0 -1
  101. package/dist/clients/codex-desktop-catalog.d.ts +0 -67
  102. package/dist/clients/codex-desktop-catalog.d.ts.map +0 -1
  103. package/dist/clients/codex-desktop-catalog.js +0 -212
  104. package/dist/clients/codex-desktop-catalog.js.map +0 -1
  105. package/dist/clients/codex.d.ts +0 -181
  106. package/dist/clients/codex.d.ts.map +0 -1
  107. package/dist/clients/codex.js +0 -783
  108. package/dist/clients/codex.js.map +0 -1
  109. package/dist/clients/env-files.d.ts +0 -14
  110. package/dist/clients/env-files.d.ts.map +0 -1
  111. package/dist/clients/env-files.js +0 -50
  112. package/dist/clients/env-files.js.map +0 -1
  113. package/dist/clients/gemini-client-utils.d.ts +0 -4
  114. package/dist/clients/gemini-client-utils.d.ts.map +0 -1
  115. package/dist/clients/gemini-client-utils.js +0 -33
  116. package/dist/clients/gemini-client-utils.js.map +0 -1
  117. package/dist/clients/gemini.d.ts +0 -16
  118. package/dist/clients/gemini.d.ts.map +0 -1
  119. package/dist/clients/gemini.js +0 -233
  120. package/dist/clients/gemini.js.map +0 -1
  121. package/dist/clients/index.d.ts +0 -14
  122. package/dist/clients/index.d.ts.map +0 -1
  123. package/dist/clients/index.js +0 -18
  124. package/dist/clients/index.js.map +0 -1
  125. package/dist/clients/isolation.d.ts +0 -28
  126. package/dist/clients/isolation.d.ts.map +0 -1
  127. package/dist/clients/isolation.js +0 -131
  128. package/dist/clients/isolation.js.map +0 -1
  129. package/dist/clients/kiro.d.ts +0 -10
  130. package/dist/clients/kiro.d.ts.map +0 -1
  131. package/dist/clients/kiro.js +0 -168
  132. package/dist/clients/kiro.js.map +0 -1
  133. package/dist/clients/model-roles.d.ts +0 -58
  134. package/dist/clients/model-roles.d.ts.map +0 -1
  135. package/dist/clients/model-roles.js +0 -139
  136. package/dist/clients/model-roles.js.map +0 -1
  137. package/dist/clients/registry.d.ts +0 -7
  138. package/dist/clients/registry.d.ts.map +0 -1
  139. package/dist/clients/registry.js +0 -16
  140. package/dist/clients/registry.js.map +0 -1
  141. package/dist/clients/resolve.d.ts +0 -27
  142. package/dist/clients/resolve.d.ts.map +0 -1
  143. package/dist/clients/resolve.js +0 -49
  144. package/dist/clients/resolve.js.map +0 -1
  145. package/dist/core/account-codec.d.ts +0 -32
  146. package/dist/core/account-codec.d.ts.map +0 -1
  147. package/dist/core/account-codec.js +0 -134
  148. package/dist/core/account-codec.js.map +0 -1
  149. package/dist/core/account-transfer.d.ts +0 -20
  150. package/dist/core/account-transfer.d.ts.map +0 -1
  151. package/dist/core/account-transfer.js +0 -136
  152. package/dist/core/account-transfer.js.map +0 -1
  153. package/dist/core/activation-executor.d.ts +0 -72
  154. package/dist/core/activation-executor.d.ts.map +0 -1
  155. package/dist/core/activation-executor.js +0 -690
  156. package/dist/core/activation-executor.js.map +0 -1
  157. package/dist/core/activation-models.d.ts +0 -6
  158. package/dist/core/activation-models.d.ts.map +0 -1
  159. package/dist/core/activation-models.js +0 -33
  160. package/dist/core/activation-models.js.map +0 -1
  161. package/dist/core/activation-planner.d.ts +0 -38
  162. package/dist/core/activation-planner.d.ts.map +0 -1
  163. package/dist/core/activation-planner.js +0 -248
  164. package/dist/core/activation-planner.js.map +0 -1
  165. package/dist/core/activation-protocol.d.ts +0 -3
  166. package/dist/core/activation-protocol.d.ts.map +0 -1
  167. package/dist/core/activation-protocol.js +0 -9
  168. package/dist/core/activation-protocol.js.map +0 -1
  169. package/dist/core/activation-transport.d.ts +0 -15
  170. package/dist/core/activation-transport.d.ts.map +0 -1
  171. package/dist/core/activation-transport.js +0 -23
  172. package/dist/core/activation-transport.js.map +0 -1
  173. package/dist/core/app.d.ts +0 -149
  174. package/dist/core/app.d.ts.map +0 -1
  175. package/dist/core/app.js +0 -372
  176. package/dist/core/app.js.map +0 -1
  177. package/dist/core/binding-service.d.ts +0 -93
  178. package/dist/core/binding-service.d.ts.map +0 -1
  179. package/dist/core/binding-service.js +0 -281
  180. package/dist/core/binding-service.js.map +0 -1
  181. package/dist/core/binding-store.d.ts +0 -23
  182. package/dist/core/binding-store.d.ts.map +0 -1
  183. package/dist/core/binding-store.js +0 -154
  184. package/dist/core/binding-store.js.map +0 -1
  185. package/dist/core/brand.d.ts +0 -18
  186. package/dist/core/brand.d.ts.map +0 -1
  187. package/dist/core/brand.js +0 -22
  188. package/dist/core/brand.js.map +0 -1
  189. package/dist/core/capabilities.d.ts +0 -30
  190. package/dist/core/capabilities.d.ts.map +0 -1
  191. package/dist/core/capabilities.js +0 -27
  192. package/dist/core/capabilities.js.map +0 -1
  193. package/dist/core/client-state-store.d.ts +0 -17
  194. package/dist/core/client-state-store.d.ts.map +0 -1
  195. package/dist/core/client-state-store.js +0 -47
  196. package/dist/core/client-state-store.js.map +0 -1
  197. package/dist/core/codec/account.d.ts +0 -52
  198. package/dist/core/codec/account.d.ts.map +0 -1
  199. package/dist/core/codec/account.js +0 -69
  200. package/dist/core/codec/account.js.map +0 -1
  201. package/dist/core/codec/bindings.d.ts +0 -38
  202. package/dist/core/codec/bindings.d.ts.map +0 -1
  203. package/dist/core/codec/bindings.js +0 -79
  204. package/dist/core/codec/bindings.js.map +0 -1
  205. package/dist/core/codec/operations.d.ts +0 -36
  206. package/dist/core/codec/operations.d.ts.map +0 -1
  207. package/dist/core/codec/operations.js +0 -82
  208. package/dist/core/codec/operations.js.map +0 -1
  209. package/dist/core/codec/primitives.d.ts +0 -59
  210. package/dist/core/codec/primitives.d.ts.map +0 -1
  211. package/dist/core/codec/primitives.js +0 -123
  212. package/dist/core/codec/primitives.js.map +0 -1
  213. package/dist/core/codec/proxy-hub.d.ts +0 -43
  214. package/dist/core/codec/proxy-hub.d.ts.map +0 -1
  215. package/dist/core/codec/proxy-hub.js +0 -69
  216. package/dist/core/codec/proxy-hub.js.map +0 -1
  217. package/dist/core/codec/runtime.d.ts +0 -41
  218. package/dist/core/codec/runtime.d.ts.map +0 -1
  219. package/dist/core/codec/runtime.js +0 -66
  220. package/dist/core/codec/runtime.js.map +0 -1
  221. package/dist/core/codec.d.ts +0 -43
  222. package/dist/core/codec.d.ts.map +0 -1
  223. package/dist/core/codec.js +0 -69
  224. package/dist/core/codec.js.map +0 -1
  225. package/dist/core/codex-live-config.d.ts +0 -92
  226. package/dist/core/codex-live-config.d.ts.map +0 -1
  227. package/dist/core/codex-live-config.js +0 -263
  228. package/dist/core/codex-live-config.js.map +0 -1
  229. package/dist/core/config-service.d.ts +0 -35
  230. package/dist/core/config-service.d.ts.map +0 -1
  231. package/dist/core/config-service.js +0 -87
  232. package/dist/core/config-service.js.map +0 -1
  233. package/dist/core/config.d.ts +0 -14
  234. package/dist/core/config.d.ts.map +0 -1
  235. package/dist/core/config.js +0 -45
  236. package/dist/core/config.js.map +0 -1
  237. package/dist/core/db-schema.d.ts +0 -30
  238. package/dist/core/db-schema.d.ts.map +0 -1
  239. package/dist/core/db-schema.js +0 -278
  240. package/dist/core/db-schema.js.map +0 -1
  241. package/dist/core/db.d.ts +0 -72
  242. package/dist/core/db.d.ts.map +0 -1
  243. package/dist/core/db.js +0 -192
  244. package/dist/core/db.js.map +0 -1
  245. package/dist/core/doctor-fixes.d.ts +0 -3
  246. package/dist/core/doctor-fixes.d.ts.map +0 -1
  247. package/dist/core/doctor-fixes.js +0 -102
  248. package/dist/core/doctor-fixes.js.map +0 -1
  249. package/dist/core/doctor-format.d.ts +0 -10
  250. package/dist/core/doctor-format.d.ts.map +0 -1
  251. package/dist/core/doctor-format.js +0 -45
  252. package/dist/core/doctor-format.js.map +0 -1
  253. package/dist/core/doctor-report.d.ts +0 -3
  254. package/dist/core/doctor-report.d.ts.map +0 -1
  255. package/dist/core/doctor-report.js +0 -174
  256. package/dist/core/doctor-report.js.map +0 -1
  257. package/dist/core/doctor-scan.d.ts +0 -7
  258. package/dist/core/doctor-scan.d.ts.map +0 -1
  259. package/dist/core/doctor-scan.js +0 -139
  260. package/dist/core/doctor-scan.js.map +0 -1
  261. package/dist/core/doctor-types.d.ts +0 -89
  262. package/dist/core/doctor-types.d.ts.map +0 -1
  263. package/dist/core/doctor-types.js +0 -14
  264. package/dist/core/doctor-types.js.map +0 -1
  265. package/dist/core/doctor-utils.d.ts +0 -3
  266. package/dist/core/doctor-utils.d.ts.map +0 -1
  267. package/dist/core/doctor-utils.js +0 -36
  268. package/dist/core/doctor-utils.js.map +0 -1
  269. package/dist/core/doctor.d.ts +0 -14
  270. package/dist/core/doctor.d.ts.map +0 -1
  271. package/dist/core/doctor.js +0 -127
  272. package/dist/core/doctor.js.map +0 -1
  273. package/dist/core/events.d.ts +0 -58
  274. package/dist/core/events.d.ts.map +0 -1
  275. package/dist/core/events.js +0 -88
  276. package/dist/core/events.js.map +0 -1
  277. package/dist/core/journal.d.ts +0 -23
  278. package/dist/core/journal.d.ts.map +0 -1
  279. package/dist/core/journal.js +0 -93
  280. package/dist/core/journal.js.map +0 -1
  281. package/dist/core/lease-store.d.ts +0 -22
  282. package/dist/core/lease-store.d.ts.map +0 -1
  283. package/dist/core/lease-store.js +0 -81
  284. package/dist/core/lease-store.js.map +0 -1
  285. package/dist/core/migrate-bindings.d.ts +0 -10
  286. package/dist/core/migrate-bindings.d.ts.map +0 -1
  287. package/dist/core/migrate-bindings.js +0 -98
  288. package/dist/core/migrate-bindings.js.map +0 -1
  289. package/dist/core/migrate-fs.d.ts +0 -11
  290. package/dist/core/migrate-fs.d.ts.map +0 -1
  291. package/dist/core/migrate-fs.js +0 -184
  292. package/dist/core/migrate-fs.js.map +0 -1
  293. package/dist/core/model-cache-store.d.ts +0 -27
  294. package/dist/core/model-cache-store.d.ts.map +0 -1
  295. package/dist/core/model-cache-store.js +0 -50
  296. package/dist/core/model-cache-store.js.map +0 -1
  297. package/dist/core/model-discovery.d.ts +0 -66
  298. package/dist/core/model-discovery.d.ts.map +0 -1
  299. package/dist/core/model-discovery.js +0 -127
  300. package/dist/core/model-discovery.js.map +0 -1
  301. package/dist/core/model-policy.d.ts +0 -40
  302. package/dist/core/model-policy.d.ts.map +0 -1
  303. package/dist/core/model-policy.js +0 -77
  304. package/dist/core/model-policy.js.map +0 -1
  305. package/dist/core/model-roles.d.ts +0 -9
  306. package/dist/core/model-roles.d.ts.map +0 -1
  307. package/dist/core/model-roles.js +0 -20
  308. package/dist/core/model-roles.js.map +0 -1
  309. package/dist/core/mutation-lock.d.ts +0 -31
  310. package/dist/core/mutation-lock.d.ts.map +0 -1
  311. package/dist/core/mutation-lock.js +0 -69
  312. package/dist/core/mutation-lock.js.map +0 -1
  313. package/dist/core/paths.d.ts +0 -49
  314. package/dist/core/paths.d.ts.map +0 -1
  315. package/dist/core/paths.js +0 -110
  316. package/dist/core/paths.js.map +0 -1
  317. package/dist/core/plugin-loader.d.ts +0 -40
  318. package/dist/core/plugin-loader.d.ts.map +0 -1
  319. package/dist/core/plugin-loader.js +0 -184
  320. package/dist/core/plugin-loader.js.map +0 -1
  321. package/dist/core/plugin-service.d.ts +0 -32
  322. package/dist/core/plugin-service.d.ts.map +0 -1
  323. package/dist/core/plugin-service.js +0 -110
  324. package/dist/core/plugin-service.js.map +0 -1
  325. package/dist/core/plugin-store.d.ts +0 -18
  326. package/dist/core/plugin-store.d.ts.map +0 -1
  327. package/dist/core/plugin-store.js +0 -50
  328. package/dist/core/plugin-store.js.map +0 -1
  329. package/dist/core/pool-store.d.ts +0 -44
  330. package/dist/core/pool-store.d.ts.map +0 -1
  331. package/dist/core/pool-store.js +0 -198
  332. package/dist/core/pool-store.js.map +0 -1
  333. package/dist/core/preset-store.d.ts +0 -29
  334. package/dist/core/preset-store.d.ts.map +0 -1
  335. package/dist/core/preset-store.js +0 -105
  336. package/dist/core/preset-store.js.map +0 -1
  337. package/dist/core/profile-service.d.ts +0 -50
  338. package/dist/core/profile-service.d.ts.map +0 -1
  339. package/dist/core/profile-service.js +0 -149
  340. package/dist/core/profile-service.js.map +0 -1
  341. package/dist/core/profile-store.d.ts +0 -20
  342. package/dist/core/profile-store.d.ts.map +0 -1
  343. package/dist/core/profile-store.js +0 -92
  344. package/dist/core/profile-store.js.map +0 -1
  345. package/dist/core/profile-synth.d.ts +0 -24
  346. package/dist/core/profile-synth.d.ts.map +0 -1
  347. package/dist/core/profile-synth.js +0 -30
  348. package/dist/core/profile-synth.js.map +0 -1
  349. package/dist/core/project-root.d.ts +0 -7
  350. package/dist/core/project-root.d.ts.map +0 -1
  351. package/dist/core/project-root.js +0 -23
  352. package/dist/core/project-root.js.map +0 -1
  353. package/dist/core/proxy-hub-cli.d.ts +0 -3
  354. package/dist/core/proxy-hub-cli.d.ts.map +0 -1
  355. package/dist/core/proxy-hub-cli.js +0 -80
  356. package/dist/core/proxy-hub-cli.js.map +0 -1
  357. package/dist/core/proxy-hub-routes.d.ts +0 -22
  358. package/dist/core/proxy-hub-routes.d.ts.map +0 -1
  359. package/dist/core/proxy-hub-routes.js +0 -92
  360. package/dist/core/proxy-hub-routes.js.map +0 -1
  361. package/dist/core/proxy-hub-server.d.ts +0 -59
  362. package/dist/core/proxy-hub-server.d.ts.map +0 -1
  363. package/dist/core/proxy-hub-server.js +0 -409
  364. package/dist/core/proxy-hub-server.js.map +0 -1
  365. package/dist/core/proxy-hub-service.d.ts +0 -97
  366. package/dist/core/proxy-hub-service.d.ts.map +0 -1
  367. package/dist/core/proxy-hub-service.js +0 -553
  368. package/dist/core/proxy-hub-service.js.map +0 -1
  369. package/dist/core/proxy-hub-store.d.ts +0 -28
  370. package/dist/core/proxy-hub-store.d.ts.map +0 -1
  371. package/dist/core/proxy-hub-store.js +0 -152
  372. package/dist/core/proxy-hub-store.js.map +0 -1
  373. package/dist/core/proxy-lifecycle.d.ts +0 -26
  374. package/dist/core/proxy-lifecycle.d.ts.map +0 -1
  375. package/dist/core/proxy-lifecycle.js +0 -33
  376. package/dist/core/proxy-lifecycle.js.map +0 -1
  377. package/dist/core/proxy-ports.d.ts +0 -50
  378. package/dist/core/proxy-ports.d.ts.map +0 -1
  379. package/dist/core/proxy-ports.js +0 -86
  380. package/dist/core/proxy-ports.js.map +0 -1
  381. package/dist/core/proxy-service.d.ts +0 -184
  382. package/dist/core/proxy-service.d.ts.map +0 -1
  383. package/dist/core/proxy-service.js +0 -860
  384. package/dist/core/proxy-service.js.map +0 -1
  385. package/dist/core/quota-guard-policy.d.ts +0 -8
  386. package/dist/core/quota-guard-policy.d.ts.map +0 -1
  387. package/dist/core/quota-guard-policy.js +0 -21
  388. package/dist/core/quota-guard-policy.js.map +0 -1
  389. package/dist/core/realign-proxy-clients.d.ts +0 -19
  390. package/dist/core/realign-proxy-clients.d.ts.map +0 -1
  391. package/dist/core/realign-proxy-clients.js +0 -40
  392. package/dist/core/realign-proxy-clients.js.map +0 -1
  393. package/dist/core/refs.d.ts +0 -84
  394. package/dist/core/refs.d.ts.map +0 -1
  395. package/dist/core/refs.js +0 -250
  396. package/dist/core/refs.js.map +0 -1
  397. package/dist/core/registry.d.ts +0 -46
  398. package/dist/core/registry.d.ts.map +0 -1
  399. package/dist/core/registry.js +0 -70
  400. package/dist/core/registry.js.map +0 -1
  401. package/dist/core/resolve-source.d.ts +0 -54
  402. package/dist/core/resolve-source.d.ts.map +0 -1
  403. package/dist/core/resolve-source.js +0 -148
  404. package/dist/core/resolve-source.js.map +0 -1
  405. package/dist/core/runtime-service.d.ts +0 -158
  406. package/dist/core/runtime-service.d.ts.map +0 -1
  407. package/dist/core/runtime-service.js +0 -422
  408. package/dist/core/runtime-service.js.map +0 -1
  409. package/dist/core/service.d.ts +0 -200
  410. package/dist/core/service.d.ts.map +0 -1
  411. package/dist/core/service.js +0 -643
  412. package/dist/core/service.js.map +0 -1
  413. package/dist/core/store-snapshot.d.ts +0 -10
  414. package/dist/core/store-snapshot.d.ts.map +0 -1
  415. package/dist/core/store-snapshot.js +0 -79
  416. package/dist/core/store-snapshot.js.map +0 -1
  417. package/dist/core/store.d.ts +0 -68
  418. package/dist/core/store.d.ts.map +0 -1
  419. package/dist/core/store.js +0 -159
  420. package/dist/core/store.js.map +0 -1
  421. package/dist/core/tray-runtime.d.ts +0 -15
  422. package/dist/core/tray-runtime.d.ts.map +0 -1
  423. package/dist/core/tray-runtime.js +0 -33
  424. package/dist/core/tray-runtime.js.map +0 -1
  425. package/dist/core/tray-settings-service.d.ts +0 -7
  426. package/dist/core/tray-settings-service.d.ts.map +0 -1
  427. package/dist/core/tray-settings-service.js +0 -24
  428. package/dist/core/tray-settings-service.js.map +0 -1
  429. package/dist/core/update.d.ts +0 -26
  430. package/dist/core/update.d.ts.map +0 -1
  431. package/dist/core/update.js +0 -128
  432. package/dist/core/update.js.map +0 -1
  433. package/dist/index.d.ts +0 -12
  434. package/dist/index.d.ts.map +0 -1
  435. package/dist/index.js +0 -7
  436. package/dist/network/egress/allowlist.d.ts +0 -2
  437. package/dist/network/egress/allowlist.d.ts.map +0 -1
  438. package/dist/network/egress/allowlist.js +0 -14
  439. package/dist/network/egress/allowlist.js.map +0 -1
  440. package/dist/network/egress/direct.d.ts +0 -17
  441. package/dist/network/egress/direct.d.ts.map +0 -1
  442. package/dist/network/egress/direct.js +0 -28
  443. package/dist/network/egress/direct.js.map +0 -1
  444. package/dist/network/egress/errors.d.ts +0 -4
  445. package/dist/network/egress/errors.d.ts.map +0 -1
  446. package/dist/network/egress/errors.js +0 -8
  447. package/dist/network/egress/errors.js.map +0 -1
  448. package/dist/network/egress/index.d.ts +0 -6
  449. package/dist/network/egress/index.d.ts.map +0 -1
  450. package/dist/network/egress/index.js +0 -11
  451. package/dist/network/egress/index.js.map +0 -1
  452. package/dist/network/egress/types.d.ts +0 -16
  453. package/dist/network/egress/types.d.ts.map +0 -1
  454. package/dist/presentation/client-name.d.ts +0 -14
  455. package/dist/presentation/client-name.d.ts.map +0 -1
  456. package/dist/presentation/client-name.js +0 -22
  457. package/dist/presentation/client-name.js.map +0 -1
  458. package/dist/presentation/layout.d.ts +0 -7
  459. package/dist/presentation/layout.d.ts.map +0 -1
  460. package/dist/presentation/layout.js +0 -10
  461. package/dist/presentation/layout.js.map +0 -1
  462. package/dist/providers/auth-fingerprint.d.ts +0 -56
  463. package/dist/providers/auth-fingerprint.d.ts.map +0 -1
  464. package/dist/providers/auth-fingerprint.js +0 -163
  465. package/dist/providers/auth-fingerprint.js.map +0 -1
  466. package/dist/providers/claude.d.ts +0 -43
  467. package/dist/providers/claude.d.ts.map +0 -1
  468. package/dist/providers/claude.js +0 -191
  469. package/dist/providers/claude.js.map +0 -1
  470. package/dist/providers/codex-identity.d.ts +0 -13
  471. package/dist/providers/codex-identity.d.ts.map +0 -1
  472. package/dist/providers/codex-identity.js +0 -69
  473. package/dist/providers/codex-identity.js.map +0 -1
  474. package/dist/providers/codex-refresh.d.ts +0 -30
  475. package/dist/providers/codex-refresh.d.ts.map +0 -1
  476. package/dist/providers/codex-refresh.js +0 -64
  477. package/dist/providers/codex-refresh.js.map +0 -1
  478. package/dist/providers/codex-usage.d.ts +0 -3
  479. package/dist/providers/codex-usage.d.ts.map +0 -1
  480. package/dist/providers/codex-usage.js +0 -42
  481. package/dist/providers/codex-usage.js.map +0 -1
  482. package/dist/providers/codex.d.ts +0 -61
  483. package/dist/providers/codex.d.ts.map +0 -1
  484. package/dist/providers/codex.js +0 -212
  485. package/dist/providers/codex.js.map +0 -1
  486. package/dist/providers/gemini-antigravity-oauth.d.ts +0 -83
  487. package/dist/providers/gemini-antigravity-oauth.d.ts.map +0 -1
  488. package/dist/providers/gemini-antigravity-oauth.js +0 -343
  489. package/dist/providers/gemini-antigravity-oauth.js.map +0 -1
  490. package/dist/providers/gemini-antigravity-state.d.ts +0 -35
  491. package/dist/providers/gemini-antigravity-state.d.ts.map +0 -1
  492. package/dist/providers/gemini-antigravity-state.js +0 -433
  493. package/dist/providers/gemini-antigravity-state.js.map +0 -1
  494. package/dist/providers/gemini-env.d.ts +0 -8
  495. package/dist/providers/gemini-env.d.ts.map +0 -1
  496. package/dist/providers/gemini-env.js +0 -78
  497. package/dist/providers/gemini-env.js.map +0 -1
  498. package/dist/providers/gemini-identity.d.ts +0 -2
  499. package/dist/providers/gemini-identity.d.ts.map +0 -1
  500. package/dist/providers/gemini-identity.js +0 -14
  501. package/dist/providers/gemini-identity.js.map +0 -1
  502. package/dist/providers/gemini-proxy/main.d.ts +0 -3
  503. package/dist/providers/gemini-proxy/main.d.ts.map +0 -1
  504. package/dist/providers/gemini-proxy/main.js +0 -176
  505. package/dist/providers/gemini-proxy/main.js.map +0 -1
  506. package/dist/providers/gemini-proxy/server.d.ts +0 -57
  507. package/dist/providers/gemini-proxy/server.d.ts.map +0 -1
  508. package/dist/providers/gemini-proxy/server.js +0 -1240
  509. package/dist/providers/gemini-proxy/server.js.map +0 -1
  510. package/dist/providers/gemini-proxy-entry.d.ts +0 -2
  511. package/dist/providers/gemini-proxy-entry.d.ts.map +0 -1
  512. package/dist/providers/gemini-proxy-entry.js +0 -16
  513. package/dist/providers/gemini-proxy-entry.js.map +0 -1
  514. package/dist/providers/gemini-proxy-lifecycle.d.ts +0 -11
  515. package/dist/providers/gemini-proxy-lifecycle.d.ts.map +0 -1
  516. package/dist/providers/gemini-proxy-lifecycle.js +0 -131
  517. package/dist/providers/gemini-proxy-lifecycle.js.map +0 -1
  518. package/dist/providers/gemini.d.ts +0 -137
  519. package/dist/providers/gemini.d.ts.map +0 -1
  520. package/dist/providers/gemini.js +0 -471
  521. package/dist/providers/gemini.js.map +0 -1
  522. package/dist/providers/grok-proxy/auth.d.ts +0 -27
  523. package/dist/providers/grok-proxy/auth.d.ts.map +0 -1
  524. package/dist/providers/grok-proxy/auth.js +0 -123
  525. package/dist/providers/grok-proxy/auth.js.map +0 -1
  526. package/dist/providers/grok-proxy/main.d.ts +0 -3
  527. package/dist/providers/grok-proxy/main.d.ts.map +0 -1
  528. package/dist/providers/grok-proxy/main.js +0 -111
  529. package/dist/providers/grok-proxy/main.js.map +0 -1
  530. package/dist/providers/grok-proxy/server.d.ts +0 -46
  531. package/dist/providers/grok-proxy/server.d.ts.map +0 -1
  532. package/dist/providers/grok-proxy/server.js +0 -595
  533. package/dist/providers/grok-proxy/server.js.map +0 -1
  534. package/dist/providers/grok.d.ts +0 -38
  535. package/dist/providers/grok.d.ts.map +0 -1
  536. package/dist/providers/grok.js +0 -250
  537. package/dist/providers/grok.js.map +0 -1
  538. package/dist/providers/index.d.ts +0 -14
  539. package/dist/providers/index.d.ts.map +0 -1
  540. package/dist/providers/index.js +0 -23
  541. package/dist/providers/index.js.map +0 -1
  542. package/dist/providers/kiro-secret-store.d.ts +0 -39
  543. package/dist/providers/kiro-secret-store.d.ts.map +0 -1
  544. package/dist/providers/kiro-secret-store.js +0 -168
  545. package/dist/providers/kiro-secret-store.js.map +0 -1
  546. package/dist/providers/kiro.d.ts +0 -50
  547. package/dist/providers/kiro.d.ts.map +0 -1
  548. package/dist/providers/kiro.js +0 -373
  549. package/dist/providers/kiro.js.map +0 -1
  550. package/dist/providers/model-policy.d.ts +0 -15
  551. package/dist/providers/model-policy.d.ts.map +0 -1
  552. package/dist/providers/model-policy.js +0 -26
  553. package/dist/providers/model-policy.js.map +0 -1
  554. package/dist/providers/opencode-auth.d.ts +0 -67
  555. package/dist/providers/opencode-auth.d.ts.map +0 -1
  556. package/dist/providers/opencode-auth.js +0 -146
  557. package/dist/providers/opencode-auth.js.map +0 -1
  558. package/dist/providers/opencode-cli-entry.d.ts +0 -36
  559. package/dist/providers/opencode-cli-entry.d.ts.map +0 -1
  560. package/dist/providers/opencode-cli-entry.js +0 -90
  561. package/dist/providers/opencode-cli-entry.js.map +0 -1
  562. package/dist/providers/opencode-proxy/abort.d.ts +0 -8
  563. package/dist/providers/opencode-proxy/abort.d.ts.map +0 -1
  564. package/dist/providers/opencode-proxy/abort.js +0 -42
  565. package/dist/providers/opencode-proxy/abort.js.map +0 -1
  566. package/dist/providers/opencode-proxy/anthropic-handler.d.ts +0 -4
  567. package/dist/providers/opencode-proxy/anthropic-handler.d.ts.map +0 -1
  568. package/dist/providers/opencode-proxy/anthropic-handler.js +0 -108
  569. package/dist/providers/opencode-proxy/anthropic-handler.js.map +0 -1
  570. package/dist/providers/opencode-proxy/auth.d.ts +0 -38
  571. package/dist/providers/opencode-proxy/auth.d.ts.map +0 -1
  572. package/dist/providers/opencode-proxy/auth.js +0 -128
  573. package/dist/providers/opencode-proxy/auth.js.map +0 -1
  574. package/dist/providers/opencode-proxy/body.d.ts +0 -9
  575. package/dist/providers/opencode-proxy/body.d.ts.map +0 -1
  576. package/dist/providers/opencode-proxy/body.js +0 -69
  577. package/dist/providers/opencode-proxy/body.js.map +0 -1
  578. package/dist/providers/opencode-proxy/catalog-handlers.d.ts +0 -7
  579. package/dist/providers/opencode-proxy/catalog-handlers.d.ts.map +0 -1
  580. package/dist/providers/opencode-proxy/catalog-handlers.js +0 -132
  581. package/dist/providers/opencode-proxy/catalog-handlers.js.map +0 -1
  582. package/dist/providers/opencode-proxy/catalog.d.ts +0 -41
  583. package/dist/providers/opencode-proxy/catalog.d.ts.map +0 -1
  584. package/dist/providers/opencode-proxy/catalog.js +0 -146
  585. package/dist/providers/opencode-proxy/catalog.js.map +0 -1
  586. package/dist/providers/opencode-proxy/cli.d.ts +0 -2
  587. package/dist/providers/opencode-proxy/cli.d.ts.map +0 -1
  588. package/dist/providers/opencode-proxy/cli.js +0 -162
  589. package/dist/providers/opencode-proxy/cli.js.map +0 -1
  590. package/dist/providers/opencode-proxy/constants.d.ts +0 -13
  591. package/dist/providers/opencode-proxy/constants.d.ts.map +0 -1
  592. package/dist/providers/opencode-proxy/constants.js +0 -15
  593. package/dist/providers/opencode-proxy/constants.js.map +0 -1
  594. package/dist/providers/opencode-proxy/context-budget.d.ts +0 -31
  595. package/dist/providers/opencode-proxy/context-budget.d.ts.map +0 -1
  596. package/dist/providers/opencode-proxy/context-budget.js +0 -165
  597. package/dist/providers/opencode-proxy/context-budget.js.map +0 -1
  598. package/dist/providers/opencode-proxy/errors.d.ts +0 -5
  599. package/dist/providers/opencode-proxy/errors.d.ts.map +0 -1
  600. package/dist/providers/opencode-proxy/errors.js +0 -45
  601. package/dist/providers/opencode-proxy/errors.js.map +0 -1
  602. package/dist/providers/opencode-proxy/forwarders.d.ts +0 -7
  603. package/dist/providers/opencode-proxy/forwarders.d.ts.map +0 -1
  604. package/dist/providers/opencode-proxy/forwarders.js +0 -214
  605. package/dist/providers/opencode-proxy/forwarders.js.map +0 -1
  606. package/dist/providers/opencode-proxy/http.d.ts +0 -11
  607. package/dist/providers/opencode-proxy/http.d.ts.map +0 -1
  608. package/dist/providers/opencode-proxy/http.js +0 -97
  609. package/dist/providers/opencode-proxy/http.js.map +0 -1
  610. package/dist/providers/opencode-proxy/models.d.ts +0 -42
  611. package/dist/providers/opencode-proxy/models.d.ts.map +0 -1
  612. package/dist/providers/opencode-proxy/models.js +0 -148
  613. package/dist/providers/opencode-proxy/models.js.map +0 -1
  614. package/dist/providers/opencode-proxy/openai-handler.d.ts +0 -5
  615. package/dist/providers/opencode-proxy/openai-handler.d.ts.map +0 -1
  616. package/dist/providers/opencode-proxy/openai-handler.js +0 -115
  617. package/dist/providers/opencode-proxy/openai-handler.js.map +0 -1
  618. package/dist/providers/opencode-proxy/router.d.ts +0 -4
  619. package/dist/providers/opencode-proxy/router.d.ts.map +0 -1
  620. package/dist/providers/opencode-proxy/router.js +0 -65
  621. package/dist/providers/opencode-proxy/router.js.map +0 -1
  622. package/dist/providers/opencode-proxy/runtime.d.ts +0 -23
  623. package/dist/providers/opencode-proxy/runtime.d.ts.map +0 -1
  624. package/dist/providers/opencode-proxy/runtime.js +0 -158
  625. package/dist/providers/opencode-proxy/runtime.js.map +0 -1
  626. package/dist/providers/opencode-proxy/server.d.ts +0 -13
  627. package/dist/providers/opencode-proxy/server.d.ts.map +0 -1
  628. package/dist/providers/opencode-proxy/server.js +0 -52
  629. package/dist/providers/opencode-proxy/server.js.map +0 -1
  630. package/dist/providers/opencode-proxy/stream.d.ts +0 -4
  631. package/dist/providers/opencode-proxy/stream.d.ts.map +0 -1
  632. package/dist/providers/opencode-proxy/stream.js +0 -71
  633. package/dist/providers/opencode-proxy/stream.js.map +0 -1
  634. package/dist/providers/opencode-proxy/translate-stream.d.ts +0 -3
  635. package/dist/providers/opencode-proxy/translate-stream.d.ts.map +0 -1
  636. package/dist/providers/opencode-proxy/translate-stream.js +0 -205
  637. package/dist/providers/opencode-proxy/translate-stream.js.map +0 -1
  638. package/dist/providers/opencode-proxy/translate.d.ts +0 -11
  639. package/dist/providers/opencode-proxy/translate.d.ts.map +0 -1
  640. package/dist/providers/opencode-proxy/translate.js +0 -250
  641. package/dist/providers/opencode-proxy/translate.js.map +0 -1
  642. package/dist/providers/opencode-proxy/types.d.ts +0 -110
  643. package/dist/providers/opencode-proxy/types.d.ts.map +0 -1
  644. package/dist/providers/opencode-proxy/types.js +0 -38
  645. package/dist/providers/opencode-proxy/types.js.map +0 -1
  646. package/dist/providers/opencode-proxy-lifecycle.d.ts +0 -11
  647. package/dist/providers/opencode-proxy-lifecycle.d.ts.map +0 -1
  648. package/dist/providers/opencode-proxy-lifecycle.js +0 -144
  649. package/dist/providers/opencode-proxy-lifecycle.js.map +0 -1
  650. package/dist/providers/opencode.d.ts +0 -40
  651. package/dist/providers/opencode.d.ts.map +0 -1
  652. package/dist/providers/opencode.js +0 -190
  653. package/dist/providers/opencode.js.map +0 -1
  654. package/dist/providers/protocol/anthropic-convert.d.ts +0 -12
  655. package/dist/providers/protocol/anthropic-convert.d.ts.map +0 -1
  656. package/dist/providers/protocol/anthropic-convert.js +0 -113
  657. package/dist/providers/protocol/anthropic-convert.js.map +0 -1
  658. package/dist/providers/protocol/anthropic-helpers.d.ts +0 -13
  659. package/dist/providers/protocol/anthropic-helpers.d.ts.map +0 -1
  660. package/dist/providers/protocol/anthropic-helpers.js +0 -179
  661. package/dist/providers/protocol/anthropic-helpers.js.map +0 -1
  662. package/dist/providers/protocol/anthropic-stream-reader.d.ts +0 -13
  663. package/dist/providers/protocol/anthropic-stream-reader.d.ts.map +0 -1
  664. package/dist/providers/protocol/anthropic-stream-reader.js +0 -46
  665. package/dist/providers/protocol/anthropic-stream-reader.js.map +0 -1
  666. package/dist/providers/protocol/anthropic-stream.d.ts +0 -7
  667. package/dist/providers/protocol/anthropic-stream.d.ts.map +0 -1
  668. package/dist/providers/protocol/anthropic-stream.js +0 -318
  669. package/dist/providers/protocol/anthropic-stream.js.map +0 -1
  670. package/dist/providers/protocol/anthropic-types.d.ts +0 -240
  671. package/dist/providers/protocol/anthropic-types.d.ts.map +0 -1
  672. package/dist/providers/protocol/anthropic.d.ts +0 -20
  673. package/dist/providers/protocol/anthropic.d.ts.map +0 -1
  674. package/dist/providers/protocol/gemini/translate-anthropic.d.ts +0 -15
  675. package/dist/providers/protocol/gemini/translate-anthropic.d.ts.map +0 -1
  676. package/dist/providers/protocol/gemini/translate-anthropic.js +0 -84
  677. package/dist/providers/protocol/gemini/translate-anthropic.js.map +0 -1
  678. package/dist/providers/protocol/gemini/translate-chat.d.ts +0 -5
  679. package/dist/providers/protocol/gemini/translate-chat.d.ts.map +0 -1
  680. package/dist/providers/protocol/gemini/translate-chat.js +0 -142
  681. package/dist/providers/protocol/gemini/translate-chat.js.map +0 -1
  682. package/dist/providers/protocol/gemini/translate-models.d.ts +0 -40
  683. package/dist/providers/protocol/gemini/translate-models.d.ts.map +0 -1
  684. package/dist/providers/protocol/gemini/translate-models.js +0 -186
  685. package/dist/providers/protocol/gemini/translate-models.js.map +0 -1
  686. package/dist/providers/protocol/gemini/translate-responses.d.ts +0 -6
  687. package/dist/providers/protocol/gemini/translate-responses.d.ts.map +0 -1
  688. package/dist/providers/protocol/gemini/translate-responses.js +0 -187
  689. package/dist/providers/protocol/gemini/translate-responses.js.map +0 -1
  690. package/dist/providers/protocol/gemini/translate-schema.d.ts +0 -9
  691. package/dist/providers/protocol/gemini/translate-schema.d.ts.map +0 -1
  692. package/dist/providers/protocol/gemini/translate-schema.js +0 -48
  693. package/dist/providers/protocol/gemini/translate-schema.js.map +0 -1
  694. package/dist/providers/protocol/gemini/translate-shared.d.ts +0 -8
  695. package/dist/providers/protocol/gemini/translate-shared.d.ts.map +0 -1
  696. package/dist/providers/protocol/gemini/translate-shared.js +0 -47
  697. package/dist/providers/protocol/gemini/translate-shared.js.map +0 -1
  698. package/dist/providers/protocol/gemini/translate-thinking.d.ts +0 -7
  699. package/dist/providers/protocol/gemini/translate-thinking.d.ts.map +0 -1
  700. package/dist/providers/protocol/gemini/translate-thinking.js +0 -65
  701. package/dist/providers/protocol/gemini/translate-thinking.js.map +0 -1
  702. package/dist/providers/protocol/gemini/translate-types.d.ts +0 -133
  703. package/dist/providers/protocol/gemini/translate-types.d.ts.map +0 -1
  704. package/dist/providers/protocol/gemini/translate.d.ts +0 -7
  705. package/dist/providers/protocol/gemini/translate.d.ts.map +0 -1
  706. package/dist/providers/protocol/json-schema.d.ts +0 -52
  707. package/dist/providers/protocol/json-schema.d.ts.map +0 -1
  708. package/dist/providers/protocol/json-schema.js +0 -189
  709. package/dist/providers/protocol/json-schema.js.map +0 -1
  710. package/dist/providers/protocol/token-estimate.d.ts +0 -15
  711. package/dist/providers/protocol/token-estimate.d.ts.map +0 -1
  712. package/dist/providers/protocol/token-estimate.js +0 -34
  713. package/dist/providers/protocol/token-estimate.js.map +0 -1
  714. package/dist/providers/proxy-hub-backend.d.ts +0 -4
  715. package/dist/providers/proxy-hub-backend.d.ts.map +0 -1
  716. package/dist/providers/proxy-hub-backend.js +0 -11
  717. package/dist/providers/proxy-hub-backend.js.map +0 -1
  718. package/dist/providers/proxy-process.d.ts +0 -35
  719. package/dist/providers/proxy-process.d.ts.map +0 -1
  720. package/dist/providers/proxy-process.js +0 -119
  721. package/dist/providers/proxy-process.js.map +0 -1
  722. package/dist/providers/proxy-shared.d.ts +0 -43
  723. package/dist/providers/proxy-shared.d.ts.map +0 -1
  724. package/dist/providers/proxy-shared.js +0 -128
  725. package/dist/providers/proxy-shared.js.map +0 -1
  726. package/dist/providers/quota-guard.d.ts +0 -49
  727. package/dist/providers/quota-guard.d.ts.map +0 -1
  728. package/dist/providers/quota-guard.js +0 -107
  729. package/dist/providers/quota-guard.js.map +0 -1
  730. package/dist/providers/reasoning.d.ts +0 -27
  731. package/dist/providers/reasoning.d.ts.map +0 -1
  732. package/dist/providers/reasoning.js +0 -61
  733. package/dist/providers/reasoning.js.map +0 -1
  734. package/dist/providers/upstream-policy.d.ts +0 -33
  735. package/dist/providers/upstream-policy.d.ts.map +0 -1
  736. package/dist/providers/upstream-policy.js +0 -97
  737. package/dist/providers/upstream-policy.js.map +0 -1
  738. package/dist/public-types.d.ts +0 -3
  739. package/dist/public-types.d.ts.map +0 -1
  740. package/dist/public.d.ts +0 -19
  741. package/dist/public.d.ts.map +0 -1
  742. package/dist/public.js +0 -16
  743. package/dist/public.js.map +0 -1
  744. package/dist/sources/account-adapters.d.ts +0 -64
  745. package/dist/sources/account-adapters.d.ts.map +0 -1
  746. package/dist/sources/account-adapters.js +0 -205
  747. package/dist/sources/account-adapters.js.map +0 -1
  748. package/dist/sources/gateway-adapters.d.ts +0 -26
  749. package/dist/sources/gateway-adapters.d.ts.map +0 -1
  750. package/dist/sources/gateway-adapters.js +0 -43
  751. package/dist/sources/gateway-adapters.js.map +0 -1
  752. package/dist/sources/kiro-proxy-bin.d.ts +0 -41
  753. package/dist/sources/kiro-proxy-bin.d.ts.map +0 -1
  754. package/dist/sources/kiro-proxy-bin.js +0 -140
  755. package/dist/sources/kiro-proxy-bin.js.map +0 -1
  756. package/dist/sources/proxy-hub-adapters.d.ts +0 -7
  757. package/dist/sources/proxy-hub-adapters.d.ts.map +0 -1
  758. package/dist/sources/proxy-hub-adapters.js +0 -26
  759. package/dist/sources/proxy-hub-adapters.js.map +0 -1
  760. package/dist/testing.d.ts +0 -9
  761. package/dist/testing.d.ts.map +0 -1
  762. package/dist/testing.js +0 -6
  763. package/dist/tray/AnyPickTray.swift +0 -3
  764. package/dist/tray/activity.d.ts +0 -18
  765. package/dist/tray/activity.d.ts.map +0 -1
  766. package/dist/tray/activity.js +0 -51
  767. package/dist/tray/activity.js.map +0 -1
  768. package/dist/tray/app-icons/icon-1024.png +0 -0
  769. package/dist/tray/app-icons/icon-128.png +0 -0
  770. package/dist/tray/app-icons/icon-16.png +0 -0
  771. package/dist/tray/app-icons/icon-256.png +0 -0
  772. package/dist/tray/app-icons/icon-32.png +0 -0
  773. package/dist/tray/app-icons/icon-512.png +0 -0
  774. package/dist/tray/app-icons/icon-64.png +0 -0
  775. package/dist/tray/icons/claude.svg +0 -1
  776. package/dist/tray/icons/googlegemini.svg +0 -1
  777. package/dist/tray/icons/grok.svg +0 -1
  778. package/dist/tray/icons/kiro.svg +0 -1
  779. package/dist/tray/icons/openai.svg +0 -1
  780. package/dist/tray/icons/opencode.svg +0 -1
  781. package/dist/tray/icons/openrouter.svg +0 -1
  782. package/dist/tray/model-role-actions.d.ts +0 -15
  783. package/dist/tray/model-role-actions.d.ts.map +0 -1
  784. package/dist/tray/model-role-actions.js +0 -41
  785. package/dist/tray/model-role-actions.js.map +0 -1
  786. package/dist/tray/native/AccountsPanel.swift +0 -434
  787. package/dist/tray/native/AppEntry.swift +0 -229
  788. package/dist/tray/native/MainWindow.swift +0 -300
  789. package/dist/tray/native/ManageFormChrome.swift +0 -332
  790. package/dist/tray/native/ManageForms.swift +0 -472
  791. package/dist/tray/native/ManagePanel.swift +0 -356
  792. package/dist/tray/native/Models.swift +0 -259
  793. package/dist/tray/native/ModelsEditor.swift +0 -390
  794. package/dist/tray/native/ModelsOverview.swift +0 -76
  795. package/dist/tray/native/ModelsPickers.swift +0 -273
  796. package/dist/tray/native/ModelsRoutePickers.swift +0 -718
  797. package/dist/tray/native/MonitorPanel.swift +0 -375
  798. package/dist/tray/native/ProxyPanel.swift +0 -326
  799. package/dist/tray/native/QuickActivityRow.swift +0 -40
  800. package/dist/tray/native/QuickNav.swift +0 -62
  801. package/dist/tray/native/QuickPanel.swift +0 -447
  802. package/dist/tray/native/QuickRouteRow.swift +0 -189
  803. package/dist/tray/native/QuickServiceRows.swift +0 -292
  804. package/dist/tray/native/RoutingIssues.swift +0 -293
  805. package/dist/tray/native/SettingsPanel.swift +0 -225
  806. package/dist/tray/native/SharedUI.swift +0 -681
  807. package/dist/tray/native/Store.swift +0 -540
  808. package/dist/tray/native/Theme.swift +0 -139
  809. package/dist/tray/native/TrayChrome.swift +0 -657
  810. package/dist/tray/native/TrayControls.swift +0 -475
  811. package/dist/tray/native/TrayPreferences.swift +0 -46
  812. package/dist/tray/native/sources.txt +0 -26
  813. package/dist/tray/native-sources.d.ts +0 -8
  814. package/dist/tray/native-sources.d.ts.map +0 -1
  815. package/dist/tray/native-sources.js +0 -19
  816. package/dist/tray/native-sources.js.map +0 -1
  817. package/dist/tray/protocol.d.ts +0 -79
  818. package/dist/tray/protocol.d.ts.map +0 -1
  819. package/dist/tray/protocol.js +0 -145
  820. package/dist/tray/protocol.js.map +0 -1
  821. package/dist/tray/settings.d.ts +0 -15
  822. package/dist/tray/settings.d.ts.map +0 -1
  823. package/dist/tray/settings.js +0 -72
  824. package/dist/tray/settings.js.map +0 -1
  825. package/dist/tray/snapshot-client-routes.d.ts +0 -11
  826. package/dist/tray/snapshot-client-routes.d.ts.map +0 -1
  827. package/dist/tray/snapshot-client-routes.js +0 -305
  828. package/dist/tray/snapshot-client-routes.js.map +0 -1
  829. package/dist/tray/snapshot-helpers.d.ts +0 -20
  830. package/dist/tray/snapshot-helpers.d.ts.map +0 -1
  831. package/dist/tray/snapshot-helpers.js +0 -74
  832. package/dist/tray/snapshot-helpers.js.map +0 -1
  833. package/dist/tray/snapshot-hub.d.ts +0 -7
  834. package/dist/tray/snapshot-hub.d.ts.map +0 -1
  835. package/dist/tray/snapshot-hub.js +0 -93
  836. package/dist/tray/snapshot-hub.js.map +0 -1
  837. package/dist/tray/snapshot-resources.d.ts +0 -19
  838. package/dist/tray/snapshot-resources.d.ts.map +0 -1
  839. package/dist/tray/snapshot-resources.js +0 -216
  840. package/dist/tray/snapshot-resources.js.map +0 -1
  841. package/dist/tray/snapshot-types.d.ts +0 -229
  842. package/dist/tray/snapshot-types.d.ts.map +0 -1
  843. package/dist/tray/snapshot-usage.d.ts +0 -9
  844. package/dist/tray/snapshot-usage.d.ts.map +0 -1
  845. package/dist/tray/snapshot-usage.js +0 -35
  846. package/dist/tray/snapshot-usage.js.map +0 -1
  847. package/dist/tray/snapshot.d.ts +0 -7
  848. package/dist/tray/snapshot.d.ts.map +0 -1
  849. package/dist/tray/snapshot.js +0 -48
  850. package/dist/tray/snapshot.js.map +0 -1
  851. package/dist/tray/supervisor-actions.d.ts +0 -19
  852. package/dist/tray/supervisor-actions.d.ts.map +0 -1
  853. package/dist/tray/supervisor-actions.js +0 -224
  854. package/dist/tray/supervisor-actions.js.map +0 -1
  855. package/dist/tray/supervisor-activity.d.ts +0 -5
  856. package/dist/tray/supervisor-activity.d.ts.map +0 -1
  857. package/dist/tray/supervisor-activity.js +0 -19
  858. package/dist/tray/supervisor-activity.js.map +0 -1
  859. package/dist/tray/supervisor-errors.d.ts +0 -9
  860. package/dist/tray/supervisor-errors.d.ts.map +0 -1
  861. package/dist/tray/supervisor-errors.js +0 -91
  862. package/dist/tray/supervisor-errors.js.map +0 -1
  863. package/dist/tray/supervisor-logs.d.ts +0 -6
  864. package/dist/tray/supervisor-logs.d.ts.map +0 -1
  865. package/dist/tray/supervisor-logs.js +0 -52
  866. package/dist/tray/supervisor-logs.js.map +0 -1
  867. package/dist/tray/supervisor-mutations.d.ts +0 -14
  868. package/dist/tray/supervisor-mutations.d.ts.map +0 -1
  869. package/dist/tray/supervisor-mutations.js +0 -218
  870. package/dist/tray/supervisor-mutations.js.map +0 -1
  871. package/dist/tray/supervisor-native.d.ts +0 -22
  872. package/dist/tray/supervisor-native.d.ts.map +0 -1
  873. package/dist/tray/supervisor-native.js +0 -227
  874. package/dist/tray/supervisor-native.js.map +0 -1
  875. package/dist/tray/supervisor-proxies.d.ts +0 -6
  876. package/dist/tray/supervisor-proxies.d.ts.map +0 -1
  877. package/dist/tray/supervisor-proxies.js +0 -37
  878. package/dist/tray/supervisor-proxies.js.map +0 -1
  879. package/dist/tray/supervisor-tauri.d.ts +0 -13
  880. package/dist/tray/supervisor-tauri.d.ts.map +0 -1
  881. package/dist/tray/supervisor-tauri.js +0 -36
  882. package/dist/tray/supervisor-tauri.js.map +0 -1
  883. package/dist/tray/supervisor.d.ts +0 -17
  884. package/dist/tray/supervisor.d.ts.map +0 -1
  885. package/dist/tray/supervisor.js +0 -372
  886. package/dist/tray/supervisor.js.map +0 -1
  887. package/dist/tray/terminal-launcher.d.ts +0 -12
  888. package/dist/tray/terminal-launcher.d.ts.map +0 -1
  889. package/dist/tray/terminal-launcher.js +0 -130
  890. package/dist/tray/terminal-launcher.js.map +0 -1
  891. package/dist/tui/actions/ensure-proxy-up.d.ts +0 -15
  892. package/dist/tui/actions/ensure-proxy-up.d.ts.map +0 -1
  893. package/dist/tui/actions/ensure-proxy-up.js +0 -41
  894. package/dist/tui/actions/ensure-proxy-up.js.map +0 -1
  895. package/dist/tui/actions/use-account-actions.d.ts +0 -35
  896. package/dist/tui/actions/use-account-actions.d.ts.map +0 -1
  897. package/dist/tui/actions/use-account-actions.js +0 -527
  898. package/dist/tui/actions/use-account-actions.js.map +0 -1
  899. package/dist/tui/actions/use-app-bindings.d.ts +0 -83
  900. package/dist/tui/actions/use-app-bindings.d.ts.map +0 -1
  901. package/dist/tui/actions/use-app-bindings.js +0 -472
  902. package/dist/tui/actions/use-app-bindings.js.map +0 -1
  903. package/dist/tui/actions/use-gateway-actions.d.ts +0 -45
  904. package/dist/tui/actions/use-gateway-actions.d.ts.map +0 -1
  905. package/dist/tui/actions/use-gateway-actions.js +0 -370
  906. package/dist/tui/actions/use-gateway-actions.js.map +0 -1
  907. package/dist/tui/actions/use-home-filter.d.ts +0 -24
  908. package/dist/tui/actions/use-home-filter.d.ts.map +0 -1
  909. package/dist/tui/actions/use-home-filter.js +0 -48
  910. package/dist/tui/actions/use-home-filter.js.map +0 -1
  911. package/dist/tui/actions/use-model-role-editor.d.ts +0 -44
  912. package/dist/tui/actions/use-model-role-editor.d.ts.map +0 -1
  913. package/dist/tui/actions/use-model-role-editor.js +0 -68
  914. package/dist/tui/actions/use-model-role-editor.js.map +0 -1
  915. package/dist/tui/actions/use-provider-filter.d.ts +0 -10
  916. package/dist/tui/actions/use-provider-filter.d.ts.map +0 -1
  917. package/dist/tui/actions/use-provider-filter.js +0 -22
  918. package/dist/tui/actions/use-provider-filter.js.map +0 -1
  919. package/dist/tui/actions/use-proxy-actions.d.ts +0 -31
  920. package/dist/tui/actions/use-proxy-actions.d.ts.map +0 -1
  921. package/dist/tui/actions/use-proxy-actions.js +0 -474
  922. package/dist/tui/actions/use-proxy-actions.js.map +0 -1
  923. package/dist/tui/actions/use-text-input-submit.d.ts +0 -16
  924. package/dist/tui/actions/use-text-input-submit.d.ts.map +0 -1
  925. package/dist/tui/actions/use-text-input-submit.js +0 -96
  926. package/dist/tui/actions/use-text-input-submit.js.map +0 -1
  927. package/dist/tui/actions/use-tray-runtime-actions.d.ts +0 -18
  928. package/dist/tui/actions/use-tray-runtime-actions.d.ts.map +0 -1
  929. package/dist/tui/actions/use-tray-runtime-actions.js +0 -78
  930. package/dist/tui/actions/use-tray-runtime-actions.js.map +0 -1
  931. package/dist/tui/app-ui-helpers.d.ts +0 -14
  932. package/dist/tui/app-ui-helpers.d.ts.map +0 -1
  933. package/dist/tui/app-ui-helpers.js +0 -48
  934. package/dist/tui/app-ui-helpers.js.map +0 -1
  935. package/dist/tui/app-ui.d.ts +0 -19
  936. package/dist/tui/app-ui.d.ts.map +0 -1
  937. package/dist/tui/app-ui.js +0 -98
  938. package/dist/tui/app-ui.js.map +0 -1
  939. package/dist/tui/components/chrome/header.d.ts +0 -39
  940. package/dist/tui/components/chrome/header.d.ts.map +0 -1
  941. package/dist/tui/components/chrome/header.js +0 -161
  942. package/dist/tui/components/chrome/header.js.map +0 -1
  943. package/dist/tui/components/chrome/inputs.d.ts +0 -34
  944. package/dist/tui/components/chrome/inputs.d.ts.map +0 -1
  945. package/dist/tui/components/chrome/inputs.js +0 -82
  946. package/dist/tui/components/chrome/inputs.js.map +0 -1
  947. package/dist/tui/components/chrome/layout.d.ts +0 -61
  948. package/dist/tui/components/chrome/layout.d.ts.map +0 -1
  949. package/dist/tui/components/chrome/layout.js +0 -119
  950. package/dist/tui/components/chrome/layout.js.map +0 -1
  951. package/dist/tui/components/chrome/legacy.d.ts +0 -84
  952. package/dist/tui/components/chrome/legacy.d.ts.map +0 -1
  953. package/dist/tui/components/chrome/legacy.js +0 -6
  954. package/dist/tui/components/chrome/rows.d.ts +0 -89
  955. package/dist/tui/components/chrome/rows.d.ts.map +0 -1
  956. package/dist/tui/components/chrome/rows.js +0 -151
  957. package/dist/tui/components/chrome/rows.js.map +0 -1
  958. package/dist/tui/components/chrome/status.d.ts +0 -50
  959. package/dist/tui/components/chrome/status.d.ts.map +0 -1
  960. package/dist/tui/components/chrome/status.js +0 -157
  961. package/dist/tui/components/chrome/status.js.map +0 -1
  962. package/dist/tui/components/chrome.d.ts +0 -7
  963. package/dist/tui/components/chrome.d.ts.map +0 -1
  964. package/dist/tui/components/chrome.js +0 -7
  965. package/dist/tui/components.d.ts +0 -26
  966. package/dist/tui/components.d.ts.map +0 -1
  967. package/dist/tui/components.js +0 -182
  968. package/dist/tui/components.js.map +0 -1
  969. package/dist/tui/model/anypick.d.ts +0 -106
  970. package/dist/tui/model/anypick.d.ts.map +0 -1
  971. package/dist/tui/model/anypick.js +0 -116
  972. package/dist/tui/model/anypick.js.map +0 -1
  973. package/dist/tui/model/bindings.d.ts +0 -39
  974. package/dist/tui/model/bindings.d.ts.map +0 -1
  975. package/dist/tui/model/bindings.js +0 -102
  976. package/dist/tui/model/bindings.js.map +0 -1
  977. package/dist/tui/model/detail.d.ts +0 -6
  978. package/dist/tui/model/detail.d.ts.map +0 -1
  979. package/dist/tui/model/detail.js +0 -85
  980. package/dist/tui/model/detail.js.map +0 -1
  981. package/dist/tui/model/gateway.d.ts +0 -46
  982. package/dist/tui/model/gateway.d.ts.map +0 -1
  983. package/dist/tui/model/gateway.js +0 -134
  984. package/dist/tui/model/gateway.js.map +0 -1
  985. package/dist/tui/model/home-format.d.ts +0 -52
  986. package/dist/tui/model/home-format.d.ts.map +0 -1
  987. package/dist/tui/model/home-format.js +0 -64
  988. package/dist/tui/model/home-format.js.map +0 -1
  989. package/dist/tui/model/home-load.d.ts +0 -8
  990. package/dist/tui/model/home-load.d.ts.map +0 -1
  991. package/dist/tui/model/home-load.js +0 -244
  992. package/dist/tui/model/home-load.js.map +0 -1
  993. package/dist/tui/model/identity.d.ts +0 -53
  994. package/dist/tui/model/identity.d.ts.map +0 -1
  995. package/dist/tui/model/identity.js +0 -176
  996. package/dist/tui/model/identity.js.map +0 -1
  997. package/dist/tui/model/line-editor.d.ts +0 -99
  998. package/dist/tui/model/line-editor.d.ts.map +0 -1
  999. package/dist/tui/model/line-editor.js +0 -186
  1000. package/dist/tui/model/line-editor.js.map +0 -1
  1001. package/dist/tui/model/names.d.ts +0 -28
  1002. package/dist/tui/model/names.d.ts.map +0 -1
  1003. package/dist/tui/model/names.js +0 -42
  1004. package/dist/tui/model/names.js.map +0 -1
  1005. package/dist/tui/model/pool.d.ts +0 -11
  1006. package/dist/tui/model/pool.d.ts.map +0 -1
  1007. package/dist/tui/model/pool.js +0 -115
  1008. package/dist/tui/model/pool.js.map +0 -1
  1009. package/dist/tui/model/provider-filter.d.ts +0 -14
  1010. package/dist/tui/model/provider-filter.d.ts.map +0 -1
  1011. package/dist/tui/model/provider-filter.js +0 -46
  1012. package/dist/tui/model/provider-filter.js.map +0 -1
  1013. package/dist/tui/model/proxy-hub.d.ts +0 -23
  1014. package/dist/tui/model/proxy-hub.d.ts.map +0 -1
  1015. package/dist/tui/model/proxy-hub.js +0 -69
  1016. package/dist/tui/model/proxy-hub.js.map +0 -1
  1017. package/dist/tui/model/proxy-labels.d.ts +0 -5
  1018. package/dist/tui/model/proxy-labels.d.ts.map +0 -1
  1019. package/dist/tui/model/proxy-labels.js +0 -18
  1020. package/dist/tui/model/proxy-labels.js.map +0 -1
  1021. package/dist/tui/model/proxy.d.ts +0 -15
  1022. package/dist/tui/model/proxy.d.ts.map +0 -1
  1023. package/dist/tui/model/proxy.js +0 -214
  1024. package/dist/tui/model/proxy.js.map +0 -1
  1025. package/dist/tui/model/root.d.ts +0 -20
  1026. package/dist/tui/model/root.d.ts.map +0 -1
  1027. package/dist/tui/model/root.js +0 -126
  1028. package/dist/tui/model/root.js.map +0 -1
  1029. package/dist/tui/model/route-builder.d.ts +0 -25
  1030. package/dist/tui/model/route-builder.d.ts.map +0 -1
  1031. package/dist/tui/model/route-builder.js +0 -199
  1032. package/dist/tui/model/route-builder.js.map +0 -1
  1033. package/dist/tui/model/screen.d.ts +0 -260
  1034. package/dist/tui/model/screen.d.ts.map +0 -1
  1035. package/dist/tui/model/types.d.ts +0 -179
  1036. package/dist/tui/model/types.d.ts.map +0 -1
  1037. package/dist/tui/model.d.ts +0 -18
  1038. package/dist/tui/model.d.ts.map +0 -1
  1039. package/dist/tui/model.js +0 -17
  1040. package/dist/tui/proxy-models-fetch.d.ts +0 -34
  1041. package/dist/tui/proxy-models-fetch.d.ts.map +0 -1
  1042. package/dist/tui/proxy-models-fetch.js +0 -87
  1043. package/dist/tui/proxy-models-fetch.js.map +0 -1
  1044. package/dist/tui/routes/account.d.ts +0 -4
  1045. package/dist/tui/routes/account.d.ts.map +0 -1
  1046. package/dist/tui/routes/account.js +0 -327
  1047. package/dist/tui/routes/account.js.map +0 -1
  1048. package/dist/tui/routes/apps.d.ts +0 -3
  1049. package/dist/tui/routes/apps.d.ts.map +0 -1
  1050. package/dist/tui/routes/apps.js +0 -296
  1051. package/dist/tui/routes/apps.js.map +0 -1
  1052. package/dist/tui/routes/common.d.ts +0 -4
  1053. package/dist/tui/routes/common.d.ts.map +0 -1
  1054. package/dist/tui/routes/common.js +0 -117
  1055. package/dist/tui/routes/common.js.map +0 -1
  1056. package/dist/tui/routes/context.d.ts +0 -43
  1057. package/dist/tui/routes/context.d.ts.map +0 -1
  1058. package/dist/tui/routes/gateway.d.ts +0 -3
  1059. package/dist/tui/routes/gateway.d.ts.map +0 -1
  1060. package/dist/tui/routes/gateway.js +0 -199
  1061. package/dist/tui/routes/gateway.js.map +0 -1
  1062. package/dist/tui/routes/proxy.d.ts +0 -3
  1063. package/dist/tui/routes/proxy.d.ts.map +0 -1
  1064. package/dist/tui/routes/proxy.js +0 -234
  1065. package/dist/tui/routes/proxy.js.map +0 -1
  1066. package/dist/tui/screens/account-detail.d.ts +0 -14
  1067. package/dist/tui/screens/account-detail.d.ts.map +0 -1
  1068. package/dist/tui/screens/account-detail.js +0 -98
  1069. package/dist/tui/screens/account-detail.js.map +0 -1
  1070. package/dist/tui/screens/accounts-home.d.ts +0 -42
  1071. package/dist/tui/screens/accounts-home.d.ts.map +0 -1
  1072. package/dist/tui/screens/accounts-home.js +0 -321
  1073. package/dist/tui/screens/accounts-home.js.map +0 -1
  1074. package/dist/tui/screens/add-account.d.ts +0 -70
  1075. package/dist/tui/screens/add-account.d.ts.map +0 -1
  1076. package/dist/tui/screens/add-account.js +0 -323
  1077. package/dist/tui/screens/add-account.js.map +0 -1
  1078. package/dist/tui/screens/anypick-home.d.ts +0 -39
  1079. package/dist/tui/screens/anypick-home.d.ts.map +0 -1
  1080. package/dist/tui/screens/anypick-home.js +0 -253
  1081. package/dist/tui/screens/anypick-home.js.map +0 -1
  1082. package/dist/tui/screens/anypick-preview.d.ts +0 -13
  1083. package/dist/tui/screens/anypick-preview.d.ts.map +0 -1
  1084. package/dist/tui/screens/anypick-preview.js +0 -49
  1085. package/dist/tui/screens/anypick-preview.js.map +0 -1
  1086. package/dist/tui/screens/app-route-preview.d.ts +0 -14
  1087. package/dist/tui/screens/app-route-preview.d.ts.map +0 -1
  1088. package/dist/tui/screens/app-route-preview.js +0 -35
  1089. package/dist/tui/screens/app-route-preview.js.map +0 -1
  1090. package/dist/tui/screens/app-route-source.d.ts +0 -15
  1091. package/dist/tui/screens/app-route-source.d.ts.map +0 -1
  1092. package/dist/tui/screens/app-route-source.js +0 -97
  1093. package/dist/tui/screens/app-route-source.js.map +0 -1
  1094. package/dist/tui/screens/apps-home.d.ts +0 -22
  1095. package/dist/tui/screens/apps-home.d.ts.map +0 -1
  1096. package/dist/tui/screens/apps-home.js +0 -111
  1097. package/dist/tui/screens/apps-home.js.map +0 -1
  1098. package/dist/tui/screens/confirm.d.ts +0 -19
  1099. package/dist/tui/screens/confirm.d.ts.map +0 -1
  1100. package/dist/tui/screens/confirm.js +0 -42
  1101. package/dist/tui/screens/confirm.js.map +0 -1
  1102. package/dist/tui/screens/credential-form.d.ts +0 -30
  1103. package/dist/tui/screens/credential-form.d.ts.map +0 -1
  1104. package/dist/tui/screens/credential-form.js +0 -241
  1105. package/dist/tui/screens/credential-form.js.map +0 -1
  1106. package/dist/tui/screens/gateway-connection-form.d.ts +0 -16
  1107. package/dist/tui/screens/gateway-connection-form.d.ts.map +0 -1
  1108. package/dist/tui/screens/gateway-connection-form.js +0 -127
  1109. package/dist/tui/screens/gateway-connection-form.js.map +0 -1
  1110. package/dist/tui/screens/gateway-pick-provider.d.ts +0 -19
  1111. package/dist/tui/screens/gateway-pick-provider.d.ts.map +0 -1
  1112. package/dist/tui/screens/gateway-pick-provider.js +0 -62
  1113. package/dist/tui/screens/gateway-pick-provider.js.map +0 -1
  1114. package/dist/tui/screens/gateways-home.d.ts +0 -38
  1115. package/dist/tui/screens/gateways-home.d.ts.map +0 -1
  1116. package/dist/tui/screens/gateways-home.js +0 -247
  1117. package/dist/tui/screens/gateways-home.js.map +0 -1
  1118. package/dist/tui/screens/health.d.ts +0 -16
  1119. package/dist/tui/screens/health.d.ts.map +0 -1
  1120. package/dist/tui/screens/health.js +0 -109
  1121. package/dist/tui/screens/health.js.map +0 -1
  1122. package/dist/tui/screens/help.d.ts +0 -10
  1123. package/dist/tui/screens/help.d.ts.map +0 -1
  1124. package/dist/tui/screens/help.js +0 -213
  1125. package/dist/tui/screens/help.js.map +0 -1
  1126. package/dist/tui/screens/manage-apps.d.ts +0 -29
  1127. package/dist/tui/screens/manage-apps.d.ts.map +0 -1
  1128. package/dist/tui/screens/manage-apps.js +0 -165
  1129. package/dist/tui/screens/manage-apps.js.map +0 -1
  1130. package/dist/tui/screens/proxy-board-helpers.d.ts +0 -9
  1131. package/dist/tui/screens/proxy-board-helpers.d.ts.map +0 -1
  1132. package/dist/tui/screens/proxy-board-helpers.js +0 -70
  1133. package/dist/tui/screens/proxy-board-helpers.js.map +0 -1
  1134. package/dist/tui/screens/proxy-board.d.ts +0 -43
  1135. package/dist/tui/screens/proxy-board.d.ts.map +0 -1
  1136. package/dist/tui/screens/proxy-board.js +0 -351
  1137. package/dist/tui/screens/proxy-board.js.map +0 -1
  1138. package/dist/tui/screens/proxy-hub.d.ts +0 -21
  1139. package/dist/tui/screens/proxy-hub.d.ts.map +0 -1
  1140. package/dist/tui/screens/proxy-hub.js +0 -150
  1141. package/dist/tui/screens/proxy-hub.js.map +0 -1
  1142. package/dist/tui/screens/proxy-models-utils.d.ts +0 -13
  1143. package/dist/tui/screens/proxy-models-utils.d.ts.map +0 -1
  1144. package/dist/tui/screens/proxy-models-utils.js +0 -53
  1145. package/dist/tui/screens/proxy-models-utils.js.map +0 -1
  1146. package/dist/tui/screens/proxy-models.d.ts +0 -65
  1147. package/dist/tui/screens/proxy-models.d.ts.map +0 -1
  1148. package/dist/tui/screens/proxy-models.js +0 -252
  1149. package/dist/tui/screens/proxy-models.js.map +0 -1
  1150. package/dist/tui/screens/proxy.d.ts +0 -26
  1151. package/dist/tui/screens/proxy.d.ts.map +0 -1
  1152. package/dist/tui/screens/text-input.d.ts +0 -18
  1153. package/dist/tui/screens/text-input.d.ts.map +0 -1
  1154. package/dist/tui/screens/text-input.js +0 -67
  1155. package/dist/tui/screens/text-input.js.map +0 -1
  1156. package/dist/tui/screens/tray-runtime.d.ts +0 -19
  1157. package/dist/tui/screens/tray-runtime.d.ts.map +0 -1
  1158. package/dist/tui/screens/tray-runtime.js +0 -108
  1159. package/dist/tui/screens/tray-runtime.js.map +0 -1
  1160. package/dist/tui/use-tui-nav.d.ts +0 -40
  1161. package/dist/tui/use-tui-nav.d.ts.map +0 -1
  1162. package/dist/tui/use-tui-nav.js +0 -256
  1163. package/dist/tui/use-tui-nav.js.map +0 -1
  1164. package/dist/tui/use-tui-shell.d.ts +0 -46
  1165. package/dist/tui/use-tui-shell.d.ts.map +0 -1
  1166. package/dist/tui/use-tui-shell.js +0 -95
  1167. package/dist/tui/use-tui-shell.js.map +0 -1
  1168. package/dist/types/account.d.ts +0 -410
  1169. package/dist/types/account.d.ts.map +0 -1
  1170. package/dist/types/account.js +0 -7
  1171. package/dist/types/account.js.map +0 -1
  1172. package/dist/types/bindings.d.ts +0 -300
  1173. package/dist/types/bindings.d.ts.map +0 -1
  1174. package/dist/types/catalog.d.ts +0 -165
  1175. package/dist/types/catalog.d.ts.map +0 -1
  1176. package/dist/types/clients.d.ts +0 -174
  1177. package/dist/types/clients.d.ts.map +0 -1
  1178. package/dist/types/clients.js +0 -11
  1179. package/dist/types/clients.js.map +0 -1
  1180. package/dist/types/plugins.d.ts +0 -89
  1181. package/dist/types/plugins.d.ts.map +0 -1
  1182. package/dist/types/plugins.js +0 -14
  1183. package/dist/types/plugins.js.map +0 -1
  1184. package/dist/types/proxy-hub.d.ts +0 -109
  1185. package/dist/types/proxy-hub.d.ts.map +0 -1
  1186. package/dist/types.d.ts +0 -7
  1187. package/dist/types.d.ts.map +0 -1
  1188. package/dist/types.js +0 -1
  1189. package/dist/utils/errors.d.ts +0 -61
  1190. package/dist/utils/errors.d.ts.map +0 -1
  1191. package/dist/utils/errors.js +0 -119
  1192. package/dist/utils/errors.js.map +0 -1
  1193. package/dist/utils/fs.d.ts +0 -39
  1194. package/dist/utils/fs.d.ts.map +0 -1
  1195. package/dist/utils/fs.js +0 -126
  1196. package/dist/utils/fs.js.map +0 -1
  1197. package/dist/utils/lock.d.ts +0 -33
  1198. package/dist/utils/lock.d.ts.map +0 -1
  1199. package/dist/utils/lock.js +0 -95
  1200. package/dist/utils/lock.js.map +0 -1
  1201. package/dist/utils/log.d.ts +0 -10
  1202. package/dist/utils/log.d.ts.map +0 -1
  1203. package/dist/utils/log.js +0 -21
  1204. package/dist/utils/log.js.map +0 -1
  1205. package/dist/utils/network.d.ts +0 -3
  1206. package/dist/utils/network.d.ts.map +0 -1
  1207. package/dist/utils/network.js +0 -13
  1208. package/dist/utils/network.js.map +0 -1
  1209. package/dist/utils/process/binary.d.ts +0 -14
  1210. package/dist/utils/process/binary.d.ts.map +0 -1
  1211. package/dist/utils/process/binary.js +0 -29
  1212. package/dist/utils/process/binary.js.map +0 -1
  1213. package/dist/utils/process/follow.d.ts +0 -2
  1214. package/dist/utils/process/follow.d.ts.map +0 -1
  1215. package/dist/utils/process/follow.js +0 -90
  1216. package/dist/utils/process/follow.js.map +0 -1
  1217. package/dist/utils/process/health.d.ts +0 -43
  1218. package/dist/utils/process/health.d.ts.map +0 -1
  1219. package/dist/utils/process/health.js +0 -132
  1220. package/dist/utils/process/health.js.map +0 -1
  1221. package/dist/utils/process/pid.d.ts +0 -95
  1222. package/dist/utils/process/pid.d.ts.map +0 -1
  1223. package/dist/utils/process/pid.js +0 -243
  1224. package/dist/utils/process/pid.js.map +0 -1
  1225. package/dist/utils/process.d.ts +0 -5
  1226. package/dist/utils/process.d.ts.map +0 -1
  1227. package/dist/utils/process.js +0 -5
  1228. package/dist/utils/slug.d.ts +0 -18
  1229. package/dist/utils/slug.d.ts.map +0 -1
  1230. package/dist/utils/slug.js +0 -42
  1231. package/dist/utils/slug.js.map +0 -1
@@ -1,27 +0,0 @@
1
- import type { ApiStyle, ApplyContext, ModelMap, RuntimeProfile } from '../types.js';
2
- import { type CatalogRegistry } from '../catalog/providers.js';
3
- export interface ResolvedRuntime {
4
- apiKey: string;
5
- endpoint: string;
6
- apiStyle: ApiStyle;
7
- defaultModel?: string;
8
- models: ModelMap;
9
- headers: Record<string, string>;
10
- /** Models from the profile (optionally expanded via models map). */
11
- roles: {
12
- default?: string;
13
- sonnet?: string;
14
- opus?: string;
15
- haiku?: string;
16
- };
17
- overlay: Record<string, unknown>;
18
- }
19
- /**
20
- * Resolve profile → concrete runtime values for a client.
21
- *
22
- * Models live on the profile (set at create/edit). Switching a profile
23
- * just reuses those fields — no per-client ceremony.
24
- */
25
- export declare function resolveRuntime(profile: RuntimeProfile, clientId: string, catalog?: CatalogRegistry, proxyEndpoint?: string): ResolvedRuntime;
26
- export declare function resolveFromContext(ctx: ApplyContext, catalog?: CatalogRegistry): ResolvedRuntime;
27
- //# sourceMappingURL=resolve.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/clients/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAmB,QAAQ,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAClG,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE7E,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,QAAQ,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,oEAAoE;IACpE,KAAK,EAAE;QACL,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AASD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,eAAiC,EAC1C,aAAa,CAAC,EAAE,MAAM,GACrB,eAAe,CA2DjB;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,eAAe,CAEhG"}
@@ -1,49 +0,0 @@
1
- import { catalogRegistry } from "../catalog/providers.js";
2
- //#region src/clients/resolve.ts
3
- function expandModel(value, models) {
4
- if (!value) return;
5
- return models[value] ?? value;
6
- }
7
- /**
8
- * Resolve profile → concrete runtime values for a client.
9
- *
10
- * Models live on the profile (set at create/edit). Switching a profile
11
- * just reuses those fields — no per-client ceremony.
12
- */
13
- function resolveRuntime(profile, clientId, catalog = catalogRegistry, proxyEndpoint) {
14
- let provider;
15
- if (catalog.has(profile.meta.provider)) provider = catalog.get(profile.meta.provider);
16
- const overlay = profile.meta.clientOverrides?.[clientId] ?? {};
17
- const models = { ...profile.meta.models };
18
- const headers = { ...profile.secrets.headers };
19
- const apiKey = (typeof overlay.apiKey === "string" ? overlay.apiKey : void 0) ?? (typeof profile.secrets.apiKey === "string" ? profile.secrets.apiKey : "") ?? "";
20
- const endpoint = proxyEndpoint ?? (typeof overlay.endpoint === "string" ? overlay.endpoint : void 0) ?? profile.meta.endpoint ?? provider?.defaultEndpoint ?? "";
21
- const apiStyle = overlay.apiStyle ?? provider?.apiStyle ?? "openai";
22
- const defaultAlias = (typeof overlay.defaultModel === "string" ? overlay.defaultModel : void 0) ?? profile.meta.defaultModel;
23
- const sonnetAlias = (typeof overlay.sonnetModel === "string" ? overlay.sonnetModel : void 0) ?? profile.meta.sonnetModel;
24
- const opusAlias = (typeof overlay.opusModel === "string" ? overlay.opusModel : void 0) ?? profile.meta.opusModel;
25
- const haikuAlias = (typeof overlay.haikuModel === "string" ? overlay.haikuModel : void 0) ?? profile.meta.haikuModel;
26
- const roles = {
27
- default: expandModel(defaultAlias, models),
28
- sonnet: expandModel(sonnetAlias, models),
29
- opus: expandModel(opusAlias, models),
30
- haiku: expandModel(haikuAlias, models)
31
- };
32
- return {
33
- apiKey,
34
- endpoint,
35
- apiStyle,
36
- defaultModel: roles.default,
37
- models,
38
- headers,
39
- roles,
40
- overlay
41
- };
42
- }
43
- function resolveFromContext(ctx, catalog) {
44
- return resolveRuntime(ctx.profile, ctx.clientId, catalog, ctx.proxyEndpoint);
45
- }
46
- //#endregion
47
- export { resolveFromContext, resolveRuntime };
48
-
49
- //# sourceMappingURL=resolve.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve.js","names":[],"sources":["../../src/clients/resolve.ts"],"sourcesContent":["import type { ApiStyle, ApplyContext, CatalogProvider, ModelMap, RuntimeProfile } from '../types';\nimport { catalogRegistry, type CatalogRegistry } from '../catalog/providers';\n\nexport interface ResolvedRuntime {\n apiKey: string;\n endpoint: string;\n apiStyle: ApiStyle;\n defaultModel?: string;\n models: ModelMap;\n headers: Record<string, string>;\n /** Models from the profile (optionally expanded via models map). */\n roles: {\n default?: string;\n sonnet?: string;\n opus?: string;\n haiku?: string;\n };\n overlay: Record<string, unknown>;\n}\n\nfunction expandModel(value: string | undefined, models: ModelMap): string | undefined {\n if (!value) {\n return undefined;\n }\n return models[value] ?? value;\n}\n\n/**\n * Resolve profile → concrete runtime values for a client.\n *\n * Models live on the profile (set at create/edit). Switching a profile\n * just reuses those fields — no per-client ceremony.\n */\nexport function resolveRuntime(\n profile: RuntimeProfile,\n clientId: string,\n catalog: CatalogRegistry = catalogRegistry,\n proxyEndpoint?: string,\n): ResolvedRuntime {\n let provider: CatalogProvider | undefined;\n if (catalog.has(profile.meta.provider)) {\n provider = catalog.get(profile.meta.provider);\n }\n\n const overlay = profile.meta.clientOverrides?.[clientId] ?? {};\n const models = { ...profile.meta.models };\n const headers = { ...profile.secrets.headers };\n\n const apiKey =\n (typeof overlay.apiKey === 'string' ? overlay.apiKey : undefined) ??\n (typeof profile.secrets.apiKey === 'string' ? profile.secrets.apiKey : '') ??\n '';\n\n const endpoint =\n proxyEndpoint ??\n (typeof overlay.endpoint === 'string' ? overlay.endpoint : undefined) ??\n profile.meta.endpoint ??\n provider?.defaultEndpoint ??\n '';\n\n const apiStyle: ApiStyle =\n (overlay.apiStyle as ApiStyle | undefined) ?? provider?.apiStyle ?? 'openai';\n\n // Profile fields first; advanced clientOverrides can still override.\n const defaultAlias =\n (typeof overlay.defaultModel === 'string' ? overlay.defaultModel : undefined) ??\n profile.meta.defaultModel;\n\n const sonnetAlias =\n (typeof overlay.sonnetModel === 'string' ? overlay.sonnetModel : undefined) ??\n profile.meta.sonnetModel;\n\n const opusAlias =\n (typeof overlay.opusModel === 'string' ? overlay.opusModel : undefined) ??\n profile.meta.opusModel;\n\n const haikuAlias =\n (typeof overlay.haikuModel === 'string' ? overlay.haikuModel : undefined) ??\n profile.meta.haikuModel;\n\n const roles = {\n default: expandModel(defaultAlias, models),\n sonnet: expandModel(sonnetAlias, models),\n opus: expandModel(opusAlias, models),\n haiku: expandModel(haikuAlias, models),\n };\n\n return {\n apiKey,\n endpoint,\n apiStyle,\n defaultModel: roles.default,\n models,\n headers,\n roles,\n overlay,\n };\n}\n\nexport function resolveFromContext(ctx: ApplyContext, catalog?: CatalogRegistry): ResolvedRuntime {\n return resolveRuntime(ctx.profile, ctx.clientId, catalog, ctx.proxyEndpoint);\n}\n"],"mappings":";;AAoBA,SAAS,YAAY,OAA2B,QAAsC;CACpF,IAAI,CAAC,OACH;CAEF,OAAO,OAAO,UAAU;AAC1B;;;;;;;AAQA,SAAgB,eACd,SACA,UACA,UAA2B,iBAC3B,eACiB;CACjB,IAAI;CACJ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,GACnC,WAAW,QAAQ,IAAI,QAAQ,KAAK,QAAQ;CAG9C,MAAM,UAAU,QAAQ,KAAK,kBAAkB,aAAa,CAAC;CAC7D,MAAM,SAAS,EAAE,GAAG,QAAQ,KAAK,OAAO;CACxC,MAAM,UAAU,EAAE,GAAG,QAAQ,QAAQ,QAAQ;CAE7C,MAAM,UACH,OAAO,QAAQ,WAAW,WAAW,QAAQ,SAAS,KAAA,OACtD,OAAO,QAAQ,QAAQ,WAAW,WAAW,QAAQ,QAAQ,SAAS,OACvE;CAEF,MAAM,WACJ,kBACC,OAAO,QAAQ,aAAa,WAAW,QAAQ,WAAW,KAAA,MAC3D,QAAQ,KAAK,YACb,UAAU,mBACV;CAEF,MAAM,WACH,QAAQ,YAAqC,UAAU,YAAY;CAGtE,MAAM,gBACH,OAAO,QAAQ,iBAAiB,WAAW,QAAQ,eAAe,KAAA,MACnE,QAAQ,KAAK;CAEf,MAAM,eACH,OAAO,QAAQ,gBAAgB,WAAW,QAAQ,cAAc,KAAA,MACjE,QAAQ,KAAK;CAEf,MAAM,aACH,OAAO,QAAQ,cAAc,WAAW,QAAQ,YAAY,KAAA,MAC7D,QAAQ,KAAK;CAEf,MAAM,cACH,OAAO,QAAQ,eAAe,WAAW,QAAQ,aAAa,KAAA,MAC/D,QAAQ,KAAK;CAEf,MAAM,QAAQ;EACZ,SAAS,YAAY,cAAc,MAAM;EACzC,QAAQ,YAAY,aAAa,MAAM;EACvC,MAAM,YAAY,WAAW,MAAM;EACnC,OAAO,YAAY,YAAY,MAAM;CACvC;CAEA,OAAO;EACL;EACA;EACA;EACA,cAAc,MAAM;EACpB;EACA;EACA;EACA;CACF;AACF;AAEA,SAAgB,mBAAmB,KAAmB,SAA4C;CAChG,OAAO,eAAe,IAAI,SAAS,IAAI,UAAU,SAAS,IAAI,aAAa;AAC7E"}
@@ -1,32 +0,0 @@
1
- import type { AccountMeta, AccountProxyConfig } from '../types.js';
2
- export declare const ACCOUNT_ENVELOPE_VERSION: 1;
3
- export declare const ACCOUNT_ENVELOPE_KIND: 'anypick-account';
4
- /** Reject obviously abusive envelopes without streaming unbounded memory. */
5
- export declare const MAX_IMPORT_FILES = 4096;
6
- export declare const MAX_IMPORT_FILE_BYTES: number;
7
- export declare const MAX_IMPORT_TOTAL_BYTES: number;
8
- /** The encoded envelope is larger than the decoded file budget. */
9
- export declare const MAX_IMPORT_ENVELOPE_BYTES: number;
10
- export declare const MAX_ACCOUNT_NAME_LEN = 128;
11
- export declare const MAX_FIELD_LEN = 4096;
12
- export interface DecodedAccountEnvelope {
13
- version: 1;
14
- kind: 'anypick-account';
15
- meta: AccountMeta;
16
- proxy: AccountProxyConfig | null;
17
- /** Relative key → base64 content. Keys are validated, never trusted raw. */
18
- files: Record<string, string>;
19
- }
20
- /** Decode + validate the raw import payload under the untrusted-boundary rule. */
21
- export declare function decodeAccountEnvelope(raw: unknown, expectedProviderId: string): DecodedAccountEnvelope;
22
- /**
23
- * Validate a single import file key purely (no staging root needed). Rejects
24
- * empty keys, NUL bytes, absolute POSIX/Windows paths, mixed separators, and
25
- * any normalized escape ('..' segments / leading-traversal). Throws a
26
- * `AnyPickError` on violation. Called from the codec (before any mutation) and
27
- * from `stagedFilePath` (defense-in-depth at write time).
28
- */
29
- export declare function validateImportFileKey(key: string): void;
30
- /** Resolve a validated relative file key to an absolute staging path. Never throws on traversal. */
31
- export declare function stagedFilePath(stagingRoot: string, relKey: string): string;
32
- //# sourceMappingURL=account-codec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"account-codec.d.ts","sourceRoot":"","sources":["../../src/core/account-codec.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEhE,eAAO,MAAM,wBAAwB,EAAG,CAAU,CAAC;AACnD,eAAO,MAAM,qBAAqB,EAAG,iBAA0B,CAAC;AAEhE,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,qBAAqB,QAAmB,CAAC;AACtD,eAAO,MAAM,sBAAsB,QAAoB,CAAC;AACxD,mEAAmE;AACnE,eAAO,MAAM,yBAAyB,QAAoB,CAAC;AAC3D,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACjC,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,EACZ,kBAAkB,EAAE,MAAM,GACzB,sBAAsB,CAiCxB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CA2BvD;AAED,oGAAoG;AACpG,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAU1E"}
@@ -1,134 +0,0 @@
1
- import { anypickError } from "../utils/errors.js";
2
- import { isAbsolute, normalize, relative, resolve, sep } from "node:path";
3
- var ACCOUNT_ENVELOPE_KIND = "anypick-account";
4
- /** Reject obviously abusive envelopes without streaming unbounded memory. */
5
- var MAX_IMPORT_FILES = 4096;
6
- var MAX_IMPORT_FILE_BYTES = 16 * 1024 * 1024;
7
- var MAX_IMPORT_TOTAL_BYTES = 128 * 1024 * 1024;
8
- /** The encoded envelope is larger than the decoded file budget. */
9
- var MAX_IMPORT_ENVELOPE_BYTES = 192 * 1024 * 1024;
10
- var MAX_FIELD_LEN = 4096;
11
- /** Decode + validate the raw import payload under the untrusted-boundary rule. */
12
- function decodeAccountEnvelope(raw, expectedProviderId) {
13
- if (typeof raw !== "object" || raw === null || Array.isArray(raw)) throw error("Import payload is not a JSON object.", "IMPORT_FORMAT");
14
- const obj = raw;
15
- if (obj.kind !== "anypick-account") throw error("Unrecognized export format (kind mismatch).", "IMPORT_FORMAT");
16
- if (obj.version !== 1) throw error(`Unsupported export version: ${JSON.stringify(obj.version)}.`, "IMPORT_FORMAT");
17
- if (typeof obj.meta !== "object" || obj.meta === null || Array.isArray(obj.meta)) throw error("Import envelope is missing a meta object.", "IMPORT_FORMAT");
18
- const meta = decodeMeta(obj.meta);
19
- if (meta.provider !== expectedProviderId) throw error(`Import envelope provider "${meta.provider}" does not match the requested provider "${expectedProviderId}".`, "IMPORT_FORMAT", { exitCode: void 0 });
20
- const proxy = obj.proxy === void 0 ? null : decodeProxy(obj.proxy);
21
- if (typeof obj.files !== "object" || obj.files === null || Array.isArray(obj.files)) throw error("Import envelope is missing a files map.", "IMPORT_FORMAT");
22
- return {
23
- version: 1,
24
- kind: ACCOUNT_ENVELOPE_KIND,
25
- meta,
26
- proxy,
27
- files: decodeFiles(obj.files)
28
- };
29
- }
30
- /**
31
- * Validate a single import file key purely (no staging root needed). Rejects
32
- * empty keys, NUL bytes, absolute POSIX/Windows paths, mixed separators, and
33
- * any normalized escape ('..' segments / leading-traversal). Throws a
34
- * `AnyPickError` on violation. Called from the codec (before any mutation) and
35
- * from `stagedFilePath` (defense-in-depth at write time).
36
- */
37
- function validateImportFileKey(key) {
38
- if (!key || key.includes("\0")) throw error(`Invalid import file path: ${JSON.stringify(key)}.`, "IMPORT_FORMAT");
39
- if (isAbsolute(key)) throw error(`Import file path must be relative: ${key}.`, "IMPORT_FORMAT");
40
- if (/^[A-Za-z]:[\\/]/.test(key) || key.startsWith("\\\\")) throw error(`Import file path must be relative: ${key}.`, "IMPORT_FORMAT");
41
- if (key.includes("\\") && key.includes("/")) throw error(`Import file path mixes path separators: ${key}.`, "IMPORT_FORMAT");
42
- const normalized = normalize(key.split("\\").join("/"));
43
- if (normalized === "." || normalized === ".." || normalized.startsWith(`..${sep}`) || normalized.includes(`${sep}..${sep}`) || normalized.endsWith(`${sep}..`)) throw error(`Import file path escapes the staging root: ${key}.`, "IMPORT_FORMAT");
44
- }
45
- /** Resolve a validated relative file key to an absolute staging path. Never throws on traversal. */
46
- function stagedFilePath(stagingRoot, relKey) {
47
- validateImportFileKey(relKey);
48
- const abs = resolve(stagingRoot, normalize(relKey.split("\\").join("/")));
49
- const back = relative(resolve(stagingRoot), abs);
50
- if (back.startsWith("..") || isAbsolute(back)) throw error(`Import file path escapes the staging root: ${relKey}.`, "IMPORT_FORMAT");
51
- return abs;
52
- }
53
- function decodeMeta(value) {
54
- if (typeof value !== "object" || value === null) throw error("Account meta is not an object.", "IMPORT_FORMAT");
55
- const m = value;
56
- const name = safeText(m.name, 128, "name") ?? "";
57
- if (!name || name.length > 128) throw error("Account meta name is missing or too long.", "IMPORT_FORMAT");
58
- const provider = safeText(m.provider, 4096, "provider") ?? "";
59
- if (!provider) throw error("Account meta provider is missing.", "IMPORT_FORMAT");
60
- const stringOrUndefined = (v, field) => safeText(v, MAX_FIELD_LEN, field);
61
- const createdAt = safeText(m.createdAt, MAX_FIELD_LEN, "createdAt");
62
- const updatedAt = safeText(m.updatedAt, MAX_FIELD_LEN, "updatedAt");
63
- return {
64
- name,
65
- provider,
66
- createdAt: createdAt ?? (/* @__PURE__ */ new Date()).toISOString(),
67
- updatedAt: updatedAt ?? (/* @__PURE__ */ new Date()).toISOString(),
68
- label: stringOrUndefined(m.label, "label"),
69
- identity: stringOrUndefined(m.identity, "identity"),
70
- notes: stringOrUndefined(m.notes, "notes"),
71
- credentialKind: m.credentialKind === "proxy-only" ? "proxy-only" : void 0
72
- };
73
- }
74
- /** Reject terminal control/bidi characters in imported display metadata. */
75
- function safeText(value, maxLength, field) {
76
- if (typeof value !== "string") return;
77
- if (value.length > maxLength) return;
78
- if (/[\p{Cc}\p{Cf}]/u.test(value)) throw error(`Import meta field "${field}" contains terminal control characters.`, "IMPORT_FORMAT");
79
- return value;
80
- }
81
- function decodeProxy(value) {
82
- if (typeof value !== "object" || value === null || Array.isArray(value)) throw error("Account proxy config is not an object.", "IMPORT_FORMAT");
83
- const p = value;
84
- const port = typeof p.port === "number" && Number.isInteger(p.port) && p.port >= 0 && p.port <= 65535 ? p.port : void 0;
85
- const host = safeText(p.host, MAX_FIELD_LEN, "proxy.host");
86
- return {
87
- enabled: false,
88
- ...port !== void 0 ? { port } : {},
89
- ...host !== void 0 ? { host } : {}
90
- };
91
- }
92
- function decodeFiles(value) {
93
- if (typeof value !== "object" || value === null || Array.isArray(value)) throw error("Import envelope is missing a files map.", "IMPORT_FORMAT");
94
- const entries = Object.entries(value);
95
- if (entries.length === 0) throw error("Import envelope contains no files.", "IMPORT_FORMAT");
96
- if (entries.length > 4096) throw limit(`Import contains ${entries.length} files (max ${MAX_IMPORT_FILES}).`);
97
- const out = {};
98
- const seen = /* @__PURE__ */ new Set();
99
- let total = 0;
100
- for (const [key, content] of entries) {
101
- if (typeof key !== "string" || !key) throw error("Import file map contains an invalid key.", "IMPORT_FORMAT");
102
- validateImportFileKey(key);
103
- if (typeof content !== "string") throw error(`Import file "${key}" content is not a base64 string.`, "IMPORT_FORMAT");
104
- if (!/^[A-Za-z0-9+/=]+$/.test(content)) throw error(`Import file "${key}" is not valid base64.`, "IMPORT_FORMAT");
105
- let decoded;
106
- try {
107
- decoded = Buffer.from(content, "base64");
108
- } catch {
109
- throw error(`Import file "${key}" failed to decode as base64.`, "IMPORT_FORMAT");
110
- }
111
- if (decoded.byteLength > 16777216) throw limit(`Import file "${key}" exceeds ${MAX_IMPORT_FILE_BYTES} bytes.`);
112
- total += decoded.byteLength;
113
- if (total > 134217728) throw limit(`Import total payload exceeds ${MAX_IMPORT_TOTAL_BYTES} bytes.`);
114
- const normalized = normalize(key.split("\\").join("/"));
115
- if (seen.has(normalized)) throw error(`Import contains a duplicate file path: ${key}.`, "IMPORT_FORMAT");
116
- if ([...seen].some((existing) => normalized.startsWith(`${existing}/`) || existing.startsWith(`${normalized}/`))) throw error(`Import file path collides with another entry: ${key}.`, "IMPORT_FORMAT");
117
- seen.add(normalized);
118
- out[key] = content;
119
- }
120
- return out;
121
- }
122
- function error(message, code, opts = {}) {
123
- return anypickError(message, code, {
124
- exitCode: opts.exitCode ?? (code === "IMPORT_LIMIT" ? 9 : 8),
125
- mutated: false
126
- });
127
- }
128
- function limit(message) {
129
- return error(message, "IMPORT_LIMIT");
130
- }
131
- //#endregion
132
- export { ACCOUNT_ENVELOPE_KIND, MAX_FIELD_LEN, MAX_IMPORT_ENVELOPE_BYTES, MAX_IMPORT_FILES, MAX_IMPORT_FILE_BYTES, MAX_IMPORT_TOTAL_BYTES, decodeAccountEnvelope, stagedFilePath, validateImportFileKey };
133
-
134
- //# sourceMappingURL=account-codec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"account-codec.js","names":[],"sources":["../../src/core/account-codec.ts"],"sourcesContent":["/**\n * Versioned decoder for the account import/export envelope (SEC-01).\n *\n * Imports arrive as untrusted bytes. Per fixed decision #1 (\"external data is\n * untrusted\"), the envelope is decoded from `unknown` by a versioned codec\n * that validates the *entire* payload — shape, provider ownership, every\n * file-map key (path traversal / absolute / separators / NULs / duplicates /\n * file-vs-dir collisions / symlink), base64, file-count, per-file size, and\n * total decoded size — before any caller mutates state.\n *\n * Decoding is pure and never performs I/O. The caller stages the decoded\n * files into an owner-only temp dir using `stagedFilePath` so that a single\n * bad key cannot write outside the staging root.\n */\nimport { isAbsolute, normalize, relative, resolve, sep } from 'node:path';\nimport { anypickError, type ExitCodeValue, type AnyPickError } from '../utils/errors';\nimport type { AccountMeta, AccountProxyConfig } from '../types';\n\nexport const ACCOUNT_ENVELOPE_VERSION = 1 as const;\nexport const ACCOUNT_ENVELOPE_KIND = 'anypick-account' as const;\n\n/** Reject obviously abusive envelopes without streaming unbounded memory. */\nexport const MAX_IMPORT_FILES = 4096;\nexport const MAX_IMPORT_FILE_BYTES = 16 * 1024 * 1024; // 16 MiB per file\nexport const MAX_IMPORT_TOTAL_BYTES = 128 * 1024 * 1024; // 128 MiB total\n/** The encoded envelope is larger than the decoded file budget. */\nexport const MAX_IMPORT_ENVELOPE_BYTES = 192 * 1024 * 1024;\nexport const MAX_ACCOUNT_NAME_LEN = 128;\nexport const MAX_FIELD_LEN = 4096;\n\nexport interface DecodedAccountEnvelope {\n version: 1;\n kind: 'anypick-account';\n meta: AccountMeta;\n proxy: AccountProxyConfig | null;\n /** Relative key → base64 content. Keys are validated, never trusted raw. */\n files: Record<string, string>;\n}\n\n/** Decode + validate the raw import payload under the untrusted-boundary rule. */\nexport function decodeAccountEnvelope(\n raw: unknown,\n expectedProviderId: string,\n): DecodedAccountEnvelope {\n if (typeof raw !== 'object' || raw === null || Array.isArray(raw)) {\n throw error('Import payload is not a JSON object.', 'IMPORT_FORMAT');\n }\n const obj = raw as Record<string, unknown>;\n\n if (obj.kind !== ACCOUNT_ENVELOPE_KIND) {\n throw error('Unrecognized export format (kind mismatch).', 'IMPORT_FORMAT');\n }\n if (obj.version !== ACCOUNT_ENVELOPE_VERSION) {\n throw error(`Unsupported export version: ${JSON.stringify(obj.version)}.`, 'IMPORT_FORMAT');\n }\n if (typeof obj.meta !== 'object' || obj.meta === null || Array.isArray(obj.meta)) {\n throw error('Import envelope is missing a meta object.', 'IMPORT_FORMAT');\n }\n\n const meta = decodeMeta(obj.meta);\n if (meta.provider !== expectedProviderId) {\n throw error(\n `Import envelope provider \"${meta.provider}\" does not match the requested provider \"${expectedProviderId}\".`,\n 'IMPORT_FORMAT',\n { exitCode: undefined },\n );\n }\n\n const proxy = obj.proxy === undefined ? null : decodeProxy(obj.proxy);\n\n if (typeof obj.files !== 'object' || obj.files === null || Array.isArray(obj.files)) {\n throw error('Import envelope is missing a files map.', 'IMPORT_FORMAT');\n }\n const files = decodeFiles(obj.files);\n\n return { version: 1, kind: ACCOUNT_ENVELOPE_KIND, meta, proxy, files };\n}\n\n/**\n * Validate a single import file key purely (no staging root needed). Rejects\n * empty keys, NUL bytes, absolute POSIX/Windows paths, mixed separators, and\n * any normalized escape ('..' segments / leading-traversal). Throws a\n * `AnyPickError` on violation. Called from the codec (before any mutation) and\n * from `stagedFilePath` (defense-in-depth at write time).\n */\nexport function validateImportFileKey(key: string): void {\n if (!key || key.includes('\\0')) {\n throw error(`Invalid import file path: ${JSON.stringify(key)}.`, 'IMPORT_FORMAT');\n }\n if (isAbsolute(key)) {\n throw error(`Import file path must be relative: ${key}.`, 'IMPORT_FORMAT');\n }\n // Reject Windows-style absolute paths (drive letters / UNC) on every host,\n // since `path.isAbsolute` only recognizes the *current* platform's form.\n if (/^[A-Za-z]:[\\\\/]/.test(key) || key.startsWith('\\\\\\\\')) {\n throw error(`Import file path must be relative: ${key}.`, 'IMPORT_FORMAT');\n }\n // Mixed separators (e.g. \"a/b\\\\c\") after normalization can mask escapes.\n if (key.includes('\\\\') && key.includes('/')) {\n throw error(`Import file path mixes path separators: ${key}.`, 'IMPORT_FORMAT');\n }\n // Normalize across POSIX and Windows separators before the traversal check.\n const normalized = normalize(key.split('\\\\').join('/'));\n if (\n normalized === '.' ||\n normalized === '..' ||\n normalized.startsWith(`..${sep}`) ||\n normalized.includes(`${sep}..${sep}`) ||\n normalized.endsWith(`${sep}..`)\n ) {\n throw error(`Import file path escapes the staging root: ${key}.`, 'IMPORT_FORMAT');\n }\n}\n\n/** Resolve a validated relative file key to an absolute staging path. Never throws on traversal. */\nexport function stagedFilePath(stagingRoot: string, relKey: string): string {\n // Re-run the pure key check so a bad key can never write outside staging.\n validateImportFileKey(relKey);\n const normalized = normalize(relKey.split('\\\\').join('/'));\n const abs = resolve(stagingRoot, normalized);\n const back = relative(resolve(stagingRoot), abs);\n if (back.startsWith('..') || isAbsolute(back)) {\n throw error(`Import file path escapes the staging root: ${relKey}.`, 'IMPORT_FORMAT');\n }\n return abs;\n}\n\nfunction decodeMeta(value: unknown): AccountMeta {\n if (typeof value !== 'object' || value === null) {\n throw error('Account meta is not an object.', 'IMPORT_FORMAT');\n }\n const m = value as Record<string, unknown>;\n const name = safeText(m.name, MAX_ACCOUNT_NAME_LEN, 'name') ?? '';\n if (!name || name.length > MAX_ACCOUNT_NAME_LEN) {\n throw error('Account meta name is missing or too long.', 'IMPORT_FORMAT');\n }\n const provider = safeText(m.provider, MAX_FIELD_LEN, 'provider') ?? '';\n if (!provider) {\n throw error('Account meta provider is missing.', 'IMPORT_FORMAT');\n }\n const stringOrUndefined = (v: unknown, field: string): string | undefined =>\n safeText(v, MAX_FIELD_LEN, field);\n const createdAt = safeText(m.createdAt, MAX_FIELD_LEN, 'createdAt');\n const updatedAt = safeText(m.updatedAt, MAX_FIELD_LEN, 'updatedAt');\n return {\n name,\n provider,\n createdAt: createdAt ?? new Date().toISOString(),\n updatedAt: updatedAt ?? new Date().toISOString(),\n label: stringOrUndefined(m.label, 'label'),\n identity: stringOrUndefined(m.identity, 'identity'),\n notes: stringOrUndefined(m.notes, 'notes'),\n // Losing this on import would turn a user-supplied credential back into a\n // native one, and activating it would then prune the machine's real login.\n credentialKind: m.credentialKind === 'proxy-only' ? 'proxy-only' : undefined,\n };\n}\n\n/** Reject terminal control/bidi characters in imported display metadata. */\nfunction safeText(value: unknown, maxLength: number, field: string): string | undefined {\n if (typeof value !== 'string') {\n return undefined;\n }\n if (value.length > maxLength) {\n return undefined;\n }\n // C0/DEL includes newline, tabs, and ESC/OSC introducers. Bidi overrides\n // can make a harmless-looking identity render as a different command/name.\n if (/[\\p{Cc}\\p{Cf}]/u.test(value)) {\n throw error(\n `Import meta field \"${field}\" contains terminal control characters.`,\n 'IMPORT_FORMAT',\n );\n }\n return value;\n}\n\nfunction decodeProxy(value: unknown): AccountProxyConfig {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) {\n throw error('Account proxy config is not an object.', 'IMPORT_FORMAT');\n }\n const p = value as Record<string, unknown>;\n // An imported envelope is untrusted. Do not carry activation state or\n // provider-specific options across this boundary: options can contain\n // upstream URLs, auth paths, or other values later passed to a spawned\n // proxy. The user must explicitly enable/configure a proxy locally.\n const port =\n typeof p.port === 'number' && Number.isInteger(p.port) && p.port >= 0 && p.port <= 65535\n ? p.port\n : undefined;\n const host = safeText(p.host, MAX_FIELD_LEN, 'proxy.host');\n return {\n enabled: false,\n ...(port !== undefined ? { port } : {}),\n ...(host !== undefined ? { host } : {}),\n };\n}\n\nfunction decodeFiles(value: unknown): Record<string, string> {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) {\n throw error('Import envelope is missing a files map.', 'IMPORT_FORMAT');\n }\n const entries = Object.entries(value as Record<string, unknown>);\n if (entries.length === 0) {\n throw error('Import envelope contains no files.', 'IMPORT_FORMAT');\n }\n if (entries.length > MAX_IMPORT_FILES) {\n throw limit(`Import contains ${entries.length} files (max ${MAX_IMPORT_FILES}).`);\n }\n\n const out: Record<string, string> = {};\n const seen = new Set<string>();\n let total = 0;\n\n for (const [key, content] of entries) {\n if (typeof key !== 'string' || !key) {\n throw error('Import file map contains an invalid key.', 'IMPORT_FORMAT');\n }\n // Pure path check (no staging root yet): reject empty / NUL / absolute /\n // mixed-separator / traversal keys before any state is touched.\n validateImportFileKey(key);\n if (typeof content !== 'string') {\n throw error(`Import file \"${key}\" content is not a base64 string.`, 'IMPORT_FORMAT');\n }\n // Reject non-base64 early (the decode below would otherwise accept garbage).\n if (!/^[A-Za-z0-9+/=]+$/.test(content)) {\n throw error(`Import file \"${key}\" is not valid base64.`, 'IMPORT_FORMAT');\n }\n let decoded: Buffer;\n try {\n decoded = Buffer.from(content, 'base64');\n } catch {\n throw error(`Import file \"${key}\" failed to decode as base64.`, 'IMPORT_FORMAT');\n }\n if (decoded.byteLength > MAX_IMPORT_FILE_BYTES) {\n throw limit(`Import file \"${key}\" exceeds ${MAX_IMPORT_FILE_BYTES} bytes.`);\n }\n total += decoded.byteLength;\n if (total > MAX_IMPORT_TOTAL_BYTES) {\n throw limit(`Import total payload exceeds ${MAX_IMPORT_TOTAL_BYTES} bytes.`);\n }\n\n // Validate the key as a staging path now (cheap, before any write).\n const normalized = normalize(key.split('\\\\').join('/'));\n if (seen.has(normalized)) {\n throw error(`Import contains a duplicate file path: ${key}.`, 'IMPORT_FORMAT');\n }\n // A file whose key is a path prefix of another file is a file/directory\n // collision. Check both directions so validation is independent of JSON\n // property order (`a` then `a/b`, or `a/b` then `a`).\n if (\n [...seen].some(\n (existing) =>\n normalized.startsWith(`${existing}/`) || existing.startsWith(`${normalized}/`),\n )\n ) {\n throw error(`Import file path collides with another entry: ${key}.`, 'IMPORT_FORMAT');\n }\n seen.add(normalized);\n\n out[key] = content;\n }\n\n return out;\n}\n\nfunction error(\n message: string,\n code: 'IMPORT_FORMAT' | 'IMPORT_LIMIT',\n opts: { exitCode?: ExitCodeValue } = {},\n): AnyPickError {\n return anypickError(message, code, {\n exitCode: opts.exitCode ?? (code === 'IMPORT_LIMIT' ? 9 : 8),\n mutated: false,\n });\n}\n\nfunction limit(message: string): AnyPickError {\n return error(message, 'IMPORT_LIMIT');\n}\n"],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import type { AccountMeta, Provider } from '../types.js';
2
- import type { AccountStore } from './store.js';
3
- export declare function collectSnapshotFiles(root: string): Promise<Record<string, string>>;
4
- export declare function writeSnapshotFiles(root: string, files: Record<string, string>): Promise<void>;
5
- /** Serialize a saved account to a portable, owner-only JSON envelope. */
6
- export declare function exportAccountEnvelope(store: AccountStore, providerId: string, name: string, outPath: string): Promise<void>;
7
- export interface ImportAccountDeps {
8
- store: AccountStore;
9
- provider: Provider;
10
- /**
11
- * Resolve the final account name after identity collision checks. Owned by
12
- * AccountService because it also runs on save paths.
13
- */
14
- resolveIdentityTarget: (providerId: string, identity: string | undefined, accountName: string, force: boolean) => Promise<string>;
15
- }
16
- /** Decode, validate, and stage an account envelope under the provider. */
17
- export declare function importAccountEnvelope(deps: ImportAccountDeps, providerId: string, name: string, inPath: string, opts?: {
18
- force?: boolean;
19
- }): Promise<AccountMeta>;
20
- //# sourceMappingURL=account-transfer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"account-transfer.d.ts","sourceRoot":"","sources":["../../src/core/account-transfer.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAMtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAmBxF;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,yEAAyE;AACzE,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB;;;OAGG;IACH,qBAAqB,EAAE,CACrB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,OAAO,KACX,OAAO,CAAC,MAAM,CAAC,CAAC;CACtB;AAED,0EAA0E;AAC1E,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,iBAAiB,EACvB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC7B,OAAO,CAAC,WAAW,CAAC,CAoGtB"}
@@ -1,136 +0,0 @@
1
- import { DEFAULT_PROXY_CONFIG } from "../types/account.js";
2
- import { AnyPickError } from "../utils/errors.js";
3
- import { pathExists } from "../utils/fs.js";
4
- import { normalizeAccountName } from "../utils/slug.js";
5
- import { MAX_IMPORT_ENVELOPE_BYTES, decodeAccountEnvelope, stagedFilePath } from "./account-codec.js";
6
- import { dirname, join, relative } from "node:path";
7
- import { chmod, mkdir, mkdtemp, readFile, readdir, rename, rm, stat, writeFile } from "node:fs/promises";
8
- import { tmpdir } from "node:os";
9
- //#region src/core/account-transfer.ts
10
- /**
11
- * Account export/import envelope I/O.
12
- *
13
- * Kept out of AccountService so the service stays focused on live-auth and
14
- * snapshot lifecycle; transfer is a separate boundary with its own SEC-01
15
- * validation (ADR 0002).
16
- */
17
- async function collectSnapshotFiles(root) {
18
- const out = {};
19
- async function walk(dir) {
20
- const entries = await readdir(dir, { withFileTypes: true });
21
- for (const entry of entries) {
22
- const full = join(dir, entry.name);
23
- const rel = relative(root, full).split("\\").join("/");
24
- if (entry.isDirectory()) await walk(full);
25
- else if (entry.isFile()) {
26
- const buf = await readFile(full);
27
- out[rel] = buf.toString("base64");
28
- }
29
- }
30
- }
31
- if (await pathExists(root)) await walk(root);
32
- return out;
33
- }
34
- async function writeSnapshotFiles(root, files) {
35
- for (const [rel, b64] of Object.entries(files)) {
36
- const dest = stagedFilePath(root, rel);
37
- await mkdir(dirname(dest), { recursive: true });
38
- await writeFile(dest, Buffer.from(b64, "base64"), { mode: 384 });
39
- }
40
- }
41
- /** Serialize a saved account to a portable, owner-only JSON envelope. */
42
- async function exportAccountEnvelope(store, providerId, name, outPath) {
43
- const account = await store.requireAccount(providerId, normalizeAccountName(name));
44
- const files = await collectSnapshotFiles(account.snapshotDir);
45
- const payload = {
46
- version: 1,
47
- kind: "anypick-account",
48
- meta: account.meta,
49
- proxy: account.proxy,
50
- files
51
- };
52
- const stage = await mkdtemp(join(tmpdir(), "anypick-export-"));
53
- const tmpPath = join(stage, "account.json");
54
- await writeFile(tmpPath, `${JSON.stringify(payload, null, 2)}\n`, { mode: 384 });
55
- try {
56
- await rename(tmpPath, outPath);
57
- await chmod(outPath, 384).catch(() => {});
58
- } finally {
59
- await rm(stage, {
60
- recursive: true,
61
- force: true
62
- }).catch(() => {});
63
- }
64
- process.stderr.write(`Warning: exported account "${account.meta.name}" contains credentials. Store ${outPath} safely.\n`);
65
- }
66
- /** Decode, validate, and stage an account envelope under the provider. */
67
- async function importAccountEnvelope(deps, providerId, name, inPath, opts = {}) {
68
- let accountName = normalizeAccountName(name);
69
- if (!await pathExists(inPath)) throw new AnyPickError(`Import file not found: ${inPath}`, "IMPORT_MISSING");
70
- let existing = await deps.store.getAccount(providerId, accountName);
71
- if (existing && !opts.force) throw new AnyPickError(`Account "${accountName}" already exists. Use --force to overwrite.`, "ACCOUNT_EXISTS");
72
- try {
73
- if ((await stat(inPath)).size > 201326592) throw new AnyPickError(`Import file exceeds ${MAX_IMPORT_ENVELOPE_BYTES} bytes.`, {
74
- code: "IMPORT_LIMIT",
75
- mutated: false,
76
- exitCode: 9
77
- });
78
- } catch (err) {
79
- if (err instanceof AnyPickError) throw err;
80
- throw new AnyPickError(`Unable to inspect import file: ${inPath}`, {
81
- code: "IMPORT_MISSING",
82
- mutated: false
83
- });
84
- }
85
- const raw = await readFile(inPath, "utf8");
86
- let parsed;
87
- try {
88
- parsed = JSON.parse(raw);
89
- } catch {
90
- throw new AnyPickError("Import file is not valid JSON.", "IMPORT_FORMAT");
91
- }
92
- const envelope = decodeAccountEnvelope(parsed, providerId);
93
- let identity = envelope.meta.identity;
94
- let label = envelope.meta.label;
95
- if (deps.provider.describeSnapshot) {
96
- const inspectDir = await mkdtemp(join(tmpdir(), "anypick-import-inspect-"));
97
- try {
98
- await writeSnapshotFiles(inspectDir, envelope.files);
99
- const described = await deps.provider.describeSnapshot(inspectDir);
100
- identity = described.identity ?? identity;
101
- label = described.label ?? label;
102
- } finally {
103
- await rm(inspectDir, {
104
- recursive: true,
105
- force: true
106
- }).catch(() => {});
107
- }
108
- }
109
- accountName = await deps.resolveIdentityTarget(providerId, identity, accountName, opts.force === true);
110
- existing = await deps.store.getAccount(providerId, accountName);
111
- const { snapshotDir } = await deps.store.prepareSnapshot(providerId, accountName);
112
- await writeSnapshotFiles(snapshotDir, envelope.files);
113
- const now = (/* @__PURE__ */ new Date()).toISOString();
114
- const meta = {
115
- name: accountName,
116
- provider: providerId,
117
- createdAt: existing?.meta.createdAt ?? envelope.meta.createdAt ?? now,
118
- updatedAt: now,
119
- label,
120
- identity,
121
- notes: envelope.meta.notes,
122
- credentialKind: envelope.meta.credentialKind
123
- };
124
- await deps.store.writeMeta(meta);
125
- if (envelope.proxy) await deps.store.setProxyConfig(providerId, accountName, {
126
- ...DEFAULT_PROXY_CONFIG,
127
- ...envelope.proxy,
128
- enabled: false,
129
- options: void 0
130
- });
131
- return meta;
132
- }
133
- //#endregion
134
- export { collectSnapshotFiles, exportAccountEnvelope, importAccountEnvelope, writeSnapshotFiles };
135
-
136
- //# sourceMappingURL=account-transfer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"account-transfer.js","names":[],"sources":["../../src/core/account-transfer.ts"],"sourcesContent":["/**\n * Account export/import envelope I/O.\n *\n * Kept out of AccountService so the service stays focused on live-auth and\n * snapshot lifecycle; transfer is a separate boundary with its own SEC-01\n * validation (ADR 0002).\n */\nimport {\n chmod,\n mkdir,\n mkdtemp,\n readdir,\n readFile,\n rename,\n rm,\n stat,\n writeFile,\n} from 'node:fs/promises';\nimport { dirname, join, relative } from 'node:path';\nimport { tmpdir } from 'node:os';\nimport type { AccountMeta, Provider } from '../types';\nimport { DEFAULT_PROXY_CONFIG } from '../types';\nimport { AnyPickError } from '../utils/errors';\nimport { pathExists } from '../utils/fs';\nimport { normalizeAccountName } from '../utils/slug';\nimport { decodeAccountEnvelope, MAX_IMPORT_ENVELOPE_BYTES, stagedFilePath } from './account-codec';\nimport type { AccountStore } from './store';\n\nexport async function collectSnapshotFiles(root: string): Promise<Record<string, string>> {\n const out: Record<string, string> = {};\n async function walk(dir: string): Promise<void> {\n const entries = await readdir(dir, { withFileTypes: true });\n for (const entry of entries) {\n const full = join(dir, entry.name);\n const rel = relative(root, full).split('\\\\').join('/');\n if (entry.isDirectory()) {\n await walk(full);\n } else if (entry.isFile()) {\n const buf = await readFile(full);\n out[rel] = buf.toString('base64');\n }\n }\n }\n if (await pathExists(root)) {\n await walk(root);\n }\n return out;\n}\n\nexport async function writeSnapshotFiles(\n root: string,\n files: Record<string, string>,\n): Promise<void> {\n for (const [rel, b64] of Object.entries(files)) {\n // Defense-in-depth: re-resolve each key against the staging root so a\n // malformed key can never write outside `root` (SEC-01).\n const dest = stagedFilePath(root, rel);\n await mkdir(dirname(dest), { recursive: true });\n await writeFile(dest, Buffer.from(b64, 'base64'), { mode: 0o600 });\n }\n}\n\n/** Serialize a saved account to a portable, owner-only JSON envelope. */\nexport async function exportAccountEnvelope(\n store: AccountStore,\n providerId: string,\n name: string,\n outPath: string,\n): Promise<void> {\n const account = await store.requireAccount(providerId, normalizeAccountName(name));\n const files = await collectSnapshotFiles(account.snapshotDir);\n const payload = {\n version: 1 as const,\n kind: 'anypick-account' as const,\n meta: account.meta,\n proxy: account.proxy,\n files,\n };\n\n // SEC-01: write to an owner-only temp file, then atomically rename.\n // Tighten the final mode even when overwriting an existing (permissive) file.\n const stage = await mkdtemp(join(tmpdir(), 'anypick-export-'));\n const tmpPath = join(stage, 'account.json');\n await writeFile(tmpPath, `${JSON.stringify(payload, null, 2)}\\n`, { mode: 0o600 });\n try {\n await rename(tmpPath, outPath);\n await chmod(outPath, 0o600).catch(() => {});\n } finally {\n await rm(stage, { recursive: true, force: true }).catch(() => {});\n }\n // Warn: the artifact carries live credentials.\n process.stderr.write(\n `Warning: exported account \"${account.meta.name}\" contains credentials. Store ${outPath} safely.\\n`,\n );\n}\n\nexport interface ImportAccountDeps {\n store: AccountStore;\n provider: Provider;\n /**\n * Resolve the final account name after identity collision checks. Owned by\n * AccountService because it also runs on save paths.\n */\n resolveIdentityTarget: (\n providerId: string,\n identity: string | undefined,\n accountName: string,\n force: boolean,\n ) => Promise<string>;\n}\n\n/** Decode, validate, and stage an account envelope under the provider. */\nexport async function importAccountEnvelope(\n deps: ImportAccountDeps,\n providerId: string,\n name: string,\n inPath: string,\n opts: { force?: boolean } = {},\n): Promise<AccountMeta> {\n let accountName = normalizeAccountName(name);\n if (!(await pathExists(inPath))) {\n throw new AnyPickError(`Import file not found: ${inPath}`, 'IMPORT_MISSING');\n }\n\n let existing = await deps.store.getAccount(providerId, accountName);\n if (existing && !opts.force) {\n throw new AnyPickError(\n `Account \"${accountName}\" already exists. Use --force to overwrite.`,\n 'ACCOUNT_EXISTS',\n );\n }\n\n // SEC-01: reject an oversized file before read/JSON.parse, then decode +\n // validate the *entire* envelope (provider ownership,\n // every file path, base64, size/count limits) BEFORE any mutation. A\n // rejection below leaves the DB, current snapshot, active account, and\n // live auth completely unchanged.\n try {\n const size = (await stat(inPath)).size;\n if (size > MAX_IMPORT_ENVELOPE_BYTES) {\n throw new AnyPickError(`Import file exceeds ${MAX_IMPORT_ENVELOPE_BYTES} bytes.`, {\n code: 'IMPORT_LIMIT',\n mutated: false,\n exitCode: 9,\n });\n }\n } catch (err) {\n if (err instanceof AnyPickError) {\n throw err;\n }\n throw new AnyPickError(`Unable to inspect import file: ${inPath}`, {\n code: 'IMPORT_MISSING',\n mutated: false,\n });\n }\n const raw = await readFile(inPath, 'utf8');\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw);\n } catch {\n throw new AnyPickError('Import file is not valid JSON.', 'IMPORT_FORMAT');\n }\n const envelope = decodeAccountEnvelope(parsed, providerId);\n\n let identity = envelope.meta.identity;\n let label = envelope.meta.label;\n if (deps.provider.describeSnapshot) {\n // Inspect a disposable copy first. prepareSnapshot() can replace an\n // existing snapshot, so identity conflicts must be found before it.\n const inspectDir = await mkdtemp(join(tmpdir(), 'anypick-import-inspect-'));\n try {\n await writeSnapshotFiles(inspectDir, envelope.files);\n const described = await deps.provider.describeSnapshot(inspectDir);\n identity = described.identity ?? identity;\n label = described.label ?? label;\n } finally {\n await rm(inspectDir, { recursive: true, force: true }).catch(() => {});\n }\n }\n accountName = await deps.resolveIdentityTarget(\n providerId,\n identity,\n accountName,\n opts.force === true,\n );\n existing = await deps.store.getAccount(providerId, accountName);\n\n // Stage into the live snapshot dir only after full validation and identity\n // conflict checks.\n const { snapshotDir } = await deps.store.prepareSnapshot(providerId, accountName);\n await writeSnapshotFiles(snapshotDir, envelope.files);\n\n const now = new Date().toISOString();\n const meta: AccountMeta = {\n name: accountName,\n provider: providerId,\n createdAt: existing?.meta.createdAt ?? envelope.meta.createdAt ?? now,\n updatedAt: now,\n label,\n identity,\n notes: envelope.meta.notes,\n credentialKind: envelope.meta.credentialKind,\n };\n await deps.store.writeMeta(meta);\n\n // Imported proxies are always disabled and provider-specific options are\n // intentionally dropped by the codec. Starting a proxy is an explicit\n // local action, never something an imported file can trigger.\n if (envelope.proxy) {\n await deps.store.setProxyConfig(providerId, accountName, {\n ...DEFAULT_PROXY_CONFIG,\n ...envelope.proxy,\n enabled: false,\n options: undefined,\n });\n }\n\n return meta;\n}\n"],"mappings":"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"}
@@ -1,72 +0,0 @@
1
- /**
2
- * Execute activation plans transactionally (spec §P7, §23).
3
- * Journals only serializable ResourceRef values — never adapter instances.
4
- */
5
- import type { ActivationPlan, GlobalBinding, ProjectBinding } from '../types.js';
6
- import type { OperationJournal } from './journal.js';
7
- import type { LeaseStore } from './lease-store.js';
8
- import type { AccountService } from './service.js';
9
- import type { RuntimeService } from './runtime-service.js';
10
- import { type ResolveSourceDeps } from './resolve-source.js';
11
- import type { ProxyService } from './proxy-service.js';
12
- import { type AnyPickEventSink } from './events.js';
13
- export interface ExecuteResult {
14
- plan: ActivationPlan;
15
- dryRun: boolean;
16
- alreadyActive: boolean;
17
- binding?: GlobalBinding | ProjectBinding;
18
- proxyEndpoint?: string;
19
- journalId?: string;
20
- childExitCode?: number;
21
- /** Ephemeral isolated runtime (spec §9.7.1) — must be cleaned up by caller. */
22
- isolated?: {
23
- directory: string;
24
- environment: Record<string, string>;
25
- args?: string[];
26
- cleanup: () => Promise<void>;
27
- };
28
- /** Scoped rollback for a successful ephemeral run. Idempotent. */
29
- cleanup?: () => Promise<void>;
30
- }
31
- export interface ExecutorDeps extends ResolveSourceDeps {
32
- journal: OperationJournal;
33
- leases: LeaseStore;
34
- runtime: RuntimeService;
35
- accounts: AccountService;
36
- proxy: ProxyService;
37
- /**
38
- * Structured sink for degraded-state conditions (OBS-01). Optional.
39
- * Named `eventSink` rather than `events` so an entire `AnyPickApp` (whose
40
- * `events` is a `{ sink, emit, list }` facade) can still be passed where
41
- * `ExecutorDeps` is expected without a structural type collision.
42
- */
43
- eventSink?: AnyPickEventSink;
44
- }
45
- export interface ExecuteOptions {
46
- dryRun?: boolean;
47
- verbose?: boolean;
48
- projectRoot?: string;
49
- /** Report an equal persistent binding as already active after it is safely re-applied. */
50
- skipIfActive?: boolean;
51
- /** Budget for the WaitForHealth step. Lowered by tests; defaults to 5s. */
52
- healthTimeoutMs?: number;
53
- }
54
- export declare function executeActivation(plan: ActivationPlan, deps: ExecutorDeps, opts?: ExecuteOptions): Promise<ExecuteResult>;
55
- export interface RecoveryDeps extends Pick<ExecutorDeps, 'journal'> {
56
- /** When present, recovery re-resolves source adapters from journal ResourceRefs. */
57
- resolve?: ResolveSourceDeps;
58
- /** Structured event sink for refusing recovery that cannot be made exact (OBS-01). */
59
- events?: AnyPickEventSink;
60
- }
61
- export interface RecoveryResult {
62
- recovered: number;
63
- failed: string[];
64
- /** Entries where source/adapter could not be re-resolved exactly (no forward exec). */
65
- refused: string[];
66
- }
67
- /**
68
- * Startup recovery: re-resolve adapters from stored ResourceRef values;
69
- * complete exact rollbacks when possible; never substitute another source (spec §23.4).
70
- */
71
- export declare function recoverIncompleteOperations(deps: RecoveryDeps): Promise<RecoveryResult>;
72
- //# sourceMappingURL=activation-executor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"activation-executor.d.ts","sourceRoot":"","sources":["../../src/core/activation-executor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EAEb,cAAc,EAGf,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,KAAK,EAAwB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAMpD,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,aAAa,GAAG,cAAc,CAAC;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;KAC9B,CAAC;IACF,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,YAAa,SAAQ,iBAAiB;IACrD,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,YAAY,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0FAA0F;IAC1F,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AA2CD,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,YAAY,EAClB,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,aAAa,CAAC,CA2BxB;AAu2BD,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC;IACjE,oFAAoF;IACpF,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,sFAAsF;IACtF,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,uFAAuF;IACvF,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AA4BD;;;GAGG;AACH,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CA6I7F"}