@arbidocs/react 0.4.5 → 0.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,17 +1,17 @@
1
1
  'use strict';
2
2
 
3
- var chunk2DXS7L7M_cjs = require('./chunk-2DXS7L7M.cjs');
3
+ var chunkCBJ3WOGD_cjs = require('./chunk-CBJ3WOGD.cjs');
4
+ var chunkZ5YCRJY3_cjs = require('./chunk-Z5YCRJY3.cjs');
5
+ var chunkOI55JRKT_cjs = require('./chunk-OI55JRKT.cjs');
4
6
  var chunkPGLV23SB_cjs = require('./chunk-PGLV23SB.cjs');
5
- var chunk7BDGLRQX_cjs = require('./chunk-7BDGLRQX.cjs');
6
- var chunk7V7B7OEM_cjs = require('./chunk-7V7B7OEM.cjs');
7
7
  var chunkOBNTJEEO_cjs = require('./chunk-OBNTJEEO.cjs');
8
8
  var chunkS6A6FSG7_cjs = require('./chunk-S6A6FSG7.cjs');
9
9
  var chunkTMPDW7J5_cjs = require('./chunk-TMPDW7J5.cjs');
10
10
  var chunkZMTLGO3K_cjs = require('./chunk-ZMTLGO3K.cjs');
11
11
  var React = require('react');
12
+ var browser = require('@arbidocs/sdk/browser');
12
13
  var lucideReact = require('lucide-react');
13
14
  var jsxRuntime = require('react/jsx-runtime');
14
- var browser = require('@arbidocs/sdk/browser');
15
15
  var client = require('@arbidocs/client');
16
16
  var zustand = require('zustand');
17
17
  var reactQuery = require('@tanstack/react-query');
@@ -29,14 +29,67 @@ var React__default = /*#__PURE__*/_interopDefault(React);
29
29
  var ReactMarkdown__default = /*#__PURE__*/_interopDefault(ReactMarkdown);
30
30
  var Cropper__default = /*#__PURE__*/_interopDefault(Cropper);
31
31
 
