@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
@@ -62819,6 +62819,7 @@ var OpenFlowRenderer = (function(exports) {
62819
62819
  //#region src/ui/browser/button.tsx
62820
62820
  var buttonVariants = cva("nodrag group/button relative inline-flex shrink-0 items-center justify-center rounded-[var(--ui-control-radius,calc(var(--ui-radius)_+_2px))] border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap no-underline transition-[color,background-color,border-color,box-shadow,opacity,transform] outline-none select-none before:absolute before:inset-0 before:content-[''] motion-reduce:transition-none focus-visible:border-border focus-visible:outline-2 focus-visible:outline-solid focus-visible:ring-0 focus-visible:aria-invalid:ring-0 focus-visible:outline-offset-1 focus-visible:outline-ring focus-visible:aria-invalid:outline-destructive active:not-aria-[haspopup]:not-data-[variant=field]:translate-y-px disabled:pointer-events-none disabled:opacity-[var(--ui-disabled-opacity,0.5)] aria-disabled:pointer-events-none aria-disabled:opacity-[var(--ui-disabled-opacity,0.5)] aria-invalid:border-destructive [&_svg]:pointer-events-none [&_i[aria-hidden=true]]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
62821
62821
  variants: {
62822
+ multiline: { true: "min-h-min whitespace-normal wrap-anywhere text-center" },
62822
62823
  variant: {
62823
62824
  "default": "bg-primary text-primary-foreground hover:bg-primary/80",
62824
62825
  "outline": "border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-[var(--ui-disabled-background,color-mix(in_srgb,var(--ui-input)_50%,transparent))]",
@@ -62847,7 +62848,7 @@ var OpenFlowRenderer = (function(exports) {
62847
62848
  size: "default"
62848
62849
  }
62849
62850
  });
62850
- var Button = (0, import_react$4.forwardRef)(function Button({ className, variant = "default", size = "default", ...props }, ref) {
62851
+ var Button = (0, import_react$4.forwardRef)(function Button({ className, variant = "default", size = "default", multiline, ...props }, ref) {
62851
62852
  return /* @__PURE__ */ (0, import_jsx_runtime$2.jsx)(Button$1, {
62852
62853
  ref,
62853
62854
  "data-slot": "button",
@@ -62856,6 +62857,7 @@ var OpenFlowRenderer = (function(exports) {
62856
62857
  className: cn(buttonVariants({
62857
62858
  variant,
62858
62859
  size,
62860
+ multiline,
62859
62861
  className
62860
62862
  })),
62861
62863
  ...props
@@ -242227,7 +242229,7 @@ ${seriesRules.join("\n")}${tipRules}
242227
242229
  return dataTransfer.getData(ADD_ITEM_KEY);
242228
242230
  }
242229
242231
  //#endregion
242230
- //#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/core/util.js
242232
+ //#region ../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/util.js
242231
242233
  function getEnumValues(entries) {
242232
242234
  const numericValues = Object.values(entries).filter((v) => typeof v === "number");
242233
242235
  return Object.entries(entries).filter(([k, _]) => numericValues.indexOf(+k) === -1).map(([_, v]) => v);
@@ -242552,6 +242554,17 @@ ${seriesRules.join("\n")}${tipRules}
242552
242554
  function unwrapMessage(message) {
242553
242555
  return typeof message === "string" ? message : message?.message;
242554
242556
  }
242557
+ /** The leading size checks of `defChecks` that set an upper bound, each paired with it. */
242558
+ function sizeCaps(defChecks) {
242559
+ const caps = [];
242560
+ for (const ch of defChecks ?? []) {
242561
+ const d = ch._zod.def;
242562
+ if (!/_(length|size)$|_equals$/.test(d.check)) break;
242563
+ const max = d.maximum ?? d.length ?? d.size;
242564
+ if (max >= 0) caps.push([max, ch]);
242565
+ }
242566
+ return caps;
242567
+ }
242555
242568
  function attachSchema(issues, start, inst) {
242556
242569
  var _a;
242557
242570
  for (let i = start; i < issues.length; i++) (_a = issues[i]).schema ?? (_a.schema = inst);
@@ -242768,7 +242781,7 @@ ${seriesRules.join("\n")}${tipRules}
242768
242781
  return fn;
242769
242782
  }
242770
242783
  //#endregion
242771
- //#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/core/core.js
242784
+ //#region ../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/core.js
242772
242785
  var _a$1;
242773
242786
  var _zodDesc = {
242774
242787
  value: void 0,
@@ -242874,7 +242887,7 @@ ${seriesRules.join("\n")}${tipRules}
242874
242887
  return globalConfig;
242875
242888
  }
242876
242889
  //#endregion
242877
- //#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/core/errors.js
242890
+ //#region ../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/errors.js
242878
242891
  function _getMessage() {
242879
242892
  const internals = this._zod;
242880
242893
  internals.message ?? (internals.message = JSON.stringify(internals.def, jsonStringifyReplacer, 2));
@@ -242990,7 +243003,7 @@ ${seriesRules.join("\n")}${tipRules}
242990
243003
  return fieldErrors;
242991
243004
  }
242992
243005
  //#endregion
242993
- //#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/core/parse.js
243006
+ //#region ../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/parse.js
242994
243007
  function finalizeParams(callee, params) {
242995
243008
  return {
242996
243009
  callee: params?.callee ?? callee,
@@ -243193,7 +243206,7 @@ ${seriesRules.join("\n")}${tipRules}
243193
243206
  return _safeParseAsync(_Err)(schema, value, _ctx);
243194
243207
  };
243195
243208
  //#endregion
243196
- //#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/core/regexes.js
243209
+ //#region ../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/regexes.js
243197
243210
  /**
243198
243211
  * @deprecated CUID v1 is deprecated by its authors due to information leakage
243199
243212
  * (timestamps embedded in the id). Use {@link cuid2} instead.
@@ -243266,7 +243279,7 @@ ${seriesRules.join("\n")}${tipRules}
243266
243279
  var lowercase = /^[^A-Z]*$/;
243267
243280
  var uppercase = /^[^a-z]*$/;
243268
243281
  //#endregion
243269
- //#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/core/checks.js
243282
+ //#region ../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/checks.js
243270
243283
  var $ZodCheck = /*@__PURE__*/ $constructor("$ZodCheck", (inst, def) => {
243271
243284
  var _a;
243272
243285
  inst._zod ?? (inst._zod = {});
@@ -243562,7 +243575,7 @@ ${seriesRules.join("\n")}${tipRules}
243562
243575
  };
243563
243576
  });
243564
243577
  //#endregion
243565
- //#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/core/doc.js
243578
+ //#region ../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/doc.js
243566
243579
  var Doc = class {
243567
243580
  constructor(args = [], closed = {}) {
243568
243581
  this.content = [];
@@ -243596,14 +243609,14 @@ ${seriesRules.join("\n")}${tipRules}
243596
243609
  }
243597
243610
  };
243598
243611
  //#endregion
243599
- //#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/core/versions.js
243612
+ //#region ../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/versions.js
243600
243613
  var version = {
243601
243614
  major: 4,
243602
243615
  minor: 6,
243603
- patch: 5
243616
+ patch: 7
243604
243617
  };
243605
243618
  //#endregion
243606
- //#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/core/schemas.js
243619
+ //#region ../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/schemas.js
243607
243620
  var $ZodType = /*@__PURE__*/ $constructor("$ZodType", (inst, def) => {
243608
243621
  var _a;
243609
243622
  inst ?? (inst = {});
@@ -244116,6 +244129,26 @@ ${seriesRules.join("\n")}${tipRules}
244116
244129
  return payload;
244117
244130
  };
244118
244131
  });
244132
+ function capSize(inst, size) {
244133
+ const caps = sizeCaps(inst._zod.def.checks);
244134
+ if (!caps.length) return;
244135
+ const cap = Math.min(...caps.map((c) => c[0]));
244136
+ const parse = inst._zod.parse;
244137
+ inst._zod.parse = (payload, ctx) => {
244138
+ const n = size(payload.value);
244139
+ if (n > cap && !ctx?.skipChecks && ctx?.direction !== "backward") {
244140
+ for (const [max, ch] of sizeCaps(inst._zod.def.checks)) if (n > max && ch._zod.def.when(payload)) {
244141
+ const start = payload.issues.length;
244142
+ ch._zod.check(payload);
244143
+ payload.issues[start].continue = false;
244144
+ attachSchema(payload.issues, start, inst);
244145
+ return payload;
244146
+ }
244147
+ }
244148
+ return parse(payload, ctx);
244149
+ };
244150
+ }
244151
+ var arraySize = (input) => Array.isArray(input) ? input.length : -1;
244119
244152
  function handleArrayResult(result, final, index) {
244120
244153
  if (result.issues.length) final.issues.push(...prefixIssues(index, result.issues));
244121
244154
  final.value[index] = result.value;
@@ -244153,6 +244186,7 @@ ${seriesRules.join("\n")}${tipRules}
244153
244186
  if (proms.length) return Promise.all(proms).then(() => payload);
244154
244187
  return payload;
244155
244188
  };
244189
+ capSize(inst, arraySize);
244156
244190
  });
244157
244191
  function handlePropertyResult(result, final, key, input, optin, optout) {
244158
244192
  const isPresent = key in input;
@@ -244261,7 +244295,7 @@ ${seriesRules.join("\n")}${tipRules}
244261
244295
  }
244262
244296
  return propValues;
244263
244297
  });
244264
- const isObject$4 = isObject;
244298
+ const isObject$3 = isObject;
244265
244299
  const catchall = def.catchall;
244266
244300
  let value;
244267
244301
  const memo = globalConfig.memoizer;
@@ -244269,7 +244303,7 @@ ${seriesRules.join("\n")}${tipRules}
244269
244303
  inst._zod.parse = (payload, ctx) => {
244270
244304
  value ?? (value = _normalized.value);
244271
244305
  const input = payload.value;
244272
- if (!isObject$4(input)) {
244306
+ if (!isObject$3(input)) {
244273
244307
  payload.issues.push({
244274
244308
  expected: "object",
244275
244309
  code: "invalid_type",
@@ -244399,7 +244433,7 @@ ${seriesRules.join("\n")}${tipRules}
244399
244433
  return doc.compile();
244400
244434
  };
244401
244435
  let fastpass;
244402
- const isObject$3 = isObject;
244436
+ const isObject$4 = isObject;
244403
244437
  const jit = !globalConfig.jitless;
244404
244438
  const fastEnabled = jit && allowsEval.value;
244405
244439
  const catchall = def.catchall;
@@ -244407,7 +244441,7 @@ ${seriesRules.join("\n")}${tipRules}
244407
244441
  inst._zod.parse = (payload, ctx) => {
244408
244442
  value ?? (value = _normalized.value);
244409
244443
  const input = payload.value;
244410
- if (!isObject$3(input)) {
244444
+ if (!isObject$4(input)) {
244411
244445
  payload.issues.push({
244412
244446
  expected: "object",
244413
244447
  code: "invalid_type",
@@ -245071,7 +245105,7 @@ ${seriesRules.join("\n")}${tipRules}
245071
245105
  }
245072
245106
  }
245073
245107
  //#endregion
245074
- //#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/core/memoizer.js
245108
+ //#region ../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/memoizer.js
245075
245109
  var $ZodCyclicError = class extends Error {
245076
245110
  constructor() {
245077
245111
  super(`Cannot parse a reference cycle that closes through a transform`);
@@ -245324,7 +245358,7 @@ ${seriesRules.join("\n")}${tipRules}
245324
245358
  return backEdges !== void 0 && isRef(value) && backEdges.has(value);
245325
245359
  }
245326
245360
  //#endregion
245327
- //#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/locales/en.js
245361
+ //#region ../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/locales/en.js
245328
245362
  var error = () => {
245329
245363
  const Sizable = {
245330
245364
  string: {
@@ -245432,7 +245466,7 @@ ${seriesRules.join("\n")}${tipRules}
245432
245466
  return { localeError: error() };
245433
245467
  }
245434
245468
  //#endregion
245435
- //#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/core/registries.js
245469
+ //#region ../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/registries.js
245436
245470
  var _a;
245437
245471
  var $ZodRegistry = class {
245438
245472
  constructor() {
@@ -245479,7 +245513,7 @@ ${seriesRules.join("\n")}${tipRules}
245479
245513
  (_a = globalThis).__zod_globalRegistry ?? (_a.__zod_globalRegistry = registry());
245480
245514
  var globalRegistry = globalThis.__zod_globalRegistry;
245481
245515
  //#endregion
245482
- //#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/core/api.js
245516
+ //#region ../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/api.js
245483
245517
  function snapshotChecks(def) {
245484
245518
  if (def.checks) def.checks = [...def.checks];
245485
245519
  return def;
@@ -245995,7 +246029,7 @@ ${seriesRules.join("\n")}${tipRules}
245995
246029
  return ch;
245996
246030
  }
245997
246031
  //#endregion
245998
- //#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/core/to-json-schema.js
246032
+ //#region ../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/to-json-schema.js
245999
246033
  function assignProps(target, ...sources) {
246000
246034
  for (const source of sources) for (const key of Reflect.ownKeys(source)) if (Object.prototype.propertyIsEnumerable.call(source, key)) assignProp(target, key, source[key]);
246001
246035
  return target;
@@ -246439,7 +246473,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
246439
246473
  return finalize(ctx, schema);
246440
246474
  };
246441
246475
  //#endregion
246442
- //#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/core/json-schema-processors.js
246476
+ //#region ../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/json-schema-processors.js
246443
246477
  var narrowMin = (agg, key, value) => {
246444
246478
  if (agg[key] === void 0 || value > agg[key]) agg[key] = value;
246445
246479
  };
@@ -246900,7 +246934,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
246900
246934
  seen.ref = innerType;
246901
246935
  };
246902
246936
  //#endregion
246903
- //#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/classic/errors.js
246937
+ //#region ../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/classic/errors.js
246904
246938
  var _installedErrorProtos = /* @__PURE__ */ new WeakSet([Object.prototype, Error.prototype]);
246905
246939
  function _lazyMethod(proto, key, make) {
246906
246940
  Object.defineProperty(proto, key, {
@@ -246950,7 +246984,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
246950
246984
  };
246951
246985
  var ZodRealError = /*@__PURE__*/ $constructor("ZodError", initializer, void 0, { Parent: Error });
246952
246986
  //#endregion
246953
- //#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/classic/parse.js
246987
+ //#region ../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/classic/parse.js
246954
246988
  var parse = /* @__PURE__ */ _parse(ZodRealError);
246955
246989
  var parseAsync = /* @__PURE__ */ _parseAsync(ZodRealError);
246956
246990
  var safeParse = /* @__PURE__ */ _safeParse(ZodRealError);
@@ -246964,7 +246998,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
246964
246998
  var safeEncodeAsync = /* @__PURE__ */ _safeEncodeAsync(ZodRealError);
246965
246999
  var safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync(ZodRealError);
246966
247000
  //#endregion
246967
- //#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/classic/schemas.js
247001
+ //#region ../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/classic/schemas.js
246968
247002
  function _ensureDefaultLocale() {
246969
247003
  if (!globalConfig.localeError) config(en_default$2());
246970
247004
  }
@@ -247896,7 +247930,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
247896
247930
  });
247897
247931
  }
247898
247932
  //#endregion
247899
- //#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/classic/iso.js
247933
+ //#region ../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/classic/iso.js
247900
247934
  function datetime(params) {
247901
247935
  return /* @__PURE__ */ _isoDateTime(ZodISODateTime, params);
247902
247936
  }
@@ -252225,6 +252259,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
252225
252259
  "missingStatuses": "Some selected statuses are no longer available. Remove or replace them."
252226
252260
  },
252227
252261
  nodePicker: {
252262
+ "custom": "Custom",
252228
252263
  "actionGroups": {
252229
252264
  "read": "Read actions",
252230
252265
  "write": "Write actions",
@@ -252453,6 +252488,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
252453
252488
  "connector": "Connector",
252454
252489
  "workflow": "Workflow"
252455
252490
  },
252491
+ connectorProxy: {
252492
+ "bodyUnsupported": "GET requests do not support a request body.",
252493
+ "title": "Custom API Request",
252494
+ "description": "Call a Provider API using its connected account.",
252495
+ "endpoint": "Endpoint"
252496
+ },
252456
252497
  httpRequest: {
252457
252498
  "title": "HTTP Request",
252458
252499
  "description": "Send an HTTP request and use its response in the workflow.",
@@ -253615,6 +253656,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
253615
253656
  "missingStatuses": "部分已选状态不再可用,请移除或重新选择。"
253616
253657
  },
253617
253658
  nodePicker: {
253659
+ "custom": "自定义",
253618
253660
  "actionGroups": {
253619
253661
  "read": "读取接口",
253620
253662
  "write": "写入接口",
@@ -253843,6 +253885,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
253843
253885
  "connector": "连接器",
253844
253886
  "workflow": "工作流"
253845
253887
  },
253888
+ connectorProxy: {
253889
+ "bodyUnsupported": "GET 请求不支持请求体。",
253890
+ "title": "自定义 API 请求",
253891
+ "description": "使用已连接账号调用 Provider API。",
253892
+ "endpoint": "接口路径"
253893
+ },
253846
253894
  httpRequest: {
253847
253895
  "title": "HTTP 请求",
253848
253896
  "description": "发送 HTTP 请求,在工作流中使用响应数据。",
@@ -255005,6 +255053,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
255005
255053
  "missingStatuses": "部分已選狀態不再可用,請移除或重新選擇。"
255006
255054
  },
255007
255055
  nodePicker: {
255056
+ "custom": "自訂",
255008
255057
  "actionGroups": {
255009
255058
  "read": "讀取介面",
255010
255059
  "write": "寫入介面",
@@ -255233,6 +255282,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
255233
255282
  "connector": "連接器",
255234
255283
  "workflow": "工作流程"
255235
255284
  },
255285
+ connectorProxy: {
255286
+ "bodyUnsupported": "GET 請求不支援請求本文。",
255287
+ "title": "自訂 API 請求",
255288
+ "description": "使用已連線帳號呼叫 Provider API。",
255289
+ "endpoint": "介面路徑"
255290
+ },
255236
255291
  httpRequest: {
255237
255292
  "title": "HTTP 請求",
255238
255293
  "description": "傳送 HTTP 請求,在工作流程中使用回應資料。",
@@ -256395,6 +256450,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
256395
256450
  "missingStatuses": "選択したステータスの一部は利用できません。削除するか選び直してください。"
256396
256451
  },
256397
256452
  nodePicker: {
256453
+ "custom": "カスタム",
256398
256454
  "actionGroups": {
256399
256455
  "read": "読み取り操作",
256400
256456
  "write": "書き込み操作",
@@ -256623,6 +256679,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
256623
256679
  "connector": "コネクター",
256624
256680
  "workflow": "ワークフロー"
256625
256681
  },
256682
+ connectorProxy: {
256683
+ "bodyUnsupported": "GET リクエストはリクエストボディに対応していません。",
256684
+ "title": "カスタム API リクエスト",
256685
+ "description": "接続済みアカウントで Provider API を呼び出します。",
256686
+ "endpoint": "エンドポイント"
256687
+ },
256626
256688
  httpRequest: {
256627
256689
  "title": "HTTP リクエスト",
256628
256690
  "description": "HTTP リクエストを送信し、ワークフローでレスポンスを使用します。",
@@ -257785,6 +257847,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
257785
257847
  "missingStatuses": "선택한 상태 중 일부를 사용할 수 없습니다. 삭제하거나 다시 선택하세요."
257786
257848
  },
257787
257849
  nodePicker: {
257850
+ "custom": "사용자 지정",
257788
257851
  "actionGroups": {
257789
257852
  "read": "읽기 작업",
257790
257853
  "write": "쓰기 작업",
@@ -258013,6 +258076,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
258013
258076
  "connector": "커넥터",
258014
258077
  "workflow": "워크플로"
258015
258078
  },
258079
+ connectorProxy: {
258080
+ "bodyUnsupported": "GET 요청은 요청 본문을 지원하지 않습니다.",
258081
+ "title": "사용자 지정 API 요청",
258082
+ "description": "연결된 계정으로 Provider API를 호출합니다.",
258083
+ "endpoint": "엔드포인트"
258084
+ },
258016
258085
  httpRequest: {
258017
258086
  "title": "HTTP 요청",
258018
258087
  "description": "HTTP 요청을 보내고 워크플로에서 응답을 사용합니다.",
@@ -259175,6 +259244,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
259175
259244
  "missingStatuses": "Некоторые выбранные статусы больше недоступны. Удалите или замените их."
259176
259245
  },
259177
259246
  nodePicker: {
259247
+ "custom": "Пользовательские",
259178
259248
  "actionGroups": {
259179
259249
  "read": "Операции чтения",
259180
259250
  "write": "Операции записи",
@@ -259403,6 +259473,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
259403
259473
  "connector": "Коннектор",
259404
259474
  "workflow": "Рабочий процесс"
259405
259475
  },
259476
+ connectorProxy: {
259477
+ "bodyUnsupported": "GET-запросы не поддерживают тело запроса.",
259478
+ "title": "Пользовательский API-запрос",
259479
+ "description": "Вызов API провайдера через подключённый аккаунт.",
259480
+ "endpoint": "Путь запроса"
259481
+ },
259406
259482
  httpRequest: {
259407
259483
  "title": "HTTP-запрос",
259408
259484
  "description": "Отправить HTTP-запрос и использовать ответ в рабочем процессе.",
@@ -260565,6 +260641,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
260565
260641
  "missingStatuses": "Certains statuts sélectionnés ne sont plus disponibles. Supprimez-les ou remplacez-les."
260566
260642
  },
260567
260643
  nodePicker: {
260644
+ "custom": "Personnalisé",
260568
260645
  "actionGroups": {
260569
260646
  "read": "Actions de lecture",
260570
260647
  "write": "Actions d’écriture",
@@ -260793,6 +260870,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
260793
260870
  "connector": "Connecteur",
260794
260871
  "workflow": "Workflow"
260795
260872
  },
260873
+ connectorProxy: {
260874
+ "bodyUnsupported": "Les requêtes GET ne prennent pas en charge de corps.",
260875
+ "title": "Requête API personnalisée",
260876
+ "description": "Appeler une API du fournisseur avec le compte connecté.",
260877
+ "endpoint": "Point de terminaison"
260878
+ },
260796
260879
  httpRequest: {
260797
260880
  "title": "Requête HTTP",
260798
260881
  "description": "Envoyer une requête HTTP et utiliser sa réponse dans le workflow.",
@@ -260959,6 +261042,32 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
260959
261042
  return foo !== foo && bar !== bar;
260960
261043
  }
260961
261044
  //#endregion
261045
+ //#region src/flow/common/requestParameters.ts
261046
+ var requestParameterSchema = strictObject({
261047
+ mode: _enum(["fields", "object"]).default("fields"),
261048
+ names: array(string()).default([])
261049
+ });
261050
+ var connectorProxyExecutorSchema = strictObject({
261051
+ providerId: string().min(1),
261052
+ connectionId: string().optional(),
261053
+ method: _enum([
261054
+ "GET",
261055
+ "POST",
261056
+ "PUT",
261057
+ "PATCH",
261058
+ "DELETE"
261059
+ ]).default("GET"),
261060
+ query: requestParameterSchema.default({
261061
+ mode: "fields",
261062
+ names: []
261063
+ }),
261064
+ headers: requestParameterSchema.default({
261065
+ mode: "fields",
261066
+ names: []
261067
+ }),
261068
+ bodyFormat: _enum(["none", "json"]).default("none")
261069
+ }).extend({ kind: literal("connector-proxy") });
261070
+ //#endregion
260962
261071
  //#region ../../node_modules/.bun/@cfworker+json-schema@4.1.1/node_modules/@cfworker/json-schema/dist/esm/format.js
260963
261072
  var DATE = /^(\d\d\d\d)-(\d\d)-(\d\d)$/;
260964
261073
  var DAYS = [
@@ -264181,12 +264290,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
264181
264290
  function isHttpHost(value) {
264182
264291
  return httpHostPattern.test(value) && (!value.startsWith("*.") || value.slice(2).includes("."));
264183
264292
  }
264184
- //#endregion
264185
- //#region src/http/common/httpRequest.ts
264186
- var parameterSchema = strictObject({
264187
- mode: _enum(["fields", "object"]).default("fields"),
264188
- names: array(string()).default([])
264189
- });
264190
264293
  var httpRequestExecutorSchema = strictObject({
264191
264294
  method: _enum([
264192
264295
  "GET",
@@ -264197,11 +264300,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
264197
264300
  "HEAD",
264198
264301
  "OPTIONS"
264199
264302
  ]).default("GET"),
264200
- query: parameterSchema.default({
264303
+ query: requestParameterSchema.default({
264201
264304
  mode: "fields",
264202
264305
  names: []
264203
264306
  }),
264204
- headers: parameterSchema.default({
264307
+ headers: requestParameterSchema.default({
264205
264308
  mode: "fields",
264206
264309
  names: []
264207
264310
  }),
@@ -264592,7 +264695,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
264592
264695
  revisionId: text
264593
264696
  }),
264594
264697
  httpRequestExecutorSchema,
264595
- skipDuplicatesExecutorSchema
264698
+ skipDuplicatesExecutorSchema,
264699
+ connectorProxyExecutorSchema
264596
264700
  ])
264597
264701
  });
264598
264702
  var managed = managedFields.transform(limitDecisionTask);
@@ -264847,7 +264951,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
264847
264951
  literal(10),
264848
264952
  literal(11),
264849
264953
  literal(12),
264850
- literal(13)
264954
+ literal(13),
264955
+ literal(14)
264851
264956
  ]),
264852
264957
  document: document$1,
264853
264958
  modules: record$2(text, module$1)
@@ -265095,7 +265200,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
265095
265200
  }
265096
265201
  };
265097
265202
  function supportsNodeErrorHandling(node) {
265098
- return supportsNodeRetry(node) || node.kind === "task" && "executor" in node.task && node.task.executor.kind === "skip-duplicates";
265203
+ return supportsNodeRetry(node) || node.kind === "task" && "executor" in node.task && ["skip-duplicates", "connector-proxy"].includes(node.task.executor.kind);
265099
265204
  }
265100
265205
  function nodeSystemOutputPorts(node) {
265101
265206
  return supportsNodeErrorHandling(node) && node.onError == "error" ? { error: {
@@ -265246,6 +265351,18 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
265246
265351
  return Object.fromEntries(triggerOutputDefinitions(trigger).map(({ handle, ...port }) => [handle, port]));
265247
265352
  }
265248
265353
  //#endregion
265354
+ //#region src/base/common/jsonSchema.ts
265355
+ init_dist$2();
265356
+ /** Keep local definition references usable when a property becomes a standalone schema. */
265357
+ function propertySchemaWithDefinitions(root, schema) {
265358
+ const property = toPlainObject(schema);
265359
+ if (property == null) return schema;
265360
+ const result = Object.assign({}, property);
265361
+ if (result.$defs == null && root.$defs != null) result.$defs = root.$defs;
265362
+ if (result.definitions == null && root.definitions != null) result.definitions = root.definitions;
265363
+ return result;
265364
+ }
265365
+ //#endregion
265249
265366
  //#region src/flow/common/sourceField.ts
265250
265367
  /** Only explicitly declared, first-level object properties are selectable. */
265251
265368
  function sourceFields(output) {
@@ -265262,7 +265379,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
265262
265379
  field,
265263
265380
  port: {
265264
265381
  ...typeof description == "string" ? { description } : {},
265265
- jsonSchema,
265382
+ jsonSchema: propertySchemaWithDefinitions(schema, jsonSchema),
265266
265383
  nullable: missingParent || !required.includes(field)
265267
265384
  }
265268
265385
  };
@@ -265716,6 +265833,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
265716
265833
  name
265717
265834
  });
265718
265835
  if (task?.executor.kind == "connector") add("connector", task.executor.action, task.executor.connectionId);
265836
+ if (task?.executor.kind == "connector-proxy") uses.push({
265837
+ kind: "connector-proxy",
265838
+ providerId: task.executor.providerId,
265839
+ connectionId: task.executor.connectionId,
265840
+ nodeId,
265841
+ name
265842
+ });
265719
265843
  if (node.kind == "task" && "moduleId" in node.task) {
265720
265844
  for (const capability of node.task.capabilities ?? []) if ("mode" in capability && capability.mode == "independent") for (const action of capability.actions) add("code", action.action, action.connectionId);
265721
265845
  }
@@ -265729,8 +265853,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
265729
265853
  }
265730
265854
  //#endregion
265731
265855
  //#region src/runtime/common/engineContract.ts
265732
- /** v10 adds persistent Flow State to the published v9 Node compatibility and fetch contract. */
265733
- var currentEngineContract = "open-flow-engine/v10";
265856
+ /** v11 adds Provider API requests through Connector Proxy. */
265857
+ var currentEngineContract = "open-flow-engine/v11";
265734
265858
  /** The published v8 Node compatibility contract, retained for existing Publications and Runs. */
265735
265859
  var nodejsEngineContract = "open-flow-engine/v8/nodejs-compat-v1";
265736
265860
  var platformSource = (contract) => `export const engineContract = ${JSON.stringify(contract)}
@@ -265761,7 +265885,7 @@ export function identity(value) { return value }
265761
265885
  "url",
265762
265886
  "util",
265763
265887
  "zlib"
265764
- ].flatMap((name) => [name, `node:${name}`])), platformSource(nodejsEngineContract), platformSource("open-flow-engine/v9"), platformSource(currentEngineContract);
265888
+ ].flatMap((name) => [name, `node:${name}`])), platformSource(nodejsEngineContract), platformSource("open-flow-engine/v9"), platformSource("open-flow-engine/v10"), platformSource(currentEngineContract);
265765
265889
  //#endregion
265766
265890
  //#region src/flow/common/agent.ts
265767
265891
  var schema = lazy(() => union([boolean(), strictObject({
@@ -266739,7 +266863,10 @@ export function identity(value) { return value }
266739
266863
  const separator = actionId.indexOf(".");
266740
266864
  if (separator > 0) connectorProviderIds.add(actionId.slice(0, separator));
266741
266865
  }
266742
- for (const node of Object.values(this.#document.graph.nodes)) if (node.kind == "integration" || node.kind == "poll") connectorProviderIds.add(node.definition.provider);
266866
+ for (const node of Object.values(this.#document.graph.nodes)) {
266867
+ if (node.kind == "integration" || node.kind == "poll") connectorProviderIds.add(node.definition.provider);
266868
+ if (node.kind === "task" && "executor" in node.task && node.task.executor.kind === "connector-proxy") connectorProviderIds.add(node.task.executor.providerId);
266869
+ }
266743
266870
  this.connectorProviderIds = connectorProviderIds;
266744
266871
  }
266745
266872
  inputMappings(node) {
@@ -266915,7 +267042,12 @@ export function identity(value) { return value }
266915
267042
  //#region src/workbench/browser/runtime/workspace.ts
266916
267043
  function semanticNodeIcon(node, connectorActions, providers = {}) {
266917
267044
  if (node.node.icon != null) return node.node.icon;
266918
- if (node.kind != "task" || node.definition == null || !("executor" in node.definition) || node.definition.executor.kind != "connector") return nodeIcon(node);
267045
+ if (node.kind != "task" || node.definition == null || !("executor" in node.definition)) return nodeIcon(node);
267046
+ if (node.definition.executor.kind === "connector-proxy") {
267047
+ const provider = providers[node.definition.executor.providerId];
267048
+ return provider == null ? nodeIcon(node) : providerIcon(provider);
267049
+ }
267050
+ if (node.definition.executor.kind !== "connector") return nodeIcon(node);
266919
267051
  const actionId = node.definition.executor.action;
266920
267052
  const provider = connectorActions[actionId] ?? providers[actionId.split(".")[0]];
266921
267053
  return provider == null ? nodeIcon(node) : providerIcon(provider);
@@ -266959,7 +267091,7 @@ export function identity(value) { return value }
266959
267091
  if (task.executor.kind == "http-request") return ":lucide-light:globe:";
266960
267092
  if (task.executor.kind == "skip-duplicates") return ":lucide-light:list-filter:";
266961
267093
  if (task.executor.kind == "openapi") return ":logos:openapi-icon:";
266962
- return task.executor.kind == "connector" ? ":carbon:connection-signal:" : ":carbon:machine-learning-model:";
267094
+ return task.executor.kind == "connector" || task.executor.kind === "connector-proxy" ? ":carbon:connection-signal:" : ":carbon:machine-learning-model:";
266963
267095
  }
266964
267096
  }
266965
267097
  }
@@ -267222,7 +267354,8 @@ export function identity(value) { return value }
267222
267354
  if (task.executor.kind == "openapi") return "OpenAPI";
267223
267355
  if (task.executor.kind == "skip-duplicates") return t?.("flowState.nodeTitle") ?? "Skip Duplicates";
267224
267356
  if (task.executor.kind == "llm") return t?.("designer.executorLlm") ?? "LLM";
267225
- return `${t?.("designer.executorConnector") ?? "Connector"} · ${providerName ?? task.executor.action.split(".")[0]}`;
267357
+ const providerId = task.executor.kind === "connector-proxy" ? task.executor.providerId : task.executor.action.split(".")[0];
267358
+ return `${t?.("designer.executorConnector") ?? "Connector"} · ${providerName ?? providerId}`;
267226
267359
  }
267227
267360
  function triggerIcon(trigger) {
267228
267361
  switch (trigger.kind) {
@@ -267429,13 +267562,14 @@ export function identity(value) { return value }
267429
267562
  const inputs = groupedInputs(resolved, designerInputs(nodeId, node, ports, context.revision));
267430
267563
  const outputs = groupedOutputs(resolved, designerOutputs(ports));
267431
267564
  const task = resolved.kind == "task" ? resolved.definition : void 0;
267432
- const connector = task != null && "executor" in task && task.executor.kind == "connector" ? task.executor : void 0;
267433
- const connectorAction = connector == null ? void 0 : context.connectorActions[connector.action];
267434
- const connectorProvider = connector == null ? void 0 : context.providers[connector.action.split(".")[0]];
267435
- const connections = connectorAction == null ? void 0 : context.connectionCatalogs[connectorAction.serviceId];
267565
+ const connector = task != null && "executor" in task && (task.executor.kind == "connector" || task.executor.kind === "connector-proxy") ? task.executor : void 0;
267566
+ const connectorAction = connector?.kind !== "connector" ? void 0 : context.connectorActions[connector.action];
267567
+ const providerId = connector?.kind === "connector-proxy" ? connector.providerId : connector?.action.split(".")[0];
267568
+ const connectorProvider = providerId == null ? void 0 : context.providers[providerId];
267569
+ const connections = providerId == null ? void 0 : context.connectionCatalogs[providerId];
267436
267570
  const connectionId = connector?.connectionId;
267437
267571
  const selectedConnection = connectionId == null ? void 0 : connections?.byId.get(connectionId);
267438
- const connectionRequired = connectionId !== "" && connectorAction?.authenticated == true && (connector?.connectionId == null || connections != null && selectedConnection?.status != "active") || nodeDiagnosticCount(resolved, context.diagnostics.filter((diagnostic) => diagnostic.code === "task.action-connection-required")) > 0;
267572
+ const connectionRequired = connectionId !== "" && (connector?.kind === "connector-proxy" ? connectorProvider != null && !connectorProvider.noSetup : connectorAction?.authenticated == true) && (connector?.connectionId == null || connections != null && selectedConnection?.status != "active") || nodeDiagnosticCount(resolved, context.diagnostics.filter((diagnostic) => diagnostic.code === "task.action-connection-required")) > 0;
267439
267573
  const nodeRun = context.runNodes.get(nodeId);
267440
267574
  const common = {
267441
267575
  description: node.description,