diff --git a/CLAUDE.md b/CLAUDE.md index e1ac653338..80aabf3910 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -2,7 +2,7 @@ Paseo is a mobile app for monitoring and controlling your local AI coding agents from anywhere. Your dev environment, in your pocket. Connects directly to your actual development environment — your code stays on your machine. -**Supported agents:** Claude Code, Codex, GitHub Copilot, OpenCode, Pi, Antigravity, and Muse Code. +**Supported agents:** Claude Code, Codex, GitHub Copilot, OpenCode, Pi, and Muse Code. ## Repository map diff --git a/README.md b/README.md index aa0a841e7e..629477a3ad 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@

-

One interface for Claude Code, Codex, Copilot, OpenCode, Pi, Antigravity, and Muse Code agents.

+

One interface for Claude Code, Codex, Copilot, OpenCode, Pi, and Muse Code agents.

Paseo app screenshot @@ -42,7 +42,7 @@ Run agents in parallel on your own machines. Ship from your phone or your desk. - **Self-hosted:** Agents run on your machine with your full dev environment. Use your tools, your configs, and your skills. -- **Multi-provider:** Claude Code, Codex, Copilot, OpenCode, Pi, Antigravity, and Muse Code through the same interface. Pick the right model for each job. +- **Multi-provider:** Claude Code, Codex, Copilot, OpenCode, Pi, and Muse Code through the same interface. Pick the right model for each job. - **Voice control:** Dictate tasks or talk through problems in voice mode. Hands-free when you need it. - **Cross-device:** iOS, Android, desktop, web, and CLI. Start work at your desk, check in from your phone, script it from the terminal. - **Privacy-first:** Paseo doesn't have any telemetry, tracking, or forced log-ins. @@ -68,7 +68,6 @@ You need at least one agent CLI installed and configured with your credentials: - [GitHub Copilot](https://github.com/features/copilot/cli/) - [OpenCode](https://github.com/anomalyco/opencode) - [Pi](https://pi.dev) -- [Antigravity](https://paseo.sh/docs/supported-providers#antigravity) - [Muse Code](https://paseo.sh/docs/muse-code) ### Desktop app (recommended) diff --git a/docs/providers.md b/docs/providers.md index 0036c2e6f2..0558406a1b 100644 --- a/docs/providers.md +++ b/docs/providers.md @@ -6,7 +6,7 @@ server integrations. ## Plugin providers Keep a bundled provider in `plugins//` and register it through -`@getpaseo/plugin/server/provider`. Antigravity and Muse Code follow this pattern. Built-in loading and SDK +`@getpaseo/plugin/server/provider`. Muse Code follows this pattern. Built-in loading and SDK import rules belong to [plugins.md](plugins.md#built-in-plugins); the [public provider guide](../public-docs/plugins/providers.md) covers the provider contract. @@ -15,10 +15,9 @@ executable resolution and applies `agents.providers..command` and ` connecting. Register the provider's icon with the plugin rather than adding it to the app's provider icon map. You do not need a core manifest entry or provider factory. -| Provider | Transport | Setup and limitations | -| ----------- | ------------------------------------------ | ---------------------------------------------------------------- | -| Antigravity | Installed `agy` CLI | [Antigravity](../public-docs/supported-providers.md#antigravity) | -| Muse Code | MSP over one `muse serve` host per session | [Muse Code](../public-docs/muse-code.md) | +| Provider | Transport | Setup and limitations | +| --------- | ------------------------------------------ | ---------------------------------------- | +| Muse Code | MSP over one `muse serve` host per session | [Muse Code](../public-docs/muse-code.md) | ## Provider-native session options diff --git a/packages/server/src/server/daemon-e2e/models.e2e.test.ts b/packages/server/src/server/daemon-e2e/models.e2e.test.ts index ff93b695c1..7691e63713 100644 --- a/packages/server/src/server/daemon-e2e/models.e2e.test.ts +++ b/packages/server/src/server/daemon-e2e/models.e2e.test.ts @@ -1,11 +1,4 @@ import { describe, test, expect } from "vitest"; -import { mkdtemp, rm } from "node:fs/promises"; -import os from "node:os"; -import path from "node:path"; -import { findExecutable } from "../../executable-resolution/executable-resolution.js"; -import { BuiltinPluginLoader } from "../plugins/builtin/index.js"; -import { createTestPaseoDaemon } from "../test-utils/paseo-daemon.js"; -import { DaemonClient } from "../test-utils/daemon-client.js"; import { execFileSync } from "node:child_process"; import { createDaemonTestContext } from "../test-utils/index.js"; @@ -103,54 +96,3 @@ describe("daemon E2E", () => { ); }); }); - -test("Antigravity creates an agent and answers a prompt with real agy", async ({ skip }) => { - const command = await findExecutable(process.env.AGY_COMMAND ?? "agy"); - if (command === null) { - skip("agy is not resolvable"); - return; - } - const cwd = await mkdtemp(path.join(os.tmpdir(), "paseo-antigravity-e2e-")); - const daemon = await createTestPaseoDaemon({ - agentClients: {}, - mcpEnabled: false, - builtinPlugins: new BuiltinPluginLoader(undefined, ["antigravity-provider"]), - providerOverrides: { antigravity: { command: [command], paseoTools: { enabled: false } } }, - }); - const client = new DaemonClient({ - url: `ws://127.0.0.1:${daemon.port}/ws`, - appVersion: "0.10.0", - }); - try { - await client.connect(); - await client.fetchAgents({ subscribe: {} }); - await expect - .poll( - async () => { - const snapshot = await client.getProvidersSnapshot({ cwd }); - return snapshot.entries.find((entry) => entry.provider === "antigravity")?.status; - }, - { timeout: 30000 }, - ) - .toBe("ready"); - const agent = await client.createAgent({ - provider: "antigravity", - cwd, - title: "Antigravity E2E", - }); - await client.sendMessage(agent.id, "Reply with exactly ANTIGRAVITY_E2E_OK. No tools."); - const result = await client.waitForFinish(agent.id, 90000); - expect(result.status).toBe("idle"); - const timeline = await client.fetchAgentTimeline(agent.id, { limit: 100 }); - expect( - timeline.entries.some( - (entry) => - entry.item.type === "assistant_message" && entry.item.text.includes("ANTIGRAVITY_E2E_OK"), - ), - ).toBe(true); - } finally { - await client.close(); - await daemon.close(); - await rm(cwd, { recursive: true, force: true }); - } -}, 120000); diff --git a/packages/server/src/server/plugins/builtin/index.ts b/packages/server/src/server/plugins/builtin/index.ts index eb6aab147e..179768dd2f 100644 --- a/packages/server/src/server/plugins/builtin/index.ts +++ b/packages/server/src/server/plugins/builtin/index.ts @@ -3,7 +3,6 @@ import path from "node:path"; import { fileURLToPath } from "node:url"; export const builtinPlugins = [ - "antigravity-provider", "claude-usage-source", "codex-usage-source", "copilot-usage-source", diff --git a/packages/website/src/components/agent-icons.tsx b/packages/website/src/components/agent-icons.tsx index 8488050b12..e827d1e484 100644 --- a/packages/website/src/components/agent-icons.tsx +++ b/packages/website/src/components/agent-icons.tsx @@ -99,20 +99,3 @@ export function MuseCodeIcon(props: React.SVGProps) { ); } - -export function AntigravityIcon(props: React.SVGProps) { - return ( - - ); -} diff --git a/packages/website/src/components/landing-page.tsx b/packages/website/src/components/landing-page.tsx index 6a29c62235..db25dbe1ea 100644 --- a/packages/website/src/components/landing-page.tsx +++ b/packages/website/src/components/landing-page.tsx @@ -79,7 +79,6 @@ import { OpenCodeIcon, PiIcon, MuseCodeIcon, - AntigravityIcon, } from "~/components/agent-icons"; import { DiscordIcon, GitHubIcon, SlackIcon } from "~/components/brand-icons"; import { ClaudeIcon, MobileChat, MobileDiff, MobileSidebar, PhoneFrame } from "~/components/mockup"; @@ -163,7 +162,6 @@ function Hero({ title, subtitle }: { title: React.ReactNode; subtitle: React.Rea const CLAUDE_CODE_BADGE_ICON = ; const CODEX_BADGE_ICON = ; -const ANTIGRAVITY_BADGE_ICON = ; const MUSE_CODE_BADGE_ICON = ; const OPENCODE_BADGE_ICON = ; const PI_BADGE_ICON = ; @@ -436,7 +434,6 @@ function MultiProviderSection() { { name: "Claude Code", icon: }, { name: "Codex", icon: }, { name: "OpenCode", icon: }, - { name: "Antigravity", icon: }, { name: "Muse Code", icon: }, { name: "Pi", icon: }, { name: "Cursor", icon: }, @@ -906,8 +903,7 @@ const PRINCIPLES: ReadonlyArray<{ icon: LucideIcon; title: string; description: { icon: Merge, title: "Unified", - description: - "Claude Code, Codex, OpenCode, Pi, Antigravity, Muse Code, and more, all used the same way.", + description: "Claude Code, Codex, OpenCode, Pi, Muse Code, and more, all used the same way.", }, { icon: Blocks, @@ -969,7 +965,6 @@ function GetStarted() { - @@ -1216,8 +1211,7 @@ function FAQ() { Paseo supports many providers. It has custom implementations for Claude, Codex, OpenCode, - Pi, OMP, Antigravity, and Muse Code, and supports many more via ACP. See the full list - here:{" "} + Pi, OMP, and Muse Code, and supports many more via ACP. See the full list here:{" "} all supported providers diff --git a/packages/website/src/components/site-footer.tsx b/packages/website/src/components/site-footer.tsx index ba092410da..9009e63e53 100644 --- a/packages/website/src/components/site-footer.tsx +++ b/packages/website/src/components/site-footer.tsx @@ -86,12 +86,6 @@ export function SiteFooter({ width = "default" }: SiteFooterProps) { > OpenCode - - Antigravity - rootRouteImport, } as any); -const AntigravityRoute = AntigravityRouteImport.update({ - id: "/antigravity", - path: "/antigravity", - getParentRoute: () => rootRouteImport, -} as any); const AmpRoute = AmpRouteImport.update({ id: "/amp", path: "/amp", @@ -396,7 +390,6 @@ export interface FileRoutesByFullPath { "/agents": typeof AgentsRoute; "/agoragentic": typeof AgoragenticRoute; "/amp": typeof AmpRoute; - "/antigravity": typeof AntigravityRoute; "/auggie": typeof AuggieRoute; "/autohand": typeof AutohandRoute; "/blog": typeof BlogRouteWithChildren; @@ -461,7 +454,6 @@ export interface FileRoutesByTo { "/agents": typeof AgentsRoute; "/agoragentic": typeof AgoragenticRoute; "/amp": typeof AmpRoute; - "/antigravity": typeof AntigravityRoute; "/auggie": typeof AuggieRoute; "/autohand": typeof AutohandRoute; "/changelog": typeof ChangelogRoute; @@ -525,7 +517,6 @@ export interface FileRoutesById { "/agents": typeof AgentsRoute; "/agoragentic": typeof AgoragenticRoute; "/amp": typeof AmpRoute; - "/antigravity": typeof AntigravityRoute; "/auggie": typeof AuggieRoute; "/autohand": typeof AutohandRoute; "/blog": typeof BlogRouteWithChildren; @@ -592,7 +583,6 @@ export interface FileRouteTypes { | "/agents" | "/agoragentic" | "/amp" - | "/antigravity" | "/auggie" | "/autohand" | "/blog" @@ -657,7 +647,6 @@ export interface FileRouteTypes { | "/agents" | "/agoragentic" | "/amp" - | "/antigravity" | "/auggie" | "/autohand" | "/changelog" @@ -720,7 +709,6 @@ export interface FileRouteTypes { | "/agents" | "/agoragentic" | "/amp" - | "/antigravity" | "/auggie" | "/autohand" | "/blog" @@ -786,7 +774,6 @@ export interface RootRouteChildren { AgentsRoute: typeof AgentsRoute; AgoragenticRoute: typeof AgoragenticRoute; AmpRoute: typeof AmpRoute; - AntigravityRoute: typeof AntigravityRoute; AuggieRoute: typeof AuggieRoute; AutohandRoute: typeof AutohandRoute; BlogRoute: typeof BlogRouteWithChildren; @@ -1167,13 +1154,6 @@ declare module "@tanstack/react-router" { preLoaderRoute: typeof AuggieRouteImport; parentRoute: typeof rootRouteImport; }; - "/antigravity": { - id: "/antigravity"; - path: "/antigravity"; - fullPath: "/antigravity"; - preLoaderRoute: typeof AntigravityRouteImport; - parentRoute: typeof rootRouteImport; - }; "/amp": { id: "/amp"; path: "/amp"; @@ -1318,7 +1298,6 @@ const rootRouteChildren: RootRouteChildren = { AgentsRoute: AgentsRoute, AgoragenticRoute: AgoragenticRoute, AmpRoute: AmpRoute, - AntigravityRoute: AntigravityRoute, AuggieRoute: AuggieRoute, AutohandRoute: AutohandRoute, BlogRoute: BlogRouteWithChildren, diff --git a/packages/website/src/routes/agents.tsx b/packages/website/src/routes/agents.tsx index 03548fe3bf..551eddc94b 100644 --- a/packages/website/src/routes/agents.tsx +++ b/packages/website/src/routes/agents.tsx @@ -10,7 +10,7 @@ export const Route = createFileRoute("/agents")({ head: () => pageMeta( "Supported agents – Every coding agent Paseo runs", - "Run Claude Code, Codex, Copilot, OpenCode, Antigravity, Muse Code, Cursor CLI, Gemini CLI, and dozens more coding agents from your phone. Self-hosted, your code stays on your machine.", + "Run Claude Code, Codex, Copilot, OpenCode, Muse Code, Cursor CLI, Gemini CLI, and dozens more coding agents from your phone. Self-hosted, your code stays on your machine.", "/agents", ), component: AgentsPage, diff --git a/packages/website/src/routes/antigravity.tsx b/packages/website/src/routes/antigravity.tsx deleted file mode 100644 index 3d821de7b9..0000000000 --- a/packages/website/src/routes/antigravity.tsx +++ /dev/null @@ -1,4 +0,0 @@ -import { createFileRoute } from "@tanstack/react-router"; -import { agentRouteOptions } from "~/components/agent-route"; - -export const Route = createFileRoute("/antigravity")(agentRouteOptions("antigravity")); diff --git a/plugins/antigravity-provider/icon.svg b/plugins/antigravity-provider/icon.svg deleted file mode 100644 index 0576d92a87..0000000000 --- a/plugins/antigravity-provider/icon.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/antigravity-provider/index.server.ts b/plugins/antigravity-provider/index.server.ts deleted file mode 100644 index 661fa8445d..0000000000 --- a/plugins/antigravity-provider/index.server.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { PluginServerContext } from "@getpaseo/plugin/server"; -import { createAntigravityProvider } from "./server/provider.js"; - -export default function contribute(server: PluginServerContext) { - server.registerProvider(createAntigravityProvider()); - return () => {}; -} diff --git a/plugins/antigravity-provider/paseo-plugin.json b/plugins/antigravity-provider/paseo-plugin.json deleted file mode 100644 index ce6b2834f2..0000000000 --- a/plugins/antigravity-provider/paseo-plugin.json +++ /dev/null @@ -1 +0,0 @@ -{ "id": "antigravity-provider", "requirements": { "paseo": ">=0.10.0" } } diff --git a/plugins/antigravity-provider/server/internal/catalog.ts b/plugins/antigravity-provider/server/internal/catalog.ts deleted file mode 100644 index 74e3be583e..0000000000 --- a/plugins/antigravity-provider/server/internal/catalog.ts +++ /dev/null @@ -1,96 +0,0 @@ -import type { - ProviderCatalog, - ProviderLaunch, - ProviderModel, - ProviderMode, - ProviderStatus, -} from "@getpaseo/plugin/server/provider"; -import { probe } from "./process.js"; -import { AntigravityError } from "./wire.js"; - -const modes: readonly ProviderMode[] = [ - { - id: "default", - icon: "Shield", - colorTier: "moderate", - label: "Default", - description: "Workspace reads and edits are allowed; shell commands are denied.", - }, - { - id: "accept-edits", - icon: "ShieldPlus", - colorTier: "moderate", - label: "Accept edits", - description: - "Native accept-edits mode. Workspace edits are allowed; shell commands are denied.", - }, - { - id: "plan", - icon: "ShieldEllipsis", - colorTier: "planning", - label: "Plan", - description: - "Native plan mode permits workspace edits. Shell commands are denied; this is not read-only.", - }, - { - id: "full-access", - icon: "ShieldOff", - colorTier: "dangerous", - label: "Full access", - description: "Skip native permission checks, including for shell commands.", - isUnattended: true, - }, -]; - -export async function getCatalog(launch: ProviderLaunch, cwd?: string): Promise { - const output = await probe({ launch, args: ["models"], cwd }); - const models: ProviderModel[] = []; - for (const line of output.trim().split(/\r?\n/)) { - const [id, label, ...extra] = line.split("\t"); - if (!id || !label || extra.length > 0) - throw new AntigravityError("Invalid `agy models` output", "INVALID_CATALOG"); - if (models.some((model) => model.id === id)) - throw new AntigravityError(`Duplicate Antigravity model: ${id}`, "INVALID_CATALOG"); - models.push({ id, label }); - } - return { models, modes, thinkingOptions: [], defaultMode: "default" }; -} - -export async function getStatus(launch: ProviderLaunch): Promise { - try { - const version = (await probe({ launch, args: ["--version"] })).trim(); - const match = /^(\d+)\.(\d+)\.(\d+)$/.exec(version); - if (!match) - return { - available: false, - diagnostic: "Could not read the Antigravity version. Update `agy` to 1.1.15 or later.", - }; - const [, major, minor, patch] = match.map(Number); - const supported = major > 1 || (major === 1 && (minor > 1 || (minor === 1 && patch >= 15))); - if (!supported) - return { - available: false, - diagnostic: `Antigravity ${version} is unsupported. Update \`agy\` to 1.1.15 or later.`, - }; - await getCatalog(launch); - return { available: true }; - } catch (error) { - if (!(error instanceof AntigravityError)) throw error; - return { available: false, diagnostic: error.message }; - } -} - -export function validateSelection( - config: { model?: string; mode?: string; thinkingOption?: string }, - catalog: ProviderCatalog, -): void { - if (config.model && !catalog.models.some((model) => model.id === config.model)) - throw new AntigravityError(`Unknown Antigravity model: ${config.model}`, "INVALID_MODEL"); - if (config.mode && !catalog.modes.some((mode) => mode.id === config.mode)) - throw new AntigravityError(`Unknown Antigravity mode: ${config.mode}`, "INVALID_MODE"); - if (config.thinkingOption) - throw new AntigravityError( - "Antigravity effort is selected through the model ID", - "UNSUPPORTED_THINKING", - ); -} diff --git a/plugins/antigravity-provider/server/internal/process.ts b/plugins/antigravity-provider/server/internal/process.ts deleted file mode 100644 index a1b2f1c7b8..0000000000 --- a/plugins/antigravity-provider/server/internal/process.ts +++ /dev/null @@ -1,224 +0,0 @@ -import { spawn, type ChildProcessWithoutNullStreams } from "node:child_process"; -import { signalProcess } from "./signals.js"; -import { createInterface } from "node:readline"; -import type { ProviderLaunch, ProviderSessionConfig } from "@getpaseo/plugin/server/provider"; -import { - AntigravityError, - decodeFrame, - diagnostic, - encodePrompt, - type Frame, - type Init, -} from "./wire.js"; - -interface DriverOptions { - launch: ProviderLaunch; - config: ProviderSessionConfig; - conversationId: string | null; - onFrame(frame: Frame): void; - onExit(error: AntigravityError): void; -} - -export interface Driver { - ready: Promise; - selection: string; - prompt(text: string): Promise; - stop(reason: "interrupt" | "close"): Promise; -} - -export function selection(config: ProviderSessionConfig): string { - return JSON.stringify([config.model, config.mode]); -} - -function driverArgs(options: DriverOptions): string[] { - const { config, conversationId } = options; - const args = [ - ...options.launch.args, - "--input-format", - "stream-json", - "--output-format", - "stream-json", - "--add-dir", - config.cwd, - "--disable-slash-commands", - ]; - if (config.model) args.push("--model", config.model); - if (config.mode === "accept-edits" || config.mode === "plan") args.push("--mode", config.mode); - if (config.mode === "full-access") args.push("--dangerously-skip-permissions"); - if (conversationId) args.push("--conversation", conversationId); - return args; -} - -export function startDriver(options: DriverOptions): Driver { - const child = spawn(options.launch.command, driverArgs(options), { - cwd: options.config.cwd, - env: { ...options.launch.env, ...options.config.env }, - detached: process.platform !== "win32", - stdio: "pipe", - }); - const lines = createInterface({ input: child.stdout }); - let cleanup = Promise.resolve(); - let stderr = ""; - let state: "starting" | "ready" | "stopping" | "exited" = "starting"; - let resolveReady: (init: Init) => void; - let rejectReady: (error: Error) => void; - const ready = new Promise((resolve, reject) => { - resolveReady = resolve; - rejectReady = reject; - }); - let resolveExit: () => void; - const exited = new Promise((resolve) => { - resolveExit = resolve; - }); - const startupDeadline = setTimeout( - () => - fail( - new AntigravityError("Antigravity did not initialize within 30 seconds", "STARTUP_TIMEOUT"), - ), - 30_000, - ); - child.stderr.on("data", (chunk: Buffer) => { - stderr = (stderr + chunk.toString()).slice(-8192); - }); - child.stdin.on("error", (error: Error) => - fail(new AntigravityError(error.message, "STDIN_ERROR")), - ); - child.on("error", (error: Error) => fail(new AntigravityError(error.message, "SPAWN_ERROR"))); - child.on("close", (code, signal) => { - clearTimeout(startupDeadline); - lines.close(); - const error = new AntigravityError( - diagnostic(stderr.trim() || `Antigravity exited (${signal || code})`), - "PROCESS_EXIT", - ); - if (state === "starting") rejectReady(error); - if (state === "ready") options.onExit(error); - state = "exited"; - resolveExit(); - }); - lines.on("line", (line) => { - if (!line.trim() || state === "exited" || state === "stopping") return; - let decoded: Frame; - try { - decoded = decodeFrame(line); - } catch (error) { - const message = error instanceof Error ? error.message : String(error); - fail(new AntigravityError(`Invalid Antigravity output: ${message}`, "INVALID_FRAME")); - return; - } - if (state === "starting") { - if (decoded.event === "init") { - clearTimeout(startupDeadline); - state = "ready"; - resolveReady(decoded); - } else if (decoded.event === "result") { - fail(new AntigravityError(diagnostic(decoded.result.error), "STARTUP_ERROR")); - } - return; - } - options.onFrame(decoded); - }); - - function fail(failure: AntigravityError): void { - clearTimeout(startupDeadline); - if (state === "starting") rejectReady(failure); - if (state === "ready") options.onExit(failure); - if (state === "exited" || state === "stopping") return; - state = "stopping"; - cleanup = Promise.resolve(signalGroup(child, "SIGKILL")); - // The stop operation awaits cleanup and owns reporting its failure. - void cleanup.catch(() => undefined); - } - - return { - ready, - selection: selection(options.config), - prompt(text) { - if (state !== "ready") - return Promise.reject(new AntigravityError("Antigravity is not ready")); - return new Promise((resolve, reject) => { - child.stdin.write(encodePrompt(text), (error) => { - if (error) reject(error); - else resolve(); - }); - }); - }, - async stop(reason) { - if (process.platform === "win32") await cleanup; - if (state === "exited") return; - if (state === "starting") rejectReady(new AntigravityError("Antigravity startup canceled")); - clearTimeout(startupDeadline); - state = "stopping"; - if (process.platform === "win32") { - // Node signal emulation kills only the leader; taskkill must see the live tree. - cleanup = Promise.resolve(signalGroup(child, "SIGKILL")); - await cleanup; - await exited; - return; - } - if (reason === "close") child.stdin.end(); - else signalGroup(child, "SIGINT"); - const terminate = setTimeout(() => signalGroup(child, "SIGTERM"), 1000); - const kill = setTimeout(() => signalGroup(child, "SIGKILL"), 2000); - await exited; - clearTimeout(terminate); - clearTimeout(kill); - // A tool can keep running after its CLI leader exits. - signalGroup(child, "SIGKILL"); - }, - }; -} - -function signalGroup( - child: ChildProcessWithoutNullStreams, - signal: NodeJS.Signals, -): void | Promise { - if (!child.pid) return; - return signalProcess({ platform: process.platform, pid: child.pid, signal }); -} - -interface ProbeOptions { - launch: ProviderLaunch; - args: string[]; - cwd?: string; -} -export function probe(options: ProbeOptions): Promise { - return new Promise((resolve, reject) => { - const child = spawn(options.launch.command, [...options.launch.args, ...options.args], { - env: options.launch.env, - cwd: options.cwd, - stdio: "pipe", - detached: process.platform !== "win32", - }); - let stdout = ""; - let stderr = ""; - const deadline = setTimeout(() => { - const termination = Promise.resolve(signalGroup(child, "SIGKILL")); - void termination.then(() => { - reject(new AntigravityError("Antigravity discovery timed out", "PROBE_TIMEOUT")); - return undefined; - }, reject); - }, 10_000); - child.stdout.on("data", (chunk: Buffer) => { - stdout += chunk.toString(); - }); - child.stderr.on("data", (chunk: Buffer) => { - stderr = (stderr + chunk.toString()).slice(-8192); - }); - child.on("error", (error: Error) => { - clearTimeout(deadline); - reject(new AntigravityError(error.message, "SPAWN_ERROR")); - }); - child.on("close", (code) => { - clearTimeout(deadline); - if (code === 0) resolve(stdout); - else - reject( - new AntigravityError( - diagnostic(stderr.trim() || `agy exited with code ${code}`), - "PROBE_ERROR", - ), - ); - }); - }); -} diff --git a/plugins/antigravity-provider/server/internal/prompt.ts b/plugins/antigravity-provider/server/internal/prompt.ts deleted file mode 100644 index 07f4298b35..0000000000 --- a/plugins/antigravity-provider/server/internal/prompt.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { randomUUID } from "node:crypto"; -import { chmod, mkdtemp, rm, writeFile } from "node:fs/promises"; -import os from "node:os"; -import path from "node:path"; -import type { ProviderPrompt } from "@getpaseo/plugin/server/provider"; -import { AntigravityError } from "./wire.js"; - -interface EncodedPrompt { - text: string; - nativeText: string; -} - -export class PromptFiles { - private directory: string | null = null; - - async encode(prompt: ProviderPrompt): Promise { - if ( - prompt.input.type !== "message" || - prompt.delivery === "steer" || - prompt.outputSchema !== undefined - ) - throw new AntigravityError("Antigravity supports messages only"); - const parts = prompt.input.content.map((part) => { - if (part.type === "text") return part; - if (part.type === "image") return { ...part, extension: imageExtension(part.mimeType) }; - throw new AntigravityError("Antigravity supports text and image content only"); - }); - const text: string[] = []; - const native: string[] = []; - for (const part of parts) { - if (part.type === "text") { - text.push(part.text); - native.push(part.text); - } else if (part.type === "image") { - const extension = part.extension; - if (this.directory === null) { - this.directory = await mkdtemp(path.join(os.tmpdir(), "paseo-antigravity-images-")); - await chmod(this.directory, 0o700); - } - const file = path.join(this.directory, `${randomUUID()}.${extension}`); - await writeFile(file, Buffer.from(part.data, "base64"), { flag: "wx", mode: 0o600 }); - await chmod(file, 0o600); - native.push(`Attached image: ${file}`); - } - } - return { text: text.join("\n"), nativeText: native.join("\n") }; - } - - async close(): Promise { - if (this.directory !== null) { - await rm(this.directory, { recursive: true, force: true }); - this.directory = null; - } - } -} - -function imageExtension(mimeType: string): string { - const match = /^image\/([a-z0-9][a-z0-9.+-]*)$/i.exec(mimeType); - if (!match) throw new AntigravityError(`Expected an image MIME type, received ${mimeType}`); - const subtype = match[1].toLowerCase(); - if (subtype === "jpeg") return "jpg"; - if (subtype === "svg+xml") return "svg"; - return subtype; -} diff --git a/plugins/antigravity-provider/server/internal/session.ts b/plugins/antigravity-provider/server/internal/session.ts deleted file mode 100644 index 7121b516b5..0000000000 --- a/plugins/antigravity-provider/server/internal/session.ts +++ /dev/null @@ -1,382 +0,0 @@ -import { randomUUID } from "node:crypto"; -import { z } from "zod"; -import type { - ProviderCatalog, - ProviderConfigChanges, - ProviderEvent, - ProviderPersistence, - ProviderPrompt, - ProviderSessionConfig, - ProviderLaunch, - ProviderTimelineItem, - ProviderUsage, -} from "@getpaseo/plugin/server/provider"; -import { startDriver, selection, type Driver } from "./process.js"; -import { validateSelection } from "./catalog.js"; -import { PromptFiles } from "./prompt.js"; -import { toolItem } from "./timeline.js"; -import { AntigravityError, diagnostic, type Frame, type Step } from "./wire.js"; - -const persistenceSchema = z - .object({ version: z.literal(1), data: z.object({ conversationId: z.string().min(1) }).strict() }) - .strict(); -interface Turn { - id: string; - text: Map; - usageSteps: Set; - tools: Map>; - usage: Required>; -} -type State = - | { type: "dormant" } - | { type: "starting"; driver: Driver } - | { type: "idle"; driver: Driver } - | { type: "running"; driver: Driver; turn: Turn } - | { type: "stopping"; driver: Driver } - | { type: "closed" }; -interface SessionOptions { - id: string; - config: ProviderSessionConfig; - launch: ProviderLaunch; - catalog(): ProviderCatalog; - persistence?: ProviderPersistence; - emit(event: ProviderEvent): void; -} - -export class Session { - private state: State = { type: "dormant" }; - private config: ProviderSessionConfig; - private conversationId: string | null; - private firstMessage: boolean; - private readonly promptFiles = new PromptFiles(); - private readonly reportedDenials = new Map(); - - constructor(private readonly options: SessionOptions) { - this.config = options.config; - this.conversationId = options.persistence - ? persistenceSchema.parse(options.persistence).data.conversationId - : null; - this.firstMessage = this.conversationId === null; - validateSelection(this.config, options.catalog()); - } - - async open(requestId: string, capabilities: readonly string[]): Promise { - await this.ensureDriver(); - this.emit({ - type: "session.opened", - requestId, - sessionId: this.options.id, - capabilities, - restoration: "core", - persistence: this.config.persist ? this.persistence() : undefined, - cwd: this.config.cwd, - title: this.config.title, - }); - this.publishConfig(); - this.emit({ type: "session.commands", sessionId: this.options.id, commands: [] }); - this.emit({ type: "session.ready", requestId, sessionId: this.options.id }); - } - - async prompt(prompt: ProviderPrompt): Promise { - if (this.state.type === "running") - throw new AntigravityError( - "Antigravity already has an active turn; wait for it to finish", - "TURN_ACTIVE", - ); - const { text, nativeText } = await this.promptFiles.encode(prompt); - await this.ensureDriver(); - if (this.state.type !== "idle") throw new AntigravityError("Antigravity session is not ready"); - const driver = this.state.driver; - const turn: Turn = { - id: randomUUID(), - text: new Map(), - usageSteps: new Set(), - tools: new Map(), - usage: { inputTokens: 0, outputTokens: 0, cachedInputTokens: 0 }, - }; - this.state = { type: "running", driver, turn }; - this.emit({ - type: "session.prompt_result", - sessionId: this.options.id, - clientMessageId: prompt.clientMessageId, - result: { type: "turn", turnId: turn.id }, - }); - this.emit({ - type: "session.turn", - sessionId: this.options.id, - turnId: turn.id, - state: "started", - }); - this.item({ - type: "user_message", - id: prompt.clientMessageId, - clientMessageId: prompt.clientMessageId, - text, - }); - const driverText = - this.firstMessage && this.config.systemPrompt - ? `${this.config.systemPrompt}\n\n${nativeText}` - : nativeText; - try { - await driver.prompt(driverText); - this.firstMessage = false; - } catch (error) { - if (!(error instanceof Error)) throw error; - this.failTurn(new AntigravityError(error.message)); - await driver.stop("interrupt"); - } - } - - configure(changes: ProviderConfigChanges): void { - const config = { - ...this.config, - model: changes.model === null ? undefined : (changes.model ?? this.config.model), - mode: changes.mode === null ? undefined : (changes.mode ?? this.config.mode), - thinkingOption: - changes.thinkingOption === null - ? undefined - : (changes.thinkingOption ?? this.config.thinkingOption), - }; - if (changes.settings && Object.keys(changes.settings).length > 0) - throw new AntigravityError("Antigravity has no configurable settings"); - validateSelection(config, this.options.catalog()); - this.config = config; - this.publishConfig(); - } - - async interrupt(): Promise { - if (this.state.type !== "running") return; - const { driver, turn } = this.state; - this.state = { type: "stopping", driver }; - await driver.stop("interrupt"); - this.finishTools(turn, "canceled"); - this.emit({ - type: "session.turn", - sessionId: this.options.id, - turnId: turn.id, - state: "canceled", - }); - this.state = { type: "dormant" }; - } - - async close(): Promise { - const state = this.state; - this.state = { type: "closed" }; - try { - if (state.type !== "dormant" && state.type !== "closed") await state.driver.stop("close"); - } finally { - await this.promptFiles.close(); - } - if (state.type === "running") { - this.finishTools(state.turn, "canceled"); - this.emit({ - type: "session.turn", - sessionId: this.options.id, - turnId: state.turn.id, - state: "canceled", - }); - } - } - - private async ensureDriver(): Promise { - if (this.state.type === "closed") throw new AntigravityError("Antigravity session is closed"); - if (this.state.type === "stopping") { - await this.state.driver.stop("interrupt"); - this.state = { type: "dormant" }; - } - if (this.state.type === "idle" && this.state.driver.selection !== selection(this.config)) { - const driver = this.state.driver; - this.state = { type: "stopping", driver }; - await driver.stop("close"); - this.state = { type: "dormant" }; - } - if (this.state.type !== "dormant") return; - this.reportedDenials.clear(); - const driver = startDriver({ - launch: this.options.launch, - config: this.config, - conversationId: this.conversationId, - onFrame: (frame) => this.accept(frame), - onExit: (error) => this.failTurn(error), - }); - this.state = { type: "starting", driver }; - try { - const init = await driver.ready; - if (this.conversationId !== null && init.conversation_id !== this.conversationId) - throw new AntigravityError( - "Antigravity restored a different conversation", - "INVALID_RESUME", - ); - this.conversationId = init.conversation_id; - this.state = { type: "idle", driver }; - if (this.config.persist) - this.emit({ - type: "session.persistence", - sessionId: this.options.id, - persistence: this.persistence(), - }); - } catch (error) { - this.state = { type: "dormant" }; - await driver.stop("interrupt"); - throw error; - } - } - - private accept(frame: Frame): void { - if (this.state.type !== "running") return; - const { turn, driver } = this.state; - if (frame.event === "step_update") { - this.acceptStep(frame.step_update, turn); - return; - } - if (frame.event !== "result") return; - const result = frame.result; - const denied = takeNewDenials(result.denied_actions, this.reportedDenials); - if (denied.length > 0) { - this.emit({ - type: "session.notice", - sessionId: this.options.id, - notice: { - id: `${turn.id}:denied`, - severity: "warning", - title: denialNoticeTitle(denied), - description: "Switch to Full access to allow shell commands.", - }, - }); - } - if (result.status === "ERROR") { - const canceled = result.error === "interrupted"; - this.finishTools(turn, canceled ? "canceled" : "failed"); - this.retire(driver); - this.emit({ - type: "session.turn", - sessionId: this.options.id, - turnId: turn.id, - state: canceled ? "canceled" : "failed", - error: { message: diagnostic(result.error) }, - }); - } else { - this.finishTools(turn, "completed"); - this.state = { type: "idle", driver }; - this.emit({ - type: "session.turn", - sessionId: this.options.id, - turnId: turn.id, - state: "completed", - }); - } - } - - private acceptStep(step: Step, turn: Turn): void { - const id = `${turn.id}:${step.step_index}`; - if (step.step_type === "agent_response") { - const previous = turn.text.get(step.step_index) || ""; - const text = previous + step.text_delta; - turn.text.set(step.step_index, text); - if (step.text_delta) this.item({ type: "assistant_message", id, messageId: id, text }); - if (step.state === "DONE" && step.usage && !turn.usageSteps.has(step.step_index)) { - turn.usageSteps.add(step.step_index); - turn.usage.inputTokens += step.usage.input_tokens; - turn.usage.outputTokens += step.usage.output_tokens; - turn.usage.cachedInputTokens += step.usage.cache_read_tokens; - this.emit({ - type: "session.usage", - sessionId: this.options.id, - turnId: turn.id, - usage: { ...turn.usage }, - }); - } - } else if (step.step_type === "tool" || step.step_type === "subagent") { - const item = toolItem(step, id); - turn.tools.set(id, item); - this.item(item); - } - } - - private failTurn(error: AntigravityError): void { - const state = this.state; - if (state.type !== "running" && state.type !== "idle") return; - this.retire(state.driver); - if (state.type === "running") { - this.finishTools(state.turn, "failed"); - this.emit({ - type: "session.turn", - sessionId: this.options.id, - turnId: state.turn.id, - state: "failed", - error: { message: error.message, code: error.code }, - }); - } else - this.emit({ - type: "session.runtime_failed", - sessionId: this.options.id, - error: { message: error.message, code: error.code }, - }); - } - - private retire(driver: Driver): void { - this.state = { type: "stopping", driver }; - void driver.stop("interrupt").then(() => { - if (this.state.type === "stopping" && this.state.driver === driver) - this.state = { type: "dormant" }; - return undefined; - }); - } - - private finishTools(turn: Turn, status: "completed" | "failed" | "canceled"): void { - for (const item of turn.tools.values()) { - if (item.status !== "running") continue; - if (status === "failed") this.item({ ...item, status, error: "Antigravity turn failed" }); - else this.item({ ...item, status, error: null }); - } - } - - private persistence(): ProviderPersistence { - if (this.conversationId === null) throw new AntigravityError("Antigravity has no conversation"); - return { version: 1, data: { conversationId: this.conversationId } }; - } - - private publishConfig(): void { - this.emit({ - type: "session.config", - sessionId: this.options.id, - config: { - model: this.config.model, - mode: this.config.mode || "default", - models: this.options.catalog().models, - modes: this.options.catalog().modes, - thinkingOptions: [], - settings: [], - }, - }); - } - private item(item: ProviderTimelineItem): void { - this.emit({ type: "timeline.item", sessionId: this.options.id, item }); - } - private emit(event: ProviderEvent): void { - this.options.emit(event); - } -} - -// Native results contain every denial since this driver started, including repeated actions. -function takeNewDenials( - actions: Extract["result"]["denied_actions"], - reported: Map, -) { - const counts = new Map(); - const fresh = actions.filter((action) => { - const key = JSON.stringify([action.action, action.display_name]); - const count = (counts.get(key) ?? 0) + 1; - counts.set(key, count); - return count > (reported.get(key) ?? 0); - }); - for (const [key, count] of counts) reported.set(key, Math.max(count, reported.get(key) ?? 0)); - return fresh; -} - -function denialNoticeTitle( - actions: Extract["result"]["denied_actions"], -): string { - if (actions.length > 1) return `${actions.length} actions denied`; - return actions[0].action === "command" ? "Shell command denied" : "Action denied"; -} diff --git a/plugins/antigravity-provider/server/internal/signals.ts b/plugins/antigravity-provider/server/internal/signals.ts deleted file mode 100644 index be34ecc8c9..0000000000 --- a/plugins/antigravity-provider/server/internal/signals.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { execFile } from "node:child_process"; -import { promisify } from "node:util"; - -interface SignalOptions { - platform: NodeJS.Platform; - pid: number; - signal: NodeJS.Signals; -} - -type SignalPlan = - | { type: "group"; pid: number; signal: NodeJS.Signals } - | { type: "tree"; command: "taskkill"; args: string[] }; - -const executeFile = promisify(execFile); - -export function signalPlan(options: SignalOptions): SignalPlan { - if (options.platform === "win32") { - return { type: "tree", command: "taskkill", args: ["/PID", String(options.pid), "/T", "/F"] }; - } - return { type: "group", pid: -options.pid, signal: options.signal }; -} - -export function signalProcess(options: SignalOptions): void | Promise { - const plan = signalPlan(options); - if (plan.type === "tree") return killTree(plan); - try { - process.kill(plan.pid, plan.signal); - } catch (error) { - if (!(error instanceof Error && "code" in error && error.code === "ESRCH")) throw error; - } -} - -async function killTree(plan: Extract): Promise { - try { - await executeFile(plan.command, plan.args, { windowsHide: true }); - } catch (error) { - // taskkill reports an already-exited PID with exit code 128. - if (!(error instanceof Error && "code" in error && error.code === 128)) throw error; - } -} diff --git a/plugins/antigravity-provider/server/internal/timeline.ts b/plugins/antigravity-provider/server/internal/timeline.ts deleted file mode 100644 index 22cc81c643..0000000000 --- a/plugins/antigravity-provider/server/internal/timeline.ts +++ /dev/null @@ -1,55 +0,0 @@ -import type { - ProviderTimelineItem, - ProviderToolCallDetail, -} from "@getpaseo/plugin/server/provider"; -import type { Step } from "./wire.js"; - -export function toolItem( - step: Step, - id: string, -): Extract { - const detail = toolDetail(step); - const name = step.tool_name || "Antigravity tool"; - const metadata = step.subagent_info ? { subagents: step.subagent_info.subagents } : undefined; - const base = { type: "tool_call" as const, id, callId: id, name, detail, metadata }; - if (step.state === "ERROR") { - const error = - step.tool_info && step.tool_info.error - ? step.tool_info.error.message - : "Antigravity tool failed"; - return { ...base, status: "failed", error }; - } - const status = step.state === "ACTIVE" ? "running" : "completed"; - return { ...base, status, error: null }; -} - -function toolDetail(step: Step): ProviderToolCallDetail { - if (step.subagent_info) { - const child = step.subagent_info.subagents[0]; - if (child) - return { - type: "sub_agent", - subAgentType: child.type_name, - description: child.initial_prompt, - childSessionId: child.conversation_id === null ? undefined : child.conversation_id, - log: child.log_uri, - }; - } - const info = step.tool_info; - if (!info) return { type: "plain_text", label: step.tool_name, text: "" }; - const path = info.parameters.AbsolutePath || info.parameters.TargetFile; - if (info.name === "run_command" && typeof info.parameters.CommandLine === "string") { - return { type: "shell", command: info.parameters.CommandLine, output: info.output }; - } - if (info.name === "view_file" && typeof path === "string") - return { type: "read", filePath: path, content: info.output }; - if (info.name === "write_to_file" && typeof path === "string") - return { type: "write", filePath: path }; - if ( - (info.name === "replace_file_content" || info.name === "multi_replace_file_content") && - typeof path === "string" - ) - return { type: "edit", filePath: path }; - // Native frames summarize writes; they do not carry the file contents or diff. - return { type: "unknown", input: info.parameters, output: info.error || info.output }; -} diff --git a/plugins/antigravity-provider/server/internal/wire.ts b/plugins/antigravity-provider/server/internal/wire.ts deleted file mode 100644 index eef417c83c..0000000000 --- a/plugins/antigravity-provider/server/internal/wire.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { z } from "zod"; - -const usage = z.object({ - input_tokens: z.number().nonnegative(), - output_tokens: z.number().nonnegative(), - cache_read_tokens: z.number().nonnegative().default(0), -}); -const tool = z.object({ - name: z.string(), - parameters: z.record(z.string(), z.json()).default({}), - output: z.string().default(""), - error: z.object({ type: z.string(), message: z.string() }).nullable().default(null), -}); -const child = z.object({ - type_name: z.string(), - role: z.string().default(""), - initial_prompt: z.string().default(""), - conversation_id: z.string().nullable().default(null), - log_uri: z.string().default(""), - workspace_uris: z.array(z.string()).default([]), -}); -const frame = z.discriminatedUnion("event", [ - z.object({ - event: z.literal("init"), - conversation_id: z.string().min(1), - init: z.object({ model: z.string().nullable().default(null) }), - }), - z.object({ - event: z.literal("step_update"), - step_update: z.object({ - conversation_id: z.string(), - step_index: z.number().int().nonnegative(), - state: z.enum(["ACTIVE", "DONE", "ERROR"]), - step_type: z.string(), - text_delta: z.string().default(""), - tool_name: z.string().default(""), - tool_info: tool.nullable().default(null), - subagent_info: z - .object({ subagents: z.array(child) }) - .nullable() - .default(null), - usage: usage.nullable().default(null), - }), - }), - z.object({ - event: z.literal("result"), - result: z.object({ - conversation_id: z.string(), - status: z.enum(["SUCCESS", "ERROR"]), - response: z.string().default(""), - error: z.string().default("Antigravity turn failed"), - denied_actions: z - .array(z.object({ action: z.string(), display_name: z.string() })) - .default([]), - }), - }), -]); -export type Frame = z.infer; -export type Step = Extract["step_update"]; -export type Init = Extract; - -export function decodeFrame(line: string): Frame { - return frame.parse(JSON.parse(line)); -} - -export function encodePrompt(text: string): string { - return `${JSON.stringify({ event: "user", message: { content: text } })}\n`; -} - -export class AntigravityError extends Error { - constructor( - message: string, - readonly code = "ANTIGRAVITY_ERROR", - ) { - super(message); - this.name = "AntigravityError"; - } -} - -export function diagnostic(message: string): string { - if (/auth|sign.in|log.in/i.test(message)) { - return "Antigravity authentication failed. Run `agy` and sign in, then retry."; - } - return message; -} diff --git a/plugins/antigravity-provider/server/provider.test.ts b/plugins/antigravity-provider/server/provider.test.ts deleted file mode 100644 index b9a478c7c6..0000000000 --- a/plugins/antigravity-provider/server/provider.test.ts +++ /dev/null @@ -1,717 +0,0 @@ -import { mkdtemp, readFile, rm, stat } from "node:fs/promises"; -import os from "node:os"; -import path from "node:path"; -import { fileURLToPath } from "node:url"; -import { afterEach, describe, expect, it } from "vitest"; -import { - PROVIDER_CAPABILITIES, - ProviderEventSchema, - type ProviderConnection, - type ProviderContent, - type ProviderEvent, - type ProviderInput, - type ProviderLaunch, - type ProviderPersistence, -} from "@getpaseo/plugin/server/provider"; -import { signalPlan } from "./internal/signals.js"; -import { createAntigravityProvider } from "./provider.js"; - -const temporary: string[] = []; -const connections: ProviderConnection[] = []; -const fake = fileURLToPath(new URL("../test/agy.mjs", import.meta.url)); -const provider = createAntigravityProvider(); - -it("publishes a monochrome, theme-aware provider icon", async () => { - const icon = await readFile(new URL("../icon.svg", import.meta.url), "utf8"); - expect(icon).toContain('viewBox="0 0 24 24"'); - expect(icon).toContain('fill="currentColor"'); - expect(icon).not.toMatch(/#[\da-f]{3,8}\b|rgba?\(|hsla?\(|url\(/i); - expect(icon).not.toMatch(/<(?:style|mask|defs|linearGradient|radialGradient)\b|\bid=/i); - expect([...icon.matchAll(/\b(?:fill|stroke)="([^"]+)"/g)].map((match) => match[1])).toEqual([ - "currentColor", - ]); -}); - -afterEach(async () => { - await Promise.all(connections.splice(0).map((connection) => connection.close())); - await Promise.all( - temporary.splice(0).map((directory) => rm(directory, { recursive: true, force: true })), - ); -}); - -async function harness(env: Record = {}) { - const cwd = await mkdtemp(path.join(os.tmpdir(), "antigravity-test-")); - temporary.push(cwd); - const log = path.join(cwd, "argv.ndjson"); - const launch: ProviderLaunch = { - command: process.execPath, - args: [fake, "--launch-prefix"], - env: { AGY_TEST_LOG: log, ...env }, - }; - const connection = await provider.connect({ - versions: [1], - capabilities: PROVIDER_CAPABILITIES, - launch, - }); - connections.push(connection); - const events: ProviderEvent[] = []; - connection.onEvent((event) => { - ProviderEventSchema.parse(event); - events.push(event); - }); - async function wait(predicate: (event: ProviderEvent) => boolean) { - await expect.poll(() => events.some(predicate), { timeout: 5000, interval: 10 }).toBe(true); - const event = events.find(predicate); - if (!event) throw new Error("Expected event missing"); - return event; - } - async function request(input: ProviderInput) { - await connection.send(input); - if ("requestId" in input) - await wait( - (event) => - "requestId" in event && - event.requestId === input.requestId && - (event.type === "request.completed" || - event.type === "request.failed" || - event.type === "session.ready" || - event.type === "catalog"), - ); - } - async function open(restored?: ProviderPersistence, sessionId = "s") { - await request({ - type: "session.open", - requestId: `open-${events.length}`, - sessionId, - persistence: restored, - history: "replay", - config: { - cwd, - env: { AGY_SESSION_VALUE: "session-overlay" }, - settings: {}, - mcpServers: {}, - persist: true, - systemPrompt: "SYSTEM PREFIX", - }, - }); - } - async function message(content: ProviderContent[], sessionId = "s") { - const clientMessageId = `prompt-${events.length}`; - await connection.send({ - type: "session.prompt", - sessionId, - prompt: { - clientMessageId, - delivery: "auto", - input: { type: "message", content }, - }, - }); - await wait( - (event) => - event.type === "session.prompt_result" && event.clientMessageId === clientMessageId, - ); - return clientMessageId; - } - function prompt(text: string) { - return message([{ type: "text", text }]); - } - async function completed(clientMessageId: string) { - const result = events.find( - (event) => - event.type === "session.prompt_result" && event.clientMessageId === clientMessageId, - ); - if (!result || result.type !== "session.prompt_result" || result.result.type !== "turn") - throw new Error("Prompt was not admitted"); - const turnId = result.result.turnId; - return wait( - (event) => - event.type === "session.turn" && event.turnId === turnId && event.state !== "started", - ); - } - async function records() { - return (await readFile(log, "utf8")) - .trim() - .split("\n") - .map((line) => JSON.parse(line)); - } - function persistence() { - const opened = events.find((event) => event.type === "session.opened"); - if (!opened || opened.type !== "session.opened" || !opened.persistence) - throw new Error("Missing persistence"); - return opened.persistence; - } - return { - connection, - events, - launch, - cwd, - wait, - request, - open, - prompt, - message, - completed, - records, - persistence, - }; -} - -it("streams complete text snapshots, prefixes the system prompt only once and preserves launch argv/env", async () => { - const h = await harness(); - expect(h.connection.capabilities).toEqual([ - "prompt.message", - "prompt.image", - "session.configure", - "session.persistence", - ]); - await h.open(); - await h.completed(await h.prompt("HELLO")); - await h.completed(await h.prompt("HELLO AGAIN")); - const text = h.events.filter( - (event) => event.type === "timeline.item" && event.item.type === "assistant_message", - ); - expect( - text.map((event) => - event.type === "timeline.item" && event.item.type === "assistant_message" - ? event.item.text - : "", - ), - ).toEqual(["PHASE0_HELLO", "PHASE0_HELLO\n", "PHASE0_HELLO", "PHASE0_HELLO\n"]); - const records = await h.records(); - expect(records.find((entry) => entry.args.includes("--input-format")).args).toEqual([ - "--launch-prefix", - "--input-format", - "stream-json", - "--output-format", - "stream-json", - "--add-dir", - h.cwd, - "--disable-slash-commands", - ]); - expect(records.find((entry) => entry.args.includes("--input-format")).env).toBe( - "session-overlay", - ); - expect( - records.filter((entry) => entry.input).map((entry) => entry.input.message.content), - ).toEqual(["SYSTEM PREFIX\n\nHELLO", "HELLO AGAIN"]); -}); - -it("maps tools and emits one denial notice for a SUCCESS result", async () => { - const h = await harness(); - await h.open(); - // This capture contains three distinct native results, one for each submitted prompt. - await h.completed(await h.prompt("TOOLS")); - await h.completed(await h.prompt("TOOLS")); - const result = await h.completed(await h.prompt("TOOLS")); - expect(result).toMatchObject({ type: "session.turn", state: "completed" }); - const tools = h.events.filter( - (event) => event.type === "timeline.item" && event.item.type === "tool_call", - ); - expect(tools).toEqual( - expect.arrayContaining([ - expect.objectContaining({ - item: expect.objectContaining({ - name: "view_file", - status: "completed", - detail: expect.objectContaining({ type: "read" }), - }), - }), - expect.objectContaining({ - item: expect.objectContaining({ - name: "write_to_file", - status: "completed", - detail: expect.objectContaining({ type: "write" }), - }), - }), - expect.objectContaining({ - item: expect.objectContaining({ - name: "run_command", - status: "failed", - detail: expect.objectContaining({ type: "shell", command: "printf PHASE0_SHELL" }), - }), - }), - ]), - ); - const notices = h.events.filter((event) => event.type === "session.notice"); - expect(notices).toHaveLength(1); - expect(notices[0]).toMatchObject({ - notice: { - title: "Shell command denied", - description: "Switch to Full access to allow shell commands.", - }, - }); -}); - -it("reports only new process denials across replayed turns and resets after respawn", async () => { - const h = await harness(); - await h.open(); - await h.completed(await h.prompt("DENIAL_REPLAY")); - expect(h.events.filter((event) => event.type === "session.notice")).toHaveLength(1); - const followupStart = h.events.length; - await h.completed(await h.prompt("DENIAL_REPLAY")); - const followup = h.events.slice(followupStart); - expect(followup.some((event) => event.type === "session.notice")).toBe(false); - expect(followup).toContainEqual( - expect.objectContaining({ - type: "timeline.item", - item: expect.objectContaining({ type: "assistant_message", text: "FOLLOWUP_OK\n" }), - }), - ); - await h.request({ - type: "session.configure", - sessionId: "s", - requestId: "mode", - changes: { mode: "plan" }, - }); - await h.completed(await h.prompt("DENIAL_REPLAY")); - expect(h.events.filter((event) => event.type === "session.notice")).toHaveLength(2); - expect( - (await h.records()).filter((entry) => entry.args?.includes("--input-format")), - ).toHaveLength(2); -}); - -it("counts repeated native action denials without exposing tool identifiers", async () => { - const h = await harness({ AGY_TEST_DENIAL_COUNTS: "2,2,3" }); - await h.open(); - await h.completed(await h.prompt("DENIAL_REPLAY")); - await h.completed(await h.prompt("DENIAL_REPLAY")); - const notices = h.events.filter((event) => event.type === "session.notice"); - expect(notices).toHaveLength(1); - expect(notices[0]).toMatchObject({ - notice: { - title: "2 actions denied", - description: "Switch to Full access to allow shell commands.", - }, - }); - await h.completed(await h.prompt("DENIAL_REPLAY")); - expect(h.events.filter((event) => event.type === "session.notice")).toHaveLength(2); - expect(h.events.findLast((event) => event.type === "session.notice")).toMatchObject({ - notice: { title: "Shell command denied" }, - }); -}); - -it("accounts DONE generation usage once without adding cumulative results, including resume", async () => { - const h = await harness(); - await h.open(); - await h.completed(await h.prompt("MULTI")); - await h.completed(await h.prompt("MULTI")); - const usages = h.events.filter((event) => event.type === "session.usage"); - expect( - usages.map((event) => (event.type === "session.usage" ? event.usage.inputTokens : null)), - ).toEqual([11263, 11604]); - const persistence = h.persistence(); - await h.request({ type: "session.close", sessionId: "s", requestId: "close" }); - await h.open(persistence); - await h.completed(await h.prompt("RESUME")); - expect(h.events.filter((event) => event.type === "session.usage")).toHaveLength(3); - expect(h.events.findLast((event) => event.type === "session.usage")).toMatchObject({ - usage: { inputTokens: 11815 }, - }); -}); - -it("maps subagent steps to a tool carrying the child conversation ID", async () => { - const h = await harness(); - await h.open(); - await h.completed(await h.prompt("SUBAGENT")); - expect(h.events).toEqual( - expect.arrayContaining([ - expect.objectContaining({ - type: "timeline.item", - item: expect.objectContaining({ - name: "invoke_subagent", - status: "completed", - detail: expect.objectContaining({ - type: "sub_agent", - childSessionId: "b6f02329-7415-49a7-a9a9-1cd09e898d26", - }), - }), - }), - ]), - ); -}); - -it.each(["HANG", "TOOL_HANG"])( - "interrupts %s, settles canceled, and respawns the same conversation", - async (text) => { - const h = await harness(); - await h.open(); - const message = await h.prompt(text); - await h.wait( - (event) => - event.type === "timeline.item" && - (event.item.type === "assistant_message" || event.item.type === "tool_call"), - ); - await h.request({ type: "session.interrupt", requestId: "interrupt", sessionId: "s" }); - expect(await h.completed(message)).toMatchObject({ state: "canceled" }); - await h.completed(await h.prompt("HELLO")); - const records = await h.records(); - const launches = records.filter((entry) => entry.args && entry.args.includes("--input-format")); - expect(launches).toHaveLength(2); - expect(launches[1].args.slice(-2)).toEqual([ - "--conversation", - "e5cf1e2d-c715-4328-8e67-4a85c8dc3cda", - ]); - // Windows taskkill terminates the tree without invoking the CLI's signal handlers. - expect(records.filter((entry) => entry.signal)).toEqual( - process.platform === "win32" ? [] : [{ signal: "SIGINT" }], - ); - const canceled = h.events.filter( - (event) => event.type === "session.turn" && event.state === "canceled", - ); - expect(canceled).toHaveLength(1); - }, -); - -it("stops an unresponsive driver and still respawns the conversation", async () => { - const h = await harness({ AGY_TEST_IGNORE_SIGNALS: "yes" }); - await h.open(); - const message = await h.prompt("HANG"); - await h.wait( - (event) => event.type === "timeline.item" && event.item.type === "assistant_message", - ); - await h.request({ type: "session.interrupt", requestId: "interrupt-timeout", sessionId: "s" }); - expect(await h.completed(message)).toMatchObject({ state: "canceled" }); - expect((await h.records()).filter((entry) => entry.signal)).toEqual( - process.platform === "win32" ? [] : [{ signal: "SIGINT" }, { signal: "SIGTERM" }], - ); - await h.completed(await h.prompt("HELLO")); -}); - -it.each(["accept-edits", "plan"])( - "launches native %s mode without claiming read-only access", - async (mode) => { - const h = await harness(); - await h.open(); - await h.request({ - type: "session.configure", - requestId: "mode", - sessionId: "s", - changes: { mode }, - }); - await h.completed(await h.prompt("HELLO")); - const launches = (await h.records()).filter( - (entry) => entry.args && entry.args.includes("--input-format"), - ); - expect(launches[1].args).toContain("--mode"); - expect(launches[1].args[launches[1].args.indexOf("--mode") + 1]).toBe(mode); - }, -); - -it("defers model and mode changes until the next prompt, then respawns with validated flags", async () => { - const h = await harness(); - await h.open(); - await h.request({ - type: "session.configure", - requestId: "change", - sessionId: "s", - changes: { model: "gemini-3.8-flash-low", mode: "full-access" }, - }); - expect( - (await h.records()).filter((entry) => entry.args && entry.args.includes("--input-format")), - ).toHaveLength(1); - await h.completed(await h.prompt("HELLO")); - const launches = (await h.records()).filter( - (entry) => entry.args && entry.args.includes("--input-format"), - ); - expect(launches).toHaveLength(2); - expect(launches[1].args.slice(-5)).toEqual([ - "--model", - "gemini-3.8-flash-low", - "--dangerously-skip-permissions", - "--conversation", - "e5cf1e2d-c715-4328-8e67-4a85c8dc3cda", - ]); - await h.request({ - type: "session.configure", - requestId: "invalid", - sessionId: "s", - changes: { model: "unknown" }, - }); - expect(h.events).toContainEqual( - expect.objectContaining({ - type: "request.failed", - requestId: "invalid", - error: expect.objectContaining({ code: "INVALID_MODEL" }), - }), - ); -}); - -it("resumes after connection close without replay or another system prefix", async () => { - const first = await harness(); - await first.open(); - await first.completed(await first.prompt("HELLO")); - const persistence = first.persistence(); - await first.connection.close(); - const second = await harness(); - await second.open(persistence); - expect(second.events.filter((event) => event.type === "timeline.item")).toEqual([]); - await second.completed(await second.prompt("RESUME")); - expect( - (await second.records()) - .filter((entry) => entry.input) - .map((entry) => entry.input.message.content), - ).toEqual(["RESUME"]); -}); - -it.each(["auth", "exit", "stderr"])( - "reports startup %s without waiting for init forever", - async (startup) => { - const h = await harness({ AGY_TEST_STARTUP: startup }); - await h.open(); - expect(h.events.filter((event) => event.type === "session.ready")).toEqual([]); - const failure = h.events.find((event) => event.type === "request.failed"); - expect(failure).toMatchObject({ - type: "request.failed", - error: { - message: expect.stringMatching(startup === "exit" ? /exited/ : /Run `agy` and sign in/), - }, - }); - }, -); - -it("rejects mid-turn steering and reports a busy message without queueing a second native turn", async () => { - const h = await harness(); - await h.open(); - await h.prompt("HANG"); - const second = await h.prompt("SECOND"); - expect( - h.events.find( - (event) => event.type === "session.prompt_result" && event.clientMessageId === second, - ), - ).toMatchObject({ - type: "session.prompt_result", - result: { type: "failed", error: { code: "TURN_ACTIVE" } }, - }); - await expect( - h.connection.send({ - type: "session.prompt", - sessionId: "s", - prompt: { - clientMessageId: "steer", - delivery: "steer", - input: { type: "message", content: [{ type: "text", text: "x" }] }, - }, - }), - ).rejects.toThrow(/prompt.steer/); -}); - -describe("discovery", () => { - it("reuses one discovered catalog for two opens and configure, and refreshes explicit catalog requests", async () => { - const h = await harness(); - await h.open(); - await h.open(undefined, "second"); - await h.request({ - type: "session.configure", - requestId: "configure-cached", - sessionId: "second", - changes: { model: "gemini-3.8-flash-low" }, - }); - expect( - (await h.records()).filter((entry) => entry.args && entry.args.includes("models")), - ).toHaveLength(1); - await h.request({ type: "catalog", requestId: "refresh" }); - expect( - (await h.records()).filter((entry) => entry.args && entry.args.includes("models")), - ).toHaveLength(2); - }); - it.each(["1.1.15", "1.2.12", "1.2.13"])("accepts driver-capable version %s", async (version) => { - const h = await harness({ AGY_TEST_VERSION: version }); - expect(await provider.status?.({ launch: h.launch })).toEqual({ available: true }); - }); - - it("parses tab-separated catalog and exposes native permission choices without thinking options", async () => { - const h = await harness(); - await h.request({ type: "catalog", requestId: "catalog" }); - const event = h.events[0]; - expect(event).toMatchObject({ - type: "catalog", - catalog: { - models: expect.arrayContaining([ - { id: "gemini-3.8-flash-low", label: "Gemini 3.8 Flash (Low)" }, - ]), - thinkingOptions: [], - defaultMode: "default", - }, - }); - if (event.type !== "catalog") throw new Error("Missing catalog"); - expect(event.catalog.models).toHaveLength(11); - expect(event.catalog.modes.map((mode) => mode.label)).toEqual([ - "Default", - "Accept edits", - "Plan", - "Full access", - ]); - expect(event.catalog.modes.map((mode) => mode.id)).toEqual([ - "default", - "accept-edits", - "plan", - "full-access", - ]); - expect( - event.catalog.modes.map(({ id, icon, colorTier, isUnattended }) => ({ - id, - icon, - colorTier, - isUnattended, - })), - ).toEqual([ - { id: "default", icon: "Shield", colorTier: "moderate", isUnattended: undefined }, - { id: "accept-edits", icon: "ShieldPlus", colorTier: "moderate", isUnattended: undefined }, - { id: "plan", icon: "ShieldEllipsis", colorTier: "planning", isUnattended: undefined }, - { id: "full-access", icon: "ShieldOff", colorTier: "dangerous", isUnattended: true }, - ]); - }); - it("reports missing, old, unauthenticated and available launches", async () => { - expect(await provider.status?.({})).toMatchObject({ - available: false, - diagnostic: expect.stringContaining("agy not found"), - }); - const missing = await harness(); - expect( - await provider.status?.({ - launch: { ...missing.launch, command: path.join(missing.cwd, "missing-agy") }, - }), - ).toMatchObject({ available: false, diagnostic: expect.stringContaining("ENOENT") }); - const old = await harness({ AGY_TEST_VERSION: "1.1.14" }); - expect(await provider.status?.({ launch: old.launch })).toMatchObject({ - available: false, - diagnostic: expect.stringContaining("1.1.15"), - }); - const unauthenticated = await harness({ AGY_TEST_AUTH: "missing" }); - expect(await provider.status?.({ launch: unauthenticated.launch })).toEqual({ - available: false, - diagnostic: "Antigravity authentication failed. Run `agy` and sign in, then retry.", - }); - const authenticated = await harness(); - expect(await provider.status?.({ launch: authenticated.launch })).toEqual({ available: true }); - }); - it("keys catalog caching by the complete effective launch without exposing env values", async () => { - const h = await harness(); - const key = await provider.getCatalogCacheKey?.({ scope: "global", launch: h.launch }); - expect(key).toMatch(/^[a-f0-9]{64}$/); - expect( - await provider.getCatalogCacheKey?.({ - scope: "workspace", - cwd: h.cwd, - force: true, - launch: h.launch, - }), - ).toBe(key); - expect( - await provider.getCatalogCacheKey?.({ - scope: "global", - launch: { ...h.launch, args: [...h.launch.args, "changed"] }, - }), - ).not.toBe(key); - expect( - await provider.getCatalogCacheKey?.({ - scope: "global", - launch: { ...h.launch, env: { ...h.launch.env, HOME: "different" } }, - }), - ).not.toBe(key); - }); -}); - -describe("process signal plans", () => { - it.each(["SIGINT", "SIGTERM", "SIGKILL"] as const)("kills the Windows tree for %s", (signal) => { - expect(signalPlan({ platform: "win32", pid: 123, signal })).toEqual({ - type: "tree", - command: "taskkill", - args: ["/PID", "123", "/T", "/F"], - }); - }); - it.each(["SIGINT", "SIGTERM", "SIGKILL"] as const)( - "preserves POSIX group signal %s", - (signal) => { - expect(signalPlan({ platform: "linux", pid: 123, signal })).toEqual({ - type: "group", - pid: -123, - signal, - }); - }, - ); -}); - -describe("image prompts", () => { - it.each(["session", "connection"])( - "encodes mixed content as private session files and cleans up on %s close", - async (close) => { - const h = await harness(); - await h.open(); - const png = await readFile( - new URL("../test/fixtures/image-file-external.png", import.meta.url), - ); - const jpeg = Buffer.from("image file bytes"); - await h.completed( - await h.message([ - { type: "text", text: "Describe these images." }, - { type: "image", data: png.toString("base64"), mimeType: "image/png" }, - { type: "text", text: "Compare them." }, - { type: "image", data: jpeg.toString("base64"), mimeType: "image/jpeg" }, - ]), - ); - const sent = (await h.records()).find((entry) => entry.input).input.message.content; - const lines = sent.split("\n"); - const pngPath = lines[3].slice("Attached image: ".length); - const jpegPath = lines[5].slice("Attached image: ".length); - expect(sent).toBe( - `SYSTEM PREFIX\n\nDescribe these images.\nAttached image: ${pngPath}\nCompare them.\nAttached image: ${jpegPath}`, - ); - expect(path.isAbsolute(pngPath)).toBe(true); - expect(path.extname(pngPath)).toBe(".png"); - expect(path.extname(jpegPath)).toBe(".jpg"); - expect(path.dirname(pngPath)).toBe(path.dirname(jpegPath)); - expect(path.dirname(pngPath)).not.toBe(h.cwd); - expect(await readFile(pngPath)).toEqual(png); - expect(await readFile(jpegPath)).toEqual(jpeg); - if (process.platform !== "win32") { - expect((await stat(path.dirname(pngPath))).mode & 0o777).toBe(0o700); - expect((await stat(pngPath)).mode & 0o777).toBe(0o600); - expect((await stat(jpegPath)).mode & 0o777).toBe(0o600); - } - const args = (await h.records()).find((entry) => entry.args?.includes("--input-format")).args; - expect(args.filter((arg: string) => arg === "--add-dir")).toHaveLength(1); - if (close === "connection") await h.connection.close(); - else await h.request({ type: "session.close", requestId: "close-images", sessionId: "s" }); - await expect(stat(path.dirname(pngPath))).rejects.toMatchObject({ code: "ENOENT" }); - }, - ); - - it("keeps image-only prompts in distinct session directories until each session closes", async () => { - const h = await harness(); - await h.open(); - await h.open(undefined, "other"); - const content: ProviderContent[] = [ - { type: "image", data: "aW1hZ2U=", mimeType: "image/webp" }, - ]; - await h.completed(await h.message(content)); - await h.completed(await h.message(content)); - await h.completed(await h.message(content, "other")); - const paths = (await h.records()) - .filter((entry) => entry.input) - .map((entry) => entry.input.message.content.split("Attached image: ")[1]); - expect(new Set(paths).size).toBe(3); - expect(path.dirname(paths[0])).toBe(path.dirname(paths[1])); - expect(path.dirname(paths[0])).not.toBe(path.dirname(paths[2])); - expect(paths.every((file: string) => path.extname(file) === ".webp")).toBe(true); - await h.request({ type: "session.close", requestId: "close-first", sessionId: "s" }); - await expect(stat(path.dirname(paths[0]))).rejects.toMatchObject({ code: "ENOENT" }); - expect(await readFile(paths[2], "utf8")).toBe("image"); - await h.connection.close(); - await expect(stat(path.dirname(paths[2]))).rejects.toMatchObject({ code: "ENOENT" }); - }); - - it("rejects a non-image MIME type before writing to native stdin", async () => { - const h = await harness(); - await h.open(); - const id = await h.message([{ type: "image", data: "dGV4dA==", mimeType: "text/plain" }]); - expect( - h.events.find( - (event) => event.type === "session.prompt_result" && event.clientMessageId === id, - ), - ).toMatchObject({ - result: { type: "failed", error: { message: expect.stringContaining("image MIME type") } }, - }); - expect((await h.records()).filter((entry) => entry.input)).toHaveLength(0); - }); -}); diff --git a/plugins/antigravity-provider/server/provider.ts b/plugins/antigravity-provider/server/provider.ts deleted file mode 100644 index 88c73c7faa..0000000000 --- a/plugins/antigravity-provider/server/provider.ts +++ /dev/null @@ -1,171 +0,0 @@ -import { createHash } from "node:crypto"; -import { - negotiateProviderCapabilities, - requireProviderCapabilities, - type ProviderCatalog, - type ProviderConnection, - type ProviderEvent, - type ProviderInput, - type ProviderLaunch, - type ProviderRegistration, -} from "@getpaseo/plugin/server/provider"; -import { getCatalog, getStatus } from "./internal/catalog.js"; -import { Session } from "./internal/session.js"; -import { AntigravityError } from "./internal/wire.js"; - -const capabilities = [ - "prompt.message", - "prompt.image", - "session.configure", - "session.persistence", -] as const; - -export function createAntigravityProvider(): ProviderRegistration { - return { - id: "antigravity", - label: "Antigravity", - icon: "icon.svg", - command: ["agy"], - description: "Antigravity CLI on your host", - async status({ launch }) { - if (!launch) - return { - available: false, - diagnostic: "agy not found on PATH. Install Antigravity, then run `agy` and sign in.", - }; - return getStatus(launch); - }, - async getCatalogCacheKey({ launch }) { - if (!launch) return undefined; - const env = Object.entries(launch.env).sort(([left], [right]) => left.localeCompare(right)); - return createHash("sha256") - .update(JSON.stringify([launch.command, launch.args, env])) - .digest("hex"); - }, - async connect(request) { - if (!request.versions.includes(1)) - throw new AntigravityError("Provider protocol version 1 is required"); - if (!request.launch) - throw new AntigravityError("The daemon must supply the Antigravity launch"); - const negotiated = negotiateProviderCapabilities(request.capabilities, capabilities); - return createConnection(request.launch, negotiated); - }, - }; -} - -function createConnection( - launch: ProviderLaunch, - negotiated: readonly string[], -): ProviderConnection { - const sessions = new Map(); - const listeners = new Set<(event: ProviderEvent) => void>(); - let discovered: ProviderCatalog | null = null; - let closed = false; - let pending = Promise.resolve(); - - function emit(event: ProviderEvent): void { - if (closed) return; - for (const listener of listeners) listener(event); - } - function catalog(): ProviderCatalog { - if (discovered === null) - throw new AntigravityError("Antigravity catalog has not been discovered"); - return discovered; - } - function session(id: string): Session { - const found = sessions.get(id); - if (!found) throw new AntigravityError(`Unknown Antigravity session: ${id}`); - return found; - } - async function dispatch(input: ProviderInput): Promise { - switch (input.type) { - case "catalog": - discovered = await getCatalog(launch, input.cwd); - emit({ - type: "catalog", - requestId: input.requestId, - catalog: catalog(), - }); - return; - case "session.open": { - if (sessions.has(input.sessionId)) - throw new AntigravityError(`Session already exists: ${input.sessionId}`); - if (discovered === null) discovered = await getCatalog(launch, input.config.cwd); - const opened = new Session({ - id: input.sessionId, - config: input.config, - persistence: input.persistence, - catalog, - launch, - emit, - }); - sessions.set(input.sessionId, opened); - try { - await opened.open(input.requestId, negotiated); - } catch (error) { - sessions.delete(input.sessionId); - await opened.close(); - throw error; - } - return; - } - case "session.prompt": - await session(input.sessionId).prompt(input.prompt); - return; - case "session.configure": - session(input.sessionId).configure(input.changes); - break; - case "session.interrupt": - await session(input.sessionId).interrupt(); - break; - case "session.close": { - await session(input.sessionId).close(); - sessions.delete(input.sessionId); - emit({ type: "session.closed", sessionId: input.sessionId }); - break; - } - default: - throw new AntigravityError(`Unsupported Antigravity operation: ${input.type}`); - } - emit({ type: "request.completed", requestId: input.requestId }); - } - function failed(input: ProviderInput, error: unknown): void { - const message = error instanceof Error ? error.message : String(error); - const code = error instanceof AntigravityError ? error.code : "ANTIGRAVITY_ERROR"; - if (input.type === "session.prompt") - emit({ - type: "session.prompt_result", - sessionId: input.sessionId, - clientMessageId: input.prompt.clientMessageId, - result: { type: "failed", error: { message, code } }, - }); - else if ("requestId" in input) - emit({ type: "request.failed", requestId: input.requestId, error: { message, code } }); - } - return { - version: 1, - capabilities: negotiated, - async send(input) { - if (closed) throw new AntigravityError("Antigravity connection is closed"); - requireProviderCapabilities(negotiated, input); - pending = pending - .then(async () => { - if (!closed) await dispatch(input); - return undefined; - }) - .catch((error) => failed(input, error)); - }, - onEvent(listener) { - listeners.add(listener); - return () => listeners.delete(listener); - }, - async close() { - if (closed) return; - closed = true; - await pending; - await Promise.all([...sessions.values()].map((opened) => opened.close())); - sessions.clear(); - listeners.clear(); - }, - }; -} diff --git a/plugins/antigravity-provider/test/agy.mjs b/plugins/antigravity-provider/test/agy.mjs deleted file mode 100644 index 91b0531b56..0000000000 --- a/plugins/antigravity-provider/test/agy.mjs +++ /dev/null @@ -1,102 +0,0 @@ -import { readFileSync, appendFileSync } from "node:fs"; -import { createInterface } from "node:readline"; - -const args = process.argv.slice(2); -const log = process.env.AGY_TEST_LOG; -function record(value) { - if (log) appendFileSync(log, `${JSON.stringify(value)}\n`); -} -record({ args, pid: process.pid, env: process.env.AGY_SESSION_VALUE }); -function fixture(name, stream = "stdout") { - return readFileSync(new URL(`./fixtures/${name}.${stream}.ndjson`, import.meta.url), "utf8") - .trim() - .split("\n") - .filter(Boolean) - .map((line) => JSON.parse(line).data); -} -if (args.includes("--version")) { - process.stdout.write(`${process.env.AGY_TEST_VERSION || "1.2.13"}\n`); - process.exit(0); -} -if (args.includes("models")) { - if (process.env.AGY_TEST_AUTH === "missing") { - process.stderr.write(fixture("models-unauthenticated", "stderr").join("\n")); - process.exit(1); - } - process.stdout.write(fixture("models-api-key").join("\n") + "\n"); - process.exit(0); -} -if (process.env.AGY_TEST_STARTUP === "auth") { - process.stderr.write(fixture("not-signed-in", "stderr").join("\n")); - process.stdout.write(JSON.stringify(fixture("not-signed-in")[0]) + "\n"); - process.exit(1); -} -if (process.env.AGY_TEST_STARTUP === "exit") process.exit(3); -if (process.env.AGY_TEST_STARTUP === "stderr") { - process.stderr.write("Error: authentication required. Run 'agy' to log in, then retry.\n"); - process.exit(1); -} -const resumeIndex = args.indexOf("--conversation"); -const conversationId = - resumeIndex >= 0 ? args[resumeIndex + 1] : fixture("text-turn")[0].conversation_id; -let denialResults = 0; -function emit(frame) { - const converted = structuredClone(frame); - if (converted.conversation_id !== undefined) converted.conversation_id = conversationId; - if (converted.step_update) converted.step_update.conversation_id = conversationId; - if (converted.result) { - converted.result.conversation_id = conversationId; - if (process.env.AGY_TEST_DENIAL_COUNTS && converted.result.denied_actions?.length) { - converted.result.denied_actions = Array.from( - { length: Number(process.env.AGY_TEST_DENIAL_COUNTS.split(",")[denialResults++]) }, - () => converted.result.denied_actions[0], - ); - } - } - process.stdout.write(JSON.stringify(converted) + "\n"); -} -const init = fixture("text-turn")[0]; -if (args.includes("--model")) init.init.model = args[args.indexOf("--model") + 1]; -emit(init); -let interrupted = null; -const turns = new Map(); -const lines = createInterface({ input: process.stdin }); -lines.on("line", (line) => { - const input = JSON.parse(line); - record({ input }); - const text = input.message.content; - let name = "text-turn"; - if (text.includes("Attached image: ")) name = "image-file-external"; - if (text.includes("TOOLS")) name = "tools-default"; - if (text.includes("DENIAL_REPLAY")) name = "denial-replay"; - if (text.includes("SUBAGENT")) name = "subagent"; - if (text.includes("MULTI")) name = "multi-turn-reasoning"; - if (text.includes("RESUME")) name = "resume"; - if (text.includes("HANG")) name = "sigint-mid-text"; - if (text.includes("TOOL_HANG")) name = "sigint-mid-tool"; - const frames = fixture(name).slice(1); - if (name.startsWith("sigint")) { - interrupted = frames[frames.length - 1]; - for (const frame of frames.slice(0, -1)) emit(frame); - return; - } - const count = frames.filter((frame) => frame.event === "result").length; - const ordinal = (turns.get(name) || 0) % count; - turns.set(name, ordinal + 1); - let resultCount = 0; - for (const frame of frames) { - if (resultCount === ordinal) emit(frame); - if (frame.event === "result") resultCount += 1; - } -}); -process.on("SIGINT", () => { - record({ signal: "SIGINT" }); - if (process.env.AGY_TEST_IGNORE_SIGNALS === "yes") return; - if (interrupted) emit(interrupted); - process.exit(1); -}); -process.on("SIGTERM", () => { - record({ signal: "SIGTERM" }); - if (process.env.AGY_TEST_IGNORE_SIGNALS !== "yes") process.exit(1); -}); -lines.on("close", () => process.exit(0)); diff --git a/plugins/antigravity-provider/test/fixtures/README.md b/plugins/antigravity-provider/test/fixtures/README.md deleted file mode 100644 index b4b1ef264f..0000000000 --- a/plugins/antigravity-provider/test/fixtures/README.md +++ /dev/null @@ -1,100 +0,0 @@ -# agy 1.2.13 stream-json captures - -`denial-replay.stdout.ndjson` replays two turns from one real 1.2.13 process: a denied shell -command, then a text-only answer whose result retains the first denial. The replay clock is -synthetic; frames retain the native cumulative denial payload. - -Captured on Linux x86_64 on 2026-09-29. These are observations from the supplied binary, not guarantees for the Google sign-in route. No product code or capture drivers are included. - -Each row names a capture prefix. Its `.stdin.ndjson`, `.stdout.ndjson`, `.stderr.ndjson`, and `.capture.ndjson` companions keep the streams separate; empty streams are empty files. Every line wraps the exact decoded JSON frame or text line in `{t_ms, stream, data}`. `t_ms` is milliseconds since construction immediately before spawn. Capture annotations record launch arguments, configuration, signals, EOF, timeouts, and exit code; they are not CLI output. Line references refer to the indicated file, starting at 1. - -Commands below run from ``. `` expands to `/.local/opt/agy/1.2.13/agy` in the real installation home; the child uses a separate isolated `` for state. All captures remove inherited credential/provider environment variables, set `HOME`, `XDG_CONFIG_HOME=/.config`, `XDG_CACHE_HOME=/.cache`, `XDG_DATA_HOME=/.local/share`, `BROWSER=/bin/true`, and loopback-only `NO_PROXY`/`no_proxy`. Neither PATH nor shell rc files changed. Resume rows reuse the original isolated HOME. - -For rows marked **API**, the environment also contains `GEMINI_API_KEY=` and `GOOGLE_GEMINI_BASE_URL=http://127.0.0.1:`, and `/.gemini/antigravity-cli/settings.json` contains `{"modelProvider":"gemini"}`. **Env only** sets those two variables without the setting; **None** has neither. The loopback translator reused the prior QA route and forwarded real requests to a paid upstream model. Its credential was read programmatically inside the temporary proxy, with later captures passing it through the proxy environment. It was never passed to agy or recorded. The translator maps all requested Gemini models to one upstream Gemini model: request routing and CLI selection are verified, native model identity/quality is not. - -The translator emits text, function calls, thought parts and usage. Its usage mapping does not populate Gemini thinking/cache counts, so observed zero `thinking_tokens`/`cache_read_tokens` does not prove native zeros. No dedicated reasoning frames appeared, including the matched high-effort probe. - -``, ``, ``, ``, ``, and `` are redactions. Unrelated project/model names and help examples are redacted without removing frames. Delta chunk boundaries remain; a path split across deltas can have a different placeholder spelling than the complete result. UUIDs are retained for conversation correlation. - -| Fixture prefix | Exact argv (redacted) | Auth | Demonstrates | agy | -| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | -| `agents` | ` agents` | API | Available agents listing is plain text. | 1.2.13 | -| `api-key-env-only` | ` --input-format stream-json --output-format stream-json` | Env only | Dummy key and custom endpoint alone do not select API-key auth. | 1.2.13 | -| `api-key-settings` | ` --input-format stream-json --output-format stream-json` | API | modelProvider=gemini yields init; missing event input is rejected. | 1.2.13 | -| `cwd-without-add-dir` | ` --input-format stream-json --output-format stream-json --dangerously-skip-permissions` | API | Without add-dir, model-issued pwd returned launch cwd; required tool Cwd is not exposed by this wire frame. | 1.2.13 | -| `effort-unsupported-family` | ` --input-format stream-json --output-format stream-json --model '' --effort high` | API | Unsupported non-Gemini family rejects effort; model reference redacted. | 1.2.13 | -| `effort-encoded-match` | ` --input-format stream-json --output-format stream-json --model gemini-3.8-flash-high --effort high` | API | Matching high effort accepted; arithmetic turn; no thought delta observed. | 1.2.13 | -| `effort-encoded-mismatch` | ` --input-format stream-json --output-format stream-json --model gemini-3.8-flash-high --effort low` | API | High-suffixed model conflicts with effort=low; no init. | 1.2.13 | -| `effort-mismatch` | ` --input-format stream-json --output-format stream-json --model gemini-3.1-pro-preview --effort low` | API | Unlisted preview ID does not support effort; startup ERROR. | 1.2.13 | -| `help` | ` --help` | None | Launch flags and subcommands; help is on stderr. | 1.2.13 | -| `image-content` | ` --input-format stream-json --output-format stream-json --disable-slash-commands` | API | Image source block rejected: only text blocks supported. | 1.2.13 | -| `mcp-add-http` | ` mcp add phase0 'http://127.0.0.1:/mcp'` | None | Writes .gemini/config/mcp_config.json; file content recorded in capture annotations. | 1.2.13 | -| `mcp-add` | ` mcp add phase0 --url 'http://127.0.0.1:/mcp'` | None | Invalid --url syntax rejected; no configuration written. | 1.2.13 | -| `mcp-global` | ` --input-format stream-json --output-format stream-json --add-dir '' --disable-slash-commands --dangerously-skip-permissions` | API | Global HTTP server discovered; strict tool call fails because arguments is a string. | 1.2.13 | -| `mcp-help` | ` mcp add --help` | None | MCP add syntax, HTTP transport, headers/env; flags precede name. | 1.2.13 | -| `mcp-list` | ` mcp list` | None | Model-free empty server list, exit 0. | 1.2.13 | -| `mcp-project-config` | ` --input-format stream-json --output-format stream-json --add-dir '' --disable-slash-commands --dangerously-skip-permissions` | API | Workspace .gemini/config.json mcpServers not discovered in this probe. | 1.2.13 | -| `mcp-project-isolated` | ` --input-format stream-json --output-format stream-json --add-dir '' --dangerously-skip-permissions` | API | Project MCP discovery; no global MCP config before/after; strict arguments error. | 1.2.13 | -| `mcp-project` | ` --input-format stream-json --output-format stream-json --add-dir '' --disable-slash-commands --dangerously-skip-permissions` | API | Project .agents/mcp_config.json discovers HTTP server; strict call rejects string arguments; later translator 502 retained. | 1.2.13 | -| `mcp-second-add-dir` | ` --input-format stream-json --output-format stream-json --disable-slash-commands --dangerously-skip-permissions --add-dir '' --add-dir '/owned'` | API | Discovers project MCP from the owned directory; strict arguments fail. Shell uses owned directory and writes occur in both directories. | 1.2.13 | -| `mcp-owned-first-add-dir` | ` --input-format stream-json --output-format stream-json --disable-slash-commands --dangerously-skip-permissions --add-dir '/owned' --add-dir ''` | API | Reversing argv does not restore command working directory; owned directory remains the shell default. | 1.2.13 | -| `mcp-owned-cwd` | ` --input-format stream-json --output-format stream-json --disable-slash-commands --dangerously-skip-permissions --add-dir ''`, launched in `/owned` through a symlink | API | Discovers owned project MCP, but shell and initial read resolve against owned cwd; writes occur in both directories. | 1.2.13 | -| `mcp-agent-file` | ` --input-format stream-json --output-format stream-json --disable-slash-commands --dangerously-skip-permissions --add-dir '' --agent '/owned/agent.md'` | API | Direct external agent filename falls back to default; no MCP discovery. Shell/read/write use workspace. | 1.2.13 | -| `mcp-agent-definition` | ` --input-format stream-json --output-format stream-json --add-dir '/owned' --add-dir '' --agent phase2 --dangerously-skip-permissions` | API | Nested Markdown definition with inline mcpServers is not found; default agent, no MCP server. | 1.2.13 | -| `mcp-agent-discovered` | ` --input-format stream-json --output-format stream-json --add-dir '/owned' --add-dir '' --agent phase2 --dangerously-skip-permissions` | API | Flat Markdown definition plus agents.json manifest is also not found; default agent, no MCP server. | 1.2.13 | -| `image-file-external` | ` --input-format stream-json --output-format stream-json --add-dir '' --disable-slash-commands` | API | Default mode reads an external image path with view_file and correctly describes its pixels, without an extra add-dir. | 1.2.13 | -| `model-switch-invalid` | ` --input-format stream-json --output-format stream-json --add-dir '' --conversation b966b16a-caf4-448a-bb24-0e34956022b0 --model gemini-3.1-flash-lite-preview` | API | Unlisted model ID rejected before init. | 1.2.13 | -| `model-switch-network` | ` --input-format stream-json --output-format stream-json --conversation b966b16a-caf4-448a-bb24-0e34956022b0 --model gemini-3.8-flash-low` | API | Listed model respawn plus actual Gemini request path in capture annotations; COBALT preserved. | 1.2.13 | -| `model-switch-resume` | ` --input-format stream-json --output-format stream-json --add-dir '' --conversation b966b16a-caf4-448a-bb24-0e34956022b0 --model gemini-3.1-flash-high` | API | Another unlisted model ID rejected before init. | 1.2.13 | -| `model-switch-valid` | ` --input-format stream-json --output-format stream-json --conversation b966b16a-caf4-448a-bb24-0e34956022b0 --model gemini-3.8-flash-low` | API | Listed low-effort model accepted on same conversation; COBALT preserved. | 1.2.13 | -| `models-api-key` | ` models` | API | Authenticated catalog is tab-separated model ID and display label. | 1.2.13 | -| `models-unauthenticated` | ` models` | None | Models requires auth; no catalog on stdout. | 1.2.13 | -| `multi-turn-reasoning` | ` --input-format stream-json --output-format stream-json --add-dir '' --disable-slash-commands` | API | Two text turns with arithmetic; per-generation and cumulative usage. No thought delta observed. | 1.2.13 | -| `not-signed-in` | ` --input-format stream-json --output-format stream-json` | None | No credentials: result ERROR, no init, exit 1. | 1.2.13 | -| `project-skill` | ` --input-format stream-json --output-format stream-json --add-dir '' --disable-slash-commands` | API | Project skill read via view_file; marker reply. No distinct skill event. | 1.2.13 | -| `question-auto-denial` | ` --input-format stream-json --output-format stream-json --add-dir ''` | API | Requested ask_question becomes unknown DONE step, auto-skipped; no question payload on wire. | 1.2.13 | -| `resume-after-interrupt` | ` --input-format stream-json --output-format stream-json --conversation a2c2132f-0f10-400b-a142-74f82230f449` | API | Same interrupted conversation resumes and accepts another turn. | 1.2.13 | -| `resume` | ` --input-format stream-json --output-format stream-json --add-dir '' --disable-slash-commands --conversation b966b16a-caf4-448a-bb24-0e34956022b0` | API | Remembered COBALT after respawn; no old steps replayed. | 1.2.13 | -| `schema-prompt` | ` --input-format stream-json --output-format stream-json` | API | Unknown prompt event ignored with stderr warning; no turn. | 1.2.13 | -| `schema-user-message` | ` --input-format stream-json --output-format stream-json` | API | Decoding a string message fails before event dispatch. | 1.2.13 | -| `schema-user` | ` --input-format stream-json --output-format stream-json` | API | String message rejected; message must be an object. | 1.2.13 | -| `sigint-mid-text` | ` --input-format stream-json --output-format stream-json --add-dir '' --disable-slash-commands --dangerously-skip-permissions` | API | SIGINT after first text delta: interrupted result and exit 1. | 1.2.13 | -| `sigint-mid-tool` | ` --input-format stream-json --output-format stream-json --add-dir '' --dangerously-skip-permissions` | API | SIGINT while run_command ACTIVE: interrupted result and exit 1. | 1.2.13 | -| `sigterm` | ` --input-format stream-json --output-format stream-json --add-dir '' --disable-slash-commands --dangerously-skip-permissions` | API | SIGTERM after user_input: interrupted result and exit 1. | 1.2.13 | -| `slash-disabled` | ` --input-format stream-json --output-format stream-json --disable-slash-commands` | API | /help sent literally to model; normal turn with built-in skill reads. | 1.2.13 | -| `slash-enabled` | ` --input-format stream-json --output-format stream-json` | API | /help rejected in driver mode; result ERROR and exit 2. | 1.2.13 | -| `stdin-close-mid-turn` | ` --input-format stream-json --output-format stream-json --add-dir '' --disable-slash-commands --dangerously-skip-permissions` | API | EOF after user_input: active turn finishes successfully, exit 0. | 1.2.13 | -| `stdin-mid-turn` | ` --input-format stream-json --output-format stream-json --add-dir '' --disable-slash-commands --dangerously-skip-permissions` | API | Second prompt after first user_input queues a separate turn; two results. | 1.2.13 | -| `subagent` | ` --input-format stream-json --output-format stream-json --add-dir '' --dangerously-skip-permissions` | API | Define/invoke child; subagent_info contains child ID/log URI/workspaces; child reply reaches parent. | 1.2.13 | -| `text-block` | ` --input-format stream-json --output-format stream-json --add-dir ''` | API | Array of text content blocks accepted. | 1.2.13 | -| `text-turn` | ` --input-format stream-json --output-format stream-json --add-dir ''` | API | event=user, message.content string; streaming text and final usage. | 1.2.13 | -| `tools-accept-edits` | ` --input-format stream-json --output-format stream-json --add-dir '' --disable-slash-commands --mode accept-edits` | API | Read, create, edit allowed; shell auto-denied. Result SUCCESS includes denied_actions. No permission request. | 1.2.13 | -| `tools-default` | ` --input-format stream-json --output-format stream-json --add-dir '' --disable-slash-commands` | API | Read, create, edit allowed; shell auto-denied. Result SUCCESS includes denied_actions. No permission request. | 1.2.13 | -| `tools-plan` | ` --input-format stream-json --output-format stream-json --add-dir '' --disable-slash-commands --mode plan` | API | Read, create, edit allowed; shell auto-denied. Result SUCCESS includes denied_actions. No permission request. | 1.2.13 | -| `tools-sandbox` | ` --input-format stream-json --output-format stream-json --add-dir '' --disable-slash-commands --sandbox` | API | Read, create, edit allowed; shell auto-denied. Result SUCCESS includes denied_actions. No permission request. | 1.2.13 | -| `tools-skip-permissions` | ` --input-format stream-json --output-format stream-json --add-dir '' --disable-slash-commands --dangerously-skip-permissions` | API | Read, create, edit and shell succeed; permission_mode=always-proceed. | 1.2.13 | -| `version` | ` --version` | None | Installed binary reports 1.2.13. | 1.2.13 | -| `mcp-http.requests.ndjson` | `node /mcp-server.mjs` alongside the MCP argv above | None | Actual HTTP JSON-RPC requests to a strict SDK server; `params.arguments` is a string. Server implements initialize, tools/list, and echo. | 1.2.13 client | -| `state-inspection.ndjson` | `HOME= strace -f -e trace=file -o /files.trace --input-format stream-json --output-format stream-json`; `python3 /finalize.py`; `firecrawl scrape --format markdown` | None | Binary checksum, isolated state accesses, read-only SQLite listings, written file contents, and manifest retrieval caveat. Inspection data, not agy stdout. | 1.2.13 | - -`project-skill` used `/.agents/skills/phase0-marker/SKILL.md` with name `phase0-marker`, description “Return the Phase 0 marker when requested,” and instructions “Respond with PHASE0_SKILL_MARKER. No tools are needed after reading this skill.” - -Each tools capture begins with `input.txt` containing `PHASE0_READ_MARKER`, then requests create→replace from `PHASE0_WRITE` to `PHASE0_EDIT`, then `printf PHASE0_SHELL`. `state-inspection.ndjson` records the resulting files. These successful writes disprove an enforced read-only boundary for default/plan on this credential route. `--sandbox` alone still denies the shell at permission policy, so OS sandbox enforcement is unverified. - -## MCP discovery - -Phase 0 project setup (`mcp-project` and `mcp-project-isolated`) places `{"mcpServers":{"phase0":{"serverUrl":"http://127.0.0.1:/mcp"}}}` in `/.agents/mcp_config.json`. `mcp-project-config` instead uses `/.gemini/config.json`; that file did not expose the server. HTTP calls send string arguments and fail strict validation. - -Phase 2 places the same HTTP configuration, named `phase2`, in a plugin-owned `/owned/.agents/mcp_config.json`. Both add-dir orders discover it, as does launching in the owned directory and adding the real workspace. All three turns execute shell `pwd` in the owned directory. The file turns read the workspace marker but also write `output.txt` into the owned directory. These routes fail the requirement that tools resolve against the user's workspace. Reordering arguments did not change the observed shell cwd; the precise directory selection rule is unverified. - -The external `--agent` file, nested agent definition, and flat definition with an `agents.json` manifest contain inline `mcpServers`. Native logs record “not found, falling back to default” for each. These experiments do not establish that every agent definition format is unsupported. `parity-inspection.ndjson` records their definitions and log evidence. Searching the tested binary's strings found no `AGY_MCP`, `MCP_CONFIG`, `AGY_CONFIG`, or `ANTIGRAVITY_CONFIG` override; no environment discovery route was verified. - -No tested MCP route satisfies both discovery and workspace ownership. MCP implementation stopped at this gate: no relay or MCP capability change was added. Images and the daemon e2e continued independently. No global MCP configuration exists in the isolated homes, and no configuration was written into the user repository. - -## Image file fallback - -`image-file-external.png` contains a red triangle on the left and a blue circle on the lower right, against white. The prompt supplies only its path and asks for visible shapes and colors. `image-file-external.stdout.ndjson:4–5` records a successful `view_file`; the result describes the pixels correctly. The native function response supplies bytes at `functionResponse.parts[].inlineData`. The temporary translator was corrected to forward these nested parts to the model; forwarding top-level parts alone dropped the image. `parity-inspection.ndjson` records the image hash and response-part location. - -This verifies one default-mode CLI turn reading a file outside the workspace without an extra add-dir. A later isolated-daemon run attached the same image through the provider and returned the same shapes and colors after a successful `view_file`. The provider advertises `prompt.image`; MCP remains outside the parity implementation. - -Unverified: Google login behaviour; native reasoning/cached-token accounting; filesystem/network isolation under sandbox plus approved commands; exhaustive tool policy; other agent definition formats or environment MCP overrides; child transcript streaming beyond parent metadata; a stable public conversation-list command. No fresh login was created. The fetched official manifest returned 1.2.12 while this binary reports 1.2.13; the checksum identifies the tested binary, but that response does not establish its release provenance. diff --git a/plugins/antigravity-provider/test/fixtures/agents.capture.ndjson b/plugins/antigravity-provider/test/fixtures/agents.capture.ndjson deleted file mode 100644 index cc01e91070..0000000000 --- a/plugins/antigravity-provider/test/fixtures/agents.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "agents"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 309, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/agents.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/agents.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/agents.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/agents.stdin.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/agents.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/agents.stdout.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/api-key-env-only.capture.ndjson b/plugins/antigravity-provider/test/fixtures/api-key-env-only.capture.ndjson deleted file mode 100644 index 9c7a770416..0000000000 --- a/plugins/antigravity-provider/test/fixtures/api-key-env-only.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json"], "cwd": "", "home": "", "settings": null, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 452, "stream": "capture", "data": {"exit_code": 1}} diff --git a/plugins/antigravity-provider/test/fixtures/api-key-env-only.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/api-key-env-only.stderr.ndjson deleted file mode 100644 index d315088707..0000000000 --- a/plugins/antigravity-provider/test/fixtures/api-key-env-only.stderr.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 288, "stream": "stderr", "data": "Error: authentication required. Run 'agy' to log in, then retry."} -{"t_ms": 288, "stream": "stderr", "data": "error: authentication failed or timed out"} diff --git a/plugins/antigravity-provider/test/fixtures/api-key-env-only.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/api-key-env-only.stdin.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/api-key-env-only.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/api-key-env-only.stdout.ndjson deleted file mode 100644 index 60cc38245f..0000000000 --- a/plugins/antigravity-provider/test/fixtures/api-key-env-only.stdout.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 288, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "", "status": "ERROR", "response": "", "error": "authentication failed or timed out", "duration_seconds": 0, "num_turns": 0, "usage": {"input_tokens": 0, "output_tokens": 0, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 0}}}} diff --git a/plugins/antigravity-provider/test/fixtures/api-key-settings.capture.ndjson b/plugins/antigravity-provider/test/fixtures/api-key-settings.capture.ndjson deleted file mode 100644 index 1c03483e72..0000000000 --- a/plugins/antigravity-provider/test/fixtures/api-key-settings.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 525, "stream": "capture", "data": {"exit_code": 1}} diff --git a/plugins/antigravity-provider/test/fixtures/api-key-settings.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/api-key-settings.stderr.ndjson deleted file mode 100644 index 1c47437a40..0000000000 --- a/plugins/antigravity-provider/test/fixtures/api-key-settings.stderr.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 374, "stream": "stderr", "data": "error: stream input message is missing the \"event\" field"} diff --git a/plugins/antigravity-provider/test/fixtures/api-key-settings.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/api-key-settings.stdin.ndjson deleted file mode 100644 index 97362f53ed..0000000000 --- a/plugins/antigravity-provider/test/fixtures/api-key-settings.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 373, "stream": "stdin", "data": {"type": "user", "message": {"role": "user", "content": "Reply with PHASE0_HELLO. No tools."}}} diff --git a/plugins/antigravity-provider/test/fixtures/api-key-settings.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/api-key-settings.stdout.ndjson deleted file mode 100644 index 567b1fc1f1..0000000000 --- a/plugins/antigravity-provider/test/fixtures/api-key-settings.stdout.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 373, "stream": "stdout", "data": {"event": "init", "conversation_id": "e629b41a-decf-4212-a9fb-3809e8f21122", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "request-review"}}} -{"t_ms": 374, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "e629b41a-decf-4212-a9fb-3809e8f21122", "status": "ERROR", "response": "", "error": "stream input message is missing the \"event\" field", "duration_seconds": 0, "num_turns": 0, "usage": {"input_tokens": 0, "output_tokens": 0, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 0}}}} diff --git a/plugins/antigravity-provider/test/fixtures/cwd-without-add-dir.capture.ndjson b/plugins/antigravity-provider/test/fixtures/cwd-without-add-dir.capture.ndjson deleted file mode 100644 index 78eedeec6f..0000000000 --- a/plugins/antigravity-provider/test/fixtures/cwd-without-add-dir.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--dangerously-skip-permissions"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 5003, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/cwd-without-add-dir.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/cwd-without-add-dir.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/cwd-without-add-dir.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/cwd-without-add-dir.stdin.ndjson deleted file mode 100644 index 52514739aa..0000000000 --- a/plugins/antigravity-provider/test/fixtures/cwd-without-add-dir.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 318, "stream": "stdin", "data": {"event": "user", "message": {"content": "Use run_command to run pwd, WaitMsBeforeAsync 1000. Report the output."}}} diff --git a/plugins/antigravity-provider/test/fixtures/cwd-without-add-dir.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/cwd-without-add-dir.stdout.ndjson deleted file mode 100644 index 469cdadcca..0000000000 --- a/plugins/antigravity-provider/test/fixtures/cwd-without-add-dir.stdout.ndjson +++ /dev/null @@ -1,11 +0,0 @@ -{"t_ms": 318, "stream": "stdout", "data": {"event": "init", "conversation_id": "3cea6151-badf-4b4a-ad58-bf3c0b02db25", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "always-proceed"}}} -{"t_ms": 347, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "3cea6151-badf-4b4a-ad58-bf3c0b02db25", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 3066, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "3cea6151-badf-4b4a-ad58-bf3c0b02db25", "step_index": 1, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.698205516, "usage": {"input_tokens": 11255, "output_tokens": 138, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11393}}}} -{"t_ms": 3066, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "3cea6151-badf-4b4a-ad58-bf3c0b02db25", "step_index": 2, "state": "ACTIVE", "step_type": "tool", "tool_name": "run_command", "tool_info": {"name": "run_command", "parameters": {"CommandLine": "pwd"}}}}} -{"t_ms": 3066, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "3cea6151-badf-4b4a-ad58-bf3c0b02db25", "step_index": 2, "state": "DONE", "step_type": "tool", "tool_name": "run_command", "duration_seconds": 0.006078385, "tool_info": {"name": "run_command", "parameters": {"CommandLine": "pwd"}, "output": "\r\n"}}}} -{"t_ms": 4626, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "3cea6151-badf-4b4a-ad58-bf3c0b02db25", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "The output"}}} -{"t_ms": 4678, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "3cea6151-badf-4b4a-ad58-bf3c0b02db25", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " of running "}}} -{"t_ms": 4704, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "3cea6151-badf-4b4a-ad58-bf3c0b02db25", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "`pwd` is:\n\n```text\n/works"}}} -{"t_ms": 4729, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "3cea6151-badf-4b4a-ad58-bf3c0b02db25", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "pace\n```"}}} -{"t_ms": 4881, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "3cea6151-badf-4b4a-ad58-bf3c0b02db25", "step_index": 3, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 1.824928838, "usage": {"input_tokens": 11382, "output_tokens": 24, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11406}}}} -{"t_ms": 4881, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "3cea6151-badf-4b4a-ad58-bf3c0b02db25", "status": "SUCCESS", "response": "The output of running `pwd` is:\n\n```text\n\n```\n", "duration_seconds": 4.555206291, "num_turns": 1, "usage": {"input_tokens": 22637, "output_tokens": 162, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 22799}}}} diff --git a/plugins/antigravity-provider/test/fixtures/denial-replay.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/denial-replay.stdout.ndjson deleted file mode 100644 index b667b505cc..0000000000 --- a/plugins/antigravity-provider/test/fixtures/denial-replay.stdout.ndjson +++ /dev/null @@ -1,11 +0,0 @@ -{"t_ms":0,"stream":"stdout","data":{"event":"init","conversation_id":"e8243164-64d5-4419-9dbb-c0733300b557","init":{"cwd":"/tmp/agy-p3/workspace","tools":["ask_custom_permission","ask_permission","ask_question","browser_click_element","browser_drag_pixel_to_pixel","browser_get_dom","browser_get_network_request","browser_input","browser_list_network_requests","browser_mouse_down","browser_mouse_up","browser_move_mouse","browser_press_key","browser_refresh_page","browser_resize_window","browser_scroll","browser_scroll_dom","browser_select_option","browser_subagent","call_mcp_tool","capture_browser_console_logs","capture_browser_screenshot","click_browser_pixel","command_status","define_subagent","delete_knowledge","execute_browser_javascript","find_by_name","finish","generate_image","grep_search","invoke_subagent","list_browser_pages","list_dir","list_permissions","list_resources","manage_inbox","manage_subagents","manage_task","multi_replace_file_content","notebook_edit","notebook_execution","open_browser_url","read_browser_page","read_resource","read_url_content","replace_file_content","run_command","schedule","search_web","sed_file","send_command_input","send_message","view_file","wait","wait_5_seconds","write_to_file"],"permission_mode":"request-review"}}} -{"t_ms":1,"stream":"stdout","data":{"event":"step_update","step_update":{"conversation_id":"e8243164-64d5-4419-9dbb-c0733300b557","step_index":0,"state":"DONE","step_type":"user_input"}}} -{"t_ms":2,"stream":"stdout","data":{"event":"step_update","step_update":{"conversation_id":"e8243164-64d5-4419-9dbb-c0733300b557","step_index":1,"state":"DONE","step_type":"agent_response","duration_seconds":2.86246236,"usage":{"input_tokens":11252,"output_tokens":163,"thinking_tokens":0,"cache_read_tokens":0,"total_tokens":11415}}}} -{"t_ms":3,"stream":"stdout","data":{"event":"step_update","step_update":{"conversation_id":"e8243164-64d5-4419-9dbb-c0733300b557","step_index":2,"state":"ACTIVE","step_type":"tool","tool_name":"run_command","tool_info":{"name":"run_command","parameters":{"CommandLine":"printf AGY_DENIAL_PROBE"}}}}} -{"t_ms":4,"stream":"stdout","data":{"event":"step_update","step_update":{"conversation_id":"e8243164-64d5-4419-9dbb-c0733300b557","step_index":2,"state":"ERROR","step_type":"tool","tool_name":"run_command","duration_seconds":0.002264915,"tool_info":{"name":"run_command","parameters":{"CommandLine":"printf AGY_DENIAL_PROBE"},"error":{"type":"TOOL_ERROR","message":"permission check failed for command \"printf AGY_DENIAL_PROBE\": user denied permission to run command:\nprintf AGY_DENIAL_PROBE\nDo not attempt to circumvent this denial by rephrasing the command, using alternative tools/scripts (e.g. python, sh, curl), or accessing the same target resource. Proceed without performing this action."}}}}} -{"t_ms":5,"stream":"stdout","data":{"event":"result","result":{"conversation_id":"e8243164-64d5-4419-9dbb-c0733300b557","status":"SUCCESS","response":"","duration_seconds":2.890969963,"num_turns":1,"usage":{"input_tokens":11252,"output_tokens":163,"thinking_tokens":0,"cache_read_tokens":0,"total_tokens":11415},"denied_actions":[{"action":"command","display_name":"RunCommand"}]}}} -{"t_ms":6,"stream":"stdout","data":{"event":"step_update","step_update":{"conversation_id":"e8243164-64d5-4419-9dbb-c0733300b557","step_index":3,"state":"DONE","step_type":"user_input"}}} -{"t_ms":7,"stream":"stdout","data":{"event":"step_update","step_update":{"conversation_id":"e8243164-64d5-4419-9dbb-c0733300b557","step_index":4,"state":"ACTIVE","step_type":"agent_response","text_delta":"FOLLOWUP"}}} -{"t_ms":8,"stream":"stdout","data":{"event":"step_update","step_update":{"conversation_id":"e8243164-64d5-4419-9dbb-c0733300b557","step_index":4,"state":"ACTIVE","step_type":"agent_response","text_delta":"_OK"}}} -{"t_ms":9,"stream":"stdout","data":{"event":"step_update","step_update":{"conversation_id":"e8243164-64d5-4419-9dbb-c0733300b557","step_index":4,"state":"DONE","step_type":"agent_response","text_delta":"\n","duration_seconds":2.11565723,"usage":{"input_tokens":11533,"output_tokens":4,"thinking_tokens":0,"cache_read_tokens":0,"total_tokens":11537}}}} -{"t_ms":10,"stream":"stdout","data":{"event":"result","result":{"conversation_id":"e8243164-64d5-4419-9dbb-c0733300b557","status":"SUCCESS","response":"FOLLOWUP_OK\n","duration_seconds":5.028454184,"num_turns":2,"usage":{"input_tokens":22785,"output_tokens":167,"thinking_tokens":0,"cache_read_tokens":0,"total_tokens":22952},"denied_actions":[{"action":"command","display_name":"RunCommand"}]}}} diff --git a/plugins/antigravity-provider/test/fixtures/effort-encoded-match.capture.ndjson b/plugins/antigravity-provider/test/fixtures/effort-encoded-match.capture.ndjson deleted file mode 100644 index 89227b65a3..0000000000 --- a/plugins/antigravity-provider/test/fixtures/effort-encoded-match.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--model", "gemini-3.8-flash-high", "--effort", "high"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 4787, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/effort-encoded-match.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/effort-encoded-match.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/effort-encoded-match.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/effort-encoded-match.stdin.ndjson deleted file mode 100644 index 817c98ad5b..0000000000 --- a/plugins/antigravity-provider/test/fixtures/effort-encoded-match.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 296, "stream": "stdin", "data": {"event": "user", "message": {"content": "Solve 143*127. Think carefully before answering. No tools."}}} diff --git a/plugins/antigravity-provider/test/fixtures/effort-encoded-match.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/effort-encoded-match.stdout.ndjson deleted file mode 100644 index e56f554df9..0000000000 --- a/plugins/antigravity-provider/test/fixtures/effort-encoded-match.stdout.ndjson +++ /dev/null @@ -1,19 +0,0 @@ -{"t_ms": 295, "stream": "stdout", "data": {"event": "init", "conversation_id": "a090b266-2ea9-418c-bb02-c3267268b67b", "init": {"model": "gemini-3.8-flash-high", "cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "request-review"}}} -{"t_ms": 323, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a090b266-2ea9-418c-bb02-c3267268b67b", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 3877, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a090b266-2ea9-418c-bb02-c3267268b67b", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "**18,161**\n\n### Step-by-"}}} -{"t_ms": 3903, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a090b266-2ea9-418c-bb02-c3267268b67b", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "Step Breakdo"}}} -{"t_ms": 3928, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a090b266-2ea9-418c-bb02-c3267268b67b", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "wn:\nUsing the difference"}}} -{"t_ms": 3953, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a090b266-2ea9-418c-bb02-c3267268b67b", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " of squares "}}} -{"t_ms": 3979, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a090b266-2ea9-418c-bb02-c3267268b67b", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "formula $("}}} -{"t_ms": 4055, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a090b266-2ea9-418c-bb02-c3267268b67b", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "a + b)(a - b) = a^2 - b^2$:\n- $143 ="}}} -{"t_ms": 4081, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a090b266-2ea9-418c-bb02-c3267268b67b", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " 135"}}} -{"t_ms": 4132, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a090b266-2ea9-418c-bb02-c3267268b67b", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " + 8$\n- $127"}}} -{"t_ms": 4157, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a090b266-2ea9-418c-bb02-c3267268b67b", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " = 135 - 8$\n\n$$143"}}} -{"t_ms": 4259, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a090b266-2ea9-418c-bb02-c3267268b67b", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " \\times 127 = 135^2 - 8^"}}} -{"t_ms": 4284, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a090b266-2ea9-418c-bb02-c3267268b67b", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "2$$\n$$135"}}} -{"t_ms": 4385, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a090b266-2ea9-418c-bb02-c3267268b67b", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "^2 = 18,225$$\n$$8^2 = 64"}}} -{"t_ms": 4411, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a090b266-2ea9-418c-bb02-c3267268b67b", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "$$\n$$18,22"}}} -{"t_ms": 4462, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a090b266-2ea9-418c-bb02-c3267268b67b", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "5 - 64 = \\ma"}}} -{"t_ms": 4487, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a090b266-2ea9-418c-bb02-c3267268b67b", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "thbf{18,161}$$"}}} -{"t_ms": 4640, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a090b266-2ea9-418c-bb02-c3267268b67b", "step_index": 1, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 4.300859666, "usage": {"input_tokens": 10982, "output_tokens": 553, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11535}}}} -{"t_ms": 4640, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "a090b266-2ea9-418c-bb02-c3267268b67b", "status": "SUCCESS", "response": "**18,161**\n\n### Step-by-Step Breakdown:\nUsing the difference of squares formula $(a + b)(a - b) = a^2 - b^2$:\n- $143 = 135 + 8$\n- $127 = 135 - 8$\n\n$$143 \\times 127 = 135^2 - 8^2$$\n$$135^2 = 18,225$$\n$$8^2 = 64$$\n$$18,225 - 64 = \\mathbf{18,161}$$\n", "duration_seconds": 4.326461265, "num_turns": 1, "usage": {"input_tokens": 10982, "output_tokens": 553, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11535}}}} diff --git a/plugins/antigravity-provider/test/fixtures/effort-encoded-mismatch.capture.ndjson b/plugins/antigravity-provider/test/fixtures/effort-encoded-mismatch.capture.ndjson deleted file mode 100644 index 22f8817b70..0000000000 --- a/plugins/antigravity-provider/test/fixtures/effort-encoded-mismatch.capture.ndjson +++ /dev/null @@ -1,3 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--model", "gemini-3.8-flash-high", "--effort", "low"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 5006, "stream": "capture", "data": {"timeout_waiting_for": "init", "seconds": 5}} -{"t_ms": 5006, "stream": "capture", "data": {"exit_code": 1}} diff --git a/plugins/antigravity-provider/test/fixtures/effort-encoded-mismatch.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/effort-encoded-mismatch.stderr.ndjson deleted file mode 100644 index 1807a73321..0000000000 --- a/plugins/antigravity-provider/test/fixtures/effort-encoded-mismatch.stderr.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 296, "stream": "stderr", "data": "error: invalid model selection (--model \"gemini-3.8-flash-high\" --effort \"low\"): --model gemini-3.8-flash-high conflicts with --effort=low"} diff --git a/plugins/antigravity-provider/test/fixtures/effort-encoded-mismatch.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/effort-encoded-mismatch.stdin.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/effort-encoded-mismatch.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/effort-encoded-mismatch.stdout.ndjson deleted file mode 100644 index b9669aaaf4..0000000000 --- a/plugins/antigravity-provider/test/fixtures/effort-encoded-mismatch.stdout.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 296, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "", "status": "ERROR", "response": "", "error": "invalid model selection (--model \"gemini-3.8-flash-high\" --effort \"low\"): --model gemini-3.8-flash-high conflicts with --effort=low", "duration_seconds": 0, "num_turns": 0, "usage": {"input_tokens": 0, "output_tokens": 0, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 0}}}} diff --git a/plugins/antigravity-provider/test/fixtures/effort-mismatch.capture.ndjson b/plugins/antigravity-provider/test/fixtures/effort-mismatch.capture.ndjson deleted file mode 100644 index fbee5c5bc5..0000000000 --- a/plugins/antigravity-provider/test/fixtures/effort-mismatch.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--model", "gemini-3.1-pro-preview", "--effort", "low"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 415, "stream": "capture", "data": {"exit_code": 1}} diff --git a/plugins/antigravity-provider/test/fixtures/effort-mismatch.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/effort-mismatch.stderr.ndjson deleted file mode 100644 index 6072d28192..0000000000 --- a/plugins/antigravity-provider/test/fixtures/effort-mismatch.stderr.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 298, "stream": "stderr", "data": "error: invalid model selection (--model \"gemini-3.1-pro-preview\" --effort \"low\"): --effort is not supported for model \"gemini-3.1-pro-preview\""} diff --git a/plugins/antigravity-provider/test/fixtures/effort-mismatch.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/effort-mismatch.stdin.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/effort-mismatch.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/effort-mismatch.stdout.ndjson deleted file mode 100644 index c0baa6d698..0000000000 --- a/plugins/antigravity-provider/test/fixtures/effort-mismatch.stdout.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 298, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "", "status": "ERROR", "response": "", "error": "invalid model selection (--model \"gemini-3.1-pro-preview\" --effort \"low\"): --effort is not supported for model \"gemini-3.1-pro-preview\"", "duration_seconds": 0, "num_turns": 0, "usage": {"input_tokens": 0, "output_tokens": 0, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 0}}}} diff --git a/plugins/antigravity-provider/test/fixtures/effort-unsupported-family.capture.ndjson b/plugins/antigravity-provider/test/fixtures/effort-unsupported-family.capture.ndjson deleted file mode 100644 index 47eee607d9..0000000000 --- a/plugins/antigravity-provider/test/fixtures/effort-unsupported-family.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--model", "", "--effort", "high"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 358, "stream": "capture", "data": {"exit_code": 1}} diff --git a/plugins/antigravity-provider/test/fixtures/effort-unsupported-family.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/effort-unsupported-family.stderr.ndjson deleted file mode 100644 index f19c83a09b..0000000000 --- a/plugins/antigravity-provider/test/fixtures/effort-unsupported-family.stderr.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 287, "stream": "stderr", "data": "error: invalid model selection (--model \"\" --effort \"high\"): --effort is not supported for model \"\""} diff --git a/plugins/antigravity-provider/test/fixtures/effort-unsupported-family.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/effort-unsupported-family.stdin.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/effort-unsupported-family.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/effort-unsupported-family.stdout.ndjson deleted file mode 100644 index b85109a9a9..0000000000 --- a/plugins/antigravity-provider/test/fixtures/effort-unsupported-family.stdout.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 287, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "", "status": "ERROR", "response": "", "error": "invalid model selection (--model \"\" --effort \"high\"): --effort is not supported for model \"\"", "duration_seconds": 0, "num_turns": 0, "usage": {"input_tokens": 0, "output_tokens": 0, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 0}}}} diff --git a/plugins/antigravity-provider/test/fixtures/help.capture.ndjson b/plugins/antigravity-provider/test/fixtures/help.capture.ndjson deleted file mode 100644 index 6e88cd1f4f..0000000000 --- a/plugins/antigravity-provider/test/fixtures/help.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--help"], "cwd": "", "home": "", "settings": null, "env": {}}} -{"t_ms": 209, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/help.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/help.stderr.ndjson deleted file mode 100644 index 3a8e68bf4b..0000000000 --- a/plugins/antigravity-provider/test/fixtures/help.stderr.ndjson +++ /dev/null @@ -1,39 +0,0 @@ -{"t_ms": 195, "stream": "stderr", "data": "Usage of agy:"} -{"t_ms": 195, "stream": "stderr", "data": " --add-dir Add a directory to the workspace (repeatable) (default [])"} -{"t_ms": 195, "stream": "stderr", "data": " --agent Agent for the current CLI session"} -{"t_ms": 195, "stream": "stderr", "data": " -c Short alias for --continue"} -{"t_ms": 195, "stream": "stderr", "data": " --continue Continue the most recent conversation"} -{"t_ms": 195, "stream": "stderr", "data": " --conversation Resume a previous conversation by ID"} -{"t_ms": 195, "stream": "stderr", "data": " --dangerously-skip-permissions Auto-approve all tool permission requests without prompting"} -{"t_ms": 195, "stream": "stderr", "data": " --disable-slash-commands Disable slash command and skill expansion in print mode"} -{"t_ms": 195, "stream": "stderr", "data": " --effort Reasoning effort for the current CLI session (low|medium|high|max)"} -{"t_ms": 195, "stream": "stderr", "data": " -i Short alias for --prompt-interactive"} -{"t_ms": 195, "stream": "stderr", "data": " --input-format Input format for print mode (text, stream-json). stream-json reads one NDJSON message per line from stdin and runs a turn for each; it requires --output-format stream-json (default text)"} -{"t_ms": 195, "stream": "stderr", "data": " --json-schema Optional JSON schema string or path to a schema file to enforce structured output (for stream-json, only applicable to the final result)"} -{"t_ms": 195, "stream": "stderr", "data": " --log-file Override CLI log file path"} -{"t_ms": 196, "stream": "stderr", "data": " --mode Set the agent execution mode for this session (accept-edits, plan)"} -{"t_ms": 196, "stream": "stderr", "data": " --model Model for the current CLI session"} -{"t_ms": 196, "stream": "stderr", "data": " --new-project Create a new project for this session"} -{"t_ms": 196, "stream": "stderr", "data": " --output-format Output format for print mode (text, json, stream-json) (default text)"} -{"t_ms": 196, "stream": "stderr", "data": " -p Short alias for --print"} -{"t_ms": 196, "stream": "stderr", "data": " --print Run a single prompt non-interactively and print the response"} -{"t_ms": 196, "stream": "stderr", "data": " --print-timeout Optional time limit for print mode; 0 waits until the turn completes (default 0s)"} -{"t_ms": 196, "stream": "stderr", "data": " --project Project ID or project name for the current CLI session"} -{"t_ms": 196, "stream": "stderr", "data": " --prompt Alias for --print"} -{"t_ms": 196, "stream": "stderr", "data": " --prompt-interactive Run an initial prompt interactively and continue the session"} -{"t_ms": 196, "stream": "stderr", "data": " --remote-control Create a remote connection for the CLI session on start up"} -{"t_ms": 196, "stream": "stderr", "data": " --sandbox Run in a sandbox with terminal restrictions enabled"} -{"t_ms": 196, "stream": "stderr", "data": ""} -{"t_ms": 196, "stream": "stderr", "data": "Available subcommands:"} -{"t_ms": 196, "stream": "stderr", "data": " agent List available agents"} -{"t_ms": 196, "stream": "stderr", "data": " agents List available agents"} -{"t_ms": 196, "stream": "stderr", "data": " changelog Show changelog and release notes"} -{"t_ms": 196, "stream": "stderr", "data": " help Show help for subcommands"} -{"t_ms": 196, "stream": "stderr", "data": " install Configure environment paths and shell settings"} -{"t_ms": 196, "stream": "stderr", "data": " mcp Manage MCP servers (add, remove, list, enable, disable)"} -{"t_ms": 196, "stream": "stderr", "data": " mic-serve Serve this machine's microphone to a CLI on another host"} -{"t_ms": 196, "stream": "stderr", "data": " models List available models"} -{"t_ms": 196, "stream": "stderr", "data": " plugin Manage plugins (install, uninstall, list, enable, disable)"} -{"t_ms": 196, "stream": "stderr", "data": " plugins Alias for plugin"} -{"t_ms": 196, "stream": "stderr", "data": " remote-control Manage the remote-control background daemon (start, status, stop)"} -{"t_ms": 196, "stream": "stderr", "data": " update Update CLI"} diff --git a/plugins/antigravity-provider/test/fixtures/help.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/help.stdin.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/help.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/help.stdout.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/image-content.capture.ndjson b/plugins/antigravity-provider/test/fixtures/image-content.capture.ndjson deleted file mode 100644 index a2351ec906..0000000000 --- a/plugins/antigravity-provider/test/fixtures/image-content.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--disable-slash-commands"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 383, "stream": "capture", "data": {"exit_code": 1}} diff --git a/plugins/antigravity-provider/test/fixtures/image-content.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/image-content.stderr.ndjson deleted file mode 100644 index 3224b28fcc..0000000000 --- a/plugins/antigravity-provider/test/fixtures/image-content.stderr.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 294, "stream": "stderr", "data": "error: stream input content block type \"image\" is not supported (only \"text\")"} diff --git a/plugins/antigravity-provider/test/fixtures/image-content.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/image-content.stdin.ndjson deleted file mode 100644 index fd1966ad02..0000000000 --- a/plugins/antigravity-provider/test/fixtures/image-content.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 294, "stream": "stdin", "data": {"event": "user", "message": {"content": [{"type": "text", "text": "Describe this image."}, {"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+aN1sAAAAASUVORK5CYII="}}]}}} diff --git a/plugins/antigravity-provider/test/fixtures/image-content.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/image-content.stdout.ndjson deleted file mode 100644 index 07cb4f0703..0000000000 --- a/plugins/antigravity-provider/test/fixtures/image-content.stdout.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 294, "stream": "stdout", "data": {"event": "init", "conversation_id": "71e19e79-63e3-4a7b-b628-822e69618edc", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "request-review"}}} -{"t_ms": 294, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "71e19e79-63e3-4a7b-b628-822e69618edc", "status": "ERROR", "response": "", "error": "stream input content block type \"image\" is not supported (only \"text\")", "duration_seconds": 0, "num_turns": 0, "usage": {"input_tokens": 0, "output_tokens": 0, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 0}}}} diff --git a/plugins/antigravity-provider/test/fixtures/image-file-external.capture.ndjson b/plugins/antigravity-provider/test/fixtures/image-file-external.capture.ndjson deleted file mode 100644 index 90d75443bc..0000000000 --- a/plugins/antigravity-provider/test/fixtures/image-file-external.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "", "--disable-slash-commands"], "cwd": "", "home": "/image-file-external-home", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 7877, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/image-file-external.png b/plugins/antigravity-provider/test/fixtures/image-file-external.png deleted file mode 100644 index de622fdd72..0000000000 Binary files a/plugins/antigravity-provider/test/fixtures/image-file-external.png and /dev/null differ diff --git a/plugins/antigravity-provider/test/fixtures/image-file-external.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/image-file-external.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/image-file-external.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/image-file-external.stdin.ndjson deleted file mode 100644 index 8dcd1a238a..0000000000 --- a/plugins/antigravity-provider/test/fixtures/image-file-external.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 320, "stream": "stdin", "data": {"event": "user", "message": {"content": "Use view_file to open the attached image at /owned/attachment.png. Describe the shapes and colors visible. Do not use shell or code to infer the pixels."}}} diff --git a/plugins/antigravity-provider/test/fixtures/image-file-external.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/image-file-external.stdout.ndjson deleted file mode 100644 index 77f1580b85..0000000000 --- a/plugins/antigravity-provider/test/fixtures/image-file-external.stdout.ndjson +++ /dev/null @@ -1,14 +0,0 @@ -{"t_ms": 320, "stream": "stdout", "data": {"event": "init", "conversation_id": "0c498203-4202-446f-8df1-dfa8f16cb19d", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "request-review"}}} -{"t_ms": 347, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0c498203-4202-446f-8df1-dfa8f16cb19d", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 4057, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0c498203-4202-446f-8df1-dfa8f16cb19d", "step_index": 1, "state": "DONE", "step_type": "agent_response", "duration_seconds": 3.704260379, "usage": {"input_tokens": 11275, "output_tokens": 384, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11659}}}} -{"t_ms": 4057, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0c498203-4202-446f-8df1-dfa8f16cb19d", "step_index": 2, "state": "ACTIVE", "step_type": "tool", "tool_name": "view_file", "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/owned/attachment.png"}}}}} -{"t_ms": 4057, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0c498203-4202-446f-8df1-dfa8f16cb19d", "step_index": 2, "state": "DONE", "step_type": "tool", "tool_name": "view_file", "duration_seconds": 0.003012462, "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/owned/attachment.png"}}}}} -{"t_ms": 7530, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0c498203-4202-446f-8df1-dfa8f16cb19d", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "Based on the image at [/"}}} -{"t_ms": 7555, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0c498203-4202-446f-8df1-dfa8f16cb19d", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "tmp/agy-p2/o"}}} -{"t_ms": 7581, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0c498203-4202-446f-8df1-dfa8f16cb19d", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "wned/attachment.png](fil"}}} -{"t_ms": 7606, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0c498203-4202-446f-8df1-dfa8f16cb19d", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "e:///tmp/agy"}}} -{"t_ms": 7631, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0c498203-4202-446f-8df1-dfa8f16cb19d", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "-p2/owned/attachment.png"}}} -{"t_ms": 7657, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0c498203-4202-446f-8df1-dfa8f16cb19d", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "), here are "}}} -{"t_ms": 7682, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0c498203-4202-446f-8df1-dfa8f16cb19d", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "the visible shapes and colors:\n\n- **Red Triangl"}}} -{"t_ms": 7708, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0c498203-4202-446f-8df1-dfa8f16cb19d", "step_index": 3, "state": "DONE", "step_type": "agent_response", "text_delta": "e**: A solid red triangle positioned on the left side, pointing upwards.\n- **Blue Circle**: A solid blue circle positioned on the lower right side.\n- **Background**: Solid white.\n", "duration_seconds": 3.629267516, "usage": {"input_tokens": 13749, "output_tokens": 170, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 13919}}}} -{"t_ms": 7708, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "0c498203-4202-446f-8df1-dfa8f16cb19d", "status": "SUCCESS", "response": "Based on the image at [/owned/attachment.png](file:///owned/attachment.png), here are the visible shapes and colors:\n\n- **Red Triangle**: A solid red triangle positioned on the left side, pointing upwards.\n- **Blue Circle**: A solid blue circle positioned on the lower right side.\n- **Background**: Solid white.\n", "duration_seconds": 7.367115828, "num_turns": 1, "usage": {"input_tokens": 25024, "output_tokens": 554, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 25578}}}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-add-http.capture.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-add-http.capture.ndjson deleted file mode 100644 index c04b13268d..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-add-http.capture.ndjson +++ /dev/null @@ -1,3 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "mcp", "add", "phase0", "http://127.0.0.1:/mcp"], "cwd": "", "home": "", "settings": null, "env": {}}} -{"t_ms": 68, "stream": "capture", "data": {"written_file": "/.gemini/config/mcp_config.json", "content": {"mcpServers": {"phase0": {"disabled": false, "serverUrl": "http://127.0.0.1:/mcp"}}}}} -{"t_ms": 69, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-add-http.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-add-http.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/mcp-add-http.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-add-http.stdin.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/mcp-add-http.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-add-http.stdout.ndjson deleted file mode 100644 index 05d385caa8..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-add-http.stdout.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 63, "stream": "stdout", "data": "Added MCP server \"phase0\" (http)"} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-add.capture.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-add.capture.ndjson deleted file mode 100644 index d115585bec..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-add.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "mcp", "add", "phase0", "--url", "http://127.0.0.1:/mcp"], "cwd": "", "home": "", "settings": null, "env": {}}} -{"t_ms": 82, "stream": "capture", "data": {"exit_code": 1}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-add.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-add.stderr.ndjson deleted file mode 100644 index 81181df217..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-add.stderr.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 76, "stream": "stderr", "data": "Error: invalid command \"--url\": flags must come before the server name (usage: mcp add [flags] [args...])"} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-add.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-add.stdin.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/mcp-add.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-add.stdout.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/mcp-agent-definition.capture.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-agent-definition.capture.ndjson deleted file mode 100644 index 0885d233a5..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-agent-definition.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "/owned", "--add-dir", "", "--agent", "phase2", "--dangerously-skip-permissions"], "cwd": "", "home": "/mcp-agent-definition-home", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 6091, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-agent-definition.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-agent-definition.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/mcp-agent-definition.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-agent-definition.stdin.ndjson deleted file mode 100644 index 8daf16fd52..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-agent-definition.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 311, "stream": "stdin", "data": {"event": "user", "message": {"content": "Call the phase2 MCP echo tool with text PHASE2_DISCOVERY. Then use run_command pwd and report the workspace directory. Do not choose a different directory."}}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-agent-definition.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-agent-definition.stdout.ndjson deleted file mode 100644 index 854e8701ce..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-agent-definition.stdout.ndjson +++ /dev/null @@ -1,15 +0,0 @@ -{"t_ms": 311, "stream": "stdout", "data": {"event": "init", "conversation_id": "7240f716-f2bd-4641-b210-a4a282a756f7", "init": {"cwd": "", "agent": "phase2", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "always-proceed"}}} -{"t_ms": 340, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7240f716-f2bd-4641-b210-a4a282a756f7", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 4006, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7240f716-f2bd-4641-b210-a4a282a756f7", "step_index": 1, "state": "DONE", "step_type": "agent_response", "duration_seconds": 3.658926744, "usage": {"input_tokens": 11286, "output_tokens": 361, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11647}}}} -{"t_ms": 4006, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7240f716-f2bd-4641-b210-a4a282a756f7", "step_index": 2, "state": "ACTIVE", "step_type": "tool", "tool_name": "run_command", "tool_info": {"name": "run_command", "parameters": {"CommandLine": "pwd"}}}}} -{"t_ms": 4006, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7240f716-f2bd-4641-b210-a4a282a756f7", "step_index": 2, "state": "DONE", "step_type": "tool", "tool_name": "run_command", "duration_seconds": 0.008819631, "tool_info": {"name": "run_command", "parameters": {"CommandLine": "pwd"}, "output": "/owned\r\n"}}}} -{"t_ms": 5473, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7240f716-f2bd-4641-b210-a4a282a756f7", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "The "}}} -{"t_ms": 5603, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7240f716-f2bd-4641-b210-a4a282a756f7", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "`phase2 MCP echo tool` is not availa"}}} -{"t_ms": 5626, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7240f716-f2bd-4641-b210-a4a282a756f7", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ble in the tool definiti"}}} -{"t_ms": 5652, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7240f716-f2bd-4641-b210-a4a282a756f7", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ons provided"}}} -{"t_ms": 5678, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7240f716-f2bd-4641-b210-a4a282a756f7", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " in this"}}} -{"t_ms": 5856, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7240f716-f2bd-4641-b210-a4a282a756f7", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " environment.\n\nRunning `"}}} -{"t_ms": 5881, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7240f716-f2bd-4641-b210-a4a282a756f7", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "pwd` in the workspace re"}}} -{"t_ms": 5907, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7240f716-f2bd-4641-b210-a4a282a756f7", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ports the directory:\n`/t"}}} -{"t_ms": 5932, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7240f716-f2bd-4641-b210-a4a282a756f7", "step_index": 3, "state": "DONE", "step_type": "agent_response", "text_delta": "mp/agy-p2/owned`\n", "duration_seconds": 1.928095705, "usage": {"input_tokens": 11417, "output_tokens": 43, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11460}}}} -{"t_ms": 5932, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "7240f716-f2bd-4641-b210-a4a282a756f7", "status": "SUCCESS", "response": "The `phase2 MCP echo tool` is not available in the tool definitions provided in this environment.\n\nRunning `pwd` in the workspace reports the directory:\n`/owned`\n", "duration_seconds": 5.61440038, "num_turns": 1, "usage": {"input_tokens": 22703, "output_tokens": 404, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 23107}}}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-agent-discovered.capture.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-agent-discovered.capture.ndjson deleted file mode 100644 index c5d6ddd6fd..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-agent-discovered.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "/owned", "--add-dir", "", "--agent", "phase2", "--dangerously-skip-permissions"], "cwd": "", "home": "/mcp-agent-discovered-home", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 5524, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-agent-discovered.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-agent-discovered.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/mcp-agent-discovered.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-agent-discovered.stdin.ndjson deleted file mode 100644 index d8cfdf92de..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-agent-discovered.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 324, "stream": "stdin", "data": {"event": "user", "message": {"content": "Call the phase2 MCP echo tool with text PHASE2_DISCOVERY. Then use run_command pwd and report the workspace directory. Do not choose a different directory."}}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-agent-discovered.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-agent-discovered.stdout.ndjson deleted file mode 100644 index a275715465..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-agent-discovered.stdout.ndjson +++ /dev/null @@ -1,19 +0,0 @@ -{"t_ms": 324, "stream": "stdout", "data": {"event": "init", "conversation_id": "b4d0a25b-bb0a-4495-84af-247f689ba6ad", "init": {"cwd": "", "agent": "phase2", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "always-proceed"}}} -{"t_ms": 356, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b4d0a25b-bb0a-4495-84af-247f689ba6ad", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 3842, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b4d0a25b-bb0a-4495-84af-247f689ba6ad", "step_index": 1, "state": "DONE", "step_type": "agent_response", "duration_seconds": 3.487178538, "usage": {"input_tokens": 11279, "output_tokens": 433, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11712}}}} -{"t_ms": 3842, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b4d0a25b-bb0a-4495-84af-247f689ba6ad", "step_index": 2, "state": "ACTIVE", "step_type": "tool", "tool_name": "run_command", "tool_info": {"name": "run_command", "parameters": {"CommandLine": "pwd"}}}}} -{"t_ms": 3867, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b4d0a25b-bb0a-4495-84af-247f689ba6ad", "step_index": 2, "state": "DONE", "step_type": "tool", "tool_name": "run_command", "duration_seconds": 0.008305961, "tool_info": {"name": "run_command", "parameters": {"CommandLine": "pwd"}, "output": "/owned\r\n"}}}} -{"t_ms": 5050, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b4d0a25b-bb0a-4495-84af-247f689ba6ad", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "1."}}} -{"t_ms": 5177, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b4d0a25b-bb0a-4495-84af-247f689ba6ad", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " **MCP Echo "}}} -{"t_ms": 5203, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b4d0a25b-bb0a-4495-84af-247f689ba6ad", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "Tool**: There is no MCP "}}} -{"t_ms": 5228, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b4d0a25b-bb0a-4495-84af-247f689ba6ad", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "`echo` tool "}}} -{"t_ms": 5254, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b4d0a25b-bb0a-4495-84af-247f689ba6ad", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "registered or available "}}} -{"t_ms": 5279, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b4d0a25b-bb0a-4495-84af-247f689ba6ad", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "in the current environme"}}} -{"t_ms": 5304, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b4d0a25b-bb0a-4495-84af-247f689ba6ad", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "nt/tool definit"}}} -{"t_ms": 5330, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b4d0a25b-bb0a-4495-84af-247f689ba6ad", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ions.\n2. **Workspace Dir"}}} -{"t_ms": 5355, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b4d0a25b-bb0a-4495-84af-247f689ba6ad", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ectory**: Ra"}}} -{"t_ms": 5381, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b4d0a25b-bb0a-4495-84af-247f689ba6ad", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "n `pwd` in the current w"}}} -{"t_ms": 5406, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b4d0a25b-bb0a-4495-84af-247f689ba6ad", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "orkspace directory and o"}}} -{"t_ms": 5432, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b4d0a25b-bb0a-4495-84af-247f689ba6ad", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "btained:\n ```\n /tmp/"}}} -{"t_ms": 5457, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b4d0a25b-bb0a-4495-84af-247f689ba6ad", "step_index": 3, "state": "DONE", "step_type": "agent_response", "text_delta": "agy-p2/owned\n ```\n", "duration_seconds": 1.60141087, "usage": {"input_tokens": 11407, "output_tokens": 62, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11469}}}} -{"t_ms": 5457, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "b4d0a25b-bb0a-4495-84af-247f689ba6ad", "status": "SUCCESS", "response": "1. **MCP Echo Tool**: There is no MCP `echo` tool registered or available in the current environment/tool definitions.\n2. **Workspace Directory**: Ran `pwd` in the current workspace directory and obtained:\n ```\n /owned\n ```\n", "duration_seconds": 5.118791831, "num_turns": 1, "usage": {"input_tokens": 22686, "output_tokens": 495, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 23181}}}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-agent-file.capture.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-agent-file.capture.ndjson deleted file mode 100644 index 57d8da6b18..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-agent-file.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--disable-slash-commands", "--dangerously-skip-permissions", "--add-dir", "", "--agent", "/owned/agent.md"], "cwd": "", "home": "/mcp-agent-file-home", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 12172, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-agent-file.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-agent-file.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/mcp-agent-file.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-agent-file.stdin.ndjson deleted file mode 100644 index 21feb61a76..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-agent-file.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 305, "stream": "stdin", "data": {"event": "user", "message": {"content": "First call the phase2 MCP echo tool with text PHASE2_DISCOVERY. If unavailable say MCP_UNAVAILABLE. Then use shell pwd, read input.txt and write output.txt containing PHASE2_WRITE. Use the workspace default directory, without me supplying absolute paths. Report the exact paths used."}}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-agent-file.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-agent-file.stdout.ndjson deleted file mode 100644 index 3d172dbe90..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-agent-file.stdout.ndjson +++ /dev/null @@ -1,39 +0,0 @@ -{"t_ms": 305, "stream": "stdout", "data": {"event": "init", "conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "init": {"cwd": "", "agent": "/owned/agent.md", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "always-proceed"}}} -{"t_ms": 334, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 4780, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 1, "state": "DONE", "step_type": "agent_response", "duration_seconds": 4.446916168, "usage": {"input_tokens": 11298, "output_tokens": 523, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11821}}}} -{"t_ms": 4780, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 2, "state": "ACTIVE", "step_type": "tool", "tool_name": "run_command", "tool_info": {"name": "run_command", "parameters": {"CommandLine": "pwd"}}}}} -{"t_ms": 4780, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 2, "state": "DONE", "step_type": "tool", "tool_name": "run_command", "duration_seconds": 0.007696421, "tool_info": {"name": "run_command", "parameters": {"CommandLine": "pwd"}, "output": "\r\n"}}}} -{"t_ms": 6843, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 3, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.062108191, "usage": {"input_tokens": 11436, "output_tokens": 47, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11483}}}} -{"t_ms": 6843, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 4, "state": "ACTIVE", "step_type": "tool", "tool_name": "view_file", "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/input.txt"}}}}} -{"t_ms": 6869, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 4, "state": "DONE", "step_type": "tool", "tool_name": "view_file", "duration_seconds": 0.002313647, "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/input.txt"}, "output": "1 lines, 23 bytes"}}}} -{"t_ms": 8781, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 5, "state": "DONE", "step_type": "agent_response", "duration_seconds": 1.919162211, "usage": {"input_tokens": 11654, "output_tokens": 79, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11733}}}} -{"t_ms": 8781, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 6, "state": "ACTIVE", "step_type": "tool", "tool_name": "write_to_file", "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/output.txt"}}}}} -{"t_ms": 8781, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 6, "state": "DONE", "step_type": "tool", "tool_name": "write_to_file", "duration_seconds": 0.003384418, "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/output.txt"}}}}} -{"t_ms": 11046, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "MCP_"}}} -{"t_ms": 11224, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "UNAVAILABLE\n\n### Execution Summary\n\n"}}} -{"t_ms": 11249, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "1. **MCP Ech"}}} -{"t_ms": 11275, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "o Tool Check**:\n"}}} -{"t_ms": 11402, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " - Status: MCP echo to"}}} -{"t_ms": 11427, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ol was not a"}}} -{"t_ms": 11452, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "vailable in the active e"}}} -{"t_ms": 11478, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "nvironment tools (`MCP_U"}}} -{"t_ms": 11504, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "NAVAILABLE`).\n\n2. **Work"}}} -{"t_ms": 11529, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ing Directory (`pwd`)**:"}}} -{"t_ms": 11554, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "\n - Output"}}} -{"t_ms": 11580, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": ": `"}}} -{"t_ms": 11605, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "`\n\n3. **Read File**:"}}} -{"t_ms": 11630, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "\n - Path: "}}} -{"t_ms": 11656, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "[input.txt](file:///tmp/"}}} -{"t_ms": 11681, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "agy-p2/works"}}} -{"t_ms": 11706, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "pace/"}}} -{"t_ms": 11732, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "input.txt)\n "}}} -{"t_ms": 11757, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " - Content: `PHASE2_WOR"}}} -{"t_ms": 11783, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "KSPACE_MARKER`\n\n4. **Wri"}}} -{"t_ms": 11808, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "tten"}}} -{"t_ms": 11859, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " File**:\n "}}} -{"t_ms": 11885, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "- Path: [output.txt](fil"}}} -{"t_ms": 11910, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "e:///workspac"}}} -{"t_ms": 11936, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "e/output.txt)\n - C"}}} -{"t_ms": 11961, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ontent: `PHASE2_WRITE`"}}} -{"t_ms": 12037, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "step_index": 7, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 3.264948634, "usage": {"input_tokens": 11821, "output_tokens": 155, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11976}}}} -{"t_ms": 12063, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "a6983f10-58bf-4679-bd90-b66865c3bf93", "status": "SUCCESS", "response": "MCP_UNAVAILABLE\n\n### Execution Summary\n\n1. **MCP Echo Tool Check**:\n - Status: MCP echo tool was not available in the active environment tools (`MCP_UNAVAILABLE`).\n\n2. **Working Directory (`pwd`)**:\n - Output: ``\n\n3. **Read File**:\n - Path: [input.txt](file:///input.txt)\n - Content: `PHASE2_WORKSPACE_MARKER`\n\n4. **Written File**:\n - Path: [output.txt](file:///output.txt)\n - Content: `PHASE2_WRITE`\n", "duration_seconds": 11.727995605, "num_turns": 1, "usage": {"input_tokens": 46209, "output_tokens": 804, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 47013}}}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-global.capture.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-global.capture.ndjson deleted file mode 100644 index 452d5e7036..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-global.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "", "--disable-slash-commands", "--dangerously-skip-permissions"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 9237, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-global.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-global.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/mcp-global.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-global.stdin.ndjson deleted file mode 100644 index cf779b2f3b..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-global.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 300, "stream": "stdin", "data": {"event": "user", "message": {"content": "Call the phase0 MCP echo tool with text PHASE0_MCP. Do not use shell. If unavailable say UNAVAILABLE."}}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-global.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-global.stdout.ndjson deleted file mode 100644 index 06b16f0005..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-global.stdout.ndjson +++ /dev/null @@ -1,14 +0,0 @@ -{"t_ms": 300, "stream": "stdout", "data": {"event": "init", "conversation_id": "e21f27e1-de55-4f15-a93f-9f70d726915e", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "always-proceed"}}} -{"t_ms": 328, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e21f27e1-de55-4f15-a93f-9f70d726915e", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 3784, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e21f27e1-de55-4f15-a93f-9f70d726915e", "step_index": 1, "state": "DONE", "step_type": "agent_response", "duration_seconds": 3.433302844, "usage": {"input_tokens": 11924, "output_tokens": 406, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12330}}}} -{"t_ms": 3784, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e21f27e1-de55-4f15-a93f-9f70d726915e", "step_index": 2, "state": "ACTIVE", "step_type": "tool", "tool_name": "view_file", "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/.gemini/antigravity-cli/mcp/phase0/echo.json"}}}}} -{"t_ms": 3784, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e21f27e1-de55-4f15-a93f-9f70d726915e", "step_index": 2, "state": "DONE", "step_type": "tool", "tool_name": "view_file", "duration_seconds": 0.003012222, "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/.gemini/antigravity-cli/mcp/phase0/echo.json"}, "output": "1 lines, 184 bytes"}}}} -{"t_ms": 5749, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e21f27e1-de55-4f15-a93f-9f70d726915e", "step_index": 3, "state": "DONE", "step_type": "agent_response", "duration_seconds": 1.966909166, "usage": {"input_tokens": 12221, "output_tokens": 63, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12284}}}} -{"t_ms": 5749, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e21f27e1-de55-4f15-a93f-9f70d726915e", "step_index": 4, "state": "ACTIVE", "step_type": "tool", "tool_name": "call_mcp_tool", "tool_info": {"name": "call_mcp_tool", "parameters": {"Arguments": "{\"text\": \"PHASE0_MCP\"}", "ServerName": "phase0", "ToolName": "echo"}}}}} -{"t_ms": 5749, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e21f27e1-de55-4f15-a93f-9f70d726915e", "step_index": 4, "state": "ERROR", "step_type": "tool", "tool_name": "call_mcp_tool", "duration_seconds": 0.004579062, "tool_info": {"name": "call_mcp_tool", "parameters": {"Arguments": "{\"text\": \"PHASE0_MCP\"}", "ServerName": "phase0", "ToolName": "echo"}, "error": {"type": "TOOL_ERROR", "message": "calling \"tools/call\": [\n {\n \"expected\": \"record\",\n \"code\": \"invalid_type\",\n \"path\": [\n \"params\",\n \"arguments\"\n ],\n \"message\": \"Invalid input: expected record, received string\"\n }\n]"}}}}} -{"t_ms": 7536, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e21f27e1-de55-4f15-a93f-9f70d726915e", "step_index": 5, "state": "DONE", "step_type": "agent_response", "duration_seconds": 1.781658824, "usage": {"input_tokens": 12407, "output_tokens": 60, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12467}}}} -{"t_ms": 7536, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e21f27e1-de55-4f15-a93f-9f70d726915e", "step_index": 6, "state": "ACTIVE", "step_type": "tool", "tool_name": "call_mcp_tool", "tool_info": {"name": "call_mcp_tool", "parameters": {"Arguments": "{\"text\":\"PHASE0_MCP\"}", "ServerName": "phase0", "ToolName": "echo"}}}}} -{"t_ms": 7536, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e21f27e1-de55-4f15-a93f-9f70d726915e", "step_index": 6, "state": "ERROR", "step_type": "tool", "tool_name": "call_mcp_tool", "duration_seconds": 0.003570676, "tool_info": {"name": "call_mcp_tool", "parameters": {"Arguments": "{\"text\":\"PHASE0_MCP\"}", "ServerName": "phase0", "ToolName": "echo"}, "error": {"type": "TOOL_ERROR", "message": "calling \"tools/call\": [\n {\n \"expected\": \"record\",\n \"code\": \"invalid_type\",\n \"path\": [\n \"params\",\n \"arguments\"\n ],\n \"message\": \"Invalid input: expected record, received string\"\n }\n]"}}}}} -{"t_ms": 8744, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e21f27e1-de55-4f15-a93f-9f70d726915e", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "UNAVAILABLE"}}} -{"t_ms": 9073, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e21f27e1-de55-4f15-a93f-9f70d726915e", "step_index": 7, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 1.522542972, "usage": {"input_tokens": 12590, "output_tokens": 2, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12592}}}} -{"t_ms": 9073, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "e21f27e1-de55-4f15-a93f-9f70d726915e", "status": "SUCCESS", "response": "UNAVAILABLE\n", "duration_seconds": 8.74880144, "num_turns": 1, "usage": {"input_tokens": 49142, "output_tokens": 531, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 49673}}}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-help.capture.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-help.capture.ndjson deleted file mode 100644 index 64ea60355d..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-help.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "mcp", "add", "--help"], "cwd": "", "home": "", "settings": null, "env": {}}} -{"t_ms": 75, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-help.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-help.stderr.ndjson deleted file mode 100644 index 93f2f5abb9..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-help.stderr.ndjson +++ /dev/null @@ -1,28 +0,0 @@ -{"t_ms": 69, "stream": "stderr", "data": "Usage: agy mcp add [flags] [args...]"} -{"t_ms": 69, "stream": "stderr", "data": ""} -{"t_ms": 69, "stream": "stderr", "data": "Add or update an MCP server configuration"} -{"t_ms": 69, "stream": "stderr", "data": ""} -{"t_ms": 69, "stream": "stderr", "data": "Flags:"} -{"t_ms": 69, "stream": "stderr", "data": " -H Short alias for --header (default [])"} -{"t_ms": 69, "stream": "stderr", "data": " -e Short alias for --env (default [])"} -{"t_ms": 69, "stream": "stderr", "data": " --env Environment variable KEY=value (repeatable) (default [])"} -{"t_ms": 69, "stream": "stderr", "data": " -h Show help"} -{"t_ms": 69, "stream": "stderr", "data": " --header HTTP header Key: Value (repeatable) (default [])"} -{"t_ms": 69, "stream": "stderr", "data": " --help Show help"} -{"t_ms": 69, "stream": "stderr", "data": " -t Short alias for --type (default stdio)"} -{"t_ms": 69, "stream": "stderr", "data": " --type Server type: 'stdio' or 'http' (default stdio)"} -{"t_ms": 69, "stream": "stderr", "data": ""} -{"t_ms": 69, "stream": "stderr", "data": "Arguments:"} -{"t_ms": 69, "stream": "stderr", "data": " Unique name for the server."} -{"t_ms": 69, "stream": "stderr", "data": " Executable for a stdio server, or the URL for an http server."} -{"t_ms": 69, "stream": "stderr", "data": " [args...] Arguments passed to the stdio command."} -{"t_ms": 69, "stream": "stderr", "data": ""} -{"t_ms": 69, "stream": "stderr", "data": "Notes:"} -{"t_ms": 69, "stream": "stderr", "data": " Flags must come before ; a flag placed after it is rejected."} -{"t_ms": 69, "stream": "stderr", "data": " http/https URLs are detected automatically, so --type is usually unnecessary."} -{"t_ms": 69, "stream": "stderr", "data": " Use -- before the command to pass a command or args that begin with '-'."} -{"t_ms": 69, "stream": "stderr", "data": ""} -{"t_ms": 69, "stream": "stderr", "data": "Examples:"} -{"t_ms": 69, "stream": "stderr", "data": " agy mcp add fs npx -y /work"} -{"t_ms": 69, "stream": "stderr", "data": " agy mcp add --header \": \" api https://example.com/mcp"} -{"t_ms": 69, "stream": "stderr", "data": " agy mcp add --env = gh -- docker run -i "} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-help.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-help.stdin.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/mcp-help.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-help.stdout.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/mcp-http.requests.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-http.requests.ndjson deleted file mode 100644 index ebe28a2ddb..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-http.requests.ndjson +++ /dev/null @@ -1,20 +0,0 @@ -{"stream": "http_request", "data": {"direction": "server_to_mcp", "message": {"jsonrpc": "2.0", "id": 1, "method": "server/discover", "params": {"_meta": {"io.modelcontextprotocol/clientCapabilities": {"elicitation": {"form": {}, "url": {}}, "roots": {"listChanged": true}}, "io.modelcontextprotocol/clientInfo": {"name": "antigravity-client", "version": "v1.0.0"}, "io.modelcontextprotocol/protocolVersion": "2026-07-28"}}}}} -{"stream": "http_request", "data": {"direction": "server_to_mcp", "message": {"jsonrpc": "2.0", "id": 2, "method": "initialize", "params": {"clientInfo": {"name": "antigravity-client", "version": "v1.0.0"}, "protocolVersion": "2025-11-25", "capabilities": {"elicitation": {"form": {}, "url": {}}, "roots": {"listChanged": true}}}}}} -{"stream": "http_request", "data": {"direction": "server_to_mcp", "message": {"jsonrpc": "2.0", "method": "notifications/roots/list_changed", "params": {}}}} -{"stream": "http_request", "data": {"direction": "server_to_mcp", "message": {"jsonrpc": "2.0", "method": "notifications/initialized", "params": {}}}} -{"stream": "http_request", "data": {"direction": "server_to_mcp", "message": {"jsonrpc": "2.0", "id": 3, "method": "tools/list", "params": {}}}} -{"stream": "http_request", "data": {"direction": "server_to_mcp", "message": {"jsonrpc": "2.0", "method": "notifications/roots/list_changed", "params": {}}}} -{"stream": "http_request", "data": {"direction": "server_to_mcp", "message": {"jsonrpc": "2.0", "id": 4, "method": "tools/call", "params": {"_meta": {"antigravity.google/artifacts_dir": "/.gemini/antigravity-cli/brain/e21f27e1-de55-4f15-a93f-9f70d726915e", "antigravity.google/conversation_id": "e21f27e1-de55-4f15-a93f-9f70d726915e", "progressToken": "88c11f68-c1b5-46f7-ae6d-1cb662c4ca0c:4"}, "name": "echo", "arguments": "{\"text\": \"PHASE0_MCP\"}"}}}} -{"stream": "http_request", "data": {"direction": "server_to_mcp", "message": {"jsonrpc": "2.0", "id": 5, "method": "tools/call", "params": {"_meta": {"antigravity.google/artifacts_dir": "/.gemini/antigravity-cli/brain/e21f27e1-de55-4f15-a93f-9f70d726915e", "antigravity.google/conversation_id": "e21f27e1-de55-4f15-a93f-9f70d726915e", "progressToken": "88c11f68-c1b5-46f7-ae6d-1cb662c4ca0c:6"}, "name": "echo", "arguments": "{\"text\":\"PHASE0_MCP\"}"}}}} -{"stream": "http_request", "data": {"direction": "server_to_mcp", "message": {"jsonrpc": "2.0", "id": 1, "method": "server/discover", "params": {"_meta": {"io.modelcontextprotocol/clientCapabilities": {"elicitation": {"form": {}, "url": {}}, "roots": {"listChanged": true}}, "io.modelcontextprotocol/clientInfo": {"name": "antigravity-client", "version": "v1.0.0"}, "io.modelcontextprotocol/protocolVersion": "2026-07-28"}}}}} -{"stream": "http_request", "data": {"direction": "server_to_mcp", "message": {"jsonrpc": "2.0", "id": 2, "method": "initialize", "params": {"clientInfo": {"name": "antigravity-client", "version": "v1.0.0"}, "protocolVersion": "2025-11-25", "capabilities": {"elicitation": {"form": {}, "url": {}}, "roots": {"listChanged": true}}}}}} -{"stream": "http_request", "data": {"direction": "server_to_mcp", "message": {"jsonrpc": "2.0", "method": "notifications/initialized", "params": {}}}} -{"stream": "http_request", "data": {"direction": "server_to_mcp", "message": {"jsonrpc": "2.0", "id": 3, "method": "tools/list", "params": {}}}} -{"stream": "http_request", "data": {"direction": "server_to_mcp", "message": {"jsonrpc": "2.0", "id": 4, "method": "tools/call", "params": {"_meta": {"antigravity.google/artifacts_dir": "/.gemini/antigravity-cli/brain/89273b5a-77cd-4d4b-ac80-4475b2c751d0", "antigravity.google/conversation_id": "89273b5a-77cd-4d4b-ac80-4475b2c751d0", "progressToken": "c009d4b2-d4f6-44f3-9a29-1b0092eb123f:4"}, "name": "echo", "arguments": "{\"text\":\"PHASE0_MCP\"}"}}}} -{"stream": "http_request", "data": {"direction": "server_to_mcp", "message": {"jsonrpc": "2.0", "id": 5, "method": "tools/call", "params": {"_meta": {"antigravity.google/artifacts_dir": "/.gemini/antigravity-cli/brain/89273b5a-77cd-4d4b-ac80-4475b2c751d0", "antigravity.google/conversation_id": "89273b5a-77cd-4d4b-ac80-4475b2c751d0", "progressToken": "c009d4b2-d4f6-44f3-9a29-1b0092eb123f:6"}, "name": "echo", "arguments": "{\"text\": \"PHASE0_MCP\"}"}}}} -{"stream": "http_request", "data": {"direction": "server_to_mcp", "message": {"jsonrpc": "2.0", "id": 1, "method": "server/discover", "params": {"_meta": {"io.modelcontextprotocol/clientCapabilities": {"elicitation": {"form": {}, "url": {}}, "roots": {"listChanged": true}}, "io.modelcontextprotocol/clientInfo": {"name": "antigravity-client", "version": "v1.0.0"}, "io.modelcontextprotocol/protocolVersion": "2026-07-28"}}}}} -{"stream": "http_request", "data": {"direction": "server_to_mcp", "message": {"jsonrpc": "2.0", "id": 2, "method": "initialize", "params": {"clientInfo": {"name": "antigravity-client", "version": "v1.0.0"}, "protocolVersion": "2025-11-25", "capabilities": {"elicitation": {"form": {}, "url": {}}, "roots": {"listChanged": true}}}}}} -{"stream": "http_request", "data": {"direction": "server_to_mcp", "message": {"jsonrpc": "2.0", "method": "notifications/initialized", "params": {}}}} -{"stream": "http_request", "data": {"direction": "server_to_mcp", "message": {"jsonrpc": "2.0", "id": 3, "method": "tools/list", "params": {}}}} -{"stream": "http_request", "data": {"direction": "server_to_mcp", "message": {"jsonrpc": "2.0", "id": 4, "method": "tools/call", "params": {"_meta": {"antigravity.google/artifacts_dir": "/.gemini/antigravity-cli/brain/0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "antigravity.google/conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "progressToken": "d3dee97c-770c-4268-86af-baa39125d7c0:4"}, "name": "echo", "arguments": "{\"text\":\"PHASE0_MCP\"}"}}}} -{"stream": "http_request", "data": {"direction": "server_to_mcp", "message": {"jsonrpc": "2.0", "id": 5, "method": "tools/call", "params": {"_meta": {"antigravity.google/artifacts_dir": "/.gemini/antigravity-cli/brain/0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "antigravity.google/conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "progressToken": "d3dee97c-770c-4268-86af-baa39125d7c0:6"}, "name": "echo", "arguments": "null"}}}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-list.capture.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-list.capture.ndjson deleted file mode 100644 index a7a6d66835..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-list.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "mcp", "list"], "cwd": "", "home": "", "settings": null, "env": {}}} -{"t_ms": 71, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-list.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-list.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/mcp-list.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-list.stdin.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/mcp-list.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-list.stdout.ndjson deleted file mode 100644 index 644935d9f8..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-list.stdout.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 65, "stream": "stdout", "data": "No MCP servers configured."} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-owned-cwd.capture.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-owned-cwd.capture.ndjson deleted file mode 100644 index ec822f7c19..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-owned-cwd.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--disable-slash-commands", "--dangerously-skip-permissions", "--add-dir", ""], "cwd": "/owned-parent/workspace", "home": "/mcp-owned-cwd-home", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}, "cwd_realpath": "/owned"}} -{"t_ms": 21316, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-owned-cwd.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-owned-cwd.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/mcp-owned-cwd.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-owned-cwd.stdin.ndjson deleted file mode 100644 index 4606a29d9d..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-owned-cwd.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 299, "stream": "stdin", "data": {"event": "user", "message": {"content": "First call the phase2 MCP echo tool with text PHASE2_DISCOVERY. If unavailable say MCP_UNAVAILABLE. Then use shell pwd, read input.txt and write output.txt containing PHASE2_WRITE. Use the workspace default directory, without me supplying absolute paths. Report the exact paths used."}}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-owned-cwd.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-owned-cwd.stdout.ndjson deleted file mode 100644 index fd49e1756a..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-owned-cwd.stdout.ndjson +++ /dev/null @@ -1,95 +0,0 @@ -{"t_ms": 299, "stream": "stdout", "data": {"event": "init", "conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "init": {"cwd": "/owned", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "always-proceed"}}} -{"t_ms": 353, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 4289, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 1, "state": "DONE", "step_type": "agent_response", "duration_seconds": 3.923817807, "usage": {"input_tokens": 11986, "output_tokens": 312, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12298}}}} -{"t_ms": 4289, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 2, "state": "ACTIVE", "step_type": "tool", "tool_name": "view_file", "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/mcp-owned-cwd-home/.gemini/antigravity-cli/mcp/phase2/echo.json"}}}}} -{"t_ms": 4289, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 2, "state": "DONE", "step_type": "tool", "tool_name": "view_file", "duration_seconds": 0.003110546, "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/mcp-owned-cwd-home/.gemini/antigravity-cli/mcp/phase2/echo.json"}, "output": "1 lines, 184 bytes"}}}} -{"t_ms": 6028, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 3, "state": "DONE", "step_type": "agent_response", "duration_seconds": 1.727561556, "usage": {"input_tokens": 12292, "output_tokens": 64, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12356}}}} -{"t_ms": 6028, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 4, "state": "ACTIVE", "step_type": "tool", "tool_name": "call_mcp_tool", "tool_info": {"name": "call_mcp_tool", "parameters": {"Arguments": "{\"text\": \"PHASE2_DISCOVERY\"}", "ServerName": "phase2", "ToolName": "echo"}}}}} -{"t_ms": 6028, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 4, "state": "ERROR", "step_type": "tool", "tool_name": "call_mcp_tool", "duration_seconds": 0.003994388, "tool_info": {"name": "call_mcp_tool", "parameters": {"Arguments": "{\"text\": \"PHASE2_DISCOVERY\"}", "ServerName": "phase2", "ToolName": "echo"}, "error": {"type": "TOOL_ERROR", "message": "calling \"tools/call\": [\n {\n \"expected\": \"record\",\n \"code\": \"invalid_type\",\n \"path\": [\n \"params\",\n \"arguments\"\n ],\n \"message\": \"Invalid input: expected record, received string\"\n }\n]"}}}}} -{"t_ms": 7764, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 5, "state": "DONE", "step_type": "agent_response", "duration_seconds": 1.73152143, "usage": {"input_tokens": 12479, "output_tokens": 63, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12542}}}} -{"t_ms": 7764, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 6, "state": "ACTIVE", "step_type": "tool", "tool_name": "call_mcp_tool", "tool_info": {"name": "call_mcp_tool", "parameters": {"Arguments": "{\"text\":\"PHASE2_DISCOVERY\"}", "ServerName": "phase2", "ToolName": "echo"}}}}} -{"t_ms": 7764, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 6, "state": "ERROR", "step_type": "tool", "tool_name": "call_mcp_tool", "duration_seconds": 0.003571568, "tool_info": {"name": "call_mcp_tool", "parameters": {"Arguments": "{\"text\":\"PHASE2_DISCOVERY\"}", "ServerName": "phase2", "ToolName": "echo"}, "error": {"type": "TOOL_ERROR", "message": "calling \"tools/call\": [\n {\n \"expected\": \"record\",\n \"code\": \"invalid_type\",\n \"path\": [\n \"params\",\n \"arguments\"\n ],\n \"message\": \"Invalid input: expected record, received string\"\n }\n]"}}}}} -{"t_ms": 9626, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 7, "state": "DONE", "step_type": "agent_response", "duration_seconds": 1.8600456250000001, "usage": {"input_tokens": 12665, "output_tokens": 70, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12735}}}} -{"t_ms": 9626, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 8, "state": "ACTIVE", "step_type": "tool", "tool_name": "run_command", "tool_info": {"name": "run_command", "parameters": {"CommandLine": "pwd"}}}}} -{"t_ms": 9626, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 8, "state": "DONE", "step_type": "tool", "tool_name": "run_command", "duration_seconds": 0.005713043, "tool_info": {"name": "run_command", "parameters": {"CommandLine": "pwd"}, "output": "/owned\r\n"}}}} -{"t_ms": 11152, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 9, "state": "DONE", "step_type": "agent_response", "duration_seconds": 1.5154668610000002, "usage": {"input_tokens": 12800, "output_tokens": 47, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12847}}}} -{"t_ms": 11152, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 10, "state": "ACTIVE", "step_type": "tool", "tool_name": "view_file", "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/owned/input.txt"}}}}} -{"t_ms": 11152, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 10, "state": "ERROR", "step_type": "tool", "tool_name": "view_file", "duration_seconds": 0.002729213, "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/owned/input.txt"}, "error": {"type": "TOOL_ERROR", "message": "declaring permissions: cortex tool view_file: convert tool call for permissions: model output error: invalid tool call error (invalid_args) failed to read file: stat /owned/input.txt: no such file or directory"}}}}} -{"t_ms": 13856, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 11, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.6989989100000003, "usage": {"input_tokens": 12961, "output_tokens": 48, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 13009}}}} -{"t_ms": 13856, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 12, "state": "ACTIVE", "step_type": "tool", "tool_name": "view_file", "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/input.txt"}}}}} -{"t_ms": 13856, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 12, "state": "DONE", "step_type": "tool", "tool_name": "view_file", "duration_seconds": 0.002359752, "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/input.txt"}, "output": "1 lines, 23 bytes"}}}} -{"t_ms": 15999, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 13, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.144108405, "usage": {"input_tokens": 13180, "output_tokens": 78, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 13258}}}} -{"t_ms": 15999, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 14, "state": "ACTIVE", "step_type": "tool", "tool_name": "write_to_file", "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/owned/output.txt"}}}}} -{"t_ms": 15999, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 14, "state": "DONE", "step_type": "tool", "tool_name": "write_to_file", "duration_seconds": 0.004225731, "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/owned/output.txt"}}}}} -{"t_ms": 17563, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 15, "state": "DONE", "step_type": "agent_response", "duration_seconds": 1.5609718259999998, "usage": {"input_tokens": 13346, "output_tokens": 79, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 13425}}}} -{"t_ms": 17563, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 16, "state": "ACTIVE", "step_type": "tool", "tool_name": "write_to_file", "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/output.txt"}}}}} -{"t_ms": 17563, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 16, "state": "DONE", "step_type": "tool", "tool_name": "write_to_file", "duration_seconds": 0.003200805, "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/output.txt"}}}}} -{"t_ms": 18830, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "### Phase"}}} -{"t_ms": 19110, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " 2 MCP Tool Call\nThe `ph"}}} -{"t_ms": 19134, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ase2` MCP server was cal"}}} -{"t_ms": 19160, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "led with `ec"}}} -{"t_ms": 19185, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ho`, but tool execution "}}} -{"t_ms": 19211, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "returned a p"}}} -{"t_ms": 19237, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "arameter parsing error (`invalid_typ"}}} -{"t_ms": 19262, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "e: expected record, rece"}}} -{"t_ms": 19288, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ived string`"}}} -{"t_ms": 19314, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " when passing arguments)"}}} -{"t_ms": 19339, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": ". Therefore:"}}} -{"t_ms": 19365, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " **MCP_UNAVAILABLE** (or"}}} -{"t_ms": 19390, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " encounterin"}}} -{"t_ms": 19416, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "g invocation schema incompatibilitie"}}} -{"t_ms": 19441, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "s).\n\n---\n\n### Shell `pwd"}}} -{"t_ms": 19466, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "`\nExecuted `"}}} -{"t_ms": 19492, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "pwd` in the default comm"}}} -{"t_ms": 19517, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "and working "}}} -{"t_ms": 19544, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "directory:\n- **Default CWD:** `/tmp/"}}} -{"t_ms": 19570, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "agy-p2/owned`\n\n---\n\n### "}}} -{"t_ms": 19595, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "File Operati"}}} -{"t_ms": 19621, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ons\n1. **Read `input.txt"}}} -{"t_ms": 19646, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "`:**\n - Attempted: [`/o"}}} -{"t_ms": 19672, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "wned/input.t"}}} -{"t_ms": 19698, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "xt`](file:///"}}} -{"t_ms": 19723, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "owned/"}}} -{"t_ms": 19774, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "input.txt) (not present)\n - Read f"}}} -{"t_ms": 19799, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "rom:"}}} -{"t_ms": 19879, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " [`"}}} -{"t_ms": 19905, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "/input.txt`](file:///tmp"}}} -{"t_ms": 19930, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "/agy-p2/work"}}} -{"t_ms": 19956, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "space/input.txt)\n - Content: `PHAS"}}} -{"t_ms": 19981, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "E2_WORKSPACE"}}} -{"t_ms": 20006, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "_MARKER`\n\n2. **Wrote `ou"}}} -{"t_ms": 20032, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "tput.txt`:**\n"}}} -{"t_ms": 20083, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " - Written"}}} -{"t_ms": 20109, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " to: [`/tmp/"}}} -{"t_ms": 20134, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "agy-p2/owned/output.txt`"}}} -{"t_ms": 20160, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "](file:///tmp/agy-p"}}} -{"t_ms": 20185, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "2/owned/output.txt) (def"}}} -{"t_ms": 20211, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ault CWD)\n - Also writ"}}} -{"t_ms": 20237, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ten to:"}}} -{"t_ms": 20364, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " [`/tmp/agy-"}}} -{"t_ms": 20389, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "p2/workspace/output.txt`"}}} -{"t_ms": 20415, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "](file:///wor"}}} -{"t_ms": 20440, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "kspace/outpu"}}} -{"t_ms": 20465, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "t.txt) ("}}} -{"t_ms": 20491, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "active workspace directo"}}} -{"t_ms": 20517, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ry)\n - Content: `PHASE"}}} -{"t_ms": 20542, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "2_WRITE`\n\n---\n\n### Exact"}}} -{"t_ms": 20568, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " Paths Used\n"}}} -{"t_ms": 20644, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "- **Shell CWD:** `/tmp/a"}}} -{"t_ms": 20671, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "gy-p2/owned`\n- **Input p"}}} -{"t_ms": 20695, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ath:**"}}} -{"t_ms": 20747, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " [`"}}} -{"t_ms": 20773, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "/input.txt`](file:///tmp"}}} -{"t_ms": 20799, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "/agy-p2/workspace/input."}}} -{"t_ms": 20824, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "txt"}}} -{"t_ms": 20850, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": ")\n- **Output path:** [`/"}}} -{"t_ms": 20876, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "tmp/agy-p2/o"}}} -{"t_ms": 20901, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "wned/output.txt`](file:/"}}} -{"t_ms": 20927, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "//"}}} -{"t_ms": 20952, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "tmp/agy-p2/o"}}} -{"t_ms": 20978, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "wned/output.txt) &"}}} -{"t_ms": 21105, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " [`"}}} -{"t_ms": 21131, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "/output.txt`"}}} -{"t_ms": 21156, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "](file:///wor"}}} -{"t_ms": 21181, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "step_index": 17, "state": "DONE", "step_type": "agent_response", "text_delta": "kspace/output.txt)\n", "duration_seconds": 3.625222904, "usage": {"input_tokens": 13513, "output_tokens": 439, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 13952}}}} -{"t_ms": 21207, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "09af3250-b019-4549-80fe-e2fb138a02be", "status": "SUCCESS", "response": "### Phase 2 MCP Tool Call\nThe `phase2` MCP server was called with `echo`, but tool execution returned a parameter parsing error (`invalid_type: expected record, received string` when passing arguments). Therefore: **MCP_UNAVAILABLE** (or encountering invocation schema incompatibilities).\n\n---\n\n### Shell `pwd`\nExecuted `pwd` in the default command working directory:\n- **Default CWD:** `/owned`\n\n---\n\n### File Operations\n1. **Read `input.txt`:**\n - Attempted: [`/owned/input.txt`](file:///owned/input.txt) (not present)\n - Read from: [`/input.txt`](file:///input.txt)\n - Content: `PHASE2_WORKSPACE_MARKER`\n\n2. **Wrote `output.txt`:**\n - Written to: [`/owned/output.txt`](file:///owned/output.txt) (default CWD)\n - Also written to: [`/output.txt`](file:///output.txt) (active workspace directory)\n - Content: `PHASE2_WRITE`\n\n---\n\n### Exact Paths Used\n- **Shell CWD:** `/owned`\n- **Input path:** [`/input.txt`](file:///input.txt)\n- **Output path:** [`/owned/output.txt`](file:///owned/output.txt) & [`/output.txt`](file:///output.txt)\n", "duration_seconds": 20.876486639, "num_turns": 1, "usage": {"input_tokens": 115222, "output_tokens": 1200, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 116422}}}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-owned-first-add-dir.capture.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-owned-first-add-dir.capture.ndjson deleted file mode 100644 index ea2081bbd9..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-owned-first-add-dir.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--disable-slash-commands", "--dangerously-skip-permissions", "--add-dir", "/owned", "--add-dir", ""], "cwd": "", "home": "/mcp-owned-first-add-dir-home", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 23197, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-owned-first-add-dir.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-owned-first-add-dir.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/mcp-owned-first-add-dir.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-owned-first-add-dir.stdin.ndjson deleted file mode 100644 index 1cb2727caa..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-owned-first-add-dir.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 307, "stream": "stdin", "data": {"event": "user", "message": {"content": "First call the phase2 MCP echo tool with text PHASE2_DISCOVERY. If unavailable say MCP_UNAVAILABLE. Then use shell pwd, read input.txt and write output.txt containing PHASE2_WRITE. Use the workspace default directory, without me supplying absolute paths. Report the exact paths used."}}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-owned-first-add-dir.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-owned-first-add-dir.stdout.ndjson deleted file mode 100644 index 8f9424660b..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-owned-first-add-dir.stdout.ndjson +++ /dev/null @@ -1,60 +0,0 @@ -{"t_ms": 307, "stream": "stdout", "data": {"event": "init", "conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "always-proceed"}}} -{"t_ms": 373, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 3416, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 1, "state": "DONE", "step_type": "agent_response", "duration_seconds": 3.021318824, "usage": {"input_tokens": 12003, "output_tokens": 294, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12297}}}} -{"t_ms": 3416, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 2, "state": "ACTIVE", "step_type": "tool", "tool_name": "view_file", "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/mcp-owned-first-add-dir-home/.gemini/antigravity-cli/mcp/phase2/echo.json"}}}}} -{"t_ms": 3416, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 2, "state": "DONE", "step_type": "tool", "tool_name": "view_file", "duration_seconds": 0.004082433, "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/mcp-owned-first-add-dir-home/.gemini/antigravity-cli/mcp/phase2/echo.json"}, "output": "1 lines, 184 bytes"}}}} -{"t_ms": 5132, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 3, "state": "DONE", "step_type": "agent_response", "duration_seconds": 1.7174826109999999, "usage": {"input_tokens": 12318, "output_tokens": 64, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12382}}}} -{"t_ms": 5133, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 4, "state": "ACTIVE", "step_type": "tool", "tool_name": "call_mcp_tool", "tool_info": {"name": "call_mcp_tool", "parameters": {"Arguments": "{\"text\":\"PHASE2_DISCOVERY\"}", "ServerName": "phase2", "ToolName": "echo"}}}}} -{"t_ms": 5133, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 4, "state": "ERROR", "step_type": "tool", "tool_name": "call_mcp_tool", "duration_seconds": 0.005855559, "tool_info": {"name": "call_mcp_tool", "parameters": {"Arguments": "{\"text\":\"PHASE2_DISCOVERY\"}", "ServerName": "phase2", "ToolName": "echo"}, "error": {"type": "TOOL_ERROR", "message": "calling \"tools/call\": [\n {\n \"expected\": \"record\",\n \"code\": \"invalid_type\",\n \"path\": [\n \"params\",\n \"arguments\"\n ],\n \"message\": \"Invalid input: expected record, received string\"\n }\n]"}}}}} -{"t_ms": 9981, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 5, "state": "DONE", "step_type": "agent_response", "duration_seconds": 4.850317858, "usage": {"input_tokens": 12505, "output_tokens": 68, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12573}}}} -{"t_ms": 9982, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 6, "state": "ACTIVE", "step_type": "tool", "tool_name": "run_command", "tool_info": {"name": "run_command", "parameters": {"CommandLine": "pwd"}}}}} -{"t_ms": 10007, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 6, "state": "DONE", "step_type": "tool", "tool_name": "run_command", "duration_seconds": 0.005511565, "tool_info": {"name": "run_command", "parameters": {"CommandLine": "pwd"}, "output": "/owned\r\n"}}}} -{"t_ms": 11982, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 7, "state": "DONE", "step_type": "agent_response", "duration_seconds": 1.9862325090000001, "usage": {"input_tokens": 12638, "output_tokens": 47, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12685}}}} -{"t_ms": 11982, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 8, "state": "ACTIVE", "step_type": "tool", "tool_name": "view_file", "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/owned/input.txt"}}}}} -{"t_ms": 11982, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 8, "state": "ERROR", "step_type": "tool", "tool_name": "view_file", "duration_seconds": 0.002185687, "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/owned/input.txt"}, "error": {"type": "TOOL_ERROR", "message": "declaring permissions: cortex tool view_file: convert tool call for permissions: model output error: invalid tool call error (invalid_args) failed to read file: stat /owned/input.txt: no such file or directory"}}}}} -{"t_ms": 13701, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 9, "state": "DONE", "step_type": "agent_response", "duration_seconds": 1.704119444, "usage": {"input_tokens": 12799, "output_tokens": 51, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12850}}}} -{"t_ms": 13701, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 10, "state": "ACTIVE", "step_type": "tool", "tool_name": "view_file", "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/input.txt"}}}}} -{"t_ms": 13701, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 10, "state": "DONE", "step_type": "tool", "tool_name": "view_file", "duration_seconds": 0.003250577, "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/input.txt"}, "output": "1 lines, 23 bytes"}}}} -{"t_ms": 15580, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 11, "state": "DONE", "step_type": "agent_response", "duration_seconds": 1.85800527, "usage": {"input_tokens": 13021, "output_tokens": 82, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 13103}}}} -{"t_ms": 15580, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 12, "state": "ACTIVE", "step_type": "tool", "tool_name": "write_to_file", "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/owned/output.txt"}}}}} -{"t_ms": 15580, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 12, "state": "DONE", "step_type": "tool", "tool_name": "write_to_file", "duration_seconds": 0.005710137, "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/owned/output.txt"}}}}} -{"t_ms": 17976, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 13, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.381626267, "usage": {"input_tokens": 13191, "output_tokens": 82, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 13273}}}} -{"t_ms": 17976, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 14, "state": "ACTIVE", "step_type": "tool", "tool_name": "write_to_file", "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/output.txt"}}}}} -{"t_ms": 17976, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 14, "state": "DONE", "step_type": "tool", "tool_name": "write_to_file", "duration_seconds": 0.002994941, "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/output.txt"}}}}} -{"t_ms": 21806, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "1"}}} -{"t_ms": 21908, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": ". **MCP Tool Call (`phas"}}} -{"t_ms": 21939, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "e2` / `echo`):**\n - At"}}} -{"t_ms": 21971, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "tempt"}}} -{"t_ms": 22074, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ed to invoke"}}} -{"t_ms": 22099, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " `phase2` `echo` with te"}}} -{"t_ms": 22127, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "xt `PHASE2_DISCOVERY`. T"}}} -{"t_ms": 22159, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "he MCP tool returned"}}} -{"t_ms": 22213, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " an interface/parameter "}}} -{"t_ms": 22249, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "error (`Invalid input: e"}}} -{"t_ms": 22268, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "xpected record, received"}}} -{"t_ms": 22293, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " string`), i"}}} -{"t_ms": 22319, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ndicating the tool could not process"}}} -{"t_ms": 22349, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " the call: `"}}} -{"t_ms": 22375, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "MCP_UNAVAILABLE`.\n\n2. **"}}} -{"t_ms": 22402, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "Shell `pwd`:**\n - Defa"}}} -{"t_ms": 22430, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ult working "}}} -{"t_ms": 22458, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "directory: `/tmp/"}}} -{"t_ms": 22509, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "agy-p2/owned`\n\n3. **File"}}} -{"t_ms": 22535, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " Operations "}}} -{"t_ms": 22569, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "& Exact Paths:**\n - **"}}} -{"t_ms": 22594, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "Input File Read:**"}}} -{"t_ms": 22619, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " [input.txt](file:///work"}}} -{"t_ms": 22645, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "space/input."}}} -{"t_ms": 22671, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "txt) (content: `PHASE2_"}}} -{"t_ms": 22726, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "WORKSPACE_MARKER`)\n - "}}} -{"t_ms": 22751, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "**Output Files Written:*"}}} -{"t_ms": 22776, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "*\n - [ou"}}} -{"t_ms": 22807, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "tput.txt](file:///owne"}}} -{"t_ms": 22833, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "d/output.txt) (content: "}}} -{"t_ms": 22859, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "`PHASE2_WRITE`)\n -"}}} -{"t_ms": 22911, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " [output.txt](file:///tm"}}} -{"t_ms": 22937, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "p/agy-p2/workspace/outpu"}}} -{"t_ms": 22964, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "t.txt) (content: `PHASE2"}}} -{"t_ms": 22990, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "_WRITE`)"}}} -{"t_ms": 23043, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "step_index": 15, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 5.067703746, "usage": {"input_tokens": 13361, "output_tokens": 225, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 13586}}}} -{"t_ms": 23043, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "acddb85b-55c5-462f-bbea-5a5bce323030", "status": "SUCCESS", "response": "1. **MCP Tool Call (`phase2` / `echo`):**\n - Attempted to invoke `phase2` `echo` with text `PHASE2_DISCOVERY`. The MCP tool returned an interface/parameter error (`Invalid input: expected record, received string`), indicating the tool could not process the call: `MCP_UNAVAILABLE`.\n\n2. **Shell `pwd`:**\n - Default working directory: `/owned`\n\n3. **File Operations & Exact Paths:**\n - **Input File Read:** [input.txt](file:///input.txt) (content: `PHASE2_WORKSPACE_MARKER`)\n - **Output Files Written:**\n - [output.txt](file:///owned/output.txt) (content: `PHASE2_WRITE`)\n - [output.txt](file:///output.txt) (content: `PHASE2_WRITE`)\n", "duration_seconds": 22.712812313, "num_turns": 1, "usage": {"input_tokens": 101836, "output_tokens": 913, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 102749}}}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-project-config.capture.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-project-config.capture.ndjson deleted file mode 100644 index 97c48693ea..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-project-config.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "", "--disable-slash-commands", "--dangerously-skip-permissions"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 3445, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-project-config.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-project-config.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/mcp-project-config.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-project-config.stdin.ndjson deleted file mode 100644 index f5fa2b6685..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-project-config.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 297, "stream": "stdin", "data": {"event": "user", "message": {"content": "Call the phase0 MCP echo tool with text PHASE0_MCP. Do not use shell. If unavailable say UNAVAILABLE."}}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-project-config.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-project-config.stdout.ndjson deleted file mode 100644 index c77058cdf8..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-project-config.stdout.ndjson +++ /dev/null @@ -1,5 +0,0 @@ -{"t_ms": 297, "stream": "stdout", "data": {"event": "init", "conversation_id": "0e78dd7a-7278-49b7-8cd6-68b9c0dfe82b", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "always-proceed"}}} -{"t_ms": 325, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0e78dd7a-7278-49b7-8cd6-68b9c0dfe82b", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 2917, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0e78dd7a-7278-49b7-8cd6-68b9c0dfe82b", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "UNAVAILABLE"}}} -{"t_ms": 3272, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0e78dd7a-7278-49b7-8cd6-68b9c0dfe82b", "step_index": 1, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 2.949354512, "usage": {"input_tokens": 11261, "output_tokens": 222, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11483}}}} -{"t_ms": 3298, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "0e78dd7a-7278-49b7-8cd6-68b9c0dfe82b", "status": "SUCCESS", "response": "UNAVAILABLE\n", "duration_seconds": 2.972410821, "num_turns": 1, "usage": {"input_tokens": 11261, "output_tokens": 222, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11483}}}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-project-isolated.capture.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-project-isolated.capture.ndjson deleted file mode 100644 index c3f823d332..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-project-isolated.capture.ndjson +++ /dev/null @@ -1,4 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"setup_file": "/.agents/mcp_config.json", "content": {"mcpServers": {"phase0": {"serverUrl": "http://127.0.0.1:/mcp"}}}, "global_mcp_config_exists": false}} -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "", "--dangerously-skip-permissions"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 9494, "stream": "capture", "data": {"global_mcp_config_exists": true}} -{"t_ms": 9645, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-project-isolated.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-project-isolated.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/mcp-project-isolated.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-project-isolated.stdin.ndjson deleted file mode 100644 index 7907cb1235..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-project-isolated.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 301, "stream": "stdin", "data": {"event": "user", "message": {"content": "Call the phase0 MCP echo tool with text PHASE0_MCP. If it fails report the exact error. No shell."}}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-project-isolated.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-project-isolated.stdout.ndjson deleted file mode 100644 index 632daa6821..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-project-isolated.stdout.ndjson +++ /dev/null @@ -1,31 +0,0 @@ -{"t_ms": 301, "stream": "stdout", "data": {"event": "init", "conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "always-proceed"}}} -{"t_ms": 357, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 3586, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 1, "state": "DONE", "step_type": "agent_response", "duration_seconds": 3.20056914, "usage": {"input_tokens": 11979, "output_tokens": 300, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12279}}}} -{"t_ms": 3587, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 2, "state": "ACTIVE", "step_type": "tool", "tool_name": "view_file", "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/.gemini/antigravity-cli/mcp/phase0/echo.json"}}}}} -{"t_ms": 3587, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 2, "state": "DONE", "step_type": "tool", "tool_name": "view_file", "duration_seconds": 0.003339143, "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/.gemini/antigravity-cli/mcp/phase0/echo.json"}, "output": "1 lines, 184 bytes"}}}} -{"t_ms": 5350, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 3, "state": "DONE", "step_type": "agent_response", "duration_seconds": 1.765191975, "usage": {"input_tokens": 12284, "output_tokens": 61, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12345}}}} -{"t_ms": 5350, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 4, "state": "ACTIVE", "step_type": "tool", "tool_name": "call_mcp_tool", "tool_info": {"name": "call_mcp_tool", "parameters": {"Arguments": "{\"text\":\"PHASE0_MCP\"}", "ServerName": "phase0", "ToolName": "echo"}}}}} -{"t_ms": 5350, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 4, "state": "ERROR", "step_type": "tool", "tool_name": "call_mcp_tool", "duration_seconds": 0.004524751, "tool_info": {"name": "call_mcp_tool", "parameters": {"Arguments": "{\"text\":\"PHASE0_MCP\"}", "ServerName": "phase0", "ToolName": "echo"}, "error": {"type": "TOOL_ERROR", "message": "calling \"tools/call\": [\n {\n \"expected\": \"record\",\n \"code\": \"invalid_type\",\n \"path\": [\n \"params\",\n \"arguments\"\n ],\n \"message\": \"Invalid input: expected record, received string\"\n }\n]"}}}}} -{"t_ms": 7088, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 5, "state": "DONE", "step_type": "agent_response", "duration_seconds": 1.72463283, "usage": {"input_tokens": 12468, "output_tokens": 53, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12521}}}} -{"t_ms": 7088, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 6, "state": "ACTIVE", "step_type": "tool", "tool_name": "call_mcp_tool", "tool_info": {"name": "call_mcp_tool", "parameters": {"Arguments": "null", "ServerName": "phase0", "ToolName": "echo"}}}}} -{"t_ms": 7088, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 6, "state": "ERROR", "step_type": "tool", "tool_name": "call_mcp_tool", "duration_seconds": 0.00450856, "tool_info": {"name": "call_mcp_tool", "parameters": {"Arguments": "null", "ServerName": "phase0", "ToolName": "echo"}, "error": {"type": "TOOL_ERROR", "message": "calling \"tools/call\": [\n {\n \"expected\": \"record\",\n \"code\": \"invalid_type\",\n \"path\": [\n \"params\",\n \"arguments\"\n ],\n \"message\": \"Invalid input: expected record, received string\"\n }\n]"}}}}} -{"t_ms": 8903, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "The call"}}} -{"t_ms": 8979, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " to the `pha"}}} -{"t_ms": 9005, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "se0` MCP `echo` tool fai"}}} -{"t_ms": 9031, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "led with the following e"}}} -{"t_ms": 9056, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "xact error:\n"}}} -{"t_ms": 9082, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "\n"}}} -{"t_ms": 9107, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "```json\ncall"}}} -{"t_ms": 9133, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ing \"tools/call\": [\n {\n"}}} -{"t_ms": 9158, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " \"expected\": \"record\""}}} -{"t_ms": 9185, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": ",\n \"code\""}}} -{"t_ms": 9210, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": ": \"invalid_type\",\n \"path\": [\n "}}} -{"t_ms": 9235, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " \"params\""}}} -{"t_ms": 9261, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": ",\n \"arguments\"\n "}}} -{"t_ms": 9286, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "],\n "}}} -{"t_ms": 9312, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "\"message\": \""}}} -{"t_ms": 9338, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "Invalid input: expected "}}} -{"t_ms": 9363, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "record, rece"}}} -{"t_ms": 9389, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ived string\"\n }\n]\n```"}}} -{"t_ms": 9468, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "step_index": 7, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 2.395342779, "usage": {"input_tokens": 12644, "output_tokens": 93, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12737}}}} -{"t_ms": 9494, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "0ff3bbbf-5757-4c2b-95c7-8287283c5f4e", "status": "SUCCESS", "response": "The call to the `phase0` MCP `echo` tool failed with the following exact error:\n\n```json\ncalling \"tools/call\": [\n {\n \"expected\": \"record\",\n \"code\": \"invalid_type\",\n \"path\": [\n \"params\",\n \"arguments\"\n ],\n \"message\": \"Invalid input: expected record, received string\"\n }\n]\n```\n", "duration_seconds": 9.15918287, "num_turns": 1, "usage": {"input_tokens": 49375, "output_tokens": 507, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 49882}}}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-project.capture.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-project.capture.ndjson deleted file mode 100644 index 041597c746..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-project.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "", "--disable-slash-commands", "--dangerously-skip-permissions"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 30078, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-project.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-project.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/mcp-project.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-project.stdin.ndjson deleted file mode 100644 index de5df7cd48..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-project.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 286, "stream": "stdin", "data": {"event": "user", "message": {"content": "Call the phase0 MCP echo tool with text PHASE0_MCP. Do not use shell. If unavailable say UNAVAILABLE."}}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-project.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-project.stdout.ndjson deleted file mode 100644 index 323648a229..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-project.stdout.ndjson +++ /dev/null @@ -1,15 +0,0 @@ -{"t_ms": 285, "stream": "stdout", "data": {"event": "init", "conversation_id": "89273b5a-77cd-4d4b-ac80-4475b2c751d0", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "always-proceed"}}} -{"t_ms": 339, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "89273b5a-77cd-4d4b-ac80-4475b2c751d0", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 4401, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "89273b5a-77cd-4d4b-ac80-4475b2c751d0", "step_index": 1, "state": "DONE", "step_type": "agent_response", "duration_seconds": 4.075516272, "usage": {"input_tokens": 11933, "output_tokens": 393, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12326}}}} -{"t_ms": 4401, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "89273b5a-77cd-4d4b-ac80-4475b2c751d0", "step_index": 2, "state": "ACTIVE", "step_type": "tool", "tool_name": "view_file", "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/.gemini/antigravity-cli/mcp/phase0/echo.json"}}}}} -{"t_ms": 4427, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "89273b5a-77cd-4d4b-ac80-4475b2c751d0", "step_index": 2, "state": "DONE", "step_type": "tool", "tool_name": "view_file", "duration_seconds": 0.003930268, "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/.gemini/antigravity-cli/mcp/phase0/echo.json"}, "output": "1 lines, 184 bytes"}}}} -{"t_ms": 6440, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "89273b5a-77cd-4d4b-ac80-4475b2c751d0", "step_index": 3, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.013674566, "usage": {"input_tokens": 12234, "output_tokens": 63, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12297}}}} -{"t_ms": 6441, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "89273b5a-77cd-4d4b-ac80-4475b2c751d0", "step_index": 4, "state": "ACTIVE", "step_type": "tool", "tool_name": "call_mcp_tool", "tool_info": {"name": "call_mcp_tool", "parameters": {"Arguments": "{\"text\":\"PHASE0_MCP\"}", "ServerName": "phase0", "ToolName": "echo"}}}}} -{"t_ms": 6441, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "89273b5a-77cd-4d4b-ac80-4475b2c751d0", "step_index": 4, "state": "ERROR", "step_type": "tool", "tool_name": "call_mcp_tool", "duration_seconds": 0.003539628, "tool_info": {"name": "call_mcp_tool", "parameters": {"Arguments": "{\"text\":\"PHASE0_MCP\"}", "ServerName": "phase0", "ToolName": "echo"}, "error": {"type": "TOOL_ERROR", "message": "calling \"tools/call\": [\n {\n \"expected\": \"record\",\n \"code\": \"invalid_type\",\n \"path\": [\n \"params\",\n \"arguments\"\n ],\n \"message\": \"Invalid input: expected record, received string\"\n }\n]"}}}}} -{"t_ms": 9031, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "89273b5a-77cd-4d4b-ac80-4475b2c751d0", "step_index": 5, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.5843047, "usage": {"input_tokens": 12420, "output_tokens": 64, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12484}}}} -{"t_ms": 9031, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "89273b5a-77cd-4d4b-ac80-4475b2c751d0", "step_index": 6, "state": "ACTIVE", "step_type": "tool", "tool_name": "call_mcp_tool", "tool_info": {"name": "call_mcp_tool", "parameters": {"Arguments": "{\"text\": \"PHASE0_MCP\"}", "ServerName": "phase0", "ToolName": "echo"}}}}} -{"t_ms": 9031, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "89273b5a-77cd-4d4b-ac80-4475b2c751d0", "step_index": 6, "state": "ERROR", "step_type": "tool", "tool_name": "call_mcp_tool", "duration_seconds": 0.002964553, "tool_info": {"name": "call_mcp_tool", "parameters": {"Arguments": "{\"text\": \"PHASE0_MCP\"}", "ServerName": "phase0", "ToolName": "echo"}, "error": {"type": "TOOL_ERROR", "message": "calling \"tools/call\": [\n {\n \"expected\": \"record\",\n \"code\": \"invalid_type\",\n \"path\": [\n \"params\",\n \"arguments\"\n ],\n \"message\": \"Invalid input: expected record, received string\"\n }\n]"}}}}} -{"t_ms": 24041, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "89273b5a-77cd-4d4b-ac80-4475b2c751d0", "step_index": 7, "state": "DONE", "step_type": "error_message", "duration_seconds": 0}}} -{"t_ms": 29423, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "89273b5a-77cd-4d4b-ac80-4475b2c751d0", "step_index": 8, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "UNAVAILABLE"}}} -{"t_ms": 29980, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "89273b5a-77cd-4d4b-ac80-4475b2c751d0", "step_index": 8, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 1.922531311, "usage": {"input_tokens": 12607, "output_tokens": 2, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12609}}}} -{"t_ms": 29980, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "89273b5a-77cd-4d4b-ac80-4475b2c751d0", "status": "ERROR", "response": "UNAVAILABLE\n", "error": "API error (attempt 1): Error 502, Message: , Status: 502 Bad Gateway, Details: []", "duration_seconds": 29.671957293, "num_turns": 1, "usage": {"input_tokens": 49194, "output_tokens": 522, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 49716}}}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-second-add-dir.capture.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-second-add-dir.capture.ndjson deleted file mode 100644 index d42fd1a128..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-second-add-dir.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--disable-slash-commands", "--dangerously-skip-permissions", "--add-dir", "", "--add-dir", "/owned"], "cwd": "", "home": "/mcp-second-add-dir-home", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 18531, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-second-add-dir.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-second-add-dir.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/mcp-second-add-dir.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-second-add-dir.stdin.ndjson deleted file mode 100644 index eeddbbd260..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-second-add-dir.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 308, "stream": "stdin", "data": {"event": "user", "message": {"content": "First call the phase2 MCP echo tool with text PHASE2_DISCOVERY. If unavailable say MCP_UNAVAILABLE. Then use shell pwd, read input.txt and write output.txt containing PHASE2_WRITE. Use the workspace default directory, without me supplying absolute paths. Report the exact paths used."}}} diff --git a/plugins/antigravity-provider/test/fixtures/mcp-second-add-dir.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/mcp-second-add-dir.stdout.ndjson deleted file mode 100644 index 274627ad6b..0000000000 --- a/plugins/antigravity-provider/test/fixtures/mcp-second-add-dir.stdout.ndjson +++ /dev/null @@ -1,71 +0,0 @@ -{"t_ms": 308, "stream": "stdout", "data": {"event": "init", "conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "always-proceed"}}} -{"t_ms": 386, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 4340, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 1, "state": "DONE", "step_type": "agent_response", "duration_seconds": 3.94876824, "usage": {"input_tokens": 11996, "output_tokens": 440, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12436}}}} -{"t_ms": 4340, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 2, "state": "ACTIVE", "step_type": "tool", "tool_name": "view_file", "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/mcp-second-add-dir-home/.gemini/antigravity-cli/mcp/phase2/echo.json"}}}}} -{"t_ms": 4340, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 2, "state": "DONE", "step_type": "tool", "tool_name": "view_file", "duration_seconds": 0.003707182, "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/mcp-second-add-dir-home/.gemini/antigravity-cli/mcp/phase2/echo.json"}, "output": "1 lines, 184 bytes"}}}} -{"t_ms": 6080, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 3, "state": "DONE", "step_type": "agent_response", "duration_seconds": 1.730381429, "usage": {"input_tokens": 12306, "output_tokens": 64, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12370}}}} -{"t_ms": 6080, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 4, "state": "ACTIVE", "step_type": "tool", "tool_name": "call_mcp_tool", "tool_info": {"name": "call_mcp_tool", "parameters": {"Arguments": "{\"text\":\"PHASE2_DISCOVERY\"}", "ServerName": "phase2", "ToolName": "echo"}}}}} -{"t_ms": 6080, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 4, "state": "ERROR", "step_type": "tool", "tool_name": "call_mcp_tool", "duration_seconds": 0.005173122, "tool_info": {"name": "call_mcp_tool", "parameters": {"Arguments": "{\"text\":\"PHASE2_DISCOVERY\"}", "ServerName": "phase2", "ToolName": "echo"}, "error": {"type": "TOOL_ERROR", "message": "calling \"tools/call\": [\n {\n \"expected\": \"record\",\n \"code\": \"invalid_type\",\n \"path\": [\n \"params\",\n \"arguments\"\n ],\n \"message\": \"Invalid input: expected record, received string\"\n }\n]"}}}}} -{"t_ms": 7982, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 5, "state": "DONE", "step_type": "agent_response", "duration_seconds": 1.901210495, "usage": {"input_tokens": 12493, "output_tokens": 68, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12561}}}} -{"t_ms": 7982, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 6, "state": "ACTIVE", "step_type": "tool", "tool_name": "run_command", "tool_info": {"name": "run_command", "parameters": {"CommandLine": "pwd"}}}}} -{"t_ms": 7982, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 6, "state": "DONE", "step_type": "tool", "tool_name": "run_command", "duration_seconds": 0.006768796, "tool_info": {"name": "run_command", "parameters": {"CommandLine": "pwd"}, "output": "/owned\r\n"}}}} -{"t_ms": 9669, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 7, "state": "DONE", "step_type": "agent_response", "duration_seconds": 1.692085483, "usage": {"input_tokens": 12626, "output_tokens": 48, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12674}}}} -{"t_ms": 9669, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 8, "state": "ACTIVE", "step_type": "tool", "tool_name": "view_file", "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/owned/input.txt"}}}}} -{"t_ms": 9669, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 8, "state": "ERROR", "step_type": "tool", "tool_name": "view_file", "duration_seconds": 0.001462294, "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/owned/input.txt"}, "error": {"type": "TOOL_ERROR", "message": "declaring permissions: cortex tool view_file: convert tool call for permissions: model output error: invalid tool call error (invalid_args) failed to read file: stat /owned/input.txt: no such file or directory"}}}}} -{"t_ms": 11257, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 9, "state": "DONE", "step_type": "agent_response", "duration_seconds": 1.561062696, "usage": {"input_tokens": 12788, "output_tokens": 51, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12839}}}} -{"t_ms": 11257, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 10, "state": "ACTIVE", "step_type": "tool", "tool_name": "view_file", "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/input.txt"}}}}} -{"t_ms": 11257, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 10, "state": "DONE", "step_type": "tool", "tool_name": "view_file", "duration_seconds": 0.002866119, "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/input.txt"}, "output": "1 lines, 23 bytes"}}}} -{"t_ms": 13169, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 11, "state": "DONE", "step_type": "agent_response", "duration_seconds": 1.9176663440000001, "usage": {"input_tokens": 13010, "output_tokens": 84, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 13094}}}} -{"t_ms": 13170, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 12, "state": "ACTIVE", "step_type": "tool", "tool_name": "write_to_file", "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/output.txt"}}}}} -{"t_ms": 13170, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 12, "state": "DONE", "step_type": "tool", "tool_name": "write_to_file", "duration_seconds": 0.003297375, "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/output.txt"}}}}} -{"t_ms": 15284, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 13, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.118805123, "usage": {"input_tokens": 13182, "output_tokens": 84, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 13266}}}} -{"t_ms": 15284, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 14, "state": "ACTIVE", "step_type": "tool", "tool_name": "write_to_file", "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/owned/output.txt"}}}}} -{"t_ms": 15284, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 14, "state": "DONE", "step_type": "tool", "tool_name": "write_to_file", "duration_seconds": 0.003384669, "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/owned/output.txt"}}}}} -{"t_ms": 16695, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "### MCP"}}} -{"t_ms": 16797, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " Tool Execut"}}} -{"t_ms": 16823, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ion\n- Calling the `phase"}}} -{"t_ms": 16848, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "2` MCP `echo` tool faile"}}} -{"t_ms": 16874, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "d with an"}}} -{"t_ms": 17102, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " argument validation error from the "}}} -{"t_ms": 17128, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "server schem"}}} -{"t_ms": 17153, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "a interface:\n `MCP_UNAV"}}} -{"t_ms": 17178, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "AILABLE` (er"}}} -{"t_ms": 17204, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ror: `Invalid input: expected record"}}} -{"t_ms": 17229, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": ", received s"}}} -{"t_ms": 17255, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "tring`)\n\n---\n\n### Shell "}}} -{"t_ms": 17281, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "`pwd` & Workspace File O"}}} -{"t_ms": 17306, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "perations\n- "}}} -{"t_ms": 17331, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "**Current Working Directory (`pwd`):"}}} -{"t_ms": 17356, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "** `/tmp/agy"}}} -{"t_ms": 17382, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "-p2/owned`\n- **Read file"}}} -{"t_ms": 17407, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": ":** [input.txt](file:///w"}}} -{"t_ms": 17433, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "orkspace/inp"}}} -{"t_ms": 17459, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ut.txt) (Content: `PHASE"}}} -{"t_ms": 17484, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "2_WORKSPACE_"}}} -{"t_ms": 17509, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "MARK"}}} -{"t_ms": 17535, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ER`)\n- **Written file:**"}}} -{"t_ms": 17560, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " [output.txt"}}} -{"t_ms": 17586, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "](file:///wor"}}} -{"t_ms": 17611, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "kspace/outpu"}}} -{"t_ms": 17637, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "t"}}} -{"t_ms": 17738, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": ".txt) (and m"}}} -{"t_ms": 17764, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "irrored to [output.txt]("}}} -{"t_ms": 17789, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "file:///tmp/"}}} -{"t_ms": 17814, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "agy-p2/owned/output.txt)"}}} -{"t_ms": 17840, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": ") containing "}}} -{"t_ms": 17941, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "`PHASE2_WRITE`\n\n### Exac"}}} -{"t_ms": 17966, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "t Paths Used\n- Default C"}}} -{"t_ms": 17992, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ommand Worki"}}} -{"t_ms": 18017, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ng Directory: `/tmp/agy-"}}} -{"t_ms": 18043, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "p2/owned"}}} -{"t_ms": 18069, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "`\n- Workspac"}}} -{"t_ms": 18095, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "e Read Path: `/tmp/agy-p"}}} -{"t_ms": 18120, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "2/workspace/"}}} -{"t_ms": 18145, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "input.txt`\n- Output Writ"}}} -{"t_ms": 18171, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ten"}}} -{"t_ms": 18196, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " Paths:\n - `"}}} -{"t_ms": 18222, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "/workspace/o"}}} -{"t_ms": 18247, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "utput.txt`\n - `/tmp"}}} -{"t_ms": 18273, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "/agy-p2/owned/output.txt`"}}} -{"t_ms": 18450, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "step_index": 15, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 3.1541972400000002, "usage": {"input_tokens": 13354, "output_tokens": 262, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 13616}}}} -{"t_ms": 18450, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "2005ea86-6c72-484e-95fb-99a1c0fed68f", "status": "SUCCESS", "response": "### MCP Tool Execution\n- Calling the `phase2` MCP `echo` tool failed with an argument validation error from the server schema interface:\n `MCP_UNAVAILABLE` (error: `Invalid input: expected record, received string`)\n\n---\n\n### Shell `pwd` & Workspace File Operations\n- **Current Working Directory (`pwd`):** `/owned`\n- **Read file:** [input.txt](file:///input.txt) (Content: `PHASE2_WORKSPACE_MARKER`)\n- **Written file:** [output.txt](file:///output.txt) (and mirrored to [output.txt](file:///owned/output.txt)) containing `PHASE2_WRITE`\n\n### Exact Paths Used\n- Default Command Working Directory: `/owned`\n- Workspace Read Path: `/input.txt`\n- Output Written Paths:\n - `/output.txt`\n - `/owned/output.txt`\n", "duration_seconds": 18.127914828, "num_turns": 1, "usage": {"input_tokens": 101755, "output_tokens": 1101, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 102856}}}} diff --git a/plugins/antigravity-provider/test/fixtures/model-switch-invalid.capture.ndjson b/plugins/antigravity-provider/test/fixtures/model-switch-invalid.capture.ndjson deleted file mode 100644 index d9a08ce530..0000000000 --- a/plugins/antigravity-provider/test/fixtures/model-switch-invalid.capture.ndjson +++ /dev/null @@ -1,3 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "", "--conversation", "b966b16a-caf4-448a-bb24-0e34956022b0", "--model", "gemini-3.1-flash-lite-preview"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 4004, "stream": "capture", "data": {"timeout_waiting_for": "init", "seconds": 4}} -{"t_ms": 4005, "stream": "capture", "data": {"exit_code": 1}} diff --git a/plugins/antigravity-provider/test/fixtures/model-switch-invalid.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/model-switch-invalid.stderr.ndjson deleted file mode 100644 index 244d1ac13e..0000000000 --- a/plugins/antigravity-provider/test/fixtures/model-switch-invalid.stderr.ndjson +++ /dev/null @@ -1,13 +0,0 @@ -{"t_ms": 296, "stream": "stderr", "data": "error: invalid model selection (--model \"gemini-3.1-flash-lite-preview\" --effort \"\"): model gemini-3.1-flash-lite-preview is not recognized as a known model or custom model in settings"} -{"t_ms": 296, "stream": "stderr", "data": "Available models:"} -{"t_ms": 296, "stream": "stderr", "data": " Gemini 3.8 Flash (High)"} -{"t_ms": 296, "stream": "stderr", "data": " Gemini 3.8 Flash (Medium)"} -{"t_ms": 296, "stream": "stderr", "data": " Gemini 3.8 Flash (Low)"} -{"t_ms": 296, "stream": "stderr", "data": " Gemini 3.7 Flash (High)"} -{"t_ms": 296, "stream": "stderr", "data": " Gemini 3.7 Flash (Medium)"} -{"t_ms": 296, "stream": "stderr", "data": " Gemini 3.7 Flash (Low)"} -{"t_ms": 296, "stream": "stderr", "data": " Gemini 3.6 Flash (High)"} -{"t_ms": 296, "stream": "stderr", "data": " Gemini 3.6 Flash (Medium)"} -{"t_ms": 296, "stream": "stderr", "data": " Gemini 3.6 Flash (Low)"} -{"t_ms": 297, "stream": "stderr", "data": " Gemini 3.1 Pro (High)"} -{"t_ms": 297, "stream": "stderr", "data": " Gemini 3.1 Pro (Low)"} diff --git a/plugins/antigravity-provider/test/fixtures/model-switch-invalid.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/model-switch-invalid.stdin.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/model-switch-invalid.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/model-switch-invalid.stdout.ndjson deleted file mode 100644 index 1ad10e7494..0000000000 --- a/plugins/antigravity-provider/test/fixtures/model-switch-invalid.stdout.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 297, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "", "status": "ERROR", "response": "", "error": "invalid model selection (--model \"gemini-3.1-flash-lite-preview\" --effort \"\"): model gemini-3.1-flash-lite-preview is not recognized as a known model or custom model in settings\nAvailable models:\n Gemini 3.8 Flash (High)\n Gemini 3.8 Flash (Medium)\n Gemini 3.8 Flash (Low)\n Gemini 3.7 Flash (High)\n Gemini 3.7 Flash (Medium)\n Gemini 3.7 Flash (Low)\n Gemini 3.6 Flash (High)\n Gemini 3.6 Flash (Medium)\n Gemini 3.6 Flash (Low)\n Gemini 3.1 Pro (High)\n Gemini 3.1 Pro (Low)", "duration_seconds": 0, "num_turns": 0, "usage": {"input_tokens": 0, "output_tokens": 0, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 0}}}} diff --git a/plugins/antigravity-provider/test/fixtures/model-switch-network.capture.ndjson b/plugins/antigravity-provider/test/fixtures/model-switch-network.capture.ndjson deleted file mode 100644 index 243104c416..0000000000 --- a/plugins/antigravity-provider/test/fixtures/model-switch-network.capture.ndjson +++ /dev/null @@ -1,3 +0,0 @@ -{"t_ms": 1, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--conversation", "b966b16a-caf4-448a-bb24-0e34956022b0", "--model", "gemini-3.8-flash-low"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 2405, "stream": "capture", "data": {"translator_http": {"request": 6, "path": "/v1beta/models/gemini-3.8-flash:streamGenerateContent?alt=sse", "model": "google/gemini-3.7-flash", "roles": ["system", "user", "assistant", "user", "assistant", "user", "user", "assistant", "user", "user", "assistant", "user", "user"], "tools": ["view_file", "run_command", "manage_task", "send_message", "schedule", "invoke_subagent", "define_subagent", "manage_subagents", "write_to_file", "replace_file_content", "generate_image", "read_url_content", "search_web", "ask_question"], "usage": {"prompt_tokens": 12105, "completion_tokens": 12, "total_tokens": 12117, "cost": 0.00912375, "is_byok": false, "prompt_tokens_details": {"cached_tokens": 0, "cache_write_tokens": 0, "audio_tokens": 0, "video_tokens": 0}, "cost_details": {"upstream_inference_cost": 0.00912375, "upstream_inference_prompt_cost": 0.00907875, "upstream_inference_completions_cost": 4.5e-05}, "completion_tokens_details": {"reasoning_tokens": 0, "image_tokens": 0, "audio_tokens": 0}}, "toolCalls": [], "status": 200}}} -{"t_ms": 2572, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/model-switch-network.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/model-switch-network.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/model-switch-network.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/model-switch-network.stdin.ndjson deleted file mode 100644 index eb33e7913d..0000000000 --- a/plugins/antigravity-provider/test/fixtures/model-switch-network.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 439, "stream": "stdin", "data": {"event": "user", "message": {"content": "What secret word did I give you? No tools."}}} diff --git a/plugins/antigravity-provider/test/fixtures/model-switch-network.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/model-switch-network.stdout.ndjson deleted file mode 100644 index e1f755f3f2..0000000000 --- a/plugins/antigravity-provider/test/fixtures/model-switch-network.stdout.ndjson +++ /dev/null @@ -1,8 +0,0 @@ -{"t_ms": 439, "stream": "stdout", "data": {"event": "init", "conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "init": {"model": "gemini-3.8-flash-low", "cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "request-review"}}} -{"t_ms": 560, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 10, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 560, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 11, "state": "DONE", "step_type": "system_message", "duration_seconds": 9.9025e-05}}} -{"t_ms": 2045, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 12, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "The secret"}}} -{"t_ms": 2070, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 12, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " word you ga"}}} -{"t_ms": 2096, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 12, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ve me is **COBALT**."}}} -{"t_ms": 2405, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 12, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 1.873175086, "usage": {"input_tokens": 12105, "output_tokens": 12, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12117}}}} -{"t_ms": 2405, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "status": "SUCCESS", "response": "The secret word you gave me is **COBALT**.\n", "duration_seconds": 282.68791325, "num_turns": 5, "usage": {"input_tokens": 58633, "output_tokens": 505, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 59138}}}} diff --git a/plugins/antigravity-provider/test/fixtures/model-switch-resume.capture.ndjson b/plugins/antigravity-provider/test/fixtures/model-switch-resume.capture.ndjson deleted file mode 100644 index 961223783a..0000000000 --- a/plugins/antigravity-provider/test/fixtures/model-switch-resume.capture.ndjson +++ /dev/null @@ -1,3 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "", "--conversation", "b966b16a-caf4-448a-bb24-0e34956022b0", "--model", "gemini-3.1-flash-high"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 4004, "stream": "capture", "data": {"timeout_waiting_for": "init", "seconds": 4}} -{"t_ms": 4004, "stream": "capture", "data": {"exit_code": 1}} diff --git a/plugins/antigravity-provider/test/fixtures/model-switch-resume.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/model-switch-resume.stderr.ndjson deleted file mode 100644 index 2666337e77..0000000000 --- a/plugins/antigravity-provider/test/fixtures/model-switch-resume.stderr.ndjson +++ /dev/null @@ -1,13 +0,0 @@ -{"t_ms": 239, "stream": "stderr", "data": "error: invalid model selection (--model \"gemini-3.1-flash-high\" --effort \"\"): model gemini-3.1-flash-high is not recognized as a known model or custom model in settings"} -{"t_ms": 239, "stream": "stderr", "data": "Available models:"} -{"t_ms": 239, "stream": "stderr", "data": " Gemini 3.8 Flash (High)"} -{"t_ms": 239, "stream": "stderr", "data": " Gemini 3.8 Flash (Medium)"} -{"t_ms": 239, "stream": "stderr", "data": " Gemini 3.8 Flash (Low)"} -{"t_ms": 239, "stream": "stderr", "data": " Gemini 3.7 Flash (High)"} -{"t_ms": 239, "stream": "stderr", "data": " Gemini 3.7 Flash (Medium)"} -{"t_ms": 239, "stream": "stderr", "data": " Gemini 3.7 Flash (Low)"} -{"t_ms": 239, "stream": "stderr", "data": " Gemini 3.6 Flash (High)"} -{"t_ms": 239, "stream": "stderr", "data": " Gemini 3.6 Flash (Medium)"} -{"t_ms": 239, "stream": "stderr", "data": " Gemini 3.6 Flash (Low)"} -{"t_ms": 239, "stream": "stderr", "data": " Gemini 3.1 Pro (High)"} -{"t_ms": 239, "stream": "stderr", "data": " Gemini 3.1 Pro (Low)"} diff --git a/plugins/antigravity-provider/test/fixtures/model-switch-resume.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/model-switch-resume.stdin.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/model-switch-resume.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/model-switch-resume.stdout.ndjson deleted file mode 100644 index 3556e4c951..0000000000 --- a/plugins/antigravity-provider/test/fixtures/model-switch-resume.stdout.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 239, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "", "status": "ERROR", "response": "", "error": "invalid model selection (--model \"gemini-3.1-flash-high\" --effort \"\"): model gemini-3.1-flash-high is not recognized as a known model or custom model in settings\nAvailable models:\n Gemini 3.8 Flash (High)\n Gemini 3.8 Flash (Medium)\n Gemini 3.8 Flash (Low)\n Gemini 3.7 Flash (High)\n Gemini 3.7 Flash (Medium)\n Gemini 3.7 Flash (Low)\n Gemini 3.6 Flash (High)\n Gemini 3.6 Flash (Medium)\n Gemini 3.6 Flash (Low)\n Gemini 3.1 Pro (High)\n Gemini 3.1 Pro (Low)", "duration_seconds": 0, "num_turns": 0, "usage": {"input_tokens": 0, "output_tokens": 0, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 0}}}} diff --git a/plugins/antigravity-provider/test/fixtures/model-switch-valid.capture.ndjson b/plugins/antigravity-provider/test/fixtures/model-switch-valid.capture.ndjson deleted file mode 100644 index 9d44fc439e..0000000000 --- a/plugins/antigravity-provider/test/fixtures/model-switch-valid.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--conversation", "b966b16a-caf4-448a-bb24-0e34956022b0", "--model", "gemini-3.8-flash-low"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 4608, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/model-switch-valid.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/model-switch-valid.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/model-switch-valid.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/model-switch-valid.stdin.ndjson deleted file mode 100644 index f1fb9508ac..0000000000 --- a/plugins/antigravity-provider/test/fixtures/model-switch-valid.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 296, "stream": "stdin", "data": {"event": "user", "message": {"content": "What secret word did I give you? No tools."}}} diff --git a/plugins/antigravity-provider/test/fixtures/model-switch-valid.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/model-switch-valid.stdout.ndjson deleted file mode 100644 index 70dbf755eb..0000000000 --- a/plugins/antigravity-provider/test/fixtures/model-switch-valid.stdout.ndjson +++ /dev/null @@ -1,7 +0,0 @@ -{"t_ms": 296, "stream": "stdout", "data": {"event": "init", "conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "init": {"model": "gemini-3.8-flash-low", "cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "request-review"}}} -{"t_ms": 342, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 7, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 342, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 8, "state": "DONE", "step_type": "system_message", "duration_seconds": 4.783e-05}}} -{"t_ms": 3891, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "The secret"}}} -{"t_ms": 4018, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " word you gave me is **COBALT**."}}} -{"t_ms": 4473, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 9, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 4.143724393, "usage": {"input_tokens": 11846, "output_tokens": 12, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11858}}}} -{"t_ms": 4499, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "status": "SUCCESS", "response": "The secret word you gave me is **COBALT**.\n", "duration_seconds": 129.476794036, "num_turns": 4, "usage": {"input_tokens": 46528, "output_tokens": 493, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 47021}}}} diff --git a/plugins/antigravity-provider/test/fixtures/models-api-key.capture.ndjson b/plugins/antigravity-provider/test/fixtures/models-api-key.capture.ndjson deleted file mode 100644 index 2db201ce59..0000000000 --- a/plugins/antigravity-provider/test/fixtures/models-api-key.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "models"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 360, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/models-api-key.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/models-api-key.stderr.ndjson deleted file mode 100644 index 31ed588249..0000000000 --- a/plugins/antigravity-provider/test/fixtures/models-api-key.stderr.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 247, "stream": "stderr", "data": "Fetching available models..."} diff --git a/plugins/antigravity-provider/test/fixtures/models-api-key.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/models-api-key.stdin.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/models-api-key.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/models-api-key.stdout.ndjson deleted file mode 100644 index ece429fc4b..0000000000 --- a/plugins/antigravity-provider/test/fixtures/models-api-key.stdout.ndjson +++ /dev/null @@ -1,11 +0,0 @@ -{"t_ms": 248, "stream": "stdout", "data": "gemini-3.8-flash-high\tGemini 3.8 Flash (High)"} -{"t_ms": 248, "stream": "stdout", "data": "gemini-3.8-flash-medium\tGemini 3.8 Flash (Medium)"} -{"t_ms": 248, "stream": "stdout", "data": "gemini-3.8-flash-low\tGemini 3.8 Flash (Low)"} -{"t_ms": 248, "stream": "stdout", "data": "gemini-3.7-flash-high\tGemini 3.7 Flash (High)"} -{"t_ms": 248, "stream": "stdout", "data": "gemini-3.7-flash-medium\tGemini 3.7 Flash (Medium)"} -{"t_ms": 248, "stream": "stdout", "data": "gemini-3.7-flash-low\tGemini 3.7 Flash (Low)"} -{"t_ms": 248, "stream": "stdout", "data": "gemini-3.6-flash-high\tGemini 3.6 Flash (High)"} -{"t_ms": 248, "stream": "stdout", "data": "gemini-3.6-flash-medium\tGemini 3.6 Flash (Medium)"} -{"t_ms": 248, "stream": "stdout", "data": "gemini-3.6-flash-low\tGemini 3.6 Flash (Low)"} -{"t_ms": 248, "stream": "stdout", "data": "gemini-3.1-pro-high\tGemini 3.1 Pro (High)"} -{"t_ms": 248, "stream": "stdout", "data": "gemini-3.1-pro-low\tGemini 3.1 Pro (Low)"} diff --git a/plugins/antigravity-provider/test/fixtures/models-unauthenticated.capture.ndjson b/plugins/antigravity-provider/test/fixtures/models-unauthenticated.capture.ndjson deleted file mode 100644 index b91f7dfb82..0000000000 --- a/plugins/antigravity-provider/test/fixtures/models-unauthenticated.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "models"], "cwd": "", "home": "", "settings": null, "env": {}}} -{"t_ms": 567, "stream": "capture", "data": {"exit_code": 1}} diff --git a/plugins/antigravity-provider/test/fixtures/models-unauthenticated.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/models-unauthenticated.stderr.ndjson deleted file mode 100644 index 0bcbc4745c..0000000000 --- a/plugins/antigravity-provider/test/fixtures/models-unauthenticated.stderr.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 404, "stream": "stderr", "data": "Fetching available models..."} -{"t_ms": 404, "stream": "stderr", "data": "Error: Please sign in to view available models. Launch the CLI without arguments to sign in."} diff --git a/plugins/antigravity-provider/test/fixtures/models-unauthenticated.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/models-unauthenticated.stdin.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/models-unauthenticated.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/models-unauthenticated.stdout.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/multi-turn-reasoning.capture.ndjson b/plugins/antigravity-provider/test/fixtures/multi-turn-reasoning.capture.ndjson deleted file mode 100644 index 56e04c0abe..0000000000 --- a/plugins/antigravity-provider/test/fixtures/multi-turn-reasoning.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "", "--disable-slash-commands"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 6732, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/multi-turn-reasoning.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/multi-turn-reasoning.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/multi-turn-reasoning.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/multi-turn-reasoning.stdin.ndjson deleted file mode 100644 index 4210a3f1b6..0000000000 --- a/plugins/antigravity-provider/test/fixtures/multi-turn-reasoning.stdin.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 304, "stream": "stdin", "data": {"event": "user", "message": {"role": "user", "content": "Remember the secret word COBALT. Solve 17*23 with reasoning, then reply with the answer. No tools."}}} -{"t_ms": 4752, "stream": "stdin", "data": {"event": "user", "message": {"role": "user", "content": "What secret word did I give you? Reply with only that word. No tools."}}} diff --git a/plugins/antigravity-provider/test/fixtures/multi-turn-reasoning.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/multi-turn-reasoning.stdout.ndjson deleted file mode 100644 index dd2a346d75..0000000000 --- a/plugins/antigravity-provider/test/fixtures/multi-turn-reasoning.stdout.ndjson +++ /dev/null @@ -1,51 +0,0 @@ -{"t_ms": 304, "stream": "stdout", "data": {"event": "init", "conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "request-review"}}} -{"t_ms": 332, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 3128, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "I have noted"}}} -{"t_ms": 3153, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " and remembe"}}} -{"t_ms": 3178, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "red the secret word **CO"}}} -{"t_ms": 3203, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "BALT**.\n\n###"}}} -{"t_ms": 3229, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " Reasoning"}}} -{"t_ms": 3280, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " for $17 \\ti"}}} -{"t_ms": 3306, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "mes 23$:\n\nWe can solve $"}}} -{"t_ms": 3332, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "17 \\times 23$ using the "}}} -{"t_ms": 3357, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "difference o"}}} -{"t_ms": 3382, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "f"}}} -{"t_ms": 3459, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " squares ide"}}} -{"t_ms": 3484, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ntity, $(a - b)(a + b) ="}}} -{"t_ms": 3510, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " a^2 - b^2$:\n\n1. Rewrite"}}} -{"t_ms": 3535, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " the"}}} -{"t_ms": 3688, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " terms centered around 20:\n $$17 ="}}} -{"t_ms": 3713, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " 20 - 3$$\n "}}} -{"t_ms": 3738, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " $$23"}}} -{"t_ms": 3814, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " = 20 + 3$$\n\n2. Apply th"}}} -{"t_ms": 3840, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "e difference"}}} -{"t_ms": 3865, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " of squares formula:\n "}}} -{"t_ms": 3891, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "$$17 \\times "}}} -{"t_ms": 3917, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "23 = (20 - 3)(20 + 3) = 2"}}} -{"t_ms": 3942, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "0^2 - 3"}}} -{"t_ms": 4069, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "^2$$\n\n3. Cal"}}} -{"t_ms": 4094, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "culate the squares:\n $"}}} -{"t_ms": 4119, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "$20^2 = 400$"}}} -{"t_ms": 4145, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "$\n "}}} -{"t_ms": 4170, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "$$3^2 = 9$$\n"}}} -{"t_ms": 4221, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "\n4. Subtract"}}} -{"t_ms": 4246, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": ":\n $$400 -"}}} -{"t_ms": 4271, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " 9 = 3"}}} -{"t_ms": 4323, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "91$$\n\n*(Alte"}}} -{"t_ms": 4348, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "rnatively, v"}}} -{"t_ms": 4398, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ia partial p"}}} -{"t_ms": 4424, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "roducts: $17"}}} -{"t_ms": 4474, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " \\times 20 ="}}} -{"t_ms": 4499, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " 340$, and $"}}} -{"t_ms": 4550, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "17 \\times 3 "}}} -{"t_ms": 4575, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "= 51$; then "}}} -{"t_ms": 4600, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "$340 + 51 = "}}} -{"t_ms": 4650, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "391$.)*\n\n---"}}} -{"t_ms": 4675, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "\n\n**Answer:*"}}} -{"t_ms": 4726, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "* **391**"}}} -{"t_ms": 4752, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 1, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 4.392588837, "usage": {"input_tokens": 11263, "output_tokens": 466, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11729}}}} -{"t_ms": 4752, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "status": "SUCCESS", "response": "I have noted and remembered the secret word **COBALT**.\n\n### Reasoning for $17 \\times 23$:\n\nWe can solve $17 \\times 23$ using the difference of squares identity, $(a - b)(a + b) = a^2 - b^2$:\n\n1. Rewrite the terms centered around 20:\n $$17 = 20 - 3$$\n $$23 = 20 + 3$$\n\n2. Apply the difference of squares formula:\n $$17 \\times 23 = (20 - 3)(20 + 3) = 20^2 - 3^2$$\n\n3. Calculate the squares:\n $$20^2 = 400$$\n $$3^2 = 9$$\n\n4. Subtract:\n $$400 - 9 = 391$$\n\n*(Alternatively, via partial products: $17 \\times 20 = 340$, and $17 \\times 3 = 51$; then $340 + 51 = 391$.)*\n\n---\n\n**Answer:** **391**\n", "duration_seconds": 4.414417492, "num_turns": 1, "usage": {"input_tokens": 11263, "output_tokens": 466, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11729}}}} -{"t_ms": 4785, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 2, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 6345, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "COBALT"}}} -{"t_ms": 6573, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 3, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 1.784280065, "usage": {"input_tokens": 11604, "output_tokens": 3, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11607}}}} -{"t_ms": 6573, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "status": "SUCCESS", "response": "COBALT\n", "duration_seconds": 6.242840924, "num_turns": 2, "usage": {"input_tokens": 22867, "output_tokens": 469, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 23336}}}} diff --git a/plugins/antigravity-provider/test/fixtures/not-signed-in.capture.ndjson b/plugins/antigravity-provider/test/fixtures/not-signed-in.capture.ndjson deleted file mode 100644 index a77dc1e4ee..0000000000 --- a/plugins/antigravity-provider/test/fixtures/not-signed-in.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json"], "cwd": "", "home": "", "settings": null, "env": {}}} -{"t_ms": 520, "stream": "capture", "data": {"exit_code": 1}} diff --git a/plugins/antigravity-provider/test/fixtures/not-signed-in.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/not-signed-in.stderr.ndjson deleted file mode 100644 index 9304e8b2ee..0000000000 --- a/plugins/antigravity-provider/test/fixtures/not-signed-in.stderr.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 360, "stream": "stderr", "data": "Error: authentication required. Run 'agy' to log in, then retry."} -{"t_ms": 360, "stream": "stderr", "data": "error: authentication failed or timed out"} diff --git a/plugins/antigravity-provider/test/fixtures/not-signed-in.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/not-signed-in.stdin.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/not-signed-in.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/not-signed-in.stdout.ndjson deleted file mode 100644 index 760f2dbe68..0000000000 --- a/plugins/antigravity-provider/test/fixtures/not-signed-in.stdout.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 360, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "", "status": "ERROR", "response": "", "error": "authentication failed or timed out", "duration_seconds": 0, "num_turns": 0, "usage": {"input_tokens": 0, "output_tokens": 0, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 0}}}} diff --git a/plugins/antigravity-provider/test/fixtures/parity-inspection.ndjson b/plugins/antigravity-provider/test/fixtures/parity-inspection.ndjson deleted file mode 100644 index 18c16ef484..0000000000 --- a/plugins/antigravity-provider/test/fixtures/parity-inspection.ndjson +++ /dev/null @@ -1,10 +0,0 @@ -{"t_ms": 0, "stream": "inspection", "data": {"type": "configuration", "file": "/owned/.agents/mcp_config.json", "content": {"mcpServers": {"phase2": {"serverUrl": "http://127.0.0.1:/mcp"}}}}} -{"t_ms": 0, "stream": "inspection", "data": {"type": "isolation", "global_mcp_config_exists": {"mcp-second-add-dir": true, "mcp-owned-cwd": true, "mcp-owned-first-add-dir": true, "mcp-agent-file": true, "mcp-agent-definition": true, "mcp-agent-discovered": true, "image-file-external": true}}} -{"t_ms": 0, "stream": "inspection", "data": {"type": "agent_definition", "file": "/owned/agent.md", "content": "---\nname: phase2\ndescription: Session adapter\nmcpServers: {\"phase2\": {\"serverUrl\": \"http://127.0.0.1:/mcp\"}}\n---\nWork in the current workspace.\n"}} -{"t_ms": 0, "stream": "inspection", "data": {"type": "agent_definition", "file": "/owned/.agents/agents/phase2.md", "content": "---\nname: phase2\ndescription: Session adapter\nmainAgent: true\nworkdir: \nmcpServers: {\"phase2\": {\"serverUrl\": \"http://127.0.0.1:/mcp\"}}\n---\n# Identity\nWork in the current workspace.\n"}} -{"t_ms": 0, "stream": "inspection", "data": {"type": "agent_manifest", "file": "/owned/.agents/agents.json", "content": {"entries": [{"path": "/owned/.agents/agents"}]}}} -{"t_ms": 0, "stream": "inspection", "data": {"type": "native_log", "capture": "mcp-agent-file", "line": "W0929 21:29:08.043649 1 session.go:94] Agent \"/owned/agent.md\" not found, falling back to default"}} -{"t_ms": 0, "stream": "inspection", "data": {"type": "native_log", "capture": "mcp-agent-definition", "line": "W0929 21:30:59.337788 1 session.go:94] Agent \"phase2\" not found, falling back to default"}} -{"t_ms": 0, "stream": "inspection", "data": {"type": "native_log", "capture": "mcp-agent-discovered", "line": "W0929 21:33:13.643983 1 session.go:94] Agent \"phase2\" not found, falling back to default"}} -{"t_ms": 0, "stream": "inspection", "data": {"type": "translator_image_part", "function": "view_file", "location": "functionResponse.parts[].inlineData", "mimeType": "image/png", "forwarded": true}} -{"t_ms": 0, "stream": "inspection", "data": {"type": "image", "fixture": "image-file-external.png", "sha256": "abd9ec3ff865aa30218d6184eadff4c0fc1c55d6ada251909d6b4554d64d5336", "expected": "Red triangle on the left, blue circle on the lower right, white background."}} diff --git a/plugins/antigravity-provider/test/fixtures/project-skill.capture.ndjson b/plugins/antigravity-provider/test/fixtures/project-skill.capture.ndjson deleted file mode 100644 index c7e091ebe3..0000000000 --- a/plugins/antigravity-provider/test/fixtures/project-skill.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "", "--disable-slash-commands"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 5673, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/project-skill.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/project-skill.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/project-skill.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/project-skill.stdin.ndjson deleted file mode 100644 index 2380ec6f8e..0000000000 --- a/plugins/antigravity-provider/test/fixtures/project-skill.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 361, "stream": "stdin", "data": {"event": "user", "message": {"content": "Use the phase0-marker skill now."}}} diff --git a/plugins/antigravity-provider/test/fixtures/project-skill.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/project-skill.stdout.ndjson deleted file mode 100644 index d2a8a0b936..0000000000 --- a/plugins/antigravity-provider/test/fixtures/project-skill.stdout.ndjson +++ /dev/null @@ -1,9 +0,0 @@ -{"t_ms": 361, "stream": "stdout", "data": {"event": "init", "conversation_id": "a145f6cf-b974-4ddb-b7eb-58bca63a0092", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "request-review"}}} -{"t_ms": 415, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a145f6cf-b974-4ddb-b7eb-58bca63a0092", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 3806, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a145f6cf-b974-4ddb-b7eb-58bca63a0092", "step_index": 1, "state": "DONE", "step_type": "agent_response", "duration_seconds": 3.389284511, "usage": {"input_tokens": 11270, "output_tokens": 246, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11516}}}} -{"t_ms": 3806, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a145f6cf-b974-4ddb-b7eb-58bca63a0092", "step_index": 2, "state": "ACTIVE", "step_type": "tool", "tool_name": "view_file", "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/.agents/skills/phase0-marker/SKILL.md"}}}}} -{"t_ms": 3806, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a145f6cf-b974-4ddb-b7eb-58bca63a0092", "step_index": 2, "state": "DONE", "step_type": "tool", "tool_name": "view_file", "duration_seconds": 0.003649634, "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/.agents/skills/phase0-marker/SKILL.md"}, "output": "6 lines, 163 bytes"}}}} -{"t_ms": 5190, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a145f6cf-b974-4ddb-b7eb-58bca63a0092", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "PHASE"}}} -{"t_ms": 5216, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a145f6cf-b974-4ddb-b7eb-58bca63a0092", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "0_SKILL_MARKER"}}} -{"t_ms": 5572, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a145f6cf-b974-4ddb-b7eb-58bca63a0092", "step_index": 3, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 1.7500252870000002, "usage": {"input_tokens": 11562, "output_tokens": 9, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11571}}}} -{"t_ms": 5572, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "a145f6cf-b974-4ddb-b7eb-58bca63a0092", "status": "SUCCESS", "response": "PHASE0_SKILL_MARKER\n", "duration_seconds": 5.185824959, "num_turns": 1, "usage": {"input_tokens": 22832, "output_tokens": 255, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 23087}}}} diff --git a/plugins/antigravity-provider/test/fixtures/question-auto-denial.capture.ndjson b/plugins/antigravity-provider/test/fixtures/question-auto-denial.capture.ndjson deleted file mode 100644 index f2e339bb07..0000000000 --- a/plugins/antigravity-provider/test/fixtures/question-auto-denial.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", ""], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 7149, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/question-auto-denial.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/question-auto-denial.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/question-auto-denial.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/question-auto-denial.stdin.ndjson deleted file mode 100644 index b53fbe5176..0000000000 --- a/plugins/antigravity-provider/test/fixtures/question-auto-denial.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 298, "stream": "stdin", "data": {"event": "user", "message": {"content": "Use ask_question to ask me which color I prefer, red or blue. Do not choose for me."}}} diff --git a/plugins/antigravity-provider/test/fixtures/question-auto-denial.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/question-auto-denial.stdout.ndjson deleted file mode 100644 index 352ea75867..0000000000 --- a/plugins/antigravity-provider/test/fixtures/question-auto-denial.stdout.ndjson +++ /dev/null @@ -1,14 +0,0 @@ -{"t_ms": 298, "stream": "stdout", "data": {"event": "init", "conversation_id": "e81b4d91-ca0f-4bf9-9841-d44ec1f48997", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "request-review"}}} -{"t_ms": 325, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e81b4d91-ca0f-4bf9-9841-d44ec1f48997", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 4334, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e81b4d91-ca0f-4bf9-9841-d44ec1f48997", "step_index": 1, "state": "DONE", "step_type": "agent_response", "duration_seconds": 3.994201944, "usage": {"input_tokens": 11258, "output_tokens": 297, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11555}}}} -{"t_ms": 4334, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e81b4d91-ca0f-4bf9-9841-d44ec1f48997", "step_index": 2, "state": "DONE", "step_type": "unknown", "duration_seconds": 0.00288314}}} -{"t_ms": 6347, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e81b4d91-ca0f-4bf9-9841-d44ec1f48997", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "You"}}} -{"t_ms": 6676, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e81b4d91-ca0f-4bf9-9841-d44ec1f48997", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " skipped ans"}}} -{"t_ms": 6702, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e81b4d91-ca0f-4bf9-9841-d44ec1f48997", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "wering the question. Let"}}} -{"t_ms": 6728, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e81b4d91-ca0f-4bf9-9841-d44ec1f48997", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " me know if you'd like t"}}} -{"t_ms": 6753, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e81b4d91-ca0f-4bf9-9841-d44ec1f48997", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "o choose a c"}}} -{"t_ms": 6778, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e81b4d91-ca0f-4bf9-9841-d44ec1f48997", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "olor or if there's anyth"}}} -{"t_ms": 6804, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e81b4d91-ca0f-4bf9-9841-d44ec1f48997", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ing else I can help you "}}} -{"t_ms": 6829, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e81b4d91-ca0f-4bf9-9841-d44ec1f48997", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "with!"}}} -{"t_ms": 7057, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e81b4d91-ca0f-4bf9-9841-d44ec1f48997", "step_index": 3, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 2.727510169, "usage": {"input_tokens": 11366, "output_tokens": 31, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11397}}}} -{"t_ms": 7057, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "e81b4d91-ca0f-4bf9-9841-d44ec1f48997", "status": "SUCCESS", "response": "You skipped answering the question. Let me know if you'd like to choose a color or if there's anything else I can help you with!\n", "duration_seconds": 6.748385314, "num_turns": 1, "usage": {"input_tokens": 22624, "output_tokens": 328, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 22952}}}} diff --git a/plugins/antigravity-provider/test/fixtures/resume-after-interrupt.capture.ndjson b/plugins/antigravity-provider/test/fixtures/resume-after-interrupt.capture.ndjson deleted file mode 100644 index 381dc3897e..0000000000 --- a/plugins/antigravity-provider/test/fixtures/resume-after-interrupt.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--conversation", "a2c2132f-0f10-400b-a142-74f82230f449"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 2531, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/resume-after-interrupt.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/resume-after-interrupt.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/resume-after-interrupt.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/resume-after-interrupt.stdin.ndjson deleted file mode 100644 index 40ea297e7f..0000000000 --- a/plugins/antigravity-provider/test/fixtures/resume-after-interrupt.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 357, "stream": "stdin", "data": {"event": "user", "message": {"content": "Reply with PHASE0_RECOVERED. No tools."}}} diff --git a/plugins/antigravity-provider/test/fixtures/resume-after-interrupt.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/resume-after-interrupt.stdout.ndjson deleted file mode 100644 index 8b3e527418..0000000000 --- a/plugins/antigravity-provider/test/fixtures/resume-after-interrupt.stdout.ndjson +++ /dev/null @@ -1,7 +0,0 @@ -{"t_ms": 357, "stream": "stdout", "data": {"event": "init", "conversation_id": "a2c2132f-0f10-400b-a142-74f82230f449", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "request-review"}}} -{"t_ms": 386, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a2c2132f-0f10-400b-a142-74f82230f449", "step_index": 2, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 412, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a2c2132f-0f10-400b-a142-74f82230f449", "step_index": 3, "state": "DONE", "step_type": "system_message", "duration_seconds": 6.4942e-05}}} -{"t_ms": 2228, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a2c2132f-0f10-400b-a142-74f82230f449", "step_index": 4, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "PHASE0_RECOV"}}} -{"t_ms": 2253, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a2c2132f-0f10-400b-a142-74f82230f449", "step_index": 4, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ERED"}}} -{"t_ms": 2380, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a2c2132f-0f10-400b-a142-74f82230f449", "step_index": 4, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 1.9710905699999999, "usage": {"input_tokens": 11524, "output_tokens": 65, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11589}}}} -{"t_ms": 2380, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "a2c2132f-0f10-400b-a142-74f82230f449", "status": "SUCCESS", "response": "PHASE0_RECOVERED\n", "duration_seconds": 216.301687963, "num_turns": 2, "usage": {"input_tokens": 11524, "output_tokens": 65, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11589}}}} diff --git a/plugins/antigravity-provider/test/fixtures/resume.capture.ndjson b/plugins/antigravity-provider/test/fixtures/resume.capture.ndjson deleted file mode 100644 index 4caec009da..0000000000 --- a/plugins/antigravity-provider/test/fixtures/resume.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "", "--disable-slash-commands", "--conversation", "b966b16a-caf4-448a-bb24-0e34956022b0"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 2317, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/resume.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/resume.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/resume.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/resume.stdin.ndjson deleted file mode 100644 index e91cc571bd..0000000000 --- a/plugins/antigravity-provider/test/fixtures/resume.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 288, "stream": "stdin", "data": {"event": "user", "message": {"role": "user", "content": "What secret word did I give you? No tools."}}} diff --git a/plugins/antigravity-provider/test/fixtures/resume.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/resume.stdout.ndjson deleted file mode 100644 index d685e83cfb..0000000000 --- a/plugins/antigravity-provider/test/fixtures/resume.stdout.ndjson +++ /dev/null @@ -1,8 +0,0 @@ -{"t_ms": 288, "stream": "stdout", "data": {"event": "init", "conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "request-review"}}} -{"t_ms": 333, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 4, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 333, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 5, "state": "DONE", "step_type": "system_message", "duration_seconds": 4.3562e-05}}} -{"t_ms": 1969, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 6, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "The secret"}}} -{"t_ms": 2045, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 6, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " word you gave me is **C"}}} -{"t_ms": 2070, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 6, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "OBALT**."}}} -{"t_ms": 2172, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "step_index": 6, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 1.821180269, "usage": {"input_tokens": 11815, "output_tokens": 12, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11827}}}} -{"t_ms": 2172, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "status": "SUCCESS", "response": "The secret word you gave me is **COBALT**.\n", "duration_seconds": 8.574573367, "num_turns": 3, "usage": {"input_tokens": 34682, "output_tokens": 481, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 35163}}}} diff --git a/plugins/antigravity-provider/test/fixtures/schema-prompt.capture.ndjson b/plugins/antigravity-provider/test/fixtures/schema-prompt.capture.ndjson deleted file mode 100644 index 9964112608..0000000000 --- a/plugins/antigravity-provider/test/fixtures/schema-prompt.capture.ndjson +++ /dev/null @@ -1,3 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 30706, "stream": "capture", "data": {"timeout_waiting_for": "result", "seconds": 30}} -{"t_ms": 30794, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/schema-prompt.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/schema-prompt.stderr.ndjson deleted file mode 100644 index 0a830c1e99..0000000000 --- a/plugins/antigravity-provider/test/fixtures/schema-prompt.stderr.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 677, "stream": "stderr", "data": "warning: ignoring unsupported stream input message event \"prompt\""} diff --git a/plugins/antigravity-provider/test/fixtures/schema-prompt.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/schema-prompt.stdin.ndjson deleted file mode 100644 index 2831eab45f..0000000000 --- a/plugins/antigravity-provider/test/fixtures/schema-prompt.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 677, "stream": "stdin", "data": {"event": "prompt", "prompt": "Reply PHASE0_HELLO."}} diff --git a/plugins/antigravity-provider/test/fixtures/schema-prompt.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/schema-prompt.stdout.ndjson deleted file mode 100644 index 1b83a4d41e..0000000000 --- a/plugins/antigravity-provider/test/fixtures/schema-prompt.stdout.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 676, "stream": "stdout", "data": {"event": "init", "conversation_id": "11a830e0-80b1-4f55-ab34-0670be20a722", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "request-review"}}} diff --git a/plugins/antigravity-provider/test/fixtures/schema-user-message.capture.ndjson b/plugins/antigravity-provider/test/fixtures/schema-user-message.capture.ndjson deleted file mode 100644 index 8db1f98058..0000000000 --- a/plugins/antigravity-provider/test/fixtures/schema-user-message.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 490, "stream": "capture", "data": {"exit_code": 1}} diff --git a/plugins/antigravity-provider/test/fixtures/schema-user-message.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/schema-user-message.stderr.ndjson deleted file mode 100644 index 30d0fa5adb..0000000000 --- a/plugins/antigravity-provider/test/fixtures/schema-user-message.stderr.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 386, "stream": "stderr", "data": "error: failed to decode stream input: json: cannot unmarshal string into Go struct field streamInputMessage.message of type printmode.streamInputUserMessage"} diff --git a/plugins/antigravity-provider/test/fixtures/schema-user-message.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/schema-user-message.stdin.ndjson deleted file mode 100644 index cbedcbaceb..0000000000 --- a/plugins/antigravity-provider/test/fixtures/schema-user-message.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 383, "stream": "stdin", "data": {"event": "user_message", "message": "Reply PHASE0_HELLO."}} diff --git a/plugins/antigravity-provider/test/fixtures/schema-user-message.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/schema-user-message.stdout.ndjson deleted file mode 100644 index 333d3a9b8d..0000000000 --- a/plugins/antigravity-provider/test/fixtures/schema-user-message.stdout.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 383, "stream": "stdout", "data": {"event": "init", "conversation_id": "b70d4858-e4ed-469c-84d6-8fec25ceb1cb", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "request-review"}}} -{"t_ms": 386, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "b70d4858-e4ed-469c-84d6-8fec25ceb1cb", "status": "ERROR", "response": "", "error": "failed to decode stream input: json: cannot unmarshal string into Go struct field streamInputMessage.message of type printmode.streamInputUserMessage", "duration_seconds": 0, "num_turns": 0, "usage": {"input_tokens": 0, "output_tokens": 0, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 0}}}} diff --git a/plugins/antigravity-provider/test/fixtures/schema-user.capture.ndjson b/plugins/antigravity-provider/test/fixtures/schema-user.capture.ndjson deleted file mode 100644 index 205f7c638b..0000000000 --- a/plugins/antigravity-provider/test/fixtures/schema-user.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 426, "stream": "capture", "data": {"exit_code": 1}} diff --git a/plugins/antigravity-provider/test/fixtures/schema-user.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/schema-user.stderr.ndjson deleted file mode 100644 index 7ae241a87e..0000000000 --- a/plugins/antigravity-provider/test/fixtures/schema-user.stderr.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 342, "stream": "stderr", "data": "error: failed to decode stream input: json: cannot unmarshal string into Go struct field streamInputMessage.message of type printmode.streamInputUserMessage"} diff --git a/plugins/antigravity-provider/test/fixtures/schema-user.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/schema-user.stdin.ndjson deleted file mode 100644 index 5523b07666..0000000000 --- a/plugins/antigravity-provider/test/fixtures/schema-user.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 338, "stream": "stdin", "data": {"event": "user", "message": "Reply PHASE0_HELLO."}} diff --git a/plugins/antigravity-provider/test/fixtures/schema-user.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/schema-user.stdout.ndjson deleted file mode 100644 index 324e16471e..0000000000 --- a/plugins/antigravity-provider/test/fixtures/schema-user.stdout.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 338, "stream": "stdout", "data": {"event": "init", "conversation_id": "f57811d9-3f9d-42cc-870a-ffdaa85ba608", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "request-review"}}} -{"t_ms": 342, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "f57811d9-3f9d-42cc-870a-ffdaa85ba608", "status": "ERROR", "response": "", "error": "failed to decode stream input: json: cannot unmarshal string into Go struct field streamInputMessage.message of type printmode.streamInputUserMessage", "duration_seconds": 0, "num_turns": 0, "usage": {"input_tokens": 0, "output_tokens": 0, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 0}}}} diff --git a/plugins/antigravity-provider/test/fixtures/sigint-mid-text.capture.ndjson b/plugins/antigravity-provider/test/fixtures/sigint-mid-text.capture.ndjson deleted file mode 100644 index 744e6a79b1..0000000000 --- a/plugins/antigravity-provider/test/fixtures/sigint-mid-text.capture.ndjson +++ /dev/null @@ -1,3 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "", "--disable-slash-commands", "--dangerously-skip-permissions"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 2000, "stream": "capture", "data": {"signal": "SIGINT", "trigger": {"conversation_id": "a2c2132f-0f10-400b-a142-74f82230f449", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "# The Architecture of In"}}} -{"t_ms": 2141, "stream": "capture", "data": {"exit_code": 1}} diff --git a/plugins/antigravity-provider/test/fixtures/sigint-mid-text.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/sigint-mid-text.stderr.ndjson deleted file mode 100644 index 49b703e524..0000000000 --- a/plugins/antigravity-provider/test/fixtures/sigint-mid-text.stderr.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 2025, "stream": "stderr", "data": "error: interrupted"} diff --git a/plugins/antigravity-provider/test/fixtures/sigint-mid-text.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/sigint-mid-text.stdin.ndjson deleted file mode 100644 index 06c4053234..0000000000 --- a/plugins/antigravity-provider/test/fixtures/sigint-mid-text.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 310, "stream": "stdin", "data": {"event": "user", "message": {"content": "Write a long 2000-word essay on prime numbers. No tools."}}} diff --git a/plugins/antigravity-provider/test/fixtures/sigint-mid-text.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/sigint-mid-text.stdout.ndjson deleted file mode 100644 index 63b9bd96f1..0000000000 --- a/plugins/antigravity-provider/test/fixtures/sigint-mid-text.stdout.ndjson +++ /dev/null @@ -1,4 +0,0 @@ -{"t_ms": 309, "stream": "stdout", "data": {"event": "init", "conversation_id": "a2c2132f-0f10-400b-a142-74f82230f449", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "always-proceed"}}} -{"t_ms": 337, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a2c2132f-0f10-400b-a142-74f82230f449", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 2000, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "a2c2132f-0f10-400b-a142-74f82230f449", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "# The Architecture of In"}}} -{"t_ms": 2025, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "a2c2132f-0f10-400b-a142-74f82230f449", "status": "ERROR", "response": "# The Architecture of In", "error": "interrupted", "duration_seconds": 1.690084523, "num_turns": 1, "usage": {"input_tokens": 0, "output_tokens": 0, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 0}}}} diff --git a/plugins/antigravity-provider/test/fixtures/sigint-mid-tool.capture.ndjson b/plugins/antigravity-provider/test/fixtures/sigint-mid-tool.capture.ndjson deleted file mode 100644 index d4774ef9e5..0000000000 --- a/plugins/antigravity-provider/test/fixtures/sigint-mid-tool.capture.ndjson +++ /dev/null @@ -1,3 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "", "--dangerously-skip-permissions"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 4486, "stream": "capture", "data": {"signal": "SIGINT", "trigger": {"conversation_id": "b3c8b9d6-c0ca-4444-8fd3-8bc86de8e6ba", "step_index": 2, "state": "ACTIVE", "step_type": "tool", "tool_name": "run_command", "tool_info": {"name": "run_command", "parameters": {"CommandLine": "sleep 30; printf FINISHED"}}}}} -{"t_ms": 4716, "stream": "capture", "data": {"exit_code": 1}} diff --git a/plugins/antigravity-provider/test/fixtures/sigint-mid-tool.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/sigint-mid-tool.stderr.ndjson deleted file mode 100644 index 40ea382edb..0000000000 --- a/plugins/antigravity-provider/test/fixtures/sigint-mid-tool.stderr.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 4489, "stream": "stderr", "data": "error: interrupted"} diff --git a/plugins/antigravity-provider/test/fixtures/sigint-mid-tool.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/sigint-mid-tool.stdin.ndjson deleted file mode 100644 index 7d34666611..0000000000 --- a/plugins/antigravity-provider/test/fixtures/sigint-mid-tool.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 371, "stream": "stdin", "data": {"event": "user", "message": {"content": "Use run_command to run sleep 30; printf FINISHED in , WaitMsBeforeAsync 1000. Wait until it finishes."}}} diff --git a/plugins/antigravity-provider/test/fixtures/sigint-mid-tool.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/sigint-mid-tool.stdout.ndjson deleted file mode 100644 index ea8cee886f..0000000000 --- a/plugins/antigravity-provider/test/fixtures/sigint-mid-tool.stdout.ndjson +++ /dev/null @@ -1,5 +0,0 @@ -{"t_ms": 371, "stream": "stdout", "data": {"event": "init", "conversation_id": "b3c8b9d6-c0ca-4444-8fd3-8bc86de8e6ba", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "always-proceed"}}} -{"t_ms": 399, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b3c8b9d6-c0ca-4444-8fd3-8bc86de8e6ba", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 4086, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b3c8b9d6-c0ca-4444-8fd3-8bc86de8e6ba", "step_index": 1, "state": "DONE", "step_type": "agent_response", "duration_seconds": 3.660004339, "usage": {"input_tokens": 11272, "output_tokens": 247, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11519}}}} -{"t_ms": 4086, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "b3c8b9d6-c0ca-4444-8fd3-8bc86de8e6ba", "step_index": 2, "state": "ACTIVE", "step_type": "tool", "tool_name": "run_command", "tool_info": {"name": "run_command", "parameters": {"CommandLine": "sleep 30; printf FINISHED"}}}}} -{"t_ms": 4489, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "b3c8b9d6-c0ca-4444-8fd3-8bc86de8e6ba", "status": "ERROR", "response": "", "error": "interrupted", "duration_seconds": 4.114884661, "num_turns": 1, "usage": {"input_tokens": 11272, "output_tokens": 247, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11519}}}} diff --git a/plugins/antigravity-provider/test/fixtures/sigterm.capture.ndjson b/plugins/antigravity-provider/test/fixtures/sigterm.capture.ndjson deleted file mode 100644 index eafb4b76ed..0000000000 --- a/plugins/antigravity-provider/test/fixtures/sigterm.capture.ndjson +++ /dev/null @@ -1,3 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "", "--disable-slash-commands", "--dangerously-skip-permissions"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 316, "stream": "capture", "data": {"signal": "SIGTERM", "trigger": {"conversation_id": "21c82404-cd16-4781-a827-eb7186d61b7e", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 467, "stream": "capture", "data": {"exit_code": 1}} diff --git a/plugins/antigravity-provider/test/fixtures/sigterm.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/sigterm.stderr.ndjson deleted file mode 100644 index ee58454e54..0000000000 --- a/plugins/antigravity-provider/test/fixtures/sigterm.stderr.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 341, "stream": "stderr", "data": "error: interrupted"} diff --git a/plugins/antigravity-provider/test/fixtures/sigterm.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/sigterm.stdin.ndjson deleted file mode 100644 index 27e2a28a9c..0000000000 --- a/plugins/antigravity-provider/test/fixtures/sigterm.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 289, "stream": "stdin", "data": {"event": "user", "message": {"content": "Write a long essay on prime numbers. No tools."}}} diff --git a/plugins/antigravity-provider/test/fixtures/sigterm.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/sigterm.stdout.ndjson deleted file mode 100644 index 1fe0f471e1..0000000000 --- a/plugins/antigravity-provider/test/fixtures/sigterm.stdout.ndjson +++ /dev/null @@ -1,3 +0,0 @@ -{"t_ms": 289, "stream": "stdout", "data": {"event": "init", "conversation_id": "21c82404-cd16-4781-a827-eb7186d61b7e", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "always-proceed"}}} -{"t_ms": 316, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "21c82404-cd16-4781-a827-eb7186d61b7e", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 341, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "21c82404-cd16-4781-a827-eb7186d61b7e", "status": "ERROR", "response": "", "error": "interrupted", "duration_seconds": 0, "num_turns": 1, "usage": {"input_tokens": 0, "output_tokens": 0, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 0}}}} diff --git a/plugins/antigravity-provider/test/fixtures/slash-disabled.capture.ndjson b/plugins/antigravity-provider/test/fixtures/slash-disabled.capture.ndjson deleted file mode 100644 index 72dc5418fc..0000000000 --- a/plugins/antigravity-provider/test/fixtures/slash-disabled.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--disable-slash-commands"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 9267, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/slash-disabled.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/slash-disabled.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/slash-disabled.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/slash-disabled.stdin.ndjson deleted file mode 100644 index fc08c01367..0000000000 --- a/plugins/antigravity-provider/test/fixtures/slash-disabled.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 292, "stream": "stdin", "data": {"event": "user", "message": {"content": "/help"}}} diff --git a/plugins/antigravity-provider/test/fixtures/slash-disabled.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/slash-disabled.stdout.ndjson deleted file mode 100644 index 5050830bb3..0000000000 --- a/plugins/antigravity-provider/test/fixtures/slash-disabled.stdout.ndjson +++ /dev/null @@ -1,84 +0,0 @@ -{"t_ms": 291, "stream": "stdout", "data": {"event": "init", "conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "request-review"}}} -{"t_ms": 318, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 3215, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 1, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.874473262, "usage": {"input_tokens": 11225, "output_tokens": 193, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11418}}}} -{"t_ms": 3215, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 2, "state": "ACTIVE", "step_type": "tool", "tool_name": "view_file", "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/.gemini/antigravity-cli/builtin/skills/antigravity_guide/SKILL.md"}}}}} -{"t_ms": 3215, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 2, "state": "DONE", "step_type": "tool", "tool_name": "view_file", "duration_seconds": 0.003097441, "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/.gemini/antigravity-cli/builtin/skills/antigravity_guide/SKILL.md"}, "output": "56 lines, 3023 bytes"}}}} -{"t_ms": 5737, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 3, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.513209521, "usage": {"input_tokens": 12487, "output_tokens": 73, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12560}}}} -{"t_ms": 5737, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 4, "state": "ACTIVE", "step_type": "tool", "tool_name": "view_file", "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/.gemini/antigravity-cli/builtin/skills/antigravity_guide/references/cli.md"}}}}} -{"t_ms": 5737, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 4, "state": "DONE", "step_type": "tool", "tool_name": "view_file", "duration_seconds": 0.003075841, "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/.gemini/antigravity-cli/builtin/skills/antigravity_guide/references/cli.md"}, "output": "42 lines, 1686 bytes"}}}} -{"t_ms": 6974, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "Here is"}}} -{"t_ms": 7051, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " a quick guide to using "}}} -{"t_ms": 7076, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "**Antigravit"}}} -{"t_ms": 7101, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "y (AGY)** and its availa"}}} -{"t_ms": 7127, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ble slash"}}} -{"t_ms": 7177, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " commands:\n\n### Available Slash Comm"}}} -{"t_ms": 7203, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ands\n\n* **/p"}}} -{"t_ms": 7228, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "lan** – Initiates deta"}}} -{"t_ms": 7254, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "iled step-by"}}} -{"t_ms": 7279, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "-step planning and archi"}}} -{"t_ms": 7305, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "tecture desi"}}} -{"t_ms": 7330, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "gn"}}} -{"t_ms": 7356, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " before making code changes.\n* **/gr"}}} -{"t_ms": 7381, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ill-me** –"}}} -{"t_ms": 7407, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " Starts an interactive i"}}} -{"t_ms": 7432, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "nterview/rev"}}} -{"t_ms": 7458, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "iew session to refine re"}}} -{"t_ms": 7483, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "quirements and"}}} -{"t_ms": 7535, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " architectural decisions"}}} -{"t_ms": 7560, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": ".\n* **/goal*"}}} -{"t_ms": 7586, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "* – Sets a high-level,"}}} -{"t_ms": 7611, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " long-running goal where"}}} -{"t_ms": 7637, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " the agent w"}}} -{"t_ms": 7662, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "orks autonomously and"}}} -{"t_ms": 7763, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " thoroughly "}}} -{"t_ms": 7789, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "until completion.\n* **/s"}}} -{"t_ms": 7814, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "chedule** "}}} -{"t_ms": 7840, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "– Sets up one-shot tim"}}} -{"t_ms": 7865, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ers or recur"}}} -{"t_ms": 7890, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ring cron jobs for periodic checks a"}}} -{"t_ms": 7916, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "nd background tasks.\n* *"}}} -{"t_ms": 7941, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "*/browser** "}}} -{"t_ms": 7966, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "– Directs browser auto"}}} -{"t_ms": 7992, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "mation, test"}}} -{"t_ms": 8017, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ing, and web research wo"}}} -{"t_ms": 8042, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "rkflows.\n* **/learn** "}}} -{"t_ms": 8068, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "– Teaches the agent pr"}}} -{"t_ms": 8094, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "eferences, project rules"}}} -{"t_ms": 8119, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": ", or recurri"}}} -{"t_ms": 8144, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ng setup procedures to p"}}} -{"t_ms": 8169, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ersist across future ses"}}} -{"t_ms": 8195, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "sions.\n\n---\n"}}} -{"t_ms": 8220, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "\n### What I Can Help You"}}} -{"t_ms": 8246, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " With\n\n*"}}} -{"t_ms": 8271, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " **Code Exploration & Ed"}}} -{"t_ms": 8296, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "iting**: Sea"}}} -{"t_ms": 8322, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "rch codebase, view/edit "}}} -{"t_ms": 8347, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "files, run tests, and de"}}} -{"t_ms": 8372, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "bug issues.\n"}}} -{"t_ms": 8398, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "* **Ref"}}} -{"t_ms": 8500, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "actoring & F"}}} -{"t_ms": 8525, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "eature Development**: Pl"}}} -{"t_ms": 8550, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "an, implemen"}}} -{"t_ms": 8576, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "t, and verify multi-file"}}} -{"t_ms": 8601, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " features.\n*"}}} -{"t_ms": 8626, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " **Automation & Subagent"}}} -{"t_ms": 8652, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "s**: Run concurrent task"}}} -{"t_ms": 8677, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "s"}}} -{"t_ms": 8703, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": ", terminal c"}}} -{"t_ms": 8728, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ommands, or "}}} -{"t_ms": 8754, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "delegate complex tasks t"}}} -{"t_ms": 8779, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "o subagents.\n* **Customi"}}} -{"t_ms": 8804, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "zations**: C"}}} -{"t_ms": 8830, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "onfigure [skills](file:/"}}} -{"t_ms": 8855, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "//slash-disab"}}} -{"t_ms": 8881, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "led-home/.gemini/antigra"}}} -{"t_ms": 8906, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "vity-cli/builtin/skills/"}}} -{"t_ms": 8931, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "agy-customiz"}}} -{"t_ms": 8957, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ations/SKILL.md), wor"}}} -{"t_ms": 8982, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "kspace rules"}}} -{"t_ms": 9007, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": ", hooks, and MCP servers"}}} -{"t_ms": 9033, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": ".\n\nLet me kn"}}} -{"t_ms": 9058, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ow what you would like t"}}} -{"t_ms": 9085, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "o work on!"}}} -{"t_ms": 9136, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "step_index": 5, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 3.416356468, "usage": {"input_tokens": 13315, "output_tokens": 309, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 13624}}}} -{"t_ms": 9162, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "84f9a66c-abf4-49f9-81bc-07fe9d6ef1a6", "status": "SUCCESS", "response": "Here is a quick guide to using **Antigravity (AGY)** and its available slash commands:\n\n### Available Slash Commands\n\n* **/plan** – Initiates detailed step-by-step planning and architecture design before making code changes.\n* **/grill-me** – Starts an interactive interview/review session to refine requirements and architectural decisions.\n* **/goal** – Sets a high-level, long-running goal where the agent works autonomously and thoroughly until completion.\n* **/schedule** – Sets up one-shot timers or recurring cron jobs for periodic checks and background tasks.\n* **/browser** – Directs browser automation, testing, and web research workflows.\n* **/learn** – Teaches the agent preferences, project rules, or recurring setup procedures to persist across future sessions.\n\n---\n\n### What I Can Help You With\n\n* **Code Exploration & Editing**: Search codebase, view/edit files, run tests, and debug issues.\n* **Refactoring & Feature Development**: Plan, implement, and verify multi-file features.\n* **Automation & Subagents**: Run concurrent tasks, terminal commands, or delegate complex tasks to subagents.\n* **Customizations**: Configure [skills](file:///.gemini/antigravity-cli/builtin/skills/agy-customizations/SKILL.md), workspace rules, hooks, and MCP servers.\n\nLet me know what you would like to work on!\n", "duration_seconds": 8.84160525, "num_turns": 1, "usage": {"input_tokens": 37027, "output_tokens": 575, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 37602}}}} diff --git a/plugins/antigravity-provider/test/fixtures/slash-enabled.capture.ndjson b/plugins/antigravity-provider/test/fixtures/slash-enabled.capture.ndjson deleted file mode 100644 index 852d00e9cd..0000000000 --- a/plugins/antigravity-provider/test/fixtures/slash-enabled.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 483, "stream": "capture", "data": {"exit_code": 2}} diff --git a/plugins/antigravity-provider/test/fixtures/slash-enabled.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/slash-enabled.stderr.ndjson deleted file mode 100644 index cf7c668f40..0000000000 --- a/plugins/antigravity-provider/test/fixtures/slash-enabled.stderr.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 375, "stream": "stderr", "data": "error: /help is answered by the CLI itself and is unavailable with --input-format stream-json; run it as its own --print /help invocation"} diff --git a/plugins/antigravity-provider/test/fixtures/slash-enabled.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/slash-enabled.stdin.ndjson deleted file mode 100644 index 73da2a88d2..0000000000 --- a/plugins/antigravity-provider/test/fixtures/slash-enabled.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 374, "stream": "stdin", "data": {"event": "user", "message": {"content": "/help"}}} diff --git a/plugins/antigravity-provider/test/fixtures/slash-enabled.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/slash-enabled.stdout.ndjson deleted file mode 100644 index 072ae3c437..0000000000 --- a/plugins/antigravity-provider/test/fixtures/slash-enabled.stdout.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 374, "stream": "stdout", "data": {"event": "init", "conversation_id": "ca3eefcf-2a10-470a-ac64-81f29d305c40", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "request-review"}}} -{"t_ms": 375, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "ca3eefcf-2a10-470a-ac64-81f29d305c40", "status": "ERROR", "response": "", "error": "/help is answered by the CLI itself and is unavailable with --input-format stream-json; run it as its own --print /help invocation", "duration_seconds": 0, "num_turns": 0, "usage": {"input_tokens": 0, "output_tokens": 0, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 0}}}} diff --git a/plugins/antigravity-provider/test/fixtures/state-inspection.ndjson b/plugins/antigravity-provider/test/fixtures/state-inspection.ndjson deleted file mode 100644 index 2155c5cd9f..0000000000 --- a/plugins/antigravity-provider/test/fixtures/state-inspection.ndjson +++ /dev/null @@ -1,6 +0,0 @@ -{"stream": "inspection", "data": {"command": "python3 /finalize.py", "sha256": "574b0234656c44564f3ff3b013225c86f14ae79b67d0f3b45f6aaf1b1625440e", "version_fixture": "version.stdout.ndjson:1", "operation": "hashlib.sha256( bytes)"}} -{"stream": "inspection", "data": {"command": "HOME= strace -f -e trace=file -o /files.trace /.local/opt/agy/1.2.13/agy --input-format stream-json --output-format stream-json", "accessed_state_paths": ["/.gemini/antigravity-cli/antigravity-oauth-token", "/.gemini/antigravity-cli/conversation_summaries.db", "/.gemini/antigravity-cli/conversations", "/.gemini/antigravity-cli/mcp_config.json", "/.gemini/antigravity-cli/secplugins/config.json", "/.gemini/antigravity-cli/settings.json", "/.gemini/antigravity/conversations", "/.gemini/config/config.json", "/.gemini/config/mcp_config.json"], "outside_isolated_home_gemini_accesses": []}} -{"stream": "inspection", "data": {"command": "python3 /finalize.py", "database": "/.gemini/antigravity-cli/conversation_summaries.db", "query": "SELECT conversation_id,title,preview,step_count,last_modified_time,workspace_uris,project_id,agent_name,parent_conversation_id,app_data_dir FROM conversation_summaries", "rows": [{"conversation_id": "b966b16a-caf4-448a-bb24-0e34956022b0", "title": "Secret Word Arithmetic Calculation", "preview": "Secret Word Arithmetic Calculation", "step_count": 13, "last_modified_time": "2026-09-29 18:42:36.36116556+00:00", "workspace_uris": "[\"file://\"]", "project_id": "default-cli-project", "agent_name": "", "parent_conversation_id": "", "app_data_dir": "antigravity-cli"}]}} -{"stream": "inspection", "data": {"database": "/.gemini/antigravity-cli/conversations/b966b16a-caf4-448a-bb24-0e34956022b0.db", "query": "SELECT name FROM sqlite_master WHERE type='table'", "tables": ["trajectory_meta", "steps", "gen_metadata", "executor_metadata", "parent_references", "trajectory_metadata_blob", "battle_mode_infos"], "steps_count": 13, "note": "Step payloads and metadata are binary blobs; no transcript decoder verified."}} -{"stream": "inspection", "data": {"command": "python3 /finalize.py", "workspace_files": {"sandbox.txt": "PHASE0_EDIT\n", "skip-permissions.txt": "PHASE0_EDIT\n", "plan.txt": "PHASE0_EDIT\n", "accept-edits.txt": "PHASE0_EDIT\n", "default.txt": "PHASE0_EDIT\n", "input.txt": "PHASE0_READ_MARKER\n"}}} -{"stream": "inspection", "data": {"command": "firecrawl scrape --format markdown", "retrieved_manifest": "```json\n{\n \"version\": \"1.2.12\",\n \"url\": \"https://storage.googleapis.com/antigravity-public/antigravity-cli/1.2.12-5784551402897408/linux-x64/cli_linux_x64.tar.gz\",\n \"sha512\": \"d5f0fe7433cb7c43ea878c07627a4fdb82d218f3bef5e6436266f5d9fdd2df145523453b9be0c4250391a64a007f5f42f7faff797bc2b2d502e7efb4874e383a\"\n}\n\n```\n", "note": "Fetch returned 1.2.12; supplied binary reports 1.2.13. Release provenance is not established by this manifest response."}} diff --git a/plugins/antigravity-provider/test/fixtures/stdin-close-mid-turn.capture.ndjson b/plugins/antigravity-provider/test/fixtures/stdin-close-mid-turn.capture.ndjson deleted file mode 100644 index be57e05c35..0000000000 --- a/plugins/antigravity-provider/test/fixtures/stdin-close-mid-turn.capture.ndjson +++ /dev/null @@ -1,3 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "", "--disable-slash-commands", "--dangerously-skip-permissions"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 319, "stream": "capture", "data": {"stdin_close": true}} -{"t_ms": 2576, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/stdin-close-mid-turn.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/stdin-close-mid-turn.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/stdin-close-mid-turn.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/stdin-close-mid-turn.stdin.ndjson deleted file mode 100644 index de27d4d5db..0000000000 --- a/plugins/antigravity-provider/test/fixtures/stdin-close-mid-turn.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 292, "stream": "stdin", "data": {"event": "user", "message": {"content": "Reply with PHASE0_EOF. No tools."}}} diff --git a/plugins/antigravity-provider/test/fixtures/stdin-close-mid-turn.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/stdin-close-mid-turn.stdout.ndjson deleted file mode 100644 index 88c41c8b1d..0000000000 --- a/plugins/antigravity-provider/test/fixtures/stdin-close-mid-turn.stdout.ndjson +++ /dev/null @@ -1,5 +0,0 @@ -{"t_ms": 292, "stream": "stdout", "data": {"event": "init", "conversation_id": "4a95b7fd-ae73-4b99-9c00-25d7c37f0250", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "always-proceed"}}} -{"t_ms": 319, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "4a95b7fd-ae73-4b99-9c00-25d7c37f0250", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 2230, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "4a95b7fd-ae73-4b99-9c00-25d7c37f0250", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "PHASE0_EOF"}}} -{"t_ms": 2459, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "4a95b7fd-ae73-4b99-9c00-25d7c37f0250", "step_index": 1, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 2.123780285, "usage": {"input_tokens": 11253, "output_tokens": 80, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11333}}}} -{"t_ms": 2459, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "4a95b7fd-ae73-4b99-9c00-25d7c37f0250", "status": "SUCCESS", "response": "PHASE0_EOF\n", "duration_seconds": 2.146186078, "num_turns": 1, "usage": {"input_tokens": 11253, "output_tokens": 80, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11333}}}} diff --git a/plugins/antigravity-provider/test/fixtures/stdin-mid-turn.capture.ndjson b/plugins/antigravity-provider/test/fixtures/stdin-mid-turn.capture.ndjson deleted file mode 100644 index 12fb5138b4..0000000000 --- a/plugins/antigravity-provider/test/fixtures/stdin-mid-turn.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "", "--disable-slash-commands", "--dangerously-skip-permissions"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 9564, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/stdin-mid-turn.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/stdin-mid-turn.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/stdin-mid-turn.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/stdin-mid-turn.stdin.ndjson deleted file mode 100644 index 326c02c7d0..0000000000 --- a/plugins/antigravity-provider/test/fixtures/stdin-mid-turn.stdin.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 971, "stream": "stdin", "data": {"event": "user", "message": {"content": "Write a 500-word essay about primes. No tools."}}} -{"t_ms": 997, "stream": "stdin", "data": {"event": "user", "message": {"content": "Reply with exactly PHASE0_QUEUED. No tools."}}} diff --git a/plugins/antigravity-provider/test/fixtures/stdin-mid-turn.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/stdin-mid-turn.stdout.ndjson deleted file mode 100644 index bf80956e6a..0000000000 --- a/plugins/antigravity-provider/test/fixtures/stdin-mid-turn.stdout.ndjson +++ /dev/null @@ -1,179 +0,0 @@ -{"t_ms": 971, "stream": "stdout", "data": {"event": "init", "conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "always-proceed"}}} -{"t_ms": 997, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 3035, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "### The Indivisible Atom"}}} -{"t_ms": 3061, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "s of Arithme"}}} -{"t_ms": 3087, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "tic\n\nIn the vast landsca"}}} -{"t_ms": 3112, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "pe of mathem"}}} -{"t_ms": 3137, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "atics, prime numbers sta"}}} -{"t_ms": 3162, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "nd as"}}} -{"t_ms": 3213, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " fundamental building bl"}}} -{"t_ms": 3238, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ocks—the i"}}} -{"t_ms": 3263, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ndivisible atoms of arit"}}} -{"t_ms": 3289, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "hmetic. Defi"}}} -{"t_ms": 3314, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ned simply as integers g"}}} -{"t_ms": 3339, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "reater than "}}} -{"t_ms": 3365, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "one that are divisible o"}}} -{"t_ms": 3390, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "nly by one"}}} -{"t_ms": 3441, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " and themselves, primes possess an e"}}} -{"t_ms": 3466, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "lemental pur"}}} -{"t_ms": 3491, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ity. Yet beneath this de"}}} -{"t_ms": 3517, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ceptive simplicity lies "}}} -{"t_ms": 3542, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "one of the d"}}} -{"t_ms": 3567, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "eepest, most beautiful m"}}} -{"t_ms": 3592, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ysteries in "}}} -{"t_ms": 3618, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "human"}}} -{"t_ms": 3668, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " inquiry: an"}}} -{"t_ms": 3694, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " unending dance between "}}} -{"t_ms": 3719, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "order and ch"}}} -{"t_ms": 3744, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "aos, predictability and "}}} -{"t_ms": 3770, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "randomness.\n"}}} -{"t_ms": 3795, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "\nThe fascination with pr"}}} -{"t_ms": 3820, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "imes stretches back to antiquity. In"}}} -{"t_ms": 3846, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " approximate"}}} -{"t_ms": 3871, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ly 300 BCE, the ancient "}}} -{"t_ms": 3897, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "Greek mathem"}}} -{"t_ms": 3922, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "atician Euclid formulate"}}} -{"t_ms": 3947, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "d one of history’s mos"}}} -{"t_ms": 3972, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "t elegant proofs in his "}}} -{"t_ms": 3998, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "*Elements*, demonstratin"}}} -{"t_ms": 4023, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "g that the s"}}} -{"t_ms": 4048, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "upply of prime numbers i"}}} -{"t_ms": 4074, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "s infinite. "}}} -{"t_ms": 4099, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "If one assumes a finite "}}} -{"t_ms": 4124, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "list of primes, multiply"}}} -{"t_ms": 4150, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ing them tog"}}} -{"t_ms": 4175, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ether and adding one yields a new nu"}}} -{"t_ms": 4201, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "mber that is"}}} -{"t_ms": 4226, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " either prime itself or "}}} -{"t_ms": 4251, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "divisible by"}}} -{"t_ms": 4277, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " a prime not on the orig"}}} -{"t_ms": 4303, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "inal list. Euclid’s pr"}}} -{"t_ms": 4328, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "oof establis"}}} -{"t_ms": 4354, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "hed an eternal truth: no matter how "}}} -{"t_ms": 4379, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "far we trave"}}} -{"t_ms": 4404, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "l along the number line,"}}} -{"t_ms": 4430, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " new primes will continu"}}} -{"t_ms": 4455, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "e to emerge."}}} -{"t_ms": 4481, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "\n\nDespite their infinite"}}} -{"t_ms": 4583, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " nature, primes become i"}}} -{"t_ms": 4608, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ncreasingly sparse as nu"}}} -{"t_ms": 4633, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "mbers grow l"}}} -{"t_ms": 4659, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "arger. For centuries, th"}}} -{"t_ms": 4684, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "eir distribu"}}} -{"t_ms": 4709, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "tion appeared entirely e"}}} -{"t_ms": 4734, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "rratic, defying simple formulas. It "}}} -{"t_ms": 4760, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "was not unti"}}} -{"t_ms": 4785, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "l the nineteenth century"}}} -{"t_ms": 4810, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " that Carl F"}}} -{"t_ms": 4836, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "riedrich Gauss and Adrie"}}} -{"t_ms": 4861, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "n-Marie Legendre conject"}}} -{"t_ms": 4886, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ured the Pri"}}} -{"t_ms": 4912, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "me Number Theorem, later"}}} -{"t_ms": 4937, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " proven in 1896 by Jacqu"}}} -{"t_ms": 4963, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "es Hadamard and Charles "}}} -{"t_ms": 4988, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "Jean de la V"}}} -{"t_ms": 5013, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "allée Poussin. The theo"}}} -{"t_ms": 5038, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "rem revealed a breathtak"}}} -{"t_ms": 5064, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ing macrosco"}}} -{"t_ms": 5089, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "pic regularity: the probabi"}}} -{"t_ms": 5114, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "lity that a "}}} -{"t_ms": 5140, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "randomly chosen integer "}}} -{"t_ms": 5165, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "$N$ is prime is inversel"}}} -{"t_ms": 5190, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "y proportion"}}} -{"t_ms": 5216, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "al to its natural logari"}}} -{"t_ms": 5241, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "thm, $\\ln"}}} -{"t_ms": 5292, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "(N)$. While individual p"}}} -{"t_ms": 5317, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "rimes appear"}}} -{"t_ms": 5343, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " almost randomly, their "}}} -{"t_ms": 5368, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "collective b"}}} -{"t_ms": 5393, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ehavior follows a remark"}}} -{"t_ms": 5418, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ably smooth "}}} -{"t_ms": 5444, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "logarithmic curve.\n\nThis"}}} -{"t_ms": 5469, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " duality between"}}} -{"t_ms": 5495, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " local chaos and global "}}} -{"t_ms": 5520, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "harmony is epitomized by"}}} -{"t_ms": 5546, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " the Riemann"}}} -{"t_ms": 5571, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " Hypothesis, proposed by"}}} -{"t_ms": 5596, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " Bernhard Riemann in 185"}}} -{"t_ms": 5622, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "9. By"}}} -{"t_ms": 5673, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " extending t"}}} -{"t_ms": 5698, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "he zeta function into th"}}} -{"t_ms": 5723, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "e complex pl"}}} -{"t_ms": 5749, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ane, Riemann connected t"}}} -{"t_ms": 5774, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "he distribution of prime"}}} -{"t_ms": 5799, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "s directly t"}}} -{"t_ms": 5825, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "o the non-trivial zeros "}}} -{"t_ms": 5850, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "of this func"}}} -{"t_ms": 5875, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "tion. Widely regarded as the most"}}} -{"t_ms": 5900, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " famous unsolved problem"}}} -{"t_ms": 5926, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " in mathemat"}}} -{"t_ms": 5952, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ics, the Riemann Hypothe"}}} -{"t_ms": 5977, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "sis asserts "}}} -{"t_ms": 6002, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "that all these non-trivi"}}} -{"t_ms": 6028, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "al zeros lie"}}} -{"t_ms": 6053, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " on a"}}} -{"t_ms": 6104, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " single critical line. I"}}} -{"t_ms": 6129, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "f true, it would unlock "}}} -{"t_ms": 6154, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "a profound h"}}} -{"t_ms": 6180, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "armonic symphony governi"}}} -{"t_ms": 6205, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ng the exact fluctuation"}}} -{"t_ms": 6230, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "s of prime n"}}} -{"t_ms": 6256, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "umbers.\n\nBeyond"}}} -{"t_ms": 6332, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " their aesthetic allure in pure math"}}} -{"t_ms": 6357, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ematics, pri"}}} -{"t_ms": 6383, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "me numbers have quietly "}}} -{"t_ms": 6408, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "become the b"}}} -{"t_ms": 6434, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "edrock of modern technological civil"}}} -{"t_ms": 6459, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ization. In "}}} -{"t_ms": 6485, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "the 1970s, the developme"}}} -{"t_ms": 6510, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "nt of asymmetric public-"}}} -{"t_ms": 6535, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "key cryptogr"}}} -{"t_ms": 6561, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "aphy—most notably the "}}} -{"t_ms": 6586, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "RSA algorithm—transfor"}}} -{"t_ms": 6611, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "med prime numbers into i"}}} -{"t_ms": 6637, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ndispensable digital gua"}}} -{"t_ms": 6662, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "rdians. The "}}} -{"t_ms": 6687, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "security of global comme"}}} -{"t_ms": 6713, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "rce, secure "}}} -{"t_ms": 6738, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "communication, and onlin"}}} -{"t_ms": 6763, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "e privacy re"}}} -{"t_ms": 6789, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "sts upon a computational asymmetry: "}}} -{"t_ms": 6814, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "multiplying two large pr"}}} -{"t_ms": 6839, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ime numbers "}}} -{"t_ms": 6865, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "together is nearly insta"}}} -{"t_ms": 6890, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ntaneous, bu"}}} -{"t_ms": 6915, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "t factoring their astron"}}} -{"t_ms": 6941, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "omical product back into"}}} -{"t_ms": 6966, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " its constit"}}} -{"t_ms": 6991, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "uent primes is virtually"}}} -{"t_ms": 7017, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " impossible "}}} -{"t_ms": 7042, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "with classical computing resources.\n"}}} -{"t_ms": 7067, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "\nPrime numbe"}}} -{"t_ms": 7093, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "rs represent a sublime i"}}} -{"t_ms": 7118, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ntersection of philosoph"}}} -{"t_ms": 7143, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "y, abstract "}}} -{"t_ms": 7169, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "theory, and practical ut"}}} -{"t_ms": 7194, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ility. They "}}} -{"t_ms": 7219, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "remind us that the most "}}} -{"t_ms": 7245, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "basic structures in natu"}}} -{"t_ms": 7270, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "re often harbor the deep"}}} -{"t_ms": 7295, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "est questions. As mathem"}}} -{"t_ms": 7320, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "aticians con"}}} -{"t_ms": 7346, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "tinue to explore unresol"}}} -{"t_ms": 7371, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ved enigmas "}}} -{"t_ms": 7397, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "like the Twin Prime Conjecture or th"}}} -{"t_ms": 7422, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "e Goldbach Conjecture, p"}}} -{"t_ms": 7448, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "rimes remain"}}} -{"t_ms": 7473, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " an enduring testament t"}}} -{"t_ms": 7498, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "o the infini"}}} -{"t_ms": 7524, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "te richness waiting to b"}}} -{"t_ms": 7549, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "e uncovered within the s"}}} -{"t_ms": 7574, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "implest conc"}}} -{"t_ms": 7600, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "epts."}}} -{"t_ms": 7650, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 1, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 6.647623906, "usage": {"input_tokens": 11252, "output_tokens": 639, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11891}}}} -{"t_ms": 7650, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "status": "SUCCESS", "response": "### The Indivisible Atoms of Arithmetic\n\nIn the vast landscape of mathematics, prime numbers stand as fundamental building blocks—the indivisible atoms of arithmetic. Defined simply as integers greater than one that are divisible only by one and themselves, primes possess an elemental purity. Yet beneath this deceptive simplicity lies one of the deepest, most beautiful mysteries in human inquiry: an unending dance between order and chaos, predictability and randomness.\n\nThe fascination with primes stretches back to antiquity. In approximately 300 BCE, the ancient Greek mathematician Euclid formulated one of history’s most elegant proofs in his *Elements*, demonstrating that the supply of prime numbers is infinite. If one assumes a finite list of primes, multiplying them together and adding one yields a new number that is either prime itself or divisible by a prime not on the original list. Euclid’s proof established an eternal truth: no matter how far we travel along the number line, new primes will continue to emerge.\n\nDespite their infinite nature, primes become increasingly sparse as numbers grow larger. For centuries, their distribution appeared entirely erratic, defying simple formulas. It was not until the nineteenth century that Carl Friedrich Gauss and Adrien-Marie Legendre conjectured the Prime Number Theorem, later proven in 1896 by Jacques Hadamard and Charles Jean de la Vallée Poussin. The theorem revealed a breathtaking macroscopic regularity: the probability that a randomly chosen integer $N$ is prime is inversely proportional to its natural logarithm, $\\ln(N)$. While individual primes appear almost randomly, their collective behavior follows a remarkably smooth logarithmic curve.\n\nThis duality between local chaos and global harmony is epitomized by the Riemann Hypothesis, proposed by Bernhard Riemann in 1859. By extending the zeta function into the complex plane, Riemann connected the distribution of primes directly to the non-trivial zeros of this function. Widely regarded as the most famous unsolved problem in mathematics, the Riemann Hypothesis asserts that all these non-trivial zeros lie on a single critical line. If true, it would unlock a profound harmonic symphony governing the exact fluctuations of prime numbers.\n\nBeyond their aesthetic allure in pure mathematics, prime numbers have quietly become the bedrock of modern technological civilization. In the 1970s, the development of asymmetric public-key cryptography—most notably the RSA algorithm—transformed prime numbers into indispensable digital guardians. The security of global commerce, secure communication, and online privacy rests upon a computational asymmetry: multiplying two large prime numbers together is nearly instantaneous, but factoring their astronomical product back into its constituent primes is virtually impossible with classical computing resources.\n\nPrime numbers represent a sublime intersection of philosophy, abstract theory, and practical utility. They remind us that the most basic structures in nature often harbor the deepest questions. As mathematicians continue to explore unresolved enigmas like the Twin Prime Conjecture or the Goldbach Conjecture, primes remain an enduring testament to the infinite richness waiting to be uncovered within the simplest concepts.\n", "duration_seconds": 6.674385393, "num_turns": 1, "usage": {"input_tokens": 11252, "output_tokens": 639, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11891}}}} -{"t_ms": 7677, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 2, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 9187, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "PHASE"}}} -{"t_ms": 9213, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "0_QUEUED"}}} -{"t_ms": 9466, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "step_index": 3, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 1.793731176, "usage": {"input_tokens": 11913, "output_tokens": 6, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11919}}}} -{"t_ms": 9466, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "956514b0-986c-4168-8130-c6251328d6fb", "status": "SUCCESS", "response": "PHASE0_QUEUED\n", "duration_seconds": 8.483804893, "num_turns": 2, "usage": {"input_tokens": 23165, "output_tokens": 645, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 23810}}}} diff --git a/plugins/antigravity-provider/test/fixtures/subagent.capture.ndjson b/plugins/antigravity-provider/test/fixtures/subagent.capture.ndjson deleted file mode 100644 index 854c3c3eba..0000000000 --- a/plugins/antigravity-provider/test/fixtures/subagent.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "", "--dangerously-skip-permissions"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 13163, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/subagent.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/subagent.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/subagent.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/subagent.stdin.ndjson deleted file mode 100644 index 0814f42805..0000000000 --- a/plugins/antigravity-provider/test/fixtures/subagent.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 291, "stream": "stdin", "data": {"event": "user", "message": {"content": "Use define_subagent to define a small subagent named phase0-counter that answers arithmetic only, then invoke_subagent to ask it 2+2. Report its answer. Do not use shell."}}} diff --git a/plugins/antigravity-provider/test/fixtures/subagent.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/subagent.stdout.ndjson deleted file mode 100644 index cec633cda7..0000000000 --- a/plugins/antigravity-provider/test/fixtures/subagent.stdout.ndjson +++ /dev/null @@ -1,23 +0,0 @@ -{"t_ms": 291, "stream": "stdout", "data": {"event": "init", "conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "always-proceed"}}} -{"t_ms": 319, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 3924, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "step_index": 1, "state": "DONE", "step_type": "agent_response", "duration_seconds": 3.580501478, "usage": {"input_tokens": 11252, "output_tokens": 188, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11440}}}} -{"t_ms": 3924, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "step_index": 2, "state": "ACTIVE", "step_type": "tool", "tool_name": "define_subagent", "tool_info": {"name": "define_subagent", "parameters": {"description": "A subagent specialized in answering arithmetic questions only.", "name": "phase0-counter"}}}}} -{"t_ms": 3924, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "step_index": 2, "state": "DONE", "step_type": "tool", "tool_name": "define_subagent", "duration_seconds": 0.003321972, "tool_info": {"name": "define_subagent", "parameters": {"description": "A subagent specialized in answering arithmetic questions only.", "name": "phase0-counter"}, "output": "Subagent \"phase0-counter\" defined successfully. It can now be invoked via invoke_subagent."}}}} -{"t_ms": 6541, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "step_index": 3, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.634297625, "usage": {"input_tokens": 11433, "output_tokens": 79, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11512}}}} -{"t_ms": 6541, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "step_index": 4, "state": "ACTIVE", "step_type": "subagent", "tool_name": "invoke_subagent", "subagent_info": {"subagents": [{"type_name": "phase0-counter", "role": "Arithmetic Assistant", "initial_prompt": "What is 2+2?"}]}}}} -{"t_ms": 6565, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "step_index": 4, "state": "DONE", "step_type": "subagent", "tool_name": "invoke_subagent", "duration_seconds": 0.01034356, "subagent_info": {"subagents": [{"type_name": "phase0-counter", "role": "Arithmetic Assistant", "initial_prompt": "What is 2+2?", "conversation_id": "b6f02329-7415-49a7-a9a9-1cd09e898d26", "log_uri": "file:///.gemini/antigravity-cli/brain/b6f02329-7415-49a7-a9a9-1cd09e898d26/.system_generated/logs/transcript.jsonl", "workspace_uris": ["file://"]}]}}}} -{"t_ms": 8527, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "I"}}} -{"t_ms": 8679, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " have define"}}} -{"t_ms": 8704, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "d the subagent `phase0-c"}}} -{"t_ms": 8730, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ounter` and "}}} -{"t_ms": 8755, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "invoked it with the ques"}}} -{"t_ms": 8780, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "tion \"What"}}} -{"t_ms": 8806, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " is 2+2?\". Awaiting its "}}} -{"t_ms": 8831, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "step_index": 5, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "response."}}} -{"t_ms": 9135, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "step_index": 5, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 2.58161986, "usage": {"input_tokens": 11739, "output_tokens": 31, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11770}}}} -{"t_ms": 9715, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "step_index": 6, "state": "DONE", "step_type": "system_message", "duration_seconds": 3.6749e-05}}} -{"t_ms": 12484, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "The `phase0-"}}} -{"t_ms": 12510, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "counter` sub"}}} -{"t_ms": 12610, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "step_index": 7, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "agent answered: **4**."}}} -{"t_ms": 13042, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "step_index": 7, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 3.329676969, "usage": {"input_tokens": 11886, "output_tokens": 74, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11960}}}} -{"t_ms": 13068, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "eceffa7f-bbef-47d0-a3cf-3daeaf20a829", "status": "SUCCESS", "response": "I have defined the subagent `phase0-counter` and invoked it with the question \"What is 2+2?\". Awaiting its response.\nThe `phase0-counter` subagent answered: **4**.\n", "duration_seconds": 12.746450429, "num_turns": 1, "usage": {"input_tokens": 46310, "output_tokens": 372, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 46682}}}} diff --git a/plugins/antigravity-provider/test/fixtures/text-block.capture.ndjson b/plugins/antigravity-provider/test/fixtures/text-block.capture.ndjson deleted file mode 100644 index b1f7ab6455..0000000000 --- a/plugins/antigravity-provider/test/fixtures/text-block.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", ""], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 4102, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/text-block.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/text-block.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/text-block.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/text-block.stdin.ndjson deleted file mode 100644 index faeb98b247..0000000000 --- a/plugins/antigravity-provider/test/fixtures/text-block.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 2020, "stream": "stdin", "data": {"event": "user", "message": {"content": [{"type": "text", "text": "Reply with PHASE0_BLOCK. No tools."}]}}} diff --git a/plugins/antigravity-provider/test/fixtures/text-block.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/text-block.stdout.ndjson deleted file mode 100644 index ee7a7ec32a..0000000000 --- a/plugins/antigravity-provider/test/fixtures/text-block.stdout.ndjson +++ /dev/null @@ -1,5 +0,0 @@ -{"t_ms": 2020, "stream": "stdout", "data": {"event": "init", "conversation_id": "0757bec3-d263-4f90-bf34-7510d638d8c5", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "request-review"}}} -{"t_ms": 2051, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0757bec3-d263-4f90-bf34-7510d638d8c5", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 3939, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0757bec3-d263-4f90-bf34-7510d638d8c5", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "PHASE0_BLOCK"}}} -{"t_ms": 3990, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "0757bec3-d263-4f90-bf34-7510d638d8c5", "step_index": 1, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 1.932265932, "usage": {"input_tokens": 11235, "output_tokens": 62, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11297}}}} -{"t_ms": 3990, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "0757bec3-d263-4f90-bf34-7510d638d8c5", "status": "SUCCESS", "response": "PHASE0_BLOCK\n", "duration_seconds": 1.959296182, "num_turns": 1, "usage": {"input_tokens": 11235, "output_tokens": 62, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11297}}}} diff --git a/plugins/antigravity-provider/test/fixtures/text-turn.capture.ndjson b/plugins/antigravity-provider/test/fixtures/text-turn.capture.ndjson deleted file mode 100644 index 1b006f8ab9..0000000000 --- a/plugins/antigravity-provider/test/fixtures/text-turn.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", ""], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 2911, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/text-turn.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/text-turn.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/text-turn.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/text-turn.stdin.ndjson deleted file mode 100644 index 389b97dece..0000000000 --- a/plugins/antigravity-provider/test/fixtures/text-turn.stdin.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 294, "stream": "stdin", "data": {"event": "user", "message": {"role": "user", "content": "Reply with exactly PHASE0_HELLO. No tools."}}} diff --git a/plugins/antigravity-provider/test/fixtures/text-turn.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/text-turn.stdout.ndjson deleted file mode 100644 index 89fc8a7677..0000000000 --- a/plugins/antigravity-provider/test/fixtures/text-turn.stdout.ndjson +++ /dev/null @@ -1,5 +0,0 @@ -{"t_ms": 294, "stream": "stdout", "data": {"event": "init", "conversation_id": "e5cf1e2d-c715-4328-8e67-4a85c8dc3cda", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "request-review"}}} -{"t_ms": 351, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e5cf1e2d-c715-4328-8e67-4a85c8dc3cda", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 2544, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e5cf1e2d-c715-4328-8e67-4a85c8dc3cda", "step_index": 1, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "PHASE0_HELLO"}}} -{"t_ms": 2746, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "e5cf1e2d-c715-4328-8e67-4a85c8dc3cda", "step_index": 1, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 2.413995705, "usage": {"input_tokens": 11235, "output_tokens": 78, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11313}}}} -{"t_ms": 2772, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "e5cf1e2d-c715-4328-8e67-4a85c8dc3cda", "status": "SUCCESS", "response": "PHASE0_HELLO\n", "duration_seconds": 2.445370438, "num_turns": 1, "usage": {"input_tokens": 11235, "output_tokens": 78, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11313}}}} diff --git a/plugins/antigravity-provider/test/fixtures/tools-accept-edits.capture.ndjson b/plugins/antigravity-provider/test/fixtures/tools-accept-edits.capture.ndjson deleted file mode 100644 index d7c50c17a4..0000000000 --- a/plugins/antigravity-provider/test/fixtures/tools-accept-edits.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "", "--disable-slash-commands", "--mode", "accept-edits"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 16127, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/tools-accept-edits.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/tools-accept-edits.stderr.ndjson deleted file mode 100644 index 30cf90e622..0000000000 --- a/plugins/antigravity-provider/test/fixtures/tools-accept-edits.stderr.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 15954, "stream": "stderr", "data": "jetski: no output produced — a tool required the \"command\" permission that headless mode cannot prompt for, so it was auto-denied. Add an allow-rule under permissions.allow in settings.json (e.g. command()). Alternatively, re-run with --dangerously-skip-permissions to auto-approve all tools."} diff --git a/plugins/antigravity-provider/test/fixtures/tools-accept-edits.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/tools-accept-edits.stdin.ndjson deleted file mode 100644 index 4d89737919..0000000000 --- a/plugins/antigravity-provider/test/fixtures/tools-accept-edits.stdin.ndjson +++ /dev/null @@ -1,3 +0,0 @@ -{"t_ms": 288, "stream": "stdin", "data": {"event": "user", "message": {"role": "user", "content": "Use view_file to read /input.txt. Report its contents. Do not use a shell."}}} -{"t_ms": 5150, "stream": "stdin", "data": {"event": "user", "message": {"role": "user", "content": "Use write_to_file to create /accept-edits.txt with PHASE0_WRITE. Then use replace_file_content to change PHASE0_WRITE to PHASE0_EDIT. No shell. Do not ask me questions."}}} -{"t_ms": 13611, "stream": "stdin", "data": {"event": "user", "message": {"role": "user", "content": "Use run_command exactly once to run printf PHASE0_SHELL in . Report the output. Do not ask me questions."}}} diff --git a/plugins/antigravity-provider/test/fixtures/tools-accept-edits.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/tools-accept-edits.stdout.ndjson deleted file mode 100644 index 57d50ad776..0000000000 --- a/plugins/antigravity-provider/test/fixtures/tools-accept-edits.stdout.ndjson +++ /dev/null @@ -1,40 +0,0 @@ -{"t_ms": 288, "stream": "stdout", "data": {"event": "init", "conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "request-review"}}} -{"t_ms": 315, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 2807, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 1, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.468344855, "usage": {"input_tokens": 11272, "output_tokens": 149, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11421}}}} -{"t_ms": 2807, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 2, "state": "ACTIVE", "step_type": "tool", "tool_name": "view_file", "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/input.txt"}}}}} -{"t_ms": 2807, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 2, "state": "DONE", "step_type": "tool", "tool_name": "view_file", "duration_seconds": 0.002720597, "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/input.txt"}, "output": "2 lines, 19 bytes"}}}} -{"t_ms": 4820, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "The contents"}}} -{"t_ms": 4870, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " of [/workspa"}}} -{"t_ms": 4896, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ce/input.txt"}}} -{"t_ms": 4921, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "](file:///tmp"}}} -{"t_ms": 4972, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "/agy-p0/work"}}} -{"t_ms": 4998, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "space/input.txt) are:\n\n```\nPHASE0_RE"}}} -{"t_ms": 5023, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "AD_MARKER\n``"}}} -{"t_ms": 5048, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "`"}}} -{"t_ms": 5150, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 3, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 2.360276704, "usage": {"input_tokens": 11494, "output_tokens": 47, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11541}}}} -{"t_ms": 5150, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "status": "SUCCESS", "response": "The contents of [/input.txt](file:///input.txt) are:\n\n```\nPHASE0_READ_MARKER\n```\n", "duration_seconds": 4.857244426, "num_turns": 1, "usage": {"input_tokens": 22766, "output_tokens": 196, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 22962}}}} -{"t_ms": 5176, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 4, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 8771, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 5, "state": "DONE", "step_type": "agent_response", "duration_seconds": 3.600197654, "usage": {"input_tokens": 11663, "output_tokens": 419, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12082}}}} -{"t_ms": 8771, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 6, "state": "ACTIVE", "step_type": "tool", "tool_name": "write_to_file", "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/accept-edits.txt"}}}}} -{"t_ms": 8771, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 6, "state": "DONE", "step_type": "tool", "tool_name": "write_to_file", "duration_seconds": 0.003051666, "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/accept-edits.txt"}}}}} -{"t_ms": 11213, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 7, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.42873306, "usage": {"input_tokens": 11846, "output_tokens": 129, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11975}}}} -{"t_ms": 11213, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 8, "state": "ACTIVE", "step_type": "tool", "tool_name": "replace_file_content", "tool_info": {"name": "replace_file_content", "parameters": {"TargetFile": "/accept-edits.txt"}}}}} -{"t_ms": 11213, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 8, "state": "DONE", "step_type": "tool", "tool_name": "replace_file_content", "duration_seconds": 0.003025767, "tool_info": {"name": "replace_file_content", "parameters": {"TargetFile": "/accept-edits.txt"}}}}} -{"t_ms": 12799, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "The file"}}} -{"t_ms": 12900, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " [/"}}} -{"t_ms": 12926, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "accept-edits"}}} -{"t_ms": 12951, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": ".txt](file:///"}}} -{"t_ms": 13002, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "tmp/agy-p0/w"}}} -{"t_ms": 13027, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "orkspace/accept-edits.tx"}}} -{"t_ms": 13053, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "t) has been "}}} -{"t_ms": 13078, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "created with `PHASE0"}}} -{"t_ms": 13155, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "_WRITE` and then updated"}}} -{"t_ms": 13180, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " to `PHASE0_"}}} -{"t_ms": 13206, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "EDIT`."}}} -{"t_ms": 13611, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 9, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 2.385314949, "usage": {"input_tokens": 12152, "output_tokens": 59, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12211}}}} -{"t_ms": 13611, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "status": "SUCCESS", "response": "The file [/accept-edits.txt](file:///accept-edits.txt) has been created with `PHASE0_WRITE` and then updated to `PHASE0_EDIT`.\n", "duration_seconds": 13.300599177, "num_turns": 2, "usage": {"input_tokens": 58427, "output_tokens": 803, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 59230}}}} -{"t_ms": 13638, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 10, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 15928, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 11, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.302666458, "usage": {"input_tokens": 12310, "output_tokens": 98, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12408}}}} -{"t_ms": 15928, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 12, "state": "ACTIVE", "step_type": "tool", "tool_name": "run_command", "tool_info": {"name": "run_command", "parameters": {"CommandLine": "printf PHASE0_SHELL"}}}}} -{"t_ms": 15954, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "step_index": 12, "state": "ERROR", "step_type": "tool", "tool_name": "run_command", "duration_seconds": 0.002216645, "tool_info": {"name": "run_command", "parameters": {"CommandLine": "printf PHASE0_SHELL"}, "error": {"type": "TOOL_ERROR", "message": "permission check failed for command \"printf PHASE0_SHELL\": user denied permission to run command:\nprintf PHASE0_SHELL\nDo not attempt to circumvent this denial by rephrasing the command, using alternative tools/scripts (e.g. python, sh, curl), or accessing the same target resource. Proceed without performing this action."}}}}} -{"t_ms": 15954, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "c38f8e92-993c-453c-9774-035e82a1108b", "status": "SUCCESS", "response": "", "duration_seconds": 15.639601905, "num_turns": 3, "usage": {"input_tokens": 70737, "output_tokens": 901, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 71638}, "denied_actions": [{"action": "command", "display_name": "RunCommand"}]}}} diff --git a/plugins/antigravity-provider/test/fixtures/tools-default.capture.ndjson b/plugins/antigravity-provider/test/fixtures/tools-default.capture.ndjson deleted file mode 100644 index 8c57e4e549..0000000000 --- a/plugins/antigravity-provider/test/fixtures/tools-default.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "", "--disable-slash-commands"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 21620, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/tools-default.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/tools-default.stderr.ndjson deleted file mode 100644 index 4e24b2cb59..0000000000 --- a/plugins/antigravity-provider/test/fixtures/tools-default.stderr.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 21540, "stream": "stderr", "data": "jetski: no output produced — a tool required the \"command\" permission that headless mode cannot prompt for, so it was auto-denied. Add an allow-rule under permissions.allow in settings.json (e.g. command()). Alternatively, re-run with --dangerously-skip-permissions to auto-approve all tools."} diff --git a/plugins/antigravity-provider/test/fixtures/tools-default.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/tools-default.stdin.ndjson deleted file mode 100644 index 371a7bda84..0000000000 --- a/plugins/antigravity-provider/test/fixtures/tools-default.stdin.ndjson +++ /dev/null @@ -1,3 +0,0 @@ -{"t_ms": 297, "stream": "stdin", "data": {"event": "user", "message": {"role": "user", "content": "Use view_file to read /input.txt. Report its contents. Do not use a shell."}}} -{"t_ms": 6781, "stream": "stdin", "data": {"event": "user", "message": {"role": "user", "content": "Use write_to_file to create /default.txt with PHASE0_WRITE. Then use replace_file_content to change PHASE0_WRITE to PHASE0_EDIT. No shell. Do not ask me questions."}}} -{"t_ms": 17022, "stream": "stdin", "data": {"event": "user", "message": {"role": "user", "content": "Use run_command exactly once to run printf PHASE0_SHELL in . Report the output. Do not ask me questions."}}} diff --git a/plugins/antigravity-provider/test/fixtures/tools-default.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/tools-default.stdout.ndjson deleted file mode 100644 index dedb01d707..0000000000 --- a/plugins/antigravity-provider/test/fixtures/tools-default.stdout.ndjson +++ /dev/null @@ -1,41 +0,0 @@ -{"t_ms": 297, "stream": "stdout", "data": {"event": "init", "conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "request-review"}}} -{"t_ms": 326, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 4079, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 1, "state": "DONE", "step_type": "agent_response", "duration_seconds": 3.738430576, "usage": {"input_tokens": 11257, "output_tokens": 149, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11406}}}} -{"t_ms": 4079, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 2, "state": "ACTIVE", "step_type": "tool", "tool_name": "view_file", "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/input.txt"}}}}} -{"t_ms": 4079, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 2, "state": "DONE", "step_type": "tool", "tool_name": "view_file", "duration_seconds": 0.002338062, "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/input.txt"}, "output": "2 lines, 19 bytes"}}}} -{"t_ms": 6096, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "The contents"}}} -{"t_ms": 6223, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " of [`/worksp"}}} -{"t_ms": 6248, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ace/input.tx"}}} -{"t_ms": 6274, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "t`](file:///tmp/agy"}}} -{"t_ms": 6350, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "-p0/workspace/input.txt) are:\n\n```te"}}} -{"t_ms": 6375, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "xt\nPHASE0_RE"}}} -{"t_ms": 6400, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "AD_MARKER"}}} -{"t_ms": 6451, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "\n```"}}} -{"t_ms": 6781, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 3, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 2.698156575, "usage": {"input_tokens": 11478, "output_tokens": 49, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11527}}}} -{"t_ms": 6781, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "status": "SUCCESS", "response": "The contents of [`/input.txt`](file:///input.txt) are:\n\n```text\nPHASE0_READ_MARKER\n```\n", "duration_seconds": 6.466229654, "num_turns": 1, "usage": {"input_tokens": 22735, "output_tokens": 198, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 22933}}}} -{"t_ms": 6807, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 4, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 10766, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 5, "state": "DONE", "step_type": "agent_response", "duration_seconds": 3.966197803, "usage": {"input_tokens": 11646, "output_tokens": 171, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11817}}}} -{"t_ms": 10766, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 6, "state": "ACTIVE", "step_type": "tool", "tool_name": "write_to_file", "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/default.txt"}}}}} -{"t_ms": 10791, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 6, "state": "DONE", "step_type": "tool", "tool_name": "write_to_file", "duration_seconds": 0.003040074, "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/default.txt"}}}}} -{"t_ms": 13910, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 7, "state": "DONE", "step_type": "agent_response", "duration_seconds": 3.136362179, "usage": {"input_tokens": 11813, "output_tokens": 116, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11929}}}} -{"t_ms": 13911, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 8, "state": "ACTIVE", "step_type": "tool", "tool_name": "replace_file_content", "tool_info": {"name": "replace_file_content", "parameters": {"TargetFile": "/default.txt"}}}}} -{"t_ms": 13911, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 8, "state": "DONE", "step_type": "tool", "tool_name": "replace_file_content", "duration_seconds": 0.003396671, "tool_info": {"name": "replace_file_content", "parameters": {"TargetFile": "/default.txt"}}}}} -{"t_ms": 15904, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "I"}}} -{"t_ms": 16032, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " have create"}}} -{"t_ms": 16057, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "d [`/workspac"}}} -{"t_ms": 16083, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "e/default.txt`](file:///"}}} -{"t_ms": 16159, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "tmp/agy-p0/w"}}} -{"t_ms": 16184, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "orkspace/default.txt) wi"}}} -{"t_ms": 16210, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "th `PHASE0_WRITE` and th"}}} -{"t_ms": 16235, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "en updated i"}}} -{"t_ms": 16261, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "t to"}}} -{"t_ms": 16286, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " `PHASE0_EDI"}}} -{"t_ms": 16312, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "T` using `replace_file_c"}}} -{"t_ms": 16337, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ontent`."}}} -{"t_ms": 17022, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 9, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 3.099484037, "usage": {"input_tokens": 12103, "output_tokens": 61, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12164}}}} -{"t_ms": 17022, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "status": "SUCCESS", "response": "I have created [`/default.txt`](file:///default.txt) with `PHASE0_WRITE` and then updated it to `PHASE0_EDIT` using `replace_file_content`.\n", "duration_seconds": 16.710782303, "num_turns": 2, "usage": {"input_tokens": 58297, "output_tokens": 546, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 58843}}}} -{"t_ms": 17049, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 10, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 21540, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 11, "state": "DONE", "step_type": "agent_response", "duration_seconds": 4.490021482, "usage": {"input_tokens": 12263, "output_tokens": 370, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12633}}}} -{"t_ms": 21540, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 12, "state": "ACTIVE", "step_type": "tool", "tool_name": "run_command", "tool_info": {"name": "run_command", "parameters": {"CommandLine": "printf PHASE0_SHELL"}}}}} -{"t_ms": 21540, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "step_index": 12, "state": "ERROR", "step_type": "tool", "tool_name": "run_command", "duration_seconds": 0.002821636, "tool_info": {"name": "run_command", "parameters": {"CommandLine": "printf PHASE0_SHELL"}, "error": {"type": "TOOL_ERROR", "message": "permission check failed for command \"printf PHASE0_SHELL\": user denied permission to run command:\nprintf PHASE0_SHELL\nDo not attempt to circumvent this denial by rephrasing the command, using alternative tools/scripts (e.g. python, sh, curl), or accessing the same target resource. Proceed without performing this action."}}}}} -{"t_ms": 21540, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "6d13e726-1498-4995-aa81-7a0851679fb3", "status": "SUCCESS", "response": "", "duration_seconds": 21.23332446, "num_turns": 3, "usage": {"input_tokens": 70560, "output_tokens": 916, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 71476}, "denied_actions": [{"action": "command", "display_name": "RunCommand"}]}}} diff --git a/plugins/antigravity-provider/test/fixtures/tools-plan.capture.ndjson b/plugins/antigravity-provider/test/fixtures/tools-plan.capture.ndjson deleted file mode 100644 index 4a1151d083..0000000000 --- a/plugins/antigravity-provider/test/fixtures/tools-plan.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "", "--disable-slash-commands", "--mode", "plan"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 16560, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/tools-plan.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/tools-plan.stderr.ndjson deleted file mode 100644 index be57aac639..0000000000 --- a/plugins/antigravity-provider/test/fixtures/tools-plan.stderr.ndjson +++ /dev/null @@ -1,4 +0,0 @@ -{"t_ms": 292, "stream": "stderr", "data": "warning: --mode plan has no effect while slash command expansion is disabled."} -{"t_ms": 6705, "stream": "stderr", "data": "warning: --mode plan has no effect while slash command expansion is disabled."} -{"t_ms": 13456, "stream": "stderr", "data": "warning: --mode plan has no effect while slash command expansion is disabled."} -{"t_ms": 16400, "stream": "stderr", "data": "jetski: no output produced — a tool required the \"command\" permission that headless mode cannot prompt for, so it was auto-denied. Add an allow-rule under permissions.allow in settings.json (e.g. command()). Alternatively, re-run with --dangerously-skip-permissions to auto-approve all tools."} diff --git a/plugins/antigravity-provider/test/fixtures/tools-plan.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/tools-plan.stdin.ndjson deleted file mode 100644 index c4d09c8ae7..0000000000 --- a/plugins/antigravity-provider/test/fixtures/tools-plan.stdin.ndjson +++ /dev/null @@ -1,3 +0,0 @@ -{"t_ms": 292, "stream": "stdin", "data": {"event": "user", "message": {"role": "user", "content": "Use view_file to read /input.txt. Report its contents. Do not use a shell."}}} -{"t_ms": 6705, "stream": "stdin", "data": {"event": "user", "message": {"role": "user", "content": "Use write_to_file to create /plan.txt with PHASE0_WRITE. Then use replace_file_content to change PHASE0_WRITE to PHASE0_EDIT. No shell. Do not ask me questions."}}} -{"t_ms": 13455, "stream": "stdin", "data": {"event": "user", "message": {"role": "user", "content": "Use run_command exactly once to run printf PHASE0_SHELL in . Report the output. Do not ask me questions."}}} diff --git a/plugins/antigravity-provider/test/fixtures/tools-plan.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/tools-plan.stdout.ndjson deleted file mode 100644 index 473540451c..0000000000 --- a/plugins/antigravity-provider/test/fixtures/tools-plan.stdout.ndjson +++ /dev/null @@ -1,36 +0,0 @@ -{"t_ms": 292, "stream": "stdout", "data": {"event": "init", "conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "request-review"}}} -{"t_ms": 319, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 3576, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 1, "state": "DONE", "step_type": "agent_response", "duration_seconds": 3.249717435, "usage": {"input_tokens": 11253, "output_tokens": 339, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11592}}}} -{"t_ms": 3576, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 2, "state": "ACTIVE", "step_type": "tool", "tool_name": "view_file", "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/input.txt"}}}}} -{"t_ms": 3576, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 2, "state": "DONE", "step_type": "tool", "tool_name": "view_file", "duration_seconds": 0.002425685, "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/input.txt"}, "output": "2 lines, 19 bytes"}}}} -{"t_ms": 6197, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "The contents"}}} -{"t_ms": 6324, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " of [`/input.tx"}}} -{"t_ms": 6349, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "t`](file:///"}}} -{"t_ms": 6374, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "tmp/"}}} -{"t_ms": 6451, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "agy-p0/workspace/input.txt) are:\n\n``"}}} -{"t_ms": 6476, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "`\nPHASE0_REA"}}} -{"t_ms": 6502, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "D_MARKER\n```"}}} -{"t_ms": 6705, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 3, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 3.109263873, "usage": {"input_tokens": 11475, "output_tokens": 48, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11523}}}} -{"t_ms": 6705, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "status": "SUCCESS", "response": "The contents of [`/input.txt`](file:///input.txt) are:\n\n```\nPHASE0_READ_MARKER\n```\n", "duration_seconds": 6.388206511, "num_turns": 1, "usage": {"input_tokens": 22728, "output_tokens": 387, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 23115}}}} -{"t_ms": 6732, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 4, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 9502, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 5, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.757462001, "usage": {"input_tokens": 11642, "output_tokens": 166, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11808}}}} -{"t_ms": 9502, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 6, "state": "ACTIVE", "step_type": "tool", "tool_name": "write_to_file", "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/plan.txt"}}}}} -{"t_ms": 9502, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 6, "state": "DONE", "step_type": "tool", "tool_name": "write_to_file", "duration_seconds": 0.003883221, "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/plan.txt"}}}}} -{"t_ms": 11716, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 7, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.227570207, "usage": {"input_tokens": 11811, "output_tokens": 118, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11929}}}} -{"t_ms": 11716, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 8, "state": "ACTIVE", "step_type": "tool", "tool_name": "replace_file_content", "tool_info": {"name": "replace_file_content", "parameters": {"TargetFile": "/plan.txt"}}}}} -{"t_ms": 11742, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 8, "state": "DONE", "step_type": "tool", "tool_name": "replace_file_content", "duration_seconds": 0.002974983, "tool_info": {"name": "replace_file_content", "parameters": {"TargetFile": "/plan.txt"}}}}} -{"t_ms": 13151, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "[`/"}}} -{"t_ms": 13176, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "plan.txt`](file:///tmp/"}}} -{"t_ms": 13252, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "agy-p0/workspace/plan.tx"}}} -{"t_ms": 13278, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "t) was created with `PHA"}}} -{"t_ms": 13303, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "SE0_WRITE` and then upda"}}} -{"t_ms": 13329, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ted to `PHASE0_EDIT` usi"}}} -{"t_ms": 13354, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ng `replace_file_content"}}} -{"t_ms": 13379, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "`."}}} -{"t_ms": 13455, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 9, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 1.716582968, "usage": {"input_tokens": 12103, "output_tokens": 59, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12162}}}} -{"t_ms": 13455, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "status": "SUCCESS", "response": "[`/plan.txt`](file:///plan.txt) was created with `PHASE0_WRITE` and then updated to `PHASE0_EDIT` using `replace_file_content`.\n", "duration_seconds": 13.142130621, "num_turns": 2, "usage": {"input_tokens": 58284, "output_tokens": 730, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 59014}}}} -{"t_ms": 13482, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 10, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 16400, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 11, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.913339623, "usage": {"input_tokens": 12261, "output_tokens": 74, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12335}}}} -{"t_ms": 16400, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 12, "state": "ACTIVE", "step_type": "tool", "tool_name": "run_command", "tool_info": {"name": "run_command", "parameters": {"CommandLine": "printf PHASE0_SHELL"}}}}} -{"t_ms": 16400, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "step_index": 12, "state": "ERROR", "step_type": "tool", "tool_name": "run_command", "duration_seconds": 0.002793073, "tool_info": {"name": "run_command", "parameters": {"CommandLine": "printf PHASE0_SHELL"}, "error": {"type": "TOOL_ERROR", "message": "permission check failed for command \"printf PHASE0_SHELL\": user denied permission to run command:\nprintf PHASE0_SHELL\nDo not attempt to circumvent this denial by rephrasing the command, using alternative tools/scripts (e.g. python, sh, curl), or accessing the same target resource. Proceed without performing this action."}}}}} -{"t_ms": 16400, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "7e1cdc94-5651-4941-b053-7e2afe73d01e", "status": "SUCCESS", "response": "", "duration_seconds": 16.097866635, "num_turns": 3, "usage": {"input_tokens": 70545, "output_tokens": 804, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 71349}, "denied_actions": [{"action": "command", "display_name": "RunCommand"}]}}} diff --git a/plugins/antigravity-provider/test/fixtures/tools-sandbox.capture.ndjson b/plugins/antigravity-provider/test/fixtures/tools-sandbox.capture.ndjson deleted file mode 100644 index b845d3e735..0000000000 --- a/plugins/antigravity-provider/test/fixtures/tools-sandbox.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "", "--disable-slash-commands", "--sandbox"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 13022, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/tools-sandbox.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/tools-sandbox.stderr.ndjson deleted file mode 100644 index 624a99a74c..0000000000 --- a/plugins/antigravity-provider/test/fixtures/tools-sandbox.stderr.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 12723, "stream": "stderr", "data": "jetski: no output produced — a tool required the \"command\" permission that headless mode cannot prompt for, so it was auto-denied. Add an allow-rule under permissions.allow in settings.json (e.g. command()). Alternatively, re-run with --dangerously-skip-permissions to auto-approve all tools."} diff --git a/plugins/antigravity-provider/test/fixtures/tools-sandbox.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/tools-sandbox.stdin.ndjson deleted file mode 100644 index 9ebac338e8..0000000000 --- a/plugins/antigravity-provider/test/fixtures/tools-sandbox.stdin.ndjson +++ /dev/null @@ -1,3 +0,0 @@ -{"t_ms": 320, "stream": "stdin", "data": {"event": "user", "message": {"role": "user", "content": "Use view_file to read /input.txt. Report its contents. Do not use a shell."}}} -{"t_ms": 4959, "stream": "stdin", "data": {"event": "user", "message": {"role": "user", "content": "Use write_to_file to create /sandbox.txt with PHASE0_WRITE. Then use replace_file_content to change PHASE0_WRITE to PHASE0_EDIT. No shell. Do not ask me questions."}}} -{"t_ms": 10581, "stream": "stdin", "data": {"event": "user", "message": {"role": "user", "content": "Use run_command exactly once to run printf PHASE0_SHELL in . Report the output. Do not ask me questions."}}} diff --git a/plugins/antigravity-provider/test/fixtures/tools-sandbox.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/tools-sandbox.stdout.ndjson deleted file mode 100644 index 6d63907468..0000000000 --- a/plugins/antigravity-provider/test/fixtures/tools-sandbox.stdout.ndjson +++ /dev/null @@ -1,40 +0,0 @@ -{"t_ms": 319, "stream": "stdout", "data": {"event": "init", "conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "request-review"}}} -{"t_ms": 346, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 3169, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 1, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.806171145, "usage": {"input_tokens": 12031, "output_tokens": 307, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12338}}}} -{"t_ms": 3169, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 2, "state": "ACTIVE", "step_type": "tool", "tool_name": "view_file", "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/input.txt"}}}}} -{"t_ms": 3169, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 2, "state": "DONE", "step_type": "tool", "tool_name": "view_file", "duration_seconds": 0.002973019, "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/input.txt"}, "output": "2 lines, 19 bytes"}}}} -{"t_ms": 4705, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "The contents"}}} -{"t_ms": 4755, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " of [input.txt](file:///"}}} -{"t_ms": 4781, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "tmp/agy-p0/w"}}} -{"t_ms": 4806, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "orkspace/input"}}} -{"t_ms": 4857, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": ".txt) are:\n\n"}}} -{"t_ms": 4882, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "```text\nPHASE0_READ_MARK"}}} -{"t_ms": 4908, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ER\n```"}}} -{"t_ms": 4959, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 3, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 1.791180207, "usage": {"input_tokens": 12253, "output_tokens": 39, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12292}}}} -{"t_ms": 4959, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "status": "SUCCESS", "response": "The contents of [input.txt](file:///input.txt) are:\n\n```text\nPHASE0_READ_MARKER\n```\n", "duration_seconds": 4.624371092, "num_turns": 1, "usage": {"input_tokens": 24284, "output_tokens": 346, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 24630}}}} -{"t_ms": 4986, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 4, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 6674, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 5, "state": "DONE", "step_type": "agent_response", "duration_seconds": 1.678518989, "usage": {"input_tokens": 12411, "output_tokens": 78, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12489}}}} -{"t_ms": 6674, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 6, "state": "ACTIVE", "step_type": "tool", "tool_name": "write_to_file", "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/sandbox.txt"}}}}} -{"t_ms": 6674, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 6, "state": "DONE", "step_type": "tool", "tool_name": "write_to_file", "duration_seconds": 0.002765401, "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/sandbox.txt"}}}}} -{"t_ms": 8939, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 7, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.278065329, "usage": {"input_tokens": 12577, "output_tokens": 118, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12695}}}} -{"t_ms": 8939, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 8, "state": "ACTIVE", "step_type": "tool", "tool_name": "replace_file_content", "tool_info": {"name": "replace_file_content", "parameters": {"TargetFile": "/sandbox.txt"}}}}} -{"t_ms": 8965, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 8, "state": "DONE", "step_type": "tool", "tool_name": "replace_file_content", "duration_seconds": 0.002992846, "tool_info": {"name": "replace_file_content", "parameters": {"TargetFile": "/sandbox.txt"}}}}} -{"t_ms": 10124, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "### Summary"}}} -{"t_ms": 10251, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " of Changes\n\n1. **Created File**: Us"}}} -{"t_ms": 10276, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ed `write_to"}}} -{"t_ms": 10302, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "_file` to create"}}} -{"t_ms": 10378, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " [sandbox.tx"}}} -{"t_ms": 10403, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "t](file:///wo"}}} -{"t_ms": 10428, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "rkspace/sandbox.txt) wit"}}} -{"t_ms": 10454, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "h the conten"}}} -{"t_ms": 10479, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "t `PHASE0_WRITE`.\n2. **Updated Con"}}} -{"t_ms": 10504, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "tent**: Used `replace_fi"}}} -{"t_ms": 10530, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "le_content` to replace `"}}} -{"t_ms": 10555, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "PHASE0_WRITE` with `PHAS"}}} -{"t_ms": 10581, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 9, "state": "DONE", "step_type": "agent_response", "text_delta": "E0_EDIT`.\n", "duration_seconds": 1.630993868, "usage": {"input_tokens": 12869, "output_tokens": 83, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12952}}}} -{"t_ms": 10581, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "status": "SUCCESS", "response": "### Summary of Changes\n\n1. **Created File**: Used `write_to_file` to create [sandbox.txt](file:///sandbox.txt) with the content `PHASE0_WRITE`.\n2. **Updated Content**: Used `replace_file_content` to replace `PHASE0_WRITE` with `PHASE0_EDIT`.\n", "duration_seconds": 10.25241531, "num_turns": 2, "usage": {"input_tokens": 62141, "output_tokens": 625, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 62766}}}} -{"t_ms": 10608, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 10, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 12723, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 11, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.117119481, "usage": {"input_tokens": 13051, "output_tokens": 80, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 13131}}}} -{"t_ms": 12723, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 12, "state": "ACTIVE", "step_type": "tool", "tool_name": "run_command", "tool_info": {"name": "run_command", "parameters": {"CommandLine": "printf PHASE0_SHELL"}}}}} -{"t_ms": 12723, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "step_index": 12, "state": "ERROR", "step_type": "tool", "tool_name": "run_command", "duration_seconds": 0.00280781, "tool_info": {"name": "run_command", "parameters": {"CommandLine": "printf PHASE0_SHELL"}, "error": {"type": "TOOL_ERROR", "message": "permission check failed for command \"printf PHASE0_SHELL\": user denied permission to run command:\nprintf PHASE0_SHELL\nDo not attempt to circumvent this denial by rephrasing the command, using alternative tools/scripts (e.g. python, sh, curl), or accessing the same target resource. Proceed without performing this action."}}}}} -{"t_ms": 12723, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "75d9e35e-6354-48a9-b055-d0dd752c47b9", "status": "SUCCESS", "response": "", "duration_seconds": 12.395964579, "num_turns": 3, "usage": {"input_tokens": 75192, "output_tokens": 705, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 75897}, "denied_actions": [{"action": "command", "display_name": "RunCommand"}]}}} diff --git a/plugins/antigravity-provider/test/fixtures/tools-skip-permissions.capture.ndjson b/plugins/antigravity-provider/test/fixtures/tools-skip-permissions.capture.ndjson deleted file mode 100644 index dd49b19784..0000000000 --- a/plugins/antigravity-provider/test/fixtures/tools-skip-permissions.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--input-format", "stream-json", "--output-format", "stream-json", "--add-dir", "", "--disable-slash-commands", "--dangerously-skip-permissions"], "cwd": "", "home": "", "settings": {"modelProvider": "gemini"}, "env": {"GEMINI_API_KEY": "", "GOOGLE_GEMINI_BASE_URL": "http://127.0.0.1:"}}} -{"t_ms": 17771, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/tools-skip-permissions.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/tools-skip-permissions.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/tools-skip-permissions.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/tools-skip-permissions.stdin.ndjson deleted file mode 100644 index f91311bcf7..0000000000 --- a/plugins/antigravity-provider/test/fixtures/tools-skip-permissions.stdin.ndjson +++ /dev/null @@ -1,3 +0,0 @@ -{"t_ms": 292, "stream": "stdin", "data": {"event": "user", "message": {"role": "user", "content": "Use view_file to read /input.txt. Report its contents. Do not use a shell."}}} -{"t_ms": 5051, "stream": "stdin", "data": {"event": "user", "message": {"role": "user", "content": "Use write_to_file to create /skip-permissions.txt with PHASE0_WRITE. Then use replace_file_content to change PHASE0_WRITE to PHASE0_EDIT. No shell. Do not ask me questions."}}} -{"t_ms": 11704, "stream": "stdin", "data": {"event": "user", "message": {"role": "user", "content": "Use run_command exactly once to run printf PHASE0_SHELL in . Report the output. Do not ask me questions."}}} diff --git a/plugins/antigravity-provider/test/fixtures/tools-skip-permissions.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/tools-skip-permissions.stdout.ndjson deleted file mode 100644 index 9d2f1fbafa..0000000000 --- a/plugins/antigravity-provider/test/fixtures/tools-skip-permissions.stdout.ndjson +++ /dev/null @@ -1,42 +0,0 @@ -{"t_ms": 291, "stream": "stdout", "data": {"event": "init", "conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "init": {"cwd": "", "tools": ["ask_custom_permission", "ask_permission", "ask_question", "browser_click_element", "browser_drag_pixel_to_pixel", "browser_get_dom", "browser_get_network_request", "browser_input", "browser_list_network_requests", "browser_mouse_down", "browser_mouse_up", "browser_move_mouse", "browser_press_key", "browser_refresh_page", "browser_resize_window", "browser_scroll", "browser_scroll_dom", "browser_select_option", "browser_subagent", "call_mcp_tool", "capture_browser_console_logs", "capture_browser_screenshot", "click_browser_pixel", "command_status", "define_subagent", "delete_knowledge", "execute_browser_javascript", "find_by_name", "finish", "generate_image", "grep_search", "invoke_subagent", "list_browser_pages", "list_dir", "list_permissions", "list_resources", "manage_inbox", "manage_subagents", "manage_task", "multi_replace_file_content", "notebook_edit", "notebook_execution", "open_browser_url", "read_browser_page", "read_resource", "read_url_content", "replace_file_content", "run_command", "schedule", "search_web", "sed_file", "send_command_input", "send_message", "view_file", "wait", "wait_5_seconds", "write_to_file"], "permission_mode": "always-proceed"}}} -{"t_ms": 318, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 0, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 2658, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 1, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.317552401, "usage": {"input_tokens": 11263, "output_tokens": 150, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11413}}}} -{"t_ms": 2658, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 2, "state": "ACTIVE", "step_type": "tool", "tool_name": "view_file", "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/input.txt"}}}}} -{"t_ms": 2658, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 2, "state": "DONE", "step_type": "tool", "tool_name": "view_file", "duration_seconds": 0.002646148, "tool_info": {"name": "view_file", "parameters": {"AbsolutePath": "/input.txt"}, "output": "2 lines, 19 bytes"}}}} -{"t_ms": 4645, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "The contents"}}} -{"t_ms": 4721, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " of [input.txt](file:///"}}} -{"t_ms": 4746, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "tmp/agy-p0/workspace/inp"}}} -{"t_ms": 4772, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ut"}}} -{"t_ms": 4848, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": ".txt) are:\n\n```\nPHASE0_READ_MARKER\n`"}}} -{"t_ms": 4873, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 3, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "``"}}} -{"t_ms": 5025, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 3, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 2.386909321, "usage": {"input_tokens": 11484, "output_tokens": 38, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11522}}}} -{"t_ms": 5051, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "status": "SUCCESS", "response": "The contents of [input.txt](file:///input.txt) are:\n\n```\nPHASE0_READ_MARKER\n```\n", "duration_seconds": 4.732286256, "num_turns": 1, "usage": {"input_tokens": 22747, "output_tokens": 188, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 22935}}}} -{"t_ms": 5078, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 4, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 7346, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 5, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.260780071, "usage": {"input_tokens": 11643, "output_tokens": 152, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11795}}}} -{"t_ms": 7346, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 6, "state": "ACTIVE", "step_type": "tool", "tool_name": "write_to_file", "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/skip-permissions.txt"}}}}} -{"t_ms": 7346, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 6, "state": "DONE", "step_type": "tool", "tool_name": "write_to_file", "duration_seconds": 0.003788063, "tool_info": {"name": "write_to_file", "parameters": {"TargetFile": "/skip-permissions.txt"}}}}} -{"t_ms": 10113, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 7, "state": "DONE", "step_type": "agent_response", "duration_seconds": 2.769162417, "usage": {"input_tokens": 11812, "output_tokens": 117, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 11929}}}} -{"t_ms": 10113, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 8, "state": "ACTIVE", "step_type": "tool", "tool_name": "replace_file_content", "tool_info": {"name": "replace_file_content", "parameters": {"TargetFile": "/skip-permissions.txt"}}}}} -{"t_ms": 10113, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 8, "state": "DONE", "step_type": "tool", "tool_name": "replace_file_content", "duration_seconds": 0.004067275, "tool_info": {"name": "replace_file_content", "parameters": {"TargetFile": "/skip-permissions.txt"}}}}} -{"t_ms": 11349, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "I have"}}} -{"t_ms": 11450, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " created [skip-permissio"}}} -{"t_ms": 11476, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ns.txt](file"}}} -{"t_ms": 11501, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "://"}}} -{"t_ms": 11526, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "/skip"}}} -{"t_ms": 11552, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "-permissions.txt) with `"}}} -{"t_ms": 11577, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "PHASE0_WRITE` and then u"}}} -{"t_ms": 11603, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "pdated its c"}}} -{"t_ms": 11628, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ontent to `PHASE0_EDIT` using `repla"}}} -{"t_ms": 11653, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ce_file_cont"}}} -{"t_ms": 11678, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 9, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "ent`."}}} -{"t_ms": 11704, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 9, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 1.563629905, "usage": {"input_tokens": 12105, "output_tokens": 56, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12161}}}} -{"t_ms": 11704, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "status": "SUCCESS", "response": "I have created [skip-permissions.txt](file:///skip-permissions.txt) with `PHASE0_WRITE` and then updated its content to `PHASE0_EDIT` using `replace_file_content`.\n", "duration_seconds": 11.386053268, "num_turns": 2, "usage": {"input_tokens": 58307, "output_tokens": 513, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 58820}}}} -{"t_ms": 11731, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 10, "state": "DONE", "step_type": "user_input"}}} -{"t_ms": 16142, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 11, "state": "DONE", "step_type": "agent_response", "duration_seconds": 4.411191659, "usage": {"input_tokens": 12260, "output_tokens": 390, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12650}}}} -{"t_ms": 16143, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 12, "state": "ACTIVE", "step_type": "tool", "tool_name": "run_command", "tool_info": {"name": "run_command", "parameters": {"CommandLine": "printf PHASE0_SHELL"}}}}} -{"t_ms": 16143, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 12, "state": "DONE", "step_type": "tool", "tool_name": "run_command", "duration_seconds": 0.007492259, "tool_info": {"name": "run_command", "parameters": {"CommandLine": "printf PHASE0_SHELL"}, "output": "PHASE0_SHELL"}}}} -{"t_ms": 17501, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 13, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "The command"}}} -{"t_ms": 17578, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 13, "state": "ACTIVE", "step_type": "agent_response", "text_delta": " output is:\n"}}} -{"t_ms": 17603, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 13, "state": "ACTIVE", "step_type": "agent_response", "text_delta": "\n```\nPHASE0_SHELL\n```"}}} -{"t_ms": 17680, "stream": "stdout", "data": {"event": "step_update", "step_update": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "step_index": 13, "state": "DONE", "step_type": "agent_response", "text_delta": "\n", "duration_seconds": 1.518696431, "usage": {"input_tokens": 12396, "output_tokens": 16, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 12412}}}} -{"t_ms": 17680, "stream": "stdout", "data": {"event": "result", "result": {"conversation_id": "7e55929a-de5b-4564-af80-76cff39e16f9", "status": "SUCCESS", "response": "The command output is:\n\n```\nPHASE0_SHELL\n```\n", "duration_seconds": 17.367491474, "num_turns": 3, "usage": {"input_tokens": 82963, "output_tokens": 919, "thinking_tokens": 0, "cache_read_tokens": 0, "total_tokens": 83882}}}} diff --git a/plugins/antigravity-provider/test/fixtures/version.capture.ndjson b/plugins/antigravity-provider/test/fixtures/version.capture.ndjson deleted file mode 100644 index ac8e605e77..0000000000 --- a/plugins/antigravity-provider/test/fixtures/version.capture.ndjson +++ /dev/null @@ -1,2 +0,0 @@ -{"t_ms": 0, "stream": "capture", "data": {"argv": ["/.local/opt/agy/1.2.13/agy", "--version"], "cwd": "", "home": "", "settings": null, "env": {}}} -{"t_ms": 284, "stream": "capture", "data": {"exit_code": 0}} diff --git a/plugins/antigravity-provider/test/fixtures/version.stderr.ndjson b/plugins/antigravity-provider/test/fixtures/version.stderr.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/version.stdin.ndjson b/plugins/antigravity-provider/test/fixtures/version.stdin.ndjson deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugins/antigravity-provider/test/fixtures/version.stdout.ndjson b/plugins/antigravity-provider/test/fixtures/version.stdout.ndjson deleted file mode 100644 index ce8e23e783..0000000000 --- a/plugins/antigravity-provider/test/fixtures/version.stdout.ndjson +++ /dev/null @@ -1 +0,0 @@ -{"t_ms": 269, "stream": "stdout", "data": "1.2.13"} diff --git a/public-docs/providers.md b/public-docs/providers.md index 6de304a019..bf9e82a22c 100644 --- a/public-docs/providers.md +++ b/public-docs/providers.md @@ -8,7 +8,7 @@ category: Providers # Providers -Paseo doesn't ship its own coding agent. It launches and supervises **existing CLIs you've already installed and authenticated**, Claude Code, Codex, OpenCode, Antigravity, Muse Code, Cursor, Gemini, and the rest. Your subscriptions, your config, your skills, your MCP servers all stay intact. Paseo just gives you a UI, a CLI, a relay, and orchestration on top. +Paseo doesn't ship its own coding agent. It launches and supervises **existing CLIs you've already installed and authenticated**, Claude Code, Codex, OpenCode, Muse Code, Cursor, Gemini, and the rest. Your subscriptions, your config, your skills, your MCP servers all stay intact. Paseo just gives you a UI, a CLI, a relay, and orchestration on top. ## Mental model @@ -16,7 +16,7 @@ A provider is the contract between Paseo and one external agent CLI: how to laun ## Two tiers -- **Native support**, Paseo ships a bundled adapter for the major agents (Claude Code, Codex, OpenCode, Pi, [Antigravity](/docs/supported-providers#antigravity), [Muse Code](/docs/muse-code)). Auto-discovered when the underlying CLI is installed, with mode metadata and voice support where applicable. +- **Native support**, Paseo ships a bundled adapter for the major agents (Claude Code, Codex, OpenCode, Pi, [Muse Code](/docs/muse-code)). Auto-discovered when the underlying CLI is installed, with mode metadata and voice support where applicable. - **ACP catalog**, any agent speaking the [Agent Client Protocol](https://agentclientprotocol.com) is supported through a generic adapter. Paseo ships a curated catalog of one-click installs (Cursor, Gemini, GitHub Copilot, Hermes, Kimi, Qwen Code, and 25+ more), and you can add any other ACP agent yourself. Either way, **you install the underlying CLI**. Paseo runs it. diff --git a/public-docs/supported-providers.md b/public-docs/supported-providers.md index aaed86f5c4..98db77d07e 100644 --- a/public-docs/supported-providers.md +++ b/public-docs/supported-providers.md @@ -18,39 +18,8 @@ Work out of the box once the underlying CLI is installed and authenticated. - [Codex](/docs/codex). OpenAI's workspace agent with sandbox controls and optional network access. - [OpenCode](https://opencode.ai/). Open-source coding assistant with multi-provider model support. - [Pi](https://pi.dev). Minimal terminal-based coding agent with multi-provider LLM support. -- [Antigravity](#antigravity). Uses your installed `agy` CLI through a built-in provider plugin. - [Muse Code](/docs/muse-code). Meta's terminal coding agent, bundled as a provider plugin. -### Antigravity - -Install the Antigravity CLI (`agy`) on your daemon host, then run `agy` once to sign in. Pick -**Antigravity** in Paseo. The provider ships with Paseo; no separate plugin install is required. - -**Default**, **Accept edits**, and **Plan** allow workspace edits and deny shell commands. -**Full access** allows everything. Plan does not enforce read-only access. To run a denied shell -command, choose Full access and send another prompt. - -Paseo MCP tools and steering are unavailable. Your own `agy` MCP servers still work. Attached -images are passed as file references for the agent to read. - -If `agy` is outside your daemon's PATH, override its command in `~/.paseo/config.json`. Use `env` -for provider-specific environment variables: - -```json -{ - "agents": { - "providers": { - "antigravity": { - "command": ["/absolute/path/to/agy"], - "env": { "EXAMPLE_VARIABLE": "value" } - } - } - } -} -``` - -See [Custom providers](/docs/custom-providers) for command and environment overrides. - ## ACP catalog Pick any of these from the in-app provider catalog. Each entry is a one-click install of the underlying CLI.