@vibesdotdev/integrations-gemini 0.0.0-stage → 1.0.0-rc.3

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 (232) hide show
  1. package/LICENSE +126 -0
  2. package/README.md +35 -2
  3. package/dist/ai/client.consumer.d.ts +9 -0
  4. package/dist/ai/client.consumer.d.ts.map +1 -0
  5. package/dist/ai/client.consumer.js +36 -0
  6. package/dist/ai/client.consumer.js.map +1 -0
  7. package/dist/ai/client.d.ts +10 -0
  8. package/dist/ai/client.d.ts.map +1 -0
  9. package/dist/ai/client.js +16 -0
  10. package/dist/ai/client.js.map +1 -0
  11. package/dist/ai/cloud.plugin.d.ts +6 -0
  12. package/dist/ai/cloud.plugin.d.ts.map +1 -0
  13. package/dist/ai/cloud.plugin.js +110 -0
  14. package/dist/ai/cloud.plugin.js.map +1 -0
  15. package/dist/ai/failure.d.ts +26 -0
  16. package/dist/ai/failure.d.ts.map +1 -0
  17. package/dist/ai/failure.js +31 -0
  18. package/dist/ai/failure.js.map +1 -0
  19. package/dist/ai/index.d.ts +6 -0
  20. package/dist/ai/index.d.ts.map +1 -0
  21. package/dist/ai/index.js +5 -0
  22. package/dist/ai/index.js.map +1 -0
  23. package/dist/ai/metadata/provider-models/gemini/gemini-gemini-2-5-flash.json +18 -0
  24. package/dist/ai/metadata/provider-models/gemini/gemini-gemini-2-5-pro.json +18 -0
  25. package/dist/ai/metadata/provider-models/gemini/gemini-gemini-3-1-pro-preview.json +18 -0
  26. package/dist/ai/metadata/provider-models/gemini/gemini-gemini-3-5-flash-lite.json +18 -0
  27. package/dist/ai/metadata/provider-models/gemini/gemini-gemini-3-6-flash.json +18 -0
  28. package/dist/ai/metadata/provider-models/gemini/gemini-gemini-3-8-flash.json +18 -0
  29. package/dist/ai/metadata/provider-models/gemini/gemini-gemini-3-8-pro.json +18 -0
  30. package/dist/ai/metadata/provider-models/gemini/gemini-gemini-3-flash-preview.json +18 -0
  31. package/dist/ai/metadata/providers/gemini.json +8 -0
  32. package/dist/ai/provider.consumer.plugin.d.ts +5 -0
  33. package/dist/ai/provider.consumer.plugin.d.ts.map +1 -0
  34. package/dist/ai/provider.consumer.plugin.js +60 -0
  35. package/dist/ai/provider.consumer.plugin.js.map +1 -0
  36. package/dist/ai/provider.plugin.d.ts +2 -0
  37. package/dist/ai/provider.plugin.d.ts.map +1 -0
  38. package/dist/ai/provider.plugin.js +2 -0
  39. package/dist/ai/provider.plugin.js.map +1 -0
  40. package/dist/ai/providers/cloud/frontier/gemini/config/config.gemini.descriptor.d.ts +4206 -0
  41. package/dist/ai/providers/cloud/frontier/gemini/config/config.gemini.descriptor.d.ts.map +1 -0
  42. package/dist/ai/providers/cloud/frontier/gemini/config/config.gemini.descriptor.js +16 -0
  43. package/dist/ai/providers/cloud/frontier/gemini/config/config.gemini.descriptor.js.map +1 -0
  44. package/dist/ai/providers/cloud/frontier/gemini/config/schemas/index.d.ts +27 -0
  45. package/dist/ai/providers/cloud/frontier/gemini/config/schemas/index.d.ts.map +1 -0
  46. package/dist/ai/providers/cloud/frontier/gemini/config/schemas/index.js +21 -0
  47. package/dist/ai/providers/cloud/frontier/gemini/config/schemas/index.js.map +1 -0
  48. package/dist/ai/providers/cloud/frontier/gemini/index.d.ts +5 -0
  49. package/dist/ai/providers/cloud/frontier/gemini/index.d.ts.map +1 -0
  50. package/dist/ai/providers/cloud/frontier/gemini/index.js +4 -0
  51. package/dist/ai/providers/cloud/frontier/gemini/index.js.map +1 -0
  52. package/dist/ai/providers/cloud/frontier/gemini/provider.gemini.descriptor.d.ts +183 -0
  53. package/dist/ai/providers/cloud/frontier/gemini/provider.gemini.descriptor.d.ts.map +1 -0
  54. package/dist/ai/providers/cloud/frontier/gemini/provider.gemini.descriptor.js +86 -0
  55. package/dist/ai/providers/cloud/frontier/gemini/provider.gemini.descriptor.js.map +1 -0
  56. package/dist/ai/providers/gemini/antigravity-server/antigravity-failure.d.ts +140 -0
  57. package/dist/ai/providers/gemini/antigravity-server/antigravity-failure.d.ts.map +1 -0
  58. package/dist/ai/providers/gemini/antigravity-server/antigravity-failure.js +167 -0
  59. package/dist/ai/providers/gemini/antigravity-server/antigravity-failure.js.map +1 -0
  60. package/dist/ai/providers/gemini/antigravity-server/antigravity-server.spec.descriptor.d.ts +25 -0
  61. package/dist/ai/providers/gemini/antigravity-server/antigravity-server.spec.descriptor.d.ts.map +1 -0
  62. package/dist/ai/providers/gemini/antigravity-server/antigravity-server.spec.descriptor.js +14 -0
  63. package/dist/ai/providers/gemini/antigravity-server/antigravity-server.spec.descriptor.js.map +1 -0
  64. package/dist/ai/providers/gemini/antigravity-server/antigravity-server.spec.impl.d.ts +33 -0
  65. package/dist/ai/providers/gemini/antigravity-server/antigravity-server.spec.impl.d.ts.map +1 -0
  66. package/dist/ai/providers/gemini/antigravity-server/antigravity-server.spec.impl.js +145 -0
  67. package/dist/ai/providers/gemini/antigravity-server/antigravity-server.spec.impl.js.map +1 -0
  68. package/dist/ai/providers/gemini/antigravity-server/antigravity-server.transport.descriptor.d.ts +13 -0
  69. package/dist/ai/providers/gemini/antigravity-server/antigravity-server.transport.descriptor.d.ts.map +1 -0
  70. package/dist/ai/providers/gemini/antigravity-server/antigravity-server.transport.descriptor.js +11 -0
  71. package/dist/ai/providers/gemini/antigravity-server/antigravity-server.transport.descriptor.js.map +1 -0
  72. package/dist/ai/providers/gemini/antigravity-server/antigravity-server.transport.impl.consumer.d.ts +33 -0
  73. package/dist/ai/providers/gemini/antigravity-server/antigravity-server.transport.impl.consumer.d.ts.map +1 -0
  74. package/dist/ai/providers/gemini/antigravity-server/antigravity-server.transport.impl.consumer.js +101 -0
  75. package/dist/ai/providers/gemini/antigravity-server/antigravity-server.transport.impl.consumer.js.map +1 -0
  76. package/dist/ai/providers/gemini/antigravity-server/client.d.ts +63 -0
  77. package/dist/ai/providers/gemini/antigravity-server/client.d.ts.map +1 -0
  78. package/dist/ai/providers/gemini/antigravity-server/client.js +177 -0
  79. package/dist/ai/providers/gemini/antigravity-server/client.js.map +1 -0
  80. package/dist/ai/providers/gemini/antigravity-server/connection.d.ts +141 -0
  81. package/dist/ai/providers/gemini/antigravity-server/connection.d.ts.map +1 -0
  82. package/dist/ai/providers/gemini/antigravity-server/connection.js +469 -0
  83. package/dist/ai/providers/gemini/antigravity-server/connection.js.map +1 -0
  84. package/dist/ai/providers/gemini/antigravity-server/failure-chunk.d.ts +10 -0
  85. package/dist/ai/providers/gemini/antigravity-server/failure-chunk.d.ts.map +1 -0
  86. package/dist/ai/providers/gemini/antigravity-server/failure-chunk.js +29 -0
  87. package/dist/ai/providers/gemini/antigravity-server/failure-chunk.js.map +1 -0
  88. package/dist/ai/providers/gemini/antigravity-server/index.d.ts +10 -0
  89. package/dist/ai/providers/gemini/antigravity-server/index.d.ts.map +1 -0
  90. package/dist/ai/providers/gemini/antigravity-server/index.js +10 -0
  91. package/dist/ai/providers/gemini/antigravity-server/index.js.map +1 -0
  92. package/dist/ai/providers/gemini/antigravity-server/protocol.d.ts +114 -0
  93. package/dist/ai/providers/gemini/antigravity-server/protocol.d.ts.map +1 -0
  94. package/dist/ai/providers/gemini/antigravity-server/protocol.js +112 -0
  95. package/dist/ai/providers/gemini/antigravity-server/protocol.js.map +1 -0
  96. package/dist/ai/providers/gemini/antigravity-server/runtime-execution.d.ts +41 -0
  97. package/dist/ai/providers/gemini/antigravity-server/runtime-execution.d.ts.map +1 -0
  98. package/dist/ai/providers/gemini/antigravity-server/runtime-execution.js +145 -0
  99. package/dist/ai/providers/gemini/antigravity-server/runtime-execution.js.map +1 -0
  100. package/dist/ai/providers/gemini/antigravity-server/session-records.d.ts +64 -0
  101. package/dist/ai/providers/gemini/antigravity-server/session-records.d.ts.map +1 -0
  102. package/dist/ai/providers/gemini/antigravity-server/session-records.js +39 -0
  103. package/dist/ai/providers/gemini/antigravity-server/session-records.js.map +1 -0
  104. package/dist/ai/providers/gemini/antigravity-server/session.d.ts +31 -0
  105. package/dist/ai/providers/gemini/antigravity-server/session.d.ts.map +1 -0
  106. package/dist/ai/providers/gemini/antigravity-server/session.js +153 -0
  107. package/dist/ai/providers/gemini/antigravity-server/session.js.map +1 -0
  108. package/dist/ai/providers/gemini/cli-probes.d.ts +75 -0
  109. package/dist/ai/providers/gemini/cli-probes.d.ts.map +1 -0
  110. package/dist/ai/providers/gemini/cli-probes.js +121 -0
  111. package/dist/ai/providers/gemini/cli-probes.js.map +1 -0
  112. package/dist/ai/providers/gemini/detection/index.d.ts +2 -0
  113. package/dist/ai/providers/gemini/detection/index.d.ts.map +1 -0
  114. package/dist/ai/providers/gemini/detection/index.js +2 -0
  115. package/dist/ai/providers/gemini/detection/index.js.map +1 -0
  116. package/dist/ai/providers/gemini/detection/system.d.ts +25 -0
  117. package/dist/ai/providers/gemini/detection/system.d.ts.map +1 -0
  118. package/dist/ai/providers/gemini/detection/system.js +81 -0
  119. package/dist/ai/providers/gemini/detection/system.js.map +1 -0
  120. package/dist/ai/providers/gemini/docs/ai.providers.gemini.docs.descriptor.d.ts +4 -0
  121. package/dist/ai/providers/gemini/docs/ai.providers.gemini.docs.descriptor.d.ts.map +1 -0
  122. package/dist/ai/providers/gemini/docs/ai.providers.gemini.docs.descriptor.js +55 -0
  123. package/dist/ai/providers/gemini/docs/ai.providers.gemini.docs.descriptor.js.map +1 -0
  124. package/dist/ai/providers/gemini/gemini-cli-status.d.ts +42 -0
  125. package/dist/ai/providers/gemini/gemini-cli-status.d.ts.map +1 -0
  126. package/dist/ai/providers/gemini/gemini-cli-status.js +134 -0
  127. package/dist/ai/providers/gemini/gemini-cli-status.js.map +1 -0
  128. package/dist/ai/providers/gemini/gemini.provider.impl.consumer.d.ts +9 -0
  129. package/dist/ai/providers/gemini/gemini.provider.impl.consumer.d.ts.map +1 -0
  130. package/dist/ai/providers/gemini/gemini.provider.impl.consumer.js +60 -0
  131. package/dist/ai/providers/gemini/gemini.provider.impl.consumer.js.map +1 -0
  132. package/dist/ai/providers/gemini/gemini.provider.impl.d.ts +22 -0
  133. package/dist/ai/providers/gemini/gemini.provider.impl.d.ts.map +1 -0
  134. package/dist/ai/providers/gemini/gemini.provider.impl.js +143 -0
  135. package/dist/ai/providers/gemini/gemini.provider.impl.js.map +1 -0
  136. package/dist/ai/providers/gemini/index.d.ts +9 -0
  137. package/dist/ai/providers/gemini/index.d.ts.map +1 -0
  138. package/dist/ai/providers/gemini/index.js +7 -0
  139. package/dist/ai/providers/gemini/index.js.map +1 -0
  140. package/dist/ai/providers/gemini/recommendations.d.ts +24 -0
  141. package/dist/ai/providers/gemini/recommendations.d.ts.map +1 -0
  142. package/dist/ai/providers/gemini/recommendations.js +36 -0
  143. package/dist/ai/providers/gemini/recommendations.js.map +1 -0
  144. package/dist/ai/specs/antigravity-cli-exec/antigravity-cli-exec.spec.descriptor.d.ts +34 -0
  145. package/dist/ai/specs/antigravity-cli-exec/antigravity-cli-exec.spec.descriptor.d.ts.map +1 -0
  146. package/dist/ai/specs/antigravity-cli-exec/antigravity-cli-exec.spec.descriptor.js +23 -0
  147. package/dist/ai/specs/antigravity-cli-exec/antigravity-cli-exec.spec.descriptor.js.map +1 -0
  148. package/dist/ai/specs/antigravity-cli-exec/antigravity-cli-exec.spec.impl.d.ts +46 -0
  149. package/dist/ai/specs/antigravity-cli-exec/antigravity-cli-exec.spec.impl.d.ts.map +1 -0
  150. package/dist/ai/specs/antigravity-cli-exec/antigravity-cli-exec.spec.impl.js +165 -0
  151. package/dist/ai/specs/antigravity-cli-exec/antigravity-cli-exec.spec.impl.js.map +1 -0
  152. package/dist/ai/specs/cli-response.d.ts +12 -0
  153. package/dist/ai/specs/cli-response.d.ts.map +1 -0
  154. package/dist/ai/specs/cli-response.js +36 -0
  155. package/dist/ai/specs/cli-response.js.map +1 -0
  156. package/dist/ai/specs/gemini-cli-exec/gemini-cli-exec.spec.descriptor.d.ts +32 -0
  157. package/dist/ai/specs/gemini-cli-exec/gemini-cli-exec.spec.descriptor.d.ts.map +1 -0
  158. package/dist/ai/specs/gemini-cli-exec/gemini-cli-exec.spec.descriptor.js +21 -0
  159. package/dist/ai/specs/gemini-cli-exec/gemini-cli-exec.spec.descriptor.js.map +1 -0
  160. package/dist/ai/specs/gemini-cli-exec/gemini-cli-exec.spec.impl.d.ts +33 -0
  161. package/dist/ai/specs/gemini-cli-exec/gemini-cli-exec.spec.impl.d.ts.map +1 -0
  162. package/dist/ai/specs/gemini-cli-exec/gemini-cli-exec.spec.impl.js +84 -0
  163. package/dist/ai/specs/gemini-cli-exec/gemini-cli-exec.spec.impl.js.map +1 -0
  164. package/dist/ai/specs/gemini-image/gemini-image.spec.descriptor.d.ts +37 -0
  165. package/dist/ai/specs/gemini-image/gemini-image.spec.descriptor.d.ts.map +1 -0
  166. package/dist/ai/specs/gemini-image/gemini-image.spec.descriptor.js +34 -0
  167. package/dist/ai/specs/gemini-image/gemini-image.spec.descriptor.js.map +1 -0
  168. package/dist/ai/specs/gemini-image/gemini-image.spec.impl.d.ts +42 -0
  169. package/dist/ai/specs/gemini-image/gemini-image.spec.impl.d.ts.map +1 -0
  170. package/dist/ai/specs/gemini-image/gemini-image.spec.impl.js +116 -0
  171. package/dist/ai/specs/gemini-image/gemini-image.spec.impl.js.map +1 -0
  172. package/dist/external/antigravity/index.d.ts +162 -0
  173. package/dist/external/antigravity/index.d.ts.map +1 -0
  174. package/dist/external/antigravity/index.js +7 -0
  175. package/dist/external/antigravity/index.js.map +1 -0
  176. package/dist/external/antigravity/manifest.d.ts +6 -0
  177. package/dist/external/antigravity/manifest.d.ts.map +1 -0
  178. package/dist/external/antigravity/manifest.js +70 -0
  179. package/dist/external/antigravity/manifest.js.map +1 -0
  180. package/dist/external/antigravity-subscription.operation.descriptors.d.ts +61 -0
  181. package/dist/external/antigravity-subscription.operation.descriptors.d.ts.map +1 -0
  182. package/dist/external/antigravity-subscription.operation.descriptors.js +26 -0
  183. package/dist/external/antigravity-subscription.operation.descriptors.js.map +1 -0
  184. package/dist/external/antigravity-subscription.operations.d.ts +4 -0
  185. package/dist/external/antigravity-subscription.operations.d.ts.map +1 -0
  186. package/dist/external/antigravity-subscription.operations.js +49 -0
  187. package/dist/external/antigravity-subscription.operations.js.map +1 -0
  188. package/dist/external/external.plugin.d.ts +3 -0
  189. package/dist/external/external.plugin.d.ts.map +1 -0
  190. package/dist/external/external.plugin.js +30 -0
  191. package/dist/external/external.plugin.js.map +1 -0
  192. package/dist/external/gemini-cli/index.d.ts +162 -0
  193. package/dist/external/gemini-cli/index.d.ts.map +1 -0
  194. package/dist/external/gemini-cli/index.js +5 -0
  195. package/dist/external/gemini-cli/index.js.map +1 -0
  196. package/dist/external/gemini-cli/manifest.d.ts +10 -0
  197. package/dist/external/gemini-cli/manifest.d.ts.map +1 -0
  198. package/dist/external/gemini-cli/manifest.js +80 -0
  199. package/dist/external/gemini-cli/manifest.js.map +1 -0
  200. package/dist/external/gemini-presets.d.ts +817 -0
  201. package/dist/external/gemini-presets.d.ts.map +1 -0
  202. package/dist/external/gemini-presets.js +59 -0
  203. package/dist/external/gemini-presets.js.map +1 -0
  204. package/dist/external/index.d.ts +4 -0
  205. package/dist/external/index.d.ts.map +1 -0
  206. package/dist/external/index.js +4 -0
  207. package/dist/external/index.js.map +1 -0
  208. package/dist/failure-outcome.d.ts +25 -0
  209. package/dist/failure-outcome.d.ts.map +1 -0
  210. package/dist/failure-outcome.js +28 -0
  211. package/dist/failure-outcome.js.map +1 -0
  212. package/dist/index.d.ts +2 -0
  213. package/dist/index.d.ts.map +1 -0
  214. package/dist/index.js +2 -0
  215. package/dist/index.js.map +1 -0
  216. package/dist/schemas/cli.d.ts +97 -0
  217. package/dist/schemas/cli.d.ts.map +1 -0
  218. package/dist/schemas/cli.js +51 -0
  219. package/dist/schemas/cli.js.map +1 -0
  220. package/dist/schemas/health.d.ts +8 -0
  221. package/dist/schemas/health.d.ts.map +1 -0
  222. package/dist/schemas/health.js +6 -0
  223. package/dist/schemas/health.js.map +1 -0
  224. package/dist/schemas/imagen.d.ts +31 -0
  225. package/dist/schemas/imagen.d.ts.map +1 -0
  226. package/dist/schemas/imagen.js +18 -0
  227. package/dist/schemas/imagen.js.map +1 -0
  228. package/dist/schemas/mcp-config.d.ts +13 -0
  229. package/dist/schemas/mcp-config.d.ts.map +1 -0
  230. package/dist/schemas/mcp-config.js +13 -0
  231. package/dist/schemas/mcp-config.js.map +1 -0
  232. package/package.json +129 -4
