@oomol-lab/open-flow 0.1.0-beta.84 → 0.1.0-beta.86

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 (97) hide show
  1. package/dist/browser/{FlowCanvas-B2g7NceZ.js → FlowCanvas-CHIaMaBv.js} +112 -16
  2. package/dist/browser/{createResourceDialog-Bi4fUnbD.js → createResourceDialog-C0E5yPe6.js} +3 -3
  3. package/dist/browser/{dialog-BzoSxhXQ.js → dialog-b3hsdu8i.js} +291 -143
  4. package/dist/browser/{exportPng-DLdtJvg3.js → exportPng-DGHcejgy.js} +2 -2
  5. package/dist/browser/{flowChanges-C567g-Pc.js → flowChanges-BvSWezEb.js} +375 -83
  6. package/dist/browser/{flowWorkspace-DBk4A-Ld.js → flowWorkspace-BKnMRClO.js} +1619 -475
  7. package/dist/browser/fr-CNTSedYU.js +593 -0
  8. package/dist/browser/ja-CxQBHr2J.js +593 -0
  9. package/dist/browser/ko-D1Exiv1h.js +593 -0
  10. package/dist/browser/licenses.md +1 -1
  11. package/dist/browser/{markdownContent-DIuJThGK.js → markdownContent-BR9-1ikU.js} +1 -1
  12. package/dist/browser/preview.css +181 -181
  13. package/dist/browser/preview.js +2103 -636
  14. package/dist/browser/ru-BzLZv0B7.js +593 -0
  15. package/dist/browser/{tooltip-DGj5pudg.js → tooltip-DSBF3bRw.js} +55 -23
  16. package/dist/browser/workbench.css +181 -181
  17. package/dist/browser/workbench.js +86 -17
  18. package/dist/browser/{workbenchSelect-BIaEVTx6.js → workbenchSelect-Di1Bm_-d.js} +2 -2
  19. package/dist/browser/{wrapLayout-C4moMKgb.js → wrapLayout-B0AT8_-i.js} +1 -1
  20. package/dist/browser/zh-CN-Dg_xSGde.js +593 -0
  21. package/dist/browser/zh-TW-oxuLwsV0.js +593 -0
  22. package/dist/command/index.js +61 -57
  23. package/dist/command/licenses.md +28 -4
  24. package/dist/common/authoring.d.ts +5 -5
  25. package/dist/common/authoringExamples.d.ts +3 -2
  26. package/dist/common/authoringSchema.d.ts +41 -4
  27. package/dist/common/catalogCache.d.ts +46 -0
  28. package/dist/common/connector-action.js +13 -10
  29. package/dist/common/connector-proxy.d.ts +96 -0
  30. package/dist/common/connector-proxy.js +5209 -0
  31. package/dist/common/control-api-conformance.js +312 -46
  32. package/dist/common/control-api.d.ts +12 -1
  33. package/dist/common/control-api.js +303 -41
  34. package/dist/common/control-requests.d.ts +4 -3
  35. package/dist/common/control-requests.js +14111 -171
  36. package/dist/common/engine-contract.d.ts +3 -2
  37. package/dist/common/event-source.js +55 -23
  38. package/dist/common/flow-authoring-node.d.ts +2 -0
  39. package/dist/common/flow-authoring.js +6936 -6781
  40. package/dist/common/flow-change-schema.d.ts +1 -1
  41. package/dist/common/flow-change.d.ts +2 -2
  42. package/dist/common/flow-change.js +91 -36
  43. package/dist/common/flow-connectionUsage.d.ts +1 -1
  44. package/dist/common/flow-encoding.js +93 -38
  45. package/dist/common/flow-requestParameters.d.ts +34 -0
  46. package/dist/common/flow-semantics.js +9429 -9236
  47. package/dist/common/flow-state.js +55 -23
  48. package/dist/common/flow-workflowFile.d.ts +3 -1
  49. package/dist/common/http-request.d.ts +6 -11
  50. package/dist/common/http-request.js +192 -141
  51. package/dist/common/licenses.md +1 -1
  52. package/dist/common/mcp.d.ts +3 -3
  53. package/dist/common/mcp.js +303 -41
  54. package/dist/common/run-events.js +1 -0
  55. package/dist/common/runtime-contract.js +10 -4
  56. package/dist/common/runtime-nodejs-compat.js +55 -23
  57. package/dist/common/scheduler-checkpoint.d.ts +3 -3
  58. package/dist/common/scheduler-dependencies.d.ts +22 -28
  59. package/dist/common/scheduler-node-execution.d.ts +1 -0
  60. package/dist/common/scheduler.d.ts +8 -2
  61. package/dist/common/scheduler.js +274 -95
  62. package/dist/common/workflow.js +51 -19
  63. package/dist/common/workflowAuthoring.d.ts +411 -0
  64. package/dist/render/browser/licenses.md +1 -1
  65. package/dist/render/browser/runtime.js +289 -61
  66. package/dist/render/node/index.js +85 -30
  67. package/dist/render/node/licenses.md +1 -1
  68. package/package.json +1 -1
  69. package/skills/open-flow/references/flow-authoring.md +14 -13
  70. package/src/base/common/jsonSchema.ts +11 -0
  71. package/src/connector/common/actionSchema.ts +4 -11
  72. package/src/connector/common/proxy.ts +152 -0
  73. package/src/control/common/api.ts +99 -3
  74. package/src/control/common/authoring.ts +23 -9
  75. package/src/control/common/authoringExamples.ts +9 -0
  76. package/src/control/common/authoringSchema.ts +21 -12
  77. package/src/control/common/catalogCache.ts +145 -0
  78. package/src/control/common/conformance.ts +9 -3
  79. package/src/control/common/connectorQueries.ts +17 -2
  80. package/src/control/common/requests.ts +1 -0
  81. package/src/control/common/workflowAuthoring.ts +120 -0
  82. package/src/execution/common/checkpoint.ts +18 -12
  83. package/src/execution/common/dependencies.ts +132 -15
  84. package/src/execution/common/events.ts +3 -0
  85. package/src/execution/common/node-execution.ts +22 -15
  86. package/src/execution/common/scheduler.ts +20 -31
  87. package/src/flow/common/change.ts +2 -1
  88. package/src/flow/common/changeSchema.ts +11 -1
  89. package/src/flow/common/connectionUsage.ts +4 -2
  90. package/src/flow/common/errorHandling.ts +3 -1
  91. package/src/flow/common/nodeChanges.ts +35 -18
  92. package/src/flow/common/requestParameters.ts +120 -0
  93. package/src/flow/common/semantics.ts +51 -1
  94. package/src/flow/common/sourceField.ts +3 -2
  95. package/src/flow/common/workflowFile.ts +2 -2
  96. package/src/http/common/httpRequest.ts +28 -78
  97. package/src/runtime/common/engineContract.ts +6 -3
