• turbo 2.8.3 • Packages in scope: @bb/provider-bridge-acp • Running test in 1 packages • Remote caching disabled //:ensure-native-modules: cache bypass, force executing 092b12d2c0c515c4 //:ensure-native-modules: //:ensure-native-modules: > bb@ ensure-native-modules //:ensure-native-modules: > node scripts/ensure-native-modules.mjs //:ensure-native-modules: @bb/provider-bridge-acp:test: cache bypass, force executing 207136c0abb0ae7b @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: > @bb/provider-bridge-acp@0.0.1 test /packages/provider-bridge-acp @bb/provider-bridge-acp:test: > vitest run --config vitest.config.ts @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: RUN v4.1.1 /packages/provider-bridge-acp @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: (node:63535) ExperimentalWarning: SQLite is an experimental feature and might change at any time @bb/provider-bridge-acp:test: (Use `node --trace-warnings ...` to show where the warning was created) @bb/provider-bridge-acp:test: (node:63534) ExperimentalWarning: SQLite is an experimental feature and might change at any time @bb/provider-bridge-acp:test: (Use `node --trace-warnings ...` to show where the warning was created) @bb/provider-bridge-acp:test: ✓ |@bb/provider-bridge-acp| src/bridge/model-catalog.test.ts (31 tests) 8ms @bb/provider-bridge-acp:test: ✓ |@bb/provider-bridge-acp| src/dialect.test.ts (21 tests) 8ms @bb/provider-bridge-acp:test: ✓ |@bb/provider-bridge-acp| src/interactions.test.ts (20 tests) 7ms @bb/provider-bridge-acp:test: ✓ |@bb/provider-bridge-acp| src/session-params.test.ts (28 tests) 9ms @bb/provider-bridge-acp:test: (node:63531) ExperimentalWarning: SQLite is an experimental feature and might change at any time @bb/provider-bridge-acp:test: (Use `node --trace-warnings ...` to show where the warning was created) @bb/provider-bridge-acp:test: ✓ |@bb/provider-bridge-acp| src/wire.test.ts (8 tests) 3ms @bb/provider-bridge-acp:test: ✓ |@bb/provider-bridge-acp| src/delta-translation.test.ts (72 tests) 56ms @bb/provider-bridge-acp:test: ✓ |@bb/provider-bridge-acp| src/tool-call-operation.test.ts (8 tests) 1ms @bb/provider-bridge-acp:test: ✓ |@bb/provider-bridge-acp| src/bridge/cursor-mcp-approval.test.ts (4 tests) 154ms @bb/provider-bridge-acp:test: (node:63529) ExperimentalWarning: SQLite is an experimental feature and might change at any time @bb/provider-bridge-acp:test: (Use `node --trace-warnings ...` to show where the warning was created) @bb/provider-bridge-acp:test: (node:63533) ExperimentalWarning: SQLite is an experimental feature and might change at any time @bb/provider-bridge-acp:test: (Use `node --trace-warnings ...` to show where the warning was created) @bb/provider-bridge-acp:test: ✓ |@bb/provider-bridge-acp| src/bridge/provider-maintenance.test.ts (2 tests) 2ms @bb/provider-bridge-acp:test: ✓ |@bb/provider-bridge-acp| src/bridge/agent-connection.test.ts (8 tests) 339ms @bb/provider-bridge-acp:test: ✓ |@bb/provider-bridge-acp| src/cursor-model-selection.test.ts (3 tests) 1ms @bb/provider-bridge-acp:test: ✓ |@bb/provider-bridge-acp| src/launch-spec.test.ts (2 tests) 3ms @bb/provider-bridge-acp:test: [bridge] (node:63537) ExperimentalWarning: SQLite is an experimental feature and might change at any time @bb/provider-bridge-acp:test: (Use `node --trace-warnings ...` to show where the warning was created) @bb/provider-bridge-acp:test: ✓ |@bb/provider-bridge-acp:isolated| src/probe.test.ts (4 tests) 458ms @bb/provider-bridge-acp:test: ✓ gives up on an agent that never answers initialize 304ms @bb/provider-bridge-acp:test: [bridge] acp bridge: built "bb-bridge" session MCP config for thread "thread-1918" (1 tools) @bb/provider-bridge-acp:test: [bb-bridge mcp] (node:63572) ExperimentalWarning: SQLite is an experimental feature and might change at any time @bb/provider-bridge-acp:test: (Use `node --trace-warnings ...` to show where the warning was created) @bb/provider-bridge-acp:test: ✓ |@bb/provider-bridge-acp| src/bridge/bridge.conformance-calibration.test.ts (1 test) 519ms @bb/provider-bridge-acp:test: ✓ passes the canonical protocol suite against the fake agent 519ms @bb/provider-bridge-acp:test: [bridge] (node:63584) ExperimentalWarning: SQLite is an experimental feature and might change at any time @bb/provider-bridge-acp:test: (Use `node --trace-warnings ...` to show where the warning was created) @bb/provider-bridge-acp:test: [bridge] (node:63585) ExperimentalWarning: SQLite is an experimental feature and might change at any time @bb/provider-bridge-acp:test: (Use `node --trace-warnings ...` to show where the warning was created) @bb/provider-bridge-acp:test: [bridge] (node:63583) ExperimentalWarning: SQLite is an experimental feature and might change at any time @bb/provider-bridge-acp:test: (Use `node --trace-warnings ...` to show where the warning was created) @bb/provider-bridge-acp:test: [bridge] (node:63586) ExperimentalWarning: SQLite is an experimental feature and might change at any time @bb/provider-bridge-acp:test: (Use `node --trace-warnings ...` to show where the warning was created) @bb/provider-bridge-acp:test: [bridge] (node:63589) ExperimentalWarning: SQLite is an experimental feature and might change at any time @bb/provider-bridge-acp:test: (Use `node --trace-warnings ...` to show where the warning was created) @bb/provider-bridge-acp:test: [bridge] acp bridge: "bb-bridge" answered initialize for thread "thread-1918" (1 tools) @bb/provider-bridge-acp:test: ✓ |@bb/provider-bridge-acp| src/bridge/mcp-server-entry.test.ts (1 test) 1362ms @bb/provider-bridge-acp:test: ✓ advertises an MCP server command that answers MCP initialize when the bridge runs under the bootstrap 1362ms @bb/provider-bridge-acp:test: [bridge] (node:63588) ExperimentalWarning: SQLite is an experimental feature and might change at any time @bb/provider-bridge-acp:test: (Use `node --trace-warnings ...` to show where the warning was created) @bb/provider-bridge-acp:test: [bridge] (node:63590) ExperimentalWarning: SQLite is an experimental feature and might change at any time @bb/provider-bridge-acp:test: (Use `node --trace-warnings ...` to show where the warning was created) @bb/provider-bridge-acp:test: [bridge] (node:63591) ExperimentalWarning: SQLite is an experimental feature and might change at any time @bb/provider-bridge-acp:test: (Use `node --trace-warnings ...` to show where the warning was created) @bb/provider-bridge-acp:test: acp bridge: ACP-native model discovery for "/Users/sawyerhood/.hermes/node/bin/node" failed: ACP-native model discovery timed out after 30000ms @bb/provider-bridge-acp:test: [bridge] acp bridge: built "bb-bridge" session MCP config for thread "thr_ndmjucnqqh" (1 tools) @bb/provider-bridge-acp:test: [bridge] acp bridge: built "bb-bridge" session MCP config for thread "thr_zbuujsu6ym" (1 tools) @bb/provider-bridge-acp:test: [bridge] acp bridge: built "bb-bridge" session MCP config for thread "thr_zp8sk7kkyf" (2 tools) @bb/provider-bridge-acp:test: [bridge] acp bridge: built "bb-bridge" session MCP config for thread "thr_4aq5qrgfz5" (1 tools) @bb/provider-bridge-acp:test: [bridge] acp bridge: built "bb-bridge" session MCP config for thread "thr_ewk7j7h9nm" (1 tools) @bb/provider-bridge-acp:test: [bridge] acp bridge: built "bb-bridge" session MCP config for thread "thr_qmfe7i44bn" (1 tools) @bb/provider-bridge-acp:test: [bridge] acp bridge: built "bb-bridge" session MCP config for thread "thr_mtkg4tpja2" (2 tools) @bb/provider-bridge-acp:test: acp bridge: model list command "/Users/sawyerhood/.hermes/node/bin/node" printed no models @bb/provider-bridge-acp:test: acp bridge: built "bb-bridge" session MCP config for thread "thread-16" (1 tools) @bb/provider-bridge-acp:test: [bb-bridge mcp] (node:63654) ExperimentalWarning: SQLite is an experimental feature and might change at any time @bb/provider-bridge-acp:test: (Use `node --trace-warnings ...` to show where the warning was created) @bb/provider-bridge-acp:test: ✓ |@bb/provider-bridge-acp| src/bridge/tool-proxy-mcp.test.ts (2 tests) 3448ms @bb/provider-bridge-acp:test: ✓ sends progress notifications so an OpenCode-style client does not time out while the user answers 3246ms @bb/provider-bridge-acp:test: acp bridge: built "bb-bridge" session MCP config for thread "thread-24" (1 tools) @bb/provider-bridge-acp:test: acp bridge: built "bb-bridge" session MCP config for thread "thread-25" (1 tools) @bb/provider-bridge-acp:test: acp bridge: installed Cursor session MCP approval for thread "thread-25" @bb/provider-bridge-acp:test: acp bridge: built "bb-bridge" session MCP config for thread "thread-26" (1 tools) @bb/provider-bridge-acp:test: acp bridge: built "bb-bridge" session MCP config for thread "thread-27" (1 tools) @bb/provider-bridge-acp:test: acp bridge: "bb-bridge" answered initialize for thread "thread-27" (1 tools) @bb/provider-bridge-acp:test: [bridge] acp bridge: built "bb-bridge" session MCP config for thread "thr_zp8sk7kkyf" (2 tools) @bb/provider-bridge-acp:test: [bridge] acp bridge: built "bb-bridge" session MCP config for thread "thr_4aq5qrgfz5" (1 tools) @bb/provider-bridge-acp:test: acp bridge: built "bb-bridge" session MCP config for thread "thread-fork" (1 tools) @bb/provider-bridge-acp:test: ❯ |@bb/provider-bridge-acp:isolated| src/bridge/bridge.test.ts (96 tests | 1 failed) 12387ms @bb/provider-bridge-acp:test: ✓ answers initialize and lists grouped models without spawning an agent 125ms @bb/provider-bridge-acp:test: ✓ answers a minimal model/list (no params) with the synthetic default 1ms @bb/provider-bridge-acp:test: ✓ uses the CLI model list before ACP-native session discovery when both are present 47ms @bb/provider-bridge-acp:test: ✓ uses Cursor CLI variants as reasoning metadata for bare ACP models 43ms @bb/provider-bridge-acp:test: ✓ discovers ACP-native models and per-model reasoning from session configOptions 44ms @bb/provider-bridge-acp:test: ✓ advertises Cursor's parameterized model picker during discovery 65ms @bb/provider-bridge-acp:test: ✓ applies Cursor model parameters and maps 'default' to fast='false' 94ms @bb/provider-bridge-acp:test: ✓ applies Cursor model parameters and maps 'fast' to fast='true' 91ms @bb/provider-bridge-acp:test: ✓ translates a legacy Cursor model for thread/start session construction 76ms @bb/provider-bridge-acp:test: ✓ translates a legacy Cursor model for thread/resume session construction 92ms @bb/provider-bridge-acp:test: ✓ translates a legacy Cursor model for thread/fork session construction 73ms @bb/provider-bridge-acp:test: ✓ fails session construction when an advertised Fast selection is rejected 48ms @bb/provider-bridge-acp:test: ✓ leaves service tier untouched when the agent advertises no Fast option 68ms @bb/provider-bridge-acp:test: ✓ discovers ACP-native models from session models state 49ms @bb/provider-bridge-acp:test: ✓ advertises launch-time reasoning CLI levels on ACP-native models 24ms @bb/provider-bridge-acp:test: ✓ authenticates before ACP-native model discovery 45ms @bb/provider-bridge-acp:test: ✓ probes per-model reasoning across large catalogs instead of falling back 46ms @bb/provider-bridge-acp:test: ✓ keeps ACP-native discovered models when per-model reasoning discovery errors 45ms @bb/provider-bridge-acp:test: ✓ times out hung ACP-native discovery, kills the child, and falls back to the synthetic model 47ms @bb/provider-bridge-acp:test: ✓ serves ACP-native discovered models from cache within the TTL and re-discovers after it 111ms @bb/provider-bridge-acp:test: ✓ falls back to the synthetic model when ACP-native session discovery has no model option 46ms @bb/provider-bridge-acp:test: ✓ fails model/list with a clear error when the list command is missing 22ms @bb/provider-bridge-acp:test: ✓ fails model/list when the list command reports ACP auth is required 45ms @bb/provider-bridge-acp:test: ✓ falls back to the synthetic model when the list command prints no models 44ms @bb/provider-bridge-acp:test: ✓ keeps CLI reasoning on the resolved model variant instead of ACP config 399ms @bb/provider-bridge-acp:test: ✓ launches ACP agents with a configured reasoning CLI flag 88ms @bb/provider-bridge-acp:test: ✓ launches full-mode ACP agents with configured permission CLI args 88ms @bb/provider-bridge-acp:test: ✓ does not apply full-mode permission CLI args in workspace-write mode 90ms @bb/provider-bridge-acp:test: ✓ uses modelCli only for model selection when reasoningCli owns effort 132ms @bb/provider-bridge-acp:test: ✓ selects ACP-native models with session/set_config_option before the first prompt 90ms @bb/provider-bridge-acp:test: ✓ falls back to session/set_model when the model config option errors 90ms @bb/provider-bridge-acp:test: ✓ selects ACP-native models from session models state 90ms @bb/provider-bridge-acp:test: ✓ selects ACP-native reasoning with session/set_config_option before the first prompt 89ms @bb/provider-bridge-acp:test: ✓ applies configured native reasoning when the ACP agent does not advertise thought_level 89ms @bb/provider-bridge-acp:test: ✓ keeps ACP-native models without thought_level at the single managed level 44ms @bb/provider-bridge-acp:test: ✓ keeps reasoning empty when an ACP-native model advertises only unmapped thought levels 45ms @bb/provider-bridge-acp:test: ✓ shows configured native reasoning for ACP-native models without thought_level 45ms @bb/provider-bridge-acp:test: ✓ does not leak bridge-only Electron env to the spawned agent 90ms @bb/provider-bridge-acp:test: ✓ preserves Electron Node mode for the dynamic-tool MCP process only 112ms @bb/provider-bridge-acp:test: ✓ warns and launches the family id when a reasoning variant is missing 135ms @bb/provider-bridge-acp:test: ✓ starts a session and runs a prompt turn end to end 90ms @bb/provider-bridge-acp:test: ✓ authenticates ACP sessions with cached tokens when advertised 88ms @bb/provider-bridge-acp:test: ✓ prefers xAI API-key auth when XAI_API_KEY is available 89ms @bb/provider-bridge-acp:test: ✓ lets agents surface their own error for unsupported advertised auth methods 44ms @bb/provider-bridge-acp:test: ✓ keeps a non-auth session failure untyped when the agent advertises a login bb cannot perform 44ms @bb/provider-bridge-acp:test: ✓ keeps an agent exit during session/new untyped when the agent advertises a login bb cannot perform 46ms @bb/provider-bridge-acp:test: ✓ passes dynamic tools to ACP sessions as an MCP server 89ms @bb/provider-bridge-acp:test: ✓ approves Cursor session MCP servers for the session lifetime (#2018) 90ms @bb/provider-bridge-acp:test: ✓ forwards ACP dynamic tool calls through the runtime tool-call contract 112ms @bb/provider-bridge-acp:test: ✓ keeps the dynamic-tool TCP server alive after a client reset on initialize 165ms @bb/provider-bridge-acp:test: ✓ lists skills/configure roots in canonical session instructions 111ms @bb/provider-bridge-acp:test: ✓ prepends instructions to the first prompt only 82ms @bb/provider-bridge-acp:test: ✓ auto-allows permission requests in full mode 90ms @bb/provider-bridge-acp:test: ✓ forwards permission requests to the runtime in ask mode 110ms @bb/provider-bridge-acp:test: ✓ presents an external-directory write permission as a file-change approval 112ms @bb/provider-bridge-acp:test: ✓ answers session-grant decisions with the allow_always option 111ms @bb/provider-bridge-acp:test: ✓ performs client fs writes inside the workspace and reports them 87ms @bb/provider-bridge-acp:test: ✓ denies client fs writes outside the workspace in accept-edits mode 88ms @bb/provider-bridge-acp:test: ✓ allows canonical accept-edits writes into a configured extra write root 89ms @bb/provider-bridge-acp:test: ✓ cancels a hung prompt and continues the same turn with steer input 87ms @bb/provider-bridge-acp:test: ✓ keeps partial output from the cancelled prompt then continues 111ms @bb/provider-bridge-acp:test: ✓ delivers stacked steers on the same turn 89ms @bb/provider-bridge-acp:test: ✓ cancels a stacked steer prompt that also hangs 89ms @bb/provider-bridge-acp:test: × retries a busy prompt after the agent reports that the session is idle 94ms @bb/provider-bridge-acp:test: ✓ runs the builtin /compact command as compaction, not as a prompt 90ms @bb/provider-bridge-acp:test: ✓ fails the compaction turn legibly when the agent rejects the request 88ms @bb/provider-bridge-acp:test: ✓ does not report an ACP refusal as successful compaction 89ms @bb/provider-bridge-acp:test: ✓ does not apply OMP compaction prose to 'generic' ACP 88ms @bb/provider-bridge-acp:test: ✓ does not apply OMP compaction prose to 'OpenCode' ACP 88ms @bb/provider-bridge-acp:test: ✓ fails the compaction turn when the agent reports the failure in an end-turn message 89ms @bb/provider-bridge-acp:test: ✓ completes a no-op compaction turn without reporting a compacted context 89ms @bb/provider-bridge-acp:test: ✓ keeps classifying a no-op compaction when the agent rewords its prose 88ms @bb/provider-bridge-acp:test: ✓ fails the compaction turn when the failure report is reworded or preceded by other text 89ms @bb/provider-bridge-acp:test: ✓ accepts turn input only after the prompt carrying it goes out 89ms @bb/provider-bridge-acp:test: ✓ never accepts a queued steer the stopped turn did not send 65ms @bb/provider-bridge-acp:test: ✓ rejects steers when no turn is active 65ms @bb/provider-bridge-acp:test: ✓ cancels the active turn on thread/stop 66ms @bb/provider-bridge-acp:test: ✓ settles the interrupted turn itself when the agent ignores session/cancel 4260ms @bb/provider-bridge-acp:test: ✓ forks an advertised ACP session with the target cwd and MCP servers 157ms @bb/provider-bridge-acp:test: ✓ rejects a checkpoint fork before session/fork 1ms @bb/provider-bridge-acp:test: ✓ rejects a fork result that reuses the source session id 68ms @bb/provider-bridge-acp:test: ✓ rejects fork before session/fork when the agent omits the capability 46ms @bb/provider-bridge-acp:test: ✓ resumes via session/load when the agent supports it 132ms @bb/provider-bridge-acp:test: ✓ emits session.reset after identity at every construction (start, resume, fork) 200ms @bb/provider-bridge-acp:test: ✓ holds an agent update written with the session/new response until thread/identity is out 67ms @bb/provider-bridge-acp:test: ✓ holds an agent update written with the session/fork response until the fork's thread/identity is out 133ms @bb/provider-bridge-acp:test: ✓ forwards context usage reported during session/load 133ms @bb/provider-bridge-acp:test: ✓ ignores load-time context usage for a different session 133ms @bb/provider-bridge-acp:test: ✓ discards load-time context usage when session/load fails 132ms @bb/provider-bridge-acp:test: ✓ re-applies ACP-native reasoning after session/load resume 154ms @bb/provider-bridge-acp:test: ✓ falls back to a fresh session with a warning when load is unsupported 67ms @bb/provider-bridge-acp:test: ✓ reports unexpected agent exits as a single provider error 68ms @bb/provider-bridge-acp:test: ✓ releases a session still under construction: the agent is reaped and the pending thread/start fails 65ms @bb/provider-bridge-acp:test: ✓ lets a retried thread/start supersede a construction still in flight for the same thread 154ms @bb/provider-bridge-acp:test: ✓ fails thread/start with a clear error when the agent command is missing 20ms @bb/provider-bridge-acp:test: ✓ rejects thread/start without an ACP launch spec 0ms @bb/provider-bridge-acp:test: ✓ |@bb/provider-bridge-acp| src/bridge/bridge.recorded-conformance.test.ts (1 test) 13640ms @bb/provider-bridge-acp:test: ✓ reproduces every recorded matrix cell 13640ms @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: FAIL |@bb/provider-bridge-acp:isolated| src/bridge/bridge.test.ts > acp bridge > retries a busy prompt after the agent reports that the session is idle @bb/provider-bridge-acp:test: AssertionError: expected { type: 'turn/completed', …(4) } to match object { status: 'completed' } @bb/provider-bridge-acp:test: (6 matching properties omitted from actual) @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: - Expected @bb/provider-bridge-acp:test: + Received @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: { @bb/provider-bridge-acp:test: - "status": "completed", @bb/provider-bridge-acp:test: + "status": "failed", @bb/provider-bridge-acp:test: } @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: ❯ src/bridge/bridge.test.ts:2363:23 @bb/provider-bridge-acp:test: 2361| @bb/provider-bridge-acp:test: 2362| const completed = await waitForTurnCompleted(); @bb/provider-bridge-acp:test: 2363| expect(completed).toMatchObject({ status: "completed" }); @bb/provider-bridge-acp:test: | ^ @bb/provider-bridge-acp:test: 2364| expect(loggedPrompts(promptLog)).toEqual(["after-busy", "after-bus… @bb/provider-bridge-acp:test: 2365| expect(threadEventsOfType("provider/error")).toEqual([]); @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: Test Files 1 failed | 17 passed (18) @bb/provider-bridge-acp:test: Tests 1 failed | 311 passed (312) @bb/provider-bridge-acp:test: Start at 09:03:52 @bb/provider-bridge-acp:test: Duration 14.63s (transform 3.10s, setup 0ms, import 4.67s, tests 32.40s, environment 1ms) @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test:  ELIFECYCLE  Test failed. See above for more details. @bb/provider-bridge-acp:test: ERROR: command finished with error: command (/packages/provider-bridge-acp) pnpm run test exited (1) @bb/provider-bridge-acp#test: command (/packages/provider-bridge-acp) pnpm run test exited (1) Tasks: 1 successful, 2 total Cached: 0 cached, 2 total Time: 16.262s Failed: @bb/provider-bridge-acp#test ERROR run failed: command exited (1)