@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,595 +1,403 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "@opentui/solid/jsx-runtime";
2
1
  /**
3
- * Mount the dialog for `payload.command` on the live TUI.
2
+ * The `/antigravity` drawer: one renderer for the server's command menu,
3
+ * shared by the OpenCode 1 and OpenCode GA TUIs.
4
4
  *
5
- * The dispatcher branches on `payload.command` — each branch is
6
- * self-contained: render the data body, render the host DialogSelect
7
- * below it with the real actions, wire `onSelect` to await `apply(...)`,
8
- * then toast the result and clear (or replace for multi-step flows).
9
- * Unknown commands throw so a future command registered in
10
- * `MODAL_COMMANDS` without a dispatcher branch fails loudly at the first
11
- * dialog open.
5
+ * The server builds the whole menu with the shared command menu of
6
+ * `@cortexkit/common-auth/commands`: Accounts, Quota, Routing, Limits
7
+ * (killswitch), Cache, Diagnostics (logging and wire dump) and the plugin's
8
+ * extras (vault setup), each with its read-only lines, its items, and its
9
+ * actions with their typed inputs and confirmations. This file only walks
10
+ * that payload through the host's dialogs and sends back which action the
11
+ * user chose, by the opaque section, item and action ids the server gave.
12
+ * It never builds an account target of its own, never looks an account up
13
+ * by position, and never retries a choice against a different target: an id
14
+ * the server no longer knows comes back as a refused apply and the user sees
15
+ * the server's message.
16
+ *
17
+ * Every redraw after an apply uses the menu that apply returned, which the
18
+ * server built fresh for that answer; settings shown here are never a
19
+ * replay of an earlier answer.
20
+ *
21
+ * The drawer talks to the host only through `MenuUi` (dialog primitives as
22
+ * promises) and `MenuApply` (the transport), so the same code runs on both
23
+ * hosts. Nothing here writes to the terminal or picks colors.
12
24
  */
13
- export function openCommandDialog(api, payload, apply) {
14
- if (payload.command === 'antigravity-dump') {
15
- renderDumpDialog(api, payload, apply);
16
- return;
17
- }
18
- if (payload.command === 'antigravity-logging') {
19
- renderLoggingDialog(api, payload, apply);
20
- return;
21
- }
22
- if (payload.command === 'antigravity-quota') {
23
- throw new Error('antigravity-quota is rendered by the TUI quota panel');
24
- }
25
- if (payload.command === 'antigravity-account') {
26
- renderAccountDialog(api, payload, apply);
27
- return;
28
- }
29
- if (payload.command === 'antigravity-routing') {
30
- renderRoutingDialog(api, payload, apply);
31
- return;
32
- }
33
- if (payload.command === 'antigravity-killswitch') {
34
- renderKillswitchDialog(api, payload, apply);
35
- return;
36
- }
37
- const exhaustiveCheck = payload.command;
38
- throw new Error(`Unknown command ${exhaustiveCheck}`);
39
- }
40
- // ---------------------------------------------------------------------------
41
- // Fully wired branches — non-data-first dialogs.
42
- // ---------------------------------------------------------------------------
25
+ import { MENU_REFUSED_TEXT, } from './host-api';
26
+ const BACK = 'back';
27
+ /** Text longer than this, or with a line break, is shown in full, not toasted. */
28
+ const TOAST_MAX_LENGTH = 120;
43
29
  /**
44
- * /antigravity-dump: three actions (on / off / status). Each selection
45
- * applies through the RPC, toasts the result text, and clears the
46
- * dialog. Status is a read-only check that still goes through apply so
47
- * the dump helper runs once and reports the current state.
30
+ * Raised by a transport when an answer fails validation, so the drawer can
31
+ * tell a refused answer from an unreachable server.
48
32
  */
