@cortexkit/opencode-antigravity-auth 2.2.1 → 3.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 (957) hide show
  1. package/README.md +95 -89
  2. package/dist/cli.js +18469 -810
  3. package/dist/cli.js.map +4 -4
  4. package/dist/cli.meta.json +4079 -0
  5. package/dist/index.js +40914 -16441
  6. package/dist/index.js.map +4 -4
  7. package/dist/index.meta.json +6949 -0
  8. package/dist/server.js +50948 -0
  9. package/dist/server.js.map +7 -0
  10. package/dist/server.meta.json +7284 -0
  11. package/dist/src/cli.d.ts +46 -1
  12. package/dist/src/cli.d.ts.map +1 -1
  13. package/dist/src/cli.js +207 -2
  14. package/dist/src/cli.js.map +1 -1
  15. package/dist/src/common-auth-embedded/NOTICE.txt +21 -0
  16. package/dist/src/common-auth-embedded/auth-menu/accounts.d.ts +97 -0
  17. package/dist/src/common-auth-embedded/auth-menu/accounts.js +387 -0
  18. package/dist/src/common-auth-embedded/auth-menu/ansi.d.ts +26 -0
  19. package/dist/src/common-auth-embedded/auth-menu/ansi.js +98 -0
  20. package/dist/src/common-auth-embedded/auth-menu/confirm.d.ts +7 -0
  21. package/dist/src/common-auth-embedded/auth-menu/confirm.js +21 -0
  22. package/dist/src/common-auth-embedded/auth-menu/doctor.d.ts +52 -0
  23. package/dist/src/common-auth-embedded/auth-menu/doctor.js +81 -0
  24. package/dist/src/common-auth-embedded/auth-menu/index.d.ts +17 -0
  25. package/dist/src/common-auth-embedded/auth-menu/index.js +12 -0
  26. package/dist/src/common-auth-embedded/auth-menu/login.d.ts +55 -0
  27. package/dist/src/common-auth-embedded/auth-menu/login.js +83 -0
  28. package/dist/src/common-auth-embedded/auth-menu/menu.d.ts +59 -0
  29. package/dist/src/common-auth-embedded/auth-menu/menu.js +73 -0
  30. package/dist/src/common-auth-embedded/auth-menu/opencode-v1.d.ts +49 -0
  31. package/dist/src/common-auth-embedded/auth-menu/opencode-v1.js +47 -0
  32. package/dist/src/common-auth-embedded/auth-menu/select.d.ts +21 -0
  33. package/dist/src/common-auth-embedded/auth-menu/select.js +159 -0
  34. package/dist/src/common-auth-embedded/auth-menu/terminal.d.ts +43 -0
  35. package/dist/src/common-auth-embedded/auth-menu/terminal.js +19 -0
  36. package/dist/src/common-auth-embedded/claustrum/consumer.d.ts +102 -0
  37. package/dist/src/common-auth-embedded/claustrum/consumer.js +298 -0
  38. package/dist/src/common-auth-embedded/claustrum/custody.d.ts +175 -0
  39. package/dist/src/common-auth-embedded/claustrum/custody.js +354 -0
  40. package/dist/src/common-auth-embedded/claustrum/enrollment.d.ts +158 -0
  41. package/dist/src/common-auth-embedded/claustrum/enrollment.js +759 -0
  42. package/dist/src/common-auth-embedded/claustrum/errors.d.ts +16 -0
  43. package/dist/src/common-auth-embedded/claustrum/errors.js +8 -0
  44. package/dist/src/common-auth-embedded/claustrum/host-slot.d.ts +39 -0
  45. package/dist/src/common-auth-embedded/claustrum/host-slot.js +72 -0
  46. package/dist/src/common-auth-embedded/claustrum/index.d.ts +18 -0
  47. package/dist/src/common-auth-embedded/claustrum/index.js +22 -0
  48. package/dist/src/common-auth-embedded/claustrum/interlock.d.ts +27 -0
  49. package/dist/src/common-auth-embedded/claustrum/interlock.js +29 -0
  50. package/dist/src/common-auth-embedded/claustrum/roster.d.ts +208 -0
  51. package/dist/src/common-auth-embedded/claustrum/roster.js +536 -0
  52. package/dist/src/common-auth-embedded/commands/builtins.d.ts +71 -0
  53. package/dist/src/common-auth-embedded/commands/builtins.js +534 -0
  54. package/dist/src/common-auth-embedded/commands/index.d.ts +10 -0
  55. package/dist/src/common-auth-embedded/commands/index.js +5 -0
  56. package/dist/src/common-auth-embedded/commands/menu.d.ts +61 -0
  57. package/dist/src/common-auth-embedded/commands/menu.js +300 -0
  58. package/dist/src/common-auth-embedded/commands/model.d.ts +238 -0
  59. package/dist/src/common-auth-embedded/commands/model.js +16 -0
  60. package/dist/src/common-auth-embedded/commands/pi.d.ts +23 -0
  61. package/dist/src/common-auth-embedded/commands/pi.js +206 -0
  62. package/dist/src/common-auth-embedded/commands/seam.d.ts +72 -0
  63. package/dist/src/common-auth-embedded/commands/seam.js +301 -0
  64. package/dist/src/common-auth-embedded/fs/atomic-write.d.ts +20 -0
  65. package/dist/src/common-auth-embedded/fs/atomic-write.js +80 -0
  66. package/dist/src/common-auth-embedded/fs/index.d.ts +7 -0
  67. package/dist/src/common-auth-embedded/fs/index.js +6 -0
  68. package/dist/src/common-auth-embedded/fs/lock-constants.d.ts +14 -0
  69. package/dist/src/common-auth-embedded/fs/lock-constants.js +14 -0
  70. package/dist/src/common-auth-embedded/fs/refresh-file-lock.d.ts +33 -0
  71. package/dist/src/common-auth-embedded/fs/refresh-file-lock.js +501 -0
  72. package/dist/src/common-auth-embedded/fs/with-lock.d.ts +33 -0
  73. package/dist/src/common-auth-embedded/fs/with-lock.js +48 -0
  74. package/dist/src/common-auth-embedded/logger/capture-sink.d.ts +14 -0
  75. package/dist/src/common-auth-embedded/logger/capture-sink.js +13 -0
  76. package/dist/src/common-auth-embedded/logger/engine.d.ts +100 -0
  77. package/dist/src/common-auth-embedded/logger/engine.js +246 -0
  78. package/dist/src/common-auth-embedded/logger/index.d.ts +6 -0
  79. package/dist/src/common-auth-embedded/logger/index.js +3 -0
  80. package/dist/src/common-auth-embedded/logger/redact.d.ts +11 -0
  81. package/dist/src/common-auth-embedded/logger/redact.js +83 -0
  82. package/dist/src/common-auth-embedded/opencode2/errors.d.ts +25 -0
  83. package/dist/src/common-auth-embedded/opencode2/errors.js +15 -0
  84. package/dist/src/common-auth-embedded/opencode2/index.d.ts +8 -0
  85. package/dist/src/common-auth-embedded/opencode2/index.js +4 -0
  86. package/dist/src/common-auth-embedded/opencode2/install.d.ts +55 -0
  87. package/dist/src/common-auth-embedded/opencode2/install.js +886 -0
  88. package/dist/src/common-auth-embedded/opencode2/integration.d.ts +112 -0
  89. package/dist/src/common-auth-embedded/opencode2/integration.js +143 -0
  90. package/dist/src/common-auth-embedded/opencode2/sse.d.ts +12 -0
  91. package/dist/src/common-auth-embedded/opencode2/sse.js +60 -0
  92. package/dist/src/common-auth-embedded/opencode2/types.d.ts +413 -0
  93. package/dist/src/common-auth-embedded/pi-slot/index.d.ts +3 -0
  94. package/dist/src/common-auth-embedded/pi-slot/index.js +2 -0
  95. package/dist/src/common-auth-embedded/pi-slot/lock.js +212 -0
  96. package/dist/src/common-auth-embedded/pi-slot/slot.d.ts +49 -0
  97. package/dist/src/common-auth-embedded/pi-slot/slot.js +383 -0
  98. package/dist/src/common-auth-embedded/quota/codec.d.ts +11 -0
  99. package/dist/src/common-auth-embedded/quota/codec.js +12 -0
  100. package/dist/src/common-auth-embedded/quota/format.d.ts +46 -0
  101. package/dist/src/common-auth-embedded/quota/format.js +138 -0
  102. package/dist/src/common-auth-embedded/quota/index.d.ts +10 -0
  103. package/dist/src/common-auth-embedded/quota/index.js +5 -0
  104. package/dist/src/common-auth-embedded/quota/map.d.ts +63 -0
  105. package/dist/src/common-auth-embedded/quota/map.js +105 -0
  106. package/dist/src/common-auth-embedded/quota/merge.d.ts +48 -0
  107. package/dist/src/common-auth-embedded/quota/merge.js +162 -0
  108. package/dist/src/common-auth-embedded/quota/projection.d.ts +64 -0
  109. package/dist/src/common-auth-embedded/quota/projection.js +134 -0
  110. package/dist/src/common-auth-embedded/routing/admission.d.ts +93 -0
  111. package/dist/src/common-auth-embedded/routing/admission.js +142 -0
  112. package/dist/src/common-auth-embedded/routing/index.d.ts +8 -0
  113. package/dist/src/common-auth-embedded/routing/index.js +4 -0
  114. package/dist/src/common-auth-embedded/routing/ordered.d.ts +47 -0
  115. package/dist/src/common-auth-embedded/routing/ordered.js +58 -0
  116. package/dist/src/common-auth-embedded/routing/pins.d.ts +22 -0
  117. package/dist/src/common-auth-embedded/routing/pins.js +34 -0
  118. package/dist/src/common-auth-embedded/routing/sticky.d.ts +158 -0
  119. package/dist/src/common-auth-embedded/routing/sticky.js +339 -0
  120. package/dist/src/common-auth-embedded/rpc/client.d.ts +3 -0
  121. package/dist/src/common-auth-embedded/rpc/client.js +2 -0
  122. package/dist/src/common-auth-embedded/rpc/index.d.ts +10 -0
  123. package/dist/src/common-auth-embedded/rpc/index.js +5 -0
  124. package/dist/src/common-auth-embedded/rpc/notifications.d.ts +73 -0
  125. package/dist/src/common-auth-embedded/rpc/notifications.js +100 -0
  126. package/dist/src/common-auth-embedded/rpc/port-file.d.ts +33 -0
  127. package/dist/src/common-auth-embedded/rpc/port-file.js +217 -0
  128. package/dist/src/common-auth-embedded/rpc/rpc-client.d.ts +30 -0
  129. package/dist/src/common-auth-embedded/rpc/rpc-client.js +253 -0
  130. package/dist/src/common-auth-embedded/rpc/rpc-server.d.ts +58 -0
  131. package/dist/src/common-auth-embedded/rpc/rpc-server.js +311 -0
  132. package/dist/src/common-auth-embedded/rpc/server-registry.d.ts +11 -0
  133. package/dist/src/common-auth-embedded/rpc/server-registry.js +47 -0
  134. package/dist/src/common-auth-embedded/source-output.json +1326 -0
  135. package/dist/src/common-auth-embedded/store/attribution.d.ts +28 -0
  136. package/dist/src/common-auth-embedded/store/attribution.js +60 -0
  137. package/dist/src/common-auth-embedded/store/errors.d.ts +55 -0
  138. package/dist/src/common-auth-embedded/store/errors.js +38 -0
  139. package/dist/src/common-auth-embedded/store/hooks.d.ts +12 -0
  140. package/dist/src/common-auth-embedded/store/hooks.js +34 -0
  141. package/dist/src/common-auth-embedded/store/identity.d.ts +39 -0
  142. package/dist/src/common-auth-embedded/store/identity.js +79 -0
  143. package/dist/src/common-auth-embedded/store/index.d.ts +21 -0
  144. package/dist/src/common-auth-embedded/store/index.js +7 -0
  145. package/dist/src/common-auth-embedded/store/mutate.d.ts +189 -0
  146. package/dist/src/common-auth-embedded/store/mutate.js +500 -0
  147. package/dist/src/common-auth-embedded/store/pool.d.ts +196 -0
  148. package/dist/src/common-auth-embedded/store/pool.js +120 -0
  149. package/dist/src/common-auth-embedded/store/provider-state.d.ts +131 -0
  150. package/dist/src/common-auth-embedded/store/provider-state.js +226 -0
  151. package/dist/src/common-auth-embedded/store/publication.d.ts +47 -0
  152. package/dist/src/common-auth-embedded/store/publication.js +304 -0
  153. package/dist/src/common-auth-embedded/store/pull.d.ts +36 -0
  154. package/dist/src/common-auth-embedded/store/pull.js +143 -0
  155. package/dist/src/common-auth-embedded/store/refresh-lock.d.ts +63 -0
  156. package/dist/src/common-auth-embedded/store/refresh-lock.js +136 -0
  157. package/dist/src/common-auth-embedded/store/refresh.d.ts +72 -0
  158. package/dist/src/common-auth-embedded/store/refresh.js +225 -0
  159. package/dist/src/common-auth-embedded/store/reserved.js +13 -0
  160. package/dist/src/common-auth-embedded/store/rows.d.ts +313 -0
  161. package/dist/src/common-auth-embedded/store/rows.js +1258 -0
  162. package/dist/src/common-auth-embedded/store/runtime.d.ts +36 -0
  163. package/dist/src/common-auth-embedded/store/runtime.js +68 -0
  164. package/dist/src/common-auth-embedded/store/schema.d.ts +443 -0
  165. package/dist/src/common-auth-embedded/store/schema.js +754 -0
  166. package/dist/src/common-auth-embedded/store/settings.d.ts +63 -0
  167. package/dist/src/common-auth-embedded/store/settings.js +120 -0
  168. package/dist/src/common-auth-embedded/store/torn.d.ts +78 -0
  169. package/dist/src/common-auth-embedded/store/torn.js +294 -0
  170. package/dist/src/common-auth-embedded/tui/index.d.ts +8 -0
  171. package/dist/src/common-auth-embedded/tui/index.js +21 -0
  172. package/dist/src/common-auth-embedded/util/any-signal.js +42 -0
  173. package/dist/src/constants.d.ts +1 -0
  174. package/dist/src/constants.d.ts.map +1 -1
  175. package/dist/src/constants.js +4 -0
  176. package/dist/src/constants.js.map +1 -1
  177. package/dist/src/ga/proxy-guard.d.ts +120 -0
  178. package/dist/src/ga/proxy-guard.d.ts.map +1 -0
  179. package/dist/src/ga/proxy-guard.js +269 -0
  180. package/dist/src/ga/proxy-guard.js.map +1 -0
  181. package/dist/src/ga/rpc/protocol.d.ts +504 -0
  182. package/dist/src/ga/rpc/protocol.d.ts.map +1 -0
  183. package/dist/src/ga/rpc/protocol.js +1278 -0
  184. package/dist/src/ga/rpc/protocol.js.map +1 -0
  185. package/dist/src/ga/server/auth.d.ts +9 -0
  186. package/dist/src/ga/server/auth.d.ts.map +1 -0
  187. package/dist/src/ga/server/auth.js +37 -0
  188. package/dist/src/ga/server/auth.js.map +1 -0
  189. package/dist/src/ga/server/index.d.ts +576 -0
  190. package/dist/src/ga/server/index.d.ts.map +1 -0
  191. package/dist/src/ga/server/index.js +1012 -0
  192. package/dist/src/ga/server/index.js.map +1 -0
  193. package/dist/src/ga/tui/host-ga.d.ts +350 -0
  194. package/dist/src/ga/tui/host-ga.d.ts.map +1 -0
  195. package/dist/src/ga/tui/host-ga.js +1242 -0
  196. package/dist/src/ga/tui/host-ga.js.map +1 -0
  197. package/dist/src/logging/provider-key-policy.d.ts +9 -0
  198. package/dist/src/logging/provider-key-policy.d.ts.map +1 -0
  199. package/dist/src/logging/provider-key-policy.js +11 -0
  200. package/dist/src/logging/provider-key-policy.js.map +1 -0
  201. package/dist/src/plugin/account-access.d.ts +130 -15
  202. package/dist/src/plugin/account-access.d.ts.map +1 -1
  203. package/dist/src/plugin/account-access.js +331 -129
  204. package/dist/src/plugin/account-access.js.map +1 -1
  205. package/dist/src/plugin/account-blocks.d.ts +102 -0
  206. package/dist/src/plugin/account-blocks.d.ts.map +1 -0
  207. package/dist/src/plugin/account-blocks.js +196 -0
  208. package/dist/src/plugin/account-blocks.js.map +1 -0
  209. package/dist/src/plugin/accounts.d.ts +85 -1
  210. package/dist/src/plugin/accounts.d.ts.map +1 -1
  211. package/dist/src/plugin/accounts.js +127 -3
  212. package/dist/src/plugin/accounts.js.map +1 -1
  213. package/dist/src/plugin/auth-loader.d.ts +69 -5
  214. package/dist/src/plugin/auth-loader.d.ts.map +1 -1
  215. package/dist/src/plugin/auth-loader.js +355 -52
  216. package/dist/src/plugin/auth-loader.js.map +1 -1
  217. package/dist/src/plugin/background-quota-refresh.d.ts +54 -8
  218. package/dist/src/plugin/background-quota-refresh.d.ts.map +1 -1
  219. package/dist/src/plugin/background-quota-refresh.js +81 -24
  220. package/dist/src/plugin/background-quota-refresh.js.map +1 -1
  221. package/dist/src/plugin/cache/index.d.ts +1 -1
  222. package/dist/src/plugin/cache/index.d.ts.map +1 -1
  223. package/dist/src/plugin/cache/index.js +1 -1
  224. package/dist/src/plugin/cache/index.js.map +1 -1
  225. package/dist/src/plugin/cache/signature-cache.d.ts +55 -10
  226. package/dist/src/plugin/cache/signature-cache.d.ts.map +1 -1
  227. package/dist/src/plugin/cache/signature-cache.js +100 -41
  228. package/dist/src/plugin/cache/signature-cache.js.map +1 -1
  229. package/dist/src/plugin/cache.d.ts +80 -16
  230. package/dist/src/plugin/cache.d.ts.map +1 -1
  231. package/dist/src/plugin/cache.js +339 -200
  232. package/dist/src/plugin/cache.js.map +1 -1
  233. package/dist/src/plugin/catalog.d.ts +4 -18
  234. package/dist/src/plugin/catalog.d.ts.map +1 -1
  235. package/dist/src/plugin/catalog.js +11 -41
  236. package/dist/src/plugin/catalog.js.map +1 -1
  237. package/dist/src/plugin/command-apply.d.ts +58 -0
  238. package/dist/src/plugin/command-apply.d.ts.map +1 -0
  239. package/dist/src/plugin/command-apply.js +168 -0
  240. package/dist/src/plugin/command-apply.js.map +1 -0
  241. package/dist/src/plugin/command-data.d.ts +1 -0
  242. package/dist/src/plugin/command-data.d.ts.map +1 -1
  243. package/dist/src/plugin/command-data.js +2 -0
  244. package/dist/src/plugin/command-data.js.map +1 -1
  245. package/dist/src/plugin/commands.d.ts +142 -132
  246. package/dist/src/plugin/commands.d.ts.map +1 -1
  247. package/dist/src/plugin/commands.js +214 -686
  248. package/dist/src/plugin/commands.js.map +1 -1
  249. package/dist/src/plugin/config/index.d.ts +1 -1
  250. package/dist/src/plugin/config/index.d.ts.map +1 -1
  251. package/dist/src/plugin/config/index.js +1 -1
  252. package/dist/src/plugin/config/index.js.map +1 -1
  253. package/dist/src/plugin/config/loader.d.ts +37 -1
  254. package/dist/src/plugin/config/loader.d.ts.map +1 -1
  255. package/dist/src/plugin/config/loader.js +64 -9
  256. package/dist/src/plugin/config/loader.js.map +1 -1
  257. package/dist/src/plugin/config/operator-settings-schema.d.ts +2 -2
  258. package/dist/src/plugin/config/schema.d.ts +2 -2
  259. package/dist/src/plugin/config/writer.d.ts +7 -0
  260. package/dist/src/plugin/config/writer.d.ts.map +1 -1
  261. package/dist/src/plugin/config/writer.js +10 -1
  262. package/dist/src/plugin/config/writer.js.map +1 -1
  263. package/dist/src/plugin/debug.d.ts +72 -29
  264. package/dist/src/plugin/debug.d.ts.map +1 -1
  265. package/dist/src/plugin/debug.js +353 -239
  266. package/dist/src/plugin/debug.js.map +1 -1
  267. package/dist/src/plugin/fetch/retry-state.d.ts +1 -1
  268. package/dist/src/plugin/fetch/retry-state.d.ts.map +1 -1
  269. package/dist/src/plugin/fetch/retry-state.js.map +1 -1
  270. package/dist/src/plugin/fetch-interceptor.d.ts +66 -11
  271. package/dist/src/plugin/fetch-interceptor.d.ts.map +1 -1
  272. package/dist/src/plugin/fetch-interceptor.js +228 -1352
  273. package/dist/src/plugin/fetch-interceptor.js.map +1 -1
  274. package/dist/src/plugin/fetch-routing.d.ts +7 -2
  275. package/dist/src/plugin/fetch-routing.d.ts.map +1 -1
  276. package/dist/src/plugin/fetch-routing.js +7 -4
  277. package/dist/src/plugin/fetch-routing.js.map +1 -1
  278. package/dist/src/plugin/ga-location-services.d.ts +389 -0
  279. package/dist/src/plugin/ga-location-services.d.ts.map +1 -0
  280. package/dist/src/plugin/ga-location-services.js +1838 -0
  281. package/dist/src/plugin/ga-location-services.js.map +1 -0
  282. package/dist/src/plugin/gemini-dump.d.ts +37 -12
  283. package/dist/src/plugin/gemini-dump.d.ts.map +1 -1
  284. package/dist/src/plugin/gemini-dump.js +42 -21
  285. package/dist/src/plugin/gemini-dump.js.map +1 -1
  286. package/dist/src/plugin/google-search-tool.d.ts +2 -1
  287. package/dist/src/plugin/google-search-tool.d.ts.map +1 -1
  288. package/dist/src/plugin/google-search-tool.js +4 -1
  289. package/dist/src/plugin/google-search-tool.js.map +1 -1
  290. package/dist/src/plugin/index.d.ts.map +1 -1
  291. package/dist/src/plugin/index.js +505 -141
  292. package/dist/src/plugin/index.js.map +1 -1
  293. package/dist/src/plugin/killswitch.d.ts +1 -2
  294. package/dist/src/plugin/killswitch.d.ts.map +1 -1
  295. package/dist/src/plugin/lifecycle.d.ts +24 -1
  296. package/dist/src/plugin/lifecycle.d.ts.map +1 -1
  297. package/dist/src/plugin/lifecycle.js +95 -8
  298. package/dist/src/plugin/lifecycle.js.map +1 -1
  299. package/dist/src/plugin/logger.d.ts +61 -10
  300. package/dist/src/plugin/logger.d.ts.map +1 -1
  301. package/dist/src/plugin/logger.js +134 -63
  302. package/dist/src/plugin/logger.js.map +1 -1
  303. package/dist/src/plugin/neutral-types.d.ts +42 -0
  304. package/dist/src/plugin/neutral-types.d.ts.map +1 -0
  305. package/dist/src/plugin/neutral-types.js +12 -0
  306. package/dist/src/plugin/neutral-types.js.map +1 -0
  307. package/dist/src/plugin/oauth-methods.d.ts +2 -1
  308. package/dist/src/plugin/oauth-methods.d.ts.map +1 -1
  309. package/dist/src/plugin/oauth-methods.js +173 -88
  310. package/dist/src/plugin/oauth-methods.js.map +1 -1
  311. package/dist/src/plugin/operator-settings.d.ts +34 -0
  312. package/dist/src/plugin/operator-settings.d.ts.map +1 -1
  313. package/dist/src/plugin/operator-settings.js +105 -2
  314. package/dist/src/plugin/operator-settings.js.map +1 -1
  315. package/dist/src/plugin/persist-account-pool.d.ts +63 -2
  316. package/dist/src/plugin/persist-account-pool.d.ts.map +1 -1
  317. package/dist/src/plugin/persist-account-pool.js +125 -2
  318. package/dist/src/plugin/persist-account-pool.js.map +1 -1
  319. package/dist/src/plugin/quota.d.ts +335 -35
  320. package/dist/src/plugin/quota.d.ts.map +1 -1
  321. package/dist/src/plugin/quota.js +825 -95
  322. package/dist/src/plugin/quota.js.map +1 -1
  323. package/dist/src/plugin/refresh-queue.d.ts +35 -5
  324. package/dist/src/plugin/refresh-queue.d.ts.map +1 -1
  325. package/dist/src/plugin/refresh-queue.js +50 -16
  326. package/dist/src/plugin/refresh-queue.js.map +1 -1
  327. package/dist/src/plugin/request-helpers.d.ts +30 -5
  328. package/dist/src/plugin/request-helpers.d.ts.map +1 -1
  329. package/dist/src/plugin/request-helpers.js +82 -17
  330. package/dist/src/plugin/request-helpers.js.map +1 -1
  331. package/dist/src/plugin/request.d.ts +63 -15
  332. package/dist/src/plugin/request.d.ts.map +1 -1
  333. package/dist/src/plugin/request.js +190 -60
  334. package/dist/src/plugin/request.js.map +1 -1
  335. package/dist/src/plugin/session-context.d.ts.map +1 -1
  336. package/dist/src/plugin/session-context.js +5 -2
  337. package/dist/src/plugin/session-context.js.map +1 -1
  338. package/dist/src/plugin/shared/local-grant.d.ts +26 -0
  339. package/dist/src/plugin/shared/local-grant.d.ts.map +1 -0
  340. package/dist/src/plugin/shared/local-grant.js +19 -0
  341. package/dist/src/plugin/shared/local-grant.js.map +1 -0
  342. package/dist/src/plugin/shared/request-cancellation.d.ts +12 -0
  343. package/dist/src/plugin/shared/request-cancellation.d.ts.map +1 -0
  344. package/dist/src/plugin/shared/request-cancellation.js +118 -0
  345. package/dist/src/plugin/shared/request-cancellation.js.map +1 -0
  346. package/dist/src/plugin/shared/request-services.d.ts +375 -0
  347. package/dist/src/plugin/shared/request-services.d.ts.map +1 -0
  348. package/dist/src/plugin/shared/request-services.js +1743 -0
  349. package/dist/src/plugin/shared/request-services.js.map +1 -0
  350. package/dist/src/plugin/shared/runtime.d.ts +217 -0
  351. package/dist/src/plugin/shared/runtime.d.ts.map +1 -0
  352. package/dist/src/plugin/shared/runtime.js +345 -0
  353. package/dist/src/plugin/shared/runtime.js.map +1 -0
  354. package/dist/src/plugin/shared/source-sidebar.d.ts +15 -0
  355. package/dist/src/plugin/shared/source-sidebar.d.ts.map +1 -0
  356. package/dist/src/plugin/shared/source-sidebar.js +41 -0
  357. package/dist/src/plugin/shared/source-sidebar.js.map +1 -0
  358. package/dist/src/plugin/shared/vault-menu.d.ts +5 -0
  359. package/dist/src/plugin/shared/vault-menu.d.ts.map +1 -0
  360. package/dist/src/plugin/shared/vault-menu.js +49 -0
  361. package/dist/src/plugin/shared/vault-menu.js.map +1 -0
  362. package/dist/src/plugin/shared/vault-request-credentials.d.ts +168 -0
  363. package/dist/src/plugin/shared/vault-request-credentials.d.ts.map +1 -0
  364. package/dist/src/plugin/shared/vault-request-credentials.js +485 -0
  365. package/dist/src/plugin/shared/vault-request-credentials.js.map +1 -0
  366. package/dist/src/plugin/storage.d.ts +127 -1
  367. package/dist/src/plugin/storage.d.ts.map +1 -1
  368. package/dist/src/plugin/storage.js +188 -3
  369. package/dist/src/plugin/storage.js.map +1 -1
  370. package/dist/src/plugin/token.d.ts +23 -1
  371. package/dist/src/plugin/token.d.ts.map +1 -1
  372. package/dist/src/plugin/token.js +117 -58
  373. package/dist/src/plugin/token.js.map +1 -1
  374. package/dist/src/plugin/ui/quota-status.d.ts +1 -10
  375. package/dist/src/plugin/ui/quota-status.d.ts.map +1 -1
  376. package/dist/src/plugin/ui/quota-status.js +6 -42
  377. package/dist/src/plugin/ui/quota-status.js.map +1 -1
  378. package/dist/src/plugin/vault-activation.d.ts +11 -0
  379. package/dist/src/plugin/vault-activation.d.ts.map +1 -0
  380. package/dist/src/plugin/vault-activation.js +53 -0
  381. package/dist/src/plugin/vault-activation.js.map +1 -0
  382. package/dist/src/plugin/vault-custody.d.ts +131 -0
  383. package/dist/src/plugin/vault-custody.d.ts.map +1 -0
  384. package/dist/src/plugin/vault-custody.js +381 -0
  385. package/dist/src/plugin/vault-custody.js.map +1 -0
  386. package/dist/src/quota-presentation.d.ts +18 -0
  387. package/dist/src/quota-presentation.d.ts.map +1 -0
  388. package/dist/src/quota-presentation.js +58 -0
  389. package/dist/src/quota-presentation.js.map +1 -0
  390. package/dist/src/rpc/notifications.d.ts +2 -2
  391. package/dist/src/rpc/notifications.d.ts.map +1 -1
  392. package/dist/src/rpc/notifications.js +1 -1
  393. package/dist/src/rpc/notifications.js.map +1 -1
  394. package/dist/src/rpc/port-file.d.ts +2 -12
  395. package/dist/src/rpc/port-file.d.ts.map +1 -1
  396. package/dist/src/rpc/port-file.js +5 -107
  397. package/dist/src/rpc/port-file.js.map +1 -1
  398. package/dist/src/rpc/protocol.d.ts +47 -16
  399. package/dist/src/rpc/protocol.d.ts.map +1 -1
  400. package/dist/src/rpc/rpc-client.d.ts +27 -3
  401. package/dist/src/rpc/rpc-client.d.ts.map +1 -1
  402. package/dist/src/rpc/rpc-client.js +55 -45
  403. package/dist/src/rpc/rpc-client.js.map +1 -1
  404. package/dist/src/rpc/rpc-server.d.ts +13 -2
  405. package/dist/src/rpc/rpc-server.d.ts.map +1 -1
  406. package/dist/src/rpc/rpc-server.js +38 -212
  407. package/dist/src/rpc/rpc-server.js.map +1 -1
  408. package/dist/src/server.d.ts +30 -0
  409. package/dist/src/server.d.ts.map +1 -0
  410. package/dist/src/server.js +29 -0
  411. package/dist/src/server.js.map +1 -0
  412. package/dist/src/sidebar-projection.d.ts +102 -0
  413. package/dist/src/sidebar-projection.d.ts.map +1 -0
  414. package/dist/src/sidebar-projection.js +146 -0
  415. package/dist/src/sidebar-projection.js.map +1 -0
  416. package/dist/src/sidebar-state.d.ts +13 -5
  417. package/dist/src/sidebar-state.d.ts.map +1 -1
  418. package/dist/src/sidebar-state.js +49 -16
  419. package/dist/src/sidebar-state.js.map +1 -1
  420. package/dist/src/tui/command-dialogs.d.ts +58 -52
  421. package/dist/src/tui/command-dialogs.d.ts.map +1 -1
  422. package/dist/src/tui/command-dialogs.js +379 -571
  423. package/dist/src/tui/command-dialogs.js.map +1 -1
  424. package/dist/src/tui/file-logger.d.ts +2 -3
  425. package/dist/src/tui/file-logger.d.ts.map +1 -1
  426. package/dist/src/tui/file-logger.js +21 -7
  427. package/dist/src/tui/file-logger.js.map +1 -1
  428. package/dist/src/tui/host-api.d.ts +196 -0
  429. package/dist/src/tui/host-api.d.ts.map +1 -0
  430. package/dist/src/tui/host-api.js +357 -0
  431. package/dist/src/tui/host-api.js.map +1 -0
  432. package/dist/src/tui/host-v1.d.ts +60 -0
  433. package/dist/src/tui/host-v1.d.ts.map +1 -0
  434. package/dist/src/tui/host-v1.js +147 -0
  435. package/dist/src/tui/host-v1.js.map +1 -0
  436. package/dist/src/tui/vault-setup.d.ts +98 -0
  437. package/dist/src/tui/vault-setup.d.ts.map +1 -0
  438. package/dist/src/tui/vault-setup.js +198 -0
  439. package/dist/src/tui/vault-setup.js.map +1 -0
  440. package/dist/src/tui.d.ts +4 -11
  441. package/dist/src/tui.d.ts.map +1 -1
  442. package/dist/src/tui.js +33 -75
  443. package/dist/src/tui.js.map +1 -1
  444. package/dist/tui-build-map.json +380 -0
  445. package/dist/tui-ga-build-map.json +187 -0
  446. package/dist/types/src/antigravity/oauth.d.ts +2 -0
  447. package/dist/types/src/antigravity/oauth.d.ts.map +1 -0
  448. package/dist/types/src/cli.d.ts +66 -0
  449. package/dist/types/src/cli.d.ts.map +1 -0
  450. package/dist/types/src/common-auth-embedded/commands/builtins.d.ts +71 -0
  451. package/dist/types/src/common-auth-embedded/commands/index.d.ts +10 -0
  452. package/dist/types/src/common-auth-embedded/commands/menu.d.ts +61 -0
  453. package/dist/types/src/common-auth-embedded/commands/model.d.ts +238 -0
  454. package/dist/types/src/common-auth-embedded/commands/pi.d.ts +23 -0
  455. package/dist/types/src/common-auth-embedded/commands/seam.d.ts +72 -0
  456. package/dist/types/src/common-auth-embedded/fs/refresh-file-lock.d.ts +33 -0
  457. package/dist/types/src/common-auth-embedded/logger/capture-sink.d.ts +14 -0
  458. package/dist/types/src/common-auth-embedded/logger/engine.d.ts +100 -0
  459. package/dist/types/src/common-auth-embedded/logger/index.d.ts +6 -0
  460. package/dist/types/src/common-auth-embedded/logger/redact.d.ts +11 -0
  461. package/dist/types/src/common-auth-embedded/quota/codec.d.ts +11 -0
  462. package/dist/types/src/common-auth-embedded/quota/format.d.ts +46 -0
  463. package/dist/types/src/common-auth-embedded/quota/index.d.ts +10 -0
  464. package/dist/types/src/common-auth-embedded/quota/map.d.ts +63 -0
  465. package/dist/types/src/common-auth-embedded/quota/merge.d.ts +48 -0
  466. package/dist/types/src/common-auth-embedded/quota/projection.d.ts +64 -0
  467. package/dist/types/src/common-auth-embedded/store/attribution.d.ts +28 -0
  468. package/dist/types/src/common-auth-embedded/store/errors.d.ts +55 -0
  469. package/dist/types/src/common-auth-embedded/store/hooks.d.ts +12 -0
  470. package/dist/types/src/common-auth-embedded/store/identity.d.ts +39 -0
  471. package/dist/types/src/common-auth-embedded/store/index.d.ts +21 -0
  472. package/dist/types/src/common-auth-embedded/store/mutate.d.ts +189 -0
  473. package/dist/types/src/common-auth-embedded/store/pool.d.ts +196 -0
  474. package/dist/types/src/common-auth-embedded/store/provider-state.d.ts +131 -0
  475. package/dist/types/src/common-auth-embedded/store/publication.d.ts +47 -0
  476. package/dist/types/src/common-auth-embedded/store/pull.d.ts +36 -0
  477. package/dist/types/src/common-auth-embedded/store/refresh-lock.d.ts +63 -0
  478. package/dist/types/src/common-auth-embedded/store/refresh.d.ts +72 -0
  479. package/dist/types/src/common-auth-embedded/store/rows.d.ts +313 -0
  480. package/dist/types/src/common-auth-embedded/store/runtime.d.ts +36 -0
  481. package/dist/types/src/common-auth-embedded/store/schema.d.ts +443 -0
  482. package/dist/types/src/common-auth-embedded/store/settings.d.ts +63 -0
  483. package/dist/types/src/common-auth-embedded/store/torn.d.ts +78 -0
  484. package/dist/types/src/constants.d.ts +3 -0
  485. package/dist/types/src/constants.d.ts.map +1 -0
  486. package/dist/types/src/ga/proxy-guard.d.ts +120 -0
  487. package/dist/types/src/ga/proxy-guard.d.ts.map +1 -0
  488. package/dist/types/src/ga/rpc/protocol.d.ts +504 -0
  489. package/dist/types/src/ga/rpc/protocol.d.ts.map +1 -0
  490. package/dist/types/src/ga/server/auth.d.ts +9 -0
  491. package/dist/types/src/ga/server/auth.d.ts.map +1 -0
  492. package/dist/types/src/ga/server/index.d.ts +576 -0
  493. package/dist/types/src/ga/server/index.d.ts.map +1 -0
  494. package/dist/types/src/hooks/auto-update-checker/cache.d.ts +3 -0
  495. package/dist/types/src/hooks/auto-update-checker/cache.d.ts.map +1 -0
  496. package/dist/types/src/hooks/auto-update-checker/checker.d.ts +16 -0
  497. package/dist/types/src/hooks/auto-update-checker/checker.d.ts.map +1 -0
  498. package/dist/types/src/hooks/auto-update-checker/constants.d.ts +9 -0
  499. package/dist/types/src/hooks/auto-update-checker/constants.d.ts.map +1 -0
  500. package/dist/types/src/hooks/auto-update-checker/index.d.ts +34 -0
  501. package/dist/types/src/hooks/auto-update-checker/index.d.ts.map +1 -0
  502. package/dist/types/src/hooks/auto-update-checker/logging.d.ts +3 -0
  503. package/dist/types/src/hooks/auto-update-checker/logging.d.ts.map +1 -0
  504. package/dist/types/src/hooks/auto-update-checker/types.d.ts +25 -0
  505. package/dist/types/src/hooks/auto-update-checker/types.d.ts.map +1 -0
  506. package/dist/types/src/logging/provider-key-policy.d.ts +9 -0
  507. package/dist/types/src/logging/provider-key-policy.d.ts.map +1 -0
  508. package/dist/types/src/plugin/account-access.d.ts +214 -0
  509. package/dist/types/src/plugin/account-access.d.ts.map +1 -0
  510. package/dist/types/src/plugin/account-blocks.d.ts +102 -0
  511. package/dist/types/src/plugin/account-blocks.d.ts.map +1 -0
  512. package/dist/types/src/plugin/account-command-oauth.d.ts +34 -0
  513. package/dist/types/src/plugin/account-command-oauth.d.ts.map +1 -0
  514. package/dist/types/src/plugin/accounts.d.ts +94 -0
  515. package/dist/types/src/plugin/accounts.d.ts.map +1 -0
  516. package/dist/types/src/plugin/agy-request-metadata.d.ts +2 -0
  517. package/dist/types/src/plugin/agy-request-metadata.d.ts.map +1 -0
  518. package/dist/types/src/plugin/agy-transport.d.ts +2 -0
  519. package/dist/types/src/plugin/agy-transport.d.ts.map +1 -0
  520. package/dist/types/src/plugin/auth-doctor.d.ts +30 -0
  521. package/dist/types/src/plugin/auth-doctor.d.ts.map +1 -0
  522. package/dist/types/src/plugin/auth-drift.d.ts +13 -0
  523. package/dist/types/src/plugin/auth-drift.d.ts.map +1 -0
  524. package/dist/types/src/plugin/auth-loader.d.ts +114 -0
  525. package/dist/types/src/plugin/auth-loader.d.ts.map +1 -0
  526. package/dist/types/src/plugin/auth.d.ts +2 -0
  527. package/dist/types/src/plugin/auth.d.ts.map +1 -0
  528. package/dist/types/src/plugin/background-quota-refresh.d.ts +192 -0
  529. package/dist/types/src/plugin/background-quota-refresh.d.ts.map +1 -0
  530. package/dist/types/src/plugin/cache/signature-cache.d.ts +156 -0
  531. package/dist/types/src/plugin/cache/signature-cache.d.ts.map +1 -0
  532. package/dist/types/src/plugin/cache.d.ts +109 -0
  533. package/dist/types/src/plugin/cache.d.ts.map +1 -0
  534. package/dist/types/src/plugin/catalog.d.ts +9 -0
  535. package/dist/types/src/plugin/catalog.d.ts.map +1 -0
  536. package/dist/types/src/plugin/cli.d.ts +44 -0
  537. package/dist/types/src/plugin/cli.d.ts.map +1 -0
  538. package/dist/types/src/plugin/command-apply.d.ts +58 -0
  539. package/dist/types/src/plugin/command-apply.d.ts.map +1 -0
  540. package/dist/types/src/plugin/command-data.d.ts +330 -0
  541. package/dist/types/src/plugin/command-data.d.ts.map +1 -0
  542. package/dist/types/src/plugin/commands.d.ts +164 -0
  543. package/dist/types/src/plugin/commands.d.ts.map +1 -0
  544. package/dist/types/src/plugin/config/index.d.ts +16 -0
  545. package/dist/types/src/plugin/config/index.d.ts.map +1 -0
  546. package/dist/types/src/plugin/config/loader.d.ts +72 -0
  547. package/dist/types/src/plugin/config/loader.d.ts.map +1 -0
  548. package/dist/types/src/plugin/config/models.d.ts +3 -0
  549. package/dist/types/src/plugin/config/models.d.ts.map +1 -0
  550. package/dist/types/src/plugin/config/operator-settings-schema.d.ts +29 -0
  551. package/dist/types/src/plugin/config/operator-settings-schema.d.ts.map +1 -0
  552. package/dist/types/src/plugin/config/schema.d.ts +162 -0
  553. package/dist/types/src/plugin/config/schema.d.ts.map +1 -0
  554. package/dist/types/src/plugin/config/updater.d.ts +55 -0
  555. package/dist/types/src/plugin/config/updater.d.ts.map +1 -0
  556. package/dist/types/src/plugin/config/writer.d.ts +41 -0
  557. package/dist/types/src/plugin/config/writer.d.ts.map +1 -0
  558. package/dist/types/src/plugin/core/streaming/index.d.ts +3 -0
  559. package/dist/types/src/plugin/core/streaming/index.d.ts.map +1 -0
  560. package/dist/types/src/plugin/core/streaming/transformer.d.ts +12 -0
  561. package/dist/types/src/plugin/core/streaming/transformer.d.ts.map +1 -0
  562. package/dist/types/src/plugin/core/streaming/types.d.ts +34 -0
  563. package/dist/types/src/plugin/core/streaming/types.d.ts.map +1 -0
  564. package/dist/types/src/plugin/debug.d.ts +144 -0
  565. package/dist/types/src/plugin/debug.d.ts.map +1 -0
  566. package/dist/types/src/plugin/dependencies.d.ts +129 -0
  567. package/dist/types/src/plugin/dependencies.d.ts.map +1 -0
  568. package/dist/types/src/plugin/errors.d.ts +55 -0
  569. package/dist/types/src/plugin/errors.d.ts.map +1 -0
  570. package/dist/types/src/plugin/event-handler.d.ts +53 -0
  571. package/dist/types/src/plugin/event-handler.d.ts.map +1 -0
  572. package/dist/types/src/plugin/fetch/retry-state.d.ts +61 -0
  573. package/dist/types/src/plugin/fetch/retry-state.d.ts.map +1 -0
  574. package/dist/types/src/plugin/fetch/warmup.d.ts +30 -0
  575. package/dist/types/src/plugin/fetch/warmup.d.ts.map +1 -0
  576. package/dist/types/src/plugin/fetch-interceptor.d.ts +114 -0
  577. package/dist/types/src/plugin/fetch-interceptor.d.ts.map +1 -0
  578. package/dist/types/src/plugin/fetch-routing.d.ts +31 -0
  579. package/dist/types/src/plugin/fetch-routing.d.ts.map +1 -0
  580. package/dist/types/src/plugin/fingerprint.d.ts +2 -0
  581. package/dist/types/src/plugin/fingerprint.d.ts.map +1 -0
  582. package/dist/types/src/plugin/ga-location-services.d.ts +389 -0
  583. package/dist/types/src/plugin/ga-location-services.d.ts.map +1 -0
  584. package/dist/types/src/plugin/gemini-dump.d.ts +72 -0
  585. package/dist/types/src/plugin/gemini-dump.d.ts.map +1 -0
  586. package/dist/types/src/plugin/google-search-tool.d.ts +10 -0
  587. package/dist/types/src/plugin/google-search-tool.d.ts.map +1 -0
  588. package/dist/types/src/plugin/image-saver.d.ts +6 -0
  589. package/dist/types/src/plugin/image-saver.d.ts.map +1 -0
  590. package/dist/types/src/plugin/index.d.ts +30 -0
  591. package/dist/types/src/plugin/index.d.ts.map +1 -0
  592. package/dist/types/src/plugin/killswitch.d.ts +93 -0
  593. package/dist/types/src/plugin/killswitch.d.ts.map +1 -0
  594. package/dist/types/src/plugin/lifecycle.d.ts +63 -0
  595. package/dist/types/src/plugin/lifecycle.d.ts.map +1 -0
  596. package/dist/types/src/plugin/logger.d.ts +83 -0
  597. package/dist/types/src/plugin/logger.d.ts.map +1 -0
  598. package/dist/types/src/plugin/logging-utils.d.ts +57 -0
  599. package/dist/types/src/plugin/logging-utils.d.ts.map +1 -0
  600. package/dist/types/src/plugin/model-registry.d.ts +2 -0
  601. package/dist/types/src/plugin/model-registry.d.ts.map +1 -0
  602. package/dist/types/src/plugin/neutral-types.d.ts +42 -0
  603. package/dist/types/src/plugin/neutral-types.d.ts.map +1 -0
  604. package/dist/types/src/plugin/oauth-login.d.ts +22 -0
  605. package/dist/types/src/plugin/oauth-login.d.ts.map +1 -0
  606. package/dist/types/src/plugin/oauth-methods.d.ts +43 -0
  607. package/dist/types/src/plugin/oauth-methods.d.ts.map +1 -0
  608. package/dist/types/src/plugin/operator-settings.d.ts +74 -0
  609. package/dist/types/src/plugin/operator-settings.d.ts.map +1 -0
  610. package/dist/types/src/plugin/persist-account-pool.d.ts +98 -0
  611. package/dist/types/src/plugin/persist-account-pool.d.ts.map +1 -0
  612. package/dist/types/src/plugin/project.d.ts +2 -0
  613. package/dist/types/src/plugin/project.d.ts.map +1 -0
  614. package/dist/types/src/plugin/prompt-context.d.ts +18 -0
  615. package/dist/types/src/plugin/prompt-context.d.ts.map +1 -0
  616. package/dist/types/src/plugin/quota.d.ts +441 -0
  617. package/dist/types/src/plugin/quota.d.ts.map +1 -0
  618. package/dist/types/src/plugin/recovery/constants.d.ts +22 -0
  619. package/dist/types/src/plugin/recovery/constants.d.ts.map +1 -0
  620. package/dist/types/src/plugin/recovery/storage.d.ts +24 -0
  621. package/dist/types/src/plugin/recovery/storage.d.ts.map +1 -0
  622. package/dist/types/src/plugin/recovery/types.d.ts +116 -0
  623. package/dist/types/src/plugin/recovery/types.d.ts.map +1 -0
  624. package/dist/types/src/plugin/recovery.d.ts +61 -0
  625. package/dist/types/src/plugin/recovery.d.ts.map +1 -0
  626. package/dist/types/src/plugin/refresh-queue.d.ts +133 -0
  627. package/dist/types/src/plugin/refresh-queue.d.ts.map +1 -0
  628. package/dist/types/src/plugin/request-helpers.d.ts +304 -0
  629. package/dist/types/src/plugin/request-helpers.d.ts.map +1 -0
  630. package/dist/types/src/plugin/request.d.ts +161 -0
  631. package/dist/types/src/plugin/request.d.ts.map +1 -0
  632. package/dist/types/src/plugin/rotation.d.ts +2 -0
  633. package/dist/types/src/plugin/rotation.d.ts.map +1 -0
  634. package/dist/types/src/plugin/search.d.ts +25 -0
  635. package/dist/types/src/plugin/search.d.ts.map +1 -0
  636. package/dist/types/src/plugin/server.d.ts +23 -0
  637. package/dist/types/src/plugin/server.d.ts.map +1 -0
  638. package/dist/types/src/plugin/session-context.d.ts +22 -0
  639. package/dist/types/src/plugin/session-context.d.ts.map +1 -0
  640. package/dist/types/src/plugin/shared/local-grant.d.ts +26 -0
  641. package/dist/types/src/plugin/shared/local-grant.d.ts.map +1 -0
  642. package/dist/types/src/plugin/shared/request-cancellation.d.ts +12 -0
  643. package/dist/types/src/plugin/shared/request-cancellation.d.ts.map +1 -0
  644. package/dist/types/src/plugin/shared/request-services.d.ts +375 -0
  645. package/dist/types/src/plugin/shared/request-services.d.ts.map +1 -0
  646. package/dist/types/src/plugin/shared/runtime.d.ts +217 -0
  647. package/dist/types/src/plugin/shared/runtime.d.ts.map +1 -0
  648. package/dist/types/src/plugin/shared/source-sidebar.d.ts +15 -0
  649. package/dist/types/src/plugin/shared/source-sidebar.d.ts.map +1 -0
  650. package/dist/types/src/plugin/shared/vault-menu.d.ts +5 -0
  651. package/dist/types/src/plugin/shared/vault-menu.d.ts.map +1 -0
  652. package/dist/types/src/plugin/shared/vault-request-credentials.d.ts +168 -0
  653. package/dist/types/src/plugin/shared/vault-request-credentials.d.ts.map +1 -0
  654. package/dist/types/src/plugin/storage.d.ts +221 -0
  655. package/dist/types/src/plugin/storage.d.ts.map +1 -0
  656. package/dist/types/src/plugin/stores/signature-store.d.ts +5 -0
  657. package/dist/types/src/plugin/stores/signature-store.d.ts.map +1 -0
  658. package/dist/types/src/plugin/thinking-recovery.d.ts +90 -0
  659. package/dist/types/src/plugin/thinking-recovery.d.ts.map +1 -0
  660. package/dist/types/src/plugin/token.d.ts +41 -0
  661. package/dist/types/src/plugin/token.d.ts.map +1 -0
  662. package/dist/types/src/plugin/transform/cross-model-sanitizer.d.ts +2 -0
  663. package/dist/types/src/plugin/transform/cross-model-sanitizer.d.ts.map +1 -0
  664. package/dist/types/src/plugin/transform/index.d.ts +2 -0
  665. package/dist/types/src/plugin/transform/index.d.ts.map +1 -0
  666. package/dist/types/src/plugin/transform/model-resolver.d.ts +2 -0
  667. package/dist/types/src/plugin/transform/model-resolver.d.ts.map +1 -0
  668. package/dist/types/src/plugin/transform/types.d.ts +2 -0
  669. package/dist/types/src/plugin/transform/types.d.ts.map +1 -0
  670. package/dist/types/src/plugin/types.d.ts +36 -0
  671. package/dist/types/src/plugin/types.d.ts.map +1 -0
  672. package/dist/types/src/plugin/ui/ansi.d.ts +32 -0
  673. package/dist/types/src/plugin/ui/ansi.d.ts.map +1 -0
  674. package/dist/types/src/plugin/ui/auth-menu.d.ts +59 -0
  675. package/dist/types/src/plugin/ui/auth-menu.d.ts.map +1 -0
  676. package/dist/types/src/plugin/ui/confirm.d.ts +2 -0
  677. package/dist/types/src/plugin/ui/confirm.d.ts.map +1 -0
  678. package/dist/types/src/plugin/ui/quota-status.d.ts +73 -0
  679. package/dist/types/src/plugin/ui/quota-status.d.ts.map +1 -0
  680. package/dist/types/src/plugin/ui/select.d.ts +23 -0
  681. package/dist/types/src/plugin/ui/select.d.ts.map +1 -0
  682. package/dist/types/src/plugin/vault-activation.d.ts +11 -0
  683. package/dist/types/src/plugin/vault-activation.d.ts.map +1 -0
  684. package/dist/types/src/plugin/vault-custody.d.ts +131 -0
  685. package/dist/types/src/plugin/vault-custody.d.ts.map +1 -0
  686. package/dist/types/src/plugin/version.d.ts +2 -0
  687. package/dist/types/src/plugin/version.d.ts.map +1 -0
  688. package/dist/types/src/quota-presentation.d.ts +18 -0
  689. package/dist/types/src/quota-presentation.d.ts.map +1 -0
  690. package/dist/types/src/rpc/notifications.d.ts +6 -0
  691. package/dist/types/src/rpc/notifications.d.ts.map +1 -0
  692. package/dist/types/src/rpc/protocol.d.ts +53 -0
  693. package/dist/types/src/rpc/protocol.d.ts.map +1 -0
  694. package/dist/types/src/rpc/rpc-dir.d.ts +4 -0
  695. package/dist/types/src/rpc/rpc-dir.d.ts.map +1 -0
  696. package/dist/types/src/rpc/rpc-server.d.ts +24 -0
  697. package/dist/types/src/rpc/rpc-server.d.ts.map +1 -0
  698. package/dist/types/src/server.d.ts +30 -0
  699. package/dist/types/src/server.d.ts.map +1 -0
  700. package/dist/types/src/sidebar-state.d.ts +365 -0
  701. package/dist/types/src/sidebar-state.d.ts.map +1 -0
  702. package/dist/types/src/tui/host-api.d.ts +196 -0
  703. package/dist/types/src/tui/host-api.d.ts.map +1 -0
  704. package/package.json +45 -18
  705. package/server.js +6 -0
  706. package/src/common-auth-embedded/NOTICE.txt +21 -0
  707. package/src/common-auth-embedded/auth-menu/accounts.d.ts +97 -0
  708. package/src/common-auth-embedded/auth-menu/accounts.js +387 -0
  709. package/src/common-auth-embedded/auth-menu/ansi.d.ts +26 -0
  710. package/src/common-auth-embedded/auth-menu/ansi.js +98 -0
  711. package/src/common-auth-embedded/auth-menu/confirm.d.ts +7 -0
  712. package/src/common-auth-embedded/auth-menu/confirm.js +21 -0
  713. package/src/common-auth-embedded/auth-menu/doctor.d.ts +52 -0
  714. package/src/common-auth-embedded/auth-menu/doctor.js +81 -0
  715. package/src/common-auth-embedded/auth-menu/index.d.ts +17 -0
  716. package/src/common-auth-embedded/auth-menu/index.js +12 -0
  717. package/src/common-auth-embedded/auth-menu/login.d.ts +55 -0
  718. package/src/common-auth-embedded/auth-menu/login.js +83 -0
  719. package/src/common-auth-embedded/auth-menu/menu.d.ts +59 -0
  720. package/src/common-auth-embedded/auth-menu/menu.js +73 -0
  721. package/src/common-auth-embedded/auth-menu/opencode-v1.d.ts +49 -0
  722. package/src/common-auth-embedded/auth-menu/opencode-v1.js +47 -0
  723. package/src/common-auth-embedded/auth-menu/select.d.ts +21 -0
  724. package/src/common-auth-embedded/auth-menu/select.js +159 -0
  725. package/src/common-auth-embedded/auth-menu/terminal.d.ts +43 -0
  726. package/src/common-auth-embedded/auth-menu/terminal.js +19 -0
  727. package/src/common-auth-embedded/claustrum/consumer.d.ts +102 -0
  728. package/src/common-auth-embedded/claustrum/consumer.js +298 -0
  729. package/src/common-auth-embedded/claustrum/custody.d.ts +175 -0
  730. package/src/common-auth-embedded/claustrum/custody.js +354 -0
  731. package/src/common-auth-embedded/claustrum/enrollment.d.ts +158 -0
  732. package/src/common-auth-embedded/claustrum/enrollment.js +759 -0
  733. package/src/common-auth-embedded/claustrum/errors.d.ts +16 -0
  734. package/src/common-auth-embedded/claustrum/errors.js +8 -0
  735. package/src/common-auth-embedded/claustrum/host-slot.d.ts +39 -0
  736. package/src/common-auth-embedded/claustrum/host-slot.js +72 -0
  737. package/src/common-auth-embedded/claustrum/index.d.ts +18 -0
  738. package/src/common-auth-embedded/claustrum/index.js +22 -0
  739. package/src/common-auth-embedded/claustrum/interlock.d.ts +27 -0
  740. package/src/common-auth-embedded/claustrum/interlock.js +29 -0
  741. package/src/common-auth-embedded/claustrum/roster.d.ts +208 -0
  742. package/src/common-auth-embedded/claustrum/roster.js +536 -0
  743. package/src/common-auth-embedded/commands/builtins.d.ts +71 -0
  744. package/src/common-auth-embedded/commands/builtins.js +534 -0
  745. package/src/common-auth-embedded/commands/index.d.ts +10 -0
  746. package/src/common-auth-embedded/commands/index.js +5 -0
  747. package/src/common-auth-embedded/commands/menu.d.ts +61 -0
  748. package/src/common-auth-embedded/commands/menu.js +300 -0
  749. package/src/common-auth-embedded/commands/model.d.ts +238 -0
  750. package/src/common-auth-embedded/commands/model.js +16 -0
  751. package/src/common-auth-embedded/commands/pi.d.ts +23 -0
  752. package/src/common-auth-embedded/commands/pi.js +206 -0
  753. package/src/common-auth-embedded/commands/seam.d.ts +72 -0
  754. package/src/common-auth-embedded/commands/seam.js +301 -0
  755. package/src/common-auth-embedded/fs/atomic-write.d.ts +20 -0
  756. package/src/common-auth-embedded/fs/atomic-write.js +80 -0
  757. package/src/common-auth-embedded/fs/index.d.ts +7 -0
  758. package/src/common-auth-embedded/fs/index.js +6 -0
  759. package/src/common-auth-embedded/fs/lock-constants.d.ts +14 -0
  760. package/src/common-auth-embedded/fs/lock-constants.js +14 -0
  761. package/src/common-auth-embedded/fs/refresh-file-lock.d.ts +33 -0
  762. package/src/common-auth-embedded/fs/refresh-file-lock.js +501 -0
  763. package/src/common-auth-embedded/fs/with-lock.d.ts +33 -0
  764. package/src/common-auth-embedded/fs/with-lock.js +48 -0
  765. package/src/common-auth-embedded/logger/capture-sink.d.ts +14 -0
  766. package/src/common-auth-embedded/logger/capture-sink.js +13 -0
  767. package/src/common-auth-embedded/logger/engine.d.ts +100 -0
  768. package/src/common-auth-embedded/logger/engine.js +246 -0
  769. package/src/common-auth-embedded/logger/index.d.ts +6 -0
  770. package/src/common-auth-embedded/logger/index.js +3 -0
  771. package/src/common-auth-embedded/logger/redact.d.ts +11 -0
  772. package/src/common-auth-embedded/logger/redact.js +83 -0
  773. package/src/common-auth-embedded/opencode2/errors.d.ts +25 -0
  774. package/src/common-auth-embedded/opencode2/errors.js +15 -0
  775. package/src/common-auth-embedded/opencode2/index.d.ts +8 -0
  776. package/src/common-auth-embedded/opencode2/index.js +4 -0
  777. package/src/common-auth-embedded/opencode2/install.d.ts +55 -0
  778. package/src/common-auth-embedded/opencode2/install.js +886 -0
  779. package/src/common-auth-embedded/opencode2/integration.d.ts +112 -0
  780. package/src/common-auth-embedded/opencode2/integration.js +143 -0
  781. package/src/common-auth-embedded/opencode2/sse.d.ts +12 -0
  782. package/src/common-auth-embedded/opencode2/sse.js +60 -0
  783. package/src/common-auth-embedded/opencode2/types.d.ts +413 -0
  784. package/src/common-auth-embedded/pi-slot/index.d.ts +3 -0
  785. package/src/common-auth-embedded/pi-slot/index.js +2 -0
  786. package/src/common-auth-embedded/pi-slot/lock.js +212 -0
  787. package/src/common-auth-embedded/pi-slot/slot.d.ts +49 -0
  788. package/src/common-auth-embedded/pi-slot/slot.js +383 -0
  789. package/src/common-auth-embedded/quota/codec.d.ts +11 -0
  790. package/src/common-auth-embedded/quota/codec.js +12 -0
  791. package/src/common-auth-embedded/quota/format.d.ts +46 -0
  792. package/src/common-auth-embedded/quota/format.js +138 -0
  793. package/src/common-auth-embedded/quota/index.d.ts +10 -0
  794. package/src/common-auth-embedded/quota/index.js +5 -0
  795. package/src/common-auth-embedded/quota/map.d.ts +63 -0
  796. package/src/common-auth-embedded/quota/map.js +105 -0
  797. package/src/common-auth-embedded/quota/merge.d.ts +48 -0
  798. package/src/common-auth-embedded/quota/merge.js +162 -0
  799. package/src/common-auth-embedded/quota/projection.d.ts +64 -0
  800. package/src/common-auth-embedded/quota/projection.js +134 -0
  801. package/src/common-auth-embedded/routing/admission.d.ts +93 -0
  802. package/src/common-auth-embedded/routing/admission.js +142 -0
  803. package/src/common-auth-embedded/routing/index.d.ts +8 -0
  804. package/src/common-auth-embedded/routing/index.js +4 -0
  805. package/src/common-auth-embedded/routing/ordered.d.ts +47 -0
  806. package/src/common-auth-embedded/routing/ordered.js +58 -0
  807. package/src/common-auth-embedded/routing/pins.d.ts +22 -0
  808. package/src/common-auth-embedded/routing/pins.js +34 -0
  809. package/src/common-auth-embedded/routing/sticky.d.ts +158 -0
  810. package/src/common-auth-embedded/routing/sticky.js +339 -0
  811. package/src/common-auth-embedded/rpc/client.d.ts +3 -0
  812. package/src/common-auth-embedded/rpc/client.js +2 -0
  813. package/src/common-auth-embedded/rpc/index.d.ts +10 -0
  814. package/src/common-auth-embedded/rpc/index.js +5 -0
  815. package/src/common-auth-embedded/rpc/notifications.d.ts +73 -0
  816. package/src/common-auth-embedded/rpc/notifications.js +100 -0
  817. package/src/common-auth-embedded/rpc/port-file.d.ts +33 -0
  818. package/src/common-auth-embedded/rpc/port-file.js +217 -0
  819. package/src/common-auth-embedded/rpc/rpc-client.d.ts +30 -0
  820. package/src/common-auth-embedded/rpc/rpc-client.js +253 -0
  821. package/src/common-auth-embedded/rpc/rpc-server.d.ts +58 -0
  822. package/src/common-auth-embedded/rpc/rpc-server.js +311 -0
  823. package/src/common-auth-embedded/rpc/server-registry.d.ts +11 -0
  824. package/src/common-auth-embedded/rpc/server-registry.js +47 -0
  825. package/src/common-auth-embedded/source-output.json +1326 -0
  826. package/src/common-auth-embedded/store/attribution.d.ts +28 -0
  827. package/src/common-auth-embedded/store/attribution.js +60 -0
  828. package/src/common-auth-embedded/store/errors.d.ts +55 -0
  829. package/src/common-auth-embedded/store/errors.js +38 -0
  830. package/src/common-auth-embedded/store/hooks.d.ts +12 -0
  831. package/src/common-auth-embedded/store/hooks.js +34 -0
  832. package/src/common-auth-embedded/store/identity.d.ts +39 -0
  833. package/src/common-auth-embedded/store/identity.js +79 -0
  834. package/src/common-auth-embedded/store/index.d.ts +21 -0
  835. package/src/common-auth-embedded/store/index.js +7 -0
  836. package/src/common-auth-embedded/store/mutate.d.ts +189 -0
  837. package/src/common-auth-embedded/store/mutate.js +500 -0
  838. package/src/common-auth-embedded/store/pool.d.ts +196 -0
  839. package/src/common-auth-embedded/store/pool.js +120 -0
  840. package/src/common-auth-embedded/store/provider-state.d.ts +131 -0
  841. package/src/common-auth-embedded/store/provider-state.js +226 -0
  842. package/src/common-auth-embedded/store/publication.d.ts +47 -0
  843. package/src/common-auth-embedded/store/publication.js +304 -0
  844. package/src/common-auth-embedded/store/pull.d.ts +36 -0
  845. package/src/common-auth-embedded/store/pull.js +143 -0
  846. package/src/common-auth-embedded/store/refresh-lock.d.ts +63 -0
  847. package/src/common-auth-embedded/store/refresh-lock.js +136 -0
  848. package/src/common-auth-embedded/store/refresh.d.ts +72 -0
  849. package/src/common-auth-embedded/store/refresh.js +225 -0
  850. package/src/common-auth-embedded/store/reserved.js +13 -0
  851. package/src/common-auth-embedded/store/rows.d.ts +313 -0
  852. package/src/common-auth-embedded/store/rows.js +1258 -0
  853. package/src/common-auth-embedded/store/runtime.d.ts +36 -0
  854. package/src/common-auth-embedded/store/runtime.js +68 -0
  855. package/src/common-auth-embedded/store/schema.d.ts +443 -0
  856. package/src/common-auth-embedded/store/schema.js +754 -0
  857. package/src/common-auth-embedded/store/settings.d.ts +63 -0
  858. package/src/common-auth-embedded/store/settings.js +120 -0
  859. package/src/common-auth-embedded/store/torn.d.ts +78 -0
  860. package/src/common-auth-embedded/store/torn.js +294 -0
  861. package/src/common-auth-embedded/tui/index.d.ts +8 -0
  862. package/src/common-auth-embedded/tui/index.js +21 -0
  863. package/src/common-auth-embedded/util/any-signal.js +42 -0
  864. package/src/plugin/command-data.ts +3 -0
  865. package/src/rpc/port-file.ts +6 -140
  866. package/src/rpc/protocol.ts +59 -24
  867. package/src/rpc/rpc-client.ts +101 -71
  868. package/src/sidebar-state.ts +82 -24
  869. package/src/tui/command-dialogs.tsx +412 -776
  870. package/src/tui/entry.d.mts +17 -0
  871. package/src/tui/entry.mjs +34 -66
  872. package/src/tui/file-logger.ts +22 -7
  873. package/src/tui-compiled/common-auth-embedded/logger/capture-sink.js +13 -0
  874. package/src/tui-compiled/common-auth-embedded/logger/engine.js +246 -0
  875. package/src/tui-compiled/common-auth-embedded/logger/index.js +3 -0
  876. package/src/tui-compiled/common-auth-embedded/logger/redact.js +83 -0
  877. package/src/tui-compiled/common-auth-embedded/quota/codec.js +12 -0
  878. package/src/tui-compiled/common-auth-embedded/quota/format.js +138 -0
  879. package/src/tui-compiled/common-auth-embedded/quota/index.js +5 -0
  880. package/src/tui-compiled/common-auth-embedded/quota/map.js +105 -0
  881. package/src/tui-compiled/common-auth-embedded/quota/merge.js +162 -0
  882. package/src/tui-compiled/common-auth-embedded/quota/projection.js +134 -0
  883. package/src/tui-compiled/common-auth-embedded/rpc/client.js +2 -0
  884. package/src/tui-compiled/common-auth-embedded/rpc/port-file.js +217 -0
  885. package/src/tui-compiled/common-auth-embedded/rpc/rpc-client.js +253 -0
  886. package/src/tui-compiled/logging/provider-key-policy.js +3 -0
  887. package/src/tui-compiled/quota-presentation.js +42 -0
  888. package/src/tui-compiled/rpc/rpc-client.js +35 -0
  889. package/src/tui-compiled/rpc/rpc-dir.js +13 -0
  890. package/src/tui-compiled/selector.js +21 -0
  891. package/src/tui-compiled/sidebar-state.js +401 -0
  892. package/src/tui-compiled/tui/command-dialogs.js +424 -0
  893. package/src/tui-compiled/tui/file-logger.js +73 -0
  894. package/src/tui-compiled/tui/host-api.js +269 -0
  895. package/src/tui-compiled/tui/host-v1.js +228 -0
  896. package/src/tui-compiled/tui-preferences.js +230 -0
  897. package/src/tui-compiled/{tui.tsx → tui.js} +140 -231
  898. package/src/tui-ga-compiled/host-ga.js +1304 -0
  899. package/src/tui-ga-compiled/selector.js +21 -0
  900. package/src/tui-ga-compiled/shared/07365a7d2ccade4c-host-api.js +269 -0
  901. package/src/tui-ga-compiled/shared/0e19a88ff3535906-command-dialogs.js +424 -0
  902. package/src/tui-ga-compiled/shared/1ff34afa7c42d196-projection.js +134 -0
  903. package/src/tui-ga-compiled/shared/77138df80c7ae006-map.js +105 -0
  904. package/src/tui-ga-compiled/shared/8ae1927e5910ea81-sidebar-projection.js +112 -0
  905. package/src/tui-ga-compiled/shared/98cc0c186c46c42d-quota-presentation.js +42 -0
  906. package/src/tui-ga-compiled/shared/aef2402f8fc342f0-format.js +138 -0
  907. package/src/tui-ga-compiled/shared/bf17cbee28e58197-index.js +5 -0
  908. package/src/tui-ga-compiled/shared/ca21dc417b36dc5d-codec.js +12 -0
  909. package/src/tui-ga-compiled/shared/ecc214300932dfb6-merge.js +162 -0
  910. package/src/tui-ga-raw/host-ga.tsx +1740 -0
  911. package/src/tui-ga-raw/selector.js +21 -0
  912. package/src/tui-ga-raw/shared/07365a7d2ccade4c-host-api.js +269 -0
  913. package/src/tui-ga-raw/shared/0e19a88ff3535906-command-dialogs.tsx +468 -0
  914. package/src/tui-ga-raw/shared/1ff34afa7c42d196-projection.js +134 -0
  915. package/src/tui-ga-raw/shared/77138df80c7ae006-map.js +105 -0
  916. package/src/tui-ga-raw/shared/8ae1927e5910ea81-sidebar-projection.js +112 -0
  917. package/src/tui-ga-raw/shared/98cc0c186c46c42d-quota-presentation.js +42 -0
  918. package/src/tui-ga-raw/shared/aef2402f8fc342f0-format.js +138 -0
  919. package/src/tui-ga-raw/shared/bf17cbee28e58197-index.js +5 -0
  920. package/src/tui-ga-raw/shared/ca21dc417b36dc5d-codec.js +12 -0
  921. package/src/tui-ga-raw/shared/ecc214300932dfb6-merge.js +162 -0
  922. package/src/tui-raw/common-auth-embedded/logger/capture-sink.js +13 -0
  923. package/src/tui-raw/common-auth-embedded/logger/engine.js +246 -0
  924. package/src/tui-raw/common-auth-embedded/logger/index.js +3 -0
  925. package/src/tui-raw/common-auth-embedded/logger/redact.js +83 -0
  926. package/src/tui-raw/common-auth-embedded/quota/codec.js +12 -0
  927. package/src/tui-raw/common-auth-embedded/quota/format.js +138 -0
  928. package/src/tui-raw/common-auth-embedded/quota/index.js +5 -0
  929. package/src/tui-raw/common-auth-embedded/quota/map.js +105 -0
  930. package/src/tui-raw/common-auth-embedded/quota/merge.js +162 -0
  931. package/src/tui-raw/common-auth-embedded/quota/projection.js +134 -0
  932. package/src/tui-raw/common-auth-embedded/rpc/client.js +2 -0
  933. package/src/tui-raw/common-auth-embedded/rpc/port-file.js +217 -0
  934. package/src/tui-raw/common-auth-embedded/rpc/rpc-client.js +253 -0
  935. package/src/tui-raw/logging/provider-key-policy.js +3 -0
  936. package/src/tui-raw/quota-presentation.js +42 -0
  937. package/src/tui-raw/rpc/rpc-client.js +35 -0
  938. package/src/tui-raw/rpc/rpc-dir.js +13 -0
  939. package/src/tui-raw/selector.js +21 -0
  940. package/src/tui-raw/sidebar-state.js +401 -0
  941. package/src/tui-raw/tui/command-dialogs.tsx +468 -0
  942. package/src/tui-raw/tui/file-logger.js +73 -0
  943. package/src/tui-raw/tui/host-api.js +269 -0
  944. package/src/tui-raw/tui/host-v1.tsx +249 -0
  945. package/src/tui-raw/tui-preferences.js +230 -0
  946. package/src/tui-raw/tui.tsx +1088 -0
  947. package/src/tui.tsx +58 -141
  948. package/tui.js +6 -0
  949. package/src/tui-compiled/plugin/command-data.ts +0 -931
  950. package/src/tui-compiled/rpc/port-file.ts +0 -143
  951. package/src/tui-compiled/rpc/protocol.ts +0 -31
  952. package/src/tui-compiled/rpc/rpc-client.ts +0 -102
  953. package/src/tui-compiled/rpc/rpc-dir.ts +0 -24
  954. package/src/tui-compiled/sidebar-state.ts +0 -991
  955. package/src/tui-compiled/tui/command-dialogs.tsx +0 -779
  956. package/src/tui-compiled/tui/file-logger.ts +0 -145
  957. package/src/tui-compiled/tui-preferences.ts +0 -416
