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
6 changes: 3 additions & 3 deletions release-please-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
".": {
"changelog-path": "CHANGELOG.md",
"release-type": "node",
"bump-minor-pre-major": false,
"bump-patch-for-minor-pre-major": false,
"bump-minor-pre-major": true,
"bump-patch-for-minor-pre-major": true,
"draft": false,
"prerelease": true
}
},
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json"
}
}
1 change: 1 addition & 0 deletions schema/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"session_load": "session/load",
"session_new": "session/new",
"session_prompt": "session/prompt",
"session_resume": "session/resume",
"session_set_mode": "session/set_mode",
"session_set_model": "session/set_model"
},
Expand Down
114 changes: 113 additions & 1 deletion schema/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,9 @@
{
"$ref": "#/$defs/ForkSessionResponse"
},
{
"$ref": "#/$defs/ResumeSessionResponse"
},
{
"$ref": "#/$defs/SetSessionModeResponse"
},
Expand Down Expand Up @@ -606,6 +609,14 @@
],
"description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nForks an existing session to create a new independent session.\n\nThis method is only available if the agent advertises the `session.fork` capability.\n\nThe agent should create a new session with the same conversation context as the\noriginal, allowing operations like generating summaries without affecting the\noriginal session's history."
},
{
"allOf": [
{
"$ref": "#/$defs/ResumeSessionRequest"
}
],
"description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nResumes an existing session without returning previous messages.\n\nThis method is only available if the agent advertises the `session.resume` capability.\n\nThe agent should resume the session context, allowing the conversation to continue\nwithout replaying the message history (unlike `session/load`)."
},
{
"allOf": [
{
Expand Down Expand Up @@ -1123,6 +1134,17 @@
"description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)",
"type": ["object", "null"]
},
"cwd": {
"description": "The working directory for this session.",
"type": "string"
},
"mcpServers": {
"description": "List of MCP servers to connect to for this session.",
"items": {
"$ref": "#/$defs/McpServer"
},
"type": "array"
},
"sessionId": {
"allOf": [
{
Expand All @@ -1132,7 +1154,7 @@
"description": "The ID of the session to fork."
}
},
"required": ["sessionId"],
"required": ["sessionId", "cwd"],
"type": "object",
"x-method": "session/fork",
"x-side": "agent"
Expand Down Expand Up @@ -2254,6 +2276,74 @@
"required": ["name", "uri"],
"type": "object"
},
"ResumeSessionRequest": {
"description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nRequest parameters for resuming an existing session.\n\nResumes an existing session without returning previous messages (unlike `session/load`).\nThis is useful for agents that can resume sessions but don't implement full session loading.\n\nOnly available if the Agent supports the `session.resume` capability.",
"properties": {
"_meta": {
"additionalProperties": true,
"description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)",
"type": ["object", "null"]
},
"cwd": {
"description": "The working directory for this session.",
"type": "string"
},
"mcpServers": {
"description": "List of MCP servers to connect to for this session.",
"items": {
"$ref": "#/$defs/McpServer"
},
"type": "array"
},
"sessionId": {
"allOf": [
{
"$ref": "#/$defs/SessionId"
}
],
"description": "The ID of the session to resume."
}
},
"required": ["sessionId", "cwd"],
"type": "object",
"x-method": "session/resume",
"x-side": "agent"
},
"ResumeSessionResponse": {
"description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nResponse from resuming an existing session.",
"properties": {
"_meta": {
"additionalProperties": true,
"description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)",
"type": ["object", "null"]
},
"models": {
"anyOf": [
{
"$ref": "#/$defs/SessionModelState"
},
{
"type": "null"
}
],
"description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nInitial model state if supported by the Agent"
},
"modes": {
"anyOf": [
{
"$ref": "#/$defs/SessionModeState"
},
{
"type": "null"
}
],
"description": "Initial mode state if supported by the Agent\n\nSee protocol docs: [Session Modes](https://agentclientprotocol.com/protocol/session-modes)"
}
},
"type": "object",
"x-method": "session/resume",
"x-side": "agent"
},
"Role": {
"description": "The sender or recipient of messages and data in a conversation.",
"enum": ["assistant", "user"],
Expand Down Expand Up @@ -2308,6 +2398,17 @@
}
],
"description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nWhether the agent supports `session/list`."
},
"resume": {
"anyOf": [
{
"$ref": "#/$defs/SessionResumeCapabilities"
},
{
"type": "null"
}
],
"description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nWhether the agent supports `session/resume`."
}
},
"type": "object"
Expand Down Expand Up @@ -2479,6 +2580,17 @@
"x-method": "session/update",
"x-side": "client"
},
"SessionResumeCapabilities": {
"description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nCapabilities for the `session/resume` method.\n\nBy supplying `{}` it means that the agent supports resuming of sessions.",
"properties": {
"_meta": {
"additionalProperties": true,
"description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)",
"type": ["object", "null"]
}
},
"type": "object"
},
"SessionUpdate": {
"description": "Different types of updates that can be sent during session processing.\n\nThese updates provide real-time feedback about the agent's progress.\n\nSee protocol docs: [Agent Reports Output](https://agentclientprotocol.com/protocol/prompt-turn#3-agent-reports-output)",
"discriminator": {
Expand Down
2 changes: 1 addition & 1 deletion scripts/generate.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import * as fs from "fs/promises";
import { dirname } from "path";
import * as prettier from "prettier";

const CURRENT_SCHEMA_RELEASE = "v0.10.1";
const CURRENT_SCHEMA_RELEASE = "v0.10.2";

await main();

Expand Down
1 change: 1 addition & 0 deletions src/schema/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ export const AGENT_METHODS = {
session_load: "session/load",
session_new: "session/new",
session_prompt: "session/prompt",
session_resume: "session/resume",
session_set_mode: "session/set_mode",
session_set_model: "session/set_model",
} as const;
Expand Down
121 changes: 121 additions & 0 deletions src/schema/types.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ export type AgentResponse =
| LoadSessionResponse
| ListSessionsResponse
| ForkSessionResponse
| ResumeSessionResponse
| SetSessionModeResponse
| PromptResponse
| SetSessionModelResponse
Expand Down Expand Up @@ -360,6 +361,7 @@ export type ClientRequest = {
| LoadSessionRequest
| ListSessionsRequest
| ForkSessionRequest
| ResumeSessionRequest
| SetSessionModeRequest
| PromptRequest
| SetSessionModelRequest
Expand Down Expand Up @@ -759,6 +761,14 @@ export type ForkSessionRequest = {
_meta?: {
[key: string]: unknown;
} | null;
/**
* The working directory for this session.
*/
cwd: string;
/**
* List of MCP servers to connect to for this session.
*/
mcpServers?: Array<McpServer>;
/**
* The ID of the session to fork.
*/
Expand Down Expand Up @@ -1793,6 +1803,83 @@ export type ResourceLink = {
uri: string;
};

/**
* **UNSTABLE**
*
* This capability is not part of the spec yet, and may be removed or changed at any point.
*
* Request parameters for resuming an existing session.
*
* Resumes an existing session without returning previous messages (unlike `session/load`).
* This is useful for agents that can resume sessions but don't implement full session loading.
*
* Only available if the Agent supports the `session.resume` capability.
*
* @experimental
*/
export type ResumeSessionRequest = {
/**
* 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)
*/
_meta?: {
[key: string]: unknown;
} | null;
/**
* The working directory for this session.
*/
cwd: string;
/**
* List of MCP servers to connect to for this session.
*/
mcpServers?: Array<McpServer>;
/**
* The ID of the session to resume.
*/
sessionId: SessionId;
};

/**
* **UNSTABLE**
*
* This capability is not part of the spec yet, and may be removed or changed at any point.
*
* Response from resuming an existing session.
*
* @experimental
*/
export type ResumeSessionResponse = {
/**
* 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)
*/
_meta?: {
[key: string]: unknown;
} | null;
/**
* **UNSTABLE**
*
* This capability is not part of the spec yet, and may be removed or changed at any point.
*
* Initial model state if supported by the Agent
*
* @experimental
*/
models?: SessionModelState | null;
/**
* Initial mode state if supported by the Agent
*
* See protocol docs: [Session Modes](https://agentclientprotocol.com/protocol/session-modes)
*/
modes?: SessionModeState | null;
};

/**
* The sender or recipient of messages and data in a conversation.
*/
Expand Down Expand Up @@ -1860,6 +1947,16 @@ export type SessionCapabilities = {
* @experimental
*/
list?: SessionListCapabilities | null;
/**
* **UNSTABLE**
*
* This capability is not part of the spec yet, and may be removed or changed at any point.
*
* Whether the agent supports `session/resume`.
*
* @experimental
*/
resume?: SessionResumeCapabilities | null;
};

/**
Expand Down Expand Up @@ -2062,6 +2159,30 @@ export type SessionNotification = {
update: SessionUpdate;
};

/**
* **UNSTABLE**
*
* This capability is not part of the spec yet, and may be removed or changed at any point.
*
* Capabilities for the `session/resume` method.
*
* By supplying `{}` it means that the agent supports resuming of sessions.
*
* @experimental
*/
export type SessionResumeCapabilities = {
/**
* 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)
*/
_meta?: {
[key: string]: unknown;
} | null;
};

/**
* Different types of updates that can be sent during session processing.
*
Expand Down
Loading