@oomol-lab/open-flow 0.1.0-beta.67 → 0.1.0-beta.69
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.
- package/dist/browser/ContentIcon-CsECY5id.js +11868 -0
- package/dist/browser/FlowCanvas-C5X22xQ7.js +22721 -0
- package/dist/browser/{createResourceDialog-BQVD8Rqb.js → createResourceDialog-Di5BBrQv.js} +3 -2
- package/dist/browser/dialog-Bjo-r9B0.js +8862 -0
- package/dist/browser/event-sources.d.ts +4 -2
- package/dist/browser/exportSvg-Cj6Spxx-.js +659 -0
- package/dist/browser/flow-authoring-node.d.ts +3 -1
- package/dist/browser/flow-authoring.js +68 -7
- package/dist/browser/flow-change-schema.d.ts +3 -1
- package/dist/browser/flow-change.d.ts +17 -2
- package/dist/browser/flow-change.js +82 -9
- package/dist/browser/{flowChanges-VB9Y4iy7.js → flowChanges-Dp-rcEJ6.js} +4312 -16566
- package/dist/browser/{flowRunInputEditorStore-DJqmR6Qh.js → flowRunInputEditorStore-ys1-w9GW.js} +2 -1
- package/dist/browser/{flowWorkspace-C1hlTnZq.js → flowWorkspace-CB1QACku.js} +1304 -23538
- package/dist/browser/languages-gYzoQqCi.js +68 -0
- package/dist/browser/licenses.md +24 -0
- package/dist/browser/preview.css +53 -41
- package/dist/browser/preview.js +3974 -4094
- package/dist/browser/{dialog-CS2Vt2if.js → tooltip-CJjYs_2I.js} +710 -9472
- package/dist/browser/{typeScriptSession-D0bjYDeg.js → typeScriptSession-B0hC-C8y.js} +1 -1
- package/dist/browser/ui.css +12 -0
- package/dist/browser/{value-BADHeZ9I.js → value-BbFQZZ_V.js} +1 -68
- package/dist/browser/workbench.css +2840 -2824
- package/dist/browser/workbench.js +437 -337
- package/dist/browser/{workbenchSelect-CpXhjUou.js → workbenchSelect-C3hxUcYm.js} +2 -1
- package/dist/command/index.js +55 -51
- package/dist/common/authoring.d.ts +20 -0
- package/dist/common/authoringSchema.d.ts +243 -0
- package/dist/common/connector-proxy.d.ts +4 -0
- package/dist/common/control-api-conformance.js +173 -36
- package/dist/common/control-api.d.ts +22 -8
- package/dist/common/control-api.js +156 -18
- package/dist/common/control-requests.d.ts +32 -19
- package/dist/common/control-requests.js +2854 -152
- package/dist/common/decision.js +27 -3
- package/dist/common/engine-contract.d.ts +2 -2
- package/dist/common/event-source-definition.d.ts +34 -16
- package/dist/common/event-source.d.ts +63 -5
- package/dist/common/event-source.js +5744 -261
- package/dist/common/event-sources.d.ts +99 -6
- package/dist/common/flow-encoding.js +49 -10
- package/dist/common/flow-errorHandling.d.ts +36 -0
- package/dist/common/flow-graph.d.ts +4 -2
- package/dist/common/flow-retry.d.ts +19 -0
- package/dist/common/flow-semantics.js +94 -10
- package/dist/common/{fr-Du5gv3kM.js → fr-CNTSedYU.js} +259 -18
- package/dist/common/integration-trigger.d.ts +1 -1
- package/dist/common/integration-trigger.js +27 -3
- package/dist/common/{ja-D2wyPdTF.js → ja-CxQBHr2J.js} +259 -18
- package/dist/common/{ko-Cuu2AOaC.js → ko-D1Exiv1h.js} +259 -18
- package/dist/common/mcp.d.ts +30 -0
- package/dist/common/mcp.js +158 -20
- package/dist/common/openapi.js +27 -3
- package/dist/common/poll-trigger.js +27 -3
- package/dist/common/provider-triggers.d.ts +0 -2
- package/dist/common/provider-triggers.js +358 -155
- package/dist/common/{ru-BjI_JSsx.js → ru-BzLZv0B7.js} +259 -18
- package/dist/common/run-events.d.ts +2 -0
- package/dist/common/run-events.js +4 -2
- package/dist/common/runtime-contract.d.ts +1 -0
- package/dist/common/runtime-contract.js +4 -4
- package/dist/common/scheduler.d.ts +13 -2
- package/dist/common/scheduler.js +288 -98
- package/dist/common/webhook-trigger.js +27 -3
- package/dist/common/workflow.js +27 -3
- package/dist/common/{zh-CN-CnnXkzLh.js → zh-CN-Dg_xSGde.js} +259 -18
- package/dist/common/{zh-TW-CJnR2dgF.js → zh-TW-oxuLwsV0.js} +259 -18
- package/dist/index.d.ts +1 -0
- package/package.json +1 -1
- package/dist/common/event-source-feishu.d.ts +0 -3
- package/dist/common/feishu-events.d.ts +0 -19
- package/dist/common/feishu-subscriptions.d.ts +0 -6
|
@@ -1,3 +1,32 @@
|
|
|
1
|
+
//#region src/execution/common/engineContract.ts
|
|
2
|
+
var currentEngineContract = "open-flow-engine/v6";
|
|
3
|
+
`${JSON.stringify(currentEngineContract)}`, new Set([
|
|
4
|
+
"assert",
|
|
5
|
+
"assert/strict",
|
|
6
|
+
"buffer",
|
|
7
|
+
"console",
|
|
8
|
+
"constants",
|
|
9
|
+
"crypto",
|
|
10
|
+
"events",
|
|
11
|
+
"fs",
|
|
12
|
+
"fs/promises",
|
|
13
|
+
"os",
|
|
14
|
+
"path",
|
|
15
|
+
"path/posix",
|
|
16
|
+
"process",
|
|
17
|
+
"punycode",
|
|
18
|
+
"querystring",
|
|
19
|
+
"stream",
|
|
20
|
+
"stream/promises",
|
|
21
|
+
"stream/web",
|
|
22
|
+
"string_decoder",
|
|
23
|
+
"timers",
|
|
24
|
+
"timers/promises",
|
|
25
|
+
"url",
|
|
26
|
+
"util",
|
|
27
|
+
"zlib"
|
|
28
|
+
].flatMap((name) => [name, `node:${name}`])), `${JSON.stringify("open-flow-engine/v6/nodejs-compat-v1")}`;
|
|
29
|
+
//#endregion
|
|
1
30
|
//#region ../../node_modules/.bun/dequal@2.0.3/node_modules/dequal/lite/index.mjs
|
|
2
31
|
var has = Object.prototype.hasOwnProperty;
|
|
3
32
|
function dequal(foo, bar) {
|
|
@@ -5794,6 +5823,18 @@ function checkJsonDepth(value, depth = 0) {
|
|
|
5794
5823
|
if (value != null && typeof value == "object") for (const child of Object.values(value)) checkJsonDepth(child, depth + 1);
|
|
5795
5824
|
}
|
|
5796
5825
|
//#endregion
|
|
5826
|
+
//#region src/flow/common/retry.ts
|
|
5827
|
+
var nodeRetryLimits = {
|
|
5828
|
+
maxRetries: 5,
|
|
5829
|
+
minIntervalMs: 1e3,
|
|
5830
|
+
maxIntervalMs: 6e4,
|
|
5831
|
+
intervalStepMs: 1e3
|
|
5832
|
+
};
|
|
5833
|
+
var retryConfigurationSchema = strictObject({
|
|
5834
|
+
maxRetries: number().int().min(0).max(nodeRetryLimits.maxRetries),
|
|
5835
|
+
intervalMs: number().int().min(nodeRetryLimits.minIntervalMs).max(nodeRetryLimits.maxIntervalMs).multipleOf(nodeRetryLimits.intervalStepMs)
|
|
5836
|
+
});
|
|
5837
|
+
//#endregion
|
|
5797
5838
|
//#region src/flow/common/triggerScheduleSchema.ts
|
|
5798
5839
|
var triggerScheduleSchema = array(union([object({
|
|
5799
5840
|
type: literal("cron"),
|
|
@@ -5842,6 +5883,7 @@ var source = union([object({
|
|
|
5842
5883
|
kind: literal("node"),
|
|
5843
5884
|
nodeId: text,
|
|
5844
5885
|
output: text,
|
|
5886
|
+
system: literal(true).optional(),
|
|
5845
5887
|
field: text.optional()
|
|
5846
5888
|
}), object({
|
|
5847
5889
|
kind: literal("binding"),
|
|
@@ -6100,7 +6142,9 @@ var base = {
|
|
|
6100
6142
|
name: text.optional(),
|
|
6101
6143
|
description: text.optional(),
|
|
6102
6144
|
icon: text.optional(),
|
|
6103
|
-
timeoutMs: number().optional()
|
|
6145
|
+
timeoutMs: number().optional(),
|
|
6146
|
+
retry: retryConfigurationSchema.optional(),
|
|
6147
|
+
onError: _enum(["stop", "error"]).optional()
|
|
6104
6148
|
};
|
|
6105
6149
|
var node = union([
|
|
6106
6150
|
strictObject({
|
|
@@ -6236,7 +6280,8 @@ var revision = object({
|
|
|
6236
6280
|
literal(5),
|
|
6237
6281
|
literal(6),
|
|
6238
6282
|
literal(7),
|
|
6239
|
-
literal(8)
|
|
6283
|
+
literal(8),
|
|
6284
|
+
literal(9)
|
|
6240
6285
|
]),
|
|
6241
6286
|
document,
|
|
6242
6287
|
modules: record$2(text, module)
|
|
@@ -6305,6 +6350,13 @@ var shapes = {
|
|
|
6305
6350
|
},
|
|
6306
6351
|
"graph.node.delete": at,
|
|
6307
6352
|
"graph.node.field.set": union([
|
|
6353
|
+
object({
|
|
6354
|
+
...at,
|
|
6355
|
+
kind: literal("graph.node.field.set"),
|
|
6356
|
+
field: literal("retry"),
|
|
6357
|
+
before: retryConfigurationSchema.optional(),
|
|
6358
|
+
value: retryConfigurationSchema.optional()
|
|
6359
|
+
}),
|
|
6308
6360
|
object({
|
|
6309
6361
|
...at,
|
|
6310
6362
|
kind: literal("graph.node.field.set"),
|
|
@@ -6318,7 +6370,8 @@ var shapes = {
|
|
|
6318
6370
|
field: _enum([
|
|
6319
6371
|
"description",
|
|
6320
6372
|
"icon",
|
|
6321
|
-
"name"
|
|
6373
|
+
"name",
|
|
6374
|
+
"onError"
|
|
6322
6375
|
]),
|
|
6323
6376
|
before: text.optional(),
|
|
6324
6377
|
value: text.optional()
|
|
@@ -6423,6 +6476,12 @@ array(union([...new Map(Object.entries(shapes).map(([kind, shape]) => [kind, sha
|
|
|
6423
6476
|
...shape
|
|
6424
6477
|
})])).values()])).min(1);
|
|
6425
6478
|
function checkModelVersion(content) {
|
|
6479
|
+
if (content.modelVersion < 9 && Object.values(content.document.graph.nodes).some((candidateNode) => "retry" in candidateNode && candidateNode.retry != null)) throw new TypeError("Node retries require Flow model version 9.");
|
|
6480
|
+
if (content.modelVersion < 9 && Object.values(content.document.graph.nodes).some((candidateNode) => {
|
|
6481
|
+
if (candidateNode.onError != null) return true;
|
|
6482
|
+
if ([...Object.values("inputs" in candidateNode ? candidateNode.inputs : {}), ...Object.values(candidateNode.kind == "outputs" ? candidateNode.outputMappings : {})].some((candidateMapping) => candidateMapping.kind == "sources" && candidateMapping.sources.some((candidateSource) => candidateSource.kind == "node" && candidateSource.system))) return true;
|
|
6483
|
+
return candidateNode.kind == "condition" && candidateNode.cases.some((item) => item.groups.some((candidateGroup) => candidateGroup.expressions.some((expression) => [expression.left, expression.right].some((candidateOperand) => candidateOperand?.kind == "source" && candidateOperand.source.kind == "node" && candidateOperand.source.system))));
|
|
6484
|
+
})) throw new TypeError("Node error handling requires Flow model version 9.");
|
|
6426
6485
|
if (content.modelVersion < 8 && Object.values(content.document.graph.nodes).some((candidateNode) => candidateNode.kind == "outputs")) throw new TypeError("Workflow outputs require Flow model version 8.");
|
|
6427
6486
|
if (content.modelVersion < 7 && Object.values(content.document.graph.nodes).some((candidateNode) => candidateNode.kind == "start")) throw new TypeError("Start Triggers require Flow model version 7.");
|
|
6428
6487
|
if (content.modelVersion < 6 && Object.values(content.document.graph.nodes).some((candidateNode) => candidateNode.kind == "task" && "executor" in candidateNode.task)) throw new TypeError("Node-owned managed Tasks require Flow model version 6.");
|
|
@@ -9330,12 +9389,19 @@ var output = strictObject({
|
|
|
9330
9389
|
port: id$1.optional().describe("Omit for a node with one output. For multiple outputs, choose a name from node details."),
|
|
9331
9390
|
field: string$1().optional()
|
|
9332
9391
|
});
|
|
9392
|
+
var system = strictObject({
|
|
9393
|
+
kind: literal("system"),
|
|
9394
|
+
node: referenceSchema,
|
|
9395
|
+
port: literal("error"),
|
|
9396
|
+
field: string$1().optional()
|
|
9397
|
+
});
|
|
9333
9398
|
var variable$1 = strictObject({
|
|
9334
9399
|
kind: literal("variable"),
|
|
9335
9400
|
name: id$1
|
|
9336
9401
|
});
|
|
9337
9402
|
var authoringSourceSchema = union([
|
|
9338
9403
|
output,
|
|
9404
|
+
system,
|
|
9339
9405
|
variable$1,
|
|
9340
9406
|
strictObject({
|
|
9341
9407
|
kind: literal("value"),
|
|
@@ -9345,7 +9411,11 @@ var authoringSourceSchema = union([
|
|
|
9345
9411
|
strictObject({ kind: literal("default") }),
|
|
9346
9412
|
strictObject({
|
|
9347
9413
|
kind: literal("sources"),
|
|
9348
|
-
sources: array(union([
|
|
9414
|
+
sources: array(union([
|
|
9415
|
+
output,
|
|
9416
|
+
system,
|
|
9417
|
+
variable$1
|
|
9418
|
+
])).min(1)
|
|
9349
9419
|
})
|
|
9350
9420
|
]);
|
|
9351
9421
|
var operand = union([
|
|
@@ -9355,6 +9425,7 @@ var operand = union([
|
|
|
9355
9425
|
schema: json$1.optional()
|
|
9356
9426
|
}),
|
|
9357
9427
|
output,
|
|
9428
|
+
system,
|
|
9358
9429
|
variable$1
|
|
9359
9430
|
]);
|
|
9360
9431
|
var agentTool = authoringDefinitionSchemas.agent.shape.tools.element.omit({
|
|
@@ -9446,11 +9517,13 @@ var authoringConfigurations = {
|
|
|
9446
9517
|
approval: strictObject({ inputs: inputFields })
|
|
9447
9518
|
};
|
|
9448
9519
|
var updates = strictObject({
|
|
9520
|
+
onError: _enum(["stop", "error"]).optional(),
|
|
9449
9521
|
name: id$1.optional(),
|
|
9450
9522
|
description: string$1().optional(),
|
|
9451
9523
|
icon: string$1().optional(),
|
|
9452
9524
|
maxExecutions: int().positive().optional(),
|
|
9453
9525
|
timeoutMs: number().nonnegative().optional(),
|
|
9526
|
+
retry: retryConfigurationSchema.partial().optional().describe("Node retry policy for Code, Connector, OpenAPI, LLM and AI Decision. Omitted update fields preserve the policy; use clear: [[\"retry\"]] to disable it. maxRetries counts additional attempts; intervalMs is 1000–60000 in whole seconds."),
|
|
9454
9527
|
config: patch.optional().describe("Recursively merge configuration; omitted fields remain unchanged and arrays replace as a whole. This includes schema objects: {} does not clear an existing schema. Use clear paths to remove fields, e.g. [\"config\",\"inputs\",\"amount\",\"schema\",\"type\"].")
|
|
9455
9528
|
});
|
|
9456
9529
|
var authoringEditSchema = discriminatedUnion("op", [
|
|
@@ -9459,6 +9532,8 @@ var authoringEditSchema = discriminatedUnion("op", [
|
|
|
9459
9532
|
as: id$1.regex(/^[A-Za-z][\w-]*$/).describe("Unique batch-local alias without the $ prefix. Later edits must reference this new node as $alias; the bare alias is not its node ID."),
|
|
9460
9533
|
type,
|
|
9461
9534
|
name: id$1,
|
|
9535
|
+
onError: _enum(["stop", "error"]).optional(),
|
|
9536
|
+
retry: retryConfigurationSchema.optional(),
|
|
9462
9537
|
config: patch.optional(),
|
|
9463
9538
|
inputs: record$2(id$1, authoringSourceSchema).optional().describe("Input data sources, applied after creation, as input.set operations. Execution edges are separate."),
|
|
9464
9539
|
code: string$1().optional(),
|
|
@@ -11080,22 +11155,44 @@ function nodeDetails(content, nodeId, node) {
|
|
|
11080
11155
|
//#endregion
|
|
11081
11156
|
//#region src/control/common/eventSources.ts
|
|
11082
11157
|
var id = string$1().min(1).max(256);
|
|
11083
|
-
var eventType = string$1().regex(/^[a-z][a-z0-9_
|
|
11158
|
+
var eventType = string$1().regex(/^[a-z][a-z0-9_.:]{0,127}$/);
|
|
11084
11159
|
var name = string$1().trim().min(1).max(128);
|
|
11085
11160
|
var eventSourceSchema = object({
|
|
11086
11161
|
version: literal(1),
|
|
11087
11162
|
sourceId: id,
|
|
11088
11163
|
revision: int().positive(),
|
|
11089
11164
|
name,
|
|
11090
|
-
provider: _enum([
|
|
11091
|
-
|
|
11165
|
+
provider: _enum([
|
|
11166
|
+
"feishu",
|
|
11167
|
+
"feishu_app_bot",
|
|
11168
|
+
"slackbot",
|
|
11169
|
+
"intercom",
|
|
11170
|
+
"sentry",
|
|
11171
|
+
"zoom",
|
|
11172
|
+
"fireflies",
|
|
11173
|
+
"jira"
|
|
11174
|
+
]),
|
|
11175
|
+
appId: id.nullable(),
|
|
11176
|
+
workspaceId: id.optional(),
|
|
11177
|
+
installationId: id.optional(),
|
|
11178
|
+
organizationId: id.optional(),
|
|
11179
|
+
projectId: id.optional(),
|
|
11180
|
+
projectKey: id.optional(),
|
|
11181
|
+
subscriptionStatus: _enum([
|
|
11182
|
+
"idle",
|
|
11183
|
+
"pending",
|
|
11184
|
+
"ready",
|
|
11185
|
+
"error"
|
|
11186
|
+
]).optional(),
|
|
11187
|
+
lastError: string$1().optional(),
|
|
11188
|
+
signingSecretConfigured: boolean().optional(),
|
|
11092
11189
|
connectionId: id,
|
|
11093
11190
|
teamId: id.nullable(),
|
|
11094
11191
|
enabled: boolean(),
|
|
11095
11192
|
eventTypes: array(eventType),
|
|
11096
|
-
manageSubscriptions: boolean(),
|
|
11097
|
-
verificationTokenConfigured: boolean(),
|
|
11098
|
-
encryptKeyConfigured: boolean(),
|
|
11193
|
+
manageSubscriptions: boolean().nullable(),
|
|
11194
|
+
verificationTokenConfigured: boolean().nullable(),
|
|
11195
|
+
encryptKeyConfigured: boolean().nullable(),
|
|
11099
11196
|
endpointUrl: string$1().nullable(),
|
|
11100
11197
|
verifiedAt: string$1().nullable(),
|
|
11101
11198
|
lastReceivedAt: string$1().nullable(),
|
|
@@ -11106,6 +11203,21 @@ var eventSourceSchema = object({
|
|
|
11106
11203
|
triggerNodeId: id
|
|
11107
11204
|
}))
|
|
11108
11205
|
});
|
|
11206
|
+
eventSourceSchema.pick({
|
|
11207
|
+
appId: true,
|
|
11208
|
+
workspaceId: true,
|
|
11209
|
+
installationId: true,
|
|
11210
|
+
organizationId: true,
|
|
11211
|
+
projectId: true,
|
|
11212
|
+
projectKey: true,
|
|
11213
|
+
subscriptionStatus: true,
|
|
11214
|
+
lastError: true,
|
|
11215
|
+
signingSecretConfigured: true,
|
|
11216
|
+
manageSubscriptions: true,
|
|
11217
|
+
verificationTokenConfigured: true,
|
|
11218
|
+
encryptKeyConfigured: true,
|
|
11219
|
+
verifiedAt: true
|
|
11220
|
+
});
|
|
11109
11221
|
function decodeEventSource(value) {
|
|
11110
11222
|
return eventSourceSchema.parse(value);
|
|
11111
11223
|
}
|
|
@@ -11758,6 +11870,21 @@ function workflowIdentity(value) {
|
|
|
11758
11870
|
executionId: string(ref.executionId)
|
|
11759
11871
|
};
|
|
11760
11872
|
}
|
|
11873
|
+
function runInitiator(value) {
|
|
11874
|
+
const source = record(value);
|
|
11875
|
+
if (![
|
|
11876
|
+
"workbench",
|
|
11877
|
+
"cli",
|
|
11878
|
+
"mcp",
|
|
11879
|
+
"api",
|
|
11880
|
+
"trigger",
|
|
11881
|
+
"workflow"
|
|
11882
|
+
].includes(source.channel)) return invalidResponse();
|
|
11883
|
+
return {
|
|
11884
|
+
channel: source.channel,
|
|
11885
|
+
...source.actorId === void 0 ? {} : { actorId: string(source.actorId) }
|
|
11886
|
+
};
|
|
11887
|
+
}
|
|
11761
11888
|
function runDetails(value) {
|
|
11762
11889
|
const source = record(value);
|
|
11763
11890
|
const summary = run(source);
|
|
@@ -11779,6 +11906,7 @@ function runDetails(value) {
|
|
|
11779
11906
|
if (source.calls !== void 0 && !Array.isArray(source.calls)) return invalidResponse();
|
|
11780
11907
|
const details = {
|
|
11781
11908
|
...summary,
|
|
11909
|
+
...source.initiator === void 0 ? {} : { initiator: runInitiator(source.initiator) },
|
|
11782
11910
|
...errorHandling(source),
|
|
11783
11911
|
...source.triggerNodeId === void 0 ? {} : { triggerNodeId: string(source.triggerNodeId) },
|
|
11784
11912
|
...source.caller === void 0 ? {} : { caller: workflowIdentity(source.caller) },
|
|
@@ -12070,6 +12198,7 @@ function decodeRunEvent(value) {
|
|
|
12070
12198
|
kind,
|
|
12071
12199
|
payload: {
|
|
12072
12200
|
...node,
|
|
12201
|
+
...payload.systemOutputs === void 0 ? {} : { systemOutputs: Object.fromEntries(Object.entries(record(payload.systemOutputs)).map(([key, item]) => [key, jsonValue(item)])) },
|
|
12073
12202
|
outputs: Object.fromEntries(Object.entries(record(payload.outputs)).map(([key, item]) => [key, jsonValue(item)]))
|
|
12074
12203
|
}
|
|
12075
12204
|
};
|
|
@@ -12080,6 +12209,8 @@ function decodeRunEvent(value) {
|
|
|
12080
12209
|
kind,
|
|
12081
12210
|
payload: {
|
|
12082
12211
|
...node,
|
|
12212
|
+
...payload.handled === true ? { handled: true } : {},
|
|
12213
|
+
...payload.systemOutputs === void 0 ? {} : { systemOutputs: Object.fromEntries(Object.entries(record(payload.systemOutputs)).map(([key, item]) => [key, jsonValue(item)])) },
|
|
12083
12214
|
error: {
|
|
12084
12215
|
code: string(error.code),
|
|
12085
12216
|
message: string(error.message)
|
|
@@ -12159,7 +12290,8 @@ function operationKey(operation) {
|
|
|
12159
12290
|
return `${operation}-${randomId()}`;
|
|
12160
12291
|
}
|
|
12161
12292
|
var ControlClient = class {
|
|
12162
|
-
constructor(requestControl) {
|
|
12293
|
+
constructor(requestControl, channel = "api") {
|
|
12294
|
+
this.channel = channel;
|
|
12163
12295
|
this.requestControl = requestControl;
|
|
12164
12296
|
}
|
|
12165
12297
|
async loadOpenApiDocument(url, signal) {
|
|
@@ -12185,8 +12317,8 @@ var ControlClient = class {
|
|
|
12185
12317
|
async listEventSources(flowId, signal) {
|
|
12186
12318
|
return decodeEventSources(await this.request("/v1/event-sources" + (flowId == null ? "" : `?flowId=${segment(flowId)}`), { signal }));
|
|
12187
12319
|
}
|
|
12188
|
-
async listEventSourceConnections(teamId, signal) {
|
|
12189
|
-
const source = record(await this.request(`/v1/event-sources/connections${teamId == null ? "" :
|
|
12320
|
+
async listEventSourceConnections(teamId, signal, kind = "feishu") {
|
|
12321
|
+
const source = record(await this.request(`/v1/event-sources/connections?kind=${kind}${teamId == null ? "" : `&teamId=${segment(teamId)}`}`, { signal }));
|
|
12190
12322
|
requiredFields(source, ["version", "connections"]);
|
|
12191
12323
|
if (source.version != 1 || !Array.isArray(source.connections)) return invalidResponse();
|
|
12192
12324
|
return source.connections.map(connection);
|
|
@@ -12649,7 +12781,7 @@ var ControlClient = class {
|
|
|
12649
12781
|
async checkFlow(flowId, revisionId) {
|
|
12650
12782
|
return flowCheck(await this.request(`/v1/flows/${segment(flowId)}/revisions/${segment(revisionId)}/check`, {
|
|
12651
12783
|
body: JSON.stringify({
|
|
12652
|
-
engineContract:
|
|
12784
|
+
engineContract: currentEngineContract,
|
|
12653
12785
|
version: 1
|
|
12654
12786
|
}),
|
|
12655
12787
|
method: "POST"
|
|
@@ -12674,12 +12806,15 @@ var ControlClient = class {
|
|
|
12674
12806
|
async createDraftRun(flowId, revisionId, options) {
|
|
12675
12807
|
const created = runDetails(await this.request(`/v1/flows/${segment(flowId)}/revisions/${segment(revisionId)}/runs`, {
|
|
12676
12808
|
body: JSON.stringify({
|
|
12677
|
-
engineContract:
|
|
12809
|
+
engineContract: currentEngineContract,
|
|
12678
12810
|
inputs: options.inputs ?? {},
|
|
12679
12811
|
trigger: options.trigger,
|
|
12680
12812
|
version: 2
|
|
12681
12813
|
}),
|
|
12682
|
-
headers: {
|
|
12814
|
+
headers: {
|
|
12815
|
+
"idempotency-key": options.idempotencyKey ?? operationKey("run"),
|
|
12816
|
+
"x-open-flow-client": this.channel
|
|
12817
|
+
},
|
|
12683
12818
|
method: "POST"
|
|
12684
12819
|
}));
|
|
12685
12820
|
return created.source == "draft" ? created : invalidResponse();
|
|
@@ -12692,7 +12827,10 @@ var ControlClient = class {
|
|
|
12692
12827
|
publicationId,
|
|
12693
12828
|
version: 2
|
|
12694
12829
|
}),
|
|
12695
|
-
headers: {
|
|
12830
|
+
headers: {
|
|
12831
|
+
"idempotency-key": options.idempotencyKey ?? operationKey("run"),
|
|
12832
|
+
"x-open-flow-client": this.channel
|
|
12833
|
+
},
|
|
12696
12834
|
method: "POST"
|
|
12697
12835
|
}));
|
|
12698
12836
|
return created.source == "live" ? created : invalidResponse();
|
|
@@ -12710,7 +12848,7 @@ var ControlClient = class {
|
|
|
12710
12848
|
async publishFlow(flowId, revisionId, expectedLivePublicationId, options = {}) {
|
|
12711
12849
|
return publishOperation(await this.request(`/v1/flows/${segment(flowId)}/revisions/${segment(revisionId)}/publications`, {
|
|
12712
12850
|
body: JSON.stringify({
|
|
12713
|
-
engineContract:
|
|
12851
|
+
engineContract: currentEngineContract,
|
|
12714
12852
|
expectedLivePublicationId,
|
|
12715
12853
|
version: 1
|
|
12716
12854
|
}),
|
|
@@ -37,12 +37,22 @@ export declare const controlRequests: {
|
|
|
37
37
|
as: string;
|
|
38
38
|
type: "agent" | "approval" | "code" | "condition" | "connector" | "cron" | "decision" | "error" | "integration" | "llm" | "openapi" | "outputs" | "poll" | "start" | "value" | "wait" | "webhook" | "workflow";
|
|
39
39
|
name: string;
|
|
40
|
+
onError?: "error" | "stop" | undefined;
|
|
41
|
+
retry?: {
|
|
42
|
+
maxRetries: number;
|
|
43
|
+
intervalMs: number;
|
|
44
|
+
} | undefined;
|
|
40
45
|
config?: Record<string, z.JSONType> | undefined;
|
|
41
46
|
inputs?: Record<string, {
|
|
42
47
|
kind: "output";
|
|
43
48
|
node: string;
|
|
44
49
|
port?: string | undefined;
|
|
45
50
|
field?: string | undefined;
|
|
51
|
+
} | {
|
|
52
|
+
kind: "system";
|
|
53
|
+
node: string;
|
|
54
|
+
port: "error";
|
|
55
|
+
field?: string | undefined;
|
|
46
56
|
} | {
|
|
47
57
|
kind: "variable";
|
|
48
58
|
name: string;
|
|
@@ -60,6 +70,11 @@ export declare const controlRequests: {
|
|
|
60
70
|
node: string;
|
|
61
71
|
port?: string | undefined;
|
|
62
72
|
field?: string | undefined;
|
|
73
|
+
} | {
|
|
74
|
+
kind: "system";
|
|
75
|
+
node: string;
|
|
76
|
+
port: "error";
|
|
77
|
+
field?: string | undefined;
|
|
63
78
|
} | {
|
|
64
79
|
kind: "variable";
|
|
65
80
|
name: string;
|
|
@@ -71,11 +86,16 @@ export declare const controlRequests: {
|
|
|
71
86
|
op: "node.update";
|
|
72
87
|
node: string;
|
|
73
88
|
set?: {
|
|
89
|
+
onError?: "error" | "stop" | undefined;
|
|
74
90
|
name?: string | undefined;
|
|
75
91
|
description?: string | undefined;
|
|
76
92
|
icon?: string | undefined;
|
|
77
93
|
maxExecutions?: number | undefined;
|
|
78
94
|
timeoutMs?: number | undefined;
|
|
95
|
+
retry?: {
|
|
96
|
+
maxRetries?: number | undefined;
|
|
97
|
+
intervalMs?: number | undefined;
|
|
98
|
+
} | undefined;
|
|
79
99
|
config?: Record<string, z.JSONType> | undefined;
|
|
80
100
|
} | undefined;
|
|
81
101
|
clear?: string[][] | undefined;
|
|
@@ -94,6 +114,11 @@ export declare const controlRequests: {
|
|
|
94
114
|
node: string;
|
|
95
115
|
port?: string | undefined;
|
|
96
116
|
field?: string | undefined;
|
|
117
|
+
} | {
|
|
118
|
+
kind: "system";
|
|
119
|
+
node: string;
|
|
120
|
+
port: "error";
|
|
121
|
+
field?: string | undefined;
|
|
97
122
|
} | {
|
|
98
123
|
kind: "variable";
|
|
99
124
|
name: string;
|
|
@@ -111,6 +136,11 @@ export declare const controlRequests: {
|
|
|
111
136
|
node: string;
|
|
112
137
|
port?: string | undefined;
|
|
113
138
|
field?: string | undefined;
|
|
139
|
+
} | {
|
|
140
|
+
kind: "system";
|
|
141
|
+
node: string;
|
|
142
|
+
port: "error";
|
|
143
|
+
field?: string | undefined;
|
|
114
144
|
} | {
|
|
115
145
|
kind: "variable";
|
|
116
146
|
name: string;
|
|
@@ -159,25 +189,8 @@ export declare const controlRequests: {
|
|
|
159
189
|
url: string;
|
|
160
190
|
version: 1;
|
|
161
191
|
};
|
|
162
|
-
createEventSource: (value: unknown) =>
|
|
163
|
-
|
|
164
|
-
name: string;
|
|
165
|
-
connectionId: string;
|
|
166
|
-
teamId: string | null;
|
|
167
|
-
verificationToken: string;
|
|
168
|
-
encryptKey: string;
|
|
169
|
-
eventTypes: string[];
|
|
170
|
-
manageSubscriptions: boolean;
|
|
171
|
-
};
|
|
172
|
-
updateEventSource: (value: unknown) => {
|
|
173
|
-
version: 1;
|
|
174
|
-
expectedRevision: number;
|
|
175
|
-
name: string;
|
|
176
|
-
enabled: boolean;
|
|
177
|
-
eventTypes: string[];
|
|
178
|
-
verificationToken?: string | undefined;
|
|
179
|
-
encryptKey?: string | undefined;
|
|
180
|
-
};
|
|
192
|
+
createEventSource: (value: unknown) => import("./event-sources.js").CreateEventSource;
|
|
193
|
+
updateEventSource: (value: unknown) => import("./event-sources.js").UpdateEventSource;
|
|
181
194
|
eventSourceRevision: (value: unknown) => {
|
|
182
195
|
version: 1;
|
|
183
196
|
expectedRevision: number;
|