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