@cortexkit/opencode-antigravity-auth 1.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 (271) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +714 -0
  3. package/dist/index.d.ts +4 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +15175 -0
  6. package/dist/index.js.map +7 -0
  7. package/dist/src/antigravity/oauth.d.ts +2 -0
  8. package/dist/src/antigravity/oauth.d.ts.map +1 -0
  9. package/dist/src/antigravity/oauth.js +3 -0
  10. package/dist/src/antigravity/oauth.js.map +1 -0
  11. package/dist/src/constants.d.ts +2 -0
  12. package/dist/src/constants.d.ts.map +1 -0
  13. package/dist/src/constants.js +3 -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 +234 -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 +122 -0
  30. package/dist/src/hooks/auto-update-checker/index.js.map +1 -0
  31. package/dist/src/hooks/auto-update-checker/logging.d.ts +3 -0
  32. package/dist/src/hooks/auto-update-checker/logging.d.ts.map +1 -0
  33. package/dist/src/hooks/auto-update-checker/logging.js +9 -0
  34. package/dist/src/hooks/auto-update-checker/logging.js.map +1 -0
  35. package/dist/src/hooks/auto-update-checker/types.d.ts +25 -0
  36. package/dist/src/hooks/auto-update-checker/types.d.ts.map +1 -0
  37. package/dist/src/hooks/auto-update-checker/types.js +1 -0
  38. package/dist/src/hooks/auto-update-checker/types.js.map +1 -0
  39. package/dist/src/plugin/accounts.d.ts +232 -0
  40. package/dist/src/plugin/accounts.d.ts.map +1 -0
  41. package/dist/src/plugin/accounts.js +1163 -0
  42. package/dist/src/plugin/accounts.js.map +1 -0
  43. package/dist/src/plugin/agy-transport.d.ts +2 -0
  44. package/dist/src/plugin/agy-transport.d.ts.map +1 -0
  45. package/dist/src/plugin/agy-transport.js +3 -0
  46. package/dist/src/plugin/agy-transport.js.map +1 -0
  47. package/dist/src/plugin/auth-doctor.d.ts +30 -0
  48. package/dist/src/plugin/auth-doctor.d.ts.map +1 -0
  49. package/dist/src/plugin/auth-doctor.js +144 -0
  50. package/dist/src/plugin/auth-doctor.js.map +1 -0
  51. package/dist/src/plugin/auth-drift.d.ts +13 -0
  52. package/dist/src/plugin/auth-drift.d.ts.map +1 -0
  53. package/dist/src/plugin/auth-drift.js +70 -0
  54. package/dist/src/plugin/auth-drift.js.map +1 -0
  55. package/dist/src/plugin/auth.d.ts +2 -0
  56. package/dist/src/plugin/auth.d.ts.map +1 -0
  57. package/dist/src/plugin/auth.js +3 -0
  58. package/dist/src/plugin/auth.js.map +1 -0
  59. package/dist/src/plugin/cache/index.d.ts +5 -0
  60. package/dist/src/plugin/cache/index.d.ts.map +1 -0
  61. package/dist/src/plugin/cache/index.js +5 -0
  62. package/dist/src/plugin/cache/index.js.map +1 -0
  63. package/dist/src/plugin/cache/signature-cache.d.ts +111 -0
  64. package/dist/src/plugin/cache/signature-cache.d.ts.map +1 -0
  65. package/dist/src/plugin/cache/signature-cache.js +375 -0
  66. package/dist/src/plugin/cache/signature-cache.js.map +1 -0
  67. package/dist/src/plugin/cache.d.ts +44 -0
  68. package/dist/src/plugin/cache.d.ts.map +1 -0
  69. package/dist/src/plugin/cache.js +247 -0
  70. package/dist/src/plugin/cache.js.map +1 -0
  71. package/dist/src/plugin/cli.d.ts +44 -0
  72. package/dist/src/plugin/cli.d.ts.map +1 -0
  73. package/dist/src/plugin/cli.js +153 -0
  74. package/dist/src/plugin/cli.js.map +1 -0
  75. package/dist/src/plugin/config/index.d.ts +16 -0
  76. package/dist/src/plugin/config/index.d.ts.map +1 -0
  77. package/dist/src/plugin/config/index.js +16 -0
  78. package/dist/src/plugin/config/index.js.map +1 -0
  79. package/dist/src/plugin/config/loader.d.ts +36 -0
  80. package/dist/src/plugin/config/loader.d.ts.map +1 -0
  81. package/dist/src/plugin/config/loader.js +140 -0
  82. package/dist/src/plugin/config/loader.js.map +1 -0
  83. package/dist/src/plugin/config/models.d.ts +3 -0
  84. package/dist/src/plugin/config/models.d.ts.map +1 -0
  85. package/dist/src/plugin/config/models.js +2 -0
  86. package/dist/src/plugin/config/models.js.map +1 -0
  87. package/dist/src/plugin/config/schema.d.ts +141 -0
  88. package/dist/src/plugin/config/schema.d.ts.map +1 -0
  89. package/dist/src/plugin/config/schema.js +504 -0
  90. package/dist/src/plugin/config/schema.js.map +1 -0
  91. package/dist/src/plugin/config/updater.d.ts +55 -0
  92. package/dist/src/plugin/config/updater.d.ts.map +1 -0
  93. package/dist/src/plugin/config/updater.js +127 -0
  94. package/dist/src/plugin/config/updater.js.map +1 -0
  95. package/dist/src/plugin/core/streaming/index.d.ts +3 -0
  96. package/dist/src/plugin/core/streaming/index.d.ts.map +1 -0
  97. package/dist/src/plugin/core/streaming/index.js +3 -0
  98. package/dist/src/plugin/core/streaming/index.js.map +1 -0
  99. package/dist/src/plugin/core/streaming/transformer.d.ts +12 -0
  100. package/dist/src/plugin/core/streaming/transformer.d.ts.map +1 -0
  101. package/dist/src/plugin/core/streaming/transformer.js +447 -0
  102. package/dist/src/plugin/core/streaming/transformer.js.map +1 -0
  103. package/dist/src/plugin/core/streaming/types.d.ts +34 -0
  104. package/dist/src/plugin/core/streaming/types.d.ts.map +1 -0
  105. package/dist/src/plugin/core/streaming/types.js +1 -0
  106. package/dist/src/plugin/core/streaming/types.js.map +1 -0
  107. package/dist/src/plugin/debug.d.ts +94 -0
  108. package/dist/src/plugin/debug.d.ts.map +1 -0
  109. package/dist/src/plugin/debug.js +383 -0
  110. package/dist/src/plugin/debug.js.map +1 -0
  111. package/dist/src/plugin/errors.d.ts +28 -0
  112. package/dist/src/plugin/errors.d.ts.map +1 -0
  113. package/dist/src/plugin/errors.js +42 -0
  114. package/dist/src/plugin/errors.js.map +1 -0
  115. package/dist/src/plugin/fingerprint.d.ts +2 -0
  116. package/dist/src/plugin/fingerprint.d.ts.map +1 -0
  117. package/dist/src/plugin/fingerprint.js +3 -0
  118. package/dist/src/plugin/fingerprint.js.map +1 -0
  119. package/dist/src/plugin/gemini-dump.d.ts +47 -0
  120. package/dist/src/plugin/gemini-dump.d.ts.map +1 -0
  121. package/dist/src/plugin/gemini-dump.js +238 -0
  122. package/dist/src/plugin/gemini-dump.js.map +1 -0
  123. package/dist/src/plugin/image-saver.d.ts +25 -0
  124. package/dist/src/plugin/image-saver.d.ts.map +1 -0
  125. package/dist/src/plugin/image-saver.js +86 -0
  126. package/dist/src/plugin/image-saver.js.map +1 -0
  127. package/dist/src/plugin/logger.d.ts +23 -0
  128. package/dist/src/plugin/logger.d.ts.map +1 -0
  129. package/dist/src/plugin/logger.js +80 -0
  130. package/dist/src/plugin/logger.js.map +1 -0
  131. package/dist/src/plugin/logging-utils.d.ts +23 -0
  132. package/dist/src/plugin/logging-utils.d.ts.map +1 -0
  133. package/dist/src/plugin/logging-utils.js +92 -0
  134. package/dist/src/plugin/logging-utils.js.map +1 -0
  135. package/dist/src/plugin/model-registry.d.ts +2 -0
  136. package/dist/src/plugin/model-registry.d.ts.map +1 -0
  137. package/dist/src/plugin/model-registry.js +3 -0
  138. package/dist/src/plugin/model-registry.js.map +1 -0
  139. package/dist/src/plugin/project.d.ts +2 -0
  140. package/dist/src/plugin/project.d.ts.map +1 -0
  141. package/dist/src/plugin/project.js +3 -0
  142. package/dist/src/plugin/project.js.map +1 -0
  143. package/dist/src/plugin/prompt-context.d.ts +18 -0
  144. package/dist/src/plugin/prompt-context.d.ts.map +1 -0
  145. package/dist/src/plugin/prompt-context.js +99 -0
  146. package/dist/src/plugin/prompt-context.js.map +1 -0
  147. package/dist/src/plugin/quota.d.ts +44 -0
  148. package/dist/src/plugin/quota.d.ts.map +1 -0
  149. package/dist/src/plugin/quota.js +336 -0
  150. package/dist/src/plugin/quota.js.map +1 -0
  151. package/dist/src/plugin/recovery/constants.d.ts +22 -0
  152. package/dist/src/plugin/recovery/constants.d.ts.map +1 -0
  153. package/dist/src/plugin/recovery/constants.js +43 -0
  154. package/dist/src/plugin/recovery/constants.js.map +1 -0
  155. package/dist/src/plugin/recovery/index.d.ts +12 -0
  156. package/dist/src/plugin/recovery/index.d.ts.map +1 -0
  157. package/dist/src/plugin/recovery/index.js +12 -0
  158. package/dist/src/plugin/recovery/index.js.map +1 -0
  159. package/dist/src/plugin/recovery/storage.d.ts +24 -0
  160. package/dist/src/plugin/recovery/storage.d.ts.map +1 -0
  161. package/dist/src/plugin/recovery/storage.js +354 -0
  162. package/dist/src/plugin/recovery/storage.js.map +1 -0
  163. package/dist/src/plugin/recovery/types.d.ts +116 -0
  164. package/dist/src/plugin/recovery/types.d.ts.map +1 -0
  165. package/dist/src/plugin/recovery/types.js +6 -0
  166. package/dist/src/plugin/recovery/types.js.map +1 -0
  167. package/dist/src/plugin/recovery.d.ts +61 -0
  168. package/dist/src/plugin/recovery.d.ts.map +1 -0
  169. package/dist/src/plugin/recovery.js +381 -0
  170. package/dist/src/plugin/recovery.js.map +1 -0
  171. package/dist/src/plugin/refresh-queue.d.ts +100 -0
  172. package/dist/src/plugin/refresh-queue.d.ts.map +1 -0
  173. package/dist/src/plugin/refresh-queue.js +247 -0
  174. package/dist/src/plugin/refresh-queue.js.map +1 -0
  175. package/dist/src/plugin/request-helpers.d.ts +278 -0
  176. package/dist/src/plugin/request-helpers.d.ts.map +1 -0
  177. package/dist/src/plugin/request-helpers.js +2323 -0
  178. package/dist/src/plugin/request-helpers.js.map +1 -0
  179. package/dist/src/plugin/request.d.ts +102 -0
  180. package/dist/src/plugin/request.d.ts.map +1 -0
  181. package/dist/src/plugin/request.js +1658 -0
  182. package/dist/src/plugin/request.js.map +1 -0
  183. package/dist/src/plugin/rotation.d.ts +169 -0
  184. package/dist/src/plugin/rotation.d.ts.map +1 -0
  185. package/dist/src/plugin/rotation.js +328 -0
  186. package/dist/src/plugin/rotation.js.map +1 -0
  187. package/dist/src/plugin/search.d.ts +25 -0
  188. package/dist/src/plugin/search.d.ts.map +1 -0
  189. package/dist/src/plugin/search.js +200 -0
  190. package/dist/src/plugin/search.js.map +1 -0
  191. package/dist/src/plugin/server.d.ts +23 -0
  192. package/dist/src/plugin/server.d.ts.map +1 -0
  193. package/dist/src/plugin/server.js +324 -0
  194. package/dist/src/plugin/server.js.map +1 -0
  195. package/dist/src/plugin/storage.d.ts +150 -0
  196. package/dist/src/plugin/storage.d.ts.map +1 -0
  197. package/dist/src/plugin/storage.js +628 -0
  198. package/dist/src/plugin/storage.js.map +1 -0
  199. package/dist/src/plugin/stores/signature-store.d.ts +5 -0
  200. package/dist/src/plugin/stores/signature-store.d.ts.map +1 -0
  201. package/dist/src/plugin/stores/signature-store.js +25 -0
  202. package/dist/src/plugin/stores/signature-store.js.map +1 -0
  203. package/dist/src/plugin/thinking-recovery.d.ts +90 -0
  204. package/dist/src/plugin/thinking-recovery.d.ts.map +1 -0
  205. package/dist/src/plugin/thinking-recovery.js +330 -0
  206. package/dist/src/plugin/thinking-recovery.js.map +1 -0
  207. package/dist/src/plugin/token.d.ts +19 -0
  208. package/dist/src/plugin/token.d.ts.map +1 -0
  209. package/dist/src/plugin/token.js +130 -0
  210. package/dist/src/plugin/token.js.map +1 -0
  211. package/dist/src/plugin/transform/claude.d.ts +92 -0
  212. package/dist/src/plugin/transform/claude.d.ts.map +1 -0
  213. package/dist/src/plugin/transform/claude.js +280 -0
  214. package/dist/src/plugin/transform/claude.js.map +1 -0
  215. package/dist/src/plugin/transform/cross-model-sanitizer.d.ts +2 -0
  216. package/dist/src/plugin/transform/cross-model-sanitizer.d.ts.map +1 -0
  217. package/dist/src/plugin/transform/cross-model-sanitizer.js +3 -0
  218. package/dist/src/plugin/transform/cross-model-sanitizer.js.map +1 -0
  219. package/dist/src/plugin/transform/gemini.d.ts +100 -0
  220. package/dist/src/plugin/transform/gemini.d.ts.map +1 -0
  221. package/dist/src/plugin/transform/gemini.js +446 -0
  222. package/dist/src/plugin/transform/gemini.js.map +1 -0
  223. package/dist/src/plugin/transform/index.d.ts +2 -0
  224. package/dist/src/plugin/transform/index.d.ts.map +1 -0
  225. package/dist/src/plugin/transform/index.js +3 -0
  226. package/dist/src/plugin/transform/index.js.map +1 -0
  227. package/dist/src/plugin/transform/model-resolver.d.ts +2 -0
  228. package/dist/src/plugin/transform/model-resolver.d.ts.map +1 -0
  229. package/dist/src/plugin/transform/model-resolver.js +3 -0
  230. package/dist/src/plugin/transform/model-resolver.js.map +1 -0
  231. package/dist/src/plugin/transform/types.d.ts +2 -0
  232. package/dist/src/plugin/transform/types.d.ts.map +1 -0
  233. package/dist/src/plugin/transform/types.js +3 -0
  234. package/dist/src/plugin/transform/types.js.map +1 -0
  235. package/dist/src/plugin/types.d.ts +80 -0
  236. package/dist/src/plugin/types.d.ts.map +1 -0
  237. package/dist/src/plugin/types.js +1 -0
  238. package/dist/src/plugin/types.js.map +1 -0
  239. package/dist/src/plugin/ui/ansi.d.ts +32 -0
  240. package/dist/src/plugin/ui/ansi.d.ts.map +1 -0
  241. package/dist/src/plugin/ui/ansi.js +52 -0
  242. package/dist/src/plugin/ui/ansi.js.map +1 -0
  243. package/dist/src/plugin/ui/auth-menu.d.ts +59 -0
  244. package/dist/src/plugin/ui/auth-menu.d.ts.map +1 -0
  245. package/dist/src/plugin/ui/auth-menu.js +362 -0
  246. package/dist/src/plugin/ui/auth-menu.js.map +1 -0
  247. package/dist/src/plugin/ui/confirm.d.ts +2 -0
  248. package/dist/src/plugin/ui/confirm.d.ts.map +1 -0
  249. package/dist/src/plugin/ui/confirm.js +15 -0
  250. package/dist/src/plugin/ui/confirm.js.map +1 -0
  251. package/dist/src/plugin/ui/model-status.d.ts +28 -0
  252. package/dist/src/plugin/ui/model-status.d.ts.map +1 -0
  253. package/dist/src/plugin/ui/model-status.js +80 -0
  254. package/dist/src/plugin/ui/model-status.js.map +1 -0
  255. package/dist/src/plugin/ui/quota-status.d.ts +82 -0
  256. package/dist/src/plugin/ui/quota-status.d.ts.map +1 -0
  257. package/dist/src/plugin/ui/quota-status.js +251 -0
  258. package/dist/src/plugin/ui/quota-status.js.map +1 -0
  259. package/dist/src/plugin/ui/select.d.ts +23 -0
  260. package/dist/src/plugin/ui/select.d.ts.map +1 -0
  261. package/dist/src/plugin/ui/select.js +254 -0
  262. package/dist/src/plugin/ui/select.js.map +1 -0
  263. package/dist/src/plugin/version.d.ts +2 -0
  264. package/dist/src/plugin/version.d.ts.map +1 -0
  265. package/dist/src/plugin/version.js +3 -0
  266. package/dist/src/plugin/version.js.map +1 -0
  267. package/dist/src/plugin.d.ts +32 -0
  268. package/dist/src/plugin.d.ts.map +1 -0
  269. package/dist/src/plugin.js +3125 -0
  270. package/dist/src/plugin.js.map +1 -0
  271. package/package.json +70 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging-utils.js","sourceRoot":"","sources":["../../../src/plugin/logging-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from "@cortexkit/antigravity-auth-core";
