@powerhousedao/ph-clint-app 0.1.0-dev.74 → 0.1.0-dev.75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/document-models/index.js +1 -1
- package/dist/browser/document-models/ph-clint-project/index.js +3 -3
- package/dist/browser/{editor-CAZmaheq.js → editor-Z7QJIYOp.js} +377 -403
- package/dist/browser/{editor-CAZmaheq.js.map → editor-Z7QJIYOp.js.map} +1 -1
- package/dist/browser/editors/ph-clint-project-editor/module.js +1 -1
- package/dist/browser/index.js +3 -3
- package/dist/browser/{module-K5q3UobV.js → module-BZ6W31hV.js} +70 -132
- package/dist/browser/{module-K5q3UobV.js.map → module-BZ6W31hV.js.map} +1 -1
- package/dist/browser/{ph-clint-project-Bbl7jqNw.js → ph-clint-project-3b5ZHznW.js} +2 -2
- package/dist/browser/{ph-clint-project-Bbl7jqNw.js.map → ph-clint-project-3b5ZHznW.js.map} +1 -1
- package/dist/connect/assets/editor-CEMUd4Ju.js +2 -0
- package/dist/connect/assets/editor-CEMUd4Ju.js.map +1 -0
- package/dist/connect/assets/{index-DmrNLi1C.js → index-BxEnFQyj.js} +20 -20
- package/dist/connect/assets/{index-DmrNLi1C.js.map → index-BxEnFQyj.js.map} +1 -1
- package/dist/connect/assets/{ph-clint-project-DZ_ZplDv.js → ph-clint-project-C_SSQ38p.js} +7 -37
- package/dist/connect/assets/ph-clint-project-C_SSQ38p.js.map +1 -0
- package/dist/connect/index.html +2 -2
- package/dist/connect/ph-packages.json +1 -1
- package/dist/document-models/ph-clint-project/v1/actions.d.ts +0 -1
- package/dist/document-models/ph-clint-project/v1/actions.d.ts.map +1 -1
- package/dist/document-models/ph-clint-project/v1/gen/document-model.d.ts.map +1 -1
- package/dist/document-models/ph-clint-project/v1/gen/mastra-models/actions.d.ts +2 -6
- package/dist/document-models/ph-clint-project/v1/gen/mastra-models/actions.d.ts.map +1 -1
- package/dist/document-models/ph-clint-project/v1/gen/mastra-models/creators.d.ts +2 -3
- package/dist/document-models/ph-clint-project/v1/gen/mastra-models/creators.d.ts.map +1 -1
- package/dist/document-models/ph-clint-project/v1/gen/mastra-models/error.d.ts +0 -4
- package/dist/document-models/ph-clint-project/v1/gen/mastra-models/error.d.ts.map +1 -1
- package/dist/document-models/ph-clint-project/v1/gen/mastra-models/operations.d.ts +1 -2
- package/dist/document-models/ph-clint-project/v1/gen/mastra-models/operations.d.ts.map +1 -1
- package/dist/document-models/ph-clint-project/v1/gen/reducer.d.ts.map +1 -1
- package/dist/document-models/ph-clint-project/v1/gen/schema/types.d.ts +0 -6
- package/dist/document-models/ph-clint-project/v1/gen/schema/types.d.ts.map +1 -1
- package/dist/document-models/ph-clint-project/v1/gen/schema/zod.d.ts +1 -2
- package/dist/document-models/ph-clint-project/v1/gen/schema/zod.d.ts.map +1 -1
- package/dist/document-models/ph-clint-project/v1/module.d.ts +0 -1
- package/dist/document-models/ph-clint-project/v1/module.d.ts.map +1 -1
- package/dist/document-models/ph-clint-project/v1/src/reducers/features-mastra.d.ts.map +1 -1
- package/dist/document-models/ph-clint-project/v1/src/reducers/lifecycle.d.ts.map +1 -1
- package/dist/document-models/ph-clint-project/v1/src/reducers/mastra-models.d.ts.map +1 -1
- package/dist/document-models/ph-clint-project/v1/src/reducers/mastra-profiles.d.ts.map +1 -1
- package/dist/editors/ph-clint-project-editor/editor.d.ts.map +1 -1
- package/dist/node/document-models/index.mjs +1 -1
- package/dist/node/document-models/ph-clint-project/index.mjs +3 -3
- package/dist/node/{editor-DOw2BwlR.mjs → editor-C82Trmk4.mjs} +377 -403
- package/dist/node/{editor-DOw2BwlR.mjs.map → editor-C82Trmk4.mjs.map} +1 -1
- package/dist/node/editors/ph-clint-project-editor/module.mjs +1 -1
- package/dist/node/index.mjs +3 -3
- package/dist/node/{module-DTtUZ4DR.mjs → module-ZwrJ5kaI.mjs} +70 -132
- package/dist/node/{module-DTtUZ4DR.mjs.map → module-ZwrJ5kaI.mjs.map} +1 -1
- package/dist/node/{ph-clint-project-DFA4zHJv.mjs → ph-clint-project-YqV6kGMs.mjs} +2 -2
- package/dist/node/{ph-clint-project-DFA4zHJv.mjs.map → ph-clint-project-YqV6kGMs.mjs.map} +1 -1
- package/dist/style.css +7 -0
- package/package.json +1 -1
- package/dist/connect/assets/editor-CQqCB-3d.js +0 -2
- package/dist/connect/assets/editor-CQqCB-3d.js.map +0 -1
- package/dist/connect/assets/ph-clint-project-DZ_ZplDv.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as __commonJSMin } from "./chunk-BSw8zbkd.mjs";
|
|
2
|
-
import { g as actions,
|
|
3
|
-
import { c as exportDocument, d as showRevisionHistory, f as useGetSwitchboardLink, g as useDocumentById, h as useSelectedDocumentSafe, l as setSelectedNode, m as useNodeParentFolderById, p as useNodeActions, s as useSelectedPhClintProjectDocument, u as setSelectedTimelineItem } from "./ph-clint-project-
|
|
2
|
+
import { g as actions, gr as undo, kr as generateId, pr as redo } from "./module-ZwrJ5kaI.mjs";
|
|
3
|
+
import { c as exportDocument, d as showRevisionHistory, f as useGetSwitchboardLink, g as useDocumentById, h as useSelectedDocumentSafe, l as setSelectedNode, m as useNodeParentFolderById, p as useNodeActions, s as useSelectedPhClintProjectDocument, u as setSelectedTimelineItem } from "./ph-clint-project-YqV6kGMs.mjs";
|
|
4
4
|
import { n as Icon, r as twMerge } from "./document-timeline-FWiQhfIq-QHzDHzlR.mjs";
|
|
5
5
|
import { Suspense, lazy, useCallback, useEffect, useLayoutEffect, useRef, useState } from "react";
|
|
6
6
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -646,6 +646,13 @@ const POWERHOUSE_LEVELS = [
|
|
|
646
646
|
description: "Web UI for document management"
|
|
647
647
|
}
|
|
648
648
|
];
|
|
649
|
+
/** Patch-bump a semver-ish version string: 0.0.1 → 0.0.2. Falls back to "<version>.1" when unparseable. */
|
|
650
|
+
function bumpPatch(version) {
|
|
651
|
+
const m = /^(\d+)\.(\d+)\.(\d+)/.exec(version);
|
|
652
|
+
if (!m) return `${version}.1`;
|
|
653
|
+
const [, major, minor, patch] = m;
|
|
654
|
+
return `${major}.${minor}.${Number(patch) + 1}`;
|
|
655
|
+
}
|
|
649
656
|
function TextField(props) {
|
|
650
657
|
return /* @__PURE__ */ jsxs("label", {
|
|
651
658
|
className: props.compact ? "my-1 block" : "my-3 block",
|
|
@@ -689,11 +696,37 @@ function Toggle(props) {
|
|
|
689
696
|
]
|
|
690
697
|
});
|
|
691
698
|
}
|
|
699
|
+
const TAB_LABELS = [
|
|
700
|
+
{
|
|
701
|
+
value: "cli",
|
|
702
|
+
label: "CLI"
|
|
703
|
+
},
|
|
704
|
+
{
|
|
705
|
+
value: "agents",
|
|
706
|
+
label: "Agents"
|
|
707
|
+
},
|
|
708
|
+
{
|
|
709
|
+
value: "profiles",
|
|
710
|
+
label: "Profiles"
|
|
711
|
+
},
|
|
712
|
+
{
|
|
713
|
+
value: "skills",
|
|
714
|
+
label: "Skills"
|
|
715
|
+
},
|
|
716
|
+
{
|
|
717
|
+
value: "powerhouse",
|
|
718
|
+
label: "Powerhouse"
|
|
719
|
+
},
|
|
720
|
+
{
|
|
721
|
+
value: "publish",
|
|
722
|
+
label: "Publish"
|
|
723
|
+
}
|
|
724
|
+
];
|
|
692
725
|
function Editor() {
|
|
693
726
|
const [document, dispatch] = useSelectedPhClintProjectDocument();
|
|
694
727
|
const state = document.state.global;
|
|
695
728
|
const { powerhouse, mastra, routine } = state.features;
|
|
696
|
-
const [activeTab, setActiveTab] = useState("
|
|
729
|
+
const [activeTab, setActiveTab] = useState("cli");
|
|
697
730
|
const setPackageIdentifier = (identifier) => dispatch(actions.setPackageIdentifier({ identifier }));
|
|
698
731
|
const setVersion = (version) => dispatch(actions.setVersion({ version }));
|
|
699
732
|
const setDescription = (description) => dispatch(actions.setDescription({ description }));
|
|
@@ -765,12 +798,8 @@ function Editor() {
|
|
|
765
798
|
id,
|
|
766
799
|
description
|
|
767
800
|
}));
|
|
768
|
-
const addModel = (id
|
|
769
|
-
id,
|
|
770
|
-
isDefault
|
|
771
|
-
}));
|
|
801
|
+
const addModel = (id) => dispatch(actions.addModel({ id }));
|
|
772
802
|
const removeModel = (id) => dispatch(actions.removeModel({ id }));
|
|
773
|
-
const setDefaultModel = (id) => dispatch(actions.setDefaultModel({ id }));
|
|
774
803
|
const addProfile = (id, title, content, insertBefore) => dispatch(actions.addProfile({
|
|
775
804
|
id,
|
|
776
805
|
title,
|
|
@@ -837,37 +866,15 @@ function Editor() {
|
|
|
837
866
|
className: "mt-4 text-xl font-bold",
|
|
838
867
|
children: "ph-clint Project Spec"
|
|
839
868
|
}),
|
|
840
|
-
/* @__PURE__ */
|
|
869
|
+
/* @__PURE__ */ jsx("nav", {
|
|
841
870
|
className: "my-4 flex border-b border-gray-200",
|
|
842
|
-
children:
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
}),
|
|
848
|
-
/* @__PURE__ */ jsx("button", {
|
|
849
|
-
className: tabClasses("agent"),
|
|
850
|
-
onClick: () => setActiveTab("agent"),
|
|
851
|
-
children: "Agent"
|
|
852
|
-
}),
|
|
853
|
-
/* @__PURE__ */ jsx("button", {
|
|
854
|
-
className: tabClasses("powerhouse"),
|
|
855
|
-
onClick: () => setActiveTab("powerhouse"),
|
|
856
|
-
children: "Powerhouse"
|
|
857
|
-
}),
|
|
858
|
-
/* @__PURE__ */ jsx("button", {
|
|
859
|
-
className: tabClasses("skills"),
|
|
860
|
-
onClick: () => setActiveTab("skills"),
|
|
861
|
-
children: "Skills"
|
|
862
|
-
}),
|
|
863
|
-
/* @__PURE__ */ jsx("button", {
|
|
864
|
-
className: tabClasses("publish"),
|
|
865
|
-
onClick: () => setActiveTab("publish"),
|
|
866
|
-
children: "Publish"
|
|
867
|
-
})
|
|
868
|
-
]
|
|
871
|
+
children: TAB_LABELS.map((t) => /* @__PURE__ */ jsx("button", {
|
|
872
|
+
className: tabClasses(t.value),
|
|
873
|
+
onClick: () => setActiveTab(t.value),
|
|
874
|
+
children: t.label
|
|
875
|
+
}, t.value))
|
|
869
876
|
}),
|
|
870
|
-
activeTab === "
|
|
877
|
+
activeTab === "cli" && /* @__PURE__ */ jsx(CliTab, {
|
|
871
878
|
state,
|
|
872
879
|
powerhouse,
|
|
873
880
|
mastra,
|
|
@@ -878,11 +885,13 @@ function Editor() {
|
|
|
878
885
|
setDescription,
|
|
879
886
|
setPowerhouseLevel,
|
|
880
887
|
toggleMastra,
|
|
881
|
-
toggleRoutine
|
|
888
|
+
toggleRoutine,
|
|
889
|
+
setEnableChat,
|
|
890
|
+
addModel,
|
|
891
|
+
removeModel
|
|
882
892
|
}),
|
|
883
|
-
activeTab === "
|
|
893
|
+
activeTab === "agents" && /* @__PURE__ */ jsx(AgentsTab, {
|
|
884
894
|
mastra,
|
|
885
|
-
isAboveDisabled,
|
|
886
895
|
setMainAgentName,
|
|
887
896
|
setMainAgentDescription,
|
|
888
897
|
clearMainAgentDescription,
|
|
@@ -899,15 +908,19 @@ function Editor() {
|
|
|
899
908
|
addAgentSkill,
|
|
900
909
|
removeAgentSkill,
|
|
901
910
|
addAgentToolPattern,
|
|
902
|
-
removeAgentToolPattern
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
911
|
+
removeAgentToolPattern
|
|
912
|
+
}),
|
|
913
|
+
activeTab === "profiles" && /* @__PURE__ */ jsx(ProfilesTab, {
|
|
914
|
+
mastra,
|
|
906
915
|
addProfile,
|
|
907
916
|
updateProfile,
|
|
908
917
|
removeProfile,
|
|
909
|
-
reorderProfiles
|
|
910
|
-
|
|
918
|
+
reorderProfiles
|
|
919
|
+
}),
|
|
920
|
+
activeTab === "skills" && /* @__PURE__ */ jsx(SkillsTab, {
|
|
921
|
+
skills: state.externalSkills,
|
|
922
|
+
addSkill,
|
|
923
|
+
removeSkill
|
|
911
924
|
}),
|
|
912
925
|
activeTab === "powerhouse" && /* @__PURE__ */ jsx(PowerhouseTab, {
|
|
913
926
|
packages: state.packages,
|
|
@@ -917,11 +930,6 @@ function Editor() {
|
|
|
917
930
|
addDocType,
|
|
918
931
|
removeDocType
|
|
919
932
|
}),
|
|
920
|
-
activeTab === "skills" && /* @__PURE__ */ jsx(SkillsTab, {
|
|
921
|
-
skills: state.externalSkills,
|
|
922
|
-
addSkill,
|
|
923
|
-
removeSkill
|
|
924
|
-
}),
|
|
925
933
|
activeTab === "publish" && /* @__PURE__ */ jsx(PublishTab, {
|
|
926
934
|
version: state.version,
|
|
927
935
|
publishHistory: state.publishHistory,
|
|
@@ -940,8 +948,8 @@ function Editor() {
|
|
|
940
948
|
})]
|
|
941
949
|
});
|
|
942
950
|
}
|
|
943
|
-
function
|
|
944
|
-
const { state } = props;
|
|
951
|
+
function CliTab(props) {
|
|
952
|
+
const { state, mastra } = props;
|
|
945
953
|
const packageIdentifier = `${state.scope ? state.scope + "/" : ""}${state.name ?? ""}`;
|
|
946
954
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
947
955
|
/* @__PURE__ */ jsxs("section", {
|
|
@@ -1018,14 +1026,32 @@ function SpecTab(props) {
|
|
|
1018
1026
|
})
|
|
1019
1027
|
]
|
|
1020
1028
|
}),
|
|
1021
|
-
/* @__PURE__ */
|
|
1029
|
+
/* @__PURE__ */ jsxs("div", {
|
|
1022
1030
|
className: "my-4 rounded border border-gray-200 bg-white p-4",
|
|
1023
|
-
children: /* @__PURE__ */ jsx(Toggle, {
|
|
1031
|
+
children: [/* @__PURE__ */ jsx(Toggle, {
|
|
1024
1032
|
label: "Mastra",
|
|
1025
|
-
checked:
|
|
1033
|
+
checked: mastra.enabled,
|
|
1026
1034
|
hint: "AI agent framework",
|
|
1027
1035
|
onChange: props.toggleMastra
|
|
1028
|
-
})
|
|
1036
|
+
}), mastra.enabled && /* @__PURE__ */ jsxs("div", {
|
|
1037
|
+
className: "mt-4 space-y-4 border-t border-gray-100 pt-4",
|
|
1038
|
+
children: [/* @__PURE__ */ jsx(ModelsSection, {
|
|
1039
|
+
models: mastra.models,
|
|
1040
|
+
main: mastra.mainAgent,
|
|
1041
|
+
subAgents: mastra.subAgents,
|
|
1042
|
+
addModel: props.addModel,
|
|
1043
|
+
removeModel: props.removeModel
|
|
1044
|
+
}), /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("h4", {
|
|
1045
|
+
className: "text-sm font-semibold text-gray-700",
|
|
1046
|
+
children: "Common"
|
|
1047
|
+
}), /* @__PURE__ */ jsx(Toggle, {
|
|
1048
|
+
label: "Enable Chat",
|
|
1049
|
+
checked: mastra.common.enableChat,
|
|
1050
|
+
disabled: !props.isAboveDisabled,
|
|
1051
|
+
hint: props.isAboveDisabled ? "Chat session integration via clint-common" : "Requires Powerhouse to be enabled",
|
|
1052
|
+
onChange: props.setEnableChat
|
|
1053
|
+
})] })]
|
|
1054
|
+
})]
|
|
1029
1055
|
}),
|
|
1030
1056
|
/* @__PURE__ */ jsx("div", {
|
|
1031
1057
|
className: "my-4 rounded border border-gray-200 bg-white p-4",
|
|
@@ -1040,41 +1066,23 @@ function SpecTab(props) {
|
|
|
1040
1066
|
})
|
|
1041
1067
|
] });
|
|
1042
1068
|
}
|
|
1043
|
-
function
|
|
1044
|
-
if (!props.isAboveDisabled) return /* @__PURE__ */ jsxs("section", {
|
|
1045
|
-
className: "my-6 rounded border border-dashed border-gray-300 bg-white p-8 text-center text-gray-500",
|
|
1046
|
-
children: [/* @__PURE__ */ jsx("h3", {
|
|
1047
|
-
className: "text-lg font-semibold",
|
|
1048
|
-
children: "Powerhouse"
|
|
1049
|
-
}), /* @__PURE__ */ jsx("p", {
|
|
1050
|
-
className: "mt-2",
|
|
1051
|
-
children: "Enable Powerhouse in the Spec tab (set level to Reactor or above) to manage packages."
|
|
1052
|
-
})]
|
|
1053
|
-
});
|
|
1054
|
-
return /* @__PURE__ */ jsx(PackagesSection, {
|
|
1055
|
-
packages: props.packages,
|
|
1056
|
-
addPackage: props.addPackage,
|
|
1057
|
-
removePackage: props.removePackage,
|
|
1058
|
-
addDocType: props.addDocType,
|
|
1059
|
-
removeDocType: props.removeDocType
|
|
1060
|
-
});
|
|
1061
|
-
}
|
|
1062
|
-
function AgentTab(props) {
|
|
1069
|
+
function AgentsTab(props) {
|
|
1063
1070
|
const { mastra } = props;
|
|
1064
1071
|
const main = mastra.mainAgent;
|
|
1072
|
+
const [showAddForm, setShowAddForm] = useState(false);
|
|
1065
1073
|
if (!mastra.enabled || !main) return /* @__PURE__ */ jsxs("section", {
|
|
1066
1074
|
className: "my-6 rounded border border-dashed border-gray-300 bg-white p-8 text-center text-gray-500",
|
|
1067
1075
|
children: [/* @__PURE__ */ jsx("h3", {
|
|
1068
1076
|
className: "text-lg font-semibold",
|
|
1069
|
-
children: "
|
|
1077
|
+
children: "Agents"
|
|
1070
1078
|
}), /* @__PURE__ */ jsx("p", {
|
|
1071
1079
|
className: "mt-2",
|
|
1072
|
-
children: "Enable Mastra in the
|
|
1080
|
+
children: "Enable Mastra in the CLI tab to configure agents."
|
|
1073
1081
|
})]
|
|
1074
1082
|
});
|
|
1075
1083
|
const allAgentIds = [main.id, ...mastra.subAgents.map((s) => s.id)];
|
|
1076
1084
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1077
|
-
/* @__PURE__ */ jsx(
|
|
1085
|
+
/* @__PURE__ */ jsx(MainAgentCard, {
|
|
1078
1086
|
main,
|
|
1079
1087
|
models: mastra.models,
|
|
1080
1088
|
profiles: mastra.profiles,
|
|
@@ -1092,13 +1100,10 @@ function AgentTab(props) {
|
|
|
1092
1100
|
addAgentToolPattern: props.addAgentToolPattern,
|
|
1093
1101
|
removeAgentToolPattern: props.removeAgentToolPattern
|
|
1094
1102
|
}),
|
|
1095
|
-
/* @__PURE__ */ jsx(
|
|
1096
|
-
|
|
1097
|
-
subAgents: mastra.subAgents,
|
|
1103
|
+
mastra.subAgents.map((sub) => /* @__PURE__ */ jsx(SubAgentCard, {
|
|
1104
|
+
sub,
|
|
1098
1105
|
models: mastra.models,
|
|
1099
1106
|
profiles: mastra.profiles,
|
|
1100
|
-
existingAgentIds: allAgentIds,
|
|
1101
|
-
addSubAgent: props.addSubAgent,
|
|
1102
1107
|
removeSubAgent: props.removeSubAgent,
|
|
1103
1108
|
setSubAgentName: props.setSubAgentName,
|
|
1104
1109
|
setSubAgentDescription: props.setSubAgentDescription,
|
|
@@ -1110,134 +1115,125 @@ function AgentTab(props) {
|
|
|
1110
1115
|
removeAgentSkill: props.removeAgentSkill,
|
|
1111
1116
|
addAgentToolPattern: props.addAgentToolPattern,
|
|
1112
1117
|
removeAgentToolPattern: props.removeAgentToolPattern
|
|
1113
|
-
}),
|
|
1114
|
-
/* @__PURE__ */ jsx("
|
|
1115
|
-
/* @__PURE__ */ jsx(ModelsSection, {
|
|
1116
|
-
models: mastra.models,
|
|
1117
|
-
main: mastra.mainAgent,
|
|
1118
|
-
subAgents: mastra.subAgents,
|
|
1119
|
-
addModel: props.addModel,
|
|
1120
|
-
removeModel: props.removeModel,
|
|
1121
|
-
setDefaultModel: props.setDefaultModel
|
|
1122
|
-
}),
|
|
1123
|
-
/* @__PURE__ */ jsx("hr", {}),
|
|
1124
|
-
/* @__PURE__ */ jsx(ProfilesSection, {
|
|
1125
|
-
profiles: mastra.profiles,
|
|
1126
|
-
main: mastra.mainAgent,
|
|
1127
|
-
subAgents: mastra.subAgents,
|
|
1128
|
-
addProfile: props.addProfile,
|
|
1129
|
-
updateProfile: props.updateProfile,
|
|
1130
|
-
removeProfile: props.removeProfile,
|
|
1131
|
-
reorderProfiles: props.reorderProfiles
|
|
1132
|
-
}),
|
|
1133
|
-
/* @__PURE__ */ jsx("hr", {}),
|
|
1134
|
-
/* @__PURE__ */ jsxs("section", {
|
|
1118
|
+
}, sub.id)),
|
|
1119
|
+
/* @__PURE__ */ jsx("section", {
|
|
1135
1120
|
className: "my-6",
|
|
1136
|
-
children:
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1121
|
+
children: showAddForm ? /* @__PURE__ */ jsx(AddSubAgentForm, {
|
|
1122
|
+
models: mastra.models,
|
|
1123
|
+
existingAgentIds: allAgentIds,
|
|
1124
|
+
onAdd: (id, name, description, modelId) => {
|
|
1125
|
+
props.addSubAgent(id, name, description, modelId);
|
|
1126
|
+
setShowAddForm(false);
|
|
1127
|
+
},
|
|
1128
|
+
onCancel: () => setShowAddForm(false)
|
|
1129
|
+
}) : /* @__PURE__ */ jsx("button", {
|
|
1130
|
+
className: "rounded bg-blue-500 px-3 py-2 text-sm text-white hover:bg-blue-600 disabled:cursor-not-allowed disabled:opacity-50",
|
|
1131
|
+
disabled: mastra.models.length === 0,
|
|
1132
|
+
title: mastra.models.length === 0 ? "Add a model first (CLI tab → Mastra)" : "",
|
|
1133
|
+
onClick: () => setShowAddForm(true),
|
|
1134
|
+
children: "+ Add Sub-agent"
|
|
1135
|
+
})
|
|
1149
1136
|
})
|
|
1150
1137
|
] });
|
|
1151
1138
|
}
|
|
1152
|
-
function
|
|
1139
|
+
function MainAgentCard(props) {
|
|
1153
1140
|
const { main } = props;
|
|
1154
|
-
|
|
1155
|
-
|
|
1141
|
+
const [expanded, setExpanded] = useState(true);
|
|
1142
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
1143
|
+
className: "my-3 rounded border border-gray-200 bg-white p-4",
|
|
1156
1144
|
children: [
|
|
1157
|
-
/* @__PURE__ */
|
|
1158
|
-
className: "flex items-center
|
|
1159
|
-
children:
|
|
1160
|
-
className: "
|
|
1161
|
-
children:
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1145
|
+
/* @__PURE__ */ jsx("div", {
|
|
1146
|
+
className: "flex items-center justify-between",
|
|
1147
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
1148
|
+
className: "flex items-center gap-3",
|
|
1149
|
+
children: [
|
|
1150
|
+
/* @__PURE__ */ jsx("button", {
|
|
1151
|
+
className: "text-sm text-gray-400 hover:text-gray-700",
|
|
1152
|
+
onClick: () => setExpanded(!expanded),
|
|
1153
|
+
title: expanded ? "Collapse" : "Expand",
|
|
1154
|
+
children: expanded ? "▾" : "▸"
|
|
1155
|
+
}),
|
|
1156
|
+
/* @__PURE__ */ jsx("span", {
|
|
1157
|
+
className: "rounded bg-gray-100 px-2 py-0.5 font-mono text-xs text-gray-500",
|
|
1158
|
+
children: main.id
|
|
1159
|
+
}),
|
|
1160
|
+
/* @__PURE__ */ jsx("span", {
|
|
1161
|
+
className: "font-semibold",
|
|
1162
|
+
children: main.name
|
|
1163
|
+
}),
|
|
1164
|
+
/* @__PURE__ */ jsx("span", {
|
|
1165
|
+
className: "rounded bg-blue-100 px-2 py-0.5 text-xs font-semibold text-blue-700",
|
|
1166
|
+
children: "Main"
|
|
1167
|
+
})
|
|
1168
|
+
]
|
|
1169
|
+
})
|
|
1166
1170
|
}),
|
|
1167
|
-
/* @__PURE__ */
|
|
1168
|
-
className: "text-sm text-gray-600",
|
|
1169
|
-
children:
|
|
1170
|
-
"The orchestrating agent. Subagents are exposed to it as tools named ",
|
|
1171
|
-
/* @__PURE__ */ jsx("code", { children: "agent-<subagent-id>" }),
|
|
1172
|
-
". Only the main agent can have an avatar."
|
|
1173
|
-
]
|
|
1171
|
+
main.description && /* @__PURE__ */ jsx("p", {
|
|
1172
|
+
className: "ml-7 text-sm text-gray-600",
|
|
1173
|
+
children: main.description
|
|
1174
1174
|
}),
|
|
1175
|
-
/* @__PURE__ */ jsxs("div", {
|
|
1176
|
-
className: "
|
|
1177
|
-
children: [
|
|
1178
|
-
|
|
1175
|
+
expanded && /* @__PURE__ */ jsxs("div", {
|
|
1176
|
+
className: "mt-4 space-y-3 border-t border-gray-100 pt-4",
|
|
1177
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
1178
|
+
style: {
|
|
1179
|
+
display: "flex",
|
|
1180
|
+
gap: "1.5rem"
|
|
1181
|
+
},
|
|
1182
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
1179
1183
|
style: {
|
|
1180
|
-
|
|
1181
|
-
|
|
1184
|
+
flexShrink: 0,
|
|
1185
|
+
width: "7rem"
|
|
1182
1186
|
},
|
|
1183
|
-
children:
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
compact: true,
|
|
1208
|
-
label: "Agent Name",
|
|
1209
|
-
value: main.name,
|
|
1210
|
-
placeholder: "My Agent",
|
|
1211
|
-
onCommit: props.setMainAgentName
|
|
1212
|
-
})]
|
|
1213
|
-
}), /* @__PURE__ */ jsx(DescriptionField, {
|
|
1214
|
-
value: main.description,
|
|
1215
|
-
placeholder: "A brief description of what this agent does",
|
|
1216
|
-
onSet: props.setMainAgentDescription,
|
|
1217
|
-
onClear: props.clearMainAgentDescription
|
|
1187
|
+
children: /* @__PURE__ */ jsx(AgentImageField, {
|
|
1188
|
+
image: main.image ?? null,
|
|
1189
|
+
onSetImage: props.setMainAgentImage,
|
|
1190
|
+
onClearImage: props.clearMainAgentImage
|
|
1191
|
+
})
|
|
1192
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
1193
|
+
style: {
|
|
1194
|
+
flex: 1,
|
|
1195
|
+
minWidth: 0
|
|
1196
|
+
},
|
|
1197
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
1198
|
+
className: "grid grid-cols-[1fr_2fr] gap-4",
|
|
1199
|
+
children: [/* @__PURE__ */ jsx(TextField, {
|
|
1200
|
+
compact: true,
|
|
1201
|
+
readOnly: true,
|
|
1202
|
+
label: "Agent ID",
|
|
1203
|
+
value: main.id,
|
|
1204
|
+
onCommit: () => {}
|
|
1205
|
+
}), /* @__PURE__ */ jsx(TextField, {
|
|
1206
|
+
compact: true,
|
|
1207
|
+
label: "Agent Name",
|
|
1208
|
+
value: main.name,
|
|
1209
|
+
placeholder: "My Agent",
|
|
1210
|
+
onCommit: props.setMainAgentName
|
|
1218
1211
|
})]
|
|
1212
|
+
}), /* @__PURE__ */ jsx(DescriptionField, {
|
|
1213
|
+
value: main.description,
|
|
1214
|
+
placeholder: "A brief description of what this agent does",
|
|
1215
|
+
onSet: props.setMainAgentDescription,
|
|
1216
|
+
onClear: props.clearMainAgentDescription
|
|
1219
1217
|
})]
|
|
1220
|
-
})
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
})
|
|
1240
|
-
]
|
|
1218
|
+
})]
|
|
1219
|
+
}), /* @__PURE__ */ jsx(AgentBindings, {
|
|
1220
|
+
agentId: main.id,
|
|
1221
|
+
isMain: true,
|
|
1222
|
+
modelId: main.modelId,
|
|
1223
|
+
profileIds: main.profileIds,
|
|
1224
|
+
skills: main.skills,
|
|
1225
|
+
toolPatterns: main.toolPatterns,
|
|
1226
|
+
models: props.models,
|
|
1227
|
+
profiles: props.profiles,
|
|
1228
|
+
setAgentModel: props.setAgentModel,
|
|
1229
|
+
addAgentProfileRef: props.addAgentProfileRef,
|
|
1230
|
+
removeAgentProfileRef: props.removeAgentProfileRef,
|
|
1231
|
+
reorderAgentProfileRefs: props.reorderAgentProfileRefs,
|
|
1232
|
+
addAgentSkill: props.addAgentSkill,
|
|
1233
|
+
removeAgentSkill: props.removeAgentSkill,
|
|
1234
|
+
addAgentToolPattern: props.addAgentToolPattern,
|
|
1235
|
+
removeAgentToolPattern: props.removeAgentToolPattern
|
|
1236
|
+
})]
|
|
1241
1237
|
})
|
|
1242
1238
|
]
|
|
1243
1239
|
});
|
|
@@ -1267,62 +1263,11 @@ function DescriptionField(props) {
|
|
|
1267
1263
|
})]
|
|
1268
1264
|
});
|
|
1269
1265
|
}
|
|
1270
|
-
function SubAgentsSection(props) {
|
|
1271
|
-
const [showAddForm, setShowAddForm] = useState(false);
|
|
1272
|
-
return /* @__PURE__ */ jsxs("section", {
|
|
1273
|
-
className: "my-6",
|
|
1274
|
-
children: [
|
|
1275
|
-
/* @__PURE__ */ jsx("h3", {
|
|
1276
|
-
className: "text-lg font-semibold",
|
|
1277
|
-
children: "Sub-agents"
|
|
1278
|
-
}),
|
|
1279
|
-
/* @__PURE__ */ jsxs("p", {
|
|
1280
|
-
className: "text-sm text-gray-600",
|
|
1281
|
-
children: [
|
|
1282
|
-
"Specialised agents the main agent can delegate to. Each is exposed as a tool named ",
|
|
1283
|
-
/* @__PURE__ */ jsx("code", { children: "agent-<id>" }),
|
|
1284
|
-
"."
|
|
1285
|
-
]
|
|
1286
|
-
}),
|
|
1287
|
-
props.subAgents.map((sub) => /* @__PURE__ */ jsx(SubAgentCard, {
|
|
1288
|
-
sub,
|
|
1289
|
-
models: props.models,
|
|
1290
|
-
profiles: props.profiles,
|
|
1291
|
-
removeSubAgent: props.removeSubAgent,
|
|
1292
|
-
setSubAgentName: props.setSubAgentName,
|
|
1293
|
-
setSubAgentDescription: props.setSubAgentDescription,
|
|
1294
|
-
setAgentModel: props.setAgentModel,
|
|
1295
|
-
addAgentProfileRef: props.addAgentProfileRef,
|
|
1296
|
-
removeAgentProfileRef: props.removeAgentProfileRef,
|
|
1297
|
-
reorderAgentProfileRefs: props.reorderAgentProfileRefs,
|
|
1298
|
-
addAgentSkill: props.addAgentSkill,
|
|
1299
|
-
removeAgentSkill: props.removeAgentSkill,
|
|
1300
|
-
addAgentToolPattern: props.addAgentToolPattern,
|
|
1301
|
-
removeAgentToolPattern: props.removeAgentToolPattern
|
|
1302
|
-
}, sub.id)),
|
|
1303
|
-
showAddForm ? /* @__PURE__ */ jsx(AddSubAgentForm, {
|
|
1304
|
-
models: props.models,
|
|
1305
|
-
existingAgentIds: props.existingAgentIds,
|
|
1306
|
-
onAdd: (id, name, description, modelId) => {
|
|
1307
|
-
props.addSubAgent(id, name, description, modelId);
|
|
1308
|
-
setShowAddForm(false);
|
|
1309
|
-
},
|
|
1310
|
-
onCancel: () => setShowAddForm(false)
|
|
1311
|
-
}) : /* @__PURE__ */ jsx("button", {
|
|
1312
|
-
className: "mt-3 rounded bg-blue-500 px-3 py-2 text-sm text-white hover:bg-blue-600 disabled:cursor-not-allowed disabled:opacity-50",
|
|
1313
|
-
disabled: props.models.length === 0,
|
|
1314
|
-
title: props.models.length === 0 ? "Add a model first" : "",
|
|
1315
|
-
onClick: () => setShowAddForm(true),
|
|
1316
|
-
children: "+ Add Sub-agent"
|
|
1317
|
-
})
|
|
1318
|
-
]
|
|
1319
|
-
});
|
|
1320
|
-
}
|
|
1321
1266
|
function AddSubAgentForm(props) {
|
|
1322
1267
|
const [id, setId] = useState("");
|
|
1323
1268
|
const [name, setName] = useState("");
|
|
1324
1269
|
const [description, setDescription] = useState("");
|
|
1325
|
-
const [modelId, setModelId] = useState(
|
|
1270
|
+
const [modelId, setModelId] = useState(props.models[0]?.id ?? "");
|
|
1326
1271
|
const canAdd = /^[a-z][a-z0-9-]*$/.test(id) && !props.existingAgentIds.includes(id) && name.trim() && description.trim() && modelId;
|
|
1327
1272
|
return /* @__PURE__ */ jsxs("div", {
|
|
1328
1273
|
className: "my-3 rounded border border-blue-200 bg-blue-50 p-4",
|
|
@@ -1377,9 +1322,9 @@ function AddSubAgentForm(props) {
|
|
|
1377
1322
|
value: modelId,
|
|
1378
1323
|
onChange: (e) => setModelId(e.target.value),
|
|
1379
1324
|
className: "w-full rounded border p-2 font-mono text-sm",
|
|
1380
|
-
children: props.models.map((m) => /* @__PURE__ */
|
|
1325
|
+
children: props.models.map((m) => /* @__PURE__ */ jsx("option", {
|
|
1381
1326
|
value: m.id,
|
|
1382
|
-
children:
|
|
1327
|
+
children: m.id
|
|
1383
1328
|
}, m.id))
|
|
1384
1329
|
})]
|
|
1385
1330
|
}),
|
|
@@ -1485,9 +1430,9 @@ function AgentBindings(props) {
|
|
|
1485
1430
|
value: props.modelId,
|
|
1486
1431
|
onChange: (e) => props.setAgentModel(props.agentId, e.target.value),
|
|
1487
1432
|
className: "mt-1 w-full rounded border p-2 font-mono text-sm",
|
|
1488
|
-
children: props.models.map((m) => /* @__PURE__ */
|
|
1433
|
+
children: props.models.map((m) => /* @__PURE__ */ jsx("option", {
|
|
1489
1434
|
value: m.id,
|
|
1490
|
-
children:
|
|
1435
|
+
children: m.id
|
|
1491
1436
|
}, m.id))
|
|
1492
1437
|
})]
|
|
1493
1438
|
}),
|
|
@@ -1767,92 +1712,101 @@ function ModelsSection(props) {
|
|
|
1767
1712
|
setNewModelId("");
|
|
1768
1713
|
}
|
|
1769
1714
|
};
|
|
1770
|
-
return /* @__PURE__ */ jsxs("
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1715
|
+
return /* @__PURE__ */ jsxs("div", { children: [
|
|
1716
|
+
/* @__PURE__ */ jsx("h4", {
|
|
1717
|
+
className: "text-sm font-semibold text-gray-700",
|
|
1718
|
+
children: "Models"
|
|
1719
|
+
}),
|
|
1720
|
+
/* @__PURE__ */ jsxs("p", {
|
|
1721
|
+
className: "text-xs text-gray-500",
|
|
1722
|
+
children: [
|
|
1723
|
+
"Provider/model format (e.g. ",
|
|
1724
|
+
/* @__PURE__ */ jsx("code", { children: "anthropic/claude-sonnet-4-5" }),
|
|
1725
|
+
"). Each agent picks one from this list."
|
|
1726
|
+
]
|
|
1727
|
+
}),
|
|
1728
|
+
props.models.length > 0 && /* @__PURE__ */ jsxs("table", {
|
|
1729
|
+
className: "mt-2 w-full text-sm",
|
|
1730
|
+
children: [/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", {
|
|
1731
|
+
className: "border-b text-left text-gray-500",
|
|
1732
|
+
children: [
|
|
1733
|
+
/* @__PURE__ */ jsx("th", {
|
|
1734
|
+
className: "py-1",
|
|
1735
|
+
children: "Model"
|
|
1736
|
+
}),
|
|
1737
|
+
/* @__PURE__ */ jsx("th", {
|
|
1738
|
+
className: "py-1",
|
|
1739
|
+
children: "Used by"
|
|
1740
|
+
}),
|
|
1741
|
+
/* @__PURE__ */ jsx("th", { className: "py-1" })
|
|
1742
|
+
]
|
|
1743
|
+
}) }), /* @__PURE__ */ jsx("tbody", { children: props.models.map((m) => {
|
|
1744
|
+
const users = usersOf(m.id);
|
|
1745
|
+
const inUse = users.length > 0;
|
|
1746
|
+
return /* @__PURE__ */ jsxs("tr", {
|
|
1747
|
+
className: "border-b border-gray-100",
|
|
1785
1748
|
children: [
|
|
1786
|
-
/* @__PURE__ */ jsx("
|
|
1787
|
-
className: "py-
|
|
1788
|
-
children:
|
|
1749
|
+
/* @__PURE__ */ jsx("td", {
|
|
1750
|
+
className: "py-2 font-mono",
|
|
1751
|
+
children: m.id
|
|
1789
1752
|
}),
|
|
1790
|
-
/* @__PURE__ */ jsx("
|
|
1791
|
-
className: "py-
|
|
1792
|
-
children: "
|
|
1753
|
+
/* @__PURE__ */ jsx("td", {
|
|
1754
|
+
className: "py-2 text-xs text-gray-500",
|
|
1755
|
+
children: users.length === 0 ? /* @__PURE__ */ jsx("em", { children: "—" }) : users.join(", ")
|
|
1793
1756
|
}),
|
|
1794
|
-
/* @__PURE__ */ jsx("
|
|
1795
|
-
className: "py-
|
|
1796
|
-
children: "
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
const inUse = users.length > 0;
|
|
1803
|
-
return /* @__PURE__ */ jsxs("tr", {
|
|
1804
|
-
className: "border-b border-gray-100",
|
|
1805
|
-
children: [
|
|
1806
|
-
/* @__PURE__ */ jsx("td", {
|
|
1807
|
-
className: "py-2",
|
|
1808
|
-
children: /* @__PURE__ */ jsx("input", {
|
|
1809
|
-
type: "radio",
|
|
1810
|
-
name: "default-model",
|
|
1811
|
-
checked: m.isDefault,
|
|
1812
|
-
onChange: () => props.setDefaultModel(m.id)
|
|
1813
|
-
})
|
|
1814
|
-
}),
|
|
1815
|
-
/* @__PURE__ */ jsx("td", {
|
|
1816
|
-
className: "py-2 font-mono",
|
|
1817
|
-
children: m.id
|
|
1818
|
-
}),
|
|
1819
|
-
/* @__PURE__ */ jsx("td", {
|
|
1820
|
-
className: "py-2 text-xs text-gray-500",
|
|
1821
|
-
children: users.length === 0 ? /* @__PURE__ */ jsx("em", { children: "—" }) : users.join(", ")
|
|
1822
|
-
}),
|
|
1823
|
-
/* @__PURE__ */ jsx("td", {
|
|
1824
|
-
className: "py-2 text-right",
|
|
1825
|
-
children: /* @__PURE__ */ jsx("button", {
|
|
1826
|
-
className: "text-red-500 hover:text-red-700 disabled:cursor-not-allowed disabled:text-gray-300",
|
|
1827
|
-
disabled: inUse,
|
|
1828
|
-
title: inUse ? `In use by ${users.join(", ")}` : "",
|
|
1829
|
-
onClick: () => props.removeModel(m.id),
|
|
1830
|
-
children: "Remove"
|
|
1831
|
-
})
|
|
1757
|
+
/* @__PURE__ */ jsx("td", {
|
|
1758
|
+
className: "py-2 text-right",
|
|
1759
|
+
children: /* @__PURE__ */ jsx("button", {
|
|
1760
|
+
className: "text-red-500 hover:text-red-700 disabled:cursor-not-allowed disabled:text-gray-300",
|
|
1761
|
+
disabled: inUse,
|
|
1762
|
+
title: inUse ? `In use by ${users.join(", ")}` : "",
|
|
1763
|
+
onClick: () => props.removeModel(m.id),
|
|
1764
|
+
children: "Remove"
|
|
1832
1765
|
})
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
}
|
|
1836
|
-
})
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
})
|
|
1855
|
-
|
|
1766
|
+
})
|
|
1767
|
+
]
|
|
1768
|
+
}, m.id);
|
|
1769
|
+
}) })]
|
|
1770
|
+
}),
|
|
1771
|
+
/* @__PURE__ */ jsxs("div", {
|
|
1772
|
+
className: "mt-2 flex items-center gap-2",
|
|
1773
|
+
children: [/* @__PURE__ */ jsx("input", {
|
|
1774
|
+
type: "text",
|
|
1775
|
+
placeholder: "provider/model-name",
|
|
1776
|
+
value: newModelId,
|
|
1777
|
+
onChange: (e) => setNewModelId(e.target.value),
|
|
1778
|
+
onKeyDown: (e) => {
|
|
1779
|
+
if (e.key === "Enter") handleAdd();
|
|
1780
|
+
},
|
|
1781
|
+
className: "flex-1 rounded border p-2 font-mono text-sm"
|
|
1782
|
+
}), /* @__PURE__ */ jsx("button", {
|
|
1783
|
+
className: "rounded bg-blue-500 px-3 py-2 text-sm text-white hover:bg-blue-600 disabled:opacity-50",
|
|
1784
|
+
disabled: !newModelId.trim(),
|
|
1785
|
+
onClick: handleAdd,
|
|
1786
|
+
children: "Add Model"
|
|
1787
|
+
})]
|
|
1788
|
+
})
|
|
1789
|
+
] });
|
|
1790
|
+
}
|
|
1791
|
+
function ProfilesTab(props) {
|
|
1792
|
+
if (!props.mastra.enabled) return /* @__PURE__ */ jsxs("section", {
|
|
1793
|
+
className: "my-6 rounded border border-dashed border-gray-300 bg-white p-8 text-center text-gray-500",
|
|
1794
|
+
children: [/* @__PURE__ */ jsx("h3", {
|
|
1795
|
+
className: "text-lg font-semibold",
|
|
1796
|
+
children: "Profiles"
|
|
1797
|
+
}), /* @__PURE__ */ jsx("p", {
|
|
1798
|
+
className: "mt-2",
|
|
1799
|
+
children: "Enable Mastra in the CLI tab to manage agent profiles."
|
|
1800
|
+
})]
|
|
1801
|
+
});
|
|
1802
|
+
return /* @__PURE__ */ jsx(ProfilesSection, {
|
|
1803
|
+
profiles: props.mastra.profiles,
|
|
1804
|
+
main: props.mastra.mainAgent,
|
|
1805
|
+
subAgents: props.mastra.subAgents,
|
|
1806
|
+
addProfile: props.addProfile,
|
|
1807
|
+
updateProfile: props.updateProfile,
|
|
1808
|
+
removeProfile: props.removeProfile,
|
|
1809
|
+
reorderProfiles: props.reorderProfiles
|
|
1856
1810
|
});
|
|
1857
1811
|
}
|
|
1858
1812
|
function ProfilesSection(props) {
|
|
@@ -2104,8 +2058,28 @@ function ExternalSkillsSection(props) {
|
|
|
2104
2058
|
]
|
|
2105
2059
|
});
|
|
2106
2060
|
}
|
|
2061
|
+
function PowerhouseTab(props) {
|
|
2062
|
+
if (!props.isAboveDisabled) return /* @__PURE__ */ jsxs("section", {
|
|
2063
|
+
className: "my-6 rounded border border-dashed border-gray-300 bg-white p-8 text-center text-gray-500",
|
|
2064
|
+
children: [/* @__PURE__ */ jsx("h3", {
|
|
2065
|
+
className: "text-lg font-semibold",
|
|
2066
|
+
children: "Powerhouse"
|
|
2067
|
+
}), /* @__PURE__ */ jsx("p", {
|
|
2068
|
+
className: "mt-2",
|
|
2069
|
+
children: "Enable Powerhouse in the CLI tab (set level to Reactor or above) to manage packages."
|
|
2070
|
+
})]
|
|
2071
|
+
});
|
|
2072
|
+
return /* @__PURE__ */ jsx(PackagesSection, {
|
|
2073
|
+
packages: props.packages,
|
|
2074
|
+
addPackage: props.addPackage,
|
|
2075
|
+
removePackage: props.removePackage,
|
|
2076
|
+
addDocType: props.addDocType,
|
|
2077
|
+
removeDocType: props.removeDocType
|
|
2078
|
+
});
|
|
2079
|
+
}
|
|
2107
2080
|
function PublishTab(props) {
|
|
2108
2081
|
const recentHistory = props.publishHistory.slice(-5).reverse();
|
|
2082
|
+
const nextPatch = bumpPatch(props.version);
|
|
2109
2083
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2110
2084
|
/* @__PURE__ */ jsxs("section", {
|
|
2111
2085
|
className: "my-6",
|
|
@@ -2116,35 +2090,56 @@ function PublishTab(props) {
|
|
|
2116
2090
|
}),
|
|
2117
2091
|
/* @__PURE__ */ jsxs("div", {
|
|
2118
2092
|
className: "my-3 rounded border border-gray-200 bg-white p-4",
|
|
2119
|
-
children: [
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
children: "
|
|
2135
|
-
}),
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2093
|
+
children: [
|
|
2094
|
+
/* @__PURE__ */ jsxs("div", {
|
|
2095
|
+
className: "flex items-center gap-4",
|
|
2096
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
2097
|
+
className: "text-sm text-gray-600",
|
|
2098
|
+
children: "Current version:"
|
|
2099
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
2100
|
+
className: "font-mono font-semibold",
|
|
2101
|
+
children: props.version
|
|
2102
|
+
})]
|
|
2103
|
+
}),
|
|
2104
|
+
/* @__PURE__ */ jsxs("div", {
|
|
2105
|
+
className: "mt-3 flex items-center gap-2",
|
|
2106
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
2107
|
+
className: "text-sm text-gray-600",
|
|
2108
|
+
children: "Bump version to:"
|
|
2109
|
+
}), /* @__PURE__ */ jsx("input", {
|
|
2110
|
+
type: "text",
|
|
2111
|
+
placeholder: nextPatch,
|
|
2112
|
+
onKeyDown: (e) => {
|
|
2113
|
+
if (e.key === "Enter") {
|
|
2114
|
+
const v = e.currentTarget.value.trim();
|
|
2115
|
+
if (v) props.bumpVersion(v);
|
|
2116
|
+
e.currentTarget.value = "";
|
|
2117
|
+
}
|
|
2118
|
+
},
|
|
2119
|
+
className: "rounded border p-1 font-mono text-sm"
|
|
2120
|
+
})]
|
|
2121
|
+
}),
|
|
2122
|
+
/* @__PURE__ */ jsxs("div", {
|
|
2123
|
+
className: "mt-4 flex items-center gap-2",
|
|
2124
|
+
children: [
|
|
2125
|
+
/* @__PURE__ */ jsx("button", {
|
|
2126
|
+
className: "rounded bg-gray-600 px-3 py-2 text-sm text-white hover:bg-gray-700",
|
|
2127
|
+
onClick: props.publishDev,
|
|
2128
|
+
children: "Publish Dev"
|
|
2129
|
+
}),
|
|
2130
|
+
/* @__PURE__ */ jsx("button", {
|
|
2131
|
+
className: "rounded bg-amber-600 px-3 py-2 text-sm text-white hover:bg-amber-700",
|
|
2132
|
+
onClick: props.publishStaging,
|
|
2133
|
+
children: "Publish Staging"
|
|
2134
|
+
}),
|
|
2135
|
+
/* @__PURE__ */ jsx("button", {
|
|
2136
|
+
className: "rounded bg-green-600 px-3 py-2 text-sm text-white hover:bg-green-700",
|
|
2137
|
+
onClick: props.publishProduction,
|
|
2138
|
+
children: "Publish Production"
|
|
2139
|
+
})
|
|
2140
|
+
]
|
|
2141
|
+
})
|
|
2142
|
+
]
|
|
2148
2143
|
}),
|
|
2149
2144
|
recentHistory.length > 0 && /* @__PURE__ */ jsxs("div", {
|
|
2150
2145
|
className: "mt-3",
|
|
@@ -2191,40 +2186,19 @@ function PublishTab(props) {
|
|
|
2191
2186
|
children: "Document"
|
|
2192
2187
|
}), /* @__PURE__ */ jsxs("div", {
|
|
2193
2188
|
className: "my-3 rounded border border-gray-200 bg-white p-4",
|
|
2194
|
-
children: [
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
/* @__PURE__ */
|
|
2203
|
-
className: "
|
|
2204
|
-
children:
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
})]
|
|
2208
|
-
}),
|
|
2209
|
-
/* @__PURE__ */ jsxs("div", {
|
|
2210
|
-
className: "mt-3 flex items-center gap-2",
|
|
2211
|
-
children: [/* @__PURE__ */ jsx("span", {
|
|
2212
|
-
className: "text-sm text-gray-600",
|
|
2213
|
-
children: "Bump version to:"
|
|
2214
|
-
}), /* @__PURE__ */ jsx("input", {
|
|
2215
|
-
type: "text",
|
|
2216
|
-
placeholder: "0.2.0",
|
|
2217
|
-
onKeyDown: (e) => {
|
|
2218
|
-
if (e.key === "Enter") {
|
|
2219
|
-
const v = e.currentTarget.value.trim();
|
|
2220
|
-
if (v) props.bumpVersion(v);
|
|
2221
|
-
e.currentTarget.value = "";
|
|
2222
|
-
}
|
|
2223
|
-
},
|
|
2224
|
-
className: "rounded border p-1 font-mono text-sm"
|
|
2225
|
-
})]
|
|
2226
|
-
})
|
|
2227
|
-
]
|
|
2189
|
+
children: [/* @__PURE__ */ jsxs("p", {
|
|
2190
|
+
className: "text-sm text-gray-600",
|
|
2191
|
+
children: ["Document ID: ", /* @__PURE__ */ jsx("span", {
|
|
2192
|
+
className: "font-mono",
|
|
2193
|
+
children: props.documentHeader.id
|
|
2194
|
+
})]
|
|
2195
|
+
}), /* @__PURE__ */ jsxs("p", {
|
|
2196
|
+
className: "text-sm text-gray-600",
|
|
2197
|
+
children: ["Type: ", /* @__PURE__ */ jsx("span", {
|
|
2198
|
+
className: "font-mono",
|
|
2199
|
+
children: props.documentHeader.documentType
|
|
2200
|
+
})]
|
|
2201
|
+
})]
|
|
2228
2202
|
})]
|
|
2229
2203
|
})
|
|
2230
2204
|
] });
|
|
@@ -2420,4 +2394,4 @@ function StatusBadge(props) {
|
|
|
2420
2394
|
//#endregion
|
|
2421
2395
|
export { Editor as default };
|
|
2422
2396
|
|
|
2423
|
-
//# sourceMappingURL=editor-
|
|
2397
|
+
//# sourceMappingURL=editor-C82Trmk4.mjs.map
|