@cortexkit/opencode-antigravity-auth 3.0.5 → 3.0.6

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 (370) hide show
  1. package/README.md +38 -352
  2. package/dist/cli.js +9199 -8799
  3. package/dist/cli.js.map +4 -4
  4. package/dist/cli.meta.json +1286 -1064
  5. package/dist/index.js +13641 -14559
  6. package/dist/index.js.map +4 -4
  7. package/dist/index.meta.json +1333 -1342
  8. package/dist/server.js +10618 -11080
  9. package/dist/server.js.map +4 -4
  10. package/dist/server.meta.json +1 -1
  11. package/dist/src/auth-method-labels.d.ts +3 -0
  12. package/dist/src/auth-method-labels.d.ts.map +1 -0
  13. package/dist/src/auth-method-labels.js +5 -0
  14. package/dist/src/auth-method-labels.js.map +1 -0
  15. package/dist/src/cli.d.ts +3 -1
  16. package/dist/src/cli.d.ts.map +1 -1
  17. package/dist/src/cli.js +98 -12
  18. package/dist/src/cli.js.map +1 -1
  19. package/dist/src/common-auth-embedded/claustrum/consumer.d.ts +33 -3
  20. package/dist/src/common-auth-embedded/claustrum/consumer.js +96 -1
  21. package/dist/src/common-auth-embedded/claustrum/custody.d.ts +4 -1
  22. package/dist/src/common-auth-embedded/claustrum/enrollment.d.ts +6 -1
  23. package/dist/src/common-auth-embedded/claustrum/enrollment.js +6 -1
  24. package/dist/src/common-auth-embedded/claustrum/index.d.ts +2 -1
  25. package/dist/src/common-auth-embedded/claustrum/index.js +5 -3
  26. package/dist/src/common-auth-embedded/claustrum/insula.d.ts +69 -0
  27. package/dist/src/common-auth-embedded/claustrum/insula.js +152 -0
  28. package/dist/src/common-auth-embedded/claustrum/roster.d.ts +13 -0
  29. package/dist/src/common-auth-embedded/claustrum/roster.js +33 -3
  30. package/dist/src/common-auth-embedded/fs/refresh-file-lock.js +20 -11
  31. package/dist/src/common-auth-embedded/quota/codec.d.ts +2 -0
  32. package/dist/src/common-auth-embedded/quota/codec.js +2 -1
  33. package/dist/src/common-auth-embedded/quota/format.d.ts +26 -0
  34. package/dist/src/common-auth-embedded/quota/format.js +78 -42
  35. package/dist/src/common-auth-embedded/quota/index.d.ts +4 -4
  36. package/dist/src/common-auth-embedded/quota/index.js +2 -2
  37. package/dist/src/common-auth-embedded/quota/map.d.ts +11 -0
  38. package/dist/src/common-auth-embedded/quota/map.js +36 -1
  39. package/dist/src/common-auth-embedded/quota/merge.d.ts +3 -1
  40. package/dist/src/common-auth-embedded/quota/merge.js +21 -5
  41. package/dist/src/common-auth-embedded/quota/projection.d.ts +2 -1
  42. package/dist/src/common-auth-embedded/quota/projection.js +3 -1
  43. package/dist/src/common-auth-embedded/setup/command-runner.js +49 -0
  44. package/dist/src/common-auth-embedded/setup/command.d.ts +3 -0
  45. package/dist/src/common-auth-embedded/setup/command.js +215 -0
  46. package/dist/src/common-auth-embedded/setup/config-write.js +60 -0
  47. package/dist/src/common-auth-embedded/setup/detect.d.ts +6 -0
  48. package/dist/src/common-auth-embedded/setup/detect.js +224 -0
  49. package/dist/src/common-auth-embedded/setup/enroll.js +70 -0
  50. package/dist/src/common-auth-embedded/setup/index.d.ts +5 -0
  51. package/dist/src/common-auth-embedded/setup/index.js +4 -0
  52. package/dist/src/common-auth-embedded/setup/paths.js +33 -0
  53. package/dist/src/common-auth-embedded/setup/process-fence.d.ts +43 -0
  54. package/dist/src/common-auth-embedded/setup/process-fence.js +270 -0
  55. package/dist/src/common-auth-embedded/setup/prompts.js +26 -0
  56. package/dist/src/common-auth-embedded/setup/register.d.ts +11 -0
  57. package/dist/src/common-auth-embedded/setup/register.js +130 -0
  58. package/dist/src/common-auth-embedded/setup/types.d.ts +136 -0
  59. package/dist/src/common-auth-embedded/source-output.json +228 -80
  60. package/dist/src/common-auth-embedded/store/schema.d.ts +2 -0
  61. package/dist/src/common-auth-embedded/store/schema.js +3 -2
  62. package/dist/src/ga/rpc/protocol.d.ts +4 -7
  63. package/dist/src/ga/rpc/protocol.d.ts.map +1 -1
  64. package/dist/src/ga/rpc/protocol.js +5 -13
  65. package/dist/src/ga/rpc/protocol.js.map +1 -1
  66. package/dist/src/ga/server/auth.d.ts +8 -3
  67. package/dist/src/ga/server/auth.d.ts.map +1 -1
  68. package/dist/src/ga/server/auth.js +25 -9
  69. package/dist/src/ga/server/auth.js.map +1 -1
  70. package/dist/src/ga/server/index.d.ts +39 -12
  71. package/dist/src/ga/server/index.d.ts.map +1 -1
  72. package/dist/src/ga/server/index.js +214 -53
  73. package/dist/src/ga/server/index.js.map +1 -1
  74. package/dist/src/ga/server/pool-login.d.ts +22 -0
  75. package/dist/src/ga/server/pool-login.d.ts.map +1 -0
  76. package/dist/src/ga/server/pool-login.js +150 -0
  77. package/dist/src/ga/server/pool-login.js.map +1 -0
  78. package/dist/src/ga/tui/host-ga.d.ts +2 -5
  79. package/dist/src/ga/tui/host-ga.d.ts.map +1 -1
  80. package/dist/src/ga/tui/host-ga.js +17 -49
  81. package/dist/src/ga/tui/host-ga.js.map +1 -1
  82. package/dist/src/plugin/accounts.d.ts +1 -1
  83. package/dist/src/plugin/accounts.d.ts.map +1 -1
  84. package/dist/src/plugin/accounts.js +1 -0
  85. package/dist/src/plugin/accounts.js.map +1 -1
  86. package/dist/src/plugin/background-vault-quota-refresh.d.ts +2 -0
  87. package/dist/src/plugin/background-vault-quota-refresh.d.ts.map +1 -1
  88. package/dist/src/plugin/background-vault-quota-refresh.js +125 -10
  89. package/dist/src/plugin/background-vault-quota-refresh.js.map +1 -1
  90. package/dist/src/plugin/command-apply.d.ts +2 -2
  91. package/dist/src/plugin/command-apply.d.ts.map +1 -1
  92. package/dist/src/plugin/command-apply.js +3 -10
  93. package/dist/src/plugin/command-apply.js.map +1 -1
  94. package/dist/src/plugin/commands.d.ts +1 -0
  95. package/dist/src/plugin/commands.d.ts.map +1 -1
  96. package/dist/src/plugin/commands.js +2 -2
  97. package/dist/src/plugin/commands.js.map +1 -1
  98. package/dist/src/plugin/config/operator-settings-schema.d.ts +0 -4
  99. package/dist/src/plugin/config/operator-settings-schema.d.ts.map +1 -1
  100. package/dist/src/plugin/config/operator-settings-schema.js +0 -5
  101. package/dist/src/plugin/config/operator-settings-schema.js.map +1 -1
  102. package/dist/src/plugin/config/schema.d.ts +0 -7
  103. package/dist/src/plugin/config/schema.d.ts.map +1 -1
  104. package/dist/src/plugin/config/schema.js +0 -43
  105. package/dist/src/plugin/config/schema.js.map +1 -1
  106. package/dist/src/plugin/config/writer.d.ts +1 -1
  107. package/dist/src/plugin/config/writer.js +1 -1
  108. package/dist/src/plugin/fetch/retry-state.d.ts +19 -3
  109. package/dist/src/plugin/fetch/retry-state.d.ts.map +1 -1
  110. package/dist/src/plugin/fetch/retry-state.js +0 -6
  111. package/dist/src/plugin/fetch/retry-state.js.map +1 -1
  112. package/dist/src/plugin/fetch-interceptor.d.ts.map +1 -1
  113. package/dist/src/plugin/fetch-interceptor.js +0 -3
  114. package/dist/src/plugin/fetch-interceptor.js.map +1 -1
  115. package/dist/src/plugin/fetch-routing.d.ts +0 -16
  116. package/dist/src/plugin/fetch-routing.d.ts.map +1 -1
  117. package/dist/src/plugin/fetch-routing.js +0 -49
  118. package/dist/src/plugin/fetch-routing.js.map +1 -1
  119. package/dist/src/plugin/ga-location-services.d.ts +14 -9
  120. package/dist/src/plugin/ga-location-services.d.ts.map +1 -1
  121. package/dist/src/plugin/ga-location-services.js +120 -40
  122. package/dist/src/plugin/ga-location-services.js.map +1 -1
  123. package/dist/src/plugin/google-origin.d.ts +7 -0
  124. package/dist/src/plugin/google-origin.d.ts.map +1 -0
  125. package/dist/src/plugin/google-origin.js +14 -0
  126. package/dist/src/plugin/google-origin.js.map +1 -0
  127. package/dist/src/plugin/index.d.ts.map +1 -1
  128. package/dist/src/plugin/index.js +15 -4
  129. package/dist/src/plugin/index.js.map +1 -1
  130. package/dist/src/plugin/oauth-methods.d.ts.map +1 -1
  131. package/dist/src/plugin/oauth-methods.js +0 -33
  132. package/dist/src/plugin/oauth-methods.js.map +1 -1
  133. package/dist/src/plugin/operator-settings.d.ts +1 -1
  134. package/dist/src/plugin/operator-settings.d.ts.map +1 -1
  135. package/dist/src/plugin/operator-settings.js +1 -8
  136. package/dist/src/plugin/operator-settings.js.map +1 -1
  137. package/dist/src/plugin/quota.d.ts +11 -7
  138. package/dist/src/plugin/quota.d.ts.map +1 -1
  139. package/dist/src/plugin/quota.js +128 -102
  140. package/dist/src/plugin/quota.js.map +1 -1
  141. package/dist/src/plugin/request.d.ts +5 -3
  142. package/dist/src/plugin/request.d.ts.map +1 -1
  143. package/dist/src/plugin/request.js +87 -168
  144. package/dist/src/plugin/request.js.map +1 -1
  145. package/dist/src/plugin/server.d.ts.map +1 -1
  146. package/dist/src/plugin/server.js +60 -53
  147. package/dist/src/plugin/server.js.map +1 -1
  148. package/dist/src/plugin/shared/advisory-repository.d.ts +20 -0
  149. package/dist/src/plugin/shared/advisory-repository.d.ts.map +1 -0
  150. package/dist/src/plugin/shared/advisory-repository.js +91 -0
  151. package/dist/src/plugin/shared/advisory-repository.js.map +1 -0
  152. package/dist/src/plugin/shared/request-services.d.ts +19 -25
  153. package/dist/src/plugin/shared/request-services.d.ts.map +1 -1
  154. package/dist/src/plugin/shared/request-services.js +105 -188
  155. package/dist/src/plugin/shared/request-services.js.map +1 -1
  156. package/dist/src/plugin/shared/runtime.js +4 -2
  157. package/dist/src/plugin/shared/runtime.js.map +1 -1
  158. package/dist/src/plugin/shared/vault-request-credentials.d.ts +4 -1
  159. package/dist/src/plugin/shared/vault-request-credentials.d.ts.map +1 -1
  160. package/dist/src/plugin/shared/vault-request-credentials.js +41 -7
  161. package/dist/src/plugin/shared/vault-request-credentials.js.map +1 -1
  162. package/dist/src/plugin/storage.d.ts +2 -2
  163. package/dist/src/plugin/storage.d.ts.map +1 -1
  164. package/dist/src/plugin/storage.js.map +1 -1
  165. package/dist/src/plugin/vault-custody.d.ts.map +1 -1
  166. package/dist/src/plugin/vault-custody.js +147 -35
  167. package/dist/src/plugin/vault-custody.js.map +1 -1
  168. package/dist/src/plugin/vault-quota-outcome.d.ts +19 -0
  169. package/dist/src/plugin/vault-quota-outcome.d.ts.map +1 -0
  170. package/dist/src/plugin/vault-quota-outcome.js +47 -0
  171. package/dist/src/plugin/vault-quota-outcome.js.map +1 -0
  172. package/dist/src/quota-presentation.d.ts +29 -1
  173. package/dist/src/quota-presentation.d.ts.map +1 -1
  174. package/dist/src/quota-presentation.js +52 -17
  175. package/dist/src/quota-presentation.js.map +1 -1
  176. package/dist/src/setup.d.ts +15 -0
  177. package/dist/src/setup.d.ts.map +1 -0
  178. package/dist/src/setup.js +320 -0
  179. package/dist/src/setup.js.map +1 -0
  180. package/dist/src/sidebar-projection.d.ts +1 -1
  181. package/dist/src/sidebar-projection.d.ts.map +1 -1
  182. package/dist/src/sidebar-state.d.ts +1 -1
  183. package/dist/src/sidebar-state.d.ts.map +1 -1
  184. package/dist/src/sidebar-state.js +19 -1
  185. package/dist/src/sidebar-state.js.map +1 -1
  186. package/dist/src/tui.d.ts.map +1 -1
  187. package/dist/src/tui.js +205 -110
  188. package/dist/src/tui.js.map +1 -1
  189. package/dist/tui-build-map.json +37 -37
  190. package/dist/tui-ga-build-map.json +33 -33
  191. package/dist/types/src/auth-method-labels.d.ts +3 -0
  192. package/dist/types/src/auth-method-labels.d.ts.map +1 -0
  193. package/dist/types/src/cli.d.ts +3 -1
  194. package/dist/types/src/cli.d.ts.map +1 -1
  195. package/dist/types/src/common-auth-embedded/auth-menu/terminal.d.ts +43 -0
  196. package/dist/types/src/common-auth-embedded/claustrum/consumer.d.ts +132 -0
  197. package/dist/types/src/common-auth-embedded/claustrum/custody.d.ts +178 -0
  198. package/dist/types/src/common-auth-embedded/claustrum/enrollment.d.ts +164 -0
  199. package/dist/types/src/common-auth-embedded/claustrum/errors.d.ts +16 -0
  200. package/dist/types/src/common-auth-embedded/claustrum/host-slot.d.ts +39 -0
  201. package/dist/types/src/common-auth-embedded/claustrum/index.d.ts +19 -0
  202. package/dist/types/src/common-auth-embedded/claustrum/insula.d.ts +69 -0
  203. package/dist/types/src/common-auth-embedded/claustrum/interlock.d.ts +27 -0
  204. package/dist/types/src/common-auth-embedded/claustrum/roster.d.ts +221 -0
  205. package/dist/types/src/common-auth-embedded/opencode2/errors.d.ts +25 -0
  206. package/dist/types/src/common-auth-embedded/opencode2/index.d.ts +8 -0
  207. package/dist/types/src/common-auth-embedded/opencode2/install.d.ts +55 -0
  208. package/dist/types/src/common-auth-embedded/opencode2/integration.d.ts +112 -0
  209. package/dist/types/src/common-auth-embedded/opencode2/sse.d.ts +12 -0
  210. package/dist/types/src/common-auth-embedded/opencode2/types.d.ts +413 -0
  211. package/dist/types/src/common-auth-embedded/quota/codec.d.ts +2 -0
  212. package/dist/types/src/common-auth-embedded/quota/format.d.ts +26 -0
  213. package/dist/types/src/common-auth-embedded/quota/index.d.ts +4 -4
  214. package/dist/types/src/common-auth-embedded/quota/map.d.ts +11 -0
  215. package/dist/types/src/common-auth-embedded/quota/merge.d.ts +3 -1
  216. package/dist/types/src/common-auth-embedded/quota/projection.d.ts +2 -1
  217. package/dist/types/src/common-auth-embedded/routing/admission.d.ts +93 -0
  218. package/dist/types/src/common-auth-embedded/routing/index.d.ts +8 -0
  219. package/dist/types/src/common-auth-embedded/routing/ordered.d.ts +47 -0
  220. package/dist/types/src/common-auth-embedded/routing/pins.d.ts +22 -0
  221. package/dist/types/src/common-auth-embedded/routing/sticky.d.ts +158 -0
  222. package/dist/types/src/common-auth-embedded/setup/command.d.ts +3 -0
  223. package/dist/types/src/common-auth-embedded/setup/detect.d.ts +6 -0
  224. package/dist/types/src/common-auth-embedded/setup/index.d.ts +5 -0
  225. package/dist/types/src/common-auth-embedded/setup/process-fence.d.ts +43 -0
  226. package/dist/types/src/common-auth-embedded/setup/register.d.ts +11 -0
  227. package/dist/types/src/common-auth-embedded/setup/types.d.ts +136 -0
  228. package/dist/types/src/common-auth-embedded/store/schema.d.ts +2 -0
  229. package/dist/types/src/ga/rpc/protocol.d.ts +4 -7
  230. package/dist/types/src/ga/rpc/protocol.d.ts.map +1 -1
  231. package/dist/types/src/ga/server/auth.d.ts +8 -3
  232. package/dist/types/src/ga/server/auth.d.ts.map +1 -1
  233. package/dist/types/src/ga/server/index.d.ts +39 -12
  234. package/dist/types/src/ga/server/index.d.ts.map +1 -1
  235. package/dist/types/src/ga/server/pool-login.d.ts +22 -0
  236. package/dist/types/src/ga/server/pool-login.d.ts.map +1 -0
  237. package/dist/types/src/plugin/accounts.d.ts +1 -1
  238. package/dist/types/src/plugin/accounts.d.ts.map +1 -1
  239. package/dist/types/src/plugin/background-vault-quota-refresh.d.ts +2 -0
  240. package/dist/types/src/plugin/background-vault-quota-refresh.d.ts.map +1 -1
  241. package/dist/types/src/plugin/command-apply.d.ts +2 -2
  242. package/dist/types/src/plugin/command-apply.d.ts.map +1 -1
  243. package/dist/types/src/plugin/commands.d.ts +1 -0
  244. package/dist/types/src/plugin/commands.d.ts.map +1 -1
  245. package/dist/types/src/plugin/config/operator-settings-schema.d.ts +0 -4
  246. package/dist/types/src/plugin/config/operator-settings-schema.d.ts.map +1 -1
  247. package/dist/types/src/plugin/config/schema.d.ts +0 -7
  248. package/dist/types/src/plugin/config/schema.d.ts.map +1 -1
  249. package/dist/types/src/plugin/config/writer.d.ts +1 -1
  250. package/dist/types/src/plugin/fetch/retry-state.d.ts +19 -3
  251. package/dist/types/src/plugin/fetch/retry-state.d.ts.map +1 -1
  252. package/dist/types/src/plugin/fetch-interceptor.d.ts.map +1 -1
  253. package/dist/types/src/plugin/fetch-routing.d.ts +0 -16
  254. package/dist/types/src/plugin/fetch-routing.d.ts.map +1 -1
  255. package/dist/types/src/plugin/ga-location-services.d.ts +14 -9
  256. package/dist/types/src/plugin/ga-location-services.d.ts.map +1 -1
  257. package/dist/types/src/plugin/google-origin.d.ts +7 -0
  258. package/dist/types/src/plugin/google-origin.d.ts.map +1 -0
  259. package/dist/types/src/plugin/index.d.ts.map +1 -1
  260. package/dist/types/src/plugin/oauth-methods.d.ts.map +1 -1
  261. package/dist/types/src/plugin/operator-settings.d.ts +1 -1
  262. package/dist/types/src/plugin/operator-settings.d.ts.map +1 -1
  263. package/dist/types/src/plugin/quota.d.ts +11 -7
  264. package/dist/types/src/plugin/quota.d.ts.map +1 -1
  265. package/dist/types/src/plugin/request.d.ts +5 -3
  266. package/dist/types/src/plugin/request.d.ts.map +1 -1
  267. package/dist/types/src/plugin/server.d.ts.map +1 -1
  268. package/dist/types/src/plugin/shared/advisory-repository.d.ts +20 -0
  269. package/dist/types/src/plugin/shared/advisory-repository.d.ts.map +1 -0
  270. package/dist/types/src/plugin/shared/request-services.d.ts +19 -25
  271. package/dist/types/src/plugin/shared/request-services.d.ts.map +1 -1
  272. package/dist/types/src/plugin/shared/vault-request-credentials.d.ts +4 -1
  273. package/dist/types/src/plugin/shared/vault-request-credentials.d.ts.map +1 -1
  274. package/dist/types/src/plugin/storage.d.ts +2 -2
  275. package/dist/types/src/plugin/storage.d.ts.map +1 -1
  276. package/dist/types/src/plugin/vault-custody.d.ts.map +1 -1
  277. package/dist/types/src/plugin/vault-quota-outcome.d.ts +19 -0
  278. package/dist/types/src/plugin/vault-quota-outcome.d.ts.map +1 -0
  279. package/dist/types/src/setup.d.ts +15 -0
  280. package/dist/types/src/setup.d.ts.map +1 -0
  281. package/dist/types/src/sidebar-state.d.ts +1 -1
  282. package/dist/types/src/sidebar-state.d.ts.map +1 -1
  283. package/package.json +5 -4
  284. package/src/common-auth-embedded/claustrum/consumer.d.ts +33 -3
  285. package/src/common-auth-embedded/claustrum/consumer.js +96 -1
  286. package/src/common-auth-embedded/claustrum/custody.d.ts +4 -1
  287. package/src/common-auth-embedded/claustrum/enrollment.d.ts +6 -1
  288. package/src/common-auth-embedded/claustrum/enrollment.js +6 -1
  289. package/src/common-auth-embedded/claustrum/index.d.ts +2 -1
  290. package/src/common-auth-embedded/claustrum/index.js +5 -3
  291. package/src/common-auth-embedded/claustrum/insula.d.ts +69 -0
  292. package/src/common-auth-embedded/claustrum/insula.js +152 -0
  293. package/src/common-auth-embedded/claustrum/roster.d.ts +13 -0
  294. package/src/common-auth-embedded/claustrum/roster.js +33 -3
  295. package/src/common-auth-embedded/fs/refresh-file-lock.js +20 -11
  296. package/src/common-auth-embedded/quota/codec.d.ts +2 -0
  297. package/src/common-auth-embedded/quota/codec.js +2 -1
  298. package/src/common-auth-embedded/quota/format.d.ts +26 -0
  299. package/src/common-auth-embedded/quota/format.js +78 -42
  300. package/src/common-auth-embedded/quota/index.d.ts +4 -4
  301. package/src/common-auth-embedded/quota/index.js +2 -2
  302. package/src/common-auth-embedded/quota/map.d.ts +11 -0
  303. package/src/common-auth-embedded/quota/map.js +36 -1
  304. package/src/common-auth-embedded/quota/merge.d.ts +3 -1
  305. package/src/common-auth-embedded/quota/merge.js +21 -5
  306. package/src/common-auth-embedded/quota/projection.d.ts +2 -1
  307. package/src/common-auth-embedded/quota/projection.js +3 -1
  308. package/src/common-auth-embedded/setup/command-runner.js +49 -0
  309. package/src/common-auth-embedded/setup/command.d.ts +3 -0
  310. package/src/common-auth-embedded/setup/command.js +215 -0
  311. package/src/common-auth-embedded/setup/config-write.js +60 -0
  312. package/src/common-auth-embedded/setup/detect.d.ts +6 -0
  313. package/src/common-auth-embedded/setup/detect.js +224 -0
  314. package/src/common-auth-embedded/setup/enroll.js +70 -0
  315. package/src/common-auth-embedded/setup/index.d.ts +5 -0
  316. package/src/common-auth-embedded/setup/index.js +4 -0
  317. package/src/common-auth-embedded/setup/paths.js +33 -0
  318. package/src/common-auth-embedded/setup/process-fence.d.ts +43 -0
  319. package/src/common-auth-embedded/setup/process-fence.js +270 -0
  320. package/src/common-auth-embedded/setup/prompts.js +26 -0
  321. package/src/common-auth-embedded/setup/register.d.ts +11 -0
  322. package/src/common-auth-embedded/setup/register.js +130 -0
  323. package/src/common-auth-embedded/setup/types.d.ts +136 -0
  324. package/src/common-auth-embedded/source-output.json +228 -80
  325. package/src/common-auth-embedded/store/schema.d.ts +2 -0
  326. package/src/common-auth-embedded/store/schema.js +3 -2
  327. package/src/sidebar-state.ts +19 -2
  328. package/src/tui-compiled/common-auth-embedded/quota/codec.js +2 -1
  329. package/src/tui-compiled/common-auth-embedded/quota/format.js +78 -42
  330. package/src/tui-compiled/common-auth-embedded/quota/index.js +2 -2
  331. package/src/tui-compiled/common-auth-embedded/quota/map.js +36 -1
  332. package/src/tui-compiled/common-auth-embedded/quota/merge.js +21 -5
  333. package/src/tui-compiled/common-auth-embedded/quota/projection.js +3 -1
  334. package/src/tui-compiled/quota-presentation.js +42 -9
  335. package/src/tui-compiled/sidebar-state.js +15 -1
  336. package/src/tui-compiled/tui.js +516 -334
  337. package/src/tui-ga-compiled/host-ga.js +11 -38
  338. package/src/tui-ga-compiled/shared/1ff34afa7c42d196-projection.js +3 -1
  339. package/src/tui-ga-compiled/shared/77138df80c7ae006-map.js +36 -1
  340. package/src/tui-ga-compiled/shared/98cc0c186c46c42d-quota-presentation.js +42 -9
  341. package/src/tui-ga-compiled/shared/aef2402f8fc342f0-format.js +78 -42
  342. package/src/tui-ga-compiled/shared/bf17cbee28e58197-index.js +2 -2
  343. package/src/tui-ga-compiled/shared/ca21dc417b36dc5d-codec.js +2 -1
  344. package/src/tui-ga-compiled/shared/ecc214300932dfb6-merge.js +21 -5
  345. package/src/tui-ga-raw/host-ga.tsx +31 -62
  346. package/src/tui-ga-raw/shared/1ff34afa7c42d196-projection.js +3 -1
  347. package/src/tui-ga-raw/shared/77138df80c7ae006-map.js +36 -1
  348. package/src/tui-ga-raw/shared/98cc0c186c46c42d-quota-presentation.js +42 -9
  349. package/src/tui-ga-raw/shared/aef2402f8fc342f0-format.js +78 -42
  350. package/src/tui-ga-raw/shared/bf17cbee28e58197-index.js +2 -2
  351. package/src/tui-ga-raw/shared/ca21dc417b36dc5d-codec.js +2 -1
  352. package/src/tui-ga-raw/shared/ecc214300932dfb6-merge.js +21 -5
  353. package/src/tui-raw/common-auth-embedded/quota/codec.js +2 -1
  354. package/src/tui-raw/common-auth-embedded/quota/format.js +78 -42
  355. package/src/tui-raw/common-auth-embedded/quota/index.js +2 -2
  356. package/src/tui-raw/common-auth-embedded/quota/map.js +36 -1
  357. package/src/tui-raw/common-auth-embedded/quota/merge.js +21 -5
  358. package/src/tui-raw/common-auth-embedded/quota/projection.js +3 -1
  359. package/src/tui-raw/quota-presentation.js +42 -9
  360. package/src/tui-raw/sidebar-state.js +15 -1
  361. package/src/tui-raw/tui.tsx +423 -218
  362. package/src/tui.tsx +423 -218
  363. package/dist/src/tui/vault-setup.d.ts +0 -98
  364. package/dist/src/tui/vault-setup.d.ts.map +0 -1
  365. package/dist/src/tui/vault-setup.js +0 -198
  366. package/dist/src/tui/vault-setup.js.map +0 -1
  367. package/dist/types/src/plugin/transform/model-resolver.d.ts +0 -2
  368. package/dist/types/src/plugin/transform/model-resolver.d.ts.map +0 -1
  369. package/dist/types/src/quota-presentation.d.ts +0 -18
  370. package/dist/types/src/quota-presentation.d.ts.map +0 -1