@@ -1,47 +1,21 @@
1
1
  /**
2
- * Slash-command wiring for the antigravity plugin.
2
+ * The single `/antigravity` slash command of OpenCode 1.
3
3
  *
4
- * Three places must agree on the set of modal commands — keeping
5
- * them in lockstep is a hard invariant:
6
- *
7
- * 1. `MODAL_COMMANDS` — the canonical list of `CommandModalName`s.
8
- * 2. `registerAntigravityCommands` (in `./catalog.ts`) — what we
9
- * register in the host `config.command.*` map so OpenCode
10
- * recognises them.
11
- * 3. `buildDialogPayload` (here) — the per-command dialog payload
12
- * builder the TUI renders when a notification arrives.
13
- *
14
- * If any one drifts, a future slash command will be discoverable in
15
- * the host palette but invisible to the dialog flow (or vice versa).
16
- * The bidirectional three-wiring test pins this invariant.
17
- *
18
- * `/gemini-dump` remains a backward-compatibility alias: the host
19
- * already registers the command under that name in `OpenCode` and
20
- * long-running sessions may still call it. The modal name
21
- * `antigravity-dump` is the canonical name; both stay registered.
4
+ * The command opens the shared Antigravity menu built by the core
5
+ * `createAntigravityCommandMenu` over the location's account store: the
6
+ * server pushes the menu payload to the TUI over the private RPC queue, and
7
+ * the TUI sends each chosen action back to the RPC server, which hands it to
8
+ * the same menu's `apply`. The menu (common-auth's public `./commands`
9
+ * entry) owns confirmation, redaction, per-invocation isolation and action
10
+ * dispatch; this module supplies the OpenCode-specific sections (settings,
11
+ * diagnostics, sign-in) and the host hook.
22
12
  */
