@alpaca-editor/core 1.0.4013 → 1.0.4015
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/components/ui/popover.js +6 -3
- package/dist/components/ui/popover.js.map +1 -1
- package/dist/editor/Terminal.d.ts +6 -0
- package/dist/editor/Terminal.js +10 -4
- package/dist/editor/Terminal.js.map +1 -1
- package/dist/editor/ai/Agents.js +133 -13
- package/dist/editor/ai/Agents.js.map +1 -1
- package/dist/editor/ai/AiTerminal.d.ts +2 -1
- package/dist/editor/ai/AiTerminal.js +86 -139
- package/dist/editor/ai/AiTerminal.js.map +1 -1
- package/dist/editor/media-selector/AiImageSearch.js +2 -1
- package/dist/editor/media-selector/AiImageSearch.js.map +1 -1
- package/dist/editor/media-selector/AiImageSearchPrompt.js +2 -1
- package/dist/editor/media-selector/AiImageSearchPrompt.js.map +1 -1
- package/dist/editor/page-editor-chrome/useInlineAICompletion.js +4 -2
- package/dist/editor/page-editor-chrome/useInlineAICompletion.js.map +1 -1
- package/dist/editor/services/agentService.d.ts +59 -0
- package/dist/editor/services/agentService.js +26 -0
- package/dist/editor/services/agentService.js.map +1 -0
- package/dist/editor/services/aiService.d.ts +22 -4
- package/dist/editor/services/aiService.js +131 -20
- package/dist/editor/services/aiService.js.map +1 -1
- package/dist/editor/services/contextService.js +6 -4
- package/dist/editor/services/contextService.js.map +1 -1
- package/dist/editor/sidebar/SidebarView.js +2 -5
- package/dist/editor/sidebar/SidebarView.js.map +1 -1
- package/dist/editor/sidebar/ViewSelector.js +1 -1
- package/dist/editor/sidebar/ViewSelector.js.map +1 -1
- package/dist/editor/ui/SimpleIconButton.d.ts +2 -2
- package/dist/editor/ui/SimpleIconButton.js +5 -3
- package/dist/editor/ui/SimpleIconButton.js.map +1 -1
- package/dist/editor/utils/jsonCleaner.d.ts +8 -0
- package/dist/editor/utils/jsonCleaner.js +76 -0
- package/dist/editor/utils/jsonCleaner.js.map +1 -0
- package/dist/editor/views/CompareView.js +2 -2
- package/dist/editor/views/CompareView.js.map +1 -1
- package/dist/page-wizard/steps/ContentStep.js +7 -2
- package/dist/page-wizard/steps/ContentStep.js.map +1 -1
- package/dist/page-wizard/steps/FindItemsStep.js +4 -1
- package/dist/page-wizard/steps/FindItemsStep.js.map +1 -1
- package/dist/page-wizard/steps/ImagesStep.js +13 -7
- package/dist/page-wizard/steps/ImagesStep.js.map +1 -1
- package/dist/page-wizard/steps/LayoutStep.d.ts +1 -1
- package/dist/page-wizard/steps/LayoutStep.js +22 -20
- package/dist/page-wizard/steps/LayoutStep.js.map +1 -1
- package/dist/page-wizard/steps/MetaDataStep.js +8 -15
- package/dist/page-wizard/steps/MetaDataStep.js.map +1 -1
- package/dist/page-wizard/steps/SelectStep.js +9 -4
- package/dist/page-wizard/steps/SelectStep.js.map +1 -1
- package/dist/page-wizard/steps/StructureStep.js +3 -1
- package/dist/page-wizard/steps/StructureStep.js.map +1 -1
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/styles.css +10 -11
- package/package.json +1 -1
- package/src/components/ui/popover.tsx +6 -3
- package/src/editor/Terminal.tsx +12 -3
- package/src/editor/ai/Agents.tsx +212 -16
- package/src/editor/ai/AiTerminal.tsx +113 -173
- package/src/editor/ai/GhostWriter.tsx_ +3 -3
- package/src/editor/media-selector/AiImageSearch.tsx +2 -2
- package/src/editor/media-selector/AiImageSearchPrompt.tsx +2 -2
- package/src/editor/page-editor-chrome/useInlineAICompletion.tsx +5 -5
- package/src/editor/services/agentService.ts +83 -0
- package/src/editor/services/aiService.ts +176 -33
- package/src/editor/services/contextService.ts +5 -6
- package/src/editor/sidebar/SidebarView.tsx +10 -6
- package/src/editor/sidebar/ViewSelector.tsx +2 -2
- package/src/editor/ui/SimpleIconButton.tsx +20 -14
- package/src/editor/utils/jsonCleaner.ts +92 -0
- package/src/editor/views/CompareView.tsx +2 -2
- package/src/page-wizard/steps/ContentStep.tsx +10 -9
- package/src/page-wizard/steps/FindItemsStep.tsx +7 -5
- package/src/page-wizard/steps/ImagesStep.tsx +16 -11
- package/src/page-wizard/steps/LayoutStep.tsx +24 -28
- package/src/page-wizard/steps/MetaDataStep.tsx +11 -21
- package/src/page-wizard/steps/SelectStep.tsx +11 -8
- package/src/page-wizard/steps/StructureStep.tsx +4 -5
- package/src/revision.ts +2 -2
|
@@ -17,19 +17,22 @@ function useIframeClickDetection(isOpen, onShouldClose) {
|
|
|
17
17
|
setTimeout(onShouldClose, 50);
|
|
18
18
|
};
|
|
19
19
|
// Listen for iframe focus events which indicate user clicked in iframe
|
|
20
|
-
|
|
20
|
+
// Only target iframes with the class "page-iframe"
|
|
21
|
+
const iframes = document.querySelectorAll("iframe.page-iframe");
|
|
21
22
|
iframes.forEach((iframe) => {
|
|
22
23
|
// Use capture phase to catch events before they're handled
|
|
24
|
+
const iframeElement = iframe;
|
|
23
25
|
iframe.addEventListener("mousedown", handleIframeInteraction, true);
|
|
24
|
-
|
|
26
|
+
iframeElement.contentWindow?.addEventListener("focus", handleIframeInteraction, true);
|
|
25
27
|
});
|
|
26
28
|
// Also listen for window blur which can indicate focus moved to iframe
|
|
27
29
|
window.addEventListener("blur", handleDocumentInteraction);
|
|
28
30
|
return () => {
|
|
29
31
|
window.removeEventListener("blur", handleDocumentInteraction);
|
|
30
32
|
iframes.forEach((iframe) => {
|
|
33
|
+
const iframeElement = iframe;
|
|
31
34
|
iframe.removeEventListener("mousedown", handleIframeInteraction, true);
|
|
32
|
-
|
|
35
|
+
iframeElement.contentWindow?.removeEventListener("focus", handleIframeInteraction, true);
|
|
33
36
|
});
|
|
34
37
|
};
|
|
35
38
|
}, [isOpen, onShouldClose]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popover.js","sourceRoot":"","sources":["../../../src/components/ui/popover.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,8EAA8E;AAC9E,SAAS,uBAAuB,CAAC,MAAe,EAAE,aAAyB;IACzE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,yBAAyB,GAAG,GAAG,EAAE;YACrC,wDAAwD;YACxD,aAAa,EAAE,CAAC;QAClB,CAAC,CAAC;QAEF,MAAM,uBAAuB,GAAG,CAAC,KAAY,EAAE,EAAE;YAC/C,2DAA2D;YAC3D,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC;QAEF,uEAAuE;QACvE,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"popover.js","sourceRoot":"","sources":["../../../src/components/ui/popover.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
type Message = {
|
|
3
|
+
text: React.ReactNode;
|
|
4
|
+
type: "command" | "response";
|
|
5
|
+
};
|
|
2
6
|
export declare const Terminal: React.ForwardRefExoticComponent<{
|
|
3
7
|
commandHandler: (text: string, callback: (text: React.ReactNode, finished: boolean) => void) => void;
|
|
4
8
|
prompt: string;
|
|
@@ -9,6 +13,8 @@ export declare const Terminal: React.ForwardRefExoticComponent<{
|
|
|
9
13
|
infobar?: React.ReactNode;
|
|
10
14
|
disabled?: boolean;
|
|
11
15
|
className?: string;
|
|
16
|
+
initialMessages?: Message[];
|
|
12
17
|
} & React.RefAttributes<{
|
|
13
18
|
submit: () => void;
|
|
14
19
|
}>>;
|
|
20
|
+
export {};
|
package/dist/editor/Terminal.js
CHANGED
|
@@ -5,7 +5,7 @@ import { classNames } from "primereact/utils";
|
|
|
5
5
|
import { SimpleIconButton } from "./ui/SimpleIconButton";
|
|
6
6
|
import { Trash2, Send } from "lucide-react";
|
|
7
7
|
export const Terminal = forwardRef((props, ref) => {
|
|
8
|
-
const { commandHandler, prompt, setPrompt, onReset, toolbar, statusbar, infobar, disabled, className, } = props;
|
|
8
|
+
const { commandHandler, prompt, setPrompt, onReset, toolbar, statusbar, infobar, disabled, className, initialMessages, } = props;
|
|
9
9
|
const [response, setResponse] = useState();
|
|
10
10
|
const [messages, setMessages] = useState([]);
|
|
11
11
|
const bottomRef = useRef(null);
|
|
@@ -29,6 +29,12 @@ export const Terminal = forwardRef((props, ref) => {
|
|
|
29
29
|
useEffect(() => {
|
|
30
30
|
messageRef.current = messages;
|
|
31
31
|
}, [messages]);
|
|
32
|
+
// Set initial messages if provided
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
if (initialMessages && initialMessages.length > 0 && messages.length === 0) {
|
|
35
|
+
setMessages(initialMessages);
|
|
36
|
+
}
|
|
37
|
+
}, [initialMessages]);
|
|
32
38
|
const callback = (text, finished) => {
|
|
33
39
|
if (!finished)
|
|
34
40
|
setResponse(text);
|
|
@@ -81,11 +87,11 @@ export const Terminal = forwardRef((props, ref) => {
|
|
|
81
87
|
// Scroll to bottom every time messages or response changes.
|
|
82
88
|
bottomRef.current?.scrollIntoView({ behavior: "smooth" });
|
|
83
89
|
}, [messages, response]);
|
|
84
|
-
const responseBoxClasses = "text-xs self-stretch text-gray-700 p-2 rounded
|
|
90
|
+
const responseBoxClasses = "text-xs self-stretch text-gray-700 p-2 rounded border border-theme-secondary bg-theme-secondary-light";
|
|
85
91
|
const getClasses = (m) => {
|
|
86
92
|
if (m.type === "response")
|
|
87
93
|
return responseBoxClasses;
|
|
88
|
-
return "text-xs text-gray-700 bg-indigo-100 p-2 rounded prompt";
|
|
94
|
+
return "text-xs text-gray-700 bg-indigo-100 border border-indigo-300 p-2 rounded prompt";
|
|
89
95
|
};
|
|
90
96
|
// Expose the submit function via the ref.
|
|
91
97
|
const submit = () => {
|
|
@@ -98,7 +104,7 @@ export const Terminal = forwardRef((props, ref) => {
|
|
|
98
104
|
}
|
|
99
105
|
setMessages([...messages, { type: "command", text: prompt }]);
|
|
100
106
|
setPrompt("");
|
|
101
|
-
setResponse("
|
|
107
|
+
setResponse("");
|
|
102
108
|
commandHandler(prompt, callback);
|
|
103
109
|
};
|
|
104
110
|
useImperativeHandle(ref, () => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Terminal.js","sourceRoot":"","sources":["../../src/editor/Terminal.tsx"],"names":[],"mappings":";AAAA,OAAc,EACZ,UAAU,EACV,SAAS,EACT,MAAM,EACN,QAAQ,EACR,mBAAmB,GACpB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAO5C,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"Terminal.js","sourceRoot":"","sources":["../../src/editor/Terminal.tsx"],"names":[],"mappings":"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"}
|
package/dist/editor/ai/Agents.js
CHANGED
|
@@ -1,19 +1,109 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useState, useRef } from "react";
|
|
2
|
+
import { useState, useRef, useEffect } from "react";
|
|
3
3
|
import { EditorAiTerminal } from "./EditorAiTerminal";
|
|
4
4
|
import { SimpleIconButton } from "../ui/SimpleIconButton";
|
|
5
|
-
import { Plus, X } from "lucide-react";
|
|
5
|
+
import { Plus, X, History } from "lucide-react";
|
|
6
6
|
import { cn } from "../../lib/utils";
|
|
7
|
+
import { getAgents, getAgent, getChatHistory } from "../services/agentService";
|
|
8
|
+
import { Popover, PopoverContent, PopoverTrigger, } from "../../components/ui/popover";
|
|
9
|
+
function convertAgentMessagesToTerminalMessages(agentMessages) {
|
|
10
|
+
return agentMessages.map(msg => ({
|
|
11
|
+
id: msg.id,
|
|
12
|
+
content: msg.content,
|
|
13
|
+
name: msg.name,
|
|
14
|
+
role: msg.role,
|
|
15
|
+
tool_calls: msg.functionName ? [{
|
|
16
|
+
id: msg.toolCallId || msg.id,
|
|
17
|
+
displayName: msg.functionName,
|
|
18
|
+
function: {
|
|
19
|
+
name: msg.functionName,
|
|
20
|
+
arguments: msg.functionArguments || ""
|
|
21
|
+
}
|
|
22
|
+
}] : [],
|
|
23
|
+
tool_call_id: msg.toolCallId
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
7
26
|
export function Agents({ closeButton, initialOptions, }) {
|
|
8
|
-
const [terminals, setTerminals] = useState([
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
27
|
+
const [terminals, setTerminals] = useState([]);
|
|
28
|
+
const [activeTerminalId, setActiveTerminalId] = useState(null);
|
|
29
|
+
const [inactiveAgents, setInactiveAgents] = useState([]);
|
|
30
|
+
const [historyPopoverOpen, setHistoryPopoverOpen] = useState(false);
|
|
31
|
+
const [loadingAgents, setLoadingAgents] = useState(true);
|
|
32
|
+
const nextTerminalNumber = useRef(1);
|
|
33
|
+
// Load agents from backend on mount
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
loadAgentsFromBackend();
|
|
36
|
+
}, []);
|
|
37
|
+
const loadAgentsFromBackend = async () => {
|
|
38
|
+
try {
|
|
39
|
+
setLoadingAgents(true);
|
|
40
|
+
// Load active agents
|
|
41
|
+
const activeAgentsResult = await getAgents("active");
|
|
42
|
+
// Load inactive agents for history
|
|
43
|
+
const inactiveAgentsResult = await getChatHistory("completed", 20);
|
|
44
|
+
if (activeAgentsResult.type === "success" && activeAgentsResult.data) {
|
|
45
|
+
const activeAgents = activeAgentsResult.data;
|
|
46
|
+
// Create terminals for active agents
|
|
47
|
+
const activeTerminals = await Promise.all(activeAgents.map(async (agent, index) => {
|
|
48
|
+
// Load messages for each active agent
|
|
49
|
+
const agentWithMessages = await loadAgentMessages(agent.id);
|
|
50
|
+
return {
|
|
51
|
+
id: `agent-${agent.id}`,
|
|
52
|
+
title: agent.name || `Agent ${index + 1}`,
|
|
53
|
+
agentId: agent.id,
|
|
54
|
+
options: initialOptions,
|
|
55
|
+
messages: agentWithMessages?.messages ? convertAgentMessagesToTerminalMessages(agentWithMessages.messages) : []
|
|
56
|
+
};
|
|
57
|
+
}));
|
|
58
|
+
setTerminals(activeTerminals);
|
|
59
|
+
// Set the first active terminal as active, or create a new one if none exist
|
|
60
|
+
if (activeTerminals.length > 0) {
|
|
61
|
+
setActiveTerminalId(activeTerminals[0].id);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
// Create a default terminal if no active agents
|
|
65
|
+
const defaultTerminal = {
|
|
66
|
+
id: `terminal-${nextTerminalNumber.current}`,
|
|
67
|
+
title: `Agent ${nextTerminalNumber.current}`,
|
|
68
|
+
options: initialOptions,
|
|
69
|
+
};
|
|
70
|
+
setTerminals([defaultTerminal]);
|
|
71
|
+
setActiveTerminalId(defaultTerminal.id);
|
|
72
|
+
nextTerminalNumber.current++;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (inactiveAgentsResult.type === "success" && inactiveAgentsResult.data) {
|
|
76
|
+
setInactiveAgents(inactiveAgentsResult.data);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
console.error("Failed to load agents:", error);
|
|
81
|
+
// Create a default terminal on error
|
|
82
|
+
const defaultTerminal = {
|
|
83
|
+
id: `terminal-${nextTerminalNumber.current}`,
|
|
84
|
+
title: `Agent ${nextTerminalNumber.current}`,
|
|
85
|
+
options: initialOptions,
|
|
86
|
+
};
|
|
87
|
+
setTerminals([defaultTerminal]);
|
|
88
|
+
setActiveTerminalId(defaultTerminal.id);
|
|
89
|
+
nextTerminalNumber.current++;
|
|
90
|
+
}
|
|
91
|
+
finally {
|
|
92
|
+
setLoadingAgents(false);
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
const loadAgentMessages = async (agentId) => {
|
|
96
|
+
try {
|
|
97
|
+
const result = await getAgent(agentId);
|
|
98
|
+
if (result.type === "success" && result.data) {
|
|
99
|
+
return result.data;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
console.error(`Failed to load messages for agent ${agentId}:`, error);
|
|
104
|
+
}
|
|
105
|
+
return null;
|
|
106
|
+
};
|
|
17
107
|
const addTerminal = () => {
|
|
18
108
|
const newTerminal = {
|
|
19
109
|
id: `terminal-${nextTerminalNumber.current}`,
|
|
@@ -38,11 +128,41 @@ export function Agents({ closeButton, initialOptions, }) {
|
|
|
38
128
|
return filtered;
|
|
39
129
|
});
|
|
40
130
|
};
|
|
41
|
-
|
|
131
|
+
const openAgentFromHistory = async (agent) => {
|
|
132
|
+
// Check if this agent is already open as a terminal
|
|
133
|
+
const existingTerminal = terminals.find(t => t.agentId === agent.id);
|
|
134
|
+
if (existingTerminal) {
|
|
135
|
+
// Switch to existing terminal
|
|
136
|
+
setActiveTerminalId(existingTerminal.id);
|
|
137
|
+
setHistoryPopoverOpen(false);
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
// Load the agent with messages
|
|
141
|
+
const agentWithMessages = await loadAgentMessages(agent.id);
|
|
142
|
+
// Create new terminal for this agent
|
|
143
|
+
const newTerminal = {
|
|
144
|
+
id: `agent-${agent.id}`,
|
|
145
|
+
title: agent.name,
|
|
146
|
+
agentId: agent.id,
|
|
147
|
+
options: initialOptions,
|
|
148
|
+
messages: agentWithMessages?.messages ? convertAgentMessagesToTerminalMessages(agentWithMessages.messages) : []
|
|
149
|
+
};
|
|
150
|
+
setTerminals((prev) => [...prev, newTerminal]);
|
|
151
|
+
setActiveTerminalId(newTerminal.id);
|
|
152
|
+
setHistoryPopoverOpen(false);
|
|
153
|
+
};
|
|
154
|
+
if (loadingAgents) {
|
|
155
|
+
return (_jsx("div", { className: "flex h-full items-center justify-center", children: _jsx("div", { className: "text-sm text-gray-500", children: "Loading agents..." }) }));
|
|
156
|
+
}
|
|
157
|
+
return (_jsxs("div", { className: "flex h-full flex-col", children: [_jsxs("div", { className: "flex items-center border-b border-gray-200 bg-gray-50", children: [_jsx("div", { className: "flex flex-1 overflow-x-auto", children: terminals.map((terminal) => (_jsxs("div", { className: cn("flex min-w-0 cursor-pointer items-center gap-1 border-r border-gray-200 px-3 py-2 text-xs", activeTerminalId === terminal.id
|
|
42
158
|
? "border-b-white bg-white"
|
|
43
159
|
: "hover:bg-gray-100"), onClick: () => setActiveTerminalId(terminal.id), children: [_jsx("span", { className: "truncate", children: terminal.title }), terminals.length > 1 && (_jsx(SimpleIconButton, { onClick: (e) => {
|
|
44
160
|
e.stopPropagation();
|
|
45
161
|
closeTerminal(terminal.id);
|
|
46
|
-
}, icon: _jsx(X, { className: "size-
|
|
162
|
+
}, 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 border-b border-gray-100", 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 px-3 py-2 text-xs hover:bg-gray-50 border-b border-gray-50", onClick: () => openAgentFromHistory(agent), children: [_jsx("div", { className: "font-medium text-gray-900 truncate", children: agent.name }), _jsx("div", { className: "text-gray-500 truncate", children: agent.profileName }), _jsx("div", { className: "text-gray-400 text-xs", children: new Date(agent.updatedDate).toLocaleString() })] }, 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: {
|
|
163
|
+
...terminal.options,
|
|
164
|
+
// Pass the pre-loaded messages to the terminal
|
|
165
|
+
initialMessages: terminal.messages
|
|
166
|
+
} }) }, terminal.id))) })] }));
|
|
47
167
|
}
|
|
48
168
|
//# 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,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Agents.js","sourceRoot":"","sources":["../../../src/editor/ai/Agents.tsx"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ export type ToolCall = {
|
|
|
16
16
|
};
|
|
17
17
|
};
|
|
18
18
|
export type Message = {
|
|
19
|
-
id:
|
|
19
|
+
id: string;
|
|
20
20
|
content: string;
|
|
21
21
|
formattedContent?: string;
|
|
22
22
|
name: string;
|
|
@@ -32,6 +32,7 @@ export type AiContext = {
|
|
|
32
32
|
export type AiTerminalOptions = {
|
|
33
33
|
initialPrompt?: string;
|
|
34
34
|
hiddenSystemPrompt?: string;
|
|
35
|
+
initialMessages?: Message[];
|
|
35
36
|
};
|
|
36
37
|
export declare function AiTerminal({ closeButton, createAiContext, defaultProfile, options, }: {
|
|
37
38
|
closeButton?: React.ReactNode;
|