@agentex/agent 0.0.38 → 0.0.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +47 -13
  3. package/dist/history/fs.d.ts.map +1 -1
  4. package/dist/history/fs.js +6 -12
  5. package/dist/history/fs.js.map +1 -1
  6. package/dist/providers/antigravity/codec.d.ts +4 -0
  7. package/dist/providers/antigravity/codec.d.ts.map +1 -0
  8. package/dist/providers/antigravity/codec.js +27 -0
  9. package/dist/providers/antigravity/codec.js.map +1 -0
  10. package/dist/providers/antigravity/connection.d.ts +100 -0
  11. package/dist/providers/antigravity/connection.d.ts.map +1 -0
  12. package/dist/providers/antigravity/connection.js +267 -0
  13. package/dist/providers/antigravity/connection.js.map +1 -0
  14. package/dist/providers/antigravity/discovery.d.ts +11 -0
  15. package/dist/providers/antigravity/discovery.d.ts.map +1 -0
  16. package/dist/providers/antigravity/discovery.js +92 -0
  17. package/dist/providers/antigravity/discovery.js.map +1 -0
  18. package/dist/providers/antigravity/execute.d.ts +9 -0
  19. package/dist/providers/antigravity/execute.d.ts.map +1 -0
  20. package/dist/providers/antigravity/execute.js +206 -0
  21. package/dist/providers/antigravity/execute.js.map +1 -0
  22. package/dist/providers/antigravity/index.d.ts +12 -0
  23. package/dist/providers/antigravity/index.d.ts.map +1 -0
  24. package/dist/providers/antigravity/index.js +46 -0
  25. package/dist/providers/antigravity/index.js.map +1 -0
  26. package/dist/providers/antigravity/parse.d.ts +114 -0
  27. package/dist/providers/antigravity/parse.d.ts.map +1 -0
  28. package/dist/providers/antigravity/parse.js +369 -0
  29. package/dist/providers/antigravity/parse.js.map +1 -0
  30. package/dist/providers/antigravity/probe.d.ts +3 -0
  31. package/dist/providers/antigravity/probe.d.ts.map +1 -0
  32. package/dist/providers/antigravity/probe.js +84 -0
  33. package/dist/providers/antigravity/probe.js.map +1 -0
  34. package/dist/providers/antigravity/runtime.d.ts +30 -0
  35. package/dist/providers/antigravity/runtime.d.ts.map +1 -0
  36. package/dist/providers/antigravity/runtime.js +69 -0
  37. package/dist/providers/antigravity/runtime.js.map +1 -0
  38. package/dist/providers/antigravity/session.d.ts +7 -0
  39. package/dist/providers/antigravity/session.d.ts.map +1 -0
  40. package/dist/providers/antigravity/session.js +317 -0
  41. package/dist/providers/antigravity/session.js.map +1 -0
  42. package/dist/providers/claude/attach.d.ts.map +1 -1
  43. package/dist/providers/claude/attach.js +4 -6
  44. package/dist/providers/claude/attach.js.map +1 -1
  45. package/dist/providers/claude/transcript.d.ts.map +1 -1
  46. package/dist/providers/claude/transcript.js +9 -20
  47. package/dist/providers/claude/transcript.js.map +1 -1
  48. package/dist/providers/codex/attach.d.ts.map +1 -1
  49. package/dist/providers/codex/attach.js +4 -0
  50. package/dist/providers/codex/attach.js.map +1 -1
  51. package/dist/providers/codex/history.d.ts.map +1 -1
  52. package/dist/providers/codex/history.js +11 -0
  53. package/dist/providers/codex/history.js.map +1 -1
  54. package/dist/providers/codex/transcript-normalize.d.ts +12 -3
  55. package/dist/providers/codex/transcript-normalize.d.ts.map +1 -1
  56. package/dist/providers/codex/transcript-normalize.js +87 -10
  57. package/dist/providers/codex/transcript-normalize.js.map +1 -1
  58. package/dist/providers/codex/transcript.d.ts.map +1 -1
  59. package/dist/providers/codex/transcript.js +5 -10
  60. package/dist/providers/codex/transcript.js.map +1 -1
  61. package/dist/providers/codex/usage-scanner.d.ts.map +1 -1
  62. package/dist/providers/codex/usage-scanner.js +4 -6
  63. package/dist/providers/codex/usage-scanner.js.map +1 -1
  64. package/dist/providers/gemini/index.d.ts.map +1 -1
  65. package/dist/providers/gemini/index.js +6 -0
  66. package/dist/providers/gemini/index.js.map +1 -1
  67. package/dist/registry.d.ts.map +1 -1
  68. package/dist/registry.js +2 -0
  69. package/dist/registry.js.map +1 -1
  70. package/dist/types.d.ts +6 -5
  71. package/dist/types.d.ts.map +1 -1
  72. package/dist/types.js.map +1 -1
  73. package/dist/utils/auth.d.ts +1 -1
  74. package/dist/utils/auth.d.ts.map +1 -1
  75. package/dist/utils/auth.js +79 -1
  76. package/dist/utils/auth.js.map +1 -1
  77. package/dist/utils/binary.d.ts.map +1 -1
  78. package/dist/utils/binary.js +10 -0
  79. package/dist/utils/binary.js.map +1 -1
  80. package/dist/utils/instructions.d.ts.map +1 -1
  81. package/dist/utils/instructions.js +12 -9
  82. package/dist/utils/instructions.js.map +1 -1
  83. package/dist/utils/jsonl-lines.d.ts +35 -0
  84. package/dist/utils/jsonl-lines.d.ts.map +1 -0
  85. package/dist/utils/jsonl-lines.js +61 -0
  86. package/dist/utils/jsonl-lines.js.map +1 -0
  87. package/dist/utils/runtime-homes.d.ts.map +1 -1
  88. package/dist/utils/runtime-homes.js +4 -0
  89. package/dist/utils/runtime-homes.js.map +1 -1
  90. package/dist/utils/skills.d.ts +3 -3
  91. package/dist/utils/skills.d.ts.map +1 -1
  92. package/dist/utils/skills.js +16 -2
  93. package/dist/utils/skills.js.map +1 -1
  94. package/package.json +3 -2
  95. package/src/history/fs.ts +6 -12
  96. package/src/providers/antigravity/codec.ts +29 -0
  97. package/src/providers/antigravity/connection.ts +304 -0
  98. package/src/providers/antigravity/discovery.ts +90 -0
  99. package/src/providers/antigravity/execute.ts +214 -0
  100. package/src/providers/antigravity/index.ts +48 -0
  101. package/src/providers/antigravity/parse.ts +439 -0
  102. package/src/providers/antigravity/probe.ts +89 -0
  103. package/src/providers/antigravity/runtime.ts +64 -0
  104. package/src/providers/antigravity/session.ts +359 -0
  105. package/src/providers/claude/attach.ts +4 -6
  106. package/src/providers/claude/transcript.ts +9 -22
  107. package/src/providers/codex/attach.ts +4 -0
  108. package/src/providers/codex/history.ts +11 -0
  109. package/src/providers/codex/transcript-normalize.ts +85 -10
  110. package/src/providers/codex/transcript.ts +5 -11
  111. package/src/providers/codex/usage-scanner.ts +4 -7
  112. package/src/providers/gemini/index.ts +6 -0
  113. package/src/registry.ts +2 -0
  114. package/src/types.ts +6 -5
  115. package/src/utils/auth.ts +82 -1
  116. package/src/utils/binary.ts +10 -0
  117. package/src/utils/instructions.ts +10 -9
  118. package/src/utils/jsonl-lines.ts +80 -0
  119. package/src/utils/runtime-homes.ts +4 -0
  120. package/src/utils/skills.ts +17 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,49 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.0.40 — Codex local history reads current rollouts