13
+ import { ANTIGRAVITY_MENU_COMMAND, antigravitySettingsSections, createAntigravityCommandMenu, loadCommonAuthCommands, } from '@cortexkit/antigravity-auth-core';
23
14
  import { isTuiConnected as defaultIsTuiConnected } from '../rpc/notifications';
24
- import { buildSidebarMachineStateFromAccounts, setSidebarMachineState, } from '../sidebar-state';
25
- import { executeGeminiDumpCommand, GEMINI_DUMP_COMMAND_NAME, parseGeminiDumpCommandAction, setGeminiDumpEnabled, } from './gemini-dump';
26
- import { createLogger } from './logger';
27
- import { createOperatorSettingsController, } from './operator-settings';
15
+ import { diagnosticsMenuSection, operatorMenuSettings } from './command-apply';
28
16
  import { resolvePromptContext } from './prompt-context';
29
- import { AccountStorageUnreadableError } from './storage';
30
- const log = createLogger('commands');
31
- export const ANTIGRAVITY_QUOTA_COMMAND_NAME = 'antigravity-quota';
32
- export const ANTIGRAVITY_ACCOUNT_COMMAND_NAME = 'antigravity-account';
33
- export const ANTIGRAVITY_ROUTING_COMMAND_NAME = 'antigravity-routing';
34
- export const ANTIGRAVITY_KILLSWITCH_COMMAND_NAME = 'antigravity-killswitch';
35
- export const ANTIGRAVITY_DUMP_COMMAND_NAME = 'antigravity-dump';
36
- export const ANTIGRAVITY_LOGGING_COMMAND_NAME = 'antigravity-logging';
37
- export const MODAL_COMMANDS = [
38
- ANTIGRAVITY_QUOTA_COMMAND_NAME,
39
- ANTIGRAVITY_ACCOUNT_COMMAND_NAME,
40
- ANTIGRAVITY_ROUTING_COMMAND_NAME,
41
- ANTIGRAVITY_KILLSWITCH_COMMAND_NAME,
42
- ANTIGRAVITY_DUMP_COMMAND_NAME,
43
- ANTIGRAVITY_LOGGING_COMMAND_NAME,
44
- ];
17
+ /** The one slash command this plugin registers. */
18
+ export { ANTIGRAVITY_MENU_COMMAND };
45
19
  const HANDLED_COMMAND_SENTINEL = 'ANTIGRAVITY_COMMAND_HANDLED';
