@cortexkit/opencode-antigravity-auth 1.1.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/README.md +225 -569
  2. package/dist/cli.js +3790 -0
  3. package/dist/cli.js.map +7 -0
  4. package/dist/index.d.ts +1 -3
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +18767 -13829
  7. package/dist/index.js.map +4 -4
  8. package/dist/src/antigravity/oauth.d.ts +1 -1
  9. package/dist/src/antigravity/oauth.js +1 -1
  10. package/dist/src/cli.d.ts +21 -0
  11. package/dist/src/cli.d.ts.map +1 -0
  12. package/dist/src/cli.js +237 -0
  13. package/dist/src/cli.js.map +1 -0
  14. package/dist/src/constants.d.ts +1 -1
  15. package/dist/src/constants.js +1 -1
  16. package/dist/src/hooks/auto-update-checker/cache.d.ts.map +1 -1
  17. package/dist/src/hooks/auto-update-checker/cache.js +13 -13
  18. package/dist/src/hooks/auto-update-checker/cache.js.map +1 -1
  19. package/dist/src/hooks/auto-update-checker/checker.d.ts +1 -1
  20. package/dist/src/hooks/auto-update-checker/checker.d.ts.map +1 -1
  21. package/dist/src/hooks/auto-update-checker/checker.js +75 -51
  22. package/dist/src/hooks/auto-update-checker/checker.js.map +1 -1
  23. package/dist/src/hooks/auto-update-checker/constants.d.ts.map +1 -1
  24. package/dist/src/hooks/auto-update-checker/constants.js +12 -12
  25. package/dist/src/hooks/auto-update-checker/constants.js.map +1 -1
  26. package/dist/src/hooks/auto-update-checker/index.d.ts +6 -6
  27. package/dist/src/hooks/auto-update-checker/index.d.ts.map +1 -1
  28. package/dist/src/hooks/auto-update-checker/index.js +17 -17
  29. package/dist/src/hooks/auto-update-checker/index.js.map +1 -1
  30. package/dist/src/hooks/auto-update-checker/logging.js +2 -2
  31. package/dist/src/hooks/auto-update-checker/logging.js.map +1 -1
  32. package/dist/src/hooks/auto-update-checker/types.d.ts.map +1 -1
  33. package/dist/src/plugin/account-access.d.ts +99 -0
  34. package/dist/src/plugin/account-access.d.ts.map +1 -0
  35. package/dist/src/plugin/account-access.js +480 -0
  36. package/dist/src/plugin/account-access.js.map +1 -0
  37. package/dist/src/plugin/accounts.d.ts +7 -256
  38. package/dist/src/plugin/accounts.d.ts.map +1 -1
  39. package/dist/src/plugin/accounts.js +31 -1367
  40. package/dist/src/plugin/accounts.js.map +1 -1
  41. package/dist/src/plugin/agy-request-metadata.d.ts +1 -1
  42. package/dist/src/plugin/agy-request-metadata.js +1 -1
  43. package/dist/src/plugin/agy-transport.d.ts +1 -1
  44. package/dist/src/plugin/agy-transport.js +1 -1
  45. package/dist/src/plugin/auth-doctor.d.ts +6 -6
  46. package/dist/src/plugin/auth-doctor.d.ts.map +1 -1
  47. package/dist/src/plugin/auth-doctor.js +74 -66
  48. package/dist/src/plugin/auth-doctor.js.map +1 -1
  49. package/dist/src/plugin/auth-drift.d.ts +4 -4
  50. package/dist/src/plugin/auth-drift.d.ts.map +1 -1
  51. package/dist/src/plugin/auth-drift.js +15 -15
  52. package/dist/src/plugin/auth-drift.js.map +1 -1
  53. package/dist/src/plugin/auth-loader.d.ts +35 -0
  54. package/dist/src/plugin/auth-loader.d.ts.map +1 -0
  55. package/dist/src/plugin/auth-loader.js +144 -0
  56. package/dist/src/plugin/auth-loader.js.map +1 -0
  57. package/dist/src/plugin/auth.d.ts +1 -1
  58. package/dist/src/plugin/auth.js +1 -1
  59. package/dist/src/plugin/cache/index.d.ts +1 -1
  60. package/dist/src/plugin/cache/index.d.ts.map +1 -1
  61. package/dist/src/plugin/cache/index.js +1 -1
  62. package/dist/src/plugin/cache/index.js.map +1 -1
  63. package/dist/src/plugin/cache/signature-cache.d.ts +1 -1
  64. package/dist/src/plugin/cache/signature-cache.d.ts.map +1 -1
  65. package/dist/src/plugin/cache/signature-cache.js +23 -24
  66. package/dist/src/plugin/cache/signature-cache.js.map +1 -1
  67. package/dist/src/plugin/cache.d.ts +6 -5
  68. package/dist/src/plugin/cache.d.ts.map +1 -1
  69. package/dist/src/plugin/cache.js +21 -7
  70. package/dist/src/plugin/cache.js.map +1 -1
  71. package/dist/src/plugin/catalog.d.ts +23 -0
  72. package/dist/src/plugin/catalog.d.ts.map +1 -0
  73. package/dist/src/plugin/catalog.js +60 -0
  74. package/dist/src/plugin/catalog.js.map +1 -0
  75. package/dist/src/plugin/cli.d.ts +7 -7
  76. package/dist/src/plugin/cli.d.ts.map +1 -1
  77. package/dist/src/plugin/cli.js +62 -55
  78. package/dist/src/plugin/cli.js.map +1 -1
  79. package/dist/src/plugin/command-data.d.ts +276 -0
  80. package/dist/src/plugin/command-data.d.ts.map +1 -0
  81. package/dist/src/plugin/command-data.js +325 -0
  82. package/dist/src/plugin/command-data.js.map +1 -0
  83. package/dist/src/plugin/commands.d.ts +151 -0
  84. package/dist/src/plugin/commands.d.ts.map +1 -0
  85. package/dist/src/plugin/commands.js +639 -0
  86. package/dist/src/plugin/commands.js.map +1 -0
  87. package/dist/src/plugin/config/index.d.ts +2 -2
  88. package/dist/src/plugin/config/index.d.ts.map +1 -1
  89. package/dist/src/plugin/config/index.js +2 -2
  90. package/dist/src/plugin/config/index.js.map +1 -1
  91. package/dist/src/plugin/config/loader.d.ts +1 -1
  92. package/dist/src/plugin/config/loader.d.ts.map +1 -1
  93. package/dist/src/plugin/config/loader.js +18 -16
  94. package/dist/src/plugin/config/loader.js.map +1 -1
  95. package/dist/src/plugin/config/models.d.ts +2 -2
  96. package/dist/src/plugin/config/models.d.ts.map +1 -1
  97. package/dist/src/plugin/config/models.js +1 -1
  98. package/dist/src/plugin/config/models.js.map +1 -1
  99. package/dist/src/plugin/config/operator-settings-schema.d.ts +29 -0
  100. package/dist/src/plugin/config/operator-settings-schema.d.ts.map +1 -0
  101. package/dist/src/plugin/config/operator-settings-schema.js +28 -0
  102. package/dist/src/plugin/config/operator-settings-schema.js.map +1 -0
  103. package/dist/src/plugin/config/schema.d.ts +21 -2
  104. package/dist/src/plugin/config/schema.d.ts.map +1 -1
  105. package/dist/src/plugin/config/schema.js +85 -25
  106. package/dist/src/plugin/config/schema.js.map +1 -1
  107. package/dist/src/plugin/config/updater.d.ts.map +1 -1
  108. package/dist/src/plugin/config/updater.js +15 -15
  109. package/dist/src/plugin/config/updater.js.map +1 -1
  110. package/dist/src/plugin/config/writer.d.ts +34 -0
  111. package/dist/src/plugin/config/writer.d.ts.map +1 -0
  112. package/dist/src/plugin/config/writer.js +81 -0
  113. package/dist/src/plugin/config/writer.js.map +1 -0
  114. package/dist/src/plugin/core/streaming/index.d.ts +1 -1
  115. package/dist/src/plugin/core/streaming/index.d.ts.map +1 -1
  116. package/dist/src/plugin/core/streaming/index.js +1 -1
  117. package/dist/src/plugin/core/streaming/index.js.map +1 -1
  118. package/dist/src/plugin/core/streaming/transformer.d.ts.map +1 -1
  119. package/dist/src/plugin/core/streaming/transformer.js +85 -44
  120. package/dist/src/plugin/core/streaming/transformer.js.map +1 -1
  121. package/dist/src/plugin/core/streaming/types.d.ts.map +1 -1
  122. package/dist/src/plugin/debug.d.ts +3 -3
  123. package/dist/src/plugin/debug.d.ts.map +1 -1
  124. package/dist/src/plugin/debug.js +85 -47
  125. package/dist/src/plugin/debug.js.map +1 -1
  126. package/dist/src/plugin/dependencies.d.ts +129 -0
  127. package/dist/src/plugin/dependencies.d.ts.map +1 -0
  128. package/dist/src/plugin/dependencies.js +107 -0
  129. package/dist/src/plugin/dependencies.js.map +1 -0
  130. package/dist/src/plugin/errors.d.ts +27 -0
  131. package/dist/src/plugin/errors.d.ts.map +1 -1
  132. package/dist/src/plugin/errors.js +29 -3
  133. package/dist/src/plugin/errors.js.map +1 -1
  134. package/dist/src/plugin/event-handler.d.ts +53 -0
  135. package/dist/src/plugin/event-handler.d.ts.map +1 -0
  136. package/dist/src/plugin/event-handler.js +101 -0
  137. package/dist/src/plugin/event-handler.js.map +1 -0
  138. package/dist/src/plugin/fetch/retry-state.d.ts +61 -0
  139. package/dist/src/plugin/fetch/retry-state.d.ts.map +1 -0
  140. package/dist/src/plugin/fetch/retry-state.js +248 -0
  141. package/dist/src/plugin/fetch/retry-state.js.map +1 -0
  142. package/dist/src/plugin/fetch/warmup.d.ts +30 -0
  143. package/dist/src/plugin/fetch/warmup.d.ts.map +1 -0
  144. package/dist/src/plugin/fetch/warmup.js +76 -0
  145. package/dist/src/plugin/fetch/warmup.js.map +1 -0
  146. package/dist/src/plugin/fetch-interceptor.d.ts +59 -0
  147. package/dist/src/plugin/fetch-interceptor.d.ts.map +1 -0
  148. package/dist/src/plugin/fetch-interceptor.js +1387 -0
  149. package/dist/src/plugin/fetch-interceptor.js.map +1 -0
  150. package/dist/src/plugin/fetch-routing.d.ts +26 -0
  151. package/dist/src/plugin/fetch-routing.d.ts.map +1 -0
  152. package/dist/src/plugin/fetch-routing.js +99 -0
  153. package/dist/src/plugin/fetch-routing.js.map +1 -0
  154. package/dist/src/plugin/fingerprint.d.ts +1 -1
  155. package/dist/src/plugin/fingerprint.js +1 -1
  156. package/dist/src/plugin/gemini-dump.d.ts +5 -5
  157. package/dist/src/plugin/gemini-dump.d.ts.map +1 -1
  158. package/dist/src/plugin/gemini-dump.js +109 -55
  159. package/dist/src/plugin/gemini-dump.js.map +1 -1
  160. package/dist/src/plugin/google-search-tool.d.ts +9 -0
  161. package/dist/src/plugin/google-search-tool.d.ts.map +1 -0
  162. package/dist/src/plugin/google-search-tool.js +56 -0
  163. package/dist/src/plugin/google-search-tool.js.map +1 -0
  164. package/dist/src/plugin/image-saver.d.ts.map +1 -1
  165. package/dist/src/plugin/image-saver.js +16 -16
  166. package/dist/src/plugin/image-saver.js.map +1 -1
  167. package/dist/src/plugin/index.d.ts +23 -0
  168. package/dist/src/plugin/index.d.ts.map +1 -0
  169. package/dist/src/plugin/index.js +308 -0
  170. package/dist/src/plugin/index.js.map +1 -0
  171. package/dist/src/plugin/killswitch.d.ts +94 -0
  172. package/dist/src/plugin/killswitch.d.ts.map +1 -0
  173. package/dist/src/plugin/killswitch.js +194 -0
  174. package/dist/src/plugin/killswitch.js.map +1 -0
  175. package/dist/src/plugin/lifecycle.d.ts +40 -0
  176. package/dist/src/plugin/lifecycle.d.ts.map +1 -0
  177. package/dist/src/plugin/lifecycle.js +73 -0
  178. package/dist/src/plugin/lifecycle.js.map +1 -0
  179. package/dist/src/plugin/logger.d.ts +10 -1
  180. package/dist/src/plugin/logger.d.ts.map +1 -1
  181. package/dist/src/plugin/logger.js +38 -12
  182. package/dist/src/plugin/logger.js.map +1 -1
  183. package/dist/src/plugin/logging-utils.d.ts +35 -1
  184. package/dist/src/plugin/logging-utils.d.ts.map +1 -1
  185. package/dist/src/plugin/logging-utils.js +98 -15
  186. package/dist/src/plugin/logging-utils.js.map +1 -1
  187. package/dist/src/plugin/model-registry.d.ts +1 -1
  188. package/dist/src/plugin/model-registry.js +1 -1
  189. package/dist/src/plugin/oauth-login.d.ts +22 -0
  190. package/dist/src/plugin/oauth-login.d.ts.map +1 -0
  191. package/dist/src/plugin/oauth-login.js +37 -0
  192. package/dist/src/plugin/oauth-login.js.map +1 -0
  193. package/dist/src/plugin/oauth-methods.d.ts +42 -0
  194. package/dist/src/plugin/oauth-methods.d.ts.map +1 -0
  195. package/dist/src/plugin/oauth-methods.js +1284 -0
  196. package/dist/src/plugin/oauth-methods.js.map +1 -0
  197. package/dist/src/plugin/operator-settings.d.ts +40 -0
  198. package/dist/src/plugin/operator-settings.d.ts.map +1 -0
  199. package/dist/src/plugin/operator-settings.js +148 -0
  200. package/dist/src/plugin/operator-settings.js.map +1 -0
  201. package/dist/src/plugin/persist-account-pool.d.ts +37 -0
  202. package/dist/src/plugin/persist-account-pool.d.ts.map +1 -0
  203. package/dist/src/plugin/persist-account-pool.js +142 -0
  204. package/dist/src/plugin/persist-account-pool.js.map +1 -0
  205. package/dist/src/plugin/project.d.ts +1 -1
  206. package/dist/src/plugin/project.js +1 -1
  207. package/dist/src/plugin/prompt-context.d.ts.map +1 -1
  208. package/dist/src/plugin/prompt-context.js +11 -11
  209. package/dist/src/plugin/prompt-context.js.map +1 -1
  210. package/dist/src/plugin/quota.d.ts +97 -41
  211. package/dist/src/plugin/quota.d.ts.map +1 -1
  212. package/dist/src/plugin/quota.js +273 -285
  213. package/dist/src/plugin/quota.js.map +1 -1
  214. package/dist/src/plugin/recovery/constants.d.ts.map +1 -1
  215. package/dist/src/plugin/recovery/constants.js +24 -15
  216. package/dist/src/plugin/recovery/constants.js.map +1 -1
  217. package/dist/src/plugin/recovery/index.d.ts +3 -3
  218. package/dist/src/plugin/recovery/index.d.ts.map +1 -1
  219. package/dist/src/plugin/recovery/index.js +3 -3
  220. package/dist/src/plugin/recovery/index.js.map +1 -1
  221. package/dist/src/plugin/recovery/storage.d.ts +1 -1
  222. package/dist/src/plugin/recovery/storage.d.ts.map +1 -1
  223. package/dist/src/plugin/recovery/storage.js +31 -39
  224. package/dist/src/plugin/recovery/storage.js.map +1 -1
  225. package/dist/src/plugin/recovery/types.d.ts +12 -12
  226. package/dist/src/plugin/recovery/types.d.ts.map +1 -1
  227. package/dist/src/plugin/recovery.d.ts +3 -3
  228. package/dist/src/plugin/recovery.d.ts.map +1 -1
  229. package/dist/src/plugin/recovery.js +62 -58
  230. package/dist/src/plugin/recovery.js.map +1 -1
  231. package/dist/src/plugin/refresh-queue.d.ts +5 -2
  232. package/dist/src/plugin/refresh-queue.d.ts.map +1 -1
  233. package/dist/src/plugin/refresh-queue.js +37 -15
  234. package/dist/src/plugin/refresh-queue.js.map +1 -1
  235. package/dist/src/plugin/request-helpers.d.ts +1 -1
  236. package/dist/src/plugin/request-helpers.d.ts.map +1 -1
  237. package/dist/src/plugin/request-helpers.js +451 -352
  238. package/dist/src/plugin/request-helpers.js.map +1 -1
  239. package/dist/src/plugin/request.d.ts +7 -7
  240. package/dist/src/plugin/request.d.ts.map +1 -1
  241. package/dist/src/plugin/request.js +622 -384
  242. package/dist/src/plugin/request.js.map +1 -1
  243. package/dist/src/plugin/rotation.d.ts +1 -168
  244. package/dist/src/plugin/rotation.d.ts.map +1 -1
  245. package/dist/src/plugin/rotation.js +1 -327
  246. package/dist/src/plugin/rotation.js.map +1 -1
  247. package/dist/src/plugin/search.d.ts.map +1 -1
  248. package/dist/src/plugin/search.js +39 -35
  249. package/dist/src/plugin/search.js.map +1 -1
  250. package/dist/src/plugin/server.d.ts +1 -1
  251. package/dist/src/plugin/server.d.ts.map +1 -1
  252. package/dist/src/plugin/server.js +42 -37
  253. package/dist/src/plugin/server.js.map +1 -1
  254. package/dist/src/plugin/session-context.d.ts +2 -1
  255. package/dist/src/plugin/session-context.d.ts.map +1 -1
  256. package/dist/src/plugin/session-context.js +11 -7
  257. package/dist/src/plugin/session-context.js.map +1 -1
  258. package/dist/src/plugin/storage.d.ts +59 -120
  259. package/dist/src/plugin/storage.d.ts.map +1 -1
  260. package/dist/src/plugin/storage.js +140 -485
  261. package/dist/src/plugin/storage.js.map +1 -1
  262. package/dist/src/plugin/stores/signature-store.d.ts.map +1 -1
  263. package/dist/src/plugin/stores/signature-store.js.map +1 -1
  264. package/dist/src/plugin/thinking-recovery.d.ts.map +1 -1
  265. package/dist/src/plugin/thinking-recovery.js +35 -33
  266. package/dist/src/plugin/thinking-recovery.js.map +1 -1
  267. package/dist/src/plugin/token.d.ts +2 -2
  268. package/dist/src/plugin/token.d.ts.map +1 -1
  269. package/dist/src/plugin/token.js +30 -21
  270. package/dist/src/plugin/token.js.map +1 -1
  271. package/dist/src/plugin/transform/cross-model-sanitizer.d.ts +1 -1
  272. package/dist/src/plugin/transform/cross-model-sanitizer.js +1 -1
  273. package/dist/src/plugin/transform/index.d.ts +1 -1
  274. package/dist/src/plugin/transform/index.js +1 -1
  275. package/dist/src/plugin/transform/model-resolver.d.ts +1 -1
  276. package/dist/src/plugin/transform/model-resolver.js +1 -1
  277. package/dist/src/plugin/transform/types.d.ts +1 -1
  278. package/dist/src/plugin/transform/types.js +1 -1
  279. package/dist/src/plugin/types.d.ts +25 -69
  280. package/dist/src/plugin/types.d.ts.map +1 -1
  281. package/dist/src/plugin/ui/ansi.d.ts.map +1 -1
  282. package/dist/src/plugin/ui/ansi.js.map +1 -1
  283. package/dist/src/plugin/ui/auth-menu.d.ts +1 -1
  284. package/dist/src/plugin/ui/auth-menu.d.ts.map +1 -1
  285. package/dist/src/plugin/ui/auth-menu.js +82 -31
  286. package/dist/src/plugin/ui/auth-menu.js.map +1 -1
  287. package/dist/src/plugin/ui/confirm.d.ts.map +1 -1
  288. package/dist/src/plugin/ui/confirm.js.map +1 -1
  289. package/dist/src/plugin/ui/model-status.d.ts +3 -3
  290. package/dist/src/plugin/ui/model-status.d.ts.map +1 -1
  291. package/dist/src/plugin/ui/model-status.js +3 -3
  292. package/dist/src/plugin/ui/model-status.js.map +1 -1
  293. package/dist/src/plugin/ui/quota-status.d.ts +4 -4
  294. package/dist/src/plugin/ui/quota-status.d.ts.map +1 -1
  295. package/dist/src/plugin/ui/quota-status.js +51 -49
  296. package/dist/src/plugin/ui/quota-status.js.map +1 -1
  297. package/dist/src/plugin/ui/select.d.ts.map +1 -1
  298. package/dist/src/plugin/ui/select.js +22 -12
  299. package/dist/src/plugin/ui/select.js.map +1 -1
  300. package/dist/src/plugin/version.d.ts +1 -1
  301. package/dist/src/plugin/version.js +1 -1
  302. package/dist/src/rpc/notifications.d.ts +6 -0
  303. package/dist/src/rpc/notifications.d.ts.map +1 -0
  304. package/dist/src/rpc/notifications.js +46 -0
  305. package/dist/src/rpc/notifications.js.map +1 -0
  306. package/dist/src/rpc/port-file.d.ts +13 -0
  307. package/dist/src/rpc/port-file.d.ts.map +1 -0
  308. package/dist/src/rpc/port-file.js +109 -0
  309. package/dist/src/rpc/port-file.js.map +1 -0
  310. package/dist/src/rpc/protocol.d.ts +22 -0
  311. package/dist/src/rpc/protocol.d.ts.map +1 -0
  312. package/dist/src/rpc/protocol.js +1 -0
  313. package/dist/src/rpc/protocol.js.map +1 -0
  314. package/dist/src/rpc/rpc-client.d.ts +10 -0
  315. package/dist/src/rpc/rpc-client.d.ts.map +1 -0
  316. package/dist/src/rpc/rpc-client.js +58 -0
  317. package/dist/src/rpc/rpc-client.js.map +1 -0
  318. package/dist/src/rpc/rpc-dir.d.ts +4 -0
  319. package/dist/src/rpc/rpc-dir.d.ts.map +1 -0
  320. package/dist/src/rpc/rpc-dir.js +19 -0
  321. package/dist/src/rpc/rpc-dir.js.map +1 -0
  322. package/dist/src/rpc/rpc-server.d.ts +13 -0
  323. package/dist/src/rpc/rpc-server.d.ts.map +1 -0
  324. package/dist/src/rpc/rpc-server.js +231 -0
  325. package/dist/src/rpc/rpc-server.js.map +1 -0
  326. package/dist/src/sidebar-state.d.ts +240 -0
  327. package/dist/src/sidebar-state.d.ts.map +1 -0
  328. package/dist/src/sidebar-state.js +520 -0
  329. package/dist/src/sidebar-state.js.map +1 -0
  330. package/dist/src/tui/command-dialogs.d.ts +61 -0
  331. package/dist/src/tui/command-dialogs.d.ts.map +1 -0
  332. package/dist/src/tui/command-dialogs.js +497 -0
  333. package/dist/src/tui/command-dialogs.js.map +1 -0
  334. package/dist/src/tui/file-logger.d.ts +41 -0
  335. package/dist/src/tui/file-logger.d.ts.map +1 -0
  336. package/dist/src/tui/file-logger.js +114 -0
  337. package/dist/src/tui/file-logger.js.map +1 -0
  338. package/dist/src/tui-preferences.d.ts +40 -0
  339. package/dist/src/tui-preferences.d.ts.map +1 -0
  340. package/dist/src/tui-preferences.js +328 -0
  341. package/dist/src/tui-preferences.js.map +1 -0
  342. package/dist/src/tui.d.ts +68 -0
  343. package/dist/src/tui.d.ts.map +1 -0
  344. package/dist/src/tui.js +662 -0
  345. package/dist/src/tui.js.map +1 -0
  346. package/package.json +46 -22
  347. package/src/plugin/command-data.ts +651 -0
  348. package/src/rpc/port-file.ts +143 -0
  349. package/src/rpc/protocol.ts +31 -0
  350. package/src/rpc/rpc-client.ts +102 -0
  351. package/src/rpc/rpc-dir.ts +24 -0
  352. package/src/sidebar-state.ts +717 -0
  353. package/src/tui/command-dialogs.tsx +699 -0
  354. package/src/tui/entry.mjs +74 -0
  355. package/src/tui/file-logger.ts +145 -0
  356. package/src/tui-compiled/plugin/command-data.ts +651 -0
  357. package/src/tui-compiled/rpc/port-file.ts +143 -0
  358. package/src/tui-compiled/rpc/protocol.ts +31 -0
  359. package/src/tui-compiled/rpc/rpc-client.ts +102 -0
  360. package/src/tui-compiled/rpc/rpc-dir.ts +24 -0
  361. package/src/tui-compiled/sidebar-state.ts +717 -0
  362. package/src/tui-compiled/tui/command-dialogs.tsx +659 -0
  363. package/src/tui-compiled/tui/file-logger.ts +145 -0
  364. package/src/tui-compiled/tui-preferences.ts +416 -0
  365. package/src/tui-compiled/tui.tsx +1150 -0
  366. package/src/tui-preferences.ts +416 -0
  367. package/src/tui.tsx +1117 -0
  368. package/dist/src/plugin.d.ts +0 -48
  369. package/dist/src/plugin.d.ts.map +0 -1
  370. package/dist/src/plugin.js +0 -3311
  371. package/dist/src/plugin.js.map +0 -1