4
+
5
+ Codex 0.142 and later write paginated rollouts (`session_meta.history_mode: "paginated"`), which never contain the `event_msg` `user_message` that discovery used to find the person's messages. Every current rollout looked like it had no user message, so `localHistory.discover()` returned nothing: 0 sessions on a machine with 154 real ones. Checked against 561 real rollouts from Codex 0.142 to 0.159 and against the upstream persistence policy.
6
+
7
+ ### Fixed
8
+
9
+ - **Codex discovery and read find user messages in paginated rollouts.** The person's words are read from the completed `UserMessage` item. Legacy rollouts never persist that item and paginated rollouts never persist `user_message`, so each message is read exactly once. The `response_item` user message beside it, which also carries injected context, is still not read as a human message.
10
+ - **Codex `exec` and `apply_patch` tool calls replay.** Current Codex runs shell work through freeform tools, written as `custom_tool_call` / `custom_tool_call_output`, which were dropped entirely (most tool activity in a current rollout). They now map to `tool_call` (`input` is the script or patch string the model wrote) and `tool_result`. This applies to `localHistory.read()` and `attachSession().catchUp()`.
11
+ - **Tool output written as content parts keeps its text.** Codex now also writes `function_call_output` / `custom_tool_call_output` output as a list of `input_text` / `input_image` parts. Text parts are joined one per line, and images stay in `raw`. Before, such a `tool_result` had empty `content`.
12
+ - **Failed and interrupted Codex turns replay as such.** A `task_complete` with `error` becomes a `result` with `isError: true`, `terminalReason: "failed"`, and the API's message as `text`. A `turn_aborted` becomes a `result` with `terminalReason: "interrupted"`, matching a live `turn/completed` with that status. Results carry `durationMs` from `duration_ms`. `attachSession().lastTurn` still reports an aborted last turn as `"interrupted"`.
13
+ - **JSONL records containing U+2028 or U+2029 are no longer dropped.** `node:readline` also splits lines at these separators, which JSON (and so both Claude Code and Codex) writes raw inside strings, usually in text copied from web pages. The record was cut in two, both halves failed to parse, and every later byte offset was 2 bytes short per separator, so a resume offset could land mid-record. Claude and Codex transcript reads, local history, attach classification, and the Codex usage scanner now share `utils/jsonl-lines`, which splits on `\n` only and reports exact byte offsets. CRLF offsets are now exact too. Codex event ids are offset-based, so in a rollout that has such a record, ids after it move to their correct offsets, and a host that already replayed that file may see those later records once more. Claude ids come from record `uuid`s and do not change.
14
+
15
+ ### Changed
16
+
17
+ - The barrel-import module budget in `tests/packaging/lazy-graph.test.ts` is re-pinned from 53 to 54 for `utils/jsonl-lines`, a dependency-free leaf that replaces the builtin `node:readline`.
18
+
19
+ ## 0.0.39 — Antigravity provider (Google's successor to Gemini CLI)
20
+
21
+ Gemini CLI stopped serving free, Google AI Pro, and Google AI Ultra sign-ins on 2026-06-18 ("This client is no longer supported for Gemini Code Assist for individuals"). Google moved those accounts to the Antigravity CLI, `agy`. This release adds it as a first-class provider. Wire behavior follows the documented headless protocol and was checked against `agy` 1.2.14.
22
+
23
+ ### Added
24
+
25
+ - **`antigravity` provider** (`getProvider("antigravity")`). Drives `agy --input-format stream-json --output-format stream-json`.
26
+ - **Sessions.** One `agy` process per session. Each `send()` writes one NDJSON user message and resolves on that turn's `result`. Sessions resume with `--conversation`. `sessionParams` are `{ sessionId, cwd }`, because Antigravity scopes conversations to a directory. Params saved for another directory start a new conversation instead of resuming the wrong one.
27
+ - **One-shot `execute()`.** Writes the prompt over stdin and closes it, so prompts are never argv-limited or visible in `ps`. It waits for the process to exit.
28
+ - **Interrupts.** The CLI has no control protocol, so `interrupt()`, timeouts, and abort signals SIGINT the process group (Ctrl+C). If `agy` exits instead of reporting `INTERRUPTED`, the next `send()` resumes the conversation in a new process. A message sent to a process that exits without acknowledging it is re-run once on a fresh one.
29
+ - **Events.** `system/init`, `assistant` (with `assistant_delta` under `includePartialMessages`), `thinking`, correlated `tool_call`/`tool_result` (`toolCallId` = `<conversationId>:<stepIndex>`, subagent steps included), `result`, `turn_start`/`turn_end`, `auth_required`, and `unknown` for future step types.
30
+ - **Usage.** agy reports cumulative usage per process. agentex reports each turn's share, with `cachedInputTokens` from `cache_read_tokens`.
31
+ - **Config mapping.** `model` → `--model`. `effort` → `--effort` (`low|medium|high|max`). `modeId`/`mode` → `--mode` (`default`, `accept-edits`, `plan`). `planMode` → `--mode plan`, which wins over `skipPermissions` → `--dangerously-skip-permissions`. `sandbox` → `--sandbox`. `instructionsFile` is prepended to a new conversation's first message. `skillDirs` are linked into `~/.gemini/antigravity-cli/skills`.
32
+ - **Permissions.** Headless agy cannot ask. Tools needing approval are soft-denied by policy and surface on `ExecutionResult.permissionDenials`. `capabilities.permissionRequests` is `false`.
33
+ - **Errors.** `AGY_ERROR` stderr reports map to `rate_limited`, `invalid_model`, `waiting_for_input` (status `blocked`), or `agent_error`.
34
+ - **Discovery.** `listModels()` reads `agy models`. `listModes()` is static and spawns nothing. `probeCapabilities()` checks `--help` for the stream-json flags (profile `agy-stream-json-v1`) and reports "not signed in" as `missing` rather than `upgrade_required`.
35
+ - **Fast sign-in failure.** An unsigned headless `agy` prints a login URL and blocks for 60 seconds waiting for a pasted code. agentex stops it as soon as the prompt appears, emits `auth_required` with `loginCommand: "agy"`, and fails with `errorCode: "auth_required"`. Against the real CLI this takes about 0.5s instead of 60.
36
+ - **Auth.** `resolveAuthForProvider("antigravity")` reports the sign-in from `agy models` (there is no status subcommand). `GEMINI_API_KEY` counts only when `~/.gemini/antigravity-cli/settings.json` sets `"modelProvider": "gemini"`, because the CLI ignores the variable otherwise. `detectAuth` and `loginCommandFor` (`"agy"`) follow the same rules.
37
+ - **`SkillRuntime` gains `"antigravity"`.** Workspace skills use the standard `.agents/skills` channel. Global skills go to `~/.gemini/antigravity-cli/skills`. Instructions use `AGENTS.md`, and the global native file is the `~/.gemini/GEMINI.md` it shares with Gemini CLI.
38
+ - `findBinary("agy")` also checks `~/.local/bin/agy`, where the official installer puts it and which GUI apps usually lack on `PATH`. It also checks `/usr/local/bin`, `/opt/homebrew/bin`, and on Windows `%LOCALAPPDATA%\agy\bin`.
39
+
40
+ ### Changed
41
+
42
+ - `installSkills`/`removeSkills`/`listInstalledSkills` with `includeNativeDirs` skip a runtime folder that is already a standard channel, so nothing is installed or reported twice.
43
+ - Global `resolveInstructionTargets`/`installInstructions` merge runtimes that share a file. Gemini CLI and Antigravity both read `~/.gemini/GEMINI.md`, so it becomes one target serving both.
44
+ - The `gemini` provider documents the personal-account retirement and points to `antigravity`. It still works with paid API keys and Gemini Code Assist Standard/Enterprise.
45
+ - The barrel-import module budget in `tests/packaging/lazy-graph.test.ts` is re-pinned from 51 to 53. The new provider adds the same light `index` + `codec` pair every provider ships, and no heavy modules.
46
+
3
47
  ## 0.0.38 — AGENTS.md is the workspace instruction file for every runtime
