@oomol-lab/open-flow 0.1.0-beta.85 → 0.1.0-beta.87

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 (102) hide show
  1. package/dist/browser/{FlowCanvas-CZoHhB1y.js → FlowCanvas-SqPUBqze.js} +3 -3
  2. package/dist/browser/{createResourceDialog-Bi4fUnbD.js → createResourceDialog-CB3eiK7e.js} +3 -3
  3. package/dist/browser/{dialog-BzoSxhXQ.js → dialog-Bi-MVTGj.js} +291 -143
  4. package/dist/browser/{exportPng-CXVWVlLc.js → exportPng-CLZKdNzR.js} +2 -2
  5. package/dist/browser/{flowChanges-C567g-Pc.js → flowChanges-azhepfr-.js} +375 -83
  6. package/dist/browser/{flowWorkspace-BNdBKtla.js → flowWorkspace-Cs2ZGBYK.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-DF39sd9T.js → markdownContent-D0BBrFcF.js} +1 -1
  12. package/dist/browser/preview.css +193 -191
  13. package/dist/browser/preview.js +1997 -624
  14. package/dist/browser/ru-BzLZv0B7.js +593 -0
  15. package/dist/browser/theme.css +3 -1
  16. package/dist/browser/{tooltip-DGj5pudg.js → tooltip-BZ6tpqnr.js} +58 -24
  17. package/dist/browser/ui.css +12 -10
  18. package/dist/browser/ui.d.ts +1 -0
  19. package/dist/browser/ui.js +110 -63
  20. package/dist/browser/workbench.css +193 -191
  21. package/dist/browser/workbench.js +86 -17
  22. package/dist/browser/{workbenchSelect-BIaEVTx6.js → workbenchSelect-CHOeceKA.js} +2 -2
  23. package/dist/browser/{wrapLayout-C4moMKgb.js → wrapLayout-BB_qwy3k.js} +1 -1
  24. package/dist/browser/zh-CN-Dg_xSGde.js +593 -0
  25. package/dist/browser/zh-TW-oxuLwsV0.js +593 -0
  26. package/dist/command/index.js +61 -57
  27. package/dist/command/licenses.md +28 -4
  28. package/dist/common/authoring.d.ts +5 -5
  29. package/dist/common/authoringExamples.d.ts +3 -2
  30. package/dist/common/authoringSchema.d.ts +41 -4
  31. package/dist/common/catalogCache.d.ts +46 -0
  32. package/dist/common/connector-action.js +13 -10
  33. package/dist/common/connector-proxy.d.ts +96 -0
  34. package/dist/common/connector-proxy.js +5209 -0
  35. package/dist/common/control-api-conformance.js +312 -46
  36. package/dist/common/control-api.d.ts +12 -1
  37. package/dist/common/control-api.js +303 -41
  38. package/dist/common/control-requests.d.ts +4 -3
  39. package/dist/common/control-requests.js +14111 -171
  40. package/dist/common/engine-contract.d.ts +3 -2
  41. package/dist/common/event-source.js +55 -23
  42. package/dist/common/flow-authoring-node.d.ts +2 -0
  43. package/dist/common/flow-authoring.js +6936 -6781
  44. package/dist/common/flow-change-schema.d.ts +1 -1
  45. package/dist/common/flow-change.d.ts +2 -2
  46. package/dist/common/flow-change.js +91 -36
  47. package/dist/common/flow-connectionUsage.d.ts +1 -1
  48. package/dist/common/flow-encoding.js +93 -38
  49. package/dist/common/flow-requestParameters.d.ts +34 -0
  50. package/dist/common/flow-semantics.js +9429 -9236
  51. package/dist/common/flow-state.js +55 -23
  52. package/dist/common/flow-workflowFile.d.ts +3 -1
  53. package/dist/common/http-request.d.ts +6 -11
  54. package/dist/common/http-request.js +192 -141
  55. package/dist/common/licenses.md +1 -1
  56. package/dist/common/mcp.d.ts +3 -3
  57. package/dist/common/mcp.js +303 -41
  58. package/dist/common/run-events.js +1 -0
  59. package/dist/common/runtime-contract.js +10 -4
  60. package/dist/common/runtime-nodejs-compat.js +55 -23
  61. package/dist/common/scheduler-checkpoint.d.ts +3 -3
  62. package/dist/common/scheduler-dependencies.d.ts +22 -28
  63. package/dist/common/scheduler-node-execution.d.ts +1 -0
  64. package/dist/common/scheduler.d.ts +8 -2
  65. package/dist/common/scheduler.js +274 -95
  66. package/dist/common/workflow.js +51 -19
  67. package/dist/common/workflowAuthoring.d.ts +411 -0
  68. package/dist/render/browser/licenses.md +1 -1
  69. package/dist/render/browser/runtime.css +12 -10
  70. package/dist/render/browser/runtime.js +183 -49
  71. package/dist/render/node/index.js +85 -30
  72. package/dist/render/node/licenses.md +1 -1
  73. package/package.json +1 -1
  74. package/skills/open-flow/references/flow-authoring.md +14 -13
  75. package/src/base/common/jsonSchema.ts +11 -0
  76. package/src/connector/common/actionSchema.ts +4 -11
  77. package/src/connector/common/proxy.ts +152 -0
  78. package/src/control/common/api.ts +99 -3
  79. package/src/control/common/authoring.ts +23 -9
  80. package/src/control/common/authoringExamples.ts +9 -0
  81. package/src/control/common/authoringSchema.ts +21 -12
  82. package/src/control/common/catalogCache.ts +145 -0
  83. package/src/control/common/conformance.ts +9 -3
  84. package/src/control/common/connectorQueries.ts +17 -2
  85. package/src/control/common/requests.ts +1 -0
  86. package/src/control/common/workflowAuthoring.ts +120 -0
  87. package/src/execution/common/checkpoint.ts +18 -12
  88. package/src/execution/common/dependencies.ts +132 -15
  89. package/src/execution/common/events.ts +3 -0
  90. package/src/execution/common/node-execution.ts +22 -15
  91. package/src/execution/common/scheduler.ts +20 -31
  92. package/src/flow/common/change.ts +2 -1
  93. package/src/flow/common/changeSchema.ts +11 -1
  94. package/src/flow/common/connectionUsage.ts +4 -2
  95. package/src/flow/common/errorHandling.ts +3 -1
  96. package/src/flow/common/nodeChanges.ts +35 -18
  97. package/src/flow/common/requestParameters.ts +120 -0
  98. package/src/flow/common/semantics.ts +51 -1
  99. package/src/flow/common/sourceField.ts +3 -2
  100. package/src/flow/common/workflowFile.ts +2 -2
  101. package/src/http/common/httpRequest.ts +28 -78
  102. package/src/runtime/common/engineContract.ts +6 -3
