@alpaca-editor/core 1.0.4026 → 1.0.4030

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 (224) hide show
  1. package/dist/components/ActionButton.js +2 -2
  2. package/dist/components/ActionButton.js.map +1 -1
  3. package/dist/components/SimpleLanguageSelector.js +3 -1
  4. package/dist/components/SimpleLanguageSelector.js.map +1 -1
  5. package/dist/components/ui/button.d.ts +1 -1
  6. package/dist/config/config.js +1 -1
  7. package/dist/config/config.js.map +1 -1
  8. package/dist/config/types.d.ts +1 -1
  9. package/dist/editor/ContextMenu.js +0 -1
  10. package/dist/editor/ContextMenu.js.map +1 -1
  11. package/dist/editor/Editor.js +9 -3
  12. package/dist/editor/Editor.js.map +1 -1
  13. package/dist/editor/FieldListField.js +16 -24
  14. package/dist/editor/FieldListField.js.map +1 -1
  15. package/dist/editor/ImageEditButton.js +1 -1
  16. package/dist/editor/ImageEditButton.js.map +1 -1
  17. package/dist/editor/ImageEditor.js +1 -1
  18. package/dist/editor/ImageEditor.js.map +1 -1
  19. package/dist/editor/MainLayout.js +2 -2
  20. package/dist/editor/MainLayout.js.map +1 -1
  21. package/dist/editor/Terminal.js +1 -1
  22. package/dist/editor/Terminal.js.map +1 -1
  23. package/dist/editor/Titlebar.js +0 -1
  24. package/dist/editor/Titlebar.js.map +1 -1
  25. package/dist/editor/ai/AgentCostDisplay.d.ts +26 -0
  26. package/dist/editor/ai/AgentCostDisplay.js +65 -0
  27. package/dist/editor/ai/AgentCostDisplay.js.map +1 -0
  28. package/dist/editor/ai/Agents.js +83 -29
  29. package/dist/editor/ai/Agents.js.map +1 -1
  30. package/dist/editor/ai/AiPromptPopover.d.ts +7 -0
  31. package/dist/editor/ai/AiPromptPopover.js +111 -0
  32. package/dist/editor/ai/AiPromptPopover.js.map +1 -0
  33. package/dist/editor/ai/AiResponseMessage.d.ts +1 -0
  34. package/dist/editor/ai/AiResponseMessage.js +104 -18
  35. package/dist/editor/ai/AiResponseMessage.js.map +1 -1
  36. package/dist/editor/ai/AiTerminal.d.ts +18 -2
  37. package/dist/editor/ai/AiTerminal.js +423 -63
  38. package/dist/editor/ai/AiTerminal.js.map +1 -1
  39. package/dist/editor/ai/EditorAiTerminal.d.ts +2 -1
  40. package/dist/editor/ai/EditorAiTerminal.js +2 -2
  41. package/dist/editor/ai/EditorAiTerminal.js.map +1 -1
  42. package/dist/editor/ai/editorAiContext.d.ts +0 -1
  43. package/dist/editor/ai/editorAiContext.js +0 -2
  44. package/dist/editor/ai/editorAiContext.js.map +1 -1
  45. package/dist/editor/client/EditorClient.d.ts +3 -2
  46. package/dist/editor/client/EditorClient.js +326 -68
  47. package/dist/editor/client/EditorClient.js.map +1 -1
  48. package/dist/editor/client/editContext.d.ts +6 -4
  49. package/dist/editor/client/editContext.js.map +1 -1
  50. package/dist/editor/client/fieldModificationStore.d.ts +19 -0
  51. package/dist/editor/client/fieldModificationStore.js +125 -0
  52. package/dist/editor/client/fieldModificationStore.js.map +1 -0
  53. package/dist/editor/client/itemsRepository.d.ts +1 -1
  54. package/dist/editor/client/itemsRepository.js +38 -28
  55. package/dist/editor/client/itemsRepository.js.map +1 -1
  56. package/dist/editor/client/operations.d.ts +1 -0
  57. package/dist/editor/client/operations.js +39 -31
  58. package/dist/editor/client/operations.js.map +1 -1
  59. package/dist/editor/commands/componentCommands.js +5 -3
  60. package/dist/editor/commands/componentCommands.js.map +1 -1
  61. package/dist/editor/commands/itemCommands.js.map +1 -1
  62. package/dist/editor/component-designer/aiContext.js +0 -2
  63. package/dist/editor/component-designer/aiContext.js.map +1 -1
  64. package/dist/editor/field-types/DropLinkEditor.js +1 -1
  65. package/dist/editor/field-types/DropLinkEditor.js.map +1 -1
  66. package/dist/editor/field-types/MultiLineText.js +5 -7
  67. package/dist/editor/field-types/MultiLineText.js.map +1 -1
  68. package/dist/editor/field-types/RichTextEditorComponent.js +5 -7
  69. package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -1
  70. package/dist/editor/field-types/SingleLineText.js +5 -7
  71. package/dist/editor/field-types/SingleLineText.js.map +1 -1
  72. package/dist/editor/hooks/useEditorSettings.d.ts +17 -0
  73. package/dist/editor/hooks/useEditorSettings.js +61 -0
  74. package/dist/editor/hooks/useEditorSettings.js.map +1 -0
  75. package/dist/editor/menubar/ItemActionsMenu.js +2 -2
  76. package/dist/editor/menubar/ItemActionsMenu.js.map +1 -1
  77. package/dist/editor/menubar/PageSelector.js +1 -1
  78. package/dist/editor/menubar/PageSelector.js.map +1 -1
  79. package/dist/editor/menubar/toolbar-sections/EditControls.js +1 -1
  80. package/dist/editor/menubar/toolbar-sections/EditControls.js.map +1 -1
  81. package/dist/editor/menubar/toolbar-sections/InsertControls.js +1 -1
  82. package/dist/editor/menubar/toolbar-sections/InsertControls.js.map +1 -1
  83. package/dist/editor/menubar/toolbar-sections/UtilityControls.js +1 -1
  84. package/dist/editor/menubar/toolbar-sections/UtilityControls.js.map +1 -1
  85. package/dist/editor/menubar/toolbar-sections/ViewportControls.js +1 -1
  86. package/dist/editor/menubar/toolbar-sections/ViewportControls.js.map +1 -1
  87. package/dist/editor/page-editor-chrome/FieldEditedIndicators.js +4 -3
  88. package/dist/editor/page-editor-chrome/FieldEditedIndicators.js.map +1 -1
  89. package/dist/editor/page-editor-chrome/FrameMenu.js +9 -1
  90. package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
  91. package/dist/editor/page-editor-chrome/useInlineAICompletion.js +0 -1
  92. package/dist/editor/page-editor-chrome/useInlineAICompletion.js.map +1 -1
  93. package/dist/editor/page-viewer/EditorForm.js +1 -1
  94. package/dist/editor/page-viewer/EditorForm.js.map +1 -1
  95. package/dist/editor/page-viewer/PageViewer.js +9 -8
  96. package/dist/editor/page-viewer/PageViewer.js.map +1 -1
  97. package/dist/editor/page-viewer/PageViewerFrame.js +7 -1
  98. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  99. package/dist/editor/page-viewer/pageViewContext.js +40 -6
  100. package/dist/editor/page-viewer/pageViewContext.js.map +1 -1
  101. package/dist/editor/reviews/Comment.js +7 -6
  102. package/dist/editor/reviews/Comment.js.map +1 -1
  103. package/dist/editor/services/agentService.d.ts +84 -12
  104. package/dist/editor/services/agentService.js +256 -15
  105. package/dist/editor/services/agentService.js.map +1 -1
  106. package/dist/editor/services/aiService.d.ts +18 -3
  107. package/dist/editor/services/aiService.js +5 -3
  108. package/dist/editor/services/aiService.js.map +1 -1
  109. package/dist/editor/services/contextService.js +0 -1
  110. package/dist/editor/services/contextService.js.map +1 -1
  111. package/dist/editor/services/systemService.d.ts +2 -1
  112. package/dist/editor/services/systemService.js +3 -0
  113. package/dist/editor/services/systemService.js.map +1 -1
  114. package/dist/editor/sidebar/ComponentPalette.js +1 -1
  115. package/dist/editor/sidebar/ComponentPalette.js.map +1 -1
  116. package/dist/editor/sidebar/EditHistory.js +2 -2
  117. package/dist/editor/sidebar/EditHistory.js.map +1 -1
  118. package/dist/editor/sidebar/GraphQL.d.ts +1 -0
  119. package/dist/editor/sidebar/GraphQL.js +8 -2
  120. package/dist/editor/sidebar/GraphQL.js.map +1 -1
  121. package/dist/editor/sidebar/MainContentTree.js +1 -1
  122. package/dist/editor/sidebar/MainContentTree.js.map +1 -1
  123. package/dist/editor/sidebar/SEOInfo.js +1 -1
  124. package/dist/editor/sidebar/SEOInfo.js.map +1 -1
  125. package/dist/editor/sidebar/ViewSelector.d.ts +4 -1
  126. package/dist/editor/sidebar/ViewSelector.js +64 -48
  127. package/dist/editor/sidebar/ViewSelector.js.map +1 -1
  128. package/dist/editor/ui/PerfectTree.js +2 -11
  129. package/dist/editor/ui/PerfectTree.js.map +1 -1
  130. package/dist/editor/ui/SimpleIconButton.d.ts +2 -0
  131. package/dist/editor/ui/SimpleIconButton.js +8 -4
  132. package/dist/editor/ui/SimpleIconButton.js.map +1 -1
  133. package/dist/index.d.ts +2 -0
  134. package/dist/index.js +2 -0
  135. package/dist/index.js.map +1 -1
  136. package/dist/page-wizard/steps/CollectStep.js +1 -1
  137. package/dist/page-wizard/steps/CollectStep.js.map +1 -1
  138. package/dist/page-wizard/steps/StructureStep.js +1 -1
  139. package/dist/page-wizard/steps/StructureStep.js.map +1 -1
  140. package/dist/page-wizard/steps/TranslateStep.js +233 -18
  141. package/dist/page-wizard/steps/TranslateStep.js.map +1 -1
  142. package/dist/revision.d.ts +2 -2
  143. package/dist/revision.js +2 -2
  144. package/dist/splash-screen/RecentPages.js +1 -13
  145. package/dist/splash-screen/RecentPages.js.map +1 -1
  146. package/dist/splash-screen/SplashScreen.js +1 -1
  147. package/dist/splash-screen/SplashScreen.js.map +1 -1
  148. package/dist/styles.css +88 -3
  149. package/dist/types.d.ts +6 -0
  150. package/package.json +2 -2
  151. package/src/components/ActionButton.tsx +3 -2
  152. package/src/components/SimpleLanguageSelector.tsx +6 -1
  153. package/src/config/config.tsx +1 -1
  154. package/src/config/types.ts +1 -1
  155. package/src/editor/ContextMenu.tsx +0 -3
  156. package/src/editor/Editor.tsx +11 -3
  157. package/src/editor/FieldListField.tsx +22 -31
  158. package/src/editor/ImageEditButton.tsx +1 -0
  159. package/src/editor/ImageEditor.tsx +1 -0
  160. package/src/editor/MainLayout.tsx +2 -2
  161. package/src/editor/Terminal.tsx +1 -1
  162. package/src/editor/Titlebar.tsx +0 -2
  163. package/src/editor/ai/AgentCostDisplay.tsx +237 -0
  164. package/src/editor/ai/Agents.tsx +147 -65
  165. package/src/editor/ai/AiPromptPopover.tsx +209 -0
  166. package/src/editor/ai/AiResponseMessage.tsx +232 -45
  167. package/src/editor/ai/AiTerminal.tsx +559 -88
  168. package/src/editor/ai/EditorAiTerminal.tsx +3 -0
  169. package/src/editor/ai/editorAiContext.ts +0 -3
  170. package/src/editor/client/EditorClient.tsx +409 -117
  171. package/src/editor/client/editContext.ts +7 -5
  172. package/src/editor/client/fieldModificationStore.ts +196 -0
  173. package/src/editor/client/itemsRepository.ts +41 -31
  174. package/src/editor/client/operations.ts +95 -76
  175. package/src/editor/commands/componentCommands.tsx +9 -3
  176. package/src/editor/commands/itemCommands.tsx +0 -1
  177. package/src/editor/component-designer/aiContext.ts +0 -2
  178. package/src/editor/field-types/DropLinkEditor.tsx +1 -1
  179. package/src/editor/field-types/MultiLineText.tsx +9 -9
  180. package/src/editor/field-types/RichTextEditorComponent.tsx +8 -8
  181. package/src/editor/field-types/SingleLineText.tsx +9 -9
  182. package/src/editor/hooks/useEditorSettings.ts +68 -0
  183. package/src/editor/menubar/ItemActionsMenu.tsx +3 -2
  184. package/src/editor/menubar/PageSelector.tsx +1 -1
  185. package/src/editor/menubar/toolbar-sections/EditControls.tsx +1 -0
  186. package/src/editor/menubar/toolbar-sections/InsertControls.tsx +1 -0
  187. package/src/editor/menubar/toolbar-sections/UtilityControls.tsx +2 -0
  188. package/src/editor/menubar/toolbar-sections/ViewportControls.tsx +2 -0
  189. package/src/editor/page-editor-chrome/FieldEditedIndicators.tsx +4 -3
  190. package/src/editor/page-editor-chrome/FrameMenu.tsx +10 -1
  191. package/src/editor/page-editor-chrome/useInlineAICompletion.tsx +0 -1
  192. package/src/editor/page-viewer/EditorForm.tsx +1 -0
  193. package/src/editor/page-viewer/PageViewer.tsx +9 -8
  194. package/src/editor/page-viewer/PageViewerFrame.tsx +7 -1
  195. package/src/editor/page-viewer/pageViewContext.ts +40 -5
  196. package/src/editor/reviews/Comment.tsx +7 -7
  197. package/src/editor/services/agentService.ts +405 -31
  198. package/src/editor/services/aiService.ts +24 -5
  199. package/src/editor/services/contextService.ts +0 -1
  200. package/src/editor/services/systemService.ts +7 -1
  201. package/src/editor/sidebar/ComponentPalette.tsx +4 -1
  202. package/src/editor/sidebar/EditHistory.tsx +2 -0
  203. package/src/editor/sidebar/GraphQL.tsx +19 -7
  204. package/src/editor/sidebar/MainContentTree.tsx +1 -1
  205. package/src/editor/sidebar/SEOInfo.tsx +1 -1
  206. package/src/editor/sidebar/ViewSelector.tsx +80 -64
  207. package/src/editor/ui/PerfectTree.tsx +2 -18
  208. package/src/editor/ui/SimpleIconButton.tsx +56 -38
  209. package/src/index.ts +2 -0
  210. package/src/page-wizard/steps/CollectStep.tsx +0 -2
  211. package/src/page-wizard/steps/StructureStep.tsx +3 -0
  212. package/src/page-wizard/steps/TranslateStep.tsx +473 -62
  213. package/src/revision.ts +2 -2
  214. package/src/splash-screen/RecentPages.tsx +0 -14
  215. package/src/splash-screen/SplashScreen.tsx +3 -2
  216. package/src/types.ts +7 -0
  217. package/dist/editor/ai/AiPopup.d.ts +0 -10
  218. package/dist/editor/ai/AiPopup.js +0 -23
  219. package/dist/editor/ai/AiPopup.js.map +0 -1
  220. package/dist/editor/ai/AiToolCall.d.ts +0 -5
  221. package/dist/editor/ai/AiToolCall.js +0 -28
  222. package/dist/editor/ai/AiToolCall.js.map +0 -1
  223. package/src/editor/ai/AiPopup.tsx +0 -59
  224. package/src/editor/ai/AiToolCall.tsx +0 -71
