Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ node_modules
dist
*.tsbuildinfo
.DS_Store
.idea

# TypeScript generated files
typescript/*.js
Expand Down
1 change: 1 addition & 0 deletions CLAUDE.md
2 changes: 2 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ unstable = [
"unstable_auth_methods",
"unstable_cancel_request",
"unstable_elicitation",
"unstable_llm_providers",
"unstable_logout",
"unstable_nes",
"unstable_session_additional_directories",
Expand All @@ -32,6 +33,7 @@ unstable = [
unstable_auth_methods = []
unstable_cancel_request = []
unstable_elicitation = []
unstable_llm_providers = []
unstable_logout = []
unstable_nes = []
unstable_session_additional_directories = []
Expand Down
304 changes: 304 additions & 0 deletions docs/protocol/draft/schema.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -624,6 +624,180 @@ See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/exte
The list of suggestions.
</ResponseField>

<a id="providers-disable"></a>
### <span class="font-mono">providers/disable</span>

**UNSTABLE**

This capability is not part of the spec yet, and may be removed or changed at any point.

Disables a provider.

#### <span class="font-mono">DisableProvidersRequest</span>

**UNSTABLE**

This capability is not part of the spec yet, and may be removed or changed at any point.

Request parameters for `providers/disable`.

**Type:** Object

**Properties:**

<ResponseField name="_meta" type={"object | null"} >
The _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)

</ResponseField>
<ResponseField name="id" type={"string"} required>
Provider id to disable.
</ResponseField>

#### <span class="font-mono">DisableProvidersResponse</span>

**UNSTABLE**

This capability is not part of the spec yet, and may be removed or changed at any point.

Response to `providers/disable`.

**Type:** Object

**Properties:**

<ResponseField name="_meta" type={"object | null"} >
The _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)

</ResponseField>

<a id="providers-list"></a>
### <span class="font-mono">providers/list</span>

**UNSTABLE**

This capability is not part of the spec yet, and may be removed or changed at any point.

Lists providers that can be configured by the client.

#### <span class="font-mono">ListProvidersRequest</span>

**UNSTABLE**

This capability is not part of the spec yet, and may be removed or changed at any point.

Request parameters for `providers/list`.

**Type:** Object

**Properties:**

<ResponseField name="_meta" type={"object | null"} >
The _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)

</ResponseField>

#### <span class="font-mono">ListProvidersResponse</span>

**UNSTABLE**

This capability is not part of the spec yet, and may be removed or changed at any point.

Response to `providers/list`.

**Type:** Object

**Properties:**

<ResponseField name="_meta" type={"object | null"} >
The _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)

</ResponseField>
<ResponseField name="providers" type={<a href="#providerinfo">ProviderInfo[]</a>} required>
Configurable providers with current routing info suitable for UI display.
</ResponseField>

<a id="providers-set"></a>
### <span class="font-mono">providers/set</span>

**UNSTABLE**

This capability is not part of the spec yet, and may be removed or changed at any point.

Replaces the configuration for a provider.

#### <span class="font-mono">SetProvidersRequest</span>

**UNSTABLE**

This capability is not part of the spec yet, and may be removed or changed at any point.

Request parameters for `providers/set`.

Replaces the full configuration for one provider id.

**Type:** Object

**Properties:**

<ResponseField name="_meta" type={"object | null"} >
The _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)

</ResponseField>
<ResponseField name="apiType" type={<a href="#llmprotocol">LlmProtocol</a>} required>
Protocol type for this provider.
</ResponseField>
<ResponseField name="baseUrl" type={"string"} required>
Base URL for requests sent through this provider.
</ResponseField>
<ResponseField name="headers" type={"object"} >
Full headers map for this provider.
May include authorization, routing, or other integration-specific headers.
</ResponseField>
<ResponseField name="id" type={"string"} required>
Provider id to configure.
</ResponseField>

#### <span class="font-mono">SetProvidersResponse</span>

**UNSTABLE**

This capability is not part of the spec yet, and may be removed or changed at any point.

Response to `providers/set`.

**Type:** Object

**Properties:**

<ResponseField name="_meta" type={"object | null"} >
The _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)

</ResponseField>

<a id="session-cancel"></a>
### <span class="font-mono">session/cancel</span>

Expand Down Expand Up @@ -2365,6 +2539,16 @@ The position encoding selected by the agent from the client's supported encoding

- Default: `{"audio":false,"embeddedContext":false,"image":false}`

</ResponseField>
<ResponseField name="providers" type={<><span><a href="#providerscapabilities">ProvidersCapabilities</a></span><span> | null</span></>} >
**UNSTABLE**

This capability is not part of the spec yet, and may be removed or changed at any point.

Provider configuration capabilities supported by the agent.

By supplying `\{\}` it means that the agent supports provider configuration methods.

</ResponseField>
<ResponseField name="sessionCapabilities" type={<a href="#sessioncapabilities">SessionCapabilities</a>} >

Expand Down Expand Up @@ -4130,6 +4314,45 @@ Schema for integer properties in an elicitation form.
Optional title for the property.
</ResponseField>

## <span class="font-mono">LlmProtocol</span>

**UNSTABLE**

This capability is not part of the spec yet, and may be removed or changed at any point.

Well-known API protocol identifiers for LLM providers.

Agents and clients MUST handle unknown protocol identifiers gracefully.

Protocol names beginning with `_` are free for custom use, like other ACP extension methods.
Protocol names that do not begin with `_` are reserved for the ACP spec.

**Type:** Union

<ResponseField name="anthropic" type="string">
Anthropic API protocol.
</ResponseField>

<ResponseField name="openai" type="string">
OpenAI API protocol.
</ResponseField>

<ResponseField name="azure" type="string">
Azure OpenAI API protocol.
</ResponseField>

<ResponseField name="vertex" type="string">
Google Vertex AI API protocol.
</ResponseField>

<ResponseField name="bedrock" type="string">
AWS Bedrock API protocol.
</ResponseField>

<ResponseField name="other" type="string">
Unknown or custom protocol.
</ResponseField>

## <span class="font-mono">LogoutCapabilities</span>

**UNSTABLE**
Expand Down Expand Up @@ -5642,6 +5865,87 @@ Non-breaking changes should be introduced via capabilities.
| Minimum | `0` |
| Maximum | `65535` |

## <span class="font-mono">ProviderCurrentConfig</span>

**UNSTABLE**

This capability is not part of the spec yet, and may be removed or changed at any point.

Current effective non-secret routing configuration for a provider.

**Type:** Object

**Properties:**

<ResponseField
name="apiType"
type={<a href="#llmprotocol">LlmProtocol</a>}
required
>
Protocol currently used by this provider.
</ResponseField>
<ResponseField name="baseUrl" type={"string"} required>
Base URL currently used by this provider.
</ResponseField>

## <span class="font-mono">ProviderInfo</span>

**UNSTABLE**

This capability is not part of the spec yet, and may be removed or changed at any point.

Information about a configurable LLM provider.

**Type:** Object

**Properties:**

<ResponseField name="_meta" type={"object | null"} >
The _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)

</ResponseField>
<ResponseField name="current" type={<><span><a href="#providercurrentconfig">ProviderCurrentConfig</a></span><span> | null</span></>} required>
Current effective non-secret routing config.
Null means provider is disabled.
</ResponseField>
<ResponseField name="id" type={"string"} required>
Provider identifier, for example "main" or "openai".
</ResponseField>
<ResponseField name="required" type={"boolean"} required>
Whether this provider is mandatory and cannot be disabled via `providers/disable`.
If true, clients must not call `providers/disable` for this id.
</ResponseField>
<ResponseField name="supported" type={<a href="#llmprotocol">LlmProtocol[]</a>} required>
Supported protocol types for this provider.
</ResponseField>

## <span class="font-mono">ProvidersCapabilities</span>

**UNSTABLE**

This capability is not part of the spec yet, and may be removed or changed at any point.

Provider configuration capabilities supported by the agent.

By supplying `\{\}` it means that the agent supports provider configuration methods.

**Type:** Object

**Properties:**

<ResponseField name="_meta" type={"object | null"} >
The _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)

</ResponseField>

## <span class="font-mono">Range</span>

A range in a text document, expressed as start and end positions.
Expand Down
Loading