@parhelia/core 0.1.12477 → 0.1.12479

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/dist/config/config.js +22 -3
  2. package/dist/config/config.js.map +1 -1
  3. package/dist/config/types.d.ts +2 -0
  4. package/dist/config/types.js.map +1 -1
  5. package/dist/editor/ConfirmationDialog.js +20 -4
  6. package/dist/editor/ConfirmationDialog.js.map +1 -1
  7. package/dist/editor/ContentTree.js +19 -7
  8. package/dist/editor/ContentTree.js.map +1 -1
  9. package/dist/editor/Editor.js.map +1 -1
  10. package/dist/editor/PictureCropper.js +45 -41
  11. package/dist/editor/PictureCropper.js.map +1 -1
  12. package/dist/editor/ai/AgentTerminal.js +97 -8
  13. package/dist/editor/ai/AgentTerminal.js.map +1 -1
  14. package/dist/editor/ai/AgentTerminalStatusBar.js +65 -0
  15. package/dist/editor/ai/AgentTerminalStatusBar.js.map +1 -1
  16. package/dist/editor/ai/Agents.js +19 -0
  17. package/dist/editor/ai/Agents.js.map +1 -1
  18. package/dist/editor/ai/AiResponseMessage.js +5 -0
  19. package/dist/editor/ai/AiResponseMessage.js.map +1 -1
  20. package/dist/editor/ai/ContentInspectorPopover.d.ts +1 -0
  21. package/dist/editor/ai/ContentInspectorPopover.js +22 -8
  22. package/dist/editor/ai/ContentInspectorPopover.js.map +1 -1
  23. package/dist/editor/ai/ToolCallDisplay.d.ts +2 -0
  24. package/dist/editor/ai/ToolCallDisplay.js +54 -11
  25. package/dist/editor/ai/ToolCallDisplay.js.map +1 -1
  26. package/dist/editor/ai/dialogs/AgentDialogHandler.js +32 -3
  27. package/dist/editor/ai/dialogs/AgentDialogHandler.js.map +1 -1
  28. package/dist/editor/ai/dialogs/QuestionnaireInline.js +55 -20
  29. package/dist/editor/ai/dialogs/QuestionnaireInline.js.map +1 -1
  30. package/dist/editor/ai/dialogs/agentDialogTypes.d.ts +7 -4
  31. package/dist/editor/ai/dialogs/agentDialogTypes.js.map +1 -1
  32. package/dist/editor/ai/types.d.ts +2 -0
  33. package/dist/editor/client/EditorShell.js +55 -10
  34. package/dist/editor/client/EditorShell.js.map +1 -1
  35. package/dist/editor/client/editContext.d.ts +2 -0
  36. package/dist/editor/client/editContext.js.map +1 -1
  37. package/dist/editor/client/ui/EditorChrome.d.ts +0 -2
  38. package/dist/editor/client/ui/EditorChrome.js +2 -13
  39. package/dist/editor/client/ui/EditorChrome.js.map +1 -1
  40. package/dist/editor/page-viewer/EditorForm.js +8 -1
  41. package/dist/editor/page-viewer/EditorForm.js.map +1 -1
  42. package/dist/editor/page-viewer/PageViewer.d.ts +3 -1
  43. package/dist/editor/page-viewer/PageViewer.js +23 -4
  44. package/dist/editor/page-viewer/PageViewer.js.map +1 -1
  45. package/dist/editor/page-viewer/PageViewerFrame.d.ts +2 -1
  46. package/dist/editor/page-viewer/PageViewerFrame.js +3 -4
  47. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  48. package/dist/editor/services/agentService.d.ts +27 -0
  49. package/dist/editor/services/agentService.js +11 -2
  50. package/dist/editor/services/agentService.js.map +1 -1
  51. package/dist/editor/services/aiService.js +54 -3
  52. package/dist/editor/services/aiService.js.map +1 -1
  53. package/dist/editor/services/serviceHelper.js +5 -2
  54. package/dist/editor/services/serviceHelper.js.map +1 -1
  55. package/dist/editor/settings/About.js +40 -4
  56. package/dist/editor/settings/About.js.map +1 -1
  57. package/dist/editor/settings/panels/PersistentLogsPanel.d.ts +2 -0
  58. package/dist/editor/settings/panels/PersistentLogsPanel.js +244 -0
  59. package/dist/editor/settings/panels/PersistentLogsPanel.js.map +1 -0
  60. package/dist/editor/settings/panels/ProjectTemplateAgentPanel.d.ts +7 -1
  61. package/dist/editor/settings/panels/ProjectTemplateAgentPanel.js +3 -3
  62. package/dist/editor/settings/panels/ProjectTemplateAgentPanel.js.map +1 -1
  63. package/dist/editor/settings/panels/ProjectTemplatesPanel.js +165 -84
  64. package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -1
  65. package/dist/editor/settings/panels/index.d.ts +1 -0
  66. package/dist/editor/settings/panels/index.js +1 -0
  67. package/dist/editor/settings/panels/index.js.map +1 -1
  68. package/dist/editor/sidebar/ComponentTree.d.ts +8 -1
  69. package/dist/editor/sidebar/ComponentTree.js +23 -15
  70. package/dist/editor/sidebar/ComponentTree.js.map +1 -1
  71. package/dist/editor/sidebar/NavigationPanelItem.js +1 -1
  72. package/dist/editor/sidebar/NavigationPanelItem.js.map +1 -1
  73. package/dist/editor/sidebar/WorkspaceButton.js +1 -1
  74. package/dist/editor/sidebar/WorkspaceButton.js.map +1 -1
  75. package/dist/editor/tree-indicators/GutterColumns.js +24 -4
  76. package/dist/editor/tree-indicators/GutterColumns.js.map +1 -1
  77. package/dist/editor/tree-indicators/types.d.ts +10 -0
  78. package/dist/editor/ui/Splitter.d.ts +1 -0
  79. package/dist/editor/ui/Splitter.js +7 -1
  80. package/dist/editor/ui/Splitter.js.map +1 -1
  81. package/dist/editor/utils.js +16 -4
  82. package/dist/editor/utils.js.map +1 -1
  83. package/dist/editor/views/CompareView.d.ts +3 -1
  84. package/dist/editor/views/CompareView.js +3 -3
  85. package/dist/editor/views/CompareView.js.map +1 -1
  86. package/dist/editor/views/EditorSlot.js +7 -6
  87. package/dist/editor/views/EditorSlot.js.map +1 -1
  88. package/dist/editor/views/SingleEditView.d.ts +2 -1
  89. package/dist/editor/views/SingleEditView.js +8 -8
  90. package/dist/editor/views/SingleEditView.js.map +1 -1
  91. package/dist/licensing/LicenseContext.js +40 -4
  92. package/dist/licensing/LicenseContext.js.map +1 -1
  93. package/dist/licensing/LicenseOverlay.js +1 -1
  94. package/dist/licensing/LicenseOverlay.js.map +1 -1
  95. package/dist/licensing/types.d.ts +3 -1
  96. package/dist/licensing/types.js.map +1 -1
  97. package/dist/revision.d.ts +2 -2
  98. package/dist/revision.js +2 -2
  99. package/dist/task-board/TaskBoardWorkspace.js +165 -354
  100. package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
  101. package/dist/task-board/assigneeDisplay.js +1 -3
  102. package/dist/task-board/assigneeDisplay.js.map +1 -1
  103. package/dist/task-board/components/CreateProjectDialog.js +2 -1
  104. package/dist/task-board/components/CreateProjectDialog.js.map +1 -1
  105. package/dist/task-board/components/ProjectDashboard.js +2 -1
  106. package/dist/task-board/components/ProjectDashboard.js.map +1 -1
  107. package/dist/task-board/components/ProjectExecutionUserPicker.d.ts +14 -0
  108. package/dist/task-board/components/ProjectExecutionUserPicker.js +65 -0
  109. package/dist/task-board/components/ProjectExecutionUserPicker.js.map +1 -0
  110. package/dist/task-board/components/ProjectSettingsDialog.d.ts +1 -0
  111. package/dist/task-board/components/ProjectSettingsDialog.js +146 -12
  112. package/dist/task-board/components/ProjectSettingsDialog.js.map +1 -1
  113. package/dist/task-board/components/TaskAgentPanel.d.ts +1 -0
  114. package/dist/task-board/components/TaskAgentPanel.js +2 -2
  115. package/dist/task-board/components/TaskAgentPanel.js.map +1 -1
  116. package/dist/task-board/components/TaskAssigneePicker.js +2 -2
  117. package/dist/task-board/components/TaskAssigneePicker.js.map +1 -1
  118. package/dist/task-board/components/TaskBoardMyTasksSidebar.js +1 -1
  119. package/dist/task-board/components/TaskBoardMyTasksSidebar.js.map +1 -1
  120. package/dist/task-board/components/TaskDetailDialog.d.ts +1 -0
  121. package/dist/task-board/components/TaskDetailDialog.js +2 -2
  122. package/dist/task-board/components/TaskDetailDialog.js.map +1 -1
  123. package/dist/task-board/components/TaskDetailPanel.d.ts +1 -0
  124. package/dist/task-board/components/TaskDetailPanel.js +23 -8
  125. package/dist/task-board/components/TaskDetailPanel.js.map +1 -1
  126. package/dist/task-board/components/TaskRow.js +3 -2
  127. package/dist/task-board/components/TaskRow.js.map +1 -1
  128. package/dist/task-board/components/TaskboardPersistentLogPanel.d.ts +11 -0
  129. package/dist/task-board/components/TaskboardPersistentLogPanel.js +141 -0
  130. package/dist/task-board/components/TaskboardPersistentLogPanel.js.map +1 -0
  131. package/dist/task-board/components/WizardTaskDetailsPanel.js +2 -1
  132. package/dist/task-board/components/WizardTaskDetailsPanel.js.map +1 -1
  133. package/dist/task-board/persistentLogCopy.d.ts +7 -0
  134. package/dist/task-board/persistentLogCopy.js +80 -0
  135. package/dist/task-board/persistentLogCopy.js.map +1 -0
  136. package/dist/task-board/persistentLogLabels.d.ts +38 -0
  137. package/dist/task-board/persistentLogLabels.js +189 -0
  138. package/dist/task-board/persistentLogLabels.js.map +1 -0
  139. package/dist/task-board/services/taskService.d.ts +17 -1
  140. package/dist/task-board/services/taskService.js +56 -0
  141. package/dist/task-board/services/taskService.js.map +1 -1
  142. package/dist/task-board/taskExecutionRecords.js +2 -0
  143. package/dist/task-board/taskExecutionRecords.js.map +1 -1
  144. package/dist/task-board/types.d.ts +78 -1
  145. package/dist/task-board/useTaskBoardAgentPanelState.d.ts +34 -0
  146. package/dist/task-board/useTaskBoardAgentPanelState.js +283 -0
  147. package/dist/task-board/useTaskBoardAgentPanelState.js.map +1 -0
  148. package/dist/task-board/utils/taskDependencyOrdering.d.ts +6 -0
  149. package/dist/task-board/utils/taskDependencyOrdering.js +138 -1
  150. package/dist/task-board/utils/taskDependencyOrdering.js.map +1 -1
  151. package/dist/task-board/views/DependencyGraphView.d.ts +5 -2
  152. package/dist/task-board/views/DependencyGraphView.js +261 -69
  153. package/dist/task-board/views/DependencyGraphView.js.map +1 -1
  154. package/dist/task-board/views/KanbanView.js +8 -1
  155. package/dist/task-board/views/KanbanView.js.map +1 -1
  156. package/dist/task-board/views/ListView.js +1 -1
  157. package/dist/task-board/views/ListView.js.map +1 -1
  158. package/dist/task-board/views/WizardView.js +30 -24
  159. package/dist/task-board/views/WizardView.js.map +1 -1
  160. package/dist/tour/Tour.js +0 -47
  161. package/dist/tour/Tour.js.map +1 -1
  162. package/package.json +1 -1
