diff --git a/apps/sim/blocks/types.ts b/apps/sim/blocks/types.ts index 099dcd8b6..0c03f9536 100644 --- a/apps/sim/blocks/types.ts +++ b/apps/sim/blocks/types.ts @@ -164,6 +164,12 @@ export type OutputFieldDefinition = hiddenFromDisplay?: boolean } +export function isHiddenFromDisplay(def: unknown): boolean { + return Boolean( + def && typeof def === 'object' && 'hiddenFromDisplay' in def && def.hiddenFromDisplay + ) +} + export interface ParamConfig { type: ParamType description?: string diff --git a/apps/sim/lib/copilot/process-contents.ts b/apps/sim/lib/copilot/process-contents.ts index 3b62b9197..ff1dbf497 100644 --- a/apps/sim/lib/copilot/process-contents.ts +++ b/apps/sim/lib/copilot/process-contents.ts @@ -4,6 +4,7 @@ import { createLogger } from '@sim/logger' import { and, eq, isNull } from 'drizzle-orm' import { loadWorkflowFromNormalizedTables } from '@/lib/workflows/persistence/utils' import { sanitizeForCopilot } from '@/lib/workflows/sanitization/json-sanitizer' +import { isHiddenFromDisplay } from '@/blocks/types' import { escapeRegExp } from '@/executor/constants' import { getUserPermissionConfig } from '@/executor/utils/permission-check' import type { ChatContext } from '@/stores/panel/copilot/types' @@ -397,7 +398,11 @@ async function processBlockMetadata( category: blockConfig.category, bgColor: blockConfig.bgColor, inputs: blockConfig.inputs || {}, - outputs: blockConfig.outputs || {}, + outputs: blockConfig.outputs + ? Object.fromEntries( + Object.entries(blockConfig.outputs).filter(([_, def]) => !isHiddenFromDisplay(def)) + ) + : {}, tools: blockConfig.tools?.access || [], hideFromToolbar: blockConfig.hideFromToolbar, } diff --git a/apps/sim/lib/copilot/tools/server/blocks/get-block-config.ts b/apps/sim/lib/copilot/tools/server/blocks/get-block-config.ts index d1acfe336..3bcc90233 100644 --- a/apps/sim/lib/copilot/tools/server/blocks/get-block-config.ts +++ b/apps/sim/lib/copilot/tools/server/blocks/get-block-config.ts @@ -6,7 +6,7 @@ import { type GetBlockConfigResultType, } from '@/lib/copilot/tools/shared/schemas' import { registry as blockRegistry, getLatestBlock } from '@/blocks/registry' -import type { SubBlockConfig } from '@/blocks/types' +import { isHiddenFromDisplay, type SubBlockConfig } from '@/blocks/types' import { getUserPermissionConfig } from '@/executor/utils/permission-check' import { PROVIDER_DEFINITIONS } from '@/providers/models' import { tools as toolsRegistry } from '@/tools/registry' @@ -310,6 +310,7 @@ function extractTriggerOutputs(blockConfig: any): Record !isHiddenFromDisplay(def)) + ) + : undefined + metadata = { id: blockId, name: blockConfig.name || blockId, @@ -262,7 +267,7 @@ export const getBlocksMetadataServerTool: BaseServerTool< triggers, operationInputSchema: operationParameters, operations, - outputs: blockConfig.outputs, + outputs: filteredOutputs, } }