1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
[]
= "basis"
= "The basis SDK: workspace discovery, run lifecycle, one event stream, and the two seams. No protocol, no transport, no TTY."
= true
= true
= true
= true
= true
= true
= true
= ["agent", "llm", "harness", "mentra", "sdk"]
= ["development-tools"]
# MCP is one binding of the tool contract, not a privileged subsystem
# (ADR-0012), so an embedder can compile a basis that has never heard of it:
# no `.mcp.json` discovery, no `McpConfig` on a run, no servers registered.
# Default-on, because the binary and `basis-acp` both want it — a client's
# `mcpServers` on `session/new` is the protocol's own concept.
#
# What this cannot drop is the weight underneath: mentra's MCP client is
# unconditional upstream, so there is nothing to forward. Gating basis's half
# still delivers the contract point — one seam, one adapter, droppable at
# compile time — and the day mentra gates its MCP client too, this is where
# that gets forwarded.
[]
= ["mcp"]
= []
# mentra streams the Responses wire format over HTTP+SSE or over a websocket,
# and the second transport is the only reason tokio-tungstenite was ever in
# this crate's tree.
#
# Off by default, and the reason has changed. It used to be reachability: no
# code path in basis could select the websocket transport at all, so the default
# build linked a websocket client it could never enter. `RuntimeBuilder::with_responses_transport`
# is now that path, so what keeps this off by default is the dependency weight
# — an embedder that streams over HTTP+SSE, which is every one that does not ask
# otherwise, should not carry a websocket stack for it. Enabling it forwards to
# mentra, which forwards to mentra-provider, which compiles the transport back
# in. Selecting `ResponsesTransport::WebSocket` without it is not a silent
# fallback to HTTP+SSE: mentra fails the request instead, which is why the
# builder method says so.
= ["mentra/responses-websocket"]
[]
= true
= true
= true
= true
= true
= true
= true
[]
= { = true, = ["test-utils"] }
= { = true, = ["time"] }
= true