@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.
- package/LICENSE +126 -0
- package/README.md +35 -2
- package/dist/ai/client.consumer.d.ts +9 -0
- package/dist/ai/client.consumer.d.ts.map +1 -0
- package/dist/ai/client.consumer.js +36 -0
- package/dist/ai/client.consumer.js.map +1 -0
- package/dist/ai/client.d.ts +10 -0
- package/dist/ai/client.d.ts.map +1 -0
- package/dist/ai/client.js +16 -0
- package/dist/ai/client.js.map +1 -0
- package/dist/ai/cloud.plugin.d.ts +6 -0
- package/dist/ai/cloud.plugin.d.ts.map +1 -0
- package/dist/ai/cloud.plugin.js +110 -0
- package/dist/ai/cloud.plugin.js.map +1 -0
- package/dist/ai/failure.d.ts +26 -0
- package/dist/ai/failure.d.ts.map +1 -0
- package/dist/ai/failure.js +31 -0
- package/dist/ai/failure.js.map +1 -0
- package/dist/ai/index.d.ts +6 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +5 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/metadata/provider-models/gemini/gemini-gemini-2-5-flash.json +18 -0
- package/dist/ai/metadata/provider-models/gemini/gemini-gemini-2-5-pro.json +18 -0
- package/dist/ai/metadata/provider-models/gemini/gemini-gemini-3-1-pro-preview.json +18 -0
- package/dist/ai/metadata/provider-models/gemini/gemini-gemini-3-5-flash-lite.json +18 -0
- package/dist/ai/metadata/provider-models/gemini/gemini-gemini-3-6-flash.json +18 -0
- package/dist/ai/metadata/provider-models/gemini/gemini-gemini-3-8-flash.json +18 -0
- package/dist/ai/metadata/provider-models/gemini/gemini-gemini-3-8-pro.json +18 -0
- package/dist/ai/metadata/provider-models/gemini/gemini-gemini-3-flash-preview.json +18 -0
- package/dist/ai/metadata/providers/gemini.json +8 -0
- package/dist/ai/provider.consumer.plugin.d.ts +5 -0
- package/dist/ai/provider.consumer.plugin.d.ts.map +1 -0
- package/dist/ai/provider.consumer.plugin.js +60 -0
- package/dist/ai/provider.consumer.plugin.js.map +1 -0
- package/dist/ai/provider.plugin.d.ts +2 -0
- package/dist/ai/provider.plugin.d.ts.map +1 -0
- package/dist/ai/provider.plugin.js +2 -0
- package/dist/ai/provider.plugin.js.map +1 -0
- package/dist/ai/providers/cloud/frontier/gemini/config/config.gemini.descriptor.d.ts +4206 -0
- package/dist/ai/providers/cloud/frontier/gemini/config/config.gemini.descriptor.d.ts.map +1 -0
- package/dist/ai/providers/cloud/frontier/gemini/config/config.gemini.descriptor.js +16 -0
- package/dist/ai/providers/cloud/frontier/gemini/config/config.gemini.descriptor.js.map +1 -0
- package/dist/ai/providers/cloud/frontier/gemini/config/schemas/index.d.ts +27 -0
- package/dist/ai/providers/cloud/frontier/gemini/config/schemas/index.d.ts.map +1 -0
- package/dist/ai/providers/cloud/frontier/gemini/config/schemas/index.js +21 -0
- package/dist/ai/providers/cloud/frontier/gemini/config/schemas/index.js.map +1 -0
- package/dist/ai/providers/cloud/frontier/gemini/index.d.ts +5 -0
- package/dist/ai/providers/cloud/frontier/gemini/index.d.ts.map +1 -0
- package/dist/ai/providers/cloud/frontier/gemini/index.js +4 -0
- package/dist/ai/providers/cloud/frontier/gemini/index.js.map +1 -0
- package/dist/ai/providers/cloud/frontier/gemini/provider.gemini.descriptor.d.ts +183 -0
- package/dist/ai/providers/cloud/frontier/gemini/provider.gemini.descriptor.d.ts.map +1 -0
- package/dist/ai/providers/cloud/frontier/gemini/provider.gemini.descriptor.js +86 -0
- package/dist/ai/providers/cloud/frontier/gemini/provider.gemini.descriptor.js.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/antigravity-failure.d.ts +140 -0
- package/dist/ai/providers/gemini/antigravity-server/antigravity-failure.d.ts.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/antigravity-failure.js +167 -0
- package/dist/ai/providers/gemini/antigravity-server/antigravity-failure.js.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/antigravity-server.spec.descriptor.d.ts +25 -0
- package/dist/ai/providers/gemini/antigravity-server/antigravity-server.spec.descriptor.d.ts.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/antigravity-server.spec.descriptor.js +14 -0
- package/dist/ai/providers/gemini/antigravity-server/antigravity-server.spec.descriptor.js.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/antigravity-server.spec.impl.d.ts +33 -0
- package/dist/ai/providers/gemini/antigravity-server/antigravity-server.spec.impl.d.ts.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/antigravity-server.spec.impl.js +145 -0
- package/dist/ai/providers/gemini/antigravity-server/antigravity-server.spec.impl.js.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/antigravity-server.transport.descriptor.d.ts +13 -0
- package/dist/ai/providers/gemini/antigravity-server/antigravity-server.transport.descriptor.d.ts.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/antigravity-server.transport.descriptor.js +11 -0
- package/dist/ai/providers/gemini/antigravity-server/antigravity-server.transport.descriptor.js.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/antigravity-server.transport.impl.consumer.d.ts +33 -0
- package/dist/ai/providers/gemini/antigravity-server/antigravity-server.transport.impl.consumer.d.ts.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/antigravity-server.transport.impl.consumer.js +101 -0
- package/dist/ai/providers/gemini/antigravity-server/antigravity-server.transport.impl.consumer.js.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/client.d.ts +63 -0
- package/dist/ai/providers/gemini/antigravity-server/client.d.ts.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/client.js +177 -0
- package/dist/ai/providers/gemini/antigravity-server/client.js.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/connection.d.ts +141 -0
- package/dist/ai/providers/gemini/antigravity-server/connection.d.ts.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/connection.js +469 -0
- package/dist/ai/providers/gemini/antigravity-server/connection.js.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/failure-chunk.d.ts +10 -0
- package/dist/ai/providers/gemini/antigravity-server/failure-chunk.d.ts.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/failure-chunk.js +29 -0
- package/dist/ai/providers/gemini/antigravity-server/failure-chunk.js.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/index.d.ts +10 -0
- package/dist/ai/providers/gemini/antigravity-server/index.d.ts.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/index.js +10 -0
- package/dist/ai/providers/gemini/antigravity-server/index.js.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/protocol.d.ts +114 -0
- package/dist/ai/providers/gemini/antigravity-server/protocol.d.ts.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/protocol.js +112 -0
- package/dist/ai/providers/gemini/antigravity-server/protocol.js.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/runtime-execution.d.ts +41 -0
- package/dist/ai/providers/gemini/antigravity-server/runtime-execution.d.ts.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/runtime-execution.js +145 -0
- package/dist/ai/providers/gemini/antigravity-server/runtime-execution.js.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/session-records.d.ts +64 -0
- package/dist/ai/providers/gemini/antigravity-server/session-records.d.ts.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/session-records.js +39 -0
- package/dist/ai/providers/gemini/antigravity-server/session-records.js.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/session.d.ts +31 -0
- package/dist/ai/providers/gemini/antigravity-server/session.d.ts.map +1 -0
- package/dist/ai/providers/gemini/antigravity-server/session.js +153 -0
- package/dist/ai/providers/gemini/antigravity-server/session.js.map +1 -0
- package/dist/ai/providers/gemini/cli-probes.d.ts +75 -0
- package/dist/ai/providers/gemini/cli-probes.d.ts.map +1 -0
- package/dist/ai/providers/gemini/cli-probes.js +121 -0
- package/dist/ai/providers/gemini/cli-probes.js.map +1 -0
- package/dist/ai/providers/gemini/detection/index.d.ts +2 -0
- package/dist/ai/providers/gemini/detection/index.d.ts.map +1 -0
- package/dist/ai/providers/gemini/detection/index.js +2 -0
- package/dist/ai/providers/gemini/detection/index.js.map +1 -0
- package/dist/ai/providers/gemini/detection/system.d.ts +25 -0
- package/dist/ai/providers/gemini/detection/system.d.ts.map +1 -0
- package/dist/ai/providers/gemini/detection/system.js +81 -0
- package/dist/ai/providers/gemini/detection/system.js.map +1 -0
- package/dist/ai/providers/gemini/docs/ai.providers.gemini.docs.descriptor.d.ts +4 -0
- package/dist/ai/providers/gemini/docs/ai.providers.gemini.docs.descriptor.d.ts.map +1 -0
- package/dist/ai/providers/gemini/docs/ai.providers.gemini.docs.descriptor.js +55 -0
- package/dist/ai/providers/gemini/docs/ai.providers.gemini.docs.descriptor.js.map +1 -0
- package/dist/ai/providers/gemini/gemini-cli-status.d.ts +42 -0
- package/dist/ai/providers/gemini/gemini-cli-status.d.ts.map +1 -0
- package/dist/ai/providers/gemini/gemini-cli-status.js +134 -0
- package/dist/ai/providers/gemini/gemini-cli-status.js.map +1 -0
- package/dist/ai/providers/gemini/gemini.provider.impl.consumer.d.ts +9 -0
- package/dist/ai/providers/gemini/gemini.provider.impl.consumer.d.ts.map +1 -0
- package/dist/ai/providers/gemini/gemini.provider.impl.consumer.js +60 -0
- package/dist/ai/providers/gemini/gemini.provider.impl.consumer.js.map +1 -0
- package/dist/ai/providers/gemini/gemini.provider.impl.d.ts +22 -0
- package/dist/ai/providers/gemini/gemini.provider.impl.d.ts.map +1 -0
- package/dist/ai/providers/gemini/gemini.provider.impl.js +143 -0
- package/dist/ai/providers/gemini/gemini.provider.impl.js.map +1 -0
- package/dist/ai/providers/gemini/index.d.ts +9 -0
- package/dist/ai/providers/gemini/index.d.ts.map +1 -0
- package/dist/ai/providers/gemini/index.js +7 -0
- package/dist/ai/providers/gemini/index.js.map +1 -0
- package/dist/ai/providers/gemini/recommendations.d.ts +24 -0
- package/dist/ai/providers/gemini/recommendations.d.ts.map +1 -0
- package/dist/ai/providers/gemini/recommendations.js +36 -0
- package/dist/ai/providers/gemini/recommendations.js.map +1 -0
- package/dist/ai/specs/antigravity-cli-exec/antigravity-cli-exec.spec.descriptor.d.ts +34 -0
- package/dist/ai/specs/antigravity-cli-exec/antigravity-cli-exec.spec.descriptor.d.ts.map +1 -0
- package/dist/ai/specs/antigravity-cli-exec/antigravity-cli-exec.spec.descriptor.js +23 -0
- package/dist/ai/specs/antigravity-cli-exec/antigravity-cli-exec.spec.descriptor.js.map +1 -0
- package/dist/ai/specs/antigravity-cli-exec/antigravity-cli-exec.spec.impl.d.ts +46 -0
- package/dist/ai/specs/antigravity-cli-exec/antigravity-cli-exec.spec.impl.d.ts.map +1 -0
- package/dist/ai/specs/antigravity-cli-exec/antigravity-cli-exec.spec.impl.js +165 -0
- package/dist/ai/specs/antigravity-cli-exec/antigravity-cli-exec.spec.impl.js.map +1 -0
- package/dist/ai/specs/cli-response.d.ts +12 -0
- package/dist/ai/specs/cli-response.d.ts.map +1 -0
- package/dist/ai/specs/cli-response.js +36 -0
- package/dist/ai/specs/cli-response.js.map +1 -0
- package/dist/ai/specs/gemini-cli-exec/gemini-cli-exec.spec.descriptor.d.ts +32 -0
- package/dist/ai/specs/gemini-cli-exec/gemini-cli-exec.spec.descriptor.d.ts.map +1 -0
- package/dist/ai/specs/gemini-cli-exec/gemini-cli-exec.spec.descriptor.js +21 -0
- package/dist/ai/specs/gemini-cli-exec/gemini-cli-exec.spec.descriptor.js.map +1 -0
- package/dist/ai/specs/gemini-cli-exec/gemini-cli-exec.spec.impl.d.ts +33 -0
- package/dist/ai/specs/gemini-cli-exec/gemini-cli-exec.spec.impl.d.ts.map +1 -0
- package/dist/ai/specs/gemini-cli-exec/gemini-cli-exec.spec.impl.js +84 -0
- package/dist/ai/specs/gemini-cli-exec/gemini-cli-exec.spec.impl.js.map +1 -0
- package/dist/ai/specs/gemini-image/gemini-image.spec.descriptor.d.ts +37 -0
- package/dist/ai/specs/gemini-image/gemini-image.spec.descriptor.d.ts.map +1 -0
- package/dist/ai/specs/gemini-image/gemini-image.spec.descriptor.js +34 -0
- package/dist/ai/specs/gemini-image/gemini-image.spec.descriptor.js.map +1 -0
- package/dist/ai/specs/gemini-image/gemini-image.spec.impl.d.ts +42 -0
- package/dist/ai/specs/gemini-image/gemini-image.spec.impl.d.ts.map +1 -0
- package/dist/ai/specs/gemini-image/gemini-image.spec.impl.js +116 -0
- package/dist/ai/specs/gemini-image/gemini-image.spec.impl.js.map +1 -0
- package/dist/external/antigravity/index.d.ts +162 -0
- package/dist/external/antigravity/index.d.ts.map +1 -0
- package/dist/external/antigravity/index.js +7 -0
- package/dist/external/antigravity/index.js.map +1 -0
- package/dist/external/antigravity/manifest.d.ts +6 -0
- package/dist/external/antigravity/manifest.d.ts.map +1 -0
- package/dist/external/antigravity/manifest.js +70 -0
- package/dist/external/antigravity/manifest.js.map +1 -0
- package/dist/external/antigravity-subscription.operation.descriptors.d.ts +61 -0
- package/dist/external/antigravity-subscription.operation.descriptors.d.ts.map +1 -0
- package/dist/external/antigravity-subscription.operation.descriptors.js +26 -0
- package/dist/external/antigravity-subscription.operation.descriptors.js.map +1 -0
- package/dist/external/antigravity-subscription.operations.d.ts +4 -0
- package/dist/external/antigravity-subscription.operations.d.ts.map +1 -0
- package/dist/external/antigravity-subscription.operations.js +49 -0
- package/dist/external/antigravity-subscription.operations.js.map +1 -0
- package/dist/external/external.plugin.d.ts +3 -0
- package/dist/external/external.plugin.d.ts.map +1 -0
- package/dist/external/external.plugin.js +30 -0
- package/dist/external/external.plugin.js.map +1 -0
- package/dist/external/gemini-cli/index.d.ts +162 -0
- package/dist/external/gemini-cli/index.d.ts.map +1 -0
- package/dist/external/gemini-cli/index.js +5 -0
- package/dist/external/gemini-cli/index.js.map +1 -0
- package/dist/external/gemini-cli/manifest.d.ts +10 -0
- package/dist/external/gemini-cli/manifest.d.ts.map +1 -0
- package/dist/external/gemini-cli/manifest.js +80 -0
- package/dist/external/gemini-cli/manifest.js.map +1 -0
- package/dist/external/gemini-presets.d.ts +817 -0
- package/dist/external/gemini-presets.d.ts.map +1 -0
- package/dist/external/gemini-presets.js +59 -0
- package/dist/external/gemini-presets.js.map +1 -0
- package/dist/external/index.d.ts +4 -0
- package/dist/external/index.d.ts.map +1 -0
- package/dist/external/index.js +4 -0
- package/dist/external/index.js.map +1 -0
- package/dist/failure-outcome.d.ts +25 -0
- package/dist/failure-outcome.d.ts.map +1 -0
- package/dist/failure-outcome.js +28 -0
- package/dist/failure-outcome.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/cli.d.ts +97 -0
- package/dist/schemas/cli.d.ts.map +1 -0
- package/dist/schemas/cli.js +51 -0
- package/dist/schemas/cli.js.map +1 -0
- package/dist/schemas/health.d.ts +8 -0
- package/dist/schemas/health.d.ts.map +1 -0
- package/dist/schemas/health.js +6 -0
- package/dist/schemas/health.js.map +1 -0
- package/dist/schemas/imagen.d.ts +31 -0
- package/dist/schemas/imagen.d.ts.map +1 -0
- package/dist/schemas/imagen.js +18 -0
- package/dist/schemas/imagen.js.map +1 -0
- package/dist/schemas/mcp-config.d.ts +13 -0
- package/dist/schemas/mcp-config.d.ts.map +1 -0
- package/dist/schemas/mcp-config.js +13 -0
- package/dist/schemas/mcp-config.js.map +1 -0
- package/package.json +129 -4
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed failures of the Antigravity server integration.
|
|
3
|
+
*
|
|
4
|
+
* Every failure is a `CapabilityError` with a code and a `reason` from the table
|
|
5
|
+
* below, and a message that is fixed per reason. Text the child wrote (a result's
|
|
6
|
+
* `error`/`message`, a line that is not an event) never enters a message or a
|
|
7
|
+
* detail: it rides only in a bounded `cause` ({@link childTextCause}) the logger
|
|
8
|
+
* scrubs. The child's stderr is drained and discarded.
|
|
9
|
+
*/
|
|
10
|
+
import { CapabilityError, CaughtFailureSchema, isCapabilityError, valueFreeFailure } from '@vibesdotdev/kernel';
|
|
11
|
+
import { boundedExcerpt } from '@vibesdotdev/external/jsonrpc';
|
|
12
|
+
import { settleNow as attempt } from '@vibesdotdev/kernel';
|
|
13
|
+
const FAILURES = {
|
|
14
|
+
'antigravity-transport-closed': {
|
|
15
|
+
code: 'UNAVAILABLE',
|
|
16
|
+
message: 'The Antigravity server connection is closed.',
|
|
17
|
+
retryable: true
|
|
18
|
+
},
|
|
19
|
+
'antigravity-process-exited': {
|
|
20
|
+
code: 'UNAVAILABLE',
|
|
21
|
+
message: 'The Antigravity server process ended or its stdio failed.',
|
|
22
|
+
retryable: true
|
|
23
|
+
},
|
|
24
|
+
'antigravity-line-too-long': {
|
|
25
|
+
code: 'UNAVAILABLE',
|
|
26
|
+
message: 'The Antigravity server wrote a line longer than the declared maximum.',
|
|
27
|
+
retryable: false
|
|
28
|
+
},
|
|
29
|
+
'antigravity-protocol-invalid': {
|
|
30
|
+
code: 'UNAVAILABLE',
|
|
31
|
+
message: 'The Antigravity server wrote output that is not a valid stream-json event.',
|
|
32
|
+
retryable: false
|
|
33
|
+
},
|
|
34
|
+
'antigravity-event-overflow': {
|
|
35
|
+
code: 'UNAVAILABLE',
|
|
36
|
+
message: 'The Antigravity server wrote events faster than the session consumed them.',
|
|
37
|
+
retryable: false
|
|
38
|
+
},
|
|
39
|
+
'antigravity-init-timeout': {
|
|
40
|
+
code: 'TIMEOUT',
|
|
41
|
+
message: 'The Antigravity server did not announce itself within the declared deadline.',
|
|
42
|
+
retryable: true
|
|
43
|
+
},
|
|
44
|
+
'antigravity-turn-timeout': {
|
|
45
|
+
code: 'TIMEOUT',
|
|
46
|
+
message: 'The Antigravity turn timed out before it completed.',
|
|
47
|
+
retryable: true
|
|
48
|
+
},
|
|
49
|
+
'generation-cancelled': {
|
|
50
|
+
code: 'CANCELLED',
|
|
51
|
+
message: 'The generation was cancelled.',
|
|
52
|
+
retryable: false
|
|
53
|
+
},
|
|
54
|
+
'antigravity-turn-failed': {
|
|
55
|
+
code: 'UNAVAILABLE',
|
|
56
|
+
message: 'The Antigravity turn did not complete.',
|
|
57
|
+
retryable: false
|
|
58
|
+
},
|
|
59
|
+
'antigravity-empty-response': {
|
|
60
|
+
code: 'UNAVAILABLE',
|
|
61
|
+
message: 'The Antigravity turn completed without any assistant text.',
|
|
62
|
+
retryable: false
|
|
63
|
+
},
|
|
64
|
+
'antigravity-output-too-large': {
|
|
65
|
+
code: 'UNAVAILABLE',
|
|
66
|
+
message: 'The Antigravity turn produced more output than the declared bound.',
|
|
67
|
+
retryable: false
|
|
68
|
+
},
|
|
69
|
+
'antigravity-kill-failed': {
|
|
70
|
+
code: 'UNAVAILABLE',
|
|
71
|
+
message: 'The Antigravity server process could not be confirmed stopped.',
|
|
72
|
+
retryable: false
|
|
73
|
+
},
|
|
74
|
+
'antigravity-transport-close-failed': {
|
|
75
|
+
code: 'UNAVAILABLE',
|
|
76
|
+
message: 'An Antigravity server connection could not be closed.',
|
|
77
|
+
retryable: false
|
|
78
|
+
},
|
|
79
|
+
'antigravity-consumer-host-required': {
|
|
80
|
+
code: 'UNAVAILABLE',
|
|
81
|
+
message: 'Antigravity subscription execution requires a connected consumer host.',
|
|
82
|
+
retryable: false
|
|
83
|
+
},
|
|
84
|
+
'antigravity-execution-unavailable': {
|
|
85
|
+
code: 'UNAVAILABLE',
|
|
86
|
+
message: "No 'runtime/execution' implementation is registered in consumer scope.",
|
|
87
|
+
retryable: false
|
|
88
|
+
},
|
|
89
|
+
'antigravity-session-program-missing': {
|
|
90
|
+
code: 'INTERNAL',
|
|
91
|
+
message: 'The selected spec did not provide an Antigravity session program.',
|
|
92
|
+
retryable: false
|
|
93
|
+
},
|
|
94
|
+
'antigravity-stdio-missing': {
|
|
95
|
+
code: 'INTERNAL',
|
|
96
|
+
message: 'The Antigravity process was started without piped stdin and stdout.',
|
|
97
|
+
retryable: false
|
|
98
|
+
},
|
|
99
|
+
'antigravity-no-result': {
|
|
100
|
+
code: 'UNAVAILABLE',
|
|
101
|
+
message: 'The Antigravity session ended without a final result.',
|
|
102
|
+
retryable: false
|
|
103
|
+
},
|
|
104
|
+
'invalid-transport-record': {
|
|
105
|
+
code: 'UNAVAILABLE',
|
|
106
|
+
message: 'The transport delivered a record the Antigravity spec cannot read.',
|
|
107
|
+
retryable: false
|
|
108
|
+
},
|
|
109
|
+
'unsupported-modality': {
|
|
110
|
+
code: 'INVALID_INPUT',
|
|
111
|
+
message: 'The Antigravity server spec only supports text generation.',
|
|
112
|
+
retryable: false
|
|
113
|
+
},
|
|
114
|
+
'unsupported-option': {
|
|
115
|
+
code: 'INVALID_INPUT',
|
|
116
|
+
message: 'The Antigravity server was given an option it does not support.',
|
|
117
|
+
retryable: false
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
function isFailureReason(reason) {
|
|
121
|
+
return Object.hasOwn(FAILURES, reason);
|
|
122
|
+
}
|
|
123
|
+
/** Every reason this integration raises, for the SPEC table and its test. */
|
|
124
|
+
export const ANTIGRAVITY_FAILURE_REASONS = Object.keys(FAILURES).filter(isFailureReason);
|
|
125
|
+
/** A typed failure with its reason's fixed message; `details` and `cause` are the caller's bounded facts. */
|
|
126
|
+
export function antigravityFailure(reason, extra = {}) {
|
|
127
|
+
const terms = FAILURES[reason];
|
|
128
|
+
const options = { reason, retryable: terms.retryable };
|
|
129
|
+
if (extra.details !== undefined)
|
|
130
|
+
options.details = extra.details;
|
|
131
|
+
if (extra.cause !== undefined)
|
|
132
|
+
options.cause = extra.cause;
|
|
133
|
+
return new CapabilityError(terms.message, terms.code, options);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Text the child wrote, kept only as the `cause` of a typed failure: at most 200
|
|
137
|
+
* characters, with control, format and separator characters removed.
|
|
138
|
+
*/
|
|
139
|
+
export function childTextCause(text) {
|
|
140
|
+
return new Error(boundedExcerpt(text));
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Any caught failure as a typed one. A failure that already carries one of this
|
|
144
|
+
* package's reasons is the answer as it is; any other (a runtime refusal, a host
|
|
145
|
+
* failure) stays itself when typed, and an untyped one becomes `untyped` with the
|
|
146
|
+
* failure as its cause. Reading a hostile value (a Proxy that traps `name`) never
|
|
147
|
+
* throws: it is known by its value-free facts.
|
|
148
|
+
*/
|
|
149
|
+
export function antigravityFailureFrom(caught) {
|
|
150
|
+
const failure = CaughtFailureSchema.parse(caught);
|
|
151
|
+
const read = attempt(() => isCapabilityError(failure));
|
|
152
|
+
if (!read.ok) {
|
|
153
|
+
return new CapabilityError('The Antigravity server failed unexpectedly.', 'INTERNAL', {
|
|
154
|
+
reason: 'untyped',
|
|
155
|
+
details: { failure: { ...valueFreeFailure(failure) } },
|
|
156
|
+
cause: read.cause
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
if (!read.value || !isCapabilityError(failure)) {
|
|
160
|
+
return new CapabilityError('The Antigravity server failed unexpectedly.', 'INTERNAL', {
|
|
161
|
+
reason: 'untyped',
|
|
162
|
+
cause: failure
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
return failure;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=antigravity-failure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravity-failure.js","sourceRoot":"","sources":["../../../../../src/ai/providers/gemini/antigravity-server/antigravity-failure.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
id: string;
|
|
3
|
+
kind: "ai/spec";
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
modalities: ("image" | "text" | "audio" | "video" | "embedding" | "transcription" | "evaluation" | "speech" | "ocr")[];
|
|
7
|
+
streamFraming: "none" | "sse" | "sse-named" | "ndjson" | "binary-chunked" | "ws-frame";
|
|
8
|
+
toolCallEnvelope: string;
|
|
9
|
+
transports: string[];
|
|
10
|
+
external: boolean;
|
|
11
|
+
priority: number;
|
|
12
|
+
enabled: boolean;
|
|
13
|
+
capabilities?: ("streaming" | "json_mode" | "text_generation" | "chat_completion" | "function_calling" | "embedding_generation" | "image_generation_text_to_image" | "image_generation_image_to_image" | "image_generation_inpainting" | "image_generation_outpainting" | "image_upscaling" | "image_editing_via_instructions" | "audio_generation_text_to_speech" | "audio_generation_voice_cloning" | "audio_generation_music" | "audio_generation_sound_effects" | "audio_transcription" | "audio_transcription_realtime" | "video_generation_text_to_video" | "workflow_execution" | "code_generation" | "image_understanding" | "structured_evaluation")[] | undefined;
|
|
14
|
+
imageControls?: {
|
|
15
|
+
steps: boolean;
|
|
16
|
+
cfg: boolean;
|
|
17
|
+
sampler: boolean;
|
|
18
|
+
scheduler: boolean;
|
|
19
|
+
negativePrompt: boolean;
|
|
20
|
+
seed: boolean;
|
|
21
|
+
} | undefined;
|
|
22
|
+
tags?: string[] | undefined;
|
|
23
|
+
};
|
|
24
|
+
export default _default;
|
|
25
|
+
//# sourceMappingURL=antigravity-server.spec.descriptor.d.ts.map
|
package/dist/ai/providers/gemini/antigravity-server/antigravity-server.spec.descriptor.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravity-server.spec.descriptor.d.ts","sourceRoot":"","sources":["../../../../../src/ai/providers/gemini/antigravity-server/antigravity-server.spec.descriptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAYG"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createAISpecDescriptor } from '@vibesdotdev/ai/specs/schemas/descriptor';
|
|
2
|
+
export default createAISpecDescriptor({
|
|
3
|
+
id: 'antigravity-server',
|
|
4
|
+
name: 'Google Antigravity Server',
|
|
5
|
+
description: 'Subscription-backed Google One / Gemini generation over the Antigravity CLI stream-json protocol.',
|
|
6
|
+
modalities: ['text'],
|
|
7
|
+
streamFraming: 'none',
|
|
8
|
+
toolCallEnvelope: 'none',
|
|
9
|
+
transports: ['antigravity-server'],
|
|
10
|
+
capabilities: ['text_generation', 'function_calling'],
|
|
11
|
+
priority: 100,
|
|
12
|
+
tags: ['google', 'gemini', 'antigravity', 'google-oauth', 'subscription', 'consumer-only']
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=antigravity-server.spec.descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravity-server.spec.descriptor.js","sourceRoot":"","sources":["../../../../../src/ai/providers/gemini/antigravity-server/antigravity-server.spec.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAElF,eAAe,sBAAsB,CAAC;IACrC,EAAE,EAAE,oBAAoB;IACxB,IAAI,EAAE,2BAA2B;IACjC,WAAW,EACV,mGAAmG;IACpG,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM;IACrB,gBAAgB,EAAE,MAAM;IACxB,UAAU,EAAE,CAAC,oBAAoB,CAAC;IAClC,YAAY,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IACrD,QAAQ,EAAE,GAAG;IACb,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,CAAC;CAC1F,CAAC,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type AISpecInterface, type DecodedEvent, type SpecCallContext, type WireRequest, type WireResponseChunk } from '@vibesdotdev/ai/specs/interfaces';
|
|
2
|
+
import type { GenerationRequest } from '@vibesdotdev/ai/interfaces/adapter';
|
|
3
|
+
import type { Modality } from '@vibesdotdev/ai/models/schemas/constants';
|
|
4
|
+
declare class AntigravityServerSpec implements AISpecInterface {
|
|
5
|
+
readonly descriptor: {
|
|
6
|
+
id: string;
|
|
7
|
+
kind: "ai/spec";
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
modalities: ("image" | "text" | "audio" | "video" | "embedding" | "transcription" | "evaluation" | "speech" | "ocr")[];
|
|
11
|
+
streamFraming: "none" | "sse" | "sse-named" | "ndjson" | "binary-chunked" | "ws-frame";
|
|
12
|
+
toolCallEnvelope: string;
|
|
13
|
+
transports: string[];
|
|
14
|
+
external: boolean;
|
|
15
|
+
priority: number;
|
|
16
|
+
enabled: boolean;
|
|
17
|
+
capabilities?: ("streaming" | "json_mode" | "text_generation" | "chat_completion" | "function_calling" | "embedding_generation" | "image_generation_text_to_image" | "image_generation_image_to_image" | "image_generation_inpainting" | "image_generation_outpainting" | "image_upscaling" | "image_editing_via_instructions" | "audio_generation_text_to_speech" | "audio_generation_voice_cloning" | "audio_generation_music" | "audio_generation_sound_effects" | "audio_transcription" | "audio_transcription_realtime" | "video_generation_text_to_video" | "workflow_execution" | "code_generation" | "image_understanding" | "structured_evaluation")[] | undefined;
|
|
18
|
+
imageControls?: {
|
|
19
|
+
steps: boolean;
|
|
20
|
+
cfg: boolean;
|
|
21
|
+
sampler: boolean;
|
|
22
|
+
scheduler: boolean;
|
|
23
|
+
negativePrompt: boolean;
|
|
24
|
+
seed: boolean;
|
|
25
|
+
} | undefined;
|
|
26
|
+
tags?: string[] | undefined;
|
|
27
|
+
};
|
|
28
|
+
encodeRequest<M extends Modality>(request: GenerationRequest<M>, context: SpecCallContext): WireRequest;
|
|
29
|
+
decodeResponse<M extends Modality>(chunks: AsyncIterable<WireResponseChunk>, request: GenerationRequest<M>, _context: SpecCallContext): AsyncIterable<DecodedEvent<M>>;
|
|
30
|
+
}
|
|
31
|
+
declare const antigravityServerSpec: AntigravityServerSpec;
|
|
32
|
+
export default antigravityServerSpec;
|
|
33
|
+
//# sourceMappingURL=antigravity-server.spec.impl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravity-server.spec.impl.d.ts","sourceRoot":"","sources":["../../../../../src/ai/providers/gemini/antigravity-server/antigravity-server.spec.impl.ts"],"names":[],"mappings":"AACA,OAAO,EAGN,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAEX,iBAAiB,EAEjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAUzE,cAAM,qBAAsB,YAAW,eAAe;IACrD,QAAQ,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;MAAc;IAEjC,aAAa,CAAC,CAAC,SAAS,QAAQ,EAC/B,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC7B,OAAO,EAAE,eAAe,GACtB,WAAW;IAmCP,cAAc,CAAC,CAAC,SAAS,QAAQ,EACvC,MAAM,EAAE,aAAa,CAAC,iBAAiB,CAAC,EACxC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC7B,QAAQ,EAAE,eAAe,GACvB,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CA0CjC;AA+DD,QAAA,MAAM,qBAAqB,uBAA8B,CAAC;AAC1D,eAAe,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import * as z from 'zod/v4';
|
|
2
|
+
import { isTextRequest, textResultEvent } from '@vibesdotdev/ai/specs/interfaces';
|
|
3
|
+
import { settleNow as attempt } from '@vibesdotdev/kernel';
|
|
4
|
+
import descriptor from "./antigravity-server.spec.descriptor.js";
|
|
5
|
+
import { antigravityFailure, antigravityFailureFrom } from "./antigravity-failure.js";
|
|
6
|
+
import { createAntigravityServerSessionProgram } from "./session.js";
|
|
7
|
+
import { AntigravitySessionRecordSchema } from "./session-records.js";
|
|
8
|
+
import { resolveAntigravityModel } from "../../../specs/antigravity-cli-exec/antigravity-cli-exec.spec.impl.js";
|
|
9
|
+
import { normalizeWorkspacePath } from "./runtime-execution.js";
|
|
10
|
+
class AntigravityServerSpec {
|
|
11
|
+
descriptor = descriptor;
|
|
12
|
+
encodeRequest(request, context) {
|
|
13
|
+
if (!isTextRequest(request)) {
|
|
14
|
+
throw antigravityFailure('unsupported-modality');
|
|
15
|
+
}
|
|
16
|
+
// The child's user turn is text only (`{ content: string }`): an image would be dropped and the
|
|
17
|
+
// model, asked about a picture it never received, ends the turn with no text. Refuse it here.
|
|
18
|
+
if (request.messages.some((message) => (message.images?.length ?? 0) > 0)) {
|
|
19
|
+
throw antigravityFailure('unsupported-option', { details: { option: 'images' } });
|
|
20
|
+
}
|
|
21
|
+
// Reading a request is reading untrusted values: a getter that throws, a message that cannot be
|
|
22
|
+
// serialized, a path hint of the wrong type end as the typed refusal, never a raw throw.
|
|
23
|
+
const read = attempt(() => ({
|
|
24
|
+
prompt: encodePrompt(request.messages),
|
|
25
|
+
selection: resolveAntigravityModel(context.wireModelId, request.reasoningEffort),
|
|
26
|
+
cwd: normalizeWorkspacePath(resolveWorkspacePath(context, request))
|
|
27
|
+
}));
|
|
28
|
+
if (!read.ok)
|
|
29
|
+
throw requestRefusal(read.cause);
|
|
30
|
+
const { prompt, selection, cwd: resolvedCwd } = read.value;
|
|
31
|
+
const body = { prompt, model: selection.model, effort: selection.effort };
|
|
32
|
+
if (resolvedCwd)
|
|
33
|
+
body.cwd = resolvedCwd;
|
|
34
|
+
return {
|
|
35
|
+
method: 'POST',
|
|
36
|
+
path: '',
|
|
37
|
+
headers: {},
|
|
38
|
+
body: {
|
|
39
|
+
...body,
|
|
40
|
+
sessionProgram: createAntigravityServerSessionProgram(body)
|
|
41
|
+
},
|
|
42
|
+
streaming: true
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
async *decodeResponse(chunks, request, _context) {
|
|
46
|
+
let resulted = false;
|
|
47
|
+
for await (const chunk of chunks) {
|
|
48
|
+
if (chunk.kind === 'error') {
|
|
49
|
+
yield { kind: 'error', error: chunk.error };
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
// The transport frames the exchange with `headers` and `end`; both carry nothing to decode.
|
|
53
|
+
if (chunk.kind === 'headers' || chunk.kind === 'end')
|
|
54
|
+
continue;
|
|
55
|
+
if (chunk.kind !== 'ndjson-record') {
|
|
56
|
+
yield { kind: 'error', error: antigravityFailure('invalid-transport-record', { details: { chunk: chunk.kind } }) };
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const record = readSessionRecord(chunk.data);
|
|
60
|
+
if (!record.ok) {
|
|
61
|
+
yield { kind: 'error', error: record.failure };
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const event = record.value;
|
|
65
|
+
switch (event.type) {
|
|
66
|
+
case 'text-delta':
|
|
67
|
+
case 'thinking-delta':
|
|
68
|
+
yield { kind: event.type, delta: event.delta };
|
|
69
|
+
break;
|
|
70
|
+
case 'tool-call-start':
|
|
71
|
+
yield { kind: 'tool-call-start', id: event.id, name: event.name };
|
|
72
|
+
break;
|
|
73
|
+
case 'tool-call-arg-delta':
|
|
74
|
+
yield { kind: 'tool-call-arg-delta', id: event.id, delta: event.delta };
|
|
75
|
+
break;
|
|
76
|
+
case 'tool-call-end':
|
|
77
|
+
yield { kind: 'tool-call-end', id: event.id };
|
|
78
|
+
break;
|
|
79
|
+
case 'result':
|
|
80
|
+
resulted = true;
|
|
81
|
+
yield textResultEvent(request, event.result);
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// A stream that ended with no result is a failed turn, never a silent empty one.
|
|
86
|
+
if (!resulted)
|
|
87
|
+
yield { kind: 'error', error: antigravityFailure('antigravity-no-result') };
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/** One `ndjson-record` of the session as a typed record; anything else is the typed refusal (never skipped). */
|
|
91
|
+
function readSessionRecord(data) {
|
|
92
|
+
const refusal = (paths) => ({
|
|
93
|
+
ok: false,
|
|
94
|
+
failure: antigravityFailure('invalid-transport-record', paths ? { details: { paths } } : {})
|
|
95
|
+
});
|
|
96
|
+
const parsed = attempt(() => JSON.parse(data));
|
|
97
|
+
if (!parsed.ok)
|
|
98
|
+
return refusal();
|
|
99
|
+
const read = attempt(() => AntigravitySessionRecordSchema.safeParse(parsed.value));
|
|
100
|
+
if (!read.ok)
|
|
101
|
+
return refusal();
|
|
102
|
+
if (!read.value.success) {
|
|
103
|
+
return refusal(read.value.error.issues.slice(0, 8).map((issue) => issue.path.map(String).join('.').slice(0, 80) || '(root)'));
|
|
104
|
+
}
|
|
105
|
+
return { ok: true, value: read.value.data };
|
|
106
|
+
}
|
|
107
|
+
/** A failure while reading the request becomes the typed refusal; one that is already typed stays itself. */
|
|
108
|
+
function requestRefusal(cause) {
|
|
109
|
+
const failure = antigravityFailureFrom(cause);
|
|
110
|
+
if (failure.reason !== 'untyped')
|
|
111
|
+
return failure;
|
|
112
|
+
return antigravityFailure('unsupported-option', { details: { stage: 'read-request' }, cause });
|
|
113
|
+
}
|
|
114
|
+
/** A workspace path hint: a non-empty string, else absent (a value of any other type is not a path). */
|
|
115
|
+
const PathHintSchema = z.string().min(1).optional().catch(undefined);
|
|
116
|
+
const ContextHintsSchema = z.object({ workspacePath: PathHintSchema, cwd: PathHintSchema });
|
|
117
|
+
const RequestHintsSchema = z.object({
|
|
118
|
+
workspacePath: PathHintSchema,
|
|
119
|
+
metadata: z.object({ workspacePath: PathHintSchema }).optional().catch(undefined)
|
|
120
|
+
});
|
|
121
|
+
function resolveWorkspacePath(context, request) {
|
|
122
|
+
const fromContext = ContextHintsSchema.parse(context);
|
|
123
|
+
const fromRequest = RequestHintsSchema.parse(request);
|
|
124
|
+
return (PathHintSchema.parse(context.executionPolicy?.workspacePath) ??
|
|
125
|
+
fromContext.workspacePath ??
|
|
126
|
+
fromContext.cwd ??
|
|
127
|
+
fromRequest.workspacePath ??
|
|
128
|
+
fromRequest.metadata?.workspacePath);
|
|
129
|
+
}
|
|
130
|
+
const TextContentSchema = z.string();
|
|
131
|
+
function encodePrompt(messages) {
|
|
132
|
+
const only = messages.length === 1 ? TextContentSchema.safeParse(messages[0]?.content) : undefined;
|
|
133
|
+
if (only?.success)
|
|
134
|
+
return only.data;
|
|
135
|
+
return messages
|
|
136
|
+
.map((message) => {
|
|
137
|
+
const text = TextContentSchema.safeParse(message.content);
|
|
138
|
+
const content = text.success ? text.data : JSON.stringify(message.content);
|
|
139
|
+
return `<${message.role}>\n${content}\n</${message.role}>`;
|
|
140
|
+
})
|
|
141
|
+
.join('\n\n');
|
|
142
|
+
}
|
|
143
|
+
const antigravityServerSpec = new AntigravityServerSpec();
|
|
144
|
+
export default antigravityServerSpec;
|
|
145
|
+
//# sourceMappingURL=antigravity-server.spec.impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravity-server.spec.impl.js","sourceRoot":"","sources":["../../../../../src/ai/providers/gemini/antigravity-server/antigravity-server.spec.impl.ts"],"names":[],"mappings":"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"}
|
package/dist/ai/providers/gemini/antigravity-server/antigravity-server.transport.descriptor.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
id: string;
|
|
3
|
+
kind: "ai/transport";
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
scopes: ("cloud" | "consumer")[];
|
|
7
|
+
bidirectional: boolean;
|
|
8
|
+
cancellable: boolean;
|
|
9
|
+
enabled: boolean;
|
|
10
|
+
tags?: string[] | undefined;
|
|
11
|
+
};
|
|
12
|
+
export default _default;
|
|
13
|
+
//# sourceMappingURL=antigravity-server.transport.descriptor.d.ts.map
|
package/dist/ai/providers/gemini/antigravity-server/antigravity-server.transport.descriptor.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravity-server.transport.descriptor.d.ts","sourceRoot":"","sources":["../../../../../src/ai/providers/gemini/antigravity-server/antigravity-server.transport.descriptor.ts"],"names":[],"mappings":";;;;;;;;;;;AAEA,wBASG"}
|
package/dist/ai/providers/gemini/antigravity-server/antigravity-server.transport.descriptor.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createAITransportDescriptor } from '@vibesdotdev/ai/transports/schemas/descriptor';
|
|
2
|
+
export default createAITransportDescriptor({
|
|
3
|
+
id: 'antigravity-server',
|
|
4
|
+
name: 'Antigravity Server',
|
|
5
|
+
description: 'Persistent Google One subscription session through the Antigravity stream-json protocol.',
|
|
6
|
+
scopes: ['consumer'],
|
|
7
|
+
bidirectional: true,
|
|
8
|
+
cancellable: true,
|
|
9
|
+
tags: ['google', 'gemini', 'antigravity', 'stream-json', 'consumer-only']
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=antigravity-server.transport.descriptor.js.map
|
package/dist/ai/providers/gemini/antigravity-server/antigravity-server.transport.descriptor.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravity-server.transport.descriptor.js","sourceRoot":"","sources":["../../../../../src/ai/providers/gemini/antigravity-server/antigravity-server.transport.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAE5F,eAAe,2BAA2B,CAAC;IAC1C,EAAE,EAAE,oBAAoB;IACxB,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACV,0FAA0F;IAC3F,MAAM,EAAE,CAAC,UAAU,CAAC;IACpB,aAAa,EAAE,IAAI;IACnB,WAAW,EAAE,IAAI;IACjB,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,CAAC;CACzE,CAAC,CAAC"}
|
package/dist/ai/providers/gemini/antigravity-server/antigravity-server.transport.impl.consumer.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { AITransportInterface, TransportCallOptions } from '@vibesdotdev/ai/transports/interfaces';
|
|
2
|
+
import type { WireRequest, WireResponseChunk } from '@vibesdotdev/ai/specs/interfaces';
|
|
3
|
+
import { type AntigravityConnectOptions, type AntigravityServerRuntime, type AntigravityServerSpawner } from './connection.ts';
|
|
4
|
+
/**
|
|
5
|
+
* Process transport for Antigravity's stream-json channel, one runtime per
|
|
6
|
+
* transport. Each call owns one child for the length of the call (a turn is the
|
|
7
|
+
* whole conversation the spec encoded), so a dead child is never reused: the
|
|
8
|
+
* connection that marked itself closed is dropped with its call and the next call
|
|
9
|
+
* spawns a new child. The transport tracks the children of its in-flight calls so
|
|
10
|
+
* that `close()` (the plugin's dispose) stops them and reports a failed stop.
|
|
11
|
+
*/
|
|
12
|
+
export declare class AntigravityServerTransport implements AITransportInterface {
|
|
13
|
+
#private;
|
|
14
|
+
private readonly runtime;
|
|
15
|
+
private readonly spawner;
|
|
16
|
+
private readonly connectOptions;
|
|
17
|
+
readonly descriptor: {
|
|
18
|
+
id: string;
|
|
19
|
+
kind: "ai/transport";
|
|
20
|
+
name: string;
|
|
21
|
+
description: string;
|
|
22
|
+
scopes: ("cloud" | "consumer")[];
|
|
23
|
+
bidirectional: boolean;
|
|
24
|
+
cancellable: boolean;
|
|
25
|
+
enabled: boolean;
|
|
26
|
+
tags?: string[] | undefined;
|
|
27
|
+
};
|
|
28
|
+
constructor(runtime: AntigravityServerRuntime, spawner: AntigravityServerSpawner, connectOptions?: AntigravityConnectOptions);
|
|
29
|
+
send(request: WireRequest, options: TransportCallOptions): AsyncIterable<WireResponseChunk>;
|
|
30
|
+
/** Stops the child of every call in flight and refuses new calls; a failure to stop a child is raised to the caller. */
|
|
31
|
+
close(): Promise<void>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=antigravity-server.transport.impl.consumer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravity-server.transport.impl.consumer.d.ts","sourceRoot":"","sources":["../../../../../src/ai/providers/gemini/antigravity-server/antigravity-server.transport.impl.consumer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,oBAAoB,EACpB,oBAAoB,EACpB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAMvF,OAAO,EAGN,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,MAAM,iBAAiB,CAAC;AAqBzB;;;;;;;GAOG;AACH,qBAAa,0BAA2B,YAAW,oBAAoB;;IAMrE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAPhC,QAAQ,CAAC,UAAU;;;;;;;;;;MAAc;gBAKf,OAAO,EAAE,wBAAwB,EACjC,OAAO,EAAE,wBAAwB,EACjC,cAAc,GAAE,yBAA8B;IAGhE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAAC,iBAAiB,CAAC;IAI3F,wHAAwH;IAClH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAsD5B"}
|
package/dist/ai/providers/gemini/antigravity-server/antigravity-server.transport.impl.consumer.js
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import * as z from 'zod/v4';
|
|
2
|
+
import { getLogger } from '@vibesdotdev/logging';
|
|
3
|
+
import descriptor from "./antigravity-server.transport.descriptor.js";
|
|
4
|
+
import { settle } from '@vibesdotdev/kernel';
|
|
5
|
+
import { antigravityFailure } from "./antigravity-failure.js";
|
|
6
|
+
import { AntigravityConnection, AntigravityEffortSchema } from "./connection.js";
|
|
7
|
+
import { failureAsChunk } from "./failure-chunk.js";
|
|
8
|
+
import { AIExecutionPolicySchema } from '@vibesdotdev/ai/schemas/execution-policy';
|
|
9
|
+
import { approvalBypassDeclared, normalizeWorkspacePath } from "./runtime-execution.js";
|
|
10
|
+
/** The spec attaches its session program to the request body in process; it never crosses a wire. */
|
|
11
|
+
const SessionBodySchema = z.object({
|
|
12
|
+
sessionProgram: z.custom((program) => program instanceof Function)
|
|
13
|
+
});
|
|
14
|
+
/** The execution policy a call declares: absent is no policy. */
|
|
15
|
+
const PolicySchema = AIExecutionPolicySchema.optional();
|
|
16
|
+
/** What the body says about the child this call needs. */
|
|
17
|
+
const SpawnBodySchema = z.object({
|
|
18
|
+
cwd: z.string().min(1).max(8_192).optional(),
|
|
19
|
+
model: z.string().min(1).max(256).optional(),
|
|
20
|
+
effort: AntigravityEffortSchema.optional()
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
* Process transport for Antigravity's stream-json channel, one runtime per
|
|
24
|
+
* transport. Each call owns one child for the length of the call (a turn is the
|
|
25
|
+
* whole conversation the spec encoded), so a dead child is never reused: the
|
|
26
|
+
* connection that marked itself closed is dropped with its call and the next call
|
|
27
|
+
* spawns a new child. The transport tracks the children of its in-flight calls so
|
|
28
|
+
* that `close()` (the plugin's dispose) stops them and reports a failed stop.
|
|
29
|
+
*/
|
|
30
|
+
export class AntigravityServerTransport {
|
|
31
|
+
runtime;
|
|
32
|
+
spawner;
|
|
33
|
+
connectOptions;
|
|
34
|
+
descriptor = descriptor;
|
|
35
|
+
#active = new Set();
|
|
36
|
+
#closed = false;
|
|
37
|
+
constructor(runtime, spawner, connectOptions = {}) {
|
|
38
|
+
this.runtime = runtime;
|
|
39
|
+
this.spawner = spawner;
|
|
40
|
+
this.connectOptions = connectOptions;
|
|
41
|
+
}
|
|
42
|
+
send(request, options) {
|
|
43
|
+
return failureAsChunk(this.#run(request, options));
|
|
44
|
+
}
|
|
45
|
+
/** Stops the child of every call in flight and refuses new calls; a failure to stop a child is raised to the caller. */
|
|
46
|
+
async close() {
|
|
47
|
+
this.#closed = true;
|
|
48
|
+
const connections = [...this.#active];
|
|
49
|
+
this.#active.clear();
|
|
50
|
+
const closed = await Promise.all(connections.map((connection) => settle(() => connection.close())));
|
|
51
|
+
const failures = closed.flatMap((outcome) => (!outcome.ok ? [outcome.cause] : []));
|
|
52
|
+
if (failures.length === 0)
|
|
53
|
+
return;
|
|
54
|
+
throw antigravityFailure('antigravity-transport-close-failed', {
|
|
55
|
+
details: { failed: failures.length, of: connections.length },
|
|
56
|
+
cause: new AggregateError(failures)
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
async *#run(request, options) {
|
|
60
|
+
const program = SessionBodySchema.safeParse(request.body);
|
|
61
|
+
if (!program.success)
|
|
62
|
+
throw antigravityFailure('antigravity-session-program-missing');
|
|
63
|
+
const spawn = SpawnBodySchema.safeParse(request.body);
|
|
64
|
+
if (!spawn.success) {
|
|
65
|
+
const fields = spawn.error.issues.slice(0, 8).map((issue) => issue.path.map(String).join('.') || '(root)');
|
|
66
|
+
throw antigravityFailure('unsupported-option', { details: { fields } });
|
|
67
|
+
}
|
|
68
|
+
if (this.#closed)
|
|
69
|
+
throw antigravityFailure('antigravity-transport-closed', { details: { by: 'transport-closed' } });
|
|
70
|
+
if (options.signal?.aborted)
|
|
71
|
+
throw antigravityFailure('generation-cancelled', { details: { stage: 'before-connect' } });
|
|
72
|
+
// The declared policy decides whether the child may skip its approval prompts: a policy that does not
|
|
73
|
+
// parse is refused, never read as absent (absent is the safe default, so a bad one must not look like it).
|
|
74
|
+
const policy = PolicySchema.safeParse(options.executionPolicy);
|
|
75
|
+
if (!policy.success)
|
|
76
|
+
throw antigravityFailure('unsupported-option', { details: { fields: ['executionPolicy'] } });
|
|
77
|
+
const cwd = normalizeWorkspacePath(options.cwd ?? spawn.data.cwd ?? policy.data?.workspacePath);
|
|
78
|
+
const connection = await AntigravityConnection.connect(this.runtime, this.spawner, { cwd, model: spawn.data.model, effort: spawn.data.effort, skipPermissions: approvalBypassDeclared(policy.data) }, { ...this.connectOptions, signal: options.signal });
|
|
79
|
+
this.#active.add(connection);
|
|
80
|
+
try {
|
|
81
|
+
if (this.#closed)
|
|
82
|
+
throw antigravityFailure('antigravity-transport-closed', { details: { by: 'transport-closed' } });
|
|
83
|
+
yield* program.data.sessionProgram(connection, options);
|
|
84
|
+
}
|
|
85
|
+
finally {
|
|
86
|
+
if (await this.#reap(connection))
|
|
87
|
+
this.#active.delete(connection);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/** Stops the child of a call that ended; a failure is reported in the log (the call's own outcome stands) and never dropped. */
|
|
91
|
+
async #reap(connection) {
|
|
92
|
+
const closed = await settle(() => connection.close());
|
|
93
|
+
if (closed.ok)
|
|
94
|
+
return true;
|
|
95
|
+
getLogger('integrations-gemini', this.runtime).child('antigravity-server').warn('antigravity-server child could not be stopped after a call', {
|
|
96
|
+
error: closed.cause
|
|
97
|
+
});
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=antigravity-server.transport.impl.consumer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravity-server.transport.impl.consumer.js","sourceRoot":"","sources":["../../../../../src/ai/providers/gemini/antigravity-server/antigravity-server.transport.impl.consumer.ts"],"names":[],"mappings":"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"}
|