@parhelia/core 0.1.12744 → 0.1.12752
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/agents-view/AgentsView.js +1 -1
- package/dist/agents-view/AgentsView.js.map +1 -1
- package/dist/agents-view/AgentsWorkspaceView.js +41 -21
- package/dist/agents-view/AgentsWorkspaceView.js.map +1 -1
- package/dist/components/ui/PlaceholderInput.js +3 -3
- package/dist/components/ui/PlaceholderInput.js.map +1 -1
- package/dist/components/ui/PlaceholderInputTypes.js +2 -2
- package/dist/components/ui/PlaceholderInputTypes.js.map +1 -1
- package/dist/components/ui/PlaceholderItemSelector.js +2 -2
- package/dist/components/ui/PlaceholderItemSelector.js.map +1 -1
- package/dist/editor/LinkEditorDialog.js +2 -2
- package/dist/editor/LinkEditorDialog.js.map +1 -1
- package/dist/editor/ai/AgentBanners.d.ts +11 -0
- package/dist/editor/ai/AgentBanners.js +16 -0
- package/dist/editor/ai/AgentBanners.js.map +1 -0
- package/dist/editor/ai/AgentCostDisplay.d.ts +12 -0
- package/dist/editor/ai/AgentCostDisplay.js +24 -1
- package/dist/editor/ai/AgentCostDisplay.js.map +1 -1
- package/dist/editor/ai/AgentDocumentList.js +5 -4
- package/dist/editor/ai/AgentDocumentList.js.map +1 -1
- package/dist/editor/ai/AgentInlineDialogContent.d.ts +17 -0
- package/dist/editor/ai/AgentInlineDialogContent.js +32 -0
- package/dist/editor/ai/AgentInlineDialogContent.js.map +1 -0
- package/dist/editor/ai/AgentSharingSection.d.ts +6 -0
- package/dist/editor/ai/AgentSharingSection.js +149 -0
- package/dist/editor/ai/AgentSharingSection.js.map +1 -0
- package/dist/editor/ai/AgentTerminal.d.ts +2 -1
- package/dist/editor/ai/AgentTerminal.js +298 -969
- package/dist/editor/ai/AgentTerminal.js.map +1 -1
- package/dist/editor/ai/AgentTerminalStatusBar.d.ts +18 -0
- package/dist/editor/ai/AgentTerminalStatusBar.js +431 -126
- package/dist/editor/ai/AgentTerminalStatusBar.js.map +1 -1
- package/dist/editor/ai/Agents.js +1 -1
- package/dist/editor/ai/Agents.js.map +1 -1
- package/dist/editor/ai/HeartbeatMessage.d.ts +4 -0
- package/dist/editor/ai/HeartbeatMessage.js +7 -0
- package/dist/editor/ai/HeartbeatMessage.js.map +1 -0
- package/dist/editor/ai/InitialThinkingSplash.d.ts +3 -0
- package/dist/editor/ai/InitialThinkingSplash.js +9 -0
- package/dist/editor/ai/InitialThinkingSplash.js.map +1 -0
- package/dist/editor/ai/InlineAiDialog.js +50 -2
- package/dist/editor/ai/InlineAiDialog.js.map +1 -1
- package/dist/editor/ai/QueuedPromptsPanel.d.ts +4 -0
- package/dist/editor/ai/QueuedPromptsPanel.js +36 -0
- package/dist/editor/ai/QueuedPromptsPanel.js.map +1 -0
- package/dist/editor/ai/TodoListPanel.d.ts +5 -0
- package/dist/editor/ai/TodoListPanel.js +113 -0
- package/dist/editor/ai/TodoListPanel.js.map +1 -0
- package/dist/editor/ai/ToolCallDisplay.js +136 -136
- package/dist/editor/ai/ToolCallDisplay.js.map +1 -1
- package/dist/editor/ai/UserMessage.d.ts +4 -0
- package/dist/editor/ai/UserMessage.js +42 -0
- package/dist/editor/ai/UserMessage.js.map +1 -0
- package/dist/editor/ai/agentMessageConversion.d.ts +11 -0
- package/dist/editor/ai/agentMessageConversion.js +134 -0
- package/dist/editor/ai/agentMessageConversion.js.map +1 -0
- package/dist/editor/ai/agentMessageGrouping.d.ts +22 -0
- package/dist/editor/ai/agentMessageGrouping.js +103 -0
- package/dist/editor/ai/agentMessageGrouping.js.map +1 -0
- package/dist/editor/ai/agentMessageHelpers.d.ts +23 -0
- package/dist/editor/ai/agentMessageHelpers.js +124 -0
- package/dist/editor/ai/agentMessageHelpers.js.map +1 -0
- package/dist/editor/ai/agentMessageMarkdown.d.ts +2 -0
- package/dist/editor/ai/agentMessageMarkdown.js +14 -0
- package/dist/editor/ai/agentMessageMarkdown.js.map +1 -0
- package/dist/editor/ai/agentTodoExtraction.d.ts +12 -0
- package/dist/editor/ai/agentTodoExtraction.js +205 -0
- package/dist/editor/ai/agentTodoExtraction.js.map +1 -0
- package/dist/editor/client/EditorShell.js +38 -51
- package/dist/editor/client/EditorShell.js.map +1 -1
- package/dist/editor/client/editContext.d.ts +1 -0
- package/dist/editor/client/editContext.js.map +1 -1
- package/dist/editor/client/operations.d.ts +3 -1
- package/dist/editor/client/operations.js +20 -2
- package/dist/editor/client/operations.js.map +1 -1
- package/dist/editor/menubar/VersionPreviewCard.js +34 -3
- package/dist/editor/menubar/VersionPreviewCard.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/ViewportControls.js +2 -2
- package/dist/editor/menubar/toolbar-sections/ViewportControls.js.map +1 -1
- package/dist/editor/reviews/SuggestedEdit.js +65 -48
- package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
- package/dist/editor/reviews/SuggestionDisplayPopover.js +5 -1
- package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
- package/dist/editor/services/agentService.d.ts +24 -0
- package/dist/editor/services/agentService.js +40 -0
- package/dist/editor/services/agentService.js.map +1 -1
- package/dist/editor/services/aiService.d.ts +10 -0
- package/dist/editor/services/aiService.js.map +1 -1
- package/dist/editor/settings/panels/AgentProfileConfigPanel.js +1 -1
- package/dist/editor/settings/panels/AgentProfileConfigPanel.js.map +1 -1
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/task-board/TaskBoardWorkspace.js +57 -26
- package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
- package/dist/task-board/components/ProjectDashboard.js +2 -3
- package/dist/task-board/components/ProjectDashboard.js.map +1 -1
- package/dist/task-board/components/TaskBoardTitlebar.js +2 -1
- package/dist/task-board/components/TaskBoardTitlebar.js.map +1 -1
- package/dist/task-board/components/TaskDetailPanel.d.ts +8 -0
- package/dist/task-board/components/TaskDetailPanel.js +5 -3
- package/dist/task-board/components/TaskDetailPanel.js.map +1 -1
- package/package.json +1 -1
- package/styles.css +11 -10
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { ChevronDown, ChevronUp, Target, User } from "lucide-react";
|
|
4
|
+
import { formatTime } from "../utils";
|
|
5
|
+
import { MarkdownDisplay } from "../../components/MarkdownDisplay";
|
|
6
|
+
import { userMessageMarkdownComponents } from "./agentMessageMarkdown";
|
|
7
|
+
export const UserMessage = ({ message }) => {
|
|
8
|
+
const content = message.content || "";
|
|
9
|
+
const [isTriggerExpanded, setIsTriggerExpanded] = useState(false);
|
|
10
|
+
const triggerPattern = /^\[Trigger: ([^\]]+)\]:\s*(.*)$/s;
|
|
11
|
+
const triggerMatch = content.match(triggerPattern);
|
|
12
|
+
const triggerName = triggerMatch?.[1]?.trim() || "";
|
|
13
|
+
const triggerContent = triggerMatch?.[2] || "";
|
|
14
|
+
const isTriggerMessage = triggerName.length > 0;
|
|
15
|
+
if (isTriggerMessage) {
|
|
16
|
+
return (_jsx("div", { className: "px-4 py-2", children: _jsxs("div", { className: "text-[11px]", children: [_jsxs("button", { type: "button", onClick: () => setIsTriggerExpanded((expanded) => !expanded), className: "text-theme-secondary hover:bg-theme-hover flex w-full items-center gap-2 rounded-md border-l-2 border-cyan-200 px-2 py-1 text-left transition-colors", "data-testid": "trigger-message-toggle", "data-expanded": isTriggerExpanded ? "true" : "false", children: [_jsx(Target, { className: "h-3.5 w-3.5 shrink-0", strokeWidth: 1.5 }), _jsxs("span", { className: "truncate font-medium", children: ["Trigger: ", triggerName] }), message.createdDate && (_jsx("span", { className: "ml-1 shrink-0 text-[10px] text-gray-400", children: formatTime(new Date(message.createdDate)) })), _jsx("span", { className: "ml-auto shrink-0", children: isTriggerExpanded ? (_jsx(ChevronUp, { className: "h-3.5 w-3.5" })) : (_jsx(ChevronDown, { className: "h-3.5 w-3.5" })) })] }), isTriggerExpanded && (_jsx("div", { className: "mt-1 border-l-2 border-cyan-100 pl-[1.35rem] text-[11px] text-gray-600", children: _jsx(MarkdownDisplay, { source: triggerContent, components: userMessageMarkdownComponents }) }))] }) }));
|
|
17
|
+
}
|
|
18
|
+
const fromPattern = /^\[From ([^\]]+)\]:\s*(.*)$/s;
|
|
19
|
+
const match = content.match(fromPattern);
|
|
20
|
+
let sourceAgentName;
|
|
21
|
+
let displayContent = content;
|
|
22
|
+
if (match && match[1]) {
|
|
23
|
+
const extractedName = match[1];
|
|
24
|
+
if (extractedName.toLowerCase() === "user") {
|
|
25
|
+
sourceAgentName = undefined;
|
|
26
|
+
displayContent = content;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
sourceAgentName = extractedName;
|
|
30
|
+
displayContent = match[2] || "";
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
sourceAgentName =
|
|
35
|
+
message.sourceAgentName ||
|
|
36
|
+
message.metadata?.sourceAgentName ||
|
|
37
|
+
message.sourceAgent?.name;
|
|
38
|
+
}
|
|
39
|
+
const displayName = sourceAgentName ? `[From ${sourceAgentName}]` : "You";
|
|
40
|
+
return (_jsxs("div", { className: "flex gap-3 p-4", children: [_jsx("div", { className: "shrink-0", children: _jsx(User, { className: "text-theme-secondary h-5 w-5", strokeWidth: 1 }) }), _jsxs("div", { className: "min-w-0 flex-1 select-text", children: [_jsxs("div", { className: "mb-1 flex items-center gap-2", children: [_jsx("span", { className: "text-[12px] font-medium text-gray-900", children: displayName }), message.createdDate && (_jsx("span", { className: "text-[12px] text-gray-400", "data-testid": "user-message-timestamp", "data-timestamp": message.createdDate, children: formatTime(new Date(message.createdDate)) }))] }), _jsx("div", { className: "prose prose max-w-none text-[12px] text-gray-700 select-text", children: _jsx(MarkdownDisplay, { source: displayContent, components: userMessageMarkdownComponents }) })] })] }));
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=UserMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserMessage.js","sourceRoot":"","sources":["../../../src/editor/ai/UserMessage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AgentChatMessage } from "../services/agentService";
|
|
2
|
+
import { Message } from "./types";
|
|
3
|
+
export declare const stringifyToolField: (value: unknown) => string | undefined;
|
|
4
|
+
export declare const parseToolResultValue: (value: unknown) => string | object | undefined;
|
|
5
|
+
export declare const getFirstToolCallEnvelope: (data: any) => any;
|
|
6
|
+
export declare const extractToolCallFields: (data: any) => {
|
|
7
|
+
toolCallId?: string;
|
|
8
|
+
functionName: string;
|
|
9
|
+
functionArguments: string;
|
|
10
|
+
};
|
|
11
|
+
export declare const convertAgentMessagesToAiFormat: (agentMessages: AgentChatMessage[]) => Message[];
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
export const stringifyToolField = (value) => {
|
|
2
|
+
if (value === undefined || value === null)
|
|
3
|
+
return undefined;
|
|
4
|
+
if (typeof value === "string") {
|
|
5
|
+
return value.trim().length > 0 ? value : undefined;
|
|
6
|
+
}
|
|
7
|
+
try {
|
|
8
|
+
return JSON.stringify(value);
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return String(value);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
export const parseToolResultValue = (value) => {
|
|
15
|
+
if (value === undefined || value === null) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
if (typeof value === "object") {
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
if (typeof value !== "string") {
|
|
22
|
+
return String(value);
|
|
23
|
+
}
|
|
24
|
+
const trimmed = value.trim();
|
|
25
|
+
if (!trimmed) {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
let parsed = JSON.parse(trimmed);
|
|
30
|
+
if (typeof parsed === "string" &&
|
|
31
|
+
(parsed.startsWith("{") || parsed.startsWith("["))) {
|
|
32
|
+
parsed = JSON.parse(parsed);
|
|
33
|
+
}
|
|
34
|
+
if (parsed && typeof parsed === "object") {
|
|
35
|
+
return parsed;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
// Fall back to the original string when the payload is plain text.
|
|
40
|
+
}
|
|
41
|
+
return value;
|
|
42
|
+
};
|
|
43
|
+
export const getFirstToolCallEnvelope = (data) => {
|
|
44
|
+
if (!data || typeof data !== "object")
|
|
45
|
+
return undefined;
|
|
46
|
+
const direct = data.toolCall || data.tool_call;
|
|
47
|
+
if (direct)
|
|
48
|
+
return direct;
|
|
49
|
+
const arrayCandidates = [data.tool_calls, data.toolCalls];
|
|
50
|
+
for (const candidate of arrayCandidates) {
|
|
51
|
+
if (Array.isArray(candidate) && candidate.length > 0) {
|
|
52
|
+
return candidate[0];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return undefined;
|
|
56
|
+
};
|
|
57
|
+
export const extractToolCallFields = (data) => {
|
|
58
|
+
const envelope = getFirstToolCallEnvelope(data);
|
|
59
|
+
const functionPayload = data?.function || envelope?.function;
|
|
60
|
+
const functionName = data?.functionName ||
|
|
61
|
+
data?.name ||
|
|
62
|
+
functionPayload?.name ||
|
|
63
|
+
envelope?.functionName ||
|
|
64
|
+
envelope?.name ||
|
|
65
|
+
"unknown";
|
|
66
|
+
const toolCallId = data?.toolCallId || data?.id || envelope?.id;
|
|
67
|
+
const functionArguments = stringifyToolField(data?.functionArguments) ||
|
|
68
|
+
stringifyToolField(data?.arguments) ||
|
|
69
|
+
stringifyToolField(functionPayload?.arguments) ||
|
|
70
|
+
stringifyToolField(envelope?.functionArguments) ||
|
|
71
|
+
stringifyToolField(envelope?.arguments) ||
|
|
72
|
+
"{}";
|
|
73
|
+
return {
|
|
74
|
+
toolCallId,
|
|
75
|
+
functionName,
|
|
76
|
+
functionArguments,
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
export const convertAgentMessagesToAiFormat = (agentMessages) => {
|
|
80
|
+
return agentMessages.map((agentMessage) => {
|
|
81
|
+
const message = {
|
|
82
|
+
id: agentMessage.id,
|
|
83
|
+
content: agentMessage.content,
|
|
84
|
+
reasoning: agentMessage.reasoning,
|
|
85
|
+
formattedContent: agentMessage.content
|
|
86
|
+
?.replace(/^######\s+(.+)$/gm, "<h6>$1</h6>")
|
|
87
|
+
?.replace(/^#####\s+(.+)$/gm, "<h5>$1</h5>")
|
|
88
|
+
?.replace(/^####\s+(.+)$/gm, "<h4>$1</h4>")
|
|
89
|
+
?.replace(/^###\s+(.+)$/gm, "<h3>$1</h3>")
|
|
90
|
+
?.replace(/^##\s+(.+)$/gm, "<h2>$1</h2>")
|
|
91
|
+
?.replace(/^#\s+(.+)$/gm, "<h1>$1</h1>")
|
|
92
|
+
?.replace(/\*\*(.*?)\*\*/g, "<strong>$1</strong>")
|
|
93
|
+
?.replace(/\n/g, "<br/>"),
|
|
94
|
+
name: agentMessage.name,
|
|
95
|
+
role: agentMessage.role,
|
|
96
|
+
createdDate: agentMessage.createdDate,
|
|
97
|
+
tool_calls: agentMessage.toolCalls
|
|
98
|
+
? agentMessage.toolCalls.map((toolCall) => {
|
|
99
|
+
const isPruned = !!toolCall.isPruned ||
|
|
100
|
+
/^PRUNED$/i.test(toolCall.functionError || "");
|
|
101
|
+
const displayResult = parseToolResultValue(toolCall.functionResultRichContent) ?? toolCall.functionResult;
|
|
102
|
+
return {
|
|
103
|
+
id: toolCall.toolCallId,
|
|
104
|
+
displayName: toolCall.functionName,
|
|
105
|
+
function: {
|
|
106
|
+
name: toolCall.functionName,
|
|
107
|
+
arguments: toolCall.functionArguments,
|
|
108
|
+
result: displayResult,
|
|
109
|
+
error: toolCall.functionError,
|
|
110
|
+
},
|
|
111
|
+
requiresApproval: toolCall.requiresApproval,
|
|
112
|
+
isPruned,
|
|
113
|
+
prunedAt: toolCall.prunedAt,
|
|
114
|
+
isCompleted: toolCall.isCompleted,
|
|
115
|
+
isStreaming: !agentMessage.isCompleted &&
|
|
116
|
+
!toolCall.isCompleted &&
|
|
117
|
+
!displayResult &&
|
|
118
|
+
!toolCall.functionError &&
|
|
119
|
+
!isPruned,
|
|
120
|
+
messageId: toolCall.messageId,
|
|
121
|
+
dbMessageId: toolCall.dbMessageId,
|
|
122
|
+
responseTimeMs: toolCall.responseTimeMs,
|
|
123
|
+
createdDate: toolCall.createdDate,
|
|
124
|
+
};
|
|
125
|
+
})
|
|
126
|
+
: [],
|
|
127
|
+
};
|
|
128
|
+
if (agentMessage.toolCallId) {
|
|
129
|
+
message.tool_call_id = agentMessage.toolCallId;
|
|
130
|
+
}
|
|
131
|
+
return message;
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
//# sourceMappingURL=agentMessageConversion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentMessageConversion.js","sourceRoot":"","sources":["../../../src/editor/ai/agentMessageConversion.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAAsB,EAAE;IACvE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,KAAc,EACe,EAAE;IAC/B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAe,CAAC;IACzB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC;QACH,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjC,IACE,OAAO,MAAM,KAAK,QAAQ;YAC1B,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAClD,CAAC;YACD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,OAAO,MAAgB,CAAC;QAC1B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,mEAAmE;IACrE,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAAS,EAAO,EAAE;IACzD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAExD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC;IAC/C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1D,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,IAAS,EACiE,EAAE;IAC5E,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,eAAe,GAAG,IAAI,EAAE,QAAQ,IAAI,QAAQ,EAAE,QAAQ,CAAC;IAE7D,MAAM,YAAY,GAChB,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,IAAI;QACV,eAAe,EAAE,IAAI;QACrB,QAAQ,EAAE,YAAY;QACtB,QAAQ,EAAE,IAAI;QACd,SAAS,CAAC;IAEZ,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,IAAI,EAAE,EAAE,IAAI,QAAQ,EAAE,EAAE,CAAC;IAEhE,MAAM,iBAAiB,GACrB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,CAAC;QAC3C,kBAAkB,CAAC,IAAI,EAAE,SAAS,CAAC;QACnC,kBAAkB,CAAC,eAAe,EAAE,SAAS,CAAC;QAC9C,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,CAAC;QAC/C,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC;QACvC,IAAI,CAAC;IAEP,OAAO;QACL,UAAU;QACV,YAAY;QACZ,iBAAiB;KAClB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,aAAiC,EACtB,EAAE;IACb,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;QACxC,MAAM,OAAO,GAAY;YACvB,EAAE,EAAE,YAAY,CAAC,EAAE;YACnB,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,gBAAgB,EAAE,YAAY,CAAC,OAAO;gBACpC,EAAE,OAAO,CAAC,mBAAmB,EAAE,aAAa,CAAC;gBAC7C,EAAE,OAAO,CAAC,kBAAkB,EAAE,aAAa,CAAC;gBAC5C,EAAE,OAAO,CAAC,iBAAiB,EAAE,aAAa,CAAC;gBAC3C,EAAE,OAAO,CAAC,gBAAgB,EAAE,aAAa,CAAC;gBAC1C,EAAE,OAAO,CAAC,eAAe,EAAE,aAAa,CAAC;gBACzC,EAAE,OAAO,CAAC,cAAc,EAAE,aAAa,CAAC;gBACxC,EAAE,OAAO,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;gBAClD,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;YAC3B,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,WAAW,EAAE,YAAY,CAAC,WAAW;YACrC,UAAU,EAAE,YAAY,CAAC,SAAS;gBAChC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACtC,MAAM,QAAQ,GACZ,CAAC,CAAC,QAAQ,CAAC,QAAQ;wBACnB,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;oBACjD,MAAM,aAAa,GACjB,oBAAoB,CACjB,QAAgB,CAAC,yBAAyB,CAC5C,IAAI,QAAQ,CAAC,cAAc,CAAC;oBAE/B,OAAO;wBACL,EAAE,EAAE,QAAQ,CAAC,UAAU;wBACvB,WAAW,EAAE,QAAQ,CAAC,YAAY;wBAClC,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ,CAAC,YAAY;4BAC3B,SAAS,EAAE,QAAQ,CAAC,iBAAiB;4BACrC,MAAM,EAAE,aAAa;4BACrB,KAAK,EAAE,QAAQ,CAAC,aAAa;yBAC9B;wBACD,gBAAgB,EAAG,QAAgB,CAAC,gBAAgB;wBACpD,QAAQ;wBACR,QAAQ,EAAE,QAAQ,CAAC,QAAQ;wBAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;wBACjC,WAAW,EACT,CAAC,YAAY,CAAC,WAAW;4BACzB,CAAC,QAAQ,CAAC,WAAW;4BACrB,CAAC,aAAa;4BACd,CAAC,QAAQ,CAAC,aAAa;4BACvB,CAAC,QAAQ;wBACX,SAAS,EAAE,QAAQ,CAAC,SAAS;wBAC7B,WAAW,EAAG,QAAgB,CAAC,WAAW;wBAC1C,cAAc,EAAE,QAAQ,CAAC,cAAc;wBACvC,WAAW,EAAE,QAAQ,CAAC,WAAW;qBAClC,CAAC;gBACJ,CAAC,CAAC;gBACJ,CAAC,CAAC,EAAE;SACP,CAAC;QAEF,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;YAC5B,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC,UAAU,CAAC;QACjD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AgentChatMessage } from "../services/agentService";
|
|
2
|
+
import { EditOperation } from "../../types";
|
|
3
|
+
import { Message } from "./types";
|
|
4
|
+
export interface MessageGroup {
|
|
5
|
+
type: "user" | "assistant-group" | "heartbeat";
|
|
6
|
+
messages: AgentChatMessage[];
|
|
7
|
+
}
|
|
8
|
+
export declare const groupConsecutiveMessages: (agentMessages: AgentChatMessage[]) => MessageGroup[];
|
|
9
|
+
export declare const mergeMessagesById: (dbMessages: AgentChatMessage[], localMessages: AgentChatMessage[]) => AgentChatMessage[];
|
|
10
|
+
export declare const calculateTotalTokens: (messages: AgentChatMessage[]) => {
|
|
11
|
+
input: number;
|
|
12
|
+
output: number;
|
|
13
|
+
cached: number;
|
|
14
|
+
cacheWrite: number;
|
|
15
|
+
inputCost: number;
|
|
16
|
+
outputCost: number;
|
|
17
|
+
cachedCost: number;
|
|
18
|
+
cacheWriteCost: number;
|
|
19
|
+
imageCost: number;
|
|
20
|
+
totalCost: number;
|
|
21
|
+
};
|
|
22
|
+
export declare const getOperationsForMessageGroup: (messages: Message[], agentOperations: EditOperation[]) => EditOperation[];
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
export const groupConsecutiveMessages = (agentMessages) => {
|
|
2
|
+
const allMessages = agentMessages;
|
|
3
|
+
const groups = [];
|
|
4
|
+
let currentAssistantGroup = [];
|
|
5
|
+
for (const message of allMessages) {
|
|
6
|
+
if (message.role === "user") {
|
|
7
|
+
if (currentAssistantGroup.length > 0) {
|
|
8
|
+
groups.push({
|
|
9
|
+
type: "assistant-group",
|
|
10
|
+
messages: currentAssistantGroup,
|
|
11
|
+
});
|
|
12
|
+
currentAssistantGroup = [];
|
|
13
|
+
}
|
|
14
|
+
groups.push({ type: "user", messages: [message] });
|
|
15
|
+
}
|
|
16
|
+
else if (message.messageType === "heartbeat" ||
|
|
17
|
+
message.role === "system") {
|
|
18
|
+
if (currentAssistantGroup.length > 0) {
|
|
19
|
+
groups.push({
|
|
20
|
+
type: "assistant-group",
|
|
21
|
+
messages: currentAssistantGroup,
|
|
22
|
+
});
|
|
23
|
+
currentAssistantGroup = [];
|
|
24
|
+
}
|
|
25
|
+
groups.push({ type: "heartbeat", messages: [message] });
|
|
26
|
+
}
|
|
27
|
+
else if (message.role === "assistant") {
|
|
28
|
+
currentAssistantGroup.push(message);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (currentAssistantGroup.length > 0) {
|
|
32
|
+
groups.push({ type: "assistant-group", messages: currentAssistantGroup });
|
|
33
|
+
}
|
|
34
|
+
return groups;
|
|
35
|
+
};
|
|
36
|
+
export const mergeMessagesById = (dbMessages, localMessages) => {
|
|
37
|
+
const messageMap = new Map();
|
|
38
|
+
const keyOf = (id) => (id ? id.toLowerCase() : "");
|
|
39
|
+
dbMessages.forEach((msg) => {
|
|
40
|
+
if (msg.id)
|
|
41
|
+
messageMap.set(keyOf(msg.id), msg);
|
|
42
|
+
});
|
|
43
|
+
localMessages.forEach((localMsg) => {
|
|
44
|
+
if (!localMsg.id)
|
|
45
|
+
return;
|
|
46
|
+
const key = keyOf(localMsg.id);
|
|
47
|
+
const existingMsg = messageMap.get(key);
|
|
48
|
+
if (!existingMsg) {
|
|
49
|
+
messageMap.set(key, localMsg);
|
|
50
|
+
}
|
|
51
|
+
else if (!localMsg.isCompleted && localMsg.messageType === "streaming") {
|
|
52
|
+
const localLen = (localMsg.content?.length || 0) + (localMsg.reasoning?.length || 0);
|
|
53
|
+
const existingLen = (existingMsg.content?.length || 0) +
|
|
54
|
+
(existingMsg.reasoning?.length || 0);
|
|
55
|
+
if (localLen > existingLen) {
|
|
56
|
+
messageMap.set(key, localMsg);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
return Array.from(messageMap.values()).sort((a, b) => {
|
|
61
|
+
const aIndex = a.messageIndex === -1 ? Infinity : a.messageIndex;
|
|
62
|
+
const bIndex = b.messageIndex === -1 ? Infinity : b.messageIndex;
|
|
63
|
+
if (aIndex !== bIndex) {
|
|
64
|
+
return aIndex - bIndex;
|
|
65
|
+
}
|
|
66
|
+
return (new Date(a.createdDate || 0).getTime() -
|
|
67
|
+
new Date(b.createdDate || 0).getTime());
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
export const calculateTotalTokens = (messages) => {
|
|
71
|
+
const totals = messages.reduce((acc, message) => {
|
|
72
|
+
return {
|
|
73
|
+
input: acc.input + (message.inputTokens || 0),
|
|
74
|
+
output: acc.output + (message.outputTokens || 0),
|
|
75
|
+
cached: acc.cached + (message.cachedInputTokens || 0),
|
|
76
|
+
cacheWrite: acc.cacheWrite,
|
|
77
|
+
inputCost: acc.inputCost + (message.inputTokenCost || 0),
|
|
78
|
+
outputCost: acc.outputCost + (message.outputTokenCost || 0),
|
|
79
|
+
cachedCost: acc.cachedCost + (message.cachedInputTokenCost || 0),
|
|
80
|
+
cacheWriteCost: acc.cacheWriteCost,
|
|
81
|
+
imageCost: acc.imageCost,
|
|
82
|
+
totalCost: acc.totalCost + (message.totalCost || 0),
|
|
83
|
+
};
|
|
84
|
+
}, {
|
|
85
|
+
input: 0,
|
|
86
|
+
output: 0,
|
|
87
|
+
cached: 0,
|
|
88
|
+
cacheWrite: 0,
|
|
89
|
+
inputCost: 0,
|
|
90
|
+
outputCost: 0,
|
|
91
|
+
cachedCost: 0,
|
|
92
|
+
cacheWriteCost: 0,
|
|
93
|
+
imageCost: 0,
|
|
94
|
+
totalCost: 0,
|
|
95
|
+
});
|
|
96
|
+
return totals;
|
|
97
|
+
};
|
|
98
|
+
export const getOperationsForMessageGroup = (messages, agentOperations) => {
|
|
99
|
+
const toolCallIds = new Set(messages.flatMap((m) => m.tool_calls?.map((tc) => tc.id) ?? []));
|
|
100
|
+
const matched = agentOperations.filter((op) => op.toolCallId && toolCallIds.has(op.toolCallId));
|
|
101
|
+
return matched;
|
|
102
|
+
};
|
|
103
|
+
//# sourceMappingURL=agentMessageGrouping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentMessageGrouping.js","sourceRoot":"","sources":["../../../src/editor/ai/agentMessageGrouping.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Agent, AgentDetails, AgentFilesystemAllowance, AgentSitecoreAllowance } from "../services/agentService";
|
|
2
|
+
import { EditOperation } from "../../types";
|
|
3
|
+
export declare const AGENT_HISTORY_LIMIT = 1000;
|
|
4
|
+
export declare const MACHINE_CAPACITY_REASON = "machineCapacity";
|
|
5
|
+
export declare const MACHINE_CAPACITY_DETAIL = "waitingForCapacity";
|
|
6
|
+
export declare function mergeAgentOperationHistory(existing: EditOperation[], incoming: EditOperation[], limit?: number): EditOperation[];
|
|
7
|
+
export declare function buildPlaceholderAgentDetails(agentStub: Agent): AgentDetails;
|
|
8
|
+
export declare function normalizeDialogAgentId(value: string | null | undefined): string;
|
|
9
|
+
export declare function normalizeServerExecutionStatus(value: string | null | undefined): string;
|
|
10
|
+
export declare function isFinishedServerExecutionStatus(value: string | null | undefined): boolean;
|
|
11
|
+
export declare function formatAllowanceSource(source?: string | null): string | null;
|
|
12
|
+
export declare function formatAllowanceLabel(allowance: AgentSitecoreAllowance | AgentFilesystemAllowance): string;
|
|
13
|
+
export declare function normalizeProfileAllowanceOperations(operationTypes: string[] | undefined): string[];
|
|
14
|
+
export declare function getAgentRunMessageAgentId(payload: any): string | null;
|
|
15
|
+
export declare function getAgentRunMessageSeq(payload: any): number | null;
|
|
16
|
+
export declare function getAgentRunMessageDetail(type: string, payload: any): string | null;
|
|
17
|
+
export declare function isHeartbeatRunEventMessage(message: any): boolean;
|
|
18
|
+
export type VisibleDialogRegistryEntry = {
|
|
19
|
+
callbackId: string | null;
|
|
20
|
+
terminalInstanceId: string | null;
|
|
21
|
+
};
|
|
22
|
+
export declare function getVisibleDialogRegistry(): Record<string, string | VisibleDialogRegistryEntry>;
|
|
23
|
+
export declare function isAgentErrorStatusValue(status: unknown): boolean;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
export const AGENT_HISTORY_LIMIT = 1000;
|
|
2
|
+
export const MACHINE_CAPACITY_REASON = "machineCapacity";
|
|
3
|
+
export const MACHINE_CAPACITY_DETAIL = "waitingForCapacity";
|
|
4
|
+
export function mergeAgentOperationHistory(existing, incoming, limit = AGENT_HISTORY_LIMIT) {
|
|
5
|
+
const merged = new Map(existing.map((operation) => [operation.id, operation]));
|
|
6
|
+
for (const operation of incoming) {
|
|
7
|
+
merged.set(operation.id, operation);
|
|
8
|
+
}
|
|
9
|
+
return Array.from(merged.values())
|
|
10
|
+
.sort((left, right) => new Date(right.date).getTime() - new Date(left.date).getTime())
|
|
11
|
+
.slice(0, limit);
|
|
12
|
+
}
|
|
13
|
+
export function buildPlaceholderAgentDetails(agentStub) {
|
|
14
|
+
const now = new Date().toISOString();
|
|
15
|
+
const updated = agentStub.updatedDate || now;
|
|
16
|
+
// AgentDetails has required fields, but some workspaces only pass an Agent stub initially.
|
|
17
|
+
// This placeholder keeps streaming/tool-call UI working until `getAgent()` returns full details.
|
|
18
|
+
return {
|
|
19
|
+
...agentStub,
|
|
20
|
+
name: agentStub.name || "Agent",
|
|
21
|
+
userId: agentStub.userId || "",
|
|
22
|
+
updatedDate: updated,
|
|
23
|
+
profileName: agentStub.profileName || "",
|
|
24
|
+
model: agentStub.model || "",
|
|
25
|
+
createdDate: agentStub.createdDate || updated,
|
|
26
|
+
totalTokensUsed: 0,
|
|
27
|
+
totalInputTokens: 0,
|
|
28
|
+
totalOutputTokens: 0,
|
|
29
|
+
totalCachedInputTokens: 0,
|
|
30
|
+
totalInputTokenCost: 0,
|
|
31
|
+
totalOutputTokenCost: 0,
|
|
32
|
+
totalCachedInputTokenCost: 0,
|
|
33
|
+
totalImageCost: 0,
|
|
34
|
+
totalCost: 0,
|
|
35
|
+
currency: agentStub.currency || "USD",
|
|
36
|
+
messageCount: agentStub.messageCount || 0,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export function normalizeDialogAgentId(value) {
|
|
40
|
+
return value?.trim().toLowerCase() || "";
|
|
41
|
+
}
|
|
42
|
+
export function normalizeServerExecutionStatus(value) {
|
|
43
|
+
return (value || "").replace(/\s+/g, "").toLowerCase();
|
|
44
|
+
}
|
|
45
|
+
export function isFinishedServerExecutionStatus(value) {
|
|
46
|
+
const normalized = normalizeServerExecutionStatus(value);
|
|
47
|
+
return normalized === "completed" || normalized === "cancelled";
|
|
48
|
+
}
|
|
49
|
+
export function formatAllowanceSource(source) {
|
|
50
|
+
const normalized = source?.trim();
|
|
51
|
+
if (!normalized)
|
|
52
|
+
return null;
|
|
53
|
+
if (normalized === "user")
|
|
54
|
+
return "User granted";
|
|
55
|
+
if (normalized.startsWith("preconfigured:profile:"))
|
|
56
|
+
return "Profile";
|
|
57
|
+
if (normalized.startsWith("preconfigured:skill:"))
|
|
58
|
+
return "Skill";
|
|
59
|
+
if (normalized.startsWith("system:")) {
|
|
60
|
+
return normalized.slice("system:".length).replace(/[-_]+/g, " ").trim();
|
|
61
|
+
}
|
|
62
|
+
return normalized;
|
|
63
|
+
}
|
|
64
|
+
export function formatAllowanceLabel(allowance) {
|
|
65
|
+
return `${allowance.operationType || "*"}${"itemPath" in allowance
|
|
66
|
+
? ` ${allowance.itemPath}`
|
|
67
|
+
: ` ${allowance.normalizedPath}`}`;
|
|
68
|
+
}
|
|
69
|
+
export function normalizeProfileAllowanceOperations(operationTypes) {
|
|
70
|
+
const normalized = (operationTypes || [])
|
|
71
|
+
.map((operationType) => String(operationType || "").trim())
|
|
72
|
+
.filter((operationType) => operationType.length > 0);
|
|
73
|
+
return normalized.length > 0 ? normalized : ["*"];
|
|
74
|
+
}
|
|
75
|
+
export function getAgentRunMessageAgentId(payload) {
|
|
76
|
+
const agentId = payload?.agentId;
|
|
77
|
+
return typeof agentId === "string" ? normalizeDialogAgentId(agentId) : null;
|
|
78
|
+
}
|
|
79
|
+
export function getAgentRunMessageSeq(payload) {
|
|
80
|
+
const seq = payload?.seq;
|
|
81
|
+
return typeof seq === "number" ? seq : null;
|
|
82
|
+
}
|
|
83
|
+
export function getAgentRunMessageDetail(type, payload) {
|
|
84
|
+
if (type === "agent:run:delta") {
|
|
85
|
+
return payload?.type || null;
|
|
86
|
+
}
|
|
87
|
+
if (type === "agent:run:status") {
|
|
88
|
+
if (payload?.data?.reason === MACHINE_CAPACITY_REASON) {
|
|
89
|
+
return MACHINE_CAPACITY_DETAIL;
|
|
90
|
+
}
|
|
91
|
+
return payload?.data?.state || payload?.data?.status || null;
|
|
92
|
+
}
|
|
93
|
+
if (type === "agent:run:error") {
|
|
94
|
+
return payload?.error || null;
|
|
95
|
+
}
|
|
96
|
+
if (type === "agent:run:complete") {
|
|
97
|
+
return payload?.finalStatus || null;
|
|
98
|
+
}
|
|
99
|
+
if (type === "agent:run:start") {
|
|
100
|
+
return payload?.agentName || null;
|
|
101
|
+
}
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
export function isHeartbeatRunEventMessage(message) {
|
|
105
|
+
if (!message)
|
|
106
|
+
return false;
|
|
107
|
+
if (message.type === "agent:run:delta") {
|
|
108
|
+
const deltaType = message.payload?.type;
|
|
109
|
+
return String(deltaType || "").toLowerCase() === "heartbeat";
|
|
110
|
+
}
|
|
111
|
+
if (message.type === "agent:run:status") {
|
|
112
|
+
const state = message.payload?.data?.state || message.payload?.data?.status;
|
|
113
|
+
return String(state || "").toLowerCase() === "heartbeat";
|
|
114
|
+
}
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
export function getVisibleDialogRegistry() {
|
|
118
|
+
const registry = globalThis.__agentDialogVisibleCallbacks;
|
|
119
|
+
return registry && typeof registry === "object" ? registry : {};
|
|
120
|
+
}
|
|
121
|
+
export function isAgentErrorStatusValue(status) {
|
|
122
|
+
return status === "error";
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=agentMessageHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentMessageHelpers.js","sourceRoot":"","sources":["../../../src/editor/ai/agentMessageHelpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export const userMessageMarkdownComponents = {
|
|
3
|
+
h1: (props) => (_jsx("h1", { ...props, className: "mb-2 text-sm leading-5 font-semibold text-gray-900" })),
|
|
4
|
+
h2: (props) => (_jsx("h2", { ...props, className: "mb-1.5 text-[13px] leading-5 font-semibold text-gray-900" })),
|
|
5
|
+
h3: (props) => (_jsx("h3", { ...props, className: "mb-1 text-[12px] leading-5 font-semibold text-gray-900" })),
|
|
6
|
+
h4: (props) => (_jsx("h4", { ...props, className: "mb-1 text-[12px] leading-5 font-medium text-gray-800" })),
|
|
7
|
+
p: (props) => (_jsx("p", { ...props, className: "my-1 text-[12px] leading-5 text-gray-700" })),
|
|
8
|
+
ul: (props) => (_jsx("ul", { ...props, className: "my-2 ml-5 list-disc space-y-1 text-[12px] leading-5 text-gray-700" })),
|
|
9
|
+
ol: (props) => (_jsx("ol", { ...props, className: "my-2 ml-5 list-decimal space-y-1 text-[12px] leading-5 text-gray-700" })),
|
|
10
|
+
li: (props) => (_jsx("li", { ...props, className: "text-[12px] leading-5 text-gray-700" })),
|
|
11
|
+
pre: (props) => (_jsx("pre", { ...props, className: "my-2 overflow-auto rounded-md bg-slate-100 px-3 py-2 text-[11px] leading-4 text-slate-700" })),
|
|
12
|
+
code: ({ inline, className, ...props }) => inline ? (_jsx("code", { ...props, className: "rounded bg-slate-100 px-1 py-0.5 text-[11px] text-slate-700" })) : (_jsx("code", { ...props, className: className })),
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=agentMessageMarkdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentMessageMarkdown.js","sourceRoot":"","sources":["../../../src/editor/ai/agentMessageMarkdown.tsx"],"names":[],"mappings":";AAGA,MAAM,CAAC,MAAM,6BAA6B,GAA+B;IACvE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CACb,gBACM,KAAK,EACT,SAAS,EAAC,oDAAoD,GAC9D,CACH;IACD,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CACb,gBACM,KAAK,EACT,SAAS,EAAC,0DAA0D,GACpE,CACH;IACD,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CACb,gBACM,KAAK,EACT,SAAS,EAAC,wDAAwD,GAClE,CACH;IACD,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CACb,gBACM,KAAK,EACT,SAAS,EAAC,sDAAsD,GAChE,CACH;IACD,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CACZ,eAAO,KAAK,EAAE,SAAS,EAAC,0CAA0C,GAAG,CACtE;IACD,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CACb,gBACM,KAAK,EACT,SAAS,EAAC,mEAAmE,GAC7E,CACH;IACD,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CACb,gBACM,KAAK,EACT,SAAS,EAAC,sEAAsE,GAChF,CACH;IACD,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CACb,gBAAQ,KAAK,EAAE,SAAS,EAAC,qCAAqC,GAAG,CAClE;IACD,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CACd,iBACM,KAAK,EACT,SAAS,EAAC,2FAA2F,GACrG,CACH;IACD,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CACxC,MAAM,CAAC,CAAC,CAAC,CACP,kBACM,KAAK,EACT,SAAS,EAAC,6DAA6D,GACvE,CACH,CAAC,CAAC,CAAC,CACF,kBAAU,KAAK,EAAE,SAAS,EAAE,SAAS,GAAI,CAC1C;CACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AgentChatMessage } from "../services/agentService";
|
|
2
|
+
export interface TodoItem {
|
|
3
|
+
id?: string;
|
|
4
|
+
title: string;
|
|
5
|
+
status?: string;
|
|
6
|
+
instructions?: string;
|
|
7
|
+
agentProfileId?: string;
|
|
8
|
+
messageId?: string;
|
|
9
|
+
sourceTitle?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const extractPartialTodos: (jsonText: string) => any[];
|
|
12
|
+
export declare const extractTodosFromMessages: (messages: AgentChatMessage[]) => TodoItem[];
|