opencode-agy-auth 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +745 -0
  3. package/dist/index.d.ts +4 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +3 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/src/antigravity/oauth.d.ts +31 -0
  8. package/dist/src/antigravity/oauth.d.ts.map +1 -0
  9. package/dist/src/antigravity/oauth.js +171 -0
  10. package/dist/src/antigravity/oauth.js.map +1 -0
  11. package/dist/src/constants.d.ts +155 -0
  12. package/dist/src/constants.d.ts.map +1 -0
  13. package/dist/src/constants.js +251 -0
  14. package/dist/src/constants.js.map +1 -0
  15. package/dist/src/hooks/auto-update-checker/cache.d.ts +3 -0
  16. package/dist/src/hooks/auto-update-checker/cache.d.ts.map +1 -0
  17. package/dist/src/hooks/auto-update-checker/cache.js +71 -0
  18. package/dist/src/hooks/auto-update-checker/cache.js.map +1 -0
  19. package/dist/src/hooks/auto-update-checker/checker.d.ts +16 -0
  20. package/dist/src/hooks/auto-update-checker/checker.d.ts.map +1 -0
  21. package/dist/src/hooks/auto-update-checker/checker.js +237 -0
  22. package/dist/src/hooks/auto-update-checker/checker.js.map +1 -0
  23. package/dist/src/hooks/auto-update-checker/constants.d.ts +9 -0
  24. package/dist/src/hooks/auto-update-checker/constants.d.ts.map +1 -0
  25. package/dist/src/hooks/auto-update-checker/constants.js +23 -0
  26. package/dist/src/hooks/auto-update-checker/constants.js.map +1 -0
  27. package/dist/src/hooks/auto-update-checker/index.d.ts +34 -0
  28. package/dist/src/hooks/auto-update-checker/index.d.ts.map +1 -0
  29. package/dist/src/hooks/auto-update-checker/index.js +125 -0
  30. package/dist/src/hooks/auto-update-checker/index.js.map +1 -0
  31. package/dist/src/hooks/auto-update-checker/types.d.ts +25 -0
  32. package/dist/src/hooks/auto-update-checker/types.d.ts.map +1 -0
  33. package/dist/src/hooks/auto-update-checker/types.js +1 -0
  34. package/dist/src/hooks/auto-update-checker/types.js.map +1 -0
  35. package/dist/src/plugin/accounts.d.ts +174 -0
  36. package/dist/src/plugin/accounts.d.ts.map +1 -0
  37. package/dist/src/plugin/accounts.js +1243 -0
  38. package/dist/src/plugin/accounts.js.map +1 -0
  39. package/dist/src/plugin/auth.d.ts +21 -0
  40. package/dist/src/plugin/auth.d.ts.map +1 -0
  41. package/dist/src/plugin/auth.js +46 -0
  42. package/dist/src/plugin/auth.js.map +1 -0
  43. package/dist/src/plugin/cache/index.d.ts +5 -0
  44. package/dist/src/plugin/cache/index.d.ts.map +1 -0
  45. package/dist/src/plugin/cache/index.js +5 -0
  46. package/dist/src/plugin/cache/index.js.map +1 -0
  47. package/dist/src/plugin/cache/signature-cache.d.ts +111 -0
  48. package/dist/src/plugin/cache/signature-cache.d.ts.map +1 -0
  49. package/dist/src/plugin/cache/signature-cache.js +375 -0
  50. package/dist/src/plugin/cache/signature-cache.js.map +1 -0
  51. package/dist/src/plugin/cache.d.ts +44 -0
  52. package/dist/src/plugin/cache.d.ts.map +1 -0
  53. package/dist/src/plugin/cache.js +200 -0
  54. package/dist/src/plugin/cache.js.map +1 -0
  55. package/dist/src/plugin/cli.d.ts +27 -0
  56. package/dist/src/plugin/cli.d.ts.map +1 -0
  57. package/dist/src/plugin/cli.js +130 -0
  58. package/dist/src/plugin/cli.js.map +1 -0
  59. package/dist/src/plugin/config/index.d.ts +16 -0
  60. package/dist/src/plugin/config/index.d.ts.map +1 -0
  61. package/dist/src/plugin/config/index.js +16 -0
  62. package/dist/src/plugin/config/index.js.map +1 -0
  63. package/dist/src/plugin/config/loader.d.ts +38 -0
  64. package/dist/src/plugin/config/loader.d.ts.map +1 -0
  65. package/dist/src/plugin/config/loader.js +204 -0
  66. package/dist/src/plugin/config/loader.js.map +1 -0
  67. package/dist/src/plugin/config/models.d.ts +27 -0
  68. package/dist/src/plugin/config/models.d.ts.map +1 -0
  69. package/dist/src/plugin/config/models.js +79 -0
  70. package/dist/src/plugin/config/models.js.map +1 -0
  71. package/dist/src/plugin/config/schema.d.ts +134 -0
  72. package/dist/src/plugin/config/schema.d.ts.map +1 -0
  73. package/dist/src/plugin/config/schema.js +445 -0
  74. package/dist/src/plugin/config/schema.js.map +1 -0
  75. package/dist/src/plugin/config/updater.d.ts +55 -0
  76. package/dist/src/plugin/config/updater.d.ts.map +1 -0
  77. package/dist/src/plugin/config/updater.js +133 -0
  78. package/dist/src/plugin/config/updater.js.map +1 -0
  79. package/dist/src/plugin/core/streaming/index.d.ts +3 -0
  80. package/dist/src/plugin/core/streaming/index.d.ts.map +1 -0
  81. package/dist/src/plugin/core/streaming/index.js +3 -0
  82. package/dist/src/plugin/core/streaming/index.js.map +1 -0
  83. package/dist/src/plugin/core/streaming/transformer.d.ts +10 -0
  84. package/dist/src/plugin/core/streaming/transformer.d.ts.map +1 -0
  85. package/dist/src/plugin/core/streaming/transformer.js +271 -0
  86. package/dist/src/plugin/core/streaming/transformer.js.map +1 -0
  87. package/dist/src/plugin/core/streaming/types.d.ts +27 -0
  88. package/dist/src/plugin/core/streaming/types.d.ts.map +1 -0
  89. package/dist/src/plugin/core/streaming/types.js +1 -0
  90. package/dist/src/plugin/core/streaming/types.js.map +1 -0
  91. package/dist/src/plugin/debug.d.ts +94 -0
  92. package/dist/src/plugin/debug.d.ts.map +1 -0
  93. package/dist/src/plugin/debug.js +418 -0
  94. package/dist/src/plugin/debug.js.map +1 -0
  95. package/dist/src/plugin/errors.d.ts +28 -0
  96. package/dist/src/plugin/errors.d.ts.map +1 -0
  97. package/dist/src/plugin/errors.js +42 -0
  98. package/dist/src/plugin/errors.js.map +1 -0
  99. package/dist/src/plugin/fingerprint.d.ts +71 -0
  100. package/dist/src/plugin/fingerprint.d.ts.map +1 -0
  101. package/dist/src/plugin/fingerprint.js +140 -0
  102. package/dist/src/plugin/fingerprint.js.map +1 -0
  103. package/dist/src/plugin/image-saver.d.ts +25 -0
  104. package/dist/src/plugin/image-saver.d.ts.map +1 -0
  105. package/dist/src/plugin/image-saver.js +86 -0
  106. package/dist/src/plugin/image-saver.js.map +1 -0
  107. package/dist/src/plugin/logger.d.ts +54 -0
  108. package/dist/src/plugin/logger.d.ts.map +1 -0
  109. package/dist/src/plugin/logger.js +120 -0
  110. package/dist/src/plugin/logger.js.map +1 -0
  111. package/dist/src/plugin/project.d.ts +33 -0
  112. package/dist/src/plugin/project.d.ts.map +1 -0
  113. package/dist/src/plugin/project.js +234 -0
  114. package/dist/src/plugin/project.js.map +1 -0
  115. package/dist/src/plugin/proxy.d.ts +2 -0
  116. package/dist/src/plugin/proxy.d.ts.map +1 -0
  117. package/dist/src/plugin/proxy.js +20 -0
  118. package/dist/src/plugin/proxy.js.map +1 -0
  119. package/dist/src/plugin/quota.d.ts +58 -0
  120. package/dist/src/plugin/quota.d.ts.map +1 -0
  121. package/dist/src/plugin/quota.js +430 -0
  122. package/dist/src/plugin/quota.js.map +1 -0
  123. package/dist/src/plugin/recovery/constants.d.ts +22 -0
  124. package/dist/src/plugin/recovery/constants.d.ts.map +1 -0
  125. package/dist/src/plugin/recovery/constants.js +43 -0
  126. package/dist/src/plugin/recovery/constants.js.map +1 -0
  127. package/dist/src/plugin/recovery/index.d.ts +12 -0
  128. package/dist/src/plugin/recovery/index.d.ts.map +1 -0
  129. package/dist/src/plugin/recovery/index.js +12 -0
  130. package/dist/src/plugin/recovery/index.js.map +1 -0
  131. package/dist/src/plugin/recovery/storage.d.ts +24 -0
  132. package/dist/src/plugin/recovery/storage.d.ts.map +1 -0
  133. package/dist/src/plugin/recovery/storage.js +354 -0
  134. package/dist/src/plugin/recovery/storage.js.map +1 -0
  135. package/dist/src/plugin/recovery/types.d.ts +116 -0
  136. package/dist/src/plugin/recovery/types.d.ts.map +1 -0
  137. package/dist/src/plugin/recovery/types.js +6 -0
  138. package/dist/src/plugin/recovery/types.js.map +1 -0
  139. package/dist/src/plugin/recovery.d.ts +61 -0
  140. package/dist/src/plugin/recovery.d.ts.map +1 -0
  141. package/dist/src/plugin/recovery.js +378 -0
  142. package/dist/src/plugin/recovery.js.map +1 -0
  143. package/dist/src/plugin/refresh-queue.d.ts +101 -0
  144. package/dist/src/plugin/refresh-queue.d.ts.map +1 -0
  145. package/dist/src/plugin/refresh-queue.js +248 -0
  146. package/dist/src/plugin/refresh-queue.js.map +1 -0
  147. package/dist/src/plugin/request-helpers.d.ts +306 -0
  148. package/dist/src/plugin/request-helpers.d.ts.map +1 -0
  149. package/dist/src/plugin/request-helpers.js +2476 -0
  150. package/dist/src/plugin/request-helpers.js.map +1 -0
  151. package/dist/src/plugin/request.d.ts +98 -0
  152. package/dist/src/plugin/request.d.ts.map +1 -0
  153. package/dist/src/plugin/request.js +1513 -0
  154. package/dist/src/plugin/request.js.map +1 -0
  155. package/dist/src/plugin/rotation.d.ts +169 -0
  156. package/dist/src/plugin/rotation.d.ts.map +1 -0
  157. package/dist/src/plugin/rotation.js +328 -0
  158. package/dist/src/plugin/rotation.js.map +1 -0
  159. package/dist/src/plugin/search.d.ts +32 -0
  160. package/dist/src/plugin/search.d.ts.map +1 -0
  161. package/dist/src/plugin/search.js +195 -0
  162. package/dist/src/plugin/search.js.map +1 -0
  163. package/dist/src/plugin/server.d.ts +23 -0
  164. package/dist/src/plugin/server.d.ts.map +1 -0
  165. package/dist/src/plugin/server.js +324 -0
  166. package/dist/src/plugin/server.js.map +1 -0
  167. package/dist/src/plugin/storage.d.ts +137 -0
  168. package/dist/src/plugin/storage.d.ts.map +1 -0
  169. package/dist/src/plugin/storage.js +588 -0
  170. package/dist/src/plugin/storage.js.map +1 -0
  171. package/dist/src/plugin/stores/signature-store.d.ts +5 -0
  172. package/dist/src/plugin/stores/signature-store.d.ts.map +1 -0
  173. package/dist/src/plugin/stores/signature-store.js +25 -0
  174. package/dist/src/plugin/stores/signature-store.js.map +1 -0
  175. package/dist/src/plugin/thinking-recovery.d.ts +90 -0
  176. package/dist/src/plugin/thinking-recovery.d.ts.map +1 -0
  177. package/dist/src/plugin/thinking-recovery.js +316 -0
  178. package/dist/src/plugin/thinking-recovery.js.map +1 -0
  179. package/dist/src/plugin/token.d.ts +19 -0
  180. package/dist/src/plugin/token.d.ts.map +1 -0
  181. package/dist/src/plugin/token.js +128 -0
  182. package/dist/src/plugin/token.js.map +1 -0
  183. package/dist/src/plugin/transform/claude.d.ts +82 -0
  184. package/dist/src/plugin/transform/claude.d.ts.map +1 -0
  185. package/dist/src/plugin/transform/claude.js +278 -0
  186. package/dist/src/plugin/transform/claude.js.map +1 -0
  187. package/dist/src/plugin/transform/cross-model-sanitizer.d.ts +35 -0
  188. package/dist/src/plugin/transform/cross-model-sanitizer.d.ts.map +1 -0
  189. package/dist/src/plugin/transform/cross-model-sanitizer.js +225 -0
  190. package/dist/src/plugin/transform/cross-model-sanitizer.js.map +1 -0
  191. package/dist/src/plugin/transform/gemini.d.ts +100 -0
  192. package/dist/src/plugin/transform/gemini.d.ts.map +1 -0
  193. package/dist/src/plugin/transform/gemini.js +504 -0
  194. package/dist/src/plugin/transform/gemini.js.map +1 -0
  195. package/dist/src/plugin/transform/index.d.ts +15 -0
  196. package/dist/src/plugin/transform/index.d.ts.map +1 -0
  197. package/dist/src/plugin/transform/index.js +14 -0
  198. package/dist/src/plugin/transform/index.js.map +1 -0
  199. package/dist/src/plugin/transform/model-resolver.d.ts +104 -0
  200. package/dist/src/plugin/transform/model-resolver.d.ts.map +1 -0
  201. package/dist/src/plugin/transform/model-resolver.js +409 -0
  202. package/dist/src/plugin/transform/model-resolver.js.map +1 -0
  203. package/dist/src/plugin/transform/types.d.ts +111 -0
  204. package/dist/src/plugin/transform/types.d.ts.map +1 -0
  205. package/dist/src/plugin/transform/types.js +1 -0
  206. package/dist/src/plugin/transform/types.js.map +1 -0
  207. package/dist/src/plugin/types.d.ts +97 -0
  208. package/dist/src/plugin/types.d.ts.map +1 -0
  209. package/dist/src/plugin/types.js +1 -0
  210. package/dist/src/plugin/types.js.map +1 -0
  211. package/dist/src/plugin/ui/ansi.d.ts +32 -0
  212. package/dist/src/plugin/ui/ansi.d.ts.map +1 -0
  213. package/dist/src/plugin/ui/ansi.js +52 -0
  214. package/dist/src/plugin/ui/ansi.js.map +1 -0
  215. package/dist/src/plugin/ui/auth-menu.d.ts +37 -0
  216. package/dist/src/plugin/ui/auth-menu.d.ts.map +1 -0
  217. package/dist/src/plugin/ui/auth-menu.js +182 -0
  218. package/dist/src/plugin/ui/auth-menu.js.map +1 -0
  219. package/dist/src/plugin/ui/confirm.d.ts +2 -0
  220. package/dist/src/plugin/ui/confirm.d.ts.map +1 -0
  221. package/dist/src/plugin/ui/confirm.js +15 -0
  222. package/dist/src/plugin/ui/confirm.js.map +1 -0
  223. package/dist/src/plugin/ui/select.d.ts +23 -0
  224. package/dist/src/plugin/ui/select.d.ts.map +1 -0
  225. package/dist/src/plugin/ui/select.js +254 -0
  226. package/dist/src/plugin/ui/select.js.map +1 -0
  227. package/dist/src/plugin/version.d.ts +19 -0
  228. package/dist/src/plugin/version.d.ts.map +1 -0
  229. package/dist/src/plugin/version.js +74 -0
  230. package/dist/src/plugin/version.js.map +1 -0
  231. package/dist/src/plugin.d.ts +40 -0
  232. package/dist/src/plugin.d.ts.map +1 -0
  233. package/dist/src/plugin.js +3407 -0
  234. package/dist/src/plugin.js.map +1 -0
  235. package/package.json +73 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/plugin/cli.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,gBAAgB,CAAC;AAGxB,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAUvD;AAED,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED,wBAAsB,KAAK,CACzB,OAAO,GAAE,MAAqC,GAC7C,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,MAAM,MAAM,SAAS,GACjB,KAAK,GACL,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,YAAY,GACZ,QAAQ,CAAC;AAEb,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA+CD,wBAAsB,eAAe,CACnC,gBAAgB,EAAE,mBAAmB,EAAE,GACtC,OAAO,CAAC,eAAe,CAAC,CAmE1B;AAED,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,130 @@