@@ -14,13 +14,13 @@
14
14
  * with `force: true` — manual quota screens must always refresh, even if
15
15
  * the background manager has backed off.
16
16
  */
17
- import { type AccountMetadataV3, type AccountQuotaResult, type AccountQuotaTarget, type AccountRepository, type AntigravityQuotaCheckReport, type AntigravityVaultAccountSource, type AccountManager as CoreAccountManager, type FetchAccountQuota, type FetchAvailableModelsOptions, type GeminiCliQuotaSummary, type QuotaManager, type QuotaSummary, type RowRef, type VaultRouteRef, type VaultStateAttribution } from '@cortexkit/antigravity-auth-core';
17
+ import { type AccountMetadataV3, type AccountQuotaResult, type AccountQuotaTarget, type AccountRepository, type AntigravityQuotaCheckReport, type AntigravityVaultAccountSource, type AccountManager as CoreAccountManager, type FetchAccountQuota, type FetchAvailableModelsOptions, type QuotaCheckPurpose, type QuotaManager, type QuotaSummary, type RowRef, type VaultRouteRef, type VaultStateAttribution } from '@cortexkit/antigravity-auth-core';
18
18
  import { type SidebarMachineState } from '../sidebar-state.js';
19
19
  import { type LocalAccountCredentials } from './accounts.js';
