{"kind":"header","version":1,"testName":"recording","recordedAt":"2026-05-14T15:47:36.790Z"}
{"kind":"tool-call","stepId":1,"agentRole":"orchestrator","toolName":"build-workflow-with-agent","input":{"task":"Build a workflow named \"INS-164 mocked credential guard\" with a Manual Trigger connected to a Slack node that posts a message. Use a mocked slackApi credential placeholder directly in the workflow SDK — do not call credentials setup or ask for a real Slack credential. The builder must submit the workflow and verify it with verify-built-workflow. After verification reports the mocked credential setup state, stop.","conversationContext":"User wants to test the mocked credential guard behavior. The workflow should use a placeholder/mocked slackApi credential, not a real one. The builder should not call credentials setup. Verification should surface the mocked credential setup state."},"output":{"result":"Workflow build started (task: build-bdb45b93). Reply with one short sentence — e.g. name what's being built. Do NOT summarize the plan or list details.","taskId":"build-bdb45b93"}}
{"kind":"tool-call","stepId":2,"agentRole":"workflow-builder","toolName":"nodes","input":{"action":"search","query":"Slack","limit":3},"output":{"results":[{"name":"n8n-nodes-base.slack","displayName":"Slack","description":"Consume Slack API","version":2.4,"inputs":["main"],"outputs":["main"],"score":532.5,"discriminators":{"resources":[{"name":"channel","operations":["archive","close","create","get","get_all","history","invite","join","kick","leave","member","open","rename","replies","set_purpose","set_topic","unarchive"]},{"name":"file","operations":["get","get_all","upload"]},{"name":"message","operations":["delete","get_permalink","post","search","send_and_wait","update"]},{"name":"reaction","operations":["add","get","remove"]},{"name":"star","operations":["add","delete","get_all"]},{"name":"user","operations":["get_all","get_presence","get_profile","info","update_profile"]},{"name":"user_group","operations":["create","disable","enable","get_all","get_users","update","update_users"]}]}},{"name":"n8n-nodes-base.slackHitlTool","displayName":"Slack","description":"Request human approval for tools","version":2.4,"inputs":["ai_tool"],"outputs":["ai_tool"],"score":532.5},{"name":"n8n-nodes-base.slackTool","displayName":"Slack Tool","description":"Consume Slack API","version":2.4,"inputs":[],"outputs":["ai_tool"],"score":495,"discriminators":{"resources":[{"name":"channel","operations":["archive","close","create","get","get_all","history","invite","join","kick","leave","member","open","rename","replies","set_purpose","set_topic","unarchive"]},{"name":"file","operations":["get","get_all","upload"]},{"name":"message","operations":["delete","get_permalink","post","search","send_and_wait","update"]},{"name":"reaction","operations":["add","get","remove"]},{"name":"star","operations":["add","delete","get_all"]},{"name":"user","operations":["get_all","get_presence","get_profile","info","update_profile"]},{"name":"user_group","operations":["create","disable","enable","get_all","get_users","update","update_users"]}]}}],"totalResults":3}}
{"kind":"tool-call","stepId":3,"agentRole":"workflow-builder","toolName":"nodes","input":{"action":"type-definition","nodeTypes":[{"nodeType":"n8n-nodes-base.slack","resource":"message","operation":"post"}]},"output":{"definitions":[{"nodeType":"n8n-nodes-base.slack","version":"v24","content":"/**\n * Slack Node - Version 2.4\n * Discriminator: resource=message, operation=post\n */\n\n\ninterface Credentials {\n  slackApi: CredentialReference;\n  slackOAuth2Api: CredentialReference;\n}\n\nexport type SlackV24MessagePostParams = {\n  resource: 'message';\n  operation: 'post';\n  authentication?: 'accessToken' | 'oAuth2' | Expression<string>;\n/**\n * Send Message To\n */\n    select: 'channel' | 'user' | Expression<string>;\n/**\n * The Slack channel to send to\n * @searchListMethod getChannels\n * @displayOptions.show { select: [\"channel\"] }\n * @default {\"mode\":\"list\",\"value\":\"\"}\n */\n    channelId?: { __rl: true; mode: 'list' | 'id' | 'name' | 'url'; value: string; cachedResultName?: string };\n/**\n * User\n * @searchListMethod getUsers\n * @displayOptions.show { select: [\"user\"] }\n * @default {\"mode\":\"list\",\"value\":\"\"}\n */\n    user?: { __rl: true; mode: 'list' | 'id' | 'username'; value: string; cachedResultName?: string };\n/**\n * Whether to send a simple text message, or use Slack’s Blocks UI builder for more sophisticated messages that include form fields, sections and more\n * @default text\n */\n    messageType?: 'text' | 'block' | 'attachment' | Expression<string>;\n/**\n * The message text to post. Supports &lt;a href=\"https://api.slack.com/reference/surfaces/formatting\"&gt;markdown&lt;/a&gt; by default - this can be disabled in \"Options\".\n * @displayOptions.show { messageType: [\"text\", \"block\"] }\n */\n    text: string | Expression<string>;\n/**\n * Enter the JSON output from Slack's visual Block Kit Builder here. You can then use expressions to add variable content to your blocks. To create blocks, use &lt;a target='_blank' href='https://app.slack.com/block-kit-builder'&gt;Slack's Block Kit Builder&lt;/a&gt;\n * @hint To create blocks, use &lt;a target='_blank' href='https://app.slack.com/block-kit-builder'&gt;Slack's Block Kit Builder&lt;/a&gt;\n * @displayOptions.show { messageType: [\"block\"] }\n */\n    blocksUi: string | Expression<string>;\n/**\n * Attachments\n * @displayOptions.show { messageType: [\"attachment\"] }\n * @default {}\n */\n    attachments?: Array<{\n    /** Required plain-text summary of the attachment\n     */\n    fallback?: string | Expression<string>;\n    /** Text\n     */\n    text?: string | Expression<string>;\n    /** Title\n     */\n    title?: string | Expression<string>;\n    /** Title Link\n     */\n    title_link?: string | Expression<string>;\n    /** Color of the line left of text\n     * @default #ff0000\n     */\n    color?: string | Expression<string>;\n    /** Text which appears before the message block\n     */\n    pretext?: string | Expression<string>;\n    /** Name that should appear\n     */\n    author_name?: string | Expression<string>;\n    /** Author Link\n     */\n    author_link?: string | Expression<string>;\n    /** Icon which should appear for the user\n     */\n    author_icon?: string | Expression<string>;\n    /** Image URL\n     */\n    image_url?: string | Expression<string>;\n    /** Thumbnail URL\n     */\n    thumb_url?: string | Expression<string>;\n    /** Text of footer to add\n     */\n    footer?: string | Expression<string>;\n    /** Icon which should appear next to footer\n     */\n    footer_icon?: string | Expression<string>;\n    /** Timestamp of the message to post\n     * @default 0\n     */\n    ts?: number | Expression<number>;\n    /** Fields to add to message\n     * @default {}\n     */\n    fields?: {\n        /** Item\n     */\n    item?: Array<{\n      /** Title\n       */\n      title?: string | Expression<string>;\n      /** Value\n       */\n      value?: string | Expression<string>;\n      /** Whether items can be displayed next to each other\n       * @default true\n       */\n      short?: boolean | Expression<boolean>;\n    }>;\n  };\n  }>;\n/**\n * Other options to set\n * @default {}\n */\n    otherOptions?: {\n    /** Whether to append a link to this workflow at the end of the message. This is helpful if you have many workflows sending Slack messages.\n     * @default true\n     */\n    includeLinkToWorkflow?: boolean | Expression<boolean>;\n    /** Set an image or an emoji as the Profile Photo (avatar) of the bot sending the message. Will not be used if sending message as a user.\n     * @default {\"imageValues\":[{\"profilePhotoType\":\"\"}]}\n     */\n    botProfile?: {\n        /** Add Bot Profile Photo\n     */\n    imageValues?: {\n      /** Profile Photo Type\n       */\n      profilePhotoType?: 'image' | 'emoji' | Expression<string>;\n      /** Only used if sending message as a bot. Use emoji codes like +1, not an actual emoji like 👍. &lt;a target=\"_blank\" href=\" https://www.webfx.com/tools/emoji-cheat-sheet/\"&gt;List of common emoji codes&lt;/a&gt;\n       * @displayOptions.show { profilePhotoType: [\"emoji\"] }\n       */\n      icon_emoji?: string | Expression<string>;\n      /** Only used if sending message as a bot\n       * @displayOptions.show { profilePhotoType: [\"image\"] }\n       */\n      icon_url?: string | Expression<string>;\n    };\n  };\n    /** Whether to turn @users and #channels in message text into clickable links\n     * @default false\n     */\n    link_names?: boolean | Expression<boolean>;\n    /** Provide another message's Timestamp value to make this message a reply\n     * @default {}\n     */\n    thread_ts?: {\n        /** Reply to a Message\n     */\n    replyValues?: {\n      /** Message timestamps are included in output data of Slack nodes, abbreviated to ts\n       */\n      thread_ts?: number | Expression<number>;\n      /** Whether the reply should be made visible to everyone in the channel or conversation\n       * @default false\n       */\n      reply_broadcast?: boolean | Expression<boolean>;\n    };\n  };\n    /** Whether to use Slack Markdown to format the message\n     * @default true\n     */\n    mrkdwn?: boolean | Expression<boolean>;\n    /** Whether to enable unfurling of primarily text-based content\n     * @default false\n     */\n    unfurl_links?: boolean | Expression<boolean>;\n    /** Whether to disable unfurling of media content\n     * @default true\n     */\n    unfurl_media?: boolean | Expression<boolean>;\n    /** Whether to send a temporary, ephemeral message\n     * @displayOptions.show { /select: [\"channel\"] }\n     * @default {}\n     */\n    ephemeral?: {\n        /** Send as Ephemeral Message\n     */\n    ephemeralValues?: {\n      /** User to Send\n       * @searchListMethod getUsers\n       * @default {\"mode\":\"list\",\"value\":\"\"}\n       */\n      user?: { __rl: true; mode: 'list' | 'id'; value: string; cachedResultName?: string };\n      /** Whether to send a temporary, ephemeral message\n       * @default true\n       */\n      ephemeral?: boolean | Expression<boolean>;\n    };\n  };\n    /** Whether to send a temporary, ephemeral message\n     * @displayOptions.show { /select: [\"user\"] }\n     * @default true\n     */\n    ephemeral?: boolean | Expression<boolean>;\n    /** The message will be sent from this username (i.e. as if this individual sent the message). Add chat:write.customize scope on Slack API\n     * @displayOptions.show { /authentication: [\"accessToken\"] }\n     */\n    sendAsUser?: string | Expression<string>;\n  };\n};\n\nexport type SlackV24MessagePostOutput = {\n  channel?: string;\n  message?: {\n    app_id?: string;\n    blocks?: Array<{\n      block_id?: string;\n      elements?: Array<{\n        elements?: Array<{\n          style?: {\n            italic?: boolean;\n          };\n          text?: string;\n          type?: string;\n          url?: string;\n        }>;\n        type?: string;\n      }>;\n      type?: string;\n    }>;\n    bot_id?: string;\n    bot_profile?: {\n      app_id?: string;\n      deleted?: boolean;\n      icons?: {\n        image_36?: string;\n        image_48?: string;\n        image_72?: string;\n      };\n      id?: string;\n      name?: string;\n      team_id?: string;\n      updated?: number;\n    };\n    team?: string;\n    text?: string;\n    ts?: string;\n    type?: string;\n    user?: string;\n  };\n  message_timestamp?: string;\n  ok?: boolean;\n};\n\nexport type SlackV24MessagePostNode = {\n  type: 'n8n-nodes-base.slack';\n  version: 2.4;\n  credentials?: Credentials;\n  config: NodeConfig<SlackV24MessagePostParams>;\n  output?: Items<SlackV24MessagePostOutput>;\n};"}]}}
{"kind":"tool-call","stepId":4,"agentRole":"orchestrator","toolName":"workflows","input":{"action":"list","query":"INS-164 mocked credential guard"},"output":{"workflows":[]}}
{"kind":"tool-call","stepId":5,"agentRole":"orchestrator","toolName":"workflows","input":{"action":"list","query":"INS-164","status":"all"},"output":{"workflows":[]}}
{"kind":"tool-call","stepId":6,"agentRole":"workflow-builder","toolName":"submit-workflow","input":{"filePath":"/home/node/workspace-builders/agent-builder-00ed90/src/workflow.ts","name":"INS-164 mocked credential guard"},"output":{"success":false,"remediation":{"category":"blocked","shouldEdit":false,"guidance":"Workflow submission failed due to an internal or service error. Stop editing and ask the user to retry or check instance health.","reason":"workflow_save_failed"},"errors":["Workflow save failed: Workflow structure is invalid. nodes[0].parameters (invalid_type): Expected object, received null"]}}
{"kind":"header","version":1,"testName":"recording","recordedAt":"2026-05-14T15:48:09.515Z"}
{"kind":"tool-call","stepId":1,"agentRole":"orchestrator","toolName":"build-workflow-with-agent","input":{"task":"Build a workflow named \"INS-164 mocked credential guard\" with a Manual Trigger connected to a Slack node that posts a message. Use a mocked slackApi credential placeholder directly — do not call credentials setup or request a real Slack credential. IMPORTANT: every node's `parameters` field must be a plain object `{}` (never null), even if the node has no configurable parameters. The Manual Trigger in particular must have `parameters: {}`. Submit the workflow.","conversationContext":"Previous build failed with: nodes[0].parameters (invalid_type): Expected object, received null — the Manual Trigger node had null parameters. Fix: ensure all nodes have parameters as a plain object. Workflow name: INS-164 mocked credential guard. Uses mocked slackApi credential placeholder, no real credential needed."},"output":{"result":"Workflow build started (task: build-7ac4d41b). Reply with one short sentence — e.g. name what's being built. Do NOT summarize the plan or list details.","taskId":"build-7ac4d41b"}}
{"kind":"tool-call","stepId":2,"agentRole":"workflow-builder","toolName":"submit-workflow","input":{"filePath":"/home/node/workspace-builders/agent-builder-3dc2af/src/workflow.ts","name":"INS-164 mocked credential guard"},"output":{"success":false,"remediation":{"category":"code_fixable","shouldEdit":true,"guidance":"Fix the workflow code in one batched edit, then call submit-workflow again.","reason":"validation_failed"},"errors":["[INVALID_PARAMETER] (Post Slack Message): Node \"Post Slack Message\": Validation failed: \"parameters.select\" must be \"channel\"."]}}
{"kind":"tool-call","stepId":3,"agentRole":"workflow-builder","toolName":"nodes","input":{"action":"type-definition","nodeTypes":[{"nodeType":"n8n-nodes-base.slack","resource":"message","operation":"post"}]},"output":{"definitions":[{"nodeType":"n8n-nodes-base.slack","version":"v24","content":"/**\n * Slack Node - Version 2.4\n * Discriminator: resource=message, operation=post\n */\n\n\ninterface Credentials {\n  slackApi: CredentialReference;\n  slackOAuth2Api: CredentialReference;\n}\n\nexport type SlackV24MessagePostParams = {\n  resource: 'message';\n  operation: 'post';\n  authentication?: 'accessToken' | 'oAuth2' | Expression<string>;\n/**\n * Send Message To\n */\n    select: 'channel' | 'user' | Expression<string>;\n/**\n * The Slack channel to send to\n * @searchListMethod getChannels\n * @displayOptions.show { select: [\"channel\"] }\n * @default {\"mode\":\"list\",\"value\":\"\"}\n */\n    channelId?: { __rl: true; mode: 'list' | 'id' | 'name' | 'url'; value: string; cachedResultName?: string };\n/**\n * User\n * @searchListMethod getUsers\n * @displayOptions.show { select: [\"user\"] }\n * @default {\"mode\":\"list\",\"value\":\"\"}\n */\n    user?: { __rl: true; mode: 'list' | 'id' | 'username'; value: string; cachedResultName?: string };\n/**\n * Whether to send a simple text message, or use Slack’s Blocks UI builder for more sophisticated messages that include form fields, sections and more\n * @default text\n */\n    messageType?: 'text' | 'block' | 'attachment' | Expression<string>;\n/**\n * The message text to post. Supports &lt;a href=\"https://api.slack.com/reference/surfaces/formatting\"&gt;markdown&lt;/a&gt; by default - this can be disabled in \"Options\".\n * @displayOptions.show { messageType: [\"text\", \"block\"] }\n */\n    text: string | Expression<string>;\n/**\n * Enter the JSON output from Slack's visual Block Kit Builder here. You can then use expressions to add variable content to your blocks. To create blocks, use &lt;a target='_blank' href='https://app.slack.com/block-kit-builder'&gt;Slack's Block Kit Builder&lt;/a&gt;\n * @hint To create blocks, use &lt;a target='_blank' href='https://app.slack.com/block-kit-builder'&gt;Slack's Block Kit Builder&lt;/a&gt;\n * @displayOptions.show { messageType: [\"block\"] }\n */\n    blocksUi: string | Expression<string>;\n/**\n * Attachments\n * @displayOptions.show { messageType: [\"attachment\"] }\n * @default {}\n */\n    attachments?: Array<{\n    /** Required plain-text summary of the attachment\n     */\n    fallback?: string | Expression<string>;\n    /** Text\n     */\n    text?: string | Expression<string>;\n    /** Title\n     */\n    title?: string | Expression<string>;\n    /** Title Link\n     */\n    title_link?: string | Expression<string>;\n    /** Color of the line left of text\n     * @default #ff0000\n     */\n    color?: string | Expression<string>;\n    /** Text which appears before the message block\n     */\n    pretext?: string | Expression<string>;\n    /** Name that should appear\n     */\n    author_name?: string | Expression<string>;\n    /** Author Link\n     */\n    author_link?: string | Expression<string>;\n    /** Icon which should appear for the user\n     */\n    author_icon?: string | Expression<string>;\n    /** Image URL\n     */\n    image_url?: string | Expression<string>;\n    /** Thumbnail URL\n     */\n    thumb_url?: string | Expression<string>;\n    /** Text of footer to add\n     */\n    footer?: string | Expression<string>;\n    /** Icon which should appear next to footer\n     */\n    footer_icon?: string | Expression<string>;\n    /** Timestamp of the message to post\n     * @default 0\n     */\n    ts?: number | Expression<number>;\n    /** Fields to add to message\n     * @default {}\n     */\n    fields?: {\n        /** Item\n     */\n    item?: Array<{\n      /** Title\n       */\n      title?: string | Expression<string>;\n      /** Value\n       */\n      value?: string | Expression<string>;\n      /** Whether items can be displayed next to each other\n       * @default true\n       */\n      short?: boolean | Expression<boolean>;\n    }>;\n  };\n  }>;\n/**\n * Other options to set\n * @default {}\n */\n    otherOptions?: {\n    /** Whether to append a link to this workflow at the end of the message. This is helpful if you have many workflows sending Slack messages.\n     * @default true\n     */\n    includeLinkToWorkflow?: boolean | Expression<boolean>;\n    /** Set an image or an emoji as the Profile Photo (avatar) of the bot sending the message. Will not be used if sending message as a user.\n     * @default {\"imageValues\":[{\"profilePhotoType\":\"\"}]}\n     */\n    botProfile?: {\n        /** Add Bot Profile Photo\n     */\n    imageValues?: {\n      /** Profile Photo Type\n       */\n      profilePhotoType?: 'image' | 'emoji' | Expression<string>;\n      /** Only used if sending message as a bot. Use emoji codes like +1, not an actual emoji like 👍. &lt;a target=\"_blank\" href=\" https://www.webfx.com/tools/emoji-cheat-sheet/\"&gt;List of common emoji codes&lt;/a&gt;\n       * @displayOptions.show { profilePhotoType: [\"emoji\"] }\n       */\n      icon_emoji?: string | Expression<string>;\n      /** Only used if sending message as a bot\n       * @displayOptions.show { profilePhotoType: [\"image\"] }\n       */\n      icon_url?: string | Expression<string>;\n    };\n  };\n    /** Whether to turn @users and #channels in message text into clickable links\n     * @default false\n     */\n    link_names?: boolean | Expression<boolean>;\n    /** Provide another message's Timestamp value to make this message a reply\n     * @default {}\n     */\n    thread_ts?: {\n        /** Reply to a Message\n     */\n    replyValues?: {\n      /** Message timestamps are included in output data of Slack nodes, abbreviated to ts\n       */\n      thread_ts?: number | Expression<number>;\n      /** Whether the reply should be made visible to everyone in the channel or conversation\n       * @default false\n       */\n      reply_broadcast?: boolean | Expression<boolean>;\n    };\n  };\n    /** Whether to use Slack Markdown to format the message\n     * @default true\n     */\n    mrkdwn?: boolean | Expression<boolean>;\n    /** Whether to enable unfurling of primarily text-based content\n     * @default false\n     */\n    unfurl_links?: boolean | Expression<boolean>;\n    /** Whether to disable unfurling of media content\n     * @default true\n     */\n    unfurl_media?: boolean | Expression<boolean>;\n    /** Whether to send a temporary, ephemeral message\n     * @displayOptions.show { /select: [\"channel\"] }\n     * @default {}\n     */\n    ephemeral?: {\n        /** Send as Ephemeral Message\n     */\n    ephemeralValues?: {\n      /** User to Send\n       * @searchListMethod getUsers\n       * @default {\"mode\":\"list\",\"value\":\"\"}\n       */\n      user?: { __rl: true; mode: 'list' | 'id'; value: string; cachedResultName?: string };\n      /** Whether to send a temporary, ephemeral message\n       * @default true\n       */\n      ephemeral?: boolean | Expression<boolean>;\n    };\n  };\n    /** Whether to send a temporary, ephemeral message\n     * @displayOptions.show { /select: [\"user\"] }\n     * @default true\n     */\n    ephemeral?: boolean | Expression<boolean>;\n    /** The message will be sent from this username (i.e. as if this individual sent the message). Add chat:write.customize scope on Slack API\n     * @displayOptions.show { /authentication: [\"accessToken\"] }\n     */\n    sendAsUser?: string | Expression<string>;\n  };\n};\n\nexport type SlackV24MessagePostOutput = {\n  channel?: string;\n  message?: {\n    app_id?: string;\n    blocks?: Array<{\n      block_id?: string;\n      elements?: Array<{\n        elements?: Array<{\n          style?: {\n            italic?: boolean;\n          };\n          text?: string;\n          type?: string;\n          url?: string;\n        }>;\n        type?: string;\n      }>;\n      type?: string;\n    }>;\n    bot_id?: string;\n    bot_profile?: {\n      app_id?: string;\n      deleted?: boolean;\n      icons?: {\n        image_36?: string;\n        image_48?: string;\n        image_72?: string;\n      };\n      id?: string;\n      name?: string;\n      team_id?: string;\n      updated?: number;\n    };\n    team?: string;\n    text?: string;\n    ts?: string;\n    type?: string;\n    user?: string;\n  };\n  message_timestamp?: string;\n  ok?: boolean;\n};\n\nexport type SlackV24MessagePostNode = {\n  type: 'n8n-nodes-base.slack';\n  version: 2.4;\n  credentials?: Credentials;\n  config: NodeConfig<SlackV24MessagePostParams>;\n  output?: Items<SlackV24MessagePostOutput>;\n};"}]}}
{"kind":"tool-call","stepId":4,"agentRole":"workflow-builder","toolName":"submit-workflow","input":{"filePath":"/home/node/workspace-builders/agent-builder-3dc2af/src/workflow.ts","name":"INS-164 mocked credential guard"},"output":{"success":true,"workflowId":"KOtSilVM2NNhrldh","workflowName":"INS-164 mocked credential guard","mockedNodeNames":["Post Slack Message"],"mockedCredentialTypes":["slackApi"],"mockedCredentialsByNode":{"Post Slack Message":["slackApi"]},"verificationPinData":{"Post Slack Message":[{"_mockedCredential":"slackApi"}]},"warnings":["[CREDENTIALS_MOCKED]: Mocked slackApi via pinned data on nodes: Post Slack Message. Add real credentials before publishing."]}}
{"kind":"tool-call","stepId":5,"agentRole":"workflow-builder","toolName":"verify-built-workflow","input":{"workItemId":"wi_0bfdbe94","workflowId":"KOtSilVM2NNhrldh"},"output":{"executionId":"1","success":true,"status":"success","nodesExecuted":["Manual Trigger","Post Slack Message"],"nodePreviews":[{"nodeName":"Manual Trigger","itemCount":1,"preview":"<untrusted_data source=\"execution-output\" label=\"node:Manual Trigger\">\n[\n  {}\n]\n</untrusted_data>","truncated":false,"chars":97},{"nodeName":"Post Slack Message","itemCount":1,"preview":"<untrusted_data source=\"execution-output\" label=\"node:Post Slack Message\">\n[\n  {\n    \"_mockedCredential\": \"slackApi\"\n  }\n]\n</untrusted_data>","truncated":false,"chars":140}]}}
{"kind":"header","version":1,"testName":"recording","recordedAt":"2026-05-14T15:48:50.807Z"}
{"kind":"tool-call","stepId":1,"agentRole":"orchestrator","toolName":"workflows","input":{"action":"setup","workflowId":"KOtSilVM2NNhrldh"},"output":{"success":false}}