1
+ import { createInterface } from "node:readline/promises";
2
+ import { stdin as input, stdout as output } from "node:process";
3
+ import { showAuthMenu, showAccountDetails, isTTY, } from "./ui/auth-menu";
4
+ import { updateOpencodeConfig } from "./config/updater";
5
+ export async function promptProjectId() {
6
+ const rl = createInterface({ input, output });
7
+ try {
8
+ const answer = await rl.question("Project ID (leave blank to use your default project): ");
9
+ return answer.trim();
10
+ }
11
+ finally {
12
+ rl.close();
13
+ }
14
+ }
15
+ export async function promptAddAnotherAccount(currentCount) {
16
+ const rl = createInterface({ input, output });
17
+ try {
18
+ const answer = await rl.question(`Add another account? (${currentCount} added) (y/n): `);
19
+ const normalized = answer.trim().toLowerCase();
20
+ return normalized === "y" || normalized === "yes";
21
+ }
22
+ finally {
23
+ rl.close();
24
+ }
25
+ }
26
+ export async function pause(message = "Press Enter to continue...") {
27
+ const rl = createInterface({ input, output });
28
+ try {
29
+ await rl.question(message);
30
+ }
31
+ finally {
32
+ rl.close();
33
+ }
34
+ }
35
+ async function promptLoginModeFallback(existingAccounts) {
36
+ const rl = createInterface({ input, output });
37
+ try {
38
+ console.log(`\n${existingAccounts.length} account(s) saved:`);
39
+ for (const acc of existingAccounts) {
40
+ const label = acc.email || `Account ${acc.index + 1}`;
41
+ console.log(` ${acc.index + 1}. ${label}`);
42
+ }
43
+ console.log("");
44
+ while (true) {
45
+ const answer = await rl.question("(a)dd new, (f)resh start, (c)heck quotas, (v)erify account, (va) verify all? [a/f/c/v/va]: ");
46
+ const normalized = answer.trim().toLowerCase();
47
+ if (normalized === "a" || normalized === "add") {
48
+ return { mode: "add" };
49
+ }
50
+ if (normalized === "f" || normalized === "fresh") {
51
+ return { mode: "fresh" };
52
+ }
53
+ if (normalized === "c" || normalized === "check") {
54
+ return { mode: "check" };
55
+ }
56
+ if (normalized === "v" || normalized === "verify") {
57
+ return { mode: "verify" };
58
+ }
59
+ if (normalized === "va" ||
60
+ normalized === "verify-all" ||
61
+ normalized === "all") {
62
+ return { mode: "verify-all", verifyAll: true };
63
+ }
64
+ console.log("Please enter 'a', 'f', 'c', 'v', or 'va'.");
65
+ }
66
+ }
67
+ finally {
68
+ rl.close();
69
+ }
70
+ }
71
+ export async function promptLoginMode(existingAccounts) {
72
+ if (!isTTY()) {
73
+ return promptLoginModeFallback(existingAccounts);
74
+ }
75
+ const accounts = existingAccounts.map((acc) => ({
76
+ email: acc.email,
77
+ index: acc.index,
78
+ addedAt: acc.addedAt,
79
+ lastUsed: acc.lastUsed,
80
+ status: acc.status,
81
+ isCurrentAccount: acc.isCurrentAccount,
82
+ enabled: acc.enabled,
83
+ }));
84
+ console.log("");
85
+ while (true) {
86
+ const action = await showAuthMenu(accounts);
87
+ switch (action.type) {
88
+ case "add":
89
+ return { mode: "add" };
90
+ case "check":
91
+ return { mode: "check" };
92
+ case "verify":
93
+ return { mode: "verify" };
94
+ case "verify-all":
95
+ return { mode: "verify-all", verifyAll: true };
96
+ case "select-account": {
97
+ const accountAction = await showAccountDetails(action.account);
98
+ if (accountAction === "delete") {
99
+ return { mode: "add", deleteAccountIndex: action.account.index };
100
+ }
101
+ if (accountAction === "refresh") {
102
+ return { mode: "add", refreshAccountIndex: action.account.index };
103
+ }
104
+ if (accountAction === "toggle") {
105
+ return { mode: "manage", toggleAccountIndex: action.account.index };
106
+ }
107
+ if (accountAction === "verify") {
108
+ return { mode: "verify", verifyAccountIndex: action.account.index };
109
+ }
110
+ continue;
111
+ }
112
+ case "delete-all":
113
+ return { mode: "fresh", deleteAll: true };
114
+ case "configure-models": {
115
+ const result = await updateOpencodeConfig();
116
+ if (result.success) {
117
+ console.log(`\n✓ Models configured in ${result.configPath}\n`);
118
+ }
119
+ else {
120
+ console.log(`\n✗ Failed to configure models: ${result.error}\n`);
121
+ }
122
+ continue;
123
+ }
124
+ case "cancel":
125
+ return { mode: "cancel" };
126
+ }
127
+ }
128
+ }
129
+ export { isTTY } from "./ui/auth-menu";
130
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/plugin/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Configuration module for opencode-agy-auth plugin.
3
+ *
4
+ * @example
5
+ * ```typescript
6
+ * import { loadConfig, type AntigravityConfig } from "./config";
7
+ *
8
+ * const config = loadConfig(directory);
9
+ * if (config.session_recovery) {
10
+ * // Enable session recovery
11
+ * }
12
+ * ```
13
+ */
14
+ export { AntigravityConfigSchema, SignatureCacheConfigSchema, DEFAULT_CONFIG, type AntigravityConfig, type SignatureCacheConfig, } from "./schema";
15
+ export { loadConfig, getUserConfigPath, getProjectConfigPath, getDefaultLogsDir, configExists, initRuntimeConfig, getKeepThinking, isDebugTuiEnabled, } from "./loader";
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugin/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAClB,MAAM,UAAU,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Configuration module for opencode-agy-auth plugin.
3
+ *
4
+ * @example
5
+ * ```typescript
6
+ * import { loadConfig, type AntigravityConfig } from "./config";
7
+ *
8
+ * const config = loadConfig(directory);
9
+ * if (config.session_recovery) {
10
+ * // Enable session recovery
11
+ * }
12
+ * ```
13
+ */
14
+ export { AntigravityConfigSchema, SignatureCacheConfigSchema, DEFAULT_CONFIG, } from "./schema";
15
+ export { loadConfig, getUserConfigPath, getProjectConfigPath, getDefaultLogsDir, configExists, initRuntimeConfig, getKeepThinking, isDebugTuiEnabled, } from "./loader";
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugin/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,cAAc,GAGf,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAClB,MAAM,UAAU,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Configuration loader for opencode-agy-auth plugin.
3
+ *
4
+ * Loads config from files with environment variable overrides.
5
+ * Priority (lowest to highest):
6
+ * 1. Schema defaults
7
+ * 2. User config file
8
+ * 3. Project config file
9
+ * 4. Environment variables
10
+ */
11
+ import { type AntigravityConfig } from "./schema";
12
+ /**
13
+ * Get the user-level config file path.
14
+ */
15
+ export declare function getUserConfigPath(): string;
16
+ /**
17
+ * Get the project-level config file path.
18
+ */
19
+ export declare function getProjectConfigPath(directory: string): string;
20
+ /**
21
+ * Load the complete configuration.
22
+ *
23
+ * @param directory - The project directory (for project-level config)
24
+ * @returns Fully resolved configuration
25
+ */
26
+ export declare function loadConfig(directory: string): AntigravityConfig;
27
+ /**
28
+ * Check if a config file exists at the given path.
29
+ */
30
+ export declare function configExists(path: string): boolean;
31
+ /**
32
+ * Get the default logs directory.
33
+ */
34
+ export declare function getDefaultLogsDir(): string;
35
+ export declare function initRuntimeConfig(config: AntigravityConfig): void;
36
+ export declare function getKeepThinking(): boolean;
37
+ export declare function isDebugTuiEnabled(): boolean;
38
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../src/plugin/config/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,UAAU,CAAC;AAyBlB;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE9D;AAiJD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,CAsB/D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAID,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAEjE;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C"}
@@ -0,0 +1,204 @@
1
+ /**
2
+ * Configuration loader for opencode-agy-auth plugin.
3
+ *
4
+ * Loads config from files with environment variable overrides.
5
+ * Priority (lowest to highest):
6
+ * 1. Schema defaults
7
+ * 2. User config file
8
+ * 3. Project config file
9
+ * 4. Environment variables
10
+ */
11
+ import { existsSync, readFileSync } from "node:fs";
12
+ import { join } from "node:path";
13
+ import { homedir } from "node:os";
14
+ import { AccountSelectionStrategySchema, AntigravityConfigSchema, DEFAULT_CONFIG, } from "./schema";
15
+ import { createLogger } from "../logger";
16
+ const log = createLogger("config");
17
+ // =============================================================================
18
+ // Path Utilities
19
+ // =============================================================================
20
+ /**
21
+ * Get the config directory path, with the following precedence:
22
+ * 1. OPENCODE_CONFIG_DIR env var (if set)
23
+ * 2. ~/.config/opencode (all platforms, including Windows)
24
+ */
25
+ function getConfigDir() {
26
+ // 1. Check for explicit override via env var
27
+ if (process.env.OPENCODE_CONFIG_DIR) {
28
+ return process.env.OPENCODE_CONFIG_DIR;
29
+ }
30
+ // 2. Use ~/.config/opencode on all platforms (including Windows)
31
+ const xdgConfig = process.env.XDG_CONFIG_HOME || join(homedir(), ".config");
32
+ return join(xdgConfig, "opencode");
33
+ }
34
+ /**
35
+ * Get the user-level config file path.
36
+ */
37
+ export function getUserConfigPath() {
38
+ return join(getConfigDir(), "antigravity.json");
39
+ }
40
+ /**
41
+ * Get the project-level config file path.
42
+ */
43
+ export function getProjectConfigPath(directory) {
44
+ return join(directory, ".opencode", "antigravity.json");
45
+ }
46
+ // =============================================================================
47
+ // Config Loading
48
+ // =============================================================================
49
+ /**
50
+ * Load and parse a config file, returning null if not found or invalid.
51
+ */
52
+ function loadConfigFile(path) {
53
+ try {
54
+ if (!existsSync(path)) {
55
+ return null;
56
+ }
57
+ const content = readFileSync(path, "utf-8");
58
+ const rawConfig = JSON.parse(content);
59
+ // Validate with Zod (partial - we'll merge with defaults later)
60
+ const result = AntigravityConfigSchema.partial().safeParse(rawConfig);
61
+ if (!result.success) {
62
+ log.warn("Config validation error", {
63
+ path,
64
+ issues: result.error.issues
65
+ .map((i) => `${i.path.join(".")}: ${i.message}`)
66
+ .join(", "),
67
+ });
68
+ return null;
69
+ }
70
+ return result.data;
71
+ }
72
+ catch (error) {
73
+ if (error instanceof SyntaxError) {
74
+ log.warn("Invalid JSON in config file", { path, error: error.message });
75
+ }
76
+ else {
77
+ log.warn("Failed to load config file", { path, error: String(error) });
78
+ }
79
+ return null;
80
+ }
81
+ }
82
+ /**
83
+ * Deep merge two config objects, with override taking precedence.
84
+ */
85
+ function mergeConfigs(base, override) {
86
+ return {
87
+ ...base,
88
+ ...override,
89
+ // Deep merge signature_cache if both exist
90
+ signature_cache: override.signature_cache
91
+ ? {
92
+ ...base.signature_cache,
93
+ ...override.signature_cache,
94
+ }
95
+ : base.signature_cache,
96
+ };
97
+ }
98
+ /**
99
+ * Apply environment variable overrides to config.
100
+ * Env vars always take precedence over config file values.
101
+ */
102
+ function applyEnvOverrides(config) {
103
+ const env = process.env;
104
+ return {
105
+ ...config,
106
+ // OPENCODE_ANTIGRAVITY_QUIET=1
107
+ quiet_mode: env.OPENCODE_ANTIGRAVITY_QUIET === "1" ||
108
+ env.OPENCODE_ANTIGRAVITY_QUIET === "true"
109
+ ? true
110
+ : config.quiet_mode,
111
+ // OPENCODE_ANTIGRAVITY_DEBUG=1 or any truthy value
112
+ debug: env.OPENCODE_ANTIGRAVITY_DEBUG
113
+ ? env.OPENCODE_ANTIGRAVITY_DEBUG !== "0" &&
114
+ env.OPENCODE_ANTIGRAVITY_DEBUG !== "false"
115
+ : config.debug,
116
+ // OPENCODE_ANTIGRAVITY_LOG_DIR=/path/to/logs
117
+ log_dir: env.OPENCODE_ANTIGRAVITY_LOG_DIR || config.log_dir,
118
+ // OPENCODE_ANTIGRAVITY_SESSION_RECOVERY=0 to disable
119
+ session_recovery: env.OPENCODE_ANTIGRAVITY_SESSION_RECOVERY === "0" ||
120
+ env.OPENCODE_ANTIGRAVITY_SESSION_RECOVERY === "false"
121
+ ? false
122
+ : config.session_recovery,
123
+ // OPENCODE_ANTIGRAVITY_AUTO_RESUME=0 to disable auto-continue after recovery
124
+ auto_resume: env.OPENCODE_ANTIGRAVITY_AUTO_RESUME === "0" ||
125
+ env.OPENCODE_ANTIGRAVITY_AUTO_RESUME === "false"
126
+ ? false
127
+ : env.OPENCODE_ANTIGRAVITY_AUTO_RESUME === "1" ||
128
+ env.OPENCODE_ANTIGRAVITY_AUTO_RESUME === "true"
129
+ ? true
130
+ : config.auto_resume,
131
+ // OPENCODE_ANTIGRAVITY_RESUME_TEXT to customize resume text
132
+ resume_text: env.OPENCODE_ANTIGRAVITY_RESUME_TEXT || config.resume_text,
133
+ // OPENCODE_ANTIGRAVITY_AUTO_UPDATE=0 to disable
134
+ auto_update: env.OPENCODE_ANTIGRAVITY_AUTO_UPDATE === "0" ||
135
+ env.OPENCODE_ANTIGRAVITY_AUTO_UPDATE === "false"
136
+ ? false
137
+ : config.auto_update,
138
+ // OPENCODE_ANTIGRAVITY_ACCOUNT_SELECTION_STRATEGY=sticky|round-robin|hybrid
139
+ account_selection_strategy: env.OPENCODE_ANTIGRAVITY_ACCOUNT_SELECTION_STRATEGY
140
+ ? AccountSelectionStrategySchema.catch("sticky").parse(env.OPENCODE_ANTIGRAVITY_ACCOUNT_SELECTION_STRATEGY)
141
+ : config.account_selection_strategy,
142
+ // OPENCODE_ANTIGRAVITY_PID_OFFSET_ENABLED=1
143
+ pid_offset_enabled: env.OPENCODE_ANTIGRAVITY_PID_OFFSET_ENABLED === "1" ||
144
+ env.OPENCODE_ANTIGRAVITY_PID_OFFSET_ENABLED === "true"
145
+ ? true
146
+ : config.pid_offset_enabled,
147
+ // OPENCODE_ANTIGRAVITY_SOFT_QUOTA_THRESHOLD_PERCENT=70
148
+ soft_quota_threshold_percent: process.env
149
+ .OPENCODE_ANTIGRAVITY_SOFT_QUOTA_THRESHOLD_PERCENT
150
+ ? parseInt(process.env.OPENCODE_ANTIGRAVITY_SOFT_QUOTA_THRESHOLD_PERCENT, 10)
151
+ : config.soft_quota_threshold_percent,
152
+ };
153
+ }
154
+ // =============================================================================
155
+ // Main Loader
156
+ // =============================================================================
157
+ /**
158
+ * Load the complete configuration.
159
+ *
160
+ * @param directory - The project directory (for project-level config)
161
+ * @returns Fully resolved configuration
162
+ */
163
+ export function loadConfig(directory) {
164
+ // Start with defaults
165
+ let config = { ...DEFAULT_CONFIG };
166
+ // Load user config file (if exists)
167
+ const userConfigPath = getUserConfigPath();
168
+ const userConfig = loadConfigFile(userConfigPath);
169
+ if (userConfig) {
170
+ config = mergeConfigs(config, userConfig);
171
+ }
172
+ // Load project config file (if exists) - overrides user config
173
+ const projectConfigPath = getProjectConfigPath(directory);
174
+ const projectConfig = loadConfigFile(projectConfigPath);
175
+ if (projectConfig) {
176
+ config = mergeConfigs(config, projectConfig);
177
+ }
178
+ // Apply environment variable overrides (always win)
179
+ config = applyEnvOverrides(config);
180
+ return config;
181
+ }
182
+ /**
183
+ * Check if a config file exists at the given path.
184
+ */
185
+ export function configExists(path) {
186
+ return existsSync(path);
187
+ }
188
+ /**
189
+ * Get the default logs directory.
190
+ */
191
+ export function getDefaultLogsDir() {
192
+ return join(getConfigDir(), "antigravity-logs");
193
+ }
194
+ let runtimeConfig = null;
195
+ export function initRuntimeConfig(config) {
196
+ runtimeConfig = config;
197
+ }
198
+ export function getKeepThinking() {
199
+ return runtimeConfig?.keep_thinking ?? false;
200
+ }
201
+ export function isDebugTuiEnabled() {
202
+ return runtimeConfig?.debug_tui ?? false;
203
+ }
204
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../../src/plugin/config/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { ProviderModel } from "../types";
2
+ export type ModelThinkingLevel = "minimal" | "low" | "medium" | "high";
3
+ export interface ModelThinkingConfig {
4
+ thinkingBudget: number;
5
+ }
6
+ export interface ModelVariant {
7
+ thinkingLevel?: ModelThinkingLevel;
8
+ thinkingConfig?: ModelThinkingConfig;
9
+ }
10
+ export interface ModelLimit {
11
+ context: number;
12
+ output: number;
13
+ }
14
+ export type ModelModality = "text" | "image" | "pdf";
15
+ export interface ModelModalities {
16
+ input: ModelModality[];
17
+ output: ModelModality[];
18
+ }
19
+ export interface OpencodeModelDefinition extends ProviderModel {
20
+ name: string;
21
+ limit: ModelLimit;
22
+ modalities: ModelModalities;
23
+ variants?: Record<string, ModelVariant>;
24
+ }
25
+ export type OpencodeModelDefinitions = Record<string, OpencodeModelDefinition>;
26
+ export declare const OPENCODE_MODEL_DEFINITIONS: OpencodeModelDefinitions;
27
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../../src/plugin/config/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEvE,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAErD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,uBAAwB,SAAQ,aAAa;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,eAAe,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACzC;AAED,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;AAO/E,eAAO,MAAM,0BAA0B,EAAE,wBA0ExC,CAAC"}
@@ -0,0 +1,79 @@
1
+ const DEFAULT_MODALITIES = {
2
+ input: ["text", "image", "pdf"],
3
+ output: ["text"],
4
+ };
5
+ export const OPENCODE_MODEL_DEFINITIONS = {
6
+ "antigravity-gemini-3.1-pro": {
7
+ name: "Gemini 3.1 Pro (Antigravity)",
8
+ limit: { context: 1048576, output: 65535 },
9
+ modalities: DEFAULT_MODALITIES,
10
+ variants: {
11
+ low: { thinkingLevel: "low" },
12
+ high: { thinkingLevel: "high" },
13
+ },
14
+ },
15
+ "gemini-3.1-pro": {
16
+ name: "Gemini 3.1 Pro (Antigravity)",
17
+ limit: { context: 1048576, output: 65535 },
18
+ modalities: DEFAULT_MODALITIES,
19
+ variants: {
20
+ low: { thinkingLevel: "low" },
21
+ high: { thinkingLevel: "high" },
22
+ },
23
+ },
24
+ "antigravity-gemini-3-flash": {
25
+ name: "Gemini 3 Flash (Antigravity)",
26
+ limit: { context: 1048576, output: 65536 },
27
+ modalities: DEFAULT_MODALITIES,
28
+ variants: {
29
+ minimal: { thinkingLevel: "minimal" },
30
+ low: { thinkingLevel: "low" },
31
+ medium: { thinkingLevel: "medium" },
32
+ high: { thinkingLevel: "high" },
33
+ },
34
+ },
35
+ "antigravity-claude-sonnet-4-6": {
36
+ name: "Claude Sonnet 4.6 (Antigravity)",
37
+ limit: { context: 200000, output: 64000 },
38
+ modalities: DEFAULT_MODALITIES,
39
+ },
40
+ "antigravity-claude-sonnet-4-6-thinking": {
41
+ name: "Claude Sonnet 4.6 Thinking (Antigravity)",
42
+ limit: { context: 200000, output: 64000 },
43
+ modalities: DEFAULT_MODALITIES,
44
+ variants: {
45
+ low: { thinkingConfig: { thinkingBudget: 8192 } },
46
+ max: { thinkingConfig: { thinkingBudget: 32768 } },
47
+ },
48
+ },
49
+ "antigravity-claude-opus-4-6-thinking": {
50
+ name: "Claude Opus 4.6 Thinking (Antigravity)",
51
+ limit: { context: 200000, output: 64000 },
52
+ modalities: DEFAULT_MODALITIES,
53
+ variants: {
54
+ low: { thinkingConfig: { thinkingBudget: 8192 } },
55
+ max: { thinkingConfig: { thinkingBudget: 32768 } },
56
+ },
57
+ },
58
+ "gemini-2.5-flash": {
59
+ name: "Gemini 2.5 Flash (Gemini CLI)",
60
+ limit: { context: 1048576, output: 65536 },
61
+ modalities: DEFAULT_MODALITIES,
62
+ },
63
+ "gemini-2.5-pro": {
64
+ name: "Gemini 2.5 Pro (Gemini CLI)",
65
+ limit: { context: 1048576, output: 65536 },
66
+ modalities: DEFAULT_MODALITIES,
67
+ },
68
+ "gemini-3-flash-preview": {
69
+ name: "Gemini 3 Flash Preview (Gemini CLI)",
70
+ limit: { context: 1048576, output: 65536 },
71
+ modalities: DEFAULT_MODALITIES,
72
+ },
73
+ "gemini-3.1-pro-preview": {
74
+ name: "Gemini 3.1 Pro Preview (Gemini CLI)",
75
+ limit: { context: 1048576, output: 65535 },
76
+ modalities: DEFAULT_MODALITIES,
77
+ },
78
+ };
79
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../../src/plugin/config/models.ts"],"names":[],"mappings":"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"}