@cortexkit/opencode-antigravity-auth 3.0.4 → 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 +9578 -9987
  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 +6 -10
  63. package/dist/src/ga/rpc/protocol.d.ts.map +1 -1
  64. package/dist/src/ga/rpc/protocol.js +65 -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 +229 -55
  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 +6 -10
  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
@@ -1,6 +1,6 @@
1
1
  import crypto from 'node:crypto';
2
2
  import { applyAgyNativeGenerationConfig, getAgyNativeModel, isGeminiArgonModel, isRetiredAgyModel, } from '@cortexkit/antigravity-auth-core';
3
- import { ANTIGRAVITY_DEFAULT_PROJECT_ID, ANTIGRAVITY_ENDPOINT, CLAUDE_DESCRIPTION_PROMPT, CLAUDE_TOOL_SYSTEM_INSTRUCTION, EMPTY_SCHEMA_PLACEHOLDER_DESCRIPTION, EMPTY_SCHEMA_PLACEHOLDER_NAME, GEMINI_CLI_ENDPOINT, getRandomizedHeaders, SKIP_THOUGHT_SIGNATURE, } from '../constants';
3
+ import { ANTIGRAVITY_DEFAULT_PROJECT_ID, ANTIGRAVITY_ENDPOINT, CLAUDE_DESCRIPTION_PROMPT, CLAUDE_TOOL_SYSTEM_INSTRUCTION, EMPTY_SCHEMA_PLACEHOLDER_DESCRIPTION, EMPTY_SCHEMA_PLACEHOLDER_NAME, getRandomizedHeaders, SKIP_THOUGHT_SIGNATURE, } from '../constants';
4
4
  import { buildAgyAgentRequestMetadata, createAgyRequestSessionContext, orderAgyRequestPayloadInPlace, } from './agy-request-metadata';
5
5
  import { cacheSignature, getCachedSignature, } from './cache';
6
6
  import { getKeepThinking } from './config';
@@ -8,12 +8,13 @@ import { createStreamingTransformer, transformSseLine, transformStreamingPayload
8
8
  import { DEBUG_MESSAGE_PREFIX, isDebugTuiEnabled, logAntigravityDebugResponse, logCacheStats, } from './debug';
9
9
  import { buildFingerprintHeaders, generateFingerprint, getSessionFingerprint, } from './fingerprint';
10
10
  import { appendGeminiDumpResponseText, createGeminiDumpResponseTransform, noteGeminiDumpResponse, } from './gemini-dump';
11
+ import { isCanonicalGoogleOrigin } from "./google-origin.js";
11
12
  import { createLogger } from './logger';
12
13
  import { detectErrorType } from './recovery';
13
14
  import { applyToolPairingFixes, cleanJSONSchemaForAntigravity, deepFilterThinkingBlocks, extractThinkingConfig, extractUsageFromSsePayload, extractUsageMetadata, extractVariantThinkingConfig, fixToolResponseGrouping, injectParameterSignatures, injectToolHardeningInstruction, isThinkingCapableModel, normalizeThinkingConfig, parseAntigravityApiBody, resolveThinkingConfig, rewriteAntigravityPreviewAccessError, transformThinkingParts, validateAndFixClaudeToolPairing, } from './request-helpers';
14
15
  import { defaultSignatureStore } from './stores/signature-store';
15
16
  import { analyzeConversationState, closeToolLoopForThinking, needsThinkingRecovery, } from './thinking-recovery';
16
- import { appendClaudeThinkingHint, applyGeminiTransforms, buildImageGenerationConfig, computeClaudeMaxOutputTokens, isClaudeModel, isClaudeThinkingModel, isGemini3Model, isImageGenerationModel, resolveModelForHeaderStyle, } from './transform';
17
+ import { appendClaudeThinkingHint, applyGeminiTransforms, buildImageGenerationConfig, computeClaudeMaxOutputTokens, isClaudeModel, isClaudeThinkingModel, isGemini3Model, isImageGenerationModel, resolveAntigravityModel, } from './transform';
17
18
  import { sanitizeCrossModelPayloadInPlace } from './transform/cross-model-sanitizer';
18
19
  const log = createLogger('request');
19
20
  const PLUGIN_SESSION_ID = `-${crypto.randomUUID()}`;
@@ -112,10 +113,7 @@ function getAgyMaxOutputTokens(model) {
112
113
  }
113
114
  return undefined;
114
115
  }
