n8n-editor-ui 1.92.0 → 1.94.0

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.
Files changed (124) hide show
  1. package/dist/assets/{AnimatedSpinner-CtKKeDrz.js → AnimatedSpinner-CY5xYI5m.js} +1 -1
  2. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DR6h_xsK.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BOrzkwPH.js} +1 -1
  3. package/dist/assets/{AuthView-mKkzBRxh.js → AuthView-BTzGYAnY.js} +2 -2
  4. package/dist/assets/{CanvasChatSwitch-Bu2VD2kp.js → CanvasChatSwitch-CwpjFCL0.js} +17 -18
  5. package/dist/assets/{ChangePasswordView-D5UI1v-J.js → ChangePasswordView-BKR2UFVI.js} +3 -3
  6. package/dist/assets/CollectionParameter-BJtiV9En.js +4 -0
  7. package/dist/assets/{CredentialsView-B78eNJO5.js → CredentialsView-DVgxfnNi.js} +26 -11
  8. package/dist/assets/{DemoFooter-DP26HpCu.js → DemoFooter-C1T3Q0NX.js} +7 -8
  9. package/dist/assets/{ErrorView-C3fvEdCg.js → ErrorView-Cf2Yb8Ea.js} +1 -1
  10. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-BBpwYdHY.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-DUu0UMcW.js} +2 -2
  11. package/dist/assets/{ExecutionsView-BvlDZwIs.js → ExecutionsView-DjNkfnDh.js} +20 -18
  12. package/dist/assets/{FileSaver.min-BzAtcQXX.js → FileSaver.min-C1p9Eies.js} +1 -1
  13. package/dist/assets/{FixedCollectionParameter-CS5zXMAh.js → FixedCollectionParameter-DN_uJhpe.js} +1 -1
  14. package/dist/assets/{ForgotMyPasswordView-CVQ7pcIG.js → ForgotMyPasswordView-BMQBDIrq.js} +3 -3
  15. package/dist/assets/{InsightsChartAverageRuntime-Boh0SMb3.js → InsightsChartAverageRuntime-JzBkV6Rc.js} +4 -4
  16. package/dist/assets/{InsightsChartFailed-IZ-KYOU9.js → InsightsChartFailed-DMD3c7zM.js} +4 -4
  17. package/dist/assets/{InsightsChartFailureRate-2fWw3p0L.js → InsightsChartFailureRate-D_qeZo4f.js} +4 -4
  18. package/dist/assets/{InsightsChartTimeSaved-B2pLVys1.js → InsightsChartTimeSaved-Cw2T-Wvp.js} +4 -4
  19. package/dist/assets/{InsightsChartTotal-2QD4wPLR.js → InsightsChartTotal-DlF47gob.js} +4 -4
  20. package/dist/assets/{InsightsDashboard-Bx4vx9gz.css → InsightsDashboard-BSrakbzr.css} +42 -8
  21. package/dist/assets/{InsightsDashboard-CbiFbJ8w.js → InsightsDashboard-CxQ9H296.js} +40 -41
  22. package/dist/assets/{InsightsPaywall-5d-cSdiS.js → InsightsPaywall-hRkAfeHz.js} +1 -1
  23. package/dist/assets/InsightsSummary-BcXd-3nU.js +209 -0
  24. package/dist/assets/{InsightsSummary-CdlaUpAt.css → InsightsSummary-DzGQpM5h.css} +27 -24
  25. package/dist/assets/{InsightsTableWorkflows-Blv_GPUj.css → InsightsTableWorkflows-DfTZQkWL.css} +3 -4
  26. package/dist/assets/{InsightsTableWorkflows-_eTCUNCX.js → InsightsTableWorkflows-ybloXdDn.js} +5 -6
  27. package/dist/assets/{Logo-Dl2xVRIu.js → Logo-BGe7-2Vd.js} +1 -1
  28. package/dist/assets/{LogsPanel-JnYirDqa.js → LogsPanel-DtTp6kY0.js} +334 -338
  29. package/dist/assets/{MainHeader-CEPLiR-5.css → MainHeader-Y95RcfHb.css} +24 -17
  30. package/dist/assets/{MainHeader-Bk29pgmL.js → MainHeader-h2DV-VuD.js} +148 -82
  31. package/dist/assets/{MainSidebar-BM5ku_wM.js → MainSidebar-AAHHRXFA.js} +28 -11
  32. package/dist/assets/{MainSidebar-zZpP3qQ0.css → MainSidebar-D1_1YFQZ.css} +2 -2
  33. package/dist/assets/{NodeCreation-BEjdAYc_.js → NodeCreation-nHiG-Lhi.js} +9 -5
  34. package/dist/assets/{NodeCreator-D9fmPdS2.css → NodeCreator-D18StsVZ.css} +1021 -174
  35. package/dist/assets/{NodeCreator-cEUgbAI9.js → NodeCreator-weAzsmlU.js} +862 -418
  36. package/dist/assets/{NodeDetailsView-D4O9dKTA.js → NodeDetailsView-BsXbcyfb.js} +22 -15
  37. package/dist/assets/{NodeDetailsView-DsFLtbxi.css → NodeDetailsView-DpO8nTmN.css} +16 -16
  38. package/dist/assets/{NodeView-DDSOUm8E.js → NodeView-BY1O3wWl.js} +104 -50
  39. package/dist/assets/{ProjectCardBadge-BNn2hiMe.js → ProjectCardBadge-3xpk5Z4e.js} +38 -2
  40. package/dist/assets/{ProjectHeader-CaEZ2OPj.js → ProjectHeader-CpoOisjf.js} +106 -64
  41. package/dist/assets/{ProjectSettings-otA8E-yW.js → ProjectSettings-B__3XaPY.js} +14 -3
  42. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-C3JbZMCk.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-DaoPdG_5.js} +1 -1
  43. package/dist/assets/{ResourcesListLayout-1d9Ic6VX.js → ResourcesListLayout-DAxou314.js} +156 -53
  44. package/dist/assets/{ResourcesListLayout-CtGME7aU.css → ResourcesListLayout-DuNjbsMn.css} +8 -8
  45. package/dist/assets/{RunData-BjlZgIyx.css → RunData-CE5FsU6k.css} +2 -2
  46. package/dist/assets/{RunData-Bx47sNQp.js → RunData-fnd-jejc.js} +257 -99
  47. package/dist/assets/{RunDataAi-DOac7nwD.js → RunDataAi-Ck3VGKP_.js} +3 -4
  48. package/dist/assets/{RunDataJson-Pev6yNEV.js → RunDataJson-B80Z4URL.js} +7 -7
  49. package/dist/assets/{RunDataJsonActions-Co4xgmVq.js → RunDataJsonActions-CdZi1Qul.js} +1 -1
  50. package/dist/assets/{RunDataParsedAiContent-D6MNLmT3.js → RunDataParsedAiContent-BczxQ63H.js} +5 -5
  51. package/dist/assets/{RunDataSearch-C8orcAlP.js → RunDataSearch-C4KmCz4c.js} +1 -1
  52. package/dist/assets/{RunDataTable-oi_l8dhA.js → RunDataTable-CsLCZIWp.js} +3 -3
  53. package/dist/assets/{SamlOnboarding-CT5J6dx0.js → SamlOnboarding-DkhjCrPa.js} +3 -3
  54. package/dist/assets/{SettingsApiView-CupjcI9v.js → SettingsApiView-Ci2-rEpm.js} +1 -1
  55. package/dist/assets/{SettingsCommunityNodesView-B5K2VLyJ.js → SettingsCommunityNodesView-_UOppuqS.js} +24 -11
  56. package/dist/assets/{SettingsExternalSecrets-BidJCf_t.js → SettingsExternalSecrets-DHIkKr53.js} +1 -1
  57. package/dist/assets/{SettingsLdapView-Cva6akhW.js → SettingsLdapView-B8ezgdqP.js} +1 -1
  58. package/dist/assets/{SettingsLogStreamingView-Cy-rAKUO.js → SettingsLogStreamingView-YP6Xy7Fe.js} +1 -1
  59. package/dist/assets/{SettingsPersonalView-ZJ1Syok2.js → SettingsPersonalView-BmbFyWPb.js} +1 -1
  60. package/dist/assets/{SettingsSourceControl-CMtqqlkO.js → SettingsSourceControl-DwaOdDke.js} +1 -1
  61. package/dist/assets/{SettingsSso-Bi3OpykL.js → SettingsSso-DOC-P2wt.js} +14 -1
  62. package/dist/assets/{SettingsUsageAndPlan-C5TbwZhP.js → SettingsUsageAndPlan-DVOLlEkG.js} +1 -1
  63. package/dist/assets/{SettingsUsersView-BHuP5k0A.js → SettingsUsersView-CN_KLeIm.js} +1 -1
  64. package/dist/assets/{SettingsView-DPIIqaKN.js → SettingsView-DiAhLyco.js} +1 -1
  65. package/dist/assets/{SetupView-C4V9j6sh.js → SetupView-OE_yCNOU.js} +3 -3
  66. package/dist/assets/{SetupWorkflowCredentialsButton-BZ9ILQUp.js → SetupWorkflowCredentialsButton-Dx1IkZgW.js} +1 -1
  67. package/dist/assets/{SetupWorkflowFromTemplateView-3uV3zSU2.js → SetupWorkflowFromTemplateView-lQXKgIuL.js} +3 -3
  68. package/dist/assets/{SigninView-DWZHdCjG.js → SigninView-BWSrzbF7.js} +3 -3
  69. package/dist/assets/{SignoutView-DbduXAir.js → SignoutView-DxGgFxt2.js} +1 -1
  70. package/dist/assets/{SignupView-DWq6VACk.js → SignupView-Dtu5bMqF.js} +3 -3
  71. package/dist/assets/{TemplateDetails-BckqE6GK.js → TemplateDetails-CQ7TYqsP.js} +1 -1
  72. package/dist/assets/{TemplateList-Bw0JeBMP.js → TemplateList-Cxmv-0p-.js} +1 -1
  73. package/dist/assets/{TemplatesCollectionView-CAKT-mpV.js → TemplatesCollectionView-xvV6FXib.js} +5 -5
  74. package/dist/assets/{TemplatesSearchView-I2a5us58.js → TemplatesSearchView-CsECyZ52.js} +3 -3
  75. package/dist/assets/{TemplatesView-6EwGFFJK.js → TemplatesView-DrEKpZTU.js} +1 -1
  76. package/dist/assets/{TemplatesWorkflowView-C8xYMhwu.js → TemplatesWorkflowView-iSAL_yol.js} +5 -5
  77. package/dist/assets/{TestDefinitionEditView-CNd3Cuzq.js → TestDefinitionEditView-C3ohfu_r.js} +6 -7
  78. package/dist/assets/{TestDefinitionListView-BwTWIaAM.js → TestDefinitionListView-Dwto0jxH.js} +1 -1
  79. package/dist/assets/{TestDefinitionNewView-BQas0_G1.js → TestDefinitionNewView-9xVUm2ZJ.js} +2 -2
  80. package/dist/assets/{TestDefinitionRootView-D971MFye.js → TestDefinitionRootView-DLurQ4xl.js} +1 -1
  81. package/dist/assets/{VariablesView-DcBBuFxh.js → VariablesView-Cg2WSt_e.js} +4 -3
  82. package/dist/assets/{WorkerView-DSgBNIeb.js → WorkerView-BG-Dl0Ej.js} +6 -6
  83. package/dist/assets/{WorkflowActivator-DAyH7N29.css → WorkflowActivator-DrMTmuTZ.css} +2 -2
  84. package/dist/assets/{WorkflowActivator-CPCbgb_n.js → WorkflowActivator-e7wvW1kJ.js} +17 -11
  85. package/dist/assets/{WorkflowExecutionsInfoAccordion-Bc6vzAZu.js → WorkflowExecutionsInfoAccordion-CijtfO0l.js} +1 -1
  86. package/dist/assets/{WorkflowExecutionsLandingPage-BPPS4V9i.js → WorkflowExecutionsLandingPage-Do4y1yOx.js} +2 -2
  87. package/dist/assets/{WorkflowExecutionsPreview-Bbb5MB8Z.js → WorkflowExecutionsPreview-Bqo_3PXl.js} +6 -6
  88. package/dist/assets/{WorkflowExecutionsView-Pz-7iHJY.js → WorkflowExecutionsView-C1gS45nc.js} +10 -10
  89. package/dist/assets/{WorkflowHistory-Czo9IuI6.js → WorkflowHistory-CypQw7rC.js} +37 -19
  90. package/dist/assets/{WorkflowOnboardingView-B8DdkfJ5.js → WorkflowOnboardingView-DoKXpaNj.js} +1 -1
  91. package/dist/assets/{WorkflowPreview-eVlO1itk.js → WorkflowPreview-Bxs5XzBX.js} +1 -1
  92. package/dist/assets/{WorkflowsView-Cr2D0vym.js → WorkflowsView-BlvgD3xI.js} +299 -157
  93. package/dist/assets/{WorkflowsView-B2_HJCJ5.css → WorkflowsView-CQvTAWQ0.css} +24 -13
  94. package/dist/assets/{chartjs.utils-Dk1WO3Mr.js → chartjs.utils-CuWcgqCr.js} +2 -2
  95. package/dist/assets/{dateFormatter-C8N5khiG.js → dateFormatter-LbucaaRt.js} +1 -1
  96. package/dist/assets/{easyAiWorkflowUtils-CLqHnasO.js → easyAiWorkflowUtils-_kvYb5hw.js} +1 -1
  97. package/dist/assets/{global-link-actions-BvoZh8u9.js → global-link-actions-DG0SjhQE.js} +1 -1
  98. package/dist/assets/{import-curl-BpxkGYMX.js → import-curl-DQ6uPzZ1.js} +1 -1
  99. package/dist/assets/{index-DCpy4nCU.css → index-BA8d2DN9.css} +311 -515
  100. package/dist/assets/{index-B6eunbxp.js → index-hdsPF3tl.js} +61611 -57550
  101. package/dist/assets/{index-Br8T1Gn6.js → index-vIybYvt3.js} +1 -1
  102. package/dist/assets/{pickBy-8Urz9lDY.js → pickBy-DmKUpB7M.js} +1 -1
  103. package/dist/assets/{polyfills-CLZ4X0Ad.js → polyfills-J2x06Gdp.js} +157 -224
  104. package/dist/assets/{templateActions-DzjysjbQ.js → templateActions-DxoxchKp.js} +1 -1
  105. package/dist/assets/{typescript.worker-BsxN2afA.js → typescript.worker-B1loTpxy.js} +1 -1
  106. package/dist/assets/{useBeforeUnload-DxrN8vOO.js → useBeforeUnload-B7JAQiE8.js} +1 -1
  107. package/dist/assets/{useCanvasMapping-cuXLM-h-.css → useCanvasMapping-CFf4cwnq.css} +6 -5
  108. package/dist/assets/{useCanvasMapping-C2BQB9QB.js → useCanvasMapping-CvcOHj5p.js} +94 -50
  109. package/dist/assets/{useClearExecutionButtonVisible-BV-jMf2m.js → useClearExecutionButtonVisible-DFNEJves.js} +1 -2
  110. package/dist/assets/{useExecutionDebugging-0pPCimcw.js → useExecutionDebugging-DsRIfE0y.js} +1 -1
  111. package/dist/assets/{useExecutionHelpers-DIvhViMz.js → useExecutionHelpers-CEOL8_vt.js} +3 -3
  112. package/dist/assets/{useImportCurlCommand-BWf4R83s.js → useImportCurlCommand-DdIN4YaF.js} +2 -2
  113. package/dist/assets/useProjectPages-OGc-GAxb.js +17 -0
  114. package/dist/assets/{usePushConnection-Pobjq0U9.js → usePushConnection-DNGIaS0A.js} +29 -127
  115. package/dist/assets/{useTestDefinitionForm-BA3IS_2B.js → useTestDefinitionForm-Bi6EgFVm.js} +1 -1
  116. package/dist/assets/{useWorkflowActivate-DFqvrpj6.js → useWorkflowActivate-CJ1hLmv2.js} +1 -1
  117. package/dist/assets/{useWorkflowSaving-BACesUoL.js → useWorkflowSaving-BuokdhTC.js} +2 -2
  118. package/dist/index.html +3 -3
  119. package/package.json +1 -1
  120. package/tsconfig.json +1 -0
  121. package/vite.config.mts +4 -0
  122. package/dist/assets/CollectionParameter-BeCTpZ-q.js +0 -4
  123. package/dist/assets/InsightsSummary-gldDQ9rg.js +0 -207
  124. package/dist/assets/useCanvasOperations-DaP5jKbH.js +0 -3183
