@alpaca-editor/core 1.0.4135 → 1.0.4140

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 (126) hide show
  1. package/dist/config/config.js +7 -0
  2. package/dist/config/config.js.map +1 -1
  3. package/dist/editor/FieldListField.js +3 -4
  4. package/dist/editor/FieldListField.js.map +1 -1
  5. package/dist/editor/Terminal.js +1 -1
  6. package/dist/editor/Terminal.js.map +1 -1
  7. package/dist/editor/Titlebar.js +0 -1
  8. package/dist/editor/Titlebar.js.map +1 -1
  9. package/dist/editor/ai/AgentCostDisplay.d.ts +3 -1
  10. package/dist/editor/ai/AgentCostDisplay.js +26 -2
  11. package/dist/editor/ai/AgentCostDisplay.js.map +1 -1
  12. package/dist/editor/ai/AgentStatusBadge.d.ts +26 -0
  13. package/dist/editor/ai/AgentStatusBadge.js +110 -0
  14. package/dist/editor/ai/AgentStatusBadge.js.map +1 -0
  15. package/dist/editor/ai/AgentTerminal.js +289 -198
  16. package/dist/editor/ai/AgentTerminal.js.map +1 -1
  17. package/dist/editor/ai/Agents.d.ts +2 -2
  18. package/dist/editor/ai/Agents.js +115 -19
  19. package/dist/editor/ai/Agents.js.map +1 -1
  20. package/dist/editor/ai/AiResponseMessage.js +259 -45
  21. package/dist/editor/ai/AiResponseMessage.js.map +1 -1
  22. package/dist/editor/ai/ContextInfoBar.js +124 -113
  23. package/dist/editor/ai/ContextInfoBar.js.map +1 -1
  24. package/dist/editor/ai/ToolCallDisplay.d.ts +1 -0
  25. package/dist/editor/ai/ToolCallDisplay.js +70 -58
  26. package/dist/editor/ai/ToolCallDisplay.js.map +1 -1
  27. package/dist/editor/ai/useAgentStatus.d.ts +13 -0
  28. package/dist/editor/ai/useAgentStatus.js +101 -0
  29. package/dist/editor/ai/useAgentStatus.js.map +1 -0
  30. package/dist/editor/client/EditorShell.js +23 -8
  31. package/dist/editor/client/EditorShell.js.map +1 -1
  32. package/dist/editor/client/itemsRepository.js.map +1 -1
  33. package/dist/editor/commands/localizeItem/LocalizeItemDialog.js +5 -5
  34. package/dist/editor/commands/localizeItem/LocalizeItemDialog.js.map +1 -1
  35. package/dist/editor/control-center/About.js +1 -1
  36. package/dist/editor/control-center/About.js.map +1 -1
  37. package/dist/editor/control-center/AllAgentsPanel.d.ts +5 -0
  38. package/dist/editor/control-center/AllAgentsPanel.js +126 -0
  39. package/dist/editor/control-center/AllAgentsPanel.js.map +1 -0
  40. package/dist/editor/control-center/WebSocketMessages.js +1 -0
  41. package/dist/editor/control-center/WebSocketMessages.js.map +1 -1
  42. package/dist/editor/control-center/setup-steps/AiSetupStep/tools/GenerateToolsSection.js +42 -7
  43. package/dist/editor/control-center/setup-steps/AiSetupStep/tools/GenerateToolsSection.js.map +1 -1
  44. package/dist/editor/media-selector/AiImageSearch.d.ts +1 -1
  45. package/dist/editor/media-selector/AiImageSearch.js +162 -103
  46. package/dist/editor/media-selector/AiImageSearch.js.map +1 -1
  47. package/dist/editor/media-selector/TreeSelector.js +20 -4
  48. package/dist/editor/media-selector/TreeSelector.js.map +1 -1
  49. package/dist/editor/menubar/toolbar-sections/UtilityControls.js +5 -2
  50. package/dist/editor/menubar/toolbar-sections/UtilityControls.js.map +1 -1
  51. package/dist/editor/page-editor-chrome/PlaceholderDropZone.d.ts +1 -1
  52. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +7 -5
  53. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
  54. package/dist/editor/page-viewer/DeviceToolbar.js +2 -2
  55. package/dist/editor/page-viewer/DeviceToolbar.js.map +1 -1
  56. package/dist/editor/page-viewer/PageViewerFrame.js +18 -11
  57. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  58. package/dist/editor/services/agentService.d.ts +53 -48
  59. package/dist/editor/services/agentService.js +137 -79
  60. package/dist/editor/services/agentService.js.map +1 -1
  61. package/dist/editor/services/aiService.d.ts +1 -1
  62. package/dist/editor/services/editService.js +1 -0
  63. package/dist/editor/services/editService.js.map +1 -1
  64. package/dist/editor/sidebar/GraphQL.js +20 -7
  65. package/dist/editor/sidebar/GraphQL.js.map +1 -1
  66. package/dist/editor/sidebar/SEOInfo.js +1 -2
  67. package/dist/editor/sidebar/SEOInfo.js.map +1 -1
  68. package/dist/editor/sidebar/Translations.js +10 -7
  69. package/dist/editor/sidebar/Translations.js.map +1 -1
  70. package/dist/editor/ui/ItemNameDialogNew.js +1 -1
  71. package/dist/editor/ui/ItemSearch.js +10 -4
  72. package/dist/editor/ui/ItemSearch.js.map +1 -1
  73. package/dist/page-wizard/steps/CollectStep.js +2 -2
  74. package/dist/page-wizard/steps/CollectStep.js.map +1 -1
  75. package/dist/page-wizard/steps/FieldEditor.js +2 -2
  76. package/dist/page-wizard/steps/FieldEditor.js.map +1 -1
  77. package/dist/revision.d.ts +2 -2
  78. package/dist/revision.js +2 -2
  79. package/dist/splash-screen/NewPage.js +2 -2
  80. package/dist/splash-screen/NewPage.js.map +1 -1
  81. package/dist/splash-screen/RecentPages.js +1 -1
  82. package/dist/splash-screen/RecentPages.js.map +1 -1
  83. package/dist/styles.css +167 -22
  84. package/dist/tour/Tour.js +15 -11
  85. package/dist/tour/Tour.js.map +1 -1
  86. package/package.json +1 -1
  87. package/src/config/config.tsx +7 -0
  88. package/src/editor/FieldListField.tsx +13 -13
  89. package/src/editor/Terminal.tsx +1 -1
  90. package/src/editor/Titlebar.tsx +0 -1
  91. package/src/editor/ai/AgentCostDisplay.tsx +57 -1
  92. package/src/editor/ai/AgentStatusBadge.tsx +144 -0
  93. package/src/editor/ai/AgentTerminal.tsx +345 -219
  94. package/src/editor/ai/Agents.tsx +179 -30
  95. package/src/editor/ai/AiResponseMessage.tsx +411 -114
  96. package/src/editor/ai/ContextInfoBar.tsx +134 -131
  97. package/src/editor/ai/ToolCallDisplay.tsx +217 -176
  98. package/src/editor/ai/useAgentStatus.ts +123 -0
  99. package/src/editor/client/EditorShell.tsx +34 -8
  100. package/src/editor/client/itemsRepository.ts +1 -2
  101. package/src/editor/commands/localizeItem/LocalizeItemDialog.tsx +5 -5
  102. package/src/editor/control-center/About.tsx +0 -14
  103. package/src/editor/control-center/AllAgentsPanel.tsx +300 -0
  104. package/src/editor/control-center/WebSocketMessages.tsx +1 -0
  105. package/src/editor/control-center/setup-steps/AiSetupStep/tools/GenerateToolsSection.tsx +49 -8
  106. package/src/editor/media-selector/AiImageSearch.tsx +162 -172
  107. package/src/editor/media-selector/TreeSelector.tsx +137 -116
  108. package/src/editor/menubar/toolbar-sections/UtilityControls.tsx +9 -1
  109. package/src/editor/page-editor-chrome/PlaceholderDropZone.tsx +7 -4
  110. package/src/editor/page-viewer/DeviceToolbar.tsx +15 -11
  111. package/src/editor/page-viewer/PageViewerFrame.tsx +20 -14
  112. package/src/editor/services/agentService.ts +217 -129
  113. package/src/editor/services/aiService.ts +2 -2
  114. package/src/editor/services/editService.ts +1 -0
  115. package/src/editor/sidebar/GraphQL.tsx +143 -117
  116. package/src/editor/sidebar/SEOInfo.tsx +1 -2
  117. package/src/editor/sidebar/Translations.tsx +14 -12
  118. package/src/editor/ui/ItemNameDialogNew.tsx +1 -1
  119. package/src/editor/ui/ItemSearch.tsx +11 -4
  120. package/src/editor/ui/SimpleTabs.tsx +1 -1
  121. package/src/page-wizard/steps/CollectStep.tsx +2 -2
  122. package/src/page-wizard/steps/FieldEditor.tsx +13 -15
  123. package/src/revision.ts +2 -2
  124. package/src/splash-screen/NewPage.tsx +2 -2
  125. package/src/splash-screen/RecentPages.tsx +1 -1
  126. package/src/tour/Tour.tsx +61 -48