@@ -0,0 +1,244 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useMemo, useState } from "react";
3
+ import { AlertCircle, Bug, Check, Copy, ExternalLink, RefreshCw, Search, Trash2 } from "lucide-react";
4
+ import { toast } from "sonner";
5
+ import { Badge } from "../../../components/ui/badge";
6
+ import { Button } from "../../../components/ui/button";
7
+ import { Card } from "../../../components/ui/card";
8
+ import { Input } from "../../../components/ui/input";
9
+ import { Select } from "../../../components/ui/select";
10
+ import { cn } from "../../../lib/utils";
11
+ import { formatPersistentLogsForCopy } from "../../../task-board/persistentLogCopy";
12
+ import { useEditContext } from "../../client/editContext";
13
+ import { getPersistentLogsAdmin, purgePersistentLogs, } from "../../../task-board/services/taskService";
14
+ import { formatPersistentLogEventType, formatPersistentLogStage, formatPersistentLogStatus, persistentLogContextPartTooltip, persistentLogCreatedAtTooltip, persistentLogDurationTooltip, persistentLogEventTypeTooltip, persistentLogSeqTooltip, persistentLogSourceTooltip, persistentLogStageTooltip, persistentLogStatusTooltip, persistentLogToolCallTooltip, PERSISTENT_LOG_FIELD_HINT, } from "../../../task-board/persistentLogLabels";
15
+ const DEFAULT_LIMIT = "200";
16
+ const SUCCESS_OPTIONS = [
17
+ { value: "", label: "All results" },
18
+ { value: "true", label: "Successful only" },
19
+ { value: "false", label: "Failed only" },
20
+ ];
21
+ function createDefaultDraft() {
22
+ return {
23
+ agentId: "",
24
+ projectId: "",
25
+ taskId: "",
26
+ runId: "",
27
+ eventType: "",
28
+ stage: "",
29
+ status: "",
30
+ source: "",
31
+ searchTerm: "",
32
+ success: "",
33
+ limit: DEFAULT_LIMIT,
34
+ };
35
+ }
36
+ function trimOrNull(value) {
37
+ const trimmed = value.trim();
38
+ return trimmed.length > 0 ? trimmed : null;
39
+ }
40
+ function toFilters(draft) {
41
+ const parsedLimit = Number.parseInt(draft.limit, 10);
42
+ return {
43
+ agentId: trimOrNull(draft.agentId),
44
+ projectId: trimOrNull(draft.projectId),
45
+ taskId: trimOrNull(draft.taskId),
46
+ runId: trimOrNull(draft.runId),
47
+ eventType: trimOrNull(draft.eventType),
48
+ stage: trimOrNull(draft.stage),
49
+ status: trimOrNull(draft.status),
50
+ source: trimOrNull(draft.source),
51
+ searchTerm: trimOrNull(draft.searchTerm),
52
+ success: draft.success === "true" ? true : draft.success === "false" ? false : null,
53
+ limit: Number.isFinite(parsedLimit) && parsedLimit > 0 ? parsedLimit : 200,
54
+ };
55
+ }
56
+ function formatDuration(durationMs) {
57
+ if (typeof durationMs !== "number" || !Number.isFinite(durationMs) || durationMs < 0) {
58
+ return null;
59
+ }
60
+ if (durationMs < 1000)
61
+ return `${durationMs}ms`;
62
+ return `${(durationMs / 1000).toFixed(durationMs >= 10000 ? 0 : 1)}s`;
63
+ }
64
+ function shortenGuid(value) {
65
+ if (!value)
66
+ return null;
67
+ return value.length > 8 ? value.slice(0, 8) : value;
68
+ }
69
+ function trimPreview(value, maxLength = 800) {
70
+ if (!value)
71
+ return null;
72
+ const trimmed = value.trim();
73
+ if (!trimmed)
74
+ return null;
75
+ return trimmed.length > maxLength ? `${trimmed.slice(0, maxLength)}...` : trimmed;
76
+ }
77
+ function buildContextLine(entry) {
78
+ const parts = [];
79
+ if (entry.agentId)
80
+ parts.push(`Agent ${shortenGuid(entry.agentId)}`);
81
+ if (entry.projectId)
82
+ parts.push(`Project ${shortenGuid(entry.projectId)}`);
83
+ if (entry.taskId)
84
+ parts.push(`Task ${shortenGuid(entry.taskId)}`);
85
+ if (entry.runId)
86
+ parts.push(`Run ${shortenGuid(entry.runId)}`);
87
+ if (entry.userId)
88
+ parts.push(entry.userId);
89
+ return parts;
90
+ }
91
+ function renderPreviewBlock(label, value) {
92
+ const preview = trimPreview(value);
93
+ if (!preview)
94
+ return null;
95
+ return (_jsxs("div", { className: "grid gap-1", children: [_jsx("div", { className: "text-[10px] font-semibold tracking-wider text-slate-500 uppercase", children: label }), _jsx("pre", { className: "overflow-x-auto rounded border border-slate-200 bg-slate-50 p-2 text-[11px] leading-tight whitespace-pre-wrap text-slate-700", children: preview })] }));
96
+ }
97
+ function LogRow({ entry }) {
98
+ const createdAt = useMemo(() => new Date(entry.createdAt), [entry.createdAt]);
99
+ const hasValidCreatedAt = !Number.isNaN(createdAt.getTime());
100
+ const contextParts = buildContextLine(entry);
101
+ const duration = formatDuration(entry.durationMs);
102
+ const tone = entry.success === false || entry.status?.toLowerCase() === "failed"
103
+ ? "destructive"
104
+ : entry.success === true
105
+ ? "default"
106
+ : "secondary";
107
+ const contextLine = contextParts.length > 0 ? contextParts.join(" · ") : "None";
108
+ const contextTitle = contextParts
109
+ .map((part) => `${persistentLogContextPartTooltip(part)}`)
110
+ .join("\n\n");
111
+ const hasPayloadBlocks = Boolean(trimPreview(entry.payloadPreview) ||
112
+ trimPreview(entry.resultPreview) ||
113
+ trimPreview(entry.metadataJson));
114
+ const hasExpandableDetails = hasPayloadBlocks ||
115
+ Boolean(entry.error) ||
116
+ typeof entry.seq === "number" ||
117
+ Boolean(duration) ||
118
+ Boolean(entry.toolCallId?.trim());
119
+ const summaryText = entry.summary?.trim() || "No summary";
120
+ return (_jsxs("tr", { className: "border-t border-slate-100 align-middle text-[11px] leading-snug text-slate-700", children: [_jsx("td", { className: "max-w-[200px] whitespace-nowrap px-3 py-1.5 text-slate-600", children: _jsx("div", { className: "cursor-help truncate font-mono", title: persistentLogCreatedAtTooltip({
121
+ hasValidDate: hasValidCreatedAt,
122
+ localDisplay: hasValidCreatedAt ? createdAt.toLocaleString() : entry.createdAt,
123
+ isoUtc: hasValidCreatedAt ? createdAt.toISOString() : undefined,
124
+ raw: entry.createdAt,
125
+ }), children: hasValidCreatedAt ? createdAt.toLocaleString() : entry.createdAt }) }), _jsx("td", { className: "max-w-[120px] px-3 py-1.5", children: _jsx(Badge, { variant: "outline", className: "h-6 max-w-full cursor-help px-2 text-[11px] font-normal leading-none", title: persistentLogEventTypeTooltip(entry.eventType), children: _jsx("span", { className: "truncate", children: formatPersistentLogEventType(entry.eventType) }) }) }), _jsx("td", { className: "max-w-[140px] px-3 py-1.5", children: _jsx(Badge, { variant: "outline", className: "h-6 max-w-full cursor-help px-2 text-[11px] font-normal leading-none", title: persistentLogStageTooltip(entry.stage), children: _jsx("span", { className: "truncate", children: formatPersistentLogStage(entry.stage) }) }) }), _jsx("td", { className: "max-w-[200px] min-w-0 px-3 py-1.5", children: _jsxs("div", { className: "flex min-w-0 max-w-full items-center gap-1.5", children: [entry.status ? (_jsx(Badge, { variant: tone, className: "h-6 max-w-28 shrink-0 cursor-help px-2 text-[11px] font-normal leading-none", title: persistentLogStatusTooltip(entry.status), children: _jsx("span", { className: "truncate", children: formatPersistentLogStatus(entry.status) }) })) : (_jsx("span", { className: "shrink-0 text-slate-400", children: "\u2014" })), entry.source ? (_jsx("span", { className: "min-w-0 cursor-help truncate text-slate-500", title: persistentLogSourceTooltip(entry.source), children: entry.source })) : null] }) }), _jsx("td", { className: "min-w-[200px] max-w-xl px-3 py-1.5", children: !hasExpandableDetails ? (_jsx("div", { className: "truncate text-slate-800", title: summaryText, children: summaryText })) : (_jsxs("details", { className: "group min-w-0", children: [_jsxs("summary", { className: "flex cursor-pointer list-none items-center gap-2 [&::-webkit-details-marker]:hidden", children: [_jsxs("span", { className: "min-w-0 flex-1 truncate text-left text-slate-800", title: entry.error
126
+ ? `${summaryText}\n\n${entry.error}`
127
+ : summaryText, children: [entry.error ? (_jsxs("span", { className: "text-red-600", "aria-hidden": true, children: ["\u26A0", " "] })) : null, summaryText] }), _jsx("span", { className: "shrink-0 text-slate-500 underline-offset-2 group-open:font-medium group-hover:underline", children: "Details" })] }), _jsxs("div", { className: "mt-2 grid gap-2 border-t border-slate-100 pt-2 text-[11px] leading-snug", children: [typeof entry.seq === "number" || duration || entry.toolCallId ? (_jsxs("div", { className: "flex flex-wrap gap-x-3 gap-y-1 text-slate-500", children: [typeof entry.seq === "number" ? (_jsxs("span", { className: "cursor-help", title: persistentLogSeqTooltip(entry.seq), children: ["Seq ", entry.seq] })) : null, duration ? (_jsx("span", { className: "cursor-help", title: persistentLogDurationTooltip(duration), children: duration })) : null, entry.toolCallId ? (_jsxs("span", { className: "cursor-help", title: persistentLogToolCallTooltip(entry.toolCallId), children: ["Tool ", entry.toolCallId] })) : null] })) : null, entry.error ? (_jsx("div", { className: "rounded border border-red-100 bg-red-50 px-2 py-1 text-red-700", children: entry.error })) : null, hasPayloadBlocks ? (_jsxs("div", { className: "grid gap-2", children: [renderPreviewBlock("Payload", entry.payloadPreview), renderPreviewBlock("Result", entry.resultPreview), renderPreviewBlock("Metadata", entry.metadataJson)] })) : null] })] })) }), _jsx("td", { className: "max-w-[220px] min-w-0 px-3 py-1.5 text-slate-600", children: _jsx("div", { className: "cursor-help truncate", title: contextTitle, children: contextLine }) })] }));
128
+ }
129
+ export function PersistentLogsPanel() {
130
+ const editContext = useEditContext();
131
+ const [draft, setDraft] = useState(createDefaultDraft);
132
+ const [filters, setFilters] = useState({
133
+ limit: 200,
134
+ });
135
+ const [logs, setLogs] = useState([]);
136
+ const [loggingEnabled, setLoggingEnabled] = useState(true);
137
+ const [isLoading, setIsLoading] = useState(false);
138
+ const [isPurging, setIsPurging] = useState(false);
139
+ const [error, setError] = useState(null);
140
+ const [hasCopied, setHasCopied] = useState(false);
141
+ const copyText = useMemo(() => formatPersistentLogsForCopy(logs, {
142
+ title: "Agent and taskboard logs",
143
+ }), [logs]);
144
+ const loadLogs = useCallback(async () => {
145
+ setIsLoading(true);
146
+ setError(null);
147
+ const result = await getPersistentLogsAdmin(filters);
148
+ if (result.type === "success") {
149
+ setLogs(result.data?.logs || []);
150
+ setLoggingEnabled(result.data?.loggingEnabled !== false);
151
+ setError(null);
152
+ }
153
+ else if (result.type === "unauthorized") {
154
+ setLogs([]);
155
+ setError("Administrator access is required to view agent and taskboard logs.");
156
+ }
157
+ else {
158
+ setLogs([]);
159
+ setError(result.summary || "Failed to load agent and taskboard logs.");
160
+ }
161
+ setIsLoading(false);
162
+ }, [filters]);
163
+ useEffect(() => {
164
+ void loadLogs();
165
+ }, [loadLogs]);
166
+ useEffect(() => {
167
+ if (!hasCopied)
168
+ return;
169
+ const timeoutId = window.setTimeout(() => setHasCopied(false), 1500);
170
+ return () => window.clearTimeout(timeoutId);
171
+ }, [hasCopied]);
172
+ const handleDraftChange = useCallback((key, value) => {
173
+ setDraft((current) => ({ ...current, [key]: value }));
174
+ }, []);
175
+ const handleApplyFilters = useCallback((event) => {
176
+ event?.preventDefault();
177
+ setFilters(toFilters(draft));
178
+ }, [draft]);
179
+ const handleResetFilters = useCallback(() => {
180
+ const nextDraft = createDefaultDraft();
181
+ setDraft(nextDraft);
182
+ setFilters(toFilters(nextDraft));
183
+ }, []);
184
+ const handleOpenSettings = useCallback(async () => {
185
+ if (!editContext)
186
+ return;
187
+ try {
188
+ const item = await editContext.loadItem("/sitecore/system/Parhelia/Settings");
189
+ if (item) {
190
+ editContext.switchWorkspace("editor");
191
+ }
192
+ else {
193
+ toast.error("Failed to open the Parhelia settings item.");
194
+ }
195
+ }
196
+ catch (e) {
197
+ toast.error(e?.message || "Failed to open the Parhelia settings item.");
198
+ }
199
+ }, [editContext]);
200
+ const handlePurge = useCallback(async () => {
201
+ const runPurge = async () => {
202
+ setIsPurging(true);
203
+ const result = await purgePersistentLogs();
204
+ setIsPurging(false);
205
+ if (result.type === "success") {
206
+ toast.success("Agent and taskboard log table truncated.");
207
+ await loadLogs();
208
+ return;
209
+ }
210
+ toast.error(result.summary || "Failed to purge persistent logs.");
211
+ };
212
+ if (editContext?.confirm) {
213
+ editContext.confirm({
214
+ header: "Purge agent and taskboard logs",
215
+ message: "This will truncate the stored agent and taskboard log table.\n\nThis action cannot be undone.",
216
+ acceptLabel: "Purge",
217
+ showCancel: true,
218
+ accept: () => {
219
+ void runPurge();
220
+ },
221
+ });
222
+ return;
223
+ }
224
+ if (typeof window !== "undefined" &&
225
+ window.confirm("This will truncate the stored agent and taskboard log table. Continue?")) {
226
+ await runPurge();
227
+ }
228
+ }, [editContext, loadLogs]);
229
+ const handleCopy = useCallback(async () => {
230
+ if (!copyText)
231
+ return;
232
+ try {
233
+ await navigator.clipboard.writeText(copyText);
234
+ setHasCopied(true);
235
+ }
236
+ catch (error) {
237
+ console.error("Failed to copy persistent logs:", error);
238
+ toast.error("Failed to copy agent and taskboard logs.");
239
+ }
240
+ }, [copyText]);
241
+ return (_jsx("div", { className: "h-full overflow-auto p-4", children: _jsxs("div", { className: "mx-auto grid gap-4", children: [_jsx("div", { className: "rounded-lg border border-neutral-200 bg-white p-4 md:p-6", children: _jsxs("form", { className: "grid gap-4", onSubmit: handleApplyFilters, children: [!loggingEnabled ? (_jsxs("div", { className: "rounded border border-amber-200 bg-amber-50 px-3 py-2 text-sm text-amber-900", children: ["Logging is currently disabled. Enable", " ", _jsx("strong", { children: "Enable Agent and Taskboard Logging" }), " ", "on the Parhelia settings item to capture new entries."] })) : null, _jsxs("div", { className: "grid gap-3 md:grid-cols-2 xl:grid-cols-4", children: [_jsx(Input, { value: draft.searchTerm, onChange: (event) => handleDraftChange("searchTerm", event.target.value), placeholder: "Search summary, payload, metadata" }), _jsx(Input, { value: draft.agentId, onChange: (event) => handleDraftChange("agentId", event.target.value), placeholder: "Agent ID" }), _jsx(Input, { value: draft.projectId, onChange: (event) => handleDraftChange("projectId", event.target.value), placeholder: "Project ID" }), _jsx(Input, { value: draft.taskId, onChange: (event) => handleDraftChange("taskId", event.target.value), placeholder: "Task ID" }), _jsx(Input, { value: draft.runId, onChange: (event) => handleDraftChange("runId", event.target.value), placeholder: "Run ID" }), _jsx(Input, { value: draft.eventType, onChange: (event) => handleDraftChange("eventType", event.target.value), placeholder: "Event type" }), _jsx(Input, { value: draft.stage, onChange: (event) => handleDraftChange("stage", event.target.value), placeholder: "Stage" }), _jsx(Input, { value: draft.status, onChange: (event) => handleDraftChange("status", event.target.value), placeholder: "Status" }), _jsx(Input, { value: draft.source, onChange: (event) => handleDraftChange("source", event.target.value), placeholder: "Source" }), _jsx(Select, { value: draft.success, onValueChange: (value) => handleDraftChange("success", value), options: SUCCESS_OPTIONS, placeholder: "All results" }), _jsx(Input, { value: draft.limit, onChange: (event) => handleDraftChange("limit", event.target.value), placeholder: "Limit", inputMode: "numeric" })] }), _jsxs("div", { className: "flex flex-wrap gap-2", children: [_jsxs(Button, { type: "submit", size: "sm", children: [_jsx(Search, { className: "h-4 w-4" }), "Apply Filters"] }), _jsx(Button, { type: "button", variant: "outline", size: "sm", onClick: handleResetFilters, children: "Reset" }), _jsxs(Button, { type: "button", variant: "outline", size: "sm", onClick: () => void loadLogs(), disabled: isLoading, children: [_jsx(RefreshCw, { className: cn("h-4 w-4", isLoading ? "animate-spin" : "") }), "Refresh"] }), _jsxs(Button, { type: "button", variant: "outline", size: "sm", onClick: () => void handleCopy(), disabled: !copyText, children: [hasCopied ? _jsx(Check, { className: "h-4 w-4" }) : _jsx(Copy, { className: "h-4 w-4" }), hasCopied ? "Copied Results" : "Copy Results"] }), _jsxs(Button, { type: "button", variant: "outline", size: "sm", onClick: () => void handleOpenSettings(), children: [_jsx(ExternalLink, { className: "h-4 w-4" }), "Open Settings Item"] }), _jsxs(Button, { type: "button", variant: "destructive", size: "sm", onClick: () => void handlePurge(), disabled: isPurging, children: [_jsx(Trash2, { className: "h-4 w-4" }), isPurging ? "Purging..." : "Purge Log Table"] })] })] }) }), _jsxs(Card, { icon: _jsx(Bug, { strokeWidth: 1, className: "h-5 w-5" }), title: "Entries", description: "Latest stored agent and taskboard log rows after applying the current filters.", children: [error ? (_jsx("div", { className: "rounded border border-red-200 bg-red-50 p-3 text-sm text-red-700", children: error })) : isLoading && logs.length === 0 ? (_jsxs("div", { className: "py-10 text-center text-sm text-slate-500", children: [_jsx(RefreshCw, { className: "mx-auto mb-2 h-4 w-4 animate-spin" }), "Loading agent and taskboard logs..."] })) : logs.length === 0 ? (_jsx("div", { className: "rounded border border-dashed border-slate-200 px-4 py-10 text-center text-sm text-slate-500", children: "No log entries matched the current filters." })) : (_jsxs("div", { className: "grid gap-2", children: [_jsx("p", { className: "text-xs leading-snug text-slate-500", children: PERSISTENT_LOG_FIELD_HINT }), _jsx("div", { className: "overflow-x-auto rounded border border-slate-200", children: _jsxs("table", { className: "min-w-full border-collapse", children: [_jsx("thead", { className: "bg-slate-50", children: _jsxs("tr", { className: "text-left text-[11px] font-semibold tracking-wider text-slate-500 uppercase", children: [_jsx("th", { className: "px-3 py-2", children: "Time" }), _jsx("th", { className: "px-3 py-2", children: "Type" }), _jsx("th", { className: "px-3 py-2", children: "Step" }), _jsx("th", { className: "px-3 py-2", children: "State" }), _jsx("th", { className: "px-3 py-2", children: "Summary" }), _jsx("th", { className: "px-3 py-2", children: "Context" })] }) }), _jsx("tbody", { children: logs.map((entry) => (_jsx(LogRow, { entry: entry }, entry.logId))) })] }) })] })), !loggingEnabled ? (_jsxs("div", { className: "mt-3 flex items-center gap-2 text-xs text-slate-500", children: [_jsx(AlertCircle, { className: "h-4 w-4" }), "New entries will not be written until logging is enabled again."] })) : null] })] }) }));
242
+ }
243
+ export default PersistentLogsPanel;
244
+ //# sourceMappingURL=PersistentLogsPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PersistentLogsPanel.js","sourceRoot":"","sources":["../../../../src/editor/settings/panels/PersistentLogsPanel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtG,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EACzB,+BAA+B,EAC/B,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,yCAAyC,CAAC;AAoBjD,MAAM,aAAa,GAAG,KAAK,CAAC;AAE5B,MAAM,eAAe,GAAG;IACtB,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE;IACnC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE;IAC3C,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE;CACzC,CAAC;AAEF,SAAS,kBAAkB;IACzB,OAAO;QACL,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,EAAE;QACb,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,EAAE;QACd,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,aAAa;KACrB,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED,SAAS,SAAS,CAAC,KAAqB;IACtC,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAErD,OAAO;QACL,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;QAClC,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC;QACtC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;QAChC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;QAC9B,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC;QACtC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;QAC9B,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;QAChC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;QAChC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;QACxC,OAAO,EACL,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;QAC5E,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;KAC3E,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,UAAqC;IAC3D,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACrF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU,GAAG,IAAI;QAAE,OAAO,GAAG,UAAU,IAAI,CAAC;IAChD,OAAO,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACxE,CAAC;AAED,SAAS,WAAW,CAAC,KAAgC;IACnD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACtD,CAAC;AAED,SAAS,WAAW,CAAC,KAAgC,EAAE,SAAS,GAAG,GAAG;IACpE,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;AACpF,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAkC;IAC1D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,KAAK,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrE,IAAI,KAAK,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC3E,IAAI,KAAK,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/D,IAAI,KAAK,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAE3C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa,EAAE,KAAgC;IACzE,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,OAAO,CACL,eAAK,SAAS,EAAC,YAAY,aACzB,cAAK,SAAS,EAAC,mEAAmE,YAC/E,KAAK,GACF,EACN,cAAK,SAAS,EAAC,8HAA8H,YAC1I,OAAO,GACJ,IACF,CACP,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,EAAE,KAAK,EAA0C;IAC/D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9E,MAAM,iBAAiB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IAE7D,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,IAAI,GACR,KAAK,CAAC,OAAO,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,QAAQ;QACjE,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI;YACtB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,WAAW,CAAC;IAEpB,MAAM,WAAW,GACf,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,MAAM,YAAY,GAAG,YAAY;SAC9B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,+BAA+B,CAAC,IAAI,CAAC,EAAE,CAAC;SACzD,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,MAAM,gBAAgB,GAAG,OAAO,CAC9B,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC;QAC/B,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC;QAChC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAClC,CAAC;IACF,MAAM,oBAAoB,GACxB,gBAAgB;QAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;QACpB,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;QAC7B,OAAO,CAAC,QAAQ,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpC,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,YAAY,CAAC;IAE1D,OAAO,CACL,cAAI,SAAS,EAAC,gFAAgF,aAC5F,aAAI,SAAS,EAAC,4DAA4D,YACxE,cACE,SAAS,EAAC,gCAAgC,EAC1C,KAAK,EAAE,6BAA6B,CAAC;wBACnC,YAAY,EAAE,iBAAiB;wBAC/B,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS;wBAC9E,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;wBAC/D,GAAG,EAAE,KAAK,CAAC,SAAS;qBACrB,CAAC,YAED,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,GAC7D,GACH,EACL,aAAI,SAAS,EAAC,2BAA2B,YACvC,KAAC,KAAK,IACJ,OAAO,EAAC,SAAS,EACjB,SAAS,EAAC,sEAAsE,EAChF,KAAK,EAAE,6BAA6B,CAAC,KAAK,CAAC,SAAS,CAAC,YAErD,eAAM,SAAS,EAAC,UAAU,YAAE,4BAA4B,CAAC,KAAK,CAAC,SAAS,CAAC,GAAQ,GAC3E,GACL,EACL,aAAI,SAAS,EAAC,2BAA2B,YACvC,KAAC,KAAK,IACJ,OAAO,EAAC,SAAS,EACjB,SAAS,EAAC,sEAAsE,EAChF,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,KAAK,CAAC,YAE7C,eAAM,SAAS,EAAC,UAAU,YAAE,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAQ,GACnE,GACL,EACL,aAAI,SAAS,EAAC,mCAAmC,YAC/C,eAAK,SAAS,EAAC,8CAA8C,aAC1D,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CACd,KAAC,KAAK,IACJ,OAAO,EAAE,IAAI,EACb,SAAS,EAAC,6EAA6E,EACvF,KAAK,EAAE,0BAA0B,CAAC,KAAK,CAAC,MAAM,CAAC,YAE/C,eAAM,SAAS,EAAC,UAAU,YAAE,yBAAyB,CAAC,KAAK,CAAC,MAAM,CAAC,GAAQ,GACrE,CACT,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,yBAAyB,uBAAS,CACnD,EACA,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CACd,eACE,SAAS,EAAC,6CAA6C,EACvD,KAAK,EAAE,0BAA0B,CAAC,KAAK,CAAC,MAAM,CAAC,YAE9C,KAAK,CAAC,MAAM,GACR,CACR,CAAC,CAAC,CAAC,IAAI,IACJ,GACH,EACL,aAAI,SAAS,EAAC,oCAAoC,YAC/C,CAAC,oBAAoB,CAAC,CAAC,CAAC,CACvB,cAAK,SAAS,EAAC,yBAAyB,EAAC,KAAK,EAAE,WAAW,YACxD,WAAW,GACR,CACP,CAAC,CAAC,CAAC,CACF,mBAAS,SAAS,EAAC,eAAe,aAChC,mBAAS,SAAS,EAAC,qFAAqF,aACtG,gBACE,SAAS,EAAC,kDAAkD,EAC5D,KAAK,EACH,KAAK,CAAC,KAAK;wCACT,CAAC,CAAC,GAAG,WAAW,OAAO,KAAK,CAAC,KAAK,EAAE;wCACpC,CAAC,CAAC,WAAW,aAGhB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CACb,gBAAM,SAAS,EAAC,cAAc,4CAC1B,GAAG,IACA,CACR,CAAC,CAAC,CAAC,IAAI,EACP,WAAW,IACP,EACP,eAAM,SAAS,EAAC,yFAAyF,wBAElG,IACC,EACV,eAAK,SAAS,EAAC,yEAAyE,aACrF,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAC/D,eAAK,SAAS,EAAC,+CAA+C,aAC3D,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAC/B,gBAAM,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,uBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC,qBAChE,KAAK,CAAC,GAAG,IACT,CACR,CAAC,CAAC,CAAC,IAAI,EACP,QAAQ,CAAC,CAAC,CAAC,CACV,eAAM,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,4BAA4B,CAAC,QAAQ,CAAC,YACxE,QAAQ,GACJ,CACR,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAClB,gBACE,SAAS,EAAC,aAAa,EACvB,KAAK,EAAE,4BAA4B,CAAC,KAAK,CAAC,UAAU,CAAC,sBAE/C,KAAK,CAAC,UAAU,IACjB,CACR,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CACb,cAAK,SAAS,EAAC,gEAAgE,YAC5E,KAAK,CAAC,KAAK,GACR,CACP,CAAC,CAAC,CAAC,IAAI,EACP,gBAAgB,CAAC,CAAC,CAAC,CAClB,eAAK,SAAS,EAAC,YAAY,aACxB,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,EACnD,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,EACjD,kBAAkB,CAAC,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,IAC/C,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,IACE,CACX,GACE,EACL,aAAI,SAAS,EAAC,kDAAkD,YAC9D,cAAK,SAAS,EAAC,sBAAsB,EAAC,KAAK,EAAE,YAAY,YACtD,WAAW,GACR,GACH,IACF,CACN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAiB,kBAAkB,CAAC,CAAC;IACvE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAA6B;QACjE,KAAK,EAAE,GAAG;KACX,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAgC,EAAE,CAAC,CAAC;IACpE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElD,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CACH,2BAA2B,CAAC,IAAI,EAAE;QAChC,KAAK,EAAE,0BAA0B;KAClC,CAAC,EACJ,CAAC,IAAI,CAAC,CACP,CAAC;IAEF,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACtC,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAErD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YACjC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,KAAK,KAAK,CAAC,CAAC;YACzD,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAC1C,OAAO,CAAC,EAAE,CAAC,CAAC;YACZ,QAAQ,CACN,oEAAoE,CACrE,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,EAAE,CAAC,CAAC;YACZ,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,0CAA0C,CAAC,CAAC;QACzE,CAAC;QAED,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,QAAQ,EAAE,CAAC;IAClB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;QACrE,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,GAAyB,EAAE,KAAa,EAAE,EAAE;QAC3C,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,KAAiB,EAAE,EAAE;QACpB,KAAK,EAAE,cAAc,EAAE,CAAC;QACxB,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/B,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC1C,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;QACvC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpB,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IACnC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,kBAAkB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAChD,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,oCAAoC,CAAC,CAAC;YAC9E,IAAI,IAAI,EAAE,CAAC;gBACT,WAAW,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,IAAI,4CAA4C,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACzC,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;YAC1B,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,MAAM,mBAAmB,EAAE,CAAC;YAC3C,YAAY,CAAC,KAAK,CAAC,CAAC;YAEpB,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,KAAK,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;gBAC1D,MAAM,QAAQ,EAAE,CAAC;gBACjB,OAAO;YACT,CAAC;YAED,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,kCAAkC,CAAC,CAAC;QACpE,CAAC,CAAC;QAEF,IAAI,WAAW,EAAE,OAAO,EAAE,CAAC;YACzB,WAAW,CAAC,OAAO,CAAC;gBAClB,MAAM,EAAE,gCAAgC;gBACxC,OAAO,EACL,+FAA+F;gBACjG,WAAW,EAAE,OAAO;gBACpB,UAAU,EAAE,IAAI;gBAChB,MAAM,EAAE,GAAG,EAAE;oBACX,KAAK,QAAQ,EAAE,CAAC;gBAClB,CAAC;aACF,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IACE,OAAO,MAAM,KAAK,WAAW;YAC7B,MAAM,CAAC,OAAO,CACZ,wEAAwE,CACzE,EACD,CAAC;YACD,MAAM,QAAQ,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE5B,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACxC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC9C,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YACxD,KAAK,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,CACL,cAAK,SAAS,EAAC,0BAA0B,YACvC,eAAK,SAAS,EAAC,oBAAoB,aACjC,cAAK,SAAS,EAAC,0DAA0D,YACvE,gBAAM,SAAS,EAAC,YAAY,EAAC,QAAQ,EAAE,kBAAkB,aACtD,CAAC,cAAc,CAAC,CAAC,CAAC,CACjB,eAAK,SAAS,EAAC,8EAA8E,sDAE1F,GAAG,EACJ,kEAAmD,EAClD,GAAG,6DAEA,CACP,CAAC,CAAC,CAAC,IAAI,EAER,eAAK,SAAS,EAAC,0CAA0C,aACvD,KAAC,KAAK,IACJ,KAAK,EAAE,KAAK,CAAC,UAAU,EACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACxE,WAAW,EAAC,mCAAmC,GAC/C,EACF,KAAC,KAAK,IACJ,KAAK,EAAE,KAAK,CAAC,OAAO,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACrE,WAAW,EAAC,UAAU,GACtB,EACF,KAAC,KAAK,IACJ,KAAK,EAAE,KAAK,CAAC,SAAS,EACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACvE,WAAW,EAAC,YAAY,GACxB,EACF,KAAC,KAAK,IACJ,KAAK,EAAE,KAAK,CAAC,MAAM,EACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACpE,WAAW,EAAC,SAAS,GACrB,EACF,KAAC,KAAK,IACJ,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACnE,WAAW,EAAC,QAAQ,GACpB,EACF,KAAC,KAAK,IACJ,KAAK,EAAE,KAAK,CAAC,SAAS,EACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACvE,WAAW,EAAC,YAAY,GACxB,EACF,KAAC,KAAK,IACJ,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACnE,WAAW,EAAC,OAAO,GACnB,EACF,KAAC,KAAK,IACJ,KAAK,EAAE,KAAK,CAAC,MAAM,EACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACpE,WAAW,EAAC,QAAQ,GACpB,EACF,KAAC,KAAK,IACJ,KAAK,EAAE,KAAK,CAAC,MAAM,EACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACpE,WAAW,EAAC,QAAQ,GACpB,EACF,KAAC,MAAM,IACL,KAAK,EAAE,KAAK,CAAC,OAAO,EACpB,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,EAC7D,OAAO,EAAE,eAAe,EACxB,WAAW,EAAC,aAAa,GACzB,EACF,KAAC,KAAK,IACJ,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACnE,WAAW,EAAC,OAAO,EACnB,SAAS,EAAC,SAAS,GACnB,IACE,EAEN,eAAK,SAAS,EAAC,sBAAsB,aACnC,MAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,IAAI,aAC7B,KAAC,MAAM,IAAC,SAAS,EAAC,SAAS,GAAG,qBAEvB,EACT,KAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,kBAAkB,sBAGpB,EACT,MAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,EAC9B,QAAQ,EAAE,SAAS,aAEnB,KAAC,SAAS,IAAC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,GAAI,eAEjE,EACT,MAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,UAAU,EAAE,EAChC,QAAQ,EAAE,CAAC,QAAQ,aAElB,SAAS,CAAC,CAAC,CAAC,KAAC,KAAK,IAAC,SAAS,EAAC,SAAS,GAAG,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,GAAG,EACxE,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc,IACvC,EACT,MAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,kBAAkB,EAAE,aAExC,KAAC,YAAY,IAAC,SAAS,EAAC,SAAS,GAAG,0BAE7B,EACT,MAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,aAAa,EACrB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,WAAW,EAAE,EACjC,QAAQ,EAAE,SAAS,aAEnB,KAAC,MAAM,IAAC,SAAS,EAAC,SAAS,GAAG,EAC7B,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,IACtC,IACL,IACD,GACH,EAEN,MAAC,IAAI,IACH,IAAI,EAAE,KAAC,GAAG,IAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAC,SAAS,GAAG,EACjD,KAAK,EAAC,SAAS,EACf,WAAW,EAAC,gFAAgF,aAE3F,KAAK,CAAC,CAAC,CAAC,CACP,cAAK,SAAS,EAAC,kEAAkE,YAC9E,KAAK,GACF,CACP,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACnC,eAAK,SAAS,EAAC,0CAA0C,aACvD,KAAC,SAAS,IAAC,SAAS,EAAC,mCAAmC,GAAG,2CAEvD,CACP,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACtB,cAAK,SAAS,EAAC,6FAA6F,4DAEtG,CACP,CAAC,CAAC,CAAC,CACF,eAAK,SAAS,EAAC,YAAY,aACzB,YAAG,SAAS,EAAC,qCAAqC,YAAE,yBAAyB,GAAK,EAClF,cAAK,SAAS,EAAC,iDAAiD,YAChE,iBAAO,SAAS,EAAC,4BAA4B,aAC3C,gBAAO,SAAS,EAAC,aAAa,YAC5B,cAAI,SAAS,EAAC,6EAA6E,aACzF,aAAI,SAAS,EAAC,WAAW,qBAAU,EACnC,aAAI,SAAS,EAAC,WAAW,qBAAU,EACnC,aAAI,SAAS,EAAC,WAAW,qBAAU,EACnC,aAAI,SAAS,EAAC,WAAW,sBAAW,EACpC,aAAI,SAAS,EAAC,WAAW,wBAAa,EACtC,aAAI,SAAS,EAAC,WAAW,wBAAa,IACnC,GACC,EACR,0BACG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACnB,KAAC,MAAM,IAAmB,KAAK,EAAE,KAAK,IAAzB,KAAK,CAAC,KAAK,CAAkB,CAC3C,CAAC,GACI,IACF,GACF,IACF,CACP,EAEA,CAAC,cAAc,CAAC,CAAC,CAAC,CACjB,eAAK,SAAS,EAAC,qDAAqD,aAClE,KAAC,WAAW,IAAC,SAAS,EAAC,SAAS,GAAG,uEAE/B,CACP,CAAC,CAAC,CAAC,IAAI,IACH,IACH,GACF,CACP,CAAC;AACJ,CAAC;AAED,eAAe,mBAAmB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { type ReactNode } from "react";
1
2
  type ProjectTemplateAgentPanelProps = {
2
3
  templateName?: string | null;
3
4
  agentId: string | null;
@@ -5,6 +6,11 @@ type ProjectTemplateAgentPanelProps = {
5
6
  resetting: boolean;
6
7
  error?: string | null;
7
8
  onStartOver: () => void;
9
+ /** Desktop: hide list + detail columns and show only the assistant. */
10
+ onExpandAssistant?: () => void;
11
+ showExpandAssistant?: boolean;
12
+ /** Prepended to the header row (e.g. mobile back control). */
13
+ headerStart?: ReactNode;
8
14
  };
9
- export declare function ProjectTemplateAgentPanel({ templateName, agentId, loading, resetting, error, onStartOver, }: ProjectTemplateAgentPanelProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare function ProjectTemplateAgentPanel({ templateName, agentId, loading, resetting, error, onStartOver, onExpandAssistant, showExpandAssistant, headerStart, }: ProjectTemplateAgentPanelProps): import("react/jsx-runtime").JSX.Element;
10
16
  export default ProjectTemplateAgentPanel;
@@ -1,10 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useMemo, useState } from "react";
3
- import { Bot, RefreshCw, RotateCcw } from "lucide-react";
3
+ import { Bot, Maximize2, RefreshCw, RotateCcw } from "lucide-react";
4
4
  import { Button } from "../../../components/ui/button";
5
5
  import { AgentTerminal } from "../../ai/AgentTerminal";
6
6
  import { getAiProfilesErrorMessage, loadAiProfiles, } from "../../services/aiService";
7
- export function ProjectTemplateAgentPanel({ templateName, agentId, loading, resetting, error, onStartOver, }) {
7
+ export function ProjectTemplateAgentPanel({ templateName, agentId, loading, resetting, error, onStartOver, onExpandAssistant, showExpandAssistant, headerStart, }) {
8
8
  const [profiles, setProfiles] = useState([]);
9
9
  const [profilesError, setProfilesError] = useState(null);
10
10
  useEffect(() => {
@@ -40,7 +40,7 @@ export function ProjectTemplateAgentPanel({ templateName, agentId, loading, rese
40
40
  const headerTitle = templateName?.trim()
41
41
  ? `${templateName} Assistant`
42
42
  : "Template Assistant";
43
- return (_jsxs("div", { className: "flex h-full min-h-0 flex-col bg-white", "data-testid": "project-template-agent-panel", children: [_jsxs("div", { className: "flex items-center justify-between gap-2 border-b px-4 py-3", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [_jsx(Bot, { className: "h-5 w-5 text-muted-foreground" }), _jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "truncate text-sm font-semibold", children: headerTitle }), _jsx("div", { className: "text-xs text-muted-foreground", children: "Ask about task-project structure, dependencies, and template design." })] })] }), _jsxs(Button, { variant: "outline", size: "sm", onClick: onStartOver, disabled: !templateName || loading || resetting, title: "Create a fresh assistant conversation for this template", "data-testid": "project-template-agent-reset-button", children: [resetting ? (_jsx(RefreshCw, { className: "h-4 w-4 animate-spin", strokeWidth: 1.5 })) : (_jsx(RotateCcw, { className: "h-4 w-4", strokeWidth: 1.5 })), "Start Over"] })] }), profilesError ? (_jsx("div", { className: "border-b border-amber-200 bg-amber-50 px-4 py-2 text-xs text-amber-700", children: profilesError })) : null, error ? (_jsx("div", { className: "border-b border-red-200 bg-red-50 px-4 py-2 text-xs text-red-700", children: error })) : null, _jsx("div", { className: "min-h-0 flex-1", children: loading ? (_jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-3 p-6 text-center", children: [_jsx(RefreshCw, { className: "h-8 w-8 animate-spin text-muted-foreground/60" }), _jsx("div", { className: "text-sm text-muted-foreground", children: "Loading template assistant..." })] })) : !templateName ? (_jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-3 p-6 text-center", children: [_jsx(Bot, { className: "h-10 w-10 text-muted-foreground/40" }), _jsxs("div", { className: "grid gap-1", children: [_jsx("div", { className: "text-sm font-medium text-muted-foreground", children: "No template selected" }), _jsx("div", { className: "text-xs text-muted-foreground", children: "Select a project template to open its dedicated assistant." })] })] })) : !agentStub ? (_jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-3 p-6 text-center", children: [_jsx(Bot, { className: "h-10 w-10 text-muted-foreground/40" }), _jsxs("div", { className: "grid gap-1", children: [_jsx("div", { className: "text-sm font-medium text-muted-foreground", children: "Assistant unavailable" }), _jsx("div", { className: "text-xs text-muted-foreground", children: "Try selecting the template again or use Start Over to create a fresh session." })] })] })) : (_jsx(AgentTerminal, { agentStub: agentStub, profiles: profiles, isActive: true, compact: true, hideGreeting: true, displayMode: "full", showSummaryInput: false, className: "h-full" })) })] }));
43
+ return (_jsxs("div", { className: "flex h-full min-h-0 flex-col bg-white", "data-testid": "project-template-agent-panel", children: [_jsxs("div", { className: "flex items-center justify-between gap-2 border-b px-4 py-3", children: [_jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: [headerStart ? (_jsx("div", { className: "shrink-0", children: headerStart })) : null, _jsx(Bot, { className: "h-5 w-5 shrink-0 text-muted-foreground" }), _jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "truncate text-sm font-semibold", children: headerTitle }), _jsx("div", { className: "text-xs text-muted-foreground", children: "Ask about task-project structure, dependencies, and template design." })] })] }), _jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [showExpandAssistant && onExpandAssistant ? (_jsxs(Button, { type: "button", variant: "outline", size: "sm", onClick: onExpandAssistant, title: "Show only the assistant (hide template list and editor)", "data-testid": "project-template-agent-expand-button", children: [_jsx(Maximize2, { className: "h-4 w-4", strokeWidth: 1.5 }), _jsx("span", { className: "hidden sm:inline", children: "Expand" })] })) : null, _jsxs(Button, { variant: "outline", size: "sm", onClick: onStartOver, disabled: !templateName || loading || resetting, title: "Create a fresh assistant conversation for this template", "data-testid": "project-template-agent-reset-button", children: [resetting ? (_jsx(RefreshCw, { className: "h-4 w-4 animate-spin", strokeWidth: 1.5 })) : (_jsx(RotateCcw, { className: "h-4 w-4", strokeWidth: 1.5 })), "Start Over"] })] })] }), profilesError ? (_jsx("div", { className: "border-b border-amber-200 bg-amber-50 px-4 py-2 text-xs text-amber-700", children: profilesError })) : null, error ? (_jsx("div", { className: "border-b border-red-200 bg-red-50 px-4 py-2 text-xs text-red-700", children: error })) : null, _jsx("div", { className: "min-h-0 flex-1", children: loading ? (_jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-3 p-6 text-center", children: [_jsx(RefreshCw, { className: "h-8 w-8 animate-spin text-muted-foreground/60" }), _jsx("div", { className: "text-sm text-muted-foreground", children: "Loading template assistant..." })] })) : !templateName ? (_jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-3 p-6 text-center", children: [_jsx(Bot, { className: "h-10 w-10 text-muted-foreground/40" }), _jsxs("div", { className: "grid gap-1", children: [_jsx("div", { className: "text-sm font-medium text-muted-foreground", children: "No template selected" }), _jsx("div", { className: "text-xs text-muted-foreground", children: "Select a project template to open its dedicated assistant." })] })] })) : !agentStub ? (_jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-3 p-6 text-center", children: [_jsx(Bot, { className: "h-10 w-10 text-muted-foreground/40" }), _jsxs("div", { className: "grid gap-1", children: [_jsx("div", { className: "text-sm font-medium text-muted-foreground", children: "Assistant unavailable" }), _jsx("div", { className: "text-xs text-muted-foreground", children: "Try selecting the template again or use Start Over to create a fresh session." })] })] })) : (_jsx(AgentTerminal, { agentStub: agentStub, profiles: profiles, isActive: true, compact: true, hideGreeting: true, displayMode: "full", showSummaryInput: false, className: "h-full" })) })] }));
44
44
  }
45
45
  export default ProjectTemplateAgentPanel;
46
46
  //# sourceMappingURL=ProjectTemplateAgentPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectTemplateAgentPanel.js","sourceRoot":"","sources":["../../../../src/editor/settings/panels/ProjectTemplateAgentPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectTemplateAgentPanel.js","sourceRoot":"","sources":["../../../../src/editor/settings/panels/ProjectTemplateAgentPanel.tsx"],"names":[],"mappings":"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"}