@@ -1,7 +1,7 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RunDataTable-oi_l8dhA.js","assets/index-B6eunbxp.js","assets/index-DCpy4nCU.css","assets/useExecutionHelpers-DIvhViMz.js","assets/dateFormatter-C8N5khiG.js","assets/RunDataTable-CUxj7dHx.css","assets/RunDataJson-Pev6yNEV.js","assets/FileSaver.min-BzAtcQXX.js","assets/RunDataJson-BH9HLoGC.css","assets/RunDataParsedAiContent-D6MNLmT3.js","assets/RunDataParsedAiContent-9EEUzCKp.css","assets/RunDataSearch-C8orcAlP.js","assets/RunDataSearch-R6qtl0Jf.css"])))=>i.map(i=>d[i]);
2
- import { dN as hasKey, cv as getDefaultExportFromCjs, dO as AGENT_LANGCHAIN_NODE_TYPE, b1 as isRef, dP as isReactive, dQ as isProxy, df as toRaw, d as defineComponent, bf as useClipboard, a as useToast, dR as useAIAssistantHelpers, bz as useNodeTypesStore, as as useNDVStore, Z as useRootStore, dC as useAssistantStore, H as useUIStore, q as computed, dS as MAX_DISPLAY_DATA_SIZE, dT as isCommunityPackageName, c as useI18n, h as resolveComponent, cm as resolveDirective, i as createElementBlock, g as openBlock, n as normalizeClass, k as createBaseVNode, f as createCommentVNode, aA as withDirectives, t as toDisplayString, j as createVNode, m as unref, dU as InlineAskAssistantButton, w as withCtx, aT as _sfc_main$b, l as createTextVNode, F as Fragment, D as renderList, dV as NEW_ASSISTANT_SESSION_MODAL, cs as sanitizeHtml, bm as NodeConnectionTypes, dW as isObjectEmpty, be as N8nText, b2 as withModifiers, _ as _export_sfc, dX as requireVue, dY as sanitizeHtml$1, dZ as sanitizeHtmlExports, r as ref, Q as useWorkflowsStore, o as onMounted, b_ as jsonParse, e as createBlock, bA as useNodeHelpers, aR as N8nTooltip, aS as N8nLink, X as watch, bG as N8nRadioButtons, aV as createSlots, bE as N8nIcon, a0 as useSourceControlStore, dD as useSchemaPreviewStore, au as usePostHog, R as useRoute, bN as toRef, bq as usePinnedData, d_ as useNodeType, cR as storeToRefs, d$ as TRIMMED_TASK_DATA_CONNECTIONS_KEY, e0 as executionDataToJson, e1 as NODE_TYPES_EXCLUDED_FROM_OUTPUT_NAME_APPEND, e2 as CORE_NODES_CATEGORY, e3 as SCHEMA_PREVIEW_EXPERIMENT, e4 as computedAsync, bH as ndvEventBus, ag as useTelemetry, y as onBeforeUnmount, aJ as useStorage, e5 as LOCAL_STORAGE_PIN_DATA_DISCOVERY_NDV_FLAG, e6 as dataPinningEventBus, e7 as LOCAL_STORAGE_PIN_DATA_DISCOVERY_CANVAS_FLAG, e8 as searchInObject, bx as getConnectionTypes, e9 as isObject, ea as MAX_DISPLAY_DATA_SIZE_SCHEMA_VIEW, eb as HTML_NODE_TYPE, x as renderSlot, c4 as N8nCallout, ec as DATA_PINNING_DOCS_URL, aB as vShow, c2 as Suspense, c3 as defineAsyncComponent, b4 as normalizeProps, b7 as mergeProps, bg as N8nButton, ed as _sfc_main$c, ee as N8nSelect, ef as N8nTabs, b5 as guardReactiveProps, eg as _sfc_main$d, eh as JsonEditor, ei as DATA_EDITING_DOCS_URL, dq as InfoTip, ej as N8nBlockUi, ao as __vitePreload, ek as isPresent, by as getNodeOutputs, el as getGenericHints, em as clearJsonKey, en as TEST_PIN_DATA, aP as useExternalHooks, eo as isEmpty, ep as isEqual } from "./index-B6eunbxp.js";
3
- import { F as FileSaver_minExports } from "./FileSaver.min-BzAtcQXX.js";
4
- import { u as useExecutionHelpers } from "./useExecutionHelpers-DIvhViMz.js";
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RunDataTable-CsLCZIWp.js","assets/index-hdsPF3tl.js","assets/index-BA8d2DN9.css","assets/useExecutionHelpers-CEOL8_vt.js","assets/dateFormatter-LbucaaRt.js","assets/RunDataTable-CUxj7dHx.css","assets/RunDataJson-B80Z4URL.js","assets/FileSaver.min-C1p9Eies.js","assets/RunDataJson-BH9HLoGC.css","assets/RunDataParsedAiContent-BczxQ63H.js","assets/RunDataParsedAiContent-9EEUzCKp.css","assets/RunDataSearch-C4KmCz4c.js","assets/RunDataSearch-R6qtl0Jf.css"])))=>i.map(i=>d[i]);
2
+ import { dX as hasKey, cD as getDefaultExportFromCjs, d as defineComponent, r as ref, dY as MarkdownIt, q as computed, aq as h, b2 as isRef, dZ as isReactive, d_ as isProxy, dn as toRaw, d$ as AGENT_LANGCHAIN_NODE_TYPE, bg as useClipboard, a as useToast, e0 as useAIAssistantHelpers, bz as useNodeTypesStore, as as useNDVStore, Z as useRootStore, dL as useAssistantStore, H as useUIStore, e1 as MAX_DISPLAY_DATA_SIZE, dN as isCommunityPackageName, c as useI18n, h as resolveComponent, cu as resolveDirective, i as createElementBlock, g as openBlock, n as normalizeClass, k as createBaseVNode, f as createCommentVNode, aA as withDirectives, t as toDisplayString, j as createVNode, m as unref, e2 as InlineAskAssistantButton, w as withCtx, aT as _sfc_main$b, l as createTextVNode, F as Fragment, D as renderList, e3 as NEW_ASSISTANT_SESSION_MODAL, cA as sanitizeHtml, by as NodeConnectionTypes, e4 as isObjectEmpty, bf as N8nText, b3 as withModifiers, _ as _export_sfc, e5 as requireVue, e6 as sanitizeHtml$1, e7 as sanitizeHtmlExports, Q as useWorkflowsStore, o as onMounted, c3 as jsonParse, e as createBlock, bA as useNodeHelpers, aR as N8nTooltip, aS as N8nLink, X as watch, bJ as N8nRadioButtons, aV as createSlots, bF as N8nIcon, a0 as useSourceControlStore, dM as useSchemaPreviewStore, R as useRoute, bI as toRef, bl as usePinnedData, e8 as useNodeType, cZ as storeToRefs, e9 as TRIMMED_TASK_DATA_CONNECTIONS_KEY, ea as executionDataToJson, eb as NODE_TYPES_EXCLUDED_FROM_OUTPUT_NAME_APPEND, ec as CORE_NODES_CATEGORY, ed as computedAsync, bQ as ndvEventBus, ag as useTelemetry, y as onBeforeUnmount, aJ as useStorage, ee as LOCAL_STORAGE_PIN_DATA_DISCOVERY_NDV_FLAG, ef as dataPinningEventBus, eg as LOCAL_STORAGE_PIN_DATA_DISCOVERY_CANVAS_FLAG, eh as searchInObject, bw as getConnectionTypes, ei as isObject, ej as MAX_DISPLAY_DATA_SIZE_SCHEMA_VIEW, ek as HTML_NODE_TYPE, x as renderSlot, cb as N8nCallout, el as DATA_PINNING_DOCS_URL, aB as vShow, c9 as Suspense, ca as defineAsyncComponent, b5 as normalizeProps, b8 as mergeProps, bh as N8nButton, em as _sfc_main$c, en as N8nSelect, eo as N8nTabs, b6 as guardReactiveProps, ep as _sfc_main$d, eq as JsonEditor, er as DATA_EDITING_DOCS_URL, dy as InfoTip, es as N8nBlockUi, ao as __vitePreload, et as isPresent, bx as getNodeOutputs, eu as getGenericHints, ev as clearJsonKey, ew as TEST_PIN_DATA, aP as useExternalHooks, ex as isEmpty, ey as isEqual } from "./index-hdsPF3tl.js";
3
+ import { F as FileSaver_minExports } from "./FileSaver.min-C1p9Eies.js";
4
+ import { u as useExecutionHelpers } from "./useExecutionHelpers-CEOL8_vt.js";
5
5
  function responseHasSubworkflowData(response) {
6
6
  return ["executionId", "workflowId"].every(
7
7
  (x) => hasKey(response, x) && typeof response[x] === "string"
@@ -1583,6 +1583,31 @@ function requireCore() {
1583
1583
  }
1584
1584
  var coreExports = /* @__PURE__ */ requireCore();
1585
1585
  const HighlightJS = /* @__PURE__ */ getDefaultExportFromCjs(coreExports);
1586
+ const VueMarkdown = defineComponent({
1587
+ name: "VueMarkdown",
1588
+ props: {
1589
+ source: {
1590
+ type: String,
1591
+ required: true
1592
+ },
1593
+ options: {
1594
+ type: Object,
1595
+ required: false
1596
+ },
1597
+ plugins: {
1598
+ type: Array,
1599
+ required: false
1600
+ }
1601
+ },
1602
+ setup(props) {
1603
+ const md = ref(new MarkdownIt(props.options ?? {}));
1604
+ for (const plugin of props.plugins ?? []) {
1605
+ md.value.use(plugin);
1606
+ }
1607
+ const content = computed(() => md.value.render(props.source));
1608
+ return () => h("div", { innerHTML: content.value });
1609
+ }
1610
+ });
1586
1611
  function createNode(parent, nodeName, currentDepth, runIndex, r, children = []) {
1587
1612
  return {
1588
1613
  parent,
@@ -1606,9 +1631,17 @@ function getTreeNodeDataRec(parent, nodeName, currentDepth, workflow, aiData, ru
1606
1631
  if (!connections) {
1607
1632
  return resultData.map((d) => createNode(parent, nodeName, currentDepth, d.runIndex, d));
1608
1633
  }
1634
+ const filteredAiData = currentDepth === 0 ? aiData?.filter(({ data }) => {
1635
+ if (!data?.source || data.source.every((source) => source === null)) {
1636
+ return true;
1637
+ }
1638
+ return data.source.some(
1639
+ (source) => source?.previousNode === nodeName && (runIndex === void 0 || source.previousNodeRun === runIndex)
1640
+ );
1641
+ }) : aiData;
1609
1642
  const connectedSubNodes = workflow.getParentNodes(nodeName, "ALL_NON_MAIN", 1);
1610
1643
  const treeNode = createNode(parent, nodeName, currentDepth, runIndex ?? 0);
1611
- const children = (aiData ?? []).flatMap(
1644
+ const children = (filteredAiData ?? []).flatMap(
1612
1645
  (data) => connectedSubNodes.includes(data.node) && (runIndex === void 0 || data.runIndex === runIndex) ? getTreeNodeDataRec(treeNode, data.node, currentDepth + 1, workflow, aiData, data.runIndex) : []
1613
1646
  );
1614
1647
  treeNode.children = children;
@@ -1649,6 +1682,9 @@ function getReferencedData(taskData, withInput, withOutput) {
1649
1682
  data: data[type][0],
1650
1683
  inOut,
1651
1684
  type,
1685
+ // Include source information in AI content to track which node triggered the execution
1686
+ // This enables filtering in the UI to show only relevant executions
1687
+ source: taskData.source,
1652
1688
  metadata: {
1653
1689
  executionTime: taskData.executionTime,
1654
1690
  startTime: taskData.startTime,
@@ -1714,92 +1750,150 @@ function getConsumedTokensV2(task) {
1714
1750
  }, emptyTokenUsageData);
1715
1751
  return tokenUsage;
1716
1752
  }
1717
- function createNodeV2(parent, node, currentDepth, runIndex, runData, children = []) {
1753
+ function createNodeV2(node, context, runIndex, runData, children = []) {
1718
1754
  return {
1719
- parent,
1755
+ parent: context.parent,
1720
1756
  node,
1721
- id: `${node.name}:${runIndex}`,
1722
- depth: currentDepth,
1757
+ id: `${context.workflow.id}:${node.name}:${context.executionId}:${runIndex}`,
1758
+ depth: context.depth,
1723
1759
  runIndex,
1724
1760
  runData,
1725
1761
  children,
1726
- consumedTokens: getConsumedTokensV2(runData)
1762
+ consumedTokens: getConsumedTokensV2(runData),
1763
+ workflow: context.workflow,
1764
+ executionId: context.executionId,
1765
+ execution: context.data
1727
1766
  };
1728
1767
  }
1729
- function getTreeNodeDataV2(nodeName, runData, workflow, data, runIndex) {
1730
- const node = workflow.getNode(nodeName);
1731
- return node ? getTreeNodeDataRecV2(void 0, node, runData, 0, workflow, data, runIndex) : [];
1768
+ function getTreeNodeDataV2(nodeName, runData, runIndex, context) {
1769
+ const node = context.workflow.getNode(nodeName);
1770
+ return node ? getTreeNodeDataRecV2(node, runData, context, runIndex) : [];
1732
1771
  }
1733
- function getTreeNodeDataRecV2(parent, node, runData, currentDepth, workflow, data, runIndex) {
1734
- const connectedSubNodes = workflow.getParentNodes(node.name, "ALL_NON_MAIN", 1);
1735
- const treeNode = createNodeV2(parent, node, currentDepth, runIndex ?? 0, runData);
1736
- const children = connectedSubNodes.flatMap(
1737
- (subNodeName) => (data[subNodeName] ?? []).flatMap((t, index) => {
1738
- if (runIndex !== void 0 && index !== runIndex) {
1772
+ function getChildNodes(treeNode, node, runIndex, context) {
1773
+ if (hasSubExecution(treeNode)) {
1774
+ const workflowId = treeNode.runData.metadata?.subExecution?.workflowId;
1775
+ const executionId = treeNode.runData.metadata?.subExecution?.executionId;
1776
+ const workflow = workflowId ? context.workflows[workflowId] : void 0;
1777
+ const subWorkflowRunData = executionId ? context.subWorkflowData[executionId] : void 0;
1778
+ if (!workflow || !subWorkflowRunData || !executionId) {
1779
+ return [];
1780
+ }
1781
+ return createLogTreeRec({
1782
+ ...context,
1783
+ parent: treeNode,
1784
+ depth: context.depth + 1,
1785
+ workflow,
1786
+ executionId,
1787
+ data: subWorkflowRunData
1788
+ });
1789
+ }
1790
+ const connectedSubNodes = context.workflow.getParentNodes(node.name, "ALL_NON_MAIN", 1);
1791
+ const isExecutionRoot = treeNode.parent === void 0 || treeNode.executionId !== treeNode.parent.executionId;
1792
+ return connectedSubNodes.flatMap(
1793
+ (subNodeName) => (context.data.resultData.runData[subNodeName] ?? []).flatMap((t, index) => {
1794
+ const isMatched = isExecutionRoot && t.source.some((source) => source !== null) ? t.source.some(
1795
+ (source) => source?.previousNode === node.name && (runIndex === void 0 || source.previousNodeRun === runIndex)
1796
+ ) : runIndex === void 0 || index === runIndex;
1797
+ if (!isMatched) {
1739
1798
  return [];
1740
1799
  }
1741
- const subNode = workflow.getNode(subNodeName);
1742
- return subNode ? getTreeNodeDataRecV2(treeNode, subNode, t, currentDepth + 1, workflow, data, index) : [];
1800
+ const subNode = context.workflow.getNode(subNodeName);
1801
+ return subNode ? getTreeNodeDataRecV2(
1802
+ subNode,
1803
+ t,
1804
+ { ...context, depth: context.depth + 1, parent: treeNode },
1805
+ index
1806
+ ) : [];
1743
1807
  })
1744
- ).sort((a, b) => {
1745
- if (a.runData.executionIndex !== void 0 && b.runData.executionIndex !== void 0) {
1746
- return a.runData.executionIndex - b.runData.executionIndex;
1747
- }
1748
- const aTime = a.runData.startTime ?? 0;
1749
- const bTime = b.runData.startTime ?? 0;
1750
- return aTime - bTime;
1751
- });
1808
+ );
1809
+ }
1810
+ function getTreeNodeDataRecV2(node, runData, context, runIndex) {
1811
+ const treeNode = createNodeV2(node, context, runIndex ?? 0, runData);
1812
+ const children = getChildNodes(treeNode, node, runIndex, context).sort(sortLogEntries);
1752
1813
  treeNode.children = children;
1753
1814
  return [treeNode];
1754
1815
  }
1755
1816
  function getTotalConsumedTokens(...usage) {
1756
1817
  return usage.reduce(addTokenUsageData, emptyTokenUsageData);
1757
1818
  }
1758
- function getSubtreeTotalConsumedTokens(treeNode) {
1759
- return getTotalConsumedTokens(
1760
- treeNode.consumedTokens,
1761
- ...treeNode.children.map(getSubtreeTotalConsumedTokens)
1762
- );
1819
+ function getSubtreeTotalConsumedTokens(treeNode, includeSubWorkflow) {
1820
+ const executionId = treeNode.executionId;
1821
+ function calculate(currentNode) {
1822
+ if (!includeSubWorkflow && currentNode.executionId !== executionId) {
1823
+ return emptyTokenUsageData;
1824
+ }
1825
+ return getTotalConsumedTokens(
1826
+ currentNode.consumedTokens,
1827
+ ...currentNode.children.map(calculate)
1828
+ );
1829
+ }
1830
+ return calculate(treeNode);
1763
1831
  }
1764
- function findLogEntryToAutoSelectRec(data, subTree, depth) {
1832
+ function findLogEntryToAutoSelectRec(subTree, depth) {
1765
1833
  for (const entry of subTree) {
1766
- const taskData = data.data?.resultData.runData[entry.node.name]?.[entry.runIndex];
1767
- if (taskData?.error) {
1834
+ if (entry.runData?.error) {
1768
1835
  return entry;
1769
1836
  }
1770
- const childAutoSelect = findLogEntryToAutoSelectRec(data, entry.children, depth + 1);
1837
+ const childAutoSelect = findLogEntryToAutoSelectRec(entry.children, depth + 1);
1771
1838
  if (childAutoSelect) {
1772
1839
  return childAutoSelect;
1773
1840
  }
1774
- if (data.workflowData.nodes.find((n) => n.name === entry.node.name)?.type === AGENT_LANGCHAIN_NODE_TYPE) {
1841
+ if (entry.node.type === AGENT_LANGCHAIN_NODE_TYPE) {
1775
1842
  return entry;
1776
1843
  }
1777
1844
  }
1778
1845
  return depth === 0 ? subTree[0] : void 0;
1779
1846
  }
1780
- function createLogEntries(workflow, runData) {
1781
- const runs = Object.entries(runData).flatMap(
1782
- ([nodeName, taskData]) => workflow.getChildNodes(nodeName, "ALL_NON_MAIN").length > 0 || workflow.getNode(nodeName)?.disabled ? [] : taskData.map((task, runIndex) => ({ nodeName, task, runIndex }))
1783
- ).sort((a, b) => {
1784
- if (a.task.executionIndex !== void 0 && b.task.executionIndex !== void 0) {
1785
- return a.task.executionIndex - b.task.executionIndex;
1786
- }
1787
- return a.nodeName === b.nodeName ? a.runIndex - b.runIndex : a.task.startTime - b.task.startTime;
1788
- });
1789
- return runs.flatMap(({ nodeName, runIndex, task }) => {
1790
- if (workflow.getParentNodes(nodeName, "ALL_NON_MAIN").length > 0) {
1791
- return getTreeNodeDataV2(nodeName, task, workflow, runData, void 0);
1792
- }
1793
- return getTreeNodeDataV2(nodeName, task, workflow, runData, runIndex);
1847
+ function createLogTree(workflow, response, workflows = {}, subWorkflowData = {}) {
1848
+ return createLogTreeRec({
1849
+ parent: void 0,
1850
+ depth: 0,
1851
+ executionId: response.id,
1852
+ workflow,
1853
+ workflows,
1854
+ data: response.data ?? { resultData: { runData: {} } },
1855
+ subWorkflowData
1794
1856
  });
1795
1857
  }
1796
- function includesLogEntry(log, logs) {
1797
- return logs.some(
1798
- (l) => l.node.name === log.node.name && log.runIndex === l.runIndex || includesLogEntry(log, l.children)
1858
+ function createLogTreeRec(context) {
1859
+ const runs = Object.entries(context.data.resultData.runData).flatMap(
1860
+ ([nodeName, taskData]) => context.workflow.getChildNodes(nodeName, "ALL_NON_MAIN").length > 0 || context.workflow.getNode(nodeName)?.disabled ? [] : taskData.map((task, runIndex) => ({
1861
+ nodeName,
1862
+ runData: task,
1863
+ runIndex,
1864
+ nodeHasMultipleRuns: taskData.length > 1
1865
+ }))
1866
+ ).sort(sortLogEntries);
1867
+ return runs.flatMap(
1868
+ ({ nodeName, runIndex, runData, nodeHasMultipleRuns }) => getTreeNodeDataV2(nodeName, runData, nodeHasMultipleRuns ? runIndex : void 0, context)
1799
1869
  );
1800
1870
  }
1801
- function findSelectedLogEntry(state, execution) {
1802
- return state.type === "initial" || state.workflowId !== execution?.workflowData.id || state.type === "selected" && !includesLogEntry(state.data, execution.tree) ? execution ? findLogEntryToAutoSelectRec(execution, execution.tree, 0) : void 0 : state.type === "none" ? void 0 : state.data;
1871
+ function findLogEntryRec(id, entries) {
1872
+ for (const entry of entries) {
1873
+ if (entry.id === id) {
1874
+ return entry;
1875
+ }
1876
+ const child = findLogEntryRec(id, entry.children);
1877
+ if (child) {
1878
+ return child;
1879
+ }
1880
+ }
1881
+ return void 0;
1882
+ }
1883
+ function findSelectedLogEntry(selection, entries) {
1884
+ switch (selection.type) {
1885
+ case "initial":
1886
+ return findLogEntryToAutoSelectRec(entries, 0);
1887
+ case "none":
1888
+ return void 0;
1889
+ case "selected": {
1890
+ const entry = findLogEntryRec(selection.id, entries);
1891
+ if (entry) {
1892
+ return entry;
1893
+ }
1894
+ return findLogEntryToAutoSelectRec(entries, 0);
1895
+ }
1896
+ }
1803
1897
  }
1804
1898
  function deepToRaw(sourceObj) {
1805
1899
  const seen = /* @__PURE__ */ new WeakMap();
@@ -1835,6 +1929,70 @@ function flattenLogEntries(entries, collapsedEntryIds, ret = []) {
1835
1929
  }
1836
1930
  return ret;
1837
1931
  }
1932
+ function getEntryAtRelativeIndex(entries, id, relativeIndex) {
1933
+ const offset = entries.findIndex((e) => e.id === id);
1934
+ return offset === -1 ? void 0 : entries[offset + relativeIndex];
1935
+ }
1936
+ function sortLogEntries(a, b) {
1937
+ if (a.runData.startTime === b.runData.startTime) {
1938
+ return a.runData.executionIndex - b.runData.executionIndex;
1939
+ }
1940
+ return a.runData.startTime - b.runData.startTime;
1941
+ }
1942
+ function mergeStartData(startData, response) {
1943
+ if (!response.data) {
1944
+ return response;
1945
+ }
1946
+ const nodeNames = [
1947
+ ...new Set(
1948
+ Object.keys(startData).concat(Object.keys(response.data.resultData.runData))
1949
+ ).values()
1950
+ ];
1951
+ const runData = Object.fromEntries(
1952
+ nodeNames.map((nodeName) => {
1953
+ const tasks = response.data?.resultData.runData[nodeName] ?? [];
1954
+ const mergedTasks = tasks.concat(
1955
+ (startData[nodeName] ?? []).filter(
1956
+ (task) => (
1957
+ // To remove duplicate runs, we check start time in addition to execution index
1958
+ // because nodes such as Wait and Form emits multiple websocket events with
1959
+ // different execution index for a single run
1960
+ tasks.every(
1961
+ (t) => t.startTime < task.startTime && t.executionIndex !== task.executionIndex
1962
+ )
1963
+ )
1964
+ ).map((task) => ({
1965
+ ...task,
1966
+ executionTime: 0,
1967
+ executionStatus: "running"
1968
+ }))
1969
+ );
1970
+ return [nodeName, mergedTasks];
1971
+ })
1972
+ );
1973
+ return {
1974
+ ...response,
1975
+ data: {
1976
+ ...response.data,
1977
+ resultData: {
1978
+ ...response.data.resultData,
1979
+ runData
1980
+ }
1981
+ }
1982
+ };
1983
+ }
1984
+ function hasSubExecution(entry) {
1985
+ return !!entry.runData.metadata?.subExecution;
1986
+ }
1987
+ function getDepth(entry) {
1988
+ let depth = 0;
1989
+ let currentEntry = entry;
1990
+ while (currentEntry.parent !== void 0) {
1991
+ currentEntry = currentEntry.parent;
1992
+ depth++;
1993
+ }
1994
+ return depth;
1995
+ }
1838
1996
  const _hoisted_1$8 = { class: "node-error-view__header" };
1839
1997
  const _hoisted_2$4 = {
1840
1998
  class: "node-error-view__header-message",
@@ -2783,20 +2941,20 @@ function requireVueJsonPretty() {
2783
2941
  function p(e3) {
2784
2942
  var t3 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "root", n3 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, o2 = arguments.length > 3 ? arguments[3] : void 0, r2 = o2 || {}, l2 = r2.key, a2 = r2.index, c2 = r2.type, i2 = void 0 === c2 ? "content" : c2, u2 = r2.showComma, d2 = void 0 !== u2 && u2, f2 = r2.length, y2 = void 0 === f2 ? 1 : f2, v2 = s(e3);
2785
2943
  if ("array" === v2) {
2786
- var b2 = h(e3.map(function(e4, o3, r3) {
2944
+ var b2 = h2(e3.map(function(e4, o3, r3) {
2787
2945
  return p(e4, "".concat(t3, "[").concat(o3, "]"), n3 + 1, { index: o3, showComma: o3 !== r3.length - 1, length: y2, type: i2 });
2788
2946
  }));
2789
2947
  return [p("[", t3, n3, { showComma: false, key: l2, length: e3.length, type: "arrayStart" })[0]].concat(b2, p("]", t3, n3, { showComma: d2, length: e3.length, type: "arrayEnd" })[0]);
2790
2948
  }
2791
2949
  if ("object" === v2) {
2792
- var g2 = Object.keys(e3), m2 = h(g2.map(function(o3, r3, l3) {
2950
+ var g2 = Object.keys(e3), m2 = h2(g2.map(function(o3, r3, l3) {
2793
2951
  return p(e3[o3], /^[a-zA-Z_]\w*$/.test(o3) ? "".concat(t3, ".").concat(o3) : "".concat(t3, '["').concat(o3, '"]'), n3 + 1, { key: o3, showComma: r3 !== l3.length - 1, length: y2, type: i2 });
2794
2952
  }));
2795
2953
  return [p("{", t3, n3, { showComma: false, key: l2, index: a2, length: g2.length, type: "objectStart" })[0]].concat(m2, p("}", t3, n3, { showComma: d2, length: g2.length, type: "objectEnd" })[0]);
2796
2954
  }
2797
2955
  return [{ content: e3, level: n3, key: l2, index: a2, path: t3, showComma: d2, length: y2, type: i2 }];
2798
2956
  }
2799
- function h(e3) {
2957
+ function h2(e3) {
2800
2958
  if ("function" == typeof Array.prototype.flat) return e3.flat();
2801
2959
  for (var t3 = n2(e3), o2 = []; t3.length; ) {
2802
2960
  var r2 = t3.shift();
@@ -2855,7 +3013,7 @@ function requireVueJsonPretty() {
2855
3013
  return "multiple" === e3.selectableType;
2856
3014
  }), p2 = (0, a.computed)(function() {
2857
3015
  return "single" === e3.selectableType;
2858
- }), h2 = (0, a.computed)(function() {
3016
+ }), h3 = (0, a.computed)(function() {
2859
3017
  return e3.nodeSelectable(e3.node) && (d2.value || p2.value);
2860
3018
  }), f2 = (0, a.reactive)({ editing: false }), y2 = function(t4) {
2861
3019
  var o3, r3, l3 = "null" === (r3 = null === (o3 = t4.target) || void 0 === o3 ? void 0 : o3.value) ? null : "undefined" === r3 ? void 0 : "true" === r3 || "false" !== r3 && (r3[0] + r3[r3.length - 1] === '""' || r3[0] + r3[r3.length - 1] === "''" ? r3.slice(1, -1) : "number" == typeof Number(r3) && !isNaN(Number(r3)) || "NaN" === r3 ? Number(r3) : r3);
@@ -2873,7 +3031,7 @@ function requireVueJsonPretty() {
2873
3031
  }, C2 = function() {
2874
3032
  n3("selectedChange", e3.node);
2875
3033
  }, k2 = function() {
2876
- n3("nodeClick", e3.node), h2.value && e3.selectOnClickNode && n3("selectedChange", e3.node);
3034
+ n3("nodeClick", e3.node), h3.value && e3.selectOnClickNode && n3("selectedChange", e3.node);
2877
3035
  }, w = function(t4) {
2878
3036
  if (e3.editable && !f2.editing) {
2879
3037
  f2.editing = true;
@@ -2886,7 +3044,7 @@ function requireVueJsonPretty() {
2886
3044
  };
2887
3045
  return function() {
2888
3046
  var t4, n4 = e3.node;
2889
- return (0, a.createVNode)("div", { class: { "vjs-tree-node": true, "has-selector": e3.showSelectController, "has-carets": e3.showIcon, "is-highlight": e3.highlightSelectedNode && e3.checked }, onClick: k2, style: e3.style }, [e3.showLineNumber && (0, a.createVNode)("span", { class: "vjs-node-index" }, [n4.id + 1]), e3.showSelectController && h2.value && "objectEnd" !== n4.type && "arrayEnd" !== n4.type && (0, a.createVNode)(i, { isMultiple: d2.value, checked: e3.checked, onChange: C2 }, null), (0, a.createVNode)("div", { class: "vjs-indent" }, [Array.from(Array(n4.level)).map(function(t5, n5) {
3047
+ return (0, a.createVNode)("div", { class: { "vjs-tree-node": true, "has-selector": e3.showSelectController, "has-carets": e3.showIcon, "is-highlight": e3.highlightSelectedNode && e3.checked }, onClick: k2, style: e3.style }, [e3.showLineNumber && (0, a.createVNode)("span", { class: "vjs-node-index" }, [n4.id + 1]), e3.showSelectController && h3.value && "objectEnd" !== n4.type && "arrayEnd" !== n4.type && (0, a.createVNode)(i, { isMultiple: d2.value, checked: e3.checked, onChange: C2 }, null), (0, a.createVNode)("div", { class: "vjs-indent" }, [Array.from(Array(n4.level)).map(function(t5, n5) {
2890
3048
  return (0, a.createVNode)("div", { key: n5, class: { "vjs-indent-unit": true, "has-line": e3.showLine } }, null);
2891
3049
  }), e3.showIcon && (0, a.createVNode)(u, { nodeType: n4.type, onClick: m2 }, null)]), n4.key && (0, a.createVNode)("span", { class: "vjs-key" }, [(t4 = e3.renderNodeKey, t4 ? t4({ node: e3.node, defaultKey: l2.value || "" }) : l2.value), (0, a.createVNode)("span", { class: "vjs-colon" }, [":".concat(e3.showKeyValueSpace ? " " : "")])]), (0, a.createVNode)("span", null, ["content" !== n4.type && n4.content ? (0, a.createVNode)(c, { data: n4.content.toString(), onClick: g2 }, null) : (0, a.createVNode)("span", { class: r2.value, onClick: !e3.editable || e3.editableTrigger && "click" !== e3.editableTrigger ? void 0 : w, onDblclick: e3.editable && "dblclick" === e3.editableTrigger ? w : void 0 }, [e3.editable && f2.editing ? (0, a.createVNode)("input", { value: v2.value, onChange: y2, style: { padding: "3px 8px", border: "1px solid #eee", boxShadow: "none", boxSizing: "border-box", borderRadius: 5, fontFamily: "inherit" } }, null) : b2()]), n4.showComma && (0, a.createVNode)("span", null, [","]), e3.showLength && e3.collapsed && (0, a.createVNode)("span", { class: "vjs-comment" }, [(0, a.createTextVNode)(" // "), n4.length, (0, a.createTextVNode)(" items ")])])]);
2892
3050
  };
@@ -2924,7 +3082,7 @@ function requireVueJsonPretty() {
2924
3082
  var r3, a2 = o3.level >= t3, c3 = null === (r3 = e3.pathCollapsible) || void 0 === r3 ? void 0 : r3.call(e3, o3);
2925
3083
  return "objectStart" !== o3.type && "arrayStart" !== o3.type || !a2 && !c3 ? n3 : C(C({}, n3), {}, l({}, o3.path, 1));
2926
3084
  }, {});
2927
- }, s2 = (0, a.reactive)({ translateY: 0, visibleData: null, hiddenPaths: d2(e3.deep) }), h2 = (0, a.computed)(function() {
3085
+ }, s2 = (0, a.reactive)({ translateY: 0, visibleData: null, hiddenPaths: d2(e3.deep) }), h3 = (0, a.computed)(function() {
2928
3086
  for (var e4 = null, t3 = [], n3 = u2.value.length, o3 = 0; o3 < n3; o3++) {
2929
3087
  var r3 = C(C({}, u2.value[o3]), {}, { id: o3 }), l2 = s2.hiddenPaths[r3.path];
2930
3088
  if (e4 && e4.path === r3.path) {
@@ -2946,7 +3104,7 @@ function requireVueJsonPretty() {
2946
3104
  }), v2 = (0, a.computed)(function() {
2947
3105
  return !e3.selectableType || e3.selectOnClickNode || e3.showSelectController ? "" : "When selectableType is not null, selectOnClickNode and showSelectController cannot be false at the same time, because this will cause the selection to fail.";
2948
3106
  }), b2 = function() {
2949
- var t3 = h2.value;
3107
+ var t3 = h3.value;
2950
3108
  if (e3.virtual) {
2951
3109
  var n3, o3 = e3.height / e3.itemHeight, r3 = (null === (n3 = i2.value) || void 0 === n3 ? void 0 : n3.scrollTop) || 0, l2 = Math.floor(r3 / e3.itemHeight), a2 = l2 < 0 ? 0 : l2 + o3 > t3.length ? t3.length - o3 : l2;
2952
3110
  a2 < 0 && (a2 = 0);
@@ -3010,7 +3168,7 @@ function requireVueJsonPretty() {
3010
3168
  throw new Error("[VueJSONPretty] ".concat(e4));
3011
3169
  }(v2.value);
3012
3170
  }), (0, a.watchEffect)(function() {
3013
- h2.value && b2();
3171
+ h3.value && b2();
3014
3172
  }), (0, a.watch)(function() {
3015
3173
  return e3.deep;
3016
3174
  }, function(e4) {
@@ -3019,7 +3177,7 @@ function requireVueJsonPretty() {
3019
3177
  var t3, n3, o3 = null !== (t3 = e3.renderNodeKey) && void 0 !== t3 ? t3 : c2.renderNodeKey, r3 = null !== (n3 = e3.renderNodeValue) && void 0 !== n3 ? n3 : c2.renderNodeValue, l2 = s2.visibleData && s2.visibleData.map(function(t4) {
3020
3178
  return (0, a.createVNode)(g, { key: t4.id, node: t4, collapsed: !!s2.hiddenPaths[t4.path], showDoubleQuotes: e3.showDoubleQuotes, showLength: e3.showLength, checked: y2.value.includes(t4.path), selectableType: e3.selectableType, showLine: e3.showLine, showLineNumber: e3.showLineNumber, showSelectController: e3.showSelectController, selectOnClickNode: e3.selectOnClickNode, nodeSelectable: e3.nodeSelectable, highlightSelectedNode: e3.highlightSelectedNode, editable: e3.editable, editableTrigger: e3.editableTrigger, showIcon: e3.showIcon, showKeyValueSpace: e3.showKeyValueSpace, renderNodeKey: o3, renderNodeValue: r3, onNodeClick: w, onBracketsClick: j, onIconClick: S, onSelectedChange: k2, onValueChange: O, style: e3.itemHeight && 20 !== e3.itemHeight ? { lineHeight: "".concat(e3.itemHeight, "px") } : {} }, null);
3021
3179
  });
3022
- return (0, a.createVNode)("div", { ref: i2, class: { "vjs-tree": true, "is-virtual": e3.virtual }, onScroll: e3.virtual ? m2 : void 0, style: e3.showLineNumber ? C({ paddingLeft: "".concat(12 * Number(u2.value.length.toString().length), "px") }, e3.style) : e3.style }, [e3.virtual ? (0, a.createVNode)("div", { class: "vjs-tree-list", style: { height: "".concat(e3.height, "px") } }, [(0, a.createVNode)("div", { class: "vjs-tree-list-holder", style: { height: "".concat(h2.value.length * e3.itemHeight, "px") } }, [(0, a.createVNode)("div", { class: "vjs-tree-list-holder-inner", style: { transform: "translateY(".concat(s2.translateY, "px)") } }, [l2])])]) : l2]);
3180
+ return (0, a.createVNode)("div", { ref: i2, class: { "vjs-tree": true, "is-virtual": e3.virtual }, onScroll: e3.virtual ? m2 : void 0, style: e3.showLineNumber ? C({ paddingLeft: "".concat(12 * Number(u2.value.length.toString().length), "px") }, e3.style) : e3.style }, [e3.virtual ? (0, a.createVNode)("div", { class: "vjs-tree-list", style: { height: "".concat(e3.height, "px") } }, [(0, a.createVNode)("div", { class: "vjs-tree-list-holder", style: { height: "".concat(h3.value.length * e3.itemHeight, "px") } }, [(0, a.createVNode)("div", { class: "vjs-tree-list-holder-inner", style: { transform: "translateY(".concat(s2.translateY, "px)") } }, [l2])])]) : l2]);
3023
3181
  };
3024
3182
  } });
3025
3183
  }(), r;
@@ -3565,22 +3723,22 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
3565
3723
  emits: ["search", "runChange", "itemHover", "linkRun", "unlinkRun", "activatePane", "tableMounted", "displayModeChange"],
3566
3724
  setup(__props, { expose: __expose, emit: __emit }) {
3567
3725
  const LazyRunDataTable = defineAsyncComponent(
3568
- async () => await __vitePreload(() => import("./RunDataTable-oi_l8dhA.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0)
3726
+ async () => await __vitePreload(() => import("./RunDataTable-CsLCZIWp.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0)
3569
3727
  );
3570
3728
  const LazyRunDataJson = defineAsyncComponent(
3571
- async () => await __vitePreload(() => import("./RunDataJson-Pev6yNEV.js"), true ? __vite__mapDeps([6,1,2,7,3,4,8]) : void 0)
3729
+ async () => await __vitePreload(() => import("./RunDataJson-B80Z4URL.js"), true ? __vite__mapDeps([6,1,2,7,3,4,8]) : void 0)
3572
3730
  );
3573
3731
  const LazyRunDataSchema = defineAsyncComponent(
3574
- async () => await __vitePreload(() => import("./index-B6eunbxp.js").then((n) => n.iF), true ? __vite__mapDeps([1,2]) : void 0)
3732
+ async () => await __vitePreload(() => import("./index-hdsPF3tl.js").then((n) => n.i5), true ? __vite__mapDeps([1,2]) : void 0)
3575
3733
  );
3576
3734
  const LazyRunDataHtml = defineAsyncComponent(
3577
3735
  async () => await __vitePreload(() => Promise.resolve().then(() => RunDataHtml$1), true ? void 0 : void 0)
3578
3736
  );
3579
3737
  const LazyRunDataAi = defineAsyncComponent(
3580
- async () => await __vitePreload(() => import("./RunDataParsedAiContent-D6MNLmT3.js"), true ? __vite__mapDeps([9,1,2,7,3,4,10]) : void 0)
3738
+ async () => await __vitePreload(() => import("./RunDataParsedAiContent-BczxQ63H.js"), true ? __vite__mapDeps([9,1,2,7,3,4,10]) : void 0)
3581
3739
  );
3582
3740
  const LazyRunDataSearch = defineAsyncComponent(
3583
- async () => await __vitePreload(() => import("./RunDataSearch-C8orcAlP.js"), true ? __vite__mapDeps([11,1,2,12]) : void 0)
3741
+ async () => await __vitePreload(() => import("./RunDataSearch-C4KmCz4c.js"), true ? __vite__mapDeps([11,1,2,12]) : void 0)
3584
3742
  );
3585
3743
  const props = __props;
3586
3744
  const emit = __emit;
@@ -3604,7 +3762,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
3604
3762
  const rootStore = useRootStore();
3605
3763
  const uiStore = useUIStore();
3606
3764
  const schemaPreviewStore = useSchemaPreviewStore();
3607
- const posthogStore = usePostHog();
3608
3765
  const toast = useToast();
3609
3766
  const route = useRoute();
3610
3767
  const nodeHelpers = useNodeHelpers();
@@ -3619,9 +3776,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
3619
3776
  const { isSubNodeType } = useNodeType({
3620
3777
  node
3621
3778
  });
3779
+ const isArchivedWorkflow = computed(() => workflowsStore.workflow.isArchived);
3622
3780
  const isReadOnlyRoute = computed(() => route.meta.readOnlyCanvas === true);
3623
3781
  const isWaitNodeWaiting = computed(() => {
3624
- return node.value?.name && workflowExecution.value?.data?.resultData?.runData?.[node.value?.name]?.[props.runIndex]?.executionStatus === "waiting";
3782
+ return node.value?.name && workflowExecution.value?.resultData?.runData?.[node.value?.name]?.[props.runIndex]?.executionStatus === "waiting";
3625
3783
  });
3626
3784
  const { activeNode } = storeToRefs(ndvStore);
3627
3785
  const nodeType = computed(() => {
@@ -3679,13 +3837,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
3679
3837
  return [];
3680
3838
  });
3681
3839
  const workflowExecution = computed(
3682
- () => props.workflowExecution ?? workflowsStore.getWorkflowExecution ?? void 0
3840
+ () => props.workflowExecution ?? workflowsStore.getWorkflowExecution?.data ?? void 0
3683
3841
  );
3684
3842
  const workflowRunData = computed(() => {
3685
3843
  if (workflowExecution.value === void 0) {
3686
3844
  return null;
3687
3845
  }
3688
- const executionData = workflowExecution.value?.data;
3846
+ const executionData = workflowExecution.value;
3689
3847
  if (executionData?.resultData) {
3690
3848
  return executionData.resultData.runData;
3691
3849
  }
@@ -3841,7 +3999,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
3841
3999
  return canPinData.value;
3842
4000
  });
3843
4001
  const pinButtonDisabled = computed(
3844
- () => !rawInputData.value.length && !pinnedData.hasData.value || !!binaryData.value?.length || isReadOnlyRoute.value || readOnlyEnv.value
4002
+ () => !rawInputData.value.length && !pinnedData.hasData.value || !!binaryData.value?.length || isReadOnlyRoute.value || readOnlyEnv.value || isArchivedWorkflow.value
3845
4003
  );
3846
4004
  const activeTaskMetadata = computed(() => {
3847
4005
  if (!node.value) {
@@ -3867,12 +4025,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
3867
4025
  return Boolean(taskData?.inputOverride);
3868
4026
  });
3869
4027
  const isSchemaPreviewEnabled = computed(
3870
- () => props.paneType === "input" && !(nodeType.value?.codex?.categories ?? []).some(
3871
- (category) => category === CORE_NODES_CATEGORY
3872
- ) && posthogStore.isVariantEnabled(
3873
- SCHEMA_PREVIEW_EXPERIMENT.name,
3874
- SCHEMA_PREVIEW_EXPERIMENT.variant
3875
- )
4028
+ () => props.paneType === "input" && !(nodeType.value?.codex?.categories ?? []).some((category) => category === CORE_NODES_CATEGORY)
3876
4029
  );
3877
4030
  const hasPreviewSchema = computedAsync(async () => {
3878
4031
  if (!isSchemaPreviewEnabled.value || props.nodes.length === 0) return false;
@@ -4035,7 +4188,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4035
4188
  const workflowNode = props.workflow.getNode(node.value.name);
4036
4189
  if (workflowNode) {
4037
4190
  const nodeHints = nodeHelpers.getNodeHints(props.workflow, workflowNode, nodeType.value, {
4038
- runExecutionData: workflowExecution.value?.data ?? null,
4191
+ runExecutionData: workflowExecution.value ?? null,
4039
4192
  runIndex: props.runIndex,
4040
4193
  connectionInputData: parentNodeOutputData.value
4041
4194
  });
@@ -4082,7 +4235,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4082
4235
  return;
4083
4236
  }
4084
4237
  const pinDataDiscoveryFlag = useStorage(LOCAL_STORAGE_PIN_DATA_DISCOVERY_NDV_FLAG).value;
4085
- if (value && value.length > 0 && !isReadOnlyRoute.value && !pinDataDiscoveryFlag) {
4238
+ if (value && value.length > 0 && !isReadOnlyRoute.value && !isArchivedWorkflow.value && !pinDataDiscoveryFlag) {
4086
4239
  pinDataDiscoveryComplete();
4087
4240
  setTimeout(() => {
4088
4241
  isControlledPinDataTooltip.value = true;
@@ -4507,7 +4660,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4507
4660
  ]),
4508
4661
  default: withCtx(() => [
4509
4662
  createTextVNode(toDisplayString(unref(i18n).baseText("runData.pindata.thisDataIsPinned")) + " ", 1),
4510
- !isReadOnlyRoute.value && !readOnlyEnv.value ? (openBlock(), createElementBlock("span", _hoisted_1, [
4663
+ !isReadOnlyRoute.value && !isArchivedWorkflow.value && !readOnlyEnv.value ? (openBlock(), createElementBlock("span", _hoisted_1, [
4511
4664
  createVNode(unref(N8nLink), {
4512
4665
  theme: "secondary",
4513
4666
  size: "small",
@@ -5373,24 +5526,29 @@ const style0 = {
5373
5526
  const cssModules = {
5374
5527
  "$style": style0
5375
5528
  };
5376
- const RunData = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules], ["__scopeId", "data-v-ba7b70a3"]]);
5529
+ const RunData = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules], ["__scopeId", "data-v-03f081bd"]]);
5377
5530
  export {
5378
5531
  HighlightJS as H,
5379
5532
  RunData as R,
5380
- ViewSubExecution as V,
5533
+ VueMarkdown as V,
5381
5534
  _sfc_main$9 as _,
5382
5535
  getTotalConsumedTokens as a,
5383
- flattenLogEntries as b,
5384
- createLogEntries as c,
5536
+ findSelectedLogEntry as b,
5537
+ createLogTree as c,
5385
5538
  deepToRaw as d,
5386
- findSelectedLogEntry as e,
5539
+ getEntryAtRelativeIndex as e,
5387
5540
  formatTokenUsageCount as f,
5388
5541
  getSubtreeTotalConsumedTokens as g,
5389
- _sfc_main$a as h,
5390
- getConsumedTokens as i,
5391
- createAiData as j,
5392
- getTreeNodeData as k,
5393
- getReferencedData as l,
5394
- VueJsonPretty as m,
5395
- parseAiContent as p
5542
+ hasSubExecution as h,
5543
+ getDepth as i,
5544
+ flattenLogEntries as j,
5545
+ _sfc_main$a as k,
5546
+ getConsumedTokens as l,
5547
+ mergeStartData as m,
5548
+ ViewSubExecution as n,
5549
+ createAiData as o,
5550
+ parseAiContent as p,
5551
+ getTreeNodeData as q,
5552
+ getReferencedData as r,
5553
+ VueJsonPretty as s
5396
5554
  };
@@ -1,7 +1,6 @@
1
- import { p as parseAiContent, h as _sfc_main$3, i as getConsumedTokens, V as ViewSubExecution, f as formatTokenUsageCount, _ as _sfc_main$5, j as createAiData, k as getTreeNodeData, l as getReferencedData } from "./RunData-Bx47sNQp.js";
2
- import { d as defineComponent, r as ref, q as computed, bm as NodeConnectionTypes, i as createElementBlock, g as openBlock, n as normalizeClass, k as createBaseVNode, e as createBlock, f as createCommentVNode, j as createVNode, m as unref, eq as FontAwesomeIcon, t as toDisplayString, bG as N8nRadioButtons, _ as _export_sfc, bz as useNodeTypesStore, Q as useWorkflowsStore, h as resolveComponent, bC as _sfc_main$4, w as withCtx, l as createTextVNode, c as useI18n, F as Fragment, D as renderList, X as watch, er as ElTree, B as normalizeStyle } from "./index-B6eunbxp.js";
3
- import RunDataAi$1 from "./RunDataParsedAiContent-D6MNLmT3.js";
4
- import { d as capitalize } from "./useCanvasOperations-DaP5jKbH.js";
1
+ import { p as parseAiContent, k as _sfc_main$3, l as getConsumedTokens, n as ViewSubExecution, f as formatTokenUsageCount, _ as _sfc_main$5, o as createAiData, q as getTreeNodeData, r as getReferencedData } from "./RunData-fnd-jejc.js";
2
+ import { d as defineComponent, r as ref, q as computed, by as NodeConnectionTypes, i as createElementBlock, g as openBlock, n as normalizeClass, k as createBaseVNode, e as createBlock, f as createCommentVNode, j as createVNode, m as unref, ez as FontAwesomeIcon, t as toDisplayString, eA as capitalize, bJ as N8nRadioButtons, _ as _export_sfc, bz as useNodeTypesStore, Q as useWorkflowsStore, h as resolveComponent, bD as _sfc_main$4, w as withCtx, l as createTextVNode, c as useI18n, F as Fragment, D as renderList, X as watch, eB as ElTree, B as normalizeStyle } from "./index-hdsPF3tl.js";
3
+ import RunDataAi$1 from "./RunDataParsedAiContent-BczxQ63H.js";
5
4
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
6
5
  __name: "AiRunContentBlock",
7
6
  props: {