@parhelia/core 0.1.12694 → 0.1.12710

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 (42) hide show
  1. package/dist/editor/client/EditorShell.js +19 -2
  2. package/dist/editor/client/EditorShell.js.map +1 -1
  3. package/dist/editor/commands/itemCommands.js +4 -80
  4. package/dist/editor/commands/itemCommands.js.map +1 -1
  5. package/dist/editor/menubar/ItemLanguageVersion.js +1 -1
  6. package/dist/editor/menubar/ItemLanguageVersion.js.map +1 -1
  7. package/dist/editor/menubar/VersionPreviewCard.d.ts +6 -0
  8. package/dist/editor/menubar/VersionPreviewCard.js +267 -0
  9. package/dist/editor/menubar/VersionPreviewCard.js.map +1 -0
  10. package/dist/editor/menubar/VersionSelector.d.ts +2 -1
  11. package/dist/editor/menubar/VersionSelector.js +50 -7
  12. package/dist/editor/menubar/VersionSelector.js.map +1 -1
  13. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.d.ts +2 -1
  14. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js +26 -298
  15. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js.map +1 -1
  16. package/dist/editor/page-viewer/MiniMap.d.ts +2 -1
  17. package/dist/editor/page-viewer/MiniMap.js +3 -2
  18. package/dist/editor/page-viewer/MiniMap.js.map +1 -1
  19. package/dist/editor/page-viewer/PageViewerFrame.js +1 -1
  20. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  21. package/dist/editor/pageModel.d.ts +4 -0
  22. package/dist/editor/ui/ExportItemsDialog.d.ts +10 -0
  23. package/dist/editor/ui/ExportItemsDialog.js +19 -0
  24. package/dist/editor/ui/ExportItemsDialog.js.map +1 -0
  25. package/dist/editor/ui/ImportItemsDialog.d.ts +10 -0
  26. package/dist/editor/ui/ImportItemsDialog.js +40 -0
  27. package/dist/editor/ui/ImportItemsDialog.js.map +1 -0
  28. package/dist/editor/version-diff/versionDiffHighlightStyles.d.ts +8 -0
  29. package/dist/editor/version-diff/versionDiffHighlightStyles.js +9 -0
  30. package/dist/editor/version-diff/versionDiffHighlightStyles.js.map +1 -0
  31. package/dist/editor/version-diff/versionDiffTargets.d.ts +48 -0
  32. package/dist/editor/version-diff/versionDiffTargets.js +284 -0
  33. package/dist/editor/version-diff/versionDiffTargets.js.map +1 -0
  34. package/dist/editor/views/CompareView.js +4 -4
  35. package/dist/editor/views/CompareView.js.map +1 -1
  36. package/dist/revision.d.ts +2 -2
  37. package/dist/revision.js +2 -2
  38. package/dist/splash-screen/ParheliaAssistantChat.js +168 -5
  39. package/dist/splash-screen/ParheliaAssistantChat.js.map +1 -1
  40. package/dist/task-board/TaskBoardWorkspace.js +4 -7
  41. package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
  42. package/package.json +1 -1