@@ -1,8 +1,48 @@
1
- import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState, useEffect } from "react";
3
+ import { JsonView, defaultStyles } from "react-json-view-lite";
4
+ import "react-json-view-lite/dist/index.css";
3
5
  import { useEditContext } from "../client/editContext";
4
- import { Popover, PopoverContent, PopoverTrigger } from "../../components/ui/popover";
6
+ import { Popover, PopoverContent, PopoverTrigger, } from "../../components/ui/popover";
5
7
  import { SimpleTabs } from "../ui/SimpleTabs";
8
+ import { Spinner } from "../ui/Spinner";
9
+ import { SimpleIconButton } from "../ui/SimpleIconButton";
10
+ import { X, FileText, Search, Code, FolderOpen, FileSearch, Trash2, Globe, Brain, CheckSquare, Edit, FileEdit, Wrench, } from "lucide-react";
11
+ // Function to get the appropriate icon for each tool
12
+ const getToolIcon = (toolName) => {
13
+ const iconMap = {
14
+ // Content operations
15
+ "get-content": _jsx(FileText, { strokeWidth: 1, size: 14 }),
16
+ "edit-field": _jsx(Edit, { strokeWidth: 1, size: 14 }),
17
+ "suggest-field-edit": _jsx(Edit, { strokeWidth: 1, size: 14 }),
18
+ // Item operations
19
+ "create-item": _jsx(FileEdit, { strokeWidth: 1, size: 14 }),
20
+ "load-item": _jsx(FileText, { strokeWidth: 1, size: 14 }),
21
+ "get-items": _jsx(FolderOpen, { strokeWidth: 1, size: 14 }),
22
+ "get-children": _jsx(FolderOpen, { strokeWidth: 1, size: 14 }),
23
+ "get-insertoptions": _jsx(FolderOpen, { strokeWidth: 1, size: 14 }),
24
+ // Component operations
25
+ "add-component": _jsx(Code, { strokeWidth: 1, size: 14 }),
26
+ "remove-component": _jsx(Trash2, { strokeWidth: 1, size: 14 }),
27
+ "move-components": _jsx(Edit, { strokeWidth: 1, size: 14 }),
28
+ "get-placeholders": _jsx(Code, { strokeWidth: 1, size: 14 }),
29
+ "get-component-props-and-placeholders": _jsx(Code, { strokeWidth: 1, size: 14 }),
30
+ // Search operations
31
+ "search-content": _jsx(Search, { strokeWidth: 1, size: 14 }),
32
+ "search-images": _jsx(FileSearch, { strokeWidth: 1, size: 14 }),
33
+ "google-search": _jsx(Globe, { strokeWidth: 1, size: 14 }),
34
+ // Image operations
35
+ "edit-image": _jsx(FileEdit, { strokeWidth: 1, size: 14 }),
36
+ "get-picture-description": _jsx(FileText, { strokeWidth: 1, size: 14 }),
37
+ // Comments and suggestions
38
+ "add-comment": _jsx(CheckSquare, { strokeWidth: 1, size: 14 }),
39
+ "get-comments": _jsx(CheckSquare, { strokeWidth: 1, size: 14 }),
40
+ "get-suggestions": _jsx(Brain, { strokeWidth: 1, size: 14 }),
41
+ // Default fallback
42
+ default: _jsx(Wrench, { strokeWidth: 1, size: 14 }),
43
+ };
44
+ return iconMap[toolName] || iconMap.default;
45
+ };
6
46
  export function AiResponseMessage({ messages, finished, editOperations, }) {
7
47
  const editContext = useEditContext();
8
48
  if (!editContext)
@@ -11,6 +51,8 @@ export function AiResponseMessage({ messages, finished, editOperations, }) {
11
51
  const [changesRejected, setChangesRejected] = useState(undefined);
12
52
  // Store tool calls to preserve them during streaming
13
53
  const [preservedToolCalls, setPreservedToolCalls] = useState({});
54
+ // Track popover open state for each tool call
55
+ const [openPopovers, setOpenPopovers] = useState({});
14
56
  // Update preserved tool calls when messages change
15
57
  useEffect(() => {
16
58
  const newPreservedToolCalls = { ...preservedToolCalls };
@@ -28,12 +70,42 @@ export function AiResponseMessage({ messages, finished, editOperations, }) {
28
70
  !editContext.editHistory[index]?.canUndo) === undefined;
29
71
  // Helper function to render JSON or text
30
72
  const renderJsonOrText = (json) => {
73
+ // If it's already an object, use it directly
74
+ if (typeof json === "object" && json !== null) {
75
+ return (_jsx("div", { className: "font-mono text-xs", style: { fontSize: "12px" }, children: _jsx(JsonView, { data: json, shouldExpandNode: (level) => level < 2, style: defaultStyles }) }));
76
+ }
77
+ // Convert to string if not already
78
+ const jsonString = typeof json === "string" ? json : String(json);
79
+ // Try to parse as JSON
31
80
  try {
32
- const parsed = JSON.parse(json);
33
- return (_jsx("div", { className: "font-mono text-xs whitespace-pre-wrap", children: _jsx("pre", { className: "whitespace-pre-wrap break-words", children: JSON.stringify(parsed, null, 2) }) }));
81
+ let parsed = JSON.parse(jsonString);
82
+ // If the result is still a string that looks like JSON, parse it again
83
+ if (typeof parsed === "string" &&
84
+ (parsed.startsWith("{") || parsed.startsWith("["))) {
85
+ try {
86
+ parsed = JSON.parse(parsed);
87
+ }
88
+ catch (e2) {
89
+ console.log("Second parse failed, using first result");
90
+ }
91
+ }
92
+ return (_jsx("div", { className: "font-mono text-xs", style: { fontSize: "12px" }, children: _jsx(JsonView, { data: parsed, shouldExpandNode: (level) => level < 2, style: defaultStyles }) }));
34
93
  }
35
94
  catch (e) {
36
- return _jsx("div", { className: "whitespace-pre-wrap font-mono text-xs break-words", children: json });
95
+ console.log("JSON parse failed:", e, "Trying to handle as string...");
96
+ // Try to handle double-escaped JSON
97
+ try {
98
+ const unescaped = jsonString
99
+ .replace(/\\"/g, '"')
100
+ .replace(/\\\\/g, "\\");
101
+ const parsed = JSON.parse(unescaped);
102
+ return (_jsx("div", { className: "font-mono text-xs", style: { fontSize: "12px" }, children: _jsx(JsonView, { data: parsed, shouldExpandNode: (level) => level < 2, style: defaultStyles }) }));
103
+ }
104
+ catch (e2) {
105
+ console.log("Unescaping also failed:", e2);
106
+ // If all parsing fails, display as plain text
107
+ return (_jsx("div", { className: "font-mono text-xs break-words whitespace-pre-wrap", children: jsonString }));
108
+ }
37
109
  }
38
110
  };
39
111
  // Helper function to create tabs for a tool call
@@ -42,41 +114,55 @@ export function AiResponseMessage({ messages, finished, editOperations, }) {
42
114
  {
43
115
  id: `input-${toolCall.id}`,
44
116
  label: "Input",
45
- content: (_jsxs("div", { className: "max-h-96 overflow-auto p-2", children: [_jsx("div", { className: "text-sm font-semibold text-gray-700 mb-1", children: "Arguments:" }), _jsx("div", { className: "text-xs", children: renderJsonOrText(toolCall.function.arguments) })] })),
117
+ content: (_jsx("div", { className: "relative h-full w-full p-2", children: _jsx("div", { className: "absolute inset-2 overflow-auto", children: _jsx("div", { className: "text-xs", children: renderJsonOrText(toolCall.function.arguments) }) }) })),
46
118
  },
47
119
  ];
48
120
  if (result) {
49
121
  tabs.push({
50
122
  id: `output-${toolCall.id}`,
51
123
  label: "Output",
52
- content: (_jsxs("div", { className: "max-h-96 overflow-auto p-2", children: [_jsx("div", { className: "text-sm font-semibold text-gray-700 mb-1", children: "Result:" }), _jsx("div", { className: "text-xs", children: renderJsonOrText(result.content || "") })] })),
124
+ content: (_jsx("div", { className: "relative h-full w-full p-2", children: _jsx("div", { className: "absolute inset-2 overflow-y-auto", children: _jsx("div", { className: "text-xs", children: renderJsonOrText(result || "") }) }) })),
53
125
  });
54
126
  }
55
127
  return tabs;
56
128
  };
57
129
  // Helper function to create tool call popover content
58
- const ToolCallPopover = ({ toolCall, result }) => {
130
+ const ToolCallPopover = ({ toolCall, result, onClose, }) => {
59
131
  const [activeTab, setActiveTab] = useState(0);
60
- const tabs = createToolCallTabs(toolCall, result);
61
- return (_jsxs("div", { className: "w-96", children: [_jsx("div", { className: "mb-3 pb-2 border-b border-gray-200", children: _jsx("div", { className: "text-sm font-semibold text-gray-800", children: toolCall.displayName || toolCall.function.name }) }), _jsx(SimpleTabs, { tabs: tabs, activeTab: activeTab, setActiveTab: setActiveTab, className: "border-b border-gray-200 mb-3", tabClassName: "text-xs" })] }));
132
+ const tabs = createToolCallTabs(toolCall, result || "");
133
+ return (_jsxs("div", { className: "h-[400px]", 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" })] }));
62
134
  };
63
135
  return (_jsxs("div", { children: [messages
64
- .filter((x) => x.role !== "tool")
136
+ .filter((x) => x.role !== "tool" && x.role !== "user")
65
137
  .map((message, filteredIndex) => {
66
138
  // Find the original index of this message in the unfiltered array
67
- const originalIndex = messages.findIndex(m => m.id === message.id);
139
+ const originalIndex = messages.findIndex((m) => m.id === message.id);
68
140
  // Use preserved tool calls if current message has empty tool calls
69
- const toolCalls = (message.tool_calls && message.tool_calls.length > 0)
141
+ const toolCalls = message.tool_calls && message.tool_calls.length > 0
70
142
  ? message.tool_calls
71
- : (preservedToolCalls[originalIndex] || []);
72
- return (_jsxs("div", { children: [_jsx("div", { dangerouslySetInnerHTML: {
143
+ : preservedToolCalls[originalIndex] || [];
144
+ return (_jsxs("div", { className: toolCalls.length > 0 ? "mb-2" : "", children: [_jsx("div", { dangerouslySetInnerHTML: {
73
145
  __html: message.formattedContent || message.content || "",
74
- } }), toolCalls.length > 0 && (_jsx("div", { className: "mt-2 flex flex-wrap gap-2", children: toolCalls.map((toolCall, toolIndex) => {
75
- return (_jsxs(Popover, { enableIframeClickDetection: false, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs("div", { className: "inline-flex cursor-pointer items-center gap-1 text-xs text-gray-500 hover:text-gray-700", children: [_jsx("i", { className: "pi pi-wrench text-xs" }), _jsx("span", { children: toolCall?.displayName || toolCall?.function?.name || 'tool call' })] }) }), _jsx(PopoverContent, { className: "p-3", align: "start", side: "bottom", sideOffset: 8, onMouseDown: (e) => e.stopPropagation(), onClick: (e) => e.stopPropagation(), children: _jsx("div", { className: "max-h-[500px] overflow-hidden", children: _jsx(ToolCallPopover, { toolCall: toolCall, result: toolCall.result }) }) })] }, toolIndex));
146
+ } }), toolCalls.length > 0 && (_jsx("div", { className: "mt-2 flex flex-col gap-2", children: toolCalls.map((toolCall, toolIndex) => {
147
+ const toolResult = toolCall.function.result;
148
+ const popoverKey = `${originalIndex}-${toolIndex}`;
149
+ return (_jsxs(Popover, { enableIframeClickDetection: false, open: openPopovers[popoverKey] || false, onOpenChange: (open) => {
150
+ setOpenPopovers((prev) => ({
151
+ ...prev,
152
+ [popoverKey]: open,
153
+ }));
154
+ }, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs("div", { className: "inline-flex cursor-pointer items-center gap-1 text-xs text-gray-500 hover:text-gray-700", children: [toolResult ? (_jsx("div", { className: "flex items-center", children: getToolIcon(toolCall?.function?.name || "") })) : finished ? (_jsx("div", { className: "flex items-center opacity-50", children: getToolIcon(toolCall?.function?.name || "") })) : (_jsx(Spinner, { size: "xs" })), _jsx("span", { children: toolCall?.displayName ||
155
+ toolCall?.function?.name ||
156
+ "tool call" })] }) }), _jsx(PopoverContent, { className: "w-[400px] p-3", align: "start", side: "bottom", sideOffset: 8, onMouseDown: (e) => e.stopPropagation(), onClick: (e) => e.stopPropagation(), children: _jsx(ToolCallPopover, { toolCall: toolCall, result: toolResult, onClose: () => {
157
+ setOpenPopovers((prev) => ({
158
+ ...prev,
159
+ [popoverKey]: false,
160
+ }));
161
+ } }) })] }, toolIndex));
76
162
  }) }))] }, filteredIndex));
77
163
  }), finished && editOperations.length > 0 && (_jsxs("div", { className: "my-2 flex items-center gap-2", children: [_jsxs("div", { className: "tour-ai-response-message-changes text-xs", children: [editOperations.length, " changes"] }), canReject && !changesRejected && (_jsxs("div", { className: "flex cursor-pointer items-center gap-1 text-xs text-red-500", onClick: async () => {
78
164
  await editContext?.operations.undo(editOperations.length);
79
165
  setChangesRejected(true);
80
- }, children: [_jsx("i", { className: "pi pi-times" }), " Reject"] })), changesRejected && (_jsx("div", { className: "text-xs text-red-500", children: "rejected" }))] }))] }));
166
+ }, children: [_jsx(X, { strokeWidth: 1, size: 14 }), " Reject"] })), changesRejected && (_jsx("div", { className: "text-xs text-red-500", children: "rejected" }))] }))] }));
81
167
  }
