@powerhousedao/pieces-framework 6.2.3-dev.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../upstream/core-piece-types/lib/piece.ts","../upstream/core-piece-types/lib/execution.ts","../upstream/core-utils/lib/id-generator.ts","../upstream/core-utils/lib/base-model.ts","../upstream/core-utils/lib/seek-page.ts","../upstream/core-utils/lib/locale.ts","../upstream/core-utils/lib/permission.ts","../upstream/core-piece-types/lib/agents.ts","../upstream/core-piece-types/lib/ai-providers.ts","../upstream/core-piece-types/lib/forms.ts","../upstream/core-piece-types/lib/tables.ts","../upstream/core-piece-types/lib/flow-contracts.ts","../upstream/core-piece-types/lib/mcp-piece.ts","../upstream/core-piece-types/lib/engine-tools.ts","../upstream/framework/lib/property/util.ts","../upstream/framework/lib/property/index.ts","../upstream/framework/lib/trigger/trigger.ts","../upstream/framework/lib/context/index.ts","../upstream/framework/lib/context/versioning.ts","../upstream/framework/lib/piece.ts","../upstream/framework/lib/piece-metadata.ts","../upstream/framework/lib/i18n.ts","../upstream/framework/lib/test/index.ts","../src/powerhouse/context.ts"],"sourcesContent":["// Vendored from activepieces/activepieces@0.91.0 packages/core/piece-types/src/lib/piece.ts. MIT; see ../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\nexport enum PackageType {\n ARCHIVE = \"ARCHIVE\",\n REGISTRY = \"REGISTRY\",\n}\n\nexport enum PieceType {\n CUSTOM = \"CUSTOM\",\n OFFICIAL = \"OFFICIAL\",\n}\n\nexport enum PieceCategory {\n ARTIFICIAL_INTELLIGENCE = \"ARTIFICIAL_INTELLIGENCE\",\n COMMUNICATION = \"COMMUNICATION\",\n COMMERCE = \"COMMERCE\",\n CORE = \"CORE\",\n UNIVERSAL_AI = \"UNIVERSAL_AI\",\n FLOW_CONTROL = \"FLOW_CONTROL\",\n BUSINESS_INTELLIGENCE = \"BUSINESS_INTELLIGENCE\",\n ACCOUNTING = \"ACCOUNTING\",\n PRODUCTIVITY = \"PRODUCTIVITY\",\n CONTENT_AND_FILES = \"CONTENT_AND_FILES\",\n DEVELOPER_TOOLS = \"DEVELOPER_TOOLS\",\n CUSTOMER_SUPPORT = \"CUSTOMER_SUPPORT\",\n FORMS_AND_SURVEYS = \"FORMS_AND_SURVEYS\",\n HUMAN_RESOURCES = \"HUMAN_RESOURCES\",\n PAYMENT_PROCESSING = \"PAYMENT_PROCESSING\",\n MARKETING = \"MARKETING\",\n SALES_AND_CRM = \"SALES_AND_CRM\",\n}\n\nexport const MAX_KEY_LENGTH_FOR_CORWDIN = 512;\n","// Vendored from activepieces/activepieces@0.91.0 packages/core/piece-types/src/lib/execution.ts. MIT; see ../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\nimport * as z from \"zod/mini\";\n\nexport enum ExecutionType {\n BEGIN = \"BEGIN\",\n RESUME = \"RESUME\",\n}\n\nexport enum PauseType {\n DELAY = \"DELAY\",\n WEBHOOK = \"WEBHOOK\",\n}\n\nexport enum StreamStepProgress {\n WEBSOCKET = \"WEBSOCKET\",\n NONE = \"NONE\",\n}\n\nexport const RespondResponse = z.object({\n status: z.optional(z.number()),\n body: z.optional(z.unknown()),\n headers: z.optional(z.record(z.string(), z.string())),\n});\nexport type RespondResponse = z.infer<typeof RespondResponse>;\n\nexport const DelayPauseMetadata = z.object({\n type: z.literal(PauseType.DELAY),\n resumeDateTime: z.string(),\n requestIdToReply: z.optional(z.string()),\n handlerId: z.optional(z.string()),\n streamStepProgress: z.optional(z.enum(StreamStepProgress)),\n});\nexport type DelayPauseMetadata = z.infer<typeof DelayPauseMetadata>;\n\nexport const WebhookPauseMetadata = z.object({\n type: z.literal(PauseType.WEBHOOK),\n requestId: z.string(),\n requestIdToReply: z.optional(z.string()),\n response: RespondResponse,\n handlerId: z.optional(z.string()),\n streamStepProgress: z.optional(z.enum(StreamStepProgress)),\n});\nexport type WebhookPauseMetadata = z.infer<typeof WebhookPauseMetadata>;\n\nexport const PauseMetadata = z.union([\n DelayPauseMetadata,\n WebhookPauseMetadata,\n]);\nexport type PauseMetadata = z.infer<typeof PauseMetadata>;\n","// Vendored from activepieces/activepieces@0.91.0 packages/core/utils/src/lib/id-generator.ts. MIT; see ../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\nimport { customAlphabet } from \"nanoid\";\nimport * as z from \"zod/mini\";\n\nconst ALPHABET =\n \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\nconst ID_LENGTH = 21;\n\nexport const ApId = z\n .string()\n .check(z.regex(new RegExp(`^[0-9a-zA-Z]{${ID_LENGTH}}$`)));\n\nexport type ApId = z.infer<typeof ApId>;\n\nexport const apId = customAlphabet(ALPHABET, ID_LENGTH);\n\nexport const secureApId = (length: number) =>\n customAlphabet(ALPHABET, length)();\n\nexport type ProjectId = ApId;\nexport type FlowRunId = ApId;\nexport type FlowId = ApId;\nexport type FlowVersionId = ApId;\nexport type PlatformId = ApId;\nexport type UserId = ApId;\n","// Vendored from activepieces/activepieces@0.91.0 packages/core/utils/src/lib/base-model.ts. MIT; see ../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\nimport * as z from \"zod/mini\";\n\nexport type BaseModel<T> = {\n id: T;\n created: string;\n updated: string;\n};\n\nexport const DateOrString = z.pipe(\n z.transform((val) => (val instanceof Date ? val.toISOString() : val)),\n z.string(),\n);\n\nexport const BaseModelSchema = {\n id: z.string(),\n created: DateOrString,\n updated: DateOrString,\n};\n\n// Used to generate valid nullable in OpenAPI Schema\nexport const Nullable = <T extends z.ZodMiniType>(schema: T) =>\n z.optional(z.nullable(schema));\n\nexport function NullableEnum<T extends Record<string, string | number>>(\n enumObj: T,\n) {\n return z.optional(z.nullable(z.enum(enumObj)));\n}\n\nexport const OptionalBooleanFromQuery = z.pipe(\n z.transform((val) =>\n val === \"true\" || val === true\n ? true\n : val === \"false\" || val === false\n ? false\n : undefined,\n ),\n z.optional(z.boolean()),\n);\n\nexport const OptionalArrayFromQuery = <T extends z.ZodMiniType>(schema: T) =>\n z.pipe(\n z.transform((val) =>\n Array.isArray(val) ? val : val !== undefined ? [val] : undefined,\n ),\n z.optional(z.array(schema)),\n );\n","// Vendored from activepieces/activepieces@0.91.0 packages/core/utils/src/lib/seek-page.ts. MIT; see ../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\nimport * as z from \"zod/mini\";\nimport { Nullable } from \"./base-model.js\";\n\nexport type Cursor = string | null;\n\nexport type SeekPage<T> = {\n next: Cursor;\n previous: Cursor;\n data: T[];\n};\n\nexport const SeekPage = (t: z.ZodMiniType): z.ZodMiniType =>\n z.object({\n data: z.array(t),\n next: Nullable(z.string()),\n previous: Nullable(z.string()),\n });\n","// Vendored from activepieces/activepieces@0.91.0 packages/core/utils/src/lib/locale.ts. MIT; see ../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\nexport enum LocalesEnum {\n DUTCH = \"nl\",\n ENGLISH = \"en\",\n GERMAN = \"de\",\n FRENCH = \"fr\",\n SPANISH = \"es\",\n JAPANESE = \"ja\",\n CHINESE_SIMPLIFIED = \"zh\",\n PORTUGUESE = \"pt\",\n ARABIC = \"ar\",\n CHINESE_TRADITIONAL = \"zh-TW\",\n}\n","// Vendored from activepieces/activepieces@0.91.0 packages/core/utils/src/lib/permission.ts. MIT; see ../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\n// Check access-control-list.ts for the list of permissions, you can add new permissions there, restart the main server to apply the changes\nexport enum Permission {\n READ_APP_CONNECTION = \"READ_APP_CONNECTION\",\n WRITE_APP_CONNECTION = \"WRITE_APP_CONNECTION\",\n READ_FLOW = \"READ_FLOW\",\n WRITE_FLOW = \"WRITE_FLOW\",\n UPDATE_FLOW_STATUS = \"UPDATE_FLOW_STATUS\",\n WRITE_INVITATION = \"WRITE_INVITATION\",\n READ_INVITATION = \"READ_INVITATION\",\n READ_PROJECT_MEMBER = \"READ_PROJECT_MEMBER\",\n WRITE_PROJECT_MEMBER = \"WRITE_PROJECT_MEMBER\",\n WRITE_PROJECT_RELEASE = \"WRITE_PROJECT_RELEASE\",\n READ_PROJECT_RELEASE = \"READ_PROJECT_RELEASE\",\n READ_RUN = \"READ_RUN\",\n WRITE_RUN = \"WRITE_RUN\",\n READ_FOLDER = \"READ_FOLDER\",\n WRITE_FOLDER = \"WRITE_FOLDER\",\n WRITE_ALERT = \"WRITE_ALERT\",\n READ_ALERT = \"READ_ALERT\",\n READ_MCP = \"READ_MCP\",\n WRITE_MCP = \"WRITE_MCP\",\n WRITE_PROJECT = \"WRITE_PROJECT\",\n READ_PROJECT = \"READ_PROJECT\",\n READ_TABLE = \"READ_TABLE\",\n WRITE_TABLE = \"WRITE_TABLE\",\n READ_KNOWLEDGE_BASE = \"READ_KNOWLEDGE_BASE\",\n WRITE_KNOWLEDGE_BASE = \"WRITE_KNOWLEDGE_BASE\",\n READ_VARIABLE = \"READ_VARIABLE\",\n WRITE_VARIABLE = \"WRITE_VARIABLE\",\n READ_AGENT = \"READ_AGENT\",\n WRITE_AGENT = \"WRITE_AGENT\",\n PUBLISH_SENSITIVE_FLOW_ACCESS = \"PUBLISH_SENSITIVE_FLOW_ACCESS\",\n}\n\nexport enum RoleType {\n DEFAULT = \"DEFAULT\",\n CUSTOM = \"CUSTOM\",\n}\n\nexport enum PlatformUsageMetric {\n CREDITS = \"credits\",\n ACTIVE_FLOWS = \"active-flows\",\n USERS = \"users\",\n}\n\nexport const SAFE_STRING_PATTERN = \"^[^./]+$\";\nexport const STEP_NAME_REGEX = /^[a-zA-Z_][a-zA-Z0-9_]*$/;\n\nexport enum AIProviderName {\n OPENAI = \"openai\",\n OPENROUTER = \"openrouter\",\n ANTHROPIC = \"anthropic\",\n AZURE = \"azure\",\n GOOGLE = \"google\",\n ACTIVEPIECES = \"activepieces\",\n CLOUDFLARE_GATEWAY = \"cloudflare-gateway\",\n CUSTOM = \"custom\",\n BEDROCK = \"bedrock\",\n VERTEX = \"vertex\",\n MISTRAL = \"mistral\",\n XAI = \"xai\",\n DEEPSEEK = \"deepseek\",\n ZAI = \"zai\",\n QWEN = \"qwen\",\n MINIMAX = \"minimax\",\n MOONSHOT = \"moonshot\",\n}\n","// Vendored from activepieces/activepieces@0.91.0 packages/core/piece-types/src/lib/agents.ts. MIT; see ../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\nimport type { AIProviderName } from \"../../core-utils/index.js\";\nimport { Nullable } from \"../../core-utils/index.js\";\nimport * as z from \"zod/mini\";\n\nexport const TASK_COMPLETION_TOOL_NAME = \"updateTaskStatus\";\n\nexport enum AgentToolType {\n PIECE = \"PIECE\",\n FLOW = \"FLOW\",\n MCP = \"MCP\",\n KNOWLEDGE_BASE = \"KNOWLEDGE_BASE\",\n}\n\nexport enum FieldControlMode {\n AGENT_DECIDE = \"agent-decide\",\n CHOOSE_YOURSELF = \"choose-yourself\",\n LEAVE_EMPTY = \"leave-empty\",\n}\n\nexport enum KnowledgeBaseSourceType {\n FILE = \"FILE\",\n TABLE = \"TABLE\",\n}\n\nexport enum McpProtocol {\n SSE = \"sse\",\n STREAMABLE_HTTP = \"streamable-http\",\n SIMPLE_HTTP = \"http\",\n}\n\nexport enum McpAuthType {\n NONE = \"none\",\n ACCESS_TOKEN = \"access_token\",\n API_KEY = \"api_key\",\n HEADERS = \"headers\",\n}\n\nexport enum AgentOutputFieldType {\n TEXT = \"text\",\n NUMBER = \"number\",\n BOOLEAN = \"boolean\",\n}\n\nexport enum AgentTaskStatus {\n COMPLETED = \"COMPLETED\",\n FAILED = \"FAILED\",\n IN_PROGRESS = \"IN_PROGRESS\",\n}\n\nexport enum ContentBlockType {\n MARKDOWN = \"MARKDOWN\",\n TOOL_CALL = \"TOOL_CALL\",\n}\n\nexport enum ToolCallStatus {\n IN_PROGRESS = \"in-progress\",\n COMPLETED = \"completed\",\n}\n\nexport enum ExecutionToolStatus {\n SUCCESS = \"SUCCESS\",\n FAILED = \"FAILED\",\n}\n\nexport enum ToolCallType {\n PIECE = \"PIECE\",\n FLOW = \"FLOW\",\n MCP = \"MCP\",\n KNOWLEDGE_BASE = \"KNOWLEDGE_BASE\",\n UNKNOWN = \"UNKNOWN\",\n}\n\nexport enum AgentPieceProps {\n AGENT_ID = \"agentId\",\n AGENT_TOOLS = \"agentTools\",\n STRUCTURED_OUTPUT = \"structuredOutput\",\n PROMPT = \"prompt\",\n MAX_STEPS = \"maxSteps\",\n AI_PROVIDER_MODEL = \"aiProviderModel\",\n WEB_SEARCH = \"webSearch\",\n WEB_SEARCH_OPTIONS = \"webSearchOptions\",\n}\n\nexport const PredefinedInputField = z.object({\n mode: z.enum(FieldControlMode),\n value: z.unknown(),\n});\nexport type PredefinedInputField = z.infer<typeof PredefinedInputField>;\n\nexport const PredefinedInputsStructure = z.object({\n auth: z.optional(z.string()),\n fields: z.record(z.string(), PredefinedInputField),\n});\nexport type PredefinedInputsStructure = z.infer<\n typeof PredefinedInputsStructure\n>;\n\nexport const AgentPieceToolMetadata = z.object({\n pieceName: z.string(),\n pieceVersion: z.string(),\n actionName: z.string(),\n predefinedInput: z.optional(PredefinedInputsStructure),\n});\nexport type AgentPieceToolMetadata = z.infer<typeof AgentPieceToolMetadata>;\n\nexport const AgentPieceTool = z.object({\n type: z.literal(AgentToolType.PIECE),\n toolName: z.string().check(z.minLength(1)),\n pieceMetadata: AgentPieceToolMetadata,\n});\nexport type AgentPieceTool = z.infer<typeof AgentPieceTool>;\n\nexport const McpAuthNone = z.object({\n type: z.literal(McpAuthType.NONE),\n});\n\nexport const McpAuthAccessToken = z.object({\n type: z.literal(McpAuthType.ACCESS_TOKEN),\n accessToken: z.string(),\n});\n\nexport const McpAuthApiKey = z.object({\n type: z.literal(McpAuthType.API_KEY),\n apiKey: z.string(),\n apiKeyHeader: z.string(),\n});\n\nexport const McpAuthHeaders = z.object({\n type: z.literal(McpAuthType.HEADERS),\n headers: z.record(z.string(), z.string()),\n});\n\nexport const McpAuthConfig = z.discriminatedUnion(\"type\", [\n McpAuthNone,\n McpAuthAccessToken,\n McpAuthApiKey,\n McpAuthHeaders,\n]);\nexport type McpAuthConfig = z.infer<typeof McpAuthConfig>;\n\nexport const AgentFlowTool = z.object({\n type: z.literal(AgentToolType.FLOW),\n toolName: z.string().check(z.minLength(1)),\n externalFlowId: z.string(),\n flowDisplayName: z.optional(z.string()),\n});\nexport type AgentFlowTool = z.infer<typeof AgentFlowTool>;\n\nexport const AgentMcpTool = z.object({\n type: z.literal(AgentToolType.MCP),\n toolName: z.string().check(z.minLength(1)),\n serverUrl: z.url(),\n protocol: z.enum(McpProtocol),\n auth: McpAuthConfig,\n});\nexport type AgentMcpTool = z.infer<typeof AgentMcpTool>;\n\nexport const AgentKnowledgeBaseTool = z.object({\n type: z.literal(AgentToolType.KNOWLEDGE_BASE),\n toolName: z.string().check(z.minLength(1)),\n sourceType: z.enum(KnowledgeBaseSourceType),\n sourceId: z.string(),\n sourceName: z.string(),\n});\nexport type AgentKnowledgeBaseTool = z.infer<typeof AgentKnowledgeBaseTool>;\n\nexport const AgentTool = z.discriminatedUnion(\"type\", [\n AgentPieceTool,\n AgentFlowTool,\n AgentMcpTool,\n AgentKnowledgeBaseTool,\n]);\nexport type AgentTool = z.infer<typeof AgentTool>;\n\nexport const AgentOutputField = z.object({\n displayName: z.string(),\n description: z.optional(z.string()),\n type: z.enum(AgentOutputFieldType),\n});\nexport type AgentOutputField = z.infer<typeof AgentOutputField>;\n\nexport const MarkdownContentBlock = z.object({\n type: z.literal(ContentBlockType.MARKDOWN),\n markdown: z.string(),\n});\nexport type MarkdownContentBlock = z.infer<typeof MarkdownContentBlock>;\n\nconst toolCallBaseShape = {\n type: z.literal(ContentBlockType.TOOL_CALL),\n input: Nullable(z.record(z.string(), z.unknown())),\n output: z.optional(z.unknown()),\n toolName: z.string(),\n status: z.enum(ToolCallStatus),\n toolCallId: z.string(),\n startTime: z.string(),\n endTime: z.optional(z.string()),\n};\n\nconst toolCallBaseSchema = z.object(toolCallBaseShape);\n\nexport const ToolCallContentBlock = z.discriminatedUnion(\"toolCallType\", [\n z.object({\n ...toolCallBaseShape,\n toolCallType: z.literal(ToolCallType.PIECE),\n pieceName: z.string(),\n pieceVersion: z.string(),\n actionName: z.string(),\n }),\n z.object({\n ...toolCallBaseShape,\n toolCallType: z.literal(ToolCallType.FLOW),\n displayName: z.string(),\n externalFlowId: z.string(),\n }),\n z.object({\n ...toolCallBaseShape,\n toolCallType: z.literal(ToolCallType.MCP),\n displayName: z.string(),\n serverUrl: z.string(),\n }),\n z.object({\n ...toolCallBaseShape,\n toolCallType: z.literal(ToolCallType.KNOWLEDGE_BASE),\n displayName: z.string(),\n sourceType: z.string(),\n }),\n z.object({\n ...toolCallBaseShape,\n toolCallType: z.literal(ToolCallType.UNKNOWN),\n displayName: z.string(),\n }),\n]);\nexport type ToolCallContentBlock = z.infer<typeof ToolCallContentBlock>;\n\nexport const AgentStepBlock = z.union([\n MarkdownContentBlock,\n ToolCallContentBlock,\n]);\nexport type AgentStepBlock = z.infer<typeof AgentStepBlock>;\n\nexport function buildAuthHeaders(\n authConfig: McpAuthConfig,\n): Record<string, string> {\n let headers: Record<string, string> = {};\n switch (authConfig.type) {\n case McpAuthType.NONE:\n break;\n case McpAuthType.HEADERS: {\n headers = authConfig.headers;\n break;\n }\n case McpAuthType.ACCESS_TOKEN: {\n headers[\"Authorization\"] = `Bearer ${authConfig.accessToken}`;\n break;\n }\n case McpAuthType.API_KEY: {\n const headerName = authConfig.apiKeyHeader;\n headers[headerName] = authConfig.apiKey;\n break;\n }\n }\n return headers;\n}\n\nfunction shortHash(str: string): string {\n let h = 5381;\n for (let i = 0; i < str.length; i++) {\n h = (Math.imul(h, 33) ^ str.charCodeAt(i)) >>> 0;\n }\n return h.toString(36).padStart(6, \"0\").slice(-6);\n}\n\nfunction sanitizeToolName(name: string): string {\n return name\n .toLowerCase()\n .replace(/[^a-z0-9_-]/g, \"_\")\n .replace(/_+/g, \"_\")\n .replace(/^_+|_+$/g, \"\");\n}\n\nfunction createToolName(name: string): string {\n const sanitized = sanitizeToolName(name);\n const prefix = sanitized.slice(0, MAX_PREFIX_LENGTH);\n const hash = shortHash(sanitized.length > 0 ? sanitized : name);\n return `${prefix}_${hash}_mcp`;\n}\n\nfunction toValidToolName(name: string): string {\n if (PROVIDER_TOOL_NAME_PATTERN.test(name)) {\n return name;\n }\n const generated = createToolName(name);\n return PROVIDER_TOOL_NAME_PATTERN.test(generated)\n ? generated\n : createToolName(`tool_${name}`);\n}\n\nfunction suggestToolName(sourceName: string): string {\n return toValidToolName(sanitizeToolName(sourceName));\n}\n\nfunction isProviderSafeIdentifier(name: string): boolean {\n return PROVIDER_TOOL_NAME_PATTERN.test(name);\n}\n\nfunction toProviderSafeIdentifier({\n name,\n fallback,\n}: {\n name: string;\n fallback: string;\n}): string {\n if (isProviderSafeIdentifier(name)) {\n return name;\n }\n const sanitized = sanitizeToolName(name).slice(0, MAX_IDENTIFIER_LENGTH);\n if (sanitized.length === 0) {\n return fallback;\n }\n const seeded = /^[a-z_]/.test(sanitized) ? sanitized : `_${sanitized}`;\n return isProviderSafeIdentifier(seeded) ? seeded : fallback;\n}\n\nfunction createPieceToolName(pieceName: string, actionName: string): string {\n const PIECE_NAME_PREFIX = \"piece-\";\n const idx = pieceName.indexOf(PIECE_NAME_PREFIX);\n const shortPieceName =\n idx >= 0 ? pieceName.substring(idx + PIECE_NAME_PREFIX.length) : pieceName;\n return createToolName(`${shortPieceName}-${actionName}`);\n}\n\nconst MAX_PREFIX_LENGTH = 53;\nconst MAX_IDENTIFIER_LENGTH = 64;\nconst PROVIDER_TOOL_NAME_PATTERN = /^[a-zA-Z_][a-zA-Z0-9_-]{0,63}$/;\n\nexport const mcpToolNameUtils = {\n createToolName,\n createPieceToolName,\n toValidToolName,\n suggestToolName,\n isProviderSafeIdentifier,\n toProviderSafeIdentifier,\n};\n\nexport type ToolCallBase = z.infer<typeof toolCallBaseSchema>;\n\nexport type AgentProviderModel = {\n provider: AIProviderName;\n model: string;\n configId?: string;\n};\n\nexport type AgentResult = {\n prompt: string;\n steps: AgentStepBlock[];\n status: AgentTaskStatus;\n structuredOutput?: unknown;\n failure?: string;\n};\n\nexport const AGENT_STEP_TIMEOUT_MS = 3 * 60 * 60 * 1_000;\n\nexport const AGENT_STEP_TEST_TIMEOUT_MS = 15 * 60 * 1_000;\n","// Vendored from activepieces/activepieces@0.91.0 packages/core/piece-types/src/lib/ai-providers.ts. MIT; see ../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\nimport { AIProviderName, isNil, unique } from \"../../core-utils/index.js\";\nimport * as z from \"zod/mini\";\n\nexport enum AIProviderModelType {\n IMAGE = \"image\",\n TEXT = \"text\",\n}\n\nexport const BaseAIProviderAuthConfig = z.object({\n apiKey: z.string(),\n});\nexport type BaseAIProviderAuthConfig = z.infer<typeof BaseAIProviderAuthConfig>;\n\nconst AnthropicProviderAuthConfig = BaseAIProviderAuthConfig;\nconst ActivePiecesProviderAuthConfig = z.object({\n apiKey: z.string(),\n apiKeyHash: z.string(),\n});\nconst OpenAICompatibleProviderAuthConfig = BaseAIProviderAuthConfig;\nconst CloudflareGatewayProviderAuthConfig = BaseAIProviderAuthConfig;\nconst AzureProviderAuthConfig = BaseAIProviderAuthConfig;\nconst GoogleProviderAuthConfig = BaseAIProviderAuthConfig;\nconst OpenAIProviderAuthConfig = BaseAIProviderAuthConfig;\nconst OpenRouterProviderAuthConfig = BaseAIProviderAuthConfig;\nconst MistralProviderAuthConfig = BaseAIProviderAuthConfig;\n\nexport const VertexProviderAuthConfig = z.object({\n serviceAccountJson: z.string().check(z.minLength(1)),\n});\nexport type VertexProviderAuthConfig = z.infer<typeof VertexProviderAuthConfig>;\n\nexport const BedrockProviderAuthConfig = z.object({\n accessKeyId: z.string().check(z.minLength(1)),\n secretAccessKey: z.string().check(z.minLength(1)),\n});\nexport type BedrockProviderAuthConfig = z.infer<\n typeof BedrockProviderAuthConfig\n>;\n\nconst AnthropicProviderConfig = z.object({});\nconst ActivePiecesProviderConfig = z.object({});\nconst GoogleProviderConfig = z.object({});\nconst OpenAIProviderConfig = z.object({});\nconst OpenRouterProviderConfig = z.object({});\nconst MistralProviderConfig = z.object({});\n\nexport const ProviderModelConfig = z.object({\n modelId: z.string(),\n modelName: z.string(),\n modelType: z.enum(AIProviderModelType),\n});\nexport type ProviderModelConfig = z.infer<typeof ProviderModelConfig>;\n\nexport const OpenAICompatibleProviderConfig = z.object({\n apiKeyHeader: z.string(),\n baseUrl: z.string(),\n models: z.array(ProviderModelConfig),\n defaultHeaders: z.optional(z.record(z.string(), z.string())),\n apiStyle: z.optional(z.enum([\"chat\", \"responses\"])),\n});\nexport type OpenAICompatibleProviderConfig = z.infer<\n typeof OpenAICompatibleProviderConfig\n>;\n\nexport const CloudflareGatewayProviderConfig = z.object({\n accountId: z.string(),\n gatewayId: z.string(),\n models: z.array(ProviderModelConfig),\n vertexProject: z.optional(z.string()),\n vertexRegion: z.optional(z.string()),\n});\nexport type CloudflareGatewayProviderConfig = z.infer<\n typeof CloudflareGatewayProviderConfig\n>;\n\nexport const AzureProviderConfig = z.object({\n resourceName: z.string(),\n apiVersion: z.pipe(\n z.transform((v) =>\n typeof v === \"string\" && v.trim().length === 0 ? undefined : v,\n ),\n z.optional(z.string()),\n ),\n});\nexport type AzureProviderConfig = z.infer<typeof AzureProviderConfig>;\n\nexport const BedrockProviderConfig = z.object({\n region: z.string().check(z.minLength(1)),\n});\nexport type BedrockProviderConfig = z.infer<typeof BedrockProviderConfig>;\n\nexport const VertexProviderConfig = z.object({\n project: z.string().check(z.regex(/^[a-z0-9][a-z0-9-]{0,62}$/)),\n region: z.string().check(z.regex(/^[a-z0-9][a-z0-9-]{0,62}$/)),\n models: z.array(ProviderModelConfig),\n});\nexport type VertexProviderConfig = z.infer<typeof VertexProviderConfig>;\n\nexport const OpenAiCompatibleVendorConfig = z.object({});\nexport type OpenAiCompatibleVendorConfig = z.infer<\n typeof OpenAiCompatibleVendorConfig\n>;\n\nexport const AIProviderAuthConfig = z.union([\n AnthropicProviderAuthConfig,\n AzureProviderAuthConfig,\n GoogleProviderAuthConfig,\n OpenAIProviderAuthConfig,\n OpenRouterProviderAuthConfig,\n CloudflareGatewayProviderAuthConfig,\n OpenAICompatibleProviderAuthConfig,\n ActivePiecesProviderAuthConfig,\n BedrockProviderAuthConfig,\n VertexProviderAuthConfig,\n MistralProviderAuthConfig,\n]);\nexport type AIProviderAuthConfig = z.infer<typeof AIProviderAuthConfig>;\n\n// Order matters, put schemas with required fields first, empty ones last. This is to avoid empty objects matching any object.\nexport const AIProviderConfig = z.union([\n OpenAICompatibleProviderConfig,\n CloudflareGatewayProviderConfig,\n AzureProviderConfig,\n VertexProviderConfig,\n BedrockProviderConfig,\n AnthropicProviderConfig,\n GoogleProviderConfig,\n OpenAIProviderConfig,\n OpenRouterProviderConfig,\n ActivePiecesProviderConfig,\n MistralProviderConfig,\n OpenAiCompatibleVendorConfig,\n]);\nexport type AIProviderConfig = z.infer<typeof AIProviderConfig>;\n\nexport const AIProviderModel = z.object({\n id: z.string(),\n name: z.string(),\n type: z.enum(AIProviderModelType),\n});\nexport type AIProviderModel = z.infer<typeof AIProviderModel>;\n\nexport const AIProviderWithoutSensitiveData = z.object({\n id: z.string(),\n name: z.string(),\n provider: z.enum(AIProviderName),\n config: AIProviderConfig,\n enabledForChat: z.boolean(),\n});\nexport type AIProviderWithoutSensitiveData = z.infer<\n typeof AIProviderWithoutSensitiveData\n>;\n\nexport const ProjectAIProvider = z.object({\n provider: z.enum(AIProviderName),\n name: z.string(),\n enabledForChat: z.boolean(),\n keys: z.array(\n z.object({\n id: z.string(),\n name: z.string(),\n }),\n ),\n});\nexport type ProjectAIProvider = z.infer<typeof ProjectAIProvider>;\n\nexport const GetProviderConfigResponse = z.object({\n provider: z.enum(AIProviderName),\n configId: z.string(),\n config: AIProviderConfig,\n auth: AIProviderAuthConfig,\n platformId: z.string(),\n});\nexport type GetProviderConfigResponse = z.infer<\n typeof GetProviderConfigResponse\n>;\n\nexport function splitCloudflareGatewayModelId(modelId: string):\n | {\n provider: \"google-vertex-ai\";\n publisher: string;\n model: string;\n }\n | {\n provider: string;\n model: string;\n publisher: undefined;\n }\n | {\n provider: undefined;\n model: string;\n publisher: undefined;\n } {\n const slashIndex = modelId.indexOf(\"/\");\n if (slashIndex === -1) {\n return {\n provider: undefined,\n model: modelId,\n publisher: undefined,\n };\n }\n const provider = modelId.substring(0, slashIndex).trim().toLowerCase();\n const rest = modelId.substring(slashIndex + 1);\n\n if (provider === \"google-vertex-ai\") {\n const secondSlashIndex = rest.indexOf(\"/\");\n if (secondSlashIndex === -1) {\n return {\n provider: undefined,\n model: modelId,\n publisher: undefined,\n };\n }\n return {\n provider: \"google-vertex-ai\",\n publisher: rest.substring(0, secondSlashIndex),\n model: rest.substring(secondSlashIndex + 1),\n };\n }\n\n return {\n provider,\n model: rest,\n publisher: undefined,\n };\n}\n\nexport function getEffectiveProviderAndModel({\n provider,\n model,\n}: {\n provider: string | undefined;\n model: string | undefined;\n}): { provider: string | undefined; model: string | undefined } {\n if (provider !== AIProviderName.CLOUDFLARE_GATEWAY || !model) {\n return { provider, model };\n }\n const split = splitCloudflareGatewayModelId(model);\n const gatewaySubmodelPrefix = (split.provider ?? \"\").trim().toLowerCase();\n const mapped = CF_GATEWAY_SUBMODEL_TO_PROVIDER[gatewaySubmodelPrefix];\n if (!mapped) {\n return { provider, model };\n }\n return { provider: mapped, model: split.model };\n}\n\nconst CF_GATEWAY_SUBMODEL_TO_PROVIDER: Record<string, AIProviderName> = {\n openai: AIProviderName.OPENAI,\n anthropic: AIProviderName.ANTHROPIC,\n \"google-ai-studio\": AIProviderName.GOOGLE,\n \"google-vertex-ai\": AIProviderName.GOOGLE,\n};\n\nconst OPENAI_CHAT_MODELS = [\n \"gpt-5.5\",\n \"gpt-5.4-mini\",\n \"gpt-5.4-nano\",\n \"gpt-4.1\",\n \"gpt-4.1-mini\",\n] as const;\nconst ANTHROPIC_CHAT_MODELS = [\n \"claude-sonnet-4-6\",\n \"claude-opus-4-7\",\n \"claude-haiku-4-5\",\n] as const;\nconst ANTHROPIC_OPENROUTER_CHAT_MODELS = [\n \"claude-sonnet-4.6\",\n \"claude-opus-4.7\",\n \"claude-opus-4.8\",\n \"claude-haiku-4.5\",\n] as const;\nconst GOOGLE_CHAT_MODELS = [\n \"gemini-2.5-pro\",\n \"gemini-2.5-flash\",\n \"gemini-3.7-flash\",\n \"gemini-3.1-pro-preview\",\n \"gemini-3-flash-preview\",\n] as const;\nconst X_AI_OPENROUTER_CHAT_MODELS = [\"grok-4.20\"] as const;\n\nconst REASONING_OPTIONAL_CHAT_MODELS: readonly string[] =\n ANTHROPIC_OPENROUTER_CHAT_MODELS.map(\n (model) => `${AIProviderName.ANTHROPIC}/${model}`,\n );\n\nexport const ALLOWED_CHAT_MODELS_BY_PROVIDER: Partial<\n Record<AIProviderName, readonly string[]>\n> = {\n [AIProviderName.OPENAI]: OPENAI_CHAT_MODELS,\n [AIProviderName.ANTHROPIC]: ANTHROPIC_CHAT_MODELS,\n [AIProviderName.GOOGLE]: GOOGLE_CHAT_MODELS,\n [AIProviderName.VERTEX]: GOOGLE_CHAT_MODELS,\n [AIProviderName.ACTIVEPIECES]: [\n ...ANTHROPIC_OPENROUTER_CHAT_MODELS.map(\n (m) => `${AIProviderName.ANTHROPIC}/${m}`,\n ),\n ...OPENAI_CHAT_MODELS.map((m) => `${AIProviderName.OPENAI}/${m}`),\n ...GOOGLE_CHAT_MODELS.map((m) => `${AIProviderName.GOOGLE}/${m}`),\n ...X_AI_OPENROUTER_CHAT_MODELS.map((m) => `x-ai/${m}`),\n ],\n};\n\nconst CHAT_MODEL_LABELS: Record<string, string> = {\n \"gpt-5.5\": \"GPT-5.5\",\n \"gpt-5.4-mini\": \"GPT-5.4 mini\",\n \"gpt-5.4-nano\": \"GPT-5.4 nano\",\n \"gpt-4.1\": \"GPT-4.1\",\n \"gpt-4.1-mini\": \"GPT-4.1 mini\",\n \"claude-sonnet-4-6\": \"Claude Sonnet 4.6\",\n \"claude-opus-4-7\": \"Claude Opus 4.7\",\n \"claude-haiku-4-5\": \"Claude Haiku 4.5\",\n \"gemini-2.5-pro\": \"Gemini 2.5 Pro\",\n \"gemini-2.5-flash\": \"Gemini 2.5 Flash\",\n \"gemini-3.7-flash\": \"Gemini 3.7 Flash\",\n \"gemini-3.1-pro-preview\": \"Gemini 3.1 Pro Preview\",\n \"gemini-3-flash-preview\": \"Gemini 3 Flash Preview\",\n};\n\nfunction getCuratedChatModels({\n provider,\n}: {\n provider: AIProviderName;\n}): { id: string; label: string }[] | undefined {\n const curatedIds =\n provider === AIProviderName.ACTIVEPIECES\n ? undefined\n : ALLOWED_CHAT_MODELS_BY_PROVIDER[provider];\n if (isNil(curatedIds) || curatedIds.length === 0) {\n return undefined;\n }\n return curatedIds.map((id) => ({ id, label: CHAT_MODEL_LABELS[id] ?? id }));\n}\n\nfunction canDisableReasoning({ modelId }: { modelId: string }): boolean {\n return REASONING_OPTIONAL_CHAT_MODELS.includes(modelId);\n}\n\nfunction managedChatModelIds(): string[] {\n return unique([\n ...(ALLOWED_CHAT_MODELS_BY_PROVIDER[AIProviderName.ACTIVEPIECES] ?? []),\n ...ACTIVEPIECES_CHAT_TIERS.map((tier) => tier.modelId),\n ]);\n}\n\nfunction isManagedChatModelId({ modelId }: { modelId: string }): boolean {\n return managedChatModelIds().includes(modelId);\n}\n\nfunction curatedChatModelIds(): string[] {\n return unique([\n ...ACTIVEPIECES_CHAT_TIERS.flatMap((tier) => [tier.id, tier.modelId]),\n ...Object.values(ALLOWED_CHAT_MODELS_BY_PROVIDER).flatMap(\n (curatedIds) => curatedIds ?? [],\n ),\n ]);\n}\n\nfunction isCuratedChatModelId({ modelId }: { modelId: string }): boolean {\n return curatedChatModelIds().includes(modelId);\n}\n\nconst DEFAULT_MAX_CONTEXT_TOKENS = 128_000;\n\nconst PROVIDER_MAX_CONTEXT_TOKENS: Partial<Record<AIProviderName, number>> = {\n [AIProviderName.OPENAI]: 128_000,\n [AIProviderName.ANTHROPIC]: 200_000,\n [AIProviderName.GOOGLE]: 1_048_576,\n [AIProviderName.BEDROCK]: 200_000,\n [AIProviderName.VERTEX]: 1_048_576,\n [AIProviderName.AZURE]: 128_000,\n [AIProviderName.OPENROUTER]: 128_000,\n [AIProviderName.ACTIVEPIECES]: 200_000,\n [AIProviderName.MISTRAL]: 128_000,\n};\n\nfunction getMaxContextTokens({\n provider,\n}: {\n provider: AIProviderName | undefined;\n}): number {\n if (!provider) return DEFAULT_MAX_CONTEXT_TOKENS;\n return PROVIDER_MAX_CONTEXT_TOKENS[provider] ?? DEFAULT_MAX_CONTEXT_TOKENS;\n}\n\nconst DEFAULT_EMBEDDING_MODELS: Partial<Record<AIProviderName, string>> = {\n [AIProviderName.OPENAI]: \"text-embedding-3-small\",\n [AIProviderName.GOOGLE]: \"text-embedding-004\",\n [AIProviderName.AZURE]: \"text-embedding-3-small\",\n [AIProviderName.ACTIVEPIECES]: \"text-embedding-3-small\",\n [AIProviderName.OPENROUTER]: \"openai/text-embedding-3-small\",\n};\n\nconst WEB_SEARCH_MODE_BY_PROVIDER: Partial<\n Record<AIProviderName, AIWebSearchMode>\n> = {\n [AIProviderName.ANTHROPIC]: \"native\",\n [AIProviderName.GOOGLE]: \"native\",\n [AIProviderName.OPENROUTER]: \"plugin\",\n [AIProviderName.ACTIVEPIECES]: \"plugin\",\n};\n\nconst NO_IMAGE_GENERATION_PROVIDERS = new Set<AIProviderName>([\n AIProviderName.ANTHROPIC,\n AIProviderName.MISTRAL,\n AIProviderName.XAI,\n AIProviderName.DEEPSEEK,\n AIProviderName.ZAI,\n AIProviderName.QWEN,\n AIProviderName.MINIMAX,\n AIProviderName.MOONSHOT,\n]);\n\nexport const OPENAI_COMPATIBLE_VENDOR_BASE_URLS: Record<\n OpenAiCompatibleVendor,\n string\n> = {\n [AIProviderName.XAI]: \"https://api.x.ai/v1\",\n [AIProviderName.DEEPSEEK]: \"https://api.deepseek.com/v1\",\n [AIProviderName.ZAI]: \"https://api.z.ai/api/paas/v4\",\n [AIProviderName.QWEN]:\n \"https://dashscope-intl.aliyuncs.com/compatible-mode/v1\",\n [AIProviderName.MINIMAX]: \"https://api.minimax.io/v1\",\n [AIProviderName.MOONSHOT]: \"https://api.moonshot.ai/v1\",\n};\n\nfunction buildProviderCapabilities(\n provider: AIProviderName,\n): AIProviderCapabilities {\n return {\n chatModels: ALLOWED_CHAT_MODELS_BY_PROVIDER[provider],\n maxContextTokens: getMaxContextTokens({ provider }),\n defaultEmbeddingModel: DEFAULT_EMBEDDING_MODELS[provider],\n supportsEmbedding: DEFAULT_EMBEDDING_MODELS[provider] !== undefined,\n supportsImageGeneration: !NO_IMAGE_GENERATION_PROVIDERS.has(provider),\n webSearch: WEB_SEARCH_MODE_BY_PROVIDER[provider],\n };\n}\n\nexport const ACTIVEPIECES_CHAT_TIERS = [\n {\n id: \"fast\",\n label: \"Fast\",\n modelId: \"anthropic/claude-haiku-4.5\",\n nativeModelId: \"claude-haiku-4-5\",\n thinkingBudget: 5_000,\n creditWeight: 2,\n },\n {\n id: \"smart\",\n label: \"Expert\",\n modelId: \"anthropic/claude-sonnet-4.6\",\n nativeModelId: \"claude-sonnet-4-6\",\n thinkingBudget: 10_000,\n creditWeight: 10,\n },\n {\n id: \"premium\",\n label: \"Heavy\",\n modelId: \"anthropic/claude-opus-4.8\",\n nativeModelId: \"claude-opus-4-7\",\n thinkingBudget: 20_000,\n creditWeight: 20,\n },\n] as const;\n\nexport const MANAGED_MODEL_WEIGHTS: Record<string, number> = {\n \"ai21/jamba-large-1.7\": 6,\n \"amazon/nova-premier-v1\": 6,\n \"anthropic/claude-fable-5\": 45,\n \"anthropic/claude-opus-4\": 45,\n \"anthropic/claude-opus-4.1\": 45,\n \"anthropic/claude-opus-4.5\": 20,\n \"anthropic/claude-opus-4.6\": 20,\n \"anthropic/claude-opus-4.7\": 20,\n \"anthropic/claude-opus-4.7-fast\": 200,\n \"anthropic/claude-opus-4.8-fast\": 45,\n \"anthropic/claude-opus-5\": 20,\n \"anthropic/claude-opus-5-fast\": 45,\n \"anthropic/claude-sonnet-4\": 10,\n \"anthropic/claude-sonnet-4.5\": 10,\n \"anthropic/claude-sonnet-5\": 6,\n \"cohere/command-a\": 6,\n \"cohere/command-r-plus-08-2024\": 6,\n \"google/gemini-2.5-flash\": 2,\n \"google/gemini-2.5-pro\": 6,\n \"google/gemini-2.5-pro-preview\": 6,\n \"google/gemini-2.5-pro-preview-05-06\": 6,\n \"google/gemini-3-flash-preview\": 2,\n \"google/gemini-3-pro-image\": 6,\n \"google/gemini-3-pro-image-preview\": 6,\n \"google/gemini-3.1-pro-preview\": 6,\n \"google/gemini-3.1-pro-preview-customtools\": 6,\n \"google/gemini-3.5-flash\": 6,\n \"google/gemini-3.6-flash\": 6,\n \"google/gemini-3.7-flash\": 6,\n \"mistralai/mistral-medium-3-5\": 6,\n \"moonshotai/kimi-k3\": 10,\n \"openai/gpt-4.1-mini\": 2,\n \"openai/gpt-5.4-mini\": 2,\n \"openai/gpt-5.4-nano\": 2,\n \"openai/gpt-4\": 45,\n \"openai/gpt-4-turbo\": 20,\n \"openai/gpt-4-turbo-preview\": 20,\n \"openai/gpt-4.1\": 6,\n \"openai/gpt-4o\": 6,\n \"openai/gpt-4o-2024-05-13\": 10,\n \"openai/gpt-4o-2024-08-06\": 6,\n \"openai/gpt-4o-2024-11-20\": 6,\n \"openai/gpt-5\": 6,\n \"openai/gpt-5-image\": 6,\n \"openai/gpt-5-pro\": 90,\n \"openai/gpt-5.1\": 6,\n \"openai/gpt-5.1-codex\": 6,\n \"openai/gpt-5.1-codex-max\": 6,\n \"openai/gpt-5.2\": 10,\n \"openai/gpt-5.2-chat\": 10,\n \"openai/gpt-5.2-codex\": 10,\n \"openai/gpt-5.2-pro\": 200,\n \"openai/gpt-5.3-chat\": 10,\n \"openai/gpt-5.3-codex\": 10,\n \"openai/gpt-5.4\": 10,\n \"openai/gpt-5.4-image-2\": 10,\n \"openai/gpt-5.4-pro\": 200,\n \"openai/gpt-5.5\": 20,\n \"openai/gpt-5.5-pro\": 200,\n \"openai/gpt-5.6-sol\": 20,\n \"openai/gpt-5.6-sol-pro\": 20,\n \"openai/gpt-audio\": 6,\n \"openai/gpt-chat-latest\": 20,\n \"openai/o1\": 45,\n \"openai/o1-pro\": 500,\n \"openai/o3\": 6,\n \"openai/o3-pro\": 90,\n \"perplexity/sonar-deep-research\": 6,\n \"perplexity/sonar-pro\": 10,\n \"perplexity/sonar-pro-search\": 10,\n \"perplexity/sonar-reasoning-pro\": 6,\n \"sakana/fugu-ultra\": 20,\n \"~anthropic/claude-fable-latest\": 45,\n \"~anthropic/claude-opus-latest\": 20,\n \"~anthropic/claude-sonnet-latest\": 6,\n \"~google/gemini-flash-latest\": 6,\n \"~google/gemini-pro-latest\": 6,\n \"~moonshotai/kimi-latest\": 10,\n \"~openai/gpt-latest\": 20,\n};\n\nexport const MODELS_AWAITING_A_CREDIT_WEIGHT = [\"x-ai/grok-4.20\"];\n\nexport const DEFAULT_MANAGED_MODEL_WEIGHT = 2;\n\nexport const DEFAULT_CHAT_TIER_ID = \"smart\" as const;\n\nexport type ActivepiecesChatTier = (typeof ACTIVEPIECES_CHAT_TIERS)[number];\n\nexport const AI_PROVIDER_CAPABILITIES: Record<\n AIProviderName,\n AIProviderCapabilities\n> = {\n [AIProviderName.OPENAI]: buildProviderCapabilities(AIProviderName.OPENAI),\n [AIProviderName.ANTHROPIC]: buildProviderCapabilities(\n AIProviderName.ANTHROPIC,\n ),\n [AIProviderName.OPENROUTER]: buildProviderCapabilities(\n AIProviderName.OPENROUTER,\n ),\n [AIProviderName.AZURE]: buildProviderCapabilities(AIProviderName.AZURE),\n [AIProviderName.GOOGLE]: buildProviderCapabilities(AIProviderName.GOOGLE),\n [AIProviderName.CLOUDFLARE_GATEWAY]: buildProviderCapabilities(\n AIProviderName.CLOUDFLARE_GATEWAY,\n ),\n [AIProviderName.CUSTOM]: buildProviderCapabilities(AIProviderName.CUSTOM),\n [AIProviderName.BEDROCK]: buildProviderCapabilities(AIProviderName.BEDROCK),\n [AIProviderName.VERTEX]: buildProviderCapabilities(AIProviderName.VERTEX),\n [AIProviderName.MISTRAL]: buildProviderCapabilities(AIProviderName.MISTRAL),\n [AIProviderName.ACTIVEPIECES]: buildProviderCapabilities(\n AIProviderName.ACTIVEPIECES,\n ),\n [AIProviderName.XAI]: buildProviderCapabilities(AIProviderName.XAI),\n [AIProviderName.DEEPSEEK]: buildProviderCapabilities(AIProviderName.DEEPSEEK),\n [AIProviderName.ZAI]: buildProviderCapabilities(AIProviderName.ZAI),\n [AIProviderName.QWEN]: buildProviderCapabilities(AIProviderName.QWEN),\n [AIProviderName.MINIMAX]: buildProviderCapabilities(AIProviderName.MINIMAX),\n [AIProviderName.MOONSHOT]: buildProviderCapabilities(AIProviderName.MOONSHOT),\n};\n\nexport const aiProviderUtils = {\n getMaxContextTokens,\n getCuratedChatModels,\n isCuratedChatModelId,\n managedChatModelIds,\n isManagedChatModelId,\n canDisableReasoning,\n};\n\nexport const AI_PROVIDER_ENTITY_TYPES = {\n provider: \"AIProvider\",\n chatProvider: \"ChatAiProvider\",\n} as const;\n\nexport type AIWebSearchMode = \"native\" | \"plugin\";\n\nexport type OpenAiCompatibleVendor =\n | AIProviderName.XAI\n | AIProviderName.DEEPSEEK\n | AIProviderName.ZAI\n | AIProviderName.QWEN\n | AIProviderName.MINIMAX\n | AIProviderName.MOONSHOT;\n\nexport type AIProviderCapabilities = {\n chatModels?: readonly string[] | undefined;\n maxContextTokens: number;\n defaultEmbeddingModel: string | undefined;\n supportsEmbedding: boolean;\n supportsImageGeneration: boolean;\n webSearch: AIWebSearchMode | undefined;\n};\n","// Vendored from activepieces/activepieces@0.91.0 packages/core/piece-types/src/lib/forms.ts. MIT; see ../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\nimport * as z from \"zod/mini\";\n\nconst FileResponseInterfaceV1 = z.object({\n base64Url: z.string(),\n fileName: z.string(),\n extension: z.optional(z.string()),\n});\n\nconst FileResponseInterfaceV2 = z.object({\n mimeType: z.string(),\n url: z.string(),\n fileName: z.optional(z.string()),\n});\n\nexport const FileResponseInterface = z.union([\n FileResponseInterfaceV1,\n FileResponseInterfaceV2,\n]);\nexport type FileResponseInterface = z.infer<typeof FileResponseInterface>;\n\nexport enum HumanInputFormResultTypes {\n FILE = \"file\",\n MARKDOWN = \"markdown\",\n}\n\nexport function createKeyForFormInput(displayName: string): string {\n const inputKey = displayName\n .toLowerCase()\n .replace(/\\s+(\\w)/g, (_, letter) => letter.toUpperCase())\n .replace(/^(.)/, (letter) => letter.toLowerCase());\n\n /**We do this because react form inputs must not contain quotes */\n return inputKey.replaceAll(/[\\\\\"''\\n\\r\\t]/g, \"\");\n}\n\nexport const HumanInputFormResult = z.union([\n z.object({\n type: z.literal(HumanInputFormResultTypes.FILE),\n value: FileResponseInterface,\n }),\n z.object({\n type: z.literal(HumanInputFormResultTypes.MARKDOWN),\n value: z.string(),\n files: z.optional(z.array(FileResponseInterface)),\n }),\n]);\nexport type HumanInputFormResult = z.infer<typeof HumanInputFormResult>;\n\nexport const ChatFormResponse = z.object({\n sessionId: z.string(),\n message: z.string(),\n files: z.optional(z.array(z.string())),\n});\nexport type ChatFormResponse = z.infer<typeof ChatFormResponse>;\n","// Vendored from activepieces/activepieces@0.91.0 packages/core/piece-types/src/lib/tables.ts. MIT; see ../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\nimport type { Cursor } from \"../../core-utils/index.js\";\nimport {\n BaseModelSchema,\n Nullable,\n NullableEnum,\n OptionalArrayFromQuery,\n} from \"../../core-utils/index.js\";\nimport * as z from \"zod/mini\";\n\nexport enum FieldType {\n TEXT = \"TEXT\",\n NUMBER = \"NUMBER\",\n DATE = \"DATE\",\n DATETIME = \"DATETIME\",\n STATIC_DROPDOWN = \"STATIC_DROPDOWN\",\n}\n\nexport enum TableAutomationTrigger {\n ON_NEW_RECORD = \"ON_NEW_RECORD\",\n ON_UPDATE_RECORD = \"ON_UPDATE_RECORD\",\n}\n\nexport enum TableAutomationStatus {\n ENABLED = \"ENABLED\",\n DISABLED = \"DISABLED\",\n}\n\nexport enum TableWebhookEventType {\n RECORD_CREATED = \"RECORD_CREATED\",\n RECORD_UPDATED = \"RECORD_UPDATED\",\n RECORD_DELETED = \"RECORD_DELETED\",\n}\n\nexport enum FilterOperator {\n EQ = \"eq\",\n NEQ = \"neq\",\n GT = \"gt\",\n GTE = \"gte\",\n LT = \"lt\",\n LTE = \"lte\",\n CO = \"co\",\n EXISTS = \"exists\",\n NOT_EXISTS = \"not_exists\",\n}\n\nexport const Field = z.union([\n z.object({\n ...BaseModelSchema,\n name: z.string(),\n externalId: z.string(),\n type: z.literal(FieldType.STATIC_DROPDOWN),\n tableId: z.string(),\n projectId: z.string(),\n data: z.object({\n options: z.array(\n z.object({\n value: z.string(),\n }),\n ),\n }),\n }),\n z.object({\n ...BaseModelSchema,\n name: z.string(),\n externalId: z.string(),\n type: z.union([\n z.literal(FieldType.TEXT),\n z.literal(FieldType.NUMBER),\n z.literal(FieldType.DATE),\n z.literal(FieldType.DATETIME),\n ]),\n tableId: z.string(),\n projectId: z.string(),\n }),\n]);\n\nexport type Field = z.infer<typeof Field>;\n\nexport const Table = z.object({\n ...BaseModelSchema,\n name: z.string(),\n folderId: Nullable(z.string()),\n projectId: z.string(),\n externalId: z.string(),\n status: NullableEnum(TableAutomationStatus),\n trigger: NullableEnum(TableAutomationTrigger),\n});\n\nexport type Table = z.infer<typeof Table>;\n\nexport const PopulatedRecord = z.object({\n ...BaseModelSchema,\n tableId: z.string(),\n projectId: z.string(),\n cells: z.record(\n z.string(),\n z.object({\n updated: z.string(),\n created: z.string(),\n value: z.unknown(),\n fieldName: z.string(),\n }),\n ),\n});\n\nexport type PopulatedRecord = z.infer<typeof PopulatedRecord>;\n\nexport const CreateTableWebhookRequest = z.object({\n events: z.array(z.enum(TableWebhookEventType)),\n webhookUrl: z.string(),\n flowId: z.string(),\n});\n\nexport type CreateTableWebhookRequest = z.infer<\n typeof CreateTableWebhookRequest\n>;\n\nexport const ExportTableResponse = z.object({\n fields: z.array(z.object({ id: z.string(), name: z.string() })),\n rows: z.array(z.record(z.string(), z.string())),\n name: z.string(),\n});\n\nexport type ExportTableResponse = z.infer<typeof ExportTableResponse>;\n\nexport const ListTablesRequest = z.object({\n projectId: z.string(),\n limit: z.optional(z.coerce.number()),\n cursor: z.optional(z.string()),\n name: z.optional(z.string()),\n externalIds: OptionalArrayFromQuery(z.string()),\n folderId: z.optional(z.string()),\n folderIds: OptionalArrayFromQuery(z.string()),\n});\n\nexport type ListTablesRequest = z.infer<typeof ListTablesRequest>;\n\nexport const CreateRecordsRequest = z.object({\n records: z.array(\n z.array(\n z.object({\n fieldId: z.string(),\n value: coerceToString(),\n }),\n ),\n ),\n tableId: z.string(),\n});\n\nexport type CreateRecordsRequest = z.infer<typeof CreateRecordsRequest>;\n\nexport const UpdateRecordRequest = z.object({\n cells: z.optional(\n z.array(\n z.object({\n fieldId: z.string(),\n value: coerceToString(),\n }),\n ),\n ),\n tableId: z.string(),\n agentUpdate: z.optional(z.boolean()),\n});\n\nexport type UpdateRecordRequest = z.infer<typeof UpdateRecordRequest>;\n\nexport const Filter = z.discriminatedUnion(\"operator\", [\n valueFilter(FilterOperator.EQ),\n valueFilter(FilterOperator.NEQ),\n valueFilter(FilterOperator.GT),\n valueFilter(FilterOperator.GTE),\n valueFilter(FilterOperator.LT),\n valueFilter(FilterOperator.LTE),\n valueFilter(FilterOperator.CO),\n existenceFilter(FilterOperator.EXISTS),\n existenceFilter(FilterOperator.NOT_EXISTS),\n]);\n\nexport type Filter = z.infer<typeof Filter>;\n\nexport const ListRecordsRequest = z.object({\n tableId: z.string(),\n limit: z.optional(z.coerce.number()),\n cursor: z.optional(z.string()),\n filters: OptionalArrayFromQuery(Filter),\n});\n\nexport const StaticDropdownEmptyOption = {\n label: \"\",\n value: \"\",\n};\n\nfunction coerceToString() {\n return z.pipe(\n z.transform((v: unknown) =>\n v === null || v === undefined ? v : String(v),\n ),\n z.nullable(z.string()),\n );\n}\n\nfunction valueFilter<T extends FilterOperator>(op: T) {\n return z.object({\n fieldId: z.string(),\n operator: z.literal(op),\n value: z.string(),\n });\n}\n\nfunction existenceFilter<T extends FilterOperator>(op: T) {\n return z.object({\n fieldId: z.string(),\n operator: z.literal(op),\n });\n}\n\nexport type ListRecordsRequest = Omit<\n z.infer<typeof ListRecordsRequest>,\n \"cursor\"\n> & { cursor: Cursor | undefined };\n","// Vendored from activepieces/activepieces@0.91.0 packages/core/piece-types/src/lib/flow-contracts.ts. MIT; see ../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\nimport {\n BaseModelSchema,\n DateOrString,\n Nullable,\n} from \"../../core-utils/index.js\";\nimport * as z from \"zod/mini\";\n\nexport enum FlowStatus {\n ENABLED = \"ENABLED\",\n DISABLED = \"DISABLED\",\n}\n\nexport enum FlowTriggerType {\n EMPTY = \"EMPTY\",\n PIECE = \"PIECE_TRIGGER\",\n}\n\nexport const StopResponse = z.object({\n status: z.optional(z.number()),\n body: z.optional(z.unknown()),\n headers: z.optional(z.record(z.string(), z.string())),\n});\nexport type StopResponse = z.infer<typeof StopResponse>;\n\nexport const Project = z.object({\n ...BaseModelSchema,\n deleted: Nullable(DateOrString),\n ownerId: z.string(),\n displayName: z.string(),\n platformId: z.string(),\n externalId: Nullable(z.string()),\n});\nexport type Project = z.infer<typeof Project>;\n\nexport const USE_DRAFT_QUERY_PARAM_NAME = \"useDraft\";\n\nexport const PARENT_RUN_ID_HEADER = \"ap-parent-run-id\";\nexport const FAIL_PARENT_ON_FAILURE_HEADER = \"ap-fail-parent-on-failure\";\nexport const RAW_PAYLOAD_HEADER = \"ap-raw-payload\";\n\nexport type PopulatedFlow = {\n id: string;\n externalId?: string;\n status: FlowStatus;\n version: {\n displayName: string;\n trigger: {\n type: FlowTriggerType;\n settings: {\n pieceName?: string;\n input: {\n exampleData?: unknown;\n } & Record<string, unknown>;\n } & Record<string, unknown>;\n };\n };\n};\n","// Vendored from activepieces/activepieces@0.91.0 packages/core/piece-types/src/lib/mcp-piece.ts. MIT; see ../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\nimport * as z from \"zod/mini\";\n\nexport enum McpPropertyType {\n TEXT = \"Text\",\n BOOLEAN = \"Boolean\",\n DATE = \"Date\",\n NUMBER = \"Number\",\n ARRAY = \"Array\",\n OBJECT = \"Object\",\n}\n\nexport const McpProperty = z.object({\n name: z.string(),\n description: z.optional(z.string()),\n type: z.string(),\n required: z.boolean(),\n});\nexport type McpProperty = z.infer<typeof McpProperty>;\n\nexport const McpTrigger = z.object({\n pieceName: z.string(),\n triggerName: z.string(),\n input: z.object({\n toolName: z.string(),\n toolDescription: z.string(),\n inputSchema: z.array(McpProperty),\n returnsResponse: z.boolean(),\n }),\n});\nexport type McpTrigger = z.infer<typeof McpTrigger>;\n","// Vendored from activepieces/activepieces@0.91.0 packages/core/piece-types/src/lib/engine-tools.ts. MIT; see ../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\nimport { ExecutionToolStatus } from \"./agents.js\";\n\nexport type ExecuteToolResponse = {\n status: ExecutionToolStatus;\n output?: unknown;\n resolvedInput: Record<string, unknown>;\n errorMessage?: unknown;\n};\n\nexport function normalizeToolOutputToExecuteResponse(\n raw: unknown,\n): ExecuteToolResponse {\n if (raw === null || typeof raw !== \"object\") {\n return {\n status: ExecutionToolStatus.FAILED,\n output: raw,\n resolvedInput: {},\n errorMessage: \"Invalid tool output\",\n };\n }\n const o = raw as Record<string, unknown>;\n if (\n o[\"status\"] === ExecutionToolStatus.SUCCESS ||\n o[\"status\"] === ExecutionToolStatus.FAILED\n ) {\n return {\n status: o[\"status\"] as ExecutionToolStatus,\n output: o[\"output\"],\n resolvedInput: (o[\"resolvedInput\"] as Record<string, unknown>) ?? {},\n errorMessage: o[\"errorMessage\"],\n };\n }\n const isError = o[\"isError\"] === true;\n let output: unknown = o[\"structuredContent\"];\n if (output === undefined && Array.isArray(o[\"content\"])) {\n const parts = (o[\"content\"] as { text?: string }[])\n .map((c) => c?.text)\n .filter(Boolean);\n output =\n parts.length === 1\n ? parts[0]\n : parts.length\n ? { text: parts.join(\"\") }\n : o[\"content\"];\n }\n if (output === undefined) {\n output = o;\n }\n return {\n status: isError ? ExecutionToolStatus.FAILED : ExecutionToolStatus.SUCCESS,\n output,\n resolvedInput: {},\n errorMessage: isError\n ? (((o[\"content\"] as { text?: string }[])?.[0]?.text as string) ??\n (o[\"message\"] as string) ??\n \"Tool failed\")\n : undefined,\n };\n}\n","// Vendored from activepieces/activepieces@0.91.0 packages/pieces/framework/src/lib/property/util.ts. MIT; see ../../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\nimport type { PiecePropertyMap } from \"./index.js\";\nimport type { PieceAuthProperty } from \"./authentication/index.js\";\nimport { PropertyType } from \"./input/property-type.js\";\nimport * as z from \"zod/mini\";\nimport { isEmpty, isNil } from \"../../../core-utils/index.js\";\nimport { AUTHENTICATION_PROPERTY_NAME } from \"../../../core-piece-types/index.js\";\n\nfunction buildSchema(\n props: PiecePropertyMap,\n auth: PieceAuthProperty | PieceAuthProperty[] | undefined,\n requireAuth: boolean | undefined = true,\n) {\n const entries = Object.entries(props);\n const propsSchema: Record<string, z.ZodMiniType> = {};\n for (const [name, property] of entries) {\n switch (property.type) {\n case PropertyType.MARKDOWN:\n propsSchema[name] = z.optional(\n z.union([z.null(), z.undefined(), z.never(), z.unknown()]),\n );\n break;\n case PropertyType.DATE_TIME:\n case PropertyType.SHORT_TEXT:\n case PropertyType.LONG_TEXT:\n case PropertyType.RICH_TEXT:\n case PropertyType.COLOR:\n case PropertyType.FILE:\n propsSchema[name] = property.required\n ? z.string().check(z.minLength(1))\n : z.string();\n break;\n case PropertyType.CHECKBOX:\n propsSchema[name] = z.union([z.boolean(), z.string()]);\n break;\n case PropertyType.NUMBER:\n propsSchema[name] = z.union([\n property.required ? z.string().check(z.minLength(1)) : z.string(),\n z.number(),\n ]);\n break;\n case PropertyType.STATIC_DROPDOWN:\n case PropertyType.DROPDOWN:\n propsSchema[name] = z.unknown().check(\n z.refine((val) => val !== null && val !== undefined, {\n error: \"Value must not be null or undefined\",\n }),\n );\n break;\n case PropertyType.SECRET_TEXT:\n propsSchema[name] = property.required\n ? z.string().check(z.minLength(1))\n : z.string();\n break;\n case PropertyType.BASIC_AUTH:\n case PropertyType.CUSTOM_AUTH:\n case PropertyType.OAUTH2:\n break;\n case PropertyType.ARRAY: {\n const arrayItemSchema = isNil(property.properties)\n ? property.required\n ? z.string().check(z.minLength(1))\n : z.string()\n : buildSchema(property.properties, undefined);\n propsSchema[name] = z.union([\n property.required\n ? z.array(arrayItemSchema).check(z.minLength(1))\n : z.array(arrayItemSchema),\n //for inline items mode\n z.record(z.string(), z.unknown()),\n //for normal dynamic input mode\n property.required ? z.string().check(z.minLength(1)) : z.string(),\n ]);\n break;\n }\n case PropertyType.OBJECT:\n propsSchema[name] = z.union([\n z.record(z.string(), z.any()),\n property.required ? z.string().check(z.minLength(1)) : z.string(),\n ]);\n break;\n case PropertyType.DATE_RANGE:\n propsSchema[name] = z.union([\n z.record(z.string(), z.any()),\n z.string(),\n ]);\n break;\n case PropertyType.JSON:\n propsSchema[name] = z.union([\n z.record(z.string(), z.any()),\n z.array(z.any()),\n property.required ? z.string().check(z.minLength(1)) : z.string(),\n ]);\n break;\n case PropertyType.MULTI_SELECT_DROPDOWN:\n case PropertyType.STATIC_MULTI_SELECT_DROPDOWN:\n propsSchema[name] = z.union([\n property.required\n ? z.array(z.any()).check(z.minLength(1))\n : z.array(z.any()),\n property.required ? z.string().check(z.minLength(1)) : z.string(),\n ]);\n break;\n case PropertyType.DYNAMIC:\n propsSchema[name] = z.record(z.string(), z.any());\n break;\n case PropertyType.CUSTOM:\n propsSchema[name] = z.unknown();\n break;\n }\n\n //optional array is checked against its children\n if (!property.required && property.type !== PropertyType.ARRAY) {\n propsSchema[name] = z.optional(\n z.union(\n isEmpty(propsSchema[name])\n ? ([z.any(), z.null(), z.undefined()] as [\n z.ZodMiniType,\n z.ZodMiniType,\n z.ZodMiniType,\n ])\n : ([propsSchema[name], z.null(), z.undefined()] as [\n z.ZodMiniType,\n z.ZodMiniType,\n z.ZodMiniType,\n ]),\n ),\n );\n }\n }\n if (auth && requireAuth) {\n propsSchema[AUTHENTICATION_PROPERTY_NAME] = z\n .string()\n .check(z.minLength(1));\n }\n return z.object(propsSchema);\n}\n\nexport const piecePropertiesUtils = {\n buildSchema,\n};\n","// Vendored from activepieces/activepieces@0.91.0 packages/pieces/framework/src/lib/property/index.ts. MIT; see ../../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\nimport { InputProperty } from \"./input/index.js\";\nimport { PieceAuthProperty } from \"./authentication/index.js\";\nimport * as z from \"zod/mini\";\nimport type { PropertyType } from \"./input/property-type.js\";\nimport type { DropdownState } from \"./input/dropdown/common.js\";\n\n// EXPORTED\nexport { ApFile } from \"./input/file-property.js\";\nexport type { ApStreamingFile } from \"./input/file-property.js\";\nexport {\n DropdownProperty,\n MultiSelectDropdownProperty,\n} from \"./input/dropdown/dropdown-prop.js\";\nexport { DynamicProperties, DynamicProp } from \"./input/dynamic-prop.js\";\nexport { PropertyType } from \"./input/property-type.js\";\nexport { Property } from \"./input/index.js\";\nexport { PieceAuth, getAuthPropertyForValue } from \"./authentication/index.js\";\nexport type { ExtractPieceAuthPropertyTypeForMethods } from \"./authentication/index.js\";\nexport { DynamicPropsValue } from \"./input/dynamic-prop.js\";\nexport { DropdownOption, DropdownState } from \"./input/dropdown/common.js\";\nexport { OAuth2PropertyValue } from \"./authentication/oauth2-prop.js\";\nexport {\n PieceAuthProperty,\n DEFAULT_CONNECTION_DISPLAY_NAME,\n} from \"./authentication/index.js\";\nexport { ShortTextProperty } from \"./input/text-property.js\";\nexport { RichTextProperty } from \"./input/rich-text-property.js\";\nexport { ArrayProperty, ArraySubProps } from \"./input/array-property.js\";\nexport { BasePropertySchema } from \"./input/common.js\";\nexport { CheckboxProperty } from \"./input/checkbox-property.js\";\nexport { DateTimeProperty } from \"./input/date-time-property.js\";\nexport {\n DateRangeProperty,\n DateRangeValue,\n DateRangePreset,\n dateRangeUtils,\n} from \"./input/date-range-property.js\";\nexport { LongTextProperty } from \"./input/text-property.js\";\nexport { NumberProperty } from \"./input/number-property.js\";\nexport { ObjectProperty } from \"./input/object-property.js\";\nexport { OAuth2Props } from \"./authentication/oauth2-prop.js\";\nexport { OAuth2AuthorizationMethod } from \"./authentication/oauth2-prop.js\";\nexport { BasicAuthPropertyValue } from \"./authentication/basic-auth-prop.js\";\nexport { StaticMultiSelectDropdownProperty } from \"./input/dropdown/static-dropdown.js\";\nexport { StaticDropdownProperty } from \"./input/dropdown/static-dropdown.js\";\nexport * from \"./authentication/custom-auth-prop.js\";\nexport * from \"./authentication/oidc-prop.js\";\nexport { OAuth2Property } from \"./authentication/oauth2-prop.js\";\nexport { FileProperty } from \"./input/file-property.js\";\nexport { BasicAuthProperty } from \"./authentication/basic-auth-prop.js\";\nexport { SecretTextProperty } from \"./authentication/secret-text-property.js\";\nexport { CustomAuthProperty } from \"./authentication/custom-auth-prop.js\";\n\nexport { JsonProperty } from \"./input/json-property.js\";\nexport const PieceProperty = z.union([InputProperty, PieceAuthProperty]);\nexport type PieceProperty = InputProperty | PieceAuthProperty;\nexport { CustomProperty } from \"./input/custom-property.js\";\nexport type { CustomPropertyCodeFunctionParams } from \"./input/custom-property.js\";\nexport const PiecePropertyMap = z.record(z.string(), PieceProperty);\nexport interface PiecePropertyMap {\n [name: string]: PieceProperty;\n}\nexport { InputProperty } from \"./input/index.js\";\nexport const InputPropertyMap = z.record(z.string(), InputProperty);\nexport interface InputPropertyMap {\n [name: string]: InputProperty;\n}\nexport { piecePropertiesUtils } from \"./util.js\";\n\nexport type PiecePropValueSchema<T extends PieceProperty> = T extends undefined\n ? undefined\n : T extends { required: true }\n ? T[\"valueSchema\"]\n : T[\"valueSchema\"] | undefined;\n\nexport type StaticPropsValue<T extends PiecePropertyMap> = {\n [P in keyof T]: PiecePropValueSchema<T[P]>;\n};\n\nexport type ExecutePropsResult<\n T extends\n | PropertyType.DROPDOWN\n | PropertyType.MULTI_SELECT_DROPDOWN\n | PropertyType.DYNAMIC,\n> = {\n type: T;\n options: T extends PropertyType.DROPDOWN\n ? DropdownState<unknown>\n : T extends PropertyType.MULTI_SELECT_DROPDOWN\n ? DropdownState<unknown>\n : InputPropertyMap;\n};\n","// Vendored from activepieces/activepieces@0.91.0 packages/pieces/framework/src/lib/trigger/trigger.ts. MIT; see ../../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\nimport * as z from \"zod/mini\";\nimport type {\n OnStartContext,\n TestOrRunHookContext,\n TriggerHookContext,\n} from \"../context/index.js\";\nimport type { OutputSchema } from \"../output-schema.js\";\nimport type {\n ActionClassification,\n AiMetadata,\n PropertyGroup,\n TriggerBase,\n} from \"../piece-metadata.js\";\nimport type { InputPropertyMap } from \"../property/index.js\";\nimport type {\n ExtractPieceAuthPropertyTypeForMethods,\n PieceAuthProperty,\n} from \"../property/authentication/index.js\";\nimport { isNil } from \"../../../core-utils/index.js\";\nimport type { WebhookHandshakeConfiguration } from \"../../../core-piece-types/index.js\";\nimport {\n TriggerStrategy,\n TriggerTestStrategy,\n WebhookHandshakeStrategy,\n} from \"../../../core-piece-types/index.js\";\nexport { TriggerStrategy };\n\nexport const DEDUPE_KEY_PROPERTY = \"_dedupe_key\";\n\nexport enum WebhookRenewStrategy {\n CRON = \"CRON\",\n NONE = \"NONE\",\n}\n\ntype OnStartRunner<\n PieceAuth extends PieceAuthProperty | undefined,\n TriggerProps extends InputPropertyMap,\n> = (ctx: OnStartContext<PieceAuth, TriggerProps>) => Promise<unknown | void>;\n\nexport const WebhookRenewConfiguration = z.union([\n z.object({\n strategy: z.literal(WebhookRenewStrategy.CRON),\n cronExpression: z.string(),\n }),\n z.object({\n strategy: z.literal(WebhookRenewStrategy.NONE),\n }),\n]);\nexport type WebhookRenewConfiguration = z.infer<\n typeof WebhookRenewConfiguration\n>;\n\nexport interface WebhookResponse {\n status: number;\n body?: unknown;\n headers?: Record<string, string>;\n}\n\ntype BaseTriggerParams<\n PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined,\n TriggerProps extends InputPropertyMap,\n TS extends TriggerStrategy,\n> = {\n name: string;\n displayName: string;\n description: string;\n requireAuth?: boolean;\n auth?: PieceAuth;\n props: TriggerProps;\n propertyGroups?: PropertyGroup[];\n type: TS;\n onEnable: (\n context: TriggerHookContext<\n ExtractPieceAuthPropertyTypeForMethods<PieceAuth>,\n TriggerProps,\n TS\n >,\n ) => Promise<void>;\n onDisable: (\n context: TriggerHookContext<\n ExtractPieceAuthPropertyTypeForMethods<PieceAuth>,\n TriggerProps,\n TS\n >,\n ) => Promise<void>;\n run: (\n context: TestOrRunHookContext<\n ExtractPieceAuthPropertyTypeForMethods<PieceAuth>,\n TriggerProps,\n TS\n >,\n ) => Promise<unknown[]>;\n test?: (\n context: TestOrRunHookContext<\n ExtractPieceAuthPropertyTypeForMethods<PieceAuth>,\n TriggerProps,\n TS\n >,\n ) => Promise<unknown[]>;\n onStart?: OnStartRunner<\n ExtractPieceAuthPropertyTypeForMethods<PieceAuth>,\n TriggerProps\n >;\n sampleData: unknown;\n outputSchema?: OutputSchema;\n aiMetadata?: AiMetadata;\n classification?: ActionClassification;\n};\n\ntype WebhookTriggerParams<\n PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined,\n TriggerProps extends InputPropertyMap,\n TS extends TriggerStrategy,\n> = BaseTriggerParams<PieceAuth, TriggerProps, TS> & {\n handshakeConfiguration?: WebhookHandshakeConfiguration;\n onHandshake?: (\n context: TriggerHookContext<\n ExtractPieceAuthPropertyTypeForMethods<PieceAuth>,\n TriggerProps,\n TS\n >,\n ) => Promise<WebhookResponse>;\n renewConfiguration?: WebhookRenewConfiguration;\n onRenew?(\n context: TriggerHookContext<\n ExtractPieceAuthPropertyTypeForMethods<PieceAuth>,\n TriggerProps,\n TS\n >,\n ): Promise<void>;\n};\n\ntype CreateTriggerParams<\n PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined,\n TriggerProps extends InputPropertyMap,\n TS extends TriggerStrategy,\n> = TS extends TriggerStrategy.WEBHOOK\n ? WebhookTriggerParams<PieceAuth, TriggerProps, TS>\n : BaseTriggerParams<PieceAuth, TriggerProps, TS>;\n\nexport class ITrigger<\n TS extends TriggerStrategy,\n PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined,\n TriggerProps extends InputPropertyMap,\n> implements TriggerBase {\n constructor(\n public readonly name: string,\n public readonly displayName: string,\n public readonly description: string,\n public readonly requireAuth: boolean,\n public readonly props: TriggerProps,\n public readonly type: TS,\n public readonly handshakeConfiguration: WebhookHandshakeConfiguration,\n public readonly onHandshake: (\n ctx: TriggerHookContext<\n ExtractPieceAuthPropertyTypeForMethods<PieceAuth>,\n TriggerProps,\n TS\n >,\n ) => Promise<WebhookResponse>,\n public readonly renewConfiguration: WebhookRenewConfiguration,\n public readonly onRenew: (\n ctx: TriggerHookContext<\n ExtractPieceAuthPropertyTypeForMethods<PieceAuth>,\n TriggerProps,\n TS\n >,\n ) => Promise<void>,\n public readonly onEnable: (\n ctx: TriggerHookContext<\n ExtractPieceAuthPropertyTypeForMethods<PieceAuth>,\n TriggerProps,\n TS\n >,\n ) => Promise<void>,\n public readonly onDisable: (\n ctx: TriggerHookContext<\n ExtractPieceAuthPropertyTypeForMethods<PieceAuth>,\n TriggerProps,\n TS\n >,\n ) => Promise<void>,\n public readonly onStart: OnStartRunner<\n ExtractPieceAuthPropertyTypeForMethods<PieceAuth>,\n TriggerProps\n >,\n public readonly run: (\n ctx: TestOrRunHookContext<\n ExtractPieceAuthPropertyTypeForMethods<PieceAuth>,\n TriggerProps,\n TS\n >,\n ) => Promise<unknown[]>,\n public readonly test: (\n ctx: TestOrRunHookContext<\n ExtractPieceAuthPropertyTypeForMethods<PieceAuth>,\n TriggerProps,\n TS\n >,\n ) => Promise<unknown[]>,\n public readonly sampleData: unknown,\n public readonly testStrategy: TriggerTestStrategy,\n public readonly outputSchema?: OutputSchema,\n public readonly aiMetadata?: AiMetadata,\n public readonly classification?: ActionClassification,\n public readonly propertyGroups?: PropertyGroup[],\n ) {}\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type Trigger<\n PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined = any,\n TriggerProps extends InputPropertyMap = any,\n S extends TriggerStrategy = any,\n> = ITrigger<S, PieceAuth, TriggerProps>;\n\n// TODO refactor and extract common logic\nexport const createTrigger = <\n TS extends TriggerStrategy,\n PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined,\n TriggerProps extends InputPropertyMap,\n>(\n params: CreateTriggerParams<PieceAuth, TriggerProps, TS>,\n) => {\n switch (params.type) {\n case TriggerStrategy.WEBHOOK:\n return new ITrigger(\n params.name,\n params.displayName,\n params.description,\n params.requireAuth ?? true,\n params.props,\n params.type,\n params.handshakeConfiguration ?? {\n strategy: WebhookHandshakeStrategy.NONE,\n },\n params.onHandshake ?? (async () => ({ status: 200 })),\n params.renewConfiguration ?? { strategy: WebhookRenewStrategy.NONE },\n params.onRenew ?? (async () => Promise.resolve()),\n params.onEnable,\n params.onDisable,\n params.onStart ?? (async () => Promise.resolve()),\n params.run,\n params.test ?? (() => Promise.resolve([params.sampleData])),\n params.sampleData,\n params.test\n ? TriggerTestStrategy.TEST_FUNCTION\n : TriggerTestStrategy.SIMULATION,\n params.outputSchema,\n params.aiMetadata,\n params.classification,\n params.propertyGroups,\n );\n case TriggerStrategy.POLLING:\n return new ITrigger(\n params.name,\n params.displayName,\n params.description,\n params.requireAuth ?? true,\n params.props,\n params.type,\n { strategy: WebhookHandshakeStrategy.NONE },\n async () => ({ status: 200 }),\n { strategy: WebhookRenewStrategy.NONE },\n async () => Promise.resolve(),\n params.onEnable,\n params.onDisable,\n params.onStart ?? (async () => Promise.resolve()),\n params.run,\n params.test ?? (() => Promise.resolve([params.sampleData])),\n params.sampleData,\n TriggerTestStrategy.TEST_FUNCTION,\n params.outputSchema,\n params.aiMetadata,\n params.classification,\n params.propertyGroups,\n );\n case TriggerStrategy.MANUAL:\n return new ITrigger(\n params.name,\n params.displayName,\n params.description,\n params.requireAuth ?? true,\n params.props,\n params.type,\n { strategy: WebhookHandshakeStrategy.NONE },\n async () => ({ status: 200 }),\n { strategy: WebhookRenewStrategy.NONE },\n async () => Promise.resolve(),\n params.onEnable,\n params.onDisable,\n params.onStart ?? (async () => Promise.resolve()),\n params.run,\n params.test ?? (() => Promise.resolve([params.sampleData])),\n params.sampleData,\n TriggerTestStrategy.TEST_FUNCTION,\n params.outputSchema,\n params.aiMetadata,\n params.classification,\n params.propertyGroups,\n );\n case TriggerStrategy.APP_WEBHOOK:\n return new ITrigger(\n params.name,\n params.displayName,\n params.description,\n params.requireAuth ?? true,\n params.props,\n params.type,\n { strategy: WebhookHandshakeStrategy.NONE },\n async () => ({ status: 200 }),\n { strategy: WebhookRenewStrategy.NONE },\n async () => Promise.resolve(),\n params.onEnable,\n params.onDisable,\n params.onStart ?? (async () => Promise.resolve()),\n params.run,\n params.test ?? (() => Promise.resolve([params.sampleData])),\n params.sampleData,\n isNil(params.sampleData) && isNil(params.test)\n ? TriggerTestStrategy.SIMULATION\n : TriggerTestStrategy.TEST_FUNCTION,\n params.outputSchema,\n params.aiMetadata,\n params.classification,\n params.propertyGroups,\n );\n }\n};\n","// Vendored from activepieces/activepieces@0.91.0 packages/pieces/framework/src/lib/context/index.ts. MIT; see ../../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\nimport type {\n AppConnectionType,\n AppConnectionValue,\n ExecutionType,\n RespondResponse,\n ResumePayload,\n TriggerPayload,\n TriggerStrategy,\n DelayPauseMetadata,\n PauseMetadata,\n WebhookPauseMetadata,\n} from \"../../../core-piece-types/index.js\";\nimport type { SeekPage } from \"../../../core-utils/index.js\";\nimport type { FlowRunId, ProjectId } from \"../../../core-utils/index.js\";\nimport type { Readable } from \"node:stream\";\n\nimport type {\n BasicAuthProperty,\n CustomAuthProperty,\n InputPropertyMap,\n OIDCProperty,\n OAuth2Property,\n SecretTextProperty,\n StaticPropsValue,\n} from \"../property/index.js\";\nimport type { PieceAuthProperty } from \"../property/authentication/index.js\";\nimport type { PopulatedFlowSummary } from \"../../../core-piece-types/index.js\";\n\nexport type BaseContext<\n PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined,\n Props extends InputPropertyMap,\n> = {\n flows: FlowsContext;\n step: StepContext;\n auth: AppConnectionValueForAuthProperty<PieceAuth>;\n propsValue: StaticPropsValue<Props>;\n store: Store;\n project: {\n id: ProjectId;\n externalId: () => Promise<string | undefined>;\n };\n connections: ConnectionsManager;\n};\n\ntype ExtractCustomAuthProps<T> =\n T extends CustomAuthProperty<infer Props> ? Props : never;\n\ntype ExtractOIDCProps<T> = T extends OIDCProperty<infer Props> ? Props : never;\n\ntype ExtractOAuth2Props<T> =\n T extends OAuth2Property<infer Props> ? Props : never;\n\nexport type AppConnectionValueForAuthProperty<\n T extends PieceAuthProperty | PieceAuthProperty[] | undefined,\n> = T extends PieceAuthProperty[]\n ? AppConnectionValueForSingleAuthProperty<T[number]>\n : T extends PieceAuthProperty\n ? AppConnectionValueForSingleAuthProperty<T>\n : T extends undefined\n ? undefined\n : never;\n\ntype AppConnectionValueForSingleAuthProperty<\n T extends PieceAuthProperty | undefined,\n> =\n T extends SecretTextProperty<boolean>\n ? AppConnectionValue<AppConnectionType.SECRET_TEXT>\n : T extends BasicAuthProperty\n ? AppConnectionValue<AppConnectionType.BASIC_AUTH>\n : T extends CustomAuthProperty<any>\n ? AppConnectionValue<\n AppConnectionType.CUSTOM_AUTH,\n StaticPropsValue<ExtractCustomAuthProps<T>>\n >\n : T extends OIDCProperty<any>\n ? AppConnectionValue<\n AppConnectionType.OIDC,\n StaticPropsValue<ExtractOIDCProps<T>>\n >\n : T extends OAuth2Property<any>\n ? AppConnectionValue<\n AppConnectionType.OAUTH2,\n StaticPropsValue<ExtractOAuth2Props<T>>\n >\n : T extends undefined\n ? undefined\n : never;\ntype AppWebhookTriggerHookContext<\n PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined,\n TriggerProps extends InputPropertyMap,\n> = BaseContext<PieceAuth, TriggerProps> & {\n webhookUrl: string;\n payload: TriggerPayload;\n app: {\n createListeners({\n events,\n identifierValue,\n }: {\n events: string[];\n identifierValue: string;\n }): void;\n };\n};\n\ntype PollingTriggerHookContext<\n PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined,\n TriggerProps extends InputPropertyMap,\n> = BaseContext<PieceAuth, TriggerProps> & {\n server: ServerContext;\n setSchedule(schedule: SetScheduleRequest): void;\n isRepublish?: boolean;\n};\n\ntype WebhookTriggerHookContext<\n PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined,\n TriggerProps extends InputPropertyMap,\n> = BaseContext<PieceAuth, TriggerProps> & {\n webhookUrl: string;\n payload: TriggerPayload;\n server: ServerContext;\n};\nexport type TriggerHookContext<\n PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined,\n TriggerProps extends InputPropertyMap,\n S extends TriggerStrategy,\n> = S extends TriggerStrategy.APP_WEBHOOK\n ? AppWebhookTriggerHookContext<PieceAuth, TriggerProps>\n : S extends TriggerStrategy.POLLING\n ? PollingTriggerHookContext<PieceAuth, TriggerProps>\n : S extends TriggerStrategy.WEBHOOK\n ? WebhookTriggerHookContext<PieceAuth, TriggerProps> & {\n server: ServerContext;\n }\n : never;\n\nexport type TestOrRunHookContext<\n PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined,\n TriggerProps extends InputPropertyMap,\n S extends TriggerStrategy,\n> = TriggerHookContext<PieceAuth, TriggerProps, S> & {\n files: FilesService;\n};\n\nexport type StopHookParams = {\n response: RespondResponse;\n};\n\nexport type RespondHookParams = {\n response: RespondResponse;\n};\n\nexport type StopHook = (params?: StopHookParams) => void;\n\nexport type RespondHook = (params?: RespondHookParams) => void;\n\n/** @deprecated Since 2026-04-12. Use {@link CreateWaitpointHook} and {@link WaitForWaitpointHook} instead. */\nexport type PauseHookParams = {\n pauseMetadata: PauseMetadata;\n};\n\n/** @deprecated Since 2026-04-12. Use {@link CreateWaitpointHook} and {@link WaitForWaitpointHook} instead. */\nexport type PauseHook = (params: {\n pauseMetadata:\n | Omit<DelayPauseMetadata, \"requestIdToReply\">\n | Omit<WebhookPauseMetadata, \"requestId\" | \"requestIdToReply\">;\n}) => void;\n\nexport type FlowsContext = {\n list(\n params?: ListFlowsContextParams,\n ): Promise<SeekPage<PopulatedFlowSummary>>;\n current: {\n id: string;\n version: {\n id: string;\n };\n };\n};\n\nexport type StepContext = {\n name: string;\n};\n\nexport type ListFlowsContextParams = {\n externalIds?: string[];\n};\n\nexport type PropertyContext = {\n server: ServerContext;\n project: {\n id: ProjectId;\n externalId: () => Promise<string | undefined>;\n };\n searchValue?: string;\n flows: FlowsContext;\n connections: ConnectionsManager;\n};\n\nexport type ServerContext = {\n apiUrl: string;\n publicUrl: string;\n token: string;\n};\n\nexport type AuthValidationServerContext = Omit<ServerContext, \"token\"> & {\n mintOidcToken: (params: { audience: string }) => Promise<string>;\n};\n\nexport class PieceServerContextError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"PieceServerContextError\";\n }\n}\n\nexport function isPieceServerContextError(\n error: unknown,\n): error is PieceServerContextError {\n return error instanceof Error && error.name === \"PieceServerContextError\";\n}\n\nexport type CreateWaitpointParams = {\n type: \"DELAY\" | \"WEBHOOK\";\n version?: \"V0\" | \"V1\";\n resumeDateTime?: string;\n responseToSend?: RespondResponse;\n maxTestWaitMs?: number;\n};\n\nexport type CreateWaitpointResult = {\n id: string;\n resumeUrl: string;\n buildResumeUrl: (params: {\n queryParams: Record<string, string>;\n sync?: boolean;\n }) => string;\n};\n\nexport type CreateWaitpointHook = (\n params: CreateWaitpointParams,\n) => Promise<CreateWaitpointResult>;\nexport type WaitForWaitpointHook = (waitpointId: string) => void;\n\nexport type RunContext = {\n id: FlowRunId;\n stop: StopHook;\n /** @deprecated Use createWaitpoint + waitForWaitpoint instead */\n pause?: PauseHook;\n respond: RespondHook;\n createWaitpoint: CreateWaitpointHook;\n waitForWaitpoint: WaitForWaitpointHook;\n};\n\nexport type OnStartContext<\n PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined,\n TriggerProps extends InputPropertyMap,\n> = Omit<BaseContext<PieceAuth, TriggerProps>, \"flows\"> & {\n run: Pick<RunContext, \"id\">;\n payload: unknown;\n};\n\nexport type OutputContext = {\n update: (params: {\n data: {\n [key: string]: unknown;\n };\n }) => Promise<void>;\n};\n\ntype BaseActionContext<\n ET extends ExecutionType,\n PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined,\n ActionProps extends InputPropertyMap,\n> = BaseContext<PieceAuth, ActionProps> & {\n executionType: ET;\n tags: TagsManager;\n server: ServerContext;\n files: FilesService;\n output: OutputContext;\n run: RunContext;\n /** @deprecated Use waitpoint.buildResumeUrl() from createWaitpoint result instead */\n generateResumeUrl?: (params: {\n queryParams: Record<string, string>;\n sync?: boolean;\n }) => string;\n};\n\ntype BeginExecutionActionContext<\n PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined =\n undefined,\n ActionProps extends InputPropertyMap = InputPropertyMap,\n> = BaseActionContext<ExecutionType.BEGIN, PieceAuth, ActionProps>;\n\ntype ResumeExecutionActionContext<\n PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined =\n undefined,\n ActionProps extends InputPropertyMap = InputPropertyMap,\n> = BaseActionContext<ExecutionType.RESUME, PieceAuth, ActionProps> & {\n resumePayload: ResumePayload;\n};\n\nexport type ActionContext<\n PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined =\n undefined,\n ActionProps extends InputPropertyMap = InputPropertyMap,\n> =\n | BeginExecutionActionContext<PieceAuth, ActionProps>\n | ResumeExecutionActionContext<PieceAuth, ActionProps>;\n\nexport interface FilesService {\n write({\n fileName,\n data,\n }: {\n fileName: string;\n data: Buffer | Readable;\n }): Promise<string>;\n}\n\nexport interface ConnectionsManager {\n get(\n key: string,\n ): Promise<AppConnectionValue | Record<string, unknown> | string | null>;\n}\n\nexport interface TagsManager {\n add(params: { name: string }): Promise<void>;\n}\n\nexport interface Store {\n put<T>(key: string, value: T, scope?: StoreScope): Promise<T>;\n get<T>(key: string, scope?: StoreScope): Promise<T | null>;\n delete(key: string, scope?: StoreScope): Promise<void>;\n}\n\nexport enum StoreScope {\n // Collection were deprecated in favor of project\n PROJECT = \"COLLECTION\",\n FLOW = \"FLOW\",\n}\n\nexport type SetScheduleRequest =\n | { cronExpression: string; timezone?: string }\n | { intervalMs: number };\n","// Vendored from activepieces/activepieces@0.91.0 packages/pieces/framework/src/lib/context/versioning.ts. MIT; see ../../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\nimport { PauseType } from \"../../../core-piece-types/index.js\";\nimport type { ActionContext, PauseHook } from \"./index.js\";\nimport type { InputPropertyMap, PieceAuthProperty } from \"../property/index.js\";\n\nexport enum ContextVersion {\n V1 = \"1\",\n V2 = \"2\",\n}\n// When introducing a new context version, bump BOTH constants together.\n// The floor is load-bearing: older engines bundle an older framework whose\n// switch below only knows the older ContextVersion cases. A piece compiled\n// against a newer framework reports the new version via getContextInfo(),\n// the switch falls through, returns undefined, and the engine then invokes\n// run(undefined) — surfacing as \"Cannot read properties of undefined\".\n// Enforcing the floor in piece.ts keeps such pieces out of the registry on\n// incompatible servers instead of crashing at execution time.\nexport const LATEST_CONTEXT_VERSION = ContextVersion.V2;\nexport const MINIMUM_SUPPORTED_RELEASE_AFTER_LATEST_CONTEXT_VERSION = \"0.82.0\";\n\nexport const backwardCompatabilityContextUtils = {\n makeActionContextBackwardCompatible({\n context,\n contextVersion,\n }: MakeActionContextBackwardCompatibleParams): ActionContext<\n PieceAuthProperty,\n InputPropertyMap\n > {\n switch (contextVersion) {\n case ContextVersion.V2:\n return context;\n case ContextVersion.V1:\n return addLegacyMethods({ context });\n case undefined:\n return addLegacyMethodsAndServerUrl({ context });\n }\n },\n};\n\nfunction addLegacyMethods({\n context,\n}: {\n context: ActionContext<PieceAuthProperty, InputPropertyMap>;\n}): ActionContext<PieceAuthProperty, InputPropertyMap> {\n return {\n ...context,\n generateResumeUrl: buildLegacyGenerateResumeUrl({ context }),\n run: {\n ...context.run,\n pause: buildLegacyPauseHook({ context }),\n },\n };\n}\n\nfunction addLegacyMethodsAndServerUrl({\n context,\n}: {\n context: ActionContext<PieceAuthProperty, InputPropertyMap>;\n}): ActionContext<PieceAuthProperty, InputPropertyMap> {\n return {\n ...addLegacyMethods({ context }),\n serverUrl: context.server.publicUrl,\n } as unknown as ActionContext<PieceAuthProperty, InputPropertyMap>;\n}\n\n/**\n * @deprecated Since 2026-04-12. Remove after 2026-10-12 once all pieces migrate to createWaitpoint/waitForWaitpoint.\n */\nfunction buildLegacyPauseHook({\n context,\n}: {\n context: ActionContext<PieceAuthProperty, InputPropertyMap>;\n}): PauseHook {\n return (req) => {\n const type =\n req.pauseMetadata.type === PauseType.DELAY\n ? (\"DELAY\" as const)\n : (\"WEBHOOK\" as const);\n const responseToSend =\n req.pauseMetadata.type === PauseType.WEBHOOK\n ? req.pauseMetadata.response\n : undefined;\n const resumeDateTime =\n req.pauseMetadata.type === PauseType.DELAY\n ? req.pauseMetadata.resumeDateTime\n : undefined;\n context.run\n .createWaitpoint({ type, version: \"V0\", resumeDateTime, responseToSend })\n .catch((e) => {\n console.error(\"[buildLegacyPauseHook] Failed to create waitpoint\", e);\n process.exit(1);\n });\n context.run.waitForWaitpoint(\"\");\n };\n}\n\n/**\n * @deprecated Since 2026-04-12. Remove after 2026-10-12 once all pieces migrate to createWaitpoint/waitForWaitpoint.\n */\nfunction buildLegacyGenerateResumeUrl({\n context,\n}: {\n context: ActionContext<PieceAuthProperty, InputPropertyMap>;\n}): (params: {\n queryParams: Record<string, string>;\n sync?: boolean;\n}) => string {\n return (params) => {\n const randomId = Math.random().toString(36).substring(2);\n const url = new URL(\n `${context.server.publicUrl}v1/flow-runs/${context.run.id}/requests/${randomId}${params.sync ? \"/sync\" : \"\"}`,\n );\n url.search = new URLSearchParams(params.queryParams).toString();\n return url.toString();\n };\n}\n\ntype MakeActionContextBackwardCompatibleParams = {\n context: ActionContext<PieceAuthProperty, InputPropertyMap>;\n contextVersion: ContextVersion | undefined;\n};\n","// Vendored from activepieces/activepieces@0.91.0 packages/pieces/framework/src/lib/piece.ts. MIT; see ../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\nimport type { Trigger } from \"./trigger/trigger.js\";\nimport type { Action } from \"./action/action.js\";\nimport type {\n EventPayload,\n ParseEventResponse,\n PieceCategory,\n} from \"../../core-piece-types/index.js\";\nimport type { PieceBase, PieceMetadata } from \"./piece-metadata.js\";\nimport type { PieceAuthProperty } from \"./property/authentication/index.js\";\nimport type { ServerContext } from \"./context/index.js\";\nimport type { ContextVersion } from \"./context/versioning.js\";\nimport {\n LATEST_CONTEXT_VERSION,\n MINIMUM_SUPPORTED_RELEASE_AFTER_LATEST_CONTEXT_VERSION,\n} from \"./context/versioning.js\";\n\nexport class Piece<\n PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined =\n PieceAuthProperty,\n> implements Omit<PieceBase, \"version\" | \"name\"> {\n private readonly _actions: Record<string, Action> = {};\n private readonly _triggers: Record<string, Trigger> = {};\n // this method didn't exist in older version\n public getContextInfo: (() => { version: ContextVersion }) | undefined =\n () => ({ version: LATEST_CONTEXT_VERSION });\n constructor(\n public readonly displayName: string,\n public readonly logoUrl: string,\n public readonly authors: string[],\n public readonly events: PieceEventProcessors | undefined,\n actions: Action[],\n triggers: Trigger[],\n public readonly categories: PieceCategory[],\n public readonly auth?: PieceAuth,\n public readonly minimumSupportedRelease: string = MINIMUM_SUPPORTED_RELEASE_AFTER_LATEST_CONTEXT_VERSION,\n public readonly maximumSupportedRelease?: string,\n public readonly description = \"\",\n public readonly deprecated?: boolean,\n ) {\n if (\n !isValidSimpleSemver(minimumSupportedRelease) ||\n isSemverLessThan(\n minimumSupportedRelease,\n MINIMUM_SUPPORTED_RELEASE_AFTER_LATEST_CONTEXT_VERSION,\n )\n ) {\n this.minimumSupportedRelease =\n MINIMUM_SUPPORTED_RELEASE_AFTER_LATEST_CONTEXT_VERSION;\n }\n actions.forEach((action) => (this._actions[action.name] = action));\n triggers.forEach((trigger) => (this._triggers[trigger.name] = trigger));\n }\n\n metadata(): BackwardCompatiblePieceMetadata {\n return {\n displayName: this.displayName,\n logoUrl: this.logoUrl,\n actions: this._actions,\n triggers: this._triggers,\n categories: this.categories,\n description: this.description,\n authors: this.authors,\n auth: withConnectionIdentifierFlag(this.auth),\n minimumSupportedRelease: this.minimumSupportedRelease,\n maximumSupportedRelease: this.maximumSupportedRelease,\n deprecated: this.deprecated,\n contextInfo: this.getContextInfo?.(),\n };\n }\n\n getAction(actionName: string): Action | undefined {\n return this._actions[actionName];\n }\n\n getTrigger(triggerName: string): Trigger | undefined {\n return this._triggers[triggerName];\n }\n\n actions() {\n return this._actions;\n }\n\n triggers() {\n return this._triggers;\n }\n}\n\nexport const createPiece = <\n PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined,\n>(\n params: CreatePieceParams<PieceAuth>,\n) => {\n if (params.auth && Array.isArray(params.auth)) {\n const isUnique = params.auth.every(\n (auth, index, self) =>\n index === self.findIndex((t) => t.type === auth.type),\n );\n if (!isUnique) {\n throw new Error(\"Auth properties must be unique by type\");\n }\n }\n return new Piece<PieceAuth>(\n params.displayName,\n params.logoUrl,\n params.authors ?? [],\n params.events,\n params.actions,\n params.triggers,\n params.categories ?? [],\n params.auth,\n params.minimumSupportedRelease,\n params.maximumSupportedRelease,\n params.description,\n params.deprecated,\n );\n};\n\ntype CreatePieceParams<\n PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined =\n undefined,\n> = {\n displayName: string;\n logoUrl: string;\n authors: string[];\n description?: string;\n auth: PieceAuth | undefined;\n events?: PieceEventProcessors;\n minimumSupportedRelease?: string;\n maximumSupportedRelease?: string;\n actions: Action[];\n triggers: Trigger[];\n categories?: PieceCategory[];\n deprecated?: boolean;\n};\n\ntype PieceEventProcessors = {\n parseAndReply: (ctx: {\n payload: EventPayload;\n server: Omit<ServerContext, \"token\" | \"apiUrl\">;\n }) => ParseEventResponse;\n verify: (ctx: {\n webhookSecret: string | Record<string, string>;\n payload: EventPayload;\n appWebhookUrl: string;\n }) => boolean;\n};\n\ntype BackwardCompatiblePieceMetadata = Omit<\n PieceMetadata,\n \"name\" | \"version\" | \"authors\" | \"i18n\" | \"getContextInfo\"\n> & {\n authors?: PieceMetadata[\"authors\"];\n i18n?: PieceMetadata[\"i18n\"];\n};\n\nfunction withConnectionIdentifierFlag(\n auth: PieceAuthProperty | PieceAuthProperty[] | undefined,\n): PieceAuthProperty | PieceAuthProperty[] | undefined {\n if (auth === undefined) {\n return undefined;\n }\n return Array.isArray(auth)\n ? auth.map(flagConnectionIdentifier)\n : flagConnectionIdentifier(auth);\n}\n\nfunction flagConnectionIdentifier(auth: PieceAuthProperty): PieceAuthProperty {\n return {\n ...auth,\n hasConnectionIdentifier: auth.getConnectionIdentifier !== undefined,\n };\n}\n\nfunction isValidSimpleSemver(version: string): boolean {\n return /^\\d+\\.\\d+\\.\\d+$/.test(version);\n}\n\nfunction isSemverLessThan(a: string, b: string): boolean {\n const [a1, a2, a3] = a.split(\".\").map(Number);\n const [b1, b2, b3] = b.split(\".\").map(Number);\n if (a1 !== b1) return a1 < b1;\n if (a2 !== b2) return a2 < b2;\n return a3 < b3;\n}\n","// Vendored from activepieces/activepieces@0.91.0 packages/pieces/framework/src/lib/piece-metadata.ts. MIT; see ../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\nimport { PiecePropertyMap } from \"./property/index.js\";\nimport { WebhookRenewConfiguration } from \"./trigger/trigger.js\";\nimport { ErrorHandlingOptionsParam } from \"./action/action.js\";\nimport { PieceAuthProperty } from \"./property/authentication/index.js\";\nimport * as z from \"zod/mini\";\nimport type { LocalesEnum } from \"../../core-utils/index.js\";\nimport type { WebhookHandshakeConfiguration } from \"../../core-piece-types/index.js\";\nimport {\n PackageType,\n PieceCategory,\n PieceType,\n TriggerStrategy,\n TriggerTestStrategy,\n} from \"../../core-piece-types/index.js\";\nimport type { ContextVersion } from \"./context/versioning.js\";\nimport type { OutputSchema } from \"./output-schema.js\";\n\nconst I18nForPiece = z.optional(\n z.record(z.string(), z.record(z.string(), z.string())),\n);\nexport type I18nForPiece =\n | Partial<Record<LocalesEnum, Record<string, string>>>\n | undefined;\nexport const PieceBase = z.object({\n id: z.optional(z.string()),\n name: z.string(),\n displayName: z.string(),\n logoUrl: z.string(),\n description: z.string(),\n authors: z.array(z.string()),\n platformId: z.optional(z.string()),\n directoryPath: z.optional(z.string()),\n auth: z.optional(z.union([PieceAuthProperty, z.array(PieceAuthProperty)])),\n version: z.string(),\n categories: z.optional(z.array(z.enum(PieceCategory))),\n minimumSupportedRelease: z.optional(z.string()),\n maximumSupportedRelease: z.optional(z.string()),\n deprecated: z.optional(z.boolean()),\n i18n: I18nForPiece,\n});\n\nexport type PieceBase = {\n id?: string;\n name: string;\n displayName: string;\n logoUrl: string;\n description: string;\n platformId?: string;\n authors: string[];\n directoryPath?: string;\n auth?: PieceAuthProperty | PieceAuthProperty[];\n version: string;\n categories?: PieceCategory[];\n minimumSupportedRelease?: string;\n maximumSupportedRelease?: string;\n deprecated?: boolean;\n i18n?: Partial<Record<LocalesEnum, Record<string, string>>>;\n // this method didn't exist in older version\n getContextInfo: (() => { version: ContextVersion }) | undefined;\n};\n\nexport const Audience = z.enum([\"human\", \"ai\", \"both\"]);\nexport type Audience = z.infer<typeof Audience>;\n\nexport const AiMetadata = z.object({\n description: z.optional(z.string()),\n idempotent: z.optional(z.boolean()),\n});\nexport type AiMetadata = z.infer<typeof AiMetadata>;\n\nexport const ActionClassification = z.enum([\n \"READ\",\n \"SEARCH\",\n \"WRITE\",\n \"DESTRUCTIVE\",\n]);\nexport type ActionClassification = z.infer<typeof ActionClassification>;\n\nexport const READ_ONLY_CLASSIFICATIONS: readonly ActionClassification[] = [\n \"READ\",\n \"SEARCH\",\n];\n\nexport const isReadOnlyClassification = (\n classification: ActionClassification | undefined,\n): boolean =>\n classification !== undefined &&\n READ_ONLY_CLASSIFICATIONS.includes(classification);\n\nexport const PropertyGroupDisplay = z.enum([\n \"tabs\",\n \"section\",\n \"summary\",\n \"builder\",\n \"footer\",\n]);\nexport type PropertyGroupDisplay = z.infer<typeof PropertyGroupDisplay>;\n\nexport const PropertyGroup = z.object({\n key: z.string(),\n display: PropertyGroupDisplay,\n label: z.optional(z.string()),\n description: z.optional(z.string()),\n icon: z.optional(z.string()),\n props: z.array(z.string()),\n});\nexport type PropertyGroup = z.infer<typeof PropertyGroup>;\n\nexport const ActionBase = z.object({\n name: z.string(),\n displayName: z.string(),\n description: z.string(),\n props: PiecePropertyMap,\n propertyGroups: z.optional(z.array(PropertyGroup)),\n requireAuth: z.boolean(),\n errorHandlingOptions: z.optional(ErrorHandlingOptionsParam),\n outputSchema: z.optional(z.custom<OutputSchema>()),\n audience: z.optional(Audience),\n aiMetadata: z.optional(AiMetadata),\n classification: z.optional(ActionClassification),\n});\n\nexport type ActionBase = {\n name: string;\n displayName: string;\n description: string;\n props: PiecePropertyMap;\n propertyGroups?: PropertyGroup[];\n requireAuth: boolean;\n errorHandlingOptions?: ErrorHandlingOptionsParam;\n outputSchema?: OutputSchema;\n audience?: Audience;\n aiMetadata?: AiMetadata;\n classification?: ActionClassification;\n};\n\nexport const TriggerBase = z.object({\n name: z.string(),\n displayName: z.string(),\n description: z.string(),\n props: PiecePropertyMap,\n propertyGroups: z.optional(z.array(PropertyGroup)),\n errorHandlingOptions: z.optional(ErrorHandlingOptionsParam),\n type: z.enum(TriggerStrategy),\n sampleData: z.unknown(),\n handshakeConfiguration: z.optional(z.custom<WebhookHandshakeConfiguration>()),\n renewConfiguration: z.optional(WebhookRenewConfiguration),\n testStrategy: z.enum(TriggerTestStrategy),\n outputSchema: z.optional(z.custom<OutputSchema>()),\n aiMetadata: z.optional(AiMetadata),\n classification: z.optional(ActionClassification),\n});\nexport type TriggerBase = Omit<ActionBase, \"audience\"> & {\n type: TriggerStrategy;\n sampleData: unknown;\n handshakeConfiguration?: WebhookHandshakeConfiguration;\n renewConfiguration?: WebhookRenewConfiguration;\n testStrategy: TriggerTestStrategy;\n};\n\nexport const PieceMetadata = z.object({\n ...PieceBase.shape,\n actions: z.record(z.string(), ActionBase),\n triggers: z.record(z.string(), TriggerBase),\n});\n\nexport type PieceMetadata = Omit<PieceBase, \"getContextInfo\"> & {\n actions: Record<string, ActionBase>;\n triggers: Record<string, TriggerBase>;\n // this property didn't exist in older version\n contextInfo: { version: ContextVersion } | undefined;\n};\n\nexport const PieceMetadataSummary = z.object({\n ...PieceBase.shape,\n actions: z.number(),\n triggers: z.number(),\n suggestedActions: z.optional(z.array(ActionBase)),\n suggestedTriggers: z.optional(z.array(TriggerBase)),\n});\nexport type PieceMetadataSummary = Omit<\n PieceMetadata,\n \"actions\" | \"triggers\"\n> & {\n actions: number;\n triggers: number;\n suggestedActions?: ActionBase[];\n suggestedTriggers?: TriggerBase[];\n};\n\nconst PiecePackageMetadata = z.object({\n projectUsage: z.number(),\n pieceType: z.enum(PieceType),\n packageType: z.enum(PackageType),\n platformId: z.optional(z.string()),\n archiveId: z.optional(z.string()),\n});\ntype PiecePackageMetadata = z.infer<typeof PiecePackageMetadata>;\n\nexport const PieceMetadataModel = z.object({\n ...PieceMetadata.shape,\n ...PiecePackageMetadata.shape,\n});\nexport type PieceMetadataModel = PieceMetadata & PiecePackageMetadata;\n\nexport const PieceMetadataModelSummary = z.object({\n ...PieceMetadataSummary.shape,\n ...PiecePackageMetadata.shape,\n});\nexport type PieceMetadataModelSummary = PieceMetadataSummary &\n PiecePackageMetadata;\n\nexport const PiecePackageInformation = z.object({\n name: z.string(),\n version: z.string(),\n});\nexport type PiecePackageInformation = z.infer<typeof PiecePackageInformation>;\n","// Vendored from activepieces/activepieces@0.91.0 packages/pieces/framework/src/lib/i18n.ts. MIT; see ../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\nimport type {\n I18nForPiece,\n PieceMetadataModel,\n PieceMetadataModelSummary,\n} from \"./piece-metadata.js\";\nimport { LocalesEnum } from \"../../core-utils/index.js\";\nimport { MAX_KEY_LENGTH_FOR_CORWDIN } from \"../../core-piece-types/index.js\";\nimport path from \"node:path\";\nimport fs from \"node:fs/promises\";\n\nexport const pieceTranslation = {\n translatePiece: <T extends PieceMetadataModelSummary | PieceMetadataModel>(\n params: TranslatePieceParams<T>,\n ): T => {\n const { piece, locale, mutate = false } = params;\n if (!locale) {\n return piece;\n }\n try {\n const target = piece.i18n?.[locale];\n if (!target) {\n return piece;\n }\n const translatedPiece: T = mutate\n ? piece\n : JSON.parse(JSON.stringify(piece));\n pieceTranslation.pathsToValuesToTranslate.forEach((key) => {\n translateProperty(translatedPiece, key, target);\n });\n return translatedPiece;\n } catch (err) {\n console.error(`error translating piece ${piece.name}:`, err);\n return piece;\n }\n },\n\n /**Gets the piece metadata regardles of piece location (node_modules or dist), wasn't included inside piece.metadata() for backwards compatibility issues (if an old ap version installs a new piece it would fail)*/\n initializeI18n: async (\n pieceOutputPath: string,\n ): Promise<I18nForPiece | undefined> => {\n try {\n const locales = Object.values(LocalesEnum);\n const i18n: I18nForPiece = {};\n\n for (const locale of locales) {\n const translations = await readLocaleFile(locale, pieceOutputPath);\n if (translations) {\n i18n[locale] = translations;\n }\n }\n\n return Object.keys(i18n).length > 0 ? i18n : undefined;\n } catch (err) {\n console.log(`Error initializing i18n for ${pieceOutputPath}:`, err);\n return undefined;\n }\n },\n\n pathsToValuesToTranslate: [\n \"description\",\n \"auth.username.displayName\",\n \"auth.username.description\",\n \"auth.password.displayName\",\n \"auth.password.description\",\n \"auth.props.*.displayName\",\n \"auth.props.*.description\",\n \"auth.props.*.options.options.*.label\",\n \"auth.description\",\n \"actions.*.displayName\",\n \"actions.*.description\",\n \"actions.*.props.*.displayName\",\n \"actions.*.props.*.description\",\n \"actions.*.props.*.options.options.*.label\",\n \"triggers.*.displayName\",\n \"triggers.*.description\",\n \"triggers.*.props.*.displayName\",\n \"triggers.*.props.*.description\",\n \"triggers.*.props.*.options.options.*.label\",\n ],\n};\n\n/**This function translates a property inside a piece, i.e description, displayName, etc...\n *\n * @param pieceModelOrProperty - The piece model or property to translate\n * @param path - The path to the property to translate, i.e auth.username.displayName\n * @param i18n - The i18n object\n */\nfunction translateProperty(\n pieceModelOrProperty: Record<string, unknown>,\n path: string,\n i18n: Record<string, string>,\n) {\n const parsedKeys = path.split(\".\");\n if (parsedKeys[0] === \"*\") {\n return Object.values(pieceModelOrProperty).forEach((item) =>\n translateProperty(\n item as Record<string, unknown>,\n parsedKeys.slice(1).join(\".\"),\n i18n,\n ),\n );\n }\n const nextObject = pieceModelOrProperty[parsedKeys[0]] as Record<\n string,\n unknown\n >;\n if (!nextObject) {\n return;\n }\n if (parsedKeys.length > 1) {\n return translateProperty(nextObject, parsedKeys.slice(1).join(\".\"), i18n);\n }\n const propertyValue = pieceModelOrProperty[parsedKeys[0]] as string;\n const valueInI18n = i18n[propertyValue.slice(0, MAX_KEY_LENGTH_FOR_CORWDIN)];\n if (valueInI18n) {\n pieceModelOrProperty[parsedKeys[0]] = valueInI18n;\n }\n}\n\nasync function fileExists(filePath: string) {\n try {\n await fs.access(filePath);\n return true;\n } catch {\n return false;\n }\n}\n\nconst readLocaleFile = async (locale: LocalesEnum, pieceOutputPath: string) => {\n const filePath = path.join(pieceOutputPath, \"src\", \"i18n\", `${locale}.json`);\n if (!(await fileExists(filePath))) {\n return null;\n }\n\n try {\n const fileContent = await fs.readFile(filePath, \"utf8\");\n const translations = JSON.parse(fileContent);\n if (typeof translations === \"object\" && translations !== null) {\n return translations;\n }\n throw new Error(\n `Invalid i18n file format for ${locale} in piece ${pieceOutputPath}`,\n );\n } catch (error) {\n console.error(\n `Error reading i18n file for ${locale} in piece ${pieceOutputPath}:`,\n error,\n );\n return null;\n }\n};\n\ntype TranslatePieceParams<\n T extends PieceMetadataModelSummary | PieceMetadataModel,\n> = {\n piece: T;\n locale?: LocalesEnum;\n mutate?: boolean;\n};\n","// Vendored from activepieces/activepieces@0.91.0 packages/pieces/framework/src/lib/test/index.ts. MIT; see ../../../../LICENSE.\n// Generated by scripts/sync-upstream.mts — do not edit by hand.\nimport type { TriggerStrategy } from \"../../../core-piece-types/index.js\";\nimport { ExecutionType } from \"../../../core-piece-types/index.js\";\nimport type {\n ActionContext,\n SetScheduleRequest,\n TriggerHookContext,\n} from \"../context/index.js\";\nimport type { InputPropertyMap, StaticPropsValue } from \"../property/index.js\";\n\nexport function createMockActionContext<\n Props extends InputPropertyMap,\n>(params: {\n propsValue: StaticPropsValue<Props>;\n}): ActionContext<undefined, Props> {\n return {\n executionType: ExecutionType.BEGIN,\n auth: undefined,\n propsValue: params.propsValue,\n store: {\n put: async <T>(key: string, value: T) => value,\n get: async () => null,\n delete: async () => {\n return;\n },\n },\n connections: {\n get: async () => null,\n },\n tags: {\n add: async () => {\n return;\n },\n },\n server: {\n apiUrl: \"http://localhost:3000\",\n publicUrl: \"http://localhost:4200\",\n token: \"test-token\",\n },\n files: {\n write: async () => \"test-file-url\",\n },\n output: {\n update: async () => {\n return;\n },\n },\n agent: {\n tools: async () => ({}),\n },\n run: {\n id: \"test-run-id\" as string,\n stop: () => {\n return;\n },\n pause: () => {\n return;\n },\n respond: () => {\n return;\n },\n },\n project: {\n id: \"test-project-id\",\n externalId: async () => undefined,\n },\n flows: {\n list: async () => ({ data: [], next: null, previous: null }),\n current: {\n id: \"test-flow-id\",\n version: {\n id: \"test-flow-version-id\",\n },\n },\n },\n step: {\n name: \"test-step\",\n },\n generateResumeUrl: () => \"http://localhost:3000/resume\",\n } as unknown as ActionContext<undefined, Props>;\n}\n\nexport function createMockPollingTriggerContext<\n Props extends InputPropertyMap,\n>(params: {\n propsValue: StaticPropsValue<Props>;\n onSetSchedule?: (schedule: SetScheduleRequest) => void;\n}): TriggerHookContext<undefined, Props, TriggerStrategy.POLLING> {\n return {\n ...createMockActionContext({ propsValue: params.propsValue }),\n setSchedule: (schedule: SetScheduleRequest) => {\n params.onSetSchedule?.(schedule);\n },\n } as unknown as TriggerHookContext<undefined, Props, TriggerStrategy.POLLING>;\n}\n","import type {\n ActionContext,\n InputPropertyMap,\n PieceAuthProperty,\n PropertyContext,\n TriggerHookContext,\n TriggerStrategy,\n} from \"../../upstream/framework/index.js\";\nimport type { ReactorService } from \"./reactor.js\";\n\ntype AnyPieceAuth = PieceAuthProperty | PieceAuthProperty[] | undefined;\n\n// A framework context as the Powerhouse host hands it to a piece: with the\n// reactor the piece runs inside.\nexport type WithReactor<C> = C & { reactor: ReactorService };\n\nexport type PowerhouseActionContext<\n Auth extends AnyPieceAuth = undefined,\n Props extends InputPropertyMap = InputPropertyMap,\n> = WithReactor<ActionContext<Auth, Props>>;\n\nexport type PowerhousePropertyContext = WithReactor<PropertyContext>;\n\nexport type PowerhouseTriggerHookContext<\n Auth extends AnyPieceAuth,\n Props extends InputPropertyMap,\n S extends TriggerStrategy,\n> = WithReactor<TriggerHookContext<Auth, Props, S>>;\n\n// The reactor behind any context, or a legible error where no host serves one.\nexport function reactorOf(ctx: unknown): ReactorService {\n const reactor =\n ctx !== null && typeof ctx === \"object\"\n ? (ctx as { reactor?: ReactorService }).reactor\n : undefined;\n if (!reactor) {\n throw new Error(\n \"ctx.reactor is not available: this piece is not running on a Powerhouse reactor\",\n );\n }\n return reactor;\n}\n"],"mappings":"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"}