@alpaca-editor/core 1.0.4026 → 1.0.4027
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/editor/ai/Agents.js +26 -16
- package/dist/editor/ai/Agents.js.map +1 -1
- package/dist/editor/ai/AiResponseMessage.js +22 -14
- package/dist/editor/ai/AiResponseMessage.js.map +1 -1
- package/dist/editor/ai/AiTerminal.d.ts +3 -1
- package/dist/editor/ai/AiTerminal.js +48 -19
- package/dist/editor/ai/AiTerminal.js.map +1 -1
- package/dist/editor/ai/EditorAiTerminal.d.ts +2 -1
- package/dist/editor/ai/EditorAiTerminal.js +2 -2
- package/dist/editor/ai/EditorAiTerminal.js.map +1 -1
- package/dist/editor/services/aiService.d.ts +1 -0
- package/dist/editor/services/aiService.js.map +1 -1
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/package.json +1 -1
- package/src/editor/ai/Agents.tsx +84 -51
- package/src/editor/ai/AiResponseMessage.tsx +77 -31
- package/src/editor/ai/AiTerminal.tsx +64 -24
- package/src/editor/ai/EditorAiTerminal.tsx +3 -0
- package/src/editor/services/aiService.ts +2 -0
- package/src/revision.ts +2 -2
package/dist/editor/ai/Agents.js
CHANGED
|
@@ -4,32 +4,34 @@ import { EditorAiTerminal } from "./EditorAiTerminal";
|
|
|
4
4
|
import { SimpleIconButton } from "../ui/SimpleIconButton";
|
|
5
5
|
import { Plus, X, History } from "lucide-react";
|
|
6
6
|
import { cn } from "../../lib/utils";
|
|
7
|
-
import { getAgents, getAgent, getChatHistory } from "../services/agentService";
|
|
7
|
+
import { getAgents, getAgent, getChatHistory, } from "../services/agentService";
|
|
8
8
|
import { Popover, PopoverContent, PopoverTrigger, } from "../../components/ui/popover";
|
|
9
9
|
function convertAgentMessagesToTerminalMessages(agentMessages) {
|
|
10
|
-
return agentMessages
|
|
10
|
+
return (agentMessages
|
|
11
11
|
// Keep all messages including tool results for complete conversation context
|
|
12
|
-
.map(msg => ({
|
|
12
|
+
.map((msg) => ({
|
|
13
13
|
id: msg.id,
|
|
14
14
|
content: msg.content,
|
|
15
15
|
name: msg.name,
|
|
16
16
|
role: msg.role,
|
|
17
|
-
tool_calls: msg.toolCalls?.map(toolCall => ({
|
|
17
|
+
tool_calls: msg.toolCalls?.map((toolCall) => ({
|
|
18
18
|
id: toolCall.toolCallId,
|
|
19
19
|
displayName: toolCall.functionName,
|
|
20
20
|
function: {
|
|
21
21
|
name: toolCall.functionName,
|
|
22
|
-
arguments: toolCall.functionArguments || ""
|
|
23
|
-
}
|
|
22
|
+
arguments: toolCall.functionArguments || "",
|
|
23
|
+
},
|
|
24
24
|
})) || [],
|
|
25
|
-
tool_call_id: msg.toolCallId
|
|
26
|
-
}));
|
|
25
|
+
tool_call_id: msg.toolCallId,
|
|
26
|
+
})));
|
|
27
27
|
}
|
|
28
28
|
function formatDateToLocalTime(dateString) {
|
|
29
29
|
// Ensure the date string is treated as UTC if it doesn't have timezone info
|
|
30
|
-
const normalizedDate = dateString.includes(
|
|
30
|
+
const normalizedDate = dateString.includes("Z") ||
|
|
31
|
+
dateString.includes("+") ||
|
|
32
|
+
dateString.includes("-", 19)
|
|
31
33
|
? dateString
|
|
32
|
-
: dateString +
|
|
34
|
+
: dateString + "Z";
|
|
33
35
|
return new Date(normalizedDate).toLocaleString();
|
|
34
36
|
}
|
|
35
37
|
export function Agents({ closeButton, initialOptions, }) {
|
|
@@ -61,7 +63,9 @@ export function Agents({ closeButton, initialOptions, }) {
|
|
|
61
63
|
title: agent.name || `Agent ${index + 1}`,
|
|
62
64
|
agentId: agent.id,
|
|
63
65
|
options: initialOptions,
|
|
64
|
-
messages: agentWithMessages?.messages
|
|
66
|
+
messages: agentWithMessages?.messages
|
|
67
|
+
? convertAgentMessagesToTerminalMessages(agentWithMessages.messages)
|
|
68
|
+
: [],
|
|
65
69
|
};
|
|
66
70
|
}));
|
|
67
71
|
setTerminals(activeTerminals);
|
|
@@ -81,7 +85,8 @@ export function Agents({ closeButton, initialOptions, }) {
|
|
|
81
85
|
nextTerminalNumber.current++;
|
|
82
86
|
}
|
|
83
87
|
}
|
|
84
|
-
if (inactiveAgentsResult.type === "success" &&
|
|
88
|
+
if (inactiveAgentsResult.type === "success" &&
|
|
89
|
+
inactiveAgentsResult.data) {
|
|
85
90
|
setInactiveAgents(inactiveAgentsResult.data);
|
|
86
91
|
}
|
|
87
92
|
}
|
|
@@ -139,7 +144,7 @@ export function Agents({ closeButton, initialOptions, }) {
|
|
|
139
144
|
};
|
|
140
145
|
const openAgentFromHistory = async (agent) => {
|
|
141
146
|
// Check if this agent is already open as a terminal
|
|
142
|
-
const existingTerminal = terminals.find(t => t.agentId === agent.id);
|
|
147
|
+
const existingTerminal = terminals.find((t) => t.agentId === agent.id);
|
|
143
148
|
if (existingTerminal) {
|
|
144
149
|
// Switch to existing terminal
|
|
145
150
|
setActiveTerminalId(existingTerminal.id);
|
|
@@ -154,7 +159,9 @@ export function Agents({ closeButton, initialOptions, }) {
|
|
|
154
159
|
title: agent.name,
|
|
155
160
|
agentId: agent.id,
|
|
156
161
|
options: initialOptions,
|
|
157
|
-
messages: agentWithMessages?.messages
|
|
162
|
+
messages: agentWithMessages?.messages
|
|
163
|
+
? convertAgentMessagesToTerminalMessages(agentWithMessages.messages)
|
|
164
|
+
: [],
|
|
158
165
|
};
|
|
159
166
|
setTerminals((prev) => [...prev, newTerminal]);
|
|
160
167
|
setActiveTerminalId(newTerminal.id);
|
|
@@ -168,10 +175,13 @@ export function Agents({ closeButton, initialOptions, }) {
|
|
|
168
175
|
: "hover:bg-gray-100"), onClick: () => setActiveTerminalId(terminal.id), children: [_jsx("span", { className: "truncate", children: terminal.title }), terminals.length > 1 && (_jsx(SimpleIconButton, { onClick: (e) => {
|
|
169
176
|
e.stopPropagation();
|
|
170
177
|
closeTerminal(terminal.id);
|
|
171
|
-
}, icon: _jsx(X, { className: "size-2" }), label: "Close", className: "ml-1 opacity-60 hover:opacity-100" }))] }, terminal.id))) }), _jsx("div", { className: "flex items-center px-1", children: _jsxs(Popover, { open: historyPopoverOpen, onOpenChange: setHistoryPopoverOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx(SimpleIconButton, { onClick: () => { }, icon: _jsx(History, { className: "size-4" }), label: "Agent History", className: "text-gray-600 hover:text-gray-800" }) }), _jsxs(PopoverContent, { className: "w-64 p-0", align: "end", children: [_jsx("div", { className: "px-3 py-2 text-xs font-medium text-gray-500
|
|
178
|
+
}, icon: _jsx(X, { className: "size-2" }), label: "Close", className: "ml-1 opacity-60 hover:opacity-100" }))] }, terminal.id))) }), _jsx("div", { className: "flex items-center px-1", children: _jsxs(Popover, { open: historyPopoverOpen, onOpenChange: setHistoryPopoverOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx(SimpleIconButton, { onClick: () => { }, icon: _jsx(History, { className: "size-4" }), label: "Agent History", className: "text-gray-600 hover:text-gray-800" }) }), _jsxs(PopoverContent, { className: "w-64 p-0", align: "end", children: [_jsx("div", { className: "border-b border-gray-100 px-3 py-2 text-xs font-medium text-gray-500", children: "Agent History" }), _jsx("div", { className: "max-h-80 overflow-y-auto", children: inactiveAgents.length === 0 ? (_jsx("div", { className: "px-3 py-2 text-xs text-gray-500", children: "No previous agents found" })) : (inactiveAgents.map((agent) => (_jsxs("div", { className: "cursor-pointer border-b border-gray-50 px-3 py-2 text-xs hover:bg-gray-50", onClick: () => openAgentFromHistory(agent), children: [_jsx("div", { className: "truncate font-medium text-gray-900", children: agent.name }), _jsx("div", { className: "truncate text-gray-500", children: agent.profileName }), _jsx("div", { className: "text-xs text-gray-400", children: formatDateToLocalTime(agent.updatedDate) })] }, agent.id)))) })] })] }) }), _jsx("div", { className: "flex items-center px-1", children: _jsx(SimpleIconButton, { onClick: addTerminal, icon: _jsx(Plus, { className: "size-4" }), label: "Add Terminal", className: "text-gray-600 hover:text-gray-800" }) }), closeButton && (_jsx("div", { className: "flex items-center px-2", children: closeButton }))] }), _jsx("div", { className: "relative flex-1", children: terminals.map((terminal) => (_jsx("div", { className: cn("absolute inset-0", activeTerminalId === terminal.id ? "block" : "hidden"), children: _jsx(EditorAiTerminal, { options: {
|
|
172
179
|
...terminal.options,
|
|
173
180
|
// Pass the pre-loaded messages to the terminal
|
|
174
|
-
initialMessages: terminal.messages
|
|
181
|
+
initialMessages: terminal.messages,
|
|
182
|
+
}, onAgentNameUpdate: (name) => {
|
|
183
|
+
// Update the terminal title when agent name is updated
|
|
184
|
+
setTerminals((prev) => prev.map((t) => t.id === terminal.id ? { ...t, title: name } : t));
|
|
175
185
|
} }) }, terminal.id))) })] }));
|
|
176
186
|
}
|
|
177
187
|
//# sourceMappingURL=Agents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Agents.js","sourceRoot":"","sources":["../../../src/editor/ai/Agents.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,
|
|
1
|
+
{"version":3,"file":"Agents.js","sourceRoot":"","sources":["../../../src/editor/ai/Agents.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState, useEffect } from "react";
|
|
3
3
|
import { useEditContext } from "../client/editContext";
|
|
4
|
-
import { Popover, PopoverContent, PopoverTrigger } from "../../components/ui/popover";
|
|
4
|
+
import { Popover, PopoverContent, PopoverTrigger, } from "../../components/ui/popover";
|
|
5
5
|
import { SimpleTabs } from "../ui/SimpleTabs";
|
|
6
6
|
export function AiResponseMessage({ messages, finished, editOperations, }) {
|
|
7
7
|
const editContext = useEditContext();
|
|
@@ -11,6 +11,7 @@ export function AiResponseMessage({ messages, finished, editOperations, }) {
|
|
|
11
11
|
const [changesRejected, setChangesRejected] = useState(undefined);
|
|
12
12
|
// Store tool calls to preserve them during streaming
|
|
13
13
|
const [preservedToolCalls, setPreservedToolCalls] = useState({});
|
|
14
|
+
console.log(messages);
|
|
14
15
|
// Update preserved tool calls when messages change
|
|
15
16
|
useEffect(() => {
|
|
16
17
|
const newPreservedToolCalls = { ...preservedToolCalls };
|
|
@@ -30,10 +31,10 @@ export function AiResponseMessage({ messages, finished, editOperations, }) {
|
|
|
30
31
|
const renderJsonOrText = (json) => {
|
|
31
32
|
try {
|
|
32
33
|
const parsed = JSON.parse(json);
|
|
33
|
-
return (_jsx("div", { className: "font-mono text-xs whitespace-pre-wrap", children: _jsx("pre", { className: "whitespace-pre-wrap
|
|
34
|
+
return (_jsx("div", { className: "font-mono text-xs whitespace-pre-wrap", children: _jsx("pre", { className: "break-words whitespace-pre-wrap", children: JSON.stringify(parsed, null, 2) }) }));
|
|
34
35
|
}
|
|
35
36
|
catch (e) {
|
|
36
|
-
return _jsx("div", { className: "
|
|
37
|
+
return (_jsx("div", { className: "font-mono text-xs break-words whitespace-pre-wrap", children: json }));
|
|
37
38
|
}
|
|
38
39
|
};
|
|
39
40
|
// Helper function to create tabs for a tool call
|
|
@@ -42,38 +43,45 @@ export function AiResponseMessage({ messages, finished, editOperations, }) {
|
|
|
42
43
|
{
|
|
43
44
|
id: `input-${toolCall.id}`,
|
|
44
45
|
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
|
|
46
|
+
content: (_jsxs("div", { className: "max-h-96 overflow-auto p-2", children: [_jsx("div", { className: "mb-1 text-sm font-semibold text-gray-700", children: "Arguments:" }), _jsx("div", { className: "text-xs", children: renderJsonOrText(toolCall.function.arguments) })] })),
|
|
46
47
|
},
|
|
47
48
|
];
|
|
48
49
|
if (result) {
|
|
49
50
|
tabs.push({
|
|
50
51
|
id: `output-${toolCall.id}`,
|
|
51
52
|
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
|
|
53
|
+
content: (_jsxs("div", { className: "max-h-96 overflow-auto p-2", children: [_jsx("div", { className: "mb-1 text-sm font-semibold text-gray-700", children: "Result:" }), _jsx("div", { className: "text-xs", children: renderJsonOrText(result.content || "") })] })),
|
|
53
54
|
});
|
|
54
55
|
}
|
|
55
56
|
return tabs;
|
|
56
57
|
};
|
|
57
58
|
// Helper function to create tool call popover content
|
|
58
|
-
const ToolCallPopover = ({ toolCall, result }) => {
|
|
59
|
+
const ToolCallPopover = ({ toolCall, result, }) => {
|
|
59
60
|
const [activeTab, setActiveTab] = useState(0);
|
|
60
61
|
const tabs = createToolCallTabs(toolCall, result);
|
|
61
|
-
return (_jsxs("div", { className: "w-96", children: [_jsx("div", { className: "mb-3
|
|
62
|
+
return (_jsxs("div", { className: "w-96", children: [_jsx("div", { className: "mb-3 border-b border-gray-200 pb-2", 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: "mb-3 border-b border-gray-200", tabClassName: "text-xs" })] }));
|
|
63
|
+
};
|
|
64
|
+
// Helper function to find tool result by tool call id
|
|
65
|
+
const findToolResult = (toolCallId) => {
|
|
66
|
+
return messages.find((msg) => msg.role === "tool" && msg.tool_call_id === toolCallId);
|
|
62
67
|
};
|
|
63
68
|
return (_jsxs("div", { children: [messages
|
|
64
69
|
.filter((x) => x.role !== "tool")
|
|
65
70
|
.map((message, filteredIndex) => {
|
|
66
71
|
// Find the original index of this message in the unfiltered array
|
|
67
|
-
const originalIndex = messages.findIndex(m => m.id === message.id);
|
|
72
|
+
const originalIndex = messages.findIndex((m) => m.id === message.id);
|
|
68
73
|
// Use preserved tool calls if current message has empty tool calls
|
|
69
|
-
const toolCalls =
|
|
74
|
+
const toolCalls = message.tool_calls && message.tool_calls.length > 0
|
|
70
75
|
? message.tool_calls
|
|
71
|
-
:
|
|
72
|
-
return (_jsxs("div", { children: [_jsx("div", {
|
|
76
|
+
: preservedToolCalls[originalIndex] || [];
|
|
77
|
+
return (_jsxs("div", { children: [toolCalls.length > 0 && (_jsx("div", { className: "mb-2 flex flex-wrap gap-2", children: toolCalls.map((toolCall, toolIndex) => {
|
|
78
|
+
const toolResult = findToolResult(toolCall.id);
|
|
79
|
+
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 ||
|
|
80
|
+
toolCall?.function?.name ||
|
|
81
|
+
"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: toolResult }) }) })] }, toolIndex));
|
|
82
|
+
}) })), _jsx("div", { dangerouslySetInnerHTML: {
|
|
73
83
|
__html: message.formattedContent || message.content || "",
|
|
74
|
-
} })
|
|
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));
|
|
76
|
-
}) }))] }, filteredIndex));
|
|
84
|
+
} })] }, filteredIndex));
|
|
77
85
|
}), 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
86
|
await editContext?.operations.undo(editOperations.length);
|
|
79
87
|
setChangesRejected(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AiResponseMessage.js","sourceRoot":"","sources":["../../../src/editor/ai/AiResponseMessage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG5C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIvD,OAAO,
|
|
1
|
+
{"version":3,"file":"AiResponseMessage.js","sourceRoot":"","sources":["../../../src/editor/ai/AiResponseMessage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ type Response = {
|
|
|
6
6
|
numOutputTokens: number;
|
|
7
7
|
numCachedTokens: number;
|
|
8
8
|
state: string;
|
|
9
|
+
agentName?: string;
|
|
9
10
|
};
|
|
10
11
|
export type ToolCall = {
|
|
11
12
|
id: string;
|
|
@@ -34,12 +35,13 @@ export type AiTerminalOptions = {
|
|
|
34
35
|
hiddenSystemPrompt?: string;
|
|
35
36
|
initialMessages?: Message[];
|
|
36
37
|
};
|
|
37
|
-
export declare function AiTerminal({ closeButton, createAiContext, defaultProfile, options, }: {
|
|
38
|
+
export declare function AiTerminal({ closeButton, createAiContext, defaultProfile, options, onAgentNameUpdate, }: {
|
|
38
39
|
closeButton?: React.ReactNode;
|
|
39
40
|
createAiContext: ({ editContext }: {
|
|
40
41
|
editContext: any;
|
|
41
42
|
}) => AiContext;
|
|
42
43
|
defaultProfile?: string;
|
|
43
44
|
options?: AiTerminalOptions;
|
|
45
|
+
onAgentNameUpdate?: (name: string) => void;
|
|
44
46
|
}): import("react/jsx-runtime").JSX.Element | null;
|
|
45
47
|
export {};
|
|
@@ -10,7 +10,7 @@ import { AiResponseMessage } from "./AiResponseMessage";
|
|
|
10
10
|
import { loadAiProfiles, executePrompt, } from "../services/aiService";
|
|
11
11
|
import { SimpleIconButton } from "../ui/SimpleIconButton";
|
|
12
12
|
import { Settings } from "lucide-react";
|
|
13
|
-
export function AiTerminal({ closeButton, createAiContext, defaultProfile, options, }) {
|
|
13
|
+
export function AiTerminal({ closeButton, createAiContext, defaultProfile, options, onAgentNameUpdate, }) {
|
|
14
14
|
const editContext = useEditContext();
|
|
15
15
|
const [showPredefined, setShowPredefined] = useState(false);
|
|
16
16
|
if (!editContext)
|
|
@@ -22,7 +22,7 @@ export function AiTerminal({ closeButton, createAiContext, defaultProfile, optio
|
|
|
22
22
|
const [profiles, setProfiles] = useState([]);
|
|
23
23
|
const [activeProfile, setActiveProfile] = useState();
|
|
24
24
|
const [initialPromptExecuted, setInitialPromptExecuted] = useState(false);
|
|
25
|
-
const [agentId] = useState(() => crypto.randomUUID());
|
|
25
|
+
const [agentId, setAgentId] = useState(() => crypto.randomUUID());
|
|
26
26
|
const selection = editContext.selection;
|
|
27
27
|
const terminalRef = useRef(null);
|
|
28
28
|
const [responseMessages, setResponseMessages] = useState(options?.initialMessages || []);
|
|
@@ -94,33 +94,54 @@ export function AiTerminal({ closeButton, createAiContext, defaultProfile, optio
|
|
|
94
94
|
setResponse(initialResponse);
|
|
95
95
|
// Create individual Terminal messages for each conversation message
|
|
96
96
|
const terminalMessages = [];
|
|
97
|
-
|
|
97
|
+
// Group messages by conversation turns (user + assistant pairs)
|
|
98
|
+
let i = 0;
|
|
99
|
+
while (i < formattedMessages.length) {
|
|
100
|
+
const message = formattedMessages[i];
|
|
101
|
+
if (!message) {
|
|
102
|
+
i++;
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
98
105
|
if (message.role === "user") {
|
|
99
106
|
// User messages appear as commands
|
|
100
107
|
terminalMessages.push({
|
|
101
108
|
type: "command",
|
|
102
109
|
text: message.content,
|
|
103
110
|
});
|
|
111
|
+
i++;
|
|
112
|
+
// Look for following assistant messages to group together
|
|
113
|
+
const assistantMessages = [];
|
|
114
|
+
while (i < formattedMessages.length) {
|
|
115
|
+
const assistantMessage = formattedMessages[i];
|
|
116
|
+
if (assistantMessage && assistantMessage.role === "assistant") {
|
|
117
|
+
assistantMessages.push(assistantMessage);
|
|
118
|
+
i++;
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// If we have assistant messages, render them with AiResponseMessage
|
|
125
|
+
if (assistantMessages.length > 0) {
|
|
126
|
+
terminalMessages.push({
|
|
127
|
+
type: "response",
|
|
128
|
+
text: (_jsx(AiResponseMessage, { messages: assistantMessages, editOperations: [], finished: true })),
|
|
129
|
+
});
|
|
130
|
+
}
|
|
104
131
|
}
|
|
105
132
|
else if (message.role === "assistant") {
|
|
106
|
-
//
|
|
133
|
+
// Handle standalone assistant messages
|
|
107
134
|
terminalMessages.push({
|
|
108
135
|
type: "response",
|
|
109
|
-
text: (_jsx(
|
|
110
|
-
__html: message.formattedContent || message.content || "",
|
|
111
|
-
} })),
|
|
136
|
+
text: (_jsx(AiResponseMessage, { messages: [message], editOperations: [], finished: true })),
|
|
112
137
|
});
|
|
138
|
+
i++;
|
|
113
139
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
terminalMessages.push({
|
|
118
|
-
type: "response",
|
|
119
|
-
text: (_jsxs("div", { className: "text-xs text-gray-1", children: ["\uD83D\uDD27 ", toolCall.displayName] })),
|
|
120
|
-
});
|
|
121
|
-
});
|
|
140
|
+
else {
|
|
141
|
+
// Skip other message types (like tool messages)
|
|
142
|
+
i++;
|
|
122
143
|
}
|
|
123
|
-
}
|
|
144
|
+
}
|
|
124
145
|
setInitialTerminalMessages(terminalMessages);
|
|
125
146
|
}
|
|
126
147
|
}, [options?.initialMessages]);
|
|
@@ -178,8 +199,7 @@ export function AiTerminal({ closeButton, createAiContext, defaultProfile, optio
|
|
|
178
199
|
const selectedText = editContext?.selectedRange?.text || null;
|
|
179
200
|
if (!activeProfile || !model)
|
|
180
201
|
return;
|
|
181
|
-
//
|
|
182
|
-
const conversationHistory = [...messagesRef.current, userMessage];
|
|
202
|
+
// Only send the new user message - message history will be loaded from database
|
|
183
203
|
const messages = [
|
|
184
204
|
...(options?.hiddenSystemPrompt
|
|
185
205
|
? [
|
|
@@ -192,8 +212,11 @@ export function AiTerminal({ closeButton, createAiContext, defaultProfile, optio
|
|
|
192
212
|
},
|
|
193
213
|
]
|
|
194
214
|
: []),
|
|
195
|
-
|
|
215
|
+
userMessage, // Send only the new user message
|
|
196
216
|
];
|
|
217
|
+
// Update local state to include the new user message for UI display
|
|
218
|
+
setMessages((prevMessages) => [...prevMessages, userMessage]);
|
|
219
|
+
setResponseMessages((prevMessages) => [...prevMessages, userMessage]);
|
|
197
220
|
const response = await executePrompt(messages, context, {
|
|
198
221
|
profileId: activeProfile.id,
|
|
199
222
|
selection,
|
|
@@ -208,6 +231,10 @@ export function AiTerminal({ closeButton, createAiContext, defaultProfile, optio
|
|
|
208
231
|
});
|
|
209
232
|
if (response) {
|
|
210
233
|
handleResponse(response, callback, true);
|
|
234
|
+
// Handle agent name update
|
|
235
|
+
if (response.agentName && onAgentNameUpdate) {
|
|
236
|
+
onAgentNameUpdate(response.agentName);
|
|
237
|
+
}
|
|
211
238
|
if (context.callback)
|
|
212
239
|
context.callback(response);
|
|
213
240
|
editContext?.requestRefresh("immediate");
|
|
@@ -232,6 +259,8 @@ export function AiTerminal({ closeButton, createAiContext, defaultProfile, optio
|
|
|
232
259
|
setResponseMessages([]);
|
|
233
260
|
setResponse(undefined);
|
|
234
261
|
setInitialTerminalMessages(undefined);
|
|
262
|
+
// Generate a new agentId when clearing the terminal to start fresh
|
|
263
|
+
setAgentId(crypto.randomUUID());
|
|
235
264
|
}, initialMessages: initialTerminalMessages, infobar: response?.numInputTokens && response?.numInputTokens > 0 ? (_jsxs("div", { className: "text-right text-gray-400", style: { fontSize: "10px" }, children: ["Tokens in: ", response?.numInputTokens?.toLocaleString(), " out:", " ", response?.numOutputTokens?.toLocaleString(), " ", response?.numCachedTokens
|
|
236
265
|
? `cached: ${response?.numCachedTokens?.toLocaleString()} `
|
|
237
266
|
: "", response?.state] })) : null, prompt: prompt, setPrompt: setPrompt, statusbar: _jsxs("div", { className: "flex flex-1 items-center justify-between gap-1", children: [_jsxs("a", { className: "ml-1 flex cursor-pointer items-center gap-1 text-xs", onClick: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AiTerminal.js","sourceRoot":"","sources":["../../../src/editor/ai/AiTerminal.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AiTerminal.js","sourceRoot":"","sources":["../../../src/editor/ai/AiTerminal.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAEL,cAAc,EACd,aAAa,GACd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AA2CxC,MAAM,UAAU,UAAU,CAAC,EACzB,WAAW,EACX,eAAe,EACf,cAAc,EACd,OAAO,EACP,iBAAiB,GAOlB;IACC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5D,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CACtC,OAAO,EAAE,eAAe,IAAI,EAAE,CAC/B,CAAC;IACF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAY,CAAC;IACrD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAU,CAAC;IAC7C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAc,EAAE,CAAC,CAAC;IAC1D,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,EAAa,CAAC;IAChE,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1E,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAS,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;IACxC,MAAM,WAAW,GAAG,MAAM,CAAyB,IAAI,CAAC,CAAC;IACzD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CACtD,OAAO,EAAE,eAAe,IAAI,EAAE,CAC/B,CAAC;IACF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEjD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE,aAAa,IAAI,CAAC,qBAAqB,IAAI,KAAK,EAAE,CAAC;YAC9D,yDAAyD;YACzD,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;YACrD,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACjC,wBAAwB,CAAC,IAAI,CAAC,CAAC;YAC/B,iEAAiE;YACjE,UAAU,CAAC,GAAG,EAAE;gBACd,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YAChC,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC,CAAC;IAE3D,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,UAAU,aAAa;YAC1B,IAAI,CAAC,WAAW,EAAE,qBAAqB;gBAAE,OAAO;YAChD,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;YACzE,WAAW,CAAC,QAAQ,CAAC,CAAC;YACtB,IAAI,CAAC,aAAa;gBAChB,gBAAgB,CACd,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAC9D,CAAC;QACN,CAAC;QACD,aAAa,EAAE,CAAC;IAClB,CAAC,EAAE,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAEzC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,aAAa,EAAE,YAAY;YAAE,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IACxE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,OAAO,GAAG,gBAAgB,CAAC;IACzC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAOvB,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,GAAG,QAAQ,CAEpE,SAAS,CAAC,CAAC;IAEb,gDAAgD;IAChD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnE,OAAO,CAAC,GAAG,CACT,sCAAsC,EACtC,OAAO,CAAC,eAAe,CACxB,CAAC;YAEF,0CAA0C;YAC1C,MAAM,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBAChE,MAAM,gBAAgB,GACpB,OAAO,CAAC,OAAO;oBACb,EAAE,IAAI,EAAE;oBACR,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;oBAC1B,EAAE,OAAO,CAAC,gBAAgB,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;gBAEnD,OAAO;oBACL,GAAG,OAAO;oBACV,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;oBAC9B,gBAAgB,EAAE,gBAAgB;oBAClC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;iBACrC,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,iBAAiB,CAAC,CAAC;YAEjE,qCAAqC;YACrC,WAAW,CAAC,iBAAiB,CAAC,CAAC;YAC/B,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;YAEvC,8CAA8C;YAC9C,MAAM,eAAe,GAAa;gBAChC,QAAQ,EAAE,iBAAiB;gBAC3B,cAAc,EAAE,EAAE;gBAClB,cAAc,EAAE,CAAC;gBACjB,eAAe,EAAE,CAAC;gBAClB,eAAe,EAAE,CAAC;gBAClB,KAAK,EAAE,QAAQ;aAChB,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,eAAe,CAAC,CAAC;YAC7D,WAAW,CAAC,eAAe,CAAC,CAAC;YAE7B,oEAAoE;YACpE,MAAM,gBAAgB,GAAsB,EAAE,CAAC;YAE/C,gEAAgE;YAChE,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,OAAO,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC;gBACpC,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,CAAC,EAAE,CAAC;oBACJ,SAAS;gBACX,CAAC;gBAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC5B,mCAAmC;oBACnC,gBAAgB,CAAC,IAAI,CAAC;wBACpB,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,OAAO,CAAC,OAAO;qBACtB,CAAC,CAAC;oBACH,CAAC,EAAE,CAAC;oBAEJ,0DAA0D;oBAC1D,MAAM,iBAAiB,GAAc,EAAE,CAAC;oBACxC,OAAO,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC;wBACpC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;wBAC9C,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;4BAC9D,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;4BACzC,CAAC,EAAE,CAAC;wBACN,CAAC;6BAAM,CAAC;4BACN,MAAM;wBACR,CAAC;oBACH,CAAC;oBAED,oEAAoE;oBACpE,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACjC,gBAAgB,CAAC,IAAI,CAAC;4BACpB,IAAI,EAAE,UAAU;4BAChB,IAAI,EAAE,CACJ,KAAC,iBAAiB,IAChB,QAAQ,EAAE,iBAAiB,EAC3B,cAAc,EAAE,EAAE,EAClB,QAAQ,EAAE,IAAI,GACd,CACH;yBACF,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;qBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBACxC,uCAAuC;oBACvC,gBAAgB,CAAC,IAAI,CAAC;wBACpB,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,CACJ,KAAC,iBAAiB,IAChB,QAAQ,EAAE,CAAC,OAAO,CAAC,EACnB,cAAc,EAAE,EAAE,EAClB,QAAQ,EAAE,IAAI,GACd,CACH;qBACF,CAAC,CAAC;oBACH,CAAC,EAAE,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACN,gDAAgD;oBAChD,CAAC,EAAE,CAAC;gBACN,CAAC;YACH,CAAC;YAED,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;IAE/B,4CAA4C;IAC5C,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,kBAAkB,CAAC,KAAiB;YAC3C,IACE,WAAW,CAAC,OAAO;gBACnB,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EACnD,CAAC;gBACD,eAAe,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;YACvD,OAAO,GAAG,EAAE;gBACV,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;YAC5D,CAAC,CAAC;QACJ,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,SAAS,cAAc,CACrB,QAAkB,EAClB,gBAAoE,EACpE,UAAmB;QAEnB,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAE1C,2EAA2E;QAC3E,IAAI,eAAe,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;YACtD,MAAM,iBAAiB,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBACxD,MAAM,gBAAgB,GACpB,OAAO,CAAC,OAAO;oBACb,EAAE,IAAI,EAAE;oBACR,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;oBAC1B,EAAE,OAAO,CAAC,gBAAgB,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;gBAEnD,OAAO;oBACL,GAAG,OAAO;oBACV,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;oBAC9B,gBAAgB,EAAE,gBAAgB;oBAClC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;iBACrC,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,mEAAmE;YACnE,WAAW,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;YACpC,mBAAmB,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;YAE5C,gBAAgB,CACd,KAAC,iBAAiB,IAChB,QAAQ,EAAE,iBAAiB,EAC3B,cAAc,EAAE,QAAQ,CAAC,cAAc,EACvC,QAAQ,EAAE,UAAU,GACpB,EACF,UAAU,CACX,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,2DAA2D;YAC3D,gBAAgB,CACd,KAAC,iBAAiB,IAChB,QAAQ,EAAE,WAAW,CAAC,OAAO,EAC7B,cAAc,EAAE,QAAQ,CAAC,cAAc,EACvC,QAAQ,EAAE,UAAU,GACpB,EACF,UAAU,CACX,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,UAAU,cAAc,CAC3B,IAAY,EACZ,QAA4D;QAE5D,MAAM,WAAW,GAAG;YAClB,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,gBAAgB;YACzC,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,EAAE,EAAE,4BAA4B;SAC7C,CAAC;QAEF,MAAM,OAAO,GAAG,eAAe,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QAEjD,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,MAAM,YAAY,GAAG,WAAW,EAAE,aAAa,EAAE,IAAI,IAAI,IAAI,CAAC;QAC9D,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK;YAAE,OAAO;QAErC,gFAAgF;QAChF,MAAM,QAAQ,GAAG;YACf,GAAG,CAAC,OAAO,EAAE,kBAAkB;gBAC7B,CAAC,CAAC;oBACE;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,OAAO,CAAC,kBAAkB;wBACnC,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,kCAAkC;wBAC3D,SAAS,EAAE,EAAE;qBACd;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,WAAW,EAAE,iCAAiC;SAC/C,CAAC;QAEF,oEAAoE;QACpE,WAAW,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,GAAG,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;QAC9D,mBAAmB,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,GAAG,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;QAEtE,MAAM,QAAQ,GAAG,MAAM,aAAa,CAClC,QAAQ,EACR,OAAO,EACP;YACE,SAAS,EAAE,aAAa,CAAC,EAAE;YAC3B,SAAS;YACT,YAAY;YACZ,KAAK;YACL,SAAS,EAAE,WAAY,CAAC,SAAS;YACjC,OAAO;YACP,qBAAqB,EAAE,IAAI;SAC5B,EACD,SAAS,EACT,CAAC,QAAa,EAAE,EAAE;YAChB,WAAW,CAAC,QAAQ,CAAC,CAAC;YACtB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC,CACF,CAAC;QAEF,IAAI,QAAQ,EAAE,CAAC;YACb,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAEzC,2BAA2B;YAC3B,IAAK,QAAgB,CAAC,SAAS,IAAI,iBAAiB,EAAE,CAAC;gBACrD,iBAAiB,CAAE,QAAgB,CAAC,SAAS,CAAC,CAAC;YACjD,CAAC;YAED,IAAI,OAAO,CAAC,QAAQ;gBAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACjD,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;QAC3C,CAAC;QAED,8BAA8B;QAC9B,uBAAuB;QACvB,sCAAsC;QACtC,yBAAyB;QACzB,yBAAyB;QACzB,QAAQ;QAER,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAE7C,4BAA4B;IAC9B,CAAC;IAED,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAE9C,OAAO,GAAG,EAAE;YACV,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACjD,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,cACE,SAAS,EAAC,sCAAsC,iBACpC,aAAa,YAEzB,eAAK,SAAS,EAAC,iBAAiB,aAC9B,cAAK,SAAS,EAAC,mCAAmC,YAChD,KAAC,QAAQ,IACP,QAAQ,EAAE,CAAC,KAAK,EAChB,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,GAAG,EAAE;4BACZ,WAAW,CAAC,EAAE,CAAC,CAAC;4BAChB,mBAAmB,CAAC,EAAE,CAAC,CAAC;4BACxB,WAAW,CAAC,SAAS,CAAC,CAAC;4BACvB,0BAA0B,CAAC,SAAS,CAAC,CAAC;4BACtC,mEAAmE;4BACnE,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;wBAClC,CAAC,EACD,eAAe,EAAE,uBAAuB,EACxC,OAAO,EACL,QAAQ,EAAE,cAAc,IAAI,QAAQ,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CACzD,eACE,SAAS,EAAC,0BAA0B,EACpC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,4BAEf,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,WAAO,GAAG,EAC/D,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,GAAG,EAChD,QAAQ,EAAE,eAAe;oCACxB,CAAC,CAAC,WAAW,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG;oCAC3D,CAAC,CAAC,EAAE,EACL,QAAQ,EAAE,KAAK,IACZ,CACP,CAAC,CAAC,CAAC,IAAI,EAEV,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,SAAS,EAAC,eAAK,SAAS,EAAC,gDAAgD,aACvE,aACE,SAAS,EAAC,qDAAqD,EAC/D,OAAO,EAAE,GAAG,EAAE;wCACZ,iBAAiB,CAAC,CAAC,cAAc,CAAC,CAAC;oCACrC,CAAC,aAED,KAAC,UAAU,IAAC,SAAS,EAAC,SAAS,GAAG,0BAEhC,EACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,IAAI,CACpC,eAAK,SAAS,EAAC,6CAA6C,aACzD,WAAW,CAAC,SAAS,CAAC,MAAM,qBAC7B,KAAC,gBAAgB,IACf,IAAI,EAAC,aAAa,EAClB,KAAK,EAAC,iBAAiB,EACvB,OAAO,EAAE,GAAG,EAAE;gDACZ,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;4CACzB,CAAC,GACD,IACE,CACP,EACA,cAAc,IAAI,CACjB,cAAK,SAAS,EAAC,gGAAgG,YAC5G,aAAa;wCACZ,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CACtC,cAEE,SAAS,EAAC,mFAAmF,EAC7F,OAAO,EAAE,GAAG,EAAE;gDACZ,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gDACpB,iBAAiB,CAAC,KAAK,CAAC,CAAC;4CAC3B,CAAC,YAEA,CAAC,CAAC,KAAK,IAPH,KAAK,CAQN,CACP,CAAC,GACA,CACP,IACG,EACN,OAAO,EAAC,eAAK,SAAS,EAAC,0BAA0B,aAC/C,eAAK,SAAS,EAAC,UAAU,EAAC,GAAG,EAAE,WAAW,aACxC,KAAC,gBAAgB,IACf,IAAI,EAAE,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,GAAI,EAC5C,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,GAC7C,EACD,YAAY,IAAI,CACf,eAAK,SAAS,EAAC,0GAA0G,aACvH,eAAK,SAAS,EAAC,qBAAqB,aAClC,gBAAO,SAAS,EAAC,mCAAmC,wBAE5C,EACR,KAAC,QAAQ,IACP,SAAS,EAAC,SAAS,EACnB,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,EAC1C,WAAW,EAAC,MAAM,EAClB,OAAO,EAAE,QAAQ,GACjB,IACE,EACL,aAAa,IAAI,CAChB,eAAK,SAAS,EAAC,qBAAqB,aAClC,gBAAO,SAAS,EAAC,mCAAmC,sBAE5C,EACR,KAAC,QAAQ,IACP,SAAS,EAAC,SAAS,EACnB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAClC,OAAO,EAAE,aAAa,CAAC,MAAM,GAC7B,IACE,CACP,IACG,CACP,IACG,EACL,WAAW,IACR,EACN,cAAc,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE;4BAC9B,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;wBAC9B,CAAC,GACD,GACE,EACL,aAAa,EAAE,YAAY,IAAI,CAC9B,cAAK,SAAS,EAAC,4EAA4E,YACxF,aAAa,EAAE,YAAY,GACxB,CACP,EACA,CAAC,KAAK,IAAI,CACT,cAAK,SAAS,EAAC,yEAAyE,YACrF,CAAC,aAAa,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,mBAAmB,GACzD,CACP,IACG,GACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AiTerminalOptions } from "./AiTerminal";
|
|
2
|
-
export declare function EditorAiTerminal({ closeButton, options, }: {
|
|
2
|
+
export declare function EditorAiTerminal({ closeButton, options, onAgentNameUpdate, }: {
|
|
3
3
|
closeButton?: React.ReactNode;
|
|
4
4
|
options?: AiTerminalOptions;
|
|
5
|
+
onAgentNameUpdate?: (name: string) => void;
|
|
5
6
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { AiTerminal } from "./AiTerminal";
|
|
3
3
|
import { createEditorAiContext } from "./editorAiContext";
|
|
4
|
-
export function EditorAiTerminal({ closeButton, options, }) {
|
|
5
|
-
return (_jsx(AiTerminal, { options: options, closeButton: closeButton, createAiContext: createEditorAiContext, defaultProfile: "Editor" }));
|
|
4
|
+
export function EditorAiTerminal({ closeButton, options, onAgentNameUpdate, }) {
|
|
5
|
+
return (_jsx(AiTerminal, { options: options, closeButton: closeButton, createAiContext: createEditorAiContext, defaultProfile: "Editor", onAgentNameUpdate: onAgentNameUpdate }));
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=EditorAiTerminal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorAiTerminal.js","sourceRoot":"","sources":["../../../src/editor/ai/EditorAiTerminal.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,UAAU,gBAAgB,CAAC,EAC/B,WAAW,EACX,OAAO,
|
|
1
|
+
{"version":3,"file":"EditorAiTerminal.js","sourceRoot":"","sources":["../../../src/editor/ai/EditorAiTerminal.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,UAAU,gBAAgB,CAAC,EAC/B,WAAW,EACX,OAAO,EACP,iBAAiB,GAKlB;IACC,OAAO,CACL,KAAC,UAAU,IACT,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,qBAAqB,EACtC,cAAc,EAAC,QAAQ,EACvB,iBAAiB,EAAE,iBAAiB,GACpC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiService.js","sourceRoot":"","sources":["../../../src/editor/services/aiService.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAmB,GAAG,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAY7D,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAoB;IAEpB,IAAI,GAAG,GAAG,4BAA4B,CAAC;IAEvC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAc,GAAG,EAAE,IAAI,CAAC,CAAC;IAEpD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;AAC7B,CAAC;
|
|
1
|
+
{"version":3,"file":"aiService.js","sourceRoot":"","sources":["../../../src/editor/services/aiService.ts"],"names":[],"mappings":"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"}
|
package/dist/revision.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "1.0.
|
|
2
|
-
export declare const buildDate = "2025-
|
|
1
|
+
export declare const version = "1.0.4027";
|
|
2
|
+
export declare const buildDate = "2025-08-01 01:57:56";
|
package/dist/revision.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export const version = "1.0.
|
|
2
|
-
export const buildDate = "2025-
|
|
1
|
+
export const version = "1.0.4027";
|
|
2
|
+
export const buildDate = "2025-08-01 01:57:56";
|
|
3
3
|
//# sourceMappingURL=revision.js.map
|
package/package.json
CHANGED
package/src/editor/ai/Agents.tsx
CHANGED
|
@@ -4,7 +4,13 @@ import { EditorAiTerminal } from "./EditorAiTerminal";
|
|
|
4
4
|
import { SimpleIconButton } from "../ui/SimpleIconButton";
|
|
5
5
|
import { Plus, X, History } from "lucide-react";
|
|
6
6
|
import { cn } from "../../lib/utils";
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
getAgents,
|
|
9
|
+
getAgent,
|
|
10
|
+
getChatHistory,
|
|
11
|
+
AgentChat,
|
|
12
|
+
AgentChatMessage,
|
|
13
|
+
} from "../services/agentService";
|
|
8
14
|
import { Message } from "./AiTerminal";
|
|
9
15
|
import {
|
|
10
16
|
Popover,
|
|
@@ -21,32 +27,40 @@ interface TerminalInstance {
|
|
|
21
27
|
messages?: Message[];
|
|
22
28
|
}
|
|
23
29
|
|
|
24
|
-
function convertAgentMessagesToTerminalMessages(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
30
|
+
function convertAgentMessagesToTerminalMessages(
|
|
31
|
+
agentMessages: AgentChatMessage[],
|
|
32
|
+
): Message[] {
|
|
33
|
+
return (
|
|
34
|
+
agentMessages
|
|
35
|
+
// Keep all messages including tool results for complete conversation context
|
|
36
|
+
.map((msg) => ({
|
|
37
|
+
id: msg.id,
|
|
38
|
+
content: msg.content,
|
|
39
|
+
name: msg.name,
|
|
40
|
+
role: msg.role,
|
|
41
|
+
tool_calls:
|
|
42
|
+
msg.toolCalls?.map((toolCall) => ({
|
|
43
|
+
id: toolCall.toolCallId,
|
|
44
|
+
displayName: toolCall.functionName,
|
|
45
|
+
function: {
|
|
46
|
+
name: toolCall.functionName,
|
|
47
|
+
arguments: toolCall.functionArguments || "",
|
|
48
|
+
},
|
|
49
|
+
})) || [],
|
|
50
|
+
tool_call_id: msg.toolCallId,
|
|
51
|
+
}))
|
|
52
|
+
);
|
|
42
53
|
}
|
|
43
54
|
|
|
44
55
|
function formatDateToLocalTime(dateString: string): string {
|
|
45
56
|
// Ensure the date string is treated as UTC if it doesn't have timezone info
|
|
46
|
-
const normalizedDate =
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
57
|
+
const normalizedDate =
|
|
58
|
+
dateString.includes("Z") ||
|
|
59
|
+
dateString.includes("+") ||
|
|
60
|
+
dateString.includes("-", 19)
|
|
61
|
+
? dateString
|
|
62
|
+
: dateString + "Z";
|
|
63
|
+
|
|
50
64
|
return new Date(normalizedDate).toLocaleString();
|
|
51
65
|
}
|
|
52
66
|
|
|
@@ -69,39 +83,41 @@ export function Agents({
|
|
|
69
83
|
loadAgentsFromBackend();
|
|
70
84
|
}, []);
|
|
71
85
|
|
|
72
|
-
|
|
73
|
-
|
|
74
86
|
const loadAgentsFromBackend = async () => {
|
|
75
87
|
try {
|
|
76
88
|
setLoadingAgents(true);
|
|
77
|
-
|
|
89
|
+
|
|
78
90
|
// Load active agents
|
|
79
91
|
const activeAgentsResult = await getAgents("active");
|
|
80
|
-
|
|
92
|
+
|
|
81
93
|
// Load inactive agents for history
|
|
82
94
|
const inactiveAgentsResult = await getChatHistory("completed", 20);
|
|
83
|
-
|
|
95
|
+
|
|
84
96
|
if (activeAgentsResult.type === "success" && activeAgentsResult.data) {
|
|
85
97
|
const activeAgents = activeAgentsResult.data;
|
|
86
|
-
|
|
98
|
+
|
|
87
99
|
// Create terminals for active agents
|
|
88
100
|
const activeTerminals: TerminalInstance[] = await Promise.all(
|
|
89
101
|
activeAgents.map(async (agent, index) => {
|
|
90
102
|
// Load messages for each active agent
|
|
91
103
|
const agentWithMessages = await loadAgentMessages(agent.id);
|
|
92
|
-
|
|
104
|
+
|
|
93
105
|
return {
|
|
94
106
|
id: `agent-${agent.id}`,
|
|
95
107
|
title: agent.name || `Agent ${index + 1}`,
|
|
96
108
|
agentId: agent.id,
|
|
97
109
|
options: initialOptions,
|
|
98
|
-
messages: agentWithMessages?.messages
|
|
110
|
+
messages: agentWithMessages?.messages
|
|
111
|
+
? convertAgentMessagesToTerminalMessages(
|
|
112
|
+
agentWithMessages.messages,
|
|
113
|
+
)
|
|
114
|
+
: [],
|
|
99
115
|
};
|
|
100
|
-
})
|
|
116
|
+
}),
|
|
101
117
|
);
|
|
102
|
-
|
|
118
|
+
|
|
103
119
|
setTerminals(activeTerminals);
|
|
104
|
-
|
|
120
|
+
|
|
105
121
|
// Set the first active terminal as active, or create a new one if none exist
|
|
106
122
|
if (activeTerminals.length > 0) {
|
|
107
123
|
setActiveTerminalId(activeTerminals[0]!.id);
|
|
@@ -117,11 +133,13 @@ export function Agents({
|
|
|
117
133
|
nextTerminalNumber.current++;
|
|
118
134
|
}
|
|
119
135
|
}
|
|
120
|
-
|
|
121
|
-
if (
|
|
136
|
+
|
|
137
|
+
if (
|
|
138
|
+
inactiveAgentsResult.type === "success" &&
|
|
139
|
+
inactiveAgentsResult.data
|
|
140
|
+
) {
|
|
122
141
|
setInactiveAgents(inactiveAgentsResult.data);
|
|
123
142
|
}
|
|
124
|
-
|
|
125
143
|
} catch (error) {
|
|
126
144
|
console.error("Failed to load agents:", error);
|
|
127
145
|
// Create a default terminal on error
|
|
@@ -138,7 +156,9 @@ export function Agents({
|
|
|
138
156
|
}
|
|
139
157
|
};
|
|
140
158
|
|
|
141
|
-
const loadAgentMessages = async (
|
|
159
|
+
const loadAgentMessages = async (
|
|
160
|
+
agentId: string,
|
|
161
|
+
): Promise<AgentChat | null> => {
|
|
142
162
|
try {
|
|
143
163
|
const result = await getAgent(agentId);
|
|
144
164
|
if (result.type === "success" && result.data) {
|
|
@@ -181,8 +201,8 @@ export function Agents({
|
|
|
181
201
|
|
|
182
202
|
const openAgentFromHistory = async (agent: AgentChat) => {
|
|
183
203
|
// Check if this agent is already open as a terminal
|
|
184
|
-
const existingTerminal = terminals.find(t => t.agentId === agent.id);
|
|
185
|
-
|
|
204
|
+
const existingTerminal = terminals.find((t) => t.agentId === agent.id);
|
|
205
|
+
|
|
186
206
|
if (existingTerminal) {
|
|
187
207
|
// Switch to existing terminal
|
|
188
208
|
setActiveTerminalId(existingTerminal.id);
|
|
@@ -192,14 +212,16 @@ export function Agents({
|
|
|
192
212
|
|
|
193
213
|
// Load the agent with messages
|
|
194
214
|
const agentWithMessages = await loadAgentMessages(agent.id);
|
|
195
|
-
|
|
215
|
+
|
|
196
216
|
// Create new terminal for this agent
|
|
197
217
|
const newTerminal: TerminalInstance = {
|
|
198
218
|
id: `agent-${agent.id}`,
|
|
199
219
|
title: agent.name,
|
|
200
220
|
agentId: agent.id,
|
|
201
221
|
options: initialOptions,
|
|
202
|
-
messages: agentWithMessages?.messages
|
|
222
|
+
messages: agentWithMessages?.messages
|
|
223
|
+
? convertAgentMessagesToTerminalMessages(agentWithMessages.messages)
|
|
224
|
+
: [],
|
|
203
225
|
};
|
|
204
226
|
|
|
205
227
|
setTerminals((prev) => [...prev, newTerminal]);
|
|
@@ -249,7 +271,10 @@ export function Agents({
|
|
|
249
271
|
|
|
250
272
|
{/* History Popover */}
|
|
251
273
|
<div className="flex items-center px-1">
|
|
252
|
-
<Popover
|
|
274
|
+
<Popover
|
|
275
|
+
open={historyPopoverOpen}
|
|
276
|
+
onOpenChange={setHistoryPopoverOpen}
|
|
277
|
+
>
|
|
253
278
|
<PopoverTrigger asChild>
|
|
254
279
|
<SimpleIconButton
|
|
255
280
|
onClick={() => {}}
|
|
@@ -259,7 +284,7 @@ export function Agents({
|
|
|
259
284
|
/>
|
|
260
285
|
</PopoverTrigger>
|
|
261
286
|
<PopoverContent className="w-64 p-0" align="end">
|
|
262
|
-
<div className="px-3 py-2 text-xs font-medium text-gray-500
|
|
287
|
+
<div className="border-b border-gray-100 px-3 py-2 text-xs font-medium text-gray-500">
|
|
263
288
|
Agent History
|
|
264
289
|
</div>
|
|
265
290
|
<div className="max-h-80 overflow-y-auto">
|
|
@@ -271,16 +296,16 @@ export function Agents({
|
|
|
271
296
|
inactiveAgents.map((agent) => (
|
|
272
297
|
<div
|
|
273
298
|
key={agent.id}
|
|
274
|
-
className="cursor-pointer px-3 py-2 text-xs hover:bg-gray-50
|
|
299
|
+
className="cursor-pointer border-b border-gray-50 px-3 py-2 text-xs hover:bg-gray-50"
|
|
275
300
|
onClick={() => openAgentFromHistory(agent)}
|
|
276
301
|
>
|
|
277
|
-
<div className="font-medium text-gray-900
|
|
302
|
+
<div className="truncate font-medium text-gray-900">
|
|
278
303
|
{agent.name}
|
|
279
304
|
</div>
|
|
280
|
-
<div className="text-gray-500
|
|
305
|
+
<div className="truncate text-gray-500">
|
|
281
306
|
{agent.profileName}
|
|
282
307
|
</div>
|
|
283
|
-
<div className="text-gray-400
|
|
308
|
+
<div className="text-xs text-gray-400">
|
|
284
309
|
{formatDateToLocalTime(agent.updatedDate)}
|
|
285
310
|
</div>
|
|
286
311
|
</div>
|
|
@@ -317,12 +342,20 @@ export function Agents({
|
|
|
317
342
|
activeTerminalId === terminal.id ? "block" : "hidden",
|
|
318
343
|
)}
|
|
319
344
|
>
|
|
320
|
-
<EditorAiTerminal
|
|
345
|
+
<EditorAiTerminal
|
|
321
346
|
options={{
|
|
322
347
|
...terminal.options,
|
|
323
348
|
// Pass the pre-loaded messages to the terminal
|
|
324
|
-
initialMessages: terminal.messages
|
|
325
|
-
}}
|
|
349
|
+
initialMessages: terminal.messages,
|
|
350
|
+
}}
|
|
351
|
+
onAgentNameUpdate={(name) => {
|
|
352
|
+
// Update the terminal title when agent name is updated
|
|
353
|
+
setTerminals((prev) =>
|
|
354
|
+
prev.map((t) =>
|
|
355
|
+
t.id === terminal.id ? { ...t, title: name } : t,
|
|
356
|
+
),
|
|
357
|
+
);
|
|
358
|
+
}}
|
|
326
359
|
/>
|
|
327
360
|
</div>
|
|
328
361
|
))}
|
|
@@ -4,8 +4,12 @@ import JSONPretty from "react-json-pretty";
|
|
|
4
4
|
import { useEditContext } from "../client/editContext";
|
|
5
5
|
import { EditOperation } from "../../types";
|
|
6
6
|
import { Message } from "./AiTerminal";
|
|
7
|
-
|
|
8
|
-
import {
|
|
7
|
+
|
|
8
|
+
import {
|
|
9
|
+
Popover,
|
|
10
|
+
PopoverContent,
|
|
11
|
+
PopoverTrigger,
|
|
12
|
+
} from "../../components/ui/popover";
|
|
9
13
|
import { SimpleTabs, Tab } from "../ui/SimpleTabs";
|
|
10
14
|
|
|
11
15
|
export function AiResponseMessage({
|
|
@@ -26,19 +30,23 @@ export function AiResponseMessage({
|
|
|
26
30
|
);
|
|
27
31
|
|
|
28
32
|
// Store tool calls to preserve them during streaming
|
|
29
|
-
const [preservedToolCalls, setPreservedToolCalls] = useState<{
|
|
33
|
+
const [preservedToolCalls, setPreservedToolCalls] = useState<{
|
|
34
|
+
[messageIndex: number]: any[];
|
|
35
|
+
}>({});
|
|
36
|
+
|
|
37
|
+
console.log(messages);
|
|
30
38
|
|
|
31
39
|
// Update preserved tool calls when messages change
|
|
32
40
|
useEffect(() => {
|
|
33
|
-
const newPreservedToolCalls = {...preservedToolCalls};
|
|
34
|
-
|
|
41
|
+
const newPreservedToolCalls = { ...preservedToolCalls };
|
|
42
|
+
|
|
35
43
|
messages.forEach((message, index) => {
|
|
36
44
|
if (message.tool_calls && message.tool_calls.length > 0) {
|
|
37
45
|
// Store non-empty tool calls
|
|
38
46
|
newPreservedToolCalls[index] = message.tool_calls;
|
|
39
47
|
}
|
|
40
48
|
});
|
|
41
|
-
|
|
49
|
+
|
|
42
50
|
setPreservedToolCalls(newPreservedToolCalls);
|
|
43
51
|
}, [messages]);
|
|
44
52
|
|
|
@@ -58,26 +66,37 @@ export function AiResponseMessage({
|
|
|
58
66
|
const parsed = JSON.parse(json);
|
|
59
67
|
return (
|
|
60
68
|
<div className="font-mono text-xs whitespace-pre-wrap">
|
|
61
|
-
<pre className="whitespace-pre-wrap
|
|
69
|
+
<pre className="break-words whitespace-pre-wrap">
|
|
62
70
|
{JSON.stringify(parsed, null, 2)}
|
|
63
71
|
</pre>
|
|
64
72
|
</div>
|
|
65
73
|
);
|
|
66
74
|
} catch (e) {
|
|
67
|
-
return
|
|
75
|
+
return (
|
|
76
|
+
<div className="font-mono text-xs break-words whitespace-pre-wrap">
|
|
77
|
+
{json}
|
|
78
|
+
</div>
|
|
79
|
+
);
|
|
68
80
|
}
|
|
69
81
|
};
|
|
70
82
|
|
|
71
83
|
// Helper function to create tabs for a tool call
|
|
72
|
-
const createToolCallTabs = (
|
|
84
|
+
const createToolCallTabs = (
|
|
85
|
+
toolCall: any,
|
|
86
|
+
result: Message | undefined,
|
|
87
|
+
): Tab[] => {
|
|
73
88
|
const tabs: Tab[] = [
|
|
74
89
|
{
|
|
75
90
|
id: `input-${toolCall.id}`,
|
|
76
91
|
label: "Input",
|
|
77
92
|
content: (
|
|
78
93
|
<div className="max-h-96 overflow-auto p-2">
|
|
79
|
-
<div className="text-sm font-semibold text-gray-700
|
|
80
|
-
|
|
94
|
+
<div className="mb-1 text-sm font-semibold text-gray-700">
|
|
95
|
+
Arguments:
|
|
96
|
+
</div>
|
|
97
|
+
<div className="text-xs">
|
|
98
|
+
{renderJsonOrText(toolCall.function.arguments)}
|
|
99
|
+
</div>
|
|
81
100
|
</div>
|
|
82
101
|
),
|
|
83
102
|
},
|
|
@@ -89,8 +108,12 @@ export function AiResponseMessage({
|
|
|
89
108
|
label: "Output",
|
|
90
109
|
content: (
|
|
91
110
|
<div className="max-h-96 overflow-auto p-2">
|
|
92
|
-
<div className="text-sm font-semibold text-gray-700
|
|
93
|
-
|
|
111
|
+
<div className="mb-1 text-sm font-semibold text-gray-700">
|
|
112
|
+
Result:
|
|
113
|
+
</div>
|
|
114
|
+
<div className="text-xs">
|
|
115
|
+
{renderJsonOrText(result.content || "")}
|
|
116
|
+
</div>
|
|
94
117
|
</div>
|
|
95
118
|
),
|
|
96
119
|
});
|
|
@@ -100,13 +123,19 @@ export function AiResponseMessage({
|
|
|
100
123
|
};
|
|
101
124
|
|
|
102
125
|
// Helper function to create tool call popover content
|
|
103
|
-
const ToolCallPopover = ({
|
|
126
|
+
const ToolCallPopover = ({
|
|
127
|
+
toolCall,
|
|
128
|
+
result,
|
|
129
|
+
}: {
|
|
130
|
+
toolCall: any;
|
|
131
|
+
result: Message | undefined;
|
|
132
|
+
}) => {
|
|
104
133
|
const [activeTab, setActiveTab] = useState(0);
|
|
105
134
|
const tabs = createToolCallTabs(toolCall, result);
|
|
106
|
-
|
|
135
|
+
|
|
107
136
|
return (
|
|
108
137
|
<div className="w-96">
|
|
109
|
-
<div className="mb-3
|
|
138
|
+
<div className="mb-3 border-b border-gray-200 pb-2">
|
|
110
139
|
<div className="text-sm font-semibold text-gray-800">
|
|
111
140
|
{toolCall.displayName || toolCall.function.name}
|
|
112
141
|
</div>
|
|
@@ -115,41 +144,50 @@ export function AiResponseMessage({
|
|
|
115
144
|
tabs={tabs}
|
|
116
145
|
activeTab={activeTab}
|
|
117
146
|
setActiveTab={setActiveTab}
|
|
118
|
-
className="border-b border-gray-200
|
|
147
|
+
className="mb-3 border-b border-gray-200"
|
|
119
148
|
tabClassName="text-xs"
|
|
120
149
|
/>
|
|
121
150
|
</div>
|
|
122
151
|
);
|
|
123
152
|
};
|
|
124
153
|
|
|
154
|
+
// Helper function to find tool result by tool call id
|
|
155
|
+
const findToolResult = (toolCallId: string): Message | undefined => {
|
|
156
|
+
return messages.find(
|
|
157
|
+
(msg) => msg.role === "tool" && msg.tool_call_id === toolCallId,
|
|
158
|
+
);
|
|
159
|
+
};
|
|
160
|
+
|
|
125
161
|
return (
|
|
126
162
|
<div>
|
|
127
163
|
{messages
|
|
128
164
|
.filter((x) => x.role !== "tool")
|
|
129
165
|
.map((message, filteredIndex) => {
|
|
130
166
|
// Find the original index of this message in the unfiltered array
|
|
131
|
-
const originalIndex = messages.findIndex(m => m.id === message.id);
|
|
167
|
+
const originalIndex = messages.findIndex((m) => m.id === message.id);
|
|
132
168
|
// Use preserved tool calls if current message has empty tool calls
|
|
133
|
-
const toolCalls =
|
|
134
|
-
|
|
135
|
-
|
|
169
|
+
const toolCalls =
|
|
170
|
+
message.tool_calls && message.tool_calls.length > 0
|
|
171
|
+
? message.tool_calls
|
|
172
|
+
: preservedToolCalls[originalIndex] || [];
|
|
136
173
|
return (
|
|
137
|
-
|
|
138
|
-
<div
|
|
139
|
-
dangerouslySetInnerHTML={{
|
|
140
|
-
__html: message.formattedContent || message.content || "",
|
|
141
|
-
}}
|
|
142
|
-
/>
|
|
174
|
+
<div key={filteredIndex}>
|
|
143
175
|
{toolCalls.length > 0 && (
|
|
144
|
-
<div className="
|
|
176
|
+
<div className="mb-2 flex flex-wrap gap-2">
|
|
145
177
|
{toolCalls.map((toolCall, toolIndex) => {
|
|
178
|
+
const toolResult = findToolResult(toolCall.id);
|
|
146
179
|
return (
|
|
147
|
-
<Popover
|
|
180
|
+
<Popover
|
|
181
|
+
key={toolIndex}
|
|
182
|
+
enableIframeClickDetection={false}
|
|
183
|
+
>
|
|
148
184
|
<PopoverTrigger asChild>
|
|
149
185
|
<div className="inline-flex cursor-pointer items-center gap-1 text-xs text-gray-500 hover:text-gray-700">
|
|
150
186
|
<i className="pi pi-wrench text-xs" />
|
|
151
187
|
<span>
|
|
152
|
-
{toolCall?.displayName ||
|
|
188
|
+
{toolCall?.displayName ||
|
|
189
|
+
toolCall?.function?.name ||
|
|
190
|
+
"tool call"}
|
|
153
191
|
</span>
|
|
154
192
|
</div>
|
|
155
193
|
</PopoverTrigger>
|
|
@@ -162,7 +200,10 @@ export function AiResponseMessage({
|
|
|
162
200
|
onClick={(e) => e.stopPropagation()}
|
|
163
201
|
>
|
|
164
202
|
<div className="max-h-[500px] overflow-hidden">
|
|
165
|
-
<ToolCallPopover
|
|
203
|
+
<ToolCallPopover
|
|
204
|
+
toolCall={toolCall}
|
|
205
|
+
result={toolResult}
|
|
206
|
+
/>
|
|
166
207
|
</div>
|
|
167
208
|
</PopoverContent>
|
|
168
209
|
</Popover>
|
|
@@ -170,6 +211,11 @@ export function AiResponseMessage({
|
|
|
170
211
|
})}
|
|
171
212
|
</div>
|
|
172
213
|
)}
|
|
214
|
+
<div
|
|
215
|
+
dangerouslySetInnerHTML={{
|
|
216
|
+
__html: message.formattedContent || message.content || "",
|
|
217
|
+
}}
|
|
218
|
+
/>
|
|
173
219
|
</div>
|
|
174
220
|
);
|
|
175
221
|
})}
|
|
@@ -26,6 +26,7 @@ type Response = {
|
|
|
26
26
|
numOutputTokens: number;
|
|
27
27
|
numCachedTokens: number;
|
|
28
28
|
state: string;
|
|
29
|
+
agentName?: string; // Updated agent name (only sent when the agent name has been updated)
|
|
29
30
|
};
|
|
30
31
|
|
|
31
32
|
export type ToolCall = {
|
|
@@ -64,11 +65,13 @@ export function AiTerminal({
|
|
|
64
65
|
createAiContext,
|
|
65
66
|
defaultProfile,
|
|
66
67
|
options,
|
|
68
|
+
onAgentNameUpdate,
|
|
67
69
|
}: {
|
|
68
70
|
closeButton?: React.ReactNode;
|
|
69
71
|
createAiContext: ({ editContext }: { editContext: any }) => AiContext;
|
|
70
72
|
defaultProfile?: string;
|
|
71
73
|
options?: AiTerminalOptions;
|
|
74
|
+
onAgentNameUpdate?: (name: string) => void;
|
|
72
75
|
}) {
|
|
73
76
|
const editContext = useEditContext();
|
|
74
77
|
const [showPredefined, setShowPredefined] = useState(false);
|
|
@@ -84,7 +87,7 @@ export function AiTerminal({
|
|
|
84
87
|
const [profiles, setProfiles] = useState<AiProfile[]>([]);
|
|
85
88
|
const [activeProfile, setActiveProfile] = useState<AiProfile>();
|
|
86
89
|
const [initialPromptExecuted, setInitialPromptExecuted] = useState(false);
|
|
87
|
-
const [agentId] = useState<string>(() => crypto.randomUUID());
|
|
90
|
+
const [agentId, setAgentId] = useState<string>(() => crypto.randomUUID());
|
|
88
91
|
const selection = editContext.selection;
|
|
89
92
|
const terminalRef = useRef<{ submit: () => void }>(null);
|
|
90
93
|
const [responseMessages, setResponseMessages] = useState<Message[]>(
|
|
@@ -183,40 +186,66 @@ export function AiTerminal({
|
|
|
183
186
|
// Create individual Terminal messages for each conversation message
|
|
184
187
|
const terminalMessages: TerminalMessage[] = [];
|
|
185
188
|
|
|
186
|
-
|
|
189
|
+
// Group messages by conversation turns (user + assistant pairs)
|
|
190
|
+
let i = 0;
|
|
191
|
+
while (i < formattedMessages.length) {
|
|
192
|
+
const message = formattedMessages[i];
|
|
193
|
+
if (!message) {
|
|
194
|
+
i++;
|
|
195
|
+
continue;
|
|
196
|
+
}
|
|
197
|
+
|
|
187
198
|
if (message.role === "user") {
|
|
188
199
|
// User messages appear as commands
|
|
189
200
|
terminalMessages.push({
|
|
190
201
|
type: "command",
|
|
191
202
|
text: message.content,
|
|
192
203
|
});
|
|
204
|
+
i++;
|
|
205
|
+
|
|
206
|
+
// Look for following assistant messages to group together
|
|
207
|
+
const assistantMessages: Message[] = [];
|
|
208
|
+
while (i < formattedMessages.length) {
|
|
209
|
+
const assistantMessage = formattedMessages[i];
|
|
210
|
+
if (assistantMessage && assistantMessage.role === "assistant") {
|
|
211
|
+
assistantMessages.push(assistantMessage);
|
|
212
|
+
i++;
|
|
213
|
+
} else {
|
|
214
|
+
break;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
// If we have assistant messages, render them with AiResponseMessage
|
|
219
|
+
if (assistantMessages.length > 0) {
|
|
220
|
+
terminalMessages.push({
|
|
221
|
+
type: "response",
|
|
222
|
+
text: (
|
|
223
|
+
<AiResponseMessage
|
|
224
|
+
messages={assistantMessages}
|
|
225
|
+
editOperations={[]} // No edit operations for historical messages
|
|
226
|
+
finished={true}
|
|
227
|
+
/>
|
|
228
|
+
),
|
|
229
|
+
});
|
|
230
|
+
}
|
|
193
231
|
} else if (message.role === "assistant") {
|
|
194
|
-
//
|
|
232
|
+
// Handle standalone assistant messages
|
|
195
233
|
terminalMessages.push({
|
|
196
234
|
type: "response",
|
|
197
235
|
text: (
|
|
198
|
-
<
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
}
|
|
236
|
+
<AiResponseMessage
|
|
237
|
+
messages={[message]}
|
|
238
|
+
editOperations={[]} // No edit operations for historical messages
|
|
239
|
+
finished={true}
|
|
202
240
|
/>
|
|
203
241
|
),
|
|
204
242
|
});
|
|
243
|
+
i++;
|
|
244
|
+
} else {
|
|
245
|
+
// Skip other message types (like tool messages)
|
|
246
|
+
i++;
|
|
205
247
|
}
|
|
206
|
-
|
|
207
|
-
if (message.tool_calls && message.tool_calls.length > 0) {
|
|
208
|
-
message.tool_calls.forEach((toolCall) => {
|
|
209
|
-
terminalMessages.push({
|
|
210
|
-
type: "response",
|
|
211
|
-
text: (
|
|
212
|
-
<div className="text-xs text-gray-1">
|
|
213
|
-
🔧 {toolCall.displayName}
|
|
214
|
-
</div>
|
|
215
|
-
),
|
|
216
|
-
})
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
});
|
|
248
|
+
}
|
|
220
249
|
|
|
221
250
|
setInitialTerminalMessages(terminalMessages);
|
|
222
251
|
}
|
|
@@ -308,8 +337,7 @@ export function AiTerminal({
|
|
|
308
337
|
const selectedText = editContext?.selectedRange?.text || null;
|
|
309
338
|
if (!activeProfile || !model) return;
|
|
310
339
|
|
|
311
|
-
//
|
|
312
|
-
const conversationHistory = [...messagesRef.current, userMessage];
|
|
340
|
+
// Only send the new user message - message history will be loaded from database
|
|
313
341
|
const messages = [
|
|
314
342
|
...(options?.hiddenSystemPrompt
|
|
315
343
|
? [
|
|
@@ -322,9 +350,13 @@ export function AiTerminal({
|
|
|
322
350
|
},
|
|
323
351
|
]
|
|
324
352
|
: []),
|
|
325
|
-
|
|
353
|
+
userMessage, // Send only the new user message
|
|
326
354
|
];
|
|
327
355
|
|
|
356
|
+
// Update local state to include the new user message for UI display
|
|
357
|
+
setMessages((prevMessages) => [...prevMessages, userMessage]);
|
|
358
|
+
setResponseMessages((prevMessages) => [...prevMessages, userMessage]);
|
|
359
|
+
|
|
328
360
|
const response = await executePrompt(
|
|
329
361
|
messages,
|
|
330
362
|
context,
|
|
@@ -346,6 +378,12 @@ export function AiTerminal({
|
|
|
346
378
|
|
|
347
379
|
if (response) {
|
|
348
380
|
handleResponse(response, callback, true);
|
|
381
|
+
|
|
382
|
+
// Handle agent name update
|
|
383
|
+
if ((response as any).agentName && onAgentNameUpdate) {
|
|
384
|
+
onAgentNameUpdate((response as any).agentName);
|
|
385
|
+
}
|
|
386
|
+
|
|
349
387
|
if (context.callback) context.callback(response);
|
|
350
388
|
editContext?.requestRefresh("immediate");
|
|
351
389
|
}
|
|
@@ -385,6 +423,8 @@ export function AiTerminal({
|
|
|
385
423
|
setResponseMessages([]);
|
|
386
424
|
setResponse(undefined);
|
|
387
425
|
setInitialTerminalMessages(undefined);
|
|
426
|
+
// Generate a new agentId when clearing the terminal to start fresh
|
|
427
|
+
setAgentId(crypto.randomUUID());
|
|
388
428
|
}}
|
|
389
429
|
initialMessages={initialTerminalMessages}
|
|
390
430
|
infobar={
|
|
@@ -5,9 +5,11 @@ import { createEditorAiContext } from "./editorAiContext";
|
|
|
5
5
|
export function EditorAiTerminal({
|
|
6
6
|
closeButton,
|
|
7
7
|
options,
|
|
8
|
+
onAgentNameUpdate,
|
|
8
9
|
}: {
|
|
9
10
|
closeButton?: React.ReactNode;
|
|
10
11
|
options?: AiTerminalOptions;
|
|
12
|
+
onAgentNameUpdate?: (name: string) => void;
|
|
11
13
|
}) {
|
|
12
14
|
return (
|
|
13
15
|
<AiTerminal
|
|
@@ -15,6 +17,7 @@ export function EditorAiTerminal({
|
|
|
15
17
|
closeButton={closeButton}
|
|
16
18
|
createAiContext={createEditorAiContext}
|
|
17
19
|
defaultProfile="Editor"
|
|
20
|
+
onAgentNameUpdate={onAgentNameUpdate}
|
|
18
21
|
/>
|
|
19
22
|
);
|
|
20
23
|
}
|
|
@@ -50,6 +50,8 @@ export interface ExecutePromptResponse {
|
|
|
50
50
|
deltaContent?: string;
|
|
51
51
|
previousContentLength?: number;
|
|
52
52
|
totalContentLength?: number;
|
|
53
|
+
// Updated agent name (only sent when the agent name has been updated)
|
|
54
|
+
agentName?: string;
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
// Unified options interface that supports both calling patterns
|
package/src/revision.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = "1.0.
|
|
2
|
-
export const buildDate = "2025-
|
|
1
|
+
export const version = "1.0.4027";
|
|
2
|
+
export const buildDate = "2025-08-01 01:57:56";
|