32
+ function previewText(content) {
33
+ return content.replace(/\s+/g, " ").trim().replace(/^(?:(?:[-*•>]|#{1,6})\s+)+/, "");
34
+ }
35
+ function toChatCitations(source) {
36
+ if (!source?.tools) return [];
37
+ const resolved = browser.resolveCitations(source);
38
+ const summaries = browser.summarizeCitations(resolved);
39
+ return resolved.map((r, i) => {
40
+ const summary = summaries[i];
41
+ return {
42
+ num: r.citationNum,
43
+ statement: summary.statement,
44
+ documentTitle: summary.docTitle,
45
+ page: summary.pageNumber,
46
+ passages: r.chunks.map((chunk) => ({
47
+ id: chunk.metadata.chunk_ext_id,
48
+ documentId: chunk.metadata.doc_ext_id ?? null,
49
+ documentTitle: chunk.metadata.doc_title ?? summary.docTitle,
50
+ page: chunk.metadata.page_number ?? null,
51
+ text: previewText(chunk.content)
52
+ }))
53
+ };
54
+ });
55
+ }
56
+
57
+ // src/chat/useArbiChat.ts
32
58
  var counter = 0;
33
59
  var nextId = (prefix) => `${prefix}-${Date.now().toString(36)}-${(counter++).toString(36)}`;
34
60
  var emptyThread = () => ({
35
- id: nextId("thread"),
61
+ key: nextId("thread"),
62
+ conversationId: null,
36
63
  title: "",
37
64
  messages: [],
38
- responseId: null
65
+ responseId: null,
66
+ isLoaded: true
39
67
  });
68
+ var storedThread = (conversationId) => ({
69
+ key: conversationId,
70
+ conversationId,
71
+ title: "",
72
+ messages: [],
73
+ responseId: null,
74
+ isLoaded: false
75
+ });
76
+ var publicId = (t) => t.conversationId ?? t.key;
77
+ function messagesFromHistory(history) {
78
+ return history.filter((m) => m.role !== "system" && m.content.trim() !== "").map((m) => {
79
+ if (m.role === "user") {
80
+ return { id: m.external_id, role: "user", content: m.content, status: "complete" };
81
+ }
82
+ const citations = toChatCitations({ tools: m.tools });
83
+ return {
84
+ id: m.external_id,
85
+ role: "assistant",
86
+ content: m.content,
87
+ status: m.status === "failed" ? "error" : "complete",
88
+ ...m.status === "failed" ? { error: "The assistant request failed." } : {},
89
+ ...citations.length > 0 ? { citations } : {}
90
+ };
91
+ });
92
+ }
40
93
  function titleFromQuestion(question, maxLength = 48) {
41
94
  const flat = question.replace(/\s+/g, " ").trim();
42
95
  if (flat.length <= maxLength) return flat;
@@ -46,29 +99,88 @@ function titleFromQuestion(question, maxLength = 48) {
46
99
  return `${words.replace(/[\s,;:.\-–—]+$/, "")}\u2026`;
47
100
  }
48
101
  var messageOf = (e, fallback) => e instanceof Error ? e.message : fallback;
102
+ var isAbort = (e) => e instanceof DOMException && e.name === "AbortError";
103
+ var TITLE_REFRESH_DELAYS_MS = [2500, 6e3, 12e3];
49
104
  function useArbiChat(options = {}) {
50
105
  const { workspaceId, model, titleLength = 48 } = options;
51
106
  const arbi = chunkZMTLGO3K_cjs.useArbi();
52
- const { data: docs = [], isLoading: isLoadingDocuments, refetch } = chunk2DXS7L7M_cjs.useDocuments(workspaceId);
53
- const query = chunk2DXS7L7M_cjs.useAssistantQuery();
107
+ const { data: docs = [], isLoading: isLoadingDocuments, refetch } = chunkCBJ3WOGD_cjs.useDocuments(workspaceId);
108
+ const {
109
+ data: stored = [],
110
+ isLoading: isLoadingThreads,
111
+ refetch: refetchConversations
112
+ } = chunkCBJ3WOGD_cjs.useConversations(workspaceId);
113
+ const query = chunkCBJ3WOGD_cjs.useAssistantQuery();
54
114
  const { mutateAsync } = query;
55
115
  const [threads, setThreads] = React.useState(() => [emptyThread()]);
56
- const [activeId, setActiveId] = React.useState(() => threads[0].id);
116
+ const [activeKey, setActiveKey] = React.useState(() => threads[0].key);
57
117
  const [deselected, setDeselected] = React.useState(/* @__PURE__ */ new Set());
58
118
  const [isRunning, setIsRunning] = React.useState(false);
59
119
  const [isUploading, setIsUploading] = React.useState(false);
60
120
  const [uploadError, setUploadError] = React.useState(null);
121
+ const [historyError, setHistoryError] = React.useState(null);
122
+ const abortRef = React.useRef(null);
123
+ const timersRef = React.useRef([]);
124
+ React.useEffect(() => {
125
+ const timers = timersRef.current;
126
+ return () => timers.forEach(clearTimeout);
127
+ }, []);
61
128
  const scopeRef = React.useRef(workspaceId);
62
129
  React.useEffect(() => {
63
130
  if (scopeRef.current === workspaceId) return;
64
131
  scopeRef.current = workspaceId;
65
132
  const fresh = emptyThread();
66
133
  setThreads([fresh]);
67
- setActiveId(fresh.id);
134
+ setActiveKey(fresh.key);
68
135
  setDeselected(/* @__PURE__ */ new Set());
69
136
  setUploadError(null);
137
+ setHistoryError(null);
70
138
  }, [workspaceId]);
71
- const active = threads.find((t) => t.id === activeId) ?? threads[0];
139
+ const active = threads.find((t) => t.key === activeKey) ?? threads[0];
140
+ const threadEntries = React.useMemo(() => {
141
+ const storedIds = new Set(stored.map((c) => c.external_id));
142
+ const byConversation = new Map(
143
+ threads.filter((t) => t.conversationId).map((t) => [t.conversationId, t])
144
+ );
145
+ const fresh = threads.filter((t) => !t.conversationId);
146
+ const justSaved = threads.filter((t) => t.conversationId && !storedIds.has(t.conversationId));
147
+ const persisted = [...stored].filter((c) => c.message_count > 0 || byConversation.has(c.external_id)).sort((a, b) => b.updated_at.localeCompare(a.updated_at)).map((c) => {
148
+ const local = byConversation.get(c.external_id);
149
+ return {
150
+ key: local?.key ?? c.external_id,
151
+ id: c.external_id,
152
+ title: c.title || local?.title || ""
153
+ };
154
+ });
155
+ return [
156
+ ...fresh.map((t) => ({ key: t.key, id: publicId(t), title: t.title })),
157
+ ...justSaved.map((t) => ({ key: t.key, id: publicId(t), title: t.title })),
158
+ ...persisted
159
+ ];
160
+ }, [threads, stored]);
161
+ const needsLoad = !!active.conversationId && !active.isLoaded;
162
+ const loaded = chunkCBJ3WOGD_cjs.useConversationThreads(workspaceId, active.conversationId ?? void 0, {
163
+ enabled: needsLoad
164
+ });
165
+ React.useEffect(() => {
166
+ const data = loaded.data;
167
+ if (!needsLoad || !data || data.conversation_ext_id !== active.conversationId) return;
168
+ const primary = [...data.threads].sort((a, b) => b.history.length - a.history.length)[0];
169
+ setThreads(
170
+ (all) => all.map(
171
+ (t) => t.key === active.key ? {
172
+ ...t,
173
+ isLoaded: true,
174
+ messages: messagesFromHistory(primary?.history ?? []),
175
+ responseId: primary?.leaf_message_ext_id ?? null
176
+ } : t
177
+ )
178
+ );
179
+ }, [loaded.data, needsLoad, active.conversationId, active.key]);
180
+ React.useEffect(() => {
181
+ if (loaded.error)
182
+ setHistoryError(messageOf(loaded.error, "The conversation could not be loaded."));
183
+ }, [loaded.error]);
72
184
  const selectedIds = React.useMemo(
73
185
  () => docs.map((d) => d.external_id).filter((id) => !!id && !deselected.has(id)),
74
186
  [docs, deselected]
@@ -82,16 +194,23 @@ function useArbiChat(options = {}) {
82
194
  [docs, deselected]
83
195
  );
84
196
  const patchThread = React.useCallback(
85
- (id, patch) => setThreads((all) => all.map((t) => t.id === id ? patch(t) : t)),
197
+ (key, patch) => setThreads((all) => all.map((t) => t.key === key ? patch(t) : t)),
86
198
  []
87
199
  );
88
200
  const patchMessage = React.useCallback(
89
- (threadId, messageId, patch) => patchThread(threadId, (t) => ({
201
+ (threadKey, messageId, patch) => patchThread(threadKey, (t) => ({
90
202
  ...t,
91
203
  messages: t.messages.map((m) => m.id === messageId ? { ...m, ...patch } : m)
92
204
  })),
93
205
  [patchThread]
94
206
  );
207
+ const refreshTitles = React.useCallback(() => {
208
+ void refetchConversations();
209
+ timersRef.current.forEach(clearTimeout);
210
+ timersRef.current = TITLE_REFRESH_DELAYS_MS.map(
211
+ (delay) => setTimeout(() => void refetchConversations(), delay)
212
+ );
213
+ }, [refetchConversations]);
95
214
  const ask = React.useCallback(
96
215
  async (thread, text) => {
97
216
  const userMessage = {
@@ -106,11 +225,13 @@ function useArbiChat(options = {}) {
106
225
  content: "",
107
226
  status: "streaming"
108
227
  };
109
- patchThread(thread.id, (t) => ({
228
+ patchThread(thread.key, (t) => ({
110
229
  ...t,
111
230
  title: t.title || titleFromQuestion(text, titleLength),
112
231
  messages: [...t.messages, userMessage, answer]
113
232
  }));
233
+ const controller = new AbortController();
234
+ abortRef.current = controller;
114
235
  setIsRunning(true);
115
236
  let buffer = "";
116
237
  let steps = 0;
@@ -121,15 +242,34 @@ function useArbiChat(options = {}) {
121
242
  docIds: selectedIds,
122
243
  previousResponseId: thread.responseId,
123
244
  model,
245
+ signal: controller.signal,
246
+ onStreamStart: (data) => {
247
+ if (data.assistant_message_ext_id) {
248
+ patchThread(thread.key, (t) => ({
249
+ ...t,
250
+ responseId: data.assistant_message_ext_id ?? t.responseId
251
+ }));
252
+ }
253
+ },
254
+ onUserMessage: (ev) => {
255
+ patchThread(thread.key, (t) => ({
256
+ ...t,
257
+ conversationId: t.conversationId ?? ev.conversation_ext_id
258
+ }));
259
+ },
260
+ onMetadata: (meta) => {
261
+ const citations = toChatCitations(meta);
262
+ if (citations.length > 0) patchMessage(thread.key, answer.id, { citations });
263
+ },
124
264
  onToken: (token) => {
125
265
  buffer += token;
126
- patchMessage(thread.id, answer.id, { content: buffer });
266
+ patchMessage(thread.key, answer.id, { content: buffer });
127
267
  },
128
268
  onOutputItemDone: (ev) => {
129
269
  const type = ev.item.type;
130
270
  if (type === "function_call" || type === "reasoning") {
131
271
  steps += 1;
132
- patchMessage(thread.id, answer.id, { stepCount: steps });
272
+ patchMessage(thread.key, answer.id, { stepCount: steps });
133
273
  }
134
274
  },
135
275
  onError: (message) => {
@@ -139,37 +279,50 @@ function useArbiChat(options = {}) {
139
279
  const finalText = result.text || buffer;
140
280
  const failure = streamError || result.errors[0] || null;
141
281
  if (failure && !finalText) {
142
- patchMessage(thread.id, answer.id, { status: "error", error: failure });
282
+ patchMessage(thread.key, answer.id, { status: "error", error: failure });
143
283
  } else {
144
- patchMessage(thread.id, answer.id, {
284
+ const citations = toChatCitations(result.metadata);
285
+ patchMessage(thread.key, answer.id, {
145
286
  status: "complete",
146
287
  content: finalText,
147
- stepCount: result.agentSteps.length || steps || void 0
288
+ stepCount: result.agentSteps.length || steps || void 0,
289
+ ...citations.length > 0 ? { citations } : {}
148
290
  });
149
- patchThread(thread.id, (t) => ({
291
+ patchThread(thread.key, (t) => ({
150
292
  ...t,
151
293
  responseId: result.assistantMessageExtId ?? t.responseId
152
294
  }));
153
295
  }
154
296
  } catch (e) {
155
- patchMessage(thread.id, answer.id, {
156
- status: "error",
157
- error: messageOf(e, "The assistant request failed.")
158
- });
297
+ if (controller.signal.aborted || isAbort(e)) {
298
+ patchMessage(thread.key, answer.id, {
299
+ status: "complete",
300
+ content: buffer,
301
+ stopped: true
302
+ });
303
+ } else {
304
+ patchMessage(thread.key, answer.id, {
305
+ status: "error",
306
+ error: messageOf(e, "The assistant request failed.")
307
+ });
308
+ }
159
309
  } finally {
310
+ if (abortRef.current === controller) abortRef.current = null;
160
311
  setIsRunning(false);
312
+ refreshTitles();
161
313
  }
162
314
  },
163
- [mutateAsync, patchMessage, patchThread, selectedIds, model, titleLength]
315
+ [mutateAsync, patchMessage, patchThread, refreshTitles, selectedIds, model, titleLength]
164
316
  );
165
317
  const send = React.useCallback(
166
318
  async (text) => {
167
319
  const trimmed = text.trim();
168
- if (!trimmed || isRunning) return;
320
+ if (!trimmed || isRunning || !active.isLoaded) return;
169
321
  await ask(active, trimmed);
170
322
  },
171
323
  [active, ask, isRunning]
172
324
  );
325
+ const stop = React.useCallback(() => abortRef.current?.abort(), []);
173
326
  const lastMessage = active.messages[active.messages.length - 1];
174
327
  const error = lastMessage?.status === "error" ? lastMessage.error ?? null : null;
175
328
  const retry = React.useCallback(async () => {
@@ -179,23 +332,54 @@ function useArbiChat(options = {}) {
179
332
  const question = messages[messages.length - 2];
180
333
  if (failed?.status !== "error" || question?.role !== "user") return;
181
334
  const trimmed = { ...active, messages: messages.slice(0, -2) };
182
- patchThread(active.id, () => trimmed);
335
+ patchThread(active.key, () => trimmed);
183
336
  await ask(trimmed, question.content);
184
337
  }, [active, ask, isRunning, patchThread]);
185
338
  const newThread = React.useCallback(() => {
186
- if (active.messages.length === 0) return;
339
+ setHistoryError(null);
340
+ const blank = threads.find((t) => !t.conversationId && t.messages.length === 0);
341
+ if (blank) {
342
+ setActiveKey(blank.key);
343
+ return;
344
+ }
187
345
  const fresh = emptyThread();
188
346
  setThreads((all) => [fresh, ...all]);
189
- setActiveId(fresh.id);
190
- }, [active.messages.length]);
347
+ setActiveKey(fresh.key);
348
+ }, [threads]);
349
+ const selectThread = React.useCallback(
350
+ (id) => {
351
+ const entry = threadEntries.find((e) => e.id === id);
352
+ if (!entry) return;
353
+ setHistoryError(null);
354
+ setThreads((all) => all.some((t) => t.key === entry.key) ? all : [...all, storedThread(id)]);
355
+ setActiveKey(entry.key);
356
+ },
357
+ [threadEntries]
358
+ );
191
359
  const deleteThread = React.useCallback(
192
360
  (id) => {
193
- const rest = threads.filter((t) => t.id !== id);
194
- const next = rest.length > 0 ? rest : [emptyThread()];
195
- setThreads(next);
196
- if (id === activeId) setActiveId(next[0].id);
361
+ const entry = threadEntries.find((e) => e.id === id);
362
+ if (!entry) return;
363
+ const remove = () => {
364
+ const rest = threads.filter((t) => t.key !== entry.key);
365
+ const next = rest.length > 0 ? rest : [emptyThread()];
366
+ setThreads(next);
367
+ if (entry.key === active.key) setActiveKey(next[0].key);
368
+ };
369
+ const local = threads.find((t) => t.key === entry.key);
370
+ const conversationId = local ? local.conversationId : id;
371
+ if (!conversationId) return remove();
372
+ void (async () => {
373
+ try {
374
+ await arbi.conversations.delete(conversationId);
375
+ remove();
376
+ await refetchConversations();
377
+ } catch (e) {
378
+ setHistoryError(messageOf(e, "The conversation could not be deleted."));
379
+ }
380
+ })();
197
381
  },
198
- [threads, activeId]
382
+ [threadEntries, threads, active.key, arbi, refetchConversations]
199
383
  );
200
384
  const toggleDocument = React.useCallback((id) => {
201
385
  setDeselected((prev) => {
@@ -223,18 +407,22 @@ function useArbiChat(options = {}) {
223
407
  [arbi, refetch]
224
408
  );
225
409
  return {
226
- threads: threads.map(({ id, title }) => ({ id, title })),
227
- activeThreadId: active.id,
410
+ threads: threadEntries.map(({ id, title }) => ({ id, title })),
411
+ activeThreadId: publicId(active),
228
412
  messages: active.messages,
229
413
  isRunning,
230
414
  error,
415
+ isLoadingThread: needsLoad && !historyError,
416
+ isLoadingThreads,
417
+ historyError,
231
418
  documents,
232
419
  isLoadingDocuments,
233
420
  isUploading,
234
421
  uploadError,
235
422
  send,
236
423
  retry,
237
- selectThread: setActiveId,
424
+ stop,
425
+ selectThread,
238
426
  newThread,
239
427
  deleteThread,
240
428
  toggleDocument,
@@ -511,14 +699,14 @@ function useArbiDocumentSync(workspaceId) {
511
699
  if (!workspaceId) return;
512
700
  if (client.isMessageType(msg, "batch_complete")) {
513
701
  if (msg.workspace_ext_id !== workspaceId) return;
514
- void queryClient.invalidateQueries({ queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.documents(workspaceId) });
515
- void queryClient.invalidateQueries({ queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.tags(workspaceId) });
702
+ void queryClient.invalidateQueries({ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.documents(workspaceId) });
703
+ void queryClient.invalidateQueries({ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.tags(workspaceId) });
516
704
  return;
517
705
  }
518
706
  if (client.isMessageType(msg, "task_update")) {
519
707
  if (msg.workspace_ext_id !== workspaceId) return;
520
708
  if (TERMINAL_STATUSES.has(msg.status)) {
521
- void queryClient.invalidateQueries({ queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.documents(workspaceId) });
709
+ void queryClient.invalidateQueries({ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.documents(workspaceId) });
522
710
  }
523
711
  }
524
712
  });
@@ -647,7 +835,7 @@ function useShellWorkspaces(options) {
647
835
  }
648
836
  function useArbiShellWorkspaces(options = {}) {
649
837
  const arbi = chunkZMTLGO3K_cjs.useArbi();
650
- const query = chunk2DXS7L7M_cjs.useWorkspaces();
838
+ const query = chunkCBJ3WOGD_cjs.useWorkspaces();
651
839
  const { select, ...rest } = options;
652
840
  const defaultSelect = React.useCallback(
653
841
  (workspace) => arbi.selectWorkspace(workspace.id),
@@ -666,7 +854,7 @@ function useCreateTask() {
666
854
  const qc = reactQuery.useQueryClient();
667
855
  return reactQuery.useMutation({
668
856
  mutationFn: (body) => arbi.tasks.create(body),
669
- onSuccess: () => qc.invalidateQueries({ queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.tasks() })
857
+ onSuccess: () => qc.invalidateQueries({ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.tasks() })
670
858
  });
671
859
  }
672
860
  function useUpdateTask() {
@@ -674,7 +862,7 @@ function useUpdateTask() {
674
862
  const qc = reactQuery.useQueryClient();
675
863
  return reactQuery.useMutation({
676
864
  mutationFn: ({ taskId, patch }) => arbi.tasks.update(taskId, patch),
677
- onSuccess: () => qc.invalidateQueries({ queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.tasks() })
865
+ onSuccess: () => qc.invalidateQueries({ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.tasks() })
678
866
  });
679
867
  }
680
868
  function useRunTask() {
@@ -683,8 +871,8 @@ function useRunTask() {
683
871
  return reactQuery.useMutation({
684
872
  mutationFn: (taskId) => arbi.tasks.runWithAuth(taskId),
685
873
  onSuccess: (_task, taskId) => Promise.all([
686
- qc.invalidateQueries({ queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.tasks() }),
687
- qc.invalidateQueries({ queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.taskRuns(taskId) })
874
+ qc.invalidateQueries({ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.tasks() }),
875
+ qc.invalidateQueries({ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.taskRuns(taskId) })
688
876
  ])
689
877
  });
690
878
  }
@@ -693,13 +881,13 @@ function useDeleteTask() {
693
881
  const qc = reactQuery.useQueryClient();
694
882
  return reactQuery.useMutation({
695
883
  mutationFn: (taskId) => arbi.tasks.delete(taskId),
696
- onSuccess: () => qc.invalidateQueries({ queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.tasks() })
884
+ onSuccess: () => qc.invalidateQueries({ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.tasks() })
697
885
  });
698
886
  }
699
887
  function useTaskRuns(taskId, options) {
700
888
  const arbi = chunkZMTLGO3K_cjs.useArbi();
701
889
  return reactQuery.useQuery({
702
- queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.taskRuns(taskId ?? ""),
890
+ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.taskRuns(taskId ?? ""),
703
891
  queryFn: () => arbi.tasks.listRuns(taskId),
704
892
  enabled: (options?.enabled ?? true) && !!taskId && arbi.isLoggedIn,
705
893
  refetchInterval: (q) => q.state.data?.some((r) => r.status === "running") ? 3e3 : false
@@ -710,13 +898,13 @@ function useCreateAgent() {
710
898
  const qc = reactQuery.useQueryClient();
711
899
  return reactQuery.useMutation({
712
900
  mutationFn: (name) => arbi.agents.create(name),
713
- onSuccess: () => qc.invalidateQueries({ queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.agents() })
901
+ onSuccess: () => qc.invalidateQueries({ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.agents() })
714
902
  });
715
903
  }
716
904
  function useAgentConfig(agentExtId, options) {
717
905
  const arbi = chunkZMTLGO3K_cjs.useArbi();
718
906
  return reactQuery.useQuery({
719
- queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.agentConfig(agentExtId),
907
+ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.agentConfig(agentExtId),
720
908
  queryFn: async () => agentExtId ? await arbi.agents.getConfig(agentExtId) : await arbi.agentConfig.get("default"),
721
909
  enabled: (options?.enabled ?? true) && arbi.isLoggedIn
722
910
  });
@@ -724,7 +912,7 @@ function useAgentConfig(agentExtId, options) {
724
912
  function useAgentModels(options) {
725
913
  const arbi = chunkZMTLGO3K_cjs.useArbi();
726
914
  return reactQuery.useQuery({
727
- queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.models(),
915
+ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.models(),
728
916
  queryFn: async () => (await arbi.agentConfig.getModels()).models.map((m) => m.model_name),
729
917
  enabled: (options?.enabled ?? true) && arbi.isLoggedIn
730
918
  });
@@ -747,15 +935,15 @@ function useSaveAgentConfig() {
747
935
  });
748
936
  },
749
937
  onSuccess: (_saved, { agentExtId }) => Promise.all([
750
- qc.invalidateQueries({ queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.configs() }),
751
- qc.invalidateQueries({ queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.agentConfig(agentExtId) })
938
+ qc.invalidateQueries({ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.configs() }),
939
+ qc.invalidateQueries({ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.agentConfig(agentExtId) })
752
940
  ])
753
941
  });
754
942
  }
755
943
  function useAgentWorkspaces(agentExtId, options) {
756
944
  const arbi = chunkZMTLGO3K_cjs.useArbi();
757
945
  return reactQuery.useQuery({
758
- queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.agentWorkspaces(agentExtId ?? ""),
946
+ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.agentWorkspaces(agentExtId ?? ""),
759
947
  queryFn: () => arbi.agents.listWorkspaces(agentExtId),
760
948
  enabled: (options?.enabled ?? true) && !!agentExtId && arbi.isLoggedIn
761
949
  });
@@ -776,7 +964,7 @@ function useGrantAgentAccess() {
776
964
  if (!agent?.email) throw new Error("The agent's address is unknown.");
777
965
  return arbi.workspaces.grantAccess({ workspaceId, emails: [agent.email] });
778
966
  },
779
- onSuccess: (_res, { agentExtId }) => qc.invalidateQueries({ queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.agentWorkspaces(agentExtId) })
967
+ onSuccess: (_res, { agentExtId }) => qc.invalidateQueries({ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.agentWorkspaces(agentExtId) })
780
968
  });
781
969
  }
782
970
  function useRevokeAgentAccess() {
@@ -795,13 +983,13 @@ function useRevokeAgentAccess() {
795
983
  if (previous && previous !== workspaceId) await arbi.selectWorkspace(previous);
796
984
  }
797
985
  },
798
- onSuccess: (_res, { agentExtId }) => qc.invalidateQueries({ queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.agentWorkspaces(agentExtId) })
986
+ onSuccess: (_res, { agentExtId }) => qc.invalidateQueries({ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.agentWorkspaces(agentExtId) })
799
987
  });
800
988
  }
801
989
  function useSkills(options) {
802
990
  const arbi = chunkZMTLGO3K_cjs.useArbi();
803
991
  return reactQuery.useQuery({
804
- queryKey: [...chunk2DXS7L7M_cjs.arbiQueryKeys.skills(), options?.includeHidden ?? false],
992
+ queryKey: [...chunkCBJ3WOGD_cjs.arbiQueryKeys.skills(), options?.includeHidden ?? false],
805
993
  queryFn: () => arbi.assistant.listSkills({ includeHidden: options?.includeHidden }),
806
994
  enabled: (options?.enabled ?? true) && arbi.isLoggedIn,
807
995
  staleTime: 3e4
@@ -810,7 +998,7 @@ function useSkills(options) {
810
998
  function useContacts(options) {
811
999
  const arbi = chunkZMTLGO3K_cjs.useArbi();
812
1000
  return reactQuery.useQuery({
813
- queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.contacts(),
1001
+ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.contacts(),
814
1002
  queryFn: () => arbi.contacts.list(),
815
1003
  enabled: (options?.enabled ?? true) && arbi.isLoggedIn
816
1004
  });
@@ -830,7 +1018,7 @@ function useAddContacts() {
830
1018
  const qc = reactQuery.useQueryClient();
831
1019
  return reactQuery.useMutation({
832
1020
  mutationFn: (emails) => arbi.contacts.add(emails),
833
- onSuccess: () => qc.invalidateQueries({ queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.contacts() })
1021
+ onSuccess: () => qc.invalidateQueries({ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.contacts() })
834
1022
  });
835
1023
  }
836
1024
  function useRemoveContacts() {
@@ -838,11 +1026,423 @@ function useRemoveContacts() {
838
1026
  const qc = reactQuery.useQueryClient();
839
1027
  return reactQuery.useMutation({
840
1028
  mutationFn: (contactIds) => arbi.contacts.remove(contactIds),
841
- onSuccess: () => qc.invalidateQueries({ queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.contacts() })
1029
+ onSuccess: () => qc.invalidateQueries({ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.contacts() })
1030
+ });
1031
+ }
1032
+ function toProfileView(profile) {
1033
+ return {
1034
+ ...profile,
1035
+ fullName: [profile.givenName, profile.familyName].map((part) => part?.trim()).filter(Boolean).join(" ")
1036
+ };
1037
+ }
1038
+ function useProfile(options) {
1039
+ const arbi = chunkZMTLGO3K_cjs.useArbi();
1040
+ return reactQuery.useQuery({
1041
+ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.profile(),
1042
+ queryFn: () => {
1043
+ const profile = arbi.user.profile();
1044
+ return profile ? toProfileView(profile) : null;
1045
+ },
1046
+ enabled: (options?.enabled ?? true) && arbi.isLoggedIn,
1047
+ staleTime: Infinity
1048
+ });
1049
+ }
1050
+ function useUpdateProfile() {
1051
+ const arbi = chunkZMTLGO3K_cjs.useArbi();
1052
+ const qc = reactQuery.useQueryClient();
1053
+ return reactQuery.useMutation({
1054
+ mutationFn: async (vars) => {
1055
+ await arbi.profile.update({
1056
+ ...vars.givenName !== void 0 && { given_name: vars.givenName.trim() },
1057
+ ...vars.familyName !== void 0 && { family_name: vars.familyName.trim() },
1058
+ ...vars.picture !== void 0 && { picture: vars.picture }
1059
+ });
1060
+ const profile = arbi.user.profile();
1061
+ return profile ? toProfileView(profile) : null;
1062
+ },
1063
+ onSuccess: (profile) => {
1064
+ qc.setQueryData(chunkCBJ3WOGD_cjs.arbiQueryKeys.profile(), profile);
1065
+ return qc.invalidateQueries({ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.workspaces() });
1066
+ }
1067
+ });
1068
+ }
1069
+ function useNameEditor({ givenName, familyName, save }) {
1070
+ const [isEditing, setIsEditing] = React.useState(false);
1071
+ const [given, setGiven] = React.useState("");
1072
+ const [family, setFamily] = React.useState("");
1073
+ const [isSaving, setIsSaving] = React.useState(false);
1074
+ const [error, setError] = React.useState(null);
1075
+ const onStartEdit = React.useCallback(() => {
1076
+ setGiven(givenName ?? "");
1077
+ setFamily(familyName ?? "");
1078
+ setError(null);
1079
+ setIsEditing(true);
1080
+ }, [givenName, familyName]);
1081
+ const onSave = React.useCallback(() => {
1082
+ const trimmedGiven = given.trim();
1083
+ if (!trimmedGiven) return;
1084
+ setIsSaving(true);
1085
+ setError(null);
1086
+ void Promise.resolve().then(() => save({ givenName: trimmedGiven, familyName: family.trim() })).then(() => setIsEditing(false)).catch((e) => setError(e)).finally(() => setIsSaving(false));
1087
+ }, [given, family, save]);
1088
+ return {
1089
+ isEditing,
1090
+ givenName: given,
1091
+ familyName: family,
1092
+ onGivenNameChange: setGiven,
1093
+ onFamilyNameChange: setFamily,
1094
+ onStartEdit,
1095
+ onSave,
1096
+ onCancel: () => setIsEditing(false),
1097
+ isSaving,
1098
+ error
1099
+ };
1100
+ }
1101
+ var MAX_AVATAR_FILE_BYTES = 5 * 1024 * 1024;
1102
+ function useAvatarCrop({
1103
+ upload,
1104
+ onProblem,
1105
+ maxBytes = MAX_AVATAR_FILE_BYTES
1106
+ }) {
1107
+ const [pendingImage, setPendingImage] = React.useState(null);
1108
+ const [isUploading, setIsUploading] = React.useState(false);
1109
+ const onFileChosen = React.useCallback(
1110
+ (file) => {
1111
+ if (!file.type.startsWith("image/")) return onProblem?.("not-image");
1112
+ if (file.size > maxBytes) return onProblem?.("too-large");
1113
+ const reader = new FileReader();
1114
+ reader.onload = () => setPendingImage(reader.result);
1115
+ reader.onerror = () => onProblem?.("unreadable");
1116
+ reader.readAsDataURL(file);
1117
+ },
1118
+ [maxBytes, onProblem]
1119
+ );
1120
+ const onCropComplete = React.useCallback(
1121
+ (result) => {
1122
+ setPendingImage(null);
1123
+ setIsUploading(true);
1124
+ void Promise.resolve().then(() => upload(result.dataUrl)).catch(() => {
1125
+ }).finally(() => setIsUploading(false));
1126
+ },
1127
+ [upload]
1128
+ );
1129
+ return {
1130
+ onFileChosen,
1131
+ pendingImage,
1132
+ onCropComplete,
1133
+ onCropCancel: () => setPendingImage(null),
1134
+ isUploading
1135
+ };
1136
+ }
1137
+ function useRequestEmailChange() {
1138
+ const arbi = chunkZMTLGO3K_cjs.useArbi();
1139
+ return reactQuery.useMutation({
1140
+ mutationFn: (newEmail) => arbi.account.requestEmailChange(newEmail)
1141
+ });
1142
+ }
1143
+ function useConfirmEmailChange() {
1144
+ const arbi = chunkZMTLGO3K_cjs.useArbi();
1145
+ const qc = reactQuery.useQueryClient();
1146
+ return reactQuery.useMutation({
1147
+ mutationFn: ({ newEmail, code }) => arbi.account.confirmEmailChange(newEmail, code),
1148
+ onSuccess: () => {
1149
+ const profile = arbi.user.profile();
1150
+ qc.setQueryData(chunkCBJ3WOGD_cjs.arbiQueryKeys.profile(), profile ? toProfileView(profile) : null);
1151
+ }
1152
+ });
1153
+ }
1154
+ function useEmailChange({
1155
+ requestCode,
1156
+ confirm,
1157
+ cooldownSeconds: cooldownLength = 30
1158
+ }) {
1159
+ const [isOpen, setIsOpen] = React.useState(false);
1160
+ const [step, setStep] = React.useState("enter");
1161
+ const [newEmail, setNewEmail] = React.useState("");
1162
+ const [code, setCode] = React.useState("");
1163
+ const [cooldown, setCooldown] = React.useState(0);
1164
+ const [isSending, setIsSending] = React.useState(false);
1165
+ const [isConfirming, setIsConfirming] = React.useState(false);
1166
+ const [error, setError] = React.useState(null);
1167
+ React.useEffect(() => {
1168
+ if (cooldown <= 0) return;
1169
+ const timer = setTimeout(() => setCooldown((c) => c - 1), 1e3);
1170
+ return () => clearTimeout(timer);
1171
+ }, [cooldown]);
1172
+ const reset = React.useCallback(() => {
1173
+ setIsOpen(false);
1174
+ setStep("enter");
1175
+ setNewEmail("");
1176
+ setCode("");
1177
+ setError(null);
1178
+ }, []);
1179
+ const onSendCode = React.useCallback(() => {
1180
+ const email = newEmail.trim();
1181
+ if (!email) return;
1182
+ setIsSending(true);
1183
+ setError(null);
1184
+ void Promise.resolve().then(() => requestCode(email)).then(() => {
1185
+ setStep("verify");
1186
+ setCooldown(cooldownLength);
1187
+ }).catch((e) => setError(e)).finally(() => setIsSending(false));
1188
+ }, [newEmail, requestCode, cooldownLength]);
1189
+ const onConfirm = React.useCallback(() => {
1190
+ const email = newEmail.trim();
1191
+ const entered = code.trim();
1192
+ if (!email || !entered) return;
1193
+ setIsConfirming(true);
1194
+ setError(null);
1195
+ void Promise.resolve().then(() => confirm({ newEmail: email, code: entered })).then(reset).catch((e) => setError(e)).finally(() => setIsConfirming(false));
1196
+ }, [newEmail, code, confirm, reset]);
1197
+ return {
1198
+ isOpen,
1199
+ onStart: () => setIsOpen(true),
1200
+ step,
1201
+ newEmail,
1202
+ onNewEmailChange: setNewEmail,
1203
+ onSendCode,
1204
+ isSending,
1205
+ code,
1206
+ onCodeChange: setCode,
1207
+ onConfirm,
1208
+ isConfirming,
1209
+ cooldownSeconds: cooldown,
1210
+ onCancel: reset,
1211
+ error
1212
+ };
1213
+ }
1214
+ function usePasswordChange() {
1215
+ const arbi = chunkZMTLGO3K_cjs.useArbi();
1216
+ return reactQuery.useMutation({
1217
+ mutationFn: (vars) => arbi.account.changePassword(vars)
842
1218
  });
843
1219
  }
1220
+ var DEFAULT_PASSWORD_CHANGE_FORM_MESSAGES = {
1221
+ required: "All fields are required",
1222
+ mismatch: "New passwords do not match",
1223
+ sameAsCurrent: "New password must be different from current password",
1224
+ wrongCurrent: "Current password is incorrect.",
1225
+ wrongRecoveryKey: "Recovery key did not match this account. Try a different recovery file."
1226
+ };
1227
+ function usePasswordChangeForm({
1228
+ recoveryMode = false,
1229
+ getUnmetRequirement,
1230
+ submit,
1231
+ onClose,
1232
+ onRecoveryComplete,
1233
+ messages
1234
+ }) {
1235
+ const m = React.useMemo(() => ({ ...DEFAULT_PASSWORD_CHANGE_FORM_MESSAGES, ...messages }), [messages]);
1236
+ const [currentPassword, setCurrentPassword] = React.useState("");
1237
+ const [newPassword, setNewPassword] = React.useState("");
1238
+ const [confirmPassword, setConfirmPassword] = React.useState("");
1239
+ const [error, setError] = React.useState(null);
1240
+ const [isProcessing, setIsProcessing] = React.useState(false);
1241
+ const [result, setResult] = React.useState(null);
1242
+ const clear = React.useCallback(() => {
1243
+ setCurrentPassword("");
1244
+ setNewPassword("");
1245
+ setConfirmPassword("");
1246
+ }, []);
1247
+ const isSubmitDisabled = isProcessing || !recoveryMode && !currentPassword || !newPassword || !confirmPassword || getUnmetRequirement(newPassword) !== null || newPassword !== confirmPassword;
1248
+ const onSubmit = React.useCallback(() => {
1249
+ setError(null);
1250
+ if (!recoveryMode && !currentPassword || !newPassword || !confirmPassword) {
1251
+ return setError(m.required);
1252
+ }
1253
+ if (newPassword !== confirmPassword) return setError(m.mismatch);
1254
+ const unmet = getUnmetRequirement(newPassword);
1255
+ if (unmet !== null) return setError(unmet);
1256
+ if (!recoveryMode && currentPassword === newPassword) return setError(m.sameAsCurrent);
1257
+ setIsProcessing(true);
1258
+ void submit({ newPassword, currentPassword: recoveryMode ? void 0 : currentPassword }).then((outcome) => {
1259
+ clear();
1260
+ if (recoveryMode) {
1261
+ onClose();
1262
+ onRecoveryComplete?.();
1263
+ } else {
1264
+ setResult(outcome);
1265
+ }
1266
+ }).catch((e) => {
1267
+ const message = client.passwordChangeErrorMessage(e);
1268
+ const wrongCurrent = /invalid signature|current password|401/i.test(message);
1269
+ setError(wrongCurrent ? recoveryMode ? m.wrongRecoveryKey : m.wrongCurrent : message);
1270
+ }).finally(() => setIsProcessing(false));
1271
+ }, [
1272
+ recoveryMode,
1273
+ currentPassword,
1274
+ newPassword,
1275
+ confirmPassword,
1276
+ getUnmetRequirement,
1277
+ submit,
1278
+ clear,
1279
+ onClose,
1280
+ onRecoveryComplete,
1281
+ m
1282
+ ]);
1283
+ return {
1284
+ currentPassword,
1285
+ onCurrentPasswordChange: setCurrentPassword,
1286
+ newPassword,
1287
+ onNewPasswordChange: setNewPassword,
1288
+ confirmPassword,
1289
+ onConfirmPasswordChange: setConfirmPassword,
1290
+ error,
1291
+ isProcessing,
1292
+ isSubmitDisabled,
1293
+ onSubmit,
1294
+ result,
1295
+ onCancel: () => {
1296
+ clear();
1297
+ setError(null);
1298
+ setResult(null);
1299
+ onClose();
1300
+ },
1301
+ onDone: () => {
1302
+ setResult(null);
1303
+ onClose();
1304
+ }
1305
+ };
1306
+ }
1307
+ function toNotificationPreferences(stored, keys) {
1308
+ const checked = Object.fromEntries(keys.map((key) => [key, stored?.[key] ?? true]));
1309
+ return {
1310
+ masterChecked: keys.some((key) => checked[key]),
1311
+ checked,
1312
+ masterPatch: (value) => Object.fromEntries(keys.map((key) => [key, value])),
1313
+ categoryPatch: (key, value) => ({ [key]: value })
1314
+ };
1315
+ }
1316
+ function useUserSettings(options) {
1317
+ const arbi = chunkZMTLGO3K_cjs.useArbi();
1318
+ return reactQuery.useQuery({
1319
+ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.userSettings(),
1320
+ queryFn: () => arbi.settings.get(),
1321
+ enabled: (options?.enabled ?? true) && arbi.isLoggedIn
1322
+ });
1323
+ }
1324
+ function useNotificationPreferences(keys, options) {
1325
+ const arbi = chunkZMTLGO3K_cjs.useArbi();
1326
+ const qc = reactQuery.useQueryClient();
1327
+ const settings = useUserSettings(options);
1328
+ const stored = settings.data?.email_notifications;
1329
+ const save = reactQuery.useMutation({
1330
+ mutationFn: (patch) => arbi.settings.update({ email_notifications: patch }),
1331
+ onMutate: async (patch) => {
1332
+ await qc.cancelQueries({ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.userSettings() });
1333
+ const previous = qc.getQueryData(chunkCBJ3WOGD_cjs.arbiQueryKeys.userSettings());
1334
+ qc.setQueryData(
1335
+ chunkCBJ3WOGD_cjs.arbiQueryKeys.userSettings(),
1336
+ (old) => old ? { ...old, email_notifications: { ...old.email_notifications, ...patch } } : old
1337
+ );
1338
+ return { previous };
1339
+ },
1340
+ onError: (_err, _patch, context) => {
1341
+ qc.setQueryData(chunkCBJ3WOGD_cjs.arbiQueryKeys.userSettings(), context?.previous);
1342
+ },
1343
+ onSettled: () => qc.invalidateQueries({ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.userSettings() })
1344
+ });
1345
+ const model = React.useMemo(() => toNotificationPreferences(stored, keys), [stored, keys]);
1346
+ const setAll = React.useCallback(
1347
+ (value) => save.mutate(model.masterPatch(value)),
1348
+ [save, model]
1349
+ );
1350
+ const setCategory = React.useCallback(
1351
+ (key, value) => save.mutate(model.categoryPatch(key, value)),
1352
+ [save, model]
1353
+ );
1354
+ return {
1355
+ ...model,
1356
+ isLoading: settings.isLoading,
1357
+ isSaving: save.isPending,
1358
+ /** The master switch handler: every category on or off. */
1359
+ setAll,
1360
+ /** One category's handler. */
1361
+ setCategory
1362
+ };
1363
+ }
1364
+ function useTerminateSession() {
1365
+ const arbi = chunkZMTLGO3K_cjs.useArbi();
1366
+ const qc = reactQuery.useQueryClient();
1367
+ return reactQuery.useMutation({
1368
+ mutationFn: (sessionId) => arbi.sessions.terminate(sessionId),
1369
+ onSuccess: () => qc.invalidateQueries({ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.sessions() })
1370
+ });
1371
+ }
1372
+ function useLogoutAllSessions() {
1373
+ const arbi = chunkZMTLGO3K_cjs.useArbi();
1374
+ const qc = reactQuery.useQueryClient();
1375
+ return reactQuery.useMutation({
1376
+ mutationFn: () => arbi.sessions.logoutAll(),
1377
+ onSuccess: () => qc.clear()
1378
+ });
1379
+ }
1380
+ function useCurrentSessionId() {
1381
+ return chunkZMTLGO3K_cjs.useArbi().sessions.currentId();
1382
+ }
1383
+ function parseDeleteAccountBlockers(error) {
1384
+ const body = error?.apiError ?? error;
1385
+ const detail = body?.detail;
1386
+ if (detail === "active_subscription") return [{ type: "active_subscription" }];
1387
+ if (detail && typeof detail === "object") {
1388
+ const d = detail;
1389
+ if (d.reason === "workspace_members" && Array.isArray(d.workspaces)) {
1390
+ return [{ type: "workspace_members", workspaces: d.workspaces.map(String) }];
1391
+ }
1392
+ }
1393
+ return [];
1394
+ }
1395
+ function useDeleteAccount() {
1396
+ const arbi = chunkZMTLGO3K_cjs.useArbi();
1397
+ return reactQuery.useMutation({ mutationFn: () => arbi.account.requestDeletion() });
1398
+ }
1399
+ function useDeleteAccountFlow({
1400
+ userEmail,
1401
+ remove,
1402
+ onClose,
1403
+ onDeleted,
1404
+ onError
1405
+ }) {
1406
+ const [step, setStep] = React.useState("warning");
1407
+ const [confirmEmail, setConfirmEmail] = React.useState("");
1408
+ const [blockers, setBlockers] = React.useState([]);
1409
+ const [isDeleting, setIsDeleting] = React.useState(false);
1410
+ const close = React.useCallback(() => {
1411
+ setStep("warning");
1412
+ setConfirmEmail("");
1413
+ setBlockers([]);
1414
+ onClose();
1415
+ }, [onClose]);
1416
+ const onSubmit = React.useCallback(() => {
1417
+ if (confirmEmail.toLowerCase() !== userEmail.toLowerCase()) return;
1418
+ setIsDeleting(true);
1419
+ void Promise.resolve().then(remove).then(() => {
1420
+ close();
1421
+ onDeleted();
1422
+ }).catch((error) => {
1423
+ const found = parseDeleteAccountBlockers(error);
1424
+ if (found.length > 0) {
1425
+ setBlockers(found);
1426
+ setStep("warning");
1427
+ } else {
1428
+ onError?.(error);
1429
+ }
1430
+ }).finally(() => setIsDeleting(false));
1431
+ }, [confirmEmail, userEmail, remove, close, onDeleted, onError]);
1432
+ return {
1433
+ step,
1434
+ blockers,
1435
+ confirmEmail,
1436
+ onConfirmEmailChange: setConfirmEmail,
1437
+ onContinue: () => setStep("confirm"),
1438
+ onBack: () => setStep("warning"),
1439
+ isDeleting,
1440
+ onSubmit,
1441
+ onClose: close
1442
+ };
1443
+ }
844
1444
  function useWorkspaceDocs(workspaceId) {
845
- const { data: docs = [], isLoading, isError } = chunk2DXS7L7M_cjs.useDocuments(workspaceId);
1445
+ const { data: docs = [], isLoading, isError } = chunkCBJ3WOGD_cjs.useDocuments(workspaceId);
846
1446
  const docIds = React.useMemo(
847
1447
  () => docs.map((d) => d.external_id).filter((id) => !!id),
848
1448
  [docs]
@@ -850,7 +1450,7 @@ function useWorkspaceDocs(workspaceId) {
850
1450
  return { wsId: workspaceId, docs, docIds, isLoading, isError, ready: docIds.length > 0 };
851
1451
  }
852
1452
  function useAiTask() {
853
- const mutation = chunk2DXS7L7M_cjs.useAssistantQuery();
1453
+ const mutation = chunkCBJ3WOGD_cjs.useAssistantQuery();
854
1454
  const [status, setStatus] = React.useState("idle");
855
1455
  const [text, setText] = React.useState("");
856
1456
  const [stepCount, setStepCount] = React.useState(0);
@@ -1063,7 +1663,7 @@ function AiAnswer({
1063
1663
  }
1064
1664
  ),
1065
1665
  hasText && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1066
- /* @__PURE__ */ jsxRuntime.jsx(chunk7BDGLRQX_cjs.AiMarkdown, { isStreaming: running, children: text }),
1666
+ /* @__PURE__ */ jsxRuntime.jsx(chunkZ5YCRJY3_cjs.AiMarkdown, { isStreaming: running, children: text }),
1067
1667
  !running && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between border-t border-border pt-2.5", children: [
1068
1668
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1.5 text-xs text-muted-foreground", children: [
1069
1669
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ShieldCheck, { className: "size-3.5 text-ai-accent" }),
@@ -1108,7 +1708,7 @@ function AiActionCard({
1108
1708
  const p = typeof prompt === "function" ? prompt() : prompt;
1109
1709
  void task.run(p, docIds);
1110
1710
  };
1111
- return /* @__PURE__ */ jsxRuntime.jsxs(chunk7BDGLRQX_cjs.Card, { variant: "elevated", className: "rounded-xl p-5", "data-testid": testId, children: [
1711
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkZ5YCRJY3_cjs.Card, { variant: "elevated", className: "rounded-xl p-5", "data-testid": testId, children: [
1112
1712
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start justify-between gap-4", children: [
1113
1713
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
1114
1714
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-9 shrink-0 items-center justify-center rounded-lg bg-ai-accent-soft text-ai-accent", children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "size-4" }) }),
@@ -1118,7 +1718,7 @@ function AiActionCard({
1118
1718
  ] })
1119
1719
  ] }),
1120
1720
  /* @__PURE__ */ jsxRuntime.jsxs(
1121
- chunk7BDGLRQX_cjs.Button,
1721
+ chunkZ5YCRJY3_cjs.Button,
1122
1722
  {
1123
1723
  variant: task.isDone ? "outline" : "accent",
1124
1724
  size: "sm",
@@ -1250,11 +1850,11 @@ function ArtifactCanvas({
1250
1850
  children: active.title
1251
1851
  }
1252
1852
  ),
1253
- isRedline && /* @__PURE__ */ jsxRuntime.jsxs(chunk7BDGLRQX_cjs.Badge, { variant: "accent", className: "gap-1", children: [
1853
+ isRedline && /* @__PURE__ */ jsxRuntime.jsxs(chunkZ5YCRJY3_cjs.Badge, { variant: "accent", className: "gap-1", children: [
1254
1854
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.GitCompareArrows, { className: "size-3" }),
1255
1855
  " Redline"
1256
1856
  ] }),
1257
- /* @__PURE__ */ jsxRuntime.jsxs(chunk7BDGLRQX_cjs.Badge, { variant: "secondary", children: [
1857
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkZ5YCRJY3_cjs.Badge, { variant: "secondary", children: [
1258
1858
  "v",
1259
1859
  active.version
1260
1860
  ] }),
@@ -1310,7 +1910,7 @@ function ArtifactCanvas({
1310
1910
  animate: { opacity: 1, y: 0 },
1311
1911
  transition: { duration: 0.2 },
1312
1912
  className: "mx-auto max-w-2xl rounded-lg bg-card p-8 shadow-sm ring-1 ring-border",
1313
- children: active.mode === "html" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm", dangerouslySetInnerHTML: { __html: active.content } }) : active.mode === "text" ? /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "whitespace-pre-wrap font-mono text-xs text-foreground", children: active.content }) : /* @__PURE__ */ jsxRuntime.jsx(chunk7BDGLRQX_cjs.AiMarkdown, { children: active.content })
1913
+ children: active.mode === "html" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm", dangerouslySetInnerHTML: { __html: active.content } }) : active.mode === "text" ? /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "whitespace-pre-wrap font-mono text-xs text-foreground", children: active.content }) : /* @__PURE__ */ jsxRuntime.jsx(chunkZ5YCRJY3_cjs.AiMarkdown, { children: active.content })
1314
1914
  },
1315
1915
  active.doc_ext_id
1316
1916
  ) }) })
@@ -1327,7 +1927,7 @@ function MessageArtifactCard({
1327
1927
  const Icon = isImage ? lucideReact.Image : lucideReact.FileText;
1328
1928
  const statusText = isImage ? isComplete ? "Image ready" : "Generating\u2026" : isComplete ? "Draft ready" : "Drafting\u2026";
1329
1929
  return /* @__PURE__ */ jsxRuntime.jsxs(
1330
- chunk7BDGLRQX_cjs.Card,
1930
+ chunkZ5YCRJY3_cjs.Card,
1331
1931
  {
1332
1932
  variant: "outline",
1333
1933
  className: "mt-3 flex items-center gap-3 px-3 py-2.5",
@@ -1403,7 +2003,7 @@ function DocSearch({
1403
2003
  status === "done" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", "data-testid": "doc-search-results", children: [
1404
2004
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: results.length === 0 ? `No passages matched \u201C${query}\u201D.` : `${results.length} passage${results.length === 1 ? "" : "s"} for \u201C${query}\u201D` }),
1405
2005
  results.slice(0, 8).map((r, i) => /* @__PURE__ */ jsxRuntime.jsxs(
1406
- chunk7BDGLRQX_cjs.Card,
2006
+ chunkZ5YCRJY3_cjs.Card,
1407
2007
  {
1408
2008
  variant: "elevated",
1409
2009
  className: chunkS6A6FSG7_cjs.cn(
@@ -1416,7 +2016,7 @@ function DocSearch({
1416
2016
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1 flex items-center gap-2", children: [
1417
2017
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileText, { className: "size-3.5 text-ai-accent" }),
1418
2018
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-xs font-medium text-foreground", children: r.docTitle ?? "Document" }),
1419
- r.page != null && /* @__PURE__ */ jsxRuntime.jsxs(chunk7BDGLRQX_cjs.Badge, { variant: "secondary", children: [
2019
+ r.page != null && /* @__PURE__ */ jsxRuntime.jsxs(chunkZ5YCRJY3_cjs.Badge, { variant: "secondary", children: [
1420
2020
  "p.",
1421
2021
  r.page
1422
2022
  ] }),
@@ -1442,8 +2042,8 @@ function DocumentReview({
1442
2042
  onClose,
1443
2043
  className
1444
2044
  }) {
1445
- const parsedQuery = chunk2DXS7L7M_cjs.useParsedDocument(docId, stage);
1446
- const tagsQuery = chunk2DXS7L7M_cjs.useTags(workspaceId);
2045
+ const parsedQuery = chunkCBJ3WOGD_cjs.useParsedDocument(docId, stage);
2046
+ const tagsQuery = chunkCBJ3WOGD_cjs.useTags(workspaceId);
1447
2047
  const tagNameById = React__default.default.useMemo(() => {
1448
2048
  const map = /* @__PURE__ */ new Map();
1449
2049
  for (const t of tagsQuery.data ?? []) {
@@ -1510,7 +2110,7 @@ function DocumentReview({
1510
2110
  findings.length ? ` \xB7 ${findings.length} findings` : ""
1511
2111
  ] })
1512
2112
  ] }),
1513
- doc?.status ? /* @__PURE__ */ jsxRuntime.jsx(chunk7BDGLRQX_cjs.Badge, { variant: "secondary", children: doc.status }) : null,
2113
+ doc?.status ? /* @__PURE__ */ jsxRuntime.jsx(chunkZ5YCRJY3_cjs.Badge, { variant: "secondary", children: doc.status }) : null,
1514
2114
  onClose ? /* @__PURE__ */ jsxRuntime.jsx(
1515
2115
  "button",
1516
2116
  {
@@ -1547,7 +2147,7 @@ function DocumentReview({
1547
2147
  className: "w-full cursor-pointer rounded-md border p-2 text-left text-xs transition hover:border-ring hover:bg-muted/50 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",
1548
2148
  children: [
1549
2149
  /* @__PURE__ */ jsxRuntime.jsx(
1550
- chunk7BDGLRQX_cjs.TagEntity,
2150
+ chunkZ5YCRJY3_cjs.TagEntity,
1551
2151
  {
1552
2152
  size: "sm",
1553
2153
  tag: {
@@ -1592,7 +2192,7 @@ function DocumentReview({
1592
2192
  ),
1593
2193
  children: [
1594
2194
  highlighted ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1", children: /* @__PURE__ */ jsxRuntime.jsx(
1595
- chunk7BDGLRQX_cjs.TagEntity,
2195
+ chunkZ5YCRJY3_cjs.TagEntity,
1596
2196
  {
1597
2197
  size: "sm",
1598
2198
  tag: {
@@ -1601,7 +2201,7 @@ function DocumentReview({
1601
2201
  }
1602
2202
  }
1603
2203
  ) }) : null,
1604
- /* @__PURE__ */ jsxRuntime.jsx(chunk7V7B7OEM_cjs.MarkdownRenderer, { className: "prose prose-sm max-w-none dark:prose-invert", children: c.content })
2204
+ /* @__PURE__ */ jsxRuntime.jsx(chunkOI55JRKT_cjs.MarkdownRenderer, { className: "prose prose-sm max-w-none dark:prose-invert", children: c.content })
1605
2205
  ]
1606
2206
  },
1607
2207
  cid ?? i
@@ -1641,7 +2241,7 @@ function ResultRow({
1641
2241
  onSelect
1642
2242
  }) {
1643
2243
  return /* @__PURE__ */ jsxRuntime.jsx(
1644
- chunk7BDGLRQX_cjs.PassageCard,
2244
+ chunkZ5YCRJY3_cjs.PassageCard,
1645
2245
  {
1646
2246
  onClick: onSelect,
1647
2247
  active: isActive,
@@ -1650,7 +2250,7 @@ function ResultRow({
1650
2250
  header: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1651
2251
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileText, { className: "size-3.5 shrink-0 text-ai-accent" }),
1652
2252
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-xs font-medium text-foreground", children: result.docTitle ?? "Document" }),
1653
- result.page != null && /* @__PURE__ */ jsxRuntime.jsxs(chunk7BDGLRQX_cjs.Badge, { variant: "secondary", children: [
2253
+ result.page != null && /* @__PURE__ */ jsxRuntime.jsxs(chunkZ5YCRJY3_cjs.Badge, { variant: "secondary", children: [
1654
2254
  "p.",
1655
2255
  result.page
1656
2256
  ] })
@@ -1674,7 +2274,7 @@ function SemanticSearch({
1674
2274
  const { results, status, error, search, isRunning, query } = useSemanticSearch(docIds);
1675
2275
  const [value, setValue] = React.useState("");
1676
2276
  const [selected, setSelected] = React.useState(null);
1677
- const { data: docs = [] } = chunk2DXS7L7M_cjs.useDocuments(workspaceId, { enabled: !!workspaceId });
2277
+ const { data: docs = [] } = chunkCBJ3WOGD_cjs.useDocuments(workspaceId, { enabled: !!workspaceId });
1678
2278
  const docMap = React.useMemo(() => {
1679
2279
  const map = /* @__PURE__ */ new Map();
1680
2280
  for (const d of docs) if (d.external_id) map.set(d.external_id, d);
@@ -1760,7 +2360,7 @@ function SemanticSearch({
1760
2360
  "data-testid": "arbi-semantic-search-viewer",
1761
2361
  children: selected && selected.docId ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full min-h-0 flex-col gap-2", children: [
1762
2362
  /* @__PURE__ */ jsxRuntime.jsxs(
1763
- chunk7BDGLRQX_cjs.Button,
2363
+ chunkZ5YCRJY3_cjs.Button,
1764
2364
  {
1765
2365
  variant: "ghost",
1766
2366
  size: "sm",
@@ -1819,7 +2419,7 @@ Question: ${question}`,
1819
2419
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 space-y-3", "data-testid": "doc-qa", children: [
1820
2420
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
1821
2421
  /* @__PURE__ */ jsxRuntime.jsx(
1822
- chunk7BDGLRQX_cjs.Input,
2422
+ chunkZ5YCRJY3_cjs.Input,
1823
2423
  {
1824
2424
  value: q,
1825
2425
  onChange: (e) => setQ(e.target.value),
@@ -1830,7 +2430,7 @@ Question: ${question}`,
1830
2430
  }
1831
2431
  ),
1832
2432
  /* @__PURE__ */ jsxRuntime.jsx(
1833
- chunk7BDGLRQX_cjs.Button,
2433
+ chunkZ5YCRJY3_cjs.Button,
1834
2434
  {
1835
2435
  variant: "accent",
1836
2436
  size: "icon",
@@ -1842,7 +2442,7 @@ Question: ${question}`,
1842
2442
  }
1843
2443
  ),
1844
2444
  /* @__PURE__ */ jsxRuntime.jsxs(
1845
- chunk7BDGLRQX_cjs.Button,
2445
+ chunkZ5YCRJY3_cjs.Button,
1846
2446
  {
1847
2447
  variant: "outline",
1848
2448
  size: "sm",
@@ -1981,7 +2581,7 @@ var CitationRendererComponent = ({
1981
2581
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkS6A6FSG7_cjs.cn("citation-container", className), "data-testid": "citation-renderer", children: renderMarkdown({
1982
2582
  components: markdownComponents,
1983
2583
  isStreaming,
1984
- children: chunk7V7B7OEM_cjs.normalizeCitationMarkup(content)
2584
+ children: chunkOI55JRKT_cjs.normalizeCitationMarkup(content)
1985
2585
  }) });
1986
2586
  };
1987
2587
  var CitationPopover = ({
@@ -2206,7 +2806,7 @@ var CitationLink = ({
2206
2806
  triggerRef,
2207
2807
  children
2208
2808
  }) => /* @__PURE__ */ jsxRuntime.jsxs(
2209
- chunk7BDGLRQX_cjs.MarkMenu,
2809
+ chunkZ5YCRJY3_cjs.MarkMenu,
2210
2810
  {
2211
2811
  triggerRef,
2212
2812
  items,
@@ -2244,8 +2844,8 @@ var DocIcon = ({ size = 16, className = "" }) => {
2244
2844
  "path",
2245
2845
  {
2246
2846
  d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z",
2247
- fill: chunk7BDGLRQX_cjs.FILE_TYPE_COLORS.doc,
2248
- stroke: chunk7BDGLRQX_cjs.FILE_TYPE_COLORS.doc,
2847
+ fill: chunkZ5YCRJY3_cjs.FILE_TYPE_COLORS.doc,
2848
+ stroke: chunkZ5YCRJY3_cjs.FILE_TYPE_COLORS.doc,
2249
2849
  strokeWidth: "1",
2250
2850
  strokeLinecap: "round",
2251
2851
  strokeLinejoin: "round"
@@ -2256,7 +2856,7 @@ var DocIcon = ({ size = 16, className = "" }) => {
2256
2856
  {
2257
2857
  d: "M14 2v6h6",
2258
2858
  fill: "none",
2259
- stroke: chunk7BDGLRQX_cjs.FILE_TYPE_COLORS.white,
2859
+ stroke: chunkZ5YCRJY3_cjs.FILE_TYPE_COLORS.white,
2260
2860
  strokeWidth: "1",
2261
2861
  strokeLinecap: "round",
2262
2862
  strokeLinejoin: "round"
@@ -2294,8 +2894,8 @@ var HtmlIcon = ({ size = 16, className = "" }) => {
2294
2894
  "path",
2295
2895
  {
2296
2896
  d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z",
2297
- fill: chunk7BDGLRQX_cjs.FILE_TYPE_COLORS.html,
2298
- stroke: chunk7BDGLRQX_cjs.FILE_TYPE_COLORS.html,
2897
+ fill: chunkZ5YCRJY3_cjs.FILE_TYPE_COLORS.html,
2898
+ stroke: chunkZ5YCRJY3_cjs.FILE_TYPE_COLORS.html,
2299
2899
  strokeWidth: "1",
2300
2900
  strokeLinecap: "round",
2301
2901
  strokeLinejoin: "round"
@@ -2306,7 +2906,7 @@ var HtmlIcon = ({ size = 16, className = "" }) => {
2306
2906
  {
2307
2907
  d: "M14 2v6h6",
2308
2908
  fill: "none",
2309
- stroke: chunk7BDGLRQX_cjs.FILE_TYPE_COLORS.white,
2909
+ stroke: chunkZ5YCRJY3_cjs.FILE_TYPE_COLORS.white,
2310
2910
  strokeWidth: "1",
2311
2911
  strokeLinecap: "round",
2312
2912
  strokeLinejoin: "round"
@@ -2344,8 +2944,8 @@ var TxtIcon = ({ size = 16, className = "" }) => {
2344
2944
  "path",
2345
2945
  {
2346
2946
  d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z",
2347
- fill: chunk7BDGLRQX_cjs.FILE_TYPE_COLORS.txt,
2348
- stroke: chunk7BDGLRQX_cjs.FILE_TYPE_COLORS.txt,
2947
+ fill: chunkZ5YCRJY3_cjs.FILE_TYPE_COLORS.txt,
2948
+ stroke: chunkZ5YCRJY3_cjs.FILE_TYPE_COLORS.txt,
2349
2949
  strokeWidth: "1",
2350
2950
  strokeLinecap: "round",
2351
2951
  strokeLinejoin: "round"
@@ -2356,7 +2956,7 @@ var TxtIcon = ({ size = 16, className = "" }) => {
2356
2956
  {
2357
2957
  d: "M14 2v6h6",
2358
2958
  fill: "none",
2359
- stroke: chunk7BDGLRQX_cjs.FILE_TYPE_COLORS.white,
2959
+ stroke: chunkZ5YCRJY3_cjs.FILE_TYPE_COLORS.white,
2360
2960
  strokeWidth: "1",
2361
2961
  strokeLinecap: "round",
2362
2962
  strokeLinejoin: "round"
@@ -2394,8 +2994,8 @@ var XlsIcon = ({ size = 16, className = "" }) => {
2394
2994
  "path",
2395
2995
  {
2396
2996
  d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z",
2397
- fill: chunk7BDGLRQX_cjs.FILE_TYPE_COLORS.xls,
2398
- stroke: chunk7BDGLRQX_cjs.FILE_TYPE_COLORS.xls,
2997
+ fill: chunkZ5YCRJY3_cjs.FILE_TYPE_COLORS.xls,
2998
+ stroke: chunkZ5YCRJY3_cjs.FILE_TYPE_COLORS.xls,
2399
2999
  strokeWidth: "1",
2400
3000
  strokeLinecap: "round",
2401
3001
  strokeLinejoin: "round"
@@ -2406,7 +3006,7 @@ var XlsIcon = ({ size = 16, className = "" }) => {
2406
3006
  {
2407
3007
  d: "M14 2v6h6",
2408
3008
  fill: "none",
2409
- stroke: chunk7BDGLRQX_cjs.FILE_TYPE_COLORS.white,
3009
+ stroke: chunkZ5YCRJY3_cjs.FILE_TYPE_COLORS.white,
2410
3010
  strokeWidth: "1",
2411
3011
  strokeLinecap: "round",
2412
3012
  strokeLinejoin: "round"
@@ -2444,8 +3044,8 @@ var FileIcon = ({ size = 16, className = "" }) => {
2444
3044
  "path",
2445
3045
  {
2446
3046
  d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z",
2447
- fill: chunk7BDGLRQX_cjs.FILE_TYPE_COLORS.generic,
2448
- stroke: chunk7BDGLRQX_cjs.FILE_TYPE_COLORS.generic,
3047
+ fill: chunkZ5YCRJY3_cjs.FILE_TYPE_COLORS.generic,
3048
+ stroke: chunkZ5YCRJY3_cjs.FILE_TYPE_COLORS.generic,
2449
3049
  strokeWidth: "1",
2450
3050
  strokeLinecap: "round",
2451
3051
  strokeLinejoin: "round"
@@ -2456,7 +3056,7 @@ var FileIcon = ({ size = 16, className = "" }) => {
2456
3056
  {
2457
3057
  d: "M14 2v6h6",
2458
3058
  fill: "none",
2459
- stroke: chunk7BDGLRQX_cjs.FILE_TYPE_COLORS.white,
3059
+ stroke: chunkZ5YCRJY3_cjs.FILE_TYPE_COLORS.white,
2460
3060
  strokeWidth: "1",
2461
3061
  strokeLinecap: "round",
2462
3062
  strokeLinejoin: "round"
@@ -2812,7 +3412,7 @@ var ArbiBotIcon = ({ size = 24, className = "" }) => {
2812
3412
  );
2813
3413
  };
2814
3414
  function getNotificationTypeMeta(type) {
2815
- const WorkspaceIcon = chunk7BDGLRQX_cjs.getEntityIcon("WORKSPACE");
3415
+ const WorkspaceIcon = chunkZ5YCRJY3_cjs.getEntityIcon("WORKSPACE");
2816
3416
  switch (type) {
2817
3417
  case "user_message":
2818
3418
  return { Icon: lucideReact.MessageCircleMore, iconClassName: "text-primary", label: "Message" };
@@ -2927,7 +3527,7 @@ function describeActivity(content) {
2927
3527
  }
2928
3528
  default:
2929
3529
  return {
2930
- Icon: parsed.workspace_ext_id ? chunk7BDGLRQX_cjs.getEntityIcon("WORKSPACE") : lucideReact.Activity,
3530
+ Icon: parsed.workspace_ext_id ? chunkZ5YCRJY3_cjs.getEntityIcon("WORKSPACE") : lucideReact.Activity,
2931
3531
  iconClassName: "text-muted-foreground",
2932
3532
  title: humaniseEvent(parsed.event)
2933
3533
  };
@@ -2957,7 +3557,7 @@ function ActivityFeed({
2957
3557
  enabled,
2958
3558
  "data-testid": testId = "activity-feed"
2959
3559
  }) {
2960
- const { data, isLoading, isError } = chunk2DXS7L7M_cjs.useActivity({ limit, enabled });
3560
+ const { data, isLoading, isError } = chunkCBJ3WOGD_cjs.useActivity({ limit, enabled });
2961
3561
  if (isLoading) {
2962
3562
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkS6A6FSG7_cjs.cn("space-y-2", className), "data-testid": testId, "aria-busy": "true", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 py-1.5", children: [
2963
3563
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-4 w-4 shrink-0 animate-pulse rounded-full bg-muted" }),
@@ -3081,7 +3681,7 @@ function useDirectMessages(options) {
3081
3681
  enabled
3082
3682
  });
3083
3683
  const contactsQuery = reactQuery.useQuery({
3084
- queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.contacts(),
3684
+ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.contacts(),
3085
3685
  queryFn: () => arbi.contacts.list(),
3086
3686
  enabled
3087
3687
  });
@@ -3143,7 +3743,7 @@ function DmAvatar({ user, className, size = "lg" }) {
3143
3743
  const presence = useArbiWsStore((s) => s.presence[user.external_id]);
3144
3744
  const displayStatus = presence === void 0 ? void 0 : presence === "online" ? "connected" : "disconnected";
3145
3745
  return /* @__PURE__ */ jsxRuntime.jsx(
3146
- chunk7BDGLRQX_cjs.UserEntity,
3746
+ chunkZ5YCRJY3_cjs.UserEntity,
3147
3747
  {
3148
3748
  variant: "icon",
3149
3749
  size,
@@ -3153,7 +3753,7 @@ function DmAvatar({ user, className, size = "lg" }) {
3153
3753
  initials: userInitials(user),
3154
3754
  displayName: userDisplayName(user),
3155
3755
  picture: user.picture,
3156
- avatarStyle: chunk7BDGLRQX_cjs.getEntityColorStyles(user.external_id),
3756
+ avatarStyle: chunkZ5YCRJY3_cjs.getEntityColorStyles(user.external_id),
3157
3757
  isAgent: isAgentUser(user),
3158
3758
  displayStatus
3159
3759
  }
@@ -3208,10 +3808,10 @@ function ConversationList({
3208
3808
  children: userDisplayName(peer)
3209
3809
  }
3210
3810
  ),
3211
- c.badge ?? (isAgentUser(peer) ? /* @__PURE__ */ jsxRuntime.jsx(chunk7BDGLRQX_cjs.AgentBadge, {}) : null)
3811
+ c.badge ?? (isAgentUser(peer) ? /* @__PURE__ */ jsxRuntime.jsx(chunkZ5YCRJY3_cjs.AgentBadge, {}) : null)
3212
3812
  ] }),
3213
3813
  c.statusLabel ? /* @__PURE__ */ jsxRuntime.jsx(
3214
- chunk7BDGLRQX_cjs.Badge,
3814
+ chunkZ5YCRJY3_cjs.Badge,
3215
3815
  {
3216
3816
  variant: "outline",
3217
3817
  className: "shrink-0 rounded-full px-2 py-0 text-xs font-medium text-muted-foreground",
@@ -3222,7 +3822,7 @@ function ConversationList({
3222
3822
  // shouted louder than the message it was counting.
3223
3823
  // Enough to catch the eye scanning the list, no more.
3224
3824
  /* @__PURE__ */ jsxRuntime.jsx(
3225
- chunk7BDGLRQX_cjs.Badge,
3825
+ chunkZ5YCRJY3_cjs.Badge,
3226
3826
  {
3227
3827
  variant: "accent",
3228
3828
  className: chunkS6A6FSG7_cjs.cn(
@@ -3441,7 +4041,7 @@ function DmComposer({
3441
4041
  children,
3442
4042
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-end gap-2", children: [
3443
4043
  /* @__PURE__ */ jsxRuntime.jsx(
3444
- chunk7BDGLRQX_cjs.Textarea,
4044
+ chunkZ5YCRJY3_cjs.Textarea,
3445
4045
  {
3446
4046
  ref: inputRef,
3447
4047
  value: draft,
@@ -3455,7 +4055,7 @@ function DmComposer({
3455
4055
  }
3456
4056
  ),
3457
4057
  /* @__PURE__ */ jsxRuntime.jsxs(
3458
- chunk7BDGLRQX_cjs.Button,
4058
+ chunkZ5YCRJY3_cjs.Button,
3459
4059
  {
3460
4060
  type: "button",
3461
4061
  onClick: () => void submit(),
@@ -3523,9 +4123,9 @@ function StartByEmail({
3523
4123
  void submit();
3524
4124
  },
3525
4125
  children: [
3526
- /* @__PURE__ */ jsxRuntime.jsx(chunk7BDGLRQX_cjs.Label, { htmlFor: `${uid}-email`, children: l.email }),
4126
+ /* @__PURE__ */ jsxRuntime.jsx(chunkZ5YCRJY3_cjs.Label, { htmlFor: `${uid}-email`, children: l.email }),
3527
4127
  /* @__PURE__ */ jsxRuntime.jsx(
3528
- chunk7BDGLRQX_cjs.Input,
4128
+ chunkZ5YCRJY3_cjs.Input,
3529
4129
  {
3530
4130
  id: `${uid}-email`,
3531
4131
  type: "email",
@@ -3539,9 +4139,9 @@ function StartByEmail({
3539
4139
  }
3540
4140
  ),
3541
4141
  email !== "" && !valid && /* @__PURE__ */ jsxRuntime.jsx("p", { id: `${uid}-bad`, className: "text-xs text-destructive", children: l.invalidEmail }),
3542
- /* @__PURE__ */ jsxRuntime.jsx(chunk7BDGLRQX_cjs.Label, { htmlFor: `${uid}-text`, children: l.message }),
4142
+ /* @__PURE__ */ jsxRuntime.jsx(chunkZ5YCRJY3_cjs.Label, { htmlFor: `${uid}-text`, children: l.message }),
3543
4143
  /* @__PURE__ */ jsxRuntime.jsx(
3544
- chunk7BDGLRQX_cjs.Textarea,
4144
+ chunkZ5YCRJY3_cjs.Textarea,
3545
4145
  {
3546
4146
  id: `${uid}-text`,
3547
4147
  value: text,
@@ -3554,7 +4154,7 @@ function StartByEmail({
3554
4154
  ),
3555
4155
  error && /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "text-xs text-destructive", "data-testid": "arbi-dm-start-error", children: error }),
3556
4156
  /* @__PURE__ */ jsxRuntime.jsxs(
3557
- chunk7BDGLRQX_cjs.Button,
4157
+ chunkZ5YCRJY3_cjs.Button,
3558
4158
  {
3559
4159
  type: "submit",
3560
4160
  size: "sm",
@@ -3744,7 +4344,7 @@ function ImageCropper({
3744
4344
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
3745
4345
  /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-xs font-semibold uppercase tracking-wider text-muted-foreground", children: "Zoom" }),
3746
4346
  /* @__PURE__ */ jsxRuntime.jsx(
3747
- chunk7BDGLRQX_cjs.Slider,
4347
+ chunkZ5YCRJY3_cjs.Slider,
3748
4348
  {
3749
4349
  value: [zoom],
3750
4350
  onValueChange: ([v]) => setZoom(v ?? 1),
@@ -3821,8 +4421,8 @@ function ImageCropModal({
3821
4421
  setBusy(false);
3822
4422
  }
3823
4423
  };
3824
- return /* @__PURE__ */ jsxRuntime.jsx(chunk7BDGLRQX_cjs.Dialog, { open, onOpenChange: (next) => !next ? onCancel() : void 0, children: /* @__PURE__ */ jsxRuntime.jsxs(chunk7BDGLRQX_cjs.DialogContent, { className: "sm:max-w-md", "data-testid": "image-crop-modal", children: [
3825
- /* @__PURE__ */ jsxRuntime.jsx(chunk7BDGLRQX_cjs.DialogHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(chunk7BDGLRQX_cjs.DialogTitle, { children: title }) }),
4424
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkZ5YCRJY3_cjs.Dialog, { open, onOpenChange: (next) => !next ? onCancel() : void 0, children: /* @__PURE__ */ jsxRuntime.jsxs(chunkZ5YCRJY3_cjs.DialogContent, { className: "sm:max-w-md", "data-testid": "image-crop-modal", children: [
4425
+ /* @__PURE__ */ jsxRuntime.jsx(chunkZ5YCRJY3_cjs.DialogHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkZ5YCRJY3_cjs.DialogTitle, { children: title }) }),
3826
4426
  image ? /* @__PURE__ */ jsxRuntime.jsx(
3827
4427
  ImageCropper,
3828
4428
  {
@@ -3833,9 +4433,9 @@ function ImageCropModal({
3833
4433
  onCropComplete: setArea
3834
4434
  }
3835
4435
  ) : null,
3836
- /* @__PURE__ */ jsxRuntime.jsxs(chunk7BDGLRQX_cjs.DialogFooter, { className: "gap-2 sm:gap-2", children: [
3837
- /* @__PURE__ */ jsxRuntime.jsx(chunk7BDGLRQX_cjs.Button, { variant: "ghost", onClick: onCancel, disabled: busy, children: "Cancel" }),
3838
- /* @__PURE__ */ jsxRuntime.jsxs(chunk7BDGLRQX_cjs.Button, { onClick: handleSave, disabled: !area || busy, "data-testid": "image-crop-save", children: [
4436
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkZ5YCRJY3_cjs.DialogFooter, { className: "gap-2 sm:gap-2", children: [
4437
+ /* @__PURE__ */ jsxRuntime.jsx(chunkZ5YCRJY3_cjs.Button, { variant: "ghost", onClick: onCancel, disabled: busy, children: "Cancel" }),
4438
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkZ5YCRJY3_cjs.Button, { onClick: handleSave, disabled: !area || busy, "data-testid": "image-crop-save", children: [
3839
4439
  busy ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "mr-1 size-4 animate-spin" }) : null,
3840
4440
  saveLabel
3841
4441
  ] })
@@ -3901,8 +4501,8 @@ function CommandPalette({
3901
4501
  if (!q || task.isRunning) return;
3902
4502
  void task.run(buildAskPrompt(q), askDocIds, { model });
3903
4503
  };
3904
- return /* @__PURE__ */ jsxRuntime.jsx(chunk7BDGLRQX_cjs.Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsxs(
3905
- chunk7BDGLRQX_cjs.DialogContent,
4504
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkZ5YCRJY3_cjs.Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsxs(
4505
+ chunkZ5YCRJY3_cjs.DialogContent,
3906
4506
  {
3907
4507
  className: chunkS6A6FSG7_cjs.cn(
3908
4508
  "top-[12%] max-w-2xl translate-y-0 gap-0 overflow-hidden p-0",
@@ -3910,7 +4510,7 @@ function CommandPalette({
3910
4510
  ),
3911
4511
  "data-testid": testId,
3912
4512
  children: [
3913
- /* @__PURE__ */ jsxRuntime.jsx(chunk7BDGLRQX_cjs.DialogTitle, { className: "sr-only", children: "Command palette" }),
4513
+ /* @__PURE__ */ jsxRuntime.jsx(chunkZ5YCRJY3_cjs.DialogTitle, { className: "sr-only", children: "Command palette" }),
3914
4514
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 border-b border-border px-4", children: [
3915
4515
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: chunkS6A6FSG7_cjs.cn("size-4 shrink-0 text-ai-accent", classNames?.leadingIcon) }),
3916
4516
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -3981,7 +4581,7 @@ function CommandPalette({
3981
4581
  }
3982
4582
  ),
3983
4583
  task.isDone && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3 flex justify-end", children: /* @__PURE__ */ jsxRuntime.jsx(
3984
- chunk7BDGLRQX_cjs.Button,
4584
+ chunkZ5YCRJY3_cjs.Button,
3985
4585
  {
3986
4586
  variant: "outline",
3987
4587
  size: "sm",
@@ -4116,10 +4716,10 @@ function DocumentTable({
4116
4716
  extraColumns,
4117
4717
  className
4118
4718
  }) {
4119
- const query = chunk2DXS7L7M_cjs.useDocuments(workspaceId, { enabled: !documents });
4719
+ const query = chunkCBJ3WOGD_cjs.useDocuments(workspaceId, { enabled: !documents });
4120
4720
  const rows = documents ?? query.data ?? [];
4121
4721
  const isLoading = !documents && query.isLoading;
4122
- const tagsQuery = chunk2DXS7L7M_cjs.useTags(workspaceId);
4722
+ const tagsQuery = chunkCBJ3WOGD_cjs.useTags(workspaceId);
4123
4723
  const tagNameById = React__default.default.useMemo(() => {
4124
4724
  const map = /* @__PURE__ */ new Map();
4125
4725
  for (const t of tagsQuery.data ?? []) {
@@ -4179,7 +4779,7 @@ function DocumentTable({
4179
4779
  const doc = p.data;
4180
4780
  if (!doc) return null;
4181
4781
  return /* @__PURE__ */ jsxRuntime.jsx(
4182
- chunk7BDGLRQX_cjs.DocumentEntity,
4782
+ chunkZ5YCRJY3_cjs.DocumentEntity,
4183
4783
  {
4184
4784
  doc,
4185
4785
  size: "base",
@@ -4202,7 +4802,7 @@ function DocumentTable({
4202
4802
  cellRenderer: (p) => {
4203
4803
  const status = p.data?.status;
4204
4804
  if (!status) return null;
4205
- return /* @__PURE__ */ jsxRuntime.jsx(chunk7BDGLRQX_cjs.Badge, { variant: STATUS_VARIANTS[status.toLowerCase()] ?? "secondary", children: status });
4805
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkZ5YCRJY3_cjs.Badge, { variant: STATUS_VARIANTS[status.toLowerCase()] ?? "secondary", children: status });
4206
4806
  }
4207
4807
  },
4208
4808
  {
@@ -4216,7 +4816,7 @@ function DocumentTable({
4216
4816
  const doctags = p.data?.doctags ?? [];
4217
4817
  if (doctags.length === 0) return null;
4218
4818
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap items-center gap-1 py-1", children: doctags.map((dt) => /* @__PURE__ */ jsxRuntime.jsx(
4219
- chunk7BDGLRQX_cjs.TagEntity,
4819
+ chunkZ5YCRJY3_cjs.TagEntity,
4220
4820
  {
4221
4821
  size: "sm",
4222
4822
  tag: {
@@ -4300,7 +4900,7 @@ function DocumentCardMenu({
4300
4900
  const invalidateDocuments = () => {
4301
4901
  const workspaceId = arbi.getWorkspaceId();
4302
4902
  if (workspaceId) {
4303
- void queryClient.invalidateQueries({ queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.documents(workspaceId) });
4903
+ void queryClient.invalidateQueries({ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.documents(workspaceId) });
4304
4904
  }
4305
4905
  };
4306
4906
  const download = reactQuery.useMutation({
@@ -4399,10 +4999,10 @@ function DocumentGallery({
4399
4999
  minTileWidth = 148,
4400
5000
  className
4401
5001
  }) {
4402
- const query = chunk2DXS7L7M_cjs.useDocuments(workspaceId, { enabled: !documents });
5002
+ const query = chunkCBJ3WOGD_cjs.useDocuments(workspaceId, { enabled: !documents });
4403
5003
  const rows = documents ?? query.data ?? [];
4404
5004
  const isLoading = !documents && query.isLoading;
4405
- const tagsQuery = chunk2DXS7L7M_cjs.useTags(workspaceId);
5005
+ const tagsQuery = chunkCBJ3WOGD_cjs.useTags(workspaceId);
4406
5006
  const tagNameById = React__default.default.useMemo(() => {
4407
5007
  const map = /* @__PURE__ */ new Map();
4408
5008
  for (const t of tagsQuery.data ?? []) {
@@ -4414,7 +5014,7 @@ function DocumentGallery({
4414
5014
  () => rows.map((d) => d.external_id).filter((id) => !!id),
4415
5015
  [rows]
4416
5016
  );
4417
- const thumbsQuery = chunk2DXS7L7M_cjs.useThumbnails(docIds);
5017
+ const thumbsQuery = chunkCBJ3WOGD_cjs.useThumbnails(docIds);
4418
5018
  const thumbs = thumbsQuery.data ?? {};
4419
5019
  const storeSelected = useArbiUiStore((s) => s.selectedDocIds);
4420
5020
  const storeSetSelected = useArbiUiStore((s) => s.setSelectedDocIds);
@@ -4450,7 +5050,7 @@ function DocumentGallery({
4450
5050
  setRenamingId(null);
4451
5051
  const activeWorkspace = workspaceId ?? arbi.getWorkspaceId();
4452
5052
  if (activeWorkspace) {
4453
- void queryClient.invalidateQueries({ queryKey: chunk2DXS7L7M_cjs.arbiQueryKeys.documents(activeWorkspace) });
5053
+ void queryClient.invalidateQueries({ queryKey: chunkCBJ3WOGD_cjs.arbiQueryKeys.documents(activeWorkspace) });
4454
5054
  }
4455
5055
  }
4456
5056
  });
@@ -4492,7 +5092,7 @@ function DocumentGallery({
4492
5092
  (dt) => tagNameById.get(dt.tag_ext_id) ?? dt.tag_ext_id.slice(0, 8)
4493
5093
  );
4494
5094
  return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-doc-id": id, "data-testid": "document-gallery-card", children: /* @__PURE__ */ jsxRuntime.jsx(
4495
- chunk7BDGLRQX_cjs.DocumentCard,
5095
+ chunkZ5YCRJY3_cjs.DocumentCard,
4496
5096
  {
4497
5097
  doc,
4498
5098
  thumbnailUrl: thumbs[id],
@@ -4529,7 +5129,7 @@ function VoiceNoteRecorder({
4529
5129
  isSaving = false,
4530
5130
  transcribe
4531
5131
  }) {
4532
- const recorder = chunk7BDGLRQX_cjs.useAudioRecorder();
5132
+ const recorder = chunkZ5YCRJY3_cjs.useAudioRecorder();
4533
5133
  const [transcript, setTranscript] = React.useState(null);
4534
5134
  const [isTranscribing, setIsTranscribing] = React.useState(false);
4535
5135
  React.useEffect(() => {
@@ -4561,7 +5161,7 @@ function VoiceNoteRecorder({
4561
5161
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-6 p-8", children: [
4562
5162
  recorder.state === "idle" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4563
5163
  /* @__PURE__ */ jsxRuntime.jsx(
4564
- chunk7BDGLRQX_cjs.Button,
5164
+ chunkZ5YCRJY3_cjs.Button,
4565
5165
  {
4566
5166
  type: "button",
4567
5167
  size: "lg",
@@ -4575,7 +5175,7 @@ function VoiceNoteRecorder({
4575
5175
  ] }),
4576
5176
  (recorder.state === "recording" || recorder.state === "paused") && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4577
5177
  /* @__PURE__ */ jsxRuntime.jsx(
4578
- chunk7BDGLRQX_cjs.MicWaveformIndicator,
5178
+ chunkZ5YCRJY3_cjs.MicWaveformIndicator,
4579
5179
  {
4580
5180
  level: recorder.level,
4581
5181
  elapsedMs: recorder.elapsedMs,
@@ -4584,7 +5184,7 @@ function VoiceNoteRecorder({
4584
5184
  ),
4585
5185
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
4586
5186
  recorder.state === "recording" ? /* @__PURE__ */ jsxRuntime.jsxs(
4587
- chunk7BDGLRQX_cjs.Button,
5187
+ chunkZ5YCRJY3_cjs.Button,
4588
5188
  {
4589
5189
  type: "button",
4590
5190
  variant: "outline",
@@ -4596,7 +5196,7 @@ function VoiceNoteRecorder({
4596
5196
  ]
4597
5197
  }
4598
5198
  ) : /* @__PURE__ */ jsxRuntime.jsxs(
4599
- chunk7BDGLRQX_cjs.Button,
5199
+ chunkZ5YCRJY3_cjs.Button,
4600
5200
  {
4601
5201
  type: "button",
4602
5202
  variant: "outline",
@@ -4608,7 +5208,7 @@ function VoiceNoteRecorder({
4608
5208
  ]
4609
5209
  }
4610
5210
  ),
4611
- /* @__PURE__ */ jsxRuntime.jsxs(chunk7BDGLRQX_cjs.Button, { type: "button", onClick: recorder.stop, "data-testid": "voice-note-stop-button", children: [
5211
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkZ5YCRJY3_cjs.Button, { type: "button", onClick: recorder.stop, "data-testid": "voice-note-stop-button", children: [
4612
5212
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "mr-1.5 h-3.5 w-3.5 fill-current" }),
4613
5213
  "Stop"
4614
5214
  ] })
@@ -4632,7 +5232,7 @@ function VoiceNoteRecorder({
4632
5232
  ),
4633
5233
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
4634
5234
  /* @__PURE__ */ jsxRuntime.jsxs(
4635
- chunk7BDGLRQX_cjs.Button,
5235
+ chunkZ5YCRJY3_cjs.Button,
4636
5236
  {
4637
5237
  type: "button",
4638
5238
  variant: "outline",
@@ -4646,7 +5246,7 @@ function VoiceNoteRecorder({
4646
5246
  }
4647
5247
  ),
4648
5248
  /* @__PURE__ */ jsxRuntime.jsxs(
4649
- chunk7BDGLRQX_cjs.Button,
5249
+ chunkZ5YCRJY3_cjs.Button,
4650
5250
  {
4651
5251
  type: "button",
4652
5252
  variant: "outline",
@@ -4660,7 +5260,7 @@ function VoiceNoteRecorder({
4660
5260
  }
4661
5261
  ),
4662
5262
  /* @__PURE__ */ jsxRuntime.jsxs(
4663
- chunk7BDGLRQX_cjs.Button,
5263
+ chunkZ5YCRJY3_cjs.Button,
4664
5264
  {
4665
5265
  type: "button",
4666
5266
  onClick: handleSave,
@@ -4697,7 +5297,7 @@ function DraftTitleControls({
4697
5297
  }
4698
5298
  ),
4699
5299
  /* @__PURE__ */ jsxRuntime.jsx(
4700
- chunk7BDGLRQX_cjs.IconToggle,
5300
+ chunkZ5YCRJY3_cjs.IconToggle,
4701
5301
  {
4702
5302
  icon: lucideReact.Sparkles,
4703
5303
  isActive: autoRename,
@@ -4731,7 +5331,7 @@ function useCameraStream(constraints = { video: true, audio: false }) {
4731
5331
  streamRef.current = media;
4732
5332
  setStream(media);
4733
5333
  } catch (err) {
4734
- setError(chunk7BDGLRQX_cjs.classifyMediaError(err, "camera"));
5334
+ setError(chunkZ5YCRJY3_cjs.classifyMediaError(err, "camera"));
4735
5335
  } finally {
4736
5336
  setIsStarting(false);
4737
5337
  }
@@ -4862,7 +5462,7 @@ function PhotoCapture({ onSave, onDiscard, onError, isSaving = false }) {
4862
5462
  }
4863
5463
  ) }),
4864
5464
  /* @__PURE__ */ jsxRuntime.jsx(
4865
- chunk7BDGLRQX_cjs.Button,
5465
+ chunkZ5YCRJY3_cjs.Button,
4866
5466
  {
4867
5467
  type: "button",
4868
5468
  size: "lg",
@@ -4880,7 +5480,7 @@ function PhotoCapture({ onSave, onDiscard, onError, isSaving = false }) {
4880
5480
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-md", children: /* @__PURE__ */ jsxRuntime.jsx(chunkTMPDW7J5_cjs.ImageViewer, { blob: capturedBlob, alt: "Captured photo" }) }),
4881
5481
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
4882
5482
  /* @__PURE__ */ jsxRuntime.jsxs(
4883
- chunk7BDGLRQX_cjs.Button,
5483
+ chunkZ5YCRJY3_cjs.Button,
4884
5484
  {
4885
5485
  type: "button",
4886
5486
  variant: "outline",
@@ -4894,7 +5494,7 @@ function PhotoCapture({ onSave, onDiscard, onError, isSaving = false }) {
4894
5494
  }
4895
5495
  ),
4896
5496
  /* @__PURE__ */ jsxRuntime.jsxs(
4897
- chunk7BDGLRQX_cjs.Button,
5497
+ chunkZ5YCRJY3_cjs.Button,
4898
5498
  {
4899
5499
  type: "button",
4900
5500
  variant: "outline",
@@ -4908,7 +5508,7 @@ function PhotoCapture({ onSave, onDiscard, onError, isSaving = false }) {
4908
5508
  }
4909
5509
  ),
4910
5510
  /* @__PURE__ */ jsxRuntime.jsxs(
4911
- chunk7BDGLRQX_cjs.Button,
5511
+ chunkZ5YCRJY3_cjs.Button,
4912
5512
  {
4913
5513
  type: "button",
4914
5514
  onClick: handleSave,
@@ -4967,10 +5567,10 @@ function VideoCapture({ onSave, onDiscard, onError, isSaving = false }) {
4967
5567
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "relative inline-flex h-2 w-2 rounded-full bg-red-500" })
4968
5568
  ] }),
4969
5569
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-semibold uppercase tracking-wide text-red-500", children: "Rec" }),
4970
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-xs tabular-nums text-muted-foreground", children: chunk7BDGLRQX_cjs.formatElapsed(recorder.elapsedMs) })
5570
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-xs tabular-nums text-muted-foreground", children: chunkZ5YCRJY3_cjs.formatElapsed(recorder.elapsedMs) })
4971
5571
  ] }),
4972
5572
  recorder.state === "recording" ? /* @__PURE__ */ jsxRuntime.jsx(
4973
- chunk7BDGLRQX_cjs.Button,
5573
+ chunkZ5YCRJY3_cjs.Button,
4974
5574
  {
4975
5575
  type: "button",
4976
5576
  size: "lg",
@@ -4980,7 +5580,7 @@ function VideoCapture({ onSave, onDiscard, onError, isSaving = false }) {
4980
5580
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "h-5 w-5 fill-current" })
4981
5581
  }
4982
5582
  ) : /* @__PURE__ */ jsxRuntime.jsx(
4983
- chunk7BDGLRQX_cjs.Button,
5583
+ chunkZ5YCRJY3_cjs.Button,
4984
5584
  {
4985
5585
  type: "button",
4986
5586
  size: "lg",
@@ -4997,7 +5597,7 @@ function VideoCapture({ onSave, onDiscard, onError, isSaving = false }) {
4997
5597
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-md", children: /* @__PURE__ */ jsxRuntime.jsx(chunkTMPDW7J5_cjs.VideoViewer, { blob: recorder.blob, title: "Captured video" }) }),
4998
5598
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
4999
5599
  /* @__PURE__ */ jsxRuntime.jsxs(
5000
- chunk7BDGLRQX_cjs.Button,
5600
+ chunkZ5YCRJY3_cjs.Button,
5001
5601
  {
5002
5602
  type: "button",
5003
5603
  variant: "outline",
@@ -5011,7 +5611,7 @@ function VideoCapture({ onSave, onDiscard, onError, isSaving = false }) {
5011
5611
  }
5012
5612
  ),
5013
5613
  /* @__PURE__ */ jsxRuntime.jsxs(
5014
- chunk7BDGLRQX_cjs.Button,
5614
+ chunkZ5YCRJY3_cjs.Button,
5015
5615
  {
5016
5616
  type: "button",
5017
5617
  variant: "outline",
@@ -5025,7 +5625,7 @@ function VideoCapture({ onSave, onDiscard, onError, isSaving = false }) {
5025
5625
  }
5026
5626
  ),
5027
5627
  /* @__PURE__ */ jsxRuntime.jsxs(
5028
- chunk7BDGLRQX_cjs.Button,
5628
+ chunkZ5YCRJY3_cjs.Button,
5029
5629
  {
5030
5630
  type: "button",
5031
5631
  onClick: handleSave,
@@ -5068,691 +5668,699 @@ function hasVideoTrack(blob) {
5068
5668
 
5069
5669
  Object.defineProperty(exports, "DEFAULT_USD_PER_CREDIT", {
5070
5670
  enumerable: true,
5071
- get: function () { return chunk2DXS7L7M_cjs.DEFAULT_USD_PER_CREDIT; }
5671
+ get: function () { return chunkCBJ3WOGD_cjs.DEFAULT_USD_PER_CREDIT; }
5072
5672
  });
5073
5673
  Object.defineProperty(exports, "arbiQueryKeys", {
5074
5674
  enumerable: true,
5075
- get: function () { return chunk2DXS7L7M_cjs.arbiQueryKeys; }
5675
+ get: function () { return chunkCBJ3WOGD_cjs.arbiQueryKeys; }
5076
5676
  });
5077
5677
  Object.defineProperty(exports, "creditsToUsd", {
5078
5678
  enumerable: true,
5079
- get: function () { return chunk2DXS7L7M_cjs.creditsToUsd; }
5679
+ get: function () { return chunkCBJ3WOGD_cjs.creditsToUsd; }
5080
5680
  });
5081
5681
  Object.defineProperty(exports, "formatCredits", {
5082
5682
  enumerable: true,
5083
- get: function () { return chunk2DXS7L7M_cjs.formatCredits; }
5683
+ get: function () { return chunkCBJ3WOGD_cjs.formatCredits; }
5084
5684
  });
5085
5685
  Object.defineProperty(exports, "isUsageMetered", {
5086
5686
  enumerable: true,
5087
- get: function () { return chunk2DXS7L7M_cjs.isUsageMetered; }
5687
+ get: function () { return chunkCBJ3WOGD_cjs.isUsageMetered; }
5088
5688
  });
5089
5689
  Object.defineProperty(exports, "useActivity", {
5090
5690
  enumerable: true,
5091
- get: function () { return chunk2DXS7L7M_cjs.useActivity; }
5691
+ get: function () { return chunkCBJ3WOGD_cjs.useActivity; }
5092
5692
  });
5093
5693
  Object.defineProperty(exports, "useAgents", {
5094
5694
  enumerable: true,
5095
- get: function () { return chunk2DXS7L7M_cjs.useAgents; }
5695
+ get: function () { return chunkCBJ3WOGD_cjs.useAgents; }
5096
5696
  });
5097
5697
  Object.defineProperty(exports, "useAssistantQuery", {
5098
5698
  enumerable: true,
5099
- get: function () { return chunk2DXS7L7M_cjs.useAssistantQuery; }
5699
+ get: function () { return chunkCBJ3WOGD_cjs.useAssistantQuery; }
5100
5700
  });
5101
5701
  Object.defineProperty(exports, "useConfigs", {
5102
5702
  enumerable: true,
5103
- get: function () { return chunk2DXS7L7M_cjs.useConfigs; }
5703
+ get: function () { return chunkCBJ3WOGD_cjs.useConfigs; }
5704
+ });
5705
+ Object.defineProperty(exports, "useConversationThreads", {
5706
+ enumerable: true,
5707
+ get: function () { return chunkCBJ3WOGD_cjs.useConversationThreads; }
5104
5708
  });
5105
5709
  Object.defineProperty(exports, "useConversations", {
5106
5710
  enumerable: true,
5107
- get: function () { return chunk2DXS7L7M_cjs.useConversations; }
5711
+ get: function () { return chunkCBJ3WOGD_cjs.useConversations; }
5108
5712
  });
5109
5713
  Object.defineProperty(exports, "useDeleteAgents", {
5110
5714
  enumerable: true,
5111
- get: function () { return chunk2DXS7L7M_cjs.useDeleteAgents; }
5715
+ get: function () { return chunkCBJ3WOGD_cjs.useDeleteAgents; }
5112
5716
  });
5113
5717
  Object.defineProperty(exports, "useDocuments", {
5114
5718
  enumerable: true,
5115
- get: function () { return chunk2DXS7L7M_cjs.useDocuments; }
5719
+ get: function () { return chunkCBJ3WOGD_cjs.useDocuments; }
5116
5720
  });
5117
5721
  Object.defineProperty(exports, "useFacts", {
5118
5722
  enumerable: true,
5119
- get: function () { return chunk2DXS7L7M_cjs.useFacts; }
5723
+ get: function () { return chunkCBJ3WOGD_cjs.useFacts; }
5120
5724
  });
5121
5725
  Object.defineProperty(exports, "useHealth", {
5122
5726
  enumerable: true,
5123
- get: function () { return chunk2DXS7L7M_cjs.useHealth; }
5727
+ get: function () { return chunkCBJ3WOGD_cjs.useHealth; }
5124
5728
  });
5125
5729
  Object.defineProperty(exports, "useParsedDocument", {
5126
5730
  enumerable: true,
5127
- get: function () { return chunk2DXS7L7M_cjs.useParsedDocument; }
5731
+ get: function () { return chunkCBJ3WOGD_cjs.useParsedDocument; }
5128
5732
  });
5129
5733
  Object.defineProperty(exports, "useProjectInvoices", {
5130
5734
  enumerable: true,
5131
- get: function () { return chunk2DXS7L7M_cjs.useProjectInvoices; }
5735
+ get: function () { return chunkCBJ3WOGD_cjs.useProjectInvoices; }
5132
5736
  });
5133
5737
  Object.defineProperty(exports, "useProjectUsage", {
5134
5738
  enumerable: true,
5135
- get: function () { return chunk2DXS7L7M_cjs.useProjectUsage; }
5739
+ get: function () { return chunkCBJ3WOGD_cjs.useProjectUsage; }
5136
5740
  });
5137
5741
  Object.defineProperty(exports, "useProjects", {
5138
5742
  enumerable: true,
5139
- get: function () { return chunk2DXS7L7M_cjs.useProjects; }
5743
+ get: function () { return chunkCBJ3WOGD_cjs.useProjects; }
5140
5744
  });
5141
5745
  Object.defineProperty(exports, "useProjectsUsage", {
5142
5746
  enumerable: true,
5143
- get: function () { return chunk2DXS7L7M_cjs.useProjectsUsage; }
5747
+ get: function () { return chunkCBJ3WOGD_cjs.useProjectsUsage; }
5144
5748
  });
5145
5749
  Object.defineProperty(exports, "useSessions", {
5146
5750
  enumerable: true,
5147
- get: function () { return chunk2DXS7L7M_cjs.useSessions; }
5751
+ get: function () { return chunkCBJ3WOGD_cjs.useSessions; }
5148
5752
  });
5149
5753
  Object.defineProperty(exports, "useTags", {
5150
5754
  enumerable: true,
5151
- get: function () { return chunk2DXS7L7M_cjs.useTags; }
5755
+ get: function () { return chunkCBJ3WOGD_cjs.useTags; }
5152
5756
  });
5153
5757
  Object.defineProperty(exports, "useTasks", {
5154
5758
  enumerable: true,
5155
- get: function () { return chunk2DXS7L7M_cjs.useTasks; }
5759
+ get: function () { return chunkCBJ3WOGD_cjs.useTasks; }
5156
5760
  });
5157
5761
  Object.defineProperty(exports, "useThumbnails", {
5158
5762
  enumerable: true,
5159
- get: function () { return chunk2DXS7L7M_cjs.useThumbnails; }
5763
+ get: function () { return chunkCBJ3WOGD_cjs.useThumbnails; }
5160
5764
  });
5161
5765
  Object.defineProperty(exports, "useUserUsageToday", {
5162
5766
  enumerable: true,
5163
- get: function () { return chunk2DXS7L7M_cjs.useUserUsageToday; }
5767
+ get: function () { return chunkCBJ3WOGD_cjs.useUserUsageToday; }
5164
5768
  });
5165
5769
  Object.defineProperty(exports, "useWorkspaces", {
5166
5770
  enumerable: true,
5167
- get: function () { return chunk2DXS7L7M_cjs.useWorkspaces; }
5168
- });
5169
- Object.defineProperty(exports, "DEFAULT_NOTIFY_TONE", {
5170
- enumerable: true,
5171
- get: function () { return chunkPGLV23SB_cjs.DEFAULT_NOTIFY_TONE; }
5172
- });
5173
- Object.defineProperty(exports, "NotificationBell", {
5174
- enumerable: true,
5175
- get: function () { return chunkPGLV23SB_cjs.NotificationBell; }
5176
- });
5177
- Object.defineProperty(exports, "Toaster", {
5178
- enumerable: true,
5179
- get: function () { return chunkPGLV23SB_cjs.Toaster; }
5180
- });
5181
- Object.defineProperty(exports, "formatRelativeTime", {
5182
- enumerable: true,
5183
- get: function () { return chunkPGLV23SB_cjs.formatRelativeTime; }
5184
- });
5185
- Object.defineProperty(exports, "notify", {
5186
- enumerable: true,
5187
- get: function () { return chunkPGLV23SB_cjs.notify; }
5188
- });
5189
- Object.defineProperty(exports, "seedNotifications", {
5190
- enumerable: true,
5191
- get: function () { return chunkPGLV23SB_cjs.seedNotifications; }
5192
- });
5193
- Object.defineProperty(exports, "selectUnread", {
5194
- enumerable: true,
5195
- get: function () { return chunkPGLV23SB_cjs.selectUnread; }
5196
- });
5197
- Object.defineProperty(exports, "toast", {
5198
- enumerable: true,
5199
- get: function () { return chunkPGLV23SB_cjs.toast; }
5200
- });
5201
- Object.defineProperty(exports, "useNotify", {
5202
- enumerable: true,
5203
- get: function () { return chunkPGLV23SB_cjs.useNotify; }
5771
+ get: function () { return chunkCBJ3WOGD_cjs.useWorkspaces; }
5204
5772
  });
5205
5773
  Object.defineProperty(exports, "AgentBadge", {
5206
5774
  enumerable: true,
5207
- get: function () { return chunk7BDGLRQX_cjs.AgentBadge; }
5775
+ get: function () { return chunkZ5YCRJY3_cjs.AgentBadge; }
5208
5776
  });
5209
5777
  Object.defineProperty(exports, "AiMarkdown", {
5210
5778
  enumerable: true,
5211
- get: function () { return chunk7BDGLRQX_cjs.AiMarkdown; }
5779
+ get: function () { return chunkZ5YCRJY3_cjs.AiMarkdown; }
5212
5780
  });
5213
5781
  Object.defineProperty(exports, "ArbiBotHeadIcon", {
5214
5782
  enumerable: true,
5215
- get: function () { return chunk7BDGLRQX_cjs.ArbiBotHeadIcon; }
5783
+ get: function () { return chunkZ5YCRJY3_cjs.ArbiBotHeadIcon; }
5216
5784
  });
5217
5785
  Object.defineProperty(exports, "AudIcon", {
5218
5786
  enumerable: true,
5219
- get: function () { return chunk7BDGLRQX_cjs.AudIcon; }
5787
+ get: function () { return chunkZ5YCRJY3_cjs.AudIcon; }
5220
5788
  });
5221
5789
  Object.defineProperty(exports, "Avatar", {
5222
5790
  enumerable: true,
5223
- get: function () { return chunk7BDGLRQX_cjs.Avatar; }
5791
+ get: function () { return chunkZ5YCRJY3_cjs.Avatar; }
5224
5792
  });
5225
5793
  Object.defineProperty(exports, "AvatarFallback", {
5226
5794
  enumerable: true,
5227
- get: function () { return chunk7BDGLRQX_cjs.AvatarFallback; }
5795
+ get: function () { return chunkZ5YCRJY3_cjs.AvatarFallback; }
5228
5796
  });
5229
5797
  Object.defineProperty(exports, "AvatarImage", {
5230
5798
  enumerable: true,
5231
- get: function () { return chunk7BDGLRQX_cjs.AvatarImage; }
5799
+ get: function () { return chunkZ5YCRJY3_cjs.AvatarImage; }
5232
5800
  });
5233
5801
  Object.defineProperty(exports, "BASE_COLORS", {
5234
5802
  enumerable: true,
5235
- get: function () { return chunk7BDGLRQX_cjs.BASE_COLORS; }
5803
+ get: function () { return chunkZ5YCRJY3_cjs.BASE_COLORS; }
5236
5804
  });
5237
5805
  Object.defineProperty(exports, "Badge", {
5238
5806
  enumerable: true,
5239
- get: function () { return chunk7BDGLRQX_cjs.Badge; }
5807
+ get: function () { return chunkZ5YCRJY3_cjs.Badge; }
5240
5808
  });
5241
5809
  Object.defineProperty(exports, "Button", {
5242
5810
  enumerable: true,
5243
- get: function () { return chunk7BDGLRQX_cjs.Button; }
5811
+ get: function () { return chunkZ5YCRJY3_cjs.Button; }
5244
5812
  });
5245
5813
  Object.defineProperty(exports, "Card", {
5246
5814
  enumerable: true,
5247
- get: function () { return chunk7BDGLRQX_cjs.Card; }
5815
+ get: function () { return chunkZ5YCRJY3_cjs.Card; }
5248
5816
  });
5249
5817
  Object.defineProperty(exports, "CardContent", {
5250
5818
  enumerable: true,
5251
- get: function () { return chunk7BDGLRQX_cjs.CardContent; }
5819
+ get: function () { return chunkZ5YCRJY3_cjs.CardContent; }
5252
5820
  });
5253
5821
  Object.defineProperty(exports, "CardDescription", {
5254
5822
  enumerable: true,
5255
- get: function () { return chunk7BDGLRQX_cjs.CardDescription; }
5823
+ get: function () { return chunkZ5YCRJY3_cjs.CardDescription; }
5256
5824
  });
5257
5825
  Object.defineProperty(exports, "CardFooter", {
5258
5826
  enumerable: true,
5259
- get: function () { return chunk7BDGLRQX_cjs.CardFooter; }
5827
+ get: function () { return chunkZ5YCRJY3_cjs.CardFooter; }
5260
5828
  });
5261
5829
  Object.defineProperty(exports, "CardHeader", {
5262
5830
  enumerable: true,
5263
- get: function () { return chunk7BDGLRQX_cjs.CardHeader; }
5831
+ get: function () { return chunkZ5YCRJY3_cjs.CardHeader; }
5264
5832
  });
5265
5833
  Object.defineProperty(exports, "CardTitle", {
5266
5834
  enumerable: true,
5267
- get: function () { return chunk7BDGLRQX_cjs.CardTitle; }
5835
+ get: function () { return chunkZ5YCRJY3_cjs.CardTitle; }
5268
5836
  });
5269
5837
  Object.defineProperty(exports, "Checkbox", {
5270
5838
  enumerable: true,
5271
- get: function () { return chunk7BDGLRQX_cjs.Checkbox; }
5839
+ get: function () { return chunkZ5YCRJY3_cjs.Checkbox; }
5272
5840
  });
5273
5841
  Object.defineProperty(exports, "Collapsible", {
5274
5842
  enumerable: true,
5275
- get: function () { return chunk7BDGLRQX_cjs.Collapsible; }
5843
+ get: function () { return chunkZ5YCRJY3_cjs.Collapsible; }
5276
5844
  });
5277
5845
  Object.defineProperty(exports, "CollapsibleContent", {
5278
5846
  enumerable: true,
5279
- get: function () { return chunk7BDGLRQX_cjs.CollapsibleContent; }
5847
+ get: function () { return chunkZ5YCRJY3_cjs.CollapsibleContent; }
5280
5848
  });
5281
5849
  Object.defineProperty(exports, "CollapsibleTrigger", {
5282
5850
  enumerable: true,
5283
- get: function () { return chunk7BDGLRQX_cjs.CollapsibleTrigger; }
5851
+ get: function () { return chunkZ5YCRJY3_cjs.CollapsibleTrigger; }
5284
5852
  });
5285
5853
  Object.defineProperty(exports, "Command", {
5286
5854
  enumerable: true,
5287
- get: function () { return chunk7BDGLRQX_cjs.Command; }
5855
+ get: function () { return chunkZ5YCRJY3_cjs.Command; }
5288
5856
  });
5289
5857
  Object.defineProperty(exports, "CommandDialog", {
5290
5858
  enumerable: true,
5291
- get: function () { return chunk7BDGLRQX_cjs.CommandDialog; }
5859
+ get: function () { return chunkZ5YCRJY3_cjs.CommandDialog; }
5292
5860
  });
5293
5861
  Object.defineProperty(exports, "CommandEmpty", {
5294
5862
  enumerable: true,
5295
- get: function () { return chunk7BDGLRQX_cjs.CommandEmpty; }
5863
+ get: function () { return chunkZ5YCRJY3_cjs.CommandEmpty; }
5296
5864
  });
5297
5865
  Object.defineProperty(exports, "CommandGroup", {
5298
5866
  enumerable: true,
5299
- get: function () { return chunk7BDGLRQX_cjs.CommandGroup; }
5867
+ get: function () { return chunkZ5YCRJY3_cjs.CommandGroup; }
5300
5868
  });
5301
5869
  Object.defineProperty(exports, "CommandInput", {
5302
5870
  enumerable: true,
5303
- get: function () { return chunk7BDGLRQX_cjs.CommandInput; }
5871
+ get: function () { return chunkZ5YCRJY3_cjs.CommandInput; }
5304
5872
  });
5305
5873
  Object.defineProperty(exports, "CommandItem", {
5306
5874
  enumerable: true,
5307
- get: function () { return chunk7BDGLRQX_cjs.CommandItem; }
5875
+ get: function () { return chunkZ5YCRJY3_cjs.CommandItem; }
5308
5876
  });
5309
5877
  Object.defineProperty(exports, "CommandList", {
5310
5878
  enumerable: true,
5311
- get: function () { return chunk7BDGLRQX_cjs.CommandList; }
5879
+ get: function () { return chunkZ5YCRJY3_cjs.CommandList; }
5312
5880
  });
5313
5881
  Object.defineProperty(exports, "CommandSeparator", {
5314
5882
  enumerable: true,
5315
- get: function () { return chunk7BDGLRQX_cjs.CommandSeparator; }
5883
+ get: function () { return chunkZ5YCRJY3_cjs.CommandSeparator; }
5316
5884
  });
5317
5885
  Object.defineProperty(exports, "CommandShortcut", {
5318
5886
  enumerable: true,
5319
- get: function () { return chunk7BDGLRQX_cjs.CommandShortcut; }
5887
+ get: function () { return chunkZ5YCRJY3_cjs.CommandShortcut; }
5320
5888
  });
5321
5889
  Object.defineProperty(exports, "Dialog", {
5322
5890
  enumerable: true,
5323
- get: function () { return chunk7BDGLRQX_cjs.Dialog; }
5891
+ get: function () { return chunkZ5YCRJY3_cjs.Dialog; }
5324
5892
  });
5325
5893
  Object.defineProperty(exports, "DialogClose", {
5326
5894
  enumerable: true,
5327
- get: function () { return chunk7BDGLRQX_cjs.DialogClose; }
5895
+ get: function () { return chunkZ5YCRJY3_cjs.DialogClose; }
5328
5896
  });
5329
5897
  Object.defineProperty(exports, "DialogContent", {
5330
5898
  enumerable: true,
5331
- get: function () { return chunk7BDGLRQX_cjs.DialogContent; }
5899
+ get: function () { return chunkZ5YCRJY3_cjs.DialogContent; }
5332
5900
  });
5333
5901
  Object.defineProperty(exports, "DialogDescription", {
5334
5902
  enumerable: true,
5335
- get: function () { return chunk7BDGLRQX_cjs.DialogDescription; }
5903
+ get: function () { return chunkZ5YCRJY3_cjs.DialogDescription; }
5336
5904
  });
5337
5905
  Object.defineProperty(exports, "DialogFooter", {
5338
5906
  enumerable: true,
5339
- get: function () { return chunk7BDGLRQX_cjs.DialogFooter; }
5907
+ get: function () { return chunkZ5YCRJY3_cjs.DialogFooter; }
5340
5908
  });
5341
5909
  Object.defineProperty(exports, "DialogHeader", {
5342
5910
  enumerable: true,
5343
- get: function () { return chunk7BDGLRQX_cjs.DialogHeader; }
5911
+ get: function () { return chunkZ5YCRJY3_cjs.DialogHeader; }
5344
5912
  });
5345
5913
  Object.defineProperty(exports, "DialogOverlay", {
5346
5914
  enumerable: true,
5347
- get: function () { return chunk7BDGLRQX_cjs.DialogOverlay; }
5915
+ get: function () { return chunkZ5YCRJY3_cjs.DialogOverlay; }
5348
5916
  });
5349
5917
  Object.defineProperty(exports, "DialogPortal", {
5350
5918
  enumerable: true,
5351
- get: function () { return chunk7BDGLRQX_cjs.DialogPortal; }
5919
+ get: function () { return chunkZ5YCRJY3_cjs.DialogPortal; }
5352
5920
  });
5353
5921
  Object.defineProperty(exports, "DialogTitle", {
5354
5922
  enumerable: true,
5355
- get: function () { return chunk7BDGLRQX_cjs.DialogTitle; }
5923
+ get: function () { return chunkZ5YCRJY3_cjs.DialogTitle; }
5356
5924
  });
5357
5925
  Object.defineProperty(exports, "DialogTrigger", {
5358
5926
  enumerable: true,
5359
- get: function () { return chunk7BDGLRQX_cjs.DialogTrigger; }
5927
+ get: function () { return chunkZ5YCRJY3_cjs.DialogTrigger; }
5360
5928
  });
5361
5929
  Object.defineProperty(exports, "DictateProvider", {
5362
5930
  enumerable: true,
5363
- get: function () { return chunk7BDGLRQX_cjs.DictateProvider; }
5931
+ get: function () { return chunkZ5YCRJY3_cjs.DictateProvider; }
5364
5932
  });
5365
5933
  Object.defineProperty(exports, "DocumentCard", {
5366
5934
  enumerable: true,
5367
- get: function () { return chunk7BDGLRQX_cjs.DocumentCard; }
5935
+ get: function () { return chunkZ5YCRJY3_cjs.DocumentCard; }
5368
5936
  });
5369
5937
  Object.defineProperty(exports, "DocumentEntity", {
5370
5938
  enumerable: true,
5371
- get: function () { return chunk7BDGLRQX_cjs.DocumentEntity; }
5939
+ get: function () { return chunkZ5YCRJY3_cjs.DocumentEntity; }
5372
5940
  });
5373
5941
  Object.defineProperty(exports, "ENTITY_MAPPINGS", {
5374
5942
  enumerable: true,
5375
- get: function () { return chunk7BDGLRQX_cjs.ENTITY_MAPPINGS; }
5943
+ get: function () { return chunkZ5YCRJY3_cjs.ENTITY_MAPPINGS; }
5376
5944
  });
5377
5945
  Object.defineProperty(exports, "EmlIcon", {
5378
5946
  enumerable: true,
5379
- get: function () { return chunk7BDGLRQX_cjs.EmlIcon; }
5947
+ get: function () { return chunkZ5YCRJY3_cjs.EmlIcon; }
5380
5948
  });
5381
5949
  Object.defineProperty(exports, "EntityIcon", {
5382
5950
  enumerable: true,
5383
- get: function () { return chunk7BDGLRQX_cjs.EntityIcon; }
5951
+ get: function () { return chunkZ5YCRJY3_cjs.EntityIcon; }
5384
5952
  });
5385
5953
  Object.defineProperty(exports, "EntityPill", {
5386
5954
  enumerable: true,
5387
- get: function () { return chunk7BDGLRQX_cjs.EntityPill; }
5955
+ get: function () { return chunkZ5YCRJY3_cjs.EntityPill; }
5388
5956
  });
5389
5957
  Object.defineProperty(exports, "FILE_TYPE_COLORS", {
5390
5958
  enumerable: true,
5391
- get: function () { return chunk7BDGLRQX_cjs.FILE_TYPE_COLORS; }
5959
+ get: function () { return chunkZ5YCRJY3_cjs.FILE_TYPE_COLORS; }
5392
5960
  });
5393
5961
  Object.defineProperty(exports, "HoverCard", {
5394
5962
  enumerable: true,
5395
- get: function () { return chunk7BDGLRQX_cjs.HoverCard; }
5963
+ get: function () { return chunkZ5YCRJY3_cjs.HoverCard; }
5396
5964
  });
5397
5965
  Object.defineProperty(exports, "HoverCardContent", {
5398
5966
  enumerable: true,
5399
- get: function () { return chunk7BDGLRQX_cjs.HoverCardContent; }
5967
+ get: function () { return chunkZ5YCRJY3_cjs.HoverCardContent; }
5400
5968
  });
5401
5969
  Object.defineProperty(exports, "HoverCardTrigger", {
5402
5970
  enumerable: true,
5403
- get: function () { return chunk7BDGLRQX_cjs.HoverCardTrigger; }
5971
+ get: function () { return chunkZ5YCRJY3_cjs.HoverCardTrigger; }
5404
5972
  });
5405
5973
  Object.defineProperty(exports, "IconToggle", {
5406
5974
  enumerable: true,
5407
- get: function () { return chunk7BDGLRQX_cjs.IconToggle; }
5975
+ get: function () { return chunkZ5YCRJY3_cjs.IconToggle; }
5408
5976
  });
5409
5977
  Object.defineProperty(exports, "ImgIcon", {
5410
5978
  enumerable: true,
5411
- get: function () { return chunk7BDGLRQX_cjs.ImgIcon; }
5979
+ get: function () { return chunkZ5YCRJY3_cjs.ImgIcon; }
5412
5980
  });
5413
5981
  Object.defineProperty(exports, "InlineMicButton", {
5414
5982
  enumerable: true,
5415
- get: function () { return chunk7BDGLRQX_cjs.InlineMicButton; }
5983
+ get: function () { return chunkZ5YCRJY3_cjs.InlineMicButton; }
5416
5984
  });
5417
5985
  Object.defineProperty(exports, "Input", {
5418
5986
  enumerable: true,
5419
- get: function () { return chunk7BDGLRQX_cjs.Input; }
5987
+ get: function () { return chunkZ5YCRJY3_cjs.Input; }
5420
5988
  });
5421
5989
  Object.defineProperty(exports, "Label", {
5422
5990
  enumerable: true,
5423
- get: function () { return chunk7BDGLRQX_cjs.Label; }
5991
+ get: function () { return chunkZ5YCRJY3_cjs.Label; }
5424
5992
  });
5425
5993
  Object.defineProperty(exports, "MarkMenu", {
5426
5994
  enumerable: true,
5427
- get: function () { return chunk7BDGLRQX_cjs.MarkMenu; }
5995
+ get: function () { return chunkZ5YCRJY3_cjs.MarkMenu; }
5428
5996
  });
5429
5997
  Object.defineProperty(exports, "MicRecordingOverlay", {
5430
5998
  enumerable: true,
5431
- get: function () { return chunk7BDGLRQX_cjs.MicRecordingOverlay; }
5999
+ get: function () { return chunkZ5YCRJY3_cjs.MicRecordingOverlay; }
5432
6000
  });
5433
6001
  Object.defineProperty(exports, "MicWaveformIndicator", {
5434
6002
  enumerable: true,
5435
- get: function () { return chunk7BDGLRQX_cjs.MicWaveformIndicator; }
6003
+ get: function () { return chunkZ5YCRJY3_cjs.MicWaveformIndicator; }
5436
6004
  });
5437
6005
  Object.defineProperty(exports, "NEUTRAL_GRAY", {
5438
6006
  enumerable: true,
5439
- get: function () { return chunk7BDGLRQX_cjs.NEUTRAL_GRAY; }
6007
+ get: function () { return chunkZ5YCRJY3_cjs.NEUTRAL_GRAY; }
5440
6008
  });
5441
6009
  Object.defineProperty(exports, "PLACEHOLDER_COLOR", {
5442
6010
  enumerable: true,
5443
- get: function () { return chunk7BDGLRQX_cjs.PLACEHOLDER_COLOR; }
6011
+ get: function () { return chunkZ5YCRJY3_cjs.PLACEHOLDER_COLOR; }
5444
6012
  });
5445
6013
  Object.defineProperty(exports, "PassageCard", {
5446
6014
  enumerable: true,
5447
- get: function () { return chunk7BDGLRQX_cjs.PassageCard; }
6015
+ get: function () { return chunkZ5YCRJY3_cjs.PassageCard; }
5448
6016
  });
5449
6017
  Object.defineProperty(exports, "PdfIcon", {
5450
6018
  enumerable: true,
5451
- get: function () { return chunk7BDGLRQX_cjs.PdfIcon; }
6019
+ get: function () { return chunkZ5YCRJY3_cjs.PdfIcon; }
5452
6020
  });
5453
6021
  Object.defineProperty(exports, "Popover", {
5454
6022
  enumerable: true,
5455
- get: function () { return chunk7BDGLRQX_cjs.Popover; }
6023
+ get: function () { return chunkZ5YCRJY3_cjs.Popover; }
5456
6024
  });
5457
6025
  Object.defineProperty(exports, "PopoverAnchor", {
5458
6026
  enumerable: true,
5459
- get: function () { return chunk7BDGLRQX_cjs.PopoverAnchor; }
6027
+ get: function () { return chunkZ5YCRJY3_cjs.PopoverAnchor; }
5460
6028
  });
5461
6029
  Object.defineProperty(exports, "PopoverContent", {
5462
6030
  enumerable: true,
5463
- get: function () { return chunk7BDGLRQX_cjs.PopoverContent; }
6031
+ get: function () { return chunkZ5YCRJY3_cjs.PopoverContent; }
5464
6032
  });
5465
6033
  Object.defineProperty(exports, "PopoverTrigger", {
5466
6034
  enumerable: true,
5467
- get: function () { return chunk7BDGLRQX_cjs.PopoverTrigger; }
6035
+ get: function () { return chunkZ5YCRJY3_cjs.PopoverTrigger; }
5468
6036
  });
5469
6037
  Object.defineProperty(exports, "PresenceLabel", {
5470
6038
  enumerable: true,
5471
- get: function () { return chunk7BDGLRQX_cjs.PresenceLabel; }
6039
+ get: function () { return chunkZ5YCRJY3_cjs.PresenceLabel; }
5472
6040
  });
5473
6041
  Object.defineProperty(exports, "Progress", {
5474
6042
  enumerable: true,
5475
- get: function () { return chunk7BDGLRQX_cjs.Progress; }
6043
+ get: function () { return chunkZ5YCRJY3_cjs.Progress; }
5476
6044
  });
5477
6045
  Object.defineProperty(exports, "ProjectEntity", {
5478
6046
  enumerable: true,
5479
- get: function () { return chunk7BDGLRQX_cjs.ProjectEntity; }
6047
+ get: function () { return chunkZ5YCRJY3_cjs.ProjectEntity; }
5480
6048
  });
5481
6049
  Object.defineProperty(exports, "RadioGroup", {
5482
6050
  enumerable: true,
5483
- get: function () { return chunk7BDGLRQX_cjs.RadioGroup; }
6051
+ get: function () { return chunkZ5YCRJY3_cjs.RadioGroup; }
5484
6052
  });
5485
6053
  Object.defineProperty(exports, "RadioGroupItem", {
5486
6054
  enumerable: true,
5487
- get: function () { return chunk7BDGLRQX_cjs.RadioGroupItem; }
6055
+ get: function () { return chunkZ5YCRJY3_cjs.RadioGroupItem; }
5488
6056
  });
5489
6057
  Object.defineProperty(exports, "RagDot", {
5490
6058
  enumerable: true,
5491
- get: function () { return chunk7BDGLRQX_cjs.RagDot; }
6059
+ get: function () { return chunkZ5YCRJY3_cjs.RagDot; }
5492
6060
  });
5493
6061
  Object.defineProperty(exports, "RelevanceDot", {
5494
6062
  enumerable: true,
5495
- get: function () { return chunk7BDGLRQX_cjs.RelevanceDot; }
6063
+ get: function () { return chunkZ5YCRJY3_cjs.RelevanceDot; }
5496
6064
  });
5497
6065
  Object.defineProperty(exports, "Select", {
5498
6066
  enumerable: true,
5499
- get: function () { return chunk7BDGLRQX_cjs.Select; }
6067
+ get: function () { return chunkZ5YCRJY3_cjs.Select; }
5500
6068
  });
5501
6069
  Object.defineProperty(exports, "SelectContent", {
5502
6070
  enumerable: true,
5503
- get: function () { return chunk7BDGLRQX_cjs.SelectContent; }
6071
+ get: function () { return chunkZ5YCRJY3_cjs.SelectContent; }
5504
6072
  });
5505
6073
  Object.defineProperty(exports, "SelectGroup", {
5506
6074
  enumerable: true,
5507
- get: function () { return chunk7BDGLRQX_cjs.SelectGroup; }
6075
+ get: function () { return chunkZ5YCRJY3_cjs.SelectGroup; }
5508
6076
  });
5509
6077
  Object.defineProperty(exports, "SelectItem", {
5510
6078
  enumerable: true,
5511
- get: function () { return chunk7BDGLRQX_cjs.SelectItem; }
6079
+ get: function () { return chunkZ5YCRJY3_cjs.SelectItem; }
5512
6080
  });
5513
6081
  Object.defineProperty(exports, "SelectLabel", {
5514
6082
  enumerable: true,
5515
- get: function () { return chunk7BDGLRQX_cjs.SelectLabel; }
6083
+ get: function () { return chunkZ5YCRJY3_cjs.SelectLabel; }
5516
6084
  });
5517
6085
  Object.defineProperty(exports, "SelectScrollDownButton", {
5518
6086
  enumerable: true,
5519
- get: function () { return chunk7BDGLRQX_cjs.SelectScrollDownButton; }
6087
+ get: function () { return chunkZ5YCRJY3_cjs.SelectScrollDownButton; }
5520
6088
  });
5521
6089
  Object.defineProperty(exports, "SelectScrollUpButton", {
5522
6090
  enumerable: true,
5523
- get: function () { return chunk7BDGLRQX_cjs.SelectScrollUpButton; }
6091
+ get: function () { return chunkZ5YCRJY3_cjs.SelectScrollUpButton; }
5524
6092
  });
5525
6093
  Object.defineProperty(exports, "SelectSeparator", {
5526
6094
  enumerable: true,
5527
- get: function () { return chunk7BDGLRQX_cjs.SelectSeparator; }
6095
+ get: function () { return chunkZ5YCRJY3_cjs.SelectSeparator; }
5528
6096
  });
5529
6097
  Object.defineProperty(exports, "SelectTrigger", {
5530
6098
  enumerable: true,
5531
- get: function () { return chunk7BDGLRQX_cjs.SelectTrigger; }
6099
+ get: function () { return chunkZ5YCRJY3_cjs.SelectTrigger; }
5532
6100
  });
5533
6101
  Object.defineProperty(exports, "SelectValue", {
5534
6102
  enumerable: true,
5535
- get: function () { return chunk7BDGLRQX_cjs.SelectValue; }
6103
+ get: function () { return chunkZ5YCRJY3_cjs.SelectValue; }
5536
6104
  });
5537
6105
  Object.defineProperty(exports, "Separator", {
5538
6106
  enumerable: true,
5539
- get: function () { return chunk7BDGLRQX_cjs.Separator; }
6107
+ get: function () { return chunkZ5YCRJY3_cjs.Separator; }
5540
6108
  });
5541
6109
  Object.defineProperty(exports, "Slider", {
5542
6110
  enumerable: true,
5543
- get: function () { return chunk7BDGLRQX_cjs.Slider; }
6111
+ get: function () { return chunkZ5YCRJY3_cjs.Slider; }
5544
6112
  });
5545
6113
  Object.defineProperty(exports, "StatusPill", {
5546
6114
  enumerable: true,
5547
- get: function () { return chunk7BDGLRQX_cjs.StatusPill; }
6115
+ get: function () { return chunkZ5YCRJY3_cjs.StatusPill; }
5548
6116
  });
5549
6117
  Object.defineProperty(exports, "Switch", {
5550
6118
  enumerable: true,
5551
- get: function () { return chunk7BDGLRQX_cjs.Switch; }
6119
+ get: function () { return chunkZ5YCRJY3_cjs.Switch; }
5552
6120
  });
5553
6121
  Object.defineProperty(exports, "TAG_TYPE_ICONS", {
5554
6122
  enumerable: true,
5555
- get: function () { return chunk7BDGLRQX_cjs.TAG_TYPE_ICONS; }
6123
+ get: function () { return chunkZ5YCRJY3_cjs.TAG_TYPE_ICONS; }
5556
6124
  });
5557
6125
  Object.defineProperty(exports, "TAG_TYPE_LABELS", {
5558
6126
  enumerable: true,
5559
- get: function () { return chunk7BDGLRQX_cjs.TAG_TYPE_LABELS; }
6127
+ get: function () { return chunkZ5YCRJY3_cjs.TAG_TYPE_LABELS; }
5560
6128
  });
5561
6129
  Object.defineProperty(exports, "Table", {
5562
6130
  enumerable: true,
5563
- get: function () { return chunk7BDGLRQX_cjs.Table; }
6131
+ get: function () { return chunkZ5YCRJY3_cjs.Table; }
5564
6132
  });
5565
6133
  Object.defineProperty(exports, "TableBody", {
5566
6134
  enumerable: true,
5567
- get: function () { return chunk7BDGLRQX_cjs.TableBody; }
6135
+ get: function () { return chunkZ5YCRJY3_cjs.TableBody; }
5568
6136
  });
5569
6137
  Object.defineProperty(exports, "TableCaption", {
5570
6138
  enumerable: true,
5571
- get: function () { return chunk7BDGLRQX_cjs.TableCaption; }
6139
+ get: function () { return chunkZ5YCRJY3_cjs.TableCaption; }
5572
6140
  });
5573
6141
  Object.defineProperty(exports, "TableCell", {
5574
6142
  enumerable: true,
5575
- get: function () { return chunk7BDGLRQX_cjs.TableCell; }
6143
+ get: function () { return chunkZ5YCRJY3_cjs.TableCell; }
5576
6144
  });
5577
6145
  Object.defineProperty(exports, "TableFooter", {
5578
6146
  enumerable: true,
5579
- get: function () { return chunk7BDGLRQX_cjs.TableFooter; }
6147
+ get: function () { return chunkZ5YCRJY3_cjs.TableFooter; }
5580
6148
  });
5581
6149
  Object.defineProperty(exports, "TableHead", {
5582
6150
  enumerable: true,
5583
- get: function () { return chunk7BDGLRQX_cjs.TableHead; }
6151
+ get: function () { return chunkZ5YCRJY3_cjs.TableHead; }
5584
6152
  });
5585
6153
  Object.defineProperty(exports, "TableHeader", {
5586
6154
  enumerable: true,
5587
- get: function () { return chunk7BDGLRQX_cjs.TableHeader; }
6155
+ get: function () { return chunkZ5YCRJY3_cjs.TableHeader; }
5588
6156
  });
5589
6157
  Object.defineProperty(exports, "TableRow", {
5590
6158
  enumerable: true,
5591
- get: function () { return chunk7BDGLRQX_cjs.TableRow; }
6159
+ get: function () { return chunkZ5YCRJY3_cjs.TableRow; }
5592
6160
  });
5593
6161
  Object.defineProperty(exports, "Tabs", {
5594
6162
  enumerable: true,
5595
- get: function () { return chunk7BDGLRQX_cjs.Tabs; }
6163
+ get: function () { return chunkZ5YCRJY3_cjs.Tabs; }
5596
6164
  });
5597
6165
  Object.defineProperty(exports, "TabsContent", {
5598
6166
  enumerable: true,
5599
- get: function () { return chunk7BDGLRQX_cjs.TabsContent; }
6167
+ get: function () { return chunkZ5YCRJY3_cjs.TabsContent; }
5600
6168
  });
5601
6169
  Object.defineProperty(exports, "TabsList", {
5602
6170
  enumerable: true,
5603
- get: function () { return chunk7BDGLRQX_cjs.TabsList; }
6171
+ get: function () { return chunkZ5YCRJY3_cjs.TabsList; }
5604
6172
  });
5605
6173
  Object.defineProperty(exports, "TabsTrigger", {
5606
6174
  enumerable: true,
5607
- get: function () { return chunk7BDGLRQX_cjs.TabsTrigger; }
6175
+ get: function () { return chunkZ5YCRJY3_cjs.TabsTrigger; }
5608
6176
  });
5609
6177
  Object.defineProperty(exports, "TagEntity", {
5610
6178
  enumerable: true,
5611
- get: function () { return chunk7BDGLRQX_cjs.TagEntity; }
6179
+ get: function () { return chunkZ5YCRJY3_cjs.TagEntity; }
5612
6180
  });
5613
6181
  Object.defineProperty(exports, "Textarea", {
5614
6182
  enumerable: true,
5615
- get: function () { return chunk7BDGLRQX_cjs.Textarea; }
6183
+ get: function () { return chunkZ5YCRJY3_cjs.Textarea; }
5616
6184
  });
5617
6185
  Object.defineProperty(exports, "Toggle", {
5618
6186
  enumerable: true,
5619
- get: function () { return chunk7BDGLRQX_cjs.Toggle; }
6187
+ get: function () { return chunkZ5YCRJY3_cjs.Toggle; }
5620
6188
  });
5621
6189
  Object.defineProperty(exports, "ToggleGroup", {
5622
6190
  enumerable: true,
5623
- get: function () { return chunk7BDGLRQX_cjs.ToggleGroup; }
6191
+ get: function () { return chunkZ5YCRJY3_cjs.ToggleGroup; }
5624
6192
  });
5625
6193
  Object.defineProperty(exports, "ToggleGroupItem", {
5626
6194
  enumerable: true,
5627
- get: function () { return chunk7BDGLRQX_cjs.ToggleGroupItem; }
6195
+ get: function () { return chunkZ5YCRJY3_cjs.ToggleGroupItem; }
5628
6196
  });
5629
6197
  Object.defineProperty(exports, "Tooltip", {
5630
6198
  enumerable: true,
5631
- get: function () { return chunk7BDGLRQX_cjs.Tooltip; }
6199
+ get: function () { return chunkZ5YCRJY3_cjs.Tooltip; }
5632
6200
  });
5633
6201
  Object.defineProperty(exports, "TooltipContent", {
5634
6202
  enumerable: true,
5635
- get: function () { return chunk7BDGLRQX_cjs.TooltipContent; }
6203
+ get: function () { return chunkZ5YCRJY3_cjs.TooltipContent; }
5636
6204
  });
5637
6205
  Object.defineProperty(exports, "TooltipProvider", {
5638
6206
  enumerable: true,
5639
- get: function () { return chunk7BDGLRQX_cjs.TooltipProvider; }
6207
+ get: function () { return chunkZ5YCRJY3_cjs.TooltipProvider; }
5640
6208
  });
5641
6209
  Object.defineProperty(exports, "TooltipTrigger", {
5642
6210
  enumerable: true,
5643
- get: function () { return chunk7BDGLRQX_cjs.TooltipTrigger; }
6211
+ get: function () { return chunkZ5YCRJY3_cjs.TooltipTrigger; }
5644
6212
  });
5645
6213
  Object.defineProperty(exports, "UserEntity", {
5646
6214
  enumerable: true,
5647
- get: function () { return chunk7BDGLRQX_cjs.UserEntity; }
6215
+ get: function () { return chunkZ5YCRJY3_cjs.UserEntity; }
5648
6216
  });
5649
6217
  Object.defineProperty(exports, "UserMenu", {
5650
6218
  enumerable: true,
5651
- get: function () { return chunk7BDGLRQX_cjs.UserMenu; }
6219
+ get: function () { return chunkZ5YCRJY3_cjs.UserMenu; }
5652
6220
  });
5653
6221
  Object.defineProperty(exports, "VISIBILITY_ICONS", {
5654
6222
  enumerable: true,
5655
- get: function () { return chunk7BDGLRQX_cjs.VISIBILITY_ICONS; }
6223
+ get: function () { return chunkZ5YCRJY3_cjs.VISIBILITY_ICONS; }
5656
6224
  });
5657
6225
  Object.defineProperty(exports, "VidIcon", {
5658
6226
  enumerable: true,
5659
- get: function () { return chunk7BDGLRQX_cjs.VidIcon; }
6227
+ get: function () { return chunkZ5YCRJY3_cjs.VidIcon; }
5660
6228
  });
5661
6229
  Object.defineProperty(exports, "VisibilityIcon", {
5662
6230
  enumerable: true,
5663
- get: function () { return chunk7BDGLRQX_cjs.VisibilityIcon; }
6231
+ get: function () { return chunkZ5YCRJY3_cjs.VisibilityIcon; }
5664
6232
  });
5665
6233
  Object.defineProperty(exports, "badgeVariants", {
5666
6234
  enumerable: true,
5667
- get: function () { return chunk7BDGLRQX_cjs.badgeVariants; }
6235
+ get: function () { return chunkZ5YCRJY3_cjs.badgeVariants; }
5668
6236
  });
5669
6237
  Object.defineProperty(exports, "buttonVariants", {
5670
6238
  enumerable: true,
5671
- get: function () { return chunk7BDGLRQX_cjs.buttonVariants; }
6239
+ get: function () { return chunkZ5YCRJY3_cjs.buttonVariants; }
5672
6240
  });
5673
6241
  Object.defineProperty(exports, "cardVariants", {
5674
6242
  enumerable: true,
5675
- get: function () { return chunk7BDGLRQX_cjs.cardVariants; }
6243
+ get: function () { return chunkZ5YCRJY3_cjs.cardVariants; }
5676
6244
  });
5677
6245
  Object.defineProperty(exports, "configureEntityRegistry", {
5678
6246
  enumerable: true,
5679
- get: function () { return chunk7BDGLRQX_cjs.configureEntityRegistry; }
6247
+ get: function () { return chunkZ5YCRJY3_cjs.configureEntityRegistry; }
5680
6248
  });
5681
6249
  Object.defineProperty(exports, "configureRagLabels", {
5682
6250
  enumerable: true,
5683
- get: function () { return chunk7BDGLRQX_cjs.configureRagLabels; }
6251
+ get: function () { return chunkZ5YCRJY3_cjs.configureRagLabels; }
5684
6252
  });
5685
6253
  Object.defineProperty(exports, "configureStatusRegistry", {
5686
6254
  enumerable: true,
5687
- get: function () { return chunk7BDGLRQX_cjs.configureStatusRegistry; }
6255
+ get: function () { return chunkZ5YCRJY3_cjs.configureStatusRegistry; }
5688
6256
  });
5689
6257
  Object.defineProperty(exports, "formatElapsed", {
5690
6258
  enumerable: true,
5691
- get: function () { return chunk7BDGLRQX_cjs.formatElapsed; }
6259
+ get: function () { return chunkZ5YCRJY3_cjs.formatElapsed; }
5692
6260
  });
5693
6261
  Object.defineProperty(exports, "getDocIcon", {
5694
6262
  enumerable: true,
5695
- get: function () { return chunk7BDGLRQX_cjs.getDocIcon; }
6263
+ get: function () { return chunkZ5YCRJY3_cjs.getDocIcon; }
5696
6264
  });
5697
6265
  Object.defineProperty(exports, "getEntityColor", {
5698
6266
  enumerable: true,
5699
- get: function () { return chunk7BDGLRQX_cjs.getEntityColor; }
6267
+ get: function () { return chunkZ5YCRJY3_cjs.getEntityColor; }
5700
6268
  });
5701
6269
  Object.defineProperty(exports, "getEntityColorStyles", {
5702
6270
  enumerable: true,
5703
- get: function () { return chunk7BDGLRQX_cjs.getEntityColorStyles; }
6271
+ get: function () { return chunkZ5YCRJY3_cjs.getEntityColorStyles; }
5704
6272
  });
5705
6273
  Object.defineProperty(exports, "getEntityIcon", {
5706
6274
  enumerable: true,
5707
- get: function () { return chunk7BDGLRQX_cjs.getEntityIcon; }
6275
+ get: function () { return chunkZ5YCRJY3_cjs.getEntityIcon; }
5708
6276
  });
5709
6277
  Object.defineProperty(exports, "getEntityLabel", {
5710
6278
  enumerable: true,
5711
- get: function () { return chunk7BDGLRQX_cjs.getEntityLabel; }
6279
+ get: function () { return chunkZ5YCRJY3_cjs.getEntityLabel; }
5712
6280
  });
5713
6281
  Object.defineProperty(exports, "getStatusVariant", {
5714
6282
  enumerable: true,
5715
- get: function () { return chunk7BDGLRQX_cjs.getStatusVariant; }
6283
+ get: function () { return chunkZ5YCRJY3_cjs.getStatusVariant; }
5716
6284
  });
5717
6285
  Object.defineProperty(exports, "getTagTypeIcon", {
5718
6286
  enumerable: true,
5719
- get: function () { return chunk7BDGLRQX_cjs.getTagTypeIcon; }
6287
+ get: function () { return chunkZ5YCRJY3_cjs.getTagTypeIcon; }
5720
6288
  });
5721
6289
  Object.defineProperty(exports, "getTagTypeLabel", {
5722
6290
  enumerable: true,
5723
- get: function () { return chunk7BDGLRQX_cjs.getTagTypeLabel; }
6291
+ get: function () { return chunkZ5YCRJY3_cjs.getTagTypeLabel; }
5724
6292
  });
5725
6293
  Object.defineProperty(exports, "getWorkspaceColor", {
5726
6294
  enumerable: true,
5727
- get: function () { return chunk7BDGLRQX_cjs.getWorkspaceColor; }
6295
+ get: function () { return chunkZ5YCRJY3_cjs.getWorkspaceColor; }
5728
6296
  });
5729
6297
  Object.defineProperty(exports, "toggleVariants", {
5730
6298
  enumerable: true,
5731
- get: function () { return chunk7BDGLRQX_cjs.toggleVariants; }
6299
+ get: function () { return chunkZ5YCRJY3_cjs.toggleVariants; }
5732
6300
  });
5733
6301
  Object.defineProperty(exports, "useAudioRecorder", {
5734
6302
  enumerable: true,
5735
- get: function () { return chunk7BDGLRQX_cjs.useAudioRecorder; }
6303
+ get: function () { return chunkZ5YCRJY3_cjs.useAudioRecorder; }
5736
6304
  });
5737
6305
  Object.defineProperty(exports, "MarkdownRenderer", {
5738
6306
  enumerable: true,
5739
- get: function () { return chunk7V7B7OEM_cjs.MarkdownRenderer; }
6307
+ get: function () { return chunkOI55JRKT_cjs.MarkdownRenderer; }
5740
6308
  });
5741
6309
  Object.defineProperty(exports, "MarkdownStreamingContext", {
5742
6310
  enumerable: true,
5743
- get: function () { return chunk7V7B7OEM_cjs.MarkdownStreamingContext; }
6311
+ get: function () { return chunkOI55JRKT_cjs.MarkdownStreamingContext; }
5744
6312
  });
5745
6313
  Object.defineProperty(exports, "markdownBaseComponents", {
5746
6314
  enumerable: true,
5747
- get: function () { return chunk7V7B7OEM_cjs.markdownBaseComponents; }
6315
+ get: function () { return chunkOI55JRKT_cjs.markdownBaseComponents; }
5748
6316
  });
5749
6317
  Object.defineProperty(exports, "normalizeCitationMarkup", {
5750
6318
  enumerable: true,
5751
- get: function () { return chunk7V7B7OEM_cjs.normalizeCitationMarkup; }
6319
+ get: function () { return chunkOI55JRKT_cjs.normalizeCitationMarkup; }
5752
6320
  });
5753
6321
  Object.defineProperty(exports, "splitMarkdownBlocks", {
5754
6322
  enumerable: true,
5755
- get: function () { return chunk7V7B7OEM_cjs.splitMarkdownBlocks; }
6323
+ get: function () { return chunkOI55JRKT_cjs.splitMarkdownBlocks; }
6324
+ });
6325
+ Object.defineProperty(exports, "trimOpenCitation", {
6326
+ enumerable: true,
6327
+ get: function () { return chunkOI55JRKT_cjs.trimOpenCitation; }
6328
+ });
6329
+ Object.defineProperty(exports, "DEFAULT_NOTIFY_TONE", {
6330
+ enumerable: true,
6331
+ get: function () { return chunkPGLV23SB_cjs.DEFAULT_NOTIFY_TONE; }
6332
+ });
6333
+ Object.defineProperty(exports, "NotificationBell", {
6334
+ enumerable: true,
6335
+ get: function () { return chunkPGLV23SB_cjs.NotificationBell; }
6336
+ });
6337
+ Object.defineProperty(exports, "Toaster", {
6338
+ enumerable: true,
6339
+ get: function () { return chunkPGLV23SB_cjs.Toaster; }
6340
+ });
6341
+ Object.defineProperty(exports, "formatRelativeTime", {
6342
+ enumerable: true,
6343
+ get: function () { return chunkPGLV23SB_cjs.formatRelativeTime; }
6344
+ });
6345
+ Object.defineProperty(exports, "notify", {
6346
+ enumerable: true,
6347
+ get: function () { return chunkPGLV23SB_cjs.notify; }
6348
+ });
6349
+ Object.defineProperty(exports, "seedNotifications", {
6350
+ enumerable: true,
6351
+ get: function () { return chunkPGLV23SB_cjs.seedNotifications; }
6352
+ });
6353
+ Object.defineProperty(exports, "selectUnread", {
6354
+ enumerable: true,
6355
+ get: function () { return chunkPGLV23SB_cjs.selectUnread; }
6356
+ });
6357
+ Object.defineProperty(exports, "toast", {
6358
+ enumerable: true,
6359
+ get: function () { return chunkPGLV23SB_cjs.toast; }
6360
+ });
6361
+ Object.defineProperty(exports, "useNotify", {
6362
+ enumerable: true,
6363
+ get: function () { return chunkPGLV23SB_cjs.useNotify; }
5756
6364
  });
5757
6365
  Object.defineProperty(exports, "DropdownMenu", {
5758
6366
  enumerable: true,
@@ -5861,6 +6469,7 @@ exports.CommandPalette = CommandPalette;
5861
6469
  exports.CommandPaletteProvider = CommandPaletteProvider;
5862
6470
  exports.ConversationList = ConversationList;
5863
6471
  exports.DEFAULT_ASPECT_OPTIONS = DEFAULT_ASPECT_OPTIONS;
6472
+ exports.DEFAULT_PASSWORD_CHANGE_FORM_MESSAGES = DEFAULT_PASSWORD_CHANGE_FORM_MESSAGES;
5864
6473
  exports.DEFAULT_START_BY_EMAIL_LABELS = DEFAULT_START_BY_EMAIL_LABELS;
5865
6474
  exports.DateSeparator = DateSeparator;
5866
6475
  exports.DirectMessages = DirectMessages;
@@ -5883,6 +6492,7 @@ exports.HtmlIcon = HtmlIcon;
5883
6492
  exports.ImageCropModal = ImageCropModal;
5884
6493
  exports.ImageCropper = ImageCropper;
5885
6494
  exports.LinkedInIcon = LinkedInIcon;
6495
+ exports.MAX_AVATAR_FILE_BYTES = MAX_AVATAR_FILE_BYTES;
5886
6496
  exports.MessageArtifactCard = MessageArtifactCard;
5887
6497
  exports.MessageBubble = MessageBubble;
5888
6498
  exports.MessageThread = MessageThread;
@@ -5909,11 +6519,15 @@ exports.getWorkspaceSentPhrase = getWorkspaceSentPhrase;
5909
6519
  exports.hasVideoTrack = hasVideoTrack;
5910
6520
  exports.isWorkspaceNotificationType = isWorkspaceNotificationType;
5911
6521
  exports.parseActivityContent = parseActivityContent;
6522
+ exports.parseDeleteAccountBlockers = parseDeleteAccountBlockers;
5912
6523
  exports.pickRecentWorkspaces = pickRecentWorkspaces;
5913
6524
  exports.redlineStats = redlineStats;
5914
6525
  exports.resolveActiveWorkspace = resolveActiveWorkspace;
5915
6526
  exports.textToArtifact = textToArtifact;
5916
6527
  exports.titleFromQuestion = titleFromQuestion;
6528
+ exports.toChatCitations = toChatCitations;
6529
+ exports.toNotificationPreferences = toNotificationPreferences;
6530
+ exports.toProfileView = toProfileView;
5917
6531
  exports.toRedlineMarkdown = toRedlineMarkdown;
5918
6532
  exports.toShellWorkspace = toShellWorkspace;
5919
6533
  exports.useAddContacts = useAddContacts;
@@ -5933,16 +6547,29 @@ exports.useArbiWsStatus = useArbiWsStatus;
5933
6547
  exports.useArbiWsStore = useArbiWsStore;
5934
6548
  exports.useArbiWsTask = useArbiWsTask;
5935
6549
  exports.useArbiWsTasks = useArbiWsTasks;
6550
+ exports.useAvatarCrop = useAvatarCrop;
5936
6551
  exports.useCameraStream = useCameraStream;
5937
6552
  exports.useCommandPalette = useCommandPalette;
6553
+ exports.useConfirmEmailChange = useConfirmEmailChange;
5938
6554
  exports.useContacts = useContacts;
5939
6555
  exports.useCreateAgent = useCreateAgent;
5940
6556
  exports.useCreateTask = useCreateTask;
6557
+ exports.useCurrentSessionId = useCurrentSessionId;
6558
+ exports.useDeleteAccount = useDeleteAccount;
6559
+ exports.useDeleteAccountFlow = useDeleteAccountFlow;
5941
6560
  exports.useDeleteTask = useDeleteTask;
5942
6561
  exports.useDirectMessages = useDirectMessages;
6562
+ exports.useEmailChange = useEmailChange;
5943
6563
  exports.useGrantAgentAccess = useGrantAgentAccess;
6564
+ exports.useLogoutAllSessions = useLogoutAllSessions;
6565
+ exports.useNameEditor = useNameEditor;
6566
+ exports.useNotificationPreferences = useNotificationPreferences;
6567
+ exports.usePasswordChange = usePasswordChange;
6568
+ exports.usePasswordChangeForm = usePasswordChangeForm;
5944
6569
  exports.usePendingContacts = usePendingContacts;
6570
+ exports.useProfile = useProfile;
5945
6571
  exports.useRemoveContacts = useRemoveContacts;
6572
+ exports.useRequestEmailChange = useRequestEmailChange;
5946
6573
  exports.useRevokeAgentAccess = useRevokeAgentAccess;
5947
6574
  exports.useRunTask = useRunTask;
5948
6575
  exports.useSaveAgentConfig = useSaveAgentConfig;
@@ -5950,7 +6577,10 @@ exports.useSemanticSearch = useSemanticSearch;
5950
6577
  exports.useShellWorkspaces = useShellWorkspaces;
5951
6578
  exports.useSkills = useSkills;
5952
6579
  exports.useTaskRuns = useTaskRuns;
6580
+ exports.useTerminateSession = useTerminateSession;
6581
+ exports.useUpdateProfile = useUpdateProfile;
5953
6582
  exports.useUpdateTask = useUpdateTask;
6583
+ exports.useUserSettings = useUserSettings;
5954
6584
  exports.useVideoRecorder = useVideoRecorder;
5955
6585
  exports.useWorkspaceDocs = useWorkspaceDocs;
5956
6586
  exports.userDisplayName = userDisplayName;