Skip to content

Commit f163ad4

Browse files
[SEP-2575][SEP-2322] client: Client gains _send/_negotiate/_isStateless/subscribe; typed methods route via _send (sectioned)
Client (existing class, extends Protocol) gains a `// 2026 stateless` section: - `_isStateless`, `_logLevel` - `_buildMeta()` / `_withMeta()` — namespaced `_meta` from client identity - `_collect(it, opts)` — drain sendAndReceive: progress→onprogress by token, return raw result, throw on JSON-RPC error - `_send(req, schema, opts)` — route via sendAndReceive when stateless, else fall back to `Protocol.request()`. MRTR loop ≤16: on input_required, dispatch each input request via `this.dispatcher.dispatch` (so `_validationMiddleware` runs), accumulate inputResponses + thread requestState, propagate signal - `_negotiate(transport)` — probe server/discover, set `_isStateless` on success, fall through on isFallbackable error (wired to connect() in C13) - `subscribe(filter)` — async generator over subscriptions/listen - `_listChangedLoop` — stateless backing for options.listChanged with debounce `// dual-mode`: typed methods (callTool/listTools/getPrompt/listPrompts/ readResource/listResources/listResourceTemplates/complete) route via `_send`. `setLoggingLevel` stores level for `_buildMeta`, sends legacy RPC when not stateless. `// session-dependent` divider above existing `connect()`/`ping()`/ `subscribeResource()`/`_setupListChangedHandler*` (bodies unchanged). `applyElicitationDefaults` unchanged. Satisfies: 2575-R10 (per-request _meta), 2575-R11 (discover probe), 2575-R12 (sendAndReceive routing), 2322-R3 (MRTR resume loop), 2322-R4 (requestState round-trip)
1 parent 93bb2c3 commit f163ad4

2 files changed

Lines changed: 665 additions & 12 deletions

File tree

0 commit comments

Comments
 (0)