4
48
 
5
49
  Claude Code reads `AGENTS.md` since 2.1.277, loaded exactly where `CLAUDE.md` would be, but only in a folder with no `CLAUDE.md`. A `CLAUDE.md`, a `CLAUDE.local.md`, or one in a parent folder hides `AGENTS.md` completely (verified against 2.1.281). Not yet on Bedrock, Vertex or Foundry.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @agentex/agent
2
2
 
3
- Programmatic execution of AI coding agents. Spawn and manage Claude Code, Codex, Gemini, Cursor, OpenCode, Pi, OpenClaw, or any CLI-based agent as a child process with streaming output, multi-turn sessions, auth detection, isolated workspaces, skill installation, and a unified interface.
3
+ Programmatic execution of AI coding agents. Spawn and manage Claude Code, Codex, Antigravity, Gemini, Cursor, OpenCode, Pi, OpenClaw, or any CLI-based agent as a child process with streaming output, multi-turn sessions, auth detection, isolated workspaces, skill installation, and a unified interface.
4
4
 
5
5
  ## Install
6
6
 
@@ -48,7 +48,7 @@ Providers fall into three tiers:
48
48
 
49
49
  - **Tier 1 — deep native:** `claude`, `codex`. Hand-built adapters over each CLI's richest protocol (Claude's stream-json, Codex's `app-server` JSON-RPC). Subscription-native, fullest feature set.
