afba37d330
Adds `test/session/llm-native-stream.test.ts` — one focused test that proves the end-to-end wire-up `runNative` relies on actually produces session events from a scripted Anthropic SSE response. The test stays self-contained: - Builds a fake Anthropic `Provider.Info` + `Provider.Model` via `ProviderTest`. - Builds an `LLMRequest` via `LLMNative.request(...)` from a `MessageV2.WithParts` user message — the same call shape `runNative` uses inside `session/llm.ts`. - Creates an `LLMClient` with the same adapters list + `ProviderPatch.defaults` list as `runNative`. The adapters are imported directly from `@opencode-ai/llm`; if `runNative`'s `NATIVE_ADAPTERS` array changes, this test's `adapters` constant has to follow (commented). - Provides a single fixed-response HTTP layer that returns a scripted Anthropic SSE body. The layer helper is inlined (12 lines) rather than imported from `packages/llm/test/lib/http.ts` so the test doesn't reach across package boundaries. - Pipes the LLM stream through `LLMNativeEvents.mapper()` exactly as `runNative` does (`Stream.flatMap` + lazy `Stream.concat` for flush), runs it to completion, and asserts the key session events: `text-start` precedes `text-delta`, `finish-step` carries `finishReason: "stop"`, and `finish` carries the merged usage totals. This does NOT test the dispatch gate inside `session/llm.ts` (`!Flag.OPENCODE_EXPERIMENTAL_LLM_NATIVE`, missing `nativeMessages`, tools present, non-Anthropic protocol). Those are simple boolean conditions and don't need separate coverage. It also does not exercise the production `Service` layer — that's deferred to Phase 2 step 2 (tool support) and Phase 2 step 3 (production caller wiring). What the test buys: confidence that the conversion pipeline works and catches regressions in `LLMNative.request`, the LLM adapter set, or `LLMNativeEvents.mapper` before they would surface in a real session. Verification: 34/0/0 across the three bridge-area tests (`llm-native.test.ts` + `llm-native-stream.test.ts` + `llm-bridge.test.ts`); opencode typecheck clean.