@@ -0,0 +1,284 @@
1
+ import { diffChars } from "diff";
2
+ import { getLanguagesAndVersions, getPageComponents, } from "../services/contentService";
3
+ export async function resolveVersionDiffTargets({ iframe, pageItem, getItem, baseline, previousVersionCache, }) {
4
+ const renderedFields = collectRenderedFields(iframe, pageItem);
5
+ const renderedComponents = collectRenderedComponents(iframe);
6
+ const itemsToResolve = getUniqueItems([
7
+ pageItem,
8
+ ...renderedFields.map((field) => field.descriptor.item),
9
+ ]);
10
+ if (renderedFields.length === 0 && renderedComponents.length === 0) {
11
+ return { fieldTargets: [], componentTargets: [] };
12
+ }
13
+ const baselineEntries = baseline.type === "compare"
14
+ ? resolveCompareBaselineEntries(itemsToResolve, baseline.compareTo)
15
+ : await resolvePreviousVersionBaselineEntries(itemsToResolve, getItem, previousVersionCache);
16
+ const baselinePageEntry = baselineEntries.find((entry) => entry.currentItemKey === itemKey(pageItem));
17
+ if (baselineEntries.length === 0) {
18
+ return { fieldTargets: [], componentTargets: [] };
19
+ }
20
+ const baselineItemsByCurrentItemKey = new Map();
21
+ await Promise.all(baselineEntries.map(async (entry) => {
22
+ const item = await getItem(entry.baselineDescriptor);
23
+ if (item) {
24
+ baselineItemsByCurrentItemKey.set(entry.currentItemKey, item);
25
+ }
26
+ }));
27
+ const fieldTargets = renderedFields
28
+ .map((renderedField) => {
29
+ const currentItemKey = itemKey(renderedField.descriptor.item);
30
+ const baselineItem = baselineItemsByCurrentItemKey.get(currentItemKey);
31
+ const baselineField = baselineItem?.fields.find((field) => normalizeId(field.id) === normalizeId(renderedField.descriptor.fieldId));
32
+ if (!baselineField)
33
+ return undefined;
34
+ const baselineText = getFieldText(baselineField);
35
+ if (baselineText === renderedField.currentText)
36
+ return undefined;
37
+ const ranges = getChangedCurrentRanges(baselineText, renderedField.currentText);
38
+ return {
39
+ ...renderedField,
40
+ baselineText,
41
+ ranges,
42
+ hasDeletionOnlyChange: ranges.length === 0,
43
+ };
44
+ })
45
+ .filter((target) => !!target);
46
+ const [currentProviderComponents, baselineProviderComponents] = await Promise.all([
47
+ getPageComponents(pageItem),
48
+ baselinePageEntry
49
+ ? getPageComponents(baselinePageEntry.baselineDescriptor)
50
+ : Promise.resolve([]),
51
+ ]);
52
+ const baselineProviderIds = new Set(baselineProviderComponents.map((component) => normalizeId(component.id)));
53
+ const componentTargets = currentProviderComponents
54
+ .filter((component) => !baselineProviderIds.has(normalizeId(component.id)))
55
+ .map(componentToDiffTarget);
56
+ return { fieldTargets, componentTargets };
57
+ }
58
+ function collectRenderedFields(iframe, fallbackItem) {
59
+ const body = iframe.contentWindow?.document.body;
60
+ if (!body)
61
+ return [];
62
+ const renderedFieldsByKey = new Map();
63
+ body.querySelectorAll("[data-fieldid][data-itemid]").forEach((element) => {
64
+ const itemId = element.getAttribute("data-itemid");
65
+ const fieldId = element.getAttribute("data-fieldid");
66
+ if (!itemId || !fieldId)
67
+ return;
68
+ const rawVersion = parseInt(element.getAttribute("data-version") || "", 10);
69
+ const descriptor = {
70
+ item: {
71
+ id: itemId,
72
+ language: element.getAttribute("data-language") || fallbackItem.language,
73
+ version: Number.isFinite(rawVersion) ? rawVersion : fallbackItem.version,
74
+ database: fallbackItem.database,
75
+ },
76
+ fieldId,
77
+ };
78
+ const key = fieldKey(descriptor);
79
+ if (!renderedFieldsByKey.has(key)) {
80
+ renderedFieldsByKey.set(key, {
81
+ descriptor,
82
+ currentText: element.textContent || "",
83
+ });
84
+ }
85
+ });
86
+ return Array.from(renderedFieldsByKey.values());
87
+ }
88
+ function resolveCompareBaselineEntries(currentItems, compareTo) {
89
+ if (!compareTo?.language)
90
+ return [];
91
+ return currentItems.map((item) => ({
92
+ currentItemKey: itemKey(item),
93
+ baselineDescriptor: {
94
+ ...item,
95
+ language: compareTo.language,
96
+ version: compareTo.version,
97
+ database: item.database ?? compareTo.database,
98
+ },
99
+ }));
100
+ }
101
+ async function resolvePreviousVersionBaselineEntries(currentItems, getItem, previousVersionCache) {
102
+ const entries = await Promise.all(currentItems.map(async (item) => {
103
+ const currentItem = await getItem(item);
104
+ const currentVersion = currentItem?.version || item.version;
105
+ if (!currentVersion || currentVersion <= 1)
106
+ return undefined;
107
+ const cacheKey = `${normalizeId(item.id)}|${item.language}|${currentVersion}`;
108
+ let previousVersion = previousVersionCache.get(cacheKey);
109
+ if (previousVersion === undefined) {
110
+ const result = await getLanguagesAndVersions({
111
+ ...item,
112
+ version: currentVersion,
113
+ });
114
+ const versions = result?.data?.versions?.map((x) => x.version) || [];
115
+ previousVersion =
116
+ versions
117
+ .filter((version) => version < currentVersion)
118
+ .sort((a, b) => b - a)[0] ?? null;
119
+ previousVersionCache.set(cacheKey, previousVersion);
120
+ }
121
+ if (!previousVersion)
122
+ return undefined;
123
+ return {
124
+ currentItemKey: itemKey(item),
125
+ baselineDescriptor: {
126
+ ...item,
127
+ version: previousVersion,
128
+ },
129
+ };
130
+ }));
131
+ return entries.filter((entry) => !!entry);
132
+ }
133
+ function getUniqueItems(itemDescriptors) {
134
+ const items = new Map();
135
+ itemDescriptors.forEach((item) => {
136
+ const key = itemKey(item);
137
+ if (!items.has(key))
138
+ items.set(key, item);
139
+ });
140
+ return Array.from(items.values());
141
+ }
142
+ function collectRenderedComponents(iframe) {
143
+ const body = iframe.contentWindow?.document.body;
144
+ if (!body)
145
+ return [];
146
+ const components = new Map();
147
+ body
148
+ .querySelectorAll("script[data-component-start]")
149
+ .forEach((element) => {
150
+ const id = element.getAttribute("data-component-start");
151
+ if (!id || components.has(normalizeId(id)))
152
+ return;
153
+ components.set(normalizeId(id), {
154
+ id,
155
+ visualId: id,
156
+ dataItemId: element.getAttribute("data-itemid"),
157
+ dataTypeId: element.getAttribute("data-typeid"),
158
+ dataLayoutId: element.getAttribute("data-layoutid"),
159
+ dataPlaceholderKey: element.getAttribute("data-placeholderkey"),
160
+ });
161
+ });
162
+ return Array.from(components.values());
163
+ }
164
+ function componentToDiffTarget(component) {
165
+ const visualId = component.dataSourceItem?.id || component.id;
166
+ return {
167
+ id: component.id,
168
+ visualId,
169
+ dataItemId: component.dataSourceItem?.id,
170
+ dataTypeId: component.renderingItemId,
171
+ providerPlaceholder: component.placeholder,
172
+ providerRenderingItemId: component.renderingItemId,
173
+ };
174
+ }
175
+ function getChangedCurrentRanges(baselineText, currentText) {
176
+ const ranges = [];
177
+ let currentPosition = 0;
178
+ diffChars(baselineText, currentText).forEach((part) => {
179
+ if (part.added) {
180
+ ranges.push([currentPosition, currentPosition + part.value.length]);
181
+ currentPosition += part.value.length;
182
+ return;
183
+ }
184
+ if (!part.removed) {
185
+ currentPosition += part.value.length;
186
+ }
187
+ });
188
+ return mergeRanges(ranges);
189
+ }
190
+ function mergeRanges(ranges) {
191
+ if (ranges.length <= 1)
192
+ return ranges;
193
+ const sorted = [...ranges].sort((a, b) => a[0] - b[0]);
194
+ const merged = [];
195
+ sorted.forEach(([start, end]) => {
196
+ const previous = merged[merged.length - 1];
197
+ if (previous && start <= previous[1] + 1) {
198
+ previous[1] = Math.max(previous[1], end);
199
+ return;
200
+ }
201
+ merged.push([start, end]);
202
+ });
203
+ return merged;
204
+ }
205
+ export function findFieldElements(iframe, descriptor) {
206
+ const body = iframe.contentWindow?.document.body;
207
+ if (!body)
208
+ return [];
209
+ return Array.from(body.querySelectorAll("[data-fieldid][data-itemid]")).filter((element) => {
210
+ const itemId = element.getAttribute("data-itemid");
211
+ const fieldId = element.getAttribute("data-fieldid");
212
+ return (normalizeId(itemId) === normalizeId(descriptor.item.id) &&
213
+ normalizeId(fieldId) === normalizeId(descriptor.fieldId));
214
+ });
215
+ }
216
+ export function getTextNodeAtOffset(root, offset) {
217
+ const doc = root.ownerDocument;
218
+ const nodeFilter = doc.defaultView?.NodeFilter ?? NodeFilter;
219
+ const walker = doc.createTreeWalker(root, nodeFilter.SHOW_TEXT);
220
+ let currentNode;
221
+ while ((currentNode = walker.nextNode())) {
222
+ const nodeLength = currentNode.textContent?.length || 0;
223
+ if (offset <= nodeLength) {
224
+ return { node: currentNode, offset };
225
+ }
226
+ offset -= nodeLength;
227
+ }
228
+ return null;
229
+ }
230
+ function getFieldText(field) {
231
+ const value = typeof field.rawValue === "string"
232
+ ? field.rawValue
233
+ : typeof field.value === "string"
234
+ ? field.value
235
+ : field.value == null
236
+ ? ""
237
+ : String(field.value);
238
+ return stripHtml(value);
239
+ }
240
+ export function findComponentRectById(iframe, componentId) {
241
+ const body = iframe.contentWindow?.document.body;
242
+ if (!body)
243
+ return null;
244
+ const startMarker = body.querySelector(`[data-component-start='${componentId}']`);
245
+ const endMarker = body.querySelector(`[data-component-end='${componentId}']`);
246
+ let startElement = startMarker?.nextElementSibling;
247
+ while (startElement &&
248
+ startElement !== endMarker &&
249
+ startElement.tagName === "SCRIPT") {
250
+ startElement = startElement.nextElementSibling;
251
+ }
252
+ if (!startElement || startElement === endMarker) {
253
+ startElement = body.querySelector(`[data-component-id='${componentId}']`);
254
+ }
255
+ if (!startElement)
256
+ return null;
257
+ let endElement = endMarker?.previousElementSibling || startElement;
258
+ while (endElement && endElement.tagName === "SCRIPT") {
259
+ endElement = endElement.previousElementSibling;
260
+ }
261
+ const startRect = startElement.getBoundingClientRect();
262
+ const endRect = (endElement || startElement).getBoundingClientRect();
263
+ return new DOMRect(startRect.x, startRect.y, endRect.x + endRect.width - startRect.x, endRect.y + endRect.height - startRect.y);
264
+ }
265
+ function stripHtml(value) {
266
+ if (!value.includes("<"))
267
+ return value;
268
+ const doc = globalThis.document;
269
+ if (!doc)
270
+ return value.replace(/<[^>]*>/g, "");
271
+ const element = doc.createElement("div");
272
+ element.innerHTML = value;
273
+ return element.textContent || element.innerText || "";
274
+ }
275
+ export function fieldKey(descriptor) {
276
+ return `${itemKey(descriptor.item)}|${normalizeId(descriptor.fieldId)}`;
277
+ }
278
+ function itemKey(item) {
279
+ return `${normalizeId(item.id)}|${item.language}|${item.version}`;
280
+ }
281
+ function normalizeId(id) {
282
+ return (id || "").replace(/[{}]/g, "").toLowerCase();
283
+ }
284
+ //# sourceMappingURL=versionDiffTargets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versionDiffTargets.js","sourceRoot":"","sources":["../../../src/editor/version-diff/versionDiffTargets.ts"],"names":[],"mappings":"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"}
@@ -103,20 +103,20 @@ export function CompareView({ slotCloseButton, }) {
103
103
  setCompareTo(compareToItemDescriptor);
104
104
  }
