@pipelex/mthds-ui 0.16.0 → 0.17.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-HURB2U53.js → chunk-3XFIKUSZ.js} +1 -1
- package/dist/chunk-3XFIKUSZ.js.map +1 -0
- package/dist/{chunk-UDA2XA23.js → chunk-CQTAXK76.js} +91 -2
- package/dist/chunk-CQTAXK76.js.map +1 -0
- package/dist/graph/index.d.ts +2 -2
- package/dist/graph/index.js +2 -2
- package/dist/graph/react/detail/DetailPanel.css +65 -0
- package/dist/graph/react/index.css +46 -0
- package/dist/graph/react/index.css.map +1 -1
- package/dist/graph/react/index.d.ts +2 -2
- package/dist/graph/react/index.js +603 -371
- package/dist/graph/react/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/standalone/graph-standalone.html +75 -10
- package/dist/standalone/graph-viewer.css +65 -0
- package/dist/standalone/graph-viewer.js +10 -10
- package/dist/static-graph/index.d.ts +1 -1
- package/dist/static-graph/index.js +1 -1
- package/dist/{types-DM_Ws3oW.d.ts → types-DUSThVb4.d.ts} +92 -1
- package/package.json +1 -1
- package/dist/chunk-HURB2U53.js.map +0 -1
- package/dist/chunk-UDA2XA23.js.map +0 -1
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
resolveConceptRef,
|
|
16
16
|
resolveIssueTargetNodeId,
|
|
17
17
|
validateGraphSpec
|
|
18
|
-
} from "../../chunk-
|
|
18
|
+
} from "../../chunk-CQTAXK76.js";
|
|
19
19
|
import {
|
|
20
20
|
EDGE_TYPE,
|
|
21
21
|
FOLD_MODE,
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
stuffDigestFromId,
|
|
32
32
|
toolbarOrientation,
|
|
33
33
|
toolbarSide
|
|
34
|
-
} from "../../chunk-
|
|
34
|
+
} from "../../chunk-3XFIKUSZ.js";
|
|
35
35
|
import {
|
|
36
36
|
__spreadProps,
|
|
37
37
|
__spreadValues
|
|
@@ -799,12 +799,173 @@ function PromptToggle({
|
|
|
799
799
|
)
|
|
800
800
|
] });
|
|
801
801
|
}
|
|
802
|
+
function ModelRows({
|
|
803
|
+
modelsRan,
|
|
804
|
+
authored,
|
|
805
|
+
handle,
|
|
806
|
+
label = "Model"
|
|
807
|
+
}) {
|
|
808
|
+
const ran = modelsRan != null ? modelsRan : [];
|
|
809
|
+
const ranLabels = ran.map(
|
|
810
|
+
(entry) => ran.length > 1 ? `${entry.inference_model_name} (${entry.inference_calls})` : entry.inference_model_name
|
|
811
|
+
);
|
|
812
|
+
const chain = [];
|
|
813
|
+
for (const rung of [authored, handle, ...ranLabels]) {
|
|
814
|
+
if (rung && rung !== chain[chain.length - 1]) chain.push(rung);
|
|
815
|
+
}
|
|
816
|
+
if (chain.length === 0) return null;
|
|
817
|
+
return /* @__PURE__ */ jsxs3("div", { className: "detail-kv-row", children: [
|
|
818
|
+
/* @__PURE__ */ jsx3("span", { className: "detail-kv-key", children: label }),
|
|
819
|
+
/* @__PURE__ */ jsx3("span", { className: "detail-kv-value detail-model-value", children: chain.map((rung, index) => /* @__PURE__ */ jsx3("span", { className: index === 0 ? void 0 : "detail-model-resolved", children: rung }, rung)) })
|
|
820
|
+
] });
|
|
821
|
+
}
|
|
822
|
+
|
|
823
|
+
// src/graph/usageFormat.ts
|
|
824
|
+
function scopeUsage(usage, scope) {
|
|
825
|
+
if (scope === "subtree") {
|
|
826
|
+
return {
|
|
827
|
+
scope,
|
|
828
|
+
inferenceCalls: usage.subtree_inference_calls,
|
|
829
|
+
ratedInferenceCalls: usage.subtree_rated_inference_calls,
|
|
830
|
+
nbTokensByCategory: usage.subtree_nb_tokens_by_category,
|
|
831
|
+
totalTokens: usage.subtree_total_tokens,
|
|
832
|
+
cost: usage.subtree_cost,
|
|
833
|
+
costInput: usage.subtree_cost_input,
|
|
834
|
+
costOutput: usage.subtree_cost_output,
|
|
835
|
+
models: usage.subtree_by_model
|
|
836
|
+
};
|
|
837
|
+
}
|
|
838
|
+
return {
|
|
839
|
+
scope,
|
|
840
|
+
inferenceCalls: usage.inference_calls,
|
|
841
|
+
ratedInferenceCalls: usage.rated_inference_calls,
|
|
842
|
+
nbTokensByCategory: usage.nb_tokens_by_category,
|
|
843
|
+
totalTokens: usage.total_tokens,
|
|
844
|
+
cost: usage.cost,
|
|
845
|
+
costInput: usage.cost_input,
|
|
846
|
+
costOutput: usage.cost_output,
|
|
847
|
+
models: usage.by_model
|
|
848
|
+
};
|
|
849
|
+
}
|
|
850
|
+
function usageState(scoped) {
|
|
851
|
+
if (scoped.inferenceCalls === 0) return "ran-nothing";
|
|
852
|
+
if (scoped.cost === null) return "unrated";
|
|
853
|
+
if (scoped.ratedInferenceCalls < scoped.inferenceCalls) return "partial";
|
|
854
|
+
return "rated";
|
|
855
|
+
}
|
|
856
|
+
function formatCost(cost) {
|
|
857
|
+
if (cost > 0 && cost < 1e-4) return "<$0.0001";
|
|
858
|
+
return `$${cost.toFixed(4)}`;
|
|
859
|
+
}
|
|
860
|
+
function hasRealTokenCounts(scoped) {
|
|
861
|
+
return scoped.models.length > 0 && scoped.models.every((entry) => entry.model_type === "llm");
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
// src/graph/react/detail/sections/UsageSection.tsx
|
|
865
|
+
import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
866
|
+
function usageHeadlineScope(usage, isController) {
|
|
867
|
+
return scopeUsage(usage, isController ? "subtree" : "own");
|
|
868
|
+
}
|
|
869
|
+
function costText(scoped) {
|
|
870
|
+
var _a;
|
|
871
|
+
const state = usageState(scoped);
|
|
872
|
+
if (state === "ran-nothing" || state === "unrated") return null;
|
|
873
|
+
const cost = formatCost((_a = scoped.cost) != null ? _a : 0);
|
|
874
|
+
return state === "partial" ? `\u2265 ${cost}` : cost;
|
|
875
|
+
}
|
|
876
|
+
function costTitle(scoped, isController) {
|
|
877
|
+
const scopeWord = isController ? "This pipe and everything below it" : "This pipe";
|
|
878
|
+
const state = usageState(scoped);
|
|
879
|
+
if (state === "partial") {
|
|
880
|
+
return `${scopeWord}: only ${scoped.ratedInferenceCalls} of ${scoped.inferenceCalls} calls were priced, so this is a lower bound. Click for details.`;
|
|
881
|
+
}
|
|
882
|
+
return `${scopeWord}: ${scoped.inferenceCalls} inference call(s). Click for the breakdown.`;
|
|
883
|
+
}
|
|
884
|
+
function Chevron({ open }) {
|
|
885
|
+
return /* @__PURE__ */ jsx4(
|
|
886
|
+
"svg",
|
|
887
|
+
{
|
|
888
|
+
className: `detail-usage-chevron ${open ? "detail-usage-chevron--open" : ""}`,
|
|
889
|
+
width: "10",
|
|
890
|
+
height: "10",
|
|
891
|
+
viewBox: "0 0 24 24",
|
|
892
|
+
fill: "none",
|
|
893
|
+
stroke: "currentColor",
|
|
894
|
+
strokeWidth: "2.5",
|
|
895
|
+
strokeLinecap: "round",
|
|
896
|
+
strokeLinejoin: "round",
|
|
897
|
+
"aria-hidden": "true",
|
|
898
|
+
children: /* @__PURE__ */ jsx4("polyline", { points: "6 9 12 15 18 9" })
|
|
899
|
+
}
|
|
900
|
+
);
|
|
901
|
+
}
|
|
902
|
+
function UsageCostInline({
|
|
903
|
+
usage,
|
|
904
|
+
isController,
|
|
905
|
+
expanded,
|
|
906
|
+
onToggle
|
|
907
|
+
}) {
|
|
908
|
+
const scoped = usageHeadlineScope(usage, isController);
|
|
909
|
+
const text = costText(scoped);
|
|
910
|
+
if (text === null) return null;
|
|
911
|
+
return /* @__PURE__ */ jsxs4(
|
|
912
|
+
"button",
|
|
913
|
+
{
|
|
914
|
+
type: "button",
|
|
915
|
+
className: "detail-usage-inline",
|
|
916
|
+
"aria-expanded": expanded,
|
|
917
|
+
onClick: onToggle,
|
|
918
|
+
title: costTitle(scoped, isController),
|
|
919
|
+
children: [
|
|
920
|
+
/* @__PURE__ */ jsx4("span", { className: "detail-usage-value", children: text }),
|
|
921
|
+
/* @__PURE__ */ jsx4(Chevron, { open: expanded })
|
|
922
|
+
]
|
|
923
|
+
}
|
|
924
|
+
);
|
|
925
|
+
}
|
|
926
|
+
var PAIRED_CATEGORIES = /* @__PURE__ */ new Set(["input", "output"]);
|
|
927
|
+
function extraCategories(nbTokensByCategory) {
|
|
928
|
+
return Object.entries(nbTokensByCategory).filter(([category, nbTokens]) => !PAIRED_CATEGORIES.has(category) && nbTokens > 0).sort(([a], [b]) => a.localeCompare(b));
|
|
929
|
+
}
|
|
930
|
+
function UsageColumn({ scoped, label }) {
|
|
931
|
+
var _a, _b, _c;
|
|
932
|
+
const showsTokens = hasRealTokenCounts(scoped);
|
|
933
|
+
const isPriced = scoped.cost !== null;
|
|
934
|
+
const nbTokensInput = (_a = scoped.nbTokensByCategory.input) != null ? _a : 0;
|
|
935
|
+
const nbTokensOutput = (_b = scoped.nbTokensByCategory.output) != null ? _b : 0;
|
|
936
|
+
return /* @__PURE__ */ jsxs4("div", { children: [
|
|
937
|
+
/* @__PURE__ */ jsx4("div", { className: "detail-section-label", children: label }),
|
|
938
|
+
/* @__PURE__ */ jsx4(KV, { label: "inference calls", value: scoped.inferenceCalls }),
|
|
939
|
+
/* @__PURE__ */ jsx4(KV, { label: "priced calls", value: scoped.ratedInferenceCalls }),
|
|
940
|
+
showsTokens && /* @__PURE__ */ jsx4(KV, { label: "input tokens", value: nbTokensInput.toLocaleString() }),
|
|
941
|
+
isPriced && scoped.costInput !== null && /* @__PURE__ */ jsx4(KV, { label: "input cost", value: formatCost(scoped.costInput) }),
|
|
942
|
+
showsTokens && /* @__PURE__ */ jsx4(KV, { label: "output tokens", value: nbTokensOutput.toLocaleString() }),
|
|
943
|
+
isPriced && scoped.costOutput !== null && /* @__PURE__ */ jsx4(KV, { label: "output cost", value: formatCost(scoped.costOutput) }),
|
|
944
|
+
showsTokens && /* @__PURE__ */ jsx4(KV, { label: "total tokens", value: scoped.totalTokens.toLocaleString() }),
|
|
945
|
+
/* @__PURE__ */ jsx4(KV, { label: "total cost", value: isPriced ? formatCost((_c = scoped.cost) != null ? _c : 0) : "not priced" }),
|
|
946
|
+
showsTokens && extraCategories(scoped.nbTokensByCategory).map(([category, nbTokens]) => /* @__PURE__ */ jsx4(KV, { label: `tokens \xB7 ${category}`, value: nbTokens.toLocaleString() }, category))
|
|
947
|
+
] });
|
|
948
|
+
}
|
|
949
|
+
function UsageDetails({
|
|
950
|
+
usage,
|
|
951
|
+
isController
|
|
952
|
+
}) {
|
|
953
|
+
const own = scopeUsage(usage, "own");
|
|
954
|
+
const subtree = scopeUsage(usage, "subtree");
|
|
955
|
+
const showsSubtree = isController || subtree.inferenceCalls !== own.inferenceCalls;
|
|
956
|
+
return /* @__PURE__ */ jsxs4("div", { className: "detail-usage-details", children: [
|
|
957
|
+
/* @__PURE__ */ jsx4(UsageColumn, { scoped: own, label: isController ? "This pipe itself" : "Usage" }),
|
|
958
|
+
showsSubtree && /* @__PURE__ */ jsx4(UsageColumn, { scoped: subtree, label: "This pipe and everything below it" })
|
|
959
|
+
] });
|
|
960
|
+
}
|
|
802
961
|
|
|
803
962
|
// src/graph/react/detail/sections/PipeLLMDetail.tsx
|
|
804
|
-
import { Fragment, jsx as
|
|
963
|
+
import { Fragment, jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
805
964
|
function PipeLLMSection({
|
|
806
965
|
blueprint,
|
|
807
|
-
executionData
|
|
966
|
+
executionData,
|
|
967
|
+
modelsRan,
|
|
968
|
+
modelHandles
|
|
808
969
|
}) {
|
|
809
970
|
var _a, _b, _c, _d, _e;
|
|
810
971
|
const spec = blueprint.llm_prompt_spec;
|
|
@@ -812,44 +973,54 @@ function PipeLLMSection({
|
|
|
812
973
|
const hasDocRefs = spec.user_document_references && spec.user_document_references.length > 0;
|
|
813
974
|
const hasSysImageRefs = spec.system_image_references && spec.system_image_references.length > 0;
|
|
814
975
|
const hasSysDocRefs = spec.system_document_references && spec.system_document_references.length > 0;
|
|
815
|
-
const resolvedModel =
|
|
816
|
-
const resolvedModelForObject =
|
|
976
|
+
const resolvedModel = modelHandles == null ? void 0 : modelHandles.resolved_model;
|
|
977
|
+
const resolvedModelForObject = modelHandles == null ? void 0 : modelHandles.resolved_model_for_object;
|
|
817
978
|
const renderedSystem = executionData == null ? void 0 : executionData.rendered_system_prompt;
|
|
818
979
|
const renderedUser = executionData == null ? void 0 : executionData.rendered_user_prompt;
|
|
819
980
|
const structuringPath = executionData == null ? void 0 : executionData.structuring_path;
|
|
820
981
|
const isMultipleOutput = executionData == null ? void 0 : executionData.is_multiple_output;
|
|
821
|
-
const
|
|
822
|
-
const
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
/* @__PURE__ */
|
|
828
|
-
/* @__PURE__ */
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
982
|
+
const authoredModel = (_a = blueprint.llm_choices) == null ? void 0 : _a.for_text;
|
|
983
|
+
const authoredModelForObject = (_b = blueprint.llm_choices) == null ? void 0 : _b.for_object;
|
|
984
|
+
const hasDistinctObjectRequest = Boolean(
|
|
985
|
+
authoredModelForObject && authoredModelForObject !== authoredModel
|
|
986
|
+
);
|
|
987
|
+
return /* @__PURE__ */ jsxs5(Fragment, { children: [
|
|
988
|
+
/* @__PURE__ */ jsx5(ModelRows, { modelsRan, authored: authoredModel, handle: resolvedModel }),
|
|
989
|
+
hasDistinctObjectRequest && /* @__PURE__ */ jsx5(
|
|
990
|
+
ModelRows,
|
|
991
|
+
{
|
|
992
|
+
authored: authoredModelForObject,
|
|
993
|
+
handle: resolvedModelForObject,
|
|
994
|
+
label: "Model (object)"
|
|
995
|
+
}
|
|
996
|
+
),
|
|
997
|
+
/* @__PURE__ */ jsx5(KV, { label: "Structuring", value: structuringPath || blueprint.structuring_method }),
|
|
998
|
+
/* @__PURE__ */ jsx5(KV, { label: "Multiple Output", value: isMultipleOutput }),
|
|
999
|
+
/* @__PURE__ */ jsx5(KV, { label: "Output Multiplicity", value: blueprint.output_multiplicity }),
|
|
1000
|
+
/* @__PURE__ */ jsx5(KV, { label: "Prompt Category", value: (_c = spec.prompt_blueprint) == null ? void 0 : _c.category }),
|
|
1001
|
+
hasImageRefs && /* @__PURE__ */ jsx5(KV, { label: "User Image Refs", value: `${spec.user_image_references.length} references` }),
|
|
1002
|
+
hasDocRefs && /* @__PURE__ */ jsx5(
|
|
832
1003
|
KV,
|
|
833
1004
|
{
|
|
834
1005
|
label: "User Document Refs",
|
|
835
1006
|
value: `${spec.user_document_references.length} references`
|
|
836
1007
|
}
|
|
837
1008
|
),
|
|
838
|
-
hasSysImageRefs && /* @__PURE__ */
|
|
1009
|
+
hasSysImageRefs && /* @__PURE__ */ jsx5(
|
|
839
1010
|
KV,
|
|
840
1011
|
{
|
|
841
1012
|
label: "System Image Refs",
|
|
842
1013
|
value: `${spec.system_image_references.length} references`
|
|
843
1014
|
}
|
|
844
1015
|
),
|
|
845
|
-
hasSysDocRefs && /* @__PURE__ */
|
|
1016
|
+
hasSysDocRefs && /* @__PURE__ */ jsx5(
|
|
846
1017
|
KV,
|
|
847
1018
|
{
|
|
848
1019
|
label: "System Document Refs",
|
|
849
1020
|
value: `${spec.system_document_references.length} references`
|
|
850
1021
|
}
|
|
851
1022
|
),
|
|
852
|
-
/* @__PURE__ */
|
|
1023
|
+
/* @__PURE__ */ jsx5(
|
|
853
1024
|
PromptToggle,
|
|
854
1025
|
{
|
|
855
1026
|
label: "System Prompt",
|
|
@@ -857,7 +1028,7 @@ function PipeLLMSection({
|
|
|
857
1028
|
renderedText: renderedSystem
|
|
858
1029
|
}
|
|
859
1030
|
),
|
|
860
|
-
/* @__PURE__ */
|
|
1031
|
+
/* @__PURE__ */ jsx5(
|
|
861
1032
|
PromptToggle,
|
|
862
1033
|
{
|
|
863
1034
|
label: "Prompt",
|
|
@@ -869,19 +1040,21 @@ function PipeLLMSection({
|
|
|
869
1040
|
}
|
|
870
1041
|
|
|
871
1042
|
// src/graph/react/detail/sections/PipeImgGenDetail.tsx
|
|
872
|
-
import { Fragment as Fragment2, jsx as
|
|
1043
|
+
import { Fragment as Fragment2, jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
873
1044
|
function PipeImgGenSection({
|
|
874
1045
|
blueprint,
|
|
875
|
-
executionData
|
|
1046
|
+
executionData,
|
|
1047
|
+
modelsRan,
|
|
1048
|
+
modelHandles
|
|
876
1049
|
}) {
|
|
877
1050
|
var _a, _b, _c;
|
|
878
1051
|
const spec = blueprint.img_gen_prompt_blueprint;
|
|
879
|
-
const resolvedModel =
|
|
1052
|
+
const resolvedModel = modelHandles == null ? void 0 : modelHandles.resolved_model;
|
|
880
1053
|
const renderedPrompt = executionData == null ? void 0 : executionData.rendered_prompt;
|
|
881
1054
|
const renderedNegative = executionData == null ? void 0 : executionData.rendered_negative_prompt;
|
|
882
|
-
return /* @__PURE__ */
|
|
883
|
-
/* @__PURE__ */
|
|
884
|
-
/* @__PURE__ */
|
|
1055
|
+
return /* @__PURE__ */ jsxs6(Fragment2, { children: [
|
|
1056
|
+
/* @__PURE__ */ jsx6(ModelRows, { modelsRan, authored: blueprint.img_gen_choice, handle: resolvedModel }),
|
|
1057
|
+
/* @__PURE__ */ jsx6(
|
|
885
1058
|
PromptToggle,
|
|
886
1059
|
{
|
|
887
1060
|
label: "Prompt",
|
|
@@ -889,7 +1062,7 @@ function PipeImgGenSection({
|
|
|
889
1062
|
renderedText: renderedPrompt
|
|
890
1063
|
}
|
|
891
1064
|
),
|
|
892
|
-
/* @__PURE__ */
|
|
1065
|
+
/* @__PURE__ */ jsx6(
|
|
893
1066
|
PromptToggle,
|
|
894
1067
|
{
|
|
895
1068
|
label: "Negative Prompt",
|
|
@@ -897,12 +1070,12 @@ function PipeImgGenSection({
|
|
|
897
1070
|
renderedText: renderedNegative
|
|
898
1071
|
}
|
|
899
1072
|
),
|
|
900
|
-
/* @__PURE__ */
|
|
901
|
-
/* @__PURE__ */
|
|
902
|
-
/* @__PURE__ */
|
|
903
|
-
/* @__PURE__ */
|
|
904
|
-
/* @__PURE__ */
|
|
905
|
-
/* @__PURE__ */
|
|
1073
|
+
/* @__PURE__ */ jsx6(KV, { label: "Aspect Ratio", value: blueprint.aspect_ratio }),
|
|
1074
|
+
/* @__PURE__ */ jsx6(KV, { label: "Output Format", value: blueprint.output_format }),
|
|
1075
|
+
/* @__PURE__ */ jsx6(KV, { label: "Background", value: blueprint.background }),
|
|
1076
|
+
/* @__PURE__ */ jsx6(KV, { label: "Is Raw", value: blueprint.is_raw }),
|
|
1077
|
+
/* @__PURE__ */ jsx6(KV, { label: "Seed", value: blueprint.seed }),
|
|
1078
|
+
/* @__PURE__ */ jsx6(
|
|
906
1079
|
KV,
|
|
907
1080
|
{
|
|
908
1081
|
label: "Images",
|
|
@@ -913,36 +1086,39 @@ function PipeImgGenSection({
|
|
|
913
1086
|
}
|
|
914
1087
|
|
|
915
1088
|
// src/graph/react/detail/sections/PipeExtractDetail.tsx
|
|
916
|
-
import { Fragment as Fragment3, jsx as
|
|
1089
|
+
import { Fragment as Fragment3, jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
917
1090
|
function PipeExtractSection({
|
|
918
1091
|
blueprint,
|
|
919
|
-
|
|
1092
|
+
modelsRan,
|
|
1093
|
+
modelHandles
|
|
920
1094
|
}) {
|
|
921
|
-
const resolvedModel =
|
|
922
|
-
return /* @__PURE__ */
|
|
923
|
-
/* @__PURE__ */
|
|
924
|
-
/* @__PURE__ */
|
|
925
|
-
/* @__PURE__ */
|
|
926
|
-
/* @__PURE__ */
|
|
927
|
-
/* @__PURE__ */
|
|
928
|
-
/* @__PURE__ */
|
|
929
|
-
/* @__PURE__ */
|
|
930
|
-
/* @__PURE__ */
|
|
931
|
-
/* @__PURE__ */
|
|
1095
|
+
const resolvedModel = modelHandles == null ? void 0 : modelHandles.resolved_model;
|
|
1096
|
+
return /* @__PURE__ */ jsxs7(Fragment3, { children: [
|
|
1097
|
+
/* @__PURE__ */ jsx7(ModelRows, { modelsRan, authored: blueprint.extract_choice, handle: resolvedModel }),
|
|
1098
|
+
/* @__PURE__ */ jsx7(KV, { label: "Document Variable", value: blueprint.document_stuff_name }),
|
|
1099
|
+
/* @__PURE__ */ jsx7(KV, { label: "Caption Images", value: blueprint.should_caption_images }),
|
|
1100
|
+
/* @__PURE__ */ jsx7(KV, { label: "Max Page Images", value: blueprint.max_page_images }),
|
|
1101
|
+
/* @__PURE__ */ jsx7(KV, { label: "Include Page Views", value: blueprint.should_include_page_views }),
|
|
1102
|
+
/* @__PURE__ */ jsx7(KV, { label: "Page Views DPI", value: blueprint.page_views_dpi }),
|
|
1103
|
+
/* @__PURE__ */ jsx7(KV, { label: "Render JS", value: blueprint.render_js }),
|
|
1104
|
+
/* @__PURE__ */ jsx7(KV, { label: "Include Raw HTML", value: blueprint.include_raw_html }),
|
|
1105
|
+
/* @__PURE__ */ jsx7(KV, { label: "Image Variable", value: blueprint.image_stuff_name })
|
|
932
1106
|
] });
|
|
933
1107
|
}
|
|
934
1108
|
|
|
935
1109
|
// src/graph/react/detail/sections/PipeSearchDetail.tsx
|
|
936
|
-
import { Fragment as Fragment4, jsx as
|
|
1110
|
+
import { Fragment as Fragment4, jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
937
1111
|
function PipeSearchSection({
|
|
938
1112
|
blueprint,
|
|
939
|
-
executionData
|
|
1113
|
+
executionData,
|
|
1114
|
+
modelsRan,
|
|
1115
|
+
modelHandles
|
|
940
1116
|
}) {
|
|
941
|
-
const resolvedModel =
|
|
1117
|
+
const resolvedModel = modelHandles == null ? void 0 : modelHandles.resolved_model;
|
|
942
1118
|
const renderedQuery = executionData == null ? void 0 : executionData.rendered_query;
|
|
943
|
-
return /* @__PURE__ */
|
|
944
|
-
/* @__PURE__ */
|
|
945
|
-
/* @__PURE__ */
|
|
1119
|
+
return /* @__PURE__ */ jsxs8(Fragment4, { children: [
|
|
1120
|
+
/* @__PURE__ */ jsx8(ModelRows, { modelsRan, authored: blueprint.search_choice, handle: resolvedModel }),
|
|
1121
|
+
/* @__PURE__ */ jsx8(
|
|
946
1122
|
PromptToggle,
|
|
947
1123
|
{
|
|
948
1124
|
label: "Search Query",
|
|
@@ -950,13 +1126,13 @@ function PipeSearchSection({
|
|
|
950
1126
|
renderedText: renderedQuery
|
|
951
1127
|
}
|
|
952
1128
|
),
|
|
953
|
-
/* @__PURE__ */
|
|
954
|
-
/* @__PURE__ */
|
|
955
|
-
/* @__PURE__ */
|
|
956
|
-
/* @__PURE__ */
|
|
957
|
-
/* @__PURE__ */
|
|
958
|
-
blueprint.include_domains && blueprint.include_domains.length > 0 && /* @__PURE__ */
|
|
959
|
-
blueprint.exclude_domains && blueprint.exclude_domains.length > 0 && /* @__PURE__ */
|
|
1129
|
+
/* @__PURE__ */ jsx8(KV, { label: "Max Results", value: blueprint.max_results_override }),
|
|
1130
|
+
/* @__PURE__ */ jsx8(KV, { label: "Include Images", value: blueprint.include_images_override }),
|
|
1131
|
+
/* @__PURE__ */ jsx8(KV, { label: "Structured Output", value: blueprint.is_structured_output }),
|
|
1132
|
+
/* @__PURE__ */ jsx8(KV, { label: "From Date", value: blueprint.from_date }),
|
|
1133
|
+
/* @__PURE__ */ jsx8(KV, { label: "To Date", value: blueprint.to_date }),
|
|
1134
|
+
blueprint.include_domains && blueprint.include_domains.length > 0 && /* @__PURE__ */ jsx8(KV, { label: "Include Domains", value: blueprint.include_domains.join(", ") }),
|
|
1135
|
+
blueprint.exclude_domains && blueprint.exclude_domains.length > 0 && /* @__PURE__ */ jsx8(KV, { label: "Exclude Domains", value: blueprint.exclude_domains.join(", ") })
|
|
960
1136
|
] });
|
|
961
1137
|
}
|
|
962
1138
|
|
|
@@ -979,26 +1155,28 @@ function labelFromLlmChoice(choice) {
|
|
|
979
1155
|
}
|
|
980
1156
|
|
|
981
1157
|
// src/graph/react/detail/sections/PipeStructureDetail.tsx
|
|
982
|
-
import { Fragment as Fragment5, jsx as
|
|
1158
|
+
import { Fragment as Fragment5, jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
983
1159
|
function PipeStructureSection({
|
|
984
1160
|
blueprint,
|
|
985
|
-
executionData
|
|
1161
|
+
executionData,
|
|
1162
|
+
modelsRan,
|
|
1163
|
+
modelHandles
|
|
986
1164
|
}) {
|
|
987
|
-
const resolvedModel =
|
|
1165
|
+
const resolvedModel = modelHandles == null ? void 0 : modelHandles.resolved_model;
|
|
988
1166
|
const isMultipleOutput = executionData == null ? void 0 : executionData.is_multiple_output;
|
|
989
1167
|
const renderedUser = executionData == null ? void 0 : executionData.rendered_user_prompt;
|
|
990
|
-
const
|
|
991
|
-
return /* @__PURE__ */
|
|
992
|
-
/* @__PURE__ */
|
|
993
|
-
/* @__PURE__ */
|
|
994
|
-
/* @__PURE__ */
|
|
995
|
-
/* @__PURE__ */
|
|
996
|
-
/* @__PURE__ */
|
|
1168
|
+
const authoredModel = labelFromLlmChoice(blueprint.llm_choice);
|
|
1169
|
+
return /* @__PURE__ */ jsxs9(Fragment5, { children: [
|
|
1170
|
+
/* @__PURE__ */ jsx9(ModelRows, { modelsRan, authored: authoredModel, handle: resolvedModel }),
|
|
1171
|
+
/* @__PURE__ */ jsx9(KV, { label: "Text Variable", value: blueprint.text_input_name }),
|
|
1172
|
+
/* @__PURE__ */ jsx9(KV, { label: "Multiple Output", value: isMultipleOutput }),
|
|
1173
|
+
/* @__PURE__ */ jsx9(KV, { label: "Output Multiplicity", value: blueprint.output_multiplicity }),
|
|
1174
|
+
/* @__PURE__ */ jsx9(PromptToggle, { label: "Prompt", templateText: void 0, renderedText: renderedUser })
|
|
997
1175
|
] });
|
|
998
1176
|
}
|
|
999
1177
|
|
|
1000
1178
|
// src/graph/react/detail/sections/PipeComposeDetail.tsx
|
|
1001
|
-
import { Fragment as Fragment6, jsx as
|
|
1179
|
+
import { Fragment as Fragment6, jsx as jsx10, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1002
1180
|
function formatLeafField(field) {
|
|
1003
1181
|
var _a, _b;
|
|
1004
1182
|
switch (field.method) {
|
|
@@ -1019,9 +1197,9 @@ function isLongValue(text) {
|
|
|
1019
1197
|
return text.length > LONG_VALUE_THRESHOLD_CHARS || text.includes("\n");
|
|
1020
1198
|
}
|
|
1021
1199
|
function FieldBlock({ label, value }) {
|
|
1022
|
-
return /* @__PURE__ */
|
|
1023
|
-
/* @__PURE__ */
|
|
1024
|
-
/* @__PURE__ */
|
|
1200
|
+
return /* @__PURE__ */ jsxs10("div", { className: "detail-field-block", children: [
|
|
1201
|
+
/* @__PURE__ */ jsx10("div", { className: "detail-field-block-label", children: label }),
|
|
1202
|
+
/* @__PURE__ */ jsx10("div", { className: "detail-field-block-value", children: value })
|
|
1025
1203
|
] });
|
|
1026
1204
|
}
|
|
1027
1205
|
function ConstructFieldsBlock({
|
|
@@ -1042,18 +1220,18 @@ function ConstructFieldsBlock({
|
|
|
1042
1220
|
}
|
|
1043
1221
|
}
|
|
1044
1222
|
const indentStyle = depth > 0 ? { paddingLeft: depth * 12 } : void 0;
|
|
1045
|
-
return /* @__PURE__ */
|
|
1223
|
+
return /* @__PURE__ */ jsxs10(Fragment6, { children: [
|
|
1046
1224
|
leafFields.map(([name, field]) => {
|
|
1047
1225
|
const display = formatLeafField(field);
|
|
1048
1226
|
if (isLongValue(display)) {
|
|
1049
|
-
return /* @__PURE__ */
|
|
1227
|
+
return /* @__PURE__ */ jsx10("div", { style: indentStyle, children: /* @__PURE__ */ jsx10(FieldBlock, { label: name, value: display }) }, name);
|
|
1050
1228
|
}
|
|
1051
|
-
return /* @__PURE__ */
|
|
1229
|
+
return /* @__PURE__ */ jsx10("div", { style: indentStyle, children: /* @__PURE__ */ jsx10(KV, { label: name, value: display }) }, name);
|
|
1052
1230
|
}),
|
|
1053
1231
|
templateFields.map(([name, field]) => {
|
|
1054
1232
|
var _a, _b;
|
|
1055
1233
|
const renderedForField = (_a = fieldResolutions == null ? void 0 : fieldResolutions[name]) == null ? void 0 : _a.rendered;
|
|
1056
|
-
return /* @__PURE__ */
|
|
1234
|
+
return /* @__PURE__ */ jsx10("div", { style: indentStyle, children: /* @__PURE__ */ jsx10(
|
|
1057
1235
|
PromptToggle,
|
|
1058
1236
|
{
|
|
1059
1237
|
label: `Template \u2014 ${name}`,
|
|
@@ -1064,15 +1242,15 @@ function ConstructFieldsBlock({
|
|
|
1064
1242
|
}),
|
|
1065
1243
|
nestedFields.map(([name, field]) => {
|
|
1066
1244
|
if (!field.nested) return null;
|
|
1067
|
-
return /* @__PURE__ */
|
|
1068
|
-
/* @__PURE__ */
|
|
1245
|
+
return /* @__PURE__ */ jsxs10("div", { children: [
|
|
1246
|
+
/* @__PURE__ */ jsxs10(
|
|
1069
1247
|
"div",
|
|
1070
1248
|
{
|
|
1071
1249
|
className: "detail-nested-header",
|
|
1072
1250
|
style: depth > 0 ? { paddingLeft: depth * 12 } : void 0,
|
|
1073
1251
|
children: [
|
|
1074
|
-
/* @__PURE__ */
|
|
1075
|
-
/* @__PURE__ */
|
|
1252
|
+
/* @__PURE__ */ jsx10("span", { className: "detail-nested-header-name", children: name }),
|
|
1253
|
+
/* @__PURE__ */ jsxs10("span", { className: "detail-nested-header-meta", children: [
|
|
1076
1254
|
"nested \xB7 ",
|
|
1077
1255
|
Object.keys(field.nested.fields).length,
|
|
1078
1256
|
" field",
|
|
@@ -1081,7 +1259,7 @@ function ConstructFieldsBlock({
|
|
|
1081
1259
|
]
|
|
1082
1260
|
}
|
|
1083
1261
|
),
|
|
1084
|
-
/* @__PURE__ */
|
|
1262
|
+
/* @__PURE__ */ jsx10(
|
|
1085
1263
|
ConstructFieldsBlock,
|
|
1086
1264
|
{
|
|
1087
1265
|
blueprint: field.nested,
|
|
@@ -1103,11 +1281,11 @@ function PipeComposeSection({
|
|
|
1103
1281
|
const fieldResolutions = (_a = executionData == null ? void 0 : executionData.fields) != null ? _a : null;
|
|
1104
1282
|
const constructBlueprint = blueprint.construct_blueprint;
|
|
1105
1283
|
const hasConstruct = constructBlueprint !== null && Object.keys(constructBlueprint.fields).length > 0;
|
|
1106
|
-
return /* @__PURE__ */
|
|
1107
|
-
/* @__PURE__ */
|
|
1108
|
-
/* @__PURE__ */
|
|
1109
|
-
/* @__PURE__ */
|
|
1110
|
-
blueprint.template && /* @__PURE__ */
|
|
1284
|
+
return /* @__PURE__ */ jsxs10(Fragment6, { children: [
|
|
1285
|
+
/* @__PURE__ */ jsx10(KV, { label: "Mode", value: composeMode || (hasConstruct ? "construct" : "template") }),
|
|
1286
|
+
/* @__PURE__ */ jsx10(KV, { label: "Category", value: blueprint.category }),
|
|
1287
|
+
/* @__PURE__ */ jsx10(KV, { label: "Templating Style", value: blueprint.templating_style }),
|
|
1288
|
+
blueprint.template && /* @__PURE__ */ jsx10(
|
|
1111
1289
|
PromptToggle,
|
|
1112
1290
|
{
|
|
1113
1291
|
label: "Template",
|
|
@@ -1115,9 +1293,9 @@ function PipeComposeSection({
|
|
|
1115
1293
|
renderedText
|
|
1116
1294
|
}
|
|
1117
1295
|
),
|
|
1118
|
-
hasConstruct && /* @__PURE__ */
|
|
1119
|
-
/* @__PURE__ */
|
|
1120
|
-
/* @__PURE__ */
|
|
1296
|
+
hasConstruct && /* @__PURE__ */ jsxs10(Fragment6, { children: [
|
|
1297
|
+
/* @__PURE__ */ jsx10("div", { className: "detail-section-label", children: "FIELDS" }),
|
|
1298
|
+
/* @__PURE__ */ jsx10(
|
|
1121
1299
|
ConstructFieldsBlock,
|
|
1122
1300
|
{
|
|
1123
1301
|
blueprint: constructBlueprint,
|
|
@@ -1130,26 +1308,26 @@ function PipeComposeSection({
|
|
|
1130
1308
|
}
|
|
1131
1309
|
|
|
1132
1310
|
// src/graph/react/detail/sections/PipeConditionDetail.tsx
|
|
1133
|
-
import { Fragment as Fragment7, jsx as
|
|
1311
|
+
import { Fragment as Fragment7, jsx as jsx11, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1134
1312
|
function PipeConditionSection({
|
|
1135
1313
|
blueprint,
|
|
1136
1314
|
executionData
|
|
1137
1315
|
}) {
|
|
1138
1316
|
const evaluatedExpression = executionData == null ? void 0 : executionData.evaluated_expression;
|
|
1139
1317
|
const selectedOutcome = executionData == null ? void 0 : executionData.selected_outcome;
|
|
1140
|
-
return /* @__PURE__ */
|
|
1141
|
-
/* @__PURE__ */
|
|
1142
|
-
evaluatedExpression && /* @__PURE__ */
|
|
1143
|
-
/* @__PURE__ */
|
|
1144
|
-
/* @__PURE__ */
|
|
1145
|
-
Object.entries(blueprint.outcome_map).map(([outcome, pipeCode]) => /* @__PURE__ */
|
|
1318
|
+
return /* @__PURE__ */ jsxs11(Fragment7, { children: [
|
|
1319
|
+
/* @__PURE__ */ jsx11(PromptBlock, { label: "Expression", text: blueprint.expression }),
|
|
1320
|
+
evaluatedExpression && /* @__PURE__ */ jsx11(KV, { label: "Expression Result", value: evaluatedExpression }),
|
|
1321
|
+
/* @__PURE__ */ jsxs11("div", { children: [
|
|
1322
|
+
/* @__PURE__ */ jsx11("div", { className: "detail-section-label", children: "Outcomes" }),
|
|
1323
|
+
Object.entries(blueprint.outcome_map).map(([outcome, pipeCode]) => /* @__PURE__ */ jsxs11(
|
|
1146
1324
|
"div",
|
|
1147
1325
|
{
|
|
1148
1326
|
className: "detail-kv-row",
|
|
1149
1327
|
style: selectedOutcome === pipeCode ? { background: "rgba(80,250,123,0.08)" } : void 0,
|
|
1150
1328
|
children: [
|
|
1151
|
-
/* @__PURE__ */
|
|
1152
|
-
/* @__PURE__ */
|
|
1329
|
+
/* @__PURE__ */ jsx11("span", { className: "detail-kv-key", children: outcome }),
|
|
1330
|
+
/* @__PURE__ */ jsx11(
|
|
1153
1331
|
"span",
|
|
1154
1332
|
{
|
|
1155
1333
|
className: "detail-kv-value",
|
|
@@ -1161,26 +1339,26 @@ function PipeConditionSection({
|
|
|
1161
1339
|
},
|
|
1162
1340
|
outcome
|
|
1163
1341
|
)),
|
|
1164
|
-
/* @__PURE__ */
|
|
1165
|
-
/* @__PURE__ */
|
|
1166
|
-
/* @__PURE__ */
|
|
1342
|
+
/* @__PURE__ */ jsxs11("div", { className: "detail-kv-row", children: [
|
|
1343
|
+
/* @__PURE__ */ jsx11("span", { className: "detail-kv-key", children: "default" }),
|
|
1344
|
+
/* @__PURE__ */ jsx11("span", { className: "detail-kv-value", children: blueprint.default_outcome })
|
|
1167
1345
|
] })
|
|
1168
1346
|
] }),
|
|
1169
|
-
/* @__PURE__ */
|
|
1347
|
+
/* @__PURE__ */ jsx11(KV, { label: "Alias Expression To", value: blueprint.add_alias_from_expression_to })
|
|
1170
1348
|
] });
|
|
1171
1349
|
}
|
|
1172
1350
|
|
|
1173
1351
|
// src/graph/react/detail/sections/PipeSequenceDetail.tsx
|
|
1174
|
-
import { jsx as
|
|
1352
|
+
import { jsx as jsx12, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1175
1353
|
function PipeSequenceSection({
|
|
1176
1354
|
blueprint
|
|
1177
1355
|
}) {
|
|
1178
|
-
return /* @__PURE__ */
|
|
1179
|
-
/* @__PURE__ */
|
|
1180
|
-
/* @__PURE__ */
|
|
1181
|
-
/* @__PURE__ */
|
|
1182
|
-
/* @__PURE__ */
|
|
1183
|
-
step.output_name && /* @__PURE__ */
|
|
1356
|
+
return /* @__PURE__ */ jsxs12("div", { children: [
|
|
1357
|
+
/* @__PURE__ */ jsx12("div", { className: "detail-section-label", children: "Steps" }),
|
|
1358
|
+
/* @__PURE__ */ jsx12("div", { className: "detail-steps-list", children: blueprint.sequential_sub_pipes.map((step, idx) => /* @__PURE__ */ jsxs12("div", { className: "detail-step-item", children: [
|
|
1359
|
+
/* @__PURE__ */ jsx12("span", { className: "detail-step-index", children: idx + 1 }),
|
|
1360
|
+
/* @__PURE__ */ jsx12("span", { className: "detail-step-code", children: step.pipe_code }),
|
|
1361
|
+
step.output_name && /* @__PURE__ */ jsxs12("span", { className: "detail-io-concept", children: [
|
|
1184
1362
|
"-> ",
|
|
1185
1363
|
step.output_name
|
|
1186
1364
|
] })
|
|
@@ -1189,38 +1367,38 @@ function PipeSequenceSection({
|
|
|
1189
1367
|
}
|
|
1190
1368
|
|
|
1191
1369
|
// src/graph/react/detail/sections/PipeParallelDetail.tsx
|
|
1192
|
-
import { Fragment as Fragment8, jsx as
|
|
1370
|
+
import { Fragment as Fragment8, jsx as jsx13, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1193
1371
|
function PipeParallelSection({
|
|
1194
1372
|
blueprint
|
|
1195
1373
|
}) {
|
|
1196
|
-
return /* @__PURE__ */
|
|
1197
|
-
/* @__PURE__ */
|
|
1198
|
-
/* @__PURE__ */
|
|
1199
|
-
/* @__PURE__ */
|
|
1200
|
-
/* @__PURE__ */
|
|
1201
|
-
branch.output_name && /* @__PURE__ */
|
|
1374
|
+
return /* @__PURE__ */ jsxs13(Fragment8, { children: [
|
|
1375
|
+
/* @__PURE__ */ jsxs13("div", { children: [
|
|
1376
|
+
/* @__PURE__ */ jsx13("div", { className: "detail-section-label", children: "Branches" }),
|
|
1377
|
+
/* @__PURE__ */ jsx13("div", { className: "detail-steps-list", children: blueprint.parallel_sub_pipes.map((branch, idx) => /* @__PURE__ */ jsxs13("div", { className: "detail-step-item", children: [
|
|
1378
|
+
/* @__PURE__ */ jsx13("span", { className: "detail-step-code", children: branch.pipe_code }),
|
|
1379
|
+
branch.output_name && /* @__PURE__ */ jsxs13("span", { className: "detail-io-concept", children: [
|
|
1202
1380
|
"-> ",
|
|
1203
1381
|
branch.output_name
|
|
1204
1382
|
] })
|
|
1205
1383
|
] }, idx)) })
|
|
1206
1384
|
] }),
|
|
1207
|
-
/* @__PURE__ */
|
|
1208
|
-
/* @__PURE__ */
|
|
1385
|
+
/* @__PURE__ */ jsx13(KV, { label: "Add Each Output", value: blueprint.add_each_output }),
|
|
1386
|
+
/* @__PURE__ */ jsx13(KV, { label: "Combined Output", value: blueprint.combined_output })
|
|
1209
1387
|
] });
|
|
1210
1388
|
}
|
|
1211
1389
|
|
|
1212
1390
|
// src/graph/react/detail/sections/PipeBatchDetail.tsx
|
|
1213
|
-
import { Fragment as Fragment9, jsx as
|
|
1391
|
+
import { Fragment as Fragment9, jsx as jsx14, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1214
1392
|
function PipeBatchSection({
|
|
1215
1393
|
blueprint,
|
|
1216
1394
|
executionData
|
|
1217
1395
|
}) {
|
|
1218
1396
|
const itemCount = executionData == null ? void 0 : executionData.item_count;
|
|
1219
|
-
return /* @__PURE__ */
|
|
1220
|
-
/* @__PURE__ */
|
|
1221
|
-
/* @__PURE__ */
|
|
1222
|
-
/* @__PURE__ */
|
|
1223
|
-
itemCount != null && /* @__PURE__ */
|
|
1397
|
+
return /* @__PURE__ */ jsxs14(Fragment9, { children: [
|
|
1398
|
+
/* @__PURE__ */ jsx14(KV, { label: "Branch Pipe", value: blueprint.branch_pipe_code }),
|
|
1399
|
+
/* @__PURE__ */ jsx14(KV, { label: "Input List Variable", value: blueprint.batch_params.input_list_stuff_name }),
|
|
1400
|
+
/* @__PURE__ */ jsx14(KV, { label: "Input Item Variable", value: blueprint.batch_params.input_item_stuff_name }),
|
|
1401
|
+
itemCount != null && /* @__PURE__ */ jsx14(KV, { label: "Items Processed", value: itemCount })
|
|
1224
1402
|
] });
|
|
1225
1403
|
}
|
|
1226
1404
|
|
|
@@ -1243,7 +1421,7 @@ function shouldDumpExecutionData(pipeType, hasBlueprint) {
|
|
|
1243
1421
|
}
|
|
1244
1422
|
|
|
1245
1423
|
// src/graph/react/detail/PipeDetailPanel.tsx
|
|
1246
|
-
import { Fragment as Fragment10, jsx as
|
|
1424
|
+
import { Fragment as Fragment10, jsx as jsx15, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1247
1425
|
var PIPE_TYPE_BADGES = {
|
|
1248
1426
|
PipeLLM: "LLM",
|
|
1249
1427
|
PipeExtract: "Extract",
|
|
@@ -1273,7 +1451,7 @@ var STATUS_COLORS = {
|
|
|
1273
1451
|
canceled: "#6272a4"
|
|
1274
1452
|
};
|
|
1275
1453
|
function PipeDetailPanel({ node, spec, onConceptClick }) {
|
|
1276
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
1454
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
1277
1455
|
const pipeType = node.pipe_type;
|
|
1278
1456
|
const isController = CONTROLLER_TYPES.has(pipeType);
|
|
1279
1457
|
const isStatic = isStaticGraphSpec(spec);
|
|
@@ -1292,20 +1470,21 @@ function PipeDetailPanel({ node, spec, onConceptClick }) {
|
|
|
1292
1470
|
}
|
|
1293
1471
|
return void 0;
|
|
1294
1472
|
}, [node.pipe_code, spec]);
|
|
1473
|
+
const [usageExpanded, setUsageExpanded] = React6.useState(false);
|
|
1295
1474
|
const inputs = (_c = (_b = node.io) == null ? void 0 : _b.inputs) != null ? _c : [];
|
|
1296
1475
|
const outputs = (_e = (_d = node.io) == null ? void 0 : _d.outputs) != null ? _e : [];
|
|
1297
1476
|
const description = (_f = blueprint == null ? void 0 : blueprint.description) != null ? _f : node.description;
|
|
1298
|
-
return /* @__PURE__ */
|
|
1299
|
-
/* @__PURE__ */
|
|
1300
|
-
/* @__PURE__ */
|
|
1301
|
-
/* @__PURE__ */
|
|
1477
|
+
return /* @__PURE__ */ jsxs15(Fragment10, { children: [
|
|
1478
|
+
/* @__PURE__ */ jsxs15("div", { className: "detail-sticky-header", children: [
|
|
1479
|
+
/* @__PURE__ */ jsxs15("div", { className: "detail-header", children: [
|
|
1480
|
+
/* @__PURE__ */ jsx15(
|
|
1302
1481
|
"span",
|
|
1303
1482
|
{
|
|
1304
1483
|
className: `detail-badge ${isController ? "detail-badge--controller" : "detail-badge--operator"}`,
|
|
1305
1484
|
children: badge
|
|
1306
1485
|
}
|
|
1307
1486
|
),
|
|
1308
|
-
/* @__PURE__ */
|
|
1487
|
+
/* @__PURE__ */ jsx15(
|
|
1309
1488
|
"span",
|
|
1310
1489
|
{
|
|
1311
1490
|
className: `detail-pipe-code ${isController ? "detail-pipe-code--controller" : ""}`,
|
|
@@ -1313,54 +1492,66 @@ function PipeDetailPanel({ node, spec, onConceptClick }) {
|
|
|
1313
1492
|
}
|
|
1314
1493
|
)
|
|
1315
1494
|
] }),
|
|
1316
|
-
!isStatic && /* @__PURE__ */
|
|
1317
|
-
/* @__PURE__ */
|
|
1318
|
-
/* @__PURE__ */
|
|
1319
|
-
((_g = node.timing) == null ? void 0 : _g.duration) != null && /* @__PURE__ */
|
|
1495
|
+
!isStatic && /* @__PURE__ */ jsxs15("div", { className: "detail-status", children: [
|
|
1496
|
+
/* @__PURE__ */ jsx15("span", { className: "detail-status-dot", style: { background: statusColor } }),
|
|
1497
|
+
/* @__PURE__ */ jsx15("span", { className: "detail-status-label", style: { color: statusColor }, children: status }),
|
|
1498
|
+
((_g = node.timing) == null ? void 0 : _g.duration) != null && /* @__PURE__ */ jsx15("span", { className: "detail-duration", children: formatDuration(node.timing.duration) }),
|
|
1499
|
+
showsGeneratedData && node.usage && /* @__PURE__ */ jsx15(
|
|
1500
|
+
UsageCostInline,
|
|
1501
|
+
{
|
|
1502
|
+
usage: node.usage,
|
|
1503
|
+
isController,
|
|
1504
|
+
expanded: usageExpanded,
|
|
1505
|
+
onToggle: () => setUsageExpanded((value) => !value)
|
|
1506
|
+
}
|
|
1507
|
+
)
|
|
1320
1508
|
] }),
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
/* @__PURE__ */
|
|
1509
|
+
showsGeneratedData && node.usage && usageExpanded && /* @__PURE__ */ jsx15(UsageDetails, { usage: node.usage, isController }),
|
|
1510
|
+
description && /* @__PURE__ */ jsx15("div", { className: "detail-description", children: description }),
|
|
1511
|
+
inputs.length > 0 && /* @__PURE__ */ jsxs15("div", { children: [
|
|
1512
|
+
/* @__PURE__ */ jsx15("div", { className: "detail-section-label", children: "Inputs" }),
|
|
1513
|
+
/* @__PURE__ */ jsx15("div", { className: "detail-io-list", children: inputs.map((input, idx) => /* @__PURE__ */ jsxs15(
|
|
1325
1514
|
"div",
|
|
1326
1515
|
{
|
|
1327
1516
|
className: "detail-io-pill",
|
|
1328
1517
|
style: { cursor: input.concept && onConceptClick ? "pointer" : void 0 },
|
|
1329
1518
|
onClick: () => input.concept && (onConceptClick == null ? void 0 : onConceptClick(input.concept)),
|
|
1330
1519
|
children: [
|
|
1331
|
-
/* @__PURE__ */
|
|
1332
|
-
input.concept && /* @__PURE__ */
|
|
1520
|
+
/* @__PURE__ */ jsx15("span", { className: "detail-io-name", children: input.name }),
|
|
1521
|
+
input.concept && /* @__PURE__ */ jsx15("span", { className: "detail-io-concept", children: input.concept })
|
|
1333
1522
|
]
|
|
1334
1523
|
},
|
|
1335
1524
|
idx
|
|
1336
1525
|
)) })
|
|
1337
1526
|
] }),
|
|
1338
|
-
outputs.length > 0 && /* @__PURE__ */
|
|
1339
|
-
/* @__PURE__ */
|
|
1340
|
-
/* @__PURE__ */
|
|
1527
|
+
outputs.length > 0 && /* @__PURE__ */ jsxs15("div", { children: [
|
|
1528
|
+
/* @__PURE__ */ jsx15("div", { className: "detail-section-label", children: "Output" }),
|
|
1529
|
+
/* @__PURE__ */ jsx15("div", { className: "detail-io-list", children: outputs.map((output, idx) => /* @__PURE__ */ jsxs15(
|
|
1341
1530
|
"div",
|
|
1342
1531
|
{
|
|
1343
1532
|
className: "detail-io-pill",
|
|
1344
1533
|
style: { cursor: output.concept && onConceptClick ? "pointer" : void 0 },
|
|
1345
1534
|
onClick: () => output.concept && (onConceptClick == null ? void 0 : onConceptClick(output.concept)),
|
|
1346
1535
|
children: [
|
|
1347
|
-
/* @__PURE__ */
|
|
1348
|
-
output.concept && /* @__PURE__ */
|
|
1536
|
+
/* @__PURE__ */ jsx15("span", { className: "detail-io-name", children: output.name }),
|
|
1537
|
+
output.concept && /* @__PURE__ */ jsx15("span", { className: "detail-io-concept", children: output.concept })
|
|
1349
1538
|
]
|
|
1350
1539
|
},
|
|
1351
1540
|
idx
|
|
1352
1541
|
)) })
|
|
1353
1542
|
] }),
|
|
1354
|
-
(inputs.length > 0 || outputs.length > 0) && /* @__PURE__ */
|
|
1543
|
+
(inputs.length > 0 || outputs.length > 0) && /* @__PURE__ */ jsx15("div", { style: { borderTop: "1px solid rgba(255,255,255,0.06)", margin: "4px 0" } })
|
|
1355
1544
|
] }),
|
|
1356
|
-
blueprint && /* @__PURE__ */
|
|
1545
|
+
blueprint && /* @__PURE__ */ jsx15(
|
|
1357
1546
|
BlueprintSection,
|
|
1358
1547
|
{
|
|
1359
1548
|
blueprint,
|
|
1360
|
-
executionData: showsGeneratedData ? node.execution_data : void 0
|
|
1549
|
+
executionData: showsGeneratedData ? node.execution_data : void 0,
|
|
1550
|
+
modelsRan: showsGeneratedData ? (_h = node.usage) == null ? void 0 : _h.by_model : void 0,
|
|
1551
|
+
modelHandles: node.execution_data
|
|
1361
1552
|
}
|
|
1362
1553
|
),
|
|
1363
|
-
showsGeneratedData && node.execution_data && Object.keys(node.execution_data).length > 0 && /* @__PURE__ */
|
|
1554
|
+
showsGeneratedData && node.execution_data && Object.keys(node.execution_data).length > 0 && /* @__PURE__ */ jsx15(
|
|
1364
1555
|
ExecutionDataSection,
|
|
1365
1556
|
{
|
|
1366
1557
|
executionData: node.execution_data,
|
|
@@ -1368,14 +1559,14 @@ function PipeDetailPanel({ node, spec, onConceptClick }) {
|
|
|
1368
1559
|
hasBlueprint: !!blueprint
|
|
1369
1560
|
}
|
|
1370
1561
|
),
|
|
1371
|
-
node.error && /* @__PURE__ */
|
|
1372
|
-
/* @__PURE__ */
|
|
1373
|
-
/* @__PURE__ */
|
|
1374
|
-
node.error.stack && /* @__PURE__ */
|
|
1562
|
+
node.error && /* @__PURE__ */ jsxs15("div", { className: "detail-error", children: [
|
|
1563
|
+
/* @__PURE__ */ jsx15("div", { className: "detail-error-type", children: node.error.error_type }),
|
|
1564
|
+
/* @__PURE__ */ jsx15("div", { className: "detail-error-message", children: node.error.message }),
|
|
1565
|
+
node.error.stack && /* @__PURE__ */ jsx15("div", { className: "detail-error-stack", children: node.error.stack })
|
|
1375
1566
|
] }),
|
|
1376
|
-
showsGeneratedData && node.metrics && Object.keys(node.metrics).length > 0 && /* @__PURE__ */
|
|
1377
|
-
/* @__PURE__ */
|
|
1378
|
-
Object.entries(node.metrics).map(([key, value]) => /* @__PURE__ */
|
|
1567
|
+
showsGeneratedData && node.metrics && Object.keys(node.metrics).length > 0 && /* @__PURE__ */ jsxs15("div", { children: [
|
|
1568
|
+
/* @__PURE__ */ jsx15("div", { className: "detail-section-label", children: "Metrics" }),
|
|
1569
|
+
Object.entries(node.metrics).map(([key, value]) => /* @__PURE__ */ jsx15(
|
|
1379
1570
|
KV,
|
|
1380
1571
|
{
|
|
1381
1572
|
label: key,
|
|
@@ -1384,48 +1575,89 @@ function PipeDetailPanel({ node, spec, onConceptClick }) {
|
|
|
1384
1575
|
key
|
|
1385
1576
|
))
|
|
1386
1577
|
] }),
|
|
1387
|
-
node.tags && Object.keys(node.tags).length > 0 && /* @__PURE__ */
|
|
1388
|
-
/* @__PURE__ */
|
|
1389
|
-
/* @__PURE__ */
|
|
1390
|
-
/* @__PURE__ */
|
|
1578
|
+
node.tags && Object.keys(node.tags).length > 0 && /* @__PURE__ */ jsxs15("div", { children: [
|
|
1579
|
+
/* @__PURE__ */ jsx15("div", { className: "detail-section-label", children: "Tags" }),
|
|
1580
|
+
/* @__PURE__ */ jsx15("div", { className: "detail-tags", children: Object.entries(node.tags).map(([key, value]) => /* @__PURE__ */ jsxs15("span", { className: "detail-tag", children: [
|
|
1581
|
+
/* @__PURE__ */ jsxs15("span", { className: "detail-tag-key", children: [
|
|
1391
1582
|
key,
|
|
1392
1583
|
": "
|
|
1393
1584
|
] }),
|
|
1394
|
-
/* @__PURE__ */
|
|
1585
|
+
/* @__PURE__ */ jsx15("span", { className: "detail-tag-value", children: value })
|
|
1395
1586
|
] }, key)) })
|
|
1396
1587
|
] }),
|
|
1397
|
-
!blueprint && /* @__PURE__ */
|
|
1588
|
+
!blueprint && /* @__PURE__ */ jsx15("div", { className: "detail-not-available", children: "Blueprint not available" })
|
|
1398
1589
|
] });
|
|
1399
1590
|
}
|
|
1400
1591
|
function BlueprintSection({
|
|
1401
1592
|
blueprint,
|
|
1402
|
-
executionData
|
|
1593
|
+
executionData,
|
|
1594
|
+
modelsRan,
|
|
1595
|
+
modelHandles
|
|
1403
1596
|
}) {
|
|
1404
1597
|
switch (blueprint.type) {
|
|
1405
1598
|
case "PipeLLM":
|
|
1406
|
-
return /* @__PURE__ */
|
|
1599
|
+
return /* @__PURE__ */ jsx15(
|
|
1600
|
+
PipeLLMSection,
|
|
1601
|
+
{
|
|
1602
|
+
blueprint,
|
|
1603
|
+
executionData,
|
|
1604
|
+
modelsRan,
|
|
1605
|
+
modelHandles
|
|
1606
|
+
}
|
|
1607
|
+
);
|
|
1407
1608
|
case "PipeImgGen":
|
|
1408
|
-
return /* @__PURE__ */
|
|
1609
|
+
return /* @__PURE__ */ jsx15(
|
|
1610
|
+
PipeImgGenSection,
|
|
1611
|
+
{
|
|
1612
|
+
blueprint,
|
|
1613
|
+
executionData,
|
|
1614
|
+
modelsRan,
|
|
1615
|
+
modelHandles
|
|
1616
|
+
}
|
|
1617
|
+
);
|
|
1409
1618
|
case "PipeCompose":
|
|
1410
|
-
return /* @__PURE__ */
|
|
1619
|
+
return /* @__PURE__ */ jsx15(PipeComposeSection, { blueprint, executionData });
|
|
1411
1620
|
case "PipeExtract":
|
|
1412
|
-
return /* @__PURE__ */
|
|
1621
|
+
return /* @__PURE__ */ jsx15(
|
|
1622
|
+
PipeExtractSection,
|
|
1623
|
+
{
|
|
1624
|
+
blueprint,
|
|
1625
|
+
modelsRan,
|
|
1626
|
+
modelHandles
|
|
1627
|
+
}
|
|
1628
|
+
);
|
|
1413
1629
|
case "PipeSearch":
|
|
1414
|
-
return /* @__PURE__ */
|
|
1630
|
+
return /* @__PURE__ */ jsx15(
|
|
1631
|
+
PipeSearchSection,
|
|
1632
|
+
{
|
|
1633
|
+
blueprint,
|
|
1634
|
+
executionData,
|
|
1635
|
+
modelsRan,
|
|
1636
|
+
modelHandles
|
|
1637
|
+
}
|
|
1638
|
+
);
|
|
1415
1639
|
case "PipeStructure":
|
|
1416
|
-
return /* @__PURE__ */
|
|
1640
|
+
return /* @__PURE__ */ jsx15(
|
|
1641
|
+
PipeStructureSection,
|
|
1642
|
+
{
|
|
1643
|
+
blueprint,
|
|
1644
|
+
executionData,
|
|
1645
|
+
modelsRan,
|
|
1646
|
+
modelHandles
|
|
1647
|
+
}
|
|
1648
|
+
);
|
|
1417
1649
|
case "PipeSequence":
|
|
1418
|
-
return /* @__PURE__ */
|
|
1650
|
+
return /* @__PURE__ */ jsx15(PipeSequenceSection, { blueprint, executionData });
|
|
1419
1651
|
case "PipeParallel":
|
|
1420
|
-
return /* @__PURE__ */
|
|
1652
|
+
return /* @__PURE__ */ jsx15(PipeParallelSection, { blueprint, executionData });
|
|
1421
1653
|
case "PipeCondition":
|
|
1422
|
-
return /* @__PURE__ */
|
|
1654
|
+
return /* @__PURE__ */ jsx15(PipeConditionSection, { blueprint, executionData });
|
|
1423
1655
|
case "PipeBatch":
|
|
1424
|
-
return /* @__PURE__ */
|
|
1656
|
+
return /* @__PURE__ */ jsx15(PipeBatchSection, { blueprint, executionData });
|
|
1425
1657
|
case "PipeFunc":
|
|
1426
1658
|
return null;
|
|
1427
1659
|
case "PipeSignature":
|
|
1428
|
-
return /* @__PURE__ */
|
|
1660
|
+
return /* @__PURE__ */ jsx15("div", { className: "detail-not-available", children: "Signature stub \u2014 declared but not yet implemented." });
|
|
1429
1661
|
default:
|
|
1430
1662
|
return null;
|
|
1431
1663
|
}
|
|
@@ -1436,20 +1668,20 @@ function ExecutionDataSection({
|
|
|
1436
1668
|
hasBlueprint
|
|
1437
1669
|
}) {
|
|
1438
1670
|
if (!shouldDumpExecutionData(pipeType, hasBlueprint)) return null;
|
|
1439
|
-
return /* @__PURE__ */
|
|
1671
|
+
return /* @__PURE__ */ jsx15(GenericExecutionData, { data: executionData });
|
|
1440
1672
|
}
|
|
1441
1673
|
function GenericExecutionData({ data }) {
|
|
1442
1674
|
const entries = Object.entries(data);
|
|
1443
1675
|
if (entries.length === 0) return null;
|
|
1444
|
-
return /* @__PURE__ */
|
|
1445
|
-
/* @__PURE__ */
|
|
1446
|
-
entries.map(([key, value]) => /* @__PURE__ */
|
|
1676
|
+
return /* @__PURE__ */ jsxs15(Fragment10, { children: [
|
|
1677
|
+
/* @__PURE__ */ jsx15("div", { className: "detail-section-label", children: "Execution" }),
|
|
1678
|
+
entries.map(([key, value]) => /* @__PURE__ */ jsx15(KV, { label: key, value: String(value) }, key))
|
|
1447
1679
|
] });
|
|
1448
1680
|
}
|
|
1449
1681
|
|
|
1450
1682
|
// src/graph/react/detail/ConceptDetailPanel.tsx
|
|
1451
1683
|
import React7 from "react";
|
|
1452
|
-
import { Fragment as Fragment11, jsx as
|
|
1684
|
+
import { Fragment as Fragment11, jsx as jsx16, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1453
1685
|
function ConceptDetailPanel({
|
|
1454
1686
|
concept,
|
|
1455
1687
|
ioData,
|
|
@@ -1460,17 +1692,17 @@ function ConceptDetailPanel({
|
|
|
1460
1692
|
instanceKey
|
|
1461
1693
|
}) {
|
|
1462
1694
|
var _a;
|
|
1463
|
-
return /* @__PURE__ */
|
|
1464
|
-
/* @__PURE__ */
|
|
1465
|
-
/* @__PURE__ */
|
|
1466
|
-
/* @__PURE__ */
|
|
1695
|
+
return /* @__PURE__ */ jsxs16(Fragment11, { children: [
|
|
1696
|
+
/* @__PURE__ */ jsxs16("div", { className: "detail-header", children: [
|
|
1697
|
+
/* @__PURE__ */ jsx16("span", { className: "detail-concept-code", children: concept.code }),
|
|
1698
|
+
/* @__PURE__ */ jsx16("span", { className: "detail-concept-domain", children: concept.domain_code })
|
|
1467
1699
|
] }),
|
|
1468
|
-
concept.description && /* @__PURE__ */
|
|
1469
|
-
concept.refines && /* @__PURE__ */
|
|
1700
|
+
concept.description && /* @__PURE__ */ jsx16("div", { className: "detail-description", children: concept.description }),
|
|
1701
|
+
concept.refines && /* @__PURE__ */ jsxs16("div", { className: "detail-refines", children: [
|
|
1470
1702
|
"refines ",
|
|
1471
|
-
/* @__PURE__ */
|
|
1703
|
+
/* @__PURE__ */ jsx16("span", { className: "detail-refines-code", children: concept.refines })
|
|
1472
1704
|
] }),
|
|
1473
|
-
/* @__PURE__ */
|
|
1705
|
+
/* @__PURE__ */ jsx16(
|
|
1474
1706
|
ConceptBody,
|
|
1475
1707
|
{
|
|
1476
1708
|
concept,
|
|
@@ -1497,10 +1729,10 @@ function ConceptBody({
|
|
|
1497
1729
|
const baseId = React7.useId();
|
|
1498
1730
|
const tabId = (tab) => `${baseId}-tab-${tab}`;
|
|
1499
1731
|
const panelId = (tab) => `${baseId}-tabpanel-${tab}`;
|
|
1500
|
-
const structure = concept.json_schema ? /* @__PURE__ */
|
|
1501
|
-
/* @__PURE__ */
|
|
1502
|
-
/* @__PURE__ */
|
|
1503
|
-
] }) : /* @__PURE__ */
|
|
1732
|
+
const structure = concept.json_schema ? /* @__PURE__ */ jsxs16("div", { children: [
|
|
1733
|
+
/* @__PURE__ */ jsx16("div", { className: "detail-section-label", children: "Structure" }),
|
|
1734
|
+
/* @__PURE__ */ jsx16(SchemaTable, { schema: concept.json_schema })
|
|
1735
|
+
] }) : /* @__PURE__ */ jsx16("div", { className: "detail-not-available", children: "Schema not available" });
|
|
1504
1736
|
if (!hasData) return structure;
|
|
1505
1737
|
const onTabKeyDown = (event) => {
|
|
1506
1738
|
var _a;
|
|
@@ -1523,7 +1755,7 @@ function ConceptBody({
|
|
|
1523
1755
|
setActiveTab(next);
|
|
1524
1756
|
(_a = document.getElementById(tabId(next))) == null ? void 0 : _a.focus();
|
|
1525
1757
|
};
|
|
1526
|
-
const renderTab = (tab, label) => /* @__PURE__ */
|
|
1758
|
+
const renderTab = (tab, label) => /* @__PURE__ */ jsx16(
|
|
1527
1759
|
"button",
|
|
1528
1760
|
{
|
|
1529
1761
|
type: "button",
|
|
@@ -1538,12 +1770,12 @@ function ConceptBody({
|
|
|
1538
1770
|
children: label
|
|
1539
1771
|
}
|
|
1540
1772
|
);
|
|
1541
|
-
return /* @__PURE__ */
|
|
1542
|
-
/* @__PURE__ */
|
|
1773
|
+
return /* @__PURE__ */ jsxs16(Fragment11, { children: [
|
|
1774
|
+
/* @__PURE__ */ jsxs16("div", { className: "detail-tabs", role: "tablist", "aria-label": "Concept views", children: [
|
|
1543
1775
|
renderTab("data", "Data"),
|
|
1544
1776
|
renderTab("structure", "Structure")
|
|
1545
1777
|
] }),
|
|
1546
|
-
/* @__PURE__ */
|
|
1778
|
+
/* @__PURE__ */ jsx16("div", { role: "tabpanel", id: panelId(activeTab), "aria-labelledby": tabId(activeTab), children: activeTab === "data" ? /* @__PURE__ */ jsx16(
|
|
1547
1779
|
StuffViewer,
|
|
1548
1780
|
{
|
|
1549
1781
|
stuff: toStuffViewerData(ioData),
|
|
@@ -1559,23 +1791,23 @@ function SchemaTable({ schema }) {
|
|
|
1559
1791
|
const properties = schema.properties;
|
|
1560
1792
|
const required = new Set((_a = schema.required) != null ? _a : []);
|
|
1561
1793
|
if (!properties || Object.keys(properties).length === 0) {
|
|
1562
|
-
return /* @__PURE__ */
|
|
1794
|
+
return /* @__PURE__ */ jsx16("div", { className: "detail-not-available", children: "No fields defined" });
|
|
1563
1795
|
}
|
|
1564
1796
|
const fields = Object.entries(properties);
|
|
1565
|
-
return /* @__PURE__ */
|
|
1566
|
-
/* @__PURE__ */
|
|
1567
|
-
/* @__PURE__ */
|
|
1568
|
-
/* @__PURE__ */
|
|
1569
|
-
/* @__PURE__ */
|
|
1570
|
-
/* @__PURE__ */
|
|
1797
|
+
return /* @__PURE__ */ jsxs16("table", { className: "detail-schema-table", children: [
|
|
1798
|
+
/* @__PURE__ */ jsx16("thead", { children: /* @__PURE__ */ jsxs16("tr", { children: [
|
|
1799
|
+
/* @__PURE__ */ jsx16("th", { children: "Field" }),
|
|
1800
|
+
/* @__PURE__ */ jsx16("th", { children: "Type" }),
|
|
1801
|
+
/* @__PURE__ */ jsx16("th", {}),
|
|
1802
|
+
/* @__PURE__ */ jsx16("th", { children: "Description" })
|
|
1571
1803
|
] }) }),
|
|
1572
|
-
/* @__PURE__ */
|
|
1804
|
+
/* @__PURE__ */ jsx16("tbody", { children: fields.map(([fieldName, fieldSchema]) => {
|
|
1573
1805
|
var _a2;
|
|
1574
|
-
return /* @__PURE__ */
|
|
1575
|
-
/* @__PURE__ */
|
|
1576
|
-
/* @__PURE__ */
|
|
1577
|
-
/* @__PURE__ */
|
|
1578
|
-
/* @__PURE__ */
|
|
1806
|
+
return /* @__PURE__ */ jsxs16("tr", { children: [
|
|
1807
|
+
/* @__PURE__ */ jsx16("td", { className: "detail-schema-field", children: fieldName }),
|
|
1808
|
+
/* @__PURE__ */ jsx16("td", { className: "detail-schema-type", children: extractType(fieldSchema) }),
|
|
1809
|
+
/* @__PURE__ */ jsx16("td", { children: required.has(fieldName) && /* @__PURE__ */ jsx16("span", { className: "detail-schema-required", children: "req" }) }),
|
|
1810
|
+
/* @__PURE__ */ jsx16("td", { children: (_a2 = fieldSchema.description) != null ? _a2 : "" })
|
|
1579
1811
|
] }, fieldName);
|
|
1580
1812
|
}) })
|
|
1581
1813
|
] });
|
|
@@ -1642,10 +1874,10 @@ function toAppEdges(edges) {
|
|
|
1642
1874
|
}
|
|
1643
1875
|
|
|
1644
1876
|
// src/graph/react/viewer/renderLabel.tsx
|
|
1645
|
-
import { jsx as
|
|
1877
|
+
import { jsx as jsx17, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1646
1878
|
function renderLabel(desc) {
|
|
1647
1879
|
if (desc.kind === "pipe") {
|
|
1648
|
-
return /* @__PURE__ */
|
|
1880
|
+
return /* @__PURE__ */ jsx17(
|
|
1649
1881
|
"div",
|
|
1650
1882
|
{
|
|
1651
1883
|
style: {
|
|
@@ -1659,7 +1891,7 @@ function renderLabel(desc) {
|
|
|
1659
1891
|
minWidth: 0
|
|
1660
1892
|
},
|
|
1661
1893
|
title: desc.label,
|
|
1662
|
-
children: /* @__PURE__ */
|
|
1894
|
+
children: /* @__PURE__ */ jsx17(
|
|
1663
1895
|
"span",
|
|
1664
1896
|
{
|
|
1665
1897
|
style: {
|
|
@@ -1678,7 +1910,7 @@ function renderLabel(desc) {
|
|
|
1678
1910
|
}
|
|
1679
1911
|
);
|
|
1680
1912
|
}
|
|
1681
|
-
return /* @__PURE__ */
|
|
1913
|
+
return /* @__PURE__ */ jsxs17(
|
|
1682
1914
|
"div",
|
|
1683
1915
|
{
|
|
1684
1916
|
style: {
|
|
@@ -1694,7 +1926,7 @@ function renderLabel(desc) {
|
|
|
1694
1926
|
},
|
|
1695
1927
|
title: desc.concept ? `${desc.label}: ${desc.concept}` : desc.label,
|
|
1696
1928
|
children: [
|
|
1697
|
-
/* @__PURE__ */
|
|
1929
|
+
/* @__PURE__ */ jsx17(
|
|
1698
1930
|
"span",
|
|
1699
1931
|
{
|
|
1700
1932
|
style: {
|
|
@@ -1710,7 +1942,7 @@ function renderLabel(desc) {
|
|
|
1710
1942
|
children: desc.label
|
|
1711
1943
|
}
|
|
1712
1944
|
),
|
|
1713
|
-
desc.concept && /* @__PURE__ */
|
|
1945
|
+
desc.concept && /* @__PURE__ */ jsx17(
|
|
1714
1946
|
"span",
|
|
1715
1947
|
{
|
|
1716
1948
|
style: {
|
|
@@ -1744,7 +1976,7 @@ import React8 from "react";
|
|
|
1744
1976
|
import { Panel } from "@xyflow/react";
|
|
1745
1977
|
|
|
1746
1978
|
// src/graph/react/viewer/ValidationPanel.tsx
|
|
1747
|
-
import { jsx as
|
|
1979
|
+
import { jsx as jsx18, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1748
1980
|
function validationLabel(state, issueCount) {
|
|
1749
1981
|
const issues = issueCount === 1 ? "1 issue" : `${issueCount} issues`;
|
|
1750
1982
|
switch (state) {
|
|
@@ -1807,7 +2039,7 @@ function ValidationPanel({
|
|
|
1807
2039
|
placement,
|
|
1808
2040
|
id
|
|
1809
2041
|
}) {
|
|
1810
|
-
return /* @__PURE__ */
|
|
2042
|
+
return /* @__PURE__ */ jsxs18(
|
|
1811
2043
|
"div",
|
|
1812
2044
|
{
|
|
1813
2045
|
id,
|
|
@@ -1815,18 +2047,18 @@ function ValidationPanel({
|
|
|
1815
2047
|
role: "region",
|
|
1816
2048
|
"aria-label": "Validation issues",
|
|
1817
2049
|
children: [
|
|
1818
|
-
/* @__PURE__ */
|
|
1819
|
-
issues.length === 0 ? /* @__PURE__ */
|
|
2050
|
+
/* @__PURE__ */ jsx18("div", { className: "graph-validation-panel-header", children: validationLabel(state, issues.length) }),
|
|
2051
|
+
issues.length === 0 ? /* @__PURE__ */ jsx18("div", { className: "graph-validation-empty", children: validationEmptyText(state) }) : /* @__PURE__ */ jsx18("ul", { className: "graph-validation-issues", role: "list", children: issues.map((issue, index) => {
|
|
1820
2052
|
const clickable = onIssueClick !== void 0;
|
|
1821
|
-
const meta = (issue.context || issue.file) && /* @__PURE__ */
|
|
1822
|
-
issue.context && /* @__PURE__ */
|
|
1823
|
-
issue.file && /* @__PURE__ */
|
|
2053
|
+
const meta = (issue.context || issue.file) && /* @__PURE__ */ jsxs18("div", { className: "graph-validation-issue-meta", children: [
|
|
2054
|
+
issue.context && /* @__PURE__ */ jsx18("span", { className: "graph-validation-issue-context", children: issue.context }),
|
|
2055
|
+
issue.file && /* @__PURE__ */ jsx18("span", { className: "graph-validation-issue-file", children: issue.file })
|
|
1824
2056
|
] });
|
|
1825
|
-
return /* @__PURE__ */
|
|
2057
|
+
return /* @__PURE__ */ jsx18(
|
|
1826
2058
|
"li",
|
|
1827
2059
|
{
|
|
1828
2060
|
className: `graph-validation-issue graph-validation-issue--${issue.severity}` + (clickable ? " graph-validation-issue--clickable" : ""),
|
|
1829
|
-
children: /* @__PURE__ */
|
|
2061
|
+
children: /* @__PURE__ */ jsxs18(
|
|
1830
2062
|
"div",
|
|
1831
2063
|
{
|
|
1832
2064
|
className: "graph-validation-issue-body",
|
|
@@ -1841,8 +2073,8 @@ function ValidationPanel({
|
|
|
1841
2073
|
} : void 0,
|
|
1842
2074
|
children: [
|
|
1843
2075
|
meta,
|
|
1844
|
-
/* @__PURE__ */
|
|
1845
|
-
issue.suggestedFix && /* @__PURE__ */
|
|
2076
|
+
/* @__PURE__ */ jsx18("div", { className: "graph-validation-issue-message", children: issue.message }),
|
|
2077
|
+
issue.suggestedFix && /* @__PURE__ */ jsx18("div", { className: "graph-validation-issue-fix", children: issue.suggestedFix })
|
|
1846
2078
|
]
|
|
1847
2079
|
}
|
|
1848
2080
|
)
|
|
@@ -1856,9 +2088,9 @@ function ValidationPanel({
|
|
|
1856
2088
|
}
|
|
1857
2089
|
|
|
1858
2090
|
// src/graph/react/viewer/GraphToolbar.tsx
|
|
1859
|
-
import { Fragment as Fragment12, jsx as
|
|
2091
|
+
import { Fragment as Fragment12, jsx as jsx19, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1860
2092
|
var REACTFLOW_PANEL_MARGIN = 15;
|
|
1861
|
-
var ARROW_RIGHT_ICON = /* @__PURE__ */
|
|
2093
|
+
var ARROW_RIGHT_ICON = /* @__PURE__ */ jsxs19(
|
|
1862
2094
|
"svg",
|
|
1863
2095
|
{
|
|
1864
2096
|
viewBox: "0 0 24 24",
|
|
@@ -1870,12 +2102,12 @@ var ARROW_RIGHT_ICON = /* @__PURE__ */ jsxs18(
|
|
|
1870
2102
|
strokeLinecap: "round",
|
|
1871
2103
|
strokeLinejoin: "round",
|
|
1872
2104
|
children: [
|
|
1873
|
-
/* @__PURE__ */
|
|
1874
|
-
/* @__PURE__ */
|
|
2105
|
+
/* @__PURE__ */ jsx19("line", { x1: "5", y1: "12", x2: "19", y2: "12" }),
|
|
2106
|
+
/* @__PURE__ */ jsx19("polyline", { points: "12 5 19 12 12 19" })
|
|
1875
2107
|
]
|
|
1876
2108
|
}
|
|
1877
2109
|
);
|
|
1878
|
-
var ARROW_DOWN_ICON = /* @__PURE__ */
|
|
2110
|
+
var ARROW_DOWN_ICON = /* @__PURE__ */ jsxs19(
|
|
1879
2111
|
"svg",
|
|
1880
2112
|
{
|
|
1881
2113
|
viewBox: "0 0 24 24",
|
|
@@ -1887,12 +2119,12 @@ var ARROW_DOWN_ICON = /* @__PURE__ */ jsxs18(
|
|
|
1887
2119
|
strokeLinecap: "round",
|
|
1888
2120
|
strokeLinejoin: "round",
|
|
1889
2121
|
children: [
|
|
1890
|
-
/* @__PURE__ */
|
|
1891
|
-
/* @__PURE__ */
|
|
2122
|
+
/* @__PURE__ */ jsx19("line", { x1: "12", y1: "5", x2: "12", y2: "19" }),
|
|
2123
|
+
/* @__PURE__ */ jsx19("polyline", { points: "19 12 12 19 5 12" })
|
|
1892
2124
|
]
|
|
1893
2125
|
}
|
|
1894
2126
|
);
|
|
1895
|
-
var MINUS_ICON = /* @__PURE__ */
|
|
2127
|
+
var MINUS_ICON = /* @__PURE__ */ jsx19(
|
|
1896
2128
|
"svg",
|
|
1897
2129
|
{
|
|
1898
2130
|
viewBox: "0 0 24 24",
|
|
@@ -1903,10 +2135,10 @@ var MINUS_ICON = /* @__PURE__ */ jsx18(
|
|
|
1903
2135
|
strokeWidth: "2",
|
|
1904
2136
|
strokeLinecap: "round",
|
|
1905
2137
|
strokeLinejoin: "round",
|
|
1906
|
-
children: /* @__PURE__ */
|
|
2138
|
+
children: /* @__PURE__ */ jsx19("line", { x1: "5", y1: "12", x2: "19", y2: "12" })
|
|
1907
2139
|
}
|
|
1908
2140
|
);
|
|
1909
|
-
var PLUS_ICON = /* @__PURE__ */
|
|
2141
|
+
var PLUS_ICON = /* @__PURE__ */ jsxs19(
|
|
1910
2142
|
"svg",
|
|
1911
2143
|
{
|
|
1912
2144
|
viewBox: "0 0 24 24",
|
|
@@ -1918,12 +2150,12 @@ var PLUS_ICON = /* @__PURE__ */ jsxs18(
|
|
|
1918
2150
|
strokeLinecap: "round",
|
|
1919
2151
|
strokeLinejoin: "round",
|
|
1920
2152
|
children: [
|
|
1921
|
-
/* @__PURE__ */
|
|
1922
|
-
/* @__PURE__ */
|
|
2153
|
+
/* @__PURE__ */ jsx19("line", { x1: "12", y1: "5", x2: "12", y2: "19" }),
|
|
2154
|
+
/* @__PURE__ */ jsx19("line", { x1: "5", y1: "12", x2: "19", y2: "12" })
|
|
1923
2155
|
]
|
|
1924
2156
|
}
|
|
1925
2157
|
);
|
|
1926
|
-
var FIT_VIEW_ICON = /* @__PURE__ */
|
|
2158
|
+
var FIT_VIEW_ICON = /* @__PURE__ */ jsxs19(
|
|
1927
2159
|
"svg",
|
|
1928
2160
|
{
|
|
1929
2161
|
viewBox: "0 0 24 24",
|
|
@@ -1935,14 +2167,14 @@ var FIT_VIEW_ICON = /* @__PURE__ */ jsxs18(
|
|
|
1935
2167
|
strokeLinecap: "round",
|
|
1936
2168
|
strokeLinejoin: "round",
|
|
1937
2169
|
children: [
|
|
1938
|
-
/* @__PURE__ */
|
|
1939
|
-
/* @__PURE__ */
|
|
1940
|
-
/* @__PURE__ */
|
|
1941
|
-
/* @__PURE__ */
|
|
2170
|
+
/* @__PURE__ */ jsx19("polyline", { points: "15 3 21 3 21 9" }),
|
|
2171
|
+
/* @__PURE__ */ jsx19("polyline", { points: "9 21 3 21 3 15" }),
|
|
2172
|
+
/* @__PURE__ */ jsx19("line", { x1: "21", y1: "3", x2: "14", y2: "10" }),
|
|
2173
|
+
/* @__PURE__ */ jsx19("line", { x1: "3", y1: "21", x2: "10", y2: "14" })
|
|
1942
2174
|
]
|
|
1943
2175
|
}
|
|
1944
2176
|
);
|
|
1945
|
-
var BOXES_ICON = /* @__PURE__ */
|
|
2177
|
+
var BOXES_ICON = /* @__PURE__ */ jsxs19(
|
|
1946
2178
|
"svg",
|
|
1947
2179
|
{
|
|
1948
2180
|
viewBox: "0 0 24 24",
|
|
@@ -1954,22 +2186,22 @@ var BOXES_ICON = /* @__PURE__ */ jsxs18(
|
|
|
1954
2186
|
strokeLinecap: "round",
|
|
1955
2187
|
strokeLinejoin: "round",
|
|
1956
2188
|
children: [
|
|
1957
|
-
/* @__PURE__ */
|
|
1958
|
-
/* @__PURE__ */
|
|
1959
|
-
/* @__PURE__ */
|
|
1960
|
-
/* @__PURE__ */
|
|
1961
|
-
/* @__PURE__ */
|
|
1962
|
-
/* @__PURE__ */
|
|
1963
|
-
/* @__PURE__ */
|
|
1964
|
-
/* @__PURE__ */
|
|
1965
|
-
/* @__PURE__ */
|
|
1966
|
-
/* @__PURE__ */
|
|
1967
|
-
/* @__PURE__ */
|
|
1968
|
-
/* @__PURE__ */
|
|
2189
|
+
/* @__PURE__ */ jsx19("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" }),
|
|
2190
|
+
/* @__PURE__ */ jsx19("path", { d: "m7 16.5-4.74-2.85" }),
|
|
2191
|
+
/* @__PURE__ */ jsx19("path", { d: "m7 16.5 5-3" }),
|
|
2192
|
+
/* @__PURE__ */ jsx19("path", { d: "M7 16.5v5.17" }),
|
|
2193
|
+
/* @__PURE__ */ jsx19("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" }),
|
|
2194
|
+
/* @__PURE__ */ jsx19("path", { d: "m17 16.5-5-3" }),
|
|
2195
|
+
/* @__PURE__ */ jsx19("path", { d: "m17 16.5 4.74-2.85" }),
|
|
2196
|
+
/* @__PURE__ */ jsx19("path", { d: "M17 16.5v5.17" }),
|
|
2197
|
+
/* @__PURE__ */ jsx19("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" }),
|
|
2198
|
+
/* @__PURE__ */ jsx19("path", { d: "M12 8 7.26 5.15" }),
|
|
2199
|
+
/* @__PURE__ */ jsx19("path", { d: "m12 8 4.74-2.85" }),
|
|
2200
|
+
/* @__PURE__ */ jsx19("path", { d: "M12 13.5V8" })
|
|
1969
2201
|
]
|
|
1970
2202
|
}
|
|
1971
2203
|
);
|
|
1972
|
-
var FOLD_ALL_ICON = /* @__PURE__ */
|
|
2204
|
+
var FOLD_ALL_ICON = /* @__PURE__ */ jsxs19(
|
|
1973
2205
|
"svg",
|
|
1974
2206
|
{
|
|
1975
2207
|
viewBox: "0 0 24 24",
|
|
@@ -1981,15 +2213,15 @@ var FOLD_ALL_ICON = /* @__PURE__ */ jsxs18(
|
|
|
1981
2213
|
strokeLinecap: "round",
|
|
1982
2214
|
strokeLinejoin: "round",
|
|
1983
2215
|
children: [
|
|
1984
|
-
/* @__PURE__ */
|
|
1985
|
-
/* @__PURE__ */
|
|
1986
|
-
/* @__PURE__ */
|
|
1987
|
-
/* @__PURE__ */
|
|
1988
|
-
/* @__PURE__ */
|
|
2216
|
+
/* @__PURE__ */ jsx19("rect", { x: "6", y: "6", width: "12", height: "12", rx: "2" }),
|
|
2217
|
+
/* @__PURE__ */ jsx19("polyline", { points: "2 2 6 6 2 6" }),
|
|
2218
|
+
/* @__PURE__ */ jsx19("polyline", { points: "22 2 18 6 22 6" }),
|
|
2219
|
+
/* @__PURE__ */ jsx19("polyline", { points: "2 22 6 18 2 18" }),
|
|
2220
|
+
/* @__PURE__ */ jsx19("polyline", { points: "22 22 18 18 22 18" })
|
|
1989
2221
|
]
|
|
1990
2222
|
}
|
|
1991
2223
|
);
|
|
1992
|
-
var EXPAND_ALL_ICON = /* @__PURE__ */
|
|
2224
|
+
var EXPAND_ALL_ICON = /* @__PURE__ */ jsxs19(
|
|
1993
2225
|
"svg",
|
|
1994
2226
|
{
|
|
1995
2227
|
viewBox: "0 0 24 24",
|
|
@@ -2001,15 +2233,15 @@ var EXPAND_ALL_ICON = /* @__PURE__ */ jsxs18(
|
|
|
2001
2233
|
strokeLinecap: "round",
|
|
2002
2234
|
strokeLinejoin: "round",
|
|
2003
2235
|
children: [
|
|
2004
|
-
/* @__PURE__ */
|
|
2005
|
-
/* @__PURE__ */
|
|
2006
|
-
/* @__PURE__ */
|
|
2007
|
-
/* @__PURE__ */
|
|
2008
|
-
/* @__PURE__ */
|
|
2236
|
+
/* @__PURE__ */ jsx19("rect", { x: "9", y: "9", width: "6", height: "6", rx: "1" }),
|
|
2237
|
+
/* @__PURE__ */ jsx19("polyline", { points: "3 3 7 7 3 7" }),
|
|
2238
|
+
/* @__PURE__ */ jsx19("polyline", { points: "21 3 17 7 21 7" }),
|
|
2239
|
+
/* @__PURE__ */ jsx19("polyline", { points: "3 21 7 17 3 17" }),
|
|
2240
|
+
/* @__PURE__ */ jsx19("polyline", { points: "21 21 17 17 21 17" })
|
|
2009
2241
|
]
|
|
2010
2242
|
}
|
|
2011
2243
|
);
|
|
2012
|
-
var SUN_ICON = /* @__PURE__ */
|
|
2244
|
+
var SUN_ICON = /* @__PURE__ */ jsxs19(
|
|
2013
2245
|
"svg",
|
|
2014
2246
|
{
|
|
2015
2247
|
viewBox: "0 0 24 24",
|
|
@@ -2021,19 +2253,19 @@ var SUN_ICON = /* @__PURE__ */ jsxs18(
|
|
|
2021
2253
|
strokeLinecap: "round",
|
|
2022
2254
|
strokeLinejoin: "round",
|
|
2023
2255
|
children: [
|
|
2024
|
-
/* @__PURE__ */
|
|
2025
|
-
/* @__PURE__ */
|
|
2026
|
-
/* @__PURE__ */
|
|
2027
|
-
/* @__PURE__ */
|
|
2028
|
-
/* @__PURE__ */
|
|
2029
|
-
/* @__PURE__ */
|
|
2030
|
-
/* @__PURE__ */
|
|
2031
|
-
/* @__PURE__ */
|
|
2032
|
-
/* @__PURE__ */
|
|
2256
|
+
/* @__PURE__ */ jsx19("circle", { cx: "12", cy: "12", r: "4" }),
|
|
2257
|
+
/* @__PURE__ */ jsx19("line", { x1: "12", y1: "2", x2: "12", y2: "4" }),
|
|
2258
|
+
/* @__PURE__ */ jsx19("line", { x1: "12", y1: "20", x2: "12", y2: "22" }),
|
|
2259
|
+
/* @__PURE__ */ jsx19("line", { x1: "4.93", y1: "4.93", x2: "6.34", y2: "6.34" }),
|
|
2260
|
+
/* @__PURE__ */ jsx19("line", { x1: "17.66", y1: "17.66", x2: "19.07", y2: "19.07" }),
|
|
2261
|
+
/* @__PURE__ */ jsx19("line", { x1: "2", y1: "12", x2: "4", y2: "12" }),
|
|
2262
|
+
/* @__PURE__ */ jsx19("line", { x1: "20", y1: "12", x2: "22", y2: "12" }),
|
|
2263
|
+
/* @__PURE__ */ jsx19("line", { x1: "4.93", y1: "19.07", x2: "6.34", y2: "17.66" }),
|
|
2264
|
+
/* @__PURE__ */ jsx19("line", { x1: "17.66", y1: "6.34", x2: "19.07", y2: "4.93" })
|
|
2033
2265
|
]
|
|
2034
2266
|
}
|
|
2035
2267
|
);
|
|
2036
|
-
var MOON_ICON = /* @__PURE__ */
|
|
2268
|
+
var MOON_ICON = /* @__PURE__ */ jsx19(
|
|
2037
2269
|
"svg",
|
|
2038
2270
|
{
|
|
2039
2271
|
viewBox: "0 0 24 24",
|
|
@@ -2044,10 +2276,10 @@ var MOON_ICON = /* @__PURE__ */ jsx18(
|
|
|
2044
2276
|
strokeWidth: "2",
|
|
2045
2277
|
strokeLinecap: "round",
|
|
2046
2278
|
strokeLinejoin: "round",
|
|
2047
|
-
children: /* @__PURE__ */
|
|
2279
|
+
children: /* @__PURE__ */ jsx19("path", { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" })
|
|
2048
2280
|
}
|
|
2049
2281
|
);
|
|
2050
|
-
var MONITOR_ICON = /* @__PURE__ */
|
|
2282
|
+
var MONITOR_ICON = /* @__PURE__ */ jsxs19(
|
|
2051
2283
|
"svg",
|
|
2052
2284
|
{
|
|
2053
2285
|
viewBox: "0 0 24 24",
|
|
@@ -2059,13 +2291,13 @@ var MONITOR_ICON = /* @__PURE__ */ jsxs18(
|
|
|
2059
2291
|
strokeLinecap: "round",
|
|
2060
2292
|
strokeLinejoin: "round",
|
|
2061
2293
|
children: [
|
|
2062
|
-
/* @__PURE__ */
|
|
2063
|
-
/* @__PURE__ */
|
|
2064
|
-
/* @__PURE__ */
|
|
2294
|
+
/* @__PURE__ */ jsx19("rect", { x: "2", y: "3", width: "20", height: "14", rx: "2" }),
|
|
2295
|
+
/* @__PURE__ */ jsx19("line", { x1: "8", y1: "21", x2: "16", y2: "21" }),
|
|
2296
|
+
/* @__PURE__ */ jsx19("line", { x1: "12", y1: "17", x2: "12", y2: "21" })
|
|
2065
2297
|
]
|
|
2066
2298
|
}
|
|
2067
2299
|
);
|
|
2068
|
-
var SPINNER_ICON = /* @__PURE__ */
|
|
2300
|
+
var SPINNER_ICON = /* @__PURE__ */ jsx19(
|
|
2069
2301
|
"svg",
|
|
2070
2302
|
{
|
|
2071
2303
|
className: "graph-toolbar-validation-spin",
|
|
@@ -2077,10 +2309,10 @@ var SPINNER_ICON = /* @__PURE__ */ jsx18(
|
|
|
2077
2309
|
strokeWidth: "2",
|
|
2078
2310
|
strokeLinecap: "round",
|
|
2079
2311
|
strokeLinejoin: "round",
|
|
2080
|
-
children: /* @__PURE__ */
|
|
2312
|
+
children: /* @__PURE__ */ jsx19("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" })
|
|
2081
2313
|
}
|
|
2082
2314
|
);
|
|
2083
|
-
var CHECK_ICON2 = /* @__PURE__ */
|
|
2315
|
+
var CHECK_ICON2 = /* @__PURE__ */ jsx19(
|
|
2084
2316
|
"svg",
|
|
2085
2317
|
{
|
|
2086
2318
|
viewBox: "0 0 24 24",
|
|
@@ -2091,10 +2323,10 @@ var CHECK_ICON2 = /* @__PURE__ */ jsx18(
|
|
|
2091
2323
|
strokeWidth: "2",
|
|
2092
2324
|
strokeLinecap: "round",
|
|
2093
2325
|
strokeLinejoin: "round",
|
|
2094
|
-
children: /* @__PURE__ */
|
|
2326
|
+
children: /* @__PURE__ */ jsx19("polyline", { points: "20 6 9 17 4 12" })
|
|
2095
2327
|
}
|
|
2096
2328
|
);
|
|
2097
|
-
var X_CIRCLE_ICON = /* @__PURE__ */
|
|
2329
|
+
var X_CIRCLE_ICON = /* @__PURE__ */ jsxs19(
|
|
2098
2330
|
"svg",
|
|
2099
2331
|
{
|
|
2100
2332
|
viewBox: "0 0 24 24",
|
|
@@ -2106,13 +2338,13 @@ var X_CIRCLE_ICON = /* @__PURE__ */ jsxs18(
|
|
|
2106
2338
|
strokeLinecap: "round",
|
|
2107
2339
|
strokeLinejoin: "round",
|
|
2108
2340
|
children: [
|
|
2109
|
-
/* @__PURE__ */
|
|
2110
|
-
/* @__PURE__ */
|
|
2111
|
-
/* @__PURE__ */
|
|
2341
|
+
/* @__PURE__ */ jsx19("circle", { cx: "12", cy: "12", r: "10" }),
|
|
2342
|
+
/* @__PURE__ */ jsx19("line", { x1: "15", y1: "9", x2: "9", y2: "15" }),
|
|
2343
|
+
/* @__PURE__ */ jsx19("line", { x1: "9", y1: "9", x2: "15", y2: "15" })
|
|
2112
2344
|
]
|
|
2113
2345
|
}
|
|
2114
2346
|
);
|
|
2115
|
-
var ALERT_TRIANGLE_ICON = /* @__PURE__ */
|
|
2347
|
+
var ALERT_TRIANGLE_ICON = /* @__PURE__ */ jsxs19(
|
|
2116
2348
|
"svg",
|
|
2117
2349
|
{
|
|
2118
2350
|
viewBox: "0 0 24 24",
|
|
@@ -2124,9 +2356,9 @@ var ALERT_TRIANGLE_ICON = /* @__PURE__ */ jsxs18(
|
|
|
2124
2356
|
strokeLinecap: "round",
|
|
2125
2357
|
strokeLinejoin: "round",
|
|
2126
2358
|
children: [
|
|
2127
|
-
/* @__PURE__ */
|
|
2128
|
-
/* @__PURE__ */
|
|
2129
|
-
/* @__PURE__ */
|
|
2359
|
+
/* @__PURE__ */ jsx19("path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z" }),
|
|
2360
|
+
/* @__PURE__ */ jsx19("line", { x1: "12", y1: "9", x2: "12", y2: "13" }),
|
|
2361
|
+
/* @__PURE__ */ jsx19("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })
|
|
2130
2362
|
]
|
|
2131
2363
|
}
|
|
2132
2364
|
);
|
|
@@ -2228,10 +2460,10 @@ function GraphToolbar({
|
|
|
2228
2460
|
const foldAllSection = onFoldAll || onExpandAll;
|
|
2229
2461
|
const foldAllTitle = foldAllDisabled ? "Fold all controllers (nothing to fold)" : "Fold all controllers";
|
|
2230
2462
|
const expandAllTitle = expandAllDisabled ? "Expand all controllers (nothing to expand)" : "Expand all controllers";
|
|
2231
|
-
return /* @__PURE__ */
|
|
2232
|
-
validationState !== void 0 && /* @__PURE__ */
|
|
2233
|
-
/* @__PURE__ */
|
|
2234
|
-
/* @__PURE__ */
|
|
2463
|
+
return /* @__PURE__ */ jsx19(Panel, { position, className: "graph-toolbar-panel", style: panelStyle, children: /* @__PURE__ */ jsxs19("div", { className: `graph-toolbar graph-toolbar--${orientation}`, children: [
|
|
2464
|
+
validationState !== void 0 && /* @__PURE__ */ jsxs19(Fragment12, { children: [
|
|
2465
|
+
/* @__PURE__ */ jsxs19("div", { className: "graph-toolbar-validation", ref: validationRef, children: [
|
|
2466
|
+
/* @__PURE__ */ jsxs19(
|
|
2235
2467
|
"button",
|
|
2236
2468
|
{
|
|
2237
2469
|
type: "button",
|
|
@@ -2244,11 +2476,11 @@ function GraphToolbar({
|
|
|
2244
2476
|
"aria-controls": validationPanelId,
|
|
2245
2477
|
children: [
|
|
2246
2478
|
validationIcon(validationState),
|
|
2247
|
-
validationIssues.length > 0 && /* @__PURE__ */
|
|
2479
|
+
validationIssues.length > 0 && /* @__PURE__ */ jsx19("span", { className: "graph-toolbar-validation-badge", children: validationIssues.length > 99 ? "99+" : validationIssues.length })
|
|
2248
2480
|
]
|
|
2249
2481
|
}
|
|
2250
2482
|
),
|
|
2251
|
-
validationOpen && /* @__PURE__ */
|
|
2483
|
+
validationOpen && /* @__PURE__ */ jsx19(
|
|
2252
2484
|
ValidationPanel,
|
|
2253
2485
|
{
|
|
2254
2486
|
id: validationPanelId,
|
|
@@ -2259,9 +2491,9 @@ function GraphToolbar({
|
|
|
2259
2491
|
}
|
|
2260
2492
|
)
|
|
2261
2493
|
] }),
|
|
2262
|
-
/* @__PURE__ */
|
|
2494
|
+
/* @__PURE__ */ jsx19("div", { className: "graph-toolbar-separator" })
|
|
2263
2495
|
] }),
|
|
2264
|
-
onFoldAll && /* @__PURE__ */
|
|
2496
|
+
onFoldAll && /* @__PURE__ */ jsx19(
|
|
2265
2497
|
"button",
|
|
2266
2498
|
{
|
|
2267
2499
|
type: "button",
|
|
@@ -2273,7 +2505,7 @@ function GraphToolbar({
|
|
|
2273
2505
|
children: FOLD_ALL_ICON
|
|
2274
2506
|
}
|
|
2275
2507
|
),
|
|
2276
|
-
onExpandAll && /* @__PURE__ */
|
|
2508
|
+
onExpandAll && /* @__PURE__ */ jsx19(
|
|
2277
2509
|
"button",
|
|
2278
2510
|
{
|
|
2279
2511
|
type: "button",
|
|
@@ -2285,8 +2517,8 @@ function GraphToolbar({
|
|
|
2285
2517
|
children: EXPAND_ALL_ICON
|
|
2286
2518
|
}
|
|
2287
2519
|
),
|
|
2288
|
-
foldAllSection && /* @__PURE__ */
|
|
2289
|
-
/* @__PURE__ */
|
|
2520
|
+
foldAllSection && /* @__PURE__ */ jsx19("div", { className: "graph-toolbar-separator" }),
|
|
2521
|
+
/* @__PURE__ */ jsx19(
|
|
2290
2522
|
"button",
|
|
2291
2523
|
{
|
|
2292
2524
|
type: "button",
|
|
@@ -2297,7 +2529,7 @@ function GraphToolbar({
|
|
|
2297
2529
|
children: BOXES_ICON
|
|
2298
2530
|
}
|
|
2299
2531
|
),
|
|
2300
|
-
/* @__PURE__ */
|
|
2532
|
+
/* @__PURE__ */ jsx19(
|
|
2301
2533
|
"button",
|
|
2302
2534
|
{
|
|
2303
2535
|
type: "button",
|
|
@@ -2308,8 +2540,8 @@ function GraphToolbar({
|
|
|
2308
2540
|
children: isVertical ? ARROW_RIGHT_ICON : ARROW_DOWN_ICON
|
|
2309
2541
|
}
|
|
2310
2542
|
),
|
|
2311
|
-
(onZoomOut || onZoomIn || onFitView) && /* @__PURE__ */
|
|
2312
|
-
onZoomOut && /* @__PURE__ */
|
|
2543
|
+
(onZoomOut || onZoomIn || onFitView) && /* @__PURE__ */ jsx19("div", { className: "graph-toolbar-separator" }),
|
|
2544
|
+
onZoomOut && /* @__PURE__ */ jsx19(
|
|
2313
2545
|
"button",
|
|
2314
2546
|
{
|
|
2315
2547
|
type: "button",
|
|
@@ -2320,7 +2552,7 @@ function GraphToolbar({
|
|
|
2320
2552
|
children: MINUS_ICON
|
|
2321
2553
|
}
|
|
2322
2554
|
),
|
|
2323
|
-
onZoomIn && /* @__PURE__ */
|
|
2555
|
+
onZoomIn && /* @__PURE__ */ jsx19(
|
|
2324
2556
|
"button",
|
|
2325
2557
|
{
|
|
2326
2558
|
type: "button",
|
|
@@ -2331,7 +2563,7 @@ function GraphToolbar({
|
|
|
2331
2563
|
children: PLUS_ICON
|
|
2332
2564
|
}
|
|
2333
2565
|
),
|
|
2334
|
-
onFitView && /* @__PURE__ */
|
|
2566
|
+
onFitView && /* @__PURE__ */ jsx19(
|
|
2335
2567
|
"button",
|
|
2336
2568
|
{
|
|
2337
2569
|
type: "button",
|
|
@@ -2342,9 +2574,9 @@ function GraphToolbar({
|
|
|
2342
2574
|
children: FIT_VIEW_ICON
|
|
2343
2575
|
}
|
|
2344
2576
|
),
|
|
2345
|
-
themeToggleEnabled && /* @__PURE__ */
|
|
2346
|
-
/* @__PURE__ */
|
|
2347
|
-
/* @__PURE__ */
|
|
2577
|
+
themeToggleEnabled && /* @__PURE__ */ jsxs19(Fragment12, { children: [
|
|
2578
|
+
/* @__PURE__ */ jsx19("div", { className: "graph-toolbar-separator" }),
|
|
2579
|
+
/* @__PURE__ */ jsx19(
|
|
2348
2580
|
"button",
|
|
2349
2581
|
{
|
|
2350
2582
|
type: "button",
|
|
@@ -2360,7 +2592,7 @@ function GraphToolbar({
|
|
|
2360
2592
|
}
|
|
2361
2593
|
|
|
2362
2594
|
// src/graph/react/nodes/NodeValidationBadge.tsx
|
|
2363
|
-
import { jsx as
|
|
2595
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
2364
2596
|
function NodeValidationBadge({
|
|
2365
2597
|
validation,
|
|
2366
2598
|
onClick
|
|
@@ -2370,9 +2602,9 @@ function NodeValidationBadge({
|
|
|
2370
2602
|
const className = `node-validation-badge node-validation-badge--${validation.severity}`;
|
|
2371
2603
|
const text = validation.count > 99 ? "99+" : String(validation.count);
|
|
2372
2604
|
if (!onClick) {
|
|
2373
|
-
return /* @__PURE__ */
|
|
2605
|
+
return /* @__PURE__ */ jsx20("span", { className, title: tooltip, "aria-label": label, children: text });
|
|
2374
2606
|
}
|
|
2375
|
-
return /* @__PURE__ */
|
|
2607
|
+
return /* @__PURE__ */ jsx20(
|
|
2376
2608
|
"button",
|
|
2377
2609
|
{
|
|
2378
2610
|
type: "button",
|
|
@@ -2392,7 +2624,7 @@ function validationRingClass(validation) {
|
|
|
2392
2624
|
}
|
|
2393
2625
|
|
|
2394
2626
|
// src/graph/react/nodes/controller/ControllerGroupNode.tsx
|
|
2395
|
-
import { jsx as
|
|
2627
|
+
import { jsx as jsx21, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
2396
2628
|
var CONTROLLER_CONFIG = {
|
|
2397
2629
|
PipeSequence: { badge: "Sequence", icon: "\u2192" },
|
|
2398
2630
|
PipeParallel: { badge: "Parallel", icon: "//" },
|
|
@@ -2414,12 +2646,12 @@ function ControllerGroupNode({ data }) {
|
|
|
2414
2646
|
const modifier = getControllerModifier(data.pipeType);
|
|
2415
2647
|
const isCollapsible = (data.pipeType === "PipeParallel" || data.pipeType === "PipeBatch") && ((_a = data.childCount) != null ? _a : 0) > MAX_VISIBLE_CONTROLLER_CHILDREN;
|
|
2416
2648
|
const hiddenCount = isCollapsible ? ((_b = data.childCount) != null ? _b : 0) - MAX_VISIBLE_CONTROLLER_CHILDREN : 0;
|
|
2417
|
-
return /* @__PURE__ */
|
|
2418
|
-
/* @__PURE__ */
|
|
2419
|
-
/* @__PURE__ */
|
|
2420
|
-
/* @__PURE__ */
|
|
2421
|
-
data.label && /* @__PURE__ */
|
|
2422
|
-
data.onToggleFold && /* @__PURE__ */
|
|
2649
|
+
return /* @__PURE__ */ jsxs20("div", { className: `controller-group-node ${modifier}${validationRingClass(data.validation)}`, children: [
|
|
2650
|
+
/* @__PURE__ */ jsxs20("div", { className: "controller-group-header", children: [
|
|
2651
|
+
/* @__PURE__ */ jsx21("span", { className: "controller-group-icon", children: config.icon }),
|
|
2652
|
+
/* @__PURE__ */ jsx21("span", { className: "controller-group-badge", children: config.badge }),
|
|
2653
|
+
data.label && /* @__PURE__ */ jsx21("span", { className: "controller-group-label", children: data.label }),
|
|
2654
|
+
data.onToggleFold && /* @__PURE__ */ jsx21(
|
|
2423
2655
|
"button",
|
|
2424
2656
|
{
|
|
2425
2657
|
type: "button",
|
|
@@ -2434,9 +2666,9 @@ function ControllerGroupNode({ data }) {
|
|
|
2434
2666
|
children: "\u2921"
|
|
2435
2667
|
}
|
|
2436
2668
|
),
|
|
2437
|
-
data.validation && /* @__PURE__ */
|
|
2669
|
+
data.validation && /* @__PURE__ */ jsx21(NodeValidationBadge, { validation: data.validation, onClick: data.onValidationBadgeClick })
|
|
2438
2670
|
] }),
|
|
2439
|
-
isCollapsible && /* @__PURE__ */
|
|
2671
|
+
isCollapsible && /* @__PURE__ */ jsx21(
|
|
2440
2672
|
"button",
|
|
2441
2673
|
{
|
|
2442
2674
|
className: "controller-group-collapse",
|
|
@@ -2457,7 +2689,7 @@ import { Handle, Position } from "@xyflow/react";
|
|
|
2457
2689
|
|
|
2458
2690
|
// src/graph/react/nodes/pipe/PipeCardBase.tsx
|
|
2459
2691
|
import { useState as useState2 } from "react";
|
|
2460
|
-
import { jsx as
|
|
2692
|
+
import { jsx as jsx22, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2461
2693
|
var PIPE_TYPE_BADGES2 = {
|
|
2462
2694
|
PipeLLM: "LLM",
|
|
2463
2695
|
PipeExtract: "Extract",
|
|
@@ -2513,21 +2745,21 @@ function PipeCardBase({ data, children }) {
|
|
|
2513
2745
|
const staticClass = isStatic ? " pipe-card--static" : "";
|
|
2514
2746
|
const badgeClass = isController ? "pipe-card-badge pipe-card-badge--controller" : isSignature ? "pipe-card-badge pipe-card-badge--signature" : "pipe-card-badge";
|
|
2515
2747
|
const ringClass = validationRingClass(data.validation);
|
|
2516
|
-
return /* @__PURE__ */
|
|
2748
|
+
return /* @__PURE__ */ jsxs21(
|
|
2517
2749
|
"div",
|
|
2518
2750
|
{
|
|
2519
2751
|
className: `pipe-card ${dirClass}${controllerClass}${signatureClass}${staticClass}${ringClass}`,
|
|
2520
2752
|
children: [
|
|
2521
|
-
/* @__PURE__ */
|
|
2522
|
-
/* @__PURE__ */
|
|
2523
|
-
/* @__PURE__ */
|
|
2524
|
-
!isStatic && /* @__PURE__ */
|
|
2753
|
+
/* @__PURE__ */ jsxs21("div", { className: "pipe-card-header", children: [
|
|
2754
|
+
/* @__PURE__ */ jsx22("span", { className: badgeClass, children: badge }),
|
|
2755
|
+
/* @__PURE__ */ jsx22("span", { className: "pipe-card-code", title: data.pipeCode, children: data.pipeCode }),
|
|
2756
|
+
!isStatic && /* @__PURE__ */ jsx22(
|
|
2525
2757
|
"span",
|
|
2526
2758
|
{
|
|
2527
2759
|
className: "pipe-card-status",
|
|
2528
2760
|
style: { color: statusConfig.color },
|
|
2529
2761
|
title: statusConfig.label,
|
|
2530
|
-
children: /* @__PURE__ */
|
|
2762
|
+
children: /* @__PURE__ */ jsx22(
|
|
2531
2763
|
"span",
|
|
2532
2764
|
{
|
|
2533
2765
|
className: `pipe-card-status-dot ${isRunning ? "pipe-card-status-dot--pulse" : ""}`,
|
|
@@ -2536,7 +2768,7 @@ function PipeCardBase({ data, children }) {
|
|
|
2536
2768
|
)
|
|
2537
2769
|
}
|
|
2538
2770
|
),
|
|
2539
|
-
data.onExpand && /* @__PURE__ */
|
|
2771
|
+
data.onExpand && /* @__PURE__ */ jsx22(
|
|
2540
2772
|
"button",
|
|
2541
2773
|
{
|
|
2542
2774
|
type: "button",
|
|
@@ -2551,32 +2783,32 @@ function PipeCardBase({ data, children }) {
|
|
|
2551
2783
|
children: "\u2922"
|
|
2552
2784
|
}
|
|
2553
2785
|
),
|
|
2554
|
-
data.validation && /* @__PURE__ */
|
|
2786
|
+
data.validation && /* @__PURE__ */ jsx22(NodeValidationBadge, { validation: data.validation, onClick: data.onValidationBadgeClick })
|
|
2555
2787
|
] }),
|
|
2556
|
-
(outcome || batchMultiplicity) && /* @__PURE__ */
|
|
2557
|
-
outcome && /* @__PURE__ */
|
|
2788
|
+
(outcome || batchMultiplicity) && /* @__PURE__ */ jsxs21("div", { className: "pipe-card-annotations", children: [
|
|
2789
|
+
outcome && /* @__PURE__ */ jsxs21("span", { className: "pipe-card-annotation pipe-card-annotation--outcome", children: [
|
|
2558
2790
|
"outcome: ",
|
|
2559
2791
|
outcome
|
|
2560
2792
|
] }),
|
|
2561
|
-
batchMultiplicity && /* @__PURE__ */
|
|
2793
|
+
batchMultiplicity && /* @__PURE__ */ jsx22("span", { className: "pipe-card-annotation pipe-card-annotation--batch", children: batchMultiplicity })
|
|
2562
2794
|
] }),
|
|
2563
|
-
data.description && /* @__PURE__ */
|
|
2564
|
-
data.inputs.length > 0 && /* @__PURE__ */
|
|
2565
|
-
/* @__PURE__ */
|
|
2566
|
-
/* @__PURE__ */
|
|
2567
|
-
visibleInputs.map((input) => /* @__PURE__ */
|
|
2795
|
+
data.description && /* @__PURE__ */ jsx22("span", { className: "pipe-card-description", title: data.description, children: data.description }),
|
|
2796
|
+
data.inputs.length > 0 && /* @__PURE__ */ jsxs21("div", { className: "pipe-card-io", children: [
|
|
2797
|
+
/* @__PURE__ */ jsx22("span", { className: "pipe-card-io-label", children: "INPUTS" }),
|
|
2798
|
+
/* @__PURE__ */ jsxs21("div", { className: "pipe-card-io-pills", children: [
|
|
2799
|
+
visibleInputs.map((input) => /* @__PURE__ */ jsxs21(
|
|
2568
2800
|
"span",
|
|
2569
2801
|
{
|
|
2570
2802
|
className: "pipe-card-io-pill",
|
|
2571
2803
|
title: `${input.name}: ${input.concept}`,
|
|
2572
2804
|
children: [
|
|
2573
|
-
/* @__PURE__ */
|
|
2574
|
-
/* @__PURE__ */
|
|
2805
|
+
/* @__PURE__ */ jsx22("span", { className: "pipe-card-io-pill-name", children: input.name }),
|
|
2806
|
+
/* @__PURE__ */ jsx22("span", { className: "pipe-card-io-pill-concept", children: input.concept })
|
|
2575
2807
|
]
|
|
2576
2808
|
},
|
|
2577
2809
|
input.name
|
|
2578
2810
|
)),
|
|
2579
|
-
hasMany && /* @__PURE__ */
|
|
2811
|
+
hasMany && /* @__PURE__ */ jsx22(
|
|
2580
2812
|
"button",
|
|
2581
2813
|
{
|
|
2582
2814
|
className: "pipe-card-io-more",
|
|
@@ -2589,16 +2821,16 @@ function PipeCardBase({ data, children }) {
|
|
|
2589
2821
|
)
|
|
2590
2822
|
] })
|
|
2591
2823
|
] }),
|
|
2592
|
-
data.outputs.length > 0 && /* @__PURE__ */
|
|
2593
|
-
/* @__PURE__ */
|
|
2594
|
-
/* @__PURE__ */
|
|
2824
|
+
data.outputs.length > 0 && /* @__PURE__ */ jsxs21("div", { className: "pipe-card-io", children: [
|
|
2825
|
+
/* @__PURE__ */ jsx22("span", { className: "pipe-card-io-label", children: "OUTPUT" }),
|
|
2826
|
+
/* @__PURE__ */ jsx22("div", { className: "pipe-card-io-pills", children: data.outputs.map((output) => /* @__PURE__ */ jsxs21(
|
|
2595
2827
|
"span",
|
|
2596
2828
|
{
|
|
2597
2829
|
className: "pipe-card-io-pill",
|
|
2598
2830
|
title: `${output.name}: ${output.concept}`,
|
|
2599
2831
|
children: [
|
|
2600
|
-
/* @__PURE__ */
|
|
2601
|
-
/* @__PURE__ */
|
|
2832
|
+
/* @__PURE__ */ jsx22("span", { className: "pipe-card-io-pill-name", children: output.name }),
|
|
2833
|
+
/* @__PURE__ */ jsx22("span", { className: "pipe-card-io-pill-concept", children: output.concept })
|
|
2602
2834
|
]
|
|
2603
2835
|
},
|
|
2604
2836
|
output.name
|
|
@@ -2630,11 +2862,11 @@ function getPipeCardComponent(pipeType) {
|
|
|
2630
2862
|
}
|
|
2631
2863
|
|
|
2632
2864
|
// src/graph/react/nodes/pipe/PipeCardNode.tsx
|
|
2633
|
-
import { Fragment as Fragment13, jsx as
|
|
2865
|
+
import { Fragment as Fragment13, jsx as jsx23, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
2634
2866
|
function PipeCardNode({ data }) {
|
|
2635
2867
|
var _a;
|
|
2636
2868
|
const Card = (_a = getPipeCardComponent(data.pipeType)) != null ? _a : PipeCardBase;
|
|
2637
|
-
return /* @__PURE__ */
|
|
2869
|
+
return /* @__PURE__ */ jsx23(Card, { data });
|
|
2638
2870
|
}
|
|
2639
2871
|
function PipeCardRFNode({
|
|
2640
2872
|
data,
|
|
@@ -2643,15 +2875,15 @@ function PipeCardRFNode({
|
|
|
2643
2875
|
}) {
|
|
2644
2876
|
const payload = data.pipeCardData;
|
|
2645
2877
|
if (!payload) return null;
|
|
2646
|
-
return /* @__PURE__ */
|
|
2647
|
-
/* @__PURE__ */
|
|
2648
|
-
/* @__PURE__ */
|
|
2649
|
-
/* @__PURE__ */
|
|
2878
|
+
return /* @__PURE__ */ jsxs22(Fragment13, { children: [
|
|
2879
|
+
/* @__PURE__ */ jsx23(Handle, { type: "target", position: targetPosition }),
|
|
2880
|
+
/* @__PURE__ */ jsx23(PipeCardNode, { data: payload }),
|
|
2881
|
+
/* @__PURE__ */ jsx23(Handle, { type: "source", position: sourcePosition })
|
|
2650
2882
|
] });
|
|
2651
2883
|
}
|
|
2652
2884
|
|
|
2653
2885
|
// src/graph/react/viewer/GraphViewer.tsx
|
|
2654
|
-
import { Fragment as Fragment14, jsx as
|
|
2886
|
+
import { Fragment as Fragment14, jsx as jsx24, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
2655
2887
|
var nodeTypes = __spreadProps(__spreadValues({}, controllerNodeTypes), {
|
|
2656
2888
|
pipeCard: PipeCardRFNode
|
|
2657
2889
|
});
|
|
@@ -2665,7 +2897,7 @@ function StuffNodeDetail({
|
|
|
2665
2897
|
}) {
|
|
2666
2898
|
const conceptInfo = stuffData.concept && graphspec ? resolveConceptRef(graphspec, stuffData.concept) : void 0;
|
|
2667
2899
|
const isDryRun = graphSpecMode(graphspec) === GRAPH_SPEC_MODE.DRY;
|
|
2668
|
-
return /* @__PURE__ */
|
|
2900
|
+
return /* @__PURE__ */ jsx24(Fragment14, { children: conceptInfo ? /* @__PURE__ */ jsx24(
|
|
2669
2901
|
ConceptDetailPanel,
|
|
2670
2902
|
{
|
|
2671
2903
|
concept: conceptInfo,
|
|
@@ -2676,9 +2908,9 @@ function StuffNodeDetail({
|
|
|
2676
2908
|
canEmbedPdf,
|
|
2677
2909
|
onOpenExternally
|
|
2678
2910
|
}
|
|
2679
|
-
) : isDryRun ? /* @__PURE__ */
|
|
2911
|
+
) : isDryRun ? /* @__PURE__ */ jsx24("div", { className: "detail-not-available", children: "Dry run data hidden" }) : (
|
|
2680
2912
|
/* Fallback: just show the StuffViewer if no concept info */
|
|
2681
|
-
/* @__PURE__ */
|
|
2913
|
+
/* @__PURE__ */ jsx24(
|
|
2682
2914
|
StuffViewer,
|
|
2683
2915
|
{
|
|
2684
2916
|
stuff: stuffData,
|
|
@@ -3334,13 +3566,13 @@ function GraphViewer(props) {
|
|
|
3334
3566
|
expandAllDisabled: foldedControllers.size === 0
|
|
3335
3567
|
};
|
|
3336
3568
|
}, [showControllers, allControllerIds, foldedControllers]);
|
|
3337
|
-
return /* @__PURE__ */
|
|
3569
|
+
return /* @__PURE__ */ jsxs23(
|
|
3338
3570
|
"div",
|
|
3339
3571
|
{
|
|
3340
3572
|
ref: containerRef,
|
|
3341
3573
|
className: `react-flow-container react-flow-container--theme-${resolvedTheme} react-flow-container--mode-${mode}`,
|
|
3342
3574
|
children: [
|
|
3343
|
-
/* @__PURE__ */
|
|
3575
|
+
/* @__PURE__ */ jsxs23(
|
|
3344
3576
|
ReactFlow,
|
|
3345
3577
|
{
|
|
3346
3578
|
nodes,
|
|
@@ -3359,7 +3591,7 @@ function GraphViewer(props) {
|
|
|
3359
3591
|
proOptions: { hideAttribution: true },
|
|
3360
3592
|
panActivationKeyCode: null,
|
|
3361
3593
|
children: [
|
|
3362
|
-
/* @__PURE__ */
|
|
3594
|
+
/* @__PURE__ */ jsx24(
|
|
3363
3595
|
Background,
|
|
3364
3596
|
{
|
|
3365
3597
|
variant: BackgroundVariant.Dots,
|
|
@@ -3368,7 +3600,7 @@ function GraphViewer(props) {
|
|
|
3368
3600
|
color: "var(--color-bg-dots)"
|
|
3369
3601
|
}
|
|
3370
3602
|
),
|
|
3371
|
-
!hideToolbar && /* @__PURE__ */
|
|
3603
|
+
!hideToolbar && /* @__PURE__ */ jsx24(
|
|
3372
3604
|
GraphToolbar,
|
|
3373
3605
|
{
|
|
3374
3606
|
direction,
|
|
@@ -3405,7 +3637,7 @@ function GraphViewer(props) {
|
|
|
3405
3637
|
]
|
|
3406
3638
|
}
|
|
3407
3639
|
),
|
|
3408
|
-
/* @__PURE__ */
|
|
3640
|
+
/* @__PURE__ */ jsxs23(
|
|
3409
3641
|
DetailPanel,
|
|
3410
3642
|
{
|
|
3411
3643
|
isOpen: detailOpen,
|
|
@@ -3414,14 +3646,14 @@ function GraphViewer(props) {
|
|
|
3414
3646
|
isDragging: isPanelDragging,
|
|
3415
3647
|
onResizeHandleMouseDown: onResizeMouseDown,
|
|
3416
3648
|
children: [
|
|
3417
|
-
conceptOverride ? /* @__PURE__ */
|
|
3649
|
+
conceptOverride ? /* @__PURE__ */ jsx24(ConceptDetailPanel, { concept: conceptOverride }) : selectedSpecNode && graphspec ? /* @__PURE__ */ jsx24(
|
|
3418
3650
|
PipeDetailPanel,
|
|
3419
3651
|
{
|
|
3420
3652
|
node: selectedSpecNode,
|
|
3421
3653
|
spec: graphspec,
|
|
3422
3654
|
onConceptClick: handleConceptClick
|
|
3423
3655
|
}
|
|
3424
|
-
) : (detailSelection == null ? void 0 : detailSelection.stuffData) ? /* @__PURE__ */
|
|
3656
|
+
) : (detailSelection == null ? void 0 : detailSelection.stuffData) ? /* @__PURE__ */ jsx24(
|
|
3425
3657
|
StuffNodeDetail,
|
|
3426
3658
|
{
|
|
3427
3659
|
nodeId: detailSelection.nodeId,
|