115
- function applyAgyGenerationDefaults(model, generationConfig, headerStyle) {
116
- if (headerStyle !== 'antigravity') {
117
- return;
118
- }
116
+ function applyAgyGenerationDefaults(model, generationConfig) {
119
117
  if (getAgyNativeModel(model)) {
120
118
  applyAgyNativeGenerationConfig(model, generationConfig);
121
119
  return;
@@ -1039,9 +1037,9 @@ export function fetchInputToUrl(input) {
1039
1037
  * interceptor entirely.
1040
1038
  */
1041
1039
  export function isGenerativeLanguageRequest(input) {
1042
- return fetchInputToUrl(input).includes('generativelanguage.googleapis.com');
1040
+ return isCanonicalGoogleOrigin(fetchInputToUrl(input));
1043
1041
  }
1044
- function prepareAntigravityRequestIn(wire, input, init, accessToken, projectId, endpointOverride, headerStyle = 'antigravity', forceThinkingRecovery = false, options) {
1042
+ function prepareAntigravityRequestIn(wire, input, init, accessToken, projectId, endpointOverride, forceThinkingRecovery = false, options) {
1045
1043
  const baseInit = { ...init };
1046
1044
  const headers = new Headers(init?.headers ?? {});
1047
1045
  let resolvedProjectId = projectId?.trim() || '';
@@ -1056,7 +1054,7 @@ function prepareAntigravityRequestIn(wire, input, init, accessToken, projectId,
1056
1054
  request: input,
1057
1055
  init: { ...baseInit, headers },
1058
1056
  streaming: false,
1059
- headerStyle,
1057
+ headerStyle: 'antigravity',
1060
1058
  };
1061
1059
  }
1062
1060
  headers.set('Authorization', `Bearer ${accessToken}`);
@@ -1069,8 +1067,10 @@ function prepareAntigravityRequestIn(wire, input, init, accessToken, projectId,
1069
1067
  headers.delete('x-opencode-parent-session-id');
1070
1068
  // Strip x-goog-user-project header to prevent 403 auth/license conflicts.
1071
1069
  // This header is added by OpenCode/AI SDK and can force project-level checks
1072
- // that are not required for Antigravity/Gemini CLI OAuth requests.
1070
+ // that are not required for Antigravity OAuth requests.
1073
1071
  headers.delete('x-goog-user-project');
1072
+ headers.delete('X-Goog-Api-Client');
1073
+ headers.delete('Client-Metadata');
1074
1074
  const urlString = fetchInputToUrl(input);
1075
1075
  const match = urlString.match(/\/models\/([^:]+):(\w+)/);
1076
1076
  if (!match) {
@@ -1078,15 +1078,15 @@ function prepareAntigravityRequestIn(wire, input, init, accessToken, projectId,
1078
1078
  request: input,
1079
1079
  init: { ...baseInit, headers },
1080
1080
  streaming: false,
1081
- headerStyle,
1081
+ headerStyle: 'antigravity',
1082
1082
  };
1083
1083
  }
1084
1084
  const [, rawModel = '', rawAction = ''] = match;
1085
1085
  const requestedModel = rawModel;
1086
- const resolved = resolveModelForHeaderStyle(rawModel, headerStyle);
1086
+ const resolved = resolveAntigravityModel(rawModel);
1087
1087
  let effectiveModel = resolved.actualModel;
1088
1088
  const streaming = rawAction === STREAM_ACTION;
1089
- const defaultEndpoint = headerStyle === 'gemini-cli' ? GEMINI_CLI_ENDPOINT : ANTIGRAVITY_ENDPOINT;
1089
+ const defaultEndpoint = ANTIGRAVITY_ENDPOINT;
1090
1090
  const baseEndpoint = endpointOverride ?? defaultEndpoint;
1091
1091
  const transformedUrl = `${baseEndpoint}/v1internal:${rawAction}${streaming ? '?alt=sse' : ''}`;
1092
1092
  const isClaude = isClaudeModel(resolved.actualModel);
@@ -1106,15 +1106,13 @@ function prepareAntigravityRequestIn(wire, input, init, accessToken, projectId,
1106
1106
  ...parsedBody,
1107
1107
  model: effectiveModel,
1108
1108
  };
1109
- if (headerStyle === 'antigravity') {
1110
- if (typeof wrappedBody.userAgent !== 'string' ||
1111
- !wrappedBody.userAgent) {
1112
- wrappedBody.userAgent = 'antigravity';
1113
- }
1114
- if (typeof wrappedBody.requestType !== 'string' ||
1115
- !wrappedBody.requestType) {
1116
- wrappedBody.requestType = 'agent';
1117
- }
1109
+ if (typeof wrappedBody.userAgent !== 'string' ||
1110
+ !wrappedBody.userAgent) {
1111
+ wrappedBody.userAgent = 'antigravity';
1112
+ }
1113
+ if (typeof wrappedBody.requestType !== 'string' ||
1114
+ !wrappedBody.requestType) {
1115
+ wrappedBody.requestType = 'agent';
1118
1116
  }
1119
1117
  // Some callers may already send an Antigravity-wrapped body.
1120
1118
  // We still need to sanitize Claude thinking blocks (remove cache_control)
@@ -1161,34 +1159,26 @@ function prepareAntigravityRequestIn(wire, input, init, accessToken, projectId,
1161
1159
  // Step 3: Apply tool pairing fixes (ID assignment, response matching, orphan recovery)
1162
1160
  applyToolPairingFixes(req, true);
1163
1161
  }
1164
- if (headerStyle === 'antigravity') {
1165
- sanitizeRequestPayloadForAntigravity(req);
1166
- stripUnsupportedAntigravityFields(req);
1167
- configureAntigravityToolCalling(req, effectiveModel);
1168
- normalizeNativeFunctionResponseRoles(req);
1169
- }
1162
+ sanitizeRequestPayloadForAntigravity(req);
1163
+ stripUnsupportedAntigravityFields(req);
1164
+ configureAntigravityToolCalling(req, effectiveModel);
1165
+ normalizeNativeFunctionResponseRoles(req);
1170
1166
  }
1171
- // AGY rejects every request that ends with a model turn. Enforce this at
1172
- // the final wire boundary because host races, recovery, or sanitization can
1173
- // otherwise leave a model/assistant entry last. Claude fallback transports
1174
- // have the same assistant-prefill restriction.
1175
- if (headerStyle === 'antigravity' || isClaude) {
1176
- for (const req of requestObjects) {
1177
- if (Array.isArray(req.contents)) {
1178
- const contents = req.contents;
1179
- const lastContent = contents[contents.length - 1];
1180
- if (lastContent?.role === 'model' ||
1181
- lastContent?.role === 'assistant') {
1182
- contents.push({ role: 'user', parts: [{ text: '[Continue]' }] });
1183
- }
1167
+ for (const req of requestObjects) {
1168
+ if (Array.isArray(req.contents)) {
1169
+ const contents = req.contents;
1170
+ const lastContent = contents[contents.length - 1];
1171
+ if (lastContent?.role === 'model' ||
1172
+ lastContent?.role === 'assistant') {
1173
+ contents.push({ role: 'user', parts: [{ text: '[Continue]' }] });
1184
1174
  }
1185
- if (Array.isArray(req.messages)) {
1186
- const messages = req.messages;
1187
- const lastMessage = messages[messages.length - 1];
1188
- if (lastMessage?.role === 'model' ||
1189
- lastMessage?.role === 'assistant') {
1190
- messages.push({ role: 'user', parts: [{ text: '[Continue]' }] });
1191
- }
1175
+ }
1176
+ if (Array.isArray(req.messages)) {
1177
+ const messages = req.messages;
1178
+ const lastMessage = messages[messages.length - 1];
1179
+ if (lastMessage?.role === 'model' ||
1180
+ lastMessage?.role === 'assistant') {
1181
+ messages.push({ role: 'user', parts: [{ text: '[Continue]' }] });
1192
1182
  }
1193
1183
  }
1194
1184
  }
@@ -1207,7 +1197,7 @@ function prepareAntigravityRequestIn(wire, input, init, accessToken, projectId,
1207
1197
  }
1208
1198
  const wireRequest = requestObjects.at(-1);
1209
1199
  if (wireRequest) {
1210
- if (headerStyle === 'antigravity') {
1200
+ {
1211
1201
  const generationConfig = wireRequest.generationConfig;
1212
1202
  const config = generationConfig &&
1213
1203
  typeof generationConfig === 'object' &&
@@ -1223,18 +1213,12 @@ function prepareAntigravityRequestIn(wire, input, init, accessToken, projectId,
1223
1213
  wireRequest.labels = metadata.labels;
1224
1214
  orderAgyRequestPayloadInPlace(wireRequest);
1225
1215
  }
1226
- else {
1227
- wireRequest.sessionId = signatureSessionKey;
1228
- }
1229
1216
  }
1230
- body = safeStringify(headerStyle === 'antigravity'
1231
- ? orderAntigravityEnvelope(wrappedBody)
1232
- : wrappedBody);
1217
+ body = safeStringify(orderAntigravityEnvelope(wrappedBody));
1233
1218
  }
1234
1219
  else {
1235
1220
  const requestPayload = { ...parsedBody };
1236
- if (headerStyle === 'antigravity' &&
1237
- isImageGenerationModel(effectiveModel) &&
1221
+ if (isImageGenerationModel(effectiveModel) &&
1238
1222
  isOpenCodeTitleGenerationRequest(requestPayload)) {
1239
1223
  // OpenCode runs title generation through the active model. Route that
1240
1224
  // text-only helper call away from image generation to avoid consuming
@@ -1245,7 +1229,8 @@ function prepareAntigravityRequestIn(wire, input, init, accessToken, projectId,
1245
1229
  }
1246
1230
  const rawGenerationConfig = requestPayload.generationConfig;
1247
1231
  const extraBody = requestPayload.extra_body;
1248
- const variantConfig = extractVariantThinkingConfig(requestPayload.providerOptions, rawGenerationConfig);
1232
+ const variantConfig = options?.variant ??
1233
+ extractVariantThinkingConfig(requestPayload.providerOptions, rawGenerationConfig);
1249
1234
  const isGemini3 = effectiveModel.toLowerCase().includes('gemini-3');
1250
1235
  wire.logger.debug(`[ThinkingResolution] rawModel=${rawModel} resolvedModel=${effectiveModel} resolvedTier=${tierThinkingLevel ?? 'none'} variantLevel=${variantConfig?.thinkingLevel ?? 'none'} variantBudget=${variantConfig?.thinkingBudget ?? 'none'} providerOptions.google=${JSON.stringify(requestPayload.providerOptions?.google ?? null)} generationConfig.thinkingConfig=${JSON.stringify(rawGenerationConfig?.thinkingConfig ?? null)}`);
1251
1236
  // providerOptions belongs to the host AI SDK and is only used above to
@@ -1260,7 +1245,7 @@ function prepareAntigravityRequestIn(wire, input, init, accessToken, projectId,
1260
1245
  .replace(/-preview-customtools$/i, '')
1261
1246
  .replace(/-preview$/i, '')
1262
1247
  .replace(/-(minimal|low|medium|high)$/i, '');
1263
- const variantResolved = resolveModelForHeaderStyle(`${variantModelBase}-${variantConfig.thinkingLevel}`, headerStyle);
1248
+ const variantResolved = resolveAntigravityModel(`${variantModelBase}-${variantConfig.thinkingLevel}`);
1264
1249
  effectiveModel = variantResolved.actualModel;
1265
1250
  tierThinkingBudget = variantResolved.thinkingBudget;
1266
1251
  tierThinkingLevel =
@@ -1290,7 +1275,9 @@ function prepareAntigravityRequestIn(wire, input, init, accessToken, projectId,
1290
1275
  // Resolve thinking configuration based on user settings and model capabilities
1291
1276
  // Image generation models don't support thinking - skip thinking config entirely
1292
1277
  const isImageModel = isImageGenerationModel(effectiveModel);
1293
- const userThinkingConfig = isImageModel
1278
+ // A catalog selection owns thinking; body settings may be host defaults
1279
+ // for a different effort and must not disable the selected effort.
1280
+ const userThinkingConfig = isImageModel || options?.variant
1294
1281
  ? undefined
1295
1282
  : extractThinkingConfig(requestPayload, rawGenerationConfig, extraBody);
1296
1283
  const hasAssistantHistory = Array.isArray(requestPayload.contents) &&
@@ -1356,16 +1343,7 @@ function prepareAntigravityRequestIn(wire, input, init, accessToken, projectId,
1356
1343
  const thinkingBudget = tierThinkingBudget ?? normalizedThinking.thinkingBudget;
1357
1344
  // Build thinking config based on model type
1358
1345
  let thinkingConfig;
1359
- if (isClaudeThinking && headerStyle !== 'antigravity') {
1360
- // Claude-on-Gemini fallback uses snake_case keys.
1361
- thinkingConfig = {
1362
- include_thoughts: normalizedThinking.includeThoughts ?? true,
1363
- ...(typeof thinkingBudget === 'number' && thinkingBudget > 0
1364
- ? { thinking_budget: thinkingBudget }
1365
- : {}),
1366
- };
1367
- }
1368
- else if (tierThinkingLevel) {
1346
+ if (tierThinkingLevel) {
1369
1347
  // Gemini 3 uses thinkingLevel string (low/medium/high)
1370
1348
  thinkingConfig = {
1371
1349
  includeThoughts: normalizedThinking.includeThoughts,
@@ -1384,13 +1362,13 @@ function prepareAntigravityRequestIn(wire, input, init, accessToken, projectId,
1384
1362
  }
1385
1363
  if (rawGenerationConfig) {
1386
1364
  rawGenerationConfig.thinkingConfig = thinkingConfig;
1387
- applyAgyGenerationDefaults(effectiveModel, rawGenerationConfig, headerStyle);
1365
+ applyAgyGenerationDefaults(effectiveModel, rawGenerationConfig);
1388
1366
  if (isClaudeThinking &&
1389
1367
  typeof thinkingBudget === 'number' &&
1390
1368
  thinkingBudget > 0) {
1391
1369
  const currentMax = (rawGenerationConfig.maxOutputTokens ??
1392
1370
  rawGenerationConfig.max_output_tokens);
1393
- if (headerStyle === 'antigravity' && !currentMax) {
1371
+ if (!currentMax) {
1394
1372
  rawGenerationConfig.maxOutputTokens = 64000;
1395
1373
  }
1396
1374
  else if (!currentMax || currentMax <= thinkingBudget) {
@@ -1410,22 +1388,19 @@ function prepareAntigravityRequestIn(wire, input, init, accessToken, projectId,
1410
1388
  if (isClaudeThinking &&
1411
1389
  typeof thinkingBudget === 'number' &&
1412
1390
  thinkingBudget > 0) {
1413
- generationConfig.maxOutputTokens =
1414
- headerStyle === 'antigravity'
1415
- ? 64000
1416
- : computeClaudeMaxOutputTokens(thinkingBudget);
1391
+ generationConfig.maxOutputTokens = 64000;
1417
1392
  }
1418
- applyAgyGenerationDefaults(effectiveModel, generationConfig, headerStyle);
1393
+ applyAgyGenerationDefaults(effectiveModel, generationConfig);
1419
1394
  requestPayload.generationConfig = generationConfig;
1420
1395
  }
1421
1396
  }
1422
1397
  else if (rawGenerationConfig?.thinkingConfig) {
1423
1398
  delete rawGenerationConfig.thinkingConfig;
1424
- applyAgyGenerationDefaults(effectiveModel, rawGenerationConfig, headerStyle);
1399
+ applyAgyGenerationDefaults(effectiveModel, rawGenerationConfig);
1425
1400
  requestPayload.generationConfig = rawGenerationConfig;
1426
1401
  }
1427
1402
  else if (rawGenerationConfig) {
1428
- applyAgyGenerationDefaults(effectiveModel, rawGenerationConfig, headerStyle);
1403
+ applyAgyGenerationDefaults(effectiveModel, rawGenerationConfig);
1429
1404
  requestPayload.generationConfig = rawGenerationConfig;
1430
1405
  }
1431
1406
  } // End of else block for non-image models
@@ -1440,36 +1415,6 @@ function prepareAntigravityRequestIn(wire, input, init, accessToken, projectId,
1440
1415
  requestPayload.systemInstruction = requestPayload.system_instruction;
1441
1416
  delete requestPayload.system_instruction;
1442
1417
  }
1443
- if (headerStyle !== 'antigravity') {
1444
- // Gemini CLI accepts explicit cachedContent references. Normalize its
1445
- // snake_case aliases only on that transport; agy relies on implicit
1446
- // prefix caching and does not send any of these fields.
1447
- const cachedContentFromExtra = typeof requestPayload.extra_body === 'object' &&
1448
- requestPayload.extra_body
1449
- ? (requestPayload.extra_body
1450
- .cached_content ??
1451
- requestPayload.extra_body
1452
- .cachedContent)
1453
- : undefined;
1454
- const cachedContent = requestPayload.cached_content ??
1455
- requestPayload.cachedContent ??
1456
- cachedContentFromExtra;
1457
- if (cachedContent) {
1458
- requestPayload.cachedContent = cachedContent;
1459
- }
1460
- delete requestPayload.cached_content;
1461
- if (requestPayload.extra_body &&
1462
- typeof requestPayload.extra_body === 'object') {
1463
- delete requestPayload.extra_body
1464
- .cached_content;
1465
- delete requestPayload.extra_body
1466
- .cachedContent;
1467
- if (Object.keys(requestPayload.extra_body)
1468
- .length === 0) {
1469
- delete requestPayload.extra_body;
1470
- }
1471
- }
1472
- }
1473
1418
  // Normalize tools. For Claude models, keep full function declarations (names + schemas).
1474
1419
  const hasTools = Array.isArray(requestPayload.tools) && requestPayload.tools.length > 0;
1475
1420
  if (hasTools) {
@@ -1756,31 +1701,25 @@ function prepareAntigravityRequestIn(wire, input, init, accessToken, projectId,
1756
1701
  wire.signatures.signatureStore.delete(signatureSessionKey);
1757
1702
  }
1758
1703
  }
1759
- // AGY rejects every request that ends with a model turn. Enforce this at
1760
- // the final wire boundary because host races, recovery, or sanitization can
1761
- // otherwise leave a model/assistant entry last. Claude fallback transports
1762
- // have the same assistant-prefill restriction.
1763
- if (headerStyle === 'antigravity' || isClaude) {
1764
- if (Array.isArray(requestPayload.contents)) {
1765
- const lastContent = requestPayload.contents[requestPayload.contents.length - 1];
1766
- if (lastContent?.role === 'model' ||
1767
- lastContent?.role === 'assistant') {
1768
- requestPayload.contents.push({
1769
- role: 'user',
1770
- parts: [{ text: '[Continue]' }],
1771
- });
1772
- }
1704
+ if (Array.isArray(requestPayload.contents)) {
1705
+ const lastContent = requestPayload.contents[requestPayload.contents.length - 1];
1706
+ if (lastContent?.role === 'model' ||
1707
+ lastContent?.role === 'assistant') {
1708
+ requestPayload.contents.push({
1709
+ role: 'user',
1710
+ parts: [{ text: '[Continue]' }],
1711
+ });
1773
1712
  }
1774
- if (Array.isArray(requestPayload.messages)) {
1775
- const lastMessage = requestPayload.messages[requestPayload.messages.length - 1];
1776
- if (lastMessage?.role === 'model' ||
1777
- lastMessage?.role === 'assistant') {
1778
- ;
1779
- requestPayload.messages.push({
1780
- role: 'user',
1781
- parts: [{ text: '[Continue]' }],
1782
- });
1783
- }
1713
+ }
1714
+ if (Array.isArray(requestPayload.messages)) {
1715
+ const lastMessage = requestPayload.messages[requestPayload.messages.length - 1];
1716
+ if (lastMessage?.role === 'model' ||
1717
+ lastMessage?.role === 'assistant') {
1718
+ ;
1719
+ requestPayload.messages.push({
1720
+ role: 'user',
1721
+ parts: [{ text: '[Continue]' }],
1722
+ });
1784
1723
  }
1785
1724
  }
1786
1725
  if ('model' in requestPayload) {
@@ -1788,7 +1727,7 @@ function prepareAntigravityRequestIn(wire, input, init, accessToken, projectId,
1788
1727
  }
1789
1728
  stripInjectedDebugFromRequestPayload(requestPayload);
1790
1729
  sanitizeRequestPayloadForAntigravity(requestPayload);
1791
- if (headerStyle === 'antigravity') {
1730
+ {
1792
1731
  const generationConfig = requestPayload.generationConfig;
1793
1732
  const config = generationConfig &&
1794
1733
  typeof generationConfig === 'object' &&
@@ -1818,36 +1757,25 @@ function prepareAntigravityRequestIn(wire, input, init, accessToken, projectId,
1818
1757
  // a fresh random project each request busts the prompt cache and
1819
1758
  // fragments server-side quota/session state. ensureProjectContext
1820
1759
  // already floors empty cases to this default; this is defense in depth.
1821
- const effectiveProjectId = projectId?.trim() ||
1822
- (headerStyle === 'antigravity' ? ANTIGRAVITY_DEFAULT_PROJECT_ID : '');
1760
+ const effectiveProjectId = projectId?.trim() || ANTIGRAVITY_DEFAULT_PROJECT_ID;
1823
1761
  resolvedProjectId = effectiveProjectId;
1824
1762
  // Keep internal signature-cache identity separate from AGY wire session metadata.
1825
1763
  sessionId = signatureSessionKey;
1826
- const agyMetadata = headerStyle === 'antigravity'
1827
- ? buildAgyAgentRequestMetadata(options?.agySession ?? DEFAULT_AGY_REQUEST_SESSION, requestPayload, effectiveModel, options?.agyRequestTimestamp)
1828
- : null;
1764
+ const agyMetadata = buildAgyAgentRequestMetadata(options?.agySession ?? DEFAULT_AGY_REQUEST_SESSION, requestPayload, effectiveModel, options?.agyRequestTimestamp);
1829
1765
  requestPayload.sessionId = agyMetadata?.sessionId ?? signatureSessionKey;
1830
1766
  if (agyMetadata) {
1831
1767
  requestPayload.labels = agyMetadata.labels;
1832
1768
  orderAgyRequestPayloadInPlace(requestPayload);
1833
1769
  }
1834
- const wrappedBody = headerStyle === 'antigravity'
1835
- ? {
1836
- project: effectiveProjectId,
1837
- requestId: agyMetadata?.requestId,
1838
- request: requestPayload,
1839
- model: effectiveModel,
1840
- userAgent: 'antigravity',
1841
- requestType: 'agent',
1842
- }
1843
- : {
1844
- project: effectiveProjectId,
1845
- model: effectiveModel,
1846
- request: requestPayload,
1847
- };
1848
- body = safeStringify(headerStyle === 'antigravity'
1849
- ? orderAntigravityEnvelope(wrappedBody)
1850
- : wrappedBody);
1770
+ const wrappedBody = {
1771
+ project: effectiveProjectId,
1772
+ requestId: agyMetadata?.requestId,
1773
+ request: requestPayload,
1774
+ model: effectiveModel,
1775
+ userAgent: 'antigravity',
1776
+ requestType: 'agent',
1777
+ };
1778
+ body = safeStringify(orderAntigravityEnvelope(wrappedBody));
1851
1779
  }
1852
1780
  }
1853
1781
  catch {
@@ -1870,9 +1798,9 @@ function prepareAntigravityRequestIn(wire, input, init, accessToken, projectId,
1870
1798
  headers.set('anthropic-beta', interleavedHeader);
1871
1799
  }
1872
1800
  }
1873
- if (headerStyle === 'antigravity') {
1801
+ {
1874
1802
  // Use randomized headers as the fallback pool for Antigravity mode
1875
- const selectedHeaders = getRandomizedHeaders('antigravity', requestedModel);
1803
+ const selectedHeaders = getRandomizedHeaders();
1876
1804
  // Antigravity mode: Match Antigravity Manager behavior
1877
1805
  // AM only sends User-Agent on content requests — no X-Goog-Api-Client, no Client-Metadata header
1878
1806
  // (ideType=ANTIGRAVITY goes in request body metadata via project.ts, not as a header)
@@ -1881,15 +1809,6 @@ function prepareAntigravityRequestIn(wire, input, init, accessToken, projectId,
1881
1809
  headers.set('User-Agent', fingerprintHeaders['User-Agent'] || selectedHeaders['User-Agent']);
1882
1810
  headers.set('Accept-Encoding', 'gzip');
1883
1811
  }
1884
- else {
1885
- // Gemini CLI mode: match official google-gemini/gemini-cli User-Agent format
1886
- const geminiCliHeaders = getRandomizedHeaders('gemini-cli', requestedModel);
1887
- headers.set('User-Agent', geminiCliHeaders['User-Agent']);
1888
- if (geminiCliHeaders['X-Goog-Api-Client'])
1889
- headers.set('X-Goog-Api-Client', geminiCliHeaders['X-Goog-Api-Client']);
1890
- if (geminiCliHeaders['Client-Metadata'])
1891
- headers.set('Client-Metadata', geminiCliHeaders['Client-Metadata']);
1892
- }
1893
1812
  return {
1894
1813
  request: transformedUrl,
1895
1814
  init: {
@@ -1907,7 +1826,7 @@ function prepareAntigravityRequestIn(wire, input, init, accessToken, projectId,
1907
1826
  toolDebugSummary: toolDebugSummaries.slice(0, 20).join(' | '),
1908
1827
  toolDebugPayload,
1909
1828
  needsSignedThinkingWarmup,
1910
- headerStyle,
1829
+ headerStyle: 'antigravity',
1911
1830
  thinkingRecoveryMessage,
1912
1831
  };
1913
1832
  }