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
[]
= "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, which is a statement about reachability rather than a
# preference: the transport is chosen per request through mentra's
# `ProviderRequestOptions`, basis never sets that field, and the `AgentConfig`
# that would carry it is private to workspace construction. No CLI invocation
# can select it, so the default build linked a websocket client for a code path it
# cannot enter. Kept nameable rather than cut outright, for an embedder driving
# basis against an endpoint where that transport is the point; enabling it
# forwards to mentra, which forwards to mentra-provider, which compiles the
# transport back in.
= ["mentra/responses-websocket"]
[]
= true
= true
= true
= true
= true
= true
= true
[]
= { = true, = ["test-utils"] }
= { = true, = ["time"] }
= true