@@ -2,13 +2,33 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState } from "react";
3
3
  import { JsonView, defaultStyles } from "react-json-view-lite";
4
4
  import "react-json-view-lite/dist/index.css";
5
- import { Popover, PopoverContent, PopoverTrigger, } from "../../components/ui/popover";
6
- import { SimpleTabs } from "../ui/SimpleTabs";
7
5
  import { Spinner } from "../ui/Spinner";
8
- import { SimpleIconButton } from "../ui/SimpleIconButton";
9
6
  import { Button } from "../../components/ui/button";
10
7
  import { approveToolCall, rejectToolCall } from "../services/agentService";
11
- import { X, FileText, Search, Code, FolderOpen, FileSearch, Trash2, Globe, Brain, CheckSquare, Edit, FileEdit, Wrench, } from "lucide-react";
8
+ // Custom dark theme styles for JSON view
9
+ const darkJsonStyles = {
10
+ ...defaultStyles,
11
+ container: "dark-json-container",
12
+ label: "dark-json-label",
13
+ punctuation: "dark-json-punctuation",
14
+ stringValue: "dark-json-string",
15
+ numberValue: "dark-json-number",
16
+ booleanValue: "dark-json-boolean",
17
+ nullValue: "dark-json-null",
18
+ undefinedValue: "dark-json-undefined",
19
+ };
20
+ // JSON view light theme CSS
21
+ const JsonLightThemeStyles = () => (_jsx("style", { children: `
22
+ .dark-json-container { color: #1f2937; }
23
+ .dark-json-label { color: #2563eb; font-weight: 500; }
24
+ .dark-json-punctuation { color: #6b7280; }
25
+ .dark-json-string { color: #059669; }
26
+ .dark-json-number { color: #d97706; }
27
+ .dark-json-boolean { color: #7c3aed; }
28
+ .dark-json-null { color: #dc2626; }
29
+ .dark-json-undefined { color: #dc2626; }
30
+ ` }));
31
+ import { FileText, Search, Code, FolderOpen, FileSearch, Trash2, Globe, Brain, CheckSquare, Edit, FileEdit, Wrench, ChevronDown, ChevronRight, } from "lucide-react";
12
32
  // Function to get the appropriate icon for each tool
