Skip to content

Commit 2994b54

Browse files
committed
add streaming api doc
1 parent d0cddd2 commit 2994b54

2 files changed

Lines changed: 40 additions & 0 deletions

File tree

docs/developer/ts-adapter.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,25 @@ The `page` parameter provides browser interaction methods:
6565
- `page.click(selector)` — Click an element
6666
- `page.type(selector, text)` — Type text into an input
6767

68+
### Streaming API Interception
69+
70+
For capturing streaming responses (SSE / chunked transfer) — works in background tabs where DOM rendering is throttled but fetch streams and XHR progress events are not.
71+
72+
```typescript
73+
await page.installStreamingInterceptor('StreamGenerate');
74+
// ... trigger the streaming request ...
75+
await page.waitForStreamCapture(60, { minChars: 100, waitForDone: true });
76+
const { text, events, done, errors } = await page.getStreamedResponses();
77+
// Or peek without clearing:
78+
const { text } = await page.getStreamedResponses({ clear: false });
79+
```
80+
81+
| Method | Description |
82+
|--------|-------------|
83+
| `installStreamingInterceptor(pattern)` | Patch fetch + XHR to capture streaming responses |
84+
| `waitForStreamCapture(timeout, opts?)` | Poll until `minChars` reached and/or stream `done` |
85+
| `getStreamedResponses(opts?)` | Read captured text/events; pass `{ clear: false }` to peek |
86+
6887
## The `kwargs` Object
6988

7089
Contains parsed CLI arguments as key-value pairs. Always destructure with defaults:

docs/developer/yaml-adapter.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,27 @@ Download media files.
100100
```
101101
:::
102102

103+
### `stream-intercept`
104+
Capture streaming responses (SSE / chunked transfer) incrementally. Unlike `intercept`, this reads the response body as a stream — ideal for AI chat endpoints that stream replies, and works in background tabs where DOM rendering is throttled. Requires `browser: true`.
105+
106+
::: v-pre
107+
```yaml
108+
- stream-intercept:
109+
capture: "StreamGenerate"
110+
trigger: "click:@send"
111+
timeout: 60
112+
waitForDone: true
113+
```
114+
:::
115+
116+
| Param | Default | Description |
117+
|-------|---------|-------------|
118+
| `capture` | (required) | URL substring to match |
119+
| `trigger` | `""` | Action before capture: `click:@ref`, `navigate:url`, `evaluate:js`, `scroll` |
120+
| `timeout` | `60` | Max seconds to wait for stream data |
121+
| `waitForDone` | `true` | Wait until the stream completes (not just first bytes) |
122+
| `returnEvents` | `false` | Return parsed SSE events instead of raw text |
123+
103124
## Template Expressions
104125

105126
::: v-pre

0 commit comments

Comments
 (0)