@@ -1933,7 +1933,7 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
1933
1933
 
1934
1934
  .open-flow-theme {
1935
1935
  --_open-flow-theme: light;
1936
- color-scheme: var(--_open-flow-theme);
1936
+ color-scheme: light;
1937
1937
  --_open-flow-background: var(--open-flow-background, light-dark(#fdfdfd, #1c1c1c));
1938
1938
  --_open-flow-foreground: var(--open-flow-foreground, light-dark(#242424, #eee));
1939
1939
  --_open-flow-card: var(--open-flow-card, light-dark(#fefefe, #242424));
@@ -1972,6 +1972,7 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
1972
1972
 
1973
1973
  .open-flow-theme[data-theme="dark"] {
1974
1974
  --_open-flow-theme: dark;
1975
+ color-scheme: dark;
1975
1976
  }
1976
1977
 
1977
1978
  .open-flow-theme, .open-flow-canvas-root :is(.react-flow__controls, [data-canvas-control-scope]) {
@@ -3291,6 +3292,10 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
3291
3292
  min-height: min(360px, 80dvh);
3292
3293
  }
3293
3294
 
3295
+ :where(.open-flow-theme, .open-flow-workbench, .open-flow-canvas-root) .min-h-min {
3296
+ min-height: min-content;
3297
+ }
3298
+
3294
3299
  :where(.open-flow-theme, .open-flow-workbench, .open-flow-canvas-root) .w-\(--anchor-width\) {
3295
3300
  width: var(--anchor-width);
3296
3301
  }
@@ -7972,23 +7977,20 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
7972
7977
  }
7973
7978
 
7974
7979
  .open-flow-navigation-menu {
7980
+ width: max-content;
7981
+ max-width: calc(100vw - 16px);
7982
+ max-height: var(--available-height);
7983
+ overscroll-behavior: contain;
7975
7984
  border: 1px solid var(--ui-border);
7976
7985
  border-radius: var(--ui-radius);
7977
7986
  background: var(--ui-popover);
7978
7987
  color: var(--ui-popover-foreground);
7979
- margin: 0;
7988
+ gap: 0;
7980
7989
  padding: 4px;
7981
- position: fixed;
7982
- inset: 48px 16px auto auto;
7990
+ overflow-y: auto;
7983
7991
  box-shadow: 0 4px 12px #0002;
7984
7992
  }
7985
7993
 
7986
- .open-flow-navigation-menu:popover-open {
7987
- flex-direction: column;
7988
- align-items: stretch;
7989
- display: flex;
7990
- }
7991
-
7992
7994
  .open-flow-navigation-menu button[aria-pressed="true"] {
7993
7995
  background: var(--ui-muted);
7994
7996
  }
@@ -15205,6 +15207,187 @@ svg.react-flow__connectionline {
15205
15207
  opacity: 1;
15206
15208
  transform: translateX(0);
15207
15209
  }
15210
+ }.fieldTable_list_14bfd {
15211
+ /* Stay in the containing panel's stacking context so rows can cross section boundaries. */
15212
+ container: value-fields/inline-size;
15213
+ min-width: 0;
15214
+ --field-toggle-width: 20px;
15215
+ --field-value-name-gap: 2px;
15216
+ --field-grip-width: 0px;
15217
+ padding: 8px 8px 16px 3px;
15218
+ --field-actions-width: 28px;
15219
+ color: var(--ui-foreground);
15220
+ }
15221
+
15222
+ .fieldTable_list_14bfd[data-action-slots="2"] {
15223
+ --field-actions-width: 58px;
15224
+ --field-table-actions-gap: 4px;
15225
+ --field-action-pair-gap: 2px;
15226
+ }
15227
+
15228
+ .fieldTable_list_14bfd[data-standalone] {
15229
+ --field-outer-gutter: calc(var(--field-toggle-width) + var(--field-value-name-gap));
15230
+ width: calc(100% + var(--field-outer-gutter));
15231
+ margin-inline-start: calc(-1 * var(--field-outer-gutter));
15232
+ padding: 0;
15233
+ }
15234
+
15235
+ .fieldTable_columns_14bfd {
15236
+ --field-nullable-width: var(--field-table-nullable-width, 0px);
15237
+ --field-name-track: minmax(0, 1fr);
15238
+ --field-type-track: minmax(64px, 0.48fr);
15239
+ --field-value-track: minmax(0, 1.5fr);
15240
+ --field-name-gap: 4px;
15241
+ --field-actions-gap: var(--field-table-actions-gap, 4px);
15242
+ --field-name-type-gap: 4px;
15243
+ --field-type-value-gap: 4px;
15244
+ --field-value-prefix-gap: 8px;
15245
+ --field-value-column: value;
15246
+ --field-value-row: 1;
15247
+ --field-branch-row: 2;
15248
+ display: grid;
15249
+ column-gap: 0;
15250
+ grid-template-columns: [grip] var(--field-grip-width, 0px) [toggle] var(--field-toggle-width, 24px) var(--field-name-gap) [handle] var(--field-name-track) var(--field-name-type-gap) [type] var(--field-type-track) var(--field-type-value-gap) [value] var(--field-value-track) [content-end] var(--field-actions-gap) [nullable] var(--field-nullable-width) [actions] var(--field-actions-width, 28px) [end];
15251
+ }
15252
+ .fieldTable_columns_14bfd[data-value-prefix] {
15253
+ grid-template-columns: [grip] var(--field-grip-width, 0px) [toggle] var(--field-toggle-width, 24px) var(--field-name-gap) [handle] var(--field-name-track) var(--field-name-type-gap) [type] var(--field-type-track) var(--field-type-value-gap) [value-prefix] max-content var(--field-value-prefix-gap) [value] var(--field-value-track) [content-end] var(--field-actions-gap) [nullable] var(--field-nullable-width) [actions] var(--field-actions-width, 28px) [end];
15254
+ }
15255
+ .fieldTable_columns_14bfd[data-layout=values], .fieldTable_columns_14bfd[data-layout=ports] {
15256
+ --field-name-track: minmax(
15257
+ 90px,
15258
+ calc(
15259
+ (100% - var(--field-grip-width, 0px) - var(--field-toggle-width, 24px) - var(--field-name-gap) - var(--field-name-type-gap) -
15260
+ var(--field-table-type-width, 56px) - var(--field-type-value-gap) - var(--field-actions-gap) - var(--field-nullable-width) -
15261
+ var(--field-actions-width, 28px)) *
15262
+ 0.4
15263
+ )
15264
+ );
15265
+ --field-value-track: minmax(0, 1fr);
15266
+ --field-type-track: var(--field-type-width, 56px);
15267
+ --field-name-gap: var(--field-value-name-gap, 2px);
15268
+ --field-actions-gap: var(--field-table-actions-gap, 2px);
15269
+ }
15270
+ .fieldTable_columns_14bfd[data-output] {
15271
+ grid-template-columns: [grip] var(--field-grip-width, 0px) [toggle] var(--field-toggle-width, 24px) var(--field-name-gap) [handle] minmax(0, 1fr) var(--field-name-type-gap) [type] var(--field-type-track) [content-end] var(--field-actions-gap) [nullable] var(--field-nullable-width) [actions] var(--field-actions-width, 28px) [end];
15272
+ }
15273
+ @container value-fields (max-width: 340px) {
15274
+ .fieldTable_columns_14bfd:not([data-output]) {
15275
+ --field-value-column: handle / content-end;
15276
+ --field-value-row: 2;
15277
+ --field-branch-row: 3;
15278
+ grid-template-columns: [grip] var(--field-grip-width, 0px) [toggle] var(--field-toggle-width, 24px) var(--field-name-gap) [handle] minmax(0, 1fr) var(--field-name-type-gap) [type] var(--field-type-track) [content-end] var(--field-actions-gap) [nullable] var(--field-nullable-width) [actions] var(--field-actions-width, 28px) [end];
15279
+ }
15280
+ .fieldTable_columns_14bfd[data-value-prefix]:not([data-output]) {
15281
+ --field-value-column: value / content-end;
15282
+ grid-template-columns: [grip] var(--field-grip-width, 0px) [toggle] var(--field-toggle-width, 24px) var(--field-name-gap) [handle value-prefix] max-content var(--field-value-prefix-gap) [value] minmax(0, 1fr) var(--field-name-type-gap) [type] var(--field-type-track) [content-end] var(--field-actions-gap) [nullable] var(--field-nullable-width) [actions] var(--field-actions-width, 28px) [end];
15283
+ }
15284
+ }
15285
+ @container value-fields (max-width: 340px) {
15286
+ .fieldTable_columns_14bfd:not([data-output]) {
15287
+ display: none;
15288
+ }
15289
+ }
15290
+ .fieldTable_columns_14bfd {
15291
+ row-gap: 4px;
15292
+ color: var(--ui-muted-foreground);
15293
+ font-size: 12px;
15294
+ padding: 4px 0;
15295
+ }
15296
+ .fieldTable_columns_14bfd > span {
15297
+ padding-left: 7px;
15298
+ }
15299
+ .fieldTable_columns_14bfd > .fieldTable_nameHeading_14bfd {
15300
+ grid-column: handle;
15301
+ grid-row: 1;
15302
+ }
15303
+ .fieldTable_columns_14bfd > .fieldTable_typeHeading_14bfd {
15304
+ grid-column: type;
15305
+ grid-row: 1;
15306
+ }
15307
+ .fieldTable_list_14bfd[data-fixed-types] .fieldTable_columns_14bfd > .fieldTable_typeHeading_14bfd {
15308
+ padding-left: 0;
15309
+ }
15310
+ .fieldTable_columns_14bfd > .fieldTable_valueHeading_14bfd {
15311
+ grid-column: var(--field-value-heading-column, var(--field-value-column));
15312
+ grid-row: var(--field-value-row);
15313
+ }
15314
+
15315
+ .fieldTable_list_14bfd[data-fixed-types] {
15316
+ --field-table-type-width: 32px;
15317
+ --field-type-width: 32px;
15318
+ }
15319
+
15320
+ .fieldTable_list_14bfd:not([data-type-column]) {
15321
+ --field-table-type-width: 0px;
15322
+ --field-type-width: 0px;
15323
+ --field-type-value-gap: 0px;
15324
+ }
15325
+
15326
+ .fieldTable_list_14bfd[data-output] {
15327
+ --field-type-width: minmax(96px, 0.65fr);
15328
+ }
15329
+
15330
+ .fieldTable_list_14bfd[data-output][data-composite-types] {
15331
+ --field-type-width: minmax(176px, 1.15fr);
15332
+ }
15333
+
15334
+ .fieldTable_list_14bfd[data-nullable] {
15335
+ --field-table-nullable-width: 28px;
15336
+ }
15337
+
15338
+ .fieldTable_list_14bfd[data-layout=ports] {
15339
+ padding-top: 2px;
15340
+ }
15341
+ .fieldTable_list_14bfd[data-layout=ports] .fieldTable_columns_14bfd {
15342
+ padding-block: 2px;
15343
+ }
15344
+
15345
+ .fieldTable_list_14bfd[data-empty] {
15346
+ padding-block: 0;
15347
+ }
15348
+
15349
+ .fieldTable_row_14bfd {
15350
+ position: relative;
15351
+ min-width: 0;
15352
+ --row-gap: 6px;
15353
+ margin: var(--row-gap) 0;
15354
+ }
15355
+
15356
+ .fieldTable_nullableControl_14bfd,
15357
+ .fieldTable_columns_14bfd > .fieldTable_nullableHeading_14bfd {
15358
+ display: flex;
15359
+ grid-column: nullable;
15360
+ grid-row: 1;
15361
+ padding: 0;
15362
+ align-items: center;
15363
+ justify-content: center;
15364
+ white-space: nowrap;
15365
+ }
15366
+
15367
+ .fieldTable_nullableControl_14bfd {
15368
+ height: var(--field-control-height, 30px);
15369
+ }.fieldBranch_branch_a5820 {
15370
+ --branch-origin: calc(var(--field-indent, 0px) + var(--field-toggle-width, 24px) / 2);
15371
+ --branch-extension: 0px;
15372
+ position: relative;
15373
+ }
15374
+ .fieldBranch_branch_a5820::before {
15375
+ content: "";
15376
+ position: absolute;
15377
+ width: 16px;
15378
+ height: calc(20px + var(--branch-extension, 0px));
15379
+ border-left: 1px solid color-mix(in srgb, var(--ui-foreground) 20%, var(--ui-background));
15380
+ border-bottom: 1px solid color-mix(in srgb, var(--ui-foreground) 20%, var(--ui-background));
15381
+ border-bottom-left-radius: 10px;
15382
+ left: var(--branch-origin, calc(var(--field-indent, 0px) + var(--field-toggle-width, 24px) / 2));
15383
+ top: calc(-1 * var(--branch-extension, 0px));
15384
+ width: 16px;
15385
+ }
15386
+ .fieldBranch_branch_a5820[data-branch-endpoint=marker]::before {
15387
+ width: 6px;
15388
+ }
15389
+ .fieldBranch_branch_a5820[hidden] {
15390
+ display: none;
15208
15391
  }.sortableFieldList_list_c1437 {
15209
15392
  display: flex;
15210
15393
  flex-direction: column;
@@ -15238,28 +15421,6 @@ svg.react-flow__connectionline {
15238
15421
  }
15239
15422
  .sortableFieldList_grip_c1437:active {
15240
15423
  cursor: grabbing;
15241
- }.fieldBranch_branch_a5820 {
15242
- --branch-origin: calc(var(--field-indent, 0px) + var(--field-toggle-width, 24px) / 2);
15243
- --branch-extension: 0px;
15244
- position: relative;
15245
- }
15246
- .fieldBranch_branch_a5820::before {
15247
- content: "";
15248
- position: absolute;
15249
- width: 16px;
15250
- height: calc(20px + var(--branch-extension, 0px));
15251
- border-left: 1px solid color-mix(in srgb, var(--ui-foreground) 20%, var(--ui-background));
15252
- border-bottom: 1px solid color-mix(in srgb, var(--ui-foreground) 20%, var(--ui-background));
15253
- border-bottom-left-radius: 10px;
15254
- left: var(--branch-origin, calc(var(--field-indent, 0px) + var(--field-toggle-width, 24px) / 2));
15255
- top: calc(-1 * var(--branch-extension, 0px));
15256
- width: 16px;
15257
- }
15258
- .fieldBranch_branch_a5820[data-branch-endpoint=marker]::before {
15259
- width: 6px;
15260
- }
15261
- .fieldBranch_branch_a5820[hidden] {
15262
- display: none;
15263
15424
  }.open-flow-workbench .condition-groups[hidden],
15264
15425
  .open-flow-workbench .condition-expressions[hidden] {
15265
15426
  display: none;
@@ -15399,165 +15560,6 @@ svg.react-flow__connectionline {
15399
15560
  .nodeInputValue_sourceControl_67a3d:focus-visible {
15400
15561
  outline: 2px solid var(--ui-destructive);
15401
15562
  outline-offset: -1px;
15402
- }.fieldTable_list_14bfd {
15403
- /* Stay in the containing panel's stacking context so rows can cross section boundaries. */
15404
- container: value-fields/inline-size;
15405
- min-width: 0;
15406
- --field-toggle-width: 20px;
15407
- --field-value-name-gap: 2px;
15408
- --field-grip-width: 0px;
15409
- padding: 8px 8px 16px 3px;
15410
- --field-actions-width: 28px;
15411
- color: var(--ui-foreground);
15412
- }
15413
-
15414
- .fieldTable_list_14bfd[data-action-slots="2"] {
15415
- --field-actions-width: 58px;
15416
- --field-table-actions-gap: 4px;
15417
- --field-action-pair-gap: 2px;
15418
- }
15419
-
15420
- .fieldTable_list_14bfd[data-standalone] {
15421
- --field-outer-gutter: calc(var(--field-toggle-width) + var(--field-value-name-gap));
15422
- width: calc(100% + var(--field-outer-gutter));
15423
- margin-inline-start: calc(-1 * var(--field-outer-gutter));
15424
- padding: 0;
15425
- }
15426
-
15427
- .fieldTable_columns_14bfd {
15428
- --field-nullable-width: var(--field-table-nullable-width, 0px);
15429
- --field-name-track: minmax(0, 1fr);
15430
- --field-type-track: minmax(64px, 0.48fr);
15431
- --field-value-track: minmax(0, 1.5fr);
15432
- --field-name-gap: 4px;
15433
- --field-actions-gap: var(--field-table-actions-gap, 4px);
15434
- --field-name-type-gap: 4px;
15435
- --field-type-value-gap: 4px;
15436
- --field-value-prefix-gap: 8px;
15437
- --field-value-column: value;
15438
- --field-value-row: 1;
15439
- --field-branch-row: 2;
15440
- display: grid;
15441
- column-gap: 0;
15442
- grid-template-columns: [grip] var(--field-grip-width, 0px) [toggle] var(--field-toggle-width, 24px) var(--field-name-gap) [handle] var(--field-name-track) var(--field-name-type-gap) [type] var(--field-type-track) var(--field-type-value-gap) [value] var(--field-value-track) [content-end] var(--field-actions-gap) [nullable] var(--field-nullable-width) [actions] var(--field-actions-width, 28px) [end];
15443
- }
15444
- .fieldTable_columns_14bfd[data-value-prefix] {
15445
- grid-template-columns: [grip] var(--field-grip-width, 0px) [toggle] var(--field-toggle-width, 24px) var(--field-name-gap) [handle] var(--field-name-track) var(--field-name-type-gap) [type] var(--field-type-track) var(--field-type-value-gap) [value-prefix] max-content var(--field-value-prefix-gap) [value] var(--field-value-track) [content-end] var(--field-actions-gap) [nullable] var(--field-nullable-width) [actions] var(--field-actions-width, 28px) [end];
15446
- }
15447
- .fieldTable_columns_14bfd[data-layout=values], .fieldTable_columns_14bfd[data-layout=ports] {
15448
- --field-name-track: minmax(
15449
- 90px,
15450
- calc(
15451
- (100% - var(--field-grip-width, 0px) - var(--field-toggle-width, 24px) - var(--field-name-gap) - var(--field-name-type-gap) -
15452
- var(--field-table-type-width, 56px) - var(--field-type-value-gap) - var(--field-actions-gap) - var(--field-nullable-width) -
15453
- var(--field-actions-width, 28px)) *
15454
- 0.4
15455
- )
15456
- );
15457
- --field-value-track: minmax(0, 1fr);
15458
- --field-type-track: var(--field-type-width, 56px);
15459
- --field-name-gap: var(--field-value-name-gap, 2px);
15460
- --field-actions-gap: var(--field-table-actions-gap, 2px);
15461
- }
15462
- .fieldTable_columns_14bfd[data-output] {
15463
- grid-template-columns: [grip] var(--field-grip-width, 0px) [toggle] var(--field-toggle-width, 24px) var(--field-name-gap) [handle] minmax(0, 1fr) var(--field-name-type-gap) [type] var(--field-type-track) [content-end] var(--field-actions-gap) [nullable] var(--field-nullable-width) [actions] var(--field-actions-width, 28px) [end];
15464
- }
15465
- @container value-fields (max-width: 340px) {
15466
- .fieldTable_columns_14bfd:not([data-output]) {
15467
- --field-value-column: handle / content-end;
15468
- --field-value-row: 2;
15469
- --field-branch-row: 3;
15470
- grid-template-columns: [grip] var(--field-grip-width, 0px) [toggle] var(--field-toggle-width, 24px) var(--field-name-gap) [handle] minmax(0, 1fr) var(--field-name-type-gap) [type] var(--field-type-track) [content-end] var(--field-actions-gap) [nullable] var(--field-nullable-width) [actions] var(--field-actions-width, 28px) [end];
15471
- }
15472
- .fieldTable_columns_14bfd[data-value-prefix]:not([data-output]) {
15473
- --field-value-column: value / content-end;
15474
- grid-template-columns: [grip] var(--field-grip-width, 0px) [toggle] var(--field-toggle-width, 24px) var(--field-name-gap) [handle value-prefix] max-content var(--field-value-prefix-gap) [value] minmax(0, 1fr) var(--field-name-type-gap) [type] var(--field-type-track) [content-end] var(--field-actions-gap) [nullable] var(--field-nullable-width) [actions] var(--field-actions-width, 28px) [end];
15475
- }
15476
- }
15477
- @container value-fields (max-width: 340px) {
15478
- .fieldTable_columns_14bfd:not([data-output]) {
15479
- display: none;
15480
- }
15481
- }
15482
- .fieldTable_columns_14bfd {
15483
- row-gap: 4px;
15484
- color: var(--ui-muted-foreground);
15485
- font-size: 12px;
15486
- padding: 4px 0;
15487
- }
15488
- .fieldTable_columns_14bfd > span {
15489
- padding-left: 7px;
15490
- }
15491
- .fieldTable_columns_14bfd > .fieldTable_nameHeading_14bfd {
15492
- grid-column: handle;
15493
- grid-row: 1;
15494
- }
15495
- .fieldTable_columns_14bfd > .fieldTable_typeHeading_14bfd {
15496
- grid-column: type;
15497
- grid-row: 1;
15498
- }
15499
- .fieldTable_list_14bfd[data-fixed-types] .fieldTable_columns_14bfd > .fieldTable_typeHeading_14bfd {
15500
- padding-left: 0;
15501
- }
15502
- .fieldTable_columns_14bfd > .fieldTable_valueHeading_14bfd {
15503
- grid-column: var(--field-value-heading-column, var(--field-value-column));
15504
- grid-row: var(--field-value-row);
15505
- }
15506
-
15507
- .fieldTable_list_14bfd[data-fixed-types] {
15508
- --field-table-type-width: 32px;
15509
- --field-type-width: 32px;
15510
- }
15511
-
15512
- .fieldTable_list_14bfd:not([data-type-column]) {
15513
- --field-table-type-width: 0px;
15514
- --field-type-width: 0px;
15515
- --field-type-value-gap: 0px;
15516
- }
15517
-
15518
- .fieldTable_list_14bfd[data-output] {
15519
- --field-type-width: minmax(96px, 0.65fr);
15520
- }
15521
-
15522
- .fieldTable_list_14bfd[data-output][data-composite-types] {
15523
- --field-type-width: minmax(176px, 1.15fr);
15524
- }
15525
-
15526
- .fieldTable_list_14bfd[data-nullable] {
15527
- --field-table-nullable-width: 28px;
15528
- }
15529
-
15530
- .fieldTable_list_14bfd[data-layout=ports] {
15531
- padding-top: 2px;
15532
- }
15533
- .fieldTable_list_14bfd[data-layout=ports] .fieldTable_columns_14bfd {
15534
- padding-block: 2px;
15535
- }
15536
-
15537
- .fieldTable_list_14bfd[data-empty] {
15538
- padding-block: 0;
15539
- }
15540
-
15541
- .fieldTable_row_14bfd {
15542
- position: relative;
15543
- min-width: 0;
15544
- --row-gap: 6px;
15545
- margin: var(--row-gap) 0;
15546
- }
15547
-
15548
- .fieldTable_nullableControl_14bfd,
15549
- .fieldTable_columns_14bfd > .fieldTable_nullableHeading_14bfd {
15550
- display: flex;
15551
- grid-column: nullable;
15552
- grid-row: 1;
15553
- padding: 0;
15554
- align-items: center;
15555
- justify-content: center;
15556
- white-space: nowrap;
15557
- }
15558
-
15559
- .fieldTable_nullableControl_14bfd {
15560
- height: var(--field-control-height, 30px);
15561
15563
  }.portList_row_51bf3 {
15562
15564
  padding: 0;
15563
15565
  }
@@ -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-BB_qwy3k.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-BZ6tpqnr.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-Bi-MVTGj.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-azhepfr-.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-CB3eiK7e.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-CXVWVlLc.js");
7050
+ const { downloadPng } = await import("./exportPng-CLZKdNzR.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-BNdBKtla.js"));
7317
+ var FlowWorkspace = lazy(() => import("./flowWorkspace-Cs2ZGBYK.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-BZ6tpqnr.js";
2
+ import { $t as SelectGroup, Qt as SelectContent, Xt as Select, en as SelectItem, nn as SelectTrigger, rn as SelectValue } from "./dialog-Bi-MVTGj.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 }) {