@@ -0,0 +1,114 @@
1
+ /**
2
+ * The Antigravity `agy` stream-json wire: one JSON event per line on stdout
3
+ * (`init`, `step_update`, `result`), one `user` message per line on stdin.
4
+ *
5
+ * It is NOT JSON-RPC (an event has no `id`, `method` or `result` envelope), so
6
+ * the shared JSON-RPC client does not apply; the framing is the shared one
7
+ * (`@vibesdotdev/external/jsonrpc`) and this module is the caller's own parsing.
8
+ *
9
+ * Every line the child writes is hostile until read here: {@link parseAntigravityLine}
10
+ * never throws and answers one of four things, an event of a known shape, an
11
+ * event name this integration does not know (reported, never queued), or an
12
+ * invalid line (not JSON, not an event, or a known event of the wrong shape).
13
+ * Text-bearing members are strict (a wrong type is invalid, never absent);
14
+ * metadata-only members of the wrong type read as absent. Nothing here walks a
15
+ * child-supplied value: tool parameters are carried as the JSON they came out
16
+ * of `JSON.parse` as.
17
+ */
18
+ import * as z from 'zod/v4';
19
+ declare const InitEventSchema: z.ZodObject<{
20
+ event: z.ZodLiteral<"init">;
21
+ conversation_id: z.ZodCatch<z.ZodOptional<z.ZodString>>;
22
+ }, z.core.$strip>;
23
+ declare const StepUpdateSchema: z.ZodObject<{
24
+ conversation_id: z.ZodCatch<z.ZodOptional<z.ZodString>>;
25
+ step_index: z.ZodCatch<z.ZodOptional<z.ZodInt>>;
26
+ state: z.ZodCatch<z.ZodOptional<z.ZodString>>;
27
+ step_type: z.ZodCatch<z.ZodOptional<z.ZodString>>;
28
+ text_delta: z.ZodOptional<z.ZodString>;
29
+ thinking_delta: z.ZodOptional<z.ZodString>;
30
+ tool_name: z.ZodOptional<z.ZodString>;
31
+ tool_info: z.ZodOptional<z.ZodObject<{
32
+ name: z.ZodOptional<z.ZodString>;
33
+ parameters: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
34
+ }, z.core.$strip>>;
35
+ }, z.core.$strip>;
36
+ declare const StepUpdateEventSchema: z.ZodObject<{
37
+ event: z.ZodLiteral<"step_update">;
38
+ step_update: z.ZodObject<{
39
+ conversation_id: z.ZodCatch<z.ZodOptional<z.ZodString>>;
40
+ step_index: z.ZodCatch<z.ZodOptional<z.ZodInt>>;
41
+ state: z.ZodCatch<z.ZodOptional<z.ZodString>>;
42
+ step_type: z.ZodCatch<z.ZodOptional<z.ZodString>>;
43
+ text_delta: z.ZodOptional<z.ZodString>;
44
+ thinking_delta: z.ZodOptional<z.ZodString>;
45
+ tool_name: z.ZodOptional<z.ZodString>;
46
+ tool_info: z.ZodOptional<z.ZodObject<{
47
+ name: z.ZodOptional<z.ZodString>;
48
+ parameters: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
49
+ }, z.core.$strip>>;
50
+ }, z.core.$strip>;
51
+ }, z.core.$strip>;
52
+ declare const ResultPayloadSchema: z.ZodObject<{
53
+ conversation_id: z.ZodCatch<z.ZodOptional<z.ZodString>>;
54
+ status: z.ZodString;
55
+ response: z.ZodOptional<z.ZodString>;
56
+ error: z.ZodCatch<z.ZodOptional<z.ZodString>>;
57
+ message: z.ZodCatch<z.ZodOptional<z.ZodString>>;
58
+ usage: z.ZodCatch<z.ZodOptional<z.ZodObject<{
59
+ input_tokens: z.ZodCatch<z.ZodOptional<z.ZodNumber>>;
60
+ output_tokens: z.ZodCatch<z.ZodOptional<z.ZodNumber>>;
61
+ total_tokens: z.ZodCatch<z.ZodOptional<z.ZodNumber>>;
62
+ }, z.core.$strip>>>;
63
+ }, z.core.$strip>;
64
+ declare const ResultEventSchema: z.ZodObject<{
65
+ event: z.ZodLiteral<"result">;
66
+ result: z.ZodObject<{
67
+ conversation_id: z.ZodCatch<z.ZodOptional<z.ZodString>>;
68
+ status: z.ZodString;
69
+ response: z.ZodOptional<z.ZodString>;
70
+ error: z.ZodCatch<z.ZodOptional<z.ZodString>>;
71
+ message: z.ZodCatch<z.ZodOptional<z.ZodString>>;
72
+ usage: z.ZodCatch<z.ZodOptional<z.ZodObject<{
73
+ input_tokens: z.ZodCatch<z.ZodOptional<z.ZodNumber>>;
74
+ output_tokens: z.ZodCatch<z.ZodOptional<z.ZodNumber>>;
75
+ total_tokens: z.ZodCatch<z.ZodOptional<z.ZodNumber>>;
76
+ }, z.core.$strip>>>;
77
+ }, z.core.$strip>;
78
+ }, z.core.$strip>;
79
+ export type AntigravityInitEvent = z.infer<typeof InitEventSchema>;
80
+ export type AntigravityStepUpdate = z.infer<typeof StepUpdateSchema>;
81
+ export type AntigravityStepUpdateEvent = z.infer<typeof StepUpdateEventSchema>;
82
+ export type AntigravityResultPayload = z.infer<typeof ResultPayloadSchema>;
83
+ export type AntigravityResultEvent = z.infer<typeof ResultEventSchema>;
84
+ /** An event of a known shape: the ones the connection hands the session. */
85
+ export type AntigravityServerEvent = AntigravityInitEvent | AntigravityStepUpdateEvent | AntigravityResultEvent;
86
+ /** What one line of the child's stdout is. */
87
+ export type AntigravityParsedLine = {
88
+ readonly kind: 'event';
89
+ readonly event: AntigravityServerEvent;
90
+ } | {
91
+ readonly kind: 'unknown-event';
92
+ readonly name: string;
93
+ } | {
94
+ readonly kind: 'invalid';
95
+ readonly stage: AntigravityInvalidStage;
96
+ readonly excerpt: string;
97
+ readonly paths?: readonly string[];
98
+ };
99
+ export type AntigravityInvalidStage = 'not-json' | 'not-an-event' | 'event-shape';
100
+ /** The `user` message the client writes to the child's stdin. */
101
+ export interface AntigravityUserInputMessage {
102
+ event: 'user';
103
+ message: {
104
+ content: string;
105
+ };
106
+ }
107
+ /**
108
+ * Read one line of the child's stdout. Never throws: a hostile line (deep JSON,
109
+ * `__proto__` members, a member of the wrong type, a huge string) is `invalid`,
110
+ * with a bounded excerpt for the log and never a message.
111
+ */
112
+ export declare function parseAntigravityLine(line: string): AntigravityParsedLine;
113
+ export {};
114
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../../../src/ai/providers/gemini/antigravity-server/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAkB5B,QAAA,MAAM,eAAe;;;iBAGnB,CAAC;AAEH,QAAA,MAAM,gBAAgB;;;;;;;;;;;;iBAcpB,CAAC;AAEH,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;iBAGzB,CAAC;AAEH,QAAA,MAAM,mBAAmB;;;;;;;;;;;iBAQvB,CAAC;AAEH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;iBAGrB,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACnE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AACrE,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAC/E,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAC3E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEvE,4EAA4E;AAC5E,MAAM,MAAM,sBAAsB,GAAG,oBAAoB,GAAG,0BAA0B,GAAG,sBAAsB,CAAC;AAEhH,8CAA8C;AAC9C,MAAM,MAAM,qBAAqB,GAC9B;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAA;CAAE,GAClE;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAEvI,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,cAAc,GAAG,aAAa,CAAC;AAElF,iEAAiE;AACjE,MAAM,WAAW,2BAA2B;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;CACF;AAcD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAaxE"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * The Antigravity `agy` stream-json wire: one JSON event per line on stdout
3
+ * (`init`, `step_update`, `result`), one `user` message per line on stdin.
4
+ *
5
+ * It is NOT JSON-RPC (an event has no `id`, `method` or `result` envelope), so
6
+ * the shared JSON-RPC client does not apply; the framing is the shared one
7
+ * (`@vibesdotdev/external/jsonrpc`) and this module is the caller's own parsing.
8
+ *
9
+ * Every line the child writes is hostile until read here: {@link parseAntigravityLine}
10
+ * never throws and answers one of four things, an event of a known shape, an
11
+ * event name this integration does not know (reported, never queued), or an
12
+ * invalid line (not JSON, not an event, or a known event of the wrong shape).
13
+ * Text-bearing members are strict (a wrong type is invalid, never absent);
14
+ * metadata-only members of the wrong type read as absent. Nothing here walks a
15
+ * child-supplied value: tool parameters are carried as the JSON they came out
16
+ * of `JSON.parse` as.
17
+ */
18
+ import * as z from 'zod/v4';
19
+ import { boundedExcerpt } from '@vibesdotdev/external/jsonrpc';
20
+ import { settleNow as attempt } from '@vibesdotdev/kernel';
21
+ /** The longest event name kept in a diagnostic, in characters. */
22
+ const MAX_EVENT_NAME_CHARS = 64;
23
+ const OptionalMetadata = (schema) => schema.optional().catch(undefined);
24
+ const UsageSchema = z.object({
25
+ input_tokens: OptionalMetadata(z.number().finite().nonnegative()),
26
+ output_tokens: OptionalMetadata(z.number().finite().nonnegative()),
27
+ total_tokens: OptionalMetadata(z.number().finite().nonnegative())
28
+ });
29
+ /** A JSON object taken from `JSON.parse`: its members are carried as they are, never re-walked (a hostile object is as deep as the line cap allows). */
30
+ const JsonObjectSchema = z.looseObject({});
31
+ const InitEventSchema = z.object({
32
+ event: z.literal('init'),
33
+ conversation_id: OptionalMetadata(z.string().max(256))
34
+ });
35
+ const StepUpdateSchema = z.object({
36
+ conversation_id: OptionalMetadata(z.string().max(256)),
37
+ step_index: OptionalMetadata(z.int().min(0)),
38
+ state: OptionalMetadata(z.string().max(64)),
39
+ step_type: OptionalMetadata(z.string().max(64)),
40
+ text_delta: z.string().optional(),
41
+ thinking_delta: z.string().optional(),
42
+ tool_name: z.string().max(256).optional(),
43
+ tool_info: z
44
+ .object({
45
+ name: z.string().max(256).optional(),
46
+ parameters: JsonObjectSchema.optional()
47
+ })
48
+ .optional()
49
+ });
50
+ const StepUpdateEventSchema = z.object({
51
+ event: z.literal('step_update'),
52
+ step_update: StepUpdateSchema
53
+ });
54
+ const ResultPayloadSchema = z.object({
55
+ conversation_id: OptionalMetadata(z.string().max(256)),
56
+ status: z.string().max(64),
57
+ response: z.string().optional(),
58
+ // Child text: read only to be kept as the bounded cause of a failed turn.
59
+ error: OptionalMetadata(z.string()),
60
+ message: OptionalMetadata(z.string()),
61
+ usage: OptionalMetadata(UsageSchema)
62
+ });
63
+ const ResultEventSchema = z.object({
64
+ event: z.literal('result'),
65
+ result: ResultPayloadSchema
66
+ });
67
+ const EventNameSchema = z.object({ event: z.string().min(1) });
68
+ function invalid(stage, line, paths) {
69
+ const excerpt = boundedExcerpt(line);
70
+ return paths ? { kind: 'invalid', stage, excerpt, paths } : { kind: 'invalid', stage, excerpt };
71
+ }
72
+ /** Where a schema failed, as bounded member paths (never a value). */
73
+ function issuePaths(error) {
74
+ return error.issues.slice(0, 8).map((issue) => boundedExcerpt(issue.path.map(String).join('.')).slice(0, 80) || '(root)');
75
+ }
76
+ /**
77
+ * Read one line of the child's stdout. Never throws: a hostile line (deep JSON,
78
+ * `__proto__` members, a member of the wrong type, a huge string) is `invalid`,
79
+ * with a bounded excerpt for the log and never a message.
80
+ */
81
+ export function parseAntigravityLine(line) {
82
+ const parsed = attempt(() => JSON.parse(line));
83
+ if (!parsed.ok)
84
+ return invalid('not-json', line);
85
+ const raw = parsed.value;
86
+ const named = attempt(() => EventNameSchema.safeParse(raw));
87
+ if (!named.ok || !named.value.success)
88
+ return invalid('not-an-event', line);
89
+ const name = named.value.data.event;
90
+ const schema = eventSchemaFor(name);
91
+ if (!schema)
92
+ return { kind: 'unknown-event', name: boundedExcerpt(name).slice(0, MAX_EVENT_NAME_CHARS) };
93
+ const read = attempt(() => schema.safeParse(raw));
94
+ if (!read.ok)
95
+ return invalid('event-shape', line, ['(unreadable)']);
96
+ if (!read.value.success)
97
+ return invalid('event-shape', line, issuePaths(read.value.error));
98
+ return { kind: 'event', event: read.value.data };
99
+ }
100
+ function eventSchemaFor(name) {
101
+ switch (name) {
102
+ case 'init':
103
+ return InitEventSchema;
104
+ case 'step_update':
105
+ return StepUpdateEventSchema;
106
+ case 'result':
107
+ return ResultEventSchema;
108
+ default:
109
+ return undefined;
110
+ }
111
+ }
112
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../../../src/ai/providers/gemini/antigravity-server/protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { RuntimeExecution } from '@vibesdotdev/kernel/execution';
2
+ import { composeChildEnv, type RuntimeRef } from '@vibesdotdev/kernel';
3
+ import type { AIExecutionPolicy } from '@vibesdotdev/ai/schemas/execution-policy';
4
+ import type { AntigravityServerDefaultOptions, AntigravityServerSpawner } from './connection.ts';
5
+ /** The part of `runtime/execution` the spawner uses. */
6
+ export type AntigravityServerExecution = Pick<RuntimeExecution, 'resolveCommand' | 'spawn'>;
7
+ /**
8
+ * Whether the call's declared execution policy grants what `--dangerously-skip-permissions`
9
+ * gives: full access (`danger-full-access`) with no approval prompts (`never`). The flag is
10
+ * the child's only approval switch and it removes every prompt, so it is off by default and
11
+ * the policy is clamped, never widened: no policy, a read-only or workspace-write sandbox, or
12
+ * any approval policy that asks leaves the child in its own `request-review` mode.
13
+ */
14
+ export declare function approvalBypassDeclared(policy: AIExecutionPolicy | undefined): boolean;
15
+ /**
16
+ * A workspace path as the host names it. `platform` is the host's captured
17
+ * platform (`runtime.localEnvironment.getPlatform()`); without it only a
18
+ * `file://` URL is reduced to its path, and the spawner, which has the host,
19
+ * applies the platform's form. Idempotent, so a path normalized twice is the same.
20
+ */
21
+ export declare function normalizeWorkspacePath(raw?: string, platform?: string): string | undefined;
22
+ /** The runtime an Antigravity child's environment is composed from (`composeChildEnv`). */
23
+ export type AntigravityChildEnvRuntime = Parameters<typeof composeChildEnv>[0];
24
+ /**
25
+ * Every Antigravity child runs with `envMode: 'replace'` and the kernel's
26
+ * composed environment (rc02-rc03 C22): the host base set (its sign-in lives
27
+ * under HOME), plus the proxy and CA settings its HTTPS calls honour. The
28
+ * child receives only those names from the host.
29
+ */
30
+ export declare const ANTIGRAVITY_INHERIT_ENV: readonly ["HTTPS_PROXY", "HTTP_PROXY", "NO_PROXY", "SSL_CERT_FILE"];
31
+ /**
32
+ * The interactive `agy` sign-in draws in the user's terminal and opens a
33
+ * browser: the terminal's colour and program, the selected browser and the
34
+ * desktop session it opens in.
35
+ */
36
+ export declare const ANTIGRAVITY_LOGIN_INHERIT_ENV: readonly ["HTTPS_PROXY", "HTTP_PROXY", "NO_PROXY", "SSL_CERT_FILE", "COLORTERM", "TERM_PROGRAM", "BROWSER", "DISPLAY", "WAYLAND_DISPLAY", "XDG_RUNTIME_DIR", "DBUS_SESSION_BUS_ADDRESS"];
37
+ /** An Antigravity child's environment on `runtime`. */
38
+ export declare function antigravityEnv(runtime: AntigravityChildEnvRuntime, inheritEnv?: readonly string[]): Record<string, string>;
39
+ export declare function createAntigravityServerSpawner(runtime: AntigravityChildEnvRuntime, execution: AntigravityServerExecution, defaultOptions?: AntigravityServerDefaultOptions): AntigravityServerSpawner;
40
+ export declare function createRuntimeAntigravityServerTransport(runtime: RuntimeRef, options?: AntigravityServerDefaultOptions): Promise<import('./antigravity-server.transport.impl.consumer.ts').AntigravityServerTransport>;
41
+ //# sourceMappingURL=runtime-execution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-execution.d.ts","sourceRoot":"","sources":["../../../../../src/ai/providers/gemini/antigravity-server/runtime-execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAW,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEhF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,KAAK,EAAE,+BAA+B,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAEjG,wDAAwD;AACxD,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC;AAE5F;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,GAAG,OAAO,CAErF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAc1F;AAOD,2FAA2F;AAC3F,MAAM,MAAM,0BAA0B,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/E;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,qEAAsE,CAAC;AAE3G;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,0LAShC,CAAC;AAEX,uDAAuD;AACvD,wBAAgB,cAAc,CAC7B,OAAO,EAAE,0BAA0B,EACnC,UAAU,GAAE,SAAS,MAAM,EAA4B,GACrD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAExB;AAED,wBAAgB,8BAA8B,CAC7C,OAAO,EAAE,0BAA0B,EACnC,SAAS,EAAE,0BAA0B,EACrC,cAAc,GAAE,+BAAoC,GAClD,wBAAwB,CAqE1B;AAED,wBAAsB,uCAAuC,CAC5D,OAAO,EAAE,UAAU,EACnB,OAAO,GAAE,+BAAoC,GAC3C,OAAO,CAAC,OAAO,iDAAiD,EAAE,0BAA0B,CAAC,CAgB/F"}
@@ -0,0 +1,145 @@
1
+ import { composeChildEnv, readEnv } from '@vibesdotdev/kernel';
2
+ import { antigravityFailure } from "./antigravity-failure.js";
3
+ /**
4
+ * Whether the call's declared execution policy grants what `--dangerously-skip-permissions`
5
+ * gives: full access (`danger-full-access`) with no approval prompts (`never`). The flag is
6
+ * the child's only approval switch and it removes every prompt, so it is off by default and
7
+ * the policy is clamped, never widened: no policy, a read-only or workspace-write sandbox, or
8
+ * any approval policy that asks leaves the child in its own `request-review` mode.
9
+ */
10
+ export function approvalBypassDeclared(policy) {
11
+ return policy?.sandboxMode === 'danger-full-access' && policy.approvalPolicy === 'never';
12
+ }
13
+ /**
14
+ * A workspace path as the host names it. `platform` is the host's captured
15
+ * platform (`runtime.localEnvironment.getPlatform()`); without it only a
16
+ * `file://` URL is reduced to its path, and the spawner, which has the host,
17
+ * applies the platform's form. Idempotent, so a path normalized twice is the same.
18
+ */
19
+ export function normalizeWorkspacePath(raw, platform) {
20
+ if (!raw)
21
+ return undefined;
22
+ let normalized = raw.trim();
23
+ if (normalized.startsWith('file://')) {
24
+ // A `file://` text that is not a URL is reduced to its path by hand: the same path, never a guess.
25
+ normalized = URL.canParse(normalized)
26
+ ? new URL(normalized).pathname
27
+ : normalized.replace(/^file:\/\/\/?/, '');
28
+ }
29
+ if (platform === 'win32') {
30
+ if (/^\/[a-zA-Z]:/.test(normalized))
31
+ normalized = normalized.slice(1);
32
+ normalized = normalized.replace(/\//g, '\\');
33
+ }
34
+ return normalized || undefined;
35
+ }
36
+ /** Slash-stable key so Windows path forms dedupe on every host platform. */
37
+ function workspacePathDedupeKey(path) {
38
+ return path.replace(/\\/g, '/');
39
+ }
40
+ /**
41
+ * Every Antigravity child runs with `envMode: 'replace'` and the kernel's
42
+ * composed environment (rc02-rc03 C22): the host base set (its sign-in lives
43
+ * under HOME), plus the proxy and CA settings its HTTPS calls honour. The
44
+ * child receives only those names from the host.
45
+ */
46
+ export const ANTIGRAVITY_INHERIT_ENV = ['HTTPS_PROXY', 'HTTP_PROXY', 'NO_PROXY', 'SSL_CERT_FILE'];
47
+ /**
48
+ * The interactive `agy` sign-in draws in the user's terminal and opens a
49
+ * browser: the terminal's colour and program, the selected browser and the
50
+ * desktop session it opens in.
51
+ */
52
+ export const ANTIGRAVITY_LOGIN_INHERIT_ENV = [
53
+ ...ANTIGRAVITY_INHERIT_ENV,
54
+ 'COLORTERM',
55
+ 'TERM_PROGRAM',
56
+ 'BROWSER',
57
+ 'DISPLAY',
58
+ 'WAYLAND_DISPLAY',
59
+ 'XDG_RUNTIME_DIR',
60
+ 'DBUS_SESSION_BUS_ADDRESS'
61
+ ];
62
+ /** An Antigravity child's environment on `runtime`. */
63
+ export function antigravityEnv(runtime, inheritEnv = ANTIGRAVITY_INHERIT_ENV) {
64
+ return composeChildEnv(runtime, { inheritEnv });
65
+ }
66
+ export function createAntigravityServerSpawner(runtime, execution, defaultOptions = {}) {
67
+ return async (overrideOptions = {}) => {
68
+ // The host's captured facts, never this process's globals.
69
+ const platform = runtime.localEnvironment.getPlatform?.();
70
+ const isWindows = platform === 'win32';
71
+ const defaultCommand = isWindows ? 'agy.exe' : 'agy';
72
+ const requestedCommand = overrideOptions.command ?? defaultOptions.command ?? defaultCommand;
73
+ let resolved = await execution.resolveCommand(requestedCommand);
74
+ const localAppData = isWindows
75
+ ? readEnv({ platform, snapshot: runtime.getEnvSnapshot() }, 'LOCALAPPDATA')
76
+ : undefined;
77
+ if (!resolved && localAppData) {
78
+ const localAppDataAgy = `${localAppData}\\agy\\bin\\agy.exe`;
79
+ resolved = (await execution.resolveCommand(localAppDataAgy)) ?? localAppDataAgy;
80
+ }
81
+ const command = resolved ?? requestedCommand;
82
+ const args = [
83
+ '--input-format',
84
+ 'stream-json',
85
+ '--output-format',
86
+ 'stream-json',
87
+ '--disable-slash-commands'
88
+ ];
89
+ // Off unless this call declares it (`approvalBypassDeclared`): the defaults cannot turn it on.
90
+ if (overrideOptions.skipPermissions === true)
91
+ args.push('--dangerously-skip-permissions');
92
+ args.push('--print=');
93
+ const model = overrideOptions.model ?? defaultOptions.model;
94
+ const effort = overrideOptions.effort ?? defaultOptions.effort;
95
+ if (model) {
96
+ args.push('--model', model);
97
+ }
98
+ if (effort) {
99
+ args.push('--effort', effort);
100
+ }
101
+ const rawCwd = overrideOptions.cwd ?? defaultOptions.cwd;
102
+ const cwd = normalizeWorkspacePath(rawCwd, platform);
103
+ const seenDirs = new Set();
104
+ if (cwd) {
105
+ seenDirs.add(workspacePathDedupeKey(cwd));
106
+ args.push('--add-dir', cwd);
107
+ }
108
+ const workspaceDirs = overrideOptions.workspaceDirs ?? defaultOptions.workspaceDirs ?? [];
109
+ for (const dir of workspaceDirs) {
110
+ const normalized = normalizeWorkspacePath(dir, platform);
111
+ if (!normalized)
112
+ continue;
113
+ const key = workspacePathDedupeKey(normalized);
114
+ if (!seenDirs.has(key)) {
115
+ seenDirs.add(key);
116
+ args.push('--add-dir', normalized);
117
+ }
118
+ }
119
+ return execution.spawn({
120
+ command,
121
+ args,
122
+ cwd,
123
+ env: antigravityEnv(runtime),
124
+ envMode: 'replace',
125
+ stdin: 'pipe',
126
+ stdout: 'pipe',
127
+ stderr: 'pipe'
128
+ });
129
+ };
130
+ }
131
+ export async function createRuntimeAntigravityServerTransport(runtime, options = {}) {
132
+ const { AntigravityServerTransport } = await import("./antigravity-server.transport.impl.consumer.js");
133
+ return new AntigravityServerTransport(runtime, async (spawnOpts) => {
134
+ if (runtime.scope.hardware !== 'consumer') {
135
+ throw antigravityFailure('antigravity-consumer-host-required');
136
+ }
137
+ const execution = await runtime
138
+ .query('runtime/execution')
139
+ .resolve();
140
+ if (!execution)
141
+ throw antigravityFailure('antigravity-execution-unavailable');
142
+ return createAntigravityServerSpawner(runtime, execution, options)(spawnOpts);
143
+ });
144
+ }
145
+ //# sourceMappingURL=runtime-execution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-execution.js","sourceRoot":"","sources":["../../../../../src/ai/providers/gemini/antigravity-server/runtime-execution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * The records the Antigravity session program writes on the wire (`ndjson-record`
3
+ * chunks) and the spec reads back. One schema owns both sides: the session builds
4
+ * a {@link AntigravitySessionRecord}, the spec parses the chunk's text with
5
+ * {@link AntigravitySessionRecordSchema}, so a record the spec cannot read is a
6
+ * typed refusal and never a skipped chunk.
7
+ */
8
+ import * as z from 'zod/v4';
9
+ import type { WireResponseChunk } from '@vibesdotdev/ai/specs/interfaces';
10
+ import type { TextGenerationResponse } from '@vibesdotdev/ai/interfaces/adapter';
11
+ export declare const AntigravitySessionRecordSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
12
+ type: z.ZodLiteral<"text-delta">;
13
+ delta: z.ZodString;
14
+ }, z.core.$strip>, z.ZodObject<{
15
+ type: z.ZodLiteral<"thinking-delta">;
16
+ delta: z.ZodString;
17
+ }, z.core.$strip>, z.ZodObject<{
18
+ type: z.ZodLiteral<"tool-call-start">;
19
+ id: z.ZodString;
20
+ name: z.ZodString;
21
+ }, z.core.$strip>, z.ZodObject<{
22
+ type: z.ZodLiteral<"tool-call-arg-delta">;
23
+ id: z.ZodString;
24
+ delta: z.ZodString;
25
+ }, z.core.$strip>, z.ZodObject<{
26
+ type: z.ZodLiteral<"tool-call-end">;
27
+ id: z.ZodString;
28
+ }, z.core.$strip>, z.ZodObject<{
29
+ type: z.ZodLiteral<"result">;
30
+ result: z.ZodObject<{
31
+ id: z.ZodString;
32
+ timestamp: z.ZodPipe<z.ZodUnion<readonly [z.ZodDate, z.ZodISODateTime]>, z.ZodTransform<Date, string | Date>>;
33
+ content: z.ZodString;
34
+ metadata: z.ZodOptional<z.ZodObject<{
35
+ modelVersion: z.ZodOptional<z.ZodString>;
36
+ finishReason: z.ZodOptional<z.ZodString>;
37
+ tokensPrompt: z.ZodOptional<z.ZodNumber>;
38
+ tokensCompletion: z.ZodOptional<z.ZodNumber>;
39
+ tokensUsed: z.ZodOptional<z.ZodNumber>;
40
+ conversationId: z.ZodOptional<z.ZodString>;
41
+ }, z.core.$strip>>;
42
+ }, z.core.$strip>;
43
+ }, z.core.$strip>], "type">;
44
+ export type AntigravitySessionRecord = z.output<typeof AntigravitySessionRecordSchema>;
45
+ /** The wire chunk of a session record built by the session program. */
46
+ export declare function sessionRecordChunk(record: {
47
+ readonly type: 'text-delta' | 'thinking-delta';
48
+ readonly delta: string;
49
+ } | {
50
+ readonly type: 'tool-call-start';
51
+ readonly id: string;
52
+ readonly name: string;
53
+ } | {
54
+ readonly type: 'tool-call-arg-delta';
55
+ readonly id: string;
56
+ readonly delta: string;
57
+ } | {
58
+ readonly type: 'tool-call-end';
59
+ readonly id: string;
60
+ } | {
61
+ readonly type: 'result';
62
+ readonly result: TextGenerationResponse;
63
+ }): WireResponseChunk;
64
+ //# sourceMappingURL=session-records.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-records.d.ts","sourceRoot":"","sources":["../../../../../src/ai/providers/gemini/antigravity-server/session-records.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAuBjF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAOzC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEvF,uEAAuE;AACvE,wBAAgB,kBAAkB,CACjC,MAAM,EACH;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,gBAAgB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC1E;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChF;IAAE,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrF;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAA;CAAE,GACrE,iBAAiB,CAEnB"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * The records the Antigravity session program writes on the wire (`ndjson-record`
3
+ * chunks) and the spec reads back. One schema owns both sides: the session builds
4
+ * a {@link AntigravitySessionRecord}, the spec parses the chunk's text with
5
+ * {@link AntigravitySessionRecordSchema}, so a record the spec cannot read is a
6
+ * typed refusal and never a skipped chunk.
7
+ */
8
+ import * as z from 'zod/v4';
9
+ const IdSchema = z.string().min(1).max(256);
10
+ /** A timestamp crosses the wire as its ISO text and is a `Date` again here. */
11
+ const TimestampSchema = z.union([z.date(), z.iso.datetime()]).transform((value) => (value instanceof Date ? value : new Date(value)));
12
+ const ResultSchema = z.object({
13
+ id: z.string(),
14
+ timestamp: TimestampSchema,
15
+ content: z.string(),
16
+ metadata: z
17
+ .object({
18
+ modelVersion: z.string().optional(),
19
+ finishReason: z.string().optional(),
20
+ tokensPrompt: z.number().optional(),
21
+ tokensCompletion: z.number().optional(),
22
+ tokensUsed: z.number().optional(),
23
+ conversationId: z.string().optional()
24
+ })
25
+ .optional()
26
+ });
27
+ export const AntigravitySessionRecordSchema = z.discriminatedUnion('type', [
28
+ z.object({ type: z.literal('text-delta'), delta: z.string() }),
29
+ z.object({ type: z.literal('thinking-delta'), delta: z.string() }),
30
+ z.object({ type: z.literal('tool-call-start'), id: IdSchema, name: z.string().max(256) }),
31
+ z.object({ type: z.literal('tool-call-arg-delta'), id: IdSchema, delta: z.string() }),
32
+ z.object({ type: z.literal('tool-call-end'), id: IdSchema }),
33
+ z.object({ type: z.literal('result'), result: ResultSchema })
34
+ ]);
35
+ /** The wire chunk of a session record built by the session program. */
36
+ export function sessionRecordChunk(record) {
37
+ return { kind: 'ndjson-record', data: JSON.stringify(record) };
38
+ }
39
+ //# sourceMappingURL=session-records.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-records.js","sourceRoot":"","sources":["../../../../../src/ai/providers/gemini/antigravity-server/session-records.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAI5B,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE5C,+EAA+E;AAC/E,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEtI,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,SAAS,EAAE,eAAe;IAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC;SACT,MAAM,CAAC;QACP,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACvC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACjC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACrC,CAAC;SACD,QAAQ,EAAE;CACZ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC1E,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IAC9D,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IAClE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;IACzF,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACrF,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;IAC5D,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;CAC7D,CAAC,CAAC;AAIH,uEAAuE;AACvE,MAAM,UAAU,kBAAkB,CACjC,MAKuE;IAEvE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;AAChE,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * One Antigravity turn over a connection: the user message goes out, the
3
+ * stream-json events come back as `ndjson-record` chunks the spec decodes.
4
+ *
5
+ * The turn is bounded: a deadline the caller declares (`options.timeoutMs`, else
6
+ * {@link ANTIGRAVITY_TURN_LIMITS}), the caller's abort signal, and a cap on the
7
+ * output. An event the session cannot place is a typed failure or a reported
8
+ * diagnostic, never a silent skip. Child text (a failed result's `error`) is only
9
+ * the bounded `cause` of the failure.
10
+ */
11
+ import type { TransportCallOptions } from '@vibesdotdev/ai/transports/interfaces';
12
+ import type { WireResponseChunk } from '@vibesdotdev/ai/specs/interfaces';
13
+ import type { AntigravityConnection } from './connection.ts';
14
+ /** The declared bounds of one turn. */
15
+ export declare const ANTIGRAVITY_TURN_LIMITS: {
16
+ /** The whole turn, when the caller declares no `timeoutMs`. */
17
+ readonly turnTimeoutMs: 120000;
18
+ /** Characters of assistant text and thinking one turn may produce. */
19
+ readonly maxOutputChars: number;
20
+ };
21
+ /** The request body the spec attaches: the prompt and the model it selected (the spawn options are the transport's). */
22
+ export interface AntigravityServerWireBody {
23
+ prompt: string;
24
+ model?: string;
25
+ effort?: 'low' | 'medium' | 'high';
26
+ cwd?: string;
27
+ sessionProgram?: AntigravityServerSessionProgram;
28
+ }
29
+ export type AntigravityServerSessionProgram = (connection: AntigravityConnection, options: TransportCallOptions) => AsyncIterable<WireResponseChunk>;
30
+ export declare function createAntigravityServerSessionProgram(body: AntigravityServerWireBody): AntigravityServerSessionProgram;
31
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../../src/ai/providers/gemini/antigravity-server/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAK1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAI7D,uCAAuC;AACvC,eAAO,MAAM,uBAAuB;IACnC,+DAA+D;;IAE/D,sEAAsE;;CAE7D,CAAC;AAOX,wHAAwH;AACxH,MAAM,WAAW,yBAAyB;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,+BAA+B,CAAC;CACjD;AAED,MAAM,MAAM,+BAA+B,GAAG,CAC7C,UAAU,EAAE,qBAAqB,EACjC,OAAO,EAAE,oBAAoB,KACzB,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAEtC,wBAAgB,qCAAqC,CACpD,IAAI,EAAE,yBAAyB,GAC7B,+BAA+B,CAEjC"}