Skip to content

Commit 19ce111

Browse files
committed
Add 'canvas_open' canvas action handler
Add a new IPC action 'canvas_open' to RoopikToolsChannel and implement handleOpenCanvas(args) which delegates to canvasToolService.open(args) to open a canvas by ID or name. Also update the Canvas Tools section comment numbering. This enables opening canvases via the channel.
1 parent 2a5a000 commit 19ce111

2 files changed

Lines changed: 12 additions & 3 deletions

File tree

src/vs/workbench/contrib/roopik/electron-main/channel/roopikToolsChannel.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
* browser_get_console_logs, browser_get_performance, browser_get_state,
2424
* browser_set_viewport, browser_get_network_requests
2525
* - Project Tools (3): project_get_active, project_start, project_stop
26-
* - Canvas Tools (3): canvas_list, canvas_get_active, canvas_create
26+
* - Canvas Tools (4): canvas_list, canvas_get_active, canvas_create, canvas_open
2727
* - Component Tools (7): component_add, component_add_batch, component_remove,
2828
* component_get_info, component_list, component_rebuild, canvas_validate_components
2929
*/
@@ -168,7 +168,7 @@ export class RoopikToolsChannel implements IServerChannel {
168168
return this.handleStopProject();
169169

170170
// ============================================================
171-
// Canvas Tools (3)
171+
// Canvas Tools (4)
172172
// ============================================================
173173
case 'canvas_list':
174174
return this.handleListCanvases(arg as { nameFilter?: string; sortBy?: string; sortDirection?: string });
@@ -179,6 +179,9 @@ export class RoopikToolsChannel implements IServerChannel {
179179
case 'canvas_create':
180180
return this.handleCreateCanvas(arg as { name: string });
181181

182+
case 'canvas_open':
183+
return this.handleOpenCanvas(arg as { canvasId?: string; name?: string });
184+
182185
// ============================================================
183186
// Component Tools (6)
184187
// ============================================================
@@ -718,6 +721,11 @@ export class RoopikToolsChannel implements IServerChannel {
718721
};
719722
}
720723

724+
private async handleOpenCanvas(args: { canvasId?: string; name?: string }): Promise<RoopikToolResult> {
725+
// Delegate to CanvasToolService which handles lookup by ID or name
726+
return this.canvasToolService.open(args);
727+
}
728+
721729
// ========================================================================
722730
// Component Tool Handlers
723731
// ========================================================================

src/vs/workbench/contrib/roopik/electron-main/mcp/executor/toolExecutor.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,10 +137,11 @@ export class ToolExecutor {
137137
'browser_get_state',
138138
'browser_set_viewport',
139139
'browser_get_network_requests',
140-
// Canvas tools (4)
140+
// Canvas tools (5)
141141
'canvas_list',
142142
'canvas_get_active',
143143
'canvas_create',
144+
'canvas_open',
144145
'canvas_validate_components',
145146
// Component tools (8)
146147
'component_add',

0 commit comments

Comments
 (0)