46
20
  async function sendIgnoredMessage(client, sessionID, text) {
47
21
  const session = client.session;
@@ -70,677 +44,231 @@ function throwHandledCommandSentinel() {
70
44
  throw new Error(HANDLED_COMMAND_SENTINEL);
71
45
  }
72
46
  /**
73
- * Build the dialog payload the TUI renders for `command`.
74
- *
75
- * Each branch produces a self-contained payload the OpenTUI dialog tree
76
- * can mount without further RPC chatter. The knobs object is the
77
- * payload-specific metadata (current toggle state, available actions,
78
- * default values) — knobs are intentionally stringly-typed to keep the
79
- * dialog code free of per-command schema definitions.
47
+ * The menu invocation for one session: the menu's notifications become
48
+ * toast notifications for that session. common-auth copies these fields
49
+ * when a call starts, so later work reports to the session that began it.
80
50
  */
81
- export async function buildDialogPayload(command, argumentsText, context) {
82
- switch (command) {
83
- case 'antigravity-quota': {
84
- const action = argumentsText.trim().toLowerCase();
85
- const accounts = context.commandData
86
- ? await context.commandData.listAccounts()
87
- : [];
88
- // Render the cached snapshot immediately. Opening the dialog is a
89
- // VIEW — it must respect the quota manager's per-account backoff so
90
- // a rate-limited account isn't hammered every time the dialog opens.
91
- // Explicit user-triggered refreshes (inside the dialog) keep force:true.
92
- if (context.commandData) {
93
- void context.commandData.refreshQuotaRespectingBackoff().catch(() => { });
94
- }
95
- return {
96
- command,
97
- text: 'Antigravity quota',
98
- knobs: {
99
- mode: action === 'refresh' ? 'refresh' : 'status',
100
- accounts,
101
- },
102
- };
103
- }
104
- case 'antigravity-account': {
105
- const action = argumentsText.trim().toLowerCase();
106
- const accounts = context.commandData
107
- ? await context.commandData.listAccounts()
108
- : [];
109
- return {
110
- command,
111
- text: 'Antigravity accounts',
112
- knobs: {
113
- action: action === 'add' ||
114
- action === 'refresh' ||
115
- action === 'remove' ||
116
- action === 'list'
117
- ? action
118
- : 'list',
119
- accounts,
120
- },
121
- };
122
- }
123
- case 'antigravity-routing': {
124
- const settings = context.settings.get();
125
- const parsed = parseToggleArguments(argumentsText);
126
- // State-first: the opening payload reports the CURRENT persisted
127
- // values (no `!` inversion). Argument overrides still flow through
128
- // so the slash-command-direct path can pre-stage a value, but the
129
- // fallback when no argument is provided is the actual current
130
- // state, not its negation. The apply handler returns the complete
131
- // post-mutation state in `knobs` so the dialog re-renders from
132
- // the same shape it was opened with.
133
- return {
134
- command,
135
- text: 'Antigravity routing',
136
- knobs: {
137
- cli_first: parsed.cli_first ?? settings.routing.cli_first,
138
- quota_style_fallback: parsed.quota_style_fallback ??
139
- settings.routing.quota_style_fallback,
140
- timeoutMs: 2_000,
141
- },
142
- };
143
- }
144
- case 'antigravity-killswitch': {
145
- const settings = context.settings.get();
146
- const parsed = parseKillswitchArguments(argumentsText);
147
- // State-first: opening reports the current killswitch shape
148
- // (`enabled`, `minimum_remaining_percent`, plus the full
149
- // per-account override map if any keys exist). Argument overrides
150
- // are honored so the slash-command-direct path stays explicit.
151
- return {
152
- command,
153
- text: 'Antigravity killswitch',
154
- knobs: {
155
- enabled: parsed.enabled ?? settings.killswitch.enabled,
156
- minimum_remaining_percent: parsed.minimum_remaining_percent ??
157
- settings.killswitch.minimum_remaining_percent,
158
- accounts: settings.killswitch.accounts ?? {},
159
- timeoutMs: 2_000,
160
- },
161
- };
162
- }
163
- case 'antigravity-dump': {
164
- const action = parseGeminiDumpCommandAction(argumentsText);
165
- return {
166
- command,
167
- text: 'Antigravity wire dump',
168
- knobs: {
169
- mode: action.type === 'usage' ? 'status' : action.type,
170
- },
171
- };
172
- }
173
- case 'antigravity-logging': {
174
- const level = parseLoggingLevel(argumentsText);
175
- return {
176
- command,
177
- text: 'Antigravity logging',
178
- knobs: { log_level: level },
179
- };
180
- }
181
- default: {
182
- const exhaustiveCheck = command;
183
- throw new Error(`Unknown command ${exhaustiveCheck}`);
184
- }
185
- }
51
+ export function menuInvocation(push, sessionId) {
52
+ return {
53
+ ...(sessionId !== undefined ? { sessionId } : {}),
54
+ notify(message, kind) {
55
+ push({
56
+ command: ANTIGRAVITY_MENU_COMMAND,
57
+ notify: { message, kind: kind ?? 'info' },
58
+ }, sessionId);
59
+ },
60
+ };
186
61
  }
187
- function parseToggleArguments(input) {
188
- const result = {};
189
- for (const part of input.split(/\s+/).filter(Boolean)) {
190
- const eq = part.indexOf('=');
191
- if (eq < 0)
192
- continue;
193
- const key = part.slice(0, eq).trim().toLowerCase();
194
- const value = part
195
- .slice(eq + 1)
196
- .trim()
197
- .toLowerCase();
198
- if (key === 'cli_first' || key === 'cli-first') {
199
- result.cli_first = value === 'true' || value === '1' || value === 'on';
200
- }
201
- else if (key === 'quota_style_fallback' ||
202
- key === 'quota-style-fallback') {
203
- result.quota_style_fallback =
204
- value === 'true' || value === '1' || value === 'on';
62
+ /**
63
+ * The host's `command.execute.before` for `/antigravity`: open the menu,
64
+ * queue its payload for the TUI, and stop the host from sending the command
65
+ * text as a prompt. Without a TUI listening, the outcome is written into the
66
+ * session as an ignored message instead. Every other command is left alone.
67
+ */
68
+ export function createAntigravityCommandExecuteBefore(options) {
69
+ const connection = options.connection ?? {
70
+ isTuiConnected: defaultIsTuiConnected,
71
+ };
72
+ return async (input) => {
73
+ if (input.command !== ANTIGRAVITY_MENU_COMMAND)
74
+ return;
75
+ const opening = await options.open(input.sessionID);
76
+ if (opening.kind === 'menu') {
77
+ options.push(opening.payload, input.sessionID);
205
78
  }
206
- }
207
- return result;
208
- }
209
- function parseKillswitchArguments(input) {
210
- const result = {};
211
- for (const part of input.split(/\s+/).filter(Boolean)) {
212
- const eq = part.indexOf('=');
213
- if (eq < 0)
214
- continue;
215
- const key = part.slice(0, eq).trim().toLowerCase();
216
- const value = part
217
- .slice(eq + 1)
218
- .trim()
219
- .toLowerCase();
220
- if (key === 'enabled') {
221
- result.enabled = value === 'true' || value === '1' || value === 'on';
79
+ else {
80
+ options.push({
81
+ command: ANTIGRAVITY_MENU_COMMAND,
82
+ notify: { message: opening.message, kind: 'warning' },
83
+ }, input.sessionID);
222
84
  }
223
- else if (key === 'minimum_remaining_percent' ||
224
- key === 'minimum-remaining-percent') {
225
- const n = Number.parseFloat(value);
226
- if (!Number.isNaN(n) && n >= 0 && n <= 100) {
227
- result.minimum_remaining_percent = n;
228
- }
85
+ if (!connection.isTuiConnected(input.sessionID)) {
86
+ await sendIgnoredMessage(options.client, input.sessionID, opening.kind === 'menu'
87
+ ? 'The Antigravity menu opens in the OpenCode terminal interface.'
88
+ : opening.message);
229
89
  }
230
- }
231
- return result;
232
- }
233
- function parseLoggingLevel(input) {
234
- const trimmed = input.trim().toLowerCase();
235
- if (trimmed === 'error' ||
236
- trimmed === 'warn' ||
237
- trimmed === 'info' ||
238
- trimmed === 'debug' ||
239
- trimmed === 'trace') {
240
- return trimmed;
241
- }
242
- return 'info';
243
- }
244
- /**
245
- * Parse the slash-command apply argument for `/antigravity-account`.
246
- *
247
- * Recognized forms:
248
- * `<empty>` → `{ kind: 'refresh' }` (keeps the original
249
- * "manage → refresh" placeholder semantics)
250
- * `add` → `{ kind: 'add' }`
251
- * `refresh` → `{ kind: 'refresh' }`
252
- * `current <n>` → `{ kind: 'current', index: n }`
253
- * `toggle <n>` → `{ kind: 'toggle', index: n }`
254
- * `remove <n>` → `{ kind: 'remove', index: n }`
255
- *
256
- * `n` is the transient `acct-<index>` position the dialog renders.
257
- * Negative or non-integer values are rejected; out-of-range indices
258
- * are accepted here and rejected by the data service so the dialog
259
- * can surface the error text.
260
- */
261
- function parseAccountAction(input) {
262
- const trimmed = input.trim();
263
- if (!trimmed)
264
- return { kind: 'refresh' };
265
- const parts = trimmed.split(/\s+/).filter(Boolean);
266
- const head = parts[0]?.toLowerCase();
267
- if (head === 'add')
268
- return { kind: 'add' };
269
- if (head === 'add-oauth-start' && parts.length === 1) {
270
- return { kind: 'add-oauth-start' };
271
- }
272
- if (head === 'add-oauth-finish') {
273
- const code = parts[1];
274
- if (!code)
275
- return undefined;
276
- const labelAt = parts.indexOf('--label');
277
- const label = labelAt === -1
278
- ? undefined
279
- : parts
280
- .slice(labelAt + 1)
281
- .join(' ')
282
- .trim();
283
- return { kind: 'add-oauth-finish', code, label: label || undefined };
284
- }
285
- if (head === 'refresh')
286
- return { kind: 'refresh' };
287
- if (head === 'current' || head === 'toggle' || head === 'remove') {
288
- const raw = parts[1];
289
- if (raw === undefined)
290
- return undefined;
291
- const index = Number.parseInt(raw, 10);
292
- if (!Number.isInteger(index) || index < 0)
293
- return undefined;
294
- return { kind: head, index };
295
- }
296
- return undefined;
90
+ throwHandledCommandSentinel();
91
+ };
297
92
  }
298
93
  /**
299
- * Apply the result of a TUI dialog back to the plugin runtime.
300
- *
301
- * Most commands mutate persistent operator settings (routing toggles,
302
- * killswitch thresholds, log level). Account add/refresh kicks off the
303
- * OAuth flow which can take up to two minutes on a fresh login — that
304
- * path opts into a 120s RPC timeout. Status / toggle paths keep the
305
- * default 2s timeout.
306
- *
307
- * The TUI's imperative dispatcher (`tui/command-dialogs.openCommandDialog`)
308
- * forwards the apply `options.timeoutMs` knob into the RPC apply call
309
- * so a long-running path (account add / refresh) can opt in without the
310
- * dialog layer having to special-case it.
94
+ * The Sign in section: the OpenCode 1 OAuth add flow. Starting returns the
95
+ * authorization URL for this session; finishing takes the redirect URL (or
96
+ * its code) the browser ends on, and the account service admits the login
97
+ * into the account store.
311
98
  */
312
- export async function applyCommand(request, context) {
313
- const result = await applyCommandInner(request, context);
314
- // Push a sidebar refresh after every mutation so the TUI's next poll
315
- // sees a fresh `checkedAt`. The refresher is optional; tests and
316
- // read-only contexts leave it undefined and skip the write entirely.
317
- if (context.onApplied) {
318
- const accounts = result.knobs.accounts;
319
- await Promise.resolve(context.onApplied(Array.isArray(accounts) ? accounts : undefined)).catch(() => {
320
- // Sidebar refresh must never break the command's apply response.
321
- });
322
- }
323
- return result;
324
- }
325
- async function runAccountMutation(context, call) {
326
- if (!context.commandData) {
327
- return {
328
- kind: 'error',
329
- text: 'Command data service is not wired; account mutations are disabled.',
330
- };
331
- }
332
- try {
333
- const rows = await call();
334
- if (rows == null)
335
- return { kind: 'not-found' };
336
- return { kind: 'rows', rows };
337
- }
338
- catch (error) {
339
- if (error instanceof AccountStorageUnreadableError) {
340
- log.warn('account mutation: locked storage is unreadable', {
341
- error: error.message,
342
- });
343
- return {
344
- kind: 'error',
345
- text: `Account storage is unreadable: ${error.details.reason}. The mutation was not applied.`,
346
- };
347
- }
348
- const message = error instanceof Error ? error.message : String(error);
349
- log.warn('account mutation failed', { error: message });
350
- return {
351
- kind: 'error',
352
- text: `Account mutation failed: ${message}`,
353
- };
354
- }
355
- }
356
- function notFoundResult(verb, index) {
357
- return {
358
- text: `Cannot ${verb}: account ${index} not found`,
359
- knobs: { action: verb, timeoutMs: 2_000 },
360
- };
361
- }
362
- function errorResult(verb, text) {
99
+ export function signInMenuSection(oauth) {
363
100
  return {
364
- text,
365
- knobs: { action: verb, timeoutMs: 2_000, error: true },
366
- };
367
- }
368
- async function applyCommandInner(request, context) {
369
- switch (request.command) {
370
- case 'antigravity-quota': {
371
- // `refresh` is the only quota apply path; opening is cache-only
372
- // via `listAccounts`. The data service forces the refresh and
373
- // returns the freshly persisted rows so the dialog can re-render
374
- // in place without a second RPC round-trip.
375
- const accounts = context.commandData
376
- ? await context.commandData.refreshQuota()
377
- : [];
101
+ id: 'sign-in',
102
+ title: 'Sign in',
103
+ build() {
378
104
  return {
379
- text: 'Quota refreshed',
380
- knobs: { accounts, timeoutMs: 2_000 },
381
- };
382
- }
383
- case 'antigravity-account': {
384
- const args = request.arguments.trim();
385
- const parsed = parseAccountAction(args);
386
- if (!parsed) {
387
- return {
388
- text: `Unknown account action: ${args}`,
389
- knobs: { action: 'unknown', timeoutMs: 2_000 },
390
- };
391
- }
392
- if (parsed.kind === 'add-oauth-start') {
393
- if (!context.accountOAuth) {
394
- return {
395
- text: 'OAuth account add is unavailable.',
396
- knobs: { timeoutMs: 120_000, error: true },
397
- };
398
- }
399
- const result = await context.accountOAuth.start(context.sessionID);
400
- return {
401
- text: `Open this URL in your browser:\n${result.url}`,
402
- knobs: {
403
- oauthUrl: result.url,
404
- accounts: result.accounts,
405
- timeoutMs: 120_000,
406
- },
407
- };
408
- }
409
- if (parsed.kind === 'add-oauth-finish') {
410
- if (!context.accountOAuth) {
411
- return {
412
- text: 'OAuth account add is unavailable.',
413
- knobs: { timeoutMs: 120_000, error: true },
414
- };
415
- }
416
- const result = parsed.label
417
- ? await context.accountOAuth.finish(context.sessionID, parsed.code, parsed.label)
418
- : await context.accountOAuth.finish(context.sessionID, parsed.code);
419
- return {
420
- text: result.text,
421
- knobs: { accounts: result.accounts, timeoutMs: 120_000 },
422
- };
423
- }
424
- // The data service drives the locked-storage mutator for the
425
- // three CRUD mutations. The locked-storage write is awaited FIRST so a
426
- // failed disk write never leaves the runtime ahead of disk. When
427
- // that await throws — AccountStorageUnreadableError, lock
428
- // contention, I/O — we catch here and surface the message as the
429
- // apply's `text`. The dialog toasts that text and stays mounted
430
- // (the `clear()` is gated on `apply returning rows`).
431
- if (parsed.kind === 'current') {
432
- const result = await runAccountMutation(context, () => context.commandData?.setCurrentAccount(parsed.index));
433
- if (result.kind === 'not-found') {
434
- return notFoundResult('set current', parsed.index);
435
- }
436
- if (result.kind === 'error') {
437
- return errorResult('current', result.text);
438
- }
439
- return {
440
- text: 'Current account updated',
441
- knobs: {
442
- accounts: result.rows,
443
- action: 'current',
444
- timeoutMs: 2_000,
445
- },
446
- };
447
- }
448
- if (parsed.kind === 'toggle') {
449
- const result = await runAccountMutation(context, () => context.commandData?.toggleAccountEnabled(parsed.index));
450
- if (result.kind === 'not-found') {
451
- return notFoundResult('toggle', parsed.index);
452
- }
453
- if (result.kind === 'error') {
454
- return errorResult('toggle', result.text);
455
- }
456
- return {
457
- text: 'Account enabled state updated',
458
- knobs: {
459
- accounts: result.rows,
460
- action: 'toggle',
461
- timeoutMs: 2_000,
105
+ lines: [
106
+ 'Start a sign-in, open the link, then paste the address the browser ends on.',
107
+ ],
108
+ actions: [
109
+ {
110
+ id: 'start',
111
+ label: 'Start sign-in',
112
+ run: async ({ invocation }) => {
113
+ const sessionId = invocation.sessionId;
114
+ if (sessionId === undefined)
115
+ return {
116
+ ok: false,
117
+ text: 'Sign-in needs a session; run /antigravity from one.',
118
+ code: 'refused',
119
+ };
120
+ const started = await oauth.start(sessionId);
121
+ return `Open this link to sign in, then choose Finish sign-in:\n${started.url}`;
122
+ },
462
123
  },
463
- };
464
- }
465
- if (parsed.kind === 'remove') {
466
- const result = await runAccountMutation(context, () => context.commandData?.removeAccount(parsed.index));
467
- if (result.kind === 'not-found') {
468
- return notFoundResult('remove', parsed.index);
469
- }
470
- if (result.kind === 'error') {
471
- return errorResult('remove', result.text);
472
- }
473
- return {
474
- text: 'Account removed',
475
- knobs: {
476
- accounts: result.rows,
477
- action: 'remove',
478
- timeoutMs: 2_000,
124
+ {
125
+ id: 'finish',
126
+ label: 'Finish sign-in',
127
+ knobs: [
128
+ {
129
+ kind: 'text',
130
+ id: 'callback',
131
+ label: 'Address or code from the browser',
132
+ masked: true,
133
+ required: true,
134
+ },
135
+ { kind: 'text', id: 'label', label: 'Label (optional)' },
136
+ ],
137
+ run: async ({ values, invocation }) => {
138
+ const sessionId = invocation.sessionId;
139
+ const callback = values.callback;
140
+ if (sessionId === undefined || typeof callback !== 'string')
141
+ return {
142
+ ok: false,
143
+ text: 'Paste the address the browser ended on.',
144
+ code: 'invalid-input',
145
+ };
146
+ const label = typeof values.label === 'string' && values.label.trim() !== ''
147
+ ? values.label.trim()
148
+ : undefined;
149
+ const finished = label === undefined
150
+ ? await oauth.finish(sessionId, callback)
151
+ : await oauth.finish(sessionId, callback, label);
152
+ return finished.text;
153
+ },
479
154
  },
480
- };
481
- }
482
- // `add` (and `refresh`) — backwards-compatible no-op response
483
- // that keeps the 120s RPC timeout for the future OAuth path.
484
- return {
485
- text: `Account ${parsed.kind} requested`,
486
- knobs: { action: parsed.kind, timeoutMs: 120_000 },
487
- };
488
- }
489
- case 'antigravity-routing': {
490
- const parsed = parseToggleArguments(request.arguments);
491
- try {
492
- await context.settings.update((draft) => {
493
- if (parsed.cli_first !== undefined) {
494
- draft.routing.cli_first = parsed.cli_first;
495
- }
496
- if (parsed.quota_style_fallback !== undefined) {
497
- draft.routing.quota_style_fallback = parsed.quota_style_fallback;
498
- }
499
- });
500
- }
501
- catch (error) {
502
- // Lock contention / unreadable config — surface the writer's
503
- // message so the dialog can toast the real cause and stay
504
- // mounted (T8/T10 pattern). The runtime view is left untouched
505
- // because the writer either landed or threw.
506
- const message = error instanceof Error ? error.message : String(error);
507
- log.warn('routing update failed', { error: message });
508
- return {
509
- text: `Routing update failed: ${message}`,
510
- knobs: { timeoutMs: 2_000, error: true },
511
- };
512
- }
513
- // Complete persisted state — the dialog re-renders from the same
514
- // shape `buildDialogPayload` produced on open.
515
- const after = context.settings.get();
516
- return {
517
- text: 'Routing updated',
518
- knobs: {
519
- cli_first: after.routing.cli_first,
520
- quota_style_fallback: after.routing.quota_style_fallback,
521
- timeoutMs: 2_000,
522
- },
523
- };
524
- }
525
- case 'antigravity-killswitch': {
526
- const parsed = parseKillswitchArguments(request.arguments);
527
- try {
528
- await context.settings.update((draft) => {
529
- if (parsed.enabled !== undefined) {
530
- draft.killswitch.enabled = parsed.enabled;
531
- }
532
- if (parsed.minimum_remaining_percent !== undefined) {
533
- draft.killswitch.minimum_remaining_percent =
534
- parsed.minimum_remaining_percent;
535
- }
536
- });
537
- }
538
- catch (error) {
539
- const message = error instanceof Error ? error.message : String(error);
540
- log.warn('killswitch update failed', { error: message });
541
- return {
542
- text: `Killswitch update failed: ${message}`,
543
- knobs: { timeoutMs: 2_000, error: true },
544
- };
545
- }
546
- // Complete persisted state — the dialog re-renders the full
547
- // killswitch shape (enabled, threshold, per-account overrides).
548
- const after = context.settings.get();
549
- return {
550
- text: 'Killswitch updated',
551
- knobs: {
552
- enabled: after.killswitch.enabled,
553
- minimum_remaining_percent: after.killswitch.minimum_remaining_percent,
554
- accounts: after.killswitch.accounts ?? {},
555
- timeoutMs: 2_000,
556
- },
155
+ ],
557
156
  };
558
- }
559
- case 'antigravity-dump': {
560
- const action = parseGeminiDumpCommandAction(request.arguments);
561
- if (action.type === 'enable')
562
- setGeminiDumpEnabled(true);
563
- else if (action.type === 'disable')
564
- setGeminiDumpEnabled(false);
565
- return {
566
- text: executeGeminiDumpCommand({
567
- argumentsText: request.arguments,
568
- }),
569
- knobs: { timeoutMs: 2_000 },
570
- };
571
- }
572
- case 'antigravity-logging': {
573
- const level = parseLoggingLevel(request.arguments);
574
- await context.settings.update((draft) => {
575
- draft.log_level = level;
576
- });
577
- return {
578
- text: `Logging level set to ${level}`,
579
- knobs: { log_level: level, timeoutMs: 2_000 },
580
- };
581
- }
582
- default: {
583
- const exhaustiveCheck = request.command;
584
- throw new Error(`Unknown command ${exhaustiveCheck}`);
585
- }
586
- }
157
+ },
158
+ };
587
159
  }
588
160
  /**
589
- * Build a sidebar refresher bound to the supplied account-snapshot provider.
590
- * The plugin entry passes `lifecycle.getAccountManager()`'s snapshot getter so
591
- * every `/antigravity-*` apply that mutates persistent state also bumps the
592
- * sidebar's `checkedAt`. The refresher is best-effort: a lock-contention
593
- * error or missing manager is swallowed by the caller.
161
+ * The OpenCode 1 `/antigravity` menu over the account store, built with
162
+ * the shared core factory in repository mode. The host registers it as
163
+ * its one slash command and carries its payloads over its own RPC.
594
164
  */
595
- export function createSidebarRefresher(getAccounts) {
596
- return async (dialogAccounts) => {
597
- // Live cooldown lookup keyed by numeric index — a best-effort
598
- // fallback for rows projected before coolingDownUntil was
599
- // added to CommandAccountRow. Rows now carry their own
600
- // cooldown from projection time; the live map only fills in
601
- // when the row value is absent.
602
- const liveByIndex = new Map();
603
- try {
604
- const live = getAccounts();
605
- if (live) {
606
- for (const entry of live)
607
- liveByIndex.set(entry.index, entry.coolingDownUntil);
608
- }
609
- }
610
- catch {
611
- // The live provider is best-effort; fall through with an empty
612
- // map if the manager is gone.
613
- }
614
- const accounts = dialogAccounts
615
- ? dialogAccounts.map((entry) => {
616
- // Prefer the row's own cooldown — it was projected from the
617
- // live view at the last projection and is stable regardless
618
- // of concurrent reloads. Fall back to the live-by-index map
619
- // only for legacy rows that lack the field entirely (?? can't
620
- // distinguish absent from present-but-undefined).
621
- const liveCooldown = 'coolingDownUntil' in entry
622
- ? entry.coolingDownUntil
623
- : liveByIndex.get(entry.index);
624
- return {
625
- index: entry.index,
626
- label: entry.label,
627
- enabled: entry.enabled,
628
- current: entry.current,
629
- coolingDownUntil: liveCooldown,
630
- healthScore: entry.healthScore,
631
- tier: entry.tier,
632
- // Rebuild cachedQuota carrying the windows array so the sidebar
633
- // doesn't collapse from per-window rows to a single aggregate bar
634
- // after every apply. Mirrors the QuotaGroupSummary shape expected
635
- // by projectQuotaPoolForSidebar inside buildSidebarMachineStateFromAccounts.
636
- cachedQuota: Object.fromEntries(entry.quota.flatMap((group) => {
637
- if (group.remainingPercent == null)
638
- return [];
639
- return [
640
- [
641
- group.key,
642
- {
643
- remainingFraction: group.remainingPercent / 100,
644
- ...(group.resetAt === undefined
645
- ? {}
646
- : { resetTime: new Date(group.resetAt).toISOString() }),
647
- ...(group.windows && group.windows.length > 0
648
- ? {
649
- windows: group.windows.map((w) => ({
650
- window: w.window,
651
- remainingFraction: w.remainingPercent / 100,
652
- resetTime: typeof w.resetAt === 'number' &&
653
- Number.isFinite(w.resetAt)
654
- ? new Date(w.resetAt).toISOString()
655
- : '',
656
- })),
657
- }
658
- : {}),
659
- },
660
- ],
661
- ];
662
- })),
663
- };
664
- })
665
- : getAccounts();
666
- if (!accounts || accounts.length === 0)
667
- return;
668
- try {
669
- // Pass the already-projected accounts directly so every field the
670
- // intermediate map built (healthScore, cachedQuota with windows, ...)
671
- // reaches the redactor unchanged. A second .map here would silently
672
- // drop any field not explicitly forwarded -- that is the class of
673
- // defect this cast prevents.
674
- await setSidebarMachineState(buildSidebarMachineStateFromAccounts(accounts));
675
- }
676
- catch {
677
- // Sidebar refresh is best-effort; the next command or quota refresh
678
- // will publish the current account snapshot.
679
- }
680
- };
165
+ export async function createOpenCodeAntigravityMenu(options) {
166
+ return createAntigravityCommandMenu({
167
+ source: 'repository',
168
+ commands: options.commands ?? (await loadCommonAuthCommands()),
169
+ accounts: options.accounts,
170
+ settings: operatorMenuSettings(options.settings),
171
+ diagnostics: diagnosticsMenuSection(options),
172
+ ...(options.refreshQuota ? { refreshQuota: options.refreshQuota } : {}),
173
+ ...(options.accountLimits ? { accountLimits: options.accountLimits } : {}),
174
+ ...(options.login ? { login: options.login } : {}),
175
+ extras: [
176
+ ...(options.signIn ? [signInMenuSection(options.signIn)] : []),
177
+ ...(options.vault ? [options.vault] : []),
178
+ ],
179
+ });
180
+ }
181
+ function storeRefusal(opening) {
182
+ return new Error(opening.status === 'refused' && typeof opening.message === 'string'
183
+ ? opening.message
184
+ : 'The Antigravity account store cannot be opened');
681
185
  }
682
186
  /**
683
- * Hook the host's `command.execute.before` to the modal commands.
684
- *
685
- * When a slash command is invoked, we push a notification onto the
686
- * RPC queue and abort the normal prompt with the same handled
687
- * sentinel the legacy `/gemini-dump` flow already uses.
187
+ * Where OpenCode 1 reads accounts and admits new logins, from the auth
188
+ * loader's single account-store opening.
688
189
  *
689
- * The `sendIgnoredMessage` fallback only fires when no TUI is
690
- * listening — the only path that actually consumes the queued
691
- * message. With a live TUI, push alone is enough; double-sending
692
- * would otherwise render the command text as a visible chat message
693
- * alongside the dialog the TUI renders.
190
+ * - `accountSource`: the account store, the pool file of a location not
191
+ * yet migrated, or nothing on a fresh installation; any other store
192
+ * state refuses.
193
+ * - `loginTarget`: a fresh installation first gets its explicit empty
194
+ * account store (`initializeFreshStore`), so the first login is admitted
195
+ * by the store and never written to a new pool file; a location still on
196
+ * its pool file keeps it until it is migrated; any other store state
197
+ * (pending migration or recovery, an unreadable store) refuses the login.
198
+ * Nothing is initialized over an existing pool file or store.
694
199
  */
695
- export function createCommandExecuteBefore(client, settings, pushNotification, commandData, connectionState = {
696
- isTuiConnected: defaultIsTuiConnected,
697
- }) {
698
- const context = {
699
- client,
700
- sessionID: '',
701
- settings,
702
- commandData,
200
+ export function createAccountTargets(loader) {
201
+ const isReady = (opening) => opening.status === 'ready' && opening.repository !== undefined;
202
+ return {
203
+ async accountSource() {
204
+ const opening = await loader.accountStore();
205
+ if (isReady(opening))
206
+ return { kind: 'store', repository: opening.repository };
207
+ if (opening.status === 'initialization-required')
208
+ return { kind: 'none' };
209
+ if (loader.usesPoolFile(opening))
210
+ return { kind: 'pool-file' };
211
+ throw storeRefusal(opening);
212
+ },
213
+ async loginTarget() {
214
+ const opening = await loader.initializeFreshStore();
215
+ if (isReady(opening))
216
+ return opening.repository;
217
+ if (opening.status !== 'initialization-required' &&
218
+ loader.usesPoolFile(opening))
219
+ return 'pool-file';
220
+ throw storeRefusal(opening);
221
+ },
703
222
  };
704
- return async (input) => {
705
- const command = input.command;
706
- if (command === GEMINI_DUMP_COMMAND_NAME) {
707
- const action = parseGeminiDumpCommandAction(input.arguments);
708
- if (action.type === 'enable' || action.type === 'disable') {
709
- setGeminiDumpEnabled(action.type === 'enable');
223
+ }
224
+ /**
225
+ * The OpenCode 1 request path that follows the vault mode file: each
226
+ * request re-reads the mode, so the Vault section's switches take effect on
227
+ * the next request. In custody the vault path serves, built for the vault
228
+ * source custody hands out (a new source after a switch rebuilds it); in
229
+ * local mode the local path serves and any vault path is released. An
230
+ * unreadable mode file refuses the request rather than picking a path.
231
+ */
232
+ export function createCustodyAwareRequestPath(options) {
233
+ let vault = null;
234
+ const releaseVault = () => {
235
+ const current = vault;
236
+ vault = null;
237
+ current?.path.dispose();
238
+ };
239
+ return {
240
+ async fetch(input, init) {
241
+ const mode = await options.readMode();
242
+ if (!mode.ok)
243
+ throw new Error(`The Antigravity vault mode is unclear (${mode.reason}); choose a mode in the Vault section of the Antigravity menu.`);
244
+ if (mode.record.mode === 'local') {
245
+ releaseVault();
246
+ return options.local.fetch(input, init);
710
247
  }
711
- if (!connectionState.isTuiConnected(input.sessionID)) {
712
- await sendIgnoredMessage(client, input.sessionID, executeGeminiDumpCommand({ argumentsText: input.arguments }));
248
+ const source = await options.custodySource();
249
+ if (vault?.source !== source) {
250
+ releaseVault();
251
+ vault = { source, path: options.vault(source) };
713
252
  }
714
- throwHandledCommandSentinel();
715
- }
716
- if (command !== ANTIGRAVITY_QUOTA_COMMAND_NAME &&
717
- command !== ANTIGRAVITY_ACCOUNT_COMMAND_NAME &&
718
- command !== ANTIGRAVITY_ROUTING_COMMAND_NAME &&
719
- command !== ANTIGRAVITY_KILLSWITCH_COMMAND_NAME &&
720
- command !== ANTIGRAVITY_DUMP_COMMAND_NAME &&
721
- command !== ANTIGRAVITY_LOGGING_COMMAND_NAME) {
722
- return;
723
- }
724
- const payload = await buildDialogPayload(command, input.arguments, {
725
- ...context,
726
- sessionID: input.sessionID,
727
- });
728
- pushNotification(payload, input.sessionID);
729
- if (!connectionState.isTuiConnected(input.sessionID)) {
730
- await sendIgnoredMessage(client, input.sessionID, payload.text);
731
- }
732
- throwHandledCommandSentinel();
253
+ return vault.path.fetch(input, init);
254
+ },
255
+ dispose() {
256
+ releaseVault();
257
+ options.local.dispose();
258
+ },
733
259
  };
734
260
  }
735
- /**
736
- * Backward-compat wrapper that constructs a no-settings `command.execute.before`
737
- * for tests that don't care about the operator settings controller. Production
738
- * code wires the real controller via `createAntigravityPlugin`.
739
- */
740
- export function createCommandExecuteBeforeForClient(client, commandData) {
741
- return createCommandExecuteBefore(client, createOperatorSettingsController({
742
- projectConfigPath: '/dev/null',
743
- userConfigPath: '/dev/null',
744
- }), () => undefined, commandData);
261
+ /** The same command dispatcher over vault sections, without a local repository or sign-in flow. */
262
+ export async function createOpenCodeVaultAntigravityMenu(options) {
263
+ return createAntigravityCommandMenu({
264
+ source: 'sections',
265
+ commands: options.commands ?? (await loadCommonAuthCommands()),
266
+ sections: {
267
+ ...options.sections,
268
+ ...antigravitySettingsSections(operatorMenuSettings(options.settings)),
269
+ },
270
+ diagnostics: diagnosticsMenuSection(options),
271
+ extras: options.vault ? [options.vault] : [],
272
+ });
745
273
  }
746
274
  //# sourceMappingURL=commands.js.map