From 96866e52ce4b28d8f380d84722f411e786781f51 Mon Sep 17 00:00:00 2001 From: Dax Date: Wed, 23 Jul 2025 20:30:46 -0400 Subject: basic undo feature (#1268) Co-authored-by: adamdotdevin <2363879+adamdottv@users.noreply.github.com> Co-authored-by: Jay V Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: Andrew Joslin Co-authored-by: GitHub Action Co-authored-by: Tobias Walle <9933601+tobias-walle@users.noreply.github.com> --- packages/sdk/src/client.ts | 2 ++ packages/sdk/src/resources/config.ts | 12 +++++++++++- packages/sdk/src/resources/index.ts | 1 + packages/sdk/src/resources/session.ts | 23 ++++++++++++++++++++++- 4 files changed, 36 insertions(+), 2 deletions(-) (limited to 'packages/sdk/src') diff --git a/packages/sdk/src/client.ts b/packages/sdk/src/client.ts index c514ca877..7045719f6 100644 --- a/packages/sdk/src/client.ts +++ b/packages/sdk/src/client.ts @@ -67,6 +67,7 @@ import { SessionListResponse, SessionMessagesResponse, SessionResource, + SessionRevertParams, SessionSummarizeParams, SessionSummarizeResponse, SnapshotPart, @@ -846,6 +847,7 @@ export declare namespace Opencode { type SessionSummarizeResponse as SessionSummarizeResponse, type SessionChatParams as SessionChatParams, type SessionInitParams as SessionInitParams, + type SessionRevertParams as SessionRevertParams, type SessionSummarizeParams as SessionSummarizeParams, }; diff --git a/packages/sdk/src/resources/config.ts b/packages/sdk/src/resources/config.ts index e1fc09de5..638af98f8 100644 --- a/packages/sdk/src/resources/config.ts +++ b/packages/sdk/src/resources/config.ts @@ -305,10 +305,20 @@ export interface KeybindsConfig { messages_previous: string; /** - * Revert message + * Redo message + */ + messages_redo: string; + + /** + * @deprecated use messages_undo. Revert message */ messages_revert: string; + /** + * Undo message + */ + messages_undo: string; + /** * List available models */ diff --git a/packages/sdk/src/resources/index.ts b/packages/sdk/src/resources/index.ts index 50df8ff46..db8bde9b4 100644 --- a/packages/sdk/src/resources/index.ts +++ b/packages/sdk/src/resources/index.ts @@ -71,6 +71,7 @@ export { type SessionSummarizeResponse, type SessionChatParams, type SessionInitParams, + type SessionRevertParams, type SessionSummarizeParams, } from './session'; export { diff --git a/packages/sdk/src/resources/session.ts b/packages/sdk/src/resources/session.ts index 6e160321d..bb761033a 100644 --- a/packages/sdk/src/resources/session.ts +++ b/packages/sdk/src/resources/session.ts @@ -57,6 +57,13 @@ export class SessionResource extends APIResource { return this._client.get(path`/session/${id}/message`, options); } + /** + * Revert a message + */ + revert(id: string, body: SessionRevertParams, options?: RequestOptions): APIPromise { + return this._client.post(path`/session/${id}/revert`, { body, ...options }); + } + /** * Share a session */ @@ -75,6 +82,13 @@ export class SessionResource extends APIResource { return this._client.post(path`/session/${id}/summarize`, { body, ...options }); } + /** + * Restore all reverted messages + */ + unrevert(id: string, options?: RequestOptions): APIPromise { + return this._client.post(path`/session/${id}/unrevert`, options); + } + /** * Unshare the session */ @@ -231,7 +245,7 @@ export namespace Session { export interface Revert { messageID: string; - part: number; + partID?: string; snapshot?: string; } @@ -513,6 +527,12 @@ export interface SessionInitParams { providerID: string; } +export interface SessionRevertParams { + messageID: string; + + partID?: string; +} + export interface SessionSummarizeParams { modelID: string; @@ -550,6 +570,7 @@ export declare namespace SessionResource { type SessionSummarizeResponse as SessionSummarizeResponse, type SessionChatParams as SessionChatParams, type SessionInitParams as SessionInitParams, + type SessionRevertParams as SessionRevertParams, type SessionSummarizeParams as SessionSummarizeParams, }; } -- cgit v1.2.3