105
105
  }
106
- const originalSelector = (_jsxs("div", { className: "flex flex-1 flex-shrink-0 items-center justify-center gap-1 border-b bg-white p-1 text-sm text-gray-600", children: [_jsx(LanguageSelector, { selectedLanguage: slotContext.itemDescriptor?.language, showAllLanguagesSwitch: false, onLanguageSelected: (language) => {
106
+ const originalSelector = (_jsxs("div", { className: "flex flex-1 shrink-0 items-center justify-center gap-1 border-b bg-white p-1 text-sm text-gray-600", children: [_jsx(LanguageSelector, { selectedLanguage: slotContext.itemDescriptor?.language, showAllLanguagesSwitch: false, onLanguageSelected: (language) => {
107
107
  editContext.loadItem({
108
108
  id: slotContext.itemDescriptor.id,
109
109
  language: language.languageCode,
110
110
  version: 0,
111
111
  });
112
- } }), compareTo?.language && (_jsx(VersionSelector, { readOnly: true, versions: editContext.itemVersions, itemDescriptor: slotContext.itemDescriptor, actualVersion: slotContext.item?.version, onVersionSelected: (version) => {
112
+ } }), compareTo?.language && (_jsx(VersionSelector, { readOnly: true, versions: editContext.itemVersions, itemDescriptor: slotContext.itemDescriptor, actualVersion: slotContext.item?.version, showVersionPreviews: slotContext.item?.hasLayout === true, onVersionSelected: (version) => {
113
113
  editContext.loadItem({
114
114
  id: slotContext.itemDescriptor.id,
115
115
  language: slotContext.itemDescriptor.language,
116
116
  version,
117
117
  });
118
118
  } }))] }));
119
- const compareToSelector = (_jsxs("div", { className: "flex flex-1 flex-shrink-0 items-center justify-center gap-1 border-b bg-white p-1 text-sm text-gray-600", children: [_jsx(LanguageSelector, { selectedLanguage: compareTo?.language, showAllLanguagesSwitch: false, onLanguageSelected: (language) => {
119
+ const compareToSelector = (_jsxs("div", { className: "flex flex-1 shrink-0 items-center justify-center gap-1 border-b bg-white p-1 text-sm text-gray-600", children: [_jsx(LanguageSelector, { selectedLanguage: compareTo?.language, showAllLanguagesSwitch: false, onLanguageSelected: (language) => {
120
120
  if (!compareTo?.id)
121
121
  return;
122
122
  updateCompareTo({
@@ -124,7 +124,7 @@ export function CompareView({ slotCloseButton, }) {
124
124
  language: language.languageCode,
125
125
  version: compareTo.version,
126
126
  });
127
- } }), compareTo?.language && (_jsx(VersionSelector, { readOnly: true, versions: compareToVersions, itemDescriptor: compareTo, actualVersion: compareToItem?.version, onVersionSelected: (version) => {
127
+ } }), compareTo?.language && (_jsx(VersionSelector, { readOnly: true, versions: compareToVersions, itemDescriptor: compareTo, actualVersion: compareToItem?.version, showVersionPreviews: compareToItem?.hasLayout === true, onVersionSelected: (version) => {
128
128
  if (!compareTo?.id)
129
129
  return;
130
130
  updateCompareTo({
@@ -1 +1 @@
1
- {"version":3,"file":"CompareView.js","sourceRoot":"","sources":["../../../src/editor/views/CompareView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CompareView.js","sourceRoot":"","sources":["../../../src/editor/views/CompareView.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const version = "0.1.12694";
2
- export declare const buildDate = "2026-04-28 10:37:50";
1
+ export declare const version = "0.1.12710";
2
+ export declare const buildDate = "2026-04-28 16:31:48";
package/dist/revision.js CHANGED
@@ -1,3 +1,3 @@
1
- export const version = "0.1.12694";
2
- export const buildDate = "2026-04-28 10:37:50";
1
+ export const version = "0.1.12710";
2
+ export const buildDate = "2026-04-28 16:31:48";
3
3
  //# sourceMappingURL=revision.js.map
@@ -2,10 +2,10 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import { useState, useEffect, useCallback, startTransition, useRef, } from "react";
4
4
  import { flushSync } from "react-dom";
5
- import { Loader2, RotateCcw, History, ArrowRight, X, } from "lucide-react";
5
+ import { Loader2, RotateCcw, History, ArrowRight, X, Paperclip, FileText, Image as ImageIcon, } from "lucide-react";
6
6
  import { useEditContext } from "../editor/client/editContext";
7
7
  import { loadAiProfiles } from "../editor/services/aiService";
8
- import { closeAgent, getAgentsGrouped, } from "../editor/services/agentService";
8
+ import { AGENT_DOCUMENT_UPLOADED_EVENT, AGENT_DOCUMENTS_CHANGED_EVENT, closeAgent, deleteDocument, getAgentDocuments, getAgentsGrouped, uploadDocument, } from "../editor/services/agentService";
9
9
  import { AgentTerminal } from "../editor/ai/AgentTerminal";
10
10
  import { ParheliaIconWhite } from "../editor/ui/ParheliaIconWhite";
11
11
  import { cn } from "../lib/utils";
@@ -48,6 +48,11 @@ export const ParheliaAssistantChat = ({ className, externalAgent, }) => {
48
48
  const [initialPrompt, setInitialPrompt] = useState(undefined);
49
49
  const [samplePrompts, setSamplePrompts] = useState(SUGGESTED_PROMPTS);
50
50
  const inputRef = useRef(null);
51
+ const fileInputRef = useRef(null);
52
+ const [attachedDocs, setAttachedDocs] = useState([]);
53
+ const [isUploading, setIsUploading] = useState(false);
54
+ const [uploadError, setUploadError] = useState(null);
55
+ const [isDragOver, setIsDragOver] = useState(false);
51
56
  // Create a new agent
52
57
  const createNewAgent = useCallback((selectedProfile) => {
53
58
  const agentDisplayName = selectedProfile.agentName || "Parhelia";
@@ -201,6 +206,146 @@ export const ParheliaAssistantChat = ({ className, externalAgent, }) => {
201
206
  performUpdate();
202
207
  }
203
208
  }, [profile, createNewAgent]);
209
+ const uploadFiles = useCallback(async (files) => {
210
+ if (!agent || !profile?.enableDocumentUpload || !files)
211
+ return;
212
+ const list = Array.from(files);
213
+ if (list.length === 0)
214
+ return;
215
+ const maxBytes = (profile.maxDocumentSizeMB ?? 10) * 1024 * 1024;
216
+ setUploadError(null);
217
+ setIsUploading(true);
218
+ try {
219
+ for (const file of list) {
220
+ if (file.size > maxBytes) {
221
+ setUploadError(`"${file.name}" exceeds ${profile.maxDocumentSizeMB ?? 10} MB`);
222
+ continue;
223
+ }
224
+ const result = await uploadDocument(agent.id, file, profile.id);
225
+ if (!result.success) {
226
+ setUploadError(result.error || `Failed to upload "${file.name}"`);
227
+ }
228
+ }
229
+ }
230
+ finally {
231
+ setIsUploading(false);
232
+ }
233
+ }, [agent, profile]);
234
+ // Sync attached docs from server when the active agent changes.
235
+ useEffect(() => {
236
+ if (!agent?.id || !profile?.enableDocumentUpload) {
237
+ setAttachedDocs([]);
238
+ return;
239
+ }
240
+ let cancelled = false;
241
+ void getAgentDocuments(agent.id).then((res) => {
242
+ if (cancelled)
243
+ return;
244
+ if (res.success && res.documents)
245
+ setAttachedDocs(res.documents);
246
+ });
247
+ return () => {
248
+ cancelled = true;
249
+ };
250
+ }, [agent?.id, profile?.enableDocumentUpload]);
251
+ // Listen for upload/change events to keep chips in sync.
252
+ useEffect(() => {
253
+ if (!agent?.id)
254
+ return;
255
+ const handleUploaded = (event) => {
256
+ const detail = event.detail;
257
+ if (!detail || detail.agentId !== agent.id)
258
+ return;
259
+ setAttachedDocs((prev) => {
260
+ const existing = prev.findIndex((d) => d.id === detail.document.id);
261
+ if (existing === -1)
262
+ return [detail.document, ...prev];
263
+ const next = [...prev];
264
+ next[existing] = detail.document;
265
+ return next;
266
+ });
267
+ };
268
+ const handleChanged = (event) => {
269
+ const detail = event.detail;
270
+ if (!detail || detail.agentId !== agent.id)
271
+ return;
272
+ void getAgentDocuments(agent.id).then((res) => {
273
+ if (res.success && res.documents)
274
+ setAttachedDocs(res.documents);
275
+ });
276
+ };
277
+ window.addEventListener(AGENT_DOCUMENT_UPLOADED_EVENT, handleUploaded);
278
+ window.addEventListener(AGENT_DOCUMENTS_CHANGED_EVENT, handleChanged);
279
+ return () => {
280
+ window.removeEventListener(AGENT_DOCUMENT_UPLOADED_EVENT, handleUploaded);
281
+ window.removeEventListener(AGENT_DOCUMENTS_CHANGED_EVENT, handleChanged);
282
+ };
283
+ }, [agent?.id]);
284
+ const handleRemoveAttachment = useCallback(async (documentId) => {
285
+ setUploadError(null);
286
+ const result = await deleteDocument(documentId);
287
+ if (result.success) {
288
+ setAttachedDocs((prev) => prev.filter((d) => d.id !== documentId));
289
+ }
290
+ else {
291
+ setUploadError(result.error || "Failed to remove attachment");
292
+ }
293
+ }, []);
294
+ const handleInputPaste = useCallback((e) => {
295
+ if (!profile?.enableDocumentUpload)
296
+ return;
297
+ const items = e.clipboardData?.items;
298
+ if (!items)
299
+ return;
300
+ const files = [];
301
+ for (let i = 0; i < items.length; i++) {
302
+ const item = items[i];
303
+ if (!item)
304
+ continue;
305
+ if (item.type.indexOf("image") !== -1 || item.kind === "file") {
306
+ const file = item.getAsFile();
307
+ if (!file)
308
+ continue;
309
+ if (file.name === "image.png" && item.type.indexOf("image") !== -1) {
310
+ const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
311
+ const extension = item.type.split("/")[1] || "png";
312
+ files.push(new File([file], `pasted-image-${timestamp}.${extension}`, {
313
+ type: file.type,
314
+ }));
315
+ }
316
+ else {
317
+ files.push(file);
318
+ }
319
+ }
320
+ }
321
+ if (files.length > 0) {
322
+ e.preventDefault();
323
+ void uploadFiles(files);
324
+ }
325
+ }, [profile, uploadFiles]);
326
+ const handleDragOver = useCallback((e) => {
327
+ if (!profile?.enableDocumentUpload)
328
+ return;
329
+ e.preventDefault();
330
+ e.stopPropagation();
331
+ if (!isDragOver)
332
+ setIsDragOver(true);
333
+ }, [profile, isDragOver]);
334
+ const handleDragLeave = useCallback((e) => {
335
+ e.preventDefault();
336
+ e.stopPropagation();
337
+ setIsDragOver(false);
338
+ }, []);
339
+ const handleDrop = useCallback((e) => {
340
+ if (!profile?.enableDocumentUpload)
341
+ return;
342
+ e.preventDefault();
343
+ e.stopPropagation();
344
+ setIsDragOver(false);
345
+ if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {
346
+ void uploadFiles(e.dataTransfer.files);
347
+ }
348
+ }, [profile, uploadFiles]);
204
349
  // Handle submit from smart input
205
350
  const handleSubmitInput = (e) => {
206
351
  e?.preventDefault();
@@ -268,12 +413,30 @@ export const ParheliaAssistantChat = ({ className, externalAgent, }) => {
268
413
  if (isLoading) {
269
414
  return (_jsx("div", { className: cn("flex items-center justify-center rounded-2xl border border-white/10 bg-white/3 p-12 shadow-xl", className), children: _jsx(Loader2, { className: "h-6 w-6 animate-spin text-purple-400" }) }));
270
415
  }
416
+ const renderAttachments = (variant) => {
417
+ if (!profile?.enableDocumentUpload)
418
+ return null;
419
+ if (attachedDocs.length === 0 && !uploadError && !isUploading)
420
+ return null;
421
+ return (_jsxs("div", { className: cn("flex flex-col gap-2", variant === "overview"
422
+ ? "-mt-4"
423
+ : "border-b border-white/10 bg-white/5 px-5 py-3"), children: [(attachedDocs.length > 0 || isUploading) && (_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [attachedDocs.map((doc) => {
424
+ const isImage = doc.contentType?.startsWith("image/") ||
425
+ /\.(png|jpe?g|gif|webp)$/i.test(doc.fileName);
426
+ return (_jsxs("div", { className: "group flex max-w-[260px] items-center gap-2 rounded-full border border-white/10 bg-white/5 py-1.5 pr-1.5 pl-3 text-xs text-slate-300", children: [isImage ? (_jsx(ImageIcon, { className: "h-3.5 w-3.5 shrink-0 text-purple-300", strokeWidth: 1.5 })) : (_jsx(FileText, { className: "h-3.5 w-3.5 shrink-0 text-purple-300", strokeWidth: 1.5 })), _jsx("span", { className: "truncate", title: doc.fileName, children: doc.fileName }), _jsx("button", { type: "button", onClick: () => handleRemoveAttachment(doc.id), "aria-label": `Remove ${doc.fileName}`, className: "flex h-5 w-5 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-white/10 hover:text-white", children: _jsx(X, { className: "h-3 w-3", strokeWidth: 2 }) })] }, doc.id));
427
+ }), isUploading && (_jsxs("span", { className: "flex items-center gap-1.5 text-xs text-slate-400", children: [_jsx(Loader2, { className: "h-3 w-3 animate-spin" }), "Uploading..."] })), variant === "terminal" && (_jsxs("button", { type: "button", onClick: () => fileInputRef.current?.click(), disabled: isUploading, className: "flex items-center gap-1.5 rounded-full border border-dashed border-white/15 px-3 py-1.5 text-xs text-slate-400 transition-colors hover:border-purple-500/40 hover:text-white disabled:opacity-50", children: [_jsx(Paperclip, { className: "h-3 w-3", strokeWidth: 1.75 }), "Attach"] }))] })), uploadError && (_jsx("p", { className: "text-xs text-rose-400", children: uploadError }))] }));
428
+ };
271
429
  if (!agent || !profile) {
272
430
  return (_jsx("div", { className: cn("flex items-center justify-center rounded-2xl border border-white/10 bg-white/3 p-12 shadow-xl", className), children: _jsx("p", { className: "text-sm text-slate-400", children: "Assistant unavailable. Please try again later." }) }));
273
431
  }
274
- return (_jsxs("div", { className: cn("flex flex-col overflow-hidden transition-all duration-300", !isTerminalVisible ? "rounded-2xl" : "rounded-xl shadow-2xl", className), style: { viewTransitionName: "assistant-chat-container" }, children: [!isTerminalVisible && (_jsxs("div", { className: "flex flex-col gap-8", children: [_jsx("div", { className: "group relative", style: { viewTransitionName: "assistant-chat-box" }, children: _jsxs("form", { onSubmit: handleSubmitInput, className: "relative flex items-center", children: [_jsx("div", { className: "absolute left-5", children: _jsx(ParheliaIconWhite, { size: 24 }) }), _jsx("input", { ref: inputRef, type: "text", placeholder: "Ask Parhelia anything...", value: inputValue, onChange: (e) => setInputValue(e.target.value), onFocus: () => {
432
+ return (_jsxs("div", { className: cn("flex flex-col overflow-hidden transition-all duration-300", !isTerminalVisible ? "rounded-2xl" : "rounded-xl shadow-2xl", className), style: { viewTransitionName: "assistant-chat-container" }, children: [profile.enableDocumentUpload && (_jsx("input", { ref: fileInputRef, type: "file", multiple: true, className: "hidden", onChange: (e) => {
433
+ void uploadFiles(e.target.files);
434
+ e.target.value = "";
435
+ }, accept: ".txt,.md,.pdf,.docx,.xlsx,.pptx,.csv,.json,.xml,.cs,.js,.ts,.tsx,.jsx,.py,.java,.cpp,.c,.h,.hpp,.cshtml,.razor,.vb,.php,.rb,.go,.rs,.swift,.kt,.scala,.sql,.sh,.ps1,.bat,.yaml,.yml,.png,.jpg,.jpeg,.gif,.webp" })), !isTerminalVisible && (_jsxs("div", { className: "flex flex-col gap-8", children: [_jsx("div", { className: "group relative", style: { viewTransitionName: "assistant-chat-box" }, onDragOver: handleDragOver, onDragEnter: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop, children: _jsxs("form", { onSubmit: handleSubmitInput, className: "relative flex items-center", children: [_jsx("div", { className: "absolute left-5", children: _jsx(ParheliaIconWhite, { size: 24 }) }), _jsx("input", { ref: inputRef, type: "text", placeholder: "Ask Parhelia anything...", value: inputValue, onChange: (e) => setInputValue(e.target.value), onPaste: handleInputPaste, onFocus: () => {
275
436
  void loadRecentAgents(profile);
276
- }, style: { viewTransitionName: "assistant-chat-input" }, className: "h-16 w-full rounded-2xl border border-white/10 bg-white/5 pr-16 pl-14 text-lg text-white shadow-2xl transition-all duration-300 placeholder:text-slate-500 focus:border-purple-500/40 focus:bg-white/8 focus:shadow-[0_0_30px_-5px_rgba(168,85,247,0.3)] focus:outline-none" }), _jsx("button", { type: "submit", disabled: !inputValue.trim(), className: "absolute right-3 flex h-10 w-10 items-center justify-center rounded-xl bg-purple-600 text-white shadow-lg transition-colors hover:bg-purple-500 disabled:bg-white/5 disabled:text-slate-600", children: _jsx(ArrowRight, { className: "h-5 w-5", strokeWidth: 2 }) })] }) }), _jsx("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: samplePrompts.map((item, idx) => (_jsxs("button", { onClick: () => handleStartWithPrompt(item.prompt), className: "group flex flex-col items-start rounded-xl border border-white/10 bg-white/3 p-5 text-left transition-all hover:bg-white/[0.07]", children: [_jsx("span", { className: "text-sm font-semibold text-slate-200 transition-colors group-hover:text-purple-400", children: item.title }), _jsx("span", { className: "mt-1 line-clamp-1 text-xs text-slate-500", children: item.description })] }, idx))) }), (isLoadingRecentAgents ||
437
+ }, style: { viewTransitionName: "assistant-chat-input" }, className: cn("h-16 w-full rounded-2xl border bg-white/5 text-lg text-white shadow-2xl transition-all duration-300 placeholder:text-slate-500 focus:bg-white/8 focus:shadow-[0_0_30px_-5px_rgba(168,85,247,0.3)] focus:outline-none", profile.enableDocumentUpload ? "pr-28 pl-14" : "pr-16 pl-14", isDragOver
438
+ ? "border-purple-500/60 bg-purple-500/10"
439
+ : "border-white/10 focus:border-purple-500/40") }), profile.enableDocumentUpload && (_jsx("button", { type: "button", onClick: () => fileInputRef.current?.click(), disabled: isUploading, "aria-label": "Attach documents", title: "Attach documents", className: "absolute right-14 flex h-10 w-10 items-center justify-center rounded-xl text-slate-400 transition-colors hover:bg-white/10 hover:text-white disabled:opacity-50", children: isUploading ? (_jsx(Loader2, { className: "h-5 w-5 animate-spin" })) : (_jsx(Paperclip, { className: "h-5 w-5", strokeWidth: 1.75 })) })), _jsx("button", { type: "submit", disabled: !inputValue.trim(), className: "absolute right-3 flex h-10 w-10 items-center justify-center rounded-xl bg-purple-600 text-white shadow-lg transition-colors hover:bg-purple-500 disabled:bg-white/5 disabled:text-slate-600", children: _jsx(ArrowRight, { className: "h-5 w-5", strokeWidth: 2 }) })] }) }), renderAttachments("overview"), _jsx("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: samplePrompts.map((item, idx) => (_jsxs("button", { onClick: () => handleStartWithPrompt(item.prompt), className: "group flex flex-col items-start rounded-xl border border-white/10 bg-white/3 p-5 text-left transition-all hover:bg-white/[0.07]", children: [_jsx("span", { className: "text-sm font-semibold text-slate-200 transition-colors group-hover:text-purple-400", children: item.title }), _jsx("span", { className: "mt-1 line-clamp-1 text-xs text-slate-500", children: item.description })] }, idx))) }), (isLoadingRecentAgents ||
277
440
  !hasLoadedRecentAgents ||
278
441
  recentAgents.length > 0) && (_jsxs("div", { className: "flex flex-col gap-3", children: [_jsxs("div", { className: "flex items-center gap-2 px-1 text-[10px] font-bold tracking-[0.2em] text-slate-500 uppercase", children: [_jsx(History, { className: "h-3 w-3" }), "Recent Parhelia Conversations"] }), !hasLoadedRecentAgents && !isLoadingRecentAgents && (_jsx("button", { onClick: () => {
279
442
  void loadRecentAgents(profile);
@@ -283,7 +446,7 @@ export const ParheliaAssistantChat = ({ className, externalAgent, }) => {
283
446
  setAgentKey((prev) => prev + 1);
284
447
  }, className: "max-w-[200px] truncate overflow-hidden rounded-full border border-white/10 bg-white/5 px-3 py-1.5 text-xs whitespace-nowrap text-slate-400 transition-all hover:border-purple-500/30 hover:bg-white/10", children: ra.name }, ra.id))), recentAgents.length > 3 && (_jsx("button", { onClick: () => {
285
448
  editContext?.switchWorkspace("agents");
286
- }, className: "rounded-full px-3 py-1.5 text-xs font-medium text-purple-400 transition-colors hover:text-purple-300", children: "View All Agents" }))] }))] }))] })), isTerminalVisible && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex items-center justify-between border-b border-white/10 bg-white/5 px-5 py-3.5", style: { viewTransitionName: "assistant-chat-box" }, children: [_jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-3", children: [_jsx("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-xl border border-white/5 bg-white/5 shadow-inner", children: _jsx(ParheliaIconWhite, { size: 22 }) }), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [_jsx("span", { className: "truncate text-[10px] font-bold tracking-[0.2em] text-purple-400/80 uppercase", children: agent.description || "Parhelia AI" }), _jsx("span", { className: "text-sm font-semibold tracking-tight text-slate-100", children: agent.name || profile.agentName || "Assistant" })] })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs(Button, { variant: "ghost", size: "sm", onClick: handleStartOver, className: "h-9 gap-2 rounded-xl px-4 text-xs font-medium text-slate-400 transition-all hover:bg-white/10 hover:text-white", children: [_jsx(RotateCcw, { className: "h-4 w-4", strokeWidth: 1.5 }), "New Chat"] }), _jsx("div", { className: "mx-1 h-5 w-px bg-white/10" }), _jsx(Button, { variant: "ghost", size: "sm", onClick: handleClose, className: "group h-9 w-9 rounded-xl p-0 text-slate-500 transition-all hover:bg-white/10 hover:text-slate-200", "aria-label": "Close", children: _jsx(X, { className: "h-4 w-4 transition-transform duration-300 group-hover:rotate-90", strokeWidth: 2 }) })] })] }), _jsx("div", { className: "flex-1 overflow-hidden bg-slate-50/95", children: _jsx("div", { className: "animate-view-slide-in h-[650px]", children: _jsx(AgentTerminal, { agentStub: agent, initialMetadata: {
449
+ }, className: "rounded-full px-3 py-1.5 text-xs font-medium text-purple-400 transition-colors hover:text-purple-300", children: "View All Agents" }))] }))] }))] })), isTerminalVisible && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex items-center justify-between border-b border-white/10 bg-white/5 px-5 py-3.5", style: { viewTransitionName: "assistant-chat-box" }, children: [_jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-3", children: [_jsx("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-xl border border-white/5 bg-white/5 shadow-inner", children: _jsx(ParheliaIconWhite, { size: 22 }) }), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [_jsx("span", { className: "truncate text-[10px] font-bold tracking-[0.2em] text-purple-400/80 uppercase", children: agent.description || "Parhelia AI" }), _jsx("span", { className: "text-sm font-semibold tracking-tight text-slate-100", children: agent.name || profile.agentName || "Assistant" })] })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs(Button, { variant: "ghost", size: "sm", onClick: handleStartOver, className: "h-9 gap-2 rounded-xl px-4 text-xs font-medium text-slate-400 transition-all hover:bg-white/10 hover:text-white", children: [_jsx(RotateCcw, { className: "h-4 w-4", strokeWidth: 1.5 }), "New Chat"] }), _jsx("div", { className: "mx-1 h-5 w-px bg-white/10" }), _jsx(Button, { variant: "ghost", size: "sm", onClick: handleClose, className: "group h-9 w-9 rounded-xl p-0 text-slate-500 transition-all hover:bg-white/10 hover:text-slate-200", "aria-label": "Close", children: _jsx(X, { className: "h-4 w-4 transition-transform duration-300 group-hover:rotate-90", strokeWidth: 2 }) })] })] }), renderAttachments("terminal"), _jsx("div", { className: "flex-1 overflow-hidden bg-slate-50/95", children: _jsx("div", { className: "animate-view-slide-in h-[650px]", children: _jsx(AgentTerminal, { agentStub: agent, initialMetadata: {
287
450
  profile: profile.name,
288
451
  additionalData: {
289
452
  profileId: profile.id,