@pipelex/mthds-ui 0.15.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-YC7TW3BW.js → chunk-3XFIKUSZ.js} +1 -1
- package/dist/chunk-3XFIKUSZ.js.map +1 -0
- package/dist/{chunk-O62372BD.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 +604 -376
- 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 +2 -2
- package/dist/static-graph/index.js +51 -22
- package/dist/static-graph/index.js.map +1 -1
- package/dist/{types-DFIZ_rx6.d.ts → types-DUSThVb4.d.ts} +99 -3
- package/package.json +1 -1
- package/dist/chunk-O62372BD.js.map +0 -1
- package/dist/chunk-YC7TW3BW.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),
|
|
@@ -1554,32 +1786,28 @@ function ConceptBody({
|
|
|
1554
1786
|
) : structure })
|
|
1555
1787
|
] });
|
|
1556
1788
|
}
|
|
1557
|
-
function SchemaTable({
|
|
1558
|
-
schema,
|
|
1559
|
-
isDryRun
|
|
1560
|
-
}) {
|
|
1789
|
+
function SchemaTable({ schema }) {
|
|
1561
1790
|
var _a;
|
|
1562
1791
|
const properties = schema.properties;
|
|
1563
1792
|
const required = new Set((_a = schema.required) != null ? _a : []);
|
|
1564
1793
|
if (!properties || Object.keys(properties).length === 0) {
|
|
1565
|
-
return /* @__PURE__ */
|
|
1794
|
+
return /* @__PURE__ */ jsx16("div", { className: "detail-not-available", children: "No fields defined" });
|
|
1566
1795
|
}
|
|
1567
1796
|
const fields = Object.entries(properties);
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
/* @__PURE__ */
|
|
1572
|
-
/* @__PURE__ */
|
|
1573
|
-
/* @__PURE__ */
|
|
1574
|
-
/* @__PURE__ */ jsx15("th", { children: "Description" })
|
|
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" })
|
|
1575
1803
|
] }) }),
|
|
1576
|
-
/* @__PURE__ */
|
|
1804
|
+
/* @__PURE__ */ jsx16("tbody", { children: fields.map(([fieldName, fieldSchema]) => {
|
|
1577
1805
|
var _a2;
|
|
1578
|
-
return /* @__PURE__ */
|
|
1579
|
-
/* @__PURE__ */
|
|
1580
|
-
/* @__PURE__ */
|
|
1581
|
-
/* @__PURE__ */
|
|
1582
|
-
/* @__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 : "" })
|
|
1583
1811
|
] }, fieldName);
|
|
1584
1812
|
}) })
|
|
1585
1813
|
] });
|
|
@@ -1646,10 +1874,10 @@ function toAppEdges(edges) {
|
|
|
1646
1874
|
}
|
|
1647
1875
|
|
|
1648
1876
|
// src/graph/react/viewer/renderLabel.tsx
|
|
1649
|
-
import { jsx as
|
|
1877
|
+
import { jsx as jsx17, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1650
1878
|
function renderLabel(desc) {
|
|
1651
1879
|
if (desc.kind === "pipe") {
|
|
1652
|
-
return /* @__PURE__ */
|
|
1880
|
+
return /* @__PURE__ */ jsx17(
|
|
1653
1881
|
"div",
|
|
1654
1882
|
{
|
|
1655
1883
|
style: {
|
|
@@ -1663,7 +1891,7 @@ function renderLabel(desc) {
|
|
|
1663
1891
|
minWidth: 0
|
|
1664
1892
|
},
|
|
1665
1893
|
title: desc.label,
|
|
1666
|
-
children: /* @__PURE__ */
|
|
1894
|
+
children: /* @__PURE__ */ jsx17(
|
|
1667
1895
|
"span",
|
|
1668
1896
|
{
|
|
1669
1897
|
style: {
|
|
@@ -1682,7 +1910,7 @@ function renderLabel(desc) {
|
|
|
1682
1910
|
}
|
|
1683
1911
|
);
|
|
1684
1912
|
}
|
|
1685
|
-
return /* @__PURE__ */
|
|
1913
|
+
return /* @__PURE__ */ jsxs17(
|
|
1686
1914
|
"div",
|
|
1687
1915
|
{
|
|
1688
1916
|
style: {
|
|
@@ -1698,7 +1926,7 @@ function renderLabel(desc) {
|
|
|
1698
1926
|
},
|
|
1699
1927
|
title: desc.concept ? `${desc.label}: ${desc.concept}` : desc.label,
|
|
1700
1928
|
children: [
|
|
1701
|
-
/* @__PURE__ */
|
|
1929
|
+
/* @__PURE__ */ jsx17(
|
|
1702
1930
|
"span",
|
|
1703
1931
|
{
|
|
1704
1932
|
style: {
|
|
@@ -1714,7 +1942,7 @@ function renderLabel(desc) {
|
|
|
1714
1942
|
children: desc.label
|
|
1715
1943
|
}
|
|
1716
1944
|
),
|
|
1717
|
-
desc.concept && /* @__PURE__ */
|
|
1945
|
+
desc.concept && /* @__PURE__ */ jsx17(
|
|
1718
1946
|
"span",
|
|
1719
1947
|
{
|
|
1720
1948
|
style: {
|
|
@@ -1748,7 +1976,7 @@ import React8 from "react";
|
|
|
1748
1976
|
import { Panel } from "@xyflow/react";
|
|
1749
1977
|
|
|
1750
1978
|
// src/graph/react/viewer/ValidationPanel.tsx
|
|
1751
|
-
import { jsx as
|
|
1979
|
+
import { jsx as jsx18, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1752
1980
|
function validationLabel(state, issueCount) {
|
|
1753
1981
|
const issues = issueCount === 1 ? "1 issue" : `${issueCount} issues`;
|
|
1754
1982
|
switch (state) {
|
|
@@ -1811,7 +2039,7 @@ function ValidationPanel({
|
|
|
1811
2039
|
placement,
|
|
1812
2040
|
id
|
|
1813
2041
|
}) {
|
|
1814
|
-
return /* @__PURE__ */
|
|
2042
|
+
return /* @__PURE__ */ jsxs18(
|
|
1815
2043
|
"div",
|
|
1816
2044
|
{
|
|
1817
2045
|
id,
|
|
@@ -1819,18 +2047,18 @@ function ValidationPanel({
|
|
|
1819
2047
|
role: "region",
|
|
1820
2048
|
"aria-label": "Validation issues",
|
|
1821
2049
|
children: [
|
|
1822
|
-
/* @__PURE__ */
|
|
1823
|
-
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) => {
|
|
1824
2052
|
const clickable = onIssueClick !== void 0;
|
|
1825
|
-
const meta = (issue.context || issue.file) && /* @__PURE__ */
|
|
1826
|
-
issue.context && /* @__PURE__ */
|
|
1827
|
-
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 })
|
|
1828
2056
|
] });
|
|
1829
|
-
return /* @__PURE__ */
|
|
2057
|
+
return /* @__PURE__ */ jsx18(
|
|
1830
2058
|
"li",
|
|
1831
2059
|
{
|
|
1832
2060
|
className: `graph-validation-issue graph-validation-issue--${issue.severity}` + (clickable ? " graph-validation-issue--clickable" : ""),
|
|
1833
|
-
children: /* @__PURE__ */
|
|
2061
|
+
children: /* @__PURE__ */ jsxs18(
|
|
1834
2062
|
"div",
|
|
1835
2063
|
{
|
|
1836
2064
|
className: "graph-validation-issue-body",
|
|
@@ -1845,8 +2073,8 @@ function ValidationPanel({
|
|
|
1845
2073
|
} : void 0,
|
|
1846
2074
|
children: [
|
|
1847
2075
|
meta,
|
|
1848
|
-
/* @__PURE__ */
|
|
1849
|
-
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 })
|
|
1850
2078
|
]
|
|
1851
2079
|
}
|
|
1852
2080
|
)
|
|
@@ -1860,9 +2088,9 @@ function ValidationPanel({
|
|
|
1860
2088
|
}
|
|
1861
2089
|
|
|
1862
2090
|
// src/graph/react/viewer/GraphToolbar.tsx
|
|
1863
|
-
import { Fragment as Fragment12, jsx as
|
|
2091
|
+
import { Fragment as Fragment12, jsx as jsx19, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1864
2092
|
var REACTFLOW_PANEL_MARGIN = 15;
|
|
1865
|
-
var ARROW_RIGHT_ICON = /* @__PURE__ */
|
|
2093
|
+
var ARROW_RIGHT_ICON = /* @__PURE__ */ jsxs19(
|
|
1866
2094
|
"svg",
|
|
1867
2095
|
{
|
|
1868
2096
|
viewBox: "0 0 24 24",
|
|
@@ -1874,12 +2102,12 @@ var ARROW_RIGHT_ICON = /* @__PURE__ */ jsxs18(
|
|
|
1874
2102
|
strokeLinecap: "round",
|
|
1875
2103
|
strokeLinejoin: "round",
|
|
1876
2104
|
children: [
|
|
1877
|
-
/* @__PURE__ */
|
|
1878
|
-
/* @__PURE__ */
|
|
2105
|
+
/* @__PURE__ */ jsx19("line", { x1: "5", y1: "12", x2: "19", y2: "12" }),
|
|
2106
|
+
/* @__PURE__ */ jsx19("polyline", { points: "12 5 19 12 12 19" })
|
|
1879
2107
|
]
|
|
1880
2108
|
}
|
|
1881
2109
|
);
|
|
1882
|
-
var ARROW_DOWN_ICON = /* @__PURE__ */
|
|
2110
|
+
var ARROW_DOWN_ICON = /* @__PURE__ */ jsxs19(
|
|
1883
2111
|
"svg",
|
|
1884
2112
|
{
|
|
1885
2113
|
viewBox: "0 0 24 24",
|
|
@@ -1891,12 +2119,12 @@ var ARROW_DOWN_ICON = /* @__PURE__ */ jsxs18(
|
|
|
1891
2119
|
strokeLinecap: "round",
|
|
1892
2120
|
strokeLinejoin: "round",
|
|
1893
2121
|
children: [
|
|
1894
|
-
/* @__PURE__ */
|
|
1895
|
-
/* @__PURE__ */
|
|
2122
|
+
/* @__PURE__ */ jsx19("line", { x1: "12", y1: "5", x2: "12", y2: "19" }),
|
|
2123
|
+
/* @__PURE__ */ jsx19("polyline", { points: "19 12 12 19 5 12" })
|
|
1896
2124
|
]
|
|
1897
2125
|
}
|
|
1898
2126
|
);
|
|
1899
|
-
var MINUS_ICON = /* @__PURE__ */
|
|
2127
|
+
var MINUS_ICON = /* @__PURE__ */ jsx19(
|
|
1900
2128
|
"svg",
|
|
1901
2129
|
{
|
|
1902
2130
|
viewBox: "0 0 24 24",
|
|
@@ -1907,10 +2135,10 @@ var MINUS_ICON = /* @__PURE__ */ jsx18(
|
|
|
1907
2135
|
strokeWidth: "2",
|
|
1908
2136
|
strokeLinecap: "round",
|
|
1909
2137
|
strokeLinejoin: "round",
|
|
1910
|
-
children: /* @__PURE__ */
|
|
2138
|
+
children: /* @__PURE__ */ jsx19("line", { x1: "5", y1: "12", x2: "19", y2: "12" })
|
|
1911
2139
|
}
|
|
1912
2140
|
);
|
|
1913
|
-
var PLUS_ICON = /* @__PURE__ */
|
|
2141
|
+
var PLUS_ICON = /* @__PURE__ */ jsxs19(
|
|
1914
2142
|
"svg",
|
|
1915
2143
|
{
|
|
1916
2144
|
viewBox: "0 0 24 24",
|
|
@@ -1922,12 +2150,12 @@ var PLUS_ICON = /* @__PURE__ */ jsxs18(
|
|
|
1922
2150
|
strokeLinecap: "round",
|
|
1923
2151
|
strokeLinejoin: "round",
|
|
1924
2152
|
children: [
|
|
1925
|
-
/* @__PURE__ */
|
|
1926
|
-
/* @__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" })
|
|
1927
2155
|
]
|
|
1928
2156
|
}
|
|
1929
2157
|
);
|
|
1930
|
-
var FIT_VIEW_ICON = /* @__PURE__ */
|
|
2158
|
+
var FIT_VIEW_ICON = /* @__PURE__ */ jsxs19(
|
|
1931
2159
|
"svg",
|
|
1932
2160
|
{
|
|
1933
2161
|
viewBox: "0 0 24 24",
|
|
@@ -1939,14 +2167,14 @@ var FIT_VIEW_ICON = /* @__PURE__ */ jsxs18(
|
|
|
1939
2167
|
strokeLinecap: "round",
|
|
1940
2168
|
strokeLinejoin: "round",
|
|
1941
2169
|
children: [
|
|
1942
|
-
/* @__PURE__ */
|
|
1943
|
-
/* @__PURE__ */
|
|
1944
|
-
/* @__PURE__ */
|
|
1945
|
-
/* @__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" })
|
|
1946
2174
|
]
|
|
1947
2175
|
}
|
|
1948
2176
|
);
|
|
1949
|
-
var BOXES_ICON = /* @__PURE__ */
|
|
2177
|
+
var BOXES_ICON = /* @__PURE__ */ jsxs19(
|
|
1950
2178
|
"svg",
|
|
1951
2179
|
{
|
|
1952
2180
|
viewBox: "0 0 24 24",
|
|
@@ -1958,22 +2186,22 @@ var BOXES_ICON = /* @__PURE__ */ jsxs18(
|
|
|
1958
2186
|
strokeLinecap: "round",
|
|
1959
2187
|
strokeLinejoin: "round",
|
|
1960
2188
|
children: [
|
|
1961
|
-
/* @__PURE__ */
|
|
1962
|
-
/* @__PURE__ */
|
|
1963
|
-
/* @__PURE__ */
|
|
1964
|
-
/* @__PURE__ */
|
|
1965
|
-
/* @__PURE__ */
|
|
1966
|
-
/* @__PURE__ */
|
|
1967
|
-
/* @__PURE__ */
|
|
1968
|
-
/* @__PURE__ */
|
|
1969
|
-
/* @__PURE__ */
|
|
1970
|
-
/* @__PURE__ */
|
|
1971
|
-
/* @__PURE__ */
|
|
1972
|
-
/* @__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" })
|
|
1973
2201
|
]
|
|
1974
2202
|
}
|
|
1975
2203
|
);
|
|
1976
|
-
var FOLD_ALL_ICON = /* @__PURE__ */
|
|
2204
|
+
var FOLD_ALL_ICON = /* @__PURE__ */ jsxs19(
|
|
1977
2205
|
"svg",
|
|
1978
2206
|
{
|
|
1979
2207
|
viewBox: "0 0 24 24",
|
|
@@ -1985,15 +2213,15 @@ var FOLD_ALL_ICON = /* @__PURE__ */ jsxs18(
|
|
|
1985
2213
|
strokeLinecap: "round",
|
|
1986
2214
|
strokeLinejoin: "round",
|
|
1987
2215
|
children: [
|
|
1988
|
-
/* @__PURE__ */
|
|
1989
|
-
/* @__PURE__ */
|
|
1990
|
-
/* @__PURE__ */
|
|
1991
|
-
/* @__PURE__ */
|
|
1992
|
-
/* @__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" })
|
|
1993
2221
|
]
|
|
1994
2222
|
}
|
|
1995
2223
|
);
|
|
1996
|
-
var EXPAND_ALL_ICON = /* @__PURE__ */
|
|
2224
|
+
var EXPAND_ALL_ICON = /* @__PURE__ */ jsxs19(
|
|
1997
2225
|
"svg",
|
|
1998
2226
|
{
|
|
1999
2227
|
viewBox: "0 0 24 24",
|
|
@@ -2005,15 +2233,15 @@ var EXPAND_ALL_ICON = /* @__PURE__ */ jsxs18(
|
|
|
2005
2233
|
strokeLinecap: "round",
|
|
2006
2234
|
strokeLinejoin: "round",
|
|
2007
2235
|
children: [
|
|
2008
|
-
/* @__PURE__ */
|
|
2009
|
-
/* @__PURE__ */
|
|
2010
|
-
/* @__PURE__ */
|
|
2011
|
-
/* @__PURE__ */
|
|
2012
|
-
/* @__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" })
|
|
2013
2241
|
]
|
|
2014
2242
|
}
|
|
2015
2243
|
);
|
|
2016
|
-
var SUN_ICON = /* @__PURE__ */
|
|
2244
|
+
var SUN_ICON = /* @__PURE__ */ jsxs19(
|
|
2017
2245
|
"svg",
|
|
2018
2246
|
{
|
|
2019
2247
|
viewBox: "0 0 24 24",
|
|
@@ -2025,19 +2253,19 @@ var SUN_ICON = /* @__PURE__ */ jsxs18(
|
|
|
2025
2253
|
strokeLinecap: "round",
|
|
2026
2254
|
strokeLinejoin: "round",
|
|
2027
2255
|
children: [
|
|
2028
|
-
/* @__PURE__ */
|
|
2029
|
-
/* @__PURE__ */
|
|
2030
|
-
/* @__PURE__ */
|
|
2031
|
-
/* @__PURE__ */
|
|
2032
|
-
/* @__PURE__ */
|
|
2033
|
-
/* @__PURE__ */
|
|
2034
|
-
/* @__PURE__ */
|
|
2035
|
-
/* @__PURE__ */
|
|
2036
|
-
/* @__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" })
|
|
2037
2265
|
]
|
|
2038
2266
|
}
|
|
2039
2267
|
);
|
|
2040
|
-
var MOON_ICON = /* @__PURE__ */
|
|
2268
|
+
var MOON_ICON = /* @__PURE__ */ jsx19(
|
|
2041
2269
|
"svg",
|
|
2042
2270
|
{
|
|
2043
2271
|
viewBox: "0 0 24 24",
|
|
@@ -2048,10 +2276,10 @@ var MOON_ICON = /* @__PURE__ */ jsx18(
|
|
|
2048
2276
|
strokeWidth: "2",
|
|
2049
2277
|
strokeLinecap: "round",
|
|
2050
2278
|
strokeLinejoin: "round",
|
|
2051
|
-
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" })
|
|
2052
2280
|
}
|
|
2053
2281
|
);
|
|
2054
|
-
var MONITOR_ICON = /* @__PURE__ */
|
|
2282
|
+
var MONITOR_ICON = /* @__PURE__ */ jsxs19(
|
|
2055
2283
|
"svg",
|
|
2056
2284
|
{
|
|
2057
2285
|
viewBox: "0 0 24 24",
|
|
@@ -2063,13 +2291,13 @@ var MONITOR_ICON = /* @__PURE__ */ jsxs18(
|
|
|
2063
2291
|
strokeLinecap: "round",
|
|
2064
2292
|
strokeLinejoin: "round",
|
|
2065
2293
|
children: [
|
|
2066
|
-
/* @__PURE__ */
|
|
2067
|
-
/* @__PURE__ */
|
|
2068
|
-
/* @__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" })
|
|
2069
2297
|
]
|
|
2070
2298
|
}
|
|
2071
2299
|
);
|
|
2072
|
-
var SPINNER_ICON = /* @__PURE__ */
|
|
2300
|
+
var SPINNER_ICON = /* @__PURE__ */ jsx19(
|
|
2073
2301
|
"svg",
|
|
2074
2302
|
{
|
|
2075
2303
|
className: "graph-toolbar-validation-spin",
|
|
@@ -2081,10 +2309,10 @@ var SPINNER_ICON = /* @__PURE__ */ jsx18(
|
|
|
2081
2309
|
strokeWidth: "2",
|
|
2082
2310
|
strokeLinecap: "round",
|
|
2083
2311
|
strokeLinejoin: "round",
|
|
2084
|
-
children: /* @__PURE__ */
|
|
2312
|
+
children: /* @__PURE__ */ jsx19("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" })
|
|
2085
2313
|
}
|
|
2086
2314
|
);
|
|
2087
|
-
var CHECK_ICON2 = /* @__PURE__ */
|
|
2315
|
+
var CHECK_ICON2 = /* @__PURE__ */ jsx19(
|
|
2088
2316
|
"svg",
|
|
2089
2317
|
{
|
|
2090
2318
|
viewBox: "0 0 24 24",
|
|
@@ -2095,10 +2323,10 @@ var CHECK_ICON2 = /* @__PURE__ */ jsx18(
|
|
|
2095
2323
|
strokeWidth: "2",
|
|
2096
2324
|
strokeLinecap: "round",
|
|
2097
2325
|
strokeLinejoin: "round",
|
|
2098
|
-
children: /* @__PURE__ */
|
|
2326
|
+
children: /* @__PURE__ */ jsx19("polyline", { points: "20 6 9 17 4 12" })
|
|
2099
2327
|
}
|
|
2100
2328
|
);
|
|
2101
|
-
var X_CIRCLE_ICON = /* @__PURE__ */
|
|
2329
|
+
var X_CIRCLE_ICON = /* @__PURE__ */ jsxs19(
|
|
2102
2330
|
"svg",
|
|
2103
2331
|
{
|
|
2104
2332
|
viewBox: "0 0 24 24",
|
|
@@ -2110,13 +2338,13 @@ var X_CIRCLE_ICON = /* @__PURE__ */ jsxs18(
|
|
|
2110
2338
|
strokeLinecap: "round",
|
|
2111
2339
|
strokeLinejoin: "round",
|
|
2112
2340
|
children: [
|
|
2113
|
-
/* @__PURE__ */
|
|
2114
|
-
/* @__PURE__ */
|
|
2115
|
-
/* @__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" })
|
|
2116
2344
|
]
|
|
2117
2345
|
}
|
|
2118
2346
|
);
|
|
2119
|
-
var ALERT_TRIANGLE_ICON = /* @__PURE__ */
|
|
2347
|
+
var ALERT_TRIANGLE_ICON = /* @__PURE__ */ jsxs19(
|
|
2120
2348
|
"svg",
|
|
2121
2349
|
{
|
|
2122
2350
|
viewBox: "0 0 24 24",
|
|
@@ -2128,9 +2356,9 @@ var ALERT_TRIANGLE_ICON = /* @__PURE__ */ jsxs18(
|
|
|
2128
2356
|
strokeLinecap: "round",
|
|
2129
2357
|
strokeLinejoin: "round",
|
|
2130
2358
|
children: [
|
|
2131
|
-
/* @__PURE__ */
|
|
2132
|
-
/* @__PURE__ */
|
|
2133
|
-
/* @__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" })
|
|
2134
2362
|
]
|
|
2135
2363
|
}
|
|
2136
2364
|
);
|
|
@@ -2232,10 +2460,10 @@ function GraphToolbar({
|
|
|
2232
2460
|
const foldAllSection = onFoldAll || onExpandAll;
|
|
2233
2461
|
const foldAllTitle = foldAllDisabled ? "Fold all controllers (nothing to fold)" : "Fold all controllers";
|
|
2234
2462
|
const expandAllTitle = expandAllDisabled ? "Expand all controllers (nothing to expand)" : "Expand all controllers";
|
|
2235
|
-
return /* @__PURE__ */
|
|
2236
|
-
validationState !== void 0 && /* @__PURE__ */
|
|
2237
|
-
/* @__PURE__ */
|
|
2238
|
-
/* @__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(
|
|
2239
2467
|
"button",
|
|
2240
2468
|
{
|
|
2241
2469
|
type: "button",
|
|
@@ -2248,11 +2476,11 @@ function GraphToolbar({
|
|
|
2248
2476
|
"aria-controls": validationPanelId,
|
|
2249
2477
|
children: [
|
|
2250
2478
|
validationIcon(validationState),
|
|
2251
|
-
validationIssues.length > 0 && /* @__PURE__ */
|
|
2479
|
+
validationIssues.length > 0 && /* @__PURE__ */ jsx19("span", { className: "graph-toolbar-validation-badge", children: validationIssues.length > 99 ? "99+" : validationIssues.length })
|
|
2252
2480
|
]
|
|
2253
2481
|
}
|
|
2254
2482
|
),
|
|
2255
|
-
validationOpen && /* @__PURE__ */
|
|
2483
|
+
validationOpen && /* @__PURE__ */ jsx19(
|
|
2256
2484
|
ValidationPanel,
|
|
2257
2485
|
{
|
|
2258
2486
|
id: validationPanelId,
|
|
@@ -2263,9 +2491,9 @@ function GraphToolbar({
|
|
|
2263
2491
|
}
|
|
2264
2492
|
)
|
|
2265
2493
|
] }),
|
|
2266
|
-
/* @__PURE__ */
|
|
2494
|
+
/* @__PURE__ */ jsx19("div", { className: "graph-toolbar-separator" })
|
|
2267
2495
|
] }),
|
|
2268
|
-
onFoldAll && /* @__PURE__ */
|
|
2496
|
+
onFoldAll && /* @__PURE__ */ jsx19(
|
|
2269
2497
|
"button",
|
|
2270
2498
|
{
|
|
2271
2499
|
type: "button",
|
|
@@ -2277,7 +2505,7 @@ function GraphToolbar({
|
|
|
2277
2505
|
children: FOLD_ALL_ICON
|
|
2278
2506
|
}
|
|
2279
2507
|
),
|
|
2280
|
-
onExpandAll && /* @__PURE__ */
|
|
2508
|
+
onExpandAll && /* @__PURE__ */ jsx19(
|
|
2281
2509
|
"button",
|
|
2282
2510
|
{
|
|
2283
2511
|
type: "button",
|
|
@@ -2289,8 +2517,8 @@ function GraphToolbar({
|
|
|
2289
2517
|
children: EXPAND_ALL_ICON
|
|
2290
2518
|
}
|
|
2291
2519
|
),
|
|
2292
|
-
foldAllSection && /* @__PURE__ */
|
|
2293
|
-
/* @__PURE__ */
|
|
2520
|
+
foldAllSection && /* @__PURE__ */ jsx19("div", { className: "graph-toolbar-separator" }),
|
|
2521
|
+
/* @__PURE__ */ jsx19(
|
|
2294
2522
|
"button",
|
|
2295
2523
|
{
|
|
2296
2524
|
type: "button",
|
|
@@ -2301,7 +2529,7 @@ function GraphToolbar({
|
|
|
2301
2529
|
children: BOXES_ICON
|
|
2302
2530
|
}
|
|
2303
2531
|
),
|
|
2304
|
-
/* @__PURE__ */
|
|
2532
|
+
/* @__PURE__ */ jsx19(
|
|
2305
2533
|
"button",
|
|
2306
2534
|
{
|
|
2307
2535
|
type: "button",
|
|
@@ -2312,8 +2540,8 @@ function GraphToolbar({
|
|
|
2312
2540
|
children: isVertical ? ARROW_RIGHT_ICON : ARROW_DOWN_ICON
|
|
2313
2541
|
}
|
|
2314
2542
|
),
|
|
2315
|
-
(onZoomOut || onZoomIn || onFitView) && /* @__PURE__ */
|
|
2316
|
-
onZoomOut && /* @__PURE__ */
|
|
2543
|
+
(onZoomOut || onZoomIn || onFitView) && /* @__PURE__ */ jsx19("div", { className: "graph-toolbar-separator" }),
|
|
2544
|
+
onZoomOut && /* @__PURE__ */ jsx19(
|
|
2317
2545
|
"button",
|
|
2318
2546
|
{
|
|
2319
2547
|
type: "button",
|
|
@@ -2324,7 +2552,7 @@ function GraphToolbar({
|
|
|
2324
2552
|
children: MINUS_ICON
|
|
2325
2553
|
}
|
|
2326
2554
|
),
|
|
2327
|
-
onZoomIn && /* @__PURE__ */
|
|
2555
|
+
onZoomIn && /* @__PURE__ */ jsx19(
|
|
2328
2556
|
"button",
|
|
2329
2557
|
{
|
|
2330
2558
|
type: "button",
|
|
@@ -2335,7 +2563,7 @@ function GraphToolbar({
|
|
|
2335
2563
|
children: PLUS_ICON
|
|
2336
2564
|
}
|
|
2337
2565
|
),
|
|
2338
|
-
onFitView && /* @__PURE__ */
|
|
2566
|
+
onFitView && /* @__PURE__ */ jsx19(
|
|
2339
2567
|
"button",
|
|
2340
2568
|
{
|
|
2341
2569
|
type: "button",
|
|
@@ -2346,9 +2574,9 @@ function GraphToolbar({
|
|
|
2346
2574
|
children: FIT_VIEW_ICON
|
|
2347
2575
|
}
|
|
2348
2576
|
),
|
|
2349
|
-
themeToggleEnabled && /* @__PURE__ */
|
|
2350
|
-
/* @__PURE__ */
|
|
2351
|
-
/* @__PURE__ */
|
|
2577
|
+
themeToggleEnabled && /* @__PURE__ */ jsxs19(Fragment12, { children: [
|
|
2578
|
+
/* @__PURE__ */ jsx19("div", { className: "graph-toolbar-separator" }),
|
|
2579
|
+
/* @__PURE__ */ jsx19(
|
|
2352
2580
|
"button",
|
|
2353
2581
|
{
|
|
2354
2582
|
type: "button",
|
|
@@ -2364,7 +2592,7 @@ function GraphToolbar({
|
|
|
2364
2592
|
}
|
|
2365
2593
|
|
|
2366
2594
|
// src/graph/react/nodes/NodeValidationBadge.tsx
|
|
2367
|
-
import { jsx as
|
|
2595
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
2368
2596
|
function NodeValidationBadge({
|
|
2369
2597
|
validation,
|
|
2370
2598
|
onClick
|
|
@@ -2374,9 +2602,9 @@ function NodeValidationBadge({
|
|
|
2374
2602
|
const className = `node-validation-badge node-validation-badge--${validation.severity}`;
|
|
2375
2603
|
const text = validation.count > 99 ? "99+" : String(validation.count);
|
|
2376
2604
|
if (!onClick) {
|
|
2377
|
-
return /* @__PURE__ */
|
|
2605
|
+
return /* @__PURE__ */ jsx20("span", { className, title: tooltip, "aria-label": label, children: text });
|
|
2378
2606
|
}
|
|
2379
|
-
return /* @__PURE__ */
|
|
2607
|
+
return /* @__PURE__ */ jsx20(
|
|
2380
2608
|
"button",
|
|
2381
2609
|
{
|
|
2382
2610
|
type: "button",
|
|
@@ -2396,7 +2624,7 @@ function validationRingClass(validation) {
|
|
|
2396
2624
|
}
|
|
2397
2625
|
|
|
2398
2626
|
// src/graph/react/nodes/controller/ControllerGroupNode.tsx
|
|
2399
|
-
import { jsx as
|
|
2627
|
+
import { jsx as jsx21, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
2400
2628
|
var CONTROLLER_CONFIG = {
|
|
2401
2629
|
PipeSequence: { badge: "Sequence", icon: "\u2192" },
|
|
2402
2630
|
PipeParallel: { badge: "Parallel", icon: "//" },
|
|
@@ -2418,12 +2646,12 @@ function ControllerGroupNode({ data }) {
|
|
|
2418
2646
|
const modifier = getControllerModifier(data.pipeType);
|
|
2419
2647
|
const isCollapsible = (data.pipeType === "PipeParallel" || data.pipeType === "PipeBatch") && ((_a = data.childCount) != null ? _a : 0) > MAX_VISIBLE_CONTROLLER_CHILDREN;
|
|
2420
2648
|
const hiddenCount = isCollapsible ? ((_b = data.childCount) != null ? _b : 0) - MAX_VISIBLE_CONTROLLER_CHILDREN : 0;
|
|
2421
|
-
return /* @__PURE__ */
|
|
2422
|
-
/* @__PURE__ */
|
|
2423
|
-
/* @__PURE__ */
|
|
2424
|
-
/* @__PURE__ */
|
|
2425
|
-
data.label && /* @__PURE__ */
|
|
2426
|
-
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(
|
|
2427
2655
|
"button",
|
|
2428
2656
|
{
|
|
2429
2657
|
type: "button",
|
|
@@ -2438,9 +2666,9 @@ function ControllerGroupNode({ data }) {
|
|
|
2438
2666
|
children: "\u2921"
|
|
2439
2667
|
}
|
|
2440
2668
|
),
|
|
2441
|
-
data.validation && /* @__PURE__ */
|
|
2669
|
+
data.validation && /* @__PURE__ */ jsx21(NodeValidationBadge, { validation: data.validation, onClick: data.onValidationBadgeClick })
|
|
2442
2670
|
] }),
|
|
2443
|
-
isCollapsible && /* @__PURE__ */
|
|
2671
|
+
isCollapsible && /* @__PURE__ */ jsx21(
|
|
2444
2672
|
"button",
|
|
2445
2673
|
{
|
|
2446
2674
|
className: "controller-group-collapse",
|
|
@@ -2461,7 +2689,7 @@ import { Handle, Position } from "@xyflow/react";
|
|
|
2461
2689
|
|
|
2462
2690
|
// src/graph/react/nodes/pipe/PipeCardBase.tsx
|
|
2463
2691
|
import { useState as useState2 } from "react";
|
|
2464
|
-
import { jsx as
|
|
2692
|
+
import { jsx as jsx22, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2465
2693
|
var PIPE_TYPE_BADGES2 = {
|
|
2466
2694
|
PipeLLM: "LLM",
|
|
2467
2695
|
PipeExtract: "Extract",
|
|
@@ -2517,21 +2745,21 @@ function PipeCardBase({ data, children }) {
|
|
|
2517
2745
|
const staticClass = isStatic ? " pipe-card--static" : "";
|
|
2518
2746
|
const badgeClass = isController ? "pipe-card-badge pipe-card-badge--controller" : isSignature ? "pipe-card-badge pipe-card-badge--signature" : "pipe-card-badge";
|
|
2519
2747
|
const ringClass = validationRingClass(data.validation);
|
|
2520
|
-
return /* @__PURE__ */
|
|
2748
|
+
return /* @__PURE__ */ jsxs21(
|
|
2521
2749
|
"div",
|
|
2522
2750
|
{
|
|
2523
2751
|
className: `pipe-card ${dirClass}${controllerClass}${signatureClass}${staticClass}${ringClass}`,
|
|
2524
2752
|
children: [
|
|
2525
|
-
/* @__PURE__ */
|
|
2526
|
-
/* @__PURE__ */
|
|
2527
|
-
/* @__PURE__ */
|
|
2528
|
-
!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(
|
|
2529
2757
|
"span",
|
|
2530
2758
|
{
|
|
2531
2759
|
className: "pipe-card-status",
|
|
2532
2760
|
style: { color: statusConfig.color },
|
|
2533
2761
|
title: statusConfig.label,
|
|
2534
|
-
children: /* @__PURE__ */
|
|
2762
|
+
children: /* @__PURE__ */ jsx22(
|
|
2535
2763
|
"span",
|
|
2536
2764
|
{
|
|
2537
2765
|
className: `pipe-card-status-dot ${isRunning ? "pipe-card-status-dot--pulse" : ""}`,
|
|
@@ -2540,7 +2768,7 @@ function PipeCardBase({ data, children }) {
|
|
|
2540
2768
|
)
|
|
2541
2769
|
}
|
|
2542
2770
|
),
|
|
2543
|
-
data.onExpand && /* @__PURE__ */
|
|
2771
|
+
data.onExpand && /* @__PURE__ */ jsx22(
|
|
2544
2772
|
"button",
|
|
2545
2773
|
{
|
|
2546
2774
|
type: "button",
|
|
@@ -2555,32 +2783,32 @@ function PipeCardBase({ data, children }) {
|
|
|
2555
2783
|
children: "\u2922"
|
|
2556
2784
|
}
|
|
2557
2785
|
),
|
|
2558
|
-
data.validation && /* @__PURE__ */
|
|
2786
|
+
data.validation && /* @__PURE__ */ jsx22(NodeValidationBadge, { validation: data.validation, onClick: data.onValidationBadgeClick })
|
|
2559
2787
|
] }),
|
|
2560
|
-
(outcome || batchMultiplicity) && /* @__PURE__ */
|
|
2561
|
-
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: [
|
|
2562
2790
|
"outcome: ",
|
|
2563
2791
|
outcome
|
|
2564
2792
|
] }),
|
|
2565
|
-
batchMultiplicity && /* @__PURE__ */
|
|
2793
|
+
batchMultiplicity && /* @__PURE__ */ jsx22("span", { className: "pipe-card-annotation pipe-card-annotation--batch", children: batchMultiplicity })
|
|
2566
2794
|
] }),
|
|
2567
|
-
data.description && /* @__PURE__ */
|
|
2568
|
-
data.inputs.length > 0 && /* @__PURE__ */
|
|
2569
|
-
/* @__PURE__ */
|
|
2570
|
-
/* @__PURE__ */
|
|
2571
|
-
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(
|
|
2572
2800
|
"span",
|
|
2573
2801
|
{
|
|
2574
2802
|
className: "pipe-card-io-pill",
|
|
2575
2803
|
title: `${input.name}: ${input.concept}`,
|
|
2576
2804
|
children: [
|
|
2577
|
-
/* @__PURE__ */
|
|
2578
|
-
/* @__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 })
|
|
2579
2807
|
]
|
|
2580
2808
|
},
|
|
2581
2809
|
input.name
|
|
2582
2810
|
)),
|
|
2583
|
-
hasMany && /* @__PURE__ */
|
|
2811
|
+
hasMany && /* @__PURE__ */ jsx22(
|
|
2584
2812
|
"button",
|
|
2585
2813
|
{
|
|
2586
2814
|
className: "pipe-card-io-more",
|
|
@@ -2593,16 +2821,16 @@ function PipeCardBase({ data, children }) {
|
|
|
2593
2821
|
)
|
|
2594
2822
|
] })
|
|
2595
2823
|
] }),
|
|
2596
|
-
data.outputs.length > 0 && /* @__PURE__ */
|
|
2597
|
-
/* @__PURE__ */
|
|
2598
|
-
/* @__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(
|
|
2599
2827
|
"span",
|
|
2600
2828
|
{
|
|
2601
2829
|
className: "pipe-card-io-pill",
|
|
2602
2830
|
title: `${output.name}: ${output.concept}`,
|
|
2603
2831
|
children: [
|
|
2604
|
-
/* @__PURE__ */
|
|
2605
|
-
/* @__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 })
|
|
2606
2834
|
]
|
|
2607
2835
|
},
|
|
2608
2836
|
output.name
|
|
@@ -2634,11 +2862,11 @@ function getPipeCardComponent(pipeType) {
|
|
|
2634
2862
|
}
|
|
2635
2863
|
|
|
2636
2864
|
// src/graph/react/nodes/pipe/PipeCardNode.tsx
|
|
2637
|
-
import { Fragment as Fragment13, jsx as
|
|
2865
|
+
import { Fragment as Fragment13, jsx as jsx23, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
2638
2866
|
function PipeCardNode({ data }) {
|
|
2639
2867
|
var _a;
|
|
2640
2868
|
const Card = (_a = getPipeCardComponent(data.pipeType)) != null ? _a : PipeCardBase;
|
|
2641
|
-
return /* @__PURE__ */
|
|
2869
|
+
return /* @__PURE__ */ jsx23(Card, { data });
|
|
2642
2870
|
}
|
|
2643
2871
|
function PipeCardRFNode({
|
|
2644
2872
|
data,
|
|
@@ -2647,15 +2875,15 @@ function PipeCardRFNode({
|
|
|
2647
2875
|
}) {
|
|
2648
2876
|
const payload = data.pipeCardData;
|
|
2649
2877
|
if (!payload) return null;
|
|
2650
|
-
return /* @__PURE__ */
|
|
2651
|
-
/* @__PURE__ */
|
|
2652
|
-
/* @__PURE__ */
|
|
2653
|
-
/* @__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 })
|
|
2654
2882
|
] });
|
|
2655
2883
|
}
|
|
2656
2884
|
|
|
2657
2885
|
// src/graph/react/viewer/GraphViewer.tsx
|
|
2658
|
-
import { Fragment as Fragment14, jsx as
|
|
2886
|
+
import { Fragment as Fragment14, jsx as jsx24, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
2659
2887
|
var nodeTypes = __spreadProps(__spreadValues({}, controllerNodeTypes), {
|
|
2660
2888
|
pipeCard: PipeCardRFNode
|
|
2661
2889
|
});
|
|
@@ -2669,7 +2897,7 @@ function StuffNodeDetail({
|
|
|
2669
2897
|
}) {
|
|
2670
2898
|
const conceptInfo = stuffData.concept && graphspec ? resolveConceptRef(graphspec, stuffData.concept) : void 0;
|
|
2671
2899
|
const isDryRun = graphSpecMode(graphspec) === GRAPH_SPEC_MODE.DRY;
|
|
2672
|
-
return /* @__PURE__ */
|
|
2900
|
+
return /* @__PURE__ */ jsx24(Fragment14, { children: conceptInfo ? /* @__PURE__ */ jsx24(
|
|
2673
2901
|
ConceptDetailPanel,
|
|
2674
2902
|
{
|
|
2675
2903
|
concept: conceptInfo,
|
|
@@ -2680,9 +2908,9 @@ function StuffNodeDetail({
|
|
|
2680
2908
|
canEmbedPdf,
|
|
2681
2909
|
onOpenExternally
|
|
2682
2910
|
}
|
|
2683
|
-
) : isDryRun ? /* @__PURE__ */
|
|
2911
|
+
) : isDryRun ? /* @__PURE__ */ jsx24("div", { className: "detail-not-available", children: "Dry run data hidden" }) : (
|
|
2684
2912
|
/* Fallback: just show the StuffViewer if no concept info */
|
|
2685
|
-
/* @__PURE__ */
|
|
2913
|
+
/* @__PURE__ */ jsx24(
|
|
2686
2914
|
StuffViewer,
|
|
2687
2915
|
{
|
|
2688
2916
|
stuff: stuffData,
|
|
@@ -3338,13 +3566,13 @@ function GraphViewer(props) {
|
|
|
3338
3566
|
expandAllDisabled: foldedControllers.size === 0
|
|
3339
3567
|
};
|
|
3340
3568
|
}, [showControllers, allControllerIds, foldedControllers]);
|
|
3341
|
-
return /* @__PURE__ */
|
|
3569
|
+
return /* @__PURE__ */ jsxs23(
|
|
3342
3570
|
"div",
|
|
3343
3571
|
{
|
|
3344
3572
|
ref: containerRef,
|
|
3345
3573
|
className: `react-flow-container react-flow-container--theme-${resolvedTheme} react-flow-container--mode-${mode}`,
|
|
3346
3574
|
children: [
|
|
3347
|
-
/* @__PURE__ */
|
|
3575
|
+
/* @__PURE__ */ jsxs23(
|
|
3348
3576
|
ReactFlow,
|
|
3349
3577
|
{
|
|
3350
3578
|
nodes,
|
|
@@ -3363,7 +3591,7 @@ function GraphViewer(props) {
|
|
|
3363
3591
|
proOptions: { hideAttribution: true },
|
|
3364
3592
|
panActivationKeyCode: null,
|
|
3365
3593
|
children: [
|
|
3366
|
-
/* @__PURE__ */
|
|
3594
|
+
/* @__PURE__ */ jsx24(
|
|
3367
3595
|
Background,
|
|
3368
3596
|
{
|
|
3369
3597
|
variant: BackgroundVariant.Dots,
|
|
@@ -3372,7 +3600,7 @@ function GraphViewer(props) {
|
|
|
3372
3600
|
color: "var(--color-bg-dots)"
|
|
3373
3601
|
}
|
|
3374
3602
|
),
|
|
3375
|
-
!hideToolbar && /* @__PURE__ */
|
|
3603
|
+
!hideToolbar && /* @__PURE__ */ jsx24(
|
|
3376
3604
|
GraphToolbar,
|
|
3377
3605
|
{
|
|
3378
3606
|
direction,
|
|
@@ -3409,7 +3637,7 @@ function GraphViewer(props) {
|
|
|
3409
3637
|
]
|
|
3410
3638
|
}
|
|
3411
3639
|
),
|
|
3412
|
-
/* @__PURE__ */
|
|
3640
|
+
/* @__PURE__ */ jsxs23(
|
|
3413
3641
|
DetailPanel,
|
|
3414
3642
|
{
|
|
3415
3643
|
isOpen: detailOpen,
|
|
@@ -3418,14 +3646,14 @@ function GraphViewer(props) {
|
|
|
3418
3646
|
isDragging: isPanelDragging,
|
|
3419
3647
|
onResizeHandleMouseDown: onResizeMouseDown,
|
|
3420
3648
|
children: [
|
|
3421
|
-
conceptOverride ? /* @__PURE__ */
|
|
3649
|
+
conceptOverride ? /* @__PURE__ */ jsx24(ConceptDetailPanel, { concept: conceptOverride }) : selectedSpecNode && graphspec ? /* @__PURE__ */ jsx24(
|
|
3422
3650
|
PipeDetailPanel,
|
|
3423
3651
|
{
|
|
3424
3652
|
node: selectedSpecNode,
|
|
3425
3653
|
spec: graphspec,
|
|
3426
3654
|
onConceptClick: handleConceptClick
|
|
3427
3655
|
}
|
|
3428
|
-
) : (detailSelection == null ? void 0 : detailSelection.stuffData) ? /* @__PURE__ */
|
|
3656
|
+
) : (detailSelection == null ? void 0 : detailSelection.stuffData) ? /* @__PURE__ */ jsx24(
|
|
3429
3657
|
StuffNodeDetail,
|
|
3430
3658
|
{
|
|
3431
3659
|
nodeId: detailSelection.nodeId,
|