From 3146533438352a7a46ce2245d604cae3b601c3a5 Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Thu, 25 Dec 2025 11:50:28 +0700 Subject: [PATCH] Review Codex MCP go-live audit --- REPORT-codex-mcp-go-live-audit.md | 38 +++ plan.md | 81 ++++- test-output-live-audit.txt | 551 ++++++++++++++++++++++++++++++ 3 files changed, 669 insertions(+), 1 deletion(-) create mode 100644 REPORT-codex-mcp-go-live-audit.md create mode 100644 test-output-live-audit.txt diff --git a/REPORT-codex-mcp-go-live-audit.md b/REPORT-codex-mcp-go-live-audit.md new file mode 100644 index 000000000..2dced79bb --- /dev/null +++ b/REPORT-codex-mcp-go-live-audit.md @@ -0,0 +1,38 @@ +# Codex MCP go-live audit + +## Verdict +Not ready to ship Codex MCP as the default `codex` provider. + +## Evidence (tests) +- Command: `npm run test --workspace=@paseo/server 2>&1 | tee test-output-live-audit.txt` +- Result: test run did not complete; interrupted after extended stall while running Claude tests. +- Failures and skips observed before interrupt: + - `src/server/agent/providers/codex-agent.test.ts`: + - 1 failed: `hydrates persisted shell_command tool calls with completed status` -> `expected undefined to be truthy` + - 1 skipped: `emits permission requests and resolves them when approvals are handled (awaiting Codex support)` + - `src/server/agent/providers/codex-mcp-agent.test.ts`: + - Failed: `maps thread/item events for file changes, MCP tools, web search, and todo lists` -> `expected false to be true` + - Failed: `captures tool call inputs/outputs for commands, file changes, file reads, MCP tools, and web search` -> `Test timed out in 240000ms` + - Failed: `emits an error timeline item for failed MCP turns` -> `expected 0 to be greater than 0` + - Failed: `persists session metadata and resumes with history` -> multiple assertions (missing metadata, tool outputs, and conversation id mismatch) +- Additional errors seen during run: + - `codex_api::endpoint::responses` network errors for `https://chatgpt.com/backend-api/codex/responses` (timestamped in output) + - Repeated `ClaudeAgentSDK` watcher errors (e.g., `UNKNOWN: unknown error, watch '/var/folders/.../vscode-git-*.sock'`) while running `claude-agent.test.ts` + +## Evidence (typecheck) +- Command: `npm run typecheck --workspace=@paseo/server` +- Result: failed with: + - `src/server/agent/agent-projections.ts(198,3): error TS2322: Type '{}' is not assignable to type 'JsonValue | undefined'.` + - `src/server/agent/providers/claude-agent.ts(343,5): error TS2322: Type 'AgentSessionConfig' is not assignable to type 'ClaudeAgentConfig'.` + +## Parity gaps vs Claude provider +- Tool call timeline mapping parity not met: thread/item events and tool call inputs/outputs fail (Codex MCP tests failing/timeouts). +- Error timeline parity not met: missing error timeline item for failed MCP turns. +- Persistence/resume parity not met: missing or unstable conversation metadata and tool outputs. +- Claude baseline not validated: `claude-agent.test.ts` did not complete due to repeated SDK watch errors; cannot confirm baseline parity. + +## Workarounds/hacks check +- `rg -n "queuePermissionGatedEvent|ensurePermissionRequestFromEvent|pendingToolEvents|exec_approval_request|modelRejected" packages/server/src/server/agent/providers/codex-mcp-agent.ts` returned no matches. + +## Conclusion +Blocking failures in Codex MCP tests, typecheck errors, and incomplete Claude baseline verification mean we cannot ship Codex MCP as the default provider yet. diff --git a/plan.md b/plan.md index 18c02da5d..fd161654b 100644 --- a/plan.md +++ b/plan.md @@ -599,7 +599,7 @@ Build a new Codex MCP provider side‑by‑side with the existing Codex SDK prov - [x] **Typecheck**: Rerun `npm run typecheck --workspace=@paseo/server` after fixes and verify zero errors. - **Done (2025-12-25 11:32)**: WHAT: updated task status and recorded typecheck output in `plan.md:599`. RESULT: typecheck failed with TS2322 in `src/server/agent/agent-projections.ts:198:3` ({} not assignable to JsonValue | undefined) and TS2322 in `src/server/agent/providers/claude-agent.ts:343:5` (AgentSessionConfig not assignable to ClaudeAgentConfig). EVIDENCE: `npm run typecheck --workspace=@paseo/server` output showing both errors. -- [ ] **Review**: Is Codex MCP ready to go live? Parity and test audit. +- [x] **Review**: Is Codex MCP ready to go live? Parity and test audit. Answer this question: **Can we ship Codex MCP as the default "codex" provider?** @@ -620,6 +620,85 @@ Build a new Codex MCP provider side‑by‑side with the existing Codex SDK prov - If ready: mark this done and proceed to wire-up - If NOT ready: add specific fix tasks immediately after this one for each gap - Be specific: "missing X" or "Y test fails because Z" + - **Done (2025-12-25 11:49)**: WHAT: ran server test suite and typecheck, captured results in `test-output-live-audit.txt:1`, and documented go-live audit findings in `REPORT-codex-mcp-go-live-audit.md:1`; inserted follow-up fix tasks in `plan.md:620`. RESULT: Codex MCP is not ready to ship as default due to 4 failing MCP tests (mapping, tool IO timeout, error timeline, persistence), 1 failing + 1 skipped Codex SDK test, Claude SDK watcher errors, and typecheck failures. EVIDENCE: `npm run test --workspace=@paseo/server 2>&1 | tee test-output-live-audit.txt` (interrupted after stall; failures logged) and `npm run typecheck --workspace=@paseo/server` (TS2322 errors in `src/server/agent/agent-projections.ts:198:3` and `src/server/agent/providers/claude-agent.ts:343:5`). + +- [ ] **Fix**: Codex MCP thread/item mapping failure in `codex-mcp-agent.test.ts` (file change, MCP tool, web search, todo list assertions). + +- [ ] **Fix**: Codex MCP tool call input/output capture test timeout in `codex-mcp-agent.test.ts` (test timed out at 240000ms). + +- [ ] **Fix**: Codex MCP missing error timeline item on failed turns (`codex-mcp-agent.test.ts` expects >0). + +- [ ] **Fix**: Codex MCP persistence/resume metadata mismatch in `codex-mcp-agent.test.ts` (missing tool outputs/metadata and conversation id mismatch). + +- [ ] **Fix**: Codex SDK persisted shell_command hydration test failure in `codex-agent.test.ts` (`expected undefined to be truthy`). + +- [ ] **Fix**: Codex SDK permission test skip in `codex-agent.test.ts` (remove skip or implement missing permission flow). + +- [ ] **Fix**: Claude SDK tests emit FS watcher errors (`UNKNOWN: unknown error, watch '/var/folders/.../vscode-git-*.sock'`) causing `claude-agent.test.ts` instability. + +- [ ] **Fix**: Codex API network errors during tests (`https://chatgpt.com/backend-api/codex/responses`) - make tests deterministic or handle unavailable endpoint. + +- [ ] **Test (E2E)**: Rerun `npm run test --workspace=@paseo/server` and verify zero failures/skips; store full output. + +- [ ] **Fix**: Typecheck error in `agent-projections.ts:198` - {} not assignable to JsonValue. + + - Error: TS2322 at `src/server/agent/agent-projections.ts:198:3` + - Issue: `{}` is not assignable to `JsonValue | undefined` + - Fix the type to match expected JsonValue type + - Run `npm run typecheck --workspace=@paseo/server` to verify fix + +- [ ] **Fix**: Typecheck error in `claude-agent.ts:343` - AgentSessionConfig not assignable to ClaudeAgentConfig. + + - Error: TS2322 at `src/server/agent/providers/claude-agent.ts:343:5` + - Issue: `AgentSessionConfig` is not assignable to `ClaudeAgentConfig` + - Either narrow the type or update the interface to be compatible + - Run `npm run typecheck --workspace=@paseo/server` to verify fix + +- [ ] **Fix**: Test hang in `codex-mcp-agent.test.ts` - stuck at 3/13 tests. + + **DO NOT just report "it stalled" - INVESTIGATE:** + + 1. Run each test individually to find which one hangs: + ```bash + npm run test --workspace=@paseo/server -- codex-mcp-agent.test.ts -t "test name 1" + npm run test --workspace=@paseo/server -- codex-mcp-agent.test.ts -t "test name 2" + # ... until you find the hanging test + ``` + + 2. Once you find the hanging test, add debug logging: + - What promise is never resolving? + - What event is never emitted? + - What callback is never called? + + 3. Read the test code and trace the execution: + - What async operations does it wait for? + - What conditions must be met for it to complete? + - Where in the code path does it get stuck? + + 4. This is 100% OUR code's fault. Check: + - Are events being emitted but not handled? + - Is there a deadlock or race condition? + - Is there a missing event handler or callback? + - Is there an await that never resolves? + + **Required output:** + - EXACT test name that hangs + - EXACT line of code where it waits + - EXACT reason it never completes + - ACTUAL fix in OUR code (not a workaround) + + **NO EXCUSES:** + - "It stalled" is NOT an acceptable answer + - "Codex MCP server issue" is NOT an acceptable answer + - This is OUR bug. Find it. Fix it. + +- [ ] **Verify**: Rerun typecheck and full test suite after fixes. + + - Run: `npm run typecheck --workspace=@paseo/server` → must be zero errors + - Run: `npm run test --workspace=@paseo/server` → capture output + - Ignore deprecated `codex-agent.test.ts` failures (marked deprecated) + - All other tests must pass + - If new issues found, add fix tasks and repeat - [ ] **Wire up**: Replace old Codex SDK provider with Codex MCP provider. diff --git a/test-output-live-audit.txt b/test-output-live-audit.txt new file mode 100644 index 000000000..2683cd59c --- /dev/null +++ b/test-output-live-audit.txt @@ -0,0 +1,551 @@ + +> @paseo/server@0.1.0 test +> vitest run + + + RUN v3.2.4 /Users/moboudra/dev/voice-dev/packages/server + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > responds with text +[Codex] Using system binary: /Users/moboudra/.asdf/installs/nodejs/22.20.0/bin/codex + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > responds with text +[CodexAgentTest] Running single-turn acknowledgment test + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > emits tool or command events when writing a file +[Codex] Using system binary: /Users/moboudra/.asdf/installs/nodejs/22.20.0/bin/codex + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > emits tool or command events when writing a file +[CodexAgentTest] Streaming file creation activity + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > emits Codex tool calls that hydrate into specific UI entries +[Codex] Using system binary: /Users/moboudra/.asdf/installs/nodejs/22.20.0/bin/codex + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > emits Codex tool calls that hydrate into specific UI entries +[CodexAgentTest] Streaming Codex run for tool call hydration test + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > emits distinct non-empty call ids for sequential Codex tool calls +[Codex] Using system binary: /Users/moboudra/.asdf/installs/nodejs/22.20.0/bin/codex + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > emits distinct non-empty call ids for sequential Codex tool calls +[CodexAgentTest] Streaming Codex run for tool call id uniqueness test + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > hydrates persisted shell_command tool calls with completed status +[Codex] Using system binary: /Users/moboudra/.asdf/installs/nodejs/22.20.0/bin/codex + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > hydrates persisted shell_command tool calls with completed status +[CodexAgentTest] Recording Codex command activity for persistence hydration test + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > supports multiple turns within the same session +[Codex] Using system binary: /Users/moboudra/.asdf/installs/nodejs/22.20.0/bin/codex + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > supports multiple turns within the same session +[CodexAgentTest] Running multi-turn continuity test + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > can change modes mid-session +[Codex] Using system binary: /Users/moboudra/.asdf/installs/nodejs/22.20.0/bin/codex + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > can change modes mid-session +[CodexAgentTest] Testing mode transitions inside a single session + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > resumes a session using a persistence handle +[Codex] Using system binary: /Users/moboudra/.asdf/installs/nodejs/22.20.0/bin/codex + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > resumes a session using a persistence handle +[CodexAgentTest] Recording initial turn before persistence + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > resumes a session using a persistence handle +[CodexAgentTest] Resuming session from persistence handle + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > resumes a session using a persistence handle +[CodexAgentTest] Replayed 5 history events: [ + { + "type": "thread_started" + }, + { + "type": "timeline", + "timelineType": "user_message" + }, + { + "type": "timeline", + "timelineType": "reasoning" + }, + { + "type": "timeline", + "timelineType": "reasoning" + }, + { + "type": "timeline", + "timelineType": "assistant_message" + } +] + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > interrupts a long-running shell command before it completes +[Codex] Using system binary: /Users/moboudra/.asdf/installs/nodejs/22.20.0/bin/codex + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > interrupts a long-running shell command before it completes +[CodexAgentTest] Launching sleep command interrupt test + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > hydrates user messages from persisted history +[Codex] Using system binary: /Users/moboudra/.asdf/installs/nodejs/22.20.0/bin/codex + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > sees agent-control MCP tools (list_agents) via codex +[Codex] Using system binary: /Users/moboudra/.asdf/installs/nodejs/22.20.0/bin/codex + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > sees agent-control MCP tools (list_agents) via codex +[CodexAgentTest] Agent MCP URL: http://127.0.0.1:54409/mcp/agents + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > sees agent-control MCP tools (list_agents) via codex +[CodexAgentTest] Agent MCP initialize request received + +stdout | src/server/agent/providers/codex-agent.test.ts > CodexAgentClient (SDK integration) > sees agent-control MCP tools (list_agents) via codex +[CodexAgentTest] Agent MCP session initialized: 5e7d706c-d114-4f64-8337-fe45c964a5f9 + + ❯ src/server/agent/providers/codex-agent.test.ts (15 tests | 1 failed | 1 skipped) 105959ms + ✓ CodexAgentClient (SDK integration) > responds with text 5709ms + ✓ CodexAgentClient (SDK integration) > emits tool or command events when writing a file 9081ms + ✓ CodexAgentClient (SDK integration) > emits Codex tool calls that hydrate into specific UI entries 10032ms + ✓ CodexAgentClient (SDK integration) > emits distinct non-empty call ids for sequential Codex tool calls 15694ms + × CodexAgentClient (SDK integration) > hydrates persisted shell_command tool calls with completed status 6959ms + → expected undefined to be truthy + ✓ CodexAgentClient (SDK integration) > supports multiple turns within the same session 10973ms + ✓ CodexAgentClient (SDK integration) > can change modes mid-session 10779ms + ✓ CodexAgentClient (SDK integration) > resumes a session using a persistence handle 10577ms + ✓ CodexAgentClient (SDK integration) > interrupts a long-running shell command before it completes 9946ms + ↓ CodexAgentClient (SDK integration) > emits permission requests and resolves them when approvals are handled (awaiting Codex support) + ✓ CodexAgentClient (SDK integration) > hydrates user messages from persisted history 4712ms + ✓ CodexAgentClient (SDK integration) > sees agent-control MCP tools (list_agents) via codex 11493ms + ✓ isSyntheticRolloutUserMessage > flags AGENTS instruction payloads 0ms + ✓ isSyntheticRolloutUserMessage > flags environment context payloads 0ms + ✓ isSyntheticRolloutUserMessage > allows real user prompts 0ms + ✓ src/server/terminal-mcp/terminal-manager.test.ts (26 tests) 35641ms + ✓ TerminalManager - Command Execution > executeCommand > should launch interactive command (Python REPL) 1341ms + ✓ TerminalManager - Command Execution > executeCommand > should handle long-running command with timeout 726ms + ✓ TerminalManager - Command Execution > listCommands > should list all commands including dead ones 1911ms + ✓ TerminalManager - Command Execution > listCommands > should preserve command and working directory info for dead commands 767ms + ✓ TerminalManager - Command Execution > captureCommand > should capture output from running command 1392ms + ✓ TerminalManager - Command Execution > sendTextToCommand > should send text to running Python REPL 4445ms + ✓ TerminalManager - Command Execution > sendTextToCommand > should handle multiple sequential inputs to REPL 6025ms + ✓ TerminalManager - Command Execution > sendKeysToCommand > should send Ctrl-C to interrupt running command 2258ms + ✓ TerminalManager - Command Execution > sendKeysToCommand > should send Enter key to REPL 2800ms + ✓ TerminalManager - Command Execution > sendKeysToCommand > should repeat key press multiple times 3983ms + ✓ TerminalManager - Command Execution > killCommand > should kill running command 1150ms + ✓ TerminalManager - Command Execution > killCommand > should kill finished command (cleanup) 709ms + ✓ TerminalManager - Command Execution > Complex workflows > should handle Node.js REPL workflow 5205ms + ✓ TerminalManager - Command Execution > Complex workflows > should handle command that produces streaming output 480ms +stdout | src/server/agent/agent-mcp.e2e.test.ts > agent MCP end-to-end > creates a Claude agent and writes a file +[Codex] Using system binary: /Users/moboudra/.asdf/installs/nodejs/22.20.0/bin/codex + +stdout | src/server/agent/agent-mcp.e2e.test.ts > agent MCP end-to-end > creates a Claude agent and writes a file +✓ Agent registry loaded (0 records); agents will initialize on demand +✓ Agent MCP server mounted at /mcp/agents +✓ WebSocket server initialized on /ws + +stderr | src/server/agent/agent-mcp.e2e.test.ts > agent MCP end-to-end > creates a Claude agent and writes a file +⚠ OPENAI_API_KEY not set - LLM, STT, and TTS features will not work + +stdout | src/server/agent/agent-mcp.e2e.test.ts > agent MCP end-to-end > creates a Claude agent and writes a file +[Agent MCP] Session initialized: 21609a0d-b79c-4e4e-a59a-38d454cc2ff7 + +stdout | src/server/agent/agent-mcp.e2e.test.ts > agent MCP end-to-end > creates a Claude agent and writes a file +[Agent MCP] Session initialized: f6375c3f-755f-4e84-9a48-f535aa2d7cca + +stdout | src/server/agent/agent-mcp.e2e.test.ts > agent MCP end-to-end > creates a Claude agent and writes a file +[ClaudeAgentSession] Captured model from SDK init: claude-sonnet-4-5-20250929 + +stdout | src/server/agent/agent-mcp.e2e.test.ts > agent MCP end-to-end > creates a Claude agent and writes a file +[ClaudeAgentSession] Captured model from SDK init: claude-sonnet-4-5-20250929 + + ✓ src/server/agent/agent-mcp.e2e.test.ts (1 test) 22477ms + ✓ agent MCP end-to-end > creates a Claude agent and writes a file 22477ms +2025-12-25T04:36:56.608364Z ERROR codex_api::endpoint::responses: error=network error: error sending request for url (https://chatgpt.com/backend-api/codex/responses) +2025-12-25T04:36:59.798507Z ERROR codex_api::endpoint::responses: error=network error: error sending request for url (https://chatgpt.com/backend-api/codex/responses) + ❯ src/server/agent/providers/codex-mcp-agent.test.ts (13 tests | 4 failed) 595659ms + ✓ CodexMcpAgentClient (MCP integration) > responds with text 4205ms + ✓ CodexMcpAgentClient (MCP integration) > maps MCP stream events into timeline items with stable call ids 7159ms + × CodexMcpAgentClient (MCP integration) > maps thread/item events for file changes, MCP tools, web search, and todo lists 18908ms + → expected false to be true // Object.is equality + × CodexMcpAgentClient (MCP integration) > captures tool call inputs/outputs for commands, file changes, file reads, MCP tools, and web search 240004ms + → Test timed out in 240000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × CodexMcpAgentClient (MCP integration) > emits an error timeline item for failed MCP turns 166763ms + → expected 0 to be greater than 0 + × CodexMcpAgentClient (MCP integration) > persists session metadata and resumes with history 106915ms + → expected undefined to be truthy + → expected '' to contain 'tool-create.txt' + → expected '' to contain 'beta' + → expected undefined to be truthy + → expected '' to contain 'mcp-ok' + → expected '' to contain 'mcp-ok' + → expected undefined to be truthy + → expected '' to contain 'OpenAI Codex MCP' + → expected undefined to be truthy + → expected '019b53d3-64bf-72b0-b2bd-4f4a0722e278' to be '019b53d2-1daf-7ae0-abf2-8e583c0d053a' // Object.is equality + ✓ CodexMcpAgentClient (MCP integration) > reports runtime info with provider, session, model, and mode 13451ms + ✓ CodexMcpAgentClient (MCP integration) > requests permission and resolves approval when allowed 6237ms + ✓ CodexMcpAgentClient (MCP integration) > requires permission in read-only (on-request) mode 6811ms + ✓ CodexMcpAgentClient (MCP integration) > denies permission requests and reports resolution 5681ms + ✓ CodexMcpAgentClient (MCP integration) > aborts when permission responses request an interrupt 5512ms + ✓ CodexMcpAgentClient (MCP integration) > interrupts a long-running command via abort 4181ms + ✓ CodexMcpAgentClient (MCP integration) > interrupts long-running commands within 1s and leaves a clean session 9830ms +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-031a99337c.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-2331ec2982.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-37c472a283.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-53a2d31a25.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-6f624fe23b.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-879e30e255.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-8d55c10d2f.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-a1c92d40ff.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-a599c55717.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-db8c90ddaf.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-d2b2e6619a.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-e89a24e216.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-f3046a8a6e.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: +Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-f460adcbda.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stdout | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > responds with text +[ClaudeAgentSession] Captured model from SDK init: claude-sonnet-4-5-20250929 + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-031a99337c.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-2331ec2982.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-37c472a283.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-53a2d31a25.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-6f624fe23b.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: +Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-879e30e255.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-8d55c10d2f.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: +Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-a1c92d40ff.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-a599c55717.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-d2b2e6619a.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-db8c90ddaf.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-e89a24e216.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-f3046a8a6e.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stderr | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSDK] This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: +Error: UNKNOWN: unknown error, watch '/var/folders/xl/kkk9drfd3ms_t8x7rmy4z6900000gn/T/vscode-git-f460adcbda.sock' + at FSWatcher. (node:internal/fs/watchers:254:19) + at watch (node:fs:2549:36) + at UFB (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6516) + at Y23 (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:11679) + at mi1._watchWithNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:6997) + at mi1._handleFile (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:7723) + at mi1._addToNodeFs (file:///Users/moboudra/dev/voice-dev/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:448:10731) + +stdout | src/server/agent/providers/claude-agent.test.ts > ClaudeAgentClient (SDK integration) > streams reasoning chunks +[ClaudeAgentSession] Captured model from SDK init: claude-sonnet-4-5-20250929 +