@@ -1,9 +1,9 @@
1
- import { A as DropdownMenuItem, C as IconifyProvider, E as DropdownMenu, O as DropdownMenuContent, P as DropdownMenuSeparator, R as DropdownMenuTrigger, c as PopoverContent, f as PopoverTitle, p as PopoverTrigger, pt as IconThemeContext, s as Popover, v as ContentIcon } from "./wrapLayout-C4moMKgb.js";
1
+ import { A as DropdownMenuItem, C as IconifyProvider, E as DropdownMenu, O as DropdownMenuContent, P as DropdownMenuSeparator, R as DropdownMenuTrigger, c as PopoverContent, f as PopoverTitle, p as PopoverTrigger, pt as IconThemeContext, s as Popover, v as ContentIcon } from "./wrapLayout-B0AT8_-i.js";
2
2
  import { a as derive, i as compute, l as val } from "./dist-bO8nvHFH.js";
3
3
  import { c as useLang, l as useTranslate, o as I18nProvider, u as useVal } from "./dist-BFmpkX4P.js";
4
- import { Cr as cn, i as TooltipTrigger, n as TooltipContent, t as Tooltip, xr as Button } from "./tooltip-DGj5pudg.js";
5
- import { C as upgradeManualTrigger, Dt as matchesSchema, M as mapConditionSources, N as nodeInputMappings, Rt as dequal, S as resourceNameIssue, _ as applyFlowChanges, a as DialogFooter, d as Field, g as FlowChangeError, h as FieldLabel, i as DialogDescription, in as Input, kt as schemaObject, l as Icon, m as FieldGroup, o as DialogHeader, p as FieldError, r as DialogContent, s as DialogTitle, t as Dialog, u as Spinner, v as isTriggerNode, w as upgradeRevisionContent } from "./dialog-BzoSxhXQ.js";
6
- import { $ as resourceValue, $n as allConnectorConnectionsQuery, $t as WorkflowExportDialog, At as actionWithConnections, Bn as EmptyMedia, Br as ApiError, Bt as setNodeContentHidden, C as updateValue, Ct as flowResourceReferences, Et as diagnosticItems, Fn as InputGroupInput, Ft as removeComments, Gt as setCodeActions, Hn as Badge, Ht as setVerticalNodeWidth, In as Empty, It as restoreCanvasPresentation, J as scopedValue, Jt as setServiceConnections, K as combineSources, Kn as createI18n, Kt as setConnectorConnection, Ln as EmptyContent, Lt as setCanvasLayout, Mn as followWorkbenchLink, Mt as canvasPresentationChange, Nn as InputGroup, Nt as commentIds, Pn as InputGroupAddon, Pr as workflowCandidate, Pt as flowPresentation, Q as resourceData, Qn as randomId, Qt as WorkflowBundleSummary, Rn as EmptyDescription, Rr as invalidResponse, Rt as setComment, S as updateTriggerConfig, St as revisionView, Tt as deriveInspectorDiagnostics, U as addNodeIntent, Un as EventSourcesPage, Ut as repairNodeNames, Vn as EmptyTitle, Vr as controlErrorCode, Vt as setNodePositions, W as deriveAddNodeOptions, Wt as resetInputValues, X as CacheResource, Xn as WorkbenchClient, Xt as updateTriggerSchedule, Y as connectorActionPresentation, Yn as errorNotice, Yt as updateStartInputDefs, Zn as normalizeFlowQuery, Zt as dequal$1, _ as updateOutputPorts, _r as workflowBundleFromPreview, a as nameCreatedNodes, an as FlowTagChips, at as getActionsCache, b as updateTaskAdditionalInputs, br as workflowNameFromFile, c as setInputVariable, cr as normalizeTriggerOutputs, ct as getProvidersCache, d as updateCondition, en as WorkflowExportMenuItem, et as action, f as updateHttpParameters, fr as isJsonValue, ft as designerGraph, g as updateNodeSettings, gr as parseWorkflowImportFile, h as updateNodeName, hr as encodeWorkflowBundle, i as deleteSelection, in as FlowSettingsDialog, jn as useFlowQuery, jt as connectionCatalog, l as setTriggerConnection, lr as sampleErrorOutputs, lt as createPersistentCache, m as updateNodeIcon, mr as connectorActionMetadata, nn as IdTooltip, nt as proxyResponse, o as selectWebhookResponse, on as TagPicker, p as updateNodeDescription, pr as connection, qt as setInputSources, r as applyFlowChanges$1, rt as validateAction, s as setInputValue, st as getConnectionsCache, t as addNode, tn as useWorkflowExportAction, tr as decodeTriggerCatalog, tt as provider, u as setTriggerEventSource, ur as triggerOutputDefinitions, ut as createSessionCache, v as updateResolution, vr as encodeWorkflowFile, vt as providerIcon, w as updateWebhook, wt as Latest, x as updateTaskPorts, y as updateTask, yr as workflowFileName, yt as RunStore, zn as EmptyHeader, zr as record, zt as setFlowViewport } from "./flowChanges-C567g-Pc.js";
4
+ import { Cr as cn, i as TooltipTrigger, n as TooltipContent, t as Tooltip, xr as Button } from "./tooltip-DSBF3bRw.js";
5
+ import { Bt as schemaObject, C as upgradeManualTrigger, Dt as connectorProxyTask, M as mapConditionSources, N as nodeInputMappings, Rt as matchesSchema, S as resourceNameIssue, Yt as dequal, _ as applyFlowChanges, a as DialogFooter, bt as connectorProxyConfigSchema, d as Field, g as FlowChangeError, h as FieldLabel, hn as Input, i as DialogDescription, l as Icon, m as FieldGroup, o as DialogHeader, p as FieldError, r as DialogContent, s as DialogTitle, t as Dialog, u as Spinner, v as isTriggerNode, w as upgradeRevisionContent } from "./dialog-b3hsdu8i.js";
6
+ import { $ as resourceValue, $n as allConnectorConnectionsQuery, $t as WorkflowExportDialog, At as actionWithConnections, Bn as EmptyMedia, Br as ApiError, Bt as setNodeContentHidden, C as updateValue, Ct as flowResourceReferences, Et as diagnosticItems, Fn as InputGroupInput, Ft as removeComments, Gt as setCodeActions, Hn as Badge, Ht as setVerticalNodeWidth, In as Empty, It as restoreCanvasPresentation, J as scopedValue, Jt as setServiceConnections, K as combineSources, Kn as createI18n, Kt as setConnectorConnection, Ln as EmptyContent, Lt as setCanvasLayout, Mn as followWorkbenchLink, Mt as canvasPresentationChange, Nn as InputGroup, Nt as commentIds, Pn as InputGroupAddon, Pr as workflowCandidate, Pt as flowPresentation, Q as resourceData, Qn as randomId, Qt as WorkflowBundleSummary, Rn as EmptyDescription, Rr as invalidResponse, Rt as setComment, S as updateTriggerConfig, St as revisionView, Tt as deriveInspectorDiagnostics, U as addNodeIntent, Un as EventSourcesPage, Ut as repairNodeNames, Vn as EmptyTitle, Vr as controlErrorCode, Vt as setNodePositions, W as deriveAddNodeOptions, Wt as resetInputValues, X as CacheResource, Xn as WorkbenchClient, Xt as updateTriggerSchedule, Y as connectorActionPresentation, Yn as errorNotice, Yt as updateStartInputDefs, Zn as normalizeFlowQuery, Zt as dequal$1, _ as updateRequestParameters, _r as workflowBundleFromPreview, a as nameCreatedNodes, an as FlowTagChips, at as getActionsCache, b as updateTaskAdditionalInputs, br as workflowNameFromFile, c as setInputVariable, cr as normalizeTriggerOutputs, ct as getProvidersCache, d as updateCondition, en as WorkflowExportMenuItem, et as action, f as updateNodeDescription, fr as isJsonValue, ft as designerGraph, g as updateOutputPorts, gr as parseWorkflowImportFile, h as updateNodeSettings, hr as encodeWorkflowBundle, i as deleteSelection, in as FlowSettingsDialog, jn as useFlowQuery, jt as connectionCatalog, l as setTriggerConnection, lr as sampleErrorOutputs, lt as createPersistentCache, m as updateNodeName, mr as connectorActionMetadata, nn as IdTooltip, nt as proxyResponse, o as selectWebhookResponse, on as TagPicker, p as updateNodeIcon, pr as connection, qt as setInputSources, r as applyFlowChanges$1, rt as validateAction, s as setInputValue, st as getConnectionsCache, t as addNode, tn as useWorkflowExportAction, tr as decodeTriggerCatalog, tt as provider, u as setTriggerEventSource, ur as triggerOutputDefinitions, ut as createSessionCache, v as updateResolution, vr as encodeWorkflowFile, vt as providerIcon, w as updateWebhook, wt as Latest, x as updateTaskPorts, y as updateTask, yr as workflowFileName, yt as RunStore, zn as EmptyHeader, zr as record, zt as setFlowViewport } from "./flowChanges-BvSWezEb.js";
7
7
  import { a as uiLanguages, i as uiLanguageNames, n as isUiLanguage, r as resolveUiLanguage, t as importedWorkflowName } from "./languages-gYzoQqCi.js";
