diff --git a/packages/opencode/src/cli/cmd/debug/snapshot.ts b/packages/opencode/src/cli/cmd/debug/snapshot.ts index 48d7f91e6..7a86f2b88 100644 --- a/packages/opencode/src/cli/cmd/debug/snapshot.ts +++ b/packages/opencode/src/cli/cmd/debug/snapshot.ts @@ -1,10 +1,12 @@ +import { Session } from "../../../session" import { Snapshot } from "../../../snapshot" import { bootstrap } from "../../bootstrap" import { cmd } from "../cmd" export const SnapshotCommand = cmd({ command: "snapshot", - builder: (yargs) => yargs.command(CreateCommand).command(RestoreCommand).command(DiffCommand).demandCommand(), + builder: (yargs) => + yargs.command(CreateCommand).command(RestoreCommand).command(DiffCommand).command(RevertCommand).demandCommand(), async handler() {}, }) @@ -50,3 +52,29 @@ export const DiffCommand = cmd({ }) }, }) + +export const RevertCommand = cmd({ + command: "revert ", + describe: "revert", + builder: (yargs) => + yargs + .positional("sessionID", { + type: "string", + description: "sessionID", + demandOption: true, + }) + .positional("messageID", { + type: "string", + description: "messageID", + demandOption: true, + }), + async handler(args) { + await bootstrap({ cwd: process.cwd() }, async () => { + const session = await Session.revert({ + sessionID: args.sessionID, + messageID: args.messageID, + }) + console.log(session?.revert) + }) + }, +})