@wenathlan/devthink 2.0.12 → 2.0.14

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 (444) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/accounts.ts +2087 -0
  3. package/agent.ts +2331 -0
  4. package/antigravity.ts +2139 -0
  5. package/apifreeze.ts +4146 -0
  6. package/auth.ts +642 -0
  7. package/background.ts +16837 -0
  8. package/bridge.ts +2080 -0
  9. package/build.ts +54 -0
  10. package/bun.ts +26 -0
  11. package/capture.ts +1614 -0
  12. package/checksecrets.ts +72 -0
  13. package/cjs.ts +9 -0
  14. package/cli.ts +3500 -0
  15. package/commands.ts +1101 -0
  16. package/companion.ts +450 -0
  17. package/compatibility.ts +37 -0
  18. package/config.ts +3137 -0
  19. package/constants.ts +943 -0
  20. package/core.ts +1473 -0
  21. package/crossbrowser.ts +1359 -0
  22. package/dashdone.ts +605 -0
  23. package/data.ts +943 -0
  24. package/database.ts +133 -0
  25. package/debug.ts +850 -0
  26. package/deno.ts +27 -0
  27. package/devthink.ts +707 -0
  28. package/dist/accounts.d.ts +409 -0
  29. package/dist/agent.d.ts +837 -0
  30. package/dist/antigravity.d.ts +380 -0
  31. package/dist/apifreeze.d.ts +113 -0
  32. package/dist/auth.d.ts +224 -0
  33. package/{bridge.d.ts → dist/bridge.d.ts} +1 -1
  34. package/dist/capture.d.ts +595 -0
  35. package/dist/cjs.d.ts +6 -0
  36. package/{cli.js → dist/cli.js} +2 -2
  37. package/dist/commands.d.ts +310 -0
  38. package/dist/compatibility.d.ts +17 -0
  39. package/dist/config.d.ts +1853 -0
  40. package/dist/constants.d.ts +637 -0
  41. package/dist/core.d.ts +361 -0
  42. package/dist/data.d.ts +330 -0
  43. package/dist/database.d.ts +24 -0
  44. package/dist/debug.d.ts +270 -0
  45. package/dist/engine.d.ts +74 -0
  46. package/dist/environments.d.ts +244 -0
  47. package/dist/evidence.d.ts +277 -0
  48. package/dist/export.d.ts +311 -0
  49. package/dist/fingerprint.d.ts +594 -0
  50. package/dist/flow.d.ts +300 -0
  51. package/dist/gates.d.ts +103 -0
  52. package/dist/identity.d.ts +51 -0
  53. package/dist/ids.d.ts +7 -0
  54. package/dist/llm.d.ts +652 -0
  55. package/dist/models.d.ts +1807 -0
  56. package/dist/net.d.ts +325 -0
  57. package/dist/neutral.d.ts +41 -0
  58. package/dist/oauth.d.ts +703 -0
  59. package/dist/page.d.ts +1166 -0
  60. package/dist/perf.d.ts +481 -0
  61. package/dist/plan.d.ts +134 -0
  62. package/dist/project.d.ts +395 -0
  63. package/dist/providers.d.ts +37 -0
  64. package/dist/quota.d.ts +453 -0
  65. package/dist/recovery.d.ts +621 -0
  66. package/dist/request.d.ts +1492 -0
  67. package/dist/run.d.ts +779 -0
  68. package/dist/runtime.d.ts +212 -0
  69. package/dist/search.d.ts +375 -0
  70. package/dist/security.d.ts +534 -0
  71. package/dist/serve.d.ts +136 -0
  72. package/dist/session.d.ts +296 -0
  73. package/dist/storage.d.ts +53 -0
  74. package/dist/streaming.d.ts +1119 -0
  75. package/dist/swarm.d.ts +328 -0
  76. package/dist/tools.d.ts +170 -0
  77. package/dist/types.d.ts +8357 -0
  78. package/dist/utils.d.ts +82 -0
  79. package/dist/version.d.ts +7 -0
  80. package/dist/versionregistry.d.ts +406 -0
  81. package/dist/views.d.ts +579 -0
  82. package/dist/workbenchsession.d.ts +69 -0
  83. package/dist/workflow.d.ts +649 -0
  84. package/docs/readme.md +92 -0
  85. package/docs/schemas/antigravity.json +192 -0
  86. package/engine.ts +1524 -0
  87. package/environments.ts +1005 -0
  88. package/evidence.ts +643 -0
  89. package/export.ts +889 -0
  90. package/fingerprint.ts +1458 -0
  91. package/flow.ts +1190 -0
  92. package/gates.ts +307 -0
  93. package/gateway.ts +34 -0
  94. package/hardening.ts +191 -0
  95. package/headless.ts +369 -0
  96. package/http.ts +2110 -0
  97. package/identity.ts +246 -0
  98. package/ids.ts +26 -0
  99. package/index.ts +369 -0
  100. package/llm.ts +2682 -0
  101. package/mcp.ts +1835 -0
  102. package/{memory.js → memory.ts} +3834 -2310
  103. package/models.ts +3805 -0
  104. package/modes.ts +43 -0
  105. package/net.ts +1214 -0
  106. package/neutral.ts +362 -0
  107. package/node.ts +26 -0
  108. package/oauth.ts +2216 -0
  109. package/offscreen.ts +170 -0
  110. package/pack.ts +956 -0
  111. package/package.json +175 -82
  112. package/page.ts +7824 -0
  113. package/pagebridge.ts +1116 -0
  114. package/perf.ts +957 -0
  115. package/plan.ts +672 -0
  116. package/plugin.ts +76 -0
  117. package/{policy.js → policy.ts} +5073 -4679
  118. package/prisma.config.ts +27 -0
  119. package/progress.ts +1308 -0
  120. package/project.ts +1291 -0
  121. package/protocol.ts +4187 -0
  122. package/providers.ts +246 -0
  123. package/quota.ts +1887 -0
  124. package/recovery.ts +2433 -0
  125. package/request.ts +4482 -0
  126. package/run.ts +2135 -0
  127. package/runtime.ts +526 -0
  128. package/search.ts +1760 -0
  129. package/security.ts +1673 -0
  130. package/serve.ts +419 -0
  131. package/server.ts +5538 -0
  132. package/session.ts +1162 -0
  133. package/storage.ts +182 -0
  134. package/streaming.ts +4101 -0
  135. package/swarm.ts +884 -0
  136. package/sync.ts +56 -0
  137. package/tests/agentcert.test.ts +128 -0
  138. package/tests/agentfleet.test.ts +214 -0
  139. package/tests/agentreview.test.ts +241 -0
  140. package/tests/agentstream.test.ts +335 -0
  141. package/tests/agentwork.test.ts +356 -0
  142. package/tests/apifreeze.test.ts +290 -0
  143. package/tests/apimap.test.ts +112 -0
  144. package/tests/approvalgate.test.ts +175 -0
  145. package/tests/artifactmanifest.test.ts +204 -0
  146. package/tests/attentionfeed.test.ts +163 -0
  147. package/tests/backgroundruns.test.ts +100 -0
  148. package/tests/batchscheduling.test.ts +131 -0
  149. package/tests/blackboard.test.ts +238 -0
  150. package/tests/bridge.test.ts +1088 -0
  151. package/tests/browsercoverage.test.ts +134 -0
  152. package/tests/browserpolyfills.test.ts +124 -0
  153. package/tests/build.mjs +1260 -0
  154. package/tests/clientauth.test.ts +223 -0
  155. package/tests/clitools.test.ts +578 -0
  156. package/tests/confirmgates.test.ts +190 -0
  157. package/tests/containerpack.test.ts +143 -0
  158. package/tests/controlflow.test.ts +2120 -0
  159. package/tests/coordination.test.ts +345 -0
  160. package/tests/copyscreen.test.ts +139 -0
  161. package/tests/core.test.ts +417 -0
  162. package/tests/costcert.test.ts +95 -0
  163. package/tests/crossbrowser.test.ts +115 -0
  164. package/tests/cspaudit.test.ts +79 -0
  165. package/tests/dashdone.test.ts +615 -0
  166. package/tests/datagrid.test.ts +137 -0
  167. package/tests/doccheck.test.ts +107 -0
  168. package/tests/dombatch.test.ts +109 -0
  169. package/tests/emulation.test.ts +282 -0
  170. package/tests/environments.test.ts +259 -0
  171. package/tests/evidenceviews.test.ts +88 -0
  172. package/tests/exporttools.test.ts +185 -0
  173. package/tests/firefoxprep.test.ts +134 -0
  174. package/tests/flowlibrary.test.ts +242 -0
  175. package/tests/flowrun.test.ts +303 -0
  176. package/tests/forensics.test.ts +439 -0
  177. package/tests/gateway.test.ts +939 -0
  178. package/tests/headlesslib.test.ts +171 -0
  179. package/tests/httpstream.test.ts +277 -0
  180. package/tests/immutablelog.test.ts +157 -0
  181. package/tests/inboundguard.test.ts +177 -0
  182. package/tests/lazyload.test.ts +72 -0
  183. package/tests/librarymodes.test.ts +623 -0
  184. package/tests/llm.test.ts +696 -0
  185. package/tests/manifest.test.ts +226 -0
  186. package/tests/maskinputs.test.ts +150 -0
  187. package/tests/matrixverify.test.ts +111 -0
  188. package/tests/mavenpack.test.ts +75 -0
  189. package/tests/mcpserver.test.ts +704 -0
  190. package/tests/memory.test.ts +4155 -0
  191. package/tests/memorycare.test.ts +230 -0
  192. package/tests/migrateplan.test.ts +349 -0
  193. package/tests/minimization.test.ts +414 -0
  194. package/tests/modelroute.test.ts +112 -0
  195. package/tests/multiagent.test.ts +440 -0
  196. package/tests/nativebridge.test.ts +807 -0
  197. package/tests/navigation.test.ts +284 -0
  198. package/tests/nugetpack.test.ts +83 -0
  199. package/tests/orchestration.test.ts +449 -0
  200. package/tests/originpolicy.test.ts +405 -0
  201. package/tests/outputcompare.test.ts +97 -0
  202. package/tests/package.test.ts +91 -0
  203. package/tests/pagebridge.test.ts +5909 -0
  204. package/tests/pentest.test.ts +75 -0
  205. package/tests/perfrecords.test.ts +257 -0
  206. package/tests/permdiff.test.ts +85 -0
  207. package/tests/phishguard.test.ts +128 -0
  208. package/tests/pickerviews.test.ts +155 -0
  209. package/tests/pipelines.test.ts +381 -0
  210. package/tests/planlint.test.ts +240 -0
  211. package/tests/planreview.test.ts +383 -0
  212. package/tests/platformtargets.test.ts +56 -0
  213. package/tests/policy.test.ts +8284 -0
  214. package/tests/portability.test.ts +96 -0
  215. package/tests/progress.test.ts +1036 -0
  216. package/tests/promptlibrary.test.ts +116 -0
  217. package/tests/protocol.test.ts +4793 -0
  218. package/tests/publishingpipeline.test.ts +314 -0
  219. package/tests/quickactions.test.ts +164 -0
  220. package/tests/readiness.test.ts +78 -0
  221. package/tests/recipes.test.ts +163 -0
  222. package/tests/redactshots.test.ts +216 -0
  223. package/tests/registernvidiakeys.ts +51 -0
  224. package/tests/relayserve.test.ts +304 -0
  225. package/tests/releasenotes.test.ts +276 -0
  226. package/tests/resilience.test.ts +467 -0
  227. package/tests/resourceaware.test.ts +187 -0
  228. package/tests/runbudget.test.ts +125 -0
  229. package/tests/runhistory.test.ts +299 -0
  230. package/tests/runreplay.test.ts +113 -0
  231. package/tests/runresume.test.ts +184 -0
  232. package/tests/runstate.test.ts +288 -0
  233. package/tests/runtimeadapters.test.ts +251 -0
  234. package/tests/safariskeleton.test.ts +115 -0
  235. package/tests/sandboxframe.test.ts +196 -0
  236. package/tests/sbom.test.ts +105 -0
  237. package/tests/secretvault.test.ts +188 -0
  238. package/tests/selcache.test.ts +111 -0
  239. package/tests/sessioninterface.test.ts +791 -0
  240. package/tests/sessions.test.ts +591 -0
  241. package/tests/siteprefs.test.ts +228 -0
  242. package/tests/snapshotdelta.test.ts +165 -0
  243. package/tests/statusviews.test.ts +237 -0
  244. package/tests/stepmeter.test.ts +200 -0
  245. package/tests/streamparse.test.ts +163 -0
  246. package/tests/stylepruning.test.ts +90 -0
  247. package/tests/surfaces.test.ts +282 -0
  248. package/tests/sweep.test.ts +78 -0
  249. package/tests/syncbridge.test.ts +164 -0
  250. package/tests/taskqueue.test.ts +206 -0
  251. package/tests/toolcalls.test.ts +336 -0
  252. package/tests/toolcatalog.test.ts +201 -0
  253. package/tests/torture-agent.test.ts +706 -0
  254. package/tests/torture-auth.test.ts +461 -0
  255. package/tests/torture-commands.test.ts +895 -0
  256. package/tests/torture-data.test.ts +923 -0
  257. package/tests/torture-environments.test.ts +285 -0
  258. package/tests/torture-export.test.ts +263 -0
  259. package/tests/torture-http.test.ts +1379 -0
  260. package/tests/torture-llm.test.ts +808 -0
  261. package/tests/torture-memory.test.ts +1084 -0
  262. package/tests/torture-plan.test.ts +829 -0
  263. package/tests/torture-run.test.ts +626 -0
  264. package/tests/torture-session.test.ts +928 -0
  265. package/tests/torture-swarm.test.ts +1245 -0
  266. package/tests/torture-tools.test.ts +964 -0
  267. package/tests/torture-workflow.test.ts +2354 -0
  268. package/tests/tourviews.test.ts +52 -0
  269. package/tests/transparency.test.ts +147 -0
  270. package/tests/trigger.test.ts +941 -0
  271. package/tests/v1sunset.test.ts +428 -0
  272. package/tests/virtlist.test.ts +94 -0
  273. package/tests/vision.test.ts +540 -0
  274. package/tests/vsixpack.test.ts +145 -0
  275. package/tests/webapi.test.ts +523 -0
  276. package/tests/workflow.test.ts +1785 -0
  277. package/tests/workfloweditor.test.ts +759 -0
  278. package/tests/xpipack.test.ts +128 -0
  279. package/tools.ts +734 -0
  280. package/types.ts +9908 -0
  281. package/umd.ts +9 -0
  282. package/utils.ts +249 -0
  283. package/version.ts +8 -0
  284. package/versionregistry.ts +1310 -0
  285. package/views.ts +2153 -0
  286. package/vitest.config.ts +12 -0
  287. package/web/App.tsx +78 -0
  288. package/web/README.md +47 -0
  289. package/web/capacitor.config.ts +46 -0
  290. package/web/const.ts +19 -0
  291. package/web/control.shell.tsx +66 -0
  292. package/web/dashboardpage.ts +554 -0
  293. package/web/db.ts +493 -0
  294. package/web/design.html +541 -0
  295. package/web/gatewayview/Gateway.tsx +345 -0
  296. package/web/gatewayview/config.ts +1042 -0
  297. package/web/gatewayview/definition.ts +174 -0
  298. package/web/icons.ts +15 -0
  299. package/{manifest.json → web/manifest.json} +1 -1
  300. package/web/optionspage.ts +691 -0
  301. package/web/popup.ts +1651 -0
  302. package/web/schema.prisma +176 -0
  303. package/web/sidepanel.ts +7941 -0
  304. package/web/sitemanifest.json +13 -0
  305. package/web/terminal-ui.tsx +622 -0
  306. package/web/transparencypage.ts +541 -0
  307. package/web/vite.config.ts +39 -0
  308. package/web/workspace.ts +23 -0
  309. package/workbenchmemory.ts +104 -0
  310. package/workbenchsession.ts +304 -0
  311. package/workflow.ts +4495 -0
  312. package/bridge.d.ts.map +0 -1
  313. package/bridge.js +0 -1877
  314. package/bun.d.ts.map +0 -1
  315. package/bun.js +0 -52329
  316. package/caps/background.json +0 -712
  317. package/caps/cli.json +0 -360
  318. package/caps/library.json +0 -3611
  319. package/caps/mcp.json +0 -126
  320. package/caps/pagebridge.json +0 -377
  321. package/caps/popup.json +0 -51
  322. package/caps/sidepanel.json +0 -522
  323. package/checksums.txt +0 -142
  324. package/cli.d.ts.map +0 -1
  325. package/companion.d.ts.map +0 -1
  326. package/companion.js +0 -389
  327. package/crossbrowser.d.ts.map +0 -1
  328. package/crossbrowser.js +0 -1191
  329. package/dashdone.d.ts.map +0 -1
  330. package/dashdone.js +0 -368
  331. package/deno.d.ts.map +0 -1
  332. package/deno.js +0 -52325
  333. package/devthink.umd.js +0 -52346
  334. package/fixtures/bun.ts +0 -7
  335. package/fixtures/cjs.js +0 -6
  336. package/fixtures/deno.ts +0 -6
  337. package/fixtures/example-org-pagestate.json +0 -22
  338. package/fixtures/importers/automa-workflow.json +0 -18
  339. package/fixtures/importers/selenium-side.json +0 -20
  340. package/fixtures/importers/tabular-plan.csv +0 -7
  341. package/fixtures/importers/uivision-macro.json +0 -10
  342. package/fixtures/importers/v1-plan.json +0 -13
  343. package/fixtures/mcp-client.mjs +0 -14
  344. package/fixtures/pages/checkout.html +0 -192
  345. package/fixtures/pages/dashboard.html +0 -110
  346. package/fixtures/pages/feed.html +0 -113
  347. package/fixtures/pages/product-grid.html +0 -150
  348. package/fixtures/plans/form-inventory-plan.json +0 -11
  349. package/fixtures/plans/release-notes-plan.json +0 -11
  350. package/fixtures/recipes/agentscompete.json +0 -11
  351. package/fixtures/recipes/agentsforms.json +0 -11
  352. package/fixtures/recipes/agentsmonitor.json +0 -11
  353. package/fixtures/recipes/agentsreview.json +0 -29
  354. package/fixtures/recipes/agentswarm.json +0 -11
  355. package/fixtures/recipes/fillcalendar.json +0 -12
  356. package/fixtures/recipes/fillcheckout.json +0 -13
  357. package/fixtures/recipes/filldependentdropdowns.json +0 -12
  358. package/fixtures/recipes/fillfromcsv.json +0 -13
  359. package/fixtures/recipes/fillloginform.json +0 -12
  360. package/fixtures/recipes/fillmultistepwizard.json +0 -13
  361. package/fixtures/recipes/fillregistration.json +0 -12
  362. package/fixtures/recipes/fillsearchfilters.json +0 -12
  363. package/fixtures/recipes/filltypeahead.json +0 -11
  364. package/fixtures/recipes/monitoralerts.json +0 -12
  365. package/fixtures/recipes/monitoravailability.json +0 -11
  366. package/fixtures/recipes/monitornetworkquiet.json +0 -12
  367. package/fixtures/recipes/monitorpagechanges.json +0 -11
  368. package/fixtures/recipes/monitorpricechange.json +0 -11
  369. package/fixtures/recipes/monitorschedule.json +0 -12
  370. package/fixtures/recipes/scrapedynamicprices.json +0 -13
  371. package/fixtures/recipes/scrapeimagegallery.json +0 -12
  372. package/fixtures/recipes/scrapeinfinitefeed.json +0 -13
  373. package/fixtures/recipes/scrapenestedlists.json +0 -12
  374. package/fixtures/recipes/scrapeproductgrid.json +0 -12
  375. package/fixtures/recipes/scrapereviews.json +0 -12
  376. package/fixtures/recipes/scrapesearchresults.json +0 -12
  377. package/fixtures/recipes/scrapetablepagination.json +0 -12
  378. package/fixtures/recipes/testaccessibility.json +0 -34
  379. package/fixtures/recipes/testconsoleerrors.json +0 -12
  380. package/fixtures/recipes/testdeeplinks.json +0 -12
  381. package/fixtures/recipes/testformvalidation.json +0 -13
  382. package/fixtures/recipes/testlayoutshift.json +0 -12
  383. package/fixtures/recipes/testlinkcheck.json +0 -12
  384. package/fixtures/recipes/testloadtiming.json +0 -12
  385. package/fixtures/recipes/testvisualdiff.json +0 -12
  386. package/fixtures/workflows/changelog-digest-workflow.json +0 -13
  387. package/fixtures/workflows/form-survey-workflow.json +0 -13
  388. package/gallery.json +0 -706
  389. package/hardening.d.ts.map +0 -1
  390. package/hardening.js +0 -188
  391. package/headless.d.ts.map +0 -1
  392. package/headless.js +0 -11522
  393. package/http.d.ts.map +0 -1
  394. package/http.js +0 -2165
  395. package/index.cjs +0 -54682
  396. package/index.d.ts.map +0 -1
  397. package/index.js +0 -52310
  398. package/index.neutral.js +0 -46343
  399. package/mcp.d.ts.map +0 -1
  400. package/mcp.js +0 -20515
  401. package/memory.d.ts.map +0 -1
  402. package/nativehost.template.json +0 -10
  403. package/node.cjs +0 -54686
  404. package/node.d.ts.map +0 -1
  405. package/pack.d.ts.map +0 -1
  406. package/pack.js +0 -805
  407. package/policy.d.ts.map +0 -1
  408. package/progress.d.ts.map +0 -1
  409. package/progress.js +0 -645
  410. package/protocol.d.ts.map +0 -1
  411. package/protocol.js +0 -8334
  412. package/schemas/audit.schema.json +0 -226
  413. package/schemas/capability.schema.json +0 -113
  414. package/schemas/envelope.schema.json +0 -162
  415. package/schemas/memory.schema.json +0 -51
  416. package/schemas/observation.schema.json +0 -113
  417. package/schemas/plan.schema.json +0 -208
  418. package/schemas/progress.schema.json +0 -126
  419. package/schemas/proposal.schema.json +0 -68
  420. package/schemas/session.schema.json +0 -82
  421. package/schemas/tool.schema.json +0 -94
  422. package/server.d.ts.map +0 -1
  423. package/server.js +0 -28877
  424. package/umd-example.html +0 -18
  425. package/umd.d.ts.map +0 -1
  426. /package/{bun.d.ts → dist/bun.d.ts} +0 -0
  427. /package/{cli.d.ts → dist/cli.d.ts} +0 -0
  428. /package/{companion.d.ts → dist/companion.d.ts} +0 -0
  429. /package/{crossbrowser.d.ts → dist/crossbrowser.d.ts} +0 -0
  430. /package/{dashdone.d.ts → dist/dashdone.d.ts} +0 -0
  431. /package/{deno.d.ts → dist/deno.d.ts} +0 -0
  432. /package/{hardening.d.ts → dist/hardening.d.ts} +0 -0
  433. /package/{headless.d.ts → dist/headless.d.ts} +0 -0
  434. /package/{http.d.ts → dist/http.d.ts} +0 -0
  435. /package/{index.d.ts → dist/index.d.ts} +0 -0
  436. /package/{mcp.d.ts → dist/mcp.d.ts} +0 -0
  437. /package/{memory.d.ts → dist/memory.d.ts} +0 -0
  438. /package/{node.d.ts → dist/node.d.ts} +0 -0
  439. /package/{pack.d.ts → dist/pack.d.ts} +0 -0
  440. /package/{policy.d.ts → dist/policy.d.ts} +0 -0
  441. /package/{progress.d.ts → dist/progress.d.ts} +0 -0
  442. /package/{protocol.d.ts → dist/protocol.d.ts} +0 -0
  443. /package/{server.d.ts → dist/server.d.ts} +0 -0
  444. /package/{umd.d.ts → dist/umd.d.ts} +0 -0