49
- function renderDumpDialog(api, _payload, apply) {
50
- const DialogSelect = (api.ui.DialogSelect);
51
- api.ui.dialog.setSize('xlarge');
52
- api.ui.dialog.replace(() => (_jsx(DialogSelect, { title: 'Antigravity wire dump', options: [
53
- {
54
- title: 'Turn dump on',
55
- value: 'on',
56
- description: 'Write request and response bodies to the dump dir.',
57
- },
58
- {
59
- title: 'Turn dump off',
60
- value: 'off',
61
- description: 'Stop writing new dump files.',
62
- },
63
- {
64
- title: 'Show dump status',
65
- value: 'status',
66
- description: 'Display whether dumps are enabled and where they go.',
67
- },
68
- ], onSelect: (option) => {
69
- void apply('antigravity-dump', String(option.value)).then((result) => {
70
- api.ui.toast({ message: result.text });
71
- api.ui.dialog.clear();
72
- });
73
- } })));
33
+ export class MenuRefusedError extends Error {
34
+ issues;
35
+ constructor(issues) {
36
+ super(MENU_REFUSED_TEXT);
37
+ this.issues = issues;
38
+ this.name = 'MenuRefusedError';
39
+ }
74
40
  }
75
- /**
76
- * /antigravity-logging: every log level as an option. The dispatcher
77
- * forwards the level as the apply arg; the apply path persists it
78
- * through `OperatorSettingsController` and toasts the resolution text.
79
- */
80
- function renderLoggingDialog(api, payload, apply) {
81
- const DialogSelect = (api.ui.DialogSelect);
82
- const current = payload.knobs.log_level ?? 'info';
83
- api.ui.dialog.setSize('xlarge');
84
- api.ui.dialog.replace(() => (_jsx(DialogSelect, { title: 'Antigravity logging', current: current, options: [
85
- { title: 'Error', value: 'error', description: 'Errors only.' },
86
- { title: 'Warn', value: 'warn', description: 'Warnings and errors.' },
87
- {
88
- title: 'Info',
89
- value: 'info',
90
- description: 'Default. Includes informational events.',
91
- },
92
- {
93
- title: 'Debug',
94
- value: 'debug',
95
- description: 'Includes debug-level events.',
96
- },
97
- {
98
- title: 'Trace',
99
- value: 'trace',
100
- description: 'Most verbose — every diagnostic event.',
101
- },
102
- ], onSelect: (option) => {
103
- void apply('antigravity-logging', String(option.value)).then((result) => {
104
- api.ui.toast({ message: result.text });
105
- api.ui.dialog.clear();
106
- });
107
- } })));
41
+ function factLines(facts) {
42
+ return Object.entries(facts ?? {}).map(([name, value]) => `${name}: ${typeof value === 'string' ? value : JSON.stringify(value)}`);
108
43
  }
109
- // ---------------------------------------------------------------------------
110
- // Shared helpers — render data rows as plain text in the dialog body.
111
- // ---------------------------------------------------------------------------
112
- function formatQuotaRowLine(row) {
113
- const status = row.enabled ? '' : ' (disabled)';
114
- const current = row.current ? ' *' : '';
115
- if (row.quota.length === 0) {
116
- return `${row.label}${status}${current}: no cached quota`;
117
- }
118
- const parts = row.quota.map((q) => {
119
- const pct = q.remainingPercent == null ? '–%' : `${q.remainingPercent}%`;
120
- return `${q.label} ${pct}`;
44
+ /** One option per section, in the order the menu gives them. */
45
+ export function sectionListOptions(menu) {
46
+ return menu.sections.map((section) => ({
47
+ title: section.title,
48
+ value: `section:${section.id}`,
49
+ ...(section.lines[0] ? { description: section.lines[0] } : {}),
50
+ }));
51
+ }
52
+ /** Status text is a group header; every option navigates or runs an action. */
53
+ export function sectionOptions(section) {
54
+ const header = [
55
+ ...section.lines,
56
+ ...factLines(section.facts),
57
+ ...section.items
58
+ .filter((item) => item.actions.length === 0)
59
+ .map((item) => [
60
+ item.group,
61
+ [item.label, item.status].filter(Boolean).join(' · '),
62
+ item.detail,
63
+ ...factLines(item.facts),
64
+ ]
65
+ .filter(Boolean)
66
+ .join('\n')),
67
+ ];
68
+ const options = [
69
+ ...section.items
70
+ .filter((item) => item.actions.length > 0)
71
+ .map((item) => ({
72
+ title: item.label,
73
+ value: `item:${item.id}`,
74
+ ...(item.detail ? { description: item.detail } : {}),
75
+ ...(item.group ? { category: item.group } : {}),
76
+ ...(item.status ? { footer: item.status } : {}),
77
+ })),
78
+ ...section.actions.map((action) => ({
79
+ title: action.label,
80
+ value: `action:${action.id}`,
81
+ ...(action.description ? { description: action.description } : {}),
82
+ ...(action.group ? { category: action.group } : {}),
83
+ })),
84
+ { title: 'Back', value: BACK },
85
+ ];
86
+ const first = options[0];
87
+ if (!first || header.length === 0)
88
+ return options;
89
+ const category = [...header, first.category].filter(Boolean).join('\n');
90
+ let firstGroup = true;
91
+ return options.map((option) => {
92
+ if (option.category !== first.category)
93
+ firstGroup = false;
94
+ return firstGroup ? { ...option, category } : option;
121
95
  });
122
- return `${row.label}${status}${current}: ${parts.join(', ')}`;
96
+ }
97
+ /** Item context stays in descriptions, never in rows that cannot be acted on. */
98
+ export function itemOptions(item) {
99
+ const detail = [item.detail, ...factLines(item.facts)]
100
+ .filter(Boolean)
101
+ .join(' · ');
102
+ return [
103
+ ...item.actions.map((action) => ({
104
+ title: action.label,
105
+ value: `action:${action.id}`,
106
+ ...(detail || action.description
107
+ ? {
108
+ description: [detail, action.description]
109
+ .filter(Boolean)
110
+ .join(' · '),
111
+ }
112
+ : {}),
113
+ ...(action.group ? { category: action.group } : {}),
114
+ })),
115
+ { title: 'Back', value: BACK },
116
+ ];
123
117
  }
124
118
  /**
125
- * /antigravity-account data-first dialog.
126
- *
127
- * The body lists each account row as a plain `<text>` node (cache-only
128
- * — no network I/O on open). The DialogSelect carries ONLY real
129
- * actions: Add account… and one drill-in entry per row. Drill-in
130
- * navigates to a row-level subdialog that exposes toggle / set-current
131
- * / remove with a DialogConfirm gate for the destructive path.
132
- *
133
- * Each action calls `apply('antigravity-account', '<verb> <index>')`,
134
- * which the apply path translates into a locked-storage mutation.
135
- * The service returns fresh `CommandAccountRow[]`; the dialog mutates
136
- * its closed-over payload and re-renders via `renderMain()` so the
137
- * user never sees a clear-then-redraw gap.
119
+ * The value a typed `number` or `text` input sends. Empty is `null` (the
120
+ * action reads that as "leave unset"); a number input sends a number when
121
+ * the text parses as one and the text otherwise, so the server can say what
122
+ * is wrong with it.
138
123
  */
139
- function renderAccountDialog(api, initialPayload, apply) {
140
- // Closed-over payload: every render reads from the latest snapshot.
141
- const payload = { ...initialPayload };
142
- const rowsFromKnobs = () => {
143
- const raw = payload.knobs.accounts;
144
- return Array.isArray(raw) ? raw : [];
145
- };
146
- const runApply = async (args, options) => {
147
- const result = await apply('antigravity-account', args, options);
148
- api.ui.toast({ message: result.text });
149
- const next = result.knobs.accounts;
150
- if (Array.isArray(next)) {
151
- payload.knobs = {
152
- ...payload.knobs,
153
- accounts: next,
154
- };
155
- renderMain();
156
- return next;
157
- }
158
- renderMain();
124
+ export function promptValue(knob, raw) {
125
+ const text = raw.trim();
126
+ if (text === '')
159
127
  return null;
160
- };
161
- const updateAccounts = (knobs) => {
162
- const accounts = knobs.accounts;
163
- if (!Array.isArray(accounts))
164
- return;
165
- payload.knobs = {
166
- ...payload.knobs,
167
- accounts: accounts,
168
- };
169
- };
170
- const openOAuthLabelPrompt = (code, oauthUrl) => {
171
- const DialogPrompt = api.ui.DialogPrompt;
172
- api.ui.dialog.setSize('xlarge');
173
- api.ui.dialog.replace(() => (_jsx(DialogPrompt, { title: 'OAuth sign-in \u2014 label', description: () => (_jsx("text", { children: "A short name for this account (optional)." })), placeholder: 'e.g. work', value: '', onConfirm: (value) => {
174
- const label = value.trim();
175
- const args = label
176
- ? `add-oauth-finish ${code} --label ${label}`
177
- : `add-oauth-finish ${code}`;
178
- void apply('antigravity-account', args, { timeoutMs: 120_000 })
179
- .then((result) => {
180
- api.ui.toast({ message: result.text });
181
- updateAccounts(result.knobs);
182
- renderMain();
183
- })
184
- .catch(() => {
185
- api.ui.toast({ message: 'OAuth account add failed' });
186
- renderMain();
187
- });
188
- }, onCancel: () => openOAuthCodePrompt(oauthUrl) })));
189
- };
190
- const openOAuthCodePrompt = (oauthUrl) => {
191
- const DialogPrompt = api.ui.DialogPrompt;
192
- api.ui.dialog.setSize('xlarge');
193
- api.ui.dialog.replace(() => (_jsx(DialogPrompt, { title: 'OAuth sign-in \u2014 enter code', description: () => (_jsx("text", { children: "After signing in, paste the full callback URL or authorization code." })), placeholder: 'Paste callback URL or code here', value: '', onConfirm: (value) => {
194
- const code = value.trim();
195
- if (!code) {
196
- // Empty submit must keep the user inside the flow, not
197
- // silently drop them back to the account list. Surface the
198
- // validation message and reopen the same prompt so the
199
- // user can paste again.
200
- api.ui.toast({
201
- message: 'Please paste the callback URL or authorization code.',
202
- });
203
- openOAuthCodePrompt(oauthUrl);
204
- return;
205
- }
206
- openOAuthLabelPrompt(code, oauthUrl);
207
- }, onCancel: () => openOAuthUrlScreen(oauthUrl) })));
208
- };
209
- const openOAuthUrlScreen = (oauthUrl) => {
210
- const DialogSelect = (api.ui.DialogSelect);
211
- api.ui.dialog.setSize('xlarge');
212
- api.ui.dialog.replace(() => (_jsx(DialogSelect, { title: 'OAuth sign-in', options: [
213
- {
214
- title: 'Copy URL to clipboard',
215
- value: 'copy',
216
- description: oauthUrl,
217
- },
218
- {
219
- title: 'Enter sign-in code',
220
- value: 'code',
221
- description: 'Open the URL in your browser, sign in, then paste the callback URL or code.',
222
- },
223
- { title: 'Cancel', value: 'cancel' },
224
- ], onSelect: (option) => {
225
- if (option.value === 'cancel') {
226
- renderMain();
227
- return;
228
- }
229
- if (option.value === 'copy') {
230
- const copied = api.renderer.copyToClipboardOSC52(oauthUrl);
231
- api.ui.toast({
232
- message: copied
233
- ? 'URL copied to clipboard'
234
- : 'Copy unavailable — select the URL text above to copy',
235
- });
236
- openOAuthUrlScreen(oauthUrl);
237
- return;
238
- }
239
- openOAuthCodePrompt(oauthUrl);
240
- } })));
241
- };
242
- const openAddOAuthStart = () => {
243
- void apply('antigravity-account', 'add-oauth-start', {
244
- timeoutMs: 120_000,
245
- })
246
- .then((result) => {
247
- updateAccounts(result.knobs);
248
- const oauthUrl = result.knobs.oauthUrl;
249
- if (typeof oauthUrl === 'string' && oauthUrl.length > 0) {
250
- openOAuthUrlScreen(oauthUrl);
251
- return;
252
- }
253
- api.ui.toast({ message: result.text });
254
- renderMain();
255
- })
256
- .catch(() => {
257
- api.ui.toast({ message: 'OAuth account add failed' });
258
- renderMain();
259
- });
260
- };
261
- const renderManageRow = (row) => {
262
- const DialogSelect = (api.ui.DialogSelect);
263
- api.ui.dialog.setSize('xlarge');
264
- api.ui.dialog.replace(() => (_jsxs("box", { flexDirection: 'column', padding: 1, width: '100%', children: [_jsx("text", { children: row.label }), _jsx("text", { children: row.quota.length === 0
265
- ? 'no cached quota'
266
- : row.quota
267
- .map((q) => q.remainingPercent == null
268
- ? `${q.label} –%`
269
- : `${q.label} ${q.remainingPercent}%`)
270
- .join(', ') }), _jsx("box", { marginTop: 1, children: _jsx(DialogSelect, { title: `Manage ${row.label}`, options: [
271
- {
272
- title: row.enabled ? 'Disable account' : 'Enable account',
273
- value: `toggle ${row.index}`,
274
- description: row.enabled
275
- ? 'Skip this account in rotation when its quota is low.'
276
- : 'Include this account in rotation again.',
277
- },
278
- {
279
- title: 'Set as current',
280
- value: `current ${row.index}`,
281
- description: 'Pin this account as the active Claude + Gemini choice.',
282
- },
283
- {
284
- title: 'Remove account…',
285
- value: `__remove_prompt__ ${row.index}`,
286
- description: 'Permanently delete this account from the local pool.',
287
- },
288
- {
289
- title: 'Back',
290
- value: '__back__',
291
- description: 'Return to the account list.',
292
- },
293
- ], onSelect: (option) => {
294
- const raw = String(option.value);
295
- if (raw === '__back__') {
296
- renderMain();
297
- return;
298
- }
299
- if (raw.startsWith('__remove_prompt__ ')) {
300
- const targetIndex = Number.parseInt(raw.split(' ')[1] ?? '', 10);
301
- promptRemove(targetIndex);
302
- return;
303
- }
304
- if (raw.startsWith('toggle ') || raw.startsWith('current ')) {
305
- void runApply(raw, { timeoutMs: 2_000 }).catch(() => {
306
- api.ui.toast({
307
- message: `${row.label}: action failed`,
308
- });
309
- });
310
- return;
311
- }
312
- api.ui.toast({
313
- message: `${row.label}: unknown action`,
314
- });
315
- } }) })] })));
316
- };
317
- const promptRemove = (index) => {
318
- const DialogConfirm = api.ui.DialogConfirm;
319
- const row = rowsFromKnobs()[index];
320
- api.ui.dialog.setSize('xlarge');
321
- api.ui.dialog.replace(() => (_jsx(DialogConfirm, { title: 'Remove account', message: `Permanently remove ${row?.label ?? `account ${index + 1}`} from the local pool? This cannot be undone.`, onConfirm: async () => {
322
- try {
323
- const next = await runApply(`remove ${index}`, {
324
- timeoutMs: 2_000,
325
- });
326
- if (next === null) {
327
- renderMain();
328
- }
329
- }
330
- catch {
331
- api.ui.toast({ message: 'Account remove failed' });
332
- renderMain();
333
- }
334
- }, onCancel: () => {
335
- renderMain();
336
- } })));
337
- };
338
- const renderMain = () => {
339
- const DialogSelect = (api.ui.DialogSelect);
340
- api.ui.dialog.setSize('xlarge');
341
- const rows = rowsFromKnobs();
342
- const bodyLines = rows.length
343
- ? rows.map(formatQuotaRowLine)
344
- : ['No accounts configured. Add one via the menu below.'];
345
- api.ui.dialog.replace(() => (_jsxs("box", { flexDirection: 'column', padding: 1, width: '100%', children: [bodyLines.map((line) => (_jsx("text", { children: line }))), _jsx("box", { marginTop: 1, children: _jsx(DialogSelect, { title: 'Antigravity accounts', options: [
346
- {
347
- title: 'Add account…',
348
- value: 'add',
349
- description: 'Open the OAuth flow to add a new account (120s timeout).',
350
- },
351
- ...rows.map((row) => ({
352
- title: row.label,
353
- value: `__manage__ ${row.index}`,
354
- description: row.enabled
355
- ? row.current
356
- ? 'Current account — toggle, remove, or back.'
357
- : 'Enabled — toggle, set as current, or remove.'
358
- : 'Disabled — toggle to re-enable, or remove.',
359
- })),
360
- { title: 'Back', value: 'back' },
361
- ], onSelect: (option) => {
362
- const raw = String(option.value);
363
- if (raw === 'back') {
364
- api.ui.dialog.clear();
365
- return;
366
- }
367
- if (raw === 'add') {
368
- openAddOAuthStart();
369
- return;
370
- }
371
- if (raw.startsWith('__manage__ ')) {
372
- const targetIndex = Number.parseInt(raw.split(' ')[1] ?? '', 10);
373
- const target = rows[targetIndex];
374
- if (target)
375
- renderManageRow(target);
376
- return;
377
- }
378
- api.ui.toast({ message: 'Unknown action' });
379
- } }) })] })));
380
- };
381
- renderMain();
128
+ if (knob.kind === 'number') {
129
+ const number = Number(text);
130
+ return Number.isFinite(number) ? number : text;
131
+ }
132
+ return raw;
133
+ }
134
+ function knobDefault(knob) {
135
+ if (knob.kind === 'toggle')
136
+ return knob.value ? 'on' : 'off';
137
+ if (knob.kind === 'text' && knob.masked)
138
+ return '';
139
+ return knob.value === undefined ? '' : String(knob.value);
140
+ }
141
+ /** The first web link in a message, such as a sign-in URL. */
142
+ export function firstLink(text) {
143
+ return /https?:\/\/\S+/.exec(text)?.[0];
382
144
  }
383
145
  /**
384
- * /antigravity-routing data-first dialog.
385
- *
386
- * The body lists the current persisted values (`cli_first`,
387
- * `quota_style_fallback`) as plain `<text>` nodes so the data is
388
- * visible without filtering the action list. The DialogSelect carries
389
- * ONLY real toggle actions — each row flips exactly one flag, awaits
390
- * apply, toasts the result, and re-renders in place from the
391
- * freshly-returned state.
392
- *
393
- * Re-render contract mirrors the quota/account dialogs: the
394
- * closed-over `payload.knobs` is mutated with the apply response and
395
- * `renderMain()` is re-invoked. The dialog stack never sees a
396
- * `clear()` between apply and re-render.
397
- *
398
- * Error path: when apply returns a `knobs.error === true` payload
399
- * (lock contention, unreadable config), the dispatcher does NOT swap
400
- * the closed-over payload — the dialog stays mounted on the previous
401
- * state so the user can retry or back out. The error message was
402
- * already toasted by `runApply`.
146
+ * Opens the drawer on a payload the server pushed for `/antigravity`. The
147
+ * returned promise settles when the user closes the drawer.
403
148
  */
404
- function renderRoutingDialog(api, initialPayload, apply) {
405
- // Closed-over payload: every render reads from the latest snapshot.
406
- const payload = { ...initialPayload };
407
- const readRouting = () => ({
408
- cliFirst: payload.knobs.cli_first === true,
409
- quotaFallback: payload.knobs.quota_style_fallback === true,
410
- });
411
- const runApply = async (args) => {
412
- const result = await apply('antigravity-routing', args, {
413
- timeoutMs: 2_000,
149
+ export function openAntigravityMenu(options, payload) {
150
+ return new Drawer(options, payload.menu).start();
151
+ }
152
+ const CANCEL = '\u0000cancel';
153
+ class Drawer {
154
+ options;
155
+ menu;
156
+ constructor(options, menu) {
157
+ this.options = options;
158
+ this.menu = menu;
159
+ }
160
+ async start() {
161
+ const start = this.options.startSection;
162
+ if (start && this.menu.sections.some((section) => section.id === start)) {
163
+ await this.section(start);
164
+ return;
165
+ }
166
+ const only = this.menu.sections.length === 1 ? this.menu.sections[0] : undefined;
167
+ if (only) {
168
+ await this.section(only.id);
169
+ return;
170
+ }
171
+ await this.list();
172
+ }
173
+ async list() {
174
+ const { ui } = this.options;
175
+ const chosen = await ui.select({
176
+ title: this.menu.title,
177
+ options: sectionListOptions(this.menu),
414
178
  });
415
- api.ui.toast({ message: result.text });
416
- if (result.knobs.error === true) {
179
+ if (chosen === undefined)
180
+ return;
181
+ await this.section(chosen.slice('section:'.length));
182
+ }
183
+ async closeOrList() {
184
+ if (this.menu.sections.length === 1) {
185
+ this.options.ui.clear();
417
186
  return;
418
187
  }
419
- payload.knobs = {
420
- ...payload.knobs,
421
- cli_first: result.knobs.cli_first,
422
- quota_style_fallback: result.knobs.quota_style_fallback,
423
- };
424
- renderMain();
425
- };
426
- const renderMain = () => {
427
- const DialogSelect = (api.ui.DialogSelect);
428
- api.ui.dialog.setSize('xlarge');
429
- const { cliFirst, quotaFallback } = readRouting();
430
- const bodyLines = [
431
- `cli_first: ${cliFirst ? 'on' : 'off'}`,
432
- `quota_style_fallback: ${quotaFallback ? 'on' : 'off'}`,
433
- ];
434
- api.ui.dialog.replace(() => (_jsxs("box", { flexDirection: 'column', padding: 1, width: '100%', children: [bodyLines.map((line) => (_jsx("text", { children: line }))), _jsx("box", { marginTop: 1, children: _jsx(DialogSelect, { title: 'Antigravity routing', options: [
435
- {
436
- title: `${cliFirst ? '●' : '○'} cli_first: ${cliFirst}`,
437
- value: `cli_first=${!cliFirst}`,
438
- description: cliFirst
439
- ? 'CLI is preferred before Antigravity. Click to turn off.'
440
- : 'Antigravity runs before CLI. Click to turn on.',
441
- },
442
- {
443
- title: `${quotaFallback ? '●' : '○'} quota_style_fallback: ${quotaFallback}`,
444
- value: `quota_style_fallback=${!quotaFallback}`,
445
- description: quotaFallback
446
- ? 'Falls back to the alternate quota style on exhaustion. Click to turn off.'
447
- : 'No quota-style fallback today. Click to turn on.',
448
- },
449
- { title: 'Back', value: 'back' },
450
- ], onSelect: (option) => {
451
- const raw = String(option.value);
452
- if (raw === 'back') {
453
- api.ui.dialog.clear();
454
- return;
455
- }
456
- if (!raw.startsWith('cli_first=') &&
457
- !raw.startsWith('quota_style_fallback=')) {
458
- api.ui.toast({ message: 'Unknown routing action' });
459
- return;
460
- }
461
- void runApply(raw).catch(() => {
462
- api.ui.toast({ message: 'Routing update failed' });
463
- renderMain();
464
- });
465
- } }) })] })));
466
- };
467
- renderMain();
468
- }
469
- /**
470
- * /antigravity-killswitch data-first dialog.
471
- *
472
- * The body lists the current persisted killswitch state (`enabled`,
473
- * `minimum_remaining_percent`, and the per-account override map) as
474
- * plain `<text>` nodes. The DialogSelect carries ONLY real actions:
475
- * the global enabled toggle, the threshold-edit prompt, and a Back
476
- * affordance. The threshold edit opens a DialogPrompt for a fresh
477
- * integer in `0..100`; out-of-range input stays at the prompt without
478
- * applying.
479
- *
480
- * Re-render contract matches the routing dialog: the closed-over
481
- * `payload.knobs` is swapped to the apply response on success and
482
- * `renderMain()` re-runs. Errors leave the payload untouched.
483
- */
484
- function renderKillswitchDialog(api, initialPayload, apply) {
485
- const payload = { ...initialPayload };
486
- const readKillswitch = () => {
487
- const enabled = payload.knobs.enabled === true;
488
- const rawMin = payload.knobs.minimum_remaining_percent;
489
- const minimum = typeof rawMin === 'number' && Number.isFinite(rawMin)
490
- ? Math.max(0, Math.min(100, Math.round(rawMin)))
491
- : 0;
492
- const rawAccounts = payload.knobs.accounts;
493
- const accounts = rawAccounts &&
494
- typeof rawAccounts === 'object' &&
495
- !Array.isArray(rawAccounts)
496
- ? rawAccounts
497
- : {};
498
- return { enabled, minimum, accounts };
499
- };
500
- const runApply = async (args) => {
501
- const result = await apply('antigravity-killswitch', args, {
502
- timeoutMs: 2_000,
188
+ await this.list();
189
+ }
190
+ async section(sectionId) {
191
+ const { ui } = this.options;
192
+ const section = this.menu.sections.find((entry) => entry.id === sectionId);
193
+ if (!section) {
194
+ ui.toast('That section is no longer offered.', 'warning');
195
+ await this.list();
196
+ return;
197
+ }
198
+ const chosen = await ui.select({
199
+ title: section.title,
200
+ options: sectionOptions(section),
201
+ });
202
+ // Dismissing the dialog (Escape) closes the drawer; Back goes up a level.
203
+ if (chosen === undefined)
204
+ return;
205
+ if (chosen === BACK) {
206
+ await this.closeOrList();
207
+ return;
208
+ }
209
+ if (chosen.startsWith('item:')) {
210
+ await this.item(section.id, chosen.slice('item:'.length));
211
+ return;
212
+ }
213
+ if (chosen.startsWith('action:')) {
214
+ const action = section.actions.find((entry) => entry.id === chosen.slice('action:'.length));
215
+ if (action) {
216
+ await this.run(section, undefined, action);
217
+ return;
218
+ }
219
+ }
220
+ // A read-only line: redraw the same section.
221
+ await this.section(section.id);
222
+ }
223
+ async item(sectionId, itemId) {
224
+ const { ui } = this.options;
225
+ const section = this.menu.sections.find((entry) => entry.id === sectionId);
226
+ const item = section?.items.find((entry) => entry.id === itemId);
227
+ if (!section || !item) {
228
+ ui.toast('That entry is no longer offered.', 'warning');
229
+ if (section)
230
+ await this.section(section.id);
231
+ else
232
+ await this.list();
233
+ return;
234
+ }
235
+ const chosen = await ui.select({
236
+ title: `${section.title}: ${item.label}`,
237
+ options: itemOptions(item),
503
238
  });
504
- api.ui.toast({ message: result.text });
505
- if (result.knobs.error === true) {
239
+ if (chosen === undefined)
506
240
  return;
241
+ if (chosen === BACK) {
242
+ await this.section(section.id);
243
+ return;
244
+ }
245
+ if (chosen.startsWith('action:')) {
246
+ const action = item.actions.find((entry) => entry.id === chosen.slice('action:'.length));
247
+ if (action) {
248
+ await this.run(section, item, action);
249
+ return;
250
+ }
251
+ }
252
+ await this.item(section.id, item.id);
253
+ }
254
+ /** Asks for one input; resolves undefined when the user backs out. */
255
+ async knob(title, knob) {
256
+ const { ui } = this.options;
257
+ if (knob.kind === 'choice' || knob.kind === 'toggle') {
258
+ const choices = knob.kind === 'choice'
259
+ ? knob.choices.map((choice) => ({
260
+ title: choice.label,
261
+ value: choice.value,
262
+ }))
263
+ : [
264
+ { title: 'On', value: 'on' },
265
+ { title: 'Off', value: 'off' },
266
+ ];
267
+ const chosen = await ui.select({
268
+ title: `${title}: ${knob.label}`,
269
+ current: knobDefault(knob),
270
+ options: [...choices, { title: 'Cancel', value: CANCEL }],
271
+ });
272
+ if (chosen === undefined || chosen === CANCEL)
273
+ return undefined;
274
+ return knob.kind === 'toggle' ? chosen === 'on' : chosen;
275
+ }
276
+ const placeholder = knob.kind === 'text' ? knob.placeholder : undefined;
277
+ const raw = await ui.prompt({
278
+ title: `${title}: ${knob.label}`,
279
+ ...(placeholder ? { placeholder } : {}),
280
+ value: knobDefault(knob),
281
+ });
282
+ if (raw === undefined)
283
+ return undefined;
284
+ return promptValue(knob, raw);
285
+ }
286
+ back(section, item) {
287
+ return item ? this.item(section.id, item.id) : this.section(section.id);
288
+ }
289
+ /**
290
+ * Collects an action's inputs, confirms it when it carries a confirmation,
291
+ * applies it and redraws from the refreshed menu.
292
+ */
293
+ async run(section, item, action) {
294
+ const { ui } = this.options;
295
+ const values = {};
296
+ for (const knob of action.knobs) {
297
+ const value = await this.knob(action.label, knob);
298
+ if (value === undefined) {
299
+ await this.back(section, item);
300
+ return;
301
+ }
302
+ values[knob.id] = value;
507
303
  }
508
- payload.knobs = {
509
- ...payload.knobs,
510
- enabled: result.knobs.enabled,
511
- minimum_remaining_percent: result.knobs.minimum_remaining_percent,
512
- accounts: result.knobs.accounts ?? {},
304
+ let confirmed = false;
305
+ if (action.confirm) {
306
+ confirmed = await ui.confirm({
307
+ title: action.label,
308
+ message: action.confirm.message,
309
+ });
310
+ if (!confirmed) {
311
+ await this.back(section, item);
312
+ return;
313
+ }
314
+ }
315
+ const request = {
316
+ command: this.menu.command,
317
+ sectionId: section.id,
318
+ ...(item ? { itemId: item.id } : {}),
319
+ actionId: action.id,
320
+ values,
321
+ ...(confirmed ? { confirmed: true } : {}),
513
322
  };
514
- renderMain();
515
- };
516
- const openThresholdPrompt = (currentMinimum) => {
517
- const DialogPrompt = api.ui.DialogPrompt;
518
- api.ui.dialog.setSize('xlarge');
519
- api.ui.dialog.replace(() => (_jsx(DialogPrompt, { title: 'Antigravity killswitch \u2014 set threshold', description: () => (_jsx("text", { children: "Enter a new minimum_remaining_percent (0-100). Empty input cancels." })), placeholder: `${currentMinimum}`, value: `${currentMinimum}`, onConfirm: (value) => {
520
- const trimmed = value.trim();
521
- if (!trimmed) {
522
- renderMain();
523
- return;
524
- }
525
- const parsed = Number.parseInt(trimmed, 10);
526
- if (!Number.isInteger(parsed) ||
527
- parsed < 0 ||
528
- parsed > 100 ||
529
- String(parsed) !== trimmed) {
530
- api.ui.toast({
531
- message: 'Threshold must be an integer between 0 and 100',
532
- });
533
- openThresholdPrompt(currentMinimum);
534
- return;
535
- }
536
- void runApply(`minimum_remaining_percent=${parsed}`).catch(() => {
537
- api.ui.toast({ message: 'Killswitch update failed' });
538
- renderMain();
539
- });
540
- }, onCancel: () => {
541
- renderMain();
542
- } })));
543
- };
544
- const renderMain = () => {
545
- const DialogSelect = (api.ui.DialogSelect);
546
- api.ui.dialog.setSize('xlarge');
547
- const { enabled, minimum, accounts } = readKillswitch();
548
- const accountKeys = Object.keys(accounts);
549
- const bodyLines = [
550
- `Killswitch: ${enabled ? 'enabled' : 'disabled'}`,
551
- `Minimum remaining percent: ${minimum}%`,
552
- ...(accountKeys.length > 0
553
- ? [
554
- 'Per-account overrides:',
555
- ...accountKeys.map((key) => ` ${key}: ${accounts[key] ?? 0}%`),
556
- ]
557
- : []),
558
- ];
559
- api.ui.dialog.replace(() => (_jsxs("box", { flexDirection: 'column', padding: 1, width: '100%', children: [bodyLines.map((line) => (_jsx("text", { children: line }))), _jsx("box", { marginTop: 1, children: _jsx(DialogSelect, { title: 'Antigravity killswitch', options: [
560
- {
561
- title: `${enabled ? '●' : '○'} Killswitch: ${enabled ? 'enabled' : 'disabled'}`,
562
- value: `enabled=${!enabled}`,
563
- description: enabled
564
- ? 'Drop candidates below the floor before dispatch. Click to turn off.'
565
- : 'Resume candidate selection regardless of quota. Click to turn on.',
566
- },
567
- {
568
- title: `Set minimum remaining percent (${minimum}%)`,
569
- value: '__edit_threshold__',
570
- description: 'Prompt for a new global floor (0-100). Per-account overrides are listed above.',
571
- },
572
- { title: 'Back', value: 'back' },
573
- ], onSelect: (option) => {
574
- const raw = String(option.value);
575
- if (raw === 'back') {
576
- api.ui.dialog.clear();
577
- return;
578
- }
579
- if (raw === '__edit_threshold__') {
580
- openThresholdPrompt(minimum);
581
- return;
582
- }
583
- if (raw === 'enabled=true' || raw === 'enabled=false') {
584
- void runApply(raw).catch(() => {
585
- api.ui.toast({ message: 'Killswitch update failed' });
586
- renderMain();
587
- });
588
- return;
589
- }
590
- api.ui.toast({ message: 'Unknown killswitch action' });
591
- } }) })] })));
592
- };
593
- renderMain();
323
+ let result = await this.send(request);
324
+ if (!result) {
325
+ await this.back(section, item);
326
+ return;
327
+ }
328
+ if (result.needsConfirmation && !confirmed) {
329
+ const yes = await ui.confirm({
330
+ title: action.label,
331
+ message: result.text,
332
+ });
333
+ if (!yes) {
334
+ this.menu = result.menu;
335
+ await this.section(section.id);
336
+ return;
337
+ }
338
+ const again = await this.send({ ...request, confirmed: true });
339
+ if (!again) {
340
+ this.menu = result.menu;
341
+ await this.back(section, item);
342
+ return;
343
+ }
344
+ result = again;
345
+ }
346
+ this.menu = result.menu;
347
+ await this.finish(section.id, result);
348
+ }
349
+ async send(request) {
350
+ const { ui, apply, onError } = this.options;
351
+ try {
352
+ return await apply(request);
353
+ }
354
+ catch (error) {
355
+ if (error instanceof MenuRefusedError) {
356
+ onError?.('menu-apply-refused', { issues: error.issues });
357
+ ui.toast(MENU_REFUSED_TEXT, 'error');
358
+ return undefined;
359
+ }
360
+ onError?.('menu-apply-failed', {
361
+ error: error instanceof Error ? error.name : typeof error,
362
+ });
363
+ ui.toast('The action could not reach Antigravity auth.', 'error');
364
+ return undefined;
365
+ }
366
+ }
367
+ /**
368
+ * Shows the apply's message and returns to the section. A long message (a
369
+ * sign-in URL, a multi-line result) is shown in full; a link in it can be
370
+ * copied when the host has a clipboard. A short one is a toast.
371
+ */
372
+ async finish(sectionId, result) {
373
+ const { ui, copy } = this.options;
374
+ const kind = result.ok ? 'info' : 'warning';
375
+ const long = result.text.includes('\n') || result.text.length > TOAST_MAX_LENGTH;
376
+ const link = firstLink(result.text);
377
+ if (link && copy) {
378
+ const chosen = await ui.select({
379
+ title: result.ok ? 'Done' : 'Not done',
380
+ options: [
381
+ { title: 'Copy link', value: 'copy', description: link },
382
+ { title: 'Continue', value: 'continue', description: result.text },
383
+ ],
384
+ });
385
+ if (chosen === 'copy') {
386
+ ui.toast(copy(link)
387
+ ? 'Link copied to the clipboard.'
388
+ : 'Copy is unavailable here; select the link to copy it.', 'info');
389
+ }
390
+ }
391
+ else if (long) {
392
+ await ui.alert({
393
+ title: result.ok ? 'Done' : 'Not done',
394
+ message: result.text,
395
+ });
396
+ }
397
+ else {
398
+ ui.toast(result.text, kind);
399
+ }
400
+ await this.section(sectionId);
401
+ }
594
402
  }
595
403
  //# sourceMappingURL=command-dialogs.js.map