diff --git a/apps/sim/lib/copilot/generated/tool-catalog-v1.ts b/apps/sim/lib/copilot/generated/tool-catalog-v1.ts index bbb44542619..b50898eb45a 100644 --- a/apps/sim/lib/copilot/generated/tool-catalog-v1.ts +++ b/apps/sim/lib/copilot/generated/tool-catalog-v1.ts @@ -71,6 +71,7 @@ export interface ToolCatalogEntry { | 'load_deployment' | 'load_integration_tool' | 'load_skill' + | 'load_slide_layout' | 'manage_credential' | 'manage_custom_tool' | 'manage_knowledge_base' @@ -199,6 +200,7 @@ export interface ToolCatalogEntry { | 'load_deployment' | 'load_integration_tool' | 'load_skill' + | 'load_slide_layout' | 'manage_credential' | 'manage_custom_tool' | 'manage_knowledge_base' @@ -3143,6 +3145,24 @@ export const LoadSkill: ToolCatalogEntry = { }, } +export const LoadSlideLayout: ToolCatalogEntry = { + id: 'load_slide_layout', + name: 'load_slide_layout', + route: 'go', + mode: 'sync', + parameters: { + type: 'object', + properties: { + name: { + type: 'string', + description: + "Layout name exactly as it appears in the Layout Library index (e.g. 'metric-cards').", + }, + }, + required: ['name'], + }, +} + export const ManageCredential: ToolCatalogEntry = { id: 'manage_credential', name: 'manage_credential', @@ -7041,6 +7061,7 @@ export const TOOL_CATALOG: Record = { [LoadDeployment.id]: LoadDeployment, [LoadIntegrationTool.id]: LoadIntegrationTool, [LoadSkill.id]: LoadSkill, + [LoadSlideLayout.id]: LoadSlideLayout, [ManageCredential.id]: ManageCredential, [ManageCustomTool.id]: ManageCustomTool, [ManageKnowledgeBase.id]: ManageKnowledgeBase, diff --git a/apps/sim/lib/copilot/generated/tool-schemas-v1.ts b/apps/sim/lib/copilot/generated/tool-schemas-v1.ts index c7f0cfcd3bf..7625f38c296 100644 --- a/apps/sim/lib/copilot/generated/tool-schemas-v1.ts +++ b/apps/sim/lib/copilot/generated/tool-schemas-v1.ts @@ -3028,6 +3028,20 @@ export const TOOL_RUNTIME_SCHEMAS: Record = { }, resultSchema: undefined, }, + load_slide_layout: { + parameters: { + type: 'object', + properties: { + name: { + type: 'string', + description: + "Layout name exactly as it appears in the Layout Library index (e.g. 'metric-cards').", + }, + }, + required: ['name'], + }, + resultSchema: undefined, + }, manage_credential: { parameters: { type: 'object', diff --git a/apps/sim/lib/copilot/tools/client/hidden-tools.ts b/apps/sim/lib/copilot/tools/client/hidden-tools.ts index 7609e0e570b..2cd522a7d6c 100644 --- a/apps/sim/lib/copilot/tools/client/hidden-tools.ts +++ b/apps/sim/lib/copilot/tools/client/hidden-tools.ts @@ -5,13 +5,16 @@ // search_integration_tools is gateway plumbing: the discovery step is not a // user-meaningful action, only the resolved call_integration_tool row is. // load_skill is the same shape — the agent pulling in a reference guide before -// doing the work is a step toward the action, not the action. +// doing the work is a step toward the action, not the action. load_slide_layout +// is that shape again: the file agent reading a layout from the slide library +// ahead of writing the deck. const HIDDEN_TOOL_NAMES = new Set([ 'load_agent_skill', 'load_custom_tool', 'load_mcp_tool', 'load_integration_tool', 'load_skill', + 'load_slide_layout', 'search_integration_tools', ]) diff --git a/apps/sim/lib/copilot/tools/tool-display.ts b/apps/sim/lib/copilot/tools/tool-display.ts index 947f0845854..4f4acff1215 100644 --- a/apps/sim/lib/copilot/tools/tool-display.ts +++ b/apps/sim/lib/copilot/tools/tool-display.ts @@ -535,6 +535,7 @@ const TOOL_TITLES: Record = { search_integration_tools: 'Finding the right integration', load_integration_tool: 'Loading integration tools', load_skill: 'Loading skill', + load_slide_layout: 'Loading slide layout', read: 'Reading file', search_library_docs: 'Searching library docs', user_table: 'Managing table',