pub enum AcpFeature {
SessionPrompt,
SessionCancel,
SessionLoad,
FsAccess,
TerminalAccess,
Elicitation,
CancelRequest,
}Expand description
A capability an ACP peer can advertise. The variant
carries the spec section that introduced it; the
feature_matrix_golden test names the source.
§Why Copy
The matrix is [[bool; N_FEATURES]; N_VERSIONS] — a
per-revision row, indexed by AcpFeature::ALL. The
ALL array is the source of truth for the column count
and is a stack-local constant. The Copy derive keeps
the per-cell copies free.
Variants§
SessionPrompt
session/prompt — the user-turn call. Every ACP
agent the v1.25.0 schema describes supports
session/prompt; the matrix row for v1.25.0 is true.
Reference:
https://github.com/agentclientprotocol/agent-client-protocol/blob/schema-v1.25.0/schema/v1/schema.json
(the agentMethods.session_prompt entry in
meta.json).
SessionCancel
session/cancel — cancels an in-flight session/prompt.
Reference: meta.json::agentMethods.session_cancel.
SessionLoad
session/load and session/resume — the editor’s
ability to resume a session. The agent advertises
loadSession in initialize; the matrix row is
true if the agent advertised it.
Reference: meta.json::agentMethods.session_load
and session_resume.
FsAccess
fs/write_text_file and fs/read_text_file — the
editor’s filesystem access. The agent’s
fs.readTextFile and fs.writeTextFile capabilities
gate whether the agent may call the editor.
Reference: meta.json::clientMethods.fs_*.
TerminalAccess
terminal/* — the editor’s terminal access. The
agent’s terminal capability gates the five
terminal/* methods.
Reference: meta.json::clientMethods.terminal_*.
Elicitation
elicitation/* — the editor’s structured elicitation
surface. The agent’s elicitation capability gates
the two elicitation/* methods.
Reference: meta.json::clientMethods.elicitation_*.
CancelRequest
$/cancel_request — the JSON-RPC standard cancel.
Both peers must support this; the matrix row is
always true and exists for symmetry with the
meta.json::protocolMethods table.
Reference: meta.json::protocolMethods.cancel_request.