8
8
  import { i as objectValue, n as isJsonValue$1, s as valueType, t as initialValue } from "./value-BbFQZZ_V.js";
9
9
  import { Suspense, forwardRef, lazy, useEffect, useImperativeHandle, useLayoutEffect, useRef, useState } from "react";
@@ -520,7 +520,7 @@ function FlowDeletionDialog({ flow, workspace, container, busy, finalFocus, onCl
520
520
  }
521
521
  //#endregion
522
522
  //#region src/workbench/browser/runtime/shell/resourceBrowser.tsx
523
- var CreateResourceDialog = lazy(() => import("./createResourceDialog-Bi4fUnbD.js"));
523
+ var CreateResourceDialog = lazy(() => import("./createResourceDialog-C0E5yPe6.js"));
524
524
  var flowIdTooltipAlignOffset = 44;
525
525
  var renamePopoverAlignOffset = -12;
526
526
  function compactFlowId(flowId) {
@@ -3251,6 +3251,20 @@ function option$1(action, t) {
3251
3251
  outputs: ports(action.outputs)
3252
3252
  };
3253
3253
  }
3254
+ function proxyOption(provider, t) {
3255
+ const task = connectorProxyTask(connectorProxyConfigSchema.parse({ providerId: provider.serviceId }));
3256
+ return {
3257
+ kind: "connector-proxy",
3258
+ provider,
3259
+ id: `connector-proxy:${provider.serviceId}`,
3260
+ label: t("connectorProxy.title"),
3261
+ description: t("connectorProxy.description"),
3262
+ group: t("addNode.connectorActions"),
3263
+ icon: providerIcon(provider),
3264
+ inputs: task.inputs.flatMap((port) => "handle" in port ? [port] : []),
3265
+ outputs: task.outputs.flatMap((port) => "handle" in port ? [port] : [])
3266
+ };
3267
+ }
3254
3268
  function providerOptions(actions, t) {
3255
3269
  const providers = /* @__PURE__ */ new Map();
3256
3270
  for (const action of actions) {
@@ -3268,6 +3282,18 @@ function providerOptions(actions, t) {
3268
3282
  option: child
3269
3283
  };
3270
3284
  });
3285
+ const proxy = proxyOption({
3286
+ serviceId: first.serviceId,
3287
+ serviceName: first.serviceName,
3288
+ icon: first.icon,
3289
+ iconSprite: first.iconSprite,
3290
+ iconSpritePosition: first.iconSpritePosition
3291
+ }, t);
3292
+ choices.push({
3293
+ description: proxy.description,
3294
+ label: proxy.label,
3295
+ option: proxy
3296
+ });
3271
3297
  return {
3272
3298
  choices,
3273
3299
  description: t(choices.length == 1 ? "addNode.connectorActionCountOne" : "addNode.connectorActionCount", { count: choices.length }),
@@ -3300,7 +3326,13 @@ function providerOption(provider, t) {
3300
3326
  function connectorTarget(selection) {
3301
3327
  if (selection == null) return;
3302
3328
  const task = selection.kind == "task" ? selection.definition : void 0;
3303
- if (task == null || !("executor" in task) || task.executor.kind != "connector") return;
3329
+ if (task == null || !("executor" in task)) return;
3330
+ if (task.executor.kind === "connector-proxy") return {
3331
+ providerId: task.executor.providerId,
3332
+ connectionId: task.executor.connectionId,
3333
+ nodeId: selection.id
3334
+ };
3335
+ if (task.executor.kind !== "connector") return;
3304
3336
  return {
3305
3337
  actionId: task.executor.action,
3306
3338
  connectionId: task.executor.connectionId,
@@ -3383,13 +3415,16 @@ var ConnectorStore = class {
3383
3415
  const t = get(this.#i18n.t$);
3384
3416
  return {
3385
3417
  ...state,
3386
- data: state.data?.map((action) => option$1(actionWithConnections({
3418
+ data: state.data == null && (provider == null || state.error == null) ? void 0 : [...(state.data ?? []).map((action) => option$1(actionWithConnections({
3387
3419
  ...action,
3388
3420
  ...provider == null ? {} : {
3389
3421
  serviceName: provider.serviceName,
3390
3422
  icon: action.icon ?? provider.icon
3391
3423
  }
3392
- }, void 0), t))
3424
+ }, void 0), t)), proxyOption(provider ?? {
3425
+ serviceId: service,
3426
+ serviceName: service
3427
+ }, t)]
3393
3428
  };
3394
3429
  });
3395
3430
  };
@@ -3439,6 +3474,21 @@ var ConnectorStore = class {
3439
3474
  const target = connectorTarget(get(workspace.$.selection));
3440
3475
  const state = get(this.#state);
3441
3476
  if (target == null) return { authorizationPending: false };
3477
+ if (target.providerId != null) {
3478
+ const flowId = get(workspace.$.flowId);
3479
+ const providerState = get(this.data.providers.get(flowId, this.#language));
3480
+ const provider = providerState.data?.find((item) => item.serviceId === target.providerId);
3481
+ const catalog = get(catalogs)[target.providerId];
3482
+ const connectionFailure = provider?.noSetup === true ? void 0 : get(this.data.connections.get(target.providerId, flowId)).error;
3483
+ return {
3484
+ provider,
3485
+ actionError: providerState.error != null ? { message: errorNotice(providerState.error, this.#i18n.t).message } : providerState.data != null && provider == null ? { message: this.#i18n.t("inspector.account.statusUnavailable", { action: target.providerId }) } : void 0,
3486
+ activeConnections: catalog?.active,
3487
+ authorizationPending: state.authorizationServiceId === target.providerId,
3488
+ connection: target.connectionId == null ? void 0 : catalog?.byId.get(target.connectionId),
3489
+ connectionError: connectionFailure == null ? void 0 : errorNotice(connectionFailure, this.#i18n.t).message
3490
+ };
3491
+ }
3442
3492
  const action = get(actions)[target.actionId];
3443
3493
  const catalog = action == null ? void 0 : get(catalogs)[action.serviceId];
3444
3494
  const actionFailure = get(this.data.actions.detail(target.actionId, get(workspace.$.flowId), this.#language)).error;
@@ -3470,6 +3520,7 @@ var ConnectorStore = class {
3470
3520
  connectionLoading: derive(this.#state, (state) => state.connectionLoading),
3471
3521
  diagnostics: compute((get) => connectionDiagnostics(get(workspace.$.revision), get(actions), get(catalogs))),
3472
3522
  selectedAction: derive(this.#selected, (value) => value.action),
3523
+ selectedProvider: derive(this.#selected, (value) => value.provider),
3473
3524
  selectedActionError: derive(this.#selected, (value) => value.actionError),
3474
3525
  selectedActiveConnections: derive(this.#selected, (value) => value.activeConnections),
3475
3526
  selectedAuthorizationPending: derive(this.#selected, (value) => value.authorizationPending),
@@ -3542,6 +3593,25 @@ var ConnectorStore = class {
3542
3593
  });
3543
3594
  return;
3544
3595
  }
3596
+ if (target.providerId != null) {
3597
+ this.#set({
3598
+ actionLoading: target.providerId,
3599
+ connectionError: void 0
3600
+ });
3601
+ try {
3602
+ const providers = await resourceValue(this.data.providers.get(flowId, this.#language, force), void 0, force);
3603
+ if (!this.#isCurrent(current, flowId)) return;
3604
+ if (providers.find((provider) => provider.serviceId === target.providerId)?.noSetup !== true) await this.#refreshConnections(flowId, target, target.providerId, force, current);
3605
+ } catch (error) {
3606
+ if (this.#isCurrent(current, flowId)) this.#set({ actionError: {
3607
+ actionId: target.providerId,
3608
+ message: errorNotice(error, this.#i18n.t).message
3609
+ } });
3610
+ } finally {
3611
+ if (this.#isCurrent(current, flowId)) this.#set({ actionLoading: void 0 });
3612
+ }
3613
+ return;
3614
+ }
3545
3615
  const actionState = this.data.actions.detail(target.actionId, flowId, this.#language, force);
3546
3616
  this.#set({
3547
3617
  actionError: void 0,
@@ -3611,7 +3681,7 @@ var ConnectorStore = class {
3611
3681
  if (this.#disposed || this.#authorization == null) return;
3612
3682
  const serviceId = this.#authorization.serviceId;
3613
3683
  this.#set({ authorizationServiceId: void 0 });
3614
- if (this.$.selectedAction.value?.serviceId == serviceId) await this.refresh(true);
3684
+ if (this.$.selectedAction.value?.serviceId == serviceId || this.$.selectedProvider.value?.serviceId == serviceId) await this.refresh(true);
3615
3685
  if (!this.#disposed && this.#authorization?.serviceId == serviceId) this.#authorization = void 0;
3616
3686
  }
3617
3687
  async #refreshConnections(flowId, target, serviceId, force, current) {
@@ -3670,7 +3740,7 @@ var ConnectorStore = class {
3670
3740
  const flowId = this.#workspace.$.flowId.value;
3671
3741
  const revision = this.#workspace.$.revision.value;
3672
3742
  if (flowId == null || revision == null) return;
3673
- if (Object.values(revision.graph()?.nodes ?? {}).some((node) => node.kind == "integration" || node.kind == "poll")) this.data.providers.get(flowId, this.#language);
3743
+ if (Object.values(revision.graph()?.nodes ?? {}).some((node) => node.kind == "integration" || node.kind == "poll") || revision.connectorReferences.accounts.some((reference) => reference.kind === "connector-proxy")) this.data.providers.get(flowId, this.#language);
3674
3744
  const missing = [...revision.connectorActionIds].filter((actionId) => this.$.actions.value[actionId] == null && !this.#loadingActions.has(actionId));
3675
3745
  if (missing.length > 0) {
3676
3746
  for (const actionId of missing) this.#loadingActions.add(actionId);
@@ -3678,14 +3748,13 @@ var ConnectorStore = class {
3678
3748
  const actions = await Promise.all(missing.map((actionId) => resourceValue(this.data.actions.detail(actionId, flowId, this.#language))));
3679
3749
  if (!this.#isCurrent(current, flowId)) return;
3680
3750
  this.#remember(this.#actionIds, actions.map((action) => action.actionId));
3681
- } catch {
3682
- return;
3683
- } finally {
3751
+ } catch {} finally {
3684
3752
  for (const actionId of missing) this.#loadingActions.delete(actionId);
3685
3753
  }
3686
3754
  }
3687
3755
  if (!this.#isCurrent(current, flowId)) return;
3688
3756
  const services = /* @__PURE__ */ new Set();
3757
+ for (const reference of revision.connectorReferences.accounts) if (reference.kind === "connector-proxy") services.add(reference.providerId);
3689
3758
  for (const { actionId } of revision.connectorNodes()) {
3690
3759
  const action = this.$.actions.value[actionId];
3691
3760
  if (action?.authenticated == true) services.add(action.serviceId);
@@ -6072,10 +6141,10 @@ var NodeEdits = class {
6072
6141
  const changes = updateResolution(revision, nodeId, settings, values);
6073
6142
  return changes != null && await this.save(changes, deletion);
6074
6143
  }
6075
- async saveHttpParameters(nodeId, group, edit, deletion) {
6144
+ async saveRequestParameters(nodeId, group, edit, deletion) {
6076
6145
  const revision = this.revision.value;
6077
6146
  if (revision == null) return false;
6078
- const changes = updateHttpParameters(revision, nodeId, group, edit, this.identity());
6147
+ const changes = updateRequestParameters(revision, nodeId, group, edit, this.identity());
6079
6148
  return changes != null && this.save(changes, deletion);
6080
6149
  }
6081
6150
  async saveTaskSettings(nodeId, settings, deletion) {
@@ -6978,7 +7047,7 @@ var WorkbenchStore = class {
6978
7047
  async downloadPng(result) {
6979
7048
  const title = this.workspace.$.flow.value?.name ?? this.workspace.$.flowId.value ?? "Workflow";
6980
7049
  try {
6981
- const { downloadPng } = await import("./exportPng-DLdtJvg3.js");
7050
+ const { downloadPng } = await import("./exportPng-DGHcejgy.js");
6982
7051
  downloadPng(result, title);
6983
7052
  if (!this.#disposed) this.#notice.set({
6984
7053
  kind: "success",
@@ -7245,7 +7314,7 @@ var WorkbenchStore = class {
7245
7314
  };
7246
7315
  //#endregion
7247
7316
  //#region src/workbench/browser/runtime/openFlowWorkbench.tsx
7248
- var FlowWorkspace = lazy(() => import("./flowWorkspace-DBk4A-Ld.js"));
7317
+ var FlowWorkspace = lazy(() => import("./flowWorkspace-BKnMRClO.js"));
7249
7318
  function OpenFlowSessionGate({ action, description, error, onSubmit, onTokenChange, pending = false, title, token, tokenLabel }) {
7250
7319
  const hasToken = token != null && tokenLabel != null && onTokenChange != null;
7251
7320
  const tokenValue = token ?? "";
@@ -1,5 +1,5 @@
1
- import { Cr as cn } from "./tooltip-DGj5pudg.js";
2
- import { Gt as SelectTrigger, Ht as SelectGroup, Kt as SelectValue, Ut as SelectItem, Vt as SelectContent, zt as Select } from "./dialog-BzoSxhXQ.js";
1
+ import { Cr as cn } from "./tooltip-DSBF3bRw.js";
2
+ import { $t as SelectGroup, Qt as SelectContent, Xt as Select, en as SelectItem, nn as SelectTrigger, rn as SelectValue } from "./dialog-b3hsdu8i.js";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/workbench/browser/runtime/shell/workbenchSelect.tsx
5
5
  function WorkbenchSelect({ ariaLabel, className, disabled = false, id, onValueChange, options, portalRoot, size, value, variant }) {
@@ -1,5 +1,5 @@
1
1
  import { a as derive, l as val, r as combine } from "./dist-bO8nvHFH.js";
2
- import { $ as useToolbarRootContext, $t as fastComponent, An as isMac, Ar as warn, At as useImplicitActiveTrigger, B as ARROW_LEFT, Bn as transitionStatusMapping, Br as useStableCallback, Bt as useFloatingNodeId, Cr as cn, Ct as useHoverFloatingInteraction, Dn as getTarget, Dr as EMPTY_ARRAY$1, Dt as createInitialPopupStoreState, En as contains, Er as useRenderElement, Fn as createLucideIcon, Fr as formatErrorMessage, Ft as useDismiss, G as HORIZONTAL_KEYS, Gr as isHTMLElement$1, Gt as CLICK_TRIGGER_IDENTIFIER, H as ARROW_UP, Hn as useOnMount, Hr as getParentNode, Ht as useFloatingTree, I as useCompositeListItem, In as useTransitionStatus, Ir as mergeProps, It as useClick, Jn as closePress, Jt as FocusGuard, K as HORIZONTAL_KEYS_WITH_EXTRA_KEYS, Kn as cancelOpen, Kr as isLastTraversableNode, Kt as DROPDOWN_COLLISION_AVOIDANCE, L as ALL_KEYS, Ln as useOpenChangeComplete, Lr as useIsoLayoutEffect, Lt as FloatingFocusManager, Mn as ownerDocument, Mr as useButton, Mt as useTriggerDataForwarding, Nr as CompositeRootContext, Nt as useTriggerRegistration, Or as EMPTY_OBJECT, Ot as popupStoreSelectors, P as Separator, Pn as Check, Pr as useCompositeRootContext, Q as scrollIntoViewIfNeeded, R as ARROW_DOWN, Rn as useAnimationsFinished, Rr as SafeReact, Rt as FloatingNode, St as useHoverReferenceInteraction, Tr as clsx, Tt as useSyncedFloatingRootContext, U as COMPOSITE_KEYS, Un as useValueChanged, Ut as FloatingTreeStore, V as ARROW_RIGHT, Vr as useRefWithInit, Vt as useFloatingParentNodeId, Wn as createChangeEventDetails, Wt as FloatingPortal, X as VERTICAL_KEYS_WITH_EXTRA_KEYS, Xn as focusOut, Xt as ReactStore, Y as VERTICAL_KEYS, Z as isNativeInput, Zn as imperativeAction, _n as getMaxListIndex, _r as fieldValidityMapping, _t as safePolygon, an as useOnFirstRender, ar as siblingOpen, at as useAnchorPositioning, bn as isListIndexDisabled, br as useControlled, bt as useListNavigation, cn as getNextTabbable, ct as CompositeList, dn as isOutsideEvent, dr as useFormContext, en as fastComponentRef, et as useAnchoredPopupScrollLock, fn as createGridCellMap, fr as useRegisterFieldControl, ft as popupStateMapping, gn as getGridNavigatedIndex, hn as getGridCellIndices, hr as useId$1, ht as useOpenInteractionType, it as InternalBackdrop, jr as useMergedRefs, jt as useOpenStateTransitions, kr as NOOP, kt as PopupTriggerMap, ln as getTabbableAfterElement, lt as inertValue, mn as getGridCellIndexOfCorner, mr as useBaseUiId, mt as triggerOpenStateMapping, nt as usePositioner, on as Timeout, ot as adaptiveOrigin, pn as findNonDisabledListIndex, pr as useFieldRootContext, pt as pressableTriggerOpenStateMapping, q as MODIFIER_KEYS, qt as POPUP_COLLISION_AVOIDANCE, rn as createSelector, rr as none, rt as getDisabledMountTransitionStyles, sn as useTimeout, sr as triggerHover, st as useDirection, tr as itemPress, un as getTabbableBeforeElement, ur as useLabelableContext, ut as getPseudoElementBounds, vn as getMinListIndex, vr as visuallyHidden, vt as useTypeahead, wt as useFocus, xr as Button, xt as useInteractions, yn as isIndexOutOfListBounds, yr as visuallyHiddenInput, yt as useRole, z as ARROW_KEYS, zt as FloatingTree } from "./tooltip-DGj5pudg.js";
2
+ import { $ as useToolbarRootContext, $t as fastComponent, An as isMac, Ar as warn, At as useImplicitActiveTrigger, B as ARROW_LEFT, Bn as transitionStatusMapping, Br as useStableCallback, Bt as useFloatingNodeId, Cr as cn, Ct as useHoverFloatingInteraction, Dn as getTarget, Dr as EMPTY_ARRAY$1, Dt as createInitialPopupStoreState, En as contains, Er as useRenderElement, Fn as createLucideIcon, Fr as formatErrorMessage, Ft as useDismiss, G as HORIZONTAL_KEYS, Gr as isHTMLElement$1, Gt as CLICK_TRIGGER_IDENTIFIER, H as ARROW_UP, Hn as useOnMount, Hr as getParentNode, Ht as useFloatingTree, I as useCompositeListItem, In as useTransitionStatus, Ir as mergeProps, It as useClick, Jn as closePress, Jt as FocusGuard, K as HORIZONTAL_KEYS_WITH_EXTRA_KEYS, Kn as cancelOpen, Kr as isLastTraversableNode, Kt as DROPDOWN_COLLISION_AVOIDANCE, L as ALL_KEYS, Ln as useOpenChangeComplete, Lr as useIsoLayoutEffect, Lt as FloatingFocusManager, Mn as ownerDocument, Mr as useButton, Mt as useTriggerDataForwarding, Nr as CompositeRootContext, Nt as useTriggerRegistration, Or as EMPTY_OBJECT, Ot as popupStoreSelectors, P as Separator, Pn as Check, Pr as useCompositeRootContext, Q as scrollIntoViewIfNeeded, R as ARROW_DOWN, Rn as useAnimationsFinished, Rr as SafeReact, Rt as FloatingNode, St as useHoverReferenceInteraction, Tr as clsx, Tt as useSyncedFloatingRootContext, U as COMPOSITE_KEYS, Un as useValueChanged, Ut as FloatingTreeStore, V as ARROW_RIGHT, Vr as useRefWithInit, Vt as useFloatingParentNodeId, Wn as createChangeEventDetails, Wt as FloatingPortal, X as VERTICAL_KEYS_WITH_EXTRA_KEYS, Xn as focusOut, Xt as ReactStore, Y as VERTICAL_KEYS, Z as isNativeInput, Zn as imperativeAction, _n as getMaxListIndex, _r as fieldValidityMapping, _t as safePolygon, an as useOnFirstRender, ar as siblingOpen, at as useAnchorPositioning, bn as isListIndexDisabled, br as useControlled, bt as useListNavigation, cn as getNextTabbable, ct as CompositeList, dn as isOutsideEvent, dr as useFormContext, en as fastComponentRef, et as useAnchoredPopupScrollLock, fn as createGridCellMap, fr as useRegisterFieldControl, ft as popupStateMapping, gn as getGridNavigatedIndex, hn as getGridCellIndices, hr as useId$1, ht as useOpenInteractionType, it as InternalBackdrop, jr as useMergedRefs, jt as useOpenStateTransitions, kr as NOOP, kt as PopupTriggerMap, ln as getTabbableAfterElement, lt as inertValue, mn as getGridCellIndexOfCorner, mr as useBaseUiId, mt as triggerOpenStateMapping, nt as usePositioner, on as Timeout, ot as adaptiveOrigin, pn as findNonDisabledListIndex, pr as useFieldRootContext, pt as pressableTriggerOpenStateMapping, q as MODIFIER_KEYS, qt as POPUP_COLLISION_AVOIDANCE, rn as createSelector, rr as none, rt as getDisabledMountTransitionStyles, sn as useTimeout, sr as triggerHover, st as useDirection, tr as itemPress, un as getTabbableBeforeElement, ur as useLabelableContext, ut as getPseudoElementBounds, vn as getMinListIndex, vr as visuallyHidden, vt as useTypeahead, wt as useFocus, xr as Button, xt as useInteractions, yn as isIndexOutOfListBounds, yr as visuallyHiddenInput, yt as useRole, z as ARROW_KEYS, zt as FloatingTree } from "./tooltip-DSBF3bRw.js";
3
3
  import * as React from "react";
4
4
  import reactExports, { createContext, forwardRef, memo, useCallback, useContext, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore } from "react";
5
5
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";