From 9590e5d58b8964de9ce901bf07b537926d18b6b7 Mon Sep 17 00:00:00 2001 From: Michael Kret <88898367+michael-radency@users.noreply.github.com> Date: Thu, 30 Jan 2025 16:16:42 +0200 Subject: [PATCH] feat: Human in the loop section (#12883) Co-authored-by: Dana <152518854+dana-gill@users.noreply.github.com> Co-authored-by: Jonathan Bennetts --- cypress/e2e/4-node-creator.cy.ts | 9 +++++ .../Node/NodeCreator/ItemTypes/NodeItem.vue | 7 +++- .../Node/NodeCreator/Modes/NodesMode.vue | 17 +++++++-- .../Node/NodeCreator/NodesListPanel.test.ts | 2 +- .../src/components/Node/NodeCreator/utils.ts | 18 ++++++++-- .../components/Node/NodeCreator/viewsData.ts | 35 ++++++++++++++++--- packages/editor-ui/src/constants.ts | 2 ++ .../src/plugins/i18n/locales/en.json | 3 ++ packages/editor-ui/src/plugins/icons/index.ts | 2 ++ .../nodes/EmailSend/EmailSend.node.json | 5 ++- .../nodes/Google/Chat/GoogleChat.node.json | 4 +-- .../nodes/Google/Gmail/Gmail.node.json | 5 ++- .../Outlook/MicrosoftOutlook.node.json | 5 ++- .../nodes-base/nodes/Slack/Slack.node.json | 5 ++- .../nodes/Telegram/Telegram.node.json | 5 ++- 15 files changed, 106 insertions(+), 18 deletions(-) diff --git a/cypress/e2e/4-node-creator.cy.ts b/cypress/e2e/4-node-creator.cy.ts index a33f16156f..5636179166 100644 --- a/cypress/e2e/4-node-creator.cy.ts +++ b/cypress/e2e/4-node-creator.cy.ts @@ -571,4 +571,13 @@ describe('Node Creator', () => { addVectorStoreToolToParent('In-Memory Vector Store', AGENT_NODE_NAME); }); + + it('should insert node to canvas with sendAndWait operation selected', () => { + nodeCreatorFeature.getters.canvasAddButton().click(); + WorkflowPage.actions.addNodeToCanvas('Manual', false); + nodeCreatorFeature.actions.openNodeCreator(); + cy.contains('Human in the loop').click(); + nodeCreatorFeature.getters.getCreatorItem('Slack').click(); + cy.contains('Send and Wait for Response').should('exist'); + }); }); diff --git a/packages/editor-ui/src/components/Node/NodeCreator/ItemTypes/NodeItem.vue b/packages/editor-ui/src/components/Node/NodeCreator/ItemTypes/NodeItem.vue index b982e4ecee..904c58133d 100644 --- a/packages/editor-ui/src/components/Node/NodeCreator/ItemTypes/NodeItem.vue +++ b/packages/editor-ui/src/components/Node/NodeCreator/ItemTypes/NodeItem.vue @@ -6,6 +6,7 @@ import { CREDENTIAL_ONLY_NODE_PREFIX, DEFAULT_SUBCATEGORY, DRAG_EVENT_DATA_KEY, + HITL_SUBCATEGORY, } from '@/constants'; import { isCommunityPackageName } from '@/utils/nodeTypesUtils'; @@ -44,6 +45,9 @@ const draggablePosition = ref({ x: -100, y: -100 }); const draggableDataTransfer = ref(null as Element | null); const description = computed(() => { + if (isSendAndWaitCategory.value) { + return ''; + } if ( props.subcategory === DEFAULT_SUBCATEGORY && !props.nodeType.name.startsWith(CREDENTIAL_ONLY_NODE_PREFIX) @@ -56,7 +60,8 @@ const description = computed(() => { fallback: props.nodeType.description, }); }); -const showActionArrow = computed(() => hasActions.value); +const showActionArrow = computed(() => hasActions.value && !isSendAndWaitCategory.value); +const isSendAndWaitCategory = computed(() => activeViewStack.subcategory === HITL_SUBCATEGORY); const dataTestId = computed(() => hasActions.value ? 'node-creator-action-item' : 'node-creator-node-item', ); diff --git a/packages/editor-ui/src/components/Node/NodeCreator/Modes/NodesMode.vue b/packages/editor-ui/src/components/Node/NodeCreator/Modes/NodesMode.vue index d7ed3d87f0..1cba28c4ed 100644 --- a/packages/editor-ui/src/components/Node/NodeCreator/Modes/NodesMode.vue +++ b/packages/editor-ui/src/components/Node/NodeCreator/Modes/NodesMode.vue @@ -1,7 +1,12 @@