@alpaca-editor/core 1.0.4170 → 1.0.4173

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 (213) hide show
  1. package/dist/agents-view/AgentsView.d.ts +5 -0
  2. package/dist/agents-view/AgentsView.js +213 -0
  3. package/dist/agents-view/AgentsView.js.map +1 -0
  4. package/dist/components/ui/context-menu.js +51 -7
  5. package/dist/components/ui/context-menu.js.map +1 -1
  6. package/dist/config/config.d.ts +1 -2
  7. package/dist/config/config.js +103 -8
  8. package/dist/config/config.js.map +1 -1
  9. package/dist/config/types.d.ts +1 -1
  10. package/dist/editor/ConfirmationDialog.js +2 -1
  11. package/dist/editor/ConfirmationDialog.js.map +1 -1
  12. package/dist/editor/ContentTree.d.ts +2 -1
  13. package/dist/editor/ContentTree.js +18 -3
  14. package/dist/editor/ContentTree.js.map +1 -1
  15. package/dist/editor/ContextMenu.js +1 -1
  16. package/dist/editor/ContextMenu.js.map +1 -1
  17. package/dist/editor/FieldList.js +7 -3
  18. package/dist/editor/FieldList.js.map +1 -1
  19. package/dist/editor/FieldListField.d.ts +3 -2
  20. package/dist/editor/FieldListField.js +4 -4
  21. package/dist/editor/FieldListField.js.map +1 -1
  22. package/dist/editor/FieldListFieldWithFallbacks.d.ts +2 -1
  23. package/dist/editor/FieldListFieldWithFallbacks.js +5 -2
  24. package/dist/editor/FieldListFieldWithFallbacks.js.map +1 -1
  25. package/dist/editor/ItemInfo.js +8 -2
  26. package/dist/editor/ItemInfo.js.map +1 -1
  27. package/dist/editor/MainLayout.js +1 -1
  28. package/dist/editor/PictureEditor.js +2 -4
  29. package/dist/editor/PictureEditor.js.map +1 -1
  30. package/dist/editor/QuickItemSwitcher.d.ts +9 -0
  31. package/dist/editor/QuickItemSwitcher.js +56 -0
  32. package/dist/editor/QuickItemSwitcher.js.map +1 -0
  33. package/dist/editor/ai/AgentCostDisplay.js +4 -4
  34. package/dist/editor/ai/AgentCostDisplay.js.map +1 -1
  35. package/dist/editor/ai/AgentProfilesOverview.d.ts +9 -0
  36. package/dist/editor/ai/AgentProfilesOverview.js +16 -0
  37. package/dist/editor/ai/AgentProfilesOverview.js.map +1 -0
  38. package/dist/editor/ai/AgentTerminal.d.ts +2 -1
  39. package/dist/editor/ai/AgentTerminal.js +1051 -557
  40. package/dist/editor/ai/AgentTerminal.js.map +1 -1
  41. package/dist/editor/ai/Agents.js +108 -31
  42. package/dist/editor/ai/Agents.js.map +1 -1
  43. package/dist/editor/ai/AiResponseMessage.d.ts +2 -1
  44. package/dist/editor/ai/AiResponseMessage.js +4 -2
  45. package/dist/editor/ai/AiResponseMessage.js.map +1 -1
  46. package/dist/editor/ai/ContextInfoBar.js +17 -17
  47. package/dist/editor/ai/ToolCallDisplay.js +4 -2
  48. package/dist/editor/ai/ToolCallDisplay.js.map +1 -1
  49. package/dist/editor/ai/useAgentStatus.js +21 -9
  50. package/dist/editor/ai/useAgentStatus.js.map +1 -1
  51. package/dist/editor/client/EditorShell.js +172 -21
  52. package/dist/editor/client/EditorShell.js.map +1 -1
  53. package/dist/editor/client/hooks/useSocketMessageHandler.js +12 -0
  54. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  55. package/dist/editor/client/ui/EditorChrome.js +1 -1
  56. package/dist/editor/client/ui/EditorChrome.js.map +1 -1
  57. package/dist/editor/commands/itemCommands.d.ts +1 -0
  58. package/dist/editor/commands/itemCommands.js +53 -1
  59. package/dist/editor/commands/itemCommands.js.map +1 -1
  60. package/dist/editor/control-center/WebSocketMessages.js +4 -1
  61. package/dist/editor/control-center/WebSocketMessages.js.map +1 -1
  62. package/dist/editor/control-center/parhelia-setup/Overview.d.ts +1 -0
  63. package/dist/editor/control-center/parhelia-setup/Overview.js +91 -0
  64. package/dist/editor/control-center/parhelia-setup/Overview.js.map +1 -0
  65. package/dist/editor/control-center/setup-steps/AiSetupStep/tools/GenerateToolsSection.js +4 -0
  66. package/dist/editor/control-center/setup-steps/AiSetupStep/tools/GenerateToolsSection.js.map +1 -1
  67. package/dist/editor/field-types/AttachmentEditor.d.ts +7 -2
  68. package/dist/editor/field-types/AttachmentEditor.js +71 -3
  69. package/dist/editor/field-types/AttachmentEditor.js.map +1 -1
  70. package/dist/editor/field-types/DropLinkEditor.js +2 -2
  71. package/dist/editor/field-types/DropLinkEditor.js.map +1 -1
  72. package/dist/editor/field-types/DropListEditor.js +2 -1
  73. package/dist/editor/field-types/DropListEditor.js.map +1 -1
  74. package/dist/editor/field-types/InternalLinkFieldEditor.js +3 -3
  75. package/dist/editor/field-types/InternalLinkFieldEditor.js.map +1 -1
  76. package/dist/editor/field-types/MultiLineText.d.ts +2 -1
  77. package/dist/editor/field-types/MultiLineText.js +2 -2
  78. package/dist/editor/field-types/MultiLineText.js.map +1 -1
  79. package/dist/editor/field-types/RawEditor.d.ts +2 -1
  80. package/dist/editor/field-types/RawEditor.js +2 -2
  81. package/dist/editor/field-types/RawEditor.js.map +1 -1
  82. package/dist/editor/field-types/SingleLineText.d.ts +2 -1
  83. package/dist/editor/field-types/SingleLineText.js +2 -2
  84. package/dist/editor/field-types/SingleLineText.js.map +1 -1
  85. package/dist/editor/field-types/TreeListEditor.js +9 -7
  86. package/dist/editor/field-types/TreeListEditor.js.map +1 -1
  87. package/dist/editor/fieldTypes.d.ts +4 -0
  88. package/dist/editor/media-selector/MediaFolderBrowser.js +68 -7
  89. package/dist/editor/media-selector/MediaFolderBrowser.js.map +1 -1
  90. package/dist/editor/media-selector/TreeSelector.js +1 -1
  91. package/dist/editor/media-selector/TreeSelector.js.map +1 -1
  92. package/dist/editor/menubar/ActiveUsers.js +2 -2
  93. package/dist/editor/menubar/FavoritesControls.js +2 -2
  94. package/dist/editor/menubar/FavoritesControls.js.map +1 -1
  95. package/dist/editor/menubar/toolbar-sections/UtilityControls.js +1 -1
  96. package/dist/editor/menubar/toolbar-sections/UtilityControls.js.map +1 -1
  97. package/dist/editor/page-editor-chrome/FrameMenu.js +10 -1
  98. package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
  99. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +14 -4
  100. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
  101. package/dist/editor/page-viewer/PageViewerFrame.js +17 -7
  102. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  103. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js +14 -0
  104. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js.map +1 -1
  105. package/dist/editor/services/agentService.d.ts +6 -2
  106. package/dist/editor/services/agentService.js +13 -2
  107. package/dist/editor/services/agentService.js.map +1 -1
  108. package/dist/editor/services/aiService.d.ts +5 -1
  109. package/dist/editor/services/aiService.js +1 -1
  110. package/dist/editor/services/aiService.js.map +1 -1
  111. package/dist/editor/services/contentService.d.ts +1 -1
  112. package/dist/editor/services/contentService.js +4 -2
  113. package/dist/editor/services/contentService.js.map +1 -1
  114. package/dist/editor/services/editService.d.ts +6 -1
  115. package/dist/editor/services/editService.js +7 -1
  116. package/dist/editor/services/editService.js.map +1 -1
  117. package/dist/editor/services/setupService.d.ts +21 -0
  118. package/dist/editor/services/setupService.js +10 -0
  119. package/dist/editor/services/setupService.js.map +1 -0
  120. package/dist/editor/sidebar/ComponentTree.js +15 -1
  121. package/dist/editor/sidebar/ComponentTree.js.map +1 -1
  122. package/dist/editor/sidebar/SidebarView.js +1 -1
  123. package/dist/editor/sidebar/SidebarView.js.map +1 -1
  124. package/dist/editor/ui/ItemSearch.d.ts +1 -0
  125. package/dist/editor/ui/ItemSearch.js +2 -2
  126. package/dist/editor/ui/ItemSearch.js.map +1 -1
  127. package/dist/editor/ui/PerfectTree.d.ts +5 -1
  128. package/dist/editor/ui/PerfectTree.js +308 -29
  129. package/dist/editor/ui/PerfectTree.js.map +1 -1
  130. package/dist/editor/ui/SimpleIconButton.js +1 -1
  131. package/dist/editor/ui/SimpleIconButton.js.map +1 -1
  132. package/dist/editor/ui/TemplateSelectorDialog.d.ts +8 -0
  133. package/dist/editor/ui/TemplateSelectorDialog.js +61 -0
  134. package/dist/editor/ui/TemplateSelectorDialog.js.map +1 -0
  135. package/dist/editor/utils/keyboardNavigation.d.ts +2 -0
  136. package/dist/editor/utils/keyboardNavigation.js +80 -2
  137. package/dist/editor/utils/keyboardNavigation.js.map +1 -1
  138. package/dist/editor/views/SingleEditView.js +6 -4
  139. package/dist/editor/views/SingleEditView.js.map +1 -1
  140. package/dist/index.d.ts +2 -2
  141. package/dist/index.js +2 -2
  142. package/dist/index.js.map +1 -1
  143. package/dist/revision.d.ts +2 -2
  144. package/dist/revision.js +2 -2
  145. package/dist/splash-screen/SplashScreen.js +78 -4
  146. package/dist/splash-screen/SplashScreen.js.map +1 -1
  147. package/dist/styles.css +164 -20
  148. package/dist/types.d.ts +7 -1
  149. package/package.json +1 -1
  150. package/src/agents-view/AgentsView.tsx +431 -0
  151. package/src/components/ui/context-menu.tsx +62 -7
  152. package/src/config/config.tsx +112 -7
  153. package/src/config/types.ts +8 -2
  154. package/src/editor/ConfirmationDialog.tsx +42 -10
  155. package/src/editor/ContentTree.tsx +20 -1
  156. package/src/editor/ContextMenu.tsx +4 -1
  157. package/src/editor/FieldList.tsx +10 -4
  158. package/src/editor/FieldListField.tsx +7 -0
  159. package/src/editor/FieldListFieldWithFallbacks.tsx +10 -0
  160. package/src/editor/ItemInfo.tsx +15 -1
  161. package/src/editor/MainLayout.tsx +1 -1
  162. package/src/editor/PictureEditor.tsx +21 -23
  163. package/src/editor/QuickItemSwitcher.tsx +190 -0
  164. package/src/editor/ai/AgentCostDisplay.tsx +28 -6
  165. package/src/editor/ai/AgentProfilesOverview.tsx +81 -0
  166. package/src/editor/ai/AgentTerminal.tsx +734 -187
  167. package/src/editor/ai/Agents.tsx +167 -67
  168. package/src/editor/ai/AiResponseMessage.tsx +12 -1
  169. package/src/editor/ai/ContextInfoBar.tsx +17 -17
  170. package/src/editor/ai/ToolCallDisplay.tsx +2 -5
  171. package/src/editor/ai/useAgentStatus.ts +24 -9
  172. package/src/editor/client/EditorShell.tsx +231 -31
  173. package/src/editor/client/hooks/useSocketMessageHandler.ts +28 -13
  174. package/src/editor/client/ui/EditorChrome.tsx +1 -1
  175. package/src/editor/commands/itemCommands.tsx +77 -0
  176. package/src/editor/control-center/WebSocketMessages.tsx +4 -1
  177. package/src/editor/control-center/parhelia-setup/Overview.tsx +184 -0
  178. package/src/editor/control-center/setup-steps/AiSetupStep/tools/GenerateToolsSection.tsx +5 -0
  179. package/src/editor/field-types/AttachmentEditor.tsx +111 -3
  180. package/src/editor/field-types/DropLinkEditor.tsx +2 -2
  181. package/src/editor/field-types/DropListEditor.tsx +2 -1
  182. package/src/editor/field-types/InternalLinkFieldEditor.tsx +3 -3
  183. package/src/editor/field-types/MultiLineText.tsx +3 -0
  184. package/src/editor/field-types/RawEditor.tsx +3 -0
  185. package/src/editor/field-types/SingleLineText.tsx +3 -0
  186. package/src/editor/field-types/TreeListEditor.tsx +32 -24
  187. package/src/editor/fieldTypes.ts +4 -0
  188. package/src/editor/media-selector/MediaFolderBrowser.tsx +93 -9
  189. package/src/editor/media-selector/TreeSelector.tsx +1 -0
  190. package/src/editor/menubar/ActiveUsers.tsx +2 -2
  191. package/src/editor/menubar/FavoritesControls.tsx +5 -5
  192. package/src/editor/menubar/toolbar-sections/UtilityControls.tsx +1 -1
  193. package/src/editor/page-editor-chrome/FrameMenu.tsx +10 -1
  194. package/src/editor/page-editor-chrome/PlaceholderDropZone.tsx +12 -4
  195. package/src/editor/page-viewer/PageViewerFrame.tsx +15 -6
  196. package/src/editor/page-viewer/pageModelSkeletonBuilder.ts +17 -0
  197. package/src/editor/services/agentService.ts +18 -2
  198. package/src/editor/services/aiService.ts +6 -2
  199. package/src/editor/services/contentService.ts +4 -1
  200. package/src/editor/services/editService.ts +23 -3
  201. package/src/editor/services/setupService.ts +35 -0
  202. package/src/editor/sidebar/ComponentTree.tsx +16 -1
  203. package/src/editor/sidebar/SidebarView.tsx +1 -1
  204. package/src/editor/ui/ItemSearch.tsx +3 -1
  205. package/src/editor/ui/PerfectTree.tsx +393 -42
  206. package/src/editor/ui/SimpleIconButton.tsx +1 -0
  207. package/src/editor/ui/TemplateSelectorDialog.tsx +129 -0
  208. package/src/editor/utils/keyboardNavigation.ts +97 -1
  209. package/src/editor/views/SingleEditView.tsx +27 -13
  210. package/src/index.ts +3 -3
  211. package/src/revision.ts +2 -2
  212. package/src/splash-screen/SplashScreen.tsx +134 -2
  213. package/src/types.ts +9 -1
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Agents overview view that displays all non-closed agents for the current user
3
+ * grouped by profile with interactive controls
4
+ */
5
+ export declare function AgentsView(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,213 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect } from "react";
3
+ import { getActiveAgents, getAgent, closeAgent, deleteAgent, } from "../editor/services/agentService";
4
+ import { getAgentStatusConfig } from "../editor/ai/AgentStatusBadge";
5
+ import { cn } from "../lib/utils";
6
+ import { Trash, X, RefreshCw, Play } from "lucide-react";
7
+ import { SimpleIconButton } from "../editor/ui/SimpleIconButton";
8
+ import { useEditContext } from "../editor/client/editContext";
9
+ import { SecretAgentIcon } from "../editor/ui/Icons";
10
+ /**
11
+ * Agents overview view that displays all non-closed agents for the current user
12
+ * grouped by profile with interactive controls
13
+ */
14
+ export function AgentsView() {
15
+ const editContext = useEditContext();
16
+ const [agents, setAgents] = useState([]);
17
+ const [loading, setLoading] = useState(true);
18
+ const [error, setError] = useState(null);
19
+ const [refreshing, setRefreshing] = useState(false);
20
+ const [searchTerm, setSearchTerm] = useState("");
21
+ const loadAgents = async () => {
22
+ try {
23
+ setError(null);
24
+ // Get basic agent list
25
+ const basicAgents = await getActiveAgents(1000);
26
+ // Fetch full details for each agent
27
+ const detailsPromises = basicAgents.map((agent) => getAgent(agent.id).catch(() => null));
28
+ const agentDetails = await Promise.all(detailsPromises);
29
+ // Filter out any failed fetches and set the agents
30
+ const validAgents = agentDetails.filter((a) => a !== null);
31
+ setAgents(validAgents);
32
+ }
33
+ catch (err) {
34
+ console.error("Failed to load agents:", err);
35
+ setError(err?.message || "Failed to load agents. Please try again later.");
36
+ }
37
+ finally {
38
+ setLoading(false);
39
+ setRefreshing(false);
40
+ }
41
+ };
42
+ useEffect(() => {
43
+ loadAgents();
44
+ }, []);
45
+ // Subscribe to websocket messages for real-time agent updates
46
+ useEffect(() => {
47
+ if (!editContext?.addSocketMessageListener)
48
+ return;
49
+ const unsubscribe = editContext.addSocketMessageListener((message) => {
50
+ if (message.type === "agent:run:start") {
51
+ const { agentId, agentName } = message.payload;
52
+ if (!agentId || !agentName) {
53
+ console.warn("Invalid agent:run:start message payload:", message.payload);
54
+ return;
55
+ }
56
+ setAgents((prevAgents) => {
57
+ // Check if agent already exists
58
+ const existingAgentIndex = prevAgents.findIndex((agent) => agent.id === agentId);
59
+ if (existingAgentIndex !== -1) {
60
+ // Update existing agent
61
+ const updatedAgents = [...prevAgents];
62
+ const existingAgent = updatedAgents[existingAgentIndex];
63
+ updatedAgents[existingAgentIndex] = {
64
+ ...existingAgent,
65
+ name: agentName,
66
+ status: "running",
67
+ updatedDate: new Date().toISOString(),
68
+ };
69
+ return updatedAgents;
70
+ }
71
+ else {
72
+ // Add new agent - reload to get full details
73
+ loadAgents();
74
+ return prevAgents;
75
+ }
76
+ });
77
+ }
78
+ else if (message.type === "agent:status:changed") {
79
+ // Update agent status in real-time
80
+ const { agentId, status } = message.payload || {};
81
+ if (!agentId)
82
+ return;
83
+ setAgents((prevAgents) => {
84
+ const existingIndex = prevAgents.findIndex((a) => a.id === agentId);
85
+ if (existingIndex !== -1) {
86
+ const updatedAgents = [...prevAgents];
87
+ const existingAgent = updatedAgents[existingIndex];
88
+ updatedAgents[existingIndex] = {
89
+ ...existingAgent,
90
+ status,
91
+ updatedDate: new Date().toISOString(),
92
+ };
93
+ return updatedAgents;
94
+ }
95
+ return prevAgents;
96
+ });
97
+ }
98
+ else if (message.type === "agent:run:closed") {
99
+ // Remove agent from list when closed
100
+ const { agentId } = message.payload || {};
101
+ if (!agentId)
102
+ return;
103
+ setAgents((prevAgents) => prevAgents.filter((a) => a.id !== agentId));
104
+ }
105
+ });
106
+ return unsubscribe;
107
+ }, [editContext?.addSocketMessageListener]);
108
+ const handleRefresh = async () => {
109
+ setRefreshing(true);
110
+ await loadAgents();
111
+ };
112
+ const handleResumeAgent = (agent) => {
113
+ editContext?.switchView("page-editor");
114
+ editContext?.setShowAgentsPanel?.(true);
115
+ // Delay for panel mount, then dispatch event to open existing agent
116
+ setTimeout(() => {
117
+ window.dispatchEvent(new CustomEvent("editor:openAgent", {
118
+ detail: { agentId: agent.id },
119
+ }));
120
+ }, 500);
121
+ };
122
+ const handleCloseAgent = async (agentId, agentName) => {
123
+ editContext?.confirm({
124
+ header: "Close Agent",
125
+ message: `Are you sure you want to close "${agentName}"? This will stop its execution if running.`,
126
+ acceptLabel: "Close Agent",
127
+ accept: async () => {
128
+ try {
129
+ await closeAgent(agentId);
130
+ setAgents((prev) => prev.filter((a) => a.id !== agentId));
131
+ }
132
+ catch (err) {
133
+ console.error("Failed to close agent:", err);
134
+ editContext?.showToast(`Failed to close agent: ${err?.message || "Unknown error"}`);
135
+ }
136
+ },
137
+ showCancel: true,
138
+ });
139
+ };
140
+ const handleDeleteAgent = async (agentId, agentName, event) => {
141
+ event.stopPropagation();
142
+ editContext?.confirm({
143
+ header: "Delete Agent",
144
+ message: `Are you sure you want to permanently delete "${agentName}"? This action cannot be undone.`,
145
+ acceptLabel: "Delete Agent",
146
+ accept: async () => {
147
+ try {
148
+ await deleteAgent(agentId);
149
+ setAgents((prev) => prev.filter((a) => a.id !== agentId));
150
+ }
151
+ catch (err) {
152
+ console.error("Failed to delete agent:", err);
153
+ editContext?.showToast(`Failed to delete agent: ${err?.message || "Unknown error"}`);
154
+ }
155
+ },
156
+ showCancel: true,
157
+ });
158
+ };
159
+ const formatDateTime = (dateString) => {
160
+ try {
161
+ const date = new Date(dateString);
162
+ return date.toLocaleString();
163
+ }
164
+ catch {
165
+ return dateString;
166
+ }
167
+ };
168
+ const filteredAgents = agents.filter((agent) => {
169
+ if (!searchTerm.trim())
170
+ return true;
171
+ const search = searchTerm.toLowerCase();
172
+ return (agent.name.toLowerCase().includes(search) ||
173
+ agent.profileName?.toLowerCase().includes(search) ||
174
+ agent.id.toLowerCase().includes(search));
175
+ });
176
+ // Group agents by profile
177
+ const groupedAgents = filteredAgents.reduce((acc, agent) => {
178
+ const profileName = agent.profileName || "Unknown Profile";
179
+ if (!acc[profileName]) {
180
+ acc[profileName] = [];
181
+ }
182
+ acc[profileName].push(agent);
183
+ return acc;
184
+ }, {});
185
+ // Sort profile groups by name
186
+ const sortedProfileGroups = Object.entries(groupedAgents).sort(([a], [b]) => a.localeCompare(b));
187
+ if (loading) {
188
+ return (_jsx("div", { className: "flex h-full items-center justify-center", children: _jsx("div", { className: "text-sm text-gray-500", children: "Loading agents..." }) }));
189
+ }
190
+ if (error) {
191
+ return (_jsx("div", { className: "flex h-full items-center justify-center", children: _jsxs("div", { className: "max-w-md text-center", children: [_jsx("div", { className: "mb-4 text-sm text-red-600", children: error }), _jsx("button", { onClick: handleRefresh, className: "rounded bg-blue-500 px-4 py-2 text-xs text-white hover:bg-blue-600", children: "Retry" })] }) }));
192
+ }
193
+ return (_jsxs("div", { className: "flex h-full flex-col", children: [_jsxs("div", { className: "border-b border-gray-200 bg-white p-4", children: [_jsxs("div", { className: "mb-3 flex items-center justify-between", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-lg font-semibold text-gray-900", children: "My Agents" }), _jsxs("p", { className: "text-xs text-gray-500", children: ["Showing ", filteredAgents.length, " active agent", filteredAgents.length !== 1 ? "s" : ""] })] }), _jsx(SimpleIconButton, { onClick: handleRefresh, icon: _jsx(RefreshCw, { className: cn("size-4", refreshing && "animate-spin"), strokeWidth: 1.5 }), label: "Refresh", disabled: refreshing, className: "text-gray-600 hover:text-gray-800" })] }), _jsx("input", { type: "text", placeholder: "Search by name, profile, or agent ID...", value: searchTerm, onChange: (e) => setSearchTerm(e.target.value), className: "w-full rounded border border-gray-200 px-3 py-2 text-sm focus:border-blue-500 focus:outline-none" })] }), _jsx("div", { className: "flex-1 overflow-auto", children: filteredAgents.length === 0 ? (_jsx("div", { className: "flex h-full items-center justify-center text-sm text-gray-500", children: searchTerm.trim()
194
+ ? "No agents match your search"
195
+ : "No active agents found" })) : (_jsx("div", { className: "space-y-6 p-4", children: sortedProfileGroups.map(([profileName, profileAgents]) => (_jsxs("div", { children: [_jsxs("h3", { className: "mb-2 text-xs font-semibold tracking-wide text-gray-500 uppercase", children: [profileName, " (", profileAgents.length, ")"] }), _jsx("div", { className: "space-y-2", children: profileAgents.map((agent) => {
196
+ const statusConfig = getAgentStatusConfig(agent);
197
+ return (_jsx("div", { className: "cursor-pointer rounded-lg border border-gray-200 bg-white p-3 shadow-sm transition-shadow hover:shadow-md", onClick: () => {
198
+ // Only select the agent in the agents panel; do not switch views
199
+ window.dispatchEvent(new CustomEvent("editor:selectAgent", {
200
+ detail: { agentId: agent.id },
201
+ }));
202
+ }, children: _jsxs("div", { className: "flex items-start justify-between", children: [_jsx("div", { className: "mr-3 flex-shrink-0", children: agent.profileSvgIcon ? (_jsx("div", { className: "flex h-6 w-6 items-center justify-center text-gray-400 [&>svg]:h-full [&>svg]:w-full", dangerouslySetInnerHTML: {
203
+ __html: agent.profileSvgIcon,
204
+ } })) : (_jsx(SecretAgentIcon, { size: 24, strokeWidth: 1, className: "text-gray-400" })) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "mb-1 flex items-center gap-2", children: [_jsx("div", { className: cn("h-2 w-2 flex-shrink-0 rounded-full", statusConfig.color, statusConfig.shouldPulse && "animate-pulse"), title: statusConfig.label }), _jsx("h4", { className: "truncate font-medium text-gray-900", children: agent.name })] }), _jsxs("div", { className: "space-y-1 text-xs text-gray-600", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "font-medium", children: "Updated:" }), _jsx("span", { children: formatDateTime(agent.updatedDate) })] }), agent.messageCount > 0 && (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "font-medium", children: "Messages:" }), _jsx("span", { children: agent.messageCount })] })), agent.totalCost > 0 && (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "font-medium", children: "Cost:" }), _jsxs("span", { children: ["$", agent.totalCost.toFixed(4)] }), _jsxs("span", { className: "text-gray-400", children: ["(", agent.totalTokensUsed.toLocaleString(), " ", "tokens)"] })] }))] })] }), _jsxs("div", { className: "ml-3 flex gap-1", children: [_jsx(SimpleIconButton, { onClick: (e) => {
205
+ e.stopPropagation();
206
+ handleResumeAgent(agent);
207
+ }, icon: _jsx(Play, { className: "size-3", strokeWidth: 1.5 }), label: "Resume Agent", className: "text-blue-600 opacity-60 hover:text-blue-700 hover:opacity-100" }), _jsx(SimpleIconButton, { onClick: (e) => {
208
+ e.stopPropagation();
209
+ handleCloseAgent(agent.id, agent.name);
210
+ }, icon: _jsx(X, { className: "size-3", strokeWidth: 1.5 }), label: "Close Agent", className: "text-gray-600 opacity-60 hover:text-gray-800 hover:opacity-100" }), _jsx(SimpleIconButton, { onClick: (e) => handleDeleteAgent(agent.id, agent.name, e), icon: _jsx(Trash, { className: "size-3", strokeWidth: 1.5 }), label: "Delete Agent", className: "text-red-600 opacity-60 hover:text-red-700 hover:opacity-100" })] })] }) }, agent.id));
211
+ }) })] }, profileName))) })) })] }));
212
+ }
213
+ //# sourceMappingURL=AgentsView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentsView.js","sourceRoot":"","sources":["../../src/agents-view/AgentsView.tsx"],"names":[],"mappings":"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"}
@@ -98,17 +98,61 @@ function ContextMenuPortal({ children }) {
98
98
  }
