@pipelex/mthds-ui 0.10.0 → 0.11.0
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/{chunk-D2ID5Z3Y.js → chunk-R34J4GFM.js} +2 -1
- package/dist/chunk-R34J4GFM.js.map +1 -0
- package/dist/graph/index.d.ts +2 -2
- package/dist/graph/index.js +1 -1
- package/dist/graph/react/index.d.ts +2 -2
- package/dist/graph/react/index.js +328 -307
- package/dist/graph/react/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/standalone/graph-standalone.html +9 -9
- package/dist/standalone/graph-viewer.js +9 -9
- package/dist/{types-CEDZIAmh.d.ts → types-B3nefYpV.d.ts} +21 -3
- package/package.json +1 -1
- package/dist/chunk-D2ID5Z3Y.js.map +0 -1
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
toolbarOrientation,
|
|
20
20
|
toolbarSide,
|
|
21
21
|
validateGraphSpec
|
|
22
|
-
} from "../../chunk-
|
|
22
|
+
} from "../../chunk-R34J4GFM.js";
|
|
23
23
|
import {
|
|
24
24
|
__spreadProps,
|
|
25
25
|
__spreadValues
|
|
@@ -825,9 +825,6 @@ function PipeLLMSection({
|
|
|
825
825
|
)
|
|
826
826
|
] });
|
|
827
827
|
}
|
|
828
|
-
function LLMExecutionData(_props) {
|
|
829
|
-
return null;
|
|
830
|
-
}
|
|
831
828
|
|
|
832
829
|
// src/graph/react/detail/sections/PipeImgGenDetail.tsx
|
|
833
830
|
import { Fragment as Fragment2, jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
@@ -872,9 +869,6 @@ function PipeImgGenSection({
|
|
|
872
869
|
)
|
|
873
870
|
] });
|
|
874
871
|
}
|
|
875
|
-
function ImgGenExecutionData(_props) {
|
|
876
|
-
return null;
|
|
877
|
-
}
|
|
878
872
|
|
|
879
873
|
// src/graph/react/detail/sections/PipeExtractDetail.tsx
|
|
880
874
|
import { Fragment as Fragment3, jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
@@ -895,9 +889,6 @@ function PipeExtractSection({
|
|
|
895
889
|
/* @__PURE__ */ jsx6(KV, { label: "Image Variable", value: blueprint.image_stuff_name })
|
|
896
890
|
] });
|
|
897
891
|
}
|
|
898
|
-
function ExtractExecutionData(_props) {
|
|
899
|
-
return null;
|
|
900
|
-
}
|
|
901
892
|
|
|
902
893
|
// src/graph/react/detail/sections/PipeSearchDetail.tsx
|
|
903
894
|
import { Fragment as Fragment4, jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
@@ -926,12 +917,46 @@ function PipeSearchSection({
|
|
|
926
917
|
blueprint.exclude_domains && blueprint.exclude_domains.length > 0 && /* @__PURE__ */ jsx7(KV, { label: "Exclude Domains", value: blueprint.exclude_domains.join(", ") })
|
|
927
918
|
] });
|
|
928
919
|
}
|
|
929
|
-
|
|
930
|
-
|
|
920
|
+
|
|
921
|
+
// src/graph/react/detail/sections/llmChoice.ts
|
|
922
|
+
var LLM_CHOICE_LABEL_KEYS = ["model", "llm_handle", "handle", "llm_name", "name"];
|
|
923
|
+
function nonEmptyString(value) {
|
|
924
|
+
if (typeof value !== "string") return void 0;
|
|
925
|
+
const trimmed = value.trim();
|
|
926
|
+
return trimmed.length > 0 ? trimmed : void 0;
|
|
927
|
+
}
|
|
928
|
+
function labelFromLlmChoice(choice) {
|
|
929
|
+
if (typeof choice === "string") return nonEmptyString(choice);
|
|
930
|
+
if (choice && typeof choice === "object") {
|
|
931
|
+
for (const key of LLM_CHOICE_LABEL_KEYS) {
|
|
932
|
+
const label = nonEmptyString(choice[key]);
|
|
933
|
+
if (label) return label;
|
|
934
|
+
}
|
|
935
|
+
}
|
|
936
|
+
return void 0;
|
|
931
937
|
}
|
|
932
938
|
|
|
933
|
-
// src/graph/react/detail/sections/
|
|
939
|
+
// src/graph/react/detail/sections/PipeStructureDetail.tsx
|
|
934
940
|
import { Fragment as Fragment5, jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
941
|
+
function PipeStructureSection({
|
|
942
|
+
blueprint,
|
|
943
|
+
executionData
|
|
944
|
+
}) {
|
|
945
|
+
const resolvedModel = executionData == null ? void 0 : executionData.resolved_model;
|
|
946
|
+
const isMultipleOutput = executionData == null ? void 0 : executionData.is_multiple_output;
|
|
947
|
+
const renderedUser = executionData == null ? void 0 : executionData.rendered_user_prompt;
|
|
948
|
+
const modelDisplay = resolvedModel || labelFromLlmChoice(blueprint.llm_choice);
|
|
949
|
+
return /* @__PURE__ */ jsxs8(Fragment5, { children: [
|
|
950
|
+
/* @__PURE__ */ jsx8(KV, { label: "Model", value: modelDisplay }),
|
|
951
|
+
/* @__PURE__ */ jsx8(KV, { label: "Text Variable", value: blueprint.text_input_name }),
|
|
952
|
+
/* @__PURE__ */ jsx8(KV, { label: "Multiple Output", value: isMultipleOutput }),
|
|
953
|
+
/* @__PURE__ */ jsx8(KV, { label: "Output Multiplicity", value: blueprint.output_multiplicity }),
|
|
954
|
+
/* @__PURE__ */ jsx8(PromptToggle, { label: "Prompt", templateText: void 0, renderedText: renderedUser })
|
|
955
|
+
] });
|
|
956
|
+
}
|
|
957
|
+
|
|
958
|
+
// src/graph/react/detail/sections/PipeComposeDetail.tsx
|
|
959
|
+
import { Fragment as Fragment6, jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
935
960
|
function formatLeafField(field) {
|
|
936
961
|
var _a, _b;
|
|
937
962
|
switch (field.method) {
|
|
@@ -952,9 +977,9 @@ function isLongValue(text) {
|
|
|
952
977
|
return text.length > LONG_VALUE_THRESHOLD_CHARS || text.includes("\n");
|
|
953
978
|
}
|
|
954
979
|
function FieldBlock({ label, value }) {
|
|
955
|
-
return /* @__PURE__ */
|
|
956
|
-
/* @__PURE__ */
|
|
957
|
-
/* @__PURE__ */
|
|
980
|
+
return /* @__PURE__ */ jsxs9("div", { className: "detail-field-block", children: [
|
|
981
|
+
/* @__PURE__ */ jsx9("div", { className: "detail-field-block-label", children: label }),
|
|
982
|
+
/* @__PURE__ */ jsx9("div", { className: "detail-field-block-value", children: value })
|
|
958
983
|
] });
|
|
959
984
|
}
|
|
960
985
|
function ConstructFieldsBlock({
|
|
@@ -975,18 +1000,18 @@ function ConstructFieldsBlock({
|
|
|
975
1000
|
}
|
|
976
1001
|
}
|
|
977
1002
|
const indentStyle = depth > 0 ? { paddingLeft: depth * 12 } : void 0;
|
|
978
|
-
return /* @__PURE__ */
|
|
1003
|
+
return /* @__PURE__ */ jsxs9(Fragment6, { children: [
|
|
979
1004
|
leafFields.map(([name, field]) => {
|
|
980
1005
|
const display = formatLeafField(field);
|
|
981
1006
|
if (isLongValue(display)) {
|
|
982
|
-
return /* @__PURE__ */
|
|
1007
|
+
return /* @__PURE__ */ jsx9("div", { style: indentStyle, children: /* @__PURE__ */ jsx9(FieldBlock, { label: name, value: display }) }, name);
|
|
983
1008
|
}
|
|
984
|
-
return /* @__PURE__ */
|
|
1009
|
+
return /* @__PURE__ */ jsx9("div", { style: indentStyle, children: /* @__PURE__ */ jsx9(KV, { label: name, value: display }) }, name);
|
|
985
1010
|
}),
|
|
986
1011
|
templateFields.map(([name, field]) => {
|
|
987
1012
|
var _a, _b;
|
|
988
1013
|
const renderedForField = (_a = fieldResolutions == null ? void 0 : fieldResolutions[name]) == null ? void 0 : _a.rendered;
|
|
989
|
-
return /* @__PURE__ */
|
|
1014
|
+
return /* @__PURE__ */ jsx9("div", { style: indentStyle, children: /* @__PURE__ */ jsx9(
|
|
990
1015
|
PromptToggle,
|
|
991
1016
|
{
|
|
992
1017
|
label: `Template \u2014 ${name}`,
|
|
@@ -997,15 +1022,15 @@ function ConstructFieldsBlock({
|
|
|
997
1022
|
}),
|
|
998
1023
|
nestedFields.map(([name, field]) => {
|
|
999
1024
|
if (!field.nested) return null;
|
|
1000
|
-
return /* @__PURE__ */
|
|
1001
|
-
/* @__PURE__ */
|
|
1025
|
+
return /* @__PURE__ */ jsxs9("div", { children: [
|
|
1026
|
+
/* @__PURE__ */ jsxs9(
|
|
1002
1027
|
"div",
|
|
1003
1028
|
{
|
|
1004
1029
|
className: "detail-nested-header",
|
|
1005
1030
|
style: depth > 0 ? { paddingLeft: depth * 12 } : void 0,
|
|
1006
1031
|
children: [
|
|
1007
|
-
/* @__PURE__ */
|
|
1008
|
-
/* @__PURE__ */
|
|
1032
|
+
/* @__PURE__ */ jsx9("span", { className: "detail-nested-header-name", children: name }),
|
|
1033
|
+
/* @__PURE__ */ jsxs9("span", { className: "detail-nested-header-meta", children: [
|
|
1009
1034
|
"nested \xB7 ",
|
|
1010
1035
|
Object.keys(field.nested.fields).length,
|
|
1011
1036
|
" field",
|
|
@@ -1014,7 +1039,7 @@ function ConstructFieldsBlock({
|
|
|
1014
1039
|
]
|
|
1015
1040
|
}
|
|
1016
1041
|
),
|
|
1017
|
-
/* @__PURE__ */
|
|
1042
|
+
/* @__PURE__ */ jsx9(
|
|
1018
1043
|
ConstructFieldsBlock,
|
|
1019
1044
|
{
|
|
1020
1045
|
blueprint: field.nested,
|
|
@@ -1036,11 +1061,11 @@ function PipeComposeSection({
|
|
|
1036
1061
|
const fieldResolutions = (_a = executionData == null ? void 0 : executionData.fields) != null ? _a : null;
|
|
1037
1062
|
const constructBlueprint = blueprint.construct_blueprint;
|
|
1038
1063
|
const hasConstruct = constructBlueprint !== null && Object.keys(constructBlueprint.fields).length > 0;
|
|
1039
|
-
return /* @__PURE__ */
|
|
1040
|
-
/* @__PURE__ */
|
|
1041
|
-
/* @__PURE__ */
|
|
1042
|
-
/* @__PURE__ */
|
|
1043
|
-
blueprint.template && /* @__PURE__ */
|
|
1064
|
+
return /* @__PURE__ */ jsxs9(Fragment6, { children: [
|
|
1065
|
+
/* @__PURE__ */ jsx9(KV, { label: "Mode", value: composeMode || (hasConstruct ? "construct" : "template") }),
|
|
1066
|
+
/* @__PURE__ */ jsx9(KV, { label: "Category", value: blueprint.category }),
|
|
1067
|
+
/* @__PURE__ */ jsx9(KV, { label: "Templating Style", value: blueprint.templating_style }),
|
|
1068
|
+
blueprint.template && /* @__PURE__ */ jsx9(
|
|
1044
1069
|
PromptToggle,
|
|
1045
1070
|
{
|
|
1046
1071
|
label: "Template",
|
|
@@ -1048,9 +1073,9 @@ function PipeComposeSection({
|
|
|
1048
1073
|
renderedText
|
|
1049
1074
|
}
|
|
1050
1075
|
),
|
|
1051
|
-
hasConstruct && /* @__PURE__ */
|
|
1052
|
-
/* @__PURE__ */
|
|
1053
|
-
/* @__PURE__ */
|
|
1076
|
+
hasConstruct && /* @__PURE__ */ jsxs9(Fragment6, { children: [
|
|
1077
|
+
/* @__PURE__ */ jsx9("div", { className: "detail-section-label", children: "FIELDS" }),
|
|
1078
|
+
/* @__PURE__ */ jsx9(
|
|
1054
1079
|
ConstructFieldsBlock,
|
|
1055
1080
|
{
|
|
1056
1081
|
blueprint: constructBlueprint,
|
|
@@ -1061,31 +1086,28 @@ function PipeComposeSection({
|
|
|
1061
1086
|
] })
|
|
1062
1087
|
] });
|
|
1063
1088
|
}
|
|
1064
|
-
function ComposeExecutionData(_props) {
|
|
1065
|
-
return null;
|
|
1066
|
-
}
|
|
1067
1089
|
|
|
1068
1090
|
// src/graph/react/detail/sections/PipeConditionDetail.tsx
|
|
1069
|
-
import { Fragment as
|
|
1091
|
+
import { Fragment as Fragment7, jsx as jsx10, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1070
1092
|
function PipeConditionSection({
|
|
1071
1093
|
blueprint,
|
|
1072
1094
|
executionData
|
|
1073
1095
|
}) {
|
|
1074
1096
|
const evaluatedExpression = executionData == null ? void 0 : executionData.evaluated_expression;
|
|
1075
1097
|
const selectedOutcome = executionData == null ? void 0 : executionData.selected_outcome;
|
|
1076
|
-
return /* @__PURE__ */
|
|
1077
|
-
/* @__PURE__ */
|
|
1078
|
-
evaluatedExpression && /* @__PURE__ */
|
|
1079
|
-
/* @__PURE__ */
|
|
1080
|
-
/* @__PURE__ */
|
|
1081
|
-
Object.entries(blueprint.outcome_map).map(([outcome, pipeCode]) => /* @__PURE__ */
|
|
1098
|
+
return /* @__PURE__ */ jsxs10(Fragment7, { children: [
|
|
1099
|
+
/* @__PURE__ */ jsx10(PromptBlock, { label: "Expression", text: blueprint.expression }),
|
|
1100
|
+
evaluatedExpression && /* @__PURE__ */ jsx10(KV, { label: "Expression Result", value: evaluatedExpression }),
|
|
1101
|
+
/* @__PURE__ */ jsxs10("div", { children: [
|
|
1102
|
+
/* @__PURE__ */ jsx10("div", { className: "detail-section-label", children: "Outcomes" }),
|
|
1103
|
+
Object.entries(blueprint.outcome_map).map(([outcome, pipeCode]) => /* @__PURE__ */ jsxs10(
|
|
1082
1104
|
"div",
|
|
1083
1105
|
{
|
|
1084
1106
|
className: "detail-kv-row",
|
|
1085
1107
|
style: selectedOutcome === pipeCode ? { background: "rgba(80,250,123,0.08)" } : void 0,
|
|
1086
1108
|
children: [
|
|
1087
|
-
/* @__PURE__ */
|
|
1088
|
-
/* @__PURE__ */
|
|
1109
|
+
/* @__PURE__ */ jsx10("span", { className: "detail-kv-key", children: outcome }),
|
|
1110
|
+
/* @__PURE__ */ jsx10(
|
|
1089
1111
|
"span",
|
|
1090
1112
|
{
|
|
1091
1113
|
className: "detail-kv-value",
|
|
@@ -1097,83 +1119,89 @@ function PipeConditionSection({
|
|
|
1097
1119
|
},
|
|
1098
1120
|
outcome
|
|
1099
1121
|
)),
|
|
1100
|
-
/* @__PURE__ */
|
|
1101
|
-
/* @__PURE__ */
|
|
1102
|
-
/* @__PURE__ */
|
|
1122
|
+
/* @__PURE__ */ jsxs10("div", { className: "detail-kv-row", children: [
|
|
1123
|
+
/* @__PURE__ */ jsx10("span", { className: "detail-kv-key", children: "default" }),
|
|
1124
|
+
/* @__PURE__ */ jsx10("span", { className: "detail-kv-value", children: blueprint.default_outcome })
|
|
1103
1125
|
] })
|
|
1104
1126
|
] }),
|
|
1105
|
-
/* @__PURE__ */
|
|
1127
|
+
/* @__PURE__ */ jsx10(KV, { label: "Alias Expression To", value: blueprint.add_alias_from_expression_to })
|
|
1106
1128
|
] });
|
|
1107
1129
|
}
|
|
1108
|
-
function ConditionExecutionData(_props) {
|
|
1109
|
-
return null;
|
|
1110
|
-
}
|
|
1111
1130
|
|
|
1112
1131
|
// src/graph/react/detail/sections/PipeSequenceDetail.tsx
|
|
1113
|
-
import { jsx as
|
|
1132
|
+
import { jsx as jsx11, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1114
1133
|
function PipeSequenceSection({
|
|
1115
1134
|
blueprint
|
|
1116
1135
|
}) {
|
|
1117
|
-
return /* @__PURE__ */
|
|
1118
|
-
/* @__PURE__ */
|
|
1119
|
-
/* @__PURE__ */
|
|
1120
|
-
/* @__PURE__ */
|
|
1121
|
-
/* @__PURE__ */
|
|
1122
|
-
step.output_name && /* @__PURE__ */
|
|
1136
|
+
return /* @__PURE__ */ jsxs11("div", { children: [
|
|
1137
|
+
/* @__PURE__ */ jsx11("div", { className: "detail-section-label", children: "Steps" }),
|
|
1138
|
+
/* @__PURE__ */ jsx11("div", { className: "detail-steps-list", children: blueprint.sequential_sub_pipes.map((step, idx) => /* @__PURE__ */ jsxs11("div", { className: "detail-step-item", children: [
|
|
1139
|
+
/* @__PURE__ */ jsx11("span", { className: "detail-step-index", children: idx + 1 }),
|
|
1140
|
+
/* @__PURE__ */ jsx11("span", { className: "detail-step-code", children: step.pipe_code }),
|
|
1141
|
+
step.output_name && /* @__PURE__ */ jsxs11("span", { className: "detail-io-concept", children: [
|
|
1123
1142
|
"-> ",
|
|
1124
1143
|
step.output_name
|
|
1125
1144
|
] })
|
|
1126
1145
|
] }, idx)) })
|
|
1127
1146
|
] });
|
|
1128
1147
|
}
|
|
1129
|
-
function SequenceExecutionData(_props) {
|
|
1130
|
-
return null;
|
|
1131
|
-
}
|
|
1132
1148
|
|
|
1133
1149
|
// src/graph/react/detail/sections/PipeParallelDetail.tsx
|
|
1134
|
-
import { Fragment as
|
|
1150
|
+
import { Fragment as Fragment8, jsx as jsx12, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1135
1151
|
function PipeParallelSection({
|
|
1136
1152
|
blueprint
|
|
1137
1153
|
}) {
|
|
1138
|
-
return /* @__PURE__ */
|
|
1139
|
-
/* @__PURE__ */
|
|
1140
|
-
/* @__PURE__ */
|
|
1141
|
-
/* @__PURE__ */
|
|
1142
|
-
/* @__PURE__ */
|
|
1143
|
-
branch.output_name && /* @__PURE__ */
|
|
1154
|
+
return /* @__PURE__ */ jsxs12(Fragment8, { children: [
|
|
1155
|
+
/* @__PURE__ */ jsxs12("div", { children: [
|
|
1156
|
+
/* @__PURE__ */ jsx12("div", { className: "detail-section-label", children: "Branches" }),
|
|
1157
|
+
/* @__PURE__ */ jsx12("div", { className: "detail-steps-list", children: blueprint.parallel_sub_pipes.map((branch, idx) => /* @__PURE__ */ jsxs12("div", { className: "detail-step-item", children: [
|
|
1158
|
+
/* @__PURE__ */ jsx12("span", { className: "detail-step-code", children: branch.pipe_code }),
|
|
1159
|
+
branch.output_name && /* @__PURE__ */ jsxs12("span", { className: "detail-io-concept", children: [
|
|
1144
1160
|
"-> ",
|
|
1145
1161
|
branch.output_name
|
|
1146
1162
|
] })
|
|
1147
1163
|
] }, idx)) })
|
|
1148
1164
|
] }),
|
|
1149
|
-
/* @__PURE__ */
|
|
1150
|
-
/* @__PURE__ */
|
|
1165
|
+
/* @__PURE__ */ jsx12(KV, { label: "Add Each Output", value: blueprint.add_each_output }),
|
|
1166
|
+
/* @__PURE__ */ jsx12(KV, { label: "Combined Output", value: blueprint.combined_output })
|
|
1151
1167
|
] });
|
|
1152
1168
|
}
|
|
1153
|
-
function ParallelExecutionData(_props) {
|
|
1154
|
-
return null;
|
|
1155
|
-
}
|
|
1156
1169
|
|
|
1157
1170
|
// src/graph/react/detail/sections/PipeBatchDetail.tsx
|
|
1158
|
-
import { Fragment as
|
|
1171
|
+
import { Fragment as Fragment9, jsx as jsx13, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1159
1172
|
function PipeBatchSection({
|
|
1160
1173
|
blueprint,
|
|
1161
1174
|
executionData
|
|
1162
1175
|
}) {
|
|
1163
1176
|
const itemCount = executionData == null ? void 0 : executionData.item_count;
|
|
1164
|
-
return /* @__PURE__ */
|
|
1165
|
-
/* @__PURE__ */
|
|
1166
|
-
/* @__PURE__ */
|
|
1167
|
-
/* @__PURE__ */
|
|
1168
|
-
itemCount != null && /* @__PURE__ */
|
|
1177
|
+
return /* @__PURE__ */ jsxs13(Fragment9, { children: [
|
|
1178
|
+
/* @__PURE__ */ jsx13(KV, { label: "Branch Pipe", value: blueprint.branch_pipe_code }),
|
|
1179
|
+
/* @__PURE__ */ jsx13(KV, { label: "Input List Variable", value: blueprint.batch_params.input_list_stuff_name }),
|
|
1180
|
+
/* @__PURE__ */ jsx13(KV, { label: "Input Item Variable", value: blueprint.batch_params.input_item_stuff_name }),
|
|
1181
|
+
itemCount != null && /* @__PURE__ */ jsx13(KV, { label: "Items Processed", value: itemCount })
|
|
1169
1182
|
] });
|
|
1170
1183
|
}
|
|
1171
|
-
|
|
1172
|
-
|
|
1184
|
+
|
|
1185
|
+
// src/graph/react/detail/sections/executionData.ts
|
|
1186
|
+
var MERGED_EXECUTION_DATA_TYPES = /* @__PURE__ */ new Set([
|
|
1187
|
+
"PipeLLM",
|
|
1188
|
+
"PipeImgGen",
|
|
1189
|
+
"PipeExtract",
|
|
1190
|
+
"PipeSearch",
|
|
1191
|
+
"PipeStructure",
|
|
1192
|
+
"PipeCompose",
|
|
1193
|
+
"PipeSequence",
|
|
1194
|
+
"PipeParallel",
|
|
1195
|
+
"PipeCondition",
|
|
1196
|
+
"PipeBatch"
|
|
1197
|
+
]);
|
|
1198
|
+
function shouldDumpExecutionData(pipeType, hasBlueprint) {
|
|
1199
|
+
if (MERGED_EXECUTION_DATA_TYPES.has(pipeType)) return !hasBlueprint;
|
|
1200
|
+
return true;
|
|
1173
1201
|
}
|
|
1174
1202
|
|
|
1175
1203
|
// src/graph/react/detail/PipeDetailPanel.tsx
|
|
1176
|
-
import { Fragment as
|
|
1204
|
+
import { Fragment as Fragment10, jsx as jsx14, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1177
1205
|
var PIPE_TYPE_BADGES = {
|
|
1178
1206
|
PipeLLM: "LLM",
|
|
1179
1207
|
PipeExtract: "Extract",
|
|
@@ -1181,6 +1209,7 @@ var PIPE_TYPE_BADGES = {
|
|
|
1181
1209
|
PipeImgGen: "ImgGen",
|
|
1182
1210
|
PipeSearch: "Search",
|
|
1183
1211
|
PipeFunc: "Func",
|
|
1212
|
+
PipeStructure: "Structure",
|
|
1184
1213
|
PipeSignature: "Signature",
|
|
1185
1214
|
PipeSequence: "Seq",
|
|
1186
1215
|
PipeParallel: "Par",
|
|
@@ -1222,17 +1251,17 @@ function PipeDetailPanel({ node, spec, onConceptClick }) {
|
|
|
1222
1251
|
const inputs = (_c = (_b = node.io) == null ? void 0 : _b.inputs) != null ? _c : [];
|
|
1223
1252
|
const outputs = (_e = (_d = node.io) == null ? void 0 : _d.outputs) != null ? _e : [];
|
|
1224
1253
|
const description = (_f = blueprint == null ? void 0 : blueprint.description) != null ? _f : node.description;
|
|
1225
|
-
return /* @__PURE__ */
|
|
1226
|
-
/* @__PURE__ */
|
|
1227
|
-
/* @__PURE__ */
|
|
1228
|
-
/* @__PURE__ */
|
|
1254
|
+
return /* @__PURE__ */ jsxs14(Fragment10, { children: [
|
|
1255
|
+
/* @__PURE__ */ jsxs14("div", { className: "detail-sticky-header", children: [
|
|
1256
|
+
/* @__PURE__ */ jsxs14("div", { className: "detail-header", children: [
|
|
1257
|
+
/* @__PURE__ */ jsx14(
|
|
1229
1258
|
"span",
|
|
1230
1259
|
{
|
|
1231
1260
|
className: `detail-badge ${isController ? "detail-badge--controller" : "detail-badge--operator"}`,
|
|
1232
1261
|
children: badge
|
|
1233
1262
|
}
|
|
1234
1263
|
),
|
|
1235
|
-
/* @__PURE__ */
|
|
1264
|
+
/* @__PURE__ */ jsx14(
|
|
1236
1265
|
"span",
|
|
1237
1266
|
{
|
|
1238
1267
|
className: `detail-pipe-code ${isController ? "detail-pipe-code--controller" : ""}`,
|
|
@@ -1240,56 +1269,63 @@ function PipeDetailPanel({ node, spec, onConceptClick }) {
|
|
|
1240
1269
|
}
|
|
1241
1270
|
)
|
|
1242
1271
|
] }),
|
|
1243
|
-
/* @__PURE__ */
|
|
1244
|
-
/* @__PURE__ */
|
|
1245
|
-
/* @__PURE__ */
|
|
1246
|
-
((_g = node.timing) == null ? void 0 : _g.duration) != null && /* @__PURE__ */
|
|
1272
|
+
/* @__PURE__ */ jsxs14("div", { className: "detail-status", children: [
|
|
1273
|
+
/* @__PURE__ */ jsx14("span", { className: "detail-status-dot", style: { background: statusColor } }),
|
|
1274
|
+
/* @__PURE__ */ jsx14("span", { className: "detail-status-label", style: { color: statusColor }, children: status }),
|
|
1275
|
+
((_g = node.timing) == null ? void 0 : _g.duration) != null && /* @__PURE__ */ jsx14("span", { className: "detail-duration", children: formatDuration(node.timing.duration) })
|
|
1247
1276
|
] }),
|
|
1248
|
-
description && /* @__PURE__ */
|
|
1249
|
-
inputs.length > 0 && /* @__PURE__ */
|
|
1250
|
-
/* @__PURE__ */
|
|
1251
|
-
/* @__PURE__ */
|
|
1277
|
+
description && /* @__PURE__ */ jsx14("div", { className: "detail-description", children: description }),
|
|
1278
|
+
inputs.length > 0 && /* @__PURE__ */ jsxs14("div", { children: [
|
|
1279
|
+
/* @__PURE__ */ jsx14("div", { className: "detail-section-label", children: "Inputs" }),
|
|
1280
|
+
/* @__PURE__ */ jsx14("div", { className: "detail-io-list", children: inputs.map((input, idx) => /* @__PURE__ */ jsxs14(
|
|
1252
1281
|
"div",
|
|
1253
1282
|
{
|
|
1254
1283
|
className: "detail-io-pill",
|
|
1255
1284
|
style: { cursor: input.concept && onConceptClick ? "pointer" : void 0 },
|
|
1256
1285
|
onClick: () => input.concept && (onConceptClick == null ? void 0 : onConceptClick(input.concept)),
|
|
1257
1286
|
children: [
|
|
1258
|
-
/* @__PURE__ */
|
|
1259
|
-
input.concept && /* @__PURE__ */
|
|
1287
|
+
/* @__PURE__ */ jsx14("span", { className: "detail-io-name", children: input.name }),
|
|
1288
|
+
input.concept && /* @__PURE__ */ jsx14("span", { className: "detail-io-concept", children: input.concept })
|
|
1260
1289
|
]
|
|
1261
1290
|
},
|
|
1262
1291
|
idx
|
|
1263
1292
|
)) })
|
|
1264
1293
|
] }),
|
|
1265
|
-
outputs.length > 0 && /* @__PURE__ */
|
|
1266
|
-
/* @__PURE__ */
|
|
1267
|
-
/* @__PURE__ */
|
|
1294
|
+
outputs.length > 0 && /* @__PURE__ */ jsxs14("div", { children: [
|
|
1295
|
+
/* @__PURE__ */ jsx14("div", { className: "detail-section-label", children: "Output" }),
|
|
1296
|
+
/* @__PURE__ */ jsx14("div", { className: "detail-io-list", children: outputs.map((output, idx) => /* @__PURE__ */ jsxs14(
|
|
1268
1297
|
"div",
|
|
1269
1298
|
{
|
|
1270
1299
|
className: "detail-io-pill",
|
|
1271
1300
|
style: { cursor: output.concept && onConceptClick ? "pointer" : void 0 },
|
|
1272
1301
|
onClick: () => output.concept && (onConceptClick == null ? void 0 : onConceptClick(output.concept)),
|
|
1273
1302
|
children: [
|
|
1274
|
-
/* @__PURE__ */
|
|
1275
|
-
output.concept && /* @__PURE__ */
|
|
1303
|
+
/* @__PURE__ */ jsx14("span", { className: "detail-io-name", children: output.name }),
|
|
1304
|
+
output.concept && /* @__PURE__ */ jsx14("span", { className: "detail-io-concept", children: output.concept })
|
|
1276
1305
|
]
|
|
1277
1306
|
},
|
|
1278
1307
|
idx
|
|
1279
1308
|
)) })
|
|
1280
1309
|
] }),
|
|
1281
|
-
(inputs.length > 0 || outputs.length > 0) && /* @__PURE__ */
|
|
1310
|
+
(inputs.length > 0 || outputs.length > 0) && /* @__PURE__ */ jsx14("div", { style: { borderTop: "1px solid rgba(255,255,255,0.06)", margin: "4px 0" } })
|
|
1282
1311
|
] }),
|
|
1283
|
-
blueprint && /* @__PURE__ */
|
|
1284
|
-
node.execution_data && Object.keys(node.execution_data).length > 0 && /* @__PURE__ */
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1312
|
+
blueprint && /* @__PURE__ */ jsx14(BlueprintSection, { blueprint, executionData: node.execution_data }),
|
|
1313
|
+
node.execution_data && Object.keys(node.execution_data).length > 0 && /* @__PURE__ */ jsx14(
|
|
1314
|
+
ExecutionDataSection,
|
|
1315
|
+
{
|
|
1316
|
+
executionData: node.execution_data,
|
|
1317
|
+
pipeType,
|
|
1318
|
+
hasBlueprint: !!blueprint
|
|
1319
|
+
}
|
|
1320
|
+
),
|
|
1321
|
+
node.error && /* @__PURE__ */ jsxs14("div", { className: "detail-error", children: [
|
|
1322
|
+
/* @__PURE__ */ jsx14("div", { className: "detail-error-type", children: node.error.error_type }),
|
|
1323
|
+
/* @__PURE__ */ jsx14("div", { className: "detail-error-message", children: node.error.message }),
|
|
1324
|
+
node.error.stack && /* @__PURE__ */ jsx14("div", { className: "detail-error-stack", children: node.error.stack })
|
|
1289
1325
|
] }),
|
|
1290
|
-
node.metrics && Object.keys(node.metrics).length > 0 && /* @__PURE__ */
|
|
1291
|
-
/* @__PURE__ */
|
|
1292
|
-
Object.entries(node.metrics).map(([key, value]) => /* @__PURE__ */
|
|
1326
|
+
node.metrics && Object.keys(node.metrics).length > 0 && /* @__PURE__ */ jsxs14("div", { children: [
|
|
1327
|
+
/* @__PURE__ */ jsx14("div", { className: "detail-section-label", children: "Metrics" }),
|
|
1328
|
+
Object.entries(node.metrics).map(([key, value]) => /* @__PURE__ */ jsx14(
|
|
1293
1329
|
KV,
|
|
1294
1330
|
{
|
|
1295
1331
|
label: key,
|
|
@@ -1298,17 +1334,17 @@ function PipeDetailPanel({ node, spec, onConceptClick }) {
|
|
|
1298
1334
|
key
|
|
1299
1335
|
))
|
|
1300
1336
|
] }),
|
|
1301
|
-
node.tags && Object.keys(node.tags).length > 0 && /* @__PURE__ */
|
|
1302
|
-
/* @__PURE__ */
|
|
1303
|
-
/* @__PURE__ */
|
|
1304
|
-
/* @__PURE__ */
|
|
1337
|
+
node.tags && Object.keys(node.tags).length > 0 && /* @__PURE__ */ jsxs14("div", { children: [
|
|
1338
|
+
/* @__PURE__ */ jsx14("div", { className: "detail-section-label", children: "Tags" }),
|
|
1339
|
+
/* @__PURE__ */ jsx14("div", { className: "detail-tags", children: Object.entries(node.tags).map(([key, value]) => /* @__PURE__ */ jsxs14("span", { className: "detail-tag", children: [
|
|
1340
|
+
/* @__PURE__ */ jsxs14("span", { className: "detail-tag-key", children: [
|
|
1305
1341
|
key,
|
|
1306
1342
|
": "
|
|
1307
1343
|
] }),
|
|
1308
|
-
/* @__PURE__ */
|
|
1344
|
+
/* @__PURE__ */ jsx14("span", { className: "detail-tag-value", children: value })
|
|
1309
1345
|
] }, key)) })
|
|
1310
1346
|
] }),
|
|
1311
|
-
!blueprint && /* @__PURE__ */
|
|
1347
|
+
!blueprint && /* @__PURE__ */ jsx14("div", { className: "detail-not-available", children: "Blueprint not available" })
|
|
1312
1348
|
] });
|
|
1313
1349
|
}
|
|
1314
1350
|
function BlueprintSection({
|
|
@@ -1317,70 +1353,53 @@ function BlueprintSection({
|
|
|
1317
1353
|
}) {
|
|
1318
1354
|
switch (blueprint.type) {
|
|
1319
1355
|
case "PipeLLM":
|
|
1320
|
-
return /* @__PURE__ */
|
|
1356
|
+
return /* @__PURE__ */ jsx14(PipeLLMSection, { blueprint, executionData });
|
|
1321
1357
|
case "PipeImgGen":
|
|
1322
|
-
return /* @__PURE__ */
|
|
1358
|
+
return /* @__PURE__ */ jsx14(PipeImgGenSection, { blueprint, executionData });
|
|
1323
1359
|
case "PipeCompose":
|
|
1324
|
-
return /* @__PURE__ */
|
|
1360
|
+
return /* @__PURE__ */ jsx14(PipeComposeSection, { blueprint, executionData });
|
|
1325
1361
|
case "PipeExtract":
|
|
1326
|
-
return /* @__PURE__ */
|
|
1362
|
+
return /* @__PURE__ */ jsx14(PipeExtractSection, { blueprint, executionData });
|
|
1327
1363
|
case "PipeSearch":
|
|
1328
|
-
return /* @__PURE__ */
|
|
1364
|
+
return /* @__PURE__ */ jsx14(PipeSearchSection, { blueprint, executionData });
|
|
1365
|
+
case "PipeStructure":
|
|
1366
|
+
return /* @__PURE__ */ jsx14(PipeStructureSection, { blueprint, executionData });
|
|
1329
1367
|
case "PipeSequence":
|
|
1330
|
-
return /* @__PURE__ */
|
|
1368
|
+
return /* @__PURE__ */ jsx14(PipeSequenceSection, { blueprint, executionData });
|
|
1331
1369
|
case "PipeParallel":
|
|
1332
|
-
return /* @__PURE__ */
|
|
1370
|
+
return /* @__PURE__ */ jsx14(PipeParallelSection, { blueprint, executionData });
|
|
1333
1371
|
case "PipeCondition":
|
|
1334
|
-
return /* @__PURE__ */
|
|
1372
|
+
return /* @__PURE__ */ jsx14(PipeConditionSection, { blueprint, executionData });
|
|
1335
1373
|
case "PipeBatch":
|
|
1336
|
-
return /* @__PURE__ */
|
|
1374
|
+
return /* @__PURE__ */ jsx14(PipeBatchSection, { blueprint, executionData });
|
|
1337
1375
|
case "PipeFunc":
|
|
1338
1376
|
return null;
|
|
1339
1377
|
case "PipeSignature":
|
|
1340
|
-
return /* @__PURE__ */
|
|
1378
|
+
return /* @__PURE__ */ jsx14("div", { className: "detail-not-available", children: "Signature stub \u2014 declared but not yet implemented." });
|
|
1341
1379
|
default:
|
|
1342
1380
|
return null;
|
|
1343
1381
|
}
|
|
1344
1382
|
}
|
|
1345
1383
|
function ExecutionDataSection({
|
|
1346
1384
|
executionData,
|
|
1347
|
-
pipeType
|
|
1385
|
+
pipeType,
|
|
1386
|
+
hasBlueprint
|
|
1348
1387
|
}) {
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
return /* @__PURE__ */ jsx13(LLMExecutionData, { data: executionData });
|
|
1352
|
-
case "PipeImgGen":
|
|
1353
|
-
return /* @__PURE__ */ jsx13(ImgGenExecutionData, { data: executionData });
|
|
1354
|
-
case "PipeExtract":
|
|
1355
|
-
return /* @__PURE__ */ jsx13(ExtractExecutionData, { data: executionData });
|
|
1356
|
-
case "PipeSearch":
|
|
1357
|
-
return /* @__PURE__ */ jsx13(SearchExecutionData, { data: executionData });
|
|
1358
|
-
case "PipeCompose":
|
|
1359
|
-
return /* @__PURE__ */ jsx13(ComposeExecutionData, { data: executionData });
|
|
1360
|
-
case "PipeCondition":
|
|
1361
|
-
return /* @__PURE__ */ jsx13(ConditionExecutionData, { data: executionData });
|
|
1362
|
-
case "PipeSequence":
|
|
1363
|
-
return /* @__PURE__ */ jsx13(SequenceExecutionData, { data: executionData });
|
|
1364
|
-
case "PipeParallel":
|
|
1365
|
-
return /* @__PURE__ */ jsx13(ParallelExecutionData, { data: executionData });
|
|
1366
|
-
case "PipeBatch":
|
|
1367
|
-
return /* @__PURE__ */ jsx13(BatchExecutionData, { data: executionData });
|
|
1368
|
-
default:
|
|
1369
|
-
return /* @__PURE__ */ jsx13(GenericExecutionData, { data: executionData });
|
|
1370
|
-
}
|
|
1388
|
+
if (!shouldDumpExecutionData(pipeType, hasBlueprint)) return null;
|
|
1389
|
+
return /* @__PURE__ */ jsx14(GenericExecutionData, { data: executionData });
|
|
1371
1390
|
}
|
|
1372
1391
|
function GenericExecutionData({ data }) {
|
|
1373
1392
|
const entries = Object.entries(data);
|
|
1374
1393
|
if (entries.length === 0) return null;
|
|
1375
|
-
return /* @__PURE__ */
|
|
1376
|
-
/* @__PURE__ */
|
|
1377
|
-
entries.map(([key, value]) => /* @__PURE__ */
|
|
1394
|
+
return /* @__PURE__ */ jsxs14(Fragment10, { children: [
|
|
1395
|
+
/* @__PURE__ */ jsx14("div", { className: "detail-section-label", children: "Execution" }),
|
|
1396
|
+
entries.map(([key, value]) => /* @__PURE__ */ jsx14(KV, { label: key, value: String(value) }, key))
|
|
1378
1397
|
] });
|
|
1379
1398
|
}
|
|
1380
1399
|
|
|
1381
1400
|
// src/graph/react/detail/ConceptDetailPanel.tsx
|
|
1382
1401
|
import React7 from "react";
|
|
1383
|
-
import { Fragment as
|
|
1402
|
+
import { Fragment as Fragment11, jsx as jsx15, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1384
1403
|
function ConceptDetailPanel({
|
|
1385
1404
|
concept,
|
|
1386
1405
|
ioData,
|
|
@@ -1391,17 +1410,17 @@ function ConceptDetailPanel({
|
|
|
1391
1410
|
instanceKey
|
|
1392
1411
|
}) {
|
|
1393
1412
|
var _a;
|
|
1394
|
-
return /* @__PURE__ */
|
|
1395
|
-
/* @__PURE__ */
|
|
1396
|
-
/* @__PURE__ */
|
|
1397
|
-
/* @__PURE__ */
|
|
1413
|
+
return /* @__PURE__ */ jsxs15(Fragment11, { children: [
|
|
1414
|
+
/* @__PURE__ */ jsxs15("div", { className: "detail-header", children: [
|
|
1415
|
+
/* @__PURE__ */ jsx15("span", { className: "detail-concept-code", children: concept.code }),
|
|
1416
|
+
/* @__PURE__ */ jsx15("span", { className: "detail-concept-domain", children: concept.domain_code })
|
|
1398
1417
|
] }),
|
|
1399
|
-
concept.description && /* @__PURE__ */
|
|
1400
|
-
concept.refines && /* @__PURE__ */
|
|
1418
|
+
concept.description && /* @__PURE__ */ jsx15("div", { className: "detail-description", children: concept.description }),
|
|
1419
|
+
concept.refines && /* @__PURE__ */ jsxs15("div", { className: "detail-refines", children: [
|
|
1401
1420
|
"refines ",
|
|
1402
|
-
/* @__PURE__ */
|
|
1421
|
+
/* @__PURE__ */ jsx15("span", { className: "detail-refines-code", children: concept.refines })
|
|
1403
1422
|
] }),
|
|
1404
|
-
/* @__PURE__ */
|
|
1423
|
+
/* @__PURE__ */ jsx15(
|
|
1405
1424
|
ConceptBody,
|
|
1406
1425
|
{
|
|
1407
1426
|
concept,
|
|
@@ -1428,10 +1447,10 @@ function ConceptBody({
|
|
|
1428
1447
|
const baseId = React7.useId();
|
|
1429
1448
|
const tabId = (tab) => `${baseId}-tab-${tab}`;
|
|
1430
1449
|
const panelId = (tab) => `${baseId}-tabpanel-${tab}`;
|
|
1431
|
-
const structure = concept.json_schema ? /* @__PURE__ */
|
|
1432
|
-
/* @__PURE__ */
|
|
1433
|
-
/* @__PURE__ */
|
|
1434
|
-
] }) : /* @__PURE__ */
|
|
1450
|
+
const structure = concept.json_schema ? /* @__PURE__ */ jsxs15("div", { children: [
|
|
1451
|
+
/* @__PURE__ */ jsx15("div", { className: "detail-section-label", children: "Structure" }),
|
|
1452
|
+
/* @__PURE__ */ jsx15(SchemaTable, { schema: concept.json_schema, isDryRun })
|
|
1453
|
+
] }) : /* @__PURE__ */ jsx15("div", { className: "detail-not-available", children: "Schema not available" });
|
|
1435
1454
|
if (!hasData) return structure;
|
|
1436
1455
|
const onTabKeyDown = (event) => {
|
|
1437
1456
|
var _a;
|
|
@@ -1454,7 +1473,7 @@ function ConceptBody({
|
|
|
1454
1473
|
setActiveTab(next);
|
|
1455
1474
|
(_a = document.getElementById(tabId(next))) == null ? void 0 : _a.focus();
|
|
1456
1475
|
};
|
|
1457
|
-
const renderTab = (tab, label) => /* @__PURE__ */
|
|
1476
|
+
const renderTab = (tab, label) => /* @__PURE__ */ jsx15(
|
|
1458
1477
|
"button",
|
|
1459
1478
|
{
|
|
1460
1479
|
type: "button",
|
|
@@ -1469,12 +1488,12 @@ function ConceptBody({
|
|
|
1469
1488
|
children: label
|
|
1470
1489
|
}
|
|
1471
1490
|
);
|
|
1472
|
-
return /* @__PURE__ */
|
|
1473
|
-
/* @__PURE__ */
|
|
1491
|
+
return /* @__PURE__ */ jsxs15(Fragment11, { children: [
|
|
1492
|
+
/* @__PURE__ */ jsxs15("div", { className: "detail-tabs", role: "tablist", "aria-label": "Concept views", children: [
|
|
1474
1493
|
renderTab("data", "Data"),
|
|
1475
1494
|
renderTab("structure", "Structure")
|
|
1476
1495
|
] }),
|
|
1477
|
-
/* @__PURE__ */
|
|
1496
|
+
/* @__PURE__ */ jsx15("div", { role: "tabpanel", id: panelId(activeTab), "aria-labelledby": tabId(activeTab), children: activeTab === "data" ? /* @__PURE__ */ jsx15(
|
|
1478
1497
|
StuffViewer,
|
|
1479
1498
|
{
|
|
1480
1499
|
stuff: toStuffViewerData(ioData),
|
|
@@ -1493,24 +1512,24 @@ function SchemaTable({
|
|
|
1493
1512
|
const properties = schema.properties;
|
|
1494
1513
|
const required = new Set((_a = schema.required) != null ? _a : []);
|
|
1495
1514
|
if (!properties || Object.keys(properties).length === 0) {
|
|
1496
|
-
return /* @__PURE__ */
|
|
1515
|
+
return /* @__PURE__ */ jsx15("div", { className: "detail-not-available", children: "No fields defined" });
|
|
1497
1516
|
}
|
|
1498
1517
|
const fields = Object.entries(properties);
|
|
1499
1518
|
const visibleFields = isDryRun ? fields.filter(([name]) => required.has(name)) : fields;
|
|
1500
|
-
return /* @__PURE__ */
|
|
1501
|
-
/* @__PURE__ */
|
|
1502
|
-
/* @__PURE__ */
|
|
1503
|
-
/* @__PURE__ */
|
|
1504
|
-
/* @__PURE__ */
|
|
1505
|
-
/* @__PURE__ */
|
|
1519
|
+
return /* @__PURE__ */ jsxs15("table", { className: "detail-schema-table", children: [
|
|
1520
|
+
/* @__PURE__ */ jsx15("thead", { children: /* @__PURE__ */ jsxs15("tr", { children: [
|
|
1521
|
+
/* @__PURE__ */ jsx15("th", { children: "Field" }),
|
|
1522
|
+
/* @__PURE__ */ jsx15("th", { children: "Type" }),
|
|
1523
|
+
/* @__PURE__ */ jsx15("th", {}),
|
|
1524
|
+
/* @__PURE__ */ jsx15("th", { children: "Description" })
|
|
1506
1525
|
] }) }),
|
|
1507
|
-
/* @__PURE__ */
|
|
1526
|
+
/* @__PURE__ */ jsx15("tbody", { children: visibleFields.map(([fieldName, fieldSchema]) => {
|
|
1508
1527
|
var _a2;
|
|
1509
|
-
return /* @__PURE__ */
|
|
1510
|
-
/* @__PURE__ */
|
|
1511
|
-
/* @__PURE__ */
|
|
1512
|
-
/* @__PURE__ */
|
|
1513
|
-
/* @__PURE__ */
|
|
1528
|
+
return /* @__PURE__ */ jsxs15("tr", { children: [
|
|
1529
|
+
/* @__PURE__ */ jsx15("td", { className: "detail-schema-field", children: fieldName }),
|
|
1530
|
+
/* @__PURE__ */ jsx15("td", { className: "detail-schema-type", children: extractType(fieldSchema) }),
|
|
1531
|
+
/* @__PURE__ */ jsx15("td", { children: required.has(fieldName) && /* @__PURE__ */ jsx15("span", { className: "detail-schema-required", children: "req" }) }),
|
|
1532
|
+
/* @__PURE__ */ jsx15("td", { children: (_a2 = fieldSchema.description) != null ? _a2 : "" })
|
|
1514
1533
|
] }, fieldName);
|
|
1515
1534
|
}) })
|
|
1516
1535
|
] });
|
|
@@ -1577,10 +1596,10 @@ function toAppEdges(edges) {
|
|
|
1577
1596
|
}
|
|
1578
1597
|
|
|
1579
1598
|
// src/graph/react/viewer/renderLabel.tsx
|
|
1580
|
-
import { jsx as
|
|
1599
|
+
import { jsx as jsx16, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1581
1600
|
function renderLabel(desc) {
|
|
1582
1601
|
if (desc.kind === "pipe") {
|
|
1583
|
-
return /* @__PURE__ */
|
|
1602
|
+
return /* @__PURE__ */ jsx16(
|
|
1584
1603
|
"div",
|
|
1585
1604
|
{
|
|
1586
1605
|
style: {
|
|
@@ -1594,7 +1613,7 @@ function renderLabel(desc) {
|
|
|
1594
1613
|
minWidth: 0
|
|
1595
1614
|
},
|
|
1596
1615
|
title: desc.label,
|
|
1597
|
-
children: /* @__PURE__ */
|
|
1616
|
+
children: /* @__PURE__ */ jsx16(
|
|
1598
1617
|
"span",
|
|
1599
1618
|
{
|
|
1600
1619
|
style: {
|
|
@@ -1613,7 +1632,7 @@ function renderLabel(desc) {
|
|
|
1613
1632
|
}
|
|
1614
1633
|
);
|
|
1615
1634
|
}
|
|
1616
|
-
return /* @__PURE__ */
|
|
1635
|
+
return /* @__PURE__ */ jsxs16(
|
|
1617
1636
|
"div",
|
|
1618
1637
|
{
|
|
1619
1638
|
style: {
|
|
@@ -1629,7 +1648,7 @@ function renderLabel(desc) {
|
|
|
1629
1648
|
},
|
|
1630
1649
|
title: desc.concept ? `${desc.label}: ${desc.concept}` : desc.label,
|
|
1631
1650
|
children: [
|
|
1632
|
-
/* @__PURE__ */
|
|
1651
|
+
/* @__PURE__ */ jsx16(
|
|
1633
1652
|
"span",
|
|
1634
1653
|
{
|
|
1635
1654
|
style: {
|
|
@@ -1645,7 +1664,7 @@ function renderLabel(desc) {
|
|
|
1645
1664
|
children: desc.label
|
|
1646
1665
|
}
|
|
1647
1666
|
),
|
|
1648
|
-
desc.concept && /* @__PURE__ */
|
|
1667
|
+
desc.concept && /* @__PURE__ */ jsx16(
|
|
1649
1668
|
"span",
|
|
1650
1669
|
{
|
|
1651
1670
|
style: {
|
|
@@ -1676,9 +1695,9 @@ function hydrateLabels(nodes) {
|
|
|
1676
1695
|
|
|
1677
1696
|
// src/graph/react/viewer/GraphToolbar.tsx
|
|
1678
1697
|
import { Panel } from "@xyflow/react";
|
|
1679
|
-
import { Fragment as
|
|
1698
|
+
import { Fragment as Fragment12, jsx as jsx17, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1680
1699
|
var REACTFLOW_PANEL_MARGIN = 15;
|
|
1681
|
-
var ARROW_RIGHT_ICON = /* @__PURE__ */
|
|
1700
|
+
var ARROW_RIGHT_ICON = /* @__PURE__ */ jsxs17(
|
|
1682
1701
|
"svg",
|
|
1683
1702
|
{
|
|
1684
1703
|
viewBox: "0 0 24 24",
|
|
@@ -1690,12 +1709,12 @@ var ARROW_RIGHT_ICON = /* @__PURE__ */ jsxs16(
|
|
|
1690
1709
|
strokeLinecap: "round",
|
|
1691
1710
|
strokeLinejoin: "round",
|
|
1692
1711
|
children: [
|
|
1693
|
-
/* @__PURE__ */
|
|
1694
|
-
/* @__PURE__ */
|
|
1712
|
+
/* @__PURE__ */ jsx17("line", { x1: "5", y1: "12", x2: "19", y2: "12" }),
|
|
1713
|
+
/* @__PURE__ */ jsx17("polyline", { points: "12 5 19 12 12 19" })
|
|
1695
1714
|
]
|
|
1696
1715
|
}
|
|
1697
1716
|
);
|
|
1698
|
-
var ARROW_DOWN_ICON = /* @__PURE__ */
|
|
1717
|
+
var ARROW_DOWN_ICON = /* @__PURE__ */ jsxs17(
|
|
1699
1718
|
"svg",
|
|
1700
1719
|
{
|
|
1701
1720
|
viewBox: "0 0 24 24",
|
|
@@ -1707,12 +1726,12 @@ var ARROW_DOWN_ICON = /* @__PURE__ */ jsxs16(
|
|
|
1707
1726
|
strokeLinecap: "round",
|
|
1708
1727
|
strokeLinejoin: "round",
|
|
1709
1728
|
children: [
|
|
1710
|
-
/* @__PURE__ */
|
|
1711
|
-
/* @__PURE__ */
|
|
1729
|
+
/* @__PURE__ */ jsx17("line", { x1: "12", y1: "5", x2: "12", y2: "19" }),
|
|
1730
|
+
/* @__PURE__ */ jsx17("polyline", { points: "19 12 12 19 5 12" })
|
|
1712
1731
|
]
|
|
1713
1732
|
}
|
|
1714
1733
|
);
|
|
1715
|
-
var MINUS_ICON = /* @__PURE__ */
|
|
1734
|
+
var MINUS_ICON = /* @__PURE__ */ jsx17(
|
|
1716
1735
|
"svg",
|
|
1717
1736
|
{
|
|
1718
1737
|
viewBox: "0 0 24 24",
|
|
@@ -1723,10 +1742,10 @@ var MINUS_ICON = /* @__PURE__ */ jsx16(
|
|
|
1723
1742
|
strokeWidth: "2",
|
|
1724
1743
|
strokeLinecap: "round",
|
|
1725
1744
|
strokeLinejoin: "round",
|
|
1726
|
-
children: /* @__PURE__ */
|
|
1745
|
+
children: /* @__PURE__ */ jsx17("line", { x1: "5", y1: "12", x2: "19", y2: "12" })
|
|
1727
1746
|
}
|
|
1728
1747
|
);
|
|
1729
|
-
var PLUS_ICON = /* @__PURE__ */
|
|
1748
|
+
var PLUS_ICON = /* @__PURE__ */ jsxs17(
|
|
1730
1749
|
"svg",
|
|
1731
1750
|
{
|
|
1732
1751
|
viewBox: "0 0 24 24",
|
|
@@ -1738,12 +1757,12 @@ var PLUS_ICON = /* @__PURE__ */ jsxs16(
|
|
|
1738
1757
|
strokeLinecap: "round",
|
|
1739
1758
|
strokeLinejoin: "round",
|
|
1740
1759
|
children: [
|
|
1741
|
-
/* @__PURE__ */
|
|
1742
|
-
/* @__PURE__ */
|
|
1760
|
+
/* @__PURE__ */ jsx17("line", { x1: "12", y1: "5", x2: "12", y2: "19" }),
|
|
1761
|
+
/* @__PURE__ */ jsx17("line", { x1: "5", y1: "12", x2: "19", y2: "12" })
|
|
1743
1762
|
]
|
|
1744
1763
|
}
|
|
1745
1764
|
);
|
|
1746
|
-
var FIT_VIEW_ICON = /* @__PURE__ */
|
|
1765
|
+
var FIT_VIEW_ICON = /* @__PURE__ */ jsxs17(
|
|
1747
1766
|
"svg",
|
|
1748
1767
|
{
|
|
1749
1768
|
viewBox: "0 0 24 24",
|
|
@@ -1755,14 +1774,14 @@ var FIT_VIEW_ICON = /* @__PURE__ */ jsxs16(
|
|
|
1755
1774
|
strokeLinecap: "round",
|
|
1756
1775
|
strokeLinejoin: "round",
|
|
1757
1776
|
children: [
|
|
1758
|
-
/* @__PURE__ */
|
|
1759
|
-
/* @__PURE__ */
|
|
1760
|
-
/* @__PURE__ */
|
|
1761
|
-
/* @__PURE__ */
|
|
1777
|
+
/* @__PURE__ */ jsx17("polyline", { points: "15 3 21 3 21 9" }),
|
|
1778
|
+
/* @__PURE__ */ jsx17("polyline", { points: "9 21 3 21 3 15" }),
|
|
1779
|
+
/* @__PURE__ */ jsx17("line", { x1: "21", y1: "3", x2: "14", y2: "10" }),
|
|
1780
|
+
/* @__PURE__ */ jsx17("line", { x1: "3", y1: "21", x2: "10", y2: "14" })
|
|
1762
1781
|
]
|
|
1763
1782
|
}
|
|
1764
1783
|
);
|
|
1765
|
-
var BOXES_ICON = /* @__PURE__ */
|
|
1784
|
+
var BOXES_ICON = /* @__PURE__ */ jsxs17(
|
|
1766
1785
|
"svg",
|
|
1767
1786
|
{
|
|
1768
1787
|
viewBox: "0 0 24 24",
|
|
@@ -1774,22 +1793,22 @@ var BOXES_ICON = /* @__PURE__ */ jsxs16(
|
|
|
1774
1793
|
strokeLinecap: "round",
|
|
1775
1794
|
strokeLinejoin: "round",
|
|
1776
1795
|
children: [
|
|
1777
|
-
/* @__PURE__ */
|
|
1778
|
-
/* @__PURE__ */
|
|
1779
|
-
/* @__PURE__ */
|
|
1780
|
-
/* @__PURE__ */
|
|
1781
|
-
/* @__PURE__ */
|
|
1782
|
-
/* @__PURE__ */
|
|
1783
|
-
/* @__PURE__ */
|
|
1784
|
-
/* @__PURE__ */
|
|
1785
|
-
/* @__PURE__ */
|
|
1786
|
-
/* @__PURE__ */
|
|
1787
|
-
/* @__PURE__ */
|
|
1788
|
-
/* @__PURE__ */
|
|
1796
|
+
/* @__PURE__ */ jsx17("path", { d: "M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z" }),
|
|
1797
|
+
/* @__PURE__ */ jsx17("path", { d: "m7 16.5-4.74-2.85" }),
|
|
1798
|
+
/* @__PURE__ */ jsx17("path", { d: "m7 16.5 5-3" }),
|
|
1799
|
+
/* @__PURE__ */ jsx17("path", { d: "M7 16.5v5.17" }),
|
|
1800
|
+
/* @__PURE__ */ jsx17("path", { d: "M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z" }),
|
|
1801
|
+
/* @__PURE__ */ jsx17("path", { d: "m17 16.5-5-3" }),
|
|
1802
|
+
/* @__PURE__ */ jsx17("path", { d: "m17 16.5 4.74-2.85" }),
|
|
1803
|
+
/* @__PURE__ */ jsx17("path", { d: "M17 16.5v5.17" }),
|
|
1804
|
+
/* @__PURE__ */ jsx17("path", { d: "M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z" }),
|
|
1805
|
+
/* @__PURE__ */ jsx17("path", { d: "M12 8 7.26 5.15" }),
|
|
1806
|
+
/* @__PURE__ */ jsx17("path", { d: "m12 8 4.74-2.85" }),
|
|
1807
|
+
/* @__PURE__ */ jsx17("path", { d: "M12 13.5V8" })
|
|
1789
1808
|
]
|
|
1790
1809
|
}
|
|
1791
1810
|
);
|
|
1792
|
-
var FOLD_ALL_ICON = /* @__PURE__ */
|
|
1811
|
+
var FOLD_ALL_ICON = /* @__PURE__ */ jsxs17(
|
|
1793
1812
|
"svg",
|
|
1794
1813
|
{
|
|
1795
1814
|
viewBox: "0 0 24 24",
|
|
@@ -1801,15 +1820,15 @@ var FOLD_ALL_ICON = /* @__PURE__ */ jsxs16(
|
|
|
1801
1820
|
strokeLinecap: "round",
|
|
1802
1821
|
strokeLinejoin: "round",
|
|
1803
1822
|
children: [
|
|
1804
|
-
/* @__PURE__ */
|
|
1805
|
-
/* @__PURE__ */
|
|
1806
|
-
/* @__PURE__ */
|
|
1807
|
-
/* @__PURE__ */
|
|
1808
|
-
/* @__PURE__ */
|
|
1823
|
+
/* @__PURE__ */ jsx17("rect", { x: "6", y: "6", width: "12", height: "12", rx: "2" }),
|
|
1824
|
+
/* @__PURE__ */ jsx17("polyline", { points: "2 2 6 6 2 6" }),
|
|
1825
|
+
/* @__PURE__ */ jsx17("polyline", { points: "22 2 18 6 22 6" }),
|
|
1826
|
+
/* @__PURE__ */ jsx17("polyline", { points: "2 22 6 18 2 18" }),
|
|
1827
|
+
/* @__PURE__ */ jsx17("polyline", { points: "22 22 18 18 22 18" })
|
|
1809
1828
|
]
|
|
1810
1829
|
}
|
|
1811
1830
|
);
|
|
1812
|
-
var EXPAND_ALL_ICON = /* @__PURE__ */
|
|
1831
|
+
var EXPAND_ALL_ICON = /* @__PURE__ */ jsxs17(
|
|
1813
1832
|
"svg",
|
|
1814
1833
|
{
|
|
1815
1834
|
viewBox: "0 0 24 24",
|
|
@@ -1821,15 +1840,15 @@ var EXPAND_ALL_ICON = /* @__PURE__ */ jsxs16(
|
|
|
1821
1840
|
strokeLinecap: "round",
|
|
1822
1841
|
strokeLinejoin: "round",
|
|
1823
1842
|
children: [
|
|
1824
|
-
/* @__PURE__ */
|
|
1825
|
-
/* @__PURE__ */
|
|
1826
|
-
/* @__PURE__ */
|
|
1827
|
-
/* @__PURE__ */
|
|
1828
|
-
/* @__PURE__ */
|
|
1843
|
+
/* @__PURE__ */ jsx17("rect", { x: "9", y: "9", width: "6", height: "6", rx: "1" }),
|
|
1844
|
+
/* @__PURE__ */ jsx17("polyline", { points: "3 3 7 7 3 7" }),
|
|
1845
|
+
/* @__PURE__ */ jsx17("polyline", { points: "21 3 17 7 21 7" }),
|
|
1846
|
+
/* @__PURE__ */ jsx17("polyline", { points: "3 21 7 17 3 17" }),
|
|
1847
|
+
/* @__PURE__ */ jsx17("polyline", { points: "21 21 17 17 21 17" })
|
|
1829
1848
|
]
|
|
1830
1849
|
}
|
|
1831
1850
|
);
|
|
1832
|
-
var SUN_ICON = /* @__PURE__ */
|
|
1851
|
+
var SUN_ICON = /* @__PURE__ */ jsxs17(
|
|
1833
1852
|
"svg",
|
|
1834
1853
|
{
|
|
1835
1854
|
viewBox: "0 0 24 24",
|
|
@@ -1841,19 +1860,19 @@ var SUN_ICON = /* @__PURE__ */ jsxs16(
|
|
|
1841
1860
|
strokeLinecap: "round",
|
|
1842
1861
|
strokeLinejoin: "round",
|
|
1843
1862
|
children: [
|
|
1844
|
-
/* @__PURE__ */
|
|
1845
|
-
/* @__PURE__ */
|
|
1846
|
-
/* @__PURE__ */
|
|
1847
|
-
/* @__PURE__ */
|
|
1848
|
-
/* @__PURE__ */
|
|
1849
|
-
/* @__PURE__ */
|
|
1850
|
-
/* @__PURE__ */
|
|
1851
|
-
/* @__PURE__ */
|
|
1852
|
-
/* @__PURE__ */
|
|
1863
|
+
/* @__PURE__ */ jsx17("circle", { cx: "12", cy: "12", r: "4" }),
|
|
1864
|
+
/* @__PURE__ */ jsx17("line", { x1: "12", y1: "2", x2: "12", y2: "4" }),
|
|
1865
|
+
/* @__PURE__ */ jsx17("line", { x1: "12", y1: "20", x2: "12", y2: "22" }),
|
|
1866
|
+
/* @__PURE__ */ jsx17("line", { x1: "4.93", y1: "4.93", x2: "6.34", y2: "6.34" }),
|
|
1867
|
+
/* @__PURE__ */ jsx17("line", { x1: "17.66", y1: "17.66", x2: "19.07", y2: "19.07" }),
|
|
1868
|
+
/* @__PURE__ */ jsx17("line", { x1: "2", y1: "12", x2: "4", y2: "12" }),
|
|
1869
|
+
/* @__PURE__ */ jsx17("line", { x1: "20", y1: "12", x2: "22", y2: "12" }),
|
|
1870
|
+
/* @__PURE__ */ jsx17("line", { x1: "4.93", y1: "19.07", x2: "6.34", y2: "17.66" }),
|
|
1871
|
+
/* @__PURE__ */ jsx17("line", { x1: "17.66", y1: "6.34", x2: "19.07", y2: "4.93" })
|
|
1853
1872
|
]
|
|
1854
1873
|
}
|
|
1855
1874
|
);
|
|
1856
|
-
var MOON_ICON = /* @__PURE__ */
|
|
1875
|
+
var MOON_ICON = /* @__PURE__ */ jsx17(
|
|
1857
1876
|
"svg",
|
|
1858
1877
|
{
|
|
1859
1878
|
viewBox: "0 0 24 24",
|
|
@@ -1864,10 +1883,10 @@ var MOON_ICON = /* @__PURE__ */ jsx16(
|
|
|
1864
1883
|
strokeWidth: "2",
|
|
1865
1884
|
strokeLinecap: "round",
|
|
1866
1885
|
strokeLinejoin: "round",
|
|
1867
|
-
children: /* @__PURE__ */
|
|
1886
|
+
children: /* @__PURE__ */ jsx17("path", { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" })
|
|
1868
1887
|
}
|
|
1869
1888
|
);
|
|
1870
|
-
var MONITOR_ICON = /* @__PURE__ */
|
|
1889
|
+
var MONITOR_ICON = /* @__PURE__ */ jsxs17(
|
|
1871
1890
|
"svg",
|
|
1872
1891
|
{
|
|
1873
1892
|
viewBox: "0 0 24 24",
|
|
@@ -1879,9 +1898,9 @@ var MONITOR_ICON = /* @__PURE__ */ jsxs16(
|
|
|
1879
1898
|
strokeLinecap: "round",
|
|
1880
1899
|
strokeLinejoin: "round",
|
|
1881
1900
|
children: [
|
|
1882
|
-
/* @__PURE__ */
|
|
1883
|
-
/* @__PURE__ */
|
|
1884
|
-
/* @__PURE__ */
|
|
1901
|
+
/* @__PURE__ */ jsx17("rect", { x: "2", y: "3", width: "20", height: "14", rx: "2" }),
|
|
1902
|
+
/* @__PURE__ */ jsx17("line", { x1: "8", y1: "21", x2: "16", y2: "21" }),
|
|
1903
|
+
/* @__PURE__ */ jsx17("line", { x1: "12", y1: "17", x2: "12", y2: "21" })
|
|
1885
1904
|
]
|
|
1886
1905
|
}
|
|
1887
1906
|
);
|
|
@@ -1935,8 +1954,8 @@ function GraphToolbar({
|
|
|
1935
1954
|
const foldAllSection = onFoldAll || onExpandAll;
|
|
1936
1955
|
const foldAllTitle = foldAllDisabled ? "Fold all controllers (nothing to fold)" : "Fold all controllers";
|
|
1937
1956
|
const expandAllTitle = expandAllDisabled ? "Expand all controllers (nothing to expand)" : "Expand all controllers";
|
|
1938
|
-
return /* @__PURE__ */
|
|
1939
|
-
onFoldAll && /* @__PURE__ */
|
|
1957
|
+
return /* @__PURE__ */ jsx17(Panel, { position, className: "graph-toolbar-panel", style: panelStyle, children: /* @__PURE__ */ jsxs17("div", { className: `graph-toolbar graph-toolbar--${orientation}`, children: [
|
|
1958
|
+
onFoldAll && /* @__PURE__ */ jsx17(
|
|
1940
1959
|
"button",
|
|
1941
1960
|
{
|
|
1942
1961
|
type: "button",
|
|
@@ -1948,7 +1967,7 @@ function GraphToolbar({
|
|
|
1948
1967
|
children: FOLD_ALL_ICON
|
|
1949
1968
|
}
|
|
1950
1969
|
),
|
|
1951
|
-
onExpandAll && /* @__PURE__ */
|
|
1970
|
+
onExpandAll && /* @__PURE__ */ jsx17(
|
|
1952
1971
|
"button",
|
|
1953
1972
|
{
|
|
1954
1973
|
type: "button",
|
|
@@ -1960,8 +1979,8 @@ function GraphToolbar({
|
|
|
1960
1979
|
children: EXPAND_ALL_ICON
|
|
1961
1980
|
}
|
|
1962
1981
|
),
|
|
1963
|
-
foldAllSection && /* @__PURE__ */
|
|
1964
|
-
/* @__PURE__ */
|
|
1982
|
+
foldAllSection && /* @__PURE__ */ jsx17("div", { className: "graph-toolbar-separator" }),
|
|
1983
|
+
/* @__PURE__ */ jsx17(
|
|
1965
1984
|
"button",
|
|
1966
1985
|
{
|
|
1967
1986
|
type: "button",
|
|
@@ -1972,7 +1991,7 @@ function GraphToolbar({
|
|
|
1972
1991
|
children: BOXES_ICON
|
|
1973
1992
|
}
|
|
1974
1993
|
),
|
|
1975
|
-
/* @__PURE__ */
|
|
1994
|
+
/* @__PURE__ */ jsx17(
|
|
1976
1995
|
"button",
|
|
1977
1996
|
{
|
|
1978
1997
|
type: "button",
|
|
@@ -1983,8 +2002,8 @@ function GraphToolbar({
|
|
|
1983
2002
|
children: isVertical ? ARROW_RIGHT_ICON : ARROW_DOWN_ICON
|
|
1984
2003
|
}
|
|
1985
2004
|
),
|
|
1986
|
-
(onZoomOut || onZoomIn || onFitView) && /* @__PURE__ */
|
|
1987
|
-
onZoomOut && /* @__PURE__ */
|
|
2005
|
+
(onZoomOut || onZoomIn || onFitView) && /* @__PURE__ */ jsx17("div", { className: "graph-toolbar-separator" }),
|
|
2006
|
+
onZoomOut && /* @__PURE__ */ jsx17(
|
|
1988
2007
|
"button",
|
|
1989
2008
|
{
|
|
1990
2009
|
type: "button",
|
|
@@ -1995,7 +2014,7 @@ function GraphToolbar({
|
|
|
1995
2014
|
children: MINUS_ICON
|
|
1996
2015
|
}
|
|
1997
2016
|
),
|
|
1998
|
-
onZoomIn && /* @__PURE__ */
|
|
2017
|
+
onZoomIn && /* @__PURE__ */ jsx17(
|
|
1999
2018
|
"button",
|
|
2000
2019
|
{
|
|
2001
2020
|
type: "button",
|
|
@@ -2006,7 +2025,7 @@ function GraphToolbar({
|
|
|
2006
2025
|
children: PLUS_ICON
|
|
2007
2026
|
}
|
|
2008
2027
|
),
|
|
2009
|
-
onFitView && /* @__PURE__ */
|
|
2028
|
+
onFitView && /* @__PURE__ */ jsx17(
|
|
2010
2029
|
"button",
|
|
2011
2030
|
{
|
|
2012
2031
|
type: "button",
|
|
@@ -2017,9 +2036,9 @@ function GraphToolbar({
|
|
|
2017
2036
|
children: FIT_VIEW_ICON
|
|
2018
2037
|
}
|
|
2019
2038
|
),
|
|
2020
|
-
themeToggleEnabled && /* @__PURE__ */
|
|
2021
|
-
/* @__PURE__ */
|
|
2022
|
-
/* @__PURE__ */
|
|
2039
|
+
themeToggleEnabled && /* @__PURE__ */ jsxs17(Fragment12, { children: [
|
|
2040
|
+
/* @__PURE__ */ jsx17("div", { className: "graph-toolbar-separator" }),
|
|
2041
|
+
/* @__PURE__ */ jsx17(
|
|
2023
2042
|
"button",
|
|
2024
2043
|
{
|
|
2025
2044
|
type: "button",
|
|
@@ -2035,7 +2054,7 @@ function GraphToolbar({
|
|
|
2035
2054
|
}
|
|
2036
2055
|
|
|
2037
2056
|
// src/graph/react/nodes/controller/ControllerGroupNode.tsx
|
|
2038
|
-
import { jsx as
|
|
2057
|
+
import { jsx as jsx18, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2039
2058
|
var CONTROLLER_CONFIG = {
|
|
2040
2059
|
PipeSequence: { badge: "Sequence", icon: "\u2192" },
|
|
2041
2060
|
PipeParallel: { badge: "Parallel", icon: "//" },
|
|
@@ -2057,12 +2076,12 @@ function ControllerGroupNode({ data }) {
|
|
|
2057
2076
|
const modifier = getControllerModifier(data.pipeType);
|
|
2058
2077
|
const isCollapsible = (data.pipeType === "PipeParallel" || data.pipeType === "PipeBatch") && ((_a = data.childCount) != null ? _a : 0) > MAX_VISIBLE_CONTROLLER_CHILDREN;
|
|
2059
2078
|
const hiddenCount = isCollapsible ? ((_b = data.childCount) != null ? _b : 0) - MAX_VISIBLE_CONTROLLER_CHILDREN : 0;
|
|
2060
|
-
return /* @__PURE__ */
|
|
2061
|
-
/* @__PURE__ */
|
|
2062
|
-
/* @__PURE__ */
|
|
2063
|
-
/* @__PURE__ */
|
|
2064
|
-
data.label && /* @__PURE__ */
|
|
2065
|
-
data.onToggleFold && /* @__PURE__ */
|
|
2079
|
+
return /* @__PURE__ */ jsxs18("div", { className: `controller-group-node ${modifier}`, children: [
|
|
2080
|
+
/* @__PURE__ */ jsxs18("div", { className: "controller-group-header", children: [
|
|
2081
|
+
/* @__PURE__ */ jsx18("span", { className: "controller-group-icon", children: config.icon }),
|
|
2082
|
+
/* @__PURE__ */ jsx18("span", { className: "controller-group-badge", children: config.badge }),
|
|
2083
|
+
data.label && /* @__PURE__ */ jsx18("span", { className: "controller-group-label", children: data.label }),
|
|
2084
|
+
data.onToggleFold && /* @__PURE__ */ jsx18(
|
|
2066
2085
|
"button",
|
|
2067
2086
|
{
|
|
2068
2087
|
type: "button",
|
|
@@ -2078,7 +2097,7 @@ function ControllerGroupNode({ data }) {
|
|
|
2078
2097
|
}
|
|
2079
2098
|
)
|
|
2080
2099
|
] }),
|
|
2081
|
-
isCollapsible && /* @__PURE__ */
|
|
2100
|
+
isCollapsible && /* @__PURE__ */ jsx18(
|
|
2082
2101
|
"button",
|
|
2083
2102
|
{
|
|
2084
2103
|
className: "controller-group-collapse",
|
|
@@ -2099,7 +2118,7 @@ import { Handle, Position } from "@xyflow/react";
|
|
|
2099
2118
|
|
|
2100
2119
|
// src/graph/react/nodes/pipe/PipeCardBase.tsx
|
|
2101
2120
|
import { useState as useState2 } from "react";
|
|
2102
|
-
import { jsx as
|
|
2121
|
+
import { jsx as jsx19, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
2103
2122
|
var PIPE_TYPE_BADGES2 = {
|
|
2104
2123
|
PipeLLM: "LLM",
|
|
2105
2124
|
PipeExtract: "Extract",
|
|
@@ -2107,6 +2126,7 @@ var PIPE_TYPE_BADGES2 = {
|
|
|
2107
2126
|
PipeImgGen: "ImgGen",
|
|
2108
2127
|
PipeSearch: "Search",
|
|
2109
2128
|
PipeFunc: "Func",
|
|
2129
|
+
PipeStructure: "Structure",
|
|
2110
2130
|
PipeSignature: "Signature",
|
|
2111
2131
|
PipeSequence: "Sequence",
|
|
2112
2132
|
PipeParallel: "Parallel",
|
|
@@ -2148,17 +2168,17 @@ function PipeCardBase({ data, children }) {
|
|
|
2148
2168
|
const controllerClass = isController ? " pipe-card--controller" : "";
|
|
2149
2169
|
const signatureClass = isSignature ? " pipe-card--signature" : "";
|
|
2150
2170
|
const badgeClass = isController ? "pipe-card-badge pipe-card-badge--controller" : isSignature ? "pipe-card-badge pipe-card-badge--signature" : "pipe-card-badge";
|
|
2151
|
-
return /* @__PURE__ */
|
|
2152
|
-
/* @__PURE__ */
|
|
2153
|
-
/* @__PURE__ */
|
|
2154
|
-
/* @__PURE__ */
|
|
2155
|
-
/* @__PURE__ */
|
|
2171
|
+
return /* @__PURE__ */ jsxs19("div", { className: `pipe-card ${dirClass}${controllerClass}${signatureClass}`, children: [
|
|
2172
|
+
/* @__PURE__ */ jsxs19("div", { className: "pipe-card-header", children: [
|
|
2173
|
+
/* @__PURE__ */ jsx19("span", { className: badgeClass, children: badge }),
|
|
2174
|
+
/* @__PURE__ */ jsx19("span", { className: "pipe-card-code", title: data.pipeCode, children: data.pipeCode }),
|
|
2175
|
+
/* @__PURE__ */ jsx19(
|
|
2156
2176
|
"span",
|
|
2157
2177
|
{
|
|
2158
2178
|
className: "pipe-card-status",
|
|
2159
2179
|
style: { color: statusConfig.color },
|
|
2160
2180
|
title: statusConfig.label,
|
|
2161
|
-
children: /* @__PURE__ */
|
|
2181
|
+
children: /* @__PURE__ */ jsx19(
|
|
2162
2182
|
"span",
|
|
2163
2183
|
{
|
|
2164
2184
|
className: `pipe-card-status-dot ${isRunning ? "pipe-card-status-dot--pulse" : ""}`,
|
|
@@ -2167,7 +2187,7 @@ function PipeCardBase({ data, children }) {
|
|
|
2167
2187
|
)
|
|
2168
2188
|
}
|
|
2169
2189
|
),
|
|
2170
|
-
data.onExpand && /* @__PURE__ */
|
|
2190
|
+
data.onExpand && /* @__PURE__ */ jsx19(
|
|
2171
2191
|
"button",
|
|
2172
2192
|
{
|
|
2173
2193
|
type: "button",
|
|
@@ -2183,23 +2203,23 @@ function PipeCardBase({ data, children }) {
|
|
|
2183
2203
|
}
|
|
2184
2204
|
)
|
|
2185
2205
|
] }),
|
|
2186
|
-
data.description && /* @__PURE__ */
|
|
2187
|
-
data.inputs.length > 0 && /* @__PURE__ */
|
|
2188
|
-
/* @__PURE__ */
|
|
2189
|
-
/* @__PURE__ */
|
|
2190
|
-
visibleInputs.map((input) => /* @__PURE__ */
|
|
2206
|
+
data.description && /* @__PURE__ */ jsx19("span", { className: "pipe-card-description", title: data.description, children: data.description }),
|
|
2207
|
+
data.inputs.length > 0 && /* @__PURE__ */ jsxs19("div", { className: "pipe-card-io", children: [
|
|
2208
|
+
/* @__PURE__ */ jsx19("span", { className: "pipe-card-io-label", children: "INPUTS" }),
|
|
2209
|
+
/* @__PURE__ */ jsxs19("div", { className: "pipe-card-io-pills", children: [
|
|
2210
|
+
visibleInputs.map((input) => /* @__PURE__ */ jsxs19(
|
|
2191
2211
|
"span",
|
|
2192
2212
|
{
|
|
2193
2213
|
className: "pipe-card-io-pill",
|
|
2194
2214
|
title: `${input.name}: ${input.concept}`,
|
|
2195
2215
|
children: [
|
|
2196
|
-
/* @__PURE__ */
|
|
2197
|
-
/* @__PURE__ */
|
|
2216
|
+
/* @__PURE__ */ jsx19("span", { className: "pipe-card-io-pill-name", children: input.name }),
|
|
2217
|
+
/* @__PURE__ */ jsx19("span", { className: "pipe-card-io-pill-concept", children: input.concept })
|
|
2198
2218
|
]
|
|
2199
2219
|
},
|
|
2200
2220
|
input.name
|
|
2201
2221
|
)),
|
|
2202
|
-
hasMany && /* @__PURE__ */
|
|
2222
|
+
hasMany && /* @__PURE__ */ jsx19(
|
|
2203
2223
|
"button",
|
|
2204
2224
|
{
|
|
2205
2225
|
className: "pipe-card-io-more",
|
|
@@ -2212,16 +2232,16 @@ function PipeCardBase({ data, children }) {
|
|
|
2212
2232
|
)
|
|
2213
2233
|
] })
|
|
2214
2234
|
] }),
|
|
2215
|
-
data.outputs.length > 0 && /* @__PURE__ */
|
|
2216
|
-
/* @__PURE__ */
|
|
2217
|
-
/* @__PURE__ */
|
|
2235
|
+
data.outputs.length > 0 && /* @__PURE__ */ jsxs19("div", { className: "pipe-card-io", children: [
|
|
2236
|
+
/* @__PURE__ */ jsx19("span", { className: "pipe-card-io-label", children: "OUTPUT" }),
|
|
2237
|
+
/* @__PURE__ */ jsx19("div", { className: "pipe-card-io-pills", children: data.outputs.map((output) => /* @__PURE__ */ jsxs19(
|
|
2218
2238
|
"span",
|
|
2219
2239
|
{
|
|
2220
2240
|
className: "pipe-card-io-pill",
|
|
2221
2241
|
title: `${output.name}: ${output.concept}`,
|
|
2222
2242
|
children: [
|
|
2223
|
-
/* @__PURE__ */
|
|
2224
|
-
/* @__PURE__ */
|
|
2243
|
+
/* @__PURE__ */ jsx19("span", { className: "pipe-card-io-pill-name", children: output.name }),
|
|
2244
|
+
/* @__PURE__ */ jsx19("span", { className: "pipe-card-io-pill-concept", children: output.concept })
|
|
2225
2245
|
]
|
|
2226
2246
|
},
|
|
2227
2247
|
output.name
|
|
@@ -2239,6 +2259,7 @@ var PIPE_CARD_REGISTRY = {
|
|
|
2239
2259
|
PipeImgGen: PipeCardBase,
|
|
2240
2260
|
PipeSearch: PipeCardBase,
|
|
2241
2261
|
PipeFunc: PipeCardBase,
|
|
2262
|
+
PipeStructure: PipeCardBase,
|
|
2242
2263
|
PipeSignature: PipeCardBase,
|
|
2243
2264
|
PipeSequence: PipeCardBase,
|
|
2244
2265
|
PipeParallel: PipeCardBase,
|
|
@@ -2250,11 +2271,11 @@ function getPipeCardComponent(pipeType) {
|
|
|
2250
2271
|
}
|
|
2251
2272
|
|
|
2252
2273
|
// src/graph/react/nodes/pipe/PipeCardNode.tsx
|
|
2253
|
-
import { Fragment as
|
|
2274
|
+
import { Fragment as Fragment13, jsx as jsx20, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
2254
2275
|
function PipeCardNode({ data }) {
|
|
2255
2276
|
var _a;
|
|
2256
2277
|
const Card = (_a = getPipeCardComponent(data.pipeType)) != null ? _a : PipeCardBase;
|
|
2257
|
-
return /* @__PURE__ */
|
|
2278
|
+
return /* @__PURE__ */ jsx20(Card, { data });
|
|
2258
2279
|
}
|
|
2259
2280
|
function PipeCardRFNode({
|
|
2260
2281
|
data,
|
|
@@ -2263,15 +2284,15 @@ function PipeCardRFNode({
|
|
|
2263
2284
|
}) {
|
|
2264
2285
|
const payload = data.pipeCardData;
|
|
2265
2286
|
if (!payload) return null;
|
|
2266
|
-
return /* @__PURE__ */
|
|
2267
|
-
/* @__PURE__ */
|
|
2268
|
-
/* @__PURE__ */
|
|
2269
|
-
/* @__PURE__ */
|
|
2287
|
+
return /* @__PURE__ */ jsxs20(Fragment13, { children: [
|
|
2288
|
+
/* @__PURE__ */ jsx20(Handle, { type: "target", position: targetPosition }),
|
|
2289
|
+
/* @__PURE__ */ jsx20(PipeCardNode, { data: payload }),
|
|
2290
|
+
/* @__PURE__ */ jsx20(Handle, { type: "source", position: sourcePosition })
|
|
2270
2291
|
] });
|
|
2271
2292
|
}
|
|
2272
2293
|
|
|
2273
2294
|
// src/graph/react/viewer/GraphViewer.tsx
|
|
2274
|
-
import { Fragment as
|
|
2295
|
+
import { Fragment as Fragment14, jsx as jsx21, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2275
2296
|
var nodeTypes = __spreadProps(__spreadValues({}, controllerNodeTypes), {
|
|
2276
2297
|
pipeCard: PipeCardRFNode
|
|
2277
2298
|
});
|
|
@@ -2284,7 +2305,7 @@ function StuffNodeDetail({
|
|
|
2284
2305
|
onOpenExternally
|
|
2285
2306
|
}) {
|
|
2286
2307
|
const conceptInfo = stuffData.concept && graphspec ? resolveConceptRef(graphspec, stuffData.concept) : void 0;
|
|
2287
|
-
return /* @__PURE__ */
|
|
2308
|
+
return /* @__PURE__ */ jsx21(Fragment14, { children: conceptInfo ? /* @__PURE__ */ jsx21(
|
|
2288
2309
|
ConceptDetailPanel,
|
|
2289
2310
|
{
|
|
2290
2311
|
concept: conceptInfo,
|
|
@@ -2296,7 +2317,7 @@ function StuffNodeDetail({
|
|
|
2296
2317
|
}
|
|
2297
2318
|
) : (
|
|
2298
2319
|
/* Fallback: just show the StuffViewer if no concept info */
|
|
2299
|
-
/* @__PURE__ */
|
|
2320
|
+
/* @__PURE__ */ jsx21(
|
|
2300
2321
|
StuffViewer,
|
|
2301
2322
|
{
|
|
2302
2323
|
stuff: stuffData,
|
|
@@ -2859,13 +2880,13 @@ function GraphViewer(props) {
|
|
|
2859
2880
|
expandAllDisabled: foldedControllers.size === 0
|
|
2860
2881
|
};
|
|
2861
2882
|
}, [showControllers, allControllerIds, foldedControllers]);
|
|
2862
|
-
return /* @__PURE__ */
|
|
2883
|
+
return /* @__PURE__ */ jsxs21(
|
|
2863
2884
|
"div",
|
|
2864
2885
|
{
|
|
2865
2886
|
ref: containerRef,
|
|
2866
2887
|
className: `react-flow-container react-flow-container--theme-${resolvedTheme} react-flow-container--mode-${mode}`,
|
|
2867
2888
|
children: [
|
|
2868
|
-
/* @__PURE__ */
|
|
2889
|
+
/* @__PURE__ */ jsxs21(
|
|
2869
2890
|
ReactFlow,
|
|
2870
2891
|
{
|
|
2871
2892
|
nodes,
|
|
@@ -2884,7 +2905,7 @@ function GraphViewer(props) {
|
|
|
2884
2905
|
proOptions: { hideAttribution: true },
|
|
2885
2906
|
panActivationKeyCode: null,
|
|
2886
2907
|
children: [
|
|
2887
|
-
/* @__PURE__ */
|
|
2908
|
+
/* @__PURE__ */ jsx21(
|
|
2888
2909
|
Background,
|
|
2889
2910
|
{
|
|
2890
2911
|
variant: BackgroundVariant.Dots,
|
|
@@ -2893,7 +2914,7 @@ function GraphViewer(props) {
|
|
|
2893
2914
|
color: "var(--color-bg-dots)"
|
|
2894
2915
|
}
|
|
2895
2916
|
),
|
|
2896
|
-
!hideToolbar && /* @__PURE__ */
|
|
2917
|
+
!hideToolbar && /* @__PURE__ */ jsx21(
|
|
2897
2918
|
GraphToolbar,
|
|
2898
2919
|
{
|
|
2899
2920
|
direction,
|
|
@@ -2925,7 +2946,7 @@ function GraphViewer(props) {
|
|
|
2925
2946
|
]
|
|
2926
2947
|
}
|
|
2927
2948
|
),
|
|
2928
|
-
/* @__PURE__ */
|
|
2949
|
+
/* @__PURE__ */ jsxs21(
|
|
2929
2950
|
DetailPanel,
|
|
2930
2951
|
{
|
|
2931
2952
|
isOpen: detailOpen,
|
|
@@ -2934,14 +2955,14 @@ function GraphViewer(props) {
|
|
|
2934
2955
|
isDragging: isPanelDragging,
|
|
2935
2956
|
onResizeHandleMouseDown: onResizeMouseDown,
|
|
2936
2957
|
children: [
|
|
2937
|
-
conceptOverride ? /* @__PURE__ */
|
|
2958
|
+
conceptOverride ? /* @__PURE__ */ jsx21(ConceptDetailPanel, { concept: conceptOverride }) : selectedSpecNode && graphspec ? /* @__PURE__ */ jsx21(
|
|
2938
2959
|
PipeDetailPanel,
|
|
2939
2960
|
{
|
|
2940
2961
|
node: selectedSpecNode,
|
|
2941
2962
|
spec: graphspec,
|
|
2942
2963
|
onConceptClick: handleConceptClick
|
|
2943
2964
|
}
|
|
2944
|
-
) : (detailSelection == null ? void 0 : detailSelection.stuffData) ? /* @__PURE__ */
|
|
2965
|
+
) : (detailSelection == null ? void 0 : detailSelection.stuffData) ? /* @__PURE__ */ jsx21(
|
|
2945
2966
|
StuffNodeDetail,
|
|
2946
2967
|
{
|
|
2947
2968
|
nodeId: detailSelection.nodeId,
|