@powerhousedao/ph-clint-app 0.1.0-dev.74 → 0.1.0-dev.76

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.
Files changed (56) hide show
  1. package/dist/browser/document-models/index.js +1 -1
  2. package/dist/browser/document-models/ph-clint-project/index.js +3 -3
  3. package/dist/browser/{editor-CAZmaheq.js → editor-Z7QJIYOp.js} +377 -403
  4. package/dist/browser/{editor-CAZmaheq.js.map → editor-Z7QJIYOp.js.map} +1 -1
  5. package/dist/browser/editors/ph-clint-project-editor/module.js +1 -1
  6. package/dist/browser/index.js +3 -3
  7. package/dist/browser/{module-K5q3UobV.js → module-BZ6W31hV.js} +70 -132
  8. package/dist/browser/{module-K5q3UobV.js.map → module-BZ6W31hV.js.map} +1 -1
  9. package/dist/browser/{ph-clint-project-Bbl7jqNw.js → ph-clint-project-3b5ZHznW.js} +2 -2
  10. package/dist/browser/{ph-clint-project-Bbl7jqNw.js.map → ph-clint-project-3b5ZHznW.js.map} +1 -1
  11. package/dist/connect/assets/editor-CEMUd4Ju.js +2 -0
  12. package/dist/connect/assets/editor-CEMUd4Ju.js.map +1 -0
  13. package/dist/connect/assets/{index-DmrNLi1C.js → index-BxEnFQyj.js} +20 -20
  14. package/dist/connect/assets/{index-DmrNLi1C.js.map → index-BxEnFQyj.js.map} +1 -1
  15. package/dist/connect/assets/{ph-clint-project-DZ_ZplDv.js → ph-clint-project-C_SSQ38p.js} +7 -37
  16. package/dist/connect/assets/ph-clint-project-C_SSQ38p.js.map +1 -0
  17. package/dist/connect/index.html +2 -2
  18. package/dist/connect/ph-packages.json +1 -1
  19. package/dist/document-models/ph-clint-project/v1/actions.d.ts +0 -1
  20. package/dist/document-models/ph-clint-project/v1/actions.d.ts.map +1 -1
  21. package/dist/document-models/ph-clint-project/v1/gen/document-model.d.ts.map +1 -1
  22. package/dist/document-models/ph-clint-project/v1/gen/mastra-models/actions.d.ts +2 -6
  23. package/dist/document-models/ph-clint-project/v1/gen/mastra-models/actions.d.ts.map +1 -1
  24. package/dist/document-models/ph-clint-project/v1/gen/mastra-models/creators.d.ts +2 -3
  25. package/dist/document-models/ph-clint-project/v1/gen/mastra-models/creators.d.ts.map +1 -1
  26. package/dist/document-models/ph-clint-project/v1/gen/mastra-models/error.d.ts +0 -4
  27. package/dist/document-models/ph-clint-project/v1/gen/mastra-models/error.d.ts.map +1 -1
  28. package/dist/document-models/ph-clint-project/v1/gen/mastra-models/operations.d.ts +1 -2
  29. package/dist/document-models/ph-clint-project/v1/gen/mastra-models/operations.d.ts.map +1 -1
  30. package/dist/document-models/ph-clint-project/v1/gen/reducer.d.ts.map +1 -1
  31. package/dist/document-models/ph-clint-project/v1/gen/schema/types.d.ts +0 -6
  32. package/dist/document-models/ph-clint-project/v1/gen/schema/types.d.ts.map +1 -1
  33. package/dist/document-models/ph-clint-project/v1/gen/schema/zod.d.ts +1 -2
  34. package/dist/document-models/ph-clint-project/v1/gen/schema/zod.d.ts.map +1 -1
  35. package/dist/document-models/ph-clint-project/v1/module.d.ts +0 -1
  36. package/dist/document-models/ph-clint-project/v1/module.d.ts.map +1 -1
  37. package/dist/document-models/ph-clint-project/v1/src/reducers/features-mastra.d.ts.map +1 -1
  38. package/dist/document-models/ph-clint-project/v1/src/reducers/lifecycle.d.ts.map +1 -1
  39. package/dist/document-models/ph-clint-project/v1/src/reducers/mastra-models.d.ts.map +1 -1
  40. package/dist/document-models/ph-clint-project/v1/src/reducers/mastra-profiles.d.ts.map +1 -1
  41. package/dist/editors/ph-clint-project-editor/editor.d.ts.map +1 -1
  42. package/dist/node/document-models/index.mjs +1 -1
  43. package/dist/node/document-models/ph-clint-project/index.mjs +3 -3
  44. package/dist/node/{editor-DOw2BwlR.mjs → editor-C82Trmk4.mjs} +377 -403
  45. package/dist/node/{editor-DOw2BwlR.mjs.map → editor-C82Trmk4.mjs.map} +1 -1
  46. package/dist/node/editors/ph-clint-project-editor/module.mjs +1 -1
  47. package/dist/node/index.mjs +3 -3
  48. package/dist/node/{module-DTtUZ4DR.mjs → module-ZwrJ5kaI.mjs} +70 -132
  49. package/dist/node/{module-DTtUZ4DR.mjs.map → module-ZwrJ5kaI.mjs.map} +1 -1
  50. package/dist/node/{ph-clint-project-DFA4zHJv.mjs → ph-clint-project-YqV6kGMs.mjs} +2 -2
  51. package/dist/node/{ph-clint-project-DFA4zHJv.mjs.map → ph-clint-project-YqV6kGMs.mjs.map} +1 -1
  52. package/dist/style.css +7 -0
  53. package/package.json +1 -1
  54. package/dist/connect/assets/editor-CQqCB-3d.js +0 -2
  55. package/dist/connect/assets/editor-CQqCB-3d.js.map +0 -1
  56. 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-YKewjYmz.js";