@@ -0,0 +1,60 @@
1
+ import { ANTIGRAVITY_ACCOUNT_COMMAND_NAME, ANTIGRAVITY_DUMP_COMMAND_NAME, ANTIGRAVITY_KILLSWITCH_COMMAND_NAME, ANTIGRAVITY_LOGGING_COMMAND_NAME, ANTIGRAVITY_QUOTA_COMMAND_NAME, ANTIGRAVITY_ROUTING_COMMAND_NAME, MODAL_COMMANDS, } from './commands';
2
+ import { GEMINI_DUMP_COMMAND_NAME } from './gemini-dump';
3
+ import { getAntigravityOpencodeModelIds, OPENCODE_MODEL_DEFINITIONS, } from './model-registry';
4
+ export function applyAntigravityProviderCatalog(config, providerId) {
5
+ const mutableConfig = config;
6
+ mutableConfig.provider ??= {};
7
+ const providerConfig = mutableConfig.provider[providerId] ?? {};
8
+ providerConfig.models = {
9
+ ...(providerConfig.models ?? {}),
10
+ ...OPENCODE_MODEL_DEFINITIONS,
11
+ };
12
+ providerConfig.whitelist = getAntigravityOpencodeModelIds();
13
+ mutableConfig.provider[providerId] = providerConfig;
14
+ }
15
+ const COMMAND_DESCRIPTIONS = {
16
+ 'antigravity-quota': 'Refresh Antigravity quota for the active account pool.',
17
+ 'antigravity-account': 'Add, refresh, or remove Antigravity accounts.',
18
+ 'antigravity-routing': 'Toggle routing overrides for Gemini / Antigravity fallback.',
19
+ 'antigravity-killswitch': 'Configure the quota killswitch threshold and per-account overrides.',
20
+ 'antigravity-dump': 'Show or toggle Gemini/Antigravity wire dump capture for debugging.',
21
+ 'antigravity-logging': 'Adjust the runtime logging level.',
22
+ };
23
+ /**
24
+ * Register every modal command with the host `config.command` map.
25
+ *
26
+ * Existing entries are preserved — the host may ship its own slash
27
+ * commands (e.g. `init`, `undo`, …) and the merge must not blow them
28
+ * away. `/gemini-dump` is registered in addition to the modal
29
+ * `antigravity-dump` so legacy sessions keep working.
30
+ *
31
+ * This function is the FIRST of three places that must agree on the
32
+ * set of modal commands — see the three-wiring test in
33
+ * `commands.test.ts` for the invariant.
34
+ */
35
+ export function registerAntigravityCommands(config) {
36
+ const mutableConfig = config;
37
+ const existing = mutableConfig.command ?? {};
38
+ const next = { ...existing };
39
+ for (const command of MODAL_COMMANDS) {
40
+ next[command] = {
41
+ template: command,
42
+ description: COMMAND_DESCRIPTIONS[command],
43
+ };
44
+ }
45
+ next[GEMINI_DUMP_COMMAND_NAME] = {
46
+ template: GEMINI_DUMP_COMMAND_NAME,
47
+ description: 'Show or toggle Gemini/Antigravity wire dump capture for debugging.',
48
+ };
49
+ mutableConfig.command = next;
50
+ }
51
+ // Re-export so existing callers can keep importing from catalog.
52
+ export const ANTIGRAVITY_COMMAND_NAMES = {
53
+ quota: ANTIGRAVITY_QUOTA_COMMAND_NAME,
54
+ account: ANTIGRAVITY_ACCOUNT_COMMAND_NAME,
55
+ routing: ANTIGRAVITY_ROUTING_COMMAND_NAME,
56
+ killswitch: ANTIGRAVITY_KILLSWITCH_COMMAND_NAME,
57
+ dump: ANTIGRAVITY_DUMP_COMMAND_NAME,
58
+ logging: ANTIGRAVITY_LOGGING_COMMAND_NAME,
59
+ };
60
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/plugin/catalog.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gCAAgC,EAChC,6BAA6B,EAC7B,mCAAmC,EACnC,gCAAgC,EAChC,8BAA8B,EAC9B,gCAAgC,EAChC,cAAc,GACf,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,kBAAkB,CAAA;AAazB,MAAM,UAAU,+BAA+B,CAC7C,MAA+B,EAC/B,UAAkB;IAElB,MAAM,aAAa,GAAG,MAA+B,CAAA;IACrD,aAAa,CAAC,QAAQ,KAAK,EAAE,CAAA;IAE7B,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,CAAA;IAC/D,cAAc,CAAC,MAAM,GAAG;QACtB,GAAG,CAAC,cAAc,CAAC,MAAM,IAAI,EAAE,CAAC;QAChC,GAAG,0BAA0B;KAC9B,CAAA;IACD,cAAc,CAAC,SAAS,GAAG,8BAA8B,EAAE,CAAA;IAC3D,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,cAAc,CAAA;AACrD,CAAC;AAED,MAAM,oBAAoB,GAAqC;IAC7D,mBAAmB,EAAE,wDAAwD;IAC7E,qBAAqB,EAAE,+CAA+C;IACtE,qBAAqB,EACnB,6DAA6D;IAC/D,wBAAwB,EACtB,qEAAqE;IACvE,kBAAkB,EAChB,oEAAoE;IACtE,qBAAqB,EAAE,mCAAmC;CAC3D,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,2BAA2B,CACzC,MAA+B;IAE/B,MAAM,aAAa,GAAG,MAA+B,CAAA;IACrD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,IAAI,EAAE,CAAA;IAC5C,MAAM,IAAI,GAA4B,EAAE,GAAG,QAAQ,EAAE,CAAA;IACrD,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,GAAG;YACd,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,oBAAoB,CAAC,OAAO,CAAC;SAC3C,CAAA;IACH,CAAC;IACD,IAAI,CAAC,wBAAwB,CAAC,GAAG;QAC/B,QAAQ,EAAE,wBAAwB;QAClC,WAAW,EACT,oEAAoE;KACvE,CAAA;IACD,aAAa,CAAC,OAAO,GAAG,IAAI,CAAA;AAC9B,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,KAAK,EAAE,8BAA8B;IACrC,OAAO,EAAE,gCAAgC;IACzC,OAAO,EAAE,gCAAgC;IACzC,UAAU,EAAE,mCAAmC;IAC/C,IAAI,EAAE,6BAA6B;IACnC,OAAO,EAAE,gCAAgC;CACjC,CAAA"}
@@ -1,10 +1,10 @@
1
- import { type AccountStatus } from "./ui/auth-menu";
2
- import type { FingerprintVersion } from "./fingerprint";
3
- import type { CooldownReason } from "./accounts";
4
- import type { QuotaGroupSummary } from "./quota";
1
+ import type { CooldownReason } from './accounts';
2
+ import type { FingerprintVersion } from './fingerprint';
3
+ import type { QuotaGroupSummary } from './quota';
4
+ import { type AccountStatus } from './ui/auth-menu';
5
5
  export declare function promptProjectId(): Promise<string>;
