@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,63 @@
|
|
|
1
|
+
import type { RuntimeRef } from '@vibesdotdev/runtime';
|
|
2
|
+
import { type AntigravityInitEvent, type AntigravityServerEvent } from './protocol.ts';
|
|
3
|
+
export type AntigravityServerRuntime = Pick<RuntimeRef, 'lifecycle'>;
|
|
4
|
+
export interface AntigravityByteWritableStreamDefaultWriter {
|
|
5
|
+
write(chunk: Uint8Array): Promise<void>;
|
|
6
|
+
close(): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
export interface AntigravityByteReadableStreamDefaultReader {
|
|
9
|
+
read(): Promise<{
|
|
10
|
+
value?: Uint8Array;
|
|
11
|
+
done: boolean;
|
|
12
|
+
}>;
|
|
13
|
+
cancel(reason?: unknown): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
export interface AntigravityByteWritableStream {
|
|
16
|
+
getWriter(): AntigravityByteWritableStreamDefaultWriter;
|
|
17
|
+
}
|
|
18
|
+
export interface AntigravityByteReadableStream {
|
|
19
|
+
getReader(): AntigravityByteReadableStreamDefaultReader;
|
|
20
|
+
}
|
|
21
|
+
export interface AntigravityServerProcess {
|
|
22
|
+
stdin?: AntigravityByteWritableStream | null;
|
|
23
|
+
stdout?: AntigravityByteReadableStream | null;
|
|
24
|
+
stderr?: AntigravityByteReadableStream | null;
|
|
25
|
+
exited: Promise<{
|
|
26
|
+
code: number | null;
|
|
27
|
+
signal?: string | null;
|
|
28
|
+
}>;
|
|
29
|
+
kill?(signal?: string): void;
|
|
30
|
+
}
|
|
31
|
+
export interface AntigravityServerSpawnOptions {
|
|
32
|
+
command?: string;
|
|
33
|
+
args?: string[];
|
|
34
|
+
cwd?: string;
|
|
35
|
+
workspaceDirs?: string[];
|
|
36
|
+
model?: string;
|
|
37
|
+
effort?: 'low' | 'medium' | 'high';
|
|
38
|
+
}
|
|
39
|
+
export type AntigravityServerSpawner = (options?: AntigravityServerSpawnOptions) => Promise<AntigravityServerProcess>;
|
|
40
|
+
export declare class AntigravityServerClient {
|
|
41
|
+
readonly runtime: AntigravityServerRuntime;
|
|
42
|
+
private readonly process;
|
|
43
|
+
private readonly writer;
|
|
44
|
+
private readonly reader;
|
|
45
|
+
private readonly encoder;
|
|
46
|
+
private readonly decoder;
|
|
47
|
+
private readonly eventListeners;
|
|
48
|
+
private initEvent;
|
|
49
|
+
private initPromise;
|
|
50
|
+
private resolveInit;
|
|
51
|
+
private rejectInit;
|
|
52
|
+
private closed;
|
|
53
|
+
constructor(runtime: AntigravityServerRuntime, process: AntigravityServerProcess);
|
|
54
|
+
static connect(runtime: AntigravityServerRuntime, spawn: AntigravityServerSpawner, options?: AntigravityServerSpawnOptions): Promise<AntigravityServerClient>;
|
|
55
|
+
waitForInit(timeoutMs?: number): Promise<AntigravityInitEvent>;
|
|
56
|
+
sendTurn(prompt: string): Promise<void>;
|
|
57
|
+
onEvent(listener: (event: AntigravityServerEvent) => void): () => void;
|
|
58
|
+
close(): Promise<void>;
|
|
59
|
+
private readLoop;
|
|
60
|
+
private handleLine;
|
|
61
|
+
private drainStderr;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../src/ai/providers/gemini/antigravity-server/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { getLogger } from '@vibesdotdev/logging';
|
|
2
|
+
import { isAntigravityInitEvent, isAntigravityResultEvent, isAntigravityStepUpdateEvent } from "./protocol.js";
|
|
3
|
+
const logger = getLogger('integrations-gemini').child('antigravity-server');
|
|
4
|
+
export class AntigravityServerClient {
|
|
5
|
+
runtime;
|
|
6
|
+
process;
|
|
7
|
+
writer;
|
|
8
|
+
reader;
|
|
9
|
+
encoder = new TextEncoder();
|
|
10
|
+
decoder = new TextDecoder();
|
|
11
|
+
eventListeners = new Set();
|
|
12
|
+
initEvent = null;
|
|
13
|
+
initPromise;
|
|
14
|
+
resolveInit;
|
|
15
|
+
rejectInit;
|
|
16
|
+
closed = false;
|
|
17
|
+
constructor(runtime, process) {
|
|
18
|
+
this.runtime = runtime;
|
|
19
|
+
this.process = process;
|
|
20
|
+
if (!process.stdin || !process.stdout) {
|
|
21
|
+
throw new Error('antigravity-server: runtime execution must expose piped stdin and stdout');
|
|
22
|
+
}
|
|
23
|
+
this.writer = process.stdin.getWriter();
|
|
24
|
+
this.reader = process.stdout.getReader();
|
|
25
|
+
this.initPromise = new Promise((resolve, reject) => {
|
|
26
|
+
this.resolveInit = resolve;
|
|
27
|
+
this.rejectInit = reject;
|
|
28
|
+
});
|
|
29
|
+
void this.drainStderr(process.stderr ?? null);
|
|
30
|
+
void this.readLoop();
|
|
31
|
+
void process.exited.then(({ code }) => {
|
|
32
|
+
if (!this.closed) {
|
|
33
|
+
const error = new Error(`antigravity-server: process exited with code ${String(code)}`);
|
|
34
|
+
if (!this.initEvent) {
|
|
35
|
+
this.rejectInit(error);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
static async connect(runtime, spawn, options = {}) {
|
|
41
|
+
const client = new AntigravityServerClient(runtime, await spawn(options));
|
|
42
|
+
return client;
|
|
43
|
+
}
|
|
44
|
+
async waitForInit(timeoutMs = 15_000) {
|
|
45
|
+
if (this.initEvent)
|
|
46
|
+
return this.initEvent;
|
|
47
|
+
return this.runtime.lifecycle.wait(() => this.initPromise, {
|
|
48
|
+
timeoutMs,
|
|
49
|
+
reason: 'antigravity-server init event'
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
async sendTurn(prompt) {
|
|
53
|
+
if (this.closed)
|
|
54
|
+
throw new Error('antigravity-server: client is closed');
|
|
55
|
+
const message = {
|
|
56
|
+
event: 'user',
|
|
57
|
+
message: { content: prompt }
|
|
58
|
+
};
|
|
59
|
+
const payload = this.encoder.encode(`${JSON.stringify(message)}\n`);
|
|
60
|
+
await this.writer.write(payload);
|
|
61
|
+
}
|
|
62
|
+
onEvent(listener) {
|
|
63
|
+
this.eventListeners.add(listener);
|
|
64
|
+
return () => this.eventListeners.delete(listener);
|
|
65
|
+
}
|
|
66
|
+
async close() {
|
|
67
|
+
if (this.closed)
|
|
68
|
+
return;
|
|
69
|
+
this.closed = true;
|
|
70
|
+
try {
|
|
71
|
+
await this.writer.close();
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
// best-effort cleanup: the writer may already be closed with the process
|
|
75
|
+
logger.debug('antigravity-server writer close failed', { error: describe(error) });
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
await this.reader.cancel('closed');
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
// best-effort cleanup: the reader may already be closed with the process
|
|
82
|
+
logger.debug('antigravity-server reader cancel failed', { error: describe(error) });
|
|
83
|
+
}
|
|
84
|
+
try {
|
|
85
|
+
this.process.kill?.();
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
// best-effort cleanup: the process may already be dead
|
|
89
|
+
logger.debug('antigravity-server process kill failed', { error: describe(error) });
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
async readLoop() {
|
|
93
|
+
let buffer = '';
|
|
94
|
+
try {
|
|
95
|
+
while (!this.closed) {
|
|
96
|
+
const { value, done } = await this.reader.read();
|
|
97
|
+
if (done)
|
|
98
|
+
break;
|
|
99
|
+
if (!value || value.byteLength === 0)
|
|
100
|
+
continue;
|
|
101
|
+
buffer += this.decoder.decode(value, { stream: true });
|
|
102
|
+
const lines = buffer.split(/\r?\n/);
|
|
103
|
+
buffer = lines.pop() ?? '';
|
|
104
|
+
for (const line of lines) {
|
|
105
|
+
const trimmed = line.trim();
|
|
106
|
+
if (!trimmed)
|
|
107
|
+
continue;
|
|
108
|
+
this.handleLine(trimmed);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (buffer.trim()) {
|
|
112
|
+
this.handleLine(buffer.trim());
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
if (!this.closed && !this.initEvent) {
|
|
117
|
+
this.rejectInit(error instanceof Error ? error : new Error(String(error)));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
handleLine(line) {
|
|
122
|
+
let parsed;
|
|
123
|
+
try {
|
|
124
|
+
parsed = JSON.parse(line);
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
// Non-JSON output lines are process log noise, not protocol events.
|
|
128
|
+
logger.debug('antigravity-server ignored a non-JSON output line');
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
if (isAntigravityInitEvent(parsed)) {
|
|
132
|
+
this.initEvent = parsed;
|
|
133
|
+
this.resolveInit(parsed);
|
|
134
|
+
}
|
|
135
|
+
if (isAntigravityInitEvent(parsed) ||
|
|
136
|
+
isAntigravityStepUpdateEvent(parsed) ||
|
|
137
|
+
isAntigravityResultEvent(parsed)) {
|
|
138
|
+
for (const listener of this.eventListeners) {
|
|
139
|
+
try {
|
|
140
|
+
listener(parsed);
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
// One failing listener must not starve the others.
|
|
144
|
+
logger.warn('antigravity-server event listener failed', { error: describe(error) });
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
async drainStderr(stderr) {
|
|
150
|
+
if (!stderr)
|
|
151
|
+
return;
|
|
152
|
+
const reader = stderr.getReader();
|
|
153
|
+
try {
|
|
154
|
+
while (!this.closed) {
|
|
155
|
+
const { done } = await reader.read();
|
|
156
|
+
if (done)
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
logger.debug('antigravity-server stderr drain failed', { error: describe(error) });
|
|
162
|
+
}
|
|
163
|
+
finally {
|
|
164
|
+
try {
|
|
165
|
+
await reader.cancel('closed');
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
// best-effort cleanup: the stderr reader may already be closed
|
|
169
|
+
logger.debug('antigravity-server stderr cancel failed', { error: describe(error) });
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
function describe(error) {
|
|
175
|
+
return error instanceof Error ? error.message : String(error);
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../src/ai/providers/gemini/antigravity-server/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One `agy --input-format stream-json --output-format stream-json` child, driven
|
|
3
|
+
* as a stream-json event peer.
|
|
4
|
+
*
|
|
5
|
+
* The wire is newline-delimited JSON EVENTS (`init`, `step_update`, `result`),
|
|
6
|
+
* not JSON-RPC, so `createJsonRpcChild` does not apply (a line that is not a
|
|
7
|
+
* JSON-RPC envelope closes it). This module uses the shared framing and queue of
|
|
8
|
+
* `@vibesdotdev/external/jsonrpc` (`LineSplitter`, the engine `readLines` is
|
|
9
|
+
* built on, so the close path can cancel its own pending read; and `AsyncQueue`)
|
|
10
|
+
* with the caller's own parsing ({@link parseAntigravityLine}) and the same
|
|
11
|
+
* lifecycle discipline as the shared client: the connection marks itself closed
|
|
12
|
+
* when the child ends, its stream fails or a line is hostile (so the transport
|
|
13
|
+
* drops it and spawns a new child), and `close()` is SIGTERM, a declared grace,
|
|
14
|
+
* SIGKILL, a joined exit and a bounded close of the pipes.
|
|
15
|
+
*
|
|
16
|
+
* Child text (a line that is not an event, a result's error) never enters a
|
|
17
|
+
* message or a detail: it rides only in a bounded cause. stderr is drained and
|
|
18
|
+
* discarded: it may hold credentials or private prompts.
|
|
19
|
+
*/
|
|
20
|
+
import * as z from 'zod/v4';
|
|
21
|
+
import { CapabilityError, type RuntimeRef, type ValueFreeFailure } from '@vibesdotdev/kernel';
|
|
22
|
+
import { type JsonRpcProcess } from '@vibesdotdev/external/jsonrpc';
|
|
23
|
+
import { type AntigravityInitEvent, type AntigravityResultEvent, type AntigravityStepUpdateEvent } from './protocol.ts';
|
|
24
|
+
/** The runtime the connection's timers (`lifecycle`) and its logger are bound to. */
|
|
25
|
+
export type AntigravityServerRuntime = RuntimeRef;
|
|
26
|
+
/** The part of a spawned process the connection drives: piped stdin and stdout, the exit, and signals. */
|
|
27
|
+
export type AntigravityServerProcess = JsonRpcProcess;
|
|
28
|
+
export declare const AntigravityEffortSchema: z.ZodEnum<{
|
|
29
|
+
low: "low";
|
|
30
|
+
medium: "medium";
|
|
31
|
+
high: "high";
|
|
32
|
+
}>;
|
|
33
|
+
/** What starts one child: read by the spawner (`createAntigravityServerSpawner`). */
|
|
34
|
+
declare const SpawnOptionsSchema: z.ZodObject<{
|
|
35
|
+
command: z.ZodOptional<z.ZodString>;
|
|
36
|
+
args: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
37
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
38
|
+
workspaceDirs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
39
|
+
model: z.ZodOptional<z.ZodString>;
|
|
40
|
+
effort: z.ZodOptional<z.ZodEnum<{
|
|
41
|
+
low: "low";
|
|
42
|
+
medium: "medium";
|
|
43
|
+
high: "high";
|
|
44
|
+
}>>;
|
|
45
|
+
skipPermissions: z.ZodOptional<z.ZodBoolean>;
|
|
46
|
+
}, z.core.$strip>;
|
|
47
|
+
export type AntigravityServerSpawnOptions = z.input<typeof SpawnOptionsSchema>;
|
|
48
|
+
/** The options a spawner may be given as its defaults: everything except the per-call approval bypass. */
|
|
49
|
+
export type AntigravityServerDefaultOptions = Omit<AntigravityServerSpawnOptions, 'skipPermissions'>;
|
|
50
|
+
export type AntigravityServerSpawner = (options?: AntigravityServerSpawnOptions) => Promise<AntigravityServerProcess>;
|
|
51
|
+
/**
|
|
52
|
+
* The declared bounds of one connection. None is implied by a default of the
|
|
53
|
+
* shared framing: a line, the event queue, the wait for `init` and the close all
|
|
54
|
+
* have the value written here.
|
|
55
|
+
*/
|
|
56
|
+
export declare const ANTIGRAVITY_LIMITS: {
|
|
57
|
+
/** One line the child writes, in bytes (a result carries the whole answer). */
|
|
58
|
+
readonly maxLineBytes: number;
|
|
59
|
+
/** Events waiting for the session that consumes them. */
|
|
60
|
+
readonly eventCapacity: 4096;
|
|
61
|
+
/** The wait for the child's `init` event. */
|
|
62
|
+
readonly initTimeoutMs: 15000;
|
|
63
|
+
/** SIGTERM to SIGKILL, and the join of the pipes. */
|
|
64
|
+
readonly graceMs: 2000;
|
|
65
|
+
/** The wait for a SIGKILLed child to be confirmed gone. */
|
|
66
|
+
readonly killWaitMs: 5000;
|
|
67
|
+
};
|
|
68
|
+
declare const AntigravityLimitsSchema: z.ZodObject<{
|
|
69
|
+
maxLineBytes: z.ZodDefault<z.ZodInt>;
|
|
70
|
+
eventCapacity: z.ZodDefault<z.ZodInt>;
|
|
71
|
+
initTimeoutMs: z.ZodDefault<z.ZodInt>;
|
|
72
|
+
graceMs: z.ZodDefault<z.ZodInt>;
|
|
73
|
+
killWaitMs: z.ZodDefault<z.ZodInt>;
|
|
74
|
+
}, z.core.$strip>;
|
|
75
|
+
/** What the connection reports instead of dropping it silently. Carries bounded names and value-free failures: never child text. */
|
|
76
|
+
export type AntigravityDiagnostic = {
|
|
77
|
+
readonly kind: 'unknown-event';
|
|
78
|
+
readonly name: string;
|
|
79
|
+
} | {
|
|
80
|
+
readonly kind: 'repeated-init';
|
|
81
|
+
} | {
|
|
82
|
+
readonly kind: 'unknown-step';
|
|
83
|
+
readonly stepType: string;
|
|
84
|
+
} | {
|
|
85
|
+
readonly kind: 'unknown-tool-state';
|
|
86
|
+
readonly state: string;
|
|
87
|
+
} | {
|
|
88
|
+
readonly kind: 'stderr-failed';
|
|
89
|
+
readonly failure: ValueFreeFailure;
|
|
90
|
+
} | {
|
|
91
|
+
readonly kind: 'cleanup-failed';
|
|
92
|
+
readonly stage: 'writer-close' | 'reader-cancel' | 'stderr-cancel';
|
|
93
|
+
readonly failure: ValueFreeFailure;
|
|
94
|
+
} | {
|
|
95
|
+
readonly kind: 'join-timeout';
|
|
96
|
+
readonly pending: number;
|
|
97
|
+
};
|
|
98
|
+
export interface AntigravityConnectOptions {
|
|
99
|
+
/** The caller's abort: while the child is starting, it stops the child and fails the connect `generation-cancelled`. */
|
|
100
|
+
readonly signal?: AbortSignal;
|
|
101
|
+
/** Declared bounds; each defaults to {@link ANTIGRAVITY_LIMITS}. */
|
|
102
|
+
readonly limits?: z.input<typeof AntigravityLimitsSchema>;
|
|
103
|
+
/** Receives {@link AntigravityDiagnostic}s; defaults to a warning in the runtime's log. A throw closes the connection. */
|
|
104
|
+
readonly diagnostics?: (event: AntigravityDiagnostic) => void;
|
|
105
|
+
}
|
|
106
|
+
/** The events the session reads after `init`. */
|
|
107
|
+
export type AntigravitySessionEvent = AntigravityStepUpdateEvent | AntigravityResultEvent;
|
|
108
|
+
type ProcessExit = {
|
|
109
|
+
readonly code: number | null;
|
|
110
|
+
readonly signal: string | null;
|
|
111
|
+
};
|
|
112
|
+
export declare class AntigravityConnection {
|
|
113
|
+
#private;
|
|
114
|
+
private constructor();
|
|
115
|
+
/**
|
|
116
|
+
* Spawn a child and wait for its `init` event. Options are validated before
|
|
117
|
+
* anything is spawned; once the child exists, any failure to take its pipes
|
|
118
|
+
* or to hear `init` kills it before the failure is thrown.
|
|
119
|
+
*/
|
|
120
|
+
static connect(runtime: AntigravityServerRuntime, spawn: AntigravityServerSpawner, options?: AntigravityServerSpawnOptions, connectOptions?: AntigravityConnectOptions): Promise<AntigravityConnection>;
|
|
121
|
+
/** The `init` event the child announced itself with. */
|
|
122
|
+
get init(): AntigravityInitEvent;
|
|
123
|
+
/** True once the child ended, its stream or protocol failed, or `close()` was called: nothing more can be sent. */
|
|
124
|
+
get closed(): boolean;
|
|
125
|
+
/** The typed failure that closed the connection. */
|
|
126
|
+
get failure(): CapabilityError | undefined;
|
|
127
|
+
/** How the child exited, once it did. */
|
|
128
|
+
get exit(): ProcessExit | undefined;
|
|
129
|
+
/** The events after `init`, in order. A failure that closed the connection is thrown once the buffered events are consumed. */
|
|
130
|
+
events(): AsyncIterable<AntigravitySessionEvent>;
|
|
131
|
+
/** Report something the connection met and did not fail on. */
|
|
132
|
+
diagnose(event: AntigravityDiagnostic): void;
|
|
133
|
+
/** Write one user turn. A failed write closes the connection (the child's stdin is gone) and throws the failure. */
|
|
134
|
+
sendTurn(prompt: string): Promise<void>;
|
|
135
|
+
/** Fail the connection with `error` (the first failure wins) and stop the child: for a session that gave up. */
|
|
136
|
+
abort(error: CapabilityError): void;
|
|
137
|
+
/** SIGTERM, the declared grace, SIGKILL, and a join on the exit. Idempotent. */
|
|
138
|
+
close(): Promise<void>;
|
|
139
|
+
}
|
|
140
|
+
export {};
|
|
141
|
+
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../../src/ai/providers/gemini/antigravity-server/connection.ts"],"names":[],"mappings":"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"}
|