50
50
  - **Tier 2 — ACP:** `gemini`, `copilot`, plus any agent registered via [`acpProvider`](#custom--byok-providers) or `extends: "acp"` config. One shared, tested base over the open [Agent Client Protocol](https://agentclientprotocol.com) (JSON-RPC over stdio).
51
- - **Tier 3 — bespoke escape hatches:** `opencode` (authenticated HTTP/SSE daemon), `pi` (persistent RPC), `cursor` (exec-backed resume), `openclaw` (HTTP gateway), `process` (any executable).
51
+ - **Tier 3 — bespoke escape hatches:** `opencode` (authenticated HTTP/SSE daemon), `pi` (persistent RPC), `antigravity` (persistent stream-json), `cursor` (exec-backed resume), `openclaw` (HTTP gateway), `process` (any executable).
52
52
 
53
53
  | Provider | Transport | Tier | Sessions | Modes | Permissions |
54
54
  | ---------- | -------------------------------------- | ---- | --------- | ----- | ----------- |
@@ -58,12 +58,41 @@ Providers fall into three tiers:
58
58
  | `copilot` | `copilot --acp` (ACP) | 2 | ✅ | ✅ | ✅ |
59
59
  | `opencode` | authenticated `opencode serve` HTTP + SSE | 3 | ✅ resume | ✅ | ✅ |
60
60
  | `pi` | persistent `pi --mode rpc` | 3 | ✅ resume | — | — |
61
+ | `antigravity` | persistent `agy` stream-json (stdin + stdout) | 3 | ✅ resume | ✅ | policy |
61
62
  | `cursor` | `cursor-agent` stream-json per turn | 3 | ✅ resume | probed | — |
62
63
  | `openclaw` | HTTP gateway | 3 | — | — | — |
63
64
  | `process` | any executable | 3 | — | — | — |
64
65
 
65
66
  Cursor sessions are exec-backed. Each `send()` starts one CLI process and promotes the returned Cursor session ID into `--resume` for the next turn. `probeCapabilities()` verifies the selected binary's model catalog and advertised modes. Each execution independently validates the supported stream-json acceptance marker before releasing output. Older Cursor CLIs report `upgrade_required` instead of silently advertising discovery features they do not expose.
66
67
 
68
+ ### Antigravity (Google)
69
+
70
+ Google moved personal accounts (Free, Google AI Pro, Google AI Ultra) from Gemini CLI to the [Antigravity CLI](https://antigravity.google/docs/cli/overview) on 2026-06-18. Signing in to Gemini CLI with one of those accounts now fails with "This client is no longer supported for Gemini Code Assist for individuals". Use the `antigravity` provider for them. The `gemini` provider still works with a paid API key or Gemini Code Assist Standard/Enterprise.
71
+
72
+ ```bash
73
+ curl -fsSL https://antigravity.google/cli/install.sh | bash # installs ~/.local/bin/agy
74
+ agy # once, to sign in through the browser
75
+ ```
76
+
77
+ ```typescript
78
+ const agy = getProvider("antigravity");
79
+ const session = await agy.createSession!({
80
+ cwd,
81
+ config: { model: "gemini-3.1-pro-high", effort: "high", modeId: "accept-edits" },
82
+ onEvent: (e) => { if (e.type === "assistant") console.log(e.text); },
83
+ });
84
+ await (await session.send("Summarize this repo")).result;
85
+ await (await session.send("Now list its entry points")).result; // same agy process, same conversation
86
+ ```
87
+
88
+ - **Transport.** A session is one `agy --input-format stream-json --output-format stream-json` process. Each `send()` writes one NDJSON user message and resolves on that turn's `result` event. `execute()` writes one message and closes stdin, so prompts never travel through argv. Saved `sessionParams` are `{ sessionId, cwd }` and resume with `--conversation`. Antigravity scopes conversations to a directory, so params saved for another `cwd` start a new conversation instead of resuming.
89
+ - **Interrupts.** The CLI has no control protocol, so `interrupt()`, timeouts, and abort signals send SIGINT to the process group, like Ctrl+C. If agy exits instead of reporting the turn as `INTERRUPTED`, the next `send()` starts a new process on the same conversation.
90
+ - **Permissions.** Headless agy cannot ask. `skipPermissions` maps to `--dangerously-skip-permissions`. Without it, actions that would need approval (shell commands by default) are soft-denied and listed in `ExecutionResult.permissionDenials`, and the run still succeeds. Grant specific actions with `permissions.allow` rules in `~/.gemini/antigravity-cli/settings.json`. `permissionRequests` is therefore `false`.
91
+ - **Modes, effort, models.** `listModes()` returns `default`, `accept-edits`, and `plan` (`--mode`). `planMode` maps to `--mode plan`. `config.effort` maps to `--effort` (`low`, `medium`, `high`, `max`). `listModels()` reads `agy models`, which needs a signed-in account.
92
+ - **Sign-in.** An unsigned headless agy prints a login URL and waits a minute for a code. agentex stops it as soon as the prompt appears, emits `auth_required` with `loginCommand: "agy"`, and fails the turn with `errorCode: "auth_required"`.
93
+ - **Usage.** agy reports cumulative usage per process. agentex reports each turn's share, keyed by the pinned model (or `"default"`). `cachedInputTokens` comes from `cache_read_tokens`.
94
+ - **Not yet wired.** `config.mcpServers` (agy reads `~/.gemini/config/mcp_config.json` and `.agents/mcp_config.json` itself), and history import.
95
+
67
96
  OpenCode sessions use a password-authenticated loopback server, SSE events, permission and question reconciliation, durable service-backed history, saved-session discovery and import, runtime model and agent discovery, and upstream provider authentication. `config.mcpServers` remains unsupported for OpenCode because strict isolation from ambient OpenCode MCP configuration is not yet proven.
68
97
 
69
98
  ### OpenCode and Cursor discovery
@@ -256,7 +285,7 @@ interface ProviderConfig {
256
285
  command?: string; // Override CLI binary path
257
286
  model?: string;
258
287
  modelVariant?: string; // OpenCode provider-native variant, separate from effort
259
- effort?: string;
288
+ effort?: string; // claude/antigravity: --effort; codex: turn effort override
260
289
  unattendedPermissionPolicy?: "allow" | "deny";
261
290
  inputRequestTimeoutSec?: number; // OpenCode permission/question response deadline, default 300
262
291
  maxTurns?: number;
@@ -269,14 +298,14 @@ interface ProviderConfig {
269
298
  strictMcpConfig?: boolean; // claude: --strict-mcp-config — MCP surface is exactly what you attach
270
299
  allowedTools?: string[]; // claude: --allowed-tools (patterns verbatim; codex ignores)
271
300
  disallowedTools?: string[]; // claude: --disallowed-tools (deny wins; codex ignores)
272
- includePartialMessages?: boolean; // claude: emit assistant_delta/thinking_delta typewriter events
301
+ includePartialMessages?: boolean; // claude, antigravity: emit assistant_delta/thinking_delta typewriter events
273
302
  extraArgs?: string[]; // always appended LAST — hosts can override any generated flag
274
303
  search?: boolean;
275
- sandbox?: boolean;
304
+ sandbox?: boolean; // antigravity: --sandbox (terminal sandbox)
276
305
  thinking?: string;
277
- mode?: string; // cursor: --mode <mode>; not for plan mode
278
- modeId?: string; // select an operating mode from listModes() (codex/ACP)
279
- planMode?: boolean; // read-only "plan" mode (claude/codex)
306
+ mode?: string; // cursor, antigravity: --mode <mode>; not for plan mode
307
+ modeId?: string; // select an operating mode from listModes() (codex/ACP/antigravity)
308
+ planMode?: boolean; // read-only "plan" mode (claude/codex/cursor/opencode/antigravity)
280
309
  workspace?: { strategy: "worktree"; baseBranch?: string; branchName?: string };
281
310
  }
282
311
  ```
@@ -434,7 +463,7 @@ When in doubt, `raw` is the verbatim provider event — parse it yourself for an
434
463
 
435
464
  ### Other providers
436
465
 
437
- `gemini` and `copilot` (ACP) and the session-backed `opencode` and `pi` emit real, correlated `StreamEvent`s — assistant text, thinking, and tool_call/tool_result with proper tool-call ids (ACP and Codex have no per-event/message ids, so those stay `null`). `cursor` and `openclaw` still emit the same `StreamEvent` shape with most ids stubbed to `null`; their `raw` field is populated. `cursor` will gain full fidelity when it moves to the ACP tier.
466
+ `gemini` and `copilot` (ACP), `antigravity`, and the session-backed `opencode` and `pi` emit real, correlated `StreamEvent`s — assistant text, thinking, and tool_call/tool_result with proper tool-call ids (ACP and Codex have no per-event/message ids, so those stay `null`). `cursor` and `openclaw` still emit the same `StreamEvent` shape with most ids stubbed to `null`; their `raw` field is populated. `cursor` will gain full fidelity when it moves to the ACP tier. `antigravity` has no per-call tool ids, so `toolCallId` is `<conversationId>:<stepIndex>`, and `messageId` uses the same key for a response step's `assistant` and `assistant_delta` events.
438
467
 
439
468
  ## Sessions (multi-turn)
440
469
 
@@ -768,6 +797,8 @@ Strong fingerprints verify the opened file before and after hashing. A strong fi
768
797
 
769
798
  Codex rollout JSONL is the canonical history and checkpoint source. `session_index.jsonl` and compatible SQLite state databases are optional title sources opened read-only. Local history never starts Codex App Server.
770
799
 
800
+ Both Codex rollout formats are read. Legacy rollouts record the person's message as an `event_msg` `user_message`. Paginated rollouts (`history_mode: "paginated"`, written by Codex 0.142 and later) record it as a completed `UserMessage` item, and run shell work through the freeform `exec` and `apply_patch` tools, which replay as `tool_call`/`tool_result` like function calls.
801
+
771
802
  ## Plan Mode
772
803
 
773
804
  Run an agent in read-only "plan" mode — it investigates and proposes a plan but cannot edit files or run mutating commands. Same goal in both providers, **different mechanism** in each. Check `provider.capabilities.planMode` before relying on it.
@@ -797,6 +828,7 @@ const executeRun = await claude.execute({
797
828
  | -------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
798
829
  | `claude` | `--permission-mode plan` (CLI-native plan UX) | Agent calls the `ExitPlanMode` tool with the plan as a permission request. Host extracts via `parseExitPlanMode(req)` from `onUserInputRequest`. The plan is **not** in the persisted transcript — capture it live. |
799
830
  | `codex` | `--sandbox read-only` **plus** an injected planning system preamble | Plain text in the agent's final assistant message (i.e. `result.summary`). |
831
+ | `antigravity` | `--mode plan` (CLI-native: read-only tools, then a plan) | Plain text in the turn's response (`result.summary`). Headless runs proceed through plan review automatically. |
800
832
 
801
833
  The mechanism difference matters:
802
834
 
@@ -905,6 +937,7 @@ await claude.execute({ prompt: "Respond with 'hello'.", config: { timeoutSec: 15
905
937
  | `codex` | `codex login status` · fallback: `$CODEX_HOME/auth.json` | `OPENAI_API_KEY` | — |
906
938
  | `gemini` | `$GEMINI_CONFIG_DIR/oauth_creds.json` | `GEMINI_API_KEY`, `GOOGLE_API_KEY` | — |
907
939
  | `cursor` | selected CLI's `status` command | `CURSOR_API_KEY` | `OPENAI_API_KEY` is intentionally ignored |
940
+ | `antigravity` | `agy models` exit status (keyring sign-in) | `GEMINI_API_KEY`, only with `"modelProvider": "gemini"` in `~/.gemini/antigravity-cli/settings.json` | The CLI ignores `GEMINI_API_KEY` otherwise |
908
941
  | `opencode`| — | `OPENAI_API_KEY`, `ANTHROPIC_API_KEY` | — |
909
942
  | `pi` | — | `OPENAI_API_KEY`, `ANTHROPIC_API_KEY` | — |
910
943
 
@@ -917,6 +950,7 @@ The library reflects real CLI behavior rather than imposing its own:
917
950
  | Claude | API key wins (documented). Set `hasApiKey` + show a billing warning. |
918
951
  | Codex | Subscription wins (current CLI; see openai/codex#2733, #3286). |
919
952
  | Gemini | API key wins in non-interactive mode. |
953
+ | Antigravity | `settings.json` decides: `modelProvider: "gemini"` uses the API key, otherwise the signed-in account. |
920
954
 
921
955
  ### Caching
922
956
 
@@ -1024,7 +1058,7 @@ const skillDirs = ["/path/to/code-review", "/path/to/testing"];
1024
1058
  await installSkills(skillDirs, {
1025
1059
  location: "workspace", // or "global"
1026
1060
  cwd: process.cwd(), // required for workspace installs
1027
- includeNativeDirs: false, // true also installs into ~/.gemini/skills/, etc.
1061
+ includeNativeDirs: false, // true also installs into ~/.gemini/skills/, ~/.gemini/antigravity-cli/skills/, etc.
1028
1062
  });
1029
1063
 
1030
1064
  const installed = await listInstalledSkills({ location: "workspace", cwd: process.cwd() });
@@ -1247,7 +1281,7 @@ registerProvider(myProvider);
1247
1281
  - `ensureCommandResolvable(command)` — like `findBinary` but accepts an absolute path too.
1248
1282
  - `clearBinaryCache()` — invalidate the binary-resolution cache.
1249
1283
  - `provider.checkQuota?(ctx)` — rate-limit / quota status (when `capabilities.quotaProbing`).
1250
- - `provider.listModels?(opts?)` — enumerate models the binary can drive. Currently no built-in provider implements this: none of the Claude / Codex / Gemini CLIs expose a non-interactive model-listing subcommand yet (run `pnpm list-models` to re-probe). Pass the model you want directly via `ExecutionContext.model` or `ProviderConfig.model`.
1284
+ - `provider.listModels?(opts?)` — enumerate models the binary can drive, where the CLI exposes a catalog (for example `cursor`, `opencode`, and `antigravity` via `agy models`). Otherwise pass the model you want directly via `ExecutionContext.model` or `ProviderConfig.model`.
1251
1285
 
1252
1286
  ### Workspace
1253
1287
  - `prepareWorkspace({ strategy, baseBranch?, branchName?, targetDir? })` → `PreparedWorkspace` with `cwd`, `diff()`, `cleanup()`.
@@ -1283,8 +1317,8 @@ registerProvider(myProvider);
1283
1317
  ## Requirements
1284
1318
 
1285
1319
  - Node.js >= 18
1286
- - Each provider's CLI installed and resolvable on `$PATH` (`claude`, `codex`, `gemini`, `agent` for Cursor, `opencode`, `pi`, or a reachable OpenClaw gateway)
1287
- - For subscription auth, the relevant CLI must already be logged in (`codex login`, `claude login`, `gemini auth login`, etc.)
1320
+ - Each provider's CLI installed and resolvable on `$PATH` (`claude`, `codex`, `agy` for Antigravity, `gemini`, `agent` for Cursor, `opencode`, `pi`, or a reachable OpenClaw gateway). `agy` is also found at `~/.local/bin/agy` when that folder is not on `$PATH`.
1321
+ - For subscription auth, the relevant CLI must already be logged in (`codex login`, `claude login`, `agy` once for Antigravity, etc.)
1288
1322
 
1289
1323
  ## License
1290
1324
 
@@ -1 +1 @@
1
- {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/history/fs.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,aAAa,QAA2E,CAAC;AACtG,eAAO,MAAM,eAAe,QAA6E,CAAC;AAE1G,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,iBAAiB;IACzB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AASD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAIvE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEtD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,GAAE,MAAM,GAAG,IAAW,GAAG,MAAM,GAAG,IAAI,CAIrF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAS9D;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAMpE;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,GAChF,OAAO,CAAC,MAAM,EAAE,CAAC,CAyBnB;AAED,wBAAsB,UAAU,CAAC,CAAC,EAAE,CAAC,EACnC,MAAM,EAAE,SAAS,CAAC,EAAE,EACpB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,EAAE,CAAC,CAcd;AAuCD,wBAAsB,cAAc,CAAC,CAAC,EACpC,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EACjD,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAC/C,OAAO,CAAC,CAAC,EAAE,CAAC,CAoCd;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,aAAa,UAAQ,EACrB,eAAe,GAAE,iBAAsB,GACtC,OAAO,CAAC,6BAA6B,CAAC,CA6BxC;AAED,wBAAuB,gBAAgB,CACrC,QAAQ,EAAE,MAAM,EAChB,UAAU,SAAI,EACd,OAAO,GAAE,iBAAsB,GAC9B,aAAa,CAAC,WAAW,CAAC,CAyC5B;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAanG;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAWtE"}
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/history/fs.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,aAAa,QAA2E,CAAC;AACtG,eAAO,MAAM,eAAe,QAA6E,CAAC;AAE1G,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,iBAAiB;IACzB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AASD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAIvE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEtD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,GAAE,MAAM,GAAG,IAAW,GAAG,MAAM,GAAG,IAAI,CAIrF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAS9D;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAMpE;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,GAChF,OAAO,CAAC,MAAM,EAAE,CAAC,CAyBnB;AAED,wBAAsB,UAAU,CAAC,CAAC,EAAE,CAAC,EACnC,MAAM,EAAE,SAAS,CAAC,EAAE,EACpB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,EAAE,CAAC,CAcd;AAuCD,wBAAsB,cAAc,CAAC,CAAC,EACpC,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EACjD,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAC/C,OAAO,CAAC,CAAC,EAAE,CAAC,CAoCd;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,aAAa,UAAQ,EACrB,eAAe,GAAE,iBAAsB,GACtC,OAAO,CAAC,6BAA6B,CAAC,CA6BxC;AAED,wBAAuB,gBAAgB,CACrC,QAAQ,EAAE,MAAM,EAChB,UAAU,SAAI,EACd,OAAO,GAAE,iBAAsB,GAC9B,aAAa,CAAC,WAAW,CAAC,CAmC5B;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAanG;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAWtE"}
@@ -1,8 +1,8 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { readdir, stat, open as openFile } from "node:fs/promises";
3
3
  import * as path from "node:path";
4
- import * as readline from "node:readline";
5
4
  import { LocalHistoryError, } from "./types.js";
5
+ import { readJsonlLines } from "../utils/jsonl-lines.js";
6
6
  export const UUID_JSONL_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\.jsonl$/i;
7
7
  export const ROLLOUT_UUID_RE = /-([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.jsonl$/i;
8
8
  export function asRecord(value) {
@@ -183,24 +183,19 @@ export async function sourceFingerprint(filePath, includeSha256 = false, interna
183
183
  export async function* readJsonlRecords(filePath, fromOffset = 0, options = {}) {
184
184
  let handle = null;
185
185
  let stream = null;
186
- let rl = null;
187
- let offset = fromOffset;
188
186
  try {
189
187
  handle = await openFile(filePath, "r");
190
188
  const before = await fileIdentity(handle);
191
189
  await options.afterInitialStat?.();
192
- stream = handle.createReadStream({ start: fromOffset, encoding: "utf8", autoClose: false });
190
+ stream = handle.createReadStream({ start: fromOffset, autoClose: false });
193
191
  stream.on("error", () => { });
194
- rl = readline.createInterface({ input: stream, crlfDelay: Infinity });
195
- for await (const line of rl) {
196
- const lineStartOffset = offset;
197
- offset += Buffer.byteLength(line, "utf8") + 1;
198
- if (!line.trim())
192
+ for await (const line of readJsonlLines(stream, fromOffset)) {
193
+ if (!line.text.trim())
199
194
  continue;
200
195
  try {
201
- const raw = asRecord(JSON.parse(line));
196
+ const raw = asRecord(JSON.parse(line.text));
202
197
  if (raw)
203
- yield { raw, text: line, lineStartOffset, nextOffset: offset };
198
+ yield { raw, text: line.text, lineStartOffset: line.start, nextOffset: line.end };
204
199
  }
205
200
  catch {
206
201
  // A damaged historical record must not hide later valid records.
@@ -225,7 +220,6 @@ export async function* readJsonlRecords(filePath, fromOffset = 0, options = {})
225
220
  throw wrapFileError(error, "read");
226
221
  }
227
222
  finally {
228
- rl?.close();
229
223
  stream?.destroy();
230
224
  await handle?.close();
231
225
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/history/fs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/history/fs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { SessionCodec } from "../../types.js";
2
+ /** Antigravity session params: the conversation id plus the directory it is scoped to. */
3
+ export declare const antigravitySessionCodec: SessionCodec;
4
+ //# sourceMappingURL=codec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../../src/providers/antigravity/codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAqBnD,0FAA0F;AAC1F,eAAO,MAAM,uBAAuB,EAAE,YAMrC,CAAC"}
@@ -0,0 +1,27 @@
1
+ function readNonEmptyString(value) {
2
+ return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
3
+ }
4
+ function readSessionId(obj) {
5
+ return readNonEmptyString(obj["sessionId"])
6
+ ?? readNonEmptyString(obj["session_id"])
7
+ ?? readNonEmptyString(obj["conversationId"]);
8
+ }
9
+ function normalize(raw) {
10
+ if (typeof raw !== "object" || raw === null || Array.isArray(raw))
11
+ return null;
12
+ const obj = raw;
13
+ const sessionId = readSessionId(obj);
14
+ if (!sessionId)
15
+ return null;
16
+ const cwd = readNonEmptyString(obj["cwd"]);
17
+ return { sessionId, ...(cwd ? { cwd } : {}) };
18
+ }
19
+ /** Antigravity session params: the conversation id plus the directory it is scoped to. */
20
+ export const antigravitySessionCodec = {
21
+ deserialize: normalize,
22
+ serialize: (params) => normalize(params),
23
+ getDisplayId(params) {
24
+ return params ? readSessionId(params) : null;
25
+ },
26
+ };
27
+ //# sourceMappingURL=codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../../src/providers/antigravity/codec.ts"],"names":[],"mappings":"AAEA,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACpF,CAAC;AAED,SAAS,aAAa,CAAC,GAA4B;IACjD,OAAO,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;WACtC,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;WACrC,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,SAAS,CAAC,GAAY;IAC7B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/E,MAAM,GAAG,GAAG,GAA8B,CAAC;IAC3C,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,CAAC;AAED,0FAA0F;AAC1F,MAAM,CAAC,MAAM,uBAAuB,GAAiB;IACnD,WAAW,EAAE,SAAS;IACtB,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;IACxC,YAAY,CAAC,MAAM;QACjB,OAAO,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,CAAC;CACF,CAAC"}
@@ -0,0 +1,100 @@
1
+ import type { StreamEvent } from "../../types.js";
2
+ import { type AgyErrorReport, type AgyResult, type AgyStreamParser } from "./parse.js";
3
+ export interface AgyConnectionOptions {
4
+ command: string;
5
+ args: string[];
6
+ cwd: string;
7
+ env: Record<string, string>;
8
+ parser: AgyStreamParser;
9
+ onEvent?: (event: StreamEvent) => void | Promise<void>;
10
+ onOutput?: (stream: "stdout" | "stderr", chunk: string) => void | Promise<void>;
11
+ }
12
+ /** How a turn (or the whole process) ended, as seen by the host. */
13
+ export interface AgyTurnOutcome {
14
+ /** The turn's `result` event, or null when the process exited first. */
15
+ result: AgyResult | null;
16
+ /** The process has exited. */
17
+ exited: boolean;
18
+ exitCode: number | null;
19
+ signal: string | null;
20
+ /** The CLI asked for a sign-in, which a headless run can never complete. */
21
+ authRequired: boolean;
22
+ agyError: AgyErrorReport | null;
23
+ /** Last ~16KB of stderr, for error messages. */
24
+ stderr: string;
25
+ }
26
+ /**
27
+ * One headless `agy` process speaking `stream-json` in both directions.
28
+ *
29
+ * Every stdout line is parsed and dispatched through a single promise chain,
30
+ * so `onEvent` handlers run strictly in wire order and a turn's waiter
31
+ * resolves only after the handler for its `result` event has settled.
32
+ */
33
+ export declare class AgyConnection {
34
+ private readonly options;
35
+ readonly pid: number | null;
36
+ authRequired: boolean;
37
+ agyError: AgyErrorReport | null;
38
+ private readonly child;
39
+ private chain;
40
+ private stdoutBuffer;
41
+ private stderrLineBuffer;
42
+ private stderrTail;
43
+ private exitInfo;
44
+ private finalized;
45
+ private readonly waiters;
46
+ private readonly exitWaiters;
47
+ constructor(options: AgyConnectionOptions);
48
+ get alive(): boolean;
49
+ /** Exit status, or null while the process runs. */
50
+ get exit(): {
51
+ code: number | null;
52
+ signal: string | null;
53
+ } | null;
54
+ /** Last ~16KB of stderr. */
55
+ get stderr(): string;
56
+ /** Resolves once the process has exited and every queued event was dispatched. */
57
+ exited(): Promise<void>;
58
+ /** Send one user message. Resolve it with `nextTurn()`. */
59
+ write(text: string): void;
60
+ /** Close stdin. `agy` finishes the current turn and exits. */
61
+ endInput(): void;
62
+ /** Resolves with the next `result` event, or with the exit when no result comes. */
63
+ nextTurn(): Promise<AgyTurnOutcome>;
64
+ /** Signal the whole process group. */
65
+ signal(signal: NodeJS.Signals): void;
66
+ /** True when the process exited within `ms`. */
67
+ waitForExit(ms: number): Promise<boolean>;
68
+ /**
69
+ * Stop the process: close stdin and give it a moment to exit on its own
70
+ * (an idle `agy` flushes its conversation history and exits), then
71
+ * SIGTERM, then SIGKILL after `graceSec`.
72
+ */
73
+ terminate(graceSec?: number, idleWaitMs?: number): Promise<void>;
74
+ private onStdout;
75
+ private enqueueLine;
76
+ private onStderr;
77
+ private inspectStderrLine;
78
+ /**
79
+ * A headless run without a cached sign-in prints a login URL and waits a
80
+ * full minute for a code nobody can paste. Fail fast instead: report it
81
+ * and stop the process.
82
+ */
83
+ private onAuthRequired;
84
+ private appendStderrTail;
85
+ private finalize;
86
+ private outcome;
87
+ private emitEvent;
88
+ private emitOutput;
89
+ }
90
+ /** First meaningful stderr line, skipping the sign-in URL noise. */
91
+ export declare function firstAgyErrorLine(stderr: string): string | null;
92
+ /** Waits for `promise` up to `ms`; resolves null on timeout. */
93
+ export declare function within<T>(promise: Promise<T>, ms: number): Promise<T | null>;
94
+ /**
95
+ * Interrupt the running turn like Ctrl+C would: SIGINT the process group,
96
+ * give agy a moment to report the turn as INTERRUPTED, and stop the process
97
+ * if it does not. Resolves with whatever outcome arrived.
98
+ */
99
+ export declare function interruptAgyTurn(connection: AgyConnection, pending: Promise<AgyTurnOutcome>, graceSec?: number): Promise<AgyTurnOutcome | null>;
100
+ //# sourceMappingURL=connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/providers/antigravity/connection.ts"],"names":[],"mappings":"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"}