13
33
  const getToolIcon = (toolName) => {
14
34
  const iconMap = {
@@ -69,7 +89,7 @@ const normalizeToolCall = (toolCall) => {
69
89
  const renderJsonOrText = (json) => {
70
90
  // If it's already an object, use it directly
71
91
  if (typeof json === "object" && json !== null) {
72
- return (_jsx("div", { className: "font-mono text-xs", style: { fontSize: "12px" }, children: _jsx(JsonView, { data: json, shouldExpandNode: (level) => level < 2, style: defaultStyles }) }));
92
+ return (_jsxs("div", { className: "font-mono text-xs", style: { fontSize: "12px" }, children: [_jsx(JsonLightThemeStyles, {}), _jsx(JsonView, { data: json, shouldExpandNode: (level) => level < 2, style: darkJsonStyles })] }));
73
93
  }
74
94
  // Convert to string if not already
75
95
  const jsonString = typeof json === "string" ? json : String(json);
@@ -86,7 +106,7 @@ const renderJsonOrText = (json) => {
86
106
  console.log("Second parse failed, using first result");
87
107
  }
88
108
  }
89
- return (_jsx("div", { className: "font-mono text-xs", style: { fontSize: "12px" }, children: _jsx(JsonView, { data: parsed, shouldExpandNode: (level) => level < 2, style: defaultStyles }) }));
109
+ return (_jsxs("div", { className: "font-mono text-xs", style: { fontSize: "12px" }, children: [_jsx(JsonLightThemeStyles, {}), _jsx(JsonView, { data: parsed, shouldExpandNode: (level) => level < 2, style: darkJsonStyles })] }));
90
110
  }
91
111
  catch (e) {
92
112
  console.log("JSON parse failed:", e, "Trying to handle as string...");
@@ -94,46 +114,31 @@ const renderJsonOrText = (json) => {
94
114
  try {
95
115
  const unescaped = jsonString.replace(/\\"/g, '"').replace(/\\\\/g, "\\");
96
116
  const parsed = JSON.parse(unescaped);
97
- return (_jsx("div", { className: "font-mono text-xs", style: { fontSize: "12px" }, children: _jsx(JsonView, { data: parsed, shouldExpandNode: (level) => level < 2, style: defaultStyles }) }));
117
+ return (_jsxs("div", { className: "font-mono text-xs", style: { fontSize: "12px" }, children: [_jsx(JsonLightThemeStyles, {}), _jsx(JsonView, { data: parsed, shouldExpandNode: (level) => level < 2, style: darkJsonStyles })] }));
98
118
  }
99
119
  catch (e2) {
100
120
  console.log("Unescaping also failed:", e2);
101
121
  // If all parsing fails, display as plain text
102
- return (_jsx("div", { className: "font-mono text-xs break-words whitespace-pre-wrap", children: jsonString }));
122
+ return (_jsx("div", { className: "font-mono text-xs break-words whitespace-pre-wrap text-gray-700", children: jsonString }));
103
123
  }
104
124
  }
105
125
  };
106
- // Helper function to create tabs for a tool call
107
- const createToolCallTabs = (toolCall, result) => {
108
- const tabs = [
109
- {
110
- id: `input-${toolCall.id}`,
111
- label: "Input",
112
- content: (_jsx("div", { className: "h-[250px] w-full overflow-auto p-2", children: _jsx("div", { className: "text-xs", children: renderJsonOrText(toolCall.function?.arguments || "") }) })),
113
- },
114
- ];
115
- // Add output tab if there's a result or error
116
- if (result || toolCall.function?.error) {
117
- const hasError = toolCall.function?.error;
118
- tabs.push({
119
- id: `output-${toolCall.id}`,
120
- label: hasError ? "Error" : "Output",
121
- content: (_jsx("div", { className: "h-[250px] w-full overflow-auto p-2", children: hasError ? (_jsxs("div", { className: "rounded border-l-4 border-red-500 bg-red-50 p-3 text-xs text-red-600", children: [_jsx("div", { className: "mb-1 font-medium", children: "Tool Error:" }), _jsx("div", { children: toolCall.function?.error })] })) : (_jsx("div", { className: "text-xs", children: renderJsonOrText(result || "") })) })),
122
- });
123
- }
124
- return tabs;
126
+ // Expandable panel component
127
+ const ExpandablePanel = ({ title, children, defaultExpanded = false, }) => {
128
+ const [isExpanded, setIsExpanded] = useState(defaultExpanded);
129
+ return (_jsxs("div", { className: "border-b border-gray-200/60 last:border-b-0", children: [_jsxs("div", { className: "flex cursor-pointer items-center gap-2 px-4 py-2.5 transition-colors hover:bg-white/60", onClick: () => setIsExpanded(!isExpanded), children: [isExpanded ? (_jsx(ChevronDown, { size: 14, strokeWidth: 1.5, className: "text-gray-500 transition-transform" })) : (_jsx(ChevronRight, { size: 14, strokeWidth: 1.5, className: "text-gray-500 transition-transform" })), _jsx("span", { className: "text-xs font-semibold tracking-wide text-gray-600 uppercase", children: title })] }), isExpanded && (_jsx("div", { className: "w-full overflow-auto px-4 pt-1 pb-4", children: children }))] }));
125
130
  };
126
- // Helper function to create tool call popover content
127
- const ToolCallPopover = ({ toolCall, result, onClose, }) => {
128
- const [activeTab, setActiveTab] = useState(0);
129
- const tabs = createToolCallTabs(toolCall, result || "");
130
- return (_jsxs("div", { className: "flex flex-col p-3", children: [_jsxs("div", { className: "mb-3 flex items-center justify-between border-b border-gray-200 px-2 pb-1", children: [_jsxs("div", { className: "flex items-center gap-2 text-sm font-semibold text-gray-800", children: [getToolIcon(toolCall?.function?.name || ""), _jsx("span", { children: toolCall.displayName || toolCall.function?.name })] }), _jsx(SimpleIconButton, { onClick: onClose, icon: _jsx(X, { strokeWidth: 1, size: 16 }), label: "Close", showTooltip: false, size: "small" })] }), _jsx(SimpleTabs, { tabs: tabs, activeTab: activeTab, setActiveTab: setActiveTab, className: "mb-3 border-b border-gray-200", tabClassName: "text-xs" })] }));
131
+ // Helper function to create expandable tool call details
132
+ const ToolCallDetails = ({ toolCall, result, }) => {
133
+ const hasError = toolCall.function?.error;
134
+ const hasOutput = result || hasError;
135
+ return (_jsxs("div", { className: "mt-2 ml-4 overflow-hidden rounded-lg border border-gray-200/80 bg-gradient-to-br from-gray-50 to-gray-50/30 shadow-sm", children: [_jsx(ExpandablePanel, { title: "Input", defaultExpanded: !hasOutput, children: _jsx("div", { className: "rounded-md border border-gray-200 bg-white p-3 text-xs shadow-sm", children: renderJsonOrText(toolCall.function?.arguments || "") }) }), hasOutput && (_jsx(ExpandablePanel, { title: hasError ? "Error" : "Output", defaultExpanded: true, children: hasError ? (_jsxs("div", { className: "rounded-md border-l-4 border-red-500 bg-red-50/80 p-3 text-xs text-red-700 shadow-sm", children: [_jsx("div", { className: "mb-1.5 font-semibold", children: "Tool Error:" }), _jsx("div", { className: "text-red-600", children: toolCall.function?.error })] })) : (_jsx("div", { className: "rounded-md border border-gray-200 bg-white p-3 text-xs shadow-sm", children: renderJsonOrText(result || "") })) }))] }));
131
136
  };
132
137
  export function ToolCallDisplay({ toolCalls, finished, openPopovers, setOpenPopovers, messageId, }) {
133
138
  if (!toolCalls || toolCalls.length === 0) {
134
139
  return null;
135
140
  }
136
- return (_jsx("div", { className: "mt-2 flex flex-col gap-2", children: toolCalls.map((originalToolCall, toolIndex) => {
141
+ return (_jsx("div", { className: "flex flex-col", children: toolCalls.map((originalToolCall, toolIndex) => {
137
142
  const toolCall = normalizeToolCall(originalToolCall);
138
143
  const toolResult = toolCall.function?.result;
139
144
  const popoverKey = `${messageId}-${toolIndex}`;
@@ -156,45 +161,46 @@ export function ToolCallDisplay({ toolCalls, finished, openPopovers, setOpenPopo
156
161
  // Treat only approved/rejected as final; pending should still show buttons
157
162
  const hasApprovalStatus = isApproved || isRejected;
158
163
  // Debug logging removed for performance
159
- return (_jsxs("div", { children: [_jsxs(Popover, { enableIframeClickDetection: false, open: openPopovers[popoverKey] || false, onOpenChange: (open) => {
164
+ const isExpanded = openPopovers[popoverKey] || false;
165
+ return (_jsxs("div", { children: [_jsxs("div", { className: "group flex cursor-pointer items-center gap-1.5 rounded-md px-1 py-1 text-xs text-gray-600 transition-all hover:bg-gray-100/60 hover:text-gray-800", onClick: () => {
160
166
  setOpenPopovers((prev) => ({
161
167
  ...prev,
162
- [popoverKey]: open,
168
+ [popoverKey]: !prev[popoverKey],
163
169
  }));
164
- }, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs("div", { className: "flex items-center gap-2 text-xs text-gray-500", children: [isCompleted ? (_jsx("div", { className: `flex items-center ${toolCall.function?.error ? "text-red-500" : ""}`, children: getToolIcon(toolCall?.function?.name || "") })) : finalApprovalInfo && !hasApprovalStatus ? (_jsx("div", { className: "flex items-center text-amber-600", children: getToolIcon(toolCall?.function?.name || "") })) : finished ? (_jsx("div", { className: "flex items-center opacity-50", children: getToolIcon(toolCall?.function?.name || "") })) : (_jsx(Spinner, { size: "xs" })), _jsx("div", { className: "inline-flex items-center gap-2", children: _jsxs("span", { className: `${toolCall.function?.error ? "text-red-500" : "hover:text-gray-700"} cursor-pointer`, children: [(originalFunctionName ||
165
- toolCall?.function?.name ||
166
- "tool call")
167
- .replace(" (approved)", "")
168
- .replace(" (rejected)", "")
169
- .replace(" (pending approval)", ""), toolCall.function?.error && " (error)", finalApprovalInfo && isApproved && (_jsx("span", { className: "ml-2 text-xs font-medium text-green-600", children: "\u2713 Approved" })), finalApprovalInfo && isRejected && (_jsx("span", { className: "ml-2 text-xs font-medium text-red-600", children: "\u2717 Rejected" })), finalApprovalInfo && isPending && (_jsx("span", { className: "ml-2 text-xs font-medium text-amber-600", children: "\u23F8 Pending approval" }))] }) })] }) }), _jsx(PopoverContent, { className: "w-[450px] p-0", align: "start", side: "bottom", sideOffset: 8, onMouseDown: (e) => e.stopPropagation(), onClick: (e) => e.stopPropagation(), children: _jsx(ToolCallPopover, { toolCall: toolCall, result: toolResult, onClose: () => {
170
- setOpenPopovers((prev) => ({
171
- ...prev,
172
- [popoverKey]: false,
173
- }));
174
- } }) })] }), !isCompleted && finalApprovalInfo && !hasApprovalStatus && (_jsxs("div", { className: "mt-2 rounded border", children: [_jsx("div", { className: "border-b bg-amber-50 p-3", children: _jsxs("div", { className: "flex items-start gap-2", children: [_jsx("div", { className: `mt-1.5 h-2 w-2 rounded-full ${finalApprovalInfo.riskLevel === "high"
175
- ? "bg-red-500"
170
+ }, children: [_jsx("div", { className: "flex items-center transition-transform group-hover:scale-110", children: isExpanded ? (_jsx(ChevronDown, { size: 14, strokeWidth: 1.5, className: "text-gray-500" })) : (_jsx(ChevronRight, { size: 14, strokeWidth: 1.5, className: "text-gray-500" })) }), isCompleted ? (_jsx("div", { className: `flex items-center transition-all ${toolCall.function?.error ? "text-red-500" : "text-green-600"}`, children: getToolIcon(toolCall?.function?.name || "") })) : finalApprovalInfo && !hasApprovalStatus ? (_jsx("div", { className: "flex items-center text-amber-600 transition-all", children: getToolIcon(toolCall?.function?.name || "") })) : finished ? (_jsx("div", { className: "flex items-center text-gray-400 opacity-60 transition-all", children: getToolIcon(toolCall?.function?.name || "") })) : (_jsx(Spinner, { size: "xs" })), _jsx("div", { className: "inline-flex flex-1 items-center gap-2", children: _jsxs("span", { className: `font-medium transition-colors ${toolCall.function?.error ? "text-red-600" : ""}`, children: [(originalFunctionName ||
171
+ toolCall?.function?.name ||
172
+ "tool call")
173
+ .replace(" (approved)", "")
174
+ .replace(" (rejected)", "")
175
+ .replace(" (pending approval)", ""), toolCall.function?.error && (_jsx("span", { className: "ml-1 text-red-500", children: "(error)" })), finalApprovalInfo && isApproved && (_jsxs("span", { className: "ml-2 inline-flex items-center gap-1 rounded-full bg-green-100 px-2 py-0.5 text-[10px] font-semibold text-green-700", children: [_jsx("span", { children: "\u2713" }), " Approved"] })), finalApprovalInfo && isRejected && (_jsxs("span", { className: "ml-2 inline-flex items-center gap-1 rounded-full bg-red-100 px-2 py-0.5 text-[10px] font-semibold text-red-700", children: [_jsx("span", { children: "\u2717" }), " Rejected"] })), finalApprovalInfo && isPending && (_jsxs("span", { className: "ml-2 inline-flex items-center gap-1 rounded-full bg-amber-100 px-2 py-0.5 text-[10px] font-semibold text-amber-700", children: [_jsx("span", { children: "\u23F8" }), " Pending approval"] }))] }) })] }), isExpanded && (_jsx(ToolCallDetails, { toolCall: toolCall, result: toolResult })), !isCompleted && finalApprovalInfo && !hasApprovalStatus && (_jsxs("div", { className: "mt-2 overflow-hidden rounded-lg border border-amber-200 bg-gradient-to-br from-amber-50 to-amber-50/30 shadow-sm", children: [_jsx("div", { className: "border-b border-amber-200/60 bg-amber-50/80 p-3", children: _jsxs("div", { className: "flex items-start gap-3", children: [_jsx("div", { className: `mt-1 h-2.5 w-2.5 rounded-full shadow-sm ${finalApprovalInfo.riskLevel === "high"
176
+ ? "bg-red-500 ring-2 ring-red-200"
176
177
  : finalApprovalInfo.riskLevel === "medium"
177
- ? "bg-amber-500"
178
- : "bg-green-500"}` }), _jsxs("div", { children: [_jsx("div", { className: "mb-1 text-xs font-medium text-gray-900", children: "Action requires approval" }), _jsx("div", { className: "text-xs text-gray-700", children: finalApprovalInfo.summary }), finalApprovalInfo.riskLevel && (_jsxs("div", { className: `mt-1 text-xs font-medium ${finalApprovalInfo.riskLevel === "high"
179
- ? "text-red-600"
178
+ ? "bg-amber-500 ring-2 ring-amber-200"
179
+ : "bg-green-500 ring-2 ring-green-200"}` }), _jsxs("div", { className: "flex-1", children: [_jsx("div", { className: "mb-1.5 text-xs font-semibold text-gray-900", children: "Action requires approval" }), _jsx("div", { className: "text-xs leading-relaxed text-gray-700", children: finalApprovalInfo.summary }), finalApprovalInfo.riskLevel && (_jsxs("div", { className: `mt-2 inline-flex items-center gap-1.5 rounded-full px-2 py-1 text-[10px] font-semibold ${finalApprovalInfo.riskLevel === "high"
180
+ ? "bg-red-100 text-red-700"
180
181
  : finalApprovalInfo.riskLevel === "medium"
181
- ? "text-amber-600"
182
- : "text-green-600"}`, children: ["Risk level: ", finalApprovalInfo.riskLevel] }))] })] }) }), _jsxs("div", { className: "flex items-center justify-end gap-2 p-2", children: [_jsx(Button, { size: "sm", variant: "secondary", onClick: async () => {
182
+ ? "bg-amber-100 text-amber-700"
183
+ : "bg-green-100 text-green-700"}`, children: [_jsx("span", { className: "font-normal", children: "Risk:" }), _jsx("span", { className: "uppercase", children: finalApprovalInfo.riskLevel })] }))] })] }) }), _jsxs("div", { className: "flex items-center justify-end gap-2 bg-white/60 p-3", children: [_jsx(Button, { size: "sm", variant: "secondary", onClick: async () => {
184
+ // Use the dbMessageId from AgentToolCall if available, otherwise fall back to messageId or prop
185
+ const actualMessageId = isAgentToolCall
186
+ ? originalToolCall.dbMessageId ||
187
+ originalToolCall.messageId
188
+ : messageId;
183
189
  console.log("🚫 Rejecting tool call:", {
184
190
  agentId: window?.currentAgentId,
185
- messageId: messageId,
191
+ messageId: actualMessageId,
186
192
  toolCallId: toolCall.id,
187
193
  });
188
194
  try {
189
195
  const result = await rejectToolCall({
190
196
  agentId: window?.currentAgentId,
191
- messageId: messageId,
197
+ messageId: actualMessageId,
192
198
  toolCallId: toolCall.id,
193
199
  });
194
200
  console.log("✅ Reject successful:", result);
195
201
  const ev = new CustomEvent("agent:toolApprovalResolved", {
196
202
  detail: {
197
- messageId: messageId,
203
+ messageId: actualMessageId,
198
204
  toolCallId: toolCall.id,
199
205
  approved: false,
200
206
  },
@@ -205,21 +211,26 @@ export function ToolCallDisplay({ toolCalls, finished, openPopovers, setOpenPopo
205
211
  console.error("❌ Reject failed:", error);
206
212
  }
207
213
  }, children: "Reject" }), _jsx(Button, { size: "sm", onClick: async () => {
214
+ // Use the dbMessageId from AgentToolCall if available, otherwise fall back to messageId or prop
215
+ const actualMessageId = isAgentToolCall
216
+ ? originalToolCall.dbMessageId ||
217
+ originalToolCall.messageId
218
+ : messageId;
208
219
  console.log("✅ Approving tool call:", {
209
220
  agentId: window?.currentAgentId,
210
- messageId: messageId,
221
+ messageId: actualMessageId,
211
222
  toolCallId: toolCall.id,
212
223
  });
213
224
  try {
214
225
  const result = await approveToolCall({
215
226
  agentId: window?.currentAgentId,
216
- messageId: messageId,
227
+ messageId: actualMessageId,
217
228
  toolCallId: toolCall.id,
218
229
  });
219
230
  console.log("✅ Approve successful:", result);
220
231
  const ev = new CustomEvent("agent:toolApprovalResolved", {
221
232
  detail: {
222
- messageId: messageId,
233
+ messageId: actualMessageId,
223
234
  toolCallId: toolCall.id,
224
235
  approved: true,
225
236
  },
@@ -228,6 +239,7 @@ export function ToolCallDisplay({ toolCalls, finished, openPopovers, setOpenPopo
228
239
  }
229
240
  catch (error) {
230
241
  console.error("❌ Approve failed:", error);
242
+ alert(`Failed to approve: ${error?.message || "Unknown error"}`);
231
243
  }
232
244
  }, children: "Approve" })] })] }))] }, toolIndex));
233
245
  }) }));
@@ -1 +1 @@
1
- {"version":3,"file":"ToolCallDisplay.js","sourceRoot":"","sources":["../../../src/editor/ai/ToolCallDisplay.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolCallDisplay.js","sourceRoot":"","sources":["../../../src/editor/ai/ToolCallDisplay.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,qCAAqC,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE3E,yCAAyC;AACzC,MAAM,cAAc,GAAG;IACrB,GAAG,aAAa;IAChB,SAAS,EAAE,qBAAqB;IAChC,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE,uBAAuB;IACpC,WAAW,EAAE,kBAAkB;IAC/B,WAAW,EAAE,kBAAkB;IAC/B,YAAY,EAAE,mBAAmB;IACjC,SAAS,EAAE,gBAAgB;IAC3B,cAAc,EAAE,qBAAqB;CACtC,CAAC;AAEF,4BAA4B;AAC5B,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAAC,CACjC,0BAAQ;;;;;;;;;GASP,GAAS,CACX,CAAC;AACF,OAAO,EACL,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,UAAU,EACV,UAAU,EACV,MAAM,EACN,KAAK,EACL,KAAK,EACL,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,WAAW,EACX,YAAY,GACb,MAAM,cAAc,CAAC;AAEtB,qDAAqD;AACrD,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,EAAE;IACvC,MAAM,OAAO,GAA0C;QACrD,qBAAqB;QACrB,aAAa,EAAE,KAAC,QAAQ,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QACrD,YAAY,EAAE,KAAC,IAAI,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QAChD,oBAAoB,EAAE,KAAC,IAAI,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QAExD,kBAAkB;QAClB,aAAa,EAAE,KAAC,QAAQ,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QACrD,WAAW,EAAE,KAAC,QAAQ,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QACnD,WAAW,EAAE,KAAC,UAAU,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QACrD,cAAc,EAAE,KAAC,UAAU,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QACxD,mBAAmB,EAAE,KAAC,UAAU,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QAE7D,uBAAuB;QACvB,eAAe,EAAE,KAAC,IAAI,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QACnD,kBAAkB,EAAE,KAAC,MAAM,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QACxD,iBAAiB,EAAE,KAAC,IAAI,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QACrD,kBAAkB,EAAE,KAAC,IAAI,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QACtD,sCAAsC,EAAE,KAAC,IAAI,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QAE1E,oBAAoB;QACpB,gBAAgB,EAAE,KAAC,MAAM,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QACtD,eAAe,EAAE,KAAC,UAAU,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QACzD,eAAe,EAAE,KAAC,KAAK,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QAEpD,mBAAmB;QACnB,YAAY,EAAE,KAAC,QAAQ,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QACpD,yBAAyB,EAAE,KAAC,QAAQ,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QAEjE,2BAA2B;QAC3B,aAAa,EAAE,KAAC,WAAW,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QACxD,cAAc,EAAE,KAAC,WAAW,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QACzD,aAAa,EAAE,KAAC,WAAW,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QACxD,iBAAiB,EAAE,KAAC,WAAW,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QAC5D,iBAAiB,EAAE,KAAC,KAAK,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;QAEtD,mBAAmB;QACnB,OAAO,EAAE,KAAC,MAAM,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI;KAC9C,CAAC;IAEF,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC;AAC9C,CAAC,CAAC;AA6CF,6DAA6D;AAC7D,MAAM,iBAAiB,GAAG,CACxB,QAAsC,EACxB,EAAE;IAChB,IAAI,cAAc,IAAI,QAAQ,EAAE,CAAC;QAC/B,yBAAyB;QACzB,OAAO;YACL,EAAE,EAAE,QAAQ,CAAC,UAAU;YACvB,WAAW,EAAE,QAAQ,CAAC,YAAY;YAClC,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ,CAAC,YAAY;gBAC3B,SAAS,EAAE,QAAQ,CAAC,iBAAiB;gBACrC,MAAM,EAAE,QAAQ,CAAC,cAAc;gBAC/B,KAAK,EAAE,QAAQ,CAAC,aAAa;aAC9B;YACD,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;SAC5C,CAAC;IACJ,CAAC;IACD,yBAAyB;IACzB,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,yCAAyC;AACzC,MAAM,gBAAgB,GAAG,CAAC,IAAqB,EAAE,EAAE;IACjD,6CAA6C;IAC7C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,CACL,eAAK,SAAS,EAAC,mBAAmB,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,aAC5D,KAAC,oBAAoB,KAAG,EACxB,KAAC,QAAQ,IACP,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,EACtC,KAAK,EAAE,cAAc,GACrB,IACE,CACP,CAAC;IACJ,CAAC;IAED,mCAAmC;IACnC,MAAM,UAAU,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAElE,uBAAuB;IACvB,IAAI,CAAC;QACH,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAEpC,uEAAuE;QACvE,IACE,OAAO,MAAM,KAAK,QAAQ;YAC1B,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAClD,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,OAAO,CACL,eAAK,SAAS,EAAC,mBAAmB,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,aAC5D,KAAC,oBAAoB,KAAG,EACxB,KAAC,QAAQ,IACP,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,EACtC,KAAK,EAAE,cAAc,GACrB,IACE,CACP,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,EAAE,+BAA+B,CAAC,CAAC;QAEtE,oCAAoC;QACpC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAErC,OAAO,CACL,eAAK,SAAS,EAAC,mBAAmB,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,aAC5D,KAAC,oBAAoB,KAAG,EACxB,KAAC,QAAQ,IACP,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,EACtC,KAAK,EAAE,cAAc,GACrB,IACE,CACP,CAAC;QACJ,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;YAC3C,8CAA8C;YAC9C,OAAO,CACL,cAAK,SAAS,EAAC,iEAAiE,YAC7E,UAAU,GACP,CACP,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,6BAA6B;AAC7B,MAAM,eAAe,GAAG,CAAC,EACvB,KAAK,EACL,QAAQ,EACR,eAAe,GAAG,KAAK,GAKxB,EAAE,EAAE;IACH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;IAE9D,OAAO,CACL,eAAK,SAAS,EAAC,6CAA6C,aAC1D,eACE,SAAS,EAAC,wFAAwF,EAClG,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,aAExC,UAAU,CAAC,CAAC,CAAC,CACZ,KAAC,WAAW,IACV,IAAI,EAAE,EAAE,EACR,WAAW,EAAE,GAAG,EAChB,SAAS,EAAC,oCAAoC,GAC9C,CACH,CAAC,CAAC,CAAC,CACF,KAAC,YAAY,IACX,IAAI,EAAE,EAAE,EACR,WAAW,EAAE,GAAG,EAChB,SAAS,EAAC,oCAAoC,GAC9C,CACH,EACD,eAAM,SAAS,EAAC,6DAA6D,YAC1E,KAAK,GACD,IACH,EACL,UAAU,IAAI,CACb,cAAK,SAAS,EAAC,qCAAqC,YAAE,QAAQ,GAAO,CACtE,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,yDAAyD;AACzD,MAAM,eAAe,GAAG,CAAC,EACvB,QAAQ,EACR,MAAM,GAIP,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,IAAI,QAAQ,CAAC;IAErC,OAAO,CACL,eAAK,SAAS,EAAC,uHAAuH,aACpI,KAAC,eAAe,IAAC,KAAK,EAAC,OAAO,EAAC,eAAe,EAAE,CAAC,SAAS,YACxD,cAAK,SAAS,EAAC,kEAAkE,YAC9E,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,CAAC,GACjD,GACU,EAEjB,SAAS,IAAI,CACZ,KAAC,eAAe,IACd,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EACpC,eAAe,EAAE,IAAI,YAEpB,QAAQ,CAAC,CAAC,CAAC,CACV,eAAK,SAAS,EAAC,sFAAsF,aACnG,cAAK,SAAS,EAAC,sBAAsB,4BAAkB,EACvD,cAAK,SAAS,EAAC,cAAc,YAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAO,IAC1D,CACP,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,kEAAkE,YAC9E,gBAAgB,CAAC,MAAM,IAAI,EAAE,CAAC,GAC3B,CACP,GACe,CACnB,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,EAC9B,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,SAAS,GACY;IACrB,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,cAAK,SAAS,EAAC,eAAe,YAC3B,SAAS,CAAC,GAAG,CAAC,CAAC,gBAAgB,EAAE,SAAS,EAAE,EAAE;YAC7C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;YAC7C,MAAM,UAAU,GAAG,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC;YAC/C,MAAM,eAAe,GAAG,aAAa,IAAI,gBAAgB,CAAC;YAE1D,qEAAqE;YACrE,MAAM,YAAY,GAChB,gBAAgB,CAAC,gBAAgB,IAAI,QAAQ,CAAC,gBAAgB,CAAC;YAEjE,MAAM,WAAW,GAAG,eAAe;gBACjC,CAAC,CAAC,gBAAgB,CAAC,WAAW;gBAC9B,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;YAEhE,yCAAyC;YACzC,MAAM,iBAAiB,GAAG,YAAY,CAAC;YAEvC,mGAAmG;YACnG,2GAA2G;YAC3G,MAAM,oBAAoB,GACxB,CAAC,cAAc,IAAI,gBAAgB;gBACjC,CAAC,CAAC,gBAAgB,CAAC,YAAY;gBAC/B,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC/D,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC/D,MAAM,SAAS,GAAG,oBAAoB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YACtE,2EAA2E;YAC3E,MAAM,iBAAiB,GAAG,UAAU,IAAI,UAAU,CAAC;YAEnD,wCAAwC;YAExC,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC;YAErD,OAAO,CACL,0BACE,eACE,SAAS,EAAC,mJAAmJ,EAC7J,OAAO,EAAE,GAAG,EAAE;4BACZ,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gCACzB,GAAG,IAAI;gCACP,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC;6BAChC,CAAC,CAAC,CAAC;wBACN,CAAC,aAED,cAAK,SAAS,EAAC,8DAA8D,YAC1E,UAAU,CAAC,CAAC,CAAC,CACZ,KAAC,WAAW,IACV,IAAI,EAAE,EAAE,EACR,WAAW,EAAE,GAAG,EAChB,SAAS,EAAC,eAAe,GACzB,CACH,CAAC,CAAC,CAAC,CACF,KAAC,YAAY,IACX,IAAI,EAAE,EAAE,EACR,WAAW,EAAE,GAAG,EAChB,SAAS,EAAC,eAAe,GACzB,CACH,GACG,EACL,WAAW,CAAC,CAAC,CAAC,CACb,cACE,SAAS,EAAE,oCAAoC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,EAAE,YAE5G,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,GACxC,CACP,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAC5C,cAAK,SAAS,EAAC,iDAAiD,YAC7D,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,GACxC,CACP,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CACb,cAAK,SAAS,EAAC,2DAA2D,YACvE,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,GACxC,CACP,CAAC,CAAC,CAAC,CACF,KAAC,OAAO,IAAC,IAAI,EAAC,IAAI,GAAG,CACtB,EACD,cAAK,SAAS,EAAC,uCAAuC,YACpD,gBACE,SAAS,EAAE,iCAAiC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,aAG3F,CACC,oBAAoB;4CACpB,QAAQ,EAAE,QAAQ,EAAE,IAAI;4CACxB,WAAW,CACZ;6CACE,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;6CAC1B,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;6CAC1B,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,EACpC,QAAQ,CAAC,QAAQ,EAAE,KAAK,IAAI,CAC3B,eAAM,SAAS,EAAC,mBAAmB,wBAAe,CACnD,EACA,iBAAiB,IAAI,UAAU,IAAI,CAClC,gBAAM,SAAS,EAAC,oHAAoH,aAClI,oCAAc,iBACT,CACR,EACA,iBAAiB,IAAI,UAAU,IAAI,CAClC,gBAAM,SAAS,EAAC,gHAAgH,aAC9H,oCAAc,iBACT,CACR,EACA,iBAAiB,IAAI,SAAS,IAAI,CACjC,gBAAM,SAAS,EAAC,oHAAoH,aAClI,oCAAc,yBACT,CACR,IACI,GACH,IACF,EACL,UAAU,IAAI,CACb,KAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAI,CAC5D,EACA,CAAC,WAAW,IAAI,iBAAiB,IAAI,CAAC,iBAAiB,IAAI,CAC1D,eAAK,SAAS,EAAC,kHAAkH,aAC/H,cAAK,SAAS,EAAC,iDAAiD,YAC9D,eAAK,SAAS,EAAC,wBAAwB,aACrC,cACE,SAAS,EAAE,2CACT,iBAAiB,CAAC,SAAS,KAAK,MAAM;gDACpC,CAAC,CAAC,gCAAgC;gDAClC,CAAC,CAAC,iBAAiB,CAAC,SAAS,KAAK,QAAQ;oDACxC,CAAC,CAAC,oCAAoC;oDACtC,CAAC,CAAC,oCACR,EAAE,GACF,EACF,eAAK,SAAS,EAAC,QAAQ,aACrB,cAAK,SAAS,EAAC,4CAA4C,yCAErD,EACN,cAAK,SAAS,EAAC,uCAAuC,YACnD,iBAAiB,CAAC,OAAO,GACtB,EACL,iBAAiB,CAAC,SAAS,IAAI,CAC9B,eACE,SAAS,EAAE,0FACT,iBAAiB,CAAC,SAAS,KAAK,MAAM;wDACpC,CAAC,CAAC,yBAAyB;wDAC3B,CAAC,CAAC,iBAAiB,CAAC,SAAS,KAAK,QAAQ;4DACxC,CAAC,CAAC,6BAA6B;4DAC/B,CAAC,CAAC,6BACR,EAAE,aAEF,eAAM,SAAS,EAAC,aAAa,sBAAa,EAC1C,eAAM,SAAS,EAAC,WAAW,YACxB,iBAAiB,CAAC,SAAS,GACvB,IACH,CACP,IACG,IACF,GACF,EACN,eAAK,SAAS,EAAC,qDAAqD,aAClE,KAAC,MAAM,IACL,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,WAAW,EACnB,OAAO,EAAE,KAAK,IAAI,EAAE;4CAClB,gGAAgG;4CAChG,MAAM,eAAe,GAAG,eAAe;gDACrC,CAAC,CAAC,gBAAgB,CAAC,WAAW;oDAC5B,gBAAgB,CAAC,SAAS;gDAC5B,CAAC,CAAC,SAAS,CAAC;4CACd,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE;gDACrC,OAAO,EAAG,MAAc,EAAE,cAAc;gDACxC,SAAS,EAAE,eAAe;gDAC1B,UAAU,EAAE,QAAQ,CAAC,EAAE;6CACxB,CAAC,CAAC;4CACH,IAAI,CAAC;gDACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;oDAClC,OAAO,EAAG,MAAc,EAAE,cAAc;oDACxC,SAAS,EAAE,eAAe;oDAC1B,UAAU,EAAE,QAAQ,CAAC,EAAE;iDACxB,CAAC,CAAC;gDACH,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;gDAC5C,MAAM,EAAE,GAAG,IAAI,WAAW,CACxB,4BAA4B,EAC5B;oDACE,MAAM,EAAE;wDACN,SAAS,EAAE,eAAe;wDAC1B,UAAU,EAAE,QAAQ,CAAC,EAAE;wDACvB,QAAQ,EAAE,KAAK;qDAChB;iDACK,CACT,CAAC;gDACF,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;4CAC3B,CAAC;4CAAC,OAAO,KAAK,EAAE,CAAC;gDACf,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;4CAC3C,CAAC;wCACH,CAAC,uBAGM,EACT,KAAC,MAAM,IACL,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,KAAK,IAAI,EAAE;4CAClB,gGAAgG;4CAChG,MAAM,eAAe,GAAG,eAAe;gDACrC,CAAC,CAAC,gBAAgB,CAAC,WAAW;oDAC5B,gBAAgB,CAAC,SAAS;gDAC5B,CAAC,CAAC,SAAS,CAAC;4CACd,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE;gDACpC,OAAO,EAAG,MAAc,EAAE,cAAc;gDACxC,SAAS,EAAE,eAAe;gDAC1B,UAAU,EAAE,QAAQ,CAAC,EAAE;6CACxB,CAAC,CAAC;4CACH,IAAI,CAAC;gDACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;oDACnC,OAAO,EAAG,MAAc,EAAE,cAAc;oDACxC,SAAS,EAAE,eAAe;oDAC1B,UAAU,EAAE,QAAQ,CAAC,EAAE;iDACxB,CAAC,CAAC;gDACH,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;gDAC7C,MAAM,EAAE,GAAG,IAAI,WAAW,CACxB,4BAA4B,EAC5B;oDACE,MAAM,EAAE;wDACN,SAAS,EAAE,eAAe;wDAC1B,UAAU,EAAE,QAAQ,CAAC,EAAE;wDACvB,QAAQ,EAAE,IAAI;qDACf;iDACK,CACT,CAAC;gDACF,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;4CAC3B,CAAC;4CAAC,OAAO,KAAU,EAAE,CAAC;gDACpB,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;gDAC1C,KAAK,CACH,sBAAsB,KAAK,EAAE,OAAO,IAAI,eAAe,EAAE,CAC1D,CAAC;4CACJ,CAAC;wCACH,CAAC,wBAGM,IACL,IACF,CACP,KAzMO,SAAS,CA0Mb,CACP,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { Agent } from "../services/agentService";
2
+ export interface AgentStatusSummary {
3
+ total: number;
4
+ running: number;
5
+ waitingForApproval: number;
6
+ hasActivity: boolean;
7
+ agents: Agent[];
8
+ }
9
+ /**
10
+ * Hook to track the status of all active agents
11
+ * Uses WebSocket messages for real-time updates instead of polling
12
+ */
13
+ export declare function useAgentStatus(): AgentStatusSummary;
@@ -0,0 +1,101 @@
1
+ import { useState, useEffect, useCallback } from "react";
2
+ import { getActiveAgents } from "../services/agentService";
3
+ import { useEditContext } from "../client/editContext";
4
+ /**
5
+ * Hook to track the status of all active agents
6
+ * Uses WebSocket messages for real-time updates instead of polling
7
+ */
8
+ export function useAgentStatus() {
9
+ const [agents, setAgents] = useState([]);
10
+ const editContext = useEditContext();
11
+ const fetchAgentStatus = useCallback(async () => {
12
+ try {
13
+ const activeAgents = await getActiveAgents();
14
+ // Filter out completed, error, and closed agents to match WebSocket behavior
15
+ // Note: Backend sends status as both enum numbers (0-5) and strings
16
+ // Enum: New=0, Running=1, WaitingForApproval=2, Completed=3, Error=4, Closed=5
17
+ const filteredAgents = (activeAgents || []).filter((agent) => {
18
+ const status = agent.status;
19
+ // Handle numeric status (from initial fetch)
20
+ if (typeof status === "number") {
21
+ return status !== 3 && status !== 4 && status !== 5; // Not Completed, Error, or Closed
22
+ }
23
+ // Handle string status (from WebSocket updates)
24
+ return status !== "completed" && status !== "error" && status !== "closed";
25
+ });
26
+ setAgents(filteredAgents);
27
+ }
28
+ catch (error) {
29
+ console.error("Failed to fetch agent status:", error);
30
+ // Don't update agents on error to keep showing last known state
31
+ }
32
+ }, []);
33
+ useEffect(() => {
34
+ // Initial fetch to populate state
35
+ fetchAgentStatus();
36
+ }, [fetchAgentStatus]);
37
+ useEffect(() => {
38
+ if (!editContext?.addSocketMessageListener)
39
+ return;
40
+ // Subscribe to WebSocket messages for agent status updates
41
+ const handleMessage = (message) => {
42
+ if (message.type === "agent-status-changed") {
43
+ // Update agent status in real-time from WebSocket message
44
+ const { agentId, status, name } = message.payload || {};
45
+ if (!agentId)
46
+ return;
47
+ setAgents((prevAgents) => {
48
+ // Check if agent exists in current list
49
+ const existingIndex = prevAgents.findIndex((a) => a.id === agentId);
50
+ if (existingIndex !== -1) {
51
+ // Update existing agent status
52
+ const updatedAgents = [...prevAgents];
53
+ const existingAgent = updatedAgents[existingIndex];
54
+ updatedAgents[existingIndex] = {
55
+ id: existingAgent.id,
56
+ name: existingAgent.name,
57
+ userId: existingAgent.userId,
58
+ updatedDate: existingAgent.updatedDate,
59
+ status,
60
+ };
61
+ // Remove agent from list if status is completed, error, or closed
62
+ if (status === "completed" || status === "error" || status === "closed") {
63
+ return updatedAgents.filter((a) => a.id !== agentId);
64
+ }
65
+ return updatedAgents;
66
+ }
67
+ else if (status === "running" || status === "waitingForApproval") {
68
+ // Add new agent to the list if it's in an active state
69
+ const newAgent = {
70
+ id: agentId,
71
+ name: name || "Agent",
72
+ userId: "",
73
+ status,
74
+ updatedDate: new Date().toISOString(),
75
+ };
76
+ return [...prevAgents, newAgent];
77
+ }
78
+ return prevAgents;
79
+ });
80
+ }
81
+ };
82
+ // Register the listener and get cleanup function
83
+ const unsubscribe = editContext.addSocketMessageListener(handleMessage);
84
+ // Cleanup
85
+ return () => {
86
+ unsubscribe();
87
+ };
88
+ }, [editContext]);
89
+ // Calculate summary
90
+ // Handle both numeric (1) and string ("running") status values
91
+ const running = agents.filter((a) => a.status === "running" || a.status === 1).length;
92
+ const waitingForApproval = agents.filter((a) => a.status === "waitingForApproval" || a.status === 2).length;
93
+ return {
94
+ total: agents.length,
95
+ running,
96
+ waitingForApproval,
97
+ hasActivity: agents.length > 0,
98
+ agents,
99
+ };
100
+ }
101
+ //# sourceMappingURL=useAgentStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAgentStatus.js","sourceRoot":"","sources":["../../../src/editor/ai/useAgentStatus.ts"],"names":[],"mappings":"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"}
@@ -528,14 +528,14 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
528
528
  const me = activeSessions.find((s) => s.sessionId === sessionId);
529
529
  const item = me?.item;
530
530
  const acknowledged = !!item &&
531
- item.id === currentItemDescriptor.id &&
532
- item.language === currentItemDescriptor.language &&
533
- item.version === currentItemDescriptor.version;
531
+ item.id === contentEditorItem?.id &&
532
+ item.language === contentEditorItem?.language &&
533
+ item.version === contentEditorItem?.version;
534
534
  if (acknowledged)
535
535
  setIsClientInfoAcknowledged(true);
536
536
  }
537
537
  catch { }
538
- }, [activeSessions, currentItemDescriptor, sessionId]);
538
+ }, [activeSessions, contentEditorItem, sessionId]);
539
539
  const loadComments = useCallback(async () => {
540
540
  if (!currentItemDescriptor)
541
541
  return;
@@ -1321,6 +1321,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1321
1321
  //dialogContext,
1322
1322
  });
1323
1323
  }
1324
+ console.log("Field action before setActiveFieldActions");
1324
1325
  if (actionButton.action) {
1325
1326
  setActiveFieldActions((prevFieldActions) => {
1326
1327
  const isSameField = (x) => x.field.fieldId == fieldDescriptor.fieldId &&
@@ -1343,16 +1344,30 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1343
1344
  mergedOp,
1344
1345
  ];
1345
1346
  });
1347
+ console.log("Field action after setActiveFieldActions");
1346
1348
  await executeFieldServerAction(fieldDescriptor.item, fieldDescriptor.fieldId, contentEditorItem.descriptor, actionButton.action, editContext.sessionId, selectedRange?.text || "", parameters || {}, (data) => {
1347
- op.message = data.responseText;
1348
- setActiveFieldActions((prevFieldActions) => [
1349
- ...prevFieldActions,
1350
- ]);
1349
+ console.log("Field action progress", data);
1350
+ // Update progress message if available
1351
+ if (data?.responseText) {
1352
+ op.message = data.responseText;
1353
+ setActiveFieldActions((prevFieldActions) => [
1354
+ ...prevFieldActions,
1355
+ ]);
1356
+ }
1351
1357
  });
1358
+ console.log("Field action completed", op);
1352
1359
  itemsRepository.refreshItems([fieldDescriptor.item]);
1353
1360
  // Only mark as success if no websocket error has been reported
1354
1361
  if (op.state === "running") {
1355
1362
  op.state = "success";
1363
+ // Auto-dismiss successful actions after a brief delay
1364
+ setTimeout(() => {
1365
+ setActiveFieldActions((prevFieldActions) => prevFieldActions.filter((x) => !(x.field.fieldId === fieldDescriptor.fieldId &&
1366
+ x.field.item.id === fieldDescriptor.item.id &&
1367
+ x.field.item.language === fieldDescriptor.item.language &&
1368
+ x.field.item.version === fieldDescriptor.item.version &&
1369
+ x.state === "success")));
1370
+ }, 500);
1356
1371
  }
1357
1372
  requestRefresh("immediate");
1358
1373
  }