@oomol-lab/open-flow 0.1.0-beta.61 → 0.1.0-beta.62
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/{createResourceDialog-D71fO68i.js → createResourceDialog-DZgJsr3e.js} +2 -2
- package/dist/browser/{flowChanges-DSA0FxxN.js → flowChanges-CzYIVevI.js} +2244 -2172
- package/dist/browser/{flowWorkspace-0sUJ5JhQ.js → flowWorkspace-BgZaFKZm.js} +179 -57
- package/dist/browser/{icons-DVJvrj1H.js → icons-CajfDpy_.js} +2879 -2879
- package/dist/browser/preview.js +453 -140
- package/dist/browser/workbench.css +4 -20
- package/dist/browser/workbench.js +78 -11
- package/dist/browser/{workbenchSelect-cr4-mKq3.js → workbenchSelect-H9wzEFkH.js} +1 -1
- package/dist/command/index.js +37 -37
- package/dist/common/authoring.d.ts +1 -1
- package/dist/common/control-api-conformance.js +2149 -2084
- package/dist/common/control-api-errors.d.ts +0 -4
- package/dist/common/control-api.d.ts +10 -11
- package/dist/common/control-api.js +2495 -2755
- package/dist/common/control-requests.js +23 -15
- package/dist/common/liveDetails.d.ts +138 -0
- package/dist/common/mcp.d.ts +1 -33
- package/dist/common/mcp.js +287 -238
- package/package.json +1 -1
- package/skills/open-flow/SKILL.md +6 -3
- package/skills/open-flow/references/flow-authoring.md +28 -24
- package/dist/common/publicationResources.d.ts +0 -29
|
@@ -10752,6 +10752,10 @@ svg.react-flow__connectionline {
|
|
|
10752
10752
|
font-weight: 500;
|
|
10753
10753
|
}
|
|
10754
10754
|
|
|
10755
|
+
.open-flow-workbench .trigger-binding-state.neutral {
|
|
10756
|
+
color: var(--ui-muted-foreground);
|
|
10757
|
+
}
|
|
10758
|
+
|
|
10755
10759
|
.open-flow-workbench .trigger-binding-state.success {
|
|
10756
10760
|
color: var(--success-foreground);
|
|
10757
10761
|
}
|
|
@@ -10815,26 +10819,6 @@ svg.react-flow__connectionline {
|
|
|
10815
10819
|
display: grid;
|
|
10816
10820
|
}
|
|
10817
10821
|
|
|
10818
|
-
.open-flow-workbench .trigger-webhook code {
|
|
10819
|
-
min-width: 0;
|
|
10820
|
-
color: var(--ui-foreground);
|
|
10821
|
-
overflow-wrap: anywhere;
|
|
10822
|
-
flex: 1;
|
|
10823
|
-
font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
10824
|
-
font-size: 12px;
|
|
10825
|
-
}
|
|
10826
|
-
|
|
10827
|
-
.open-flow-workbench .trigger-webhook > div {
|
|
10828
|
-
align-items: center;
|
|
10829
|
-
gap: 8px;
|
|
10830
|
-
min-width: 0;
|
|
10831
|
-
display: flex;
|
|
10832
|
-
}
|
|
10833
|
-
|
|
10834
|
-
.open-flow-workbench .trigger-webhook [data-slot="button"] {
|
|
10835
|
-
flex: none;
|
|
10836
|
-
}
|
|
10837
|
-
|
|
10838
10822
|
.open-flow-workbench .trigger-binding-detail-sections {
|
|
10839
10823
|
border-top: 1px solid var(--ui-border);
|
|
10840
10824
|
grid-template-columns: minmax(0, 1fr);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { $ as RunStore, $n as
|
|
1
|
+
import { $ as RunStore, $n as connection, $t as DropdownMenuContent, At as followWorkbenchLink, B as CacheResource, Bn as errorNotice, Cn as Badge, Ct as setCodeActions, Dn as createI18n, Dt as updateTriggerConfig, Et as setTriggerConnection, F as feishuResourceKind, Gn as decodeTriggerCatalog, Gt as Empty, H as resourceData, Hn as randomId, Ht as InputGroup, I as supportsFeishuChatFilter, It as PopoverTitle, J as providerIcon, Jn as sampleErrorOutputs, Jt as EmptyHeader, Kt as EmptyContent, L as combineSources, M as addNodeIntent, Mt as PopoverContent, N as deriveAddNodeOptions, Ot as updateTriggerSchedule, St as resetInputValues, Tt as setInputSources, U as resourceValue, Un as allConnectorConnectionsQuery, Ut as InputGroupAddon, Vn as WorkbenchClient, W as designerGraph, Wt as InputGroupInput, Xn as isJsonObject, Xt as EmptyTitle, Yn as triggerOutputDefinitions, Yt as EmptyMedia, Zt as DropdownMenu, _ as updateValue, _t as setComment, a as nameCreatedNodes, an as DropdownMenuSeparator, at as deriveInspectorDiagnostics, bt as setNodePositions, c as updateCondition, d as updateNodeName, dr as invalidResponse, dt as connectionCatalog, er as connectorActionMetadata, f as updateNodeSettings, fr as jsonValue, ft as canvasPresentationChange, g as updateTaskPorts, gr as controlErrorCode, gt as restoreCanvasPresentation, h as updateTaskAdditionalInputs, hr as ApiError, ht as removeComments, i as deleteSelection, it as Latest, jt as Popover, kt as IdTooltip, l as updateNodeDescription, ln as DropdownMenuTrigger, m as updateTask, mr as string, mt as flowPresentation, nt as revisionView, o as setInputValue, ot as diagnosticItems, p as updateResolution, pr as record, pt as commentIds, qt as EmptyDescription, r as applyFlowChanges, rt as flowResourceReferences, s as setInputVariable, t as addNode, tn as DropdownMenuItem, tr as providerIconAppearance, u as updateNodeIcon, ur as inputValue, ut as actionWithConnections, v as updateWebhook, vt as setFlowViewport, wn as EventSourcesPage, wt as setConnectorConnection, xt as repairNodeNames, yr as IconThemeContext, yt as setNodeContentHidden, z as scopedValue } from "./flowChanges-CzYIVevI.js";
|
|
2
2
|
import { a as derive, i as compute, l as val } from "./dist-bO8nvHFH.js";
|
|
3
3
|
import { a as toPlainObject, c as useLang, l as useTranslate, o as I18nProvider, u as useVal } from "./dist-BFmpkX4P.js";
|
|
4
|
-
import {
|
|
4
|
+
import { B as applyFlowChanges$1, E as FieldLabel, K as resourceNameIssue, S as Field, T as FieldGroup, X as nodeInputMappings, Y as mapConditionSources, a as DialogDescription, c as DialogTitle, d as TooltipContent, i as DialogContent, n as Dialog, o as DialogFooter, p as TooltipTrigger, r as DialogClose, rt as dequal$1, s as DialogHeader, sr as Input, t as Icon, u as Tooltip, w as FieldError, x as Spinner, xi as cn, yi as Button, z as FlowChangeError } from "./icons-CajfDpy_.js";
|
|
5
5
|
import { c as isUiLanguage, d as uiLanguages, l as resolveUiLanguage, u as uiLanguageNames } from "./value-DL_poNiC.js";
|
|
6
6
|
import { Suspense, lazy, useEffect, useRef, useState } from "react";
|
|
7
7
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -184,7 +184,7 @@ function Skeleton({ className, ...props }) {
|
|
|
184
184
|
}
|
|
185
185
|
//#endregion
|
|
186
186
|
//#region src/workbench/browser/runtime/shell/resourceBrowser.tsx
|
|
187
|
-
var CreateResourceDialog = lazy(() => import("./createResourceDialog-
|
|
187
|
+
var CreateResourceDialog = lazy(() => import("./createResourceDialog-DZgJsr3e.js"));
|
|
188
188
|
var flowIdTooltipAlignOffset = 44;
|
|
189
189
|
var renamePopoverAlignOffset = -12;
|
|
190
190
|
var renamePopoverVerticalShift = 8;
|
|
@@ -925,6 +925,36 @@ function disconnect(content, edge) {
|
|
|
925
925
|
kind: "graph.edge.disconnect"
|
|
926
926
|
}];
|
|
927
927
|
}
|
|
928
|
+
//#endregion
|
|
929
|
+
//#region src/flow/common/moduleChanges.ts
|
|
930
|
+
async function imports(source) {
|
|
931
|
+
try {
|
|
932
|
+
const { parse } = await import("./lib-Dws05GHj.js").then((n) => n.t);
|
|
933
|
+
const program = parse(source, {
|
|
934
|
+
errorRecovery: true,
|
|
935
|
+
sourceType: "module"
|
|
936
|
+
}).program;
|
|
937
|
+
const dependencies = /* @__PURE__ */ new Set();
|
|
938
|
+
for (const statement of program.body) {
|
|
939
|
+
if (statement.type != "ImportDeclaration") continue;
|
|
940
|
+
const match = /^\.\/(.+)\.mjs$/.exec(statement.source.value);
|
|
941
|
+
if (match?.[1] != null) dependencies.add(match[1]);
|
|
942
|
+
}
|
|
943
|
+
return [...dependencies].toSorted();
|
|
944
|
+
} catch {
|
|
945
|
+
return [];
|
|
946
|
+
}
|
|
947
|
+
}
|
|
948
|
+
function replaceSource(moduleId, beforeSource, beforeImports, source, moduleImports) {
|
|
949
|
+
return [{
|
|
950
|
+
beforeImports,
|
|
951
|
+
beforeSource,
|
|
952
|
+
imports: moduleImports,
|
|
953
|
+
kind: "module.source.replace",
|
|
954
|
+
moduleId,
|
|
955
|
+
source
|
|
956
|
+
}];
|
|
957
|
+
}
|
|
928
958
|
var createAuthoringId = customAlphabet("23456789abcdefghjkmnpqrstuvwxyz", 10);
|
|
929
959
|
//#endregion
|
|
930
960
|
//#region src/workbench/browser/runtime/editor/triggerDiagnosticPresentation.ts
|
|
@@ -945,12 +975,15 @@ function presentTriggerDiagnostics(items, revision, displays, language, t) {
|
|
|
945
975
|
}
|
|
946
976
|
//#endregion
|
|
947
977
|
//#region src/workbench/browser/runtime/publications/publicationStore.ts
|
|
978
|
+
var initialBindings = {
|
|
979
|
+
status: "idle",
|
|
980
|
+
bindings: []
|
|
981
|
+
};
|
|
948
982
|
var initialState$6 = {
|
|
949
983
|
activities: [],
|
|
950
984
|
activitiesLoadFailed: false,
|
|
951
985
|
activitiesLoading: false,
|
|
952
986
|
activitiesLoadingMore: false,
|
|
953
|
-
bindings: [],
|
|
954
987
|
detailLoading: false,
|
|
955
988
|
loaded: false,
|
|
956
989
|
loadFailed: false,
|
|
@@ -971,6 +1004,8 @@ var PublicationStore = class {
|
|
|
971
1004
|
#client;
|
|
972
1005
|
#identity;
|
|
973
1006
|
#i18n;
|
|
1007
|
+
#bindings = val(initialBindings);
|
|
1008
|
+
#bindingLoads = new Latest();
|
|
974
1009
|
#loads = new Latest();
|
|
975
1010
|
#operation = new Latest();
|
|
976
1011
|
#preferences;
|
|
@@ -994,7 +1029,7 @@ var PublicationStore = class {
|
|
|
994
1029
|
activitiesLoading: derive(this.#state, (state) => state.activitiesLoading),
|
|
995
1030
|
activitiesLoadingMore: derive(this.#state, (state) => state.activitiesLoadingMore),
|
|
996
1031
|
activitiesNextCursor: derive(this.#state, (state) => state.activitiesNextCursor),
|
|
997
|
-
bindings:
|
|
1032
|
+
bindings: this.#bindings,
|
|
998
1033
|
detail: derive(this.#state, (state) => state.detail),
|
|
999
1034
|
detailLoading: derive(this.#state, (state) => state.detailLoading),
|
|
1000
1035
|
live: derive(this.#state, (state) => state.live),
|
|
@@ -1015,6 +1050,7 @@ var PublicationStore = class {
|
|
|
1015
1050
|
};
|
|
1016
1051
|
}
|
|
1017
1052
|
dispose() {
|
|
1053
|
+
this.#bindingLoads.invalidate();
|
|
1018
1054
|
this.#loads.invalidate();
|
|
1019
1055
|
this.#operation.invalidate();
|
|
1020
1056
|
this.#stopObservation();
|
|
@@ -1024,6 +1060,8 @@ var PublicationStore = class {
|
|
|
1024
1060
|
this.#state.dispose();
|
|
1025
1061
|
}
|
|
1026
1062
|
reset() {
|
|
1063
|
+
this.#bindingLoads.invalidate();
|
|
1064
|
+
this.#bindings.set(initialBindings);
|
|
1027
1065
|
this.#loads.invalidate();
|
|
1028
1066
|
this.#operation.invalidate();
|
|
1029
1067
|
this.#stopObservation();
|
|
@@ -1055,11 +1093,11 @@ var PublicationStore = class {
|
|
|
1055
1093
|
});
|
|
1056
1094
|
try {
|
|
1057
1095
|
const operation = warm ? state.operation : await this.#storedOperation(target);
|
|
1058
|
-
|
|
1096
|
+
if (!current()) return;
|
|
1097
|
+
const [live, page] = await this.#read(target);
|
|
1059
1098
|
if (!current()) return;
|
|
1060
1099
|
this.#workspace.updateLive(live);
|
|
1061
1100
|
this.#set({
|
|
1062
|
-
bindings,
|
|
1063
1101
|
live,
|
|
1064
1102
|
loaded: true,
|
|
1065
1103
|
loading: false,
|
|
@@ -1086,6 +1124,36 @@ var PublicationStore = class {
|
|
|
1086
1124
|
this.#setNotice(errorNotice(error, this.#i18n.t));
|
|
1087
1125
|
}
|
|
1088
1126
|
}
|
|
1127
|
+
async loadBindings(flowId) {
|
|
1128
|
+
try {
|
|
1129
|
+
await this.#readBindings(flowId);
|
|
1130
|
+
} catch {}
|
|
1131
|
+
}
|
|
1132
|
+
async #readBindings(flowId, signal) {
|
|
1133
|
+
const previous = this.#bindings.value;
|
|
1134
|
+
const current = this.#bindingLoads.begin();
|
|
1135
|
+
this.#bindings.set({
|
|
1136
|
+
flowId,
|
|
1137
|
+
status: "loading",
|
|
1138
|
+
bindings: previous.flowId === flowId ? previous.bindings : []
|
|
1139
|
+
});
|
|
1140
|
+
try {
|
|
1141
|
+
const bindings = await this.#client.listFlowTriggerBindings(flowId, signal);
|
|
1142
|
+
if (!current()) return;
|
|
1143
|
+
this.#bindings.set({
|
|
1144
|
+
flowId,
|
|
1145
|
+
status: "loaded",
|
|
1146
|
+
bindings
|
|
1147
|
+
});
|
|
1148
|
+
} catch (error) {
|
|
1149
|
+
if (!current()) return;
|
|
1150
|
+
this.#bindings.set({
|
|
1151
|
+
...this.#bindings.value,
|
|
1152
|
+
status: "failed"
|
|
1153
|
+
});
|
|
1154
|
+
throw error;
|
|
1155
|
+
}
|
|
1156
|
+
}
|
|
1089
1157
|
async loadMore() {
|
|
1090
1158
|
const { loadingMore, nextCursor, target } = this.#state.value;
|
|
1091
1159
|
if (loadingMore || nextCursor == null || target == null) return;
|
|
@@ -1307,14 +1375,13 @@ var PublicationStore = class {
|
|
|
1307
1375
|
}
|
|
1308
1376
|
async #refresh(target, signal) {
|
|
1309
1377
|
const current = this.#loads.begin();
|
|
1310
|
-
const [live, page
|
|
1378
|
+
const [live, page] = await this.#read(target, signal).catch((error) => {
|
|
1311
1379
|
if (current() && sameTarget(this.#state.value.target, target)) this.#set({ refreshing: false });
|
|
1312
1380
|
throw error;
|
|
1313
1381
|
});
|
|
1314
1382
|
signal?.throwIfAborted();
|
|
1315
1383
|
if (current()) this.#workspace.updateLive(live);
|
|
1316
1384
|
if (current() && sameTarget(this.#state.value.target, target)) this.#set({
|
|
1317
|
-
bindings,
|
|
1318
1385
|
live,
|
|
1319
1386
|
loaded: true,
|
|
1320
1387
|
loadFailed: false,
|
|
@@ -1341,7 +1408,7 @@ var PublicationStore = class {
|
|
|
1341
1408
|
includeTotal: true,
|
|
1342
1409
|
limit: pageLimit$1
|
|
1343
1410
|
}, signal),
|
|
1344
|
-
this.#
|
|
1411
|
+
this.#readBindings(target.flowId, signal)
|
|
1345
1412
|
]);
|
|
1346
1413
|
}
|
|
1347
1414
|
async #storedOperation(target) {
|
|
@@ -6726,7 +6793,7 @@ var WorkbenchStore = class {
|
|
|
6726
6793
|
};
|
|
6727
6794
|
//#endregion
|
|
6728
6795
|
//#region src/workbench/browser/runtime/openFlowWorkbench.tsx
|
|
6729
|
-
var FlowWorkspace = lazy(() => import("./flowWorkspace-
|
|
6796
|
+
var FlowWorkspace = lazy(() => import("./flowWorkspace-BgZaFKZm.js"));
|
|
6730
6797
|
function OpenFlowSessionGate({ action, description, error, onSubmit, onTokenChange, pending = false, title, token, tokenLabel }) {
|
|
6731
6798
|
const hasToken = token != null && tokenLabel != null && onTokenChange != null;
|
|
6732
6799
|
const tokenValue = token ?? "";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ct as
|
|
1
|
+
import { Ct as SelectContent, Dt as SelectTrigger, Ot as SelectValue, Tt as SelectItem, wt as SelectGroup, xi as cn, xt as Select } from "./icons-CajfDpy_.js";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
//#region src/workbench/browser/runtime/shell/workbenchSelect.tsx
|
|
4
4
|
function WorkbenchSelect({ ariaLabel, className, disabled = false, id, onValueChange, options, portalRoot, size, value, variant }) {
|