82
168
  //# sourceMappingURL=AiResponseMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AiResponseMessage.js","sourceRoot":"","sources":["../../../src/editor/ai/AiResponseMessage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AiResponseMessage.js","sourceRoot":"","sources":["../../../src/editor/ai/AiResponseMessage.tsx"],"names":[],"mappings":"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"}
@@ -6,6 +6,14 @@ type Response = {
6
6
  numOutputTokens: number;
7
7
  numCachedTokens: number;
8
8
  state: string;
9
+ agentName?: string;
10
+ totalCost?: number;
11
+ totalInputTokenCost?: number;
12
+ totalOutputTokenCost?: number;
13
+ totalCachedTokenCost?: number;
14
+ totalInputTokens?: number;
15
+ totalOutputTokens?: number;
16
+ totalCachedTokens?: number;
9
17
  };
10
18
  export type ToolCall = {
11
19
  id: string;
@@ -26,20 +34,28 @@ export type Message = {
26
34
  };
27
35
  export type AiContext = {
28
36
  promptData: any;
29
- endpoint: string;
30
37
  callback?: (response: Response) => void;
31
38
  };
32
39
  export type AiTerminalOptions = {
33
40
  initialPrompt?: string;
34
41
  hiddenSystemPrompt?: string;
35
42
  initialMessages?: Message[];
43
+ agentId?: string;
44
+ totalCost?: number;
45
+ totalInputTokenCost?: number;
46
+ totalOutputTokenCost?: number;
47
+ totalCachedTokenCost?: number;
48
+ totalInputTokens?: number;
49
+ totalOutputTokens?: number;
50
+ totalCachedTokens?: number;
36
51
  };
37
- export declare function AiTerminal({ closeButton, createAiContext, defaultProfile, options, }: {
52
+ export declare function AiTerminal({ closeButton, createAiContext, defaultProfile, options, onAgentNameUpdate, }: {
38
53
  closeButton?: React.ReactNode;
39
54
  createAiContext: ({ editContext }: {
40
55
  editContext: any;
41
56
  }) => AiContext;
42
57
  defaultProfile?: string;
43
58
  options?: AiTerminalOptions;
59
+ onAgentNameUpdate?: (name: string) => void;
44
60
  }): import("react/jsx-runtime").JSX.Element | null;
45
61
  export {};