2
- import { g as actions, hr as redo, jr as generateId, vr as undo } from "./module-K5q3UobV.js";
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-Bbl7jqNw.js";
2
+ import { g as actions, gr as undo, kr as generateId, pr as redo } from "./module-BZ6W31hV.js";
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-3b5ZHznW.js";
4
4
  import { n as Icon, r as twMerge } from "./document-timeline-FWiQhfIq-DO4emW6K.js";
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("spec");
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, isDefault) => dispatch(actions.addModel({
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__ */ jsxs("nav", {
869
+ /* @__PURE__ */ jsx("nav", {
841
870
  className: "my-4 flex border-b border-gray-200",
842
- children: [
843
- /* @__PURE__ */ jsx("button", {
844
- className: tabClasses("spec"),
845
- onClick: () => setActiveTab("spec"),
846
- children: "CLI"
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 === "spec" && /* @__PURE__ */ jsx(SpecTab, {
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 === "agent" && /* @__PURE__ */ jsx(AgentTab, {
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
- addModel,
904
- removeModel,
905
- setDefaultModel,
911
+ removeAgentToolPattern
912
+ }),
913
+ activeTab === "profiles" && /* @__PURE__ */ jsx(ProfilesTab, {
914
+ mastra,
906
915
  addProfile,
907
916
  updateProfile,
908
917
  removeProfile,
909
- reorderProfiles,
910
- setEnableChat
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 SpecTab(props) {
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__ */ jsx("div", {
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: props.mastra.enabled,
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 PowerhouseTab(props) {
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: "Agent"
1077
+ children: "Agents"
1070
1078
  }), /* @__PURE__ */ jsx("p", {
1071
1079
  className: "mt-2",
1072
- children: "Enable Mastra in the Spec tab to configure agents."
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(MainAgentPanel, {
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("hr", {}),
1096
- /* @__PURE__ */ jsx(SubAgentsSection, {
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("hr", {}),
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: [/* @__PURE__ */ jsx("h3", {
1137
- className: "text-lg font-semibold",
1138
- children: "Common"
1139
- }), /* @__PURE__ */ jsx("div", {
1140
- className: "my-3 rounded border border-gray-200 bg-white p-4",
1141
- children: /* @__PURE__ */ jsx(Toggle, {
1142
- label: "Enable Chat",
1143
- checked: mastra.common.enableChat,
1144
- disabled: !props.isAboveDisabled,
1145
- hint: props.isAboveDisabled ? "Chat session integration via clint-common" : "Requires Powerhouse to be enabled",
1146
- onChange: props.setEnableChat
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 MainAgentPanel(props) {
1139
+ function MainAgentCard(props) {
1153
1140
  const { main } = props;
1154
- return /* @__PURE__ */ jsxs("section", {
1155
- className: "my-6",
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__ */ jsxs("div", {
1158
- className: "flex items-center gap-2",
1159
- children: [/* @__PURE__ */ jsx("h3", {
1160
- className: "text-lg font-semibold",
1161
- children: "Main Agent"
1162
- }), /* @__PURE__ */ jsx("span", {
1163
- className: "rounded bg-blue-100 px-2 py-0.5 text-xs font-semibold text-blue-700",
1164
- children: "Main"
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__ */ jsxs("p", {
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: "my-3 rounded border border-gray-200 bg-white p-4",
1177
- children: [
1178
- /* @__PURE__ */ jsxs("div", {
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
- display: "flex",
1181
- gap: "1.5rem"
1184
+ flexShrink: 0,
1185
+ width: "7rem"
1182
1186
  },
1183
- children: [/* @__PURE__ */ jsx("div", {
1184
- style: {
1185
- flexShrink: 0,
1186
- width: "7rem"
1187
- },
1188
- children: /* @__PURE__ */ jsx(AgentImageField, {
1189
- image: main.image ?? null,
1190
- onSetImage: props.setMainAgentImage,
1191
- onClearImage: props.clearMainAgentImage
1192
- })
1193
- }), /* @__PURE__ */ jsxs("div", {
1194
- style: {
1195
- flex: 1,
1196
- minWidth: 0
1197
- },
1198
- children: [/* @__PURE__ */ jsxs("div", {
1199
- className: "grid grid-cols-[1fr_2fr] gap-4",
1200
- children: [/* @__PURE__ */ jsx(TextField, {
1201
- compact: true,
1202
- readOnly: true,
1203
- label: "Agent ID",
1204
- value: main.id,
1205
- onCommit: () => {}
1206
- }), /* @__PURE__ */ jsx(TextField, {
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
- /* @__PURE__ */ jsx("hr", { className: "my-4" }),
1222
- /* @__PURE__ */ jsx(AgentBindings, {
1223
- agentId: main.id,
1224
- isMain: true,
1225
- modelId: main.modelId,
1226
- profileIds: main.profileIds,
1227
- skills: main.skills,
1228
- toolPatterns: main.toolPatterns,
1229
- models: props.models,
1230
- profiles: props.profiles,
1231
- setAgentModel: props.setAgentModel,
1232
- addAgentProfileRef: props.addAgentProfileRef,
1233
- removeAgentProfileRef: props.removeAgentProfileRef,
1234
- reorderAgentProfileRefs: props.reorderAgentProfileRefs,
1235
- addAgentSkill: props.addAgentSkill,
1236
- removeAgentSkill: props.removeAgentSkill,
1237
- addAgentToolPattern: props.addAgentToolPattern,
1238
- removeAgentToolPattern: props.removeAgentToolPattern
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((props.models.find((m) => m.isDefault) ?? props.models[0])?.id ?? "");
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__ */ jsxs("option", {
1325
+ children: props.models.map((m) => /* @__PURE__ */ jsx("option", {
1381
1326
  value: m.id,
1382
- children: [m.id, m.isDefault ? " (default)" : ""]
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__ */ jsxs("option", {
1433
+ children: props.models.map((m) => /* @__PURE__ */ jsx("option", {
1489
1434
  value: m.id,
1490
- children: [m.id, m.isDefault ? " (default)" : ""]
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("section", {
1771
- className: "my-6",
1772
- children: [
1773
- /* @__PURE__ */ jsx("h3", {
1774
- className: "text-lg font-semibold",
1775
- children: "Models"
1776
- }),
1777
- /* @__PURE__ */ jsx("p", {
1778
- className: "text-sm text-gray-600",
1779
- children: "Provider/model format (e.g. anthropic/claude-sonnet-4-5). Exactly one is the default."
1780
- }),
1781
- props.models.length > 0 && /* @__PURE__ */ jsxs("table", {
1782
- className: "mt-3 w-full text-sm",
1783
- children: [/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", {
1784
- className: "border-b text-left text-gray-500",
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("th", {
1787
- className: "py-1",
1788
- children: "Default"
1749
+ /* @__PURE__ */ jsx("td", {
1750
+ className: "py-2 font-mono",
1751
+ children: m.id
1789
1752
  }),
1790
- /* @__PURE__ */ jsx("th", {
1791
- className: "py-1",
1792
- children: "Model"
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("th", {
1795
- className: "py-1",
1796
- children: "Used by"
1797
- }),
1798
- /* @__PURE__ */ jsx("th", { className: "py-1" })
1799
- ]
1800
- }) }), /* @__PURE__ */ jsx("tbody", { children: props.models.map((m) => {
1801
- const users = usersOf(m.id);
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
- }, m.id);
1835
- }) })]
1836
- }),
1837
- /* @__PURE__ */ jsxs("div", {
1838
- className: "mt-3 flex items-center gap-2",
1839
- children: [/* @__PURE__ */ jsx("input", {
1840
- type: "text",
1841
- placeholder: "provider/model-name",
1842
- value: newModelId,
1843
- onChange: (e) => setNewModelId(e.target.value),
1844
- onKeyDown: (e) => {
1845
- if (e.key === "Enter") handleAdd();
1846
- },
1847
- className: "flex-1 rounded border p-2 font-mono text-sm"
1848
- }), /* @__PURE__ */ jsx("button", {
1849
- className: "rounded bg-blue-500 px-3 py-2 text-sm text-white hover:bg-blue-600 disabled:opacity-50",
1850
- disabled: !newModelId.trim(),
1851
- onClick: handleAdd,
1852
- children: "Add Model"
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: [/* @__PURE__ */ jsxs("div", {
2120
- className: "flex items-center gap-4",
2121
- children: [/* @__PURE__ */ jsx("span", {
2122
- className: "text-sm text-gray-600",
2123
- children: "Current version:"
2124
- }), /* @__PURE__ */ jsx("span", {
2125
- className: "font-mono font-semibold",
2126
- children: props.version
2127
- })]
2128
- }), /* @__PURE__ */ jsxs("div", {
2129
- className: "mt-4 flex items-center gap-2",
2130
- children: [
2131
- /* @__PURE__ */ jsx("button", {
2132
- className: "rounded bg-gray-600 px-3 py-2 text-sm text-white hover:bg-gray-700",
2133
- onClick: props.publishDev,
2134
- children: "Publish Dev"
2135
- }),
2136
- /* @__PURE__ */ jsx("button", {
2137
- className: "rounded bg-amber-600 px-3 py-2 text-sm text-white hover:bg-amber-700",
2138
- onClick: props.publishStaging,
2139
- children: "Publish Staging"
2140
- }),
2141
- /* @__PURE__ */ jsx("button", {
2142
- className: "rounded bg-green-600 px-3 py-2 text-sm text-white hover:bg-green-700",
2143
- onClick: props.publishProduction,
2144
- children: "Publish Production"
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
- /* @__PURE__ */ jsxs("p", {
2196
- className: "text-sm text-gray-600",
2197
- children: ["Document ID: ", /* @__PURE__ */ jsx("span", {
2198
- className: "font-mono",
2199
- children: props.documentHeader.id
2200
- })]
2201
- }),
2202
- /* @__PURE__ */ jsxs("p", {
2203
- className: "text-sm text-gray-600",
2204
- children: ["Type: ", /* @__PURE__ */ jsx("span", {
2205
- className: "font-mono",
2206
- children: props.documentHeader.documentType
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-CAZmaheq.js.map
2397
+ //# sourceMappingURL=editor-Z7QJIYOp.js.map