2
+ //# sourceMappingURL=model-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-registry.d.ts","sourceRoot":"","sources":["../../../src/plugin/model-registry.ts"],"names":[],"mappings":"AACA,cAAc,kCAAkC,CAAA"}
@@ -0,0 +1,3 @@
1
+ // Re-export shim: model registry moved to @cortexkit/antigravity-auth-core.
2
+ export * from "@cortexkit/antigravity-auth-core";
3
+ //# sourceMappingURL=model-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-registry.js","sourceRoot":"","sources":["../../../src/plugin/model-registry.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,cAAc,kCAAkC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from "@cortexkit/antigravity-auth-core";
2
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../src/plugin/project.ts"],"names":[],"mappings":"AACA,cAAc,kCAAkC,CAAA"}
@@ -0,0 +1,3 @@
1
+ // Re-export shim: project context moved to @cortexkit/antigravity-auth-core.
2
+ export * from "@cortexkit/antigravity-auth-core";
3
+ //# sourceMappingURL=project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/plugin/project.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,cAAc,kCAAkC,CAAA"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Resolve prompt context for synthetic OpenCode user messages.
3
+ *
4
+ * OpenCode records ignored/noReply prompt messages. If a plugin sends one
5
+ * without the active model/variant, the next prompt can inherit the default
6
+ * model and unexpectedly switch providers. Preserve the latest prompt context
7
+ * for hidden slash-command replies.
8
+ */
9
+ export interface ResolvedPromptContext {
10
+ agent?: string;
11
+ model?: {
12
+ providerID: string;
13
+ modelID: string;
14
+ };
15
+ variant?: string;
16
+ }
17
+ export declare function resolvePromptContext(client: unknown, sessionId: string): Promise<ResolvedPromptContext | null>;
18
+ //# sourceMappingURL=prompt-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-context.d.ts","sourceRoot":"","sources":["../../../src/plugin/prompt-context.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAuED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAgDvC"}
@@ -0,0 +1,99 @@
1
+ function isRecord(value) {
2
+ return typeof value === "object" && value !== null;
3
+ }
4
+ function extractMessages(response) {
5
+ if (Array.isArray(response))
6
+ return response;
7
+ if (isRecord(response) && Array.isArray(response.data))
8
+ return response.data;
9
+ return [];
10
+ }
11
+ function getRole(message) {
12
+ if (!isRecord(message) || !isRecord(message.info))
13
+ return undefined;
14
+ return typeof message.info.role === "string" ? message.info.role : undefined;
15
+ }
16
+ function extractFromMessage(message) {
17
+ if (!isRecord(message) || !isRecord(message.info))
18
+ return null;
19
+ const info = message.info;
20
+ const modelInfo = isRecord(info.model) ? info.model : undefined;
21
+ const agent = typeof info.agent === "string" ? info.agent : undefined;
22
+ const providerID = typeof modelInfo?.providerID === "string"
23
+ ? modelInfo.providerID
24
+ : typeof info.providerID === "string"
25
+ ? info.providerID
26
+ : undefined;
27
+ const modelID = typeof modelInfo?.modelID === "string"
28
+ ? modelInfo.modelID
29
+ : typeof info.modelID === "string"
30
+ ? info.modelID
31
+ : undefined;
32
+ const variant = typeof modelInfo?.variant === "string"
33
+ ? modelInfo.variant
34
+ : typeof info.variant === "string"
35
+ ? info.variant
36
+ : undefined;
37
+ if (!agent && (!providerID || !modelID) && !variant)
38
+ return null;
39
+ const context = {};
40
+ if (agent)
41
+ context.agent = agent;
42
+ if (providerID && modelID)
43
+ context.model = { providerID, modelID };
44
+ if (variant)
45
+ context.variant = variant;
46
+ return context;
47
+ }
48
+ function mergeContexts(base, patch) {
49
+ return {
50
+ agent: base.agent ?? patch.agent,
51
+ model: base.model ?? patch.model,
52
+ variant: base.variant ?? patch.variant,
53
+ };
54
+ }
55
+ function isComplete(context) {
56
+ return Boolean(context.agent && context.model && context.variant);
57
+ }
58
+ export async function resolvePromptContext(client, sessionId) {
59
+ if (!client || !sessionId)
60
+ return null;
61
+ const typedClient = client;
62
+ if (typeof typedClient.session?.messages !== "function")
63
+ return null;
64
+ let messages = [];
65
+ try {
66
+ messages = extractMessages(await Promise.resolve(typedClient.session.messages({
67
+ path: { id: sessionId },
68
+ query: { limit: 100 },
69
+ })));
70
+ }
71
+ catch {
72
+ return null;
73
+ }
74
+ if (messages.length === 0)
75
+ return null;
76
+ let result = {};
77
+ for (let index = messages.length - 1; index >= 0; index--) {
78
+ if (getRole(messages[index]) !== "assistant")
79
+ continue;
80
+ const context = extractFromMessage(messages[index]);
81
+ if (!context)
82
+ continue;
83
+ result = mergeContexts(result, context);
84
+ if (isComplete(result))
85
+ return result;
86
+ }
87
+ for (let index = messages.length - 1; index >= 0; index--) {
88
+ const context = extractFromMessage(messages[index]);
89
+ if (!context)
90
+ continue;
91
+ result = mergeContexts(result, context);
92
+ if (isComplete(result))
93
+ return result;
94
+ }
95
+ if (!result.agent && !result.model && !result.variant)
96
+ return null;
97
+ return result;
98
+ }
99
+ //# sourceMappingURL=prompt-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-context.js","sourceRoot":"","sources":["../../../src/plugin/prompt-context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { PluginClient } from "./types";
2
+ import type { AccountMetadataV3 } from "./storage";
3
+ export type QuotaGroup = "claude" | "gemini-pro" | "gemini-flash" | "gpt-oss";
4
+ export interface QuotaGroupSummary {
5
+ remainingFraction?: number;
6
+ resetTime?: string;
7
+ modelCount: number;
8
+ }
9
+ export interface PerModelQuotaEntry {
10
+ modelId: string;
11
+ displayName?: string;
12
+ group: QuotaGroup | null;
13
+ remainingFraction: number;
14
+ resetTime?: string;
15
+ }
16
+ export interface QuotaSummary {
17
+ groups: Partial<Record<QuotaGroup, QuotaGroupSummary>>;
18
+ perModel?: PerModelQuotaEntry[];
19
+ modelCount: number;
20
+ error?: string;
21
+ }
22
+ export interface GeminiCliQuotaModel {
23
+ modelId: string;
24
+ remainingFraction: number;
25
+ resetTime?: string;
26
+ }
27
+ export interface GeminiCliQuotaSummary {
28
+ models: GeminiCliQuotaModel[];
29
+ error?: string;
30
+ }
31
+ export type AccountQuotaStatus = "ok" | "disabled" | "error";
32
+ export interface AccountQuotaResult {
33
+ index: number;
34
+ email?: string;
35
+ status: AccountQuotaStatus;
36
+ error?: string;
37
+ disabled?: boolean;
38
+ quota?: QuotaSummary;
39
+ geminiCliQuota?: GeminiCliQuotaSummary;
40
+ updatedAccount?: AccountMetadataV3;
41
+ }
42
+ export declare function classifyQuotaGroup(modelName: string, displayName?: string): QuotaGroup | null;
43
+ export declare function checkAccountsQuota(accounts: AccountMetadataV3[], client: PluginClient, providerId?: string): Promise<AccountQuotaResult[]>;
44
+ //# sourceMappingURL=quota.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../../../src/plugin/quota.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,SAAS,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAInD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,CAAC;AAE9E,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAYD,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,UAAU,GAAG,OAAO,CAAC;AAE7D,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,cAAc,CAAC,EAAE,iBAAiB,CAAC;CACpC;AA+CD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAgB7F;AAwPD,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,MAAM,EAAE,YAAY,EACpB,UAAU,SAA0B,GACnC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAiF/B"}
@@ -0,0 +1,336 @@
1
+ import { ANTIGRAVITY_ENDPOINT_FALLBACKS, ANTIGRAVITY_PROVIDER_ID, buildGeminiCliUserAgent, } from "../constants";
2
+ import { fetchWithAgyCliTransport } from "./agy-transport";
3
+ import { accessTokenExpired, formatRefreshParts, parseRefreshParts } from "./auth";
4
+ import { buildAntigravityHarnessUserAgent } from "./fingerprint";
5
+ import { logQuotaFetch, logQuotaStatus } from "./debug";
6
+ import { ensureProjectContext } from "./project";
7
+ import { getQuotaGroupForModel } from "./model-registry";
8
+ import { refreshAccessToken } from "./token";
9
+ import { getModelFamily } from "./transform/model-resolver";
10
+ const FETCH_TIMEOUT_MS = 10000;
11
+ function buildAuthFromAccount(account) {
12
+ return {
13
+ type: "oauth",
14
+ refresh: formatRefreshParts({
15
+ refreshToken: account.refreshToken,
16
+ projectId: account.projectId,
17
+ managedProjectId: account.managedProjectId,
18
+ }),
19
+ access: undefined,
20
+ expires: undefined,
21
+ };
22
+ }
23
+ function normalizeRemainingFraction(value) {
24
+ // If value is missing or invalid, treat as exhausted (0%)
25
+ if (typeof value !== "number" || !Number.isFinite(value)) {
26
+ return 0;
27
+ }
28
+ if (value < 0)
29
+ return 0;
30
+ if (value > 1)
31
+ return 1;
32
+ return value;
33
+ }
34
+ function parseResetTime(resetTime) {
35
+ if (!resetTime)
36
+ return null;
37
+ const timestamp = Date.parse(resetTime);
38
+ if (!Number.isFinite(timestamp)) {
39
+ return null;
40
+ }
41
+ return timestamp;
42
+ }
43
+ export function classifyQuotaGroup(modelName, displayName) {
44
+ const registryGroup = getQuotaGroupForModel(modelName);
45
+ if (registryGroup) {
46
+ return registryGroup;
47
+ }
48
+ const combined = `${modelName} ${displayName ?? ""}`.toLowerCase();
49
+ if (combined.includes("claude")) {
50
+ return "claude";
51
+ }
52
+ const isGemini3 = combined.includes("gemini-3") || combined.includes("gemini 3");
53
+ if (!isGemini3) {
54
+ return null;
55
+ }
56
+ const family = getModelFamily(modelName);
57
+ return family === "gemini-flash" ? "gemini-flash" : "gemini-pro";
58
+ }
59
+ function aggregateQuota(models) {
60
+ const groups = {};
61
+ const perModel = [];
62
+ if (!models) {
63
+ return { groups, perModel, modelCount: 0 };
64
+ }
65
+ let totalCount = 0;
66
+ for (const [modelName, entry] of Object.entries(models)) {
67
+ const group = classifyQuotaGroup(modelName, entry.displayName ?? entry.modelName);
68
+ const quotaInfo = entry.quotaInfo;
69
+ const remainingFraction = quotaInfo
70
+ ? normalizeRemainingFraction(quotaInfo.remainingFraction)
71
+ : undefined;
72
+ const resetTime = quotaInfo?.resetTime;
73
+ const resetTimestamp = parseResetTime(resetTime);
74
+ totalCount += 1;
75
+ // Always preserve per-model data regardless of group classification
76
+ perModel.push({
77
+ modelId: modelName,
78
+ displayName: entry.displayName ?? entry.modelName,
79
+ group,
80
+ remainingFraction: remainingFraction ?? 0,
81
+ resetTime,
82
+ });
83
+ if (!group) {
84
+ continue;
85
+ }
86
+ const existing = groups[group];
87
+ const nextCount = (existing?.modelCount ?? 0) + 1;
88
+ const nextRemaining = remainingFraction === undefined
89
+ ? existing?.remainingFraction
90
+ : existing?.remainingFraction === undefined
91
+ ? remainingFraction
92
+ : Math.min(existing.remainingFraction, remainingFraction);
93
+ let nextResetTime = existing?.resetTime;
94
+ if (resetTimestamp !== null) {
95
+ if (!existing?.resetTime) {
96
+ nextResetTime = resetTime;
97
+ }
98
+ else {
99
+ const existingTimestamp = parseResetTime(existing.resetTime);
100
+ if (existingTimestamp === null || resetTimestamp < existingTimestamp) {
101
+ nextResetTime = resetTime;
102
+ }
103
+ }
104
+ }
105
+ groups[group] = {
106
+ remainingFraction: nextRemaining,
107
+ resetTime: nextResetTime,
108
+ modelCount: nextCount,
109
+ };
110
+ }
111
+ // Sort per-model entries by model ID for consistent display
112
+ perModel.sort((a, b) => a.modelId.localeCompare(b.modelId));
113
+ return { groups, perModel, modelCount: totalCount };
114
+ }
115
+ async function fetchWithTimeout(url, options, timeoutMs = FETCH_TIMEOUT_MS) {
116
+ const controller = new AbortController();
117
+ const timeout = setTimeout(() => controller.abort(), timeoutMs);
118
+ try {
119
+ return await fetch(url, { ...options, signal: controller.signal });
120
+ }
121
+ finally {
122
+ clearTimeout(timeout);
123
+ }
124
+ }
125
+ async function fetchAvailableModels(accessToken, projectId) {
126
+ const quotaUserAgent = buildAntigravityHarnessUserAgent();
127
+ const errors = [];
128
+ for (const endpoint of ANTIGRAVITY_ENDPOINT_FALLBACKS) {
129
+ const body = projectId ? { project: projectId } : {};
130
+ try {
131
+ const response = await fetchWithAgyCliTransport(`${endpoint}/v1internal:fetchAvailableModels`, {
132
+ method: "POST",
133
+ headers: {
134
+ "User-Agent": quotaUserAgent,
135
+ Authorization: `Bearer ${accessToken}`,
136
+ "Content-Type": "application/json",
137
+ "Accept-Encoding": "gzip",
138
+ },
139
+ body: JSON.stringify(body),
140
+ }, { timeoutMs: FETCH_TIMEOUT_MS });
141
+ if (response.ok) {
142
+ return (await response.json());
143
+ }
144
+ const status = response.status;
145
+ // 403: retry once without project (like AntigravityManager)
146
+ if (status === 403 && projectId) {
147
+ try {
148
+ const retryResponse = await fetchWithAgyCliTransport(`${endpoint}/v1internal:fetchAvailableModels`, {
149
+ method: "POST",
150
+ headers: {
151
+ "User-Agent": quotaUserAgent,
152
+ Authorization: `Bearer ${accessToken}`,
153
+ "Content-Type": "application/json",
154
+ "Accept-Encoding": "gzip",
155
+ },
156
+ body: JSON.stringify({}),
157
+ }, { timeoutMs: FETCH_TIMEOUT_MS });
158
+ if (retryResponse.ok) {
159
+ return (await retryResponse.json());
160
+ }
161
+ }
162
+ catch {
163
+ // Fall through to next endpoint
164
+ }
165
+ }
166
+ // 429/5xx: fall through to next endpoint
167
+ if (status === 429 || status >= 500) {
168
+ const message = await response.text().catch(() => "");
169
+ const snippet = message.trim().slice(0, 200);
170
+ errors.push(`fetchAvailableModels ${status} at ${endpoint}${snippet ? `: ${snippet}` : ""}`);
171
+ continue;
172
+ }
173
+ // Other errors (4xx): don't retry on different endpoint
174
+ const message = await response.text().catch(() => "");
175
+ const snippet = message.trim().slice(0, 200);
176
+ errors.push(`fetchAvailableModels ${status} at ${endpoint}${snippet ? `: ${snippet}` : ""}`);
177
+ break;
178
+ }
179
+ catch (error) {
180
+ // Network error or timeout: fall through to next endpoint
181
+ errors.push(`fetchAvailableModels network error at ${endpoint}: ${error instanceof Error ? error.message : String(error)}`);
182
+ continue;
183
+ }
184
+ }
185
+ throw new Error(errors.join("; ") || "fetchAvailableModels failed");
186
+ }
187
+ async function fetchGeminiCliQuota(accessToken, projectId) {
188
+ // Use Gemini CLI user-agent to get CLI quota buckets (not Antigravity buckets)
189
+ const geminiCliUserAgent = buildGeminiCliUserAgent();
190
+ for (const endpoint of ANTIGRAVITY_ENDPOINT_FALLBACKS) {
191
+ const body = projectId ? { project: projectId } : {};
192
+ try {
193
+ const response = await fetchWithTimeout(`${endpoint}/v1internal:retrieveUserQuota`, {
194
+ method: "POST",
195
+ headers: {
196
+ Authorization: `Bearer ${accessToken}`,
197
+ "Content-Type": "application/json",
198
+ "User-Agent": geminiCliUserAgent,
199
+ },
200
+ body: JSON.stringify(body),
201
+ });
202
+ if (response.ok) {
203
+ return (await response.json());
204
+ }
205
+ const status = response.status;
206
+ // 429/5xx: fall through to next endpoint
207
+ if (status === 429 || status >= 500) {
208
+ continue;
209
+ }
210
+ // Other errors: don't retry on different endpoint
211
+ return { buckets: [] };
212
+ }
213
+ catch {
214
+ // Network error or timeout: fall through to next endpoint
215
+ continue;
216
+ }
217
+ }
218
+ // All endpoints failed
219
+ return { buckets: [] };
220
+ }
221
+ function aggregateGeminiCliQuota(response) {
222
+ const models = [];
223
+ if (!response.buckets || response.buckets.length === 0) {
224
+ return { models };
225
+ }
226
+ for (const bucket of response.buckets) {
227
+ if (!bucket.modelId) {
228
+ continue;
229
+ }
230
+ // Filter to relevant Gemini CLI quota models (premium tier)
231
+ const modelId = bucket.modelId;
232
+ const isRelevantModel = modelId.startsWith("gemini-3-") ||
233
+ modelId.startsWith("gemini-3.") ||
234
+ modelId.startsWith("gemini-2.5-");
235
+ if (!isRelevantModel) {
236
+ continue;
237
+ }
238
+ models.push({
239
+ modelId: bucket.modelId,
240
+ remainingFraction: normalizeRemainingFraction(bucket.remainingFraction),
241
+ resetTime: bucket.resetTime,
242
+ });
243
+ }
244
+ // Sort by model ID for consistent display
245
+ models.sort((a, b) => a.modelId.localeCompare(b.modelId));
246
+ return { models };
247
+ }
248
+ function applyAccountUpdates(account, auth) {
249
+ const parts = parseRefreshParts(auth.refresh);
250
+ if (!parts.refreshToken) {
251
+ return undefined;
252
+ }
253
+ const updated = {
254
+ ...account,
255
+ refreshToken: parts.refreshToken,
256
+ projectId: parts.projectId ?? account.projectId,
257
+ managedProjectId: parts.managedProjectId ?? account.managedProjectId,
258
+ };
259
+ const changed = updated.refreshToken !== account.refreshToken ||
260
+ updated.projectId !== account.projectId ||
261
+ updated.managedProjectId !== account.managedProjectId;
262
+ return changed ? updated : undefined;
263
+ }
264
+ export async function checkAccountsQuota(accounts, client, providerId = ANTIGRAVITY_PROVIDER_ID) {
265
+ const results = [];
266
+ logQuotaFetch("start", accounts.length);
267
+ for (const [index, account] of accounts.entries()) {
268
+ const disabled = account.enabled === false;
269
+ let auth = buildAuthFromAccount(account);
270
+ try {
271
+ if (accessTokenExpired(auth)) {
272
+ const refreshed = await refreshAccessToken(auth, client, providerId);
273
+ if (!refreshed) {
274
+ throw new Error("Token refresh failed");
275
+ }
276
+ auth = refreshed;
277
+ }
278
+ const projectContext = await ensureProjectContext(auth);
279
+ auth = projectContext.auth;
280
+ const updatedAccount = applyAccountUpdates(account, auth);
281
+ let quotaResult;
282
+ let geminiCliQuotaResult;
283
+ // Fetch both Antigravity and Gemini CLI quotas in parallel
284
+ const [antigravityResponse, geminiCliResponse] = await Promise.all([
285
+ fetchAvailableModels(auth.access ?? "", projectContext.effectiveProjectId)
286
+ .catch((error) => ({ models: undefined })),
287
+ fetchGeminiCliQuota(auth.access ?? "", projectContext.effectiveProjectId),
288
+ ]);
289
+ // Process Antigravity quota
290
+ if (antigravityResponse.models === undefined) {
291
+ quotaResult = {
292
+ groups: {},
293
+ modelCount: 0,
294
+ error: "Failed to fetch Antigravity quota",
295
+ };
296
+ }
297
+ else {
298
+ quotaResult = aggregateQuota(antigravityResponse.models);
299
+ }
300
+ // Process Gemini CLI quota
301
+ geminiCliQuotaResult = aggregateGeminiCliQuota(geminiCliResponse);
302
+ if (geminiCliResponse.buckets === undefined || geminiCliResponse.buckets.length === 0) {
303
+ geminiCliQuotaResult.error = geminiCliQuotaResult.models.length === 0
304
+ ? "No Gemini CLI quota available"
305
+ : undefined;
306
+ }
307
+ results.push({
308
+ index,
309
+ email: account.email,
310
+ status: "ok",
311
+ disabled,
312
+ quota: quotaResult,
313
+ geminiCliQuota: geminiCliQuotaResult,
314
+ updatedAccount,
315
+ });
316
+ // Log quota status for each family
317
+ for (const [family, groupQuota] of Object.entries(quotaResult.groups)) {
318
+ const remainingPercent = (groupQuota.remainingFraction ?? 0) * 100;
319
+ logQuotaStatus(account.email, index, remainingPercent, family);
320
+ }
321
+ }
322
+ catch (error) {
323
+ results.push({
324
+ index,
325
+ email: account.email,
326
+ status: "error",
327
+ disabled,
328
+ error: error instanceof Error ? error.message : String(error),
329
+ });
330
+ logQuotaFetch("error", undefined, `account=${account.email ?? index} error=${error instanceof Error ? error.message : String(error)}`);
331
+ }
332
+ }
333
+ logQuotaFetch("complete", accounts.length, `ok=${results.filter(r => r.status === "ok").length} errors=${results.filter(r => r.status === "error").length}`);
334
+ return results;
335
+ }
336
+ //# sourceMappingURL=quota.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quota.js","sourceRoot":"","sources":["../../../src/plugin/quota.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Constants for session recovery storage paths.
3
+ *
4
+ * Based on oh-my-opencode/src/hooks/session-recovery/constants.ts
5
+ */
6
+ /**
7
+ * Get the XDG config directory for Antigravity config.
8
+ * Falls back to ~/.config on Linux/Mac, or APPDATA on Windows.
9
+ */
10
+ export declare function getXdgConfig(): string;
11
+ /**
12
+ * Get the Antigravity config directory.
13
+ * Default: ~/.config/opencode/antigravity.json
14
+ */
15
+ export declare function getAntigravityConfigDir(): string;
16
+ export declare const OPENCODE_STORAGE: string;
17
+ export declare const MESSAGE_STORAGE: string;
18
+ export declare const PART_STORAGE: string;
19
+ export declare const THINKING_TYPES: Set<string>;
20
+ export declare const META_TYPES: Set<string>;
21
+ export declare const CONTENT_TYPES: Set<string>;
22
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/plugin/recovery/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmBH;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAQrC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,eAAO,MAAM,gBAAgB,QAA4C,CAAC;AAC1E,eAAO,MAAM,eAAe,QAAoC,CAAC;AACjE,eAAO,MAAM,YAAY,QAAiC,CAAC;AAE3D,eAAO,MAAM,cAAc,aAA0D,CAAC;AACtF,eAAO,MAAM,UAAU,aAAyC,CAAC;AACjE,eAAO,MAAM,aAAa,aAAuD,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Constants for session recovery storage paths.
3
+ *
4
+ * Based on oh-my-opencode/src/hooks/session-recovery/constants.ts
5
+ */
6
+ import { join } from "node:path";
7
+ import { homedir } from "node:os";
8
+ /**
9
+ * Get the XDG data directory for OpenCode storage.
10
+ * Falls back to ~/.local/share on Linux/Mac, or APPDATA on Windows.
11
+ */
12
+ function getXdgData() {
13
+ const platform = process.platform;
14
+ if (platform === "win32") {
15
+ return process.env.APPDATA || join(homedir(), "AppData", "Roaming");
16
+ }
17
+ return process.env.XDG_DATA_HOME || join(homedir(), ".local", "share");
18
+ }
19
+ /**
20
+ * Get the XDG config directory for Antigravity config.
21
+ * Falls back to ~/.config on Linux/Mac, or APPDATA on Windows.
22
+ */
23
+ export function getXdgConfig() {
24
+ const platform = process.platform;
25
+ if (platform === "win32") {
26
+ return process.env.APPDATA || join(homedir(), "AppData", "Roaming");
27
+ }
28
+ return process.env.XDG_CONFIG_HOME || join(homedir(), ".config");
29
+ }
30
+ /**
31
+ * Get the Antigravity config directory.
32
+ * Default: ~/.config/opencode/antigravity.json
33
+ */
34
+ export function getAntigravityConfigDir() {
35
+ return join(getXdgConfig(), "opencode");
36
+ }
37
+ export const OPENCODE_STORAGE = join(getXdgData(), "opencode", "storage");
38
+ export const MESSAGE_STORAGE = join(OPENCODE_STORAGE, "message");
39
+ export const PART_STORAGE = join(OPENCODE_STORAGE, "part");
40
+ export const THINKING_TYPES = new Set(["thinking", "redacted_thinking", "reasoning"]);
41
+ export const META_TYPES = new Set(["step-start", "step-finish"]);
42
+ export const CONTENT_TYPES = new Set(["text", "tool", "tool_use", "tool_result"]);
43
+ //# sourceMappingURL=constants.js.map