6
6
  export declare function promptAddAnotherAccount(currentCount: number): Promise<boolean>;
7
- export type LoginMode = "add" | "fresh" | "manage" | "check" | "doctor" | "repair" | "current" | "switch-account" | "restore-fingerprint" | "verify" | "verify-all" | "cancel";
7
+ export type LoginMode = 'add' | 'fresh' | 'manage' | 'check' | 'doctor' | 'repair' | 'current' | 'switch-account' | 'restore-fingerprint' | 'verify' | 'verify-all' | 'cancel';
8
8
  export interface ExistingAccountInfo {
9
9
  email?: string;
10
10
  index: number;
@@ -39,6 +39,6 @@ export interface LoginMenuResult {
39
39
  deleteAll?: boolean;
40
40
  }
41
41
  export declare function promptLoginMode(existingAccounts: ExistingAccountInfo[]): Promise<LoginMenuResult>;
42
- export { isTTY } from "./ui/auth-menu";
43
- export type { AccountStatus } from "./ui/auth-menu";
42
+ export type { AccountStatus } from './ui/auth-menu';
43
+ export { isTTY } from './ui/auth-menu';
44
44
  //# sourceMappingURL=cli.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/plugin/cli.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAQvD;AAED,wBAAsB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASpF;AAED,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAC;AAE/K,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACzD,mBAAmB,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvI,kBAAkB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAyCD,wBAAsB,eAAe,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAiGvG;AAED,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/plugin/cli.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAChD,OAAO,EAEL,KAAK,aAAa,EAKnB,MAAM,gBAAgB,CAAA;AACvB,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAUvD;AAED,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED,MAAM,MAAM,SAAS,GACjB,KAAK,GACL,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,gBAAgB,GAChB,qBAAqB,GACrB,QAAQ,GACR,YAAY,GACZ,QAAQ,CAAA;AAEZ,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAA;IACxD,mBAAmB,CAAC,EAAE;QACpB,OAAO,EAAE,MAAM,CAAA;QACf,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,iBAAiB,EAAE,MAAM,CAAA;QACzB,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,EAAE,CAAA;IACH,kBAAkB,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAC1C;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAA;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAqDD,wBAAsB,eAAe,CACnC,gBAAgB,EAAE,mBAAmB,EAAE,GACtC,OAAO,CAAC,eAAe,CAAC,CA2G1B;AAED,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA"}
@@ -1,11 +1,11 @@
1
- import { createInterface } from "node:readline/promises";
2
- import { stdin as input, stdout as output } from "node:process";
3
- import { showAuthMenu, showAccountDetails, showFingerprintHistory, isTTY, } from "./ui/auth-menu";
4
- import { updateOpencodeConfig } from "./config/updater";
1
+ import { stdin as input, stdout as output } from 'node:process';
2
+ import { createInterface } from 'node:readline/promises';
3
+ import { updateOpencodeConfig } from './config/updater';
4
+ import { isTTY, showAccountDetails, showAuthMenu, showFingerprintHistory, } from './ui/auth-menu';
5
5
  export async function promptProjectId() {
6
6
  const rl = createInterface({ input, output });
7
7
  try {
8
- const answer = await rl.question("Project ID (leave blank to use your default project): ");
8
+ const answer = await rl.question('Project ID (leave blank to use your default project): ');
9
9
  return answer.trim();
10
10
  }
11
11
  finally {
@@ -17,7 +17,7 @@ export async function promptAddAnotherAccount(currentCount) {
17
17
  try {
18
18
  const answer = await rl.question(`Add another account? (${currentCount} added) (y/n): `);
19
19
  const normalized = answer.trim().toLowerCase();
20
- return normalized === "y" || normalized === "yes";
20
+ return normalized === 'y' || normalized === 'yes';
21
21
  }
22
22
  finally {
23
23
  rl.close();
@@ -31,27 +31,31 @@ async function promptLoginModeFallback(existingAccounts) {
31
31
  const label = acc.email || `Account ${acc.index + 1}`;
32
32
  console.log(` ${acc.index + 1}. ${label}`);
33
33
  }
34
- console.log("");
34
+ console.log('');
35
35
  while (true) {
36
- const answer = await rl.question("(a)dd new, (f)resh start, (c)heck quotas, auth (d)octor, (v)erify account, (va) verify all? [a/f/c/d/v/va]: ");
36
+ const answer = await rl.question('(a)dd new, (f)resh start, (c)heck quotas, auth (d)octor, (v)erify account, (va) verify all? [a/f/c/d/v/va]: ');
37
37
  const normalized = answer.trim().toLowerCase();
38
- if (normalized === "a" || normalized === "add") {
39
- return { mode: "add" };
38
+ if (normalized === 'a' || normalized === 'add') {
39
+ return { mode: 'add' };
40
40
  }
41
- if (normalized === "f" || normalized === "fresh") {
42
- return { mode: "fresh" };
41
+ if (normalized === 'f' || normalized === 'fresh') {
42
+ return { mode: 'fresh' };
43
43
  }
44
- if (normalized === "c" || normalized === "check") {
45
- return { mode: "check" };
44
+ if (normalized === 'c' || normalized === 'check') {
45
+ return { mode: 'check' };
46
46
  }
47
- if (normalized === "d" || normalized === "doctor" || normalized === "auth-doctor") {
48
- return { mode: "doctor" };
47
+ if (normalized === 'd' ||
48
+ normalized === 'doctor' ||
49
+ normalized === 'auth-doctor') {
50
+ return { mode: 'doctor' };
49
51
  }
50
- if (normalized === "v" || normalized === "verify") {
51
- return { mode: "verify" };
52
+ if (normalized === 'v' || normalized === 'verify') {
53
+ return { mode: 'verify' };
52
54
  }
53
- if (normalized === "va" || normalized === "verify-all" || normalized === "all") {
54
- return { mode: "verify-all", verifyAll: true };
55
+ if (normalized === 'va' ||
56
+ normalized === 'verify-all' ||
57
+ normalized === 'all') {
58
+ return { mode: 'verify-all', verifyAll: true };
55
59
  }
56
60
  console.log("Please enter 'a', 'f', 'c', 'd', 'v', or 'va'.");
57
61
  }
@@ -64,7 +68,7 @@ export async function promptLoginMode(existingAccounts) {
64
68
  if (!isTTY()) {
65
69
  return promptLoginModeFallback(existingAccounts);
66
70
  }
67
- const accounts = existingAccounts.map(acc => ({
71
+ const accounts = existingAccounts.map((acc) => ({
68
72
  email: acc.email,
69
73
  index: acc.index,
70
74
  addedAt: acc.addedAt,
@@ -79,44 +83,47 @@ export async function promptLoginMode(existingAccounts) {
79
83
  cachedPerModelQuota: acc.cachedPerModelQuota,
80
84
  fingerprintHistory: acc.fingerprintHistory,
81
85
  }));
82
- console.log("");
86
+ console.log('');
83
87
  while (true) {
84
88
  const action = await showAuthMenu(accounts);
85
89
  switch (action.type) {
86
- case "add":
87
- return { mode: "add" };
88
- case "check":
89
- return { mode: "check" };
90
- case "doctor":
91
- return { mode: "doctor" };
92
- case "repair":
93
- return { mode: "repair" };
94
- case "current":
95
- return { mode: "current" };
96
- case "verify":
97
- return { mode: "verify" };
98
- case "verify-all":
99
- return { mode: "verify-all", verifyAll: true };
100
- case "select-account": {
90
+ case 'add':
91
+ return { mode: 'add' };
92
+ case 'check':
93
+ return { mode: 'check' };
94
+ case 'doctor':
95
+ return { mode: 'doctor' };
96
+ case 'repair':
97
+ return { mode: 'repair' };
98
+ case 'current':
99
+ return { mode: 'current' };
100
+ case 'verify':
101
+ return { mode: 'verify' };
102
+ case 'verify-all':
103
+ return { mode: 'verify-all', verifyAll: true };
104
+ case 'select-account': {
101
105
  const accountAction = await showAccountDetails(action.account);
102
- if (accountAction === "delete") {
103
- return { mode: "add", deleteAccountIndex: action.account.index };
106
+ if (accountAction === 'delete') {
107
+ return { mode: 'add', deleteAccountIndex: action.account.index };
104
108
  }
105
- if (accountAction === "refresh") {
106
- return { mode: "add", refreshAccountIndex: action.account.index };
109
+ if (accountAction === 'refresh') {
110
+ return { mode: 'add', refreshAccountIndex: action.account.index };
107
111
  }
108
- if (accountAction === "toggle") {
109
- return { mode: "manage", toggleAccountIndex: action.account.index };
112
+ if (accountAction === 'toggle') {
113
+ return { mode: 'manage', toggleAccountIndex: action.account.index };
110
114
  }
111
- if (accountAction === "verify") {
112
- return { mode: "verify", verifyAccountIndex: action.account.index };
115
+ if (accountAction === 'verify') {
116
+ return { mode: 'verify', verifyAccountIndex: action.account.index };
113
117
  }
114
- if (accountAction === "switch-account") {
118
+ if (accountAction === 'switch-account') {
115
119
  const accountLabel = action.account.email || `Account ${action.account.index + 1}`;
116
120
  console.log(`\n✓ Switched to ${accountLabel}. Restart OpenCode for changes to take effect.\n`);
117
- return { mode: "switch-account", switchAccountIndex: action.account.index };
121
+ return {
122
+ mode: 'switch-account',
123
+ switchAccountIndex: action.account.index,
124
+ };
118
125
  }
119
- if (accountAction === "restore-fingerprint") {
126
+ if (accountAction === 'restore-fingerprint') {
120
127
  const history = action.account.fingerprintHistory;
121
128
  if (!history || history.length === 0)
122
129
  continue;
@@ -125,16 +132,16 @@ export async function promptLoginMode(existingAccounts) {
125
132
  if (historyIndex === null)
126
133
  continue;
127
134
  return {
128
- mode: "restore-fingerprint",
135
+ mode: 'restore-fingerprint',
129
136
  restoreFingerprintAccountIndex: action.account.index,
130
137
  restoreFingerprintHistoryIndex: historyIndex,
131
138
  };
132
139
  }
133
140
  continue;
134
141
  }
135
- case "delete-all":
136
- return { mode: "fresh", deleteAll: true };
137
- case "configure-models": {
142
+ case 'delete-all':
143
+ return { mode: 'fresh', deleteAll: true };
144
+ case 'configure-models': {
138
145
  const result = await updateOpencodeConfig();
139
146
  if (result.success) {
140
147
  console.log(`\n✓ Models configured in ${result.configPath}\n`);
@@ -144,10 +151,10 @@ export async function promptLoginMode(existingAccounts) {
144
151
  }
145
152
  continue;
146
153
  }
147
- case "cancel":
148
- return { mode: "cancel" };
154
+ case 'cancel':
155
+ return { mode: 'cancel' };
149
156
  }
150
157
  }
151
158
  }
152
- export { isTTY } from "./ui/auth-menu";
159
+ export { isTTY } from './ui/auth-menu';
153
160
  //# sourceMappingURL=cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/plugin/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/plugin/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,276 @@
1
+ /**
2
+ * Privacy-safe data service for the data-first slash-command dialogs.
3
+ *
4
+ * `/antigravity-quota` (this task) and the future `/antigravity-account`
5
+ * dialogs (Tasks 10-11) read from a single shared service so they
6
+ * never touch raw account storage, never see the email PII field, and
7
+ * never run quota network I/O during the dialog's open path — the
8
+ * Refresh action is the only path that performs a live fetch.
9
+ *
10
+ * Why this is a separate module:
11
+ *
12
+ * - `commands.ts` owns the slash-command orchestration; mixing the row
13
+ * projection + quota refresh logic in there would balloon the surface
14
+ * for what is fundamentally a small read/refresh service.
15
+ * - The row type (`CommandAccountRow`) is the projection that crosses
16
+ * the PII firewall into the dialog payload. Defining it here (next
17
+ * to the code that constructs it) keeps the firewall reviewable.
18
+ * - Tests can pin the read-vs-refresh boundary, the email redaction, and
19
+ * the refresh-token-keyed persistence in one file rather than chasing
20
+ * them across the dispatcher + RPC + apply layers.
21
+ *
22
+ * Cache-only opening contract (Task 9 operator requirement):
23
+ *
24
+ * `listAccounts()` is a pure read of the live AccountManager view
25
+ * the auth-loader materialized at session start. It performs
26
+ * ZERO quota manager calls — opening the dialog must be instant even
27
+ * when the network is unreachable, and quota refresh must remain an
28
+ * explicit user-driven action so the cached percentages never quietly
29
+ * rewrite themselves behind the user's back.
30
+ *
31
+ * Refresh-token-keyed persistence (Task 9 plan trap):
32
+ *
33
+ * `refreshQuota()` runs the shared quota manager across every enabled
34
+ * account and folds the results back into the live AccountManager +
35
+ * storage. Concurrent OAuth can renumber the flat `accounts[]` array
36
+ * between read and write, so we re-read under the lock and key the
37
+ * update by `refreshToken` (the canonical identity) rather than the
38
+ * array index. This way a successful OAuth add that lands between
39
+ * the read and the write cannot cause the refresh to overwrite the
40
+ * wrong account.
41
+ */
42
+ /**
43
+ * Local copies of the few core types the data service touches.
44
+ *
45
+ * The shipped TUI tree cannot depend on the `@cortexkit/antigravity-auth-core`
46
+ * barrel (only subpath imports like `./file-lock` are allowed) — the
47
+ * compiled `command-data.ts` is copied verbatim into `tui-compiled/`,
48
+ * and the type-import would otherwise leak the full core surface into
49
+ * the dialog render path. Declaring the structural shape locally keeps
50
+ * the compiled tree free of the barrel while preserving duck-typed
51
+ * compatibility with the production quota manager.
52
+ */
53
+ type CommandDataAccountMetadata = {
54
+ email?: string;
55
+ refreshToken: string;
56
+ projectId?: string;
57
+ managedProjectId?: string;
58
+ addedAt: number;
59
+ lastUsed: number;
60
+ enabled?: boolean;
61
+ label?: string;
62
+ cachedQuota?: Partial<Record<CommandDataQuotaGroup, CommandDataQuotaGroupSummary>>;
63
+ cachedQuotaUpdatedAt?: number;
64
+ accountIneligible?: boolean;
65
+ };
66
+ type CommandDataQuotaGroup = 'claude' | 'gemini-pro' | 'gemini-flash' | 'gpt-oss';
67
+ type CommandDataQuotaGroupSummary = {
68
+ remainingFraction?: number;
69
+ resetTime?: string;
70
+ modelCount: number;
71
+ };
72
+ type CommandDataAccountQuotaResult = {
73
+ index: number;
74
+ status: 'ok' | 'disabled' | 'error';
75
+ error?: string;
76
+ disabled?: boolean;
77
+ quota?: {
78
+ groups: Partial<Record<CommandDataQuotaGroup, CommandDataQuotaGroupSummary>>;
79
+ perModel?: Array<{
80
+ modelId: string;
81
+ displayName?: string;
82
+ group: CommandDataQuotaGroup | null;
83
+ remainingFraction: number;
84
+ resetTime?: string;
85
+ }>;
86
+ modelCount: number;
87
+ error?: string;
88
+ };
89
+ updatedAccount?: CommandDataAccountMetadata;
90
+ };
91
+ type CommandDataAccountStorage = {
92
+ version: 4;
93
+ activeIndex: number;
94
+ activeIndexByFamily?: {
95
+ claude?: number;
96
+ gemini?: number;
97
+ };
98
+ accounts: CommandDataAccountMetadata[];
99
+ };
100
+ /**
101
+ * Privacy-safe per-account row shown in `/antigravity-*` data-first
102
+ * dialogs. Carries the cached quota percentages and the labels the
103
+ * dialog needs, but NEVER the email — the email stays in private
104
+ * account storage and is invisible to the sidebar and the dialog.
105
+ *
106
+ * `index` is the position in the live account array at the time of
107
+ * projection. It is informational only and is NOT a stable identity
108
+ * across refreshes — concurrent OAuth can renumber the array between
109
+ * the dialog opening and a refresh.
110
+ */
111
+ export interface CommandAccountRow {
112
+ /** Stable identity for dialog keying (`acct-<index>`). */
113
+ id: string;
114
+ /** Position in the live account array at projection time. */
115
+ index: number;
116
+ /** Privacy-safe ordinal display label (for example, `Account 1`). */
117
+ label: string;
118
+ enabled: boolean;
119
+ /** `true` when this row matches the harness-active account. */
120
+ current: boolean;
121
+ quota: Array<{
122
+ key: 'claude' | 'gemini-pro' | 'gemini-flash' | 'gpt-oss';
123
+ label: string;
124
+ remainingPercent: number | null;
125
+ resetAt?: number;
126
+ }>;
127
+ }
128
+ interface LiveAccountSnapshot {
129
+ index: number;
130
+ refreshToken: string;
131
+ label?: string;
132
+ enabled: boolean;
133
+ active: boolean;
134
+ cachedQuota?: Partial<Record<CommandDataQuotaGroup, CommandDataQuotaGroupSummary>>;
135
+ cachedQuotaUpdatedAt?: number;
136
+ accountIneligible?: boolean;
137
+ }
138
+ /**
139
+ * Live AccountManager view the data service needs.
140
+ *
141
+ * - `getAccounts()` returns the in-memory snapshot — used for cache-only
142
+ * reads during dialog open and for re-reading the post-mutation state.
143
+ * `getAccountsForQuotaCheck()` returns the freshest `AccountMetadataV3`
144
+ * (the canonical shape the quota manager expects).
145
+ * - `updateQuotaCache(index, groups)` + `requestSaveToDisk()` fold the
146
+ * refreshed quota back into the live view and persist it. The service
147
+ * calls them together after the network fetch resolves.
148
+ * - `setAccountEnabled`, `setAccountCurrent`, `removeAccountByIndex`
149
+ * mirror the CLI menu's mutation primitives — the dialog actions
150
+ * (Task 10) reuse them so the TUI never invents its own mutation
151
+ * logic. Each method returns `true` when the live view changed.
152
+ * - `getRefreshTokenAt(index)` lets the service identify the canonical
153
+ * account identity before it reaches the locked storage mutator; a
154
+ * concurrent OAuth could renumber the flat array between the dialog
155
+ * opening and the apply, so keying by refresh token is mandatory.
156
+ * - `flushSaveToDisk()` drains the AccountManager's debounced save so a
157
+ * dialog-triggered mutation lands on disk before the dialog's response
158
+ * returns. Without it, the dialog could toast "Account removed" while
159
+ * the file still carries the old pool.
160
+ * - `activeIndex()` returns the position the harness considers active;
161
+ * the service uses it to mark the matching row as `current: true`.
162
+ */
163
+ export interface CommandDataAccountManagerView {
164
+ getAccounts(): LiveAccountSnapshot[];
165
+ getAccountsForQuotaCheck(): CommandDataAccountMetadata[];
166
+ updateQuotaCache(index: number, groups: Partial<Record<CommandDataQuotaGroup, CommandDataQuotaGroupSummary>>): void;
167
+ requestSaveToDisk(): void;
168
+ flushSaveToDisk(): Promise<void>;
169
+ activeIndex(): number;
170
+ /** Enable/disable the account at `index`. Returns true when it changed. */
171
+ setAccountEnabled(index: number, enabled: boolean): boolean;
172
+ /** Pin `index` as the active account for every family the dialog cares about. */
173
+ setAccountCurrent(index: number): boolean;
174
+ /** Remove the account at `index` from the live view. Returns true when it changed. */
175
+ removeAccountByIndex(index: number): boolean;
176
+ /** Canonical refresh token for the account at `index`, or undefined. */
177
+ getRefreshTokenAt(index: number): string | undefined;
178
+ }
179
+ /**
180
+ * Storage adapter the data service uses for re-read-under-lock writes.
181
+ * `mutate` runs the supplied callback against the latest snapshot under
182
+ * the file lock — the callback receives the current storage and may
183
+ * return a replacement; returning the input unchanged is a no-op.
184
+ *
185
+ * The promise resolves with the (possibly mutated) storage snapshot so
186
+ * the data service can await it. A rejected promise signals a failed
187
+ * write — `AccountStorageUnreadableError`, lock contention, or any
188
+ * other I/O failure — which the data service surfaces to the dialog
189
+ * as a friendly error toast.
190
+ */
191
+ export interface CommandDataStorage {
192
+ mutate(mutator: (current: CommandDataAccountStorage) => CommandDataAccountStorage | undefined | Promise<CommandDataAccountStorage | undefined>): Promise<CommandDataAccountStorage | undefined> | undefined;
193
+ }
194
+ /**
195
+ * Options for `createCommandDataService`. Each field is required so
196
+ * production wiring is explicit — a missing dependency is a startup
197
+ * error, not a silent no-op at dialog-open time.
198
+ */
199
+ export interface CommandDataServiceOptions {
200
+ accountManagerView: CommandDataAccountManagerView;
201
+ quotaManager: {
202
+ refreshAccounts(accounts: CommandDataAccountMetadata[], options: {
203
+ indexFor?: (account: CommandDataAccountMetadata) => number;
204
+ force?: boolean;
205
+ }): Promise<CommandDataAccountQuotaResult[]>;
206
+ };
207
+ /** Path to the label-only sidebar state file. */
208
+ sidebarStateFile: string;
209
+ /**
210
+ * Optional storage adapter. When provided, the service persists the
211
+ * refreshed quota to disk via the lock-held mutator (best-effort —
212
+ * a lock contention never breaks the dialog response). When omitted,
213
+ * the service still folds results into the live AccountManager view;
214
+ * the auth-loader is responsible for the on-disk write.
215
+ */
216
+ storage?: CommandDataStorage;
217
+ /** Clock for `cachedQuotaUpdatedAt`. Tests inject a fixed clock. */
218
+ now?: () => number;
219
+ }
220
+ /**
221
+ * Public surface of the command-data service. Each method is the
222
+ * smallest possible projection so the dialog layer never has to know
223
+ * how the underlying quota manager or storage adapter is wired.
224
+ */
225
+ export interface CommandDataService {
226
+ /**
227
+ * Cache-only snapshot. Performs zero quota manager calls — safe to
228
+ * call as part of the dialog's open path.
229
+ */
230
+ listAccounts(): Promise<CommandAccountRow[]>;
231
+ /**
232
+ * Force-refresh quota through the shared quota manager, persist by
233
+ * refresh token, bump `cachedQuotaUpdatedAt`, and push a label-only
234
+ * sidebar snapshot. Returns the freshly persisted rows so the
235
+ * dialog can re-render in place.
236
+ */
237
+ refreshQuota(): Promise<CommandAccountRow[]>;
238
+ /**
239
+ * Pin `index` as the active account for every family the dialog
240
+ * tracks (claude + gemini). Mutates the live AccountManager AND the
241
+ * locked storage so the new active index survives a restart. Returns
242
+ * the freshly projected rows so the dialog can re-render in place.
243
+ * Returns `null` when the index is out of range or the account has
244
+ * no refresh token — the dialog surfaces the null as a toast.
245
+ */
246
+ setCurrentAccount(index: number): Promise<CommandAccountRow[] | null>;
247
+ /**
248
+ * Flip the `enabled` flag on the account at `index`. Mirrors the CLI
249
+ * menu's "manage" toggle so the on-disk state matches what the CLI
250
+ * would produce. Returns the freshly projected rows (or `null` when
251
+ * the index is invalid or the account is ineligible).
252
+ */
253
+ toggleAccountEnabled(index: number): Promise<CommandAccountRow[] | null>;
254
+ /**
255
+ * Remove the account at `index` from both the live view and the
256
+ * locked storage. Removal renumbers the flat `accounts[]` array so
257
+ * the returned rows use the freshest indices; callers MUST re-key
258
+ * their transient dialog IDs (`acct-${index}`) by the row's `id`
259
+ * field after this method returns.
260
+ *
261
+ * Returns `null` when the index is out of range — the dialog
262
+ * surfaces the null as a toast.
263
+ */
264
+ removeAccount(index: number): Promise<CommandAccountRow[] | null>;
265
+ }
266
+ /**
267
+ * Build the data service.
268
+ *
269
+ * The factory form (instead of a module-level singleton) keeps the
270
+ * service unit-testable: each test constructs its own dependencies
271
+ * (storage stub, quota manager stub, fixed clock) without touching
272
+ * the production quota path.
273
+ */
274
+ export declare function createCommandDataService(options: CommandDataServiceOptions): CommandDataService;
275
+ export {};
276
+ //# sourceMappingURL=command-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-data.d.ts","sourceRoot":"","sources":["../../../src/plugin/command-data.ts"],"names":[],"mappings":"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"}