@oomol-lab/open-flow 0.1.0-beta.76 → 0.1.0-beta.78
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/README.md +3 -0
- package/dist/browser/{ContentIcon-Cm1hbVzW.js → ContentIcon-CMn0c-kl.js} +99 -6
- package/dist/browser/{FlowCanvas-NzKtla_c.js → FlowCanvas-BQGBcfoL.js} +1709 -613
- package/dist/browser/{createResourceDialog-BgdedQqu.js → createResourceDialog-DCGxfKFM.js} +63 -57
- package/dist/browser/{dialog-aSElFFw2.js → dialog-WzR4CRFH.js} +76 -77
- package/dist/browser/{exportSvg-Dcz4HTo_.js → exportSvg-CYwyYiuH.js} +2 -2
- package/dist/browser/{flowChanges-NZyS7HSp.js → flowChanges-Bz4dbDN_.js} +6875 -11091
- package/dist/browser/{flowWorkspace-Bl0SDehy.js → flowWorkspace-BI6L6a4r.js} +1415 -3037
- package/dist/browser/licenses.md +1 -1
- package/dist/browser/preview.css +619 -462
- package/dist/browser/preview.js +9016 -14956
- package/dist/browser/theme.css +4 -2
- package/dist/browser/{tooltip-3XMK9jkr.js → tooltip-BDcVTNpu.js} +65 -2
- package/dist/browser/{typeScriptSession-C9sBGOKZ.js → typeScriptSession-CRoezJPN.js} +1 -1
- package/dist/browser/ui.css +112 -24
- package/dist/browser/ui.js +3 -2
- package/dist/browser/workbench.css +10020 -9842
- package/dist/browser/workbench.d.ts +5 -2
- package/dist/browser/workbench.js +2382 -2668
- package/dist/browser/{workbenchSelect-DBGP7Y4Z.js → workbenchSelect-DtAd0zc4.js} +2 -2
- package/dist/command/index.js +48 -48
- package/dist/common/authoring.d.ts +4 -4
- package/dist/common/authoringExamples.d.ts +3 -2
- package/dist/common/authoringSchema.d.ts +15 -4
- package/dist/common/control-api-conformance.js +155 -15
- package/dist/common/control-api-errors.d.ts +12 -0
- package/dist/common/control-api.d.ts +39 -2
- package/dist/common/control-api.js +180 -37
- package/dist/common/control-requests.d.ts +23 -3
- package/dist/common/control-requests.js +141 -14
- package/dist/common/engine-contract.d.ts +3 -2
- package/dist/common/flow-authoring.js +47 -7
- package/dist/common/flow-change-schema.d.ts +1 -1
- package/dist/common/flow-change.d.ts +2 -2
- package/dist/common/flow-change.js +48 -8
- package/dist/common/flow-encoding.js +47 -7
- package/dist/common/flow-semantics.js +86 -8
- package/dist/common/flow-state.d.ts +100 -0
- package/dist/common/flow-state.js +5794 -0
- package/dist/common/mcp.d.ts +96 -3
- package/dist/common/mcp.js +158 -13
- package/dist/common/run-events.js +19 -8
- package/dist/common/runtime-contract.d.ts +14 -0
- package/dist/common/runtime-contract.js +124 -17
- package/dist/common/runtime-nodejs-compat.js +11 -12
- package/dist/common/scheduler-node-execution.d.ts +1 -0
- package/dist/common/scheduler.d.ts +2 -1
- package/dist/common/scheduler.js +95 -40
- package/dist/common/state-conformance.d.ts +16 -0
- package/dist/common/tags.d.ts +4 -0
- package/dist/index.d.ts +11 -0
- package/package.json +5 -1
- package/src/control/common/api.ts +101 -11
- package/src/control/common/authoring.ts +7 -1
- package/src/control/common/authoringExamples.ts +9 -0
- package/src/control/common/authoringSchema.ts +18 -12
- package/src/control/common/errors.ts +6 -0
- package/src/control/common/flowDecoders.ts +1 -0
- package/src/control/common/mcp.ts +16 -0
- package/src/control/common/requests.ts +16 -2
- package/src/control/common/tags.ts +20 -0
- package/src/execution/common/events.ts +22 -7
- package/src/execution/common/node-execution.ts +3 -0
- package/src/execution/common/scheduler.ts +29 -13
- package/src/flow/common/change.ts +2 -1
- package/src/flow/common/changeSchema.ts +11 -1
- package/src/flow/common/errorHandling.ts +1 -1
- package/src/flow/common/semantics.ts +27 -1
- package/src/runtime/common/engineContract.ts +6 -3
- package/src/runtime/common/nodejsGuest.generated.json +11 -12
- package/src/runtime/common/runtime.ts +122 -7
- package/src/state/common/conformance.ts +81 -0
- package/src/state/common/state.ts +141 -0
- package/src/types/index.ts +11 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/runtime/common/engineContract.ts
|
|
2
|
-
/**
|
|
3
|
-
var currentEngineContract = "open-flow-engine/
|
|
2
|
+
/** v10 adds persistent Flow State to the published v9 Node compatibility and fetch contract. */
|
|
3
|
+
var currentEngineContract = "open-flow-engine/v10";
|
|
4
4
|
/** The published v8 Node compatibility contract, retained for existing Publications and Runs. */
|
|
5
5
|
var nodejsEngineContract = "open-flow-engine/v8/nodejs-compat-v1";
|
|
6
6
|
var platformSource = (contract) => `export const engineContract = ${JSON.stringify(contract)}
|
|
@@ -45,13 +45,19 @@ var nodejsContract = {
|
|
|
45
45
|
].flatMap((name) => [name, `node:${name}`])),
|
|
46
46
|
platformSource: platformSource(nodejsEngineContract)
|
|
47
47
|
};
|
|
48
|
-
var
|
|
48
|
+
var v9Contract = {
|
|
49
49
|
...nodejsContract,
|
|
50
50
|
codeFetch: true,
|
|
51
|
+
platformSource: platformSource("open-flow-engine/v9")
|
|
52
|
+
};
|
|
53
|
+
var currentContract = {
|
|
54
|
+
...v9Contract,
|
|
55
|
+
flowState: true,
|
|
51
56
|
platformSource: platformSource(currentEngineContract)
|
|
52
57
|
};
|
|
53
58
|
function findEngineContract(contract) {
|
|
54
|
-
if (contract == "open-flow-engine/
|
|
59
|
+
if (contract == "open-flow-engine/v10") return currentContract;
|
|
60
|
+
if (contract == "open-flow-engine/v9") return v9Contract;
|
|
55
61
|
if (contract == "open-flow-engine/v8") return v8Contract;
|
|
56
62
|
if (contract == "open-flow-engine/v8/nodejs-compat-v1") return nodejsContract;
|
|
57
63
|
if (contract == "open-flow-engine/v7" || contract == "open-flow-engine/v7/nodejs-compat-v1") return {
|
|
@@ -70,30 +76,6 @@ function findEngineContract(contract) {
|
|
|
70
76
|
};
|
|
71
77
|
}
|
|
72
78
|
//#endregion
|
|
73
|
-
//#region ../../node_modules/.bun/dequal@2.0.3/node_modules/dequal/lite/index.mjs
|
|
74
|
-
var has = Object.prototype.hasOwnProperty;
|
|
75
|
-
function dequal(foo, bar) {
|
|
76
|
-
var ctor, len;
|
|
77
|
-
if (foo === bar) return true;
|
|
78
|
-
if (foo && bar && (ctor = foo.constructor) === bar.constructor) {
|
|
79
|
-
if (ctor === Date) return foo.getTime() === bar.getTime();
|
|
80
|
-
if (ctor === RegExp) return foo.toString() === bar.toString();
|
|
81
|
-
if (ctor === Array) {
|
|
82
|
-
if ((len = foo.length) === bar.length) while (len-- && dequal(foo[len], bar[len]));
|
|
83
|
-
return len === -1;
|
|
84
|
-
}
|
|
85
|
-
if (!ctor || typeof foo === "object") {
|
|
86
|
-
len = 0;
|
|
87
|
-
for (ctor in foo) {
|
|
88
|
-
if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;
|
|
89
|
-
if (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;
|
|
90
|
-
}
|
|
91
|
-
return Object.keys(bar).length === len;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return foo !== foo && bar !== bar;
|
|
95
|
-
}
|
|
96
|
-
//#endregion
|
|
97
79
|
//#region ../../node_modules/.bun/zod@4.6.5/node_modules/zod/v4/core/util.js
|
|
98
80
|
function getEnumValues(entries) {
|
|
99
81
|
const numericValues = Object.values(entries).filter((v) => typeof v === "number");
|
|
@@ -5768,6 +5750,68 @@ function datetime(params) {
|
|
|
5768
5750
|
return /* @__PURE__ */ _isoDateTime(ZodISODateTime, params);
|
|
5769
5751
|
}
|
|
5770
5752
|
//#endregion
|
|
5753
|
+
//#region ../../node_modules/.bun/dequal@2.0.3/node_modules/dequal/lite/index.mjs
|
|
5754
|
+
var has = Object.prototype.hasOwnProperty;
|
|
5755
|
+
function dequal(foo, bar) {
|
|
5756
|
+
var ctor, len;
|
|
5757
|
+
if (foo === bar) return true;
|
|
5758
|
+
if (foo && bar && (ctor = foo.constructor) === bar.constructor) {
|
|
5759
|
+
if (ctor === Date) return foo.getTime() === bar.getTime();
|
|
5760
|
+
if (ctor === RegExp) return foo.toString() === bar.toString();
|
|
5761
|
+
if (ctor === Array) {
|
|
5762
|
+
if ((len = foo.length) === bar.length) while (len-- && dequal(foo[len], bar[len]));
|
|
5763
|
+
return len === -1;
|
|
5764
|
+
}
|
|
5765
|
+
if (!ctor || typeof foo === "object") {
|
|
5766
|
+
len = 0;
|
|
5767
|
+
for (ctor in foo) {
|
|
5768
|
+
if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;
|
|
5769
|
+
if (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;
|
|
5770
|
+
}
|
|
5771
|
+
return Object.keys(bar).length === len;
|
|
5772
|
+
}
|
|
5773
|
+
}
|
|
5774
|
+
return foo !== foo && bar !== bar;
|
|
5775
|
+
}
|
|
5776
|
+
strictObject({
|
|
5777
|
+
scope: _enum(["draft", "live"]),
|
|
5778
|
+
values: boolean().optional()
|
|
5779
|
+
});
|
|
5780
|
+
strictObject({
|
|
5781
|
+
scope: _enum(["draft", "live"]),
|
|
5782
|
+
key: string$1().min(1).refine((key) => new TextEncoder().encode(key).length <= 256).optional()
|
|
5783
|
+
});
|
|
5784
|
+
strictObject({
|
|
5785
|
+
scope: _enum(["draft", "live"]),
|
|
5786
|
+
space: string$1().regex(/^(flow|node:.+)$/)
|
|
5787
|
+
});
|
|
5788
|
+
var skipDuplicatesConfigSchema = strictObject({ fields: array(string$1().refine((field) => field.length > 0 && field.split(".").every((part) => part.length > 0), "Use a nonempty dot-separated field path.")).refine((fields) => new Set(fields).size === fields.length, "Identity fields must be distinct.").default([]) });
|
|
5789
|
+
var skipDuplicatesExecutorSchema = skipDuplicatesConfigSchema.extend({ kind: literal("skip-duplicates") });
|
|
5790
|
+
var flowStateViewSchema = object({
|
|
5791
|
+
version: literal(1),
|
|
5792
|
+
scope: _enum(["draft", "live"]),
|
|
5793
|
+
limits: object({
|
|
5794
|
+
maxValueBytes: number().positive(),
|
|
5795
|
+
maxValues: number().int().positive(),
|
|
5796
|
+
maxSpaces: number().int().positive(),
|
|
5797
|
+
maxIdentities: number().positive(),
|
|
5798
|
+
maxRunWrites: number().positive()
|
|
5799
|
+
}),
|
|
5800
|
+
values: array(object({
|
|
5801
|
+
key: string$1(),
|
|
5802
|
+
size: number().nonnegative(),
|
|
5803
|
+
updatedAt: number(),
|
|
5804
|
+
value: json$3().optional()
|
|
5805
|
+
})),
|
|
5806
|
+
spaces: array(object({
|
|
5807
|
+
space: string$1(),
|
|
5808
|
+
count: number().nonnegative(),
|
|
5809
|
+
pendingCount: number().nonnegative(),
|
|
5810
|
+
reservedCount: number().nonnegative(),
|
|
5811
|
+
updatedAt: number()
|
|
5812
|
+
}))
|
|
5813
|
+
});
|
|
5814
|
+
//#endregion
|
|
5771
5815
|
//#region src/json-schema-subset/utils.ts
|
|
5772
5816
|
var nextId = 0;
|
|
5773
5817
|
function createId() {
|
|
@@ -9045,7 +9089,8 @@ var managedFields = object({
|
|
|
9045
9089
|
flowId: text,
|
|
9046
9090
|
revisionId: text
|
|
9047
9091
|
}),
|
|
9048
|
-
httpRequestExecutorSchema
|
|
9092
|
+
httpRequestExecutorSchema,
|
|
9093
|
+
skipDuplicatesExecutorSchema
|
|
9049
9094
|
])
|
|
9050
9095
|
});
|
|
9051
9096
|
var managed = managedFields.transform(limitDecisionTask);
|
|
@@ -9315,7 +9360,8 @@ var revision = object({
|
|
|
9315
9360
|
literal(9),
|
|
9316
9361
|
literal(10),
|
|
9317
9362
|
literal(11),
|
|
9318
|
-
literal(12)
|
|
9363
|
+
literal(12),
|
|
9364
|
+
literal(13)
|
|
9319
9365
|
]),
|
|
9320
9366
|
document,
|
|
9321
9367
|
modules: record$2(text, module)
|
|
@@ -9516,6 +9562,7 @@ array(union([...new Map(Object.entries(shapes).map(([kind, shape]) => [kind, sha
|
|
|
9516
9562
|
...shape
|
|
9517
9563
|
})])).values()])).min(1);
|
|
9518
9564
|
function checkModelVersion(content) {
|
|
9565
|
+
if (content.modelVersion < 13 && Object.values(content.document.graph.nodes).some((candidateNode) => candidateNode.kind === "task" && "executor" in candidateNode.task && candidateNode.task.executor.kind === "skip-duplicates")) throw new Error("Skip Duplicates requires Flow model v13.");
|
|
9519
9566
|
if (content.modelVersion < 12 && Object.values(content.document.graph.nodes).some((candidateNode) => candidateNode.kind == "task" && "moduleId" in candidateNode.task && candidateNode.task.capabilities?.some((item) => item.kind == "http"))) throw new TypeError("Code HTTP access requires Flow model version 12.");
|
|
9520
9567
|
if (content.modelVersion < 11 && Object.values(content.document.graph.nodes).some((candidateNode) => candidateNode.kind == "task" && "executor" in candidateNode.task && candidateNode.task.executor.kind == "http-request")) throw new TypeError("HTTP Request requires Flow model version 11.");
|
|
9521
9568
|
if (content.modelVersion < 11 && Object.values(content.document.graph.nodes).some((candidateNode) => candidateNode.kind == "task" && ("moduleId" in candidateNode.task ? candidateNode.task.capabilities?.some((item) => item.kind == "workflow") : candidateNode.task.executor.kind == "agent" && candidateNode.task.executor.tools.some((item) => item.kind == "workflow")))) throw new TypeError("Workflow tools require Flow model version 11.");
|
|
@@ -9584,6 +9631,7 @@ var type = _enum([
|
|
|
9584
9631
|
"decision",
|
|
9585
9632
|
"openapi",
|
|
9586
9633
|
"http-request",
|
|
9634
|
+
"skip-duplicates",
|
|
9587
9635
|
"condition",
|
|
9588
9636
|
"value",
|
|
9589
9637
|
"wait",
|
|
@@ -9714,6 +9762,7 @@ var authoringConfigurations = {
|
|
|
9714
9762
|
"connector": authoringDefinitionSchemas.connector.omit({ outputMode: true }).strict(),
|
|
9715
9763
|
"openapi": authoringOpenApiSchema,
|
|
9716
9764
|
"http-request": httpRequestConfigSchema,
|
|
9765
|
+
"skip-duplicates": skipDuplicatesConfigSchema,
|
|
9717
9766
|
"agent": authoringDefinitionSchemas.agent.omit({
|
|
9718
9767
|
prompt: true,
|
|
9719
9768
|
tools: true
|
|
@@ -9981,6 +10030,9 @@ var controlErrorCode = {
|
|
|
9981
10030
|
triggerKeyInvalid: "trigger-key.invalid",
|
|
9982
10031
|
triggerKeyNotFound: "trigger-key.not-found",
|
|
9983
10032
|
triggerNotFound: "trigger.not-found",
|
|
10033
|
+
tagInvalid: "tag.invalid",
|
|
10034
|
+
tagConflict: "tag.conflict",
|
|
10035
|
+
tagNotFound: "tag.not-found",
|
|
9984
10036
|
variableInvalid: "variable.invalid",
|
|
9985
10037
|
variableLimitReached: "variable.limit-reached",
|
|
9986
10038
|
variableNotFound: "variable.not-found"
|
|
@@ -10029,6 +10081,9 @@ var controlErrorMetadata = {
|
|
|
10029
10081
|
[controlErrorCode.triggerKeyInvalid]: { status: 409 },
|
|
10030
10082
|
[controlErrorCode.triggerKeyNotFound]: { status: 404 },
|
|
10031
10083
|
[controlErrorCode.triggerNotFound]: { status: 404 },
|
|
10084
|
+
[controlErrorCode.tagInvalid]: { status: 400 },
|
|
10085
|
+
[controlErrorCode.tagConflict]: { status: 409 },
|
|
10086
|
+
[controlErrorCode.tagNotFound]: { status: 404 },
|
|
10032
10087
|
[controlErrorCode.variableInvalid]: { status: 400 },
|
|
10033
10088
|
[controlErrorCode.variableLimitReached]: { status: 409 },
|
|
10034
10089
|
[controlErrorCode.variableNotFound]: { status: 404 }
|
|
@@ -11915,6 +11970,7 @@ function flow(value) {
|
|
|
11915
11970
|
publicationId: string(target.publicationId),
|
|
11916
11971
|
revisionId: string(target.revisionId)
|
|
11917
11972
|
} },
|
|
11973
|
+
tagIds: source.tagIds === void 0 ? [] : strings(source.tagIds),
|
|
11918
11974
|
createdAt: string(source.createdAt),
|
|
11919
11975
|
...source.connectorTeamId == null ? {} : { connectorTeamId: string(source.connectorTeamId) },
|
|
11920
11976
|
draftRevisionId: string(source.draftRevisionId),
|
|
@@ -12360,6 +12416,33 @@ function randomId() {
|
|
|
12360
12416
|
return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
|
|
12361
12417
|
}
|
|
12362
12418
|
//#endregion
|
|
12419
|
+
//#region src/control/common/tags.ts
|
|
12420
|
+
function normalizeFlowQuery(query = {}) {
|
|
12421
|
+
return {
|
|
12422
|
+
query: query.query?.trim().toLowerCase() ?? "",
|
|
12423
|
+
tagIds: [...new Set(query.tagIds ?? [])].toSorted(),
|
|
12424
|
+
untagged: query.untagged ?? false
|
|
12425
|
+
};
|
|
12426
|
+
}
|
|
12427
|
+
function decodeTag(value) {
|
|
12428
|
+
const source = record(value);
|
|
12429
|
+
if (source.version != 1) return invalidResponse();
|
|
12430
|
+
return {
|
|
12431
|
+
tagId: string(source.tagId),
|
|
12432
|
+
name: string(source.name),
|
|
12433
|
+
version: 1
|
|
12434
|
+
};
|
|
12435
|
+
}
|
|
12436
|
+
function decodeTagListItem(value) {
|
|
12437
|
+
const source = record(value);
|
|
12438
|
+
const referenceCount = integer(source.referenceCount);
|
|
12439
|
+
if (referenceCount < 0) return invalidResponse();
|
|
12440
|
+
return {
|
|
12441
|
+
...decodeTag(source),
|
|
12442
|
+
referenceCount
|
|
12443
|
+
};
|
|
12444
|
+
}
|
|
12445
|
+
//#endregion
|
|
12363
12446
|
//#region src/control/common/api.ts
|
|
12364
12447
|
function isRunTerminalEvent(event) {
|
|
12365
12448
|
return event?.kind == "run.completed" || event?.kind == "run.failed" || event?.kind == "run.canceled" || event?.kind == "run.indeterminate";
|
|
@@ -12466,7 +12549,7 @@ function decodeRunEvent(value) {
|
|
|
12466
12549
|
switch (kind) {
|
|
12467
12550
|
case "node.started": {
|
|
12468
12551
|
const nodeKind = payload.nodeKind;
|
|
12469
|
-
if (nodeKind !== void 0 && nodeKind !== "approval" && nodeKind !== "condition" && nodeKind !== "connector" && nodeKind !== "javascript" && nodeKind !== "decision" && nodeKind !== "openapi" && nodeKind !== "http-request" && nodeKind !== "llm" && nodeKind !== "agent" && nodeKind !== "value" && nodeKind !== "outputs" && nodeKind !== "webhook-response" && nodeKind !== "workflow" && nodeKind !== "wait") return invalidResponse();
|
|
12552
|
+
if (nodeKind !== void 0 && nodeKind !== "approval" && nodeKind !== "condition" && nodeKind !== "connector" && nodeKind !== "javascript" && nodeKind !== "decision" && nodeKind !== "openapi" && nodeKind !== "http-request" && nodeKind !== "skip-duplicates" && nodeKind !== "llm" && nodeKind !== "agent" && nodeKind !== "value" && nodeKind !== "outputs" && nodeKind !== "webhook-response" && nodeKind !== "workflow" && nodeKind !== "wait") return invalidResponse();
|
|
12470
12553
|
return {
|
|
12471
12554
|
...base,
|
|
12472
12555
|
kind,
|
|
@@ -12593,6 +12676,10 @@ var ControlClient = class {
|
|
|
12593
12676
|
}
|
|
12594
12677
|
async listFlows(options = {}) {
|
|
12595
12678
|
const parameters = new URLSearchParams();
|
|
12679
|
+
const filter = normalizeFlowQuery(options);
|
|
12680
|
+
if (filter.query) parameters.set("query", filter.query);
|
|
12681
|
+
if (filter.tagIds.length) parameters.set("tagIds", filter.tagIds.join(","));
|
|
12682
|
+
if (filter.untagged) parameters.set("untagged", "true");
|
|
12596
12683
|
if (options.cursor != null) parameters.set("cursor", options.cursor);
|
|
12597
12684
|
if (options.limit != null) parameters.set("limit", String(options.limit));
|
|
12598
12685
|
if (options.includeTotal != null) parameters.set("includeTotal", String(options.includeTotal));
|
|
@@ -12682,15 +12769,18 @@ var ControlClient = class {
|
|
|
12682
12769
|
file,
|
|
12683
12770
|
name: options.name,
|
|
12684
12771
|
teamId: options.teamId,
|
|
12772
|
+
tagIds: options.tagIds,
|
|
12685
12773
|
version: 1
|
|
12686
12774
|
})
|
|
12687
12775
|
}));
|
|
12688
12776
|
}
|
|
12689
|
-
async createFlow(name, idempotencyKey = `flow-${randomId()}`, teamId) {
|
|
12777
|
+
async createFlow(name, idempotencyKey = `flow-${randomId()}`, teamId, tagIds, initialPresentation) {
|
|
12690
12778
|
return flow(await this.request("/v1/flows", {
|
|
12691
12779
|
body: JSON.stringify({
|
|
12692
12780
|
name,
|
|
12693
12781
|
...teamId == null ? {} : { teamId },
|
|
12782
|
+
...tagIds == null ? {} : { tagIds },
|
|
12783
|
+
...initialPresentation == null ? {} : { presentation: initialPresentation },
|
|
12694
12784
|
version: 1
|
|
12695
12785
|
}),
|
|
12696
12786
|
headers: { "idempotency-key": idempotencyKey },
|
|
@@ -12725,15 +12815,68 @@ var ControlClient = class {
|
|
|
12725
12815
|
if (source.version != 1 || !Array.isArray(source.listeners)) return invalidResponse();
|
|
12726
12816
|
return source.listeners.map(errorListener);
|
|
12727
12817
|
}
|
|
12728
|
-
async
|
|
12729
|
-
|
|
12818
|
+
async listTags(signal) {
|
|
12819
|
+
const source = record(await this.request("/v1/tags", { signal }));
|
|
12820
|
+
if (source.version != 1 || !Array.isArray(source.tags)) return invalidResponse();
|
|
12821
|
+
return {
|
|
12822
|
+
tags: source.tags.map(decodeTagListItem),
|
|
12823
|
+
version: 1
|
|
12824
|
+
};
|
|
12825
|
+
}
|
|
12826
|
+
async createTag(name) {
|
|
12827
|
+
return decodeTag(await this.request("/v1/tags", {
|
|
12828
|
+
method: "POST",
|
|
12730
12829
|
body: JSON.stringify({
|
|
12731
12830
|
name,
|
|
12732
12831
|
version: 1
|
|
12733
|
-
})
|
|
12734
|
-
|
|
12832
|
+
})
|
|
12833
|
+
}));
|
|
12834
|
+
}
|
|
12835
|
+
async renameTag(tagId, name) {
|
|
12836
|
+
return decodeTag(await this.request(`/v1/tags/${segment(tagId)}`, {
|
|
12837
|
+
method: "PATCH",
|
|
12838
|
+
body: JSON.stringify({
|
|
12839
|
+
name,
|
|
12840
|
+
version: 1
|
|
12841
|
+
})
|
|
12842
|
+
}));
|
|
12843
|
+
}
|
|
12844
|
+
async deleteTag(tagId) {
|
|
12845
|
+
if (record(await this.request(`/v1/tags/${segment(tagId)}`, { method: "DELETE" })).version != 1) invalidResponse();
|
|
12846
|
+
}
|
|
12847
|
+
async setFlowTags(flowId, tagIds) {
|
|
12848
|
+
return flow(await this.request(`/v1/flows/${segment(flowId)}/tags`, {
|
|
12849
|
+
method: "PUT",
|
|
12850
|
+
body: JSON.stringify({
|
|
12851
|
+
tagIds,
|
|
12852
|
+
version: 1
|
|
12853
|
+
})
|
|
12854
|
+
}));
|
|
12855
|
+
}
|
|
12856
|
+
async updateFlow(flowId, changes) {
|
|
12857
|
+
return flow(await this.request(`/v1/flows/${segment(flowId)}`, {
|
|
12858
|
+
method: "PATCH",
|
|
12859
|
+
body: JSON.stringify({
|
|
12860
|
+
...changes,
|
|
12861
|
+
version: 1
|
|
12862
|
+
})
|
|
12735
12863
|
}));
|
|
12736
12864
|
}
|
|
12865
|
+
async getFlowState(flowId, scope, values = false) {
|
|
12866
|
+
const result = flowStateViewSchema.safeParse(await this.request(`/v1/flows/${segment(flowId)}/state?scope=${scope}&values=${values}`));
|
|
12867
|
+
return result.success && result.data.scope === scope ? result.data : invalidResponse();
|
|
12868
|
+
}
|
|
12869
|
+
async clearFlowState(flowId, scope, key) {
|
|
12870
|
+
const source = record(await this.request(`/v1/flows/${segment(flowId)}/state?scope=${scope}${key == null ? "" : `&key=${encodeURIComponent(key)}`}`, { method: "DELETE" }));
|
|
12871
|
+
if (source.version !== 1 || source.cleared !== true) invalidResponse();
|
|
12872
|
+
}
|
|
12873
|
+
async clearFlowDedupe(flowId, scope, space) {
|
|
12874
|
+
const source = record(await this.request(`/v1/flows/${segment(flowId)}/dedupe?scope=${scope}&space=${encodeURIComponent(space)}`, { method: "DELETE" }));
|
|
12875
|
+
if (source.version !== 1 || source.cleared !== true) invalidResponse();
|
|
12876
|
+
}
|
|
12877
|
+
async renameFlow(flowId, name) {
|
|
12878
|
+
return this.updateFlow(flowId, { name });
|
|
12879
|
+
}
|
|
12737
12880
|
async deleteFlow(flowId) {
|
|
12738
12881
|
return flow(await this.request(`/v1/flows/${segment(flowId)}`, { method: "DELETE" }));
|
|
12739
12882
|
}
|
|
@@ -13249,4 +13392,4 @@ var ControlClient = class {
|
|
|
13249
13392
|
}
|
|
13250
13393
|
};
|
|
13251
13394
|
//#endregion
|
|
13252
|
-
export { ApiError, ControlClient, actionSummary, controlErrorCode, controlErrorMetadata, connectorAccess as decodeConnectorAccess, connectorAccessSnapshot as decodeConnectorAccessSnapshot, decodeEventSource, decodeEventSources, decodeResultList, decodeResultRead, decodeRunEvent, decodeTriggerCatalog, flowInputDefinitions, flowInspection, inspectFlowDraft, isRunTerminalEvent, liveEntries, nodeDetails, parseProviderAccessSource, parseResultQuery, providerAccessBindingId, providerIconAppearance, readResult, searchTriggerKeys };
|
|
13395
|
+
export { ApiError, ControlClient, actionSummary, controlErrorCode, controlErrorMetadata, connectorAccess as decodeConnectorAccess, connectorAccessSnapshot as decodeConnectorAccessSnapshot, decodeEventSource, decodeEventSources, decodeResultList, decodeResultRead, decodeRunEvent, decodeTriggerCatalog, flowInputDefinitions, flowInspection, inspectFlowDraft, isRunTerminalEvent, liveEntries, nodeDetails, normalizeFlowQuery, parseProviderAccessSource, parseResultQuery, providerAccessBindingId, providerIconAppearance, readResult, searchTriggerKeys };
|
|
@@ -35,7 +35,7 @@ export declare const controlRequests: {
|
|
|
35
35
|
edits: ({
|
|
36
36
|
op: "node.add";
|
|
37
37
|
as: string;
|
|
38
|
-
type: "agent" | "approval" | "code" | "condition" | "connector" | "cron" | "decision" | "error" | "http-request" | "integration" | "llm" | "openapi" | "outputs" | "poll" | "start" | "value" | "wait" | "webhook" | "webhook-response" | "workflow";
|
|
38
|
+
type: "agent" | "approval" | "code" | "condition" | "connector" | "cron" | "decision" | "error" | "http-request" | "integration" | "llm" | "openapi" | "outputs" | "poll" | "skip-duplicates" | "start" | "value" | "wait" | "webhook" | "webhook-response" | "workflow";
|
|
39
39
|
name: string;
|
|
40
40
|
onError?: "error" | "stop" | undefined;
|
|
41
41
|
retry?: {
|
|
@@ -178,12 +178,12 @@ export declare const controlRequests: {
|
|
|
178
178
|
authoringSearch: (value: unknown) => {
|
|
179
179
|
revision?: string | undefined;
|
|
180
180
|
query: string;
|
|
181
|
-
type?: "agent" | "approval" | "code" | "condition" | "connector" | "cron" | "decision" | "error" | "http-request" | "integration" | "llm" | "openapi" | "outputs" | "poll" | "start" | "value" | "wait" | "webhook" | "webhook-response" | "workflow" | undefined;
|
|
181
|
+
type?: "agent" | "approval" | "code" | "condition" | "connector" | "cron" | "decision" | "error" | "http-request" | "integration" | "llm" | "openapi" | "outputs" | "poll" | "skip-duplicates" | "start" | "value" | "wait" | "webhook" | "webhook-response" | "workflow" | undefined;
|
|
182
182
|
offset: number;
|
|
183
183
|
limit: number;
|
|
184
184
|
};
|
|
185
185
|
authoringSchema: (value: unknown) => {
|
|
186
|
-
type?: "agent" | "approval" | "code" | "condition" | "connector" | "cron" | "decision" | "error" | "http-request" | "integration" | "llm" | "openapi" | "outputs" | "poll" | "start" | "value" | "wait" | "webhook" | "webhook-response" | "workflow" | undefined;
|
|
186
|
+
type?: "agent" | "approval" | "code" | "condition" | "connector" | "cron" | "decision" | "error" | "http-request" | "integration" | "llm" | "openapi" | "outputs" | "poll" | "skip-duplicates" | "start" | "value" | "wait" | "webhook" | "webhook-response" | "workflow" | undefined;
|
|
187
187
|
action?: string | undefined;
|
|
188
188
|
};
|
|
189
189
|
loadOpenApiDocument: (value: unknown) => {
|
|
@@ -200,11 +200,31 @@ export declare const controlRequests: {
|
|
|
200
200
|
file: JsonValue;
|
|
201
201
|
name?: string | undefined;
|
|
202
202
|
teamId?: string | undefined;
|
|
203
|
+
tagIds?: string[] | undefined;
|
|
203
204
|
version: 1;
|
|
204
205
|
};
|
|
205
206
|
createFlow: (value: unknown) => {
|
|
206
207
|
name: string;
|
|
207
208
|
teamId?: string | undefined;
|
|
209
|
+
tagIds?: string[] | undefined;
|
|
210
|
+
presentation?: Record<string, JsonValue> | undefined;
|
|
211
|
+
version: 1;
|
|
212
|
+
};
|
|
213
|
+
saveTag: (value: unknown) => {
|
|
214
|
+
name: string;
|
|
215
|
+
version: 1;
|
|
216
|
+
};
|
|
217
|
+
setFlowTags: (value: unknown) => {
|
|
218
|
+
tagIds: string[];
|
|
219
|
+
version: 1;
|
|
220
|
+
};
|
|
221
|
+
updateFlow: (value: unknown) => {
|
|
222
|
+
name: string;
|
|
223
|
+
tagIds?: string[] | undefined;
|
|
224
|
+
version: 1;
|
|
225
|
+
} | {
|
|
226
|
+
name?: string | undefined;
|
|
227
|
+
tagIds: string[];
|
|
208
228
|
version: 1;
|
|
209
229
|
};
|
|
210
230
|
renameFlow: (value: unknown) => {
|