@@ -0,0 +1,409 @@
1
+ /**
2
+ * @fileoverview accounts.ts — the account manager core of the merged provider lineage
3
+ * @module auth/accounts
4
+ * @description
5
+ * Production-ready multi-account management for the provider plugin.
6
+ * MERGED FILE - superset of every previous duplicate:
7
+ * - Multiple Google accounts with refresh token support
8
+ * - Storage at ~/.config/opencode/antigravity-accounts.json (chmod 600, atomic write)
9
+ * - Round-robin + sticky active account rotation
10
+ * - Double-checked locking for access token refresh
11
+ * - Quota/429 detection with automatic rotation
12
+ * - Background refresh of tokens close to expiry
13
+ * - Import from antigravity-manager (multiple legacy formats)
14
+ * - Official Gemini CLI bypass headers
15
+ * - Ported from the flat-file variant: legacy flat-file reader (Account[] format,
16
+ * type Account, AccountsFileV3 wrapper), QuotaInfo reporting type,
17
+ * QuotaExhaustedOptions, RefreshResult, ensureAccountsFile/loadAccountsSnapshot
18
+ * helpers and resolveAccountsPath/resolveConfigDir/
19
+ * resolveAntagravityManagerCandidates path resolvers.
20
+ *
21
+ * Zero external dependencies: only node:* builtins + global fetch (Node 18+).
22
+ *
23
+ * @author ONDA 3 - Core Modules
24
+ * @license MIT
25
+ * @version 3.1.0
26
+ */
27
+ import { GEMINI_CLI_OAUTH_CLIENT_ID, GEMINI_CLI_OAUTH_CLIENT_SECRET, OAUTH_TOKEN_URL, PROJECT_FALLBACK } from "./constants.js";
28
+ import { GEMINI_CLI_USER_AGENT_MINIMAL as GEMINI_CLI_USER_AGENT, GEMINI_CLI_USER_AGENT as GEMINI_CLI_USER_AGENT_FULL } from "./constants.js";
29
+ import { X_GOOG_API_CLIENT_GEMINI_CLI as X_GOOG_API_CLIENT } from "./fingerprint.js";
30
+ export { GEMINI_CLI_OAUTH_CLIENT_ID, GEMINI_CLI_OAUTH_CLIENT_SECRET, OAUTH_TOKEN_URL, PROJECT_FALLBACK, GEMINI_CLI_USER_AGENT, GEMINI_CLI_USER_AGENT_FULL, X_GOOG_API_CLIENT, };
31
+ /** Official Gemini CLI OAuth2 Client ID - raw without suffix */
32
+ export declare const GEMINI_CLI_CLIENT_ID_RAW: "681255809395-oo8f…b135j";
33
+ /**
34
+ * Antigravity CLI OAuth client (`agy` binary) — the client the provider
35
+ * account console presents for NEW logins since 2.1.8. v2.1.16 single-owner
36
+ * fix: imported from constants.js (the layer-0 raw-value owner —
37
+ * env-overridable through ANTIGRAVITY_CLIENT_ID /
38
+ * ANTIGRAVITY_CLIENT_SECRET); the former local segment-assembled copy was a
39
+ * byte-identical duplicate.
40
+ */
41
+ export declare const ANTIGRAVITY_CLI_OAUTH_CLIENT_ID: string;
42
+ /** Antigravity CLI client secret — alias of the constants.js owner (v2.1.16). */
43
+ export declare const ANTIGRAVITY_CLI_OAUTH_CLIENT_SECRET: string;
44
+ /** Bypass headers - canonical values required by WAVE 3.
45
+ * v2.1.16 single-owner fix: alias of constants.GEMINI_CLI_USER_AGENT (the
46
+ * full live-validated UA string — byte-identical to the former local copy). */
47
+ import { MODELS_2026_LEGACY as MODELS_2026 } from "./models.js";
48
+ import type { Model2026 } from "./models.js";
49
+ export { MODELS_2026 };
50
+ export type { Model2026 };
51
+ export interface OAuthClientConfig {
52
+ clientId: string;
53
+ clientSecret: string;
54
+ }
55
+ export type OAuthClientKey = "gemini-cli" | "antigravity-manager" | "antigravity" | "custom" | string;
56
+ export interface AccountMetadataV3 {
57
+ /** Normalized lower-case email */
58
+ email: string;
59
+ /** OAuth2 refresh token (long-lived) */
60
+ refreshToken: string;
61
+ /** Current access token (short-lived, 1h) */
62
+ accessToken?: string | undefined;
63
+ /** Epoch ms when accessToken expires */
64
+ expiryDate?: number | undefined;
65
+ /** Linked Cloud Project ID (or fallback) */
66
+ projectId?: string | undefined;
67
+ /** Whether the account is enabled for use */
68
+ enabled: boolean;
69
+ /** Identifying key of the OAuth client used */
70
+ oauthClientKey: OAuthClientKey;
71
+ /** Custom OAuth config, if oauthClientKey=custom */
72
+ oauthClientConfig?: OAuthClientConfig | undefined;
73
+ /** Epoch ms of last successful refresh */
74
+ lastRefresh?: number | undefined;
75
+ /** Epoch ms of record creation */
76
+ createdAt: number;
77
+ /** Epoch ms of last use (for LRU / rotation) */
78
+ lastUsedAt?: number | undefined;
79
+ /** Consecutive failure counter (quota, 401, etc) */
80
+ failureCount?: number | undefined;
81
+ /** Reason for temporary disablement */
82
+ disabledReason?: string | undefined;
83
+ /** Epoch ms until which the account stays disabled (cooldown) */
84
+ disabledUntil?: number | undefined;
85
+ /** Scopes this account holds (optional, for audit) */
86
+ scopes?: string[] | undefined;
87
+ }
88
+ export interface AccountStore {
89
+ /** Schema version - always 3 */
90
+ version: 3;
91
+ /** Account list */
92
+ accounts: AccountMetadataV3[];
93
+ /** Active email in sticky mode */
94
+ activeEmail?: string | null;
95
+ /** Round-robin rotation index */
96
+ rotationIndex?: number;
97
+ /** Selection strategy: round-robin (default) or sticky */
98
+ rotationStrategy?: "round-robin" | "sticky";
99
+ /** When the store was created */
100
+ createdAt?: number | undefined;
101
+ /** Last update */
102
+ updatedAt?: number | undefined;
103
+ /** Last error-driven rotation */
104
+ lastRotationAt?: number | undefined;
105
+ /** Email that caused the last rotation (for debug) */
106
+ lastRotatedFrom?: string | undefined;
107
+ }
108
+ export type RotationStrategy = "round-robin" | "sticky";
109
+ export interface AddAccountInput {
110
+ email: string;
111
+ refreshToken: string;
112
+ accessToken?: string;
113
+ expiryDate?: number;
114
+ projectId?: string;
115
+ enabled?: boolean;
116
+ oauthClientKey?: OAuthClientKey;
117
+ oauthClientConfig?: OAuthClientConfig;
118
+ scopes?: string[];
119
+ }
120
+ export interface ImportResult {
121
+ imported: number;
122
+ skipped: number;
123
+ updated: number;
124
+ errors: string[];
125
+ sources: string[];
126
+ accounts: AccountMetadataV3[];
127
+ }
128
+ export interface TokenRefreshResponse {
129
+ access_token: string;
130
+ expires_in: number;
131
+ token_type: string;
132
+ scope?: string;
133
+ id_token?: string;
134
+ }
135
+ /**
136
+ * Quota snapshot per account, mirrors v1internal:retrieveUserQuotaSummary
137
+ * but kept lightweight in storage. Reporting-only type.
138
+ */
139
+ export interface QuotaInfo {
140
+ /** Remaining percentage or tokens, optional */
141
+ remaining?: number;
142
+ /** Limit */
143
+ limit?: number;
144
+ /** Reset timestamp ms */
145
+ resetAt?: number;
146
+ /** True when exhausted */
147
+ exhausted?: boolean;
148
+ /** Raw group mapped from model to group, e.g. antigravity, gemini-cli */
149
+ group?: string;
150
+ /** Last check ms */
151
+ lastChecked?: number;
152
+ /** Per-model counters when dual pool */
153
+ pools?: Record<string, {
154
+ remaining?: number;
155
+ resetAt?: number;
156
+ }>;
157
+ }
158
+ /**
159
+ * V3 legacy Account - flat storage format compatible with the
160
+ * antigravity-manager flat export {email, refresh_token}.
161
+ */
162
+ export interface Account {
163
+ /** Unique email, lowercased */
164
+ email: string;
165
+ /** Google OAuth refresh token (1//...) */
166
+ refreshToken: string;
167
+ /** Cached bearer access token */
168
+ accessToken?: string | undefined;
169
+ /** Expiry epoch ms (Date.now() + expires_in*1000) */
170
+ expiry?: number | undefined;
171
+ /** Cloud project id resolved via loadCodeAssist / onboardUser */
172
+ projectId?: string | undefined;
173
+ /** Soft disabled flag - user can toggle */
174
+ disabled?: boolean | undefined;
175
+ /** Quota exhausted until epoch ms - skip in rotation */
176
+ quotaExhaustedUntil?: number | undefined;
177
+ /** Last usage epoch ms */
178
+ lastUsed?: number | undefined;
179
+ /** Creation epoch ms */
180
+ createdAt?: number | undefined;
181
+ /** Update epoch ms */
182
+ updatedAt?: number | undefined;
183
+ /** Cached quota snapshot */
184
+ quota?: QuotaInfo | undefined;
185
+ /** Optional stable id (uuid) */
186
+ id?: string | undefined;
187
+ /** Account pool type */
188
+ type?: "antigravity" | "gemini-cli" | "auto" | string | undefined;
189
+ /** Display name from userinfo */
190
+ displayName?: string | undefined;
191
+ /** Optional metadata - not persisted critically */
192
+ metadata?: Record<string, unknown> | undefined;
193
+ }
194
+ /** Flat file wrapper - versioned for forward migration */
195
+ export interface AccountsFileV3 {
196
+ version: 3;
197
+ accounts: Account[];
198
+ lastRotationIndex?: number;
199
+ lastStickyEmail?: string | null;
200
+ updatedAt?: number;
201
+ /** Optional fallback project cache */
202
+ fallbackProjectId?: string;
203
+ }
204
+ /** Result of a token refresh in flat shape */
205
+ export interface RefreshResult {
206
+ accessToken: string;
207
+ /** Expiry epoch ms */
208
+ expiry: number;
209
+ projectId?: string;
210
+ raw?: Record<string, unknown>;
211
+ }
212
+ /** Options for marking quota exhaustion */
213
+ export interface QuotaExhaustedOptions {
214
+ durationMs?: number;
215
+ reason?: string;
216
+ group?: string;
217
+ model?: string;
218
+ }
219
+ /**
220
+ * Resolves the config directory honoring OPENCODE_CONFIG_DIR env fallback.
221
+ * Pure resolver - no side effects here.
222
+ */
223
+ import { resolveConfigDir } from "./config.js";
224
+ export { resolveConfigDir };
225
+ export declare function resolveAccountsFilePath(customDir?: string): string;
226
+ /**
227
+ * Resolves the full accounts file path.
228
+ * When custom is provided it is treated as a complete file path override;
229
+ * otherwise resolves to <configDir>/antigravity-accounts.json.
230
+ */
231
+ export declare function resolveAccountsPath(custom?: string): string;
232
+ /**
233
+ * Candidate paths for antigravity-manager import.
234
+ * Honors ANTIGRAVITY_MANAGER_ACCOUNTS_PATH env override and Windows AppData.
235
+ */
236
+ export declare function resolveAntagravityManagerCandidates(): string[];
237
+ /**
238
+ * Helper to ensure the accounts file exists with safe perms, idempotent.
239
+ * Creates an empty AccountsFileV3 payload when missing.
240
+ *
241
+ * @param filePath optional full file path override
242
+ * @returns resolved file path
243
+ */
244
+ export declare function ensureAccountsFile(filePath?: string): Promise<string>;
245
+ /**
246
+ * Quick utility - reads accounts without a manager instance.
247
+ * Uses the legacy flat-file reader, tolerant to every historical shape.
248
+ *
249
+ * @param filePath optional full file path override
250
+ * @returns sanitized Account[] snapshot (empty on missing/corrupt file)
251
+ */
252
+ export declare function loadAccountsSnapshot(filePath?: string): Promise<Account[]>;
253
+ export declare function isQuotaError(err: unknown): boolean;
254
+ export interface AccountManagerOptions {
255
+ /** Override of the base directory (default ~/.config/opencode) */
256
+ configDir?: string;
257
+ /** File name (default antigravity-accounts.json) */
258
+ fileName?: string;
259
+ /** Default strategy if store does not have one */
260
+ rotationStrategy?: RotationStrategy;
261
+ /** Custom full path (takes precedence over configDir+fileName) */
262
+ filePath?: string;
263
+ /** Optional logger */
264
+ logger?: {
265
+ info?: (msg: string, ...args: any[]) => void;
266
+ warn?: (msg: string, ...args: any[]) => void;
267
+ error?: (msg: string, ...args: any[]) => void;
268
+ debug?: (msg: string, ...args: any[]) => void;
269
+ };
270
+ /** Disables background auto-refresh timer */
271
+ disableBackgroundTimer?: boolean;
272
+ }
273
+ export declare class AccountManager {
274
+ private readonly storePath;
275
+ private store;
276
+ private rotationIdx;
277
+ private readonly refreshLocks;
278
+ private backgroundTimer?;
279
+ private readonly logger;
280
+ private readonly options;
281
+ constructor(opts?: AccountManagerOptions);
282
+ /**
283
+ * Loads accounts from ~/.config/opencode/antigravity-accounts.json
284
+ * - Creates the file if missing with default store
285
+ * - chmod 600 on every read/write
286
+ * - Sanitizes schema V3
287
+ */
288
+ loadAccounts(): AccountStore;
289
+ /**
290
+ * Saves store to disk atomically with chmod 600
291
+ */
292
+ saveAccounts(): void;
293
+ /**
294
+ * Saves a custom store atomically - used for tests / import
295
+ */
296
+ saveAccountsAtomic(store: AccountStore): void;
297
+ getAccountCount(): number;
298
+ getEnabledAccounts(): AccountMetadataV3[];
299
+ listAccounts(): AccountMetadataV3[];
300
+ /** List with refreshToken masked (safe for log/UI) */
301
+ listAccountsMasked(): Array<Omit<AccountMetadataV3, "refreshToken"> & {
302
+ refreshTokenMasked: string;
303
+ }>;
304
+ findAccount(email: string): AccountMetadataV3 | undefined;
305
+ private findAccountIndex;
306
+ /**
307
+ * Adds a new account. If email already exists, updates refreshToken and other data.
308
+ * Returns the added/updated account.
309
+ */
310
+ addAccount(input: AddAccountInput): AccountMetadataV3;
311
+ /**
312
+ * Removes account by email. Returns true if removed.
313
+ */
314
+ removeAccount(email: string): boolean;
315
+ getActiveAccount(): AccountMetadataV3 | null;
316
+ /** Sets the active account (sticky-mode override). Optionally sets strategy to sticky. */
317
+ setActive(email: string, opts?: {
318
+ sticky?: boolean;
319
+ }): AccountMetadataV3;
320
+ enableAccount(email: string): AccountMetadataV3;
321
+ disableAccount(email: string, reason?: string, cooldownMs?: number): AccountMetadataV3;
322
+ enable(email: string): AccountMetadataV3;
323
+ disable(email: string, reason?: string, cooldownMs?: number): AccountMetadataV3;
324
+ /**
325
+ * Detects quota/429 errors and rotates to the next enabled account.
326
+ * Accepts flexible signatures:
327
+ * - rotateOnError(error)
328
+ * - rotateOnError(email, error)
329
+ * - rotateOnError(error, email)
330
+ */
331
+ rotateOnError(errorOrEmail: unknown, maybeErrorOrEmail?: unknown): AccountMetadataV3 | null;
332
+ /**
333
+ * Refresh with double-checked locking
334
+ * - Checks expiry before lock
335
+ * - If a lock exists, waits for it and re-checks
336
+ * - Only then performs the refresh
337
+ */
338
+ refreshAccessTokenIfNeeded(email: string, force?: boolean): Promise<AccountMetadataV3>;
339
+ /**
340
+ * Returns a valid access token, refreshing if needed.
341
+ * If email is omitted, uses the active account (round-robin/sticky).
342
+ */
343
+ getValidAccessToken(email?: string): Promise<string>;
344
+ /**
345
+ * Background refresh of all enabled accounts close to expiry
346
+ * - Does not block callers
347
+ * - Uses allSettled so the batch never fails as a whole
348
+ */
349
+ backgroundRefresh(): Promise<void>;
350
+ /**
351
+ * Starts background refresh without awaiting (fire-and-forget)
352
+ */
353
+ triggerBackgroundRefresh(): void;
354
+ private static getAntigravityManagerCandidatePaths;
355
+ private static extractAccountsFromRaw;
356
+ /**
357
+ * Imports accounts from existing antigravity-manager installations.
358
+ * Tries multiple paths and legacy formats (including the flat Account[]
359
+ * reader), merging into the current store without duplicates.
360
+ */
361
+ importFromAntigravityManager(): Promise<ImportResult>;
362
+ /** Alias compat requested by consumers */
363
+ importFromAntigravity(): Promise<ImportResult>;
364
+ /** Additional alias for backwards compatibility */
365
+ importAccounts(): Promise<ImportResult>;
366
+ /** Clears the background timer (useful in tests) */
367
+ destroy(): void;
368
+ /** File path */
369
+ getStorePath(): string;
370
+ /** Raw store (clone) */
371
+ getStore(): AccountStore;
372
+ /** Sets the rotation strategy */
373
+ setRotationStrategy(strategy: RotationStrategy): void;
374
+ }
375
+ /** Returns the default lazy singleton instance */
376
+ export declare function getDefaultAccountManager(opts?: AccountManagerOptions): AccountManager;
377
+ /** Resets the singleton (tests) */
378
+ export declare function resetDefaultAccountManager(): void;
379
+ /** Quick helper to obtain a valid token using the singleton */
380
+ export declare function getValidAccessToken(email?: string, opts?: AccountManagerOptions): Promise<string>;
381
+ /** Quick helper to obtain the active account */
382
+ export declare function getActiveAccount(opts?: AccountManagerOptions): AccountMetadataV3 | null;
383
+ export default AccountManager;
384
+ export declare const ACCOUNTS_FILE_PATH: string;
385
+ export declare const ACCOUNTS_INFO: {
386
+ readonly CLIENT_ID_RAW: "681255809395-oo8f…b135j";
387
+ readonly CLIENT_ID: string;
388
+ readonly CLIENT_SECRET: string;
389
+ readonly SCOPES: readonly ["https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/userinfo.profile"];
390
+ readonly TOKEN_URL: "https://oauth2.googleapis.com/token";
391
+ readonly USER_AGENT: "GeminiCLI/0.57.0";
392
+ readonly USER_AGENT_FULL: "GeminiCLI/0.57.0/gemini-3-pro-preview (linux; x64; GitHub) google-api-nodejs-client/9.15.1";
393
+ readonly X_GOOG_API_CLIENT: "gl-node/22.19.0";
394
+ readonly CLIENT_METADATA: "ideType=IDE_UNSPECIFIED,platform=PLATFORM_UNSPECIFIED,pluginType=GEMINI";
395
+ readonly CLOUDCODE_BASE_URL: "https://cloudcode-pa.googleapis.com";
396
+ readonly CLOUDCODE_ENDPOINTS: {
397
+ readonly base: "https://cloudcode-pa.googleapis.com";
398
+ readonly loadCodeAssist: "https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist";
399
+ readonly onboardUser: "https://cloudcode-pa.googleapis.com/v1internal:onboardUser";
400
+ readonly fetchAvailableModels: "https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels";
401
+ readonly generateContent: "https://cloudcode-pa.googleapis.com/v1internal:generateContent";
402
+ readonly streamGenerateContent: "https://cloudcode-pa.googleapis.com/v1internal:streamGenerateContent";
403
+ readonly retrieveUserQuotaSummary: "https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuotaSummary";
404
+ };
405
+ readonly PROJECT_FALLBACK: "rising-fact-p41fc";
406
+ readonly MODELS_2026: readonly ["antigravity-gemini-3-pro", "antigravity-gemini-3.1-pro", "antigravity-gemini-3-flash", "antigravity-claude-sonnet-4-6", "antigravity-claude-opus-4-6-thinking", "gemini-2.5-flash", "gemini-2.5-pro", "gemini-3-flash-preview", "gemini-3-pro-preview", "gemini-3.1-pro-preview", "gemini-3.1-pro-preview-customtools"];
407
+ readonly ACCOUNTS_FILE_PATH: string;
408
+ };
409
+ //# sourceMappingURL=accounts.d.ts.map