(args: z.infer<typeof RollbackArgs>, ctx: ToolContext)
| 154 | description = 'Repoint an artifact\u2019s "current" version to an earlier one. No content is lost; later versions remain in history.'; |
| 155 | argsSchema = RollbackArgs; |
| 156 | isReadOnly = false; |
| 157 | isDestructive = false; |
| 158 | |
| 159 | async execute(args: z.infer<typeof RollbackArgs>, ctx: ToolContext): Promise<ToolResult> { |
| 160 | try { |
| 161 | const manifest = await rollbackArtifact(ctx.cwd, resolveArtifactId(args), args.version, (p, c) => ctx.transaction.write(p, c)); |
| 162 | ctx.emit({ type: 'progress', message: `Rolled "${manifest.id}" back to v${args.version}` }); |
| 163 | return { content: `"${manifest.id}" current version is now v${args.version}.`, metadata: { artifactId: manifest.id, current: args.version } }; |
| 164 | } catch (e: any) { |
| 165 | return { content: e?.message ?? String(e), isError: true }; |
| 166 | } |
| 167 | } |
nothing calls this directly
no test coverage detected