@agentex/agent 0.0.39 → 0.0.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +50 -0
- package/README.md +26 -4
- package/dist/history/fs.d.ts.map +1 -1
- package/dist/history/fs.js +6 -12
- package/dist/history/fs.js.map +1 -1
- package/dist/providers/antigravity/execute.d.ts.map +1 -1
- package/dist/providers/antigravity/execute.js +9 -3
- package/dist/providers/antigravity/execute.js.map +1 -1
- package/dist/providers/antigravity/runtime.d.ts +4 -2
- package/dist/providers/antigravity/runtime.d.ts.map +1 -1
- package/dist/providers/antigravity/runtime.js +7 -4
- package/dist/providers/antigravity/runtime.js.map +1 -1
- package/dist/providers/antigravity/session.d.ts.map +1 -1
- package/dist/providers/antigravity/session.js +59 -17
- package/dist/providers/antigravity/session.js.map +1 -1
- package/dist/providers/claude/attach.d.ts.map +1 -1
- package/dist/providers/claude/attach.js +4 -6
- package/dist/providers/claude/attach.js.map +1 -1
- package/dist/providers/claude/transcript.d.ts.map +1 -1
- package/dist/providers/claude/transcript.js +9 -20
- package/dist/providers/claude/transcript.js.map +1 -1
- package/dist/providers/codex/attach.d.ts.map +1 -1
- package/dist/providers/codex/attach.js +4 -0
- package/dist/providers/codex/attach.js.map +1 -1
- package/dist/providers/codex/history.d.ts.map +1 -1
- package/dist/providers/codex/history.js +11 -0
- package/dist/providers/codex/history.js.map +1 -1
- package/dist/providers/codex/parse.d.ts +7 -0
- package/dist/providers/codex/parse.d.ts.map +1 -1
- package/dist/providers/codex/parse.js +56 -0
- package/dist/providers/codex/parse.js.map +1 -1
- package/dist/providers/codex/permissions.d.ts +40 -0
- package/dist/providers/codex/permissions.d.ts.map +1 -0
- package/dist/providers/codex/permissions.js +50 -0
- package/dist/providers/codex/permissions.js.map +1 -0
- package/dist/providers/codex/session.d.ts +34 -0
- package/dist/providers/codex/session.d.ts.map +1 -1
- package/dist/providers/codex/session.js +213 -20
- package/dist/providers/codex/session.js.map +1 -1
- package/dist/providers/codex/transcript-normalize.d.ts +12 -3
- package/dist/providers/codex/transcript-normalize.d.ts.map +1 -1
- package/dist/providers/codex/transcript-normalize.js +87 -10
- package/dist/providers/codex/transcript-normalize.js.map +1 -1
- package/dist/providers/codex/transcript.d.ts.map +1 -1
- package/dist/providers/codex/transcript.js +5 -10
- package/dist/providers/codex/transcript.js.map +1 -1
- package/dist/providers/codex/usage-scanner.d.ts.map +1 -1
- package/dist/providers/codex/usage-scanner.js +4 -6
- package/dist/providers/codex/usage-scanner.js.map +1 -1
- package/dist/utils/auth.d.ts.map +1 -1
- package/dist/utils/auth.js +12 -10
- package/dist/utils/auth.js.map +1 -1
- package/dist/utils/jsonl-lines.d.ts +35 -0
- package/dist/utils/jsonl-lines.d.ts.map +1 -0
- package/dist/utils/jsonl-lines.js +61 -0
- package/dist/utils/jsonl-lines.js.map +1 -0
- package/package.json +1 -1
- package/src/history/fs.ts +6 -12
- package/src/providers/antigravity/execute.ts +10 -3
- package/src/providers/antigravity/runtime.ts +7 -4
- package/src/providers/antigravity/session.ts +59 -18
- package/src/providers/claude/attach.ts +4 -6
- package/src/providers/claude/transcript.ts +9 -22
- package/src/providers/codex/attach.ts +4 -0
- package/src/providers/codex/history.ts +11 -0
- package/src/providers/codex/parse.ts +59 -0
- package/src/providers/codex/permissions.ts +61 -0
- package/src/providers/codex/session.ts +238 -19
- package/src/providers/codex/transcript-normalize.ts +85 -10
- package/src/providers/codex/transcript.ts +5 -11
- package/src/providers/codex/usage-scanner.ts +4 -7
- package/src/utils/auth.ts +12 -11
- package/src/utils/jsonl-lines.ts +80 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,55 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.0.42 — Codex approvals reach the host
|
|
4
|
+
|
|
5
|
+
Codex sessions never ran with the permissions the host asked for, and MCP tool approvals never reached the host. Together they made every ChatGPT app write in a Codex session (a GitHub branch, a pull request update) fail as "user rejected MCP tool call" in under 10 ms, with nobody asked. Checked live against `codex` 0.160.0 with a probe MCP server: allowed, denied, and `skipPermissions`, plus the same script on 0.0.40 reproducing the failure.
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- **`skipPermissions` and `planMode` now apply to Codex sessions.** `codex app-server` drops the interactive `--dangerously-bypass-approvals-and-sandbox` and `--sandbox` flags (they belong to the TUI, and the subcommand never receives them). Every session ran on Codex's defaults instead: approvals `on-request` and a `workspace-write` or `read-only` sandbox. The settings now go in as root `-c` overrides (`approval_policy`, `sandbox_mode`) and again as `approvalPolicy` / `sandbox` on `thread/start` and `thread/resume`, so a resumed thread takes the session's current settings. `skipPermissions` is `never` with `danger-full-access`. `planMode` is a `read-only` sandbox with approvals left on, and still wins over `skipPermissions`. `execute()` (`codex exec`) was not affected and is unchanged.
|
|
10
|
+
- **MCP tool approvals reach `onUserInputRequest`.** Codex asks before an MCP or app tool call that needs a yes with `mcpServer/elicitation/request` (`_meta.codex_approval_kind: "mcp_tool_call"`). agentex answered it with `{}`, which Codex reads as a decline. It is now a tool permission: `toolName` is `mcp__<server>__<tool>`, `toolUseId` the call's item id (paired through the in-flight `item/started`), `title` Codex's question, `description` the parameters Codex displays, and `input` the call's arguments. Allow accepts that one call, deny declines it. Child-thread approvals carry `agentId` and leave root state alone, like the other approvals.
|
|
11
|
+
- **Other MCP elicitations reach `onElicitation`.** An MCP server's form or URL request is passed through in the shape the Claude provider already uses, and declined without a handler. A handler that throws cancels.
|
|
12
|
+
- **Unhandled server requests get a JSON-RPC error.** The generic `{}` reply was schema-invalid for every request type, and Codex read it as a refusal. Requests agentex does not handle now get `-32601` ("method not found") and fail visibly. None are expected: the remaining types are opt-in or never sent to a client without dynamic tools or external auth.
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- **MCP tool calls are `tool_call` / `tool_result` events.** Codex `mcpToolCall` items (and `mcp_tool_call` in `codex exec --json`) were emitted as `unknown`, so hosts showed no row for any MCP or app call. The name is `mcp__<server>__<tool>` (`codexMcpToolName`), `input` the arguments, and the result is the error message, else the text content, else the structured content. A failed or declined call is `isError: true`.
|
|
17
|
+
|
|
18
|
+
## 0.0.41 — Antigravity review fixes
|
|
19
|
+
|
|
20
|
+
Five fixes from a review of the 0.0.39 Antigravity provider.
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
|
|
24
|
+
- **An interrupt during `turn_start` was lost.** The stop listener was attached only after `turn_start` handlers finished, so `interrupt()`, a send signal, or a timeout that fired while an async handler ran let the turn run to completion. The turn was also registered too late for a handler's own `interrupt()` to find it. Every stop is now armed before the first await. A turn stopped that early returns `aborted` without spawning `agy`.
|
|
25
|
+
- **Instructions could be lost.**
|
|
26
|
+
- A session or run resuming a conversation `agy` could no longer find started a new conversation without them.
|
|
27
|
+
- A session consumed them before its first turn succeeded, so a failed sign-in or start dropped them.
|
|
28
|
+
- `instructionsFile` now rides on the first message each `agy` process accepts, like a per-process system prompt (agy has no system-prompt flag). That includes resumes and every `execute()`. It stays pending until `agy` acknowledges a message that carried it. A session that respawns `agy` on a conversation it already briefed does not repeat it.
|
|
29
|
+
- **Auth checked the wrong home.** `resolveAuthForProvider("antigravity")` and `detectAuth("antigravity", env)` read `settings.json` from the host process's home. They now read it from the `HOME` (`USERPROFILE` on Windows) in the environment agy runs with, so a host that gives agy its own home no longer reports API-key billing as a subscription.
|
|
30
|
+
- **A stop after the answer reported success.** If `execute()`'s timeout or abort fired after agy answered but while it was still finishing background work, the process was stopped but the run reported `completed`. It now reports `timeout` or `aborted` and keeps the answer, usage, and session.
|
|
31
|
+
- **Plan mode and permissions disagreed.** `modeId: "plan"` or `mode: "plan"` together with `skipPermissions` passed `--dangerously-skip-permissions`, while `planMode: true` did not. Plan mode now suppresses it however it is requested.
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
|
|
35
|
+
- The `default` mode's description now says what it does. agy's `--mode` accepts only `accept-edits` and `plan` (1.2.15 warns `unrecognized --mode value "default"`), so `default` passes no flag and uses the `agentMode` saved in agy's settings.json.
|
|
36
|
+
|
|
37
|
+
## 0.0.40 — Codex local history reads current rollouts
|
|
38
|
+
|
|
39
|
+
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.
|
|
40
|
+
|
|
41
|
+
### Fixed
|
|
42
|
+
|
|
43
|
+
- **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.
|
|
44
|
+
- **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()`.
|
|
45
|
+
- **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`.
|
|
46
|
+
- **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"`.
|
|
47
|
+
- **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.
|
|
48
|
+
|
|
49
|
+
### Changed
|
|
50
|
+
|
|
51
|
+
- 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`.
|
|
52
|
+
|
|
3
53
|
## 0.0.39 — Antigravity provider (Google's successor to Gemini CLI)
|
|
4
54
|
|
|
5
55
|
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.
|
package/README.md
CHANGED
|
@@ -65,6 +65,25 @@ Providers fall into three tiers:
|
|
|
65
65
|
|
|
66
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.
|
|
67
67
|
|
|
68
|
+
### Codex sessions: approvals and the sandbox
|
|
69
|
+
|
|
70
|
+
A Codex session is one `codex app-server` process. That subcommand drops the interactive `--sandbox` and `--dangerously-bypass-approvals-and-sandbox` flags, so agentex sets the approval policy and sandbox through root `-c` overrides and again on `thread/start` / `thread/resume`:
|
|
71
|
+
|
|
72
|
+
| Config | Approval policy | Sandbox |
|
|
73
|
+
| ------ | --------------- | ------- |
|
|
74
|
+
| `skipPermissions` | `never` | `danger-full-access` |
|
|
75
|
+
| `planMode` (wins over `skipPermissions`) | Codex's default | `read-only` |
|
|
76
|
+
| neither | Codex's default (`on-request`) | Codex's default (depends on the folder's trust) |
|
|
77
|
+
|
|
78
|
+
Under `never` with full access, Codex approves MCP and ChatGPT app tool calls itself. With approvals on, it asks first, and agentex passes the question to `onUserInputRequest` as a tool permission:
|
|
79
|
+
|
|
80
|
+
- `toolName` is `mcp__<server>__<tool>`, the name the model calls (`mcp__codex_apps__github_create_branch` for the GitHub app).
|
|
81
|
+
- `toolUseId` is the call's item id, the same `toolCallId` its `tool_call` event carries. When the call can't be matched, it is a fresh `codex-mcp-approval-<uuid>`.
|
|
82
|
+
- `title` is Codex's question (`Allow GitHub to run tool "create_branch"?`), `description` the parameters it shows (`Repository: acme/web · Branch name: fix/login`), and `input` the call's arguments.
|
|
83
|
+
- `{ allow: true }` runs that one call. `{ allow: false }` declines it, and the call fails with "user rejected MCP tool call".
|
|
84
|
+
|
|
85
|
+
An MCP server's own form or URL request goes to `onElicitation`, and is declined without one. MCP and app calls surface as `tool_call` / `tool_result` events under the same `mcp__<server>__<tool>` name.
|
|
86
|
+
|
|
68
87
|
### Antigravity (Google)
|
|
69
88
|
|
|
70
89
|
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.
|
|
@@ -88,7 +107,8 @@ await (await session.send("Now list its entry points")).result; // same agy proc
|
|
|
88
107
|
- **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
108
|
- **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
109
|
- **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
|
|
110
|
+
- **Modes, effort, models.** `listModes()` returns `default`, `accept-edits`, and `plan`. agy's `--mode` accepts only `accept-edits` and `plan`, so `default` passes no flag and agy uses the `agentMode` saved in its settings.json (request-review unless changed). `planMode` maps to `--mode plan`. Plan mode, however it is requested, suppresses `--dangerously-skip-permissions`. `config.effort` maps to `--effort` (`low`, `medium`, `high`, `max`). `listModels()` reads `agy models`, which needs a signed-in account.
|
|
111
|
+
- **Instructions.** agy has no system-prompt flag, so `instructionsFile` rides on the first message each agy process accepts, like a per-process system prompt. Every `execute()` and every new session sends it, including resumes, so a saved conversation agy can no longer find still gets it. It stays pending until agy acknowledges a message that carried it, so a failed start or sign-in does not drop it. A session that respawns agy on a conversation it already briefed does not repeat it.
|
|
92
112
|
- **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
113
|
- **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
114
|
- **Not yet wired.** `config.mcpServers` (agy reads `~/.gemini/config/mcp_config.json` and `.agents/mcp_config.json` itself), and history import.
|
|
@@ -797,6 +817,8 @@ Strong fingerprints verify the opened file before and after hashing. A strong fi
|
|
|
797
817
|
|
|
798
818
|
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.
|
|
799
819
|
|
|
820
|
+
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.
|
|
821
|
+
|
|
800
822
|
## Plan Mode
|
|
801
823
|
|
|
802
824
|
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.
|
|
@@ -825,7 +847,7 @@ const executeRun = await claude.execute({
|
|
|
825
847
|
| Provider | What we wire | Where the plan shows up |
|
|
826
848
|
| -------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
|
|
827
849
|
| `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. |
|
|
828
|
-
| `codex` | `--sandbox read-only` **plus** an injected planning system preamble | Plain text in the agent's final assistant message (i.e. `result.summary`). |
|
|
850
|
+
| `codex` | A `read-only` sandbox (`--sandbox read-only` for `execute()`, `sandbox_mode` and the thread's `sandbox` for sessions) **plus** an injected planning system preamble | Plain text in the agent's final assistant message (i.e. `result.summary`). |
|
|
829
851
|
| `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. |
|
|
830
852
|
|
|
831
853
|
The mechanism difference matters:
|
|
@@ -1200,8 +1222,8 @@ await cfg.cleanup();
|
|
|
1200
1222
|
|
|
1201
1223
|
Sessions can surface three distinct user-input requests. Handle each via a `SessionContext` callback:
|
|
1202
1224
|
|
|
1203
|
-
- `onUserInputRequest` — tool permission requests (and interactive tools like Claude's `AskUserQuestion`). Use `parseAskUserQuestion(req)` to detect structured question payloads and return answers via `updatedInput`.
|
|
1204
|
-
- `onElicitation` — MCP servers asking the host to render a form or open a URL (`form` / `url` modes, with a JSON-Schema `requestedSchema`).
|
|
1225
|
+
- `onUserInputRequest` — tool permission requests (and interactive tools like Claude's `AskUserQuestion`). Use `parseAskUserQuestion(req)` to detect structured question payloads and return answers via `updatedInput`. Codex's MCP and app tool approvals arrive here too (see [Codex sessions](#codex-sessions-approvals-and-the-sandbox)).
|
|
1226
|
+
- `onElicitation` — MCP servers asking the host to render a form or open a URL (`form` / `url` modes, with a JSON-Schema `requestedSchema`). Claude and Codex sessions decline these when the host registers no handler.
|
|
1205
1227
|
- `onHookCallback` — CLI requesting the host to run a registered hook.
|
|
1206
1228
|
|
|
1207
1229
|
## Custom Providers
|
package/dist/history/fs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/history/fs.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/history/fs.js
CHANGED
|
@@ -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,
|
|
190
|
+
stream = handle.createReadStream({ start: fromOffset, autoClose: false });
|
|
193
191
|
stream.on("error", () => { });
|
|
194
|
-
|
|
195
|
-
|
|
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:
|
|
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
|
}
|
package/dist/history/fs.js.map
CHANGED
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/providers/antigravity/execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAgC,MAAM,gBAAgB,CAAC;AAgBtG;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/providers/antigravity/execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAgC,MAAM,gBAAgB,CAAC;AAgBtG;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAsMhG"}
|
|
@@ -60,8 +60,10 @@ export async function executeAntigravityProvider(ctx) {
|
|
|
60
60
|
const billingType = detectAuth("antigravity", env).billingType;
|
|
61
61
|
const resumeId = readAgyResumeId(ctx.sessionParams, cwd);
|
|
62
62
|
ctx.onLifecycle?.({ phase: "preparing", step: "instructions" });
|
|
63
|
-
//
|
|
64
|
-
|
|
63
|
+
// agy has no system-prompt flag, so instructions ride on the message, once
|
|
64
|
+
// per process like a system prompt. Sending them on resumes too means a
|
|
65
|
+
// conversation agy could not find (it starts a new one) never loses them.
|
|
66
|
+
const instructions = await resolveInstructions(config.instructionsFile);
|
|
65
67
|
const prompt = instructions ? `${instructions}\n\n${ctx.prompt}` : ctx.prompt;
|
|
66
68
|
if (config.skillDirs && config.skillDirs.length > 0) {
|
|
67
69
|
ctx.onLifecycle?.({ phase: "preparing", step: "skills" });
|
|
@@ -129,8 +131,12 @@ export async function executeAntigravityProvider(ctx) {
|
|
|
129
131
|
outcome = first;
|
|
130
132
|
if (!outcome.exited) {
|
|
131
133
|
const ended = await Promise.race([connection.exited().then(() => "exited"), ...guards]);
|
|
132
|
-
if (ended !== "exited")
|
|
134
|
+
if (ended !== "exited") {
|
|
135
|
+
// The answer arrived, but agy was still finishing background work when
|
|
136
|
+
// the run was stopped. Report the stop; keep the answer.
|
|
137
|
+
stopped = ended;
|
|
133
138
|
await connection.terminate(config.graceSec, 0);
|
|
139
|
+
}
|
|
134
140
|
}
|
|
135
141
|
}
|
|
136
142
|
if (timer)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/providers/antigravity/execute.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/providers/antigravity/execute.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,10 @@ export declare const AGY_LOGIN_COMMAND = "agy";
|
|
|
5
5
|
export declare const AGY_SIGN_IN_MESSAGE = "Antigravity CLI is not signed in. Run `agy` once to sign in.";
|
|
6
6
|
export declare function findAgyBinary(ctx?: ProviderRuntimeContext): Promise<ResolvedBinary>;
|
|
7
7
|
/**
|
|
8
|
-
* The CLI's execution modes
|
|
9
|
-
*
|
|
8
|
+
* The CLI's execution modes. `--mode` accepts only `accept-edits` and `plan`
|
|
9
|
+
* (agy 1.2.15 warns "unrecognized --mode value" for anything else), so
|
|
10
|
+
* `default` passes no flag and agy uses the `agentMode` saved in its
|
|
11
|
+
* settings.json, which is request-review unless the user changed it. Shell
|
|
10
12
|
* commands follow the permission rules in every mode.
|
|
11
13
|
*/
|
|
12
14
|
export declare const ANTIGRAVITY_MODES: AgentMode[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/providers/antigravity/runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxF,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAExE,oEAAoE;AACpE,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AAEvC,eAAO,MAAM,mBAAmB,iEAAiE,CAAC;AAElG,wBAAgB,aAAa,CAAC,GAAG,GAAE,sBAA2B,GAAG,OAAO,CAAC,cAAc,CAAC,CAEvF;AAED
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/providers/antigravity/runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxF,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAExE,oEAAoE;AACpE,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AAEvC,eAAO,MAAM,mBAAmB,iEAAiE,CAAC;AAElG,wBAAgB,aAAa,CAAC,GAAG,GAAE,sBAA2B,GAAG,OAAO,CAAC,cAAc,CAAC,CAEvF;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,EAIxC,CAAC;AAEF,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAKpE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,MAAM,EAAE,CAazH;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAO9G"}
|
|
@@ -7,12 +7,14 @@ export function findAgyBinary(ctx = {}) {
|
|
|
7
7
|
return findBinary("agy", ctx.config?.command);
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
|
-
* The CLI's execution modes
|
|
11
|
-
*
|
|
10
|
+
* The CLI's execution modes. `--mode` accepts only `accept-edits` and `plan`
|
|
11
|
+
* (agy 1.2.15 warns "unrecognized --mode value" for anything else), so
|
|
12
|
+
* `default` passes no flag and agy uses the `agentMode` saved in its
|
|
13
|
+
* settings.json, which is request-review unless the user changed it. Shell
|
|
12
14
|
* commands follow the permission rules in every mode.
|
|
13
15
|
*/
|
|
14
16
|
export const ANTIGRAVITY_MODES = [
|
|
15
|
-
{ id: "default", name: "Default", description: "
|
|
17
|
+
{ id: "default", name: "Default", description: "agy's saved default mode (reviews file edits unless changed in its settings)" },
|
|
16
18
|
{ id: "accept-edits", name: "Accept edits", description: "Apply file edits without asking" },
|
|
17
19
|
{ id: "plan", name: "Plan", description: "Investigate read-only and propose a plan before editing" },
|
|
18
20
|
];
|
|
@@ -42,7 +44,8 @@ export function buildAgyArgs(config, options) {
|
|
|
42
44
|
if (mode)
|
|
43
45
|
args.push("--mode", mode);
|
|
44
46
|
// Plan mode is the more conservative intent and wins over skipPermissions.
|
|
45
|
-
|
|
47
|
+
// However it was requested (planMode, modeId, or mode).
|
|
48
|
+
if (config.skipPermissions && mode !== "plan")
|
|
46
49
|
args.push("--dangerously-skip-permissions");
|
|
47
50
|
if (config.sandbox)
|
|
48
51
|
args.push("--sandbox");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/providers/antigravity/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,UAAU,EAAuB,MAAM,uBAAuB,CAAC;AAExE,oEAAoE;AACpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,8DAA8D,CAAC;AAElG,MAAM,UAAU,aAAa,CAAC,MAA8B,EAAE;IAC5D,OAAO,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/providers/antigravity/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,UAAU,EAAuB,MAAM,uBAAuB,CAAC;AAExE,oEAAoE;AACpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,8DAA8D,CAAC;AAElG,MAAM,UAAU,aAAa,CAAC,MAA8B,EAAE;IAC5D,OAAO,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAgB;IAC5C,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,8EAA8E,EAAE;IAC/H,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,iCAAiC,EAAE;IAC5F,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,yDAAyD,EAAE;CACrG,CAAC;AAEF,oEAAoE;AACpE,MAAM,UAAU,cAAc,CAAC,MAAsB;IACnD,IAAI,MAAM,CAAC,QAAQ;QAAE,OAAO,MAAM,CAAC;IACnC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC;IAC/C,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACvD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAAsB,EAAE,OAA0D;IAC7G,MAAM,IAAI,GAAG,CAAC,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAC;IACjF,IAAI,OAAO,CAAC,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpE,IAAI,OAAO,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACvD,IAAI,MAAM,CAAC,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACpC,2EAA2E;IAC3E,wDAAwD;IACxD,IAAI,MAAM,CAAC,eAAe,IAAI,IAAI,KAAK,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC3F,IAAI,MAAM,CAAC,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAkD,EAAE,GAAW;IAC7F,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACnF,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1G,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC;AACnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/providers/antigravity/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAOZ,cAAc,EAOf,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/providers/antigravity/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAOZ,cAAc,EAOf,MAAM,gBAAgB,CAAC;AA6BxB;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC,CAYzF"}
|
|
@@ -41,8 +41,20 @@ class AntigravitySession {
|
|
|
41
41
|
/** Events received from agy processes, to tell whether one saw a message. */
|
|
42
42
|
connectionEvents = 0;
|
|
43
43
|
draining = false;
|
|
44
|
-
/**
|
|
45
|
-
|
|
44
|
+
/**
|
|
45
|
+
* agy has no system-prompt flag, so instructions ride on the first message
|
|
46
|
+
* each process accepts, like a per-process system prompt. They stay pending
|
|
47
|
+
* until agy acknowledges a message that carried them, so a failed start or
|
|
48
|
+
* sign-in never drops them, and a resume agy could not honor (a new
|
|
49
|
+
* conversation) still gets them.
|
|
50
|
+
*/
|
|
51
|
+
instructions;
|
|
52
|
+
/** Conversations this session saw agy accept the instructions into. */
|
|
53
|
+
instructedConversations = new Set();
|
|
54
|
+
/** The current process accepted a message that carried the instructions. */
|
|
55
|
+
connectionInstructed = false;
|
|
56
|
+
/** The conversation the current process was started to resume, if any. */
|
|
57
|
+
connectionResumeId = null;
|
|
46
58
|
cwd;
|
|
47
59
|
goals;
|
|
48
60
|
constructor(ctx, binary, instructions) {
|
|
@@ -50,7 +62,7 @@ class AntigravitySession {
|
|
|
50
62
|
this.binary = binary;
|
|
51
63
|
this.cwd = ctx.cwd ?? process.cwd();
|
|
52
64
|
this.conversationId = readAgyResumeId(ctx.sessionParams, this.cwd);
|
|
53
|
-
this.
|
|
65
|
+
this.instructions = instructions;
|
|
54
66
|
this.goals = new GoalController({
|
|
55
67
|
providerType: ANTIGRAVITY_PROVIDER_TYPE,
|
|
56
68
|
capability: EMULATED_GOAL_CAPABILITY,
|
|
@@ -82,11 +94,13 @@ class AntigravitySession {
|
|
|
82
94
|
const uuid = uuidv7();
|
|
83
95
|
const turnId = uuidv7();
|
|
84
96
|
const abort = new AbortController();
|
|
85
|
-
const text = this.pendingInstructions ? `${this.pendingInstructions}\n\n${message}` : message;
|
|
86
|
-
this.pendingInstructions = null;
|
|
87
97
|
this._state = "thinking";
|
|
88
|
-
|
|
89
|
-
|
|
98
|
+
// Registered before the turn runs, so interrupt() can reach it from inside
|
|
99
|
+
// a turn_start handler.
|
|
100
|
+
const active = { turnId, abort, done: null };
|
|
101
|
+
this.active = active;
|
|
102
|
+
const done = this.runTurn(message, turnId, abort, options);
|
|
103
|
+
active.done = done;
|
|
90
104
|
void done.then((result) => this.goals.onTurnSettled(result)).catch(() => undefined);
|
|
91
105
|
return { uuid, result: done };
|
|
92
106
|
}
|
|
@@ -96,6 +110,8 @@ class AntigravitySession {
|
|
|
96
110
|
const config = this.ctx.config ?? {};
|
|
97
111
|
// A replacement process picks the conversation back up where it stopped.
|
|
98
112
|
this.conversationId = this.sessionId;
|
|
113
|
+
this.connectionResumeId = this.conversationId;
|
|
114
|
+
this.connectionInstructed = false;
|
|
99
115
|
const parser = new AgyStreamParser({
|
|
100
116
|
includePartialMessages: config.includePartialMessages,
|
|
101
117
|
conversationId: this.conversationId,
|
|
@@ -125,13 +141,19 @@ class AntigravitySession {
|
|
|
125
141
|
this.parser = parser;
|
|
126
142
|
return connection;
|
|
127
143
|
}
|
|
128
|
-
async runTurn(
|
|
129
|
-
|
|
144
|
+
async runTurn(message, turnId, abort, options) {
|
|
145
|
+
// Arm every stop before the first await: an interrupt that lands while
|
|
146
|
+
// turn_start handlers run must still stop the turn.
|
|
130
147
|
const timeoutSec = options?.timeoutSec ?? this.ctx.config?.timeoutSec;
|
|
131
148
|
const graceSec = this.ctx.config?.graceSec;
|
|
132
149
|
let timer = null;
|
|
133
150
|
const guards = [
|
|
134
|
-
new Promise((resolve) =>
|
|
151
|
+
new Promise((resolve) => {
|
|
152
|
+
if (abort.signal.aborted)
|
|
153
|
+
resolve("aborted");
|
|
154
|
+
else
|
|
155
|
+
abort.signal.addEventListener("abort", () => resolve("aborted"), { once: true });
|
|
156
|
+
}),
|
|
135
157
|
];
|
|
136
158
|
if (timeoutSec && timeoutSec > 0) {
|
|
137
159
|
guards.push(new Promise((resolve) => { timer = setTimeout(() => resolve("timeout"), timeoutSec * 1000); }));
|
|
@@ -143,15 +165,30 @@ class AntigravitySession {
|
|
|
143
165
|
else
|
|
144
166
|
options.signal.addEventListener("abort", onSendAbort, { once: true });
|
|
145
167
|
}
|
|
146
|
-
let connection =
|
|
168
|
+
let connection = null;
|
|
147
169
|
try {
|
|
170
|
+
await this.emitTurnEdge({ type: "turn_start", turnId, trigger: "send" });
|
|
171
|
+
if (abort.signal.aborted) {
|
|
172
|
+
// Stopped before agy saw anything: nothing to interrupt, nothing spawned.
|
|
173
|
+
await this.emitTurnEdge({ type: "turn_end", turnId, trigger: "send", reason: "cancelled" });
|
|
174
|
+
return { summary: null, costUsd: null, status: "aborted", errorCode: "aborted", errorMessage: "Turn aborted" };
|
|
175
|
+
}
|
|
176
|
+
connection = this.ensureConnection();
|
|
148
177
|
let result = null;
|
|
149
178
|
let reason = "result";
|
|
150
179
|
for (let attempt = 0; result === null; attempt++) {
|
|
151
180
|
const eventsBefore = this.connectionEvents;
|
|
181
|
+
const carriesInstructions = this.needsInstructions();
|
|
152
182
|
const pending = connection.nextTurn();
|
|
153
|
-
connection.write(
|
|
183
|
+
connection.write(carriesInstructions ? `${this.instructions}\n\n${message}` : message);
|
|
154
184
|
const first = await Promise.race([pending, ...guards]);
|
|
185
|
+
// Any event from agy means it accepted the message, instructions included.
|
|
186
|
+
if (carriesInstructions && this.connectionEvents > eventsBefore) {
|
|
187
|
+
this.connectionInstructed = true;
|
|
188
|
+
const conversation = this.parser?.conversationId;
|
|
189
|
+
if (conversation)
|
|
190
|
+
this.instructedConversations.add(conversation);
|
|
191
|
+
}
|
|
155
192
|
if (first === "timeout" || first === "aborted") {
|
|
156
193
|
const outcome = await interruptAgyTurn(connection, pending, graceSec);
|
|
157
194
|
// agy may report INTERRUPTED and then exit. Learn which before the
|
|
@@ -194,12 +231,18 @@ class AntigravitySession {
|
|
|
194
231
|
clearTimeout(timer);
|
|
195
232
|
options?.signal?.removeEventListener("abort", onSendAbort);
|
|
196
233
|
this.active = null;
|
|
197
|
-
if (!connection.alive && this.connection === connection)
|
|
234
|
+
if (connection && !connection.alive && this.connection === connection)
|
|
198
235
|
this.connection = null;
|
|
199
236
|
if (this._state !== "closed")
|
|
200
237
|
this._state = "idle";
|
|
201
238
|
}
|
|
202
239
|
}
|
|
240
|
+
/** The next message must carry the instructions (see `instructions`). */
|
|
241
|
+
needsInstructions() {
|
|
242
|
+
if (!this.instructions || this.connectionInstructed)
|
|
243
|
+
return false;
|
|
244
|
+
return !(this.connectionResumeId && this.instructedConversations.has(this.connectionResumeId));
|
|
245
|
+
}
|
|
203
246
|
usageOf(outcome) {
|
|
204
247
|
const usage = agyUsageRecord(outcome?.result?.turnUsage ?? null, this.parser?.model ?? this.ctx.config?.model ?? null);
|
|
205
248
|
return usage ? { usage } : {};
|
|
@@ -291,12 +334,11 @@ class AntigravitySession {
|
|
|
291
334
|
if (!active)
|
|
292
335
|
return;
|
|
293
336
|
active.abort.abort();
|
|
294
|
-
await active.done
|
|
337
|
+
await active.done?.catch(() => undefined);
|
|
295
338
|
}
|
|
296
339
|
async drain() {
|
|
297
340
|
this.draining = true;
|
|
298
|
-
|
|
299
|
-
await this.active.done.catch(() => undefined);
|
|
341
|
+
await this.active?.done?.catch(() => undefined);
|
|
300
342
|
await this.close();
|
|
301
343
|
}
|
|
302
344
|
async close() {
|
|
@@ -306,7 +348,7 @@ class AntigravitySession {
|
|
|
306
348
|
const active = this.active;
|
|
307
349
|
if (active) {
|
|
308
350
|
active.abort.abort();
|
|
309
|
-
await active.done
|
|
351
|
+
await active.done?.catch(() => undefined);
|
|
310
352
|
}
|
|
311
353
|
const connection = this.connection;
|
|
312
354
|
this.connection = null;
|