99
99
  function ContextMenuContent({ className, children, }) {
100
100
  const { isOpen, position, close, registerContainer, unregisterContainer } = useContextMenuRoot();
101
+ const [adjustedPosition, setAdjustedPosition] = React.useState(null);
102
+ const menuRef = React.useRef(null);
101
103
  const contentRefCallback = React.useCallback((el) => {
104
+ menuRef.current = el;
102
105
  if (el) {
103
106
  registerContainer(el);
104
107
  }
105
108
  }, [registerContainer]);
109
+ // Calculate adjusted position based on viewport bounds
110
+ React.useEffect(() => {
111
+ if (!isOpen || !position || !menuRef.current) {
112
+ setAdjustedPosition(null);
113
+ return;
114
+ }
115
+ const OFFSET = 1;
116
+ const menuRect = menuRef.current.getBoundingClientRect();
117
+ const viewportWidth = window.innerWidth;
118
+ const viewportHeight = window.innerHeight;
119
+ let left = position.x + OFFSET;
120
+ let top = position.y + OFFSET;
121
+ // Check if menu would overflow bottom of viewport
122
+ if (top + menuRect.height > viewportHeight) {
123
+ // Position above the click point
124
+ top = position.y - menuRect.height - OFFSET;
125
+ // Ensure it doesn't go above the viewport
126
+ if (top < 0) {
127
+ top = Math.max(0, viewportHeight - menuRect.height);
128
+ }
129
+ }
130
+ // Check if menu would overflow right edge of viewport
131
+ if (left + menuRect.width > viewportWidth) {
132
+ // Position to the left of the click point
133
+ left = position.x - menuRect.width - OFFSET;
134
+ // Ensure it doesn't go off the left edge
135
+ if (left < 0) {
136
+ left = Math.max(0, viewportWidth - menuRect.width);
137
+ }
138
+ }
139
+ setAdjustedPosition({ left, top });
140
+ }, [isOpen, position, children]);
106
141
  if (!isOpen || !position)
107
142
  return null;
108
143
  const OFFSET = 1;
109
- const left = position.x + OFFSET;
110
- const top = position.y + OFFSET;
111
- const node = (_jsx("div", { ref: contentRefCallback, "data-slot": "context-menu-content", "data-testid": "context-menu-content", className: cn("bg-popover text-popover-foreground z-50 min-w-[8rem] overflow-visible rounded-md border font-light shadow-md", className), style: { position: "fixed", left, top }, onKeyDownCapture: (e) => {
144
+ const defaultLeft = position.x + OFFSET;
145
+ const defaultTop = position.y + OFFSET;
146
+ // Use adjusted position if available, otherwise use default
147
+ const finalPosition = adjustedPosition || {
148
+ left: defaultLeft,
149
+ top: defaultTop,
150
+ };
151
+ const node = (_jsx("div", { ref: contentRefCallback, "data-slot": "context-menu-content", "data-testid": "context-menu-content", className: cn("bg-popover text-popover-foreground z-50 min-w-[8rem] overflow-visible rounded-md border font-light shadow-md", className), style: {
152
+ position: "fixed",
153
+ left: finalPosition.left,
154
+ top: finalPosition.top,
155
+ }, onKeyDownCapture: (e) => {
112
156
  if (e.key === "Escape") {
113
157
  e.stopPropagation();
114
158
  close();
@@ -160,7 +204,7 @@ function ContextMenuItem({ className, inset, variant = "default", onClick, onSel
160
204
  performAction(e);
161
205
  }
162
206
  };
163
- return (_jsx("div", { role: "menuitem", "data-slot": "context-menu-item", "data-testid": "context-menu-item", "data-inset": inset, "data-variant": variant, "data-disabled": disabled ? "" : undefined, className: cn("hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-xs outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", className), onMouseDown: handleMouseDown, onClick: handleClick, onKeyDown: handleKeyDown, ...rest }));
207
+ return (_jsx("div", { role: "menuitem", "data-slot": "context-menu-item", "data-testid": "context-menu-item", "data-inset": inset, "data-variant": variant, "data-disabled": disabled ? "" : undefined, className: cn("hover:text-accent-foreground focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-xs outline-hidden select-none hover:bg-[#f6eeff] focus:bg-[#f6eeff] data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", className), onMouseDown: handleMouseDown, onClick: handleClick, onKeyDown: handleKeyDown, ...rest }));
164
208
  }
165
209
  function ContextMenuCheckboxItem({ className, children, checked, onClick, ...rest }) {
166
210
  const { close } = useContextMenuRoot();
@@ -171,7 +215,7 @@ function ContextMenuCheckboxItem({ className, children, checked, onClick, ...res
171
215
  onClick(e);
172
216
  close();
173
217
  };
174
- return (_jsxs("div", { "data-slot": "context-menu-checkbox-item", "data-testid": "context-menu-checkbox-item", "data-disabled": rest.disabled ? "" : undefined, className: cn("hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground relative flex cursor-pointer items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-xs outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", className), onClick: handle, ...rest, children: [_jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: checked ? _jsx(CheckIcon, { className: "size-4" }) : null }), children] }));
218
+ return (_jsxs("div", { "data-slot": "context-menu-checkbox-item", "data-testid": "context-menu-checkbox-item", "data-disabled": rest.disabled ? "" : undefined, className: cn("hover:text-accent-foreground focus:text-accent-foreground relative flex cursor-pointer items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-xs outline-hidden select-none hover:bg-[#f6eeff] focus:bg-[#f6eeff] data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", className), onClick: handle, ...rest, children: [_jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: checked ? _jsx(CheckIcon, { className: "size-4" }) : null }), children] }));
175
219
  }
176
220
  function ContextMenuRadioGroup({ children }) {
177
221
  return (_jsx("div", { "data-slot": "context-menu-radio-group", "data-testid": "context-menu-radio-group", children: children }));
@@ -185,7 +229,7 @@ function ContextMenuRadioItem({ className, children, checked, onClick, ...rest }
185
229
  onClick(e);
186
230
  close();
187
231
  };
188
- return (_jsxs("div", { "data-slot": "context-menu-radio-item", "data-testid": "context-menu-radio-item", "data-disabled": rest.disabled ? "" : undefined, className: cn("hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground relative flex cursor-pointer items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-xs outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", className), onClick: handle, ...rest, children: [_jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: checked ? _jsx(CircleIcon, { className: "size-2 fill-current" }) : null }), children] }));
232
+ return (_jsxs("div", { "data-slot": "context-menu-radio-item", "data-testid": "context-menu-radio-item", "data-disabled": rest.disabled ? "" : undefined, className: cn("hover:text-accent-foreground focus:text-accent-foreground relative flex cursor-pointer items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-xs outline-hidden select-none hover:bg-[#f6eeff] focus:bg-[#f6eeff] data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", className), onClick: handle, ...rest, children: [_jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: checked ? _jsx(CircleIcon, { className: "size-2 fill-current" }) : null }), children] }));
189
233
  }
190
234
  function ContextMenuLabel({ className, inset, ...rest }) {
191
235
  return (_jsx("div", { "data-slot": "context-menu-label", "data-testid": "context-menu-label", "data-inset": inset, className: cn("text-foreground px-2 py-1.5 text-xs font-light data-[inset]:pl-8", className), ...rest }));
@@ -216,7 +260,7 @@ function ContextMenuSubTrigger({ className, inset, children, disabled, ...rest }
216
260
  if (!disabled)
217
261
  setOpen(true);
218
262
  };
219
- return (_jsxs("div", { ref: triggerRef, "data-slot": "context-menu-sub-trigger", "data-testid": "context-menu-sub-trigger", "data-inset": inset, "data-disabled": disabled ? "" : undefined, className: cn("hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-xs outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", className), onMouseEnter: openSub, onClick: openSub, ...rest, children: [children, _jsx(ChevronRightIcon, { className: "ml-auto" })] }));
263
+ return (_jsxs("div", { ref: triggerRef, "data-slot": "context-menu-sub-trigger", "data-testid": "context-menu-sub-trigger", "data-inset": inset, "data-disabled": disabled ? "" : undefined, className: cn("hover:text-accent-foreground focus:text-accent-foreground flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-xs outline-hidden select-none hover:bg-[#f6eeff] focus:bg-[#f6eeff] data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", className), onMouseEnter: openSub, onClick: openSub, ...rest, children: [children, _jsx(ChevronRightIcon, { className: "ml-auto" })] }));
220
264
  }
221
265
  function ContextMenuSubContent({ className, children, }) {
222
266
  const { isOpen, setOpen, triggerRef } = useSubmenu();
@@ -1 +1 @@
1
- {"version":3,"file":"context-menu.js","sourceRoot":"","sources":["../../../src/components/ui/context-menu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-menu.js","sourceRoot":"","sources":["../../../src/components/ui/context-menu.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
- import { ClientFieldButton, EditorConfiguration } from "./types";
1
+ import { EditorConfiguration } from "./types";
2
2
  import { User } from "../types";
3
3
  export declare const contentItemId = "0DE95AE4-41AB-4D01-9EB0-67441B7C2450";
4
4
  export declare const templatesRootItemId = "3c1715fe-6a13-4fcf-845f-de308ba9741d";
5
5
  export declare const rootItemId = "11111111-1111-1111-1111-111111111111";
6
- export declare const defaultPictureVariantButtons: ClientFieldButton[];
7
6
  export declare const getConfiguration: () => EditorConfiguration;
8
7
  export declare function configureForUser(configuration: EditorConfiguration, user: User): EditorConfiguration;
@@ -30,6 +30,7 @@ import { Titlebar } from "../editor/Titlebar";
30
30
  import { NoWriteLanguageAccess } from "../editor/editor-warnings/NoLanguageWriteAccess";
31
31
  import { NoWorkflowWriteAccess } from "../editor/editor-warnings/NoWorkflowWriteAccess";
32
32
  import { SplashScreen } from "../splash-screen/SplashScreen";
33
+ import { AgentsView } from "../agents-view/AgentsView";
33
34
  import { createEditToolbar } from "../editor/menubar/ToolbarFactory";
34
35
  import { Validation } from "../editor/sidebar/Validation";
35
36
  import { localizeItemCommand, deleteItemCommand, insertItemCommand, moveItemsCommand, copyItemsCommand, publishItemCommand, renameItemCommand, duplicateItemCommand, } from "../editor/commands/itemCommands";
@@ -47,6 +48,7 @@ import { About } from "../editor/control-center/About";
47
48
  import { WebSocketMessages } from "../editor/control-center/WebSocketMessages";
48
49
  import { LatestFeedback } from "../editor/control-center/LatestFeedback";
49
50
  import { AllAgentsPanel } from "../editor/control-center/AllAgentsPanel";
51
+ import { ParheliaSetupOverview } from "../editor/control-center/parhelia-setup/Overview";
50
52
  import { DbSetupStep } from "../editor/control-center/setup-steps/DbSetupStep";
51
53
  import { SettingsSetupStep } from "../editor/control-center/setup-steps/SettingsSetupStep";
52
54
  import { AiSetupStep } from "../editor/control-center/setup-steps/AiSetupStep";
@@ -73,7 +75,7 @@ import { startPageWizardCommand } from "../page-wizard/startPageWizardCommand";
73
75
  import { ImageFieldEditor } from "../editor/field-types/ImageFieldEditor";
74
76
  import { ReviewCommands } from "../editor/menubar/toolbar-sections/ReviewCommands";
75
77
  import { TranslateStep } from "../page-wizard/steps/TranslateStep";
76
- import { BookA, History, FolderTreeIcon, InboxIcon, Languages, Layers, MessageCircleMore, Settings, Users, Bug, Timer, WandSparkles, BadgeCheck, ShieldCheck, Info as InfoIcon, BarChart3, Search, Home, File, ExternalLink, Image as ImageIcon, Video, X, Expand, } from "lucide-react";
78
+ import { BookA, History, FolderTreeIcon, InboxIcon, Languages, Layers, MessageCircleMore, Settings, Users, Bug, Timer, WandSparkles, BadgeCheck, ShieldCheck, Info as InfoIcon, BarChart3, Search, Home, File, ExternalLink, Image as ImageIcon, Video, X, Expand, Download, Bot, } from "lucide-react";
77
79
  import { Completions } from "../editor/sidebar/Completions";
78
80
  import { NewPage } from "../splash-screen/NewPage";
79
81
  import { OpenPage } from "../splash-screen/OpenPage";
@@ -103,7 +105,7 @@ const openTargetActionButton = {
103
105
  const selectImageButton = {
104
106
  label: "Select",
105
107
  icon: (_jsx(ImageIcon, { strokeWidth: 1, size: 16 })),
106
- showInMenu: false, // Primary action - appears outside menu
108
+ isPimaryAction: true, // Primary action - appears outside menu but show nontheless in the menu
107
109
  clientAction: async (props) => {
108
110
  const { field, editContext, variantName, variantData } = props;
109
111
  if (!variantName)
@@ -237,12 +239,82 @@ const cropVariantButton = {
237
239
  id: "crop-variant",
238
240
  description: "Crop the image variant",
239
241
  };
240
- export const defaultPictureVariantButtons = [
241
- selectImageButton,
242
- selectVideoButton,
243
- cropVariantButton,
244
- resetVariantButton,
245
- ];
242
+ const openPictureMediaItemButton = {
243
+ label: "Open media item",
244
+ icon: (_jsx(ExternalLink, { strokeWidth: 1, size: 16 })),
245
+ visible: ({ variantData }) => !!variantData?.mediaId,
246
+ clientAction: (props) => {
247
+ const { field, editContext, variantData } = props;
248
+ const mediaId = variantData?.mediaId;
249
+ if (mediaId) {
250
+ editContext.loadItem({
251
+ id: mediaId,
252
+ language: field.descriptor.item.language,
253
+ version: 0,
254
+ });
255
+ }
256
+ },
257
+ isGenerator: false,
258
+ id: "open-picture-media-item",
259
+ description: "Opens the media item in the content editor",
260
+ };
261
+ const openImageMediaItemButton = {
262
+ label: "Open media item",
263
+ icon: (_jsx(ExternalLink, { strokeWidth: 1, size: 16 })),
264
+ clientAction: ({ field, editContext }) => {
265
+ // Extract mediaId from XML rawValue: <image mediaid="{GUID}" />
266
+ const rawValue = field.rawValue || "";
267
+ const mediaIdMatch = rawValue.match(/mediaid="[{]?([0-9a-fA-F-]+)[}]?"/i);
268
+ if (mediaIdMatch && mediaIdMatch[1]) {
269
+ editContext.loadItem({
270
+ id: mediaIdMatch[1],
271
+ language: field.descriptor.item.language,
272
+ version: 0,
273
+ });
274
+ }
275
+ },
276
+ isGenerator: false,
277
+ id: "open-image-media-item",
278
+ description: "Opens the media item in the content editor",
279
+ };
280
+ const openAttachmentButton = {
281
+ label: "Open",
282
+ icon: (_jsx(ExternalLink, { strokeWidth: 1, size: 16 })),
283
+ visible: ({ field }) => !!field.value?.src,
284
+ clientAction: ({ field }) => {
285
+ const src = field.value?.src;
286
+ if (src) {
287
+ window.open(src, "_blank", "noopener,noreferrer");
288
+ }
289
+ },
290
+ isGenerator: false,
291
+ id: "open-attachment",
292
+ description: "Opens the attachment in a new tab",
293
+ };
294
+ const downloadAttachmentButton = {
295
+ label: "Download",
296
+ icon: (_jsx(Download, { strokeWidth: 1, size: 16 })),
297
+ visible: ({ field }) => !!field.value?.src,
298
+ clientAction: ({ field }) => {
299
+ const src = field.value?.src;
300
+ const fileName = field.value?.fileName;
301
+ const mimeType = field.value?.mimeType;
302
+ if (src) {
303
+ const link = document.createElement("a");
304
+ link.href = src;
305
+ link.download = fileName || "";
306
+ if (mimeType) {
307
+ link.type = mimeType;
308
+ }
309
+ document.body.appendChild(link);
310
+ link.click();
311
+ document.body.removeChild(link);
312
+ }
313
+ },
314
+ isGenerator: false,
315
+ id: "download-attachment",
316
+ description: "Downloads the attachment file",
317
+ };
246
318
  const pageEditorRightSidebar = {
247
319
  title: "COMPONENT NAVIGATOR & HISTORY",
248
320
  panels: [
@@ -283,6 +355,13 @@ const guidListPaste = {
283
355
  target: "rawValue",
284
356
  };
285
357
  export const getConfiguration = () => {
358
+ const defaultPictureVariantButtons = [
359
+ selectImageButton,
360
+ selectVideoButton,
361
+ cropVariantButton,
362
+ openPictureMediaItemButton,
363
+ resetVariantButton,
364
+ ];
286
365
  // Check if fullscreen query parameter is set
287
366
  const isFullscreenMode = typeof window !== "undefined" &&
288
367
  new URLSearchParams(window.location.search).get("fullscreen") === "true";
@@ -359,6 +438,7 @@ export const getConfiguration = () => {
359
438
  },
360
439
  image: {
361
440
  editor: ImageFieldEditor,
441
+ buttons: [openImageMediaItemButton],
362
442
  },
363
443
  droplink: {
364
444
  editor: DropLinkEditor,
@@ -435,6 +515,7 @@ export const getConfiguration = () => {
435
515
  },
436
516
  attachment: {
437
517
  editor: AttachmentEditor,
518
+ buttons: [openAttachmentButton, downloadAttachmentButton],
438
519
  },
439
520
  },
440
521
  editorWarnings: [
@@ -484,6 +565,12 @@ export const getConfiguration = () => {
484
565
  icon: _jsx(Settings, { strokeWidth: 1 }),
485
566
  content: _jsx(Setup, {}),
486
567
  },
568
+ {
569
+ id: "parhelia-setup",
570
+ title: "Parhelia Setup",
571
+ icon: _jsx(Settings, { strokeWidth: 1 }),
572
+ content: _jsx(ParheliaSetupOverview, {}),
573
+ },
487
574
  {
488
575
  id: "info",
489
576
  title: "System Info",
@@ -563,6 +650,14 @@ export const getConfiguration = () => {
563
650
  defaultCenterPanelView: _jsx(NewPage, {}),
564
651
  hideViewSelector: true,
565
652
  },
653
+ {
654
+ name: "agents-overview",
655
+ title: "My Agents",
656
+ icon: _jsx(Bot, { strokeWidth: 1 }),
657
+ defaultCenterPanelView: _jsx(AgentsView, {}),
658
+ hideViewSelector: false,
659
+ menuBar: _jsx(_Fragment, {}),
660
+ },
566
661
  {
567
662
  name: "page-editor",
568
663
  title: "Edit",