20
20
  import { type Logger } from './logger.js';
21
21
  import type { PluginClient } from './types.js';
22
22
  type QuotaFetch = NonNullable<FetchAvailableModelsOptions['fetchVia']>;
23
- export type { AccountQuotaResult, AccountQuotaStatus, GeminiCliQuotaModel, GeminiCliQuotaSummary, PerModelQuotaEntry, QuotaGroup, QuotaGroupSummary, QuotaManager, QuotaManagerOptions, QuotaSummary, } from '@cortexkit/antigravity-auth-core';
23
+ export type { AccountQuotaResult, AccountQuotaStatus, PerModelQuotaEntry, QuotaGroup, QuotaGroupSummary, QuotaManager, QuotaManagerOptions, QuotaSummary, } from '@cortexkit/antigravity-auth-core';
24
24
  export { classifyQuotaGroup, createQuotaManager, defaultKeyOf, } from '@cortexkit/antigravity-auth-core';
25
25
  export interface CreateOpenCodeQuotaManagerOptions {
26
26
  /** Override the default key derivation (email → refresh-token hash). */
@@ -198,7 +198,6 @@ export type VaultQuotaSource = Pick<AntigravityVaultAccountSource, 'send' | 'att
198
198
  /** Quota summaries and the credential versions that authorized their requests. */
199
199
  export interface VaultQuotaReading {
200
200
  quota: QuotaSummary;
201
- geminiCliQuota: GeminiCliQuotaSummary;
202
201
  fellBackToLegacy: boolean;
203
202
  /**
204
203
  * The credential and record version of the receipt that authorized the
@@ -207,8 +206,6 @@ export interface VaultQuotaReading {
207
206
  * answer was obtained.
208
207
  */
209
208
  quotaAttribution?: VaultStateAttribution;
210
- /** Likewise for `geminiCliQuota`. */
211
- geminiCliAttribution?: VaultStateAttribution;
212
209
  }
213
210
  export interface VaultQuotaCheckOptions {
214
211
  source: VaultQuotaSource;
@@ -218,10 +215,11 @@ export interface VaultQuotaCheckOptions {
218
215
  logger: Pick<Logger, 'debug'>;
219
216
  /** Physical request transport; defaults to `fetchWithActiveTimeout`. */
220
217
  transport?: QuotaFetch;
218
+ onFailure?: (error: unknown, refused: boolean) => void;
221
219
  }
222
220
  /**
223
221
  * Fetches a vault account's quota: the windowed quota summary (with the
224
- * legacy model-list fallback) and the Gemini CLI quota, from the same core
222
+ * legacy model-list fallback), from the same core
225
223
  * builders and endpoint list the local check uses.
226
224
  *
227
225
  * Every physical request (each endpoint, each fallback, and the model
@@ -249,6 +247,9 @@ export type LocalQuotaGrantCheck = {
249
247
  * through the vault source's own per-send admission instead.
250
248
  */
251
249
  export type LocalQuotaCheckAuthorization = {
250
+ readonly status: 'skipped';
251
+ readonly reason: 'refresh-needed' | 'project-needed';
252
+ } | {
252
253
  readonly status: 'authorized';
253
254
  readonly domain: 'local';
254
255
  readonly accessToken: string;
@@ -275,7 +276,7 @@ export interface AuthorizedFetchAccountQuotaOptions {
275
276
  * repository row reference it carries) before any other work runs. This
276
277
  * fetcher never refreshes, caches or stores a token.
277
278
  */
278
- authorize(account: AccountMetadataV3, signal: AbortSignal): Promise<LocalQuotaCheckAuthorization>;
279
+ authorize(account: AccountMetadataV3, signal: AbortSignal, purpose?: QuotaCheckPurpose): Promise<LocalQuotaCheckAuthorization>;
279
280
  /** Receives the fetcher's diagnostic records; never tokens. */
280
281
  logger: Pick<Logger, 'debug'>;
281
282
  /**
@@ -437,6 +438,9 @@ export interface StoreQuotaServiceOptions {
437
438
  *
438
439
  * Only accounts whose refresh token is stored locally use this service;
439
440
  * vault-held accounts never do.
441
+ * Successful-send quota is best-effort: its explicit advisory purpose uses only
442
+ * the stored token and project. Checks needing refresh or discovery are skipped
443
+ * so shutdown cannot acquire more credential writes or project-setup network work.
440
444
  */
441
445
  export declare function createStoreQuotaService(options: StoreQuotaServiceOptions): StoreQuotaService;
442
446
  //# sourceMappingURL=quota.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../../../src/plugin/quota.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../../../src/plugin/quota.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,2BAA2B,EAChC,KAAK,6BAA6B,EAGlC,KAAK,cAAc,IAAI,kBAAkB,EAIzC,KAAK,iBAAiB,EACtB,KAAK,2BAA2B,EAKhC,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,MAAM,EAIX,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC3B,MAAM,kCAAkC,CAAA;AAMzC,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,YAAY,CAAA;AAQnB,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AAGpD,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,SAAS,CAAA;AAE7D,KAAK,UAAU,GAAG,WAAW,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC,CAAA;AAKtE,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,YAAY,GACb,MAAM,kCAAkC,CAAA;AACzC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,GACb,MAAM,kCAAkC,CAAA;AAEzC,MAAM,WAAW,iCAAiC;IAChD,wEAAwE;IACxE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,MAAM,CAAA;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,YAAY,EACpB,UAAU,GAAE,MAAgC,EAC5C,OAAO,GAAE,iCAAiC,GAAG;IAC3C;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,MAAM,mBAAmB,EAAE,GAAG,IAAI,CAAA;IAC1D;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM;QAC7B,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,MAAM,CAAA;KACf,GAAG,IAAI,CAAA;IACR;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/B,sBAAsB,CAAC,EAAE,iBAAiB,CAAA;IAC1C,2GAA2G;IAC3G,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAChC,GACL,YAAY,CAgDd;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;OAGG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpD,uEAAuE;IACvE,WAAW,EAAE,MAAM,mBAAmB,EAAE,GAAG,IAAI,CAAA;IAC/C,sBAAsB,CAAC,EAAE,MAAM;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IACxE;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IACvC,oEAAoE;IACpE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,2BACf,SAAQ,iCAAiC;IACzC,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,wEAAwE;IACxE,OAAO,CAAC,EAAE,2BAA2B,CAAA;CACtC;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,2BAA2B,GACnC,YAAY,CAmCd;AA2ED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAa/B;AAED,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,OAAO,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAC5B,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAiB/B;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,MAAM,EAAE,YAAY,EACpB,UAAU,GAAE,MAAgC,GAC3C,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAK/B;AAED,mEAAmE;AACnE,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,WAAW,CAAC,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAA;IAC9C,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,+DAA+D;IAC/D,IAAI,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAA;CAC3D;AAED;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrD,0EAA0E;IAC1E,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,IAAI,CAAA;IAChD,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,MAAM,mBAAmB,EAAE,GAAG,IAAI,EAC/C,YAAY,GAAE,MAAU,EACxB,sBAAsB,CAAC,EAAE,MAAM;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf,GAAG,IAAI,EACR,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,IAAI,CAAC,CAiDf;AA6FD,8DAA8D;AAC9D,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,6BAA6B,EAC7B,MAAM,GAAG,aAAa,CACvB,CAAA;AAED,kFAAkF;AAClF,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,YAAY,CAAA;IACnB,gBAAgB,EAAE,OAAO,CAAA;IACzB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,qBAAqB,CAAA;CACzC;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,gBAAgB,CAAA;IACxB,+DAA+D;IAC/D,GAAG,EAAE,aAAa,CAAA;IAClB,MAAM,EAAE,WAAW,CAAA;IACnB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,wEAAwE;IACxE,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;CACvD;AAuID;;;;;;;;;;;;;GAaG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,iBAAiB,CAAC,CA8G5B;AAED,0EAA0E;AAC1E,MAAM,MAAM,oBAAoB,GAC5B;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAC9B;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEzD;;;;;;GAMG;AACH,MAAM,MAAM,4BAA4B,GACpC;IACE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAAA;CACrD,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,EAAE,CACpB,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,oBAAoB,CAAC,CAAA;CACnC,GACD;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAE3D,MAAM,WAAW,kCAAkC;IACjD;;;;;;;OAOG;IACH,SAAS,CACP,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,4BAA4B,CAAC,CAAA;IACxC,+DAA+D;IAC/D,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,UAAU,CAAA;CAChD;AA4BD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,kCAAkC,GAC1C,iBAAiB,CA6FnB;AAsPD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/B,cAAc,CAAC,EAAE,CACf,OAAO,EAAE,kBAAkB,KACxB,OAAO,CAAC,4BAA4B,CAAC,CAAA;CACtC,GACL,CACD,OAAO,EAAE,iBAAiB,KACvB,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAsDvE;AAMD,+DAA+D;AAC/D,MAAM,MAAM,iBAAiB,GACzB;IACE;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;IACnC,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAA;CACvC,GACD;IACE;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;CACpC;AACH,6DAA6D;GAC3D;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAAA;AAEtE,YAAY,EAAE,2BAA2B,EAAE,CAAA;AAE3C;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAA;IACjD,QAAQ,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAA;IACjD,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AA6CD;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,mBAAmB,EAAE,CAC5B,OAAO,EAAE,kBAAkB,KACxB,OAAO,CAAC,4BAA4B,CAAC,CAAA;IAC1C,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAA;IAC7C,sEAAsE;IACtE,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;IACnC;;;;OAIG;IACH,cAAc,CACZ,MAAM,EAAE,kBAAkB,EAC1B,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAC7B,mEAAmE;IACnE,UAAU,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAA;IACvE;;;;;;;;OAQG;IACH,eAAe,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAA;IAC9E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IACxC,2EAA2E;IAC3E,OAAO,EAAE,kBAAkB,CAAA;IAC3B,yEAAyE;IACzE,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAA;IAC3C,MAAM,EAAE,MAAM,CAAA;IACd,4DAA4D;IAC5D,WAAW,CAAC,EAAE,IAAI,CAChB,uBAAuB,EACvB,SAAS,GAAG,eAAe,GAAG,oBAAoB,CACnD,CAAA;IACD,wEAAwE;IACxE,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,UAAU,CAAA;IAC/C,OAAO,CAAC,EAAE,2BAA2B,CAAA;IACrC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAoBD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,wBAAwB,GAChC,iBAAiB,CAyQnB"}
@@ -14,8 +14,8 @@
14
14
  * with `force: true` — manual quota screens must always refresh, even if
15
15
  * the background manager has backed off.
16
16
  */
17
- import { aggregateGeminiCliQuota, aggregateQuota, aggregateQuotaSummary, createQuotaManager, defaultKeyOf, fetchAvailableModels, fetchGeminiCliQuota, fetchQuotaSummary, fetchWithActiveTimeout, getHealthTracker, rowRefKey, sameRowRef, VAULT_ACCOUNT_REMEDY, } from '@cortexkit/antigravity-auth-core';
18
- import { ANTIGRAVITY_ENDPOINT_FALLBACKS, ANTIGRAVITY_PROVIDER_ID, buildGeminiCliUserAgent, } from '../constants';
17
+ import { aggregateQuota, aggregateQuotaSummary, createQuotaManager, defaultKeyOf, fetchAvailableModels, fetchQuotaSummary, fetchWithActiveTimeout, getHealthTracker, rowRefKey, sameRowRef, VAULT_ACCOUNT_REMEDY, } from '@cortexkit/antigravity-auth-core';
18
+ import { ANTIGRAVITY_ENDPOINT_FALLBACKS, ANTIGRAVITY_PROVIDER_ID, } from '../constants';
19
19
  import { buildSidebarMachineStateFromAccounts, isAccountCurrent, setSidebarMachineState, } from '../sidebar-state';
20
20
  import { createLocalAccountCredentials, } from './accounts';
21
21
  import { accessTokenExpired, formatRefreshParts, parseRefreshParts, } from './auth';
@@ -43,7 +43,7 @@ export { classifyQuotaGroup, createQuotaManager, defaultKeyOf, } from '@cortexki
43
43
  */
44
44
  export function createOpenCodeQuotaManager(client, providerId = ANTIGRAVITY_PROVIDER_ID, options = {}) {
45
45
  const fetchPoolFileQuota = makeFetchAccountQuota(client, providerId, options.fetchVia);
46
- const fetchAccountQuota = async (account, request) => {
46
+ const fetchAccountQuota = async (account, request, purpose = 'required') => {
47
47
  const target = account;
48
48
  const ref = target.rowRef;
49
49
  if (options.mayRun && !(await options.mayRun()))
@@ -52,9 +52,13 @@ export function createOpenCodeQuotaManager(client, providerId = ANTIGRAVITY_PROV
52
52
  if (!options.fetchStoreAccountQuota)
53
53
  throw new Error('Store quota authorization is unavailable');
54
54
  const captured = { ...target, rowRef: ref };
55
- return options.fetchStoreAccountQuota(captured, request);
55
+ return purpose === 'advisory'
56
+ ? options.fetchStoreAccountQuota(captured, request, purpose)
57
+ : options.fetchStoreAccountQuota(captured, request);
56
58
  }
57
- return fetchPoolFileQuota(account, request);
59
+ return purpose === 'advisory'
60
+ ? fetchPoolFileQuota(account, request, purpose)
61
+ : fetchPoolFileQuota(account, request);
58
62
  };
59
63
  const manager = createQuotaManager({
60
64
  fetchAccountQuota,
@@ -290,19 +294,12 @@ async function fetchLegacyModelsFallback(options) {
290
294
  }
291
295
  }
292
296
  /**
293
- * Fetches both quota payloads for one account with a bearer and project the
294
- * caller already resolved: the windowed quota summary (with the legacy
295
- * model-list fallback) and the Gemini CLI quota. Shared by the OpenCode 1
297
+ * Fetches the Antigravity quota summary for one account with a bearer and
298
+ * project the caller already resolved, with a legacy model-list fallback. Shared by the OpenCode 1
296
299
  * fetcher and `createAuthorizedFetchAccountQuota`.
297
300
  */
298
301
  async function fetchQuotaPayloads(options) {
299
302
  const { accessToken, managedProjectId, projectId, fetchVia } = options;
300
- // Two independent payload contracts: the windowed summary
301
- // (with legacy fallback) and the gemini-CLI quota. They share
302
- // access + project but target different endpoints, so the
303
- // two 10s timeouts ran back-to-back for ~20s per account on
304
- // modal open. Run them concurrently; either rejection is
305
- // handled by its own branch and the result is still merged.
306
303
  const fetchSummaryPayload = (async () => {
307
304
  try {
308
305
  const summaryResult = await fetchQuotaSummary({
@@ -330,55 +327,12 @@ async function fetchQuotaPayloads(options) {
330
327
  };
331
328
  }
332
329
  })();
333
- // CLI fetch is independent of the summary fetch. A CLI failure must
334
- // NOT kill the summary result, but it also must not be laundered into
335
- // "No Gemini CLI quota available" (a permanent-looking status) when
336
- // the real cause is a transient network error. Capture the error
337
- // message separately so the annotated result can carry it.
338
- let geminiCliFetchError;
339
- const fetchGeminiCliPayload = fetchGeminiCliQuota({
340
- accessToken,
341
- projectId,
342
- endpoints: ANTIGRAVITY_ENDPOINT_FALLBACKS,
343
- userAgent: buildGeminiCliUserAgent(),
344
- timeoutMs: 10_000,
345
- ...(fetchVia ? { fetchVia } : {}),
346
- }).catch((error) => {
347
- geminiCliFetchError = error instanceof Error ? error.message : String(error);
348
- options.logger.debug('fetchGeminiCliQuota failed', {
349
- error: geminiCliFetchError,
350
- });
351
- return { buckets: undefined };
352
- });
353
- const [summary, geminiCliResponse] = await Promise.all([
354
- fetchSummaryPayload,
355
- fetchGeminiCliPayload,
356
- ]);
330
+ const summary = await fetchSummaryPayload;
357
331
  return {
358
332
  quota: summary.result,
359
- geminiCliQuota: annotateGeminiCliQuota(geminiCliResponse, geminiCliFetchError),
360
333
  fellBackToLegacy: summary.fellBackToLegacy,
361
334
  };
362
335
  }
363
- /**
364
- * The Gemini CLI quota summary for a `retrieveUserQuota` answer. An empty or
365
- * missing answer carries an error: the fetch error when the request failed
366
- * (a transient failure, not "no CLI quota configured"), else the generic
367
- * "no quota" text.
368
- */
369
- function annotateGeminiCliQuota(response, fetchError) {
370
- const result = aggregateGeminiCliQuota(response);
371
- if (response.buckets !== undefined && response.buckets.length > 0) {
372
- return result;
373
- }
374
- return {
375
- ...result,
376
- error: fetchError ??
377
- (result.models.length === 0
378
- ? 'No Gemini CLI quota available'
379
- : undefined),
380
- };
381
- }
382
336
  /** Stops an outbound quota request after cancellation or a vault authorization refusal. */
383
337
  class VaultQuotaCheckStoppedError extends Error {
384
338
  name = 'VaultQuotaCheckStoppedError';
@@ -440,7 +394,18 @@ isStopped, build) {
440
394
  });
441
395
  // The builder reads a clone; `send` gets the original Response,
442
396
  // whose status it needs for 401 reporting.
443
- return served.clone();
397
+ const copy = served.clone();
398
+ if (!copy.body)
399
+ return copy;
400
+ // Explicitly cancel body consumption too: injected transports can return
401
+ // streams that do not themselves observe the fetch signal.
402
+ return new Response(copy.body.pipeThrough(new TransformStream(), {
403
+ signal: options.signal,
404
+ }), {
405
+ status: copy.status,
406
+ statusText: copy.statusText,
407
+ headers: copy.headers,
408
+ });
444
409
  };
445
410
  attempt = {};
446
411
  try {
@@ -471,7 +436,7 @@ isStopped, build) {
471
436
  }
472
437
  /**
473
438
  * Fetches a vault account's quota: the windowed quota summary (with the
474
- * legacy model-list fallback) and the Gemini CLI quota, from the same core
439
+ * legacy model-list fallback), from the same core
475
440
  * builders and endpoint list the local check uses.
476
441
  *
477
442
  * Every physical request (each endpoint, each fallback, and the model
@@ -484,9 +449,7 @@ isStopped, build) {
484
449
  * `commitState`) is the caller's.
485
450
  */
486
451
  export async function fetchVaultAccountQuota(options) {
487
- // Shared by the summary and Gemini CLI halves, which run concurrently: a
488
- // refusal in one stops requests in the other too, including one whose
489
- // receipt was being served when the refusal happened.
452
+ // A refused receipt stops endpoint retries and the legacy model-list fallback.
490
453
  const stopped = { value: false };
491
454
  const isStopped = () => stopped.value || options.signal.aborted;
492
455
  const attempt = async (build) => {
@@ -494,6 +457,8 @@ export async function fetchVaultAccountQuota(options) {
494
457
  return { error: new VaultQuotaCheckStoppedError(), refused: true };
495
458
  }
496
459
  const result = await vaultQuotaAttempt(options, isStopped, build);
460
+ if (result.error !== undefined || result.refused)
461
+ options.onFailure?.(result.error, result.refused === true);
497
462
  if (result.refused || options.signal.aborted)
498
463
  stopped.value = true;
499
464
  return result;
@@ -574,46 +539,33 @@ export async function fetchVaultAccountQuota(options) {
574
539
  fellBackToLegacy: true,
575
540
  };
576
541
  };
577
- const fetchGeminiCli = async () => {
578
- const errors = [];
579
- for (const endpoint of ANTIGRAVITY_ENDPOINT_FALLBACKS) {
580
- const result = await attempt((grant, fetchVia) => fetchGeminiCliQuota({
581
- accessToken: grant.accessToken,
582
- projectId: grant.projectId,
583
- endpoints: [endpoint],
584
- userAgent: buildGeminiCliUserAgent(),
585
- timeoutMs: 10_000,
586
- fetchVia,
587
- }));
588
- if (result.value !== undefined) {
589
- return {
590
- response: result.value,
591
- ...(result.attribution ? { attribution: result.attribution } : {}),
592
- };
593
- }
594
- errors.push(result.error instanceof Error
595
- ? result.error.message
596
- : String(result.error));
597
- if (result.refused)
598
- break;
599
- }
600
- const error = errors.join('; ') || 'fetchGeminiCliQuota failed';
601
- options.logger.debug('vault fetchGeminiCliQuota failed', { error });
602
- return { response: { buckets: undefined }, error };
603
- };
604
- const [summary, cli] = await Promise.all([fetchSummary(), fetchGeminiCli()]);
542
+ const summary = await fetchSummary();
605
543
  return {
606
544
  quota: summary.result,
607
- geminiCliQuota: annotateGeminiCliQuota(cli.response, cli.error),
608
545
  fellBackToLegacy: summary.fellBackToLegacy,
609
546
  ...(summary.attribution ? { quotaAttribution: summary.attribution } : {}),
610
- ...(cli.attribution ? { geminiCliAttribution: cli.attribution } : {}),
611
547
  };
612
548
  }
613
549
  /** Raised inside a check when a request's local grant is no longer current. */
614
550
  class LocalQuotaGrantStaleError extends Error {
615
551
  name = 'LocalQuotaGrantStaleError';
616
552
  }
553
+ function untilQuotaAborted(pending, signal) {
554
+ return new Promise((resolve, reject) => {
555
+ const abort = () => reject(signal.reason);
556
+ if (signal.aborted)
557
+ abort();
558
+ else
559
+ signal.addEventListener('abort', abort, { once: true });
560
+ void pending.then((value) => {
561
+ signal.removeEventListener('abort', abort);
562
+ resolve(value);
563
+ }, (error) => {
564
+ signal.removeEventListener('abort', abort);
565
+ reject(error);
566
+ });
567
+ });
568
+ }
617
569
  /**
618
570
  * A quota fetcher for LOCAL credentials whose bearer and project come from
619
571
  * the caller's `authorize` callback instead of the account's stored refresh
@@ -633,7 +585,7 @@ class LocalQuotaGrantStaleError extends Error {
633
585
  * it may write to.
634
586
  */
635
587
  export function createAuthorizedFetchAccountQuota(options) {
636
- return async (account, signal) => {
588
+ return async (account, signal, purpose = 'required') => {
637
589
  const base = { index: 0, email: account.email };
638
590
  if (account.enabled === false) {
639
591
  return { ...base, status: 'disabled', disabled: true };
@@ -645,8 +597,14 @@ export function createAuthorizedFetchAccountQuota(options) {
645
597
  try {
646
598
  // Called before the first await, so the callback sees the account as
647
599
  // handed in; a synchronous throw lands in the catch below.
648
- const authorizing = options.authorize(account, signal);
600
+ const authorizing = purpose === 'advisory'
601
+ ? options.authorize(account, signal, purpose)
602
+ : options.authorize(account, signal);
649
603
  const authorization = await authorizing;
604
+ if (authorization.status === 'skipped') {
605
+ options.logger.debug(`advisory-quota-skipped-${authorization.reason}`);
606
+ return { ...base, status: 'skipped', disabled: false };
607
+ }
650
608
  if (authorization.status !== 'authorized') {
651
609
  return {
652
610
  ...base,
@@ -669,6 +627,7 @@ export function createAuthorizedFetchAccountQuota(options) {
669
627
  const send = options.transport?.(signal) ??
670
628
  ((url, init, extra) => fetchWithActiveTimeout(url, { ...init, signal: extra.signal ?? signal }, { timeoutMs: extra.timeoutMs }));
671
629
  const guarded = async (url, init, extra) => {
630
+ signal.throwIfAborted();
672
631
  if (staleReason !== null)
673
632
  throw new LocalQuotaGrantStaleError(staleReason);
674
633
  const check = await authorization.confirmSend(signal);
@@ -681,13 +640,16 @@ export function createAuthorizedFetchAccountQuota(options) {
681
640
  // out at once, with this quota check's abort signal.
682
641
  return send(url, init, { ...extra, signal });
683
642
  };
684
- const payloads = await fetchQuotaPayloads({
643
+ const pendingPayloads = fetchQuotaPayloads({
685
644
  accessToken: authorization.accessToken,
686
645
  managedProjectId: authorization.managedProjectId,
687
646
  projectId: authorization.projectId,
688
647
  fetchVia: guarded,
689
648
  logger: options.logger,
690
649
  });
650
+ // The quota manager's deadline and request cancellation also bound custom
651
+ // transports and response bodies that ignore their abort signal.
652
+ const payloads = await untilQuotaAborted(pendingPayloads, signal);
691
653
  if (staleReason !== null) {
692
654
  return {
693
655
  ...base,
@@ -701,7 +663,6 @@ export function createAuthorizedFetchAccountQuota(options) {
701
663
  status: 'ok',
702
664
  disabled: false,
703
665
  quota: payloads.quota,
704
- geminiCliQuota: payloads.geminiCliQuota,
705
666
  };
706
667
  }
707
668
  catch (error) {
@@ -712,7 +673,7 @@ export function createAuthorizedFetchAccountQuota(options) {
712
673
  };
713
674
  }
714
675
  function makeFetchAccountQuota(client, providerId, fetchVia) {
715
- return async (account, signal) => {
676
+ return async (account, signal, purpose = 'required') => {
716
677
  const index = 0;
717
678
  const disabled = account.enabled === false;
718
679
  if (disabled) {
@@ -733,6 +694,59 @@ function makeFetchAccountQuota(client, providerId, fetchVia) {
733
694
  }
734
695
  let auth = buildAuthFromAccount(account);
735
696
  let rotatedRefresh;
697
+ if (purpose === 'advisory') {
698
+ if (accessTokenExpired(auth)) {
699
+ log.debug('advisory-quota-skipped-refresh-needed');
700
+ return {
701
+ index,
702
+ email: account.email,
703
+ status: 'skipped',
704
+ disabled: false,
705
+ };
706
+ }
707
+ const parts = parseRefreshParts(auth.refresh);
708
+ const managedProjectId = parts.managedProjectId ?? account.managedProjectId;
709
+ const projectId = managedProjectId ?? parts.projectId ?? account.projectId;
710
+ if (!projectId) {
711
+ log.debug('advisory-quota-skipped-project-needed');
712
+ return {
713
+ index,
714
+ email: account.email,
715
+ status: 'skipped',
716
+ disabled: false,
717
+ };
718
+ }
719
+ try {
720
+ const payloads = await untilQuotaAborted(fetchQuotaPayloads({
721
+ accessToken: auth.access ?? '',
722
+ managedProjectId,
723
+ projectId,
724
+ fetchVia: (url, init, extra) => {
725
+ signal.throwIfAborted();
726
+ return fetchVia
727
+ ? fetchVia(url, init, { ...extra, signal })
728
+ : fetchWithActiveTimeout(url, { ...init, signal }, { timeoutMs: extra.timeoutMs });
729
+ },
730
+ logger: log,
731
+ }), signal);
732
+ return {
733
+ index,
734
+ email: account.email,
735
+ status: 'ok',
736
+ disabled: false,
737
+ quota: payloads.quota,
738
+ };
739
+ }
740
+ catch {
741
+ return {
742
+ index,
743
+ email: account.email,
744
+ status: 'error',
745
+ disabled: false,
746
+ error: 'advisory quota unavailable',
747
+ };
748
+ }
749
+ }
736
750
  try {
737
751
  if (accessTokenExpired(auth)) {
738
752
  const refreshed = await refreshAccessToken(auth, client, providerId);
@@ -766,7 +780,6 @@ function makeFetchAccountQuota(client, providerId, fetchVia) {
766
780
  });
767
781
  quotaResult = payloads.quota;
768
782
  fellBackToLegacy = payloads.fellBackToLegacy;
769
- const annotated = payloads.geminiCliQuota;
770
783
  for (const [family, groupQuota] of Object.entries(quotaResult.groups)) {
771
784
  const remainingPercent = (groupQuota.remainingFraction ?? 0) * 100;
772
785
  logQuotaStatus(account.email, index, remainingPercent, family);
@@ -779,7 +792,6 @@ function makeFetchAccountQuota(client, providerId, fetchVia) {
779
792
  status: 'ok',
780
793
  disabled: false,
781
794
  quota: quotaResult,
782
- geminiCliQuota: annotated,
783
795
  updatedAccount,
784
796
  };
785
797
  }
@@ -977,12 +989,15 @@ function heldAccount(manager, ref) {
977
989
  *
978
990
  * Only accounts whose refresh token is stored locally use this service;
979
991
  * vault-held accounts never do.
992
+ * Successful-send quota is best-effort: its explicit advisory purpose uses only
993
+ * the stored token and project. Checks needing refresh or discovery are skipped
994
+ * so shutdown cannot acquire more credential writes or project-setup network work.
980
995
  */
981
996
  export function createStoreQuotaService(options) {
982
997
  const { manager, logger } = options;
983
998
  const credentials = options.credentials ??
984
999
  createLocalAccountCredentials(manager, { repository: options.repository });
985
- const authorize = async (account) => {
1000
+ const authorize = async (account, _signal, purpose = 'required') => {
986
1001
  const ref = account.rowRef;
987
1002
  if (ref === undefined) {
988
1003
  return { status: 'refused', reason: 'the account has no store ref' };
@@ -995,6 +1010,8 @@ export function createStoreQuotaService(options) {
995
1010
  }
996
1011
  let auth = manager.toAuthDetails(held);
997
1012
  if (accessTokenExpired(auth)) {
1013
+ if (purpose === 'advisory')
1014
+ return { status: 'skipped', reason: 'refresh-needed' };
998
1015
  const refreshed = await credentials.refresh(held);
999
1016
  if (refreshed === undefined) {
1000
1017
  return { status: 'refused', reason: 'token refresh failed' };
@@ -1011,7 +1028,16 @@ export function createStoreQuotaService(options) {
1011
1028
  }
1012
1029
  if (options.mayRun && !(await options.mayRun()))
1013
1030
  return { status: 'refused', reason: VAULT_ACCOUNT_REMEDY };
1014
- const project = await credentials.ensureProject(auth);
1031
+ const storedProjects = parseRefreshParts(auth.refresh);
1032
+ const storedProject = storedProjects.managedProjectId ??
1033
+ held.managedProjectId ??
1034
+ storedProjects.projectId ??
1035
+ held.projectId;
1036
+ if (purpose === 'advisory' && !storedProject)
1037
+ return { status: 'skipped', reason: 'project-needed' };
1038
+ const project = purpose === 'advisory'
1039
+ ? { auth, effectiveProjectId: storedProject ?? '' }
1040
+ : await credentials.ensureProject(auth);
1015
1041
  if (options.mayRun && !(await options.mayRun()))
1016
1042
  return { status: 'refused', reason: VAULT_ACCOUNT_REMEDY };
1017
1043
  if (project.auth.refresh !== auth.refresh) {