@arbidocs/react 0.4.27 → 0.4.29
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/artifacts/index.cjs +14 -14
- package/dist/artifacts/index.js +2 -2
- package/dist/{chunk-KXIIARRK.cjs → chunk-6BLXIF4R.cjs} +21 -4
- package/dist/chunk-6BLXIF4R.cjs.map +1 -0
- package/dist/{chunk-SDUISFTV.js → chunk-6IYHNWQK.js} +3 -3
- package/dist/{chunk-SDUISFTV.js.map → chunk-6IYHNWQK.js.map} +1 -1
- package/dist/{chunk-DLT354KA.js → chunk-NDG44JWI.js} +21 -5
- package/dist/chunk-NDG44JWI.js.map +1 -0
- package/dist/{chunk-FSMIN5VX.js → chunk-OBTCAI4E.js} +3 -2
- package/dist/chunk-OBTCAI4E.js.map +1 -0
- package/dist/{chunk-VC2I4NST.cjs → chunk-PQDHGEXJ.cjs} +3 -3
- package/dist/{chunk-VC2I4NST.cjs.map → chunk-PQDHGEXJ.cjs.map} +1 -1
- package/dist/{chunk-PGLV23SB.cjs → chunk-YSZJCWDD.cjs} +3 -2
- package/dist/chunk-YSZJCWDD.cjs.map +1 -0
- package/dist/index.cjs +1068 -724
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +734 -3
- package/dist/index.d.ts +734 -3
- package/dist/index.js +619 -286
- package/dist/index.js.map +1 -1
- package/dist/shell/index.cjs +6 -6
- package/dist/shell/index.js +1 -1
- package/dist/ui/index.cjs +148 -148
- package/dist/ui/index.js +2 -2
- package/package.json +3 -3
- package/dist/chunk-DLT354KA.js.map +0 -1
- package/dist/chunk-FSMIN5VX.js.map +0 -1
- package/dist/chunk-KXIIARRK.cjs.map +0 -1
- package/dist/chunk-PGLV23SB.cjs.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var chunkEOOHRPFM_cjs = require('./chunk-EOOHRPFM.cjs');
|
|
3
|
+
var chunkYSZJCWDD_cjs = require('./chunk-YSZJCWDD.cjs');
|
|
4
|
+
var chunk6BLXIF4R_cjs = require('./chunk-6BLXIF4R.cjs');
|
|
5
|
+
var chunkPQDHGEXJ_cjs = require('./chunk-PQDHGEXJ.cjs');
|
|
7
6
|
var chunkOBNTJEEO_cjs = require('./chunk-OBNTJEEO.cjs');
|
|
7
|
+
var chunkEOOHRPFM_cjs = require('./chunk-EOOHRPFM.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 reactQuery = require('@tanstack/react-query');
|
|
12
13
|
var browser = require('@arbidocs/sdk/browser');
|
|
13
14
|
var lucideReact = require('lucide-react');
|
|
14
15
|
var jsxRuntime = require('react/jsx-runtime');
|
|
15
16
|
var client = require('@arbidocs/client');
|
|
16
17
|
var zustand = require('zustand');
|
|
17
|
-
var reactQuery = require('@tanstack/react-query');
|
|
18
18
|
var diff = require('diff');
|
|
19
19
|
var framerMotion = require('framer-motion');
|
|
20
20
|
var reactDom = require('react-dom');
|
|
@@ -29,6 +29,319 @@ 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 useUpdateConversation() {
|
|
33
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
34
|
+
const qc = reactQuery.useQueryClient();
|
|
35
|
+
return reactQuery.useMutation({
|
|
36
|
+
mutationFn: ({
|
|
37
|
+
conversationId,
|
|
38
|
+
patch
|
|
39
|
+
}) => arbi.conversations.update(conversationId, patch),
|
|
40
|
+
onSuccess: () => qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.allConversations() })
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function useCreateWork() {
|
|
44
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
45
|
+
const qc = reactQuery.useQueryClient();
|
|
46
|
+
return reactQuery.useMutation({
|
|
47
|
+
mutationFn: (body) => arbi.conversations.createWork(body),
|
|
48
|
+
onSuccess: () => qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.allConversations() })
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
function useRunConversation() {
|
|
52
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
53
|
+
const qc = reactQuery.useQueryClient();
|
|
54
|
+
return reactQuery.useMutation({
|
|
55
|
+
mutationFn: (conversationId) => arbi.conversations.runWithAuth(conversationId),
|
|
56
|
+
onSuccess: () => qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.allConversations() })
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
function useReviewConversation() {
|
|
60
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
61
|
+
const qc = reactQuery.useQueryClient();
|
|
62
|
+
return reactQuery.useMutation({
|
|
63
|
+
mutationFn: ({
|
|
64
|
+
conversationId,
|
|
65
|
+
review
|
|
66
|
+
}) => arbi.conversations.review(conversationId, review),
|
|
67
|
+
onSuccess: () => qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.allConversations() })
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
function useRequestConversationApproval() {
|
|
71
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
72
|
+
const qc = reactQuery.useQueryClient();
|
|
73
|
+
return reactQuery.useMutation({
|
|
74
|
+
mutationFn: ({
|
|
75
|
+
conversationId,
|
|
76
|
+
request
|
|
77
|
+
}) => arbi.conversations.requestApproval(conversationId, request),
|
|
78
|
+
onSuccess: () => qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.allConversations() })
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
function usePlanWork() {
|
|
82
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
83
|
+
return reactQuery.useMutation({
|
|
84
|
+
mutationFn: (body) => arbi.conversations.plan(body)
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
function useConversationPendingAuth(conversationId, options) {
|
|
88
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
89
|
+
return reactQuery.useQuery({
|
|
90
|
+
queryKey: [...chunk6BLXIF4R_cjs.arbiQueryKeys.allConversations(), conversationId ?? "", "pending-auth"],
|
|
91
|
+
queryFn: () => arbi.conversations.pendingAuth(conversationId),
|
|
92
|
+
enabled: (options?.enabled ?? true) && !!conversationId && arbi.isLoggedIn,
|
|
93
|
+
retry: false
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
function useConversationActivity(conversationId, options) {
|
|
97
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
98
|
+
return reactQuery.useQuery({
|
|
99
|
+
queryKey: [...chunk6BLXIF4R_cjs.arbiQueryKeys.allConversations(), conversationId ?? "", "activity"],
|
|
100
|
+
queryFn: () => arbi.conversations.activity(conversationId),
|
|
101
|
+
enabled: (options?.enabled ?? true) && !!conversationId && arbi.isLoggedIn,
|
|
102
|
+
refetchInterval: options?.live ? 2500 : false
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
function useWorkflows(options) {
|
|
106
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
107
|
+
return reactQuery.useQuery({
|
|
108
|
+
queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.workflows(),
|
|
109
|
+
queryFn: () => arbi.workflows.list(),
|
|
110
|
+
refetchInterval: options?.live ? 15e3 : false,
|
|
111
|
+
enabled: options?.enabled ?? arbi.isLoggedIn
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
function useCreateWorkflow() {
|
|
115
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
116
|
+
const qc = reactQuery.useQueryClient();
|
|
117
|
+
return reactQuery.useMutation({
|
|
118
|
+
mutationFn: (body) => arbi.workflows.create(body),
|
|
119
|
+
onSuccess: () => qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.workflows() })
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
function useUpdateWorkflow() {
|
|
123
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
124
|
+
const qc = reactQuery.useQueryClient();
|
|
125
|
+
return reactQuery.useMutation({
|
|
126
|
+
mutationFn: ({
|
|
127
|
+
workflowId,
|
|
128
|
+
patch
|
|
129
|
+
}) => arbi.workflows.update(workflowId, patch),
|
|
130
|
+
onSuccess: () => qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.workflows() })
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
function useDeleteWorkflow() {
|
|
134
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
135
|
+
const qc = reactQuery.useQueryClient();
|
|
136
|
+
return reactQuery.useMutation({
|
|
137
|
+
mutationFn: (workflowId) => arbi.workflows.delete(workflowId),
|
|
138
|
+
onSuccess: () => qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.workflows() })
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
function useRunWorkflow() {
|
|
142
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
143
|
+
const qc = reactQuery.useQueryClient();
|
|
144
|
+
return reactQuery.useMutation({
|
|
145
|
+
mutationFn: (workflowId) => arbi.workflows.run(workflowId),
|
|
146
|
+
onSuccess: () => Promise.all([
|
|
147
|
+
qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.workflows() }),
|
|
148
|
+
qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.allConversations() })
|
|
149
|
+
])
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
function useCreateAgent() {
|
|
153
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
154
|
+
const qc = reactQuery.useQueryClient();
|
|
155
|
+
return reactQuery.useMutation({
|
|
156
|
+
mutationFn: (name) => arbi.agents.create(name),
|
|
157
|
+
onSuccess: () => qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.agents() })
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
function useAgentConfig(agentExtId, options) {
|
|
161
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
162
|
+
return reactQuery.useQuery({
|
|
163
|
+
queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.agentConfig(agentExtId),
|
|
164
|
+
queryFn: async () => agentExtId ? await arbi.agents.getConfig(agentExtId) : await arbi.agentConfig.get("default"),
|
|
165
|
+
enabled: (options?.enabled ?? true) && arbi.isLoggedIn
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
function useAgentModels(options) {
|
|
169
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
170
|
+
return reactQuery.useQuery({
|
|
171
|
+
queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.models(),
|
|
172
|
+
queryFn: async () => (await arbi.agentConfig.getModels()).models.map((m) => m.model_name),
|
|
173
|
+
enabled: (options?.enabled ?? true) && arbi.isLoggedIn
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
function useSaveAgentConfig() {
|
|
177
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
178
|
+
const qc = reactQuery.useQueryClient();
|
|
179
|
+
return reactQuery.useMutation({
|
|
180
|
+
mutationFn: async ({ agentExtId, title, sections }) => {
|
|
181
|
+
const pinned = await arbi.agents.getConfig(agentExtId);
|
|
182
|
+
const base = pinned ?? await arbi.agentConfig.get("default");
|
|
183
|
+
const merged = structuredClone(base);
|
|
184
|
+
for (const [section, params] of Object.entries(sections)) {
|
|
185
|
+
merged[section] = { ...merged[section] ?? {}, ...params };
|
|
186
|
+
}
|
|
187
|
+
return arbi.agentConfig.save({
|
|
188
|
+
...merged,
|
|
189
|
+
agent_ext_id: agentExtId,
|
|
190
|
+
title: title ?? `agent-${agentExtId}`
|
|
191
|
+
});
|
|
192
|
+
},
|
|
193
|
+
onSuccess: (_saved, { agentExtId }) => Promise.all([
|
|
194
|
+
qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.configs() }),
|
|
195
|
+
qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.agentConfig(agentExtId) }),
|
|
196
|
+
// The agent list shows the pinned persona/model, so it refreshes too.
|
|
197
|
+
qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.agents() })
|
|
198
|
+
])
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
function useAgentWorkspaces(agentExtId, options) {
|
|
202
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
203
|
+
return reactQuery.useQuery({
|
|
204
|
+
queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.agentWorkspaces(agentExtId ?? ""),
|
|
205
|
+
queryFn: () => arbi.agents.listWorkspaces(agentExtId),
|
|
206
|
+
enabled: (options?.enabled ?? true) && !!agentExtId && arbi.isLoggedIn
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
function useGrantAgentAccess() {
|
|
210
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
211
|
+
const qc = reactQuery.useQueryClient();
|
|
212
|
+
return reactQuery.useMutation({
|
|
213
|
+
mutationFn: async ({
|
|
214
|
+
agentExtId,
|
|
215
|
+
workspaceId,
|
|
216
|
+
mode = { kind: "standing" }
|
|
217
|
+
}) => {
|
|
218
|
+
if (mode.kind === "temporary") {
|
|
219
|
+
return arbi.agents.grantTemporaryAccess(agentExtId, workspaceId, mode.ttlSeconds);
|
|
220
|
+
}
|
|
221
|
+
const agent = (await arbi.agents.list()).find((a) => a.external_id === agentExtId);
|
|
222
|
+
if (!agent?.email) throw new Error("The agent's address is unknown.");
|
|
223
|
+
return arbi.workspaces.grantAccess({ workspaceId, emails: [agent.email] });
|
|
224
|
+
},
|
|
225
|
+
onSuccess: (_res, { agentExtId }) => qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.agentWorkspaces(agentExtId) })
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
function useRevokeAgentAccess() {
|
|
229
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
230
|
+
const qc = reactQuery.useQueryClient();
|
|
231
|
+
return reactQuery.useMutation({
|
|
232
|
+
mutationFn: async ({
|
|
233
|
+
agentExtId,
|
|
234
|
+
workspaceId
|
|
235
|
+
}) => {
|
|
236
|
+
const previous = arbi.hasWorkspace ? arbi.getWorkspaceId() : null;
|
|
237
|
+
await arbi.selectWorkspace(workspaceId);
|
|
238
|
+
try {
|
|
239
|
+
await arbi.workspaces.removeUsers([agentExtId]);
|
|
240
|
+
} finally {
|
|
241
|
+
if (previous && previous !== workspaceId) await arbi.selectWorkspace(previous);
|
|
242
|
+
}
|
|
243
|
+
},
|
|
244
|
+
onSuccess: (_res, { agentExtId }) => qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.agentWorkspaces(agentExtId) })
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
function useSkills(options) {
|
|
248
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
249
|
+
return reactQuery.useQuery({
|
|
250
|
+
queryKey: [...chunk6BLXIF4R_cjs.arbiQueryKeys.skills(), options?.includeHidden ?? false],
|
|
251
|
+
queryFn: () => arbi.assistant.listSkills({ includeHidden: options?.includeHidden }),
|
|
252
|
+
refetchInterval: options?.live ? 5e3 : false,
|
|
253
|
+
enabled: (options?.enabled ?? true) && arbi.isLoggedIn,
|
|
254
|
+
staleTime: 3e4
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
function useUploadSkillFiles() {
|
|
258
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
259
|
+
const qc = reactQuery.useQueryClient();
|
|
260
|
+
return reactQuery.useMutation({
|
|
261
|
+
mutationFn: async (entries) => {
|
|
262
|
+
if (!entries.length) throw new Error("Choose at least one skill file.");
|
|
263
|
+
for (const entry of entries) {
|
|
264
|
+
if (!/^skills\/[a-z0-9][a-z0-9_-]*(?:\/[^/]+)*$/.test(entry.folder) || entry.folder.split("/").some((segment) => segment === ".." || segment === "."))
|
|
265
|
+
throw new Error("Skill files need a folder under skills/<name>.");
|
|
266
|
+
}
|
|
267
|
+
const results = [];
|
|
268
|
+
for (const entry of entries) {
|
|
269
|
+
const result = await arbi.documents.uploadFile(entry.content, entry.fileName, {
|
|
270
|
+
folder: entry.folder,
|
|
271
|
+
wpType: "skill"
|
|
272
|
+
});
|
|
273
|
+
if (result.skipped?.length)
|
|
274
|
+
throw new Error(
|
|
275
|
+
result.skipped.map((file) => `${file.file_name}: ${file.reason}`).join("; ")
|
|
276
|
+
);
|
|
277
|
+
results.push(result);
|
|
278
|
+
}
|
|
279
|
+
return results;
|
|
280
|
+
},
|
|
281
|
+
onSuccess: () => qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.skills() })
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
function useStartWorkQuery() {
|
|
285
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
286
|
+
const qc = reactQuery.useQueryClient();
|
|
287
|
+
return reactQuery.useMutation({
|
|
288
|
+
mutationFn: async ({
|
|
289
|
+
question,
|
|
290
|
+
...options
|
|
291
|
+
}) => {
|
|
292
|
+
const response = await arbi.assistant.submit(question, options);
|
|
293
|
+
for (let attempt = 0; attempt < 30; attempt++) {
|
|
294
|
+
if (attempt) await new Promise((resolve) => setTimeout(resolve, 500));
|
|
295
|
+
try {
|
|
296
|
+
const message = await arbi.conversations.getMessage(response.id);
|
|
297
|
+
if (message.conversation_ext_id)
|
|
298
|
+
return { conversationId: message.conversation_ext_id, responseId: response.id };
|
|
299
|
+
} catch (error) {
|
|
300
|
+
if (!(error && typeof error === "object" && "status" in error && error.status === 404))
|
|
301
|
+
throw error;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
throw new Error(
|
|
305
|
+
`The run ${response.id} started, but its thread is not available yet. Do not submit it again.`
|
|
306
|
+
);
|
|
307
|
+
},
|
|
308
|
+
onSuccess: () => qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.allConversations() })
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
function useAgentSession(agentId, options) {
|
|
312
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
313
|
+
return reactQuery.useQuery({
|
|
314
|
+
queryKey: ["arbi", "agent-session", agentId],
|
|
315
|
+
queryFn: () => arbi.agents.getSession(agentId),
|
|
316
|
+
enabled: !!agentId && arbi.isLoggedIn && (options?.enabled ?? true),
|
|
317
|
+
refetchInterval: 5e3
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
function useAgentChats(agentId) {
|
|
321
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
322
|
+
return reactQuery.useQuery({
|
|
323
|
+
queryKey: ["arbi", "agent-chats", agentId],
|
|
324
|
+
queryFn: () => arbi.agents.listChats(agentId),
|
|
325
|
+
enabled: !!agentId && arbi.isLoggedIn,
|
|
326
|
+
refetchInterval: 5e3
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
function useStartAgentSession() {
|
|
330
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
331
|
+
const cache = reactQuery.useQueryClient();
|
|
332
|
+
return reactQuery.useMutation({
|
|
333
|
+
mutationFn: ({ agentId, workspaceId }) => arbi.agents.startSession(agentId, workspaceId),
|
|
334
|
+
onSuccess: () => cache.invalidateQueries({ queryKey: ["arbi", "agent-session"] })
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
function useCloseAgentSession() {
|
|
338
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
339
|
+
const cache = reactQuery.useQueryClient();
|
|
340
|
+
return reactQuery.useMutation({
|
|
341
|
+
mutationFn: (agentId) => arbi.agents.closeSession(agentId),
|
|
342
|
+
onSuccess: () => cache.invalidateQueries({ queryKey: ["arbi", "agent-session"] })
|
|
343
|
+
});
|
|
344
|
+
}
|
|
32
345
|
function previewText(content) {
|
|
33
346
|
return content.replace(/\s+/g, " ").trim().replace(/^(?:(?:[-*•>]|#{1,6})\s+)+/, "");
|
|
34
347
|
}
|
|
@@ -78,26 +391,50 @@ var UNFINISHED_STATUSES = /* @__PURE__ */ new Set(["failed", "in_progress", "que
|
|
|
78
391
|
var FAILED_MESSAGE = "The assistant request failed.";
|
|
79
392
|
var UNFINISHED_MESSAGE = "The answer did not finish. Try again.";
|
|
80
393
|
var isUnfinished = (m) => UNFINISHED_STATUSES.has(m.status);
|
|
81
|
-
function messagesFromHistory(history) {
|
|
394
|
+
function messagesFromHistory(history, live = false) {
|
|
82
395
|
return history.filter(
|
|
83
|
-
(m) => m.role !== "system" && (m.content.trim() !== "" || m.role === "assistant" && isUnfinished(m))
|
|
396
|
+
(m) => m.role !== "system" && (m.content.trim() !== "" || m.role === "assistant" && (isUnfinished(m) || m.status === "cancelled"))
|
|
84
397
|
).map((m) => {
|
|
85
398
|
if (m.role === "user") {
|
|
86
|
-
return {
|
|
399
|
+
return {
|
|
400
|
+
id: m.external_id,
|
|
401
|
+
role: "user",
|
|
402
|
+
content: m.content,
|
|
403
|
+
status: "complete",
|
|
404
|
+
...m.created_by_ext_id ? { authorId: m.created_by_ext_id } : {},
|
|
405
|
+
...m.mentions?.length ? { mentions: m.mentions } : {}
|
|
406
|
+
};
|
|
87
407
|
}
|
|
88
408
|
const citations = toChatCitations({ tools: m.tools });
|
|
89
409
|
const unfinished = isUnfinished(m);
|
|
410
|
+
const runningElsewhere = live && (m.status === "in_progress" || m.status === "queued");
|
|
90
411
|
return {
|
|
91
412
|
id: m.external_id,
|
|
92
413
|
role: "assistant",
|
|
93
414
|
content: m.content,
|
|
94
|
-
status: unfinished ? "error" : "complete",
|
|
95
|
-
...
|
|
415
|
+
status: runningElsewhere ? "streaming" : unfinished ? "error" : "complete",
|
|
416
|
+
...m.status === "cancelled" ? { stopped: true } : {},
|
|
417
|
+
...unfinished && !runningElsewhere ? { error: m.status === "failed" ? FAILED_MESSAGE : UNFINISHED_MESSAGE } : {},
|
|
96
418
|
...unfinished ? {} : { responseId: m.external_id },
|
|
97
419
|
...citations.length > 0 ? { citations } : {}
|
|
98
420
|
};
|
|
99
421
|
});
|
|
100
422
|
}
|
|
423
|
+
function mergeHistory(history, local) {
|
|
424
|
+
const merged = [...history];
|
|
425
|
+
for (const message of local) {
|
|
426
|
+
if (!message.pendingHistory) continue;
|
|
427
|
+
const question = local.find((candidate) => candidate.id === message.questionId);
|
|
428
|
+
const pending = question?.storedId && history.some((stored) => stored.id === question.storedId) ? { ...message, questionId: question.storedId } : message;
|
|
429
|
+
const storedId = message.storedId ?? message.responseId ?? message.id;
|
|
430
|
+
const index = merged.findIndex((stored) => stored.id === storedId);
|
|
431
|
+
if (index < 0) merged.push(pending);
|
|
432
|
+
else if (message.role === "assistant" && merged[index].status === "streaming") {
|
|
433
|
+
merged[index] = pending;
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
return merged;
|
|
437
|
+
}
|
|
101
438
|
function chainId(messages) {
|
|
102
439
|
for (let i = messages.length - 1; i >= 0; i--) {
|
|
103
440
|
const m = messages[i];
|
|
@@ -118,43 +455,61 @@ var messageOf = (e, fallback) => e instanceof Error ? e.message : fallback;
|
|
|
118
455
|
var isAbort = (e) => e instanceof DOMException && e.name === "AbortError";
|
|
119
456
|
var TITLE_REFRESH_DELAYS_MS = [2500, 6e3, 12e3];
|
|
120
457
|
function useArbiChat(options = {}) {
|
|
121
|
-
const { workspaceId, model, titleLength = 48, streamRecovery } = options;
|
|
458
|
+
const { workspaceId, agentId, model, titleLength = 48, streamRecovery } = options;
|
|
122
459
|
const recoveryIntervalMs = streamRecovery?.intervalMs ?? 3e3;
|
|
123
460
|
const recoveryTimeoutMs = streamRecovery?.timeoutMs ?? 12e4;
|
|
124
461
|
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
125
|
-
const { data: docs = [], isLoading: isLoadingDocuments, refetch } =
|
|
126
|
-
const {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
462
|
+
const { data: docs = [], isLoading: isLoadingDocuments, refetch } = chunk6BLXIF4R_cjs.useDocuments(workspaceId);
|
|
463
|
+
const ordinaryHistory = chunk6BLXIF4R_cjs.useConversations(workspaceId, { enabled: !agentId, live: true });
|
|
464
|
+
const agentHistory = useAgentChats(agentId);
|
|
465
|
+
const stored = React.useMemo(
|
|
466
|
+
() => agentId ? (agentHistory.data ?? []).filter((chat) => chat.workspace_ext_id === workspaceId).map((chat) => ({
|
|
467
|
+
external_id: chat.conversation_ext_id,
|
|
468
|
+
title: chat.title,
|
|
469
|
+
updated_at: chat.updated_at,
|
|
470
|
+
message_count: 1,
|
|
471
|
+
status: null,
|
|
472
|
+
assistant_mode: "always"
|
|
473
|
+
})) : ordinaryHistory.data ?? [],
|
|
474
|
+
[agentId, agentHistory.data, ordinaryHistory.data, workspaceId]
|
|
475
|
+
);
|
|
476
|
+
const isLoadingThreads = agentId ? agentHistory.isLoading : ordinaryHistory.isLoading;
|
|
477
|
+
const refetchConversations = agentId ? agentHistory.refetch : ordinaryHistory.refetch;
|
|
478
|
+
const query = chunk6BLXIF4R_cjs.useAssistantQuery();
|
|
132
479
|
const { mutateAsync } = query;
|
|
480
|
+
const [stagedFiles, setStagedFiles] = React.useState([]);
|
|
133
481
|
const [threads, setThreads] = React.useState(() => [emptyThread()]);
|
|
134
482
|
const [activeKey, setActiveKey] = React.useState(() => threads[0].key);
|
|
135
483
|
const [deselected, setDeselected] = React.useState(/* @__PURE__ */ new Set());
|
|
136
484
|
const [isRunning, setIsRunning] = React.useState(false);
|
|
485
|
+
const [isPostingComment, setIsPostingComment] = React.useState(false);
|
|
486
|
+
const [isUpdatingAssistantMode, setIsUpdatingAssistantMode] = React.useState(false);
|
|
137
487
|
const [isUploading, setIsUploading] = React.useState(false);
|
|
138
488
|
const [uploadError, setUploadError] = React.useState(null);
|
|
139
489
|
const [historyError, setHistoryError] = React.useState(null);
|
|
140
490
|
const abortRef = React.useRef(null);
|
|
491
|
+
const runIdRef = React.useRef(null);
|
|
492
|
+
const stopRequestedRef = React.useRef(false);
|
|
141
493
|
const timersRef = React.useRef([]);
|
|
142
494
|
React.useEffect(() => {
|
|
143
495
|
const timers = timersRef.current;
|
|
144
496
|
return () => timers.forEach(clearTimeout);
|
|
145
497
|
}, []);
|
|
146
|
-
const
|
|
498
|
+
const chatScope = `${workspaceId ?? ""}:${agentId ?? ""}`;
|
|
499
|
+
const scopeRef = React.useRef(chatScope);
|
|
147
500
|
React.useEffect(() => {
|
|
148
|
-
if (scopeRef.current ===
|
|
149
|
-
scopeRef.current =
|
|
501
|
+
if (scopeRef.current === chatScope) return;
|
|
502
|
+
scopeRef.current = chatScope;
|
|
503
|
+
setStagedFiles([]);
|
|
150
504
|
const fresh = emptyThread();
|
|
151
505
|
setThreads([fresh]);
|
|
152
506
|
setActiveKey(fresh.key);
|
|
153
507
|
setDeselected(/* @__PURE__ */ new Set());
|
|
154
508
|
setUploadError(null);
|
|
155
509
|
setHistoryError(null);
|
|
156
|
-
}, [
|
|
510
|
+
}, [chatScope]);
|
|
157
511
|
const active = threads.find((t) => t.key === activeKey) ?? threads[0];
|
|
512
|
+
const assistantMode = active.assistantMode ?? stored.find((c) => c.external_id === active.conversationId)?.assistant_mode ?? "always";
|
|
158
513
|
const threadEntries = React.useMemo(() => {
|
|
159
514
|
const storedIds = new Set(stored.map((c) => c.external_id));
|
|
160
515
|
const byConversation = new Map(
|
|
@@ -162,7 +517,7 @@ function useArbiChat(options = {}) {
|
|
|
162
517
|
);
|
|
163
518
|
const fresh = threads.filter((t) => !t.conversationId);
|
|
164
519
|
const justSaved = threads.filter((t) => t.conversationId && !storedIds.has(t.conversationId));
|
|
165
|
-
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) => {
|
|
520
|
+
const persisted = [...stored].filter((c) => c.status != null || c.message_count > 0 || byConversation.has(c.external_id)).sort((a, b) => b.updated_at.localeCompare(a.updated_at)).map((c) => {
|
|
166
521
|
const local = byConversation.get(c.external_id);
|
|
167
522
|
return {
|
|
168
523
|
key: local?.key ?? c.external_id,
|
|
@@ -176,41 +531,71 @@ function useArbiChat(options = {}) {
|
|
|
176
531
|
...persisted
|
|
177
532
|
];
|
|
178
533
|
}, [threads, stored]);
|
|
534
|
+
const liveHistory = assistantMode === "mentioned" || stored.some(
|
|
535
|
+
(conversation) => conversation.external_id === active.conversationId && conversation.status === "generating"
|
|
536
|
+
) || active.messages.some((message) => message.status === "streaming");
|
|
179
537
|
const needsLoad = !!active.conversationId && !active.isLoaded;
|
|
180
|
-
const loaded =
|
|
181
|
-
enabled: needsLoad
|
|
538
|
+
const loaded = chunk6BLXIF4R_cjs.useConversationThreads(workspaceId, active.conversationId ?? void 0, {
|
|
539
|
+
enabled: needsLoad || liveHistory && !isRunning && !isPostingComment,
|
|
540
|
+
live: liveHistory
|
|
182
541
|
});
|
|
542
|
+
const refetchThread = loaded.refetch;
|
|
543
|
+
const selectedStored = stored.find(
|
|
544
|
+
(conversation) => conversation.external_id === active.conversationId
|
|
545
|
+
);
|
|
546
|
+
const historyRevision = selectedStored ? `${selectedStored.external_id}:${selectedStored.updated_at}:${selectedStored.message_count}:${selectedStored.status}` : void 0;
|
|
547
|
+
const observedHistoryRevision = React.useRef(void 0);
|
|
548
|
+
React.useEffect(() => {
|
|
549
|
+
const previous = observedHistoryRevision.current;
|
|
550
|
+
observedHistoryRevision.current = historyRevision;
|
|
551
|
+
if (previous && previous !== historyRevision && active.isLoaded && !isRunning && !isPostingComment)
|
|
552
|
+
void refetchThread();
|
|
553
|
+
}, [historyRevision, active.isLoaded, isRunning, isPostingComment, refetchThread]);
|
|
183
554
|
React.useEffect(() => {
|
|
184
555
|
const data = loaded.data;
|
|
185
|
-
if (
|
|
556
|
+
if (isRunning || isPostingComment || !data || data.conversation_ext_id !== active.conversationId)
|
|
557
|
+
return;
|
|
186
558
|
const primary = [...data.threads].sort((a, b) => b.history.length - a.history.length)[0];
|
|
187
|
-
const messages = messagesFromHistory(primary?.history ?? []);
|
|
559
|
+
const messages = messagesFromHistory(primary?.history ?? [], liveHistory);
|
|
188
560
|
setThreads(
|
|
189
561
|
(all) => all.map(
|
|
190
|
-
(t) => t.key === active.key ? {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
562
|
+
(t) => t.key === active.key ? (() => {
|
|
563
|
+
const merged = mergeHistory(messages, t.messages);
|
|
564
|
+
return {
|
|
565
|
+
...t,
|
|
566
|
+
isLoaded: true,
|
|
567
|
+
assistantMode: data.assistant_mode,
|
|
568
|
+
messages: merged,
|
|
569
|
+
responseId: chainId(merged)
|
|
570
|
+
};
|
|
571
|
+
})() : t
|
|
196
572
|
)
|
|
197
573
|
);
|
|
198
|
-
}, [
|
|
574
|
+
}, [
|
|
575
|
+
loaded.data,
|
|
576
|
+
liveHistory,
|
|
577
|
+
needsLoad,
|
|
578
|
+
active.conversationId,
|
|
579
|
+
active.key,
|
|
580
|
+
assistantMode,
|
|
581
|
+
isRunning,
|
|
582
|
+
isPostingComment
|
|
583
|
+
]);
|
|
199
584
|
React.useEffect(() => {
|
|
200
585
|
if (loaded.error)
|
|
201
586
|
setHistoryError(messageOf(loaded.error, "The conversation could not be loaded."));
|
|
202
587
|
}, [loaded.error]);
|
|
203
588
|
const selectedIds = React.useMemo(
|
|
204
|
-
() => docs.map((d) => d.external_id).filter((id) => !!id && !deselected.has(id)),
|
|
205
|
-
[docs, deselected]
|
|
589
|
+
() => (agentId ? [] : docs).map((d) => d.external_id).filter((id) => !!id && !deselected.has(id)),
|
|
590
|
+
[docs, deselected, agentId]
|
|
206
591
|
);
|
|
207
592
|
const documents = React.useMemo(
|
|
208
|
-
() => docs.filter((d) => !!d.external_id).map((d) => ({
|
|
593
|
+
() => agentId ? stagedFiles.map((file) => ({ ...file, isSelected: !deselected.has(file.id) })) : docs.filter((d) => !!d.external_id).map((d) => ({
|
|
209
594
|
id: d.external_id,
|
|
210
595
|
name: d.file_name ?? d.external_id,
|
|
211
596
|
isSelected: !deselected.has(d.external_id)
|
|
212
597
|
})),
|
|
213
|
-
[docs, deselected]
|
|
598
|
+
[docs, deselected, agentId, stagedFiles]
|
|
214
599
|
);
|
|
215
600
|
const patchThread = React.useCallback(
|
|
216
601
|
(key, patch) => setThreads((all) => all.map((t) => t.key === key ? patch(t) : t)),
|
|
@@ -253,15 +638,31 @@ function useArbiChat(options = {}) {
|
|
|
253
638
|
},
|
|
254
639
|
[arbi, recoveryIntervalMs, recoveryTimeoutMs]
|
|
255
640
|
);
|
|
641
|
+
const cancelNativeRun = React.useCallback(
|
|
642
|
+
async (responseId, controller) => {
|
|
643
|
+
try {
|
|
644
|
+
await arbi.assistant.cancelRun(responseId);
|
|
645
|
+
if (abortRef.current === controller) controller.abort();
|
|
646
|
+
} catch (error2) {
|
|
647
|
+
stopRequestedRef.current = false;
|
|
648
|
+
setHistoryError(messageOf(error2, "The agent run could not be stopped."));
|
|
649
|
+
}
|
|
650
|
+
},
|
|
651
|
+
[arbi]
|
|
652
|
+
);
|
|
256
653
|
const ask = React.useCallback(
|
|
257
|
-
async (thread, text) => {
|
|
654
|
+
async (thread, text, mentions) => {
|
|
258
655
|
const userMessage = {
|
|
656
|
+
pendingHistory: true,
|
|
657
|
+
...mentions?.length ? { mentions } : {},
|
|
259
658
|
id: nextId("msg"),
|
|
260
659
|
role: "user",
|
|
261
660
|
content: text,
|
|
262
661
|
status: "complete"
|
|
263
662
|
};
|
|
264
663
|
const answer = {
|
|
664
|
+
pendingHistory: true,
|
|
665
|
+
questionId: userMessage.id,
|
|
265
666
|
id: nextId("msg"),
|
|
266
667
|
role: "assistant",
|
|
267
668
|
content: "",
|
|
@@ -274,6 +675,8 @@ function useArbiChat(options = {}) {
|
|
|
274
675
|
}));
|
|
275
676
|
const controller = new AbortController();
|
|
276
677
|
abortRef.current = controller;
|
|
678
|
+
runIdRef.current = null;
|
|
679
|
+
stopRequestedRef.current = false;
|
|
277
680
|
setIsRunning(true);
|
|
278
681
|
let buffer = "";
|
|
279
682
|
let steps = 0;
|
|
@@ -290,15 +693,25 @@ function useArbiChat(options = {}) {
|
|
|
290
693
|
revertChain();
|
|
291
694
|
};
|
|
292
695
|
try {
|
|
696
|
+
const lastMessage2 = thread.messages[thread.messages.length - 1];
|
|
697
|
+
const parentId = lastMessage2?.role === "user" && (lastMessage2.storedId || !lastMessage2.pendingHistory) ? lastMessage2.storedId ?? lastMessage2.id : thread.responseId;
|
|
293
698
|
const result = await mutateAsync({
|
|
294
|
-
question: text,
|
|
699
|
+
question: agentId && stagedFiles.some((file) => !deselected.has(file.id)) ? text + "\n\nSource files staged in your sandbox:\n" + stagedFiles.filter((file) => !deselected.has(file.id)).map((file) => `${file.name}: ${file.id}`).join("\n") : text,
|
|
700
|
+
...agentId ? { agentId, workspaceId } : {},
|
|
295
701
|
docIds: selectedIds,
|
|
296
|
-
previousResponseId:
|
|
702
|
+
previousResponseId: parentId,
|
|
703
|
+
...thread.conversationId ? { conversationId: thread.conversationId } : {},
|
|
704
|
+
...!thread.conversationId && thread.assistantMode === "mentioned" ? { assistantMode: "mentioned" } : {},
|
|
705
|
+
...mentions?.length ? { mentions } : {},
|
|
297
706
|
model,
|
|
298
707
|
signal: controller.signal,
|
|
299
708
|
onStreamStart: (data) => {
|
|
300
709
|
if (data.assistant_message_ext_id) {
|
|
301
710
|
backendMessageId = data.assistant_message_ext_id;
|
|
711
|
+
runIdRef.current = backendMessageId;
|
|
712
|
+
if (agentId && stopRequestedRef.current)
|
|
713
|
+
void cancelNativeRun(backendMessageId, controller);
|
|
714
|
+
patchMessage(thread.key, answer.id, { storedId: backendMessageId });
|
|
302
715
|
patchThread(thread.key, (t) => ({
|
|
303
716
|
...t,
|
|
304
717
|
responseId: data.assistant_message_ext_id ?? t.responseId
|
|
@@ -307,6 +720,7 @@ function useArbiChat(options = {}) {
|
|
|
307
720
|
},
|
|
308
721
|
onUserMessage: (ev) => {
|
|
309
722
|
conversationId = conversationId ?? ev.conversation_ext_id;
|
|
723
|
+
patchMessage(thread.key, userMessage.id, { storedId: ev.external_id });
|
|
310
724
|
patchThread(thread.key, (t) => ({
|
|
311
725
|
...t,
|
|
312
726
|
conversationId: t.conversationId ?? ev.conversation_ext_id
|
|
@@ -395,30 +809,132 @@ function useArbiChat(options = {}) {
|
|
|
395
809
|
recoverStoredAnswer,
|
|
396
810
|
selectedIds,
|
|
397
811
|
model,
|
|
398
|
-
titleLength
|
|
812
|
+
titleLength,
|
|
813
|
+
agentId,
|
|
814
|
+
cancelNativeRun,
|
|
815
|
+
workspaceId,
|
|
816
|
+
stagedFiles,
|
|
817
|
+
deselected
|
|
399
818
|
]
|
|
400
819
|
);
|
|
401
820
|
const send = React.useCallback(
|
|
402
|
-
async (text) => {
|
|
821
|
+
async (text, options2) => {
|
|
403
822
|
const trimmed = text.trim();
|
|
404
|
-
if (!trimmed || isRunning || !active.isLoaded)
|
|
405
|
-
|
|
823
|
+
if (!trimmed || isRunning || isPostingComment || isUpdatingAssistantMode || !active.isLoaded)
|
|
824
|
+
return;
|
|
825
|
+
setHistoryError(null);
|
|
826
|
+
if (assistantMode === "mentioned" && !options2?.mentions?.some((m) => m.type === "assistant")) {
|
|
827
|
+
setIsPostingComment(true);
|
|
828
|
+
setHistoryError(null);
|
|
829
|
+
try {
|
|
830
|
+
const saved = await arbi.conversations.postMessage({
|
|
831
|
+
content: trimmed,
|
|
832
|
+
assistant_mode: "mentioned",
|
|
833
|
+
mentions: options2?.mentions ?? [],
|
|
834
|
+
...active.conversationId ? { conversation_ext_id: active.conversationId } : {}
|
|
835
|
+
});
|
|
836
|
+
patchThread(active.key, (t) => ({
|
|
837
|
+
...t,
|
|
838
|
+
conversationId: saved.conversation_ext_id,
|
|
839
|
+
title: t.title || titleFromQuestion(trimmed, titleLength),
|
|
840
|
+
assistantMode: "mentioned",
|
|
841
|
+
responseId: saved.external_id,
|
|
842
|
+
messages: [
|
|
843
|
+
...t.messages,
|
|
844
|
+
{
|
|
845
|
+
pendingHistory: true,
|
|
846
|
+
id: saved.external_id,
|
|
847
|
+
role: "user",
|
|
848
|
+
content: saved.content,
|
|
849
|
+
status: "complete",
|
|
850
|
+
...saved.created_by_ext_id ? { authorId: saved.created_by_ext_id } : {}
|
|
851
|
+
}
|
|
852
|
+
]
|
|
853
|
+
}));
|
|
854
|
+
await refetchConversations();
|
|
855
|
+
if (active.conversationId) await refetchThread();
|
|
856
|
+
} catch (e) {
|
|
857
|
+
setHistoryError(messageOf(e, "The comment could not be posted."));
|
|
858
|
+
throw e;
|
|
859
|
+
} finally {
|
|
860
|
+
setIsPostingComment(false);
|
|
861
|
+
}
|
|
862
|
+
return;
|
|
863
|
+
}
|
|
864
|
+
if (active.messages.some((message) => message.status === "streaming")) {
|
|
865
|
+
const message = "An assistant reply is already running in this thread. You can still post a comment.";
|
|
866
|
+
setHistoryError(message);
|
|
867
|
+
throw new Error(message);
|
|
868
|
+
}
|
|
869
|
+
await ask(active, trimmed, options2?.mentions);
|
|
406
870
|
},
|
|
407
|
-
[
|
|
871
|
+
[
|
|
872
|
+
active,
|
|
873
|
+
ask,
|
|
874
|
+
isRunning,
|
|
875
|
+
isPostingComment,
|
|
876
|
+
isUpdatingAssistantMode,
|
|
877
|
+
assistantMode,
|
|
878
|
+
arbi,
|
|
879
|
+
patchThread,
|
|
880
|
+
titleLength,
|
|
881
|
+
refetchConversations,
|
|
882
|
+
refetchThread
|
|
883
|
+
]
|
|
408
884
|
);
|
|
409
|
-
const
|
|
885
|
+
const setAssistantMode = React.useCallback(
|
|
886
|
+
async (mode) => {
|
|
887
|
+
if (isRunning || isPostingComment || isUpdatingAssistantMode) return;
|
|
888
|
+
setIsUpdatingAssistantMode(true);
|
|
889
|
+
setHistoryError(null);
|
|
890
|
+
try {
|
|
891
|
+
if (active.conversationId) {
|
|
892
|
+
await arbi.conversations.setAssistantMode(active.conversationId, mode);
|
|
893
|
+
await refetchThread();
|
|
894
|
+
}
|
|
895
|
+
patchThread(active.key, (t) => ({ ...t, assistantMode: mode }));
|
|
896
|
+
await refetchConversations();
|
|
897
|
+
} catch (e) {
|
|
898
|
+
setHistoryError(messageOf(e, "The assistant mode could not be changed."));
|
|
899
|
+
} finally {
|
|
900
|
+
setIsUpdatingAssistantMode(false);
|
|
901
|
+
}
|
|
902
|
+
},
|
|
903
|
+
[
|
|
904
|
+
active,
|
|
905
|
+
arbi,
|
|
906
|
+
patchThread,
|
|
907
|
+
refetchConversations,
|
|
908
|
+
refetchThread,
|
|
909
|
+
isRunning,
|
|
910
|
+
isPostingComment,
|
|
911
|
+
isUpdatingAssistantMode
|
|
912
|
+
]
|
|
913
|
+
);
|
|
914
|
+
const stop = React.useCallback(() => {
|
|
915
|
+
const controller = abortRef.current;
|
|
916
|
+
if (!controller) return;
|
|
917
|
+
if (!agentId) {
|
|
918
|
+
controller.abort();
|
|
919
|
+
return;
|
|
920
|
+
}
|
|
921
|
+
stopRequestedRef.current = true;
|
|
922
|
+
if (runIdRef.current) void cancelNativeRun(runIdRef.current, controller);
|
|
923
|
+
}, [agentId, cancelNativeRun]);
|
|
410
924
|
const lastMessage = active.messages[active.messages.length - 1];
|
|
411
925
|
const error = lastMessage?.status === "error" ? lastMessage.error ?? null : null;
|
|
412
926
|
const retry = React.useCallback(async () => {
|
|
413
927
|
if (isRunning) return;
|
|
414
928
|
const messages = active.messages;
|
|
415
929
|
const failed = messages[messages.length - 1];
|
|
416
|
-
const question = messages[messages.length - 2];
|
|
930
|
+
const question = failed?.questionId ? messages.find((message) => message.id === failed.questionId) : messages[messages.length - 2];
|
|
417
931
|
if (failed?.status !== "error" || question?.role !== "user") return;
|
|
418
|
-
const rest = messages.
|
|
932
|
+
const rest = messages.filter(
|
|
933
|
+
(message) => message.id !== failed.id && message.id !== question.id
|
|
934
|
+
);
|
|
419
935
|
const trimmed = { ...active, messages: rest, responseId: chainId(rest) };
|
|
420
936
|
patchThread(active.key, () => trimmed);
|
|
421
|
-
await ask(trimmed, question.content);
|
|
937
|
+
await ask(trimmed, question.content, question.mentions);
|
|
422
938
|
}, [active, ask, isRunning, patchThread]);
|
|
423
939
|
const newThread = React.useCallback(() => {
|
|
424
940
|
setHistoryError(null);
|
|
@@ -481,17 +997,29 @@ function useArbiChat(options = {}) {
|
|
|
481
997
|
setIsUploading(true);
|
|
482
998
|
setUploadError(null);
|
|
483
999
|
try {
|
|
484
|
-
for (const file of files)
|
|
485
|
-
|
|
1000
|
+
for (const file of files) {
|
|
1001
|
+
if (agentId) {
|
|
1002
|
+
const staged = await arbi.agents.stageFile(agentId, file, file.name);
|
|
1003
|
+
setStagedFiles((all) => [
|
|
1004
|
+
...all.filter((existing) => existing.id !== staged.path),
|
|
1005
|
+
{ id: staged.path, name: staged.name }
|
|
1006
|
+
]);
|
|
1007
|
+
} else await arbi.documents.uploadFile(file, file.name);
|
|
1008
|
+
}
|
|
1009
|
+
if (!agentId) await refetch();
|
|
486
1010
|
} catch (e) {
|
|
487
1011
|
setUploadError(messageOf(e, "The upload failed."));
|
|
488
1012
|
} finally {
|
|
489
1013
|
setIsUploading(false);
|
|
490
1014
|
}
|
|
491
1015
|
},
|
|
492
|
-
[arbi, refetch]
|
|
1016
|
+
[arbi, refetch, agentId]
|
|
493
1017
|
);
|
|
494
1018
|
return {
|
|
1019
|
+
assistantMode,
|
|
1020
|
+
isUpdatingAssistantMode,
|
|
1021
|
+
isPostingComment,
|
|
1022
|
+
setAssistantMode,
|
|
495
1023
|
threads: threadEntries.map(({ id, title }) => ({ id, title })),
|
|
496
1024
|
activeThreadId: publicId(active),
|
|
497
1025
|
messages: active.messages,
|
|
@@ -784,14 +1312,14 @@ function useArbiDocumentSync(workspaceId) {
|
|
|
784
1312
|
if (!workspaceId) return;
|
|
785
1313
|
if (client.isMessageType(msg, "batch_complete")) {
|
|
786
1314
|
if (msg.workspace_ext_id !== workspaceId) return;
|
|
787
|
-
void queryClient.invalidateQueries({ queryKey:
|
|
788
|
-
void queryClient.invalidateQueries({ queryKey:
|
|
1315
|
+
void queryClient.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.documents(workspaceId) });
|
|
1316
|
+
void queryClient.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.tags(workspaceId) });
|
|
789
1317
|
return;
|
|
790
1318
|
}
|
|
791
1319
|
if (client.isMessageType(msg, "task_update")) {
|
|
792
1320
|
if (msg.workspace_ext_id !== workspaceId) return;
|
|
793
1321
|
if (TERMINAL_STATUSES.has(msg.status)) {
|
|
794
|
-
void queryClient.invalidateQueries({ queryKey:
|
|
1322
|
+
void queryClient.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.documents(workspaceId) });
|
|
795
1323
|
}
|
|
796
1324
|
}
|
|
797
1325
|
});
|
|
@@ -825,342 +1353,119 @@ function recency(workspace, lastOpened) {
|
|
|
825
1353
|
const opened = lastOpened?.[workspace.id];
|
|
826
1354
|
if (opened !== void 0) return opened;
|
|
827
1355
|
const updated = Date.parse(workspace.updatedAt ?? "");
|
|
828
|
-
return Number.isNaN(updated) ? 0 : updated;
|
|
829
|
-
}
|
|
830
|
-
function resolveActiveWorkspace(items, selectedId, options = {}) {
|
|
831
|
-
const selected = selectedId ? items.find((w) => w.id === selectedId) : void 0;
|
|
832
|
-
if (selected) return selected;
|
|
833
|
-
if (options.isSeed && options.seedActiveId) {
|
|
834
|
-
const seeded = items.find((w) => w.id === options.seedActiveId);
|
|
835
|
-
if (seeded) return seeded;
|
|
836
|
-
}
|
|
837
|
-
return items[0];
|
|
838
|
-
}
|
|
839
|
-
function pickRecentWorkspaces(items, activeId, options = {}) {
|
|
840
|
-
const { limit = 4, lastOpened, formatLastSeen } = options;
|
|
841
|
-
return items.filter((w) => w.id !== activeId).map((w) => ({ w, at: recency(w, lastOpened) })).sort((a, b) => b.at - a.at).slice(0, limit).map(({ w, at }) => formatLastSeen ? { ...w, lastSeen: formatLastSeen(at) } : w);
|
|
842
|
-
}
|
|
843
|
-
|
|
844
|
-
// src/workspaces/useShellWorkspaces.ts
|
|
845
|
-
function useShellWorkspaces(options) {
|
|
846
|
-
const {
|
|
847
|
-
workspaces,
|
|
848
|
-
isLoading = false,
|
|
849
|
-
loadError,
|
|
850
|
-
selectedId,
|
|
851
|
-
seed,
|
|
852
|
-
decorate,
|
|
853
|
-
recentLimit,
|
|
854
|
-
lastOpened,
|
|
855
|
-
formatLastSeen
|
|
856
|
-
} = options;
|
|
857
|
-
const live = React.useMemo(
|
|
858
|
-
() => (workspaces ?? []).map((source) => {
|
|
859
|
-
const item = toShellWorkspace(source);
|
|
860
|
-
return decorate ? { ...item, ...decorate(item, source) } : item;
|
|
861
|
-
}),
|
|
862
|
-
[workspaces, decorate]
|
|
863
|
-
);
|
|
864
|
-
const isLive = live.length > 0;
|
|
865
|
-
const isSeed = !isLive && !isLoading && !!seed;
|
|
866
|
-
const items = React.useMemo(
|
|
867
|
-
() => isLive ? live : isSeed ? [...seed.workspaces] : [],
|
|
868
|
-
[isLive, live, isSeed, seed]
|
|
869
|
-
);
|
|
870
|
-
const active = React.useMemo(
|
|
871
|
-
() => resolveActiveWorkspace(items, selectedId, { isSeed, seedActiveId: seed?.activeId }),
|
|
872
|
-
[items, selectedId, isSeed, seed?.activeId]
|
|
873
|
-
);
|
|
874
|
-
const recent = React.useMemo(
|
|
875
|
-
() => pickRecentWorkspaces(items, active?.id, { limit: recentLimit, lastOpened, formatLastSeen }),
|
|
876
|
-
[items, active?.id, recentLimit, lastOpened, formatLastSeen]
|
|
877
|
-
);
|
|
878
|
-
const [openingId, setOpeningId] = React.useState(null);
|
|
879
|
-
const [openError, setOpenError] = React.useState(void 0);
|
|
880
|
-
const callbacks = React.useRef({
|
|
881
|
-
select: options.select,
|
|
882
|
-
onOpened: options.onOpened,
|
|
883
|
-
onOpenError: options.onOpenError
|
|
884
|
-
});
|
|
885
|
-
callbacks.current = {
|
|
886
|
-
select: options.select,
|
|
887
|
-
onOpened: options.onOpened,
|
|
888
|
-
onOpenError: options.onOpenError
|
|
889
|
-
};
|
|
890
|
-
const itemsRef = React.useRef(items);
|
|
891
|
-
itemsRef.current = items;
|
|
892
|
-
const open = React.useCallback(async (target) => {
|
|
893
|
-
const id = typeof target === "string" ? target : target.id;
|
|
894
|
-
const workspace = itemsRef.current.find((w) => w.id === id);
|
|
895
|
-
if (!workspace) return false;
|
|
896
|
-
setOpenError(void 0);
|
|
897
|
-
setOpeningId(id);
|
|
898
|
-
try {
|
|
899
|
-
await callbacks.current.select(workspace);
|
|
900
|
-
} catch (err) {
|
|
901
|
-
setOpenError(err);
|
|
902
|
-
setOpeningId(null);
|
|
903
|
-
callbacks.current.onOpenError?.(err, workspace);
|
|
904
|
-
return false;
|
|
905
|
-
}
|
|
906
|
-
setOpeningId(null);
|
|
907
|
-
callbacks.current.onOpened?.(workspace);
|
|
908
|
-
return true;
|
|
909
|
-
}, []);
|
|
910
|
-
return {
|
|
911
|
-
items,
|
|
912
|
-
active,
|
|
913
|
-
recent,
|
|
914
|
-
isLive,
|
|
915
|
-
isLoading,
|
|
916
|
-
error: openError ?? loadError ?? null,
|
|
917
|
-
openingId,
|
|
918
|
-
open
|
|
919
|
-
};
|
|
920
|
-
}
|
|
921
|
-
function useArbiShellWorkspaces(options = {}) {
|
|
922
|
-
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
923
|
-
const query = chunkKXIIARRK_cjs.useWorkspaces();
|
|
924
|
-
const { select, ...rest } = options;
|
|
925
|
-
const defaultSelect = React.useCallback(
|
|
926
|
-
(workspace) => arbi.selectWorkspace(workspace.id),
|
|
927
|
-
[arbi]
|
|
928
|
-
);
|
|
929
|
-
return useShellWorkspaces({
|
|
930
|
-
...rest,
|
|
931
|
-
workspaces: Array.isArray(query.data) ? query.data : void 0,
|
|
932
|
-
isLoading: query.isLoading,
|
|
933
|
-
loadError: query.error,
|
|
934
|
-
select: select ?? defaultSelect
|
|
935
|
-
});
|
|
936
|
-
}
|
|
937
|
-
function useUpdateConversation() {
|
|
938
|
-
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
939
|
-
const qc = reactQuery.useQueryClient();
|
|
940
|
-
return reactQuery.useMutation({
|
|
941
|
-
mutationFn: ({
|
|
942
|
-
conversationId,
|
|
943
|
-
patch
|
|
944
|
-
}) => arbi.conversations.update(conversationId, patch),
|
|
945
|
-
onSuccess: () => qc.invalidateQueries({ queryKey: chunkKXIIARRK_cjs.arbiQueryKeys.allConversations() })
|
|
946
|
-
});
|
|
947
|
-
}
|
|
948
|
-
function useCreateWork() {
|
|
949
|
-
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
950
|
-
const qc = reactQuery.useQueryClient();
|
|
951
|
-
return reactQuery.useMutation({
|
|
952
|
-
mutationFn: (body) => arbi.conversations.createWork(body),
|
|
953
|
-
onSuccess: () => qc.invalidateQueries({ queryKey: chunkKXIIARRK_cjs.arbiQueryKeys.allConversations() })
|
|
954
|
-
});
|
|
955
|
-
}
|
|
956
|
-
function useRunConversation() {
|
|
957
|
-
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
958
|
-
const qc = reactQuery.useQueryClient();
|
|
959
|
-
return reactQuery.useMutation({
|
|
960
|
-
mutationFn: (conversationId) => arbi.conversations.runWithAuth(conversationId),
|
|
961
|
-
onSuccess: () => qc.invalidateQueries({ queryKey: chunkKXIIARRK_cjs.arbiQueryKeys.allConversations() })
|
|
962
|
-
});
|
|
963
|
-
}
|
|
964
|
-
function useReviewConversation() {
|
|
965
|
-
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
966
|
-
const qc = reactQuery.useQueryClient();
|
|
967
|
-
return reactQuery.useMutation({
|
|
968
|
-
mutationFn: ({
|
|
969
|
-
conversationId,
|
|
970
|
-
review
|
|
971
|
-
}) => arbi.conversations.review(conversationId, review),
|
|
972
|
-
onSuccess: () => qc.invalidateQueries({ queryKey: chunkKXIIARRK_cjs.arbiQueryKeys.allConversations() })
|
|
973
|
-
});
|
|
974
|
-
}
|
|
975
|
-
function useRequestConversationApproval() {
|
|
976
|
-
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
977
|
-
const qc = reactQuery.useQueryClient();
|
|
978
|
-
return reactQuery.useMutation({
|
|
979
|
-
mutationFn: ({
|
|
980
|
-
conversationId,
|
|
981
|
-
request
|
|
982
|
-
}) => arbi.conversations.requestApproval(conversationId, request),
|
|
983
|
-
onSuccess: () => qc.invalidateQueries({ queryKey: chunkKXIIARRK_cjs.arbiQueryKeys.allConversations() })
|
|
984
|
-
});
|
|
985
|
-
}
|
|
986
|
-
function usePlanWork() {
|
|
987
|
-
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
988
|
-
return reactQuery.useMutation({
|
|
989
|
-
mutationFn: (body) => arbi.conversations.plan(body)
|
|
990
|
-
});
|
|
991
|
-
}
|
|
992
|
-
function useConversationPendingAuth(conversationId, options) {
|
|
993
|
-
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
994
|
-
return reactQuery.useQuery({
|
|
995
|
-
queryKey: [...chunkKXIIARRK_cjs.arbiQueryKeys.allConversations(), conversationId ?? "", "pending-auth"],
|
|
996
|
-
queryFn: () => arbi.conversations.pendingAuth(conversationId),
|
|
997
|
-
enabled: (options?.enabled ?? true) && !!conversationId && arbi.isLoggedIn,
|
|
998
|
-
retry: false
|
|
999
|
-
});
|
|
1000
|
-
}
|
|
1001
|
-
function useConversationActivity(conversationId, options) {
|
|
1002
|
-
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
1003
|
-
return reactQuery.useQuery({
|
|
1004
|
-
queryKey: [...chunkKXIIARRK_cjs.arbiQueryKeys.allConversations(), conversationId ?? "", "activity"],
|
|
1005
|
-
queryFn: () => arbi.conversations.activity(conversationId),
|
|
1006
|
-
enabled: (options?.enabled ?? true) && !!conversationId && arbi.isLoggedIn,
|
|
1007
|
-
refetchInterval: options?.live ? 2500 : false
|
|
1008
|
-
});
|
|
1009
|
-
}
|
|
1010
|
-
function useWorkflows(options) {
|
|
1011
|
-
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
1012
|
-
return reactQuery.useQuery({
|
|
1013
|
-
queryKey: chunkKXIIARRK_cjs.arbiQueryKeys.workflows(),
|
|
1014
|
-
queryFn: () => arbi.workflows.list(),
|
|
1015
|
-
enabled: options?.enabled ?? arbi.isLoggedIn
|
|
1016
|
-
});
|
|
1017
|
-
}
|
|
1018
|
-
function useCreateWorkflow() {
|
|
1019
|
-
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
1020
|
-
const qc = reactQuery.useQueryClient();
|
|
1021
|
-
return reactQuery.useMutation({
|
|
1022
|
-
mutationFn: (body) => arbi.workflows.create(body),
|
|
1023
|
-
onSuccess: () => qc.invalidateQueries({ queryKey: chunkKXIIARRK_cjs.arbiQueryKeys.workflows() })
|
|
1024
|
-
});
|
|
1025
|
-
}
|
|
1026
|
-
function useUpdateWorkflow() {
|
|
1027
|
-
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
1028
|
-
const qc = reactQuery.useQueryClient();
|
|
1029
|
-
return reactQuery.useMutation({
|
|
1030
|
-
mutationFn: ({
|
|
1031
|
-
workflowId,
|
|
1032
|
-
patch
|
|
1033
|
-
}) => arbi.workflows.update(workflowId, patch),
|
|
1034
|
-
onSuccess: () => qc.invalidateQueries({ queryKey: chunkKXIIARRK_cjs.arbiQueryKeys.workflows() })
|
|
1035
|
-
});
|
|
1036
|
-
}
|
|
1037
|
-
function useDeleteWorkflow() {
|
|
1038
|
-
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
1039
|
-
const qc = reactQuery.useQueryClient();
|
|
1040
|
-
return reactQuery.useMutation({
|
|
1041
|
-
mutationFn: (workflowId) => arbi.workflows.delete(workflowId),
|
|
1042
|
-
onSuccess: () => qc.invalidateQueries({ queryKey: chunkKXIIARRK_cjs.arbiQueryKeys.workflows() })
|
|
1043
|
-
});
|
|
1044
|
-
}
|
|
1045
|
-
function useRunWorkflow() {
|
|
1046
|
-
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
1047
|
-
const qc = reactQuery.useQueryClient();
|
|
1048
|
-
return reactQuery.useMutation({
|
|
1049
|
-
mutationFn: (workflowId) => arbi.workflows.run(workflowId),
|
|
1050
|
-
onSuccess: () => Promise.all([
|
|
1051
|
-
qc.invalidateQueries({ queryKey: chunkKXIIARRK_cjs.arbiQueryKeys.workflows() }),
|
|
1052
|
-
qc.invalidateQueries({ queryKey: chunkKXIIARRK_cjs.arbiQueryKeys.allConversations() })
|
|
1053
|
-
])
|
|
1054
|
-
});
|
|
1055
|
-
}
|
|
1056
|
-
function useCreateAgent() {
|
|
1057
|
-
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
1058
|
-
const qc = reactQuery.useQueryClient();
|
|
1059
|
-
return reactQuery.useMutation({
|
|
1060
|
-
mutationFn: (name) => arbi.agents.create(name),
|
|
1061
|
-
onSuccess: () => qc.invalidateQueries({ queryKey: chunkKXIIARRK_cjs.arbiQueryKeys.agents() })
|
|
1062
|
-
});
|
|
1063
|
-
}
|
|
1064
|
-
function useAgentConfig(agentExtId, options) {
|
|
1065
|
-
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
1066
|
-
return reactQuery.useQuery({
|
|
1067
|
-
queryKey: chunkKXIIARRK_cjs.arbiQueryKeys.agentConfig(agentExtId),
|
|
1068
|
-
queryFn: async () => agentExtId ? await arbi.agents.getConfig(agentExtId) : await arbi.agentConfig.get("default"),
|
|
1069
|
-
enabled: (options?.enabled ?? true) && arbi.isLoggedIn
|
|
1070
|
-
});
|
|
1071
|
-
}
|
|
1072
|
-
function useAgentModels(options) {
|
|
1073
|
-
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
1074
|
-
return reactQuery.useQuery({
|
|
1075
|
-
queryKey: chunkKXIIARRK_cjs.arbiQueryKeys.models(),
|
|
1076
|
-
queryFn: async () => (await arbi.agentConfig.getModels()).models.map((m) => m.model_name),
|
|
1077
|
-
enabled: (options?.enabled ?? true) && arbi.isLoggedIn
|
|
1078
|
-
});
|
|
1079
|
-
}
|
|
1080
|
-
function useSaveAgentConfig() {
|
|
1081
|
-
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
1082
|
-
const qc = reactQuery.useQueryClient();
|
|
1083
|
-
return reactQuery.useMutation({
|
|
1084
|
-
mutationFn: async ({ agentExtId, title, sections }) => {
|
|
1085
|
-
const pinned = await arbi.agents.getConfig(agentExtId);
|
|
1086
|
-
const base = pinned ?? await arbi.agentConfig.get("default");
|
|
1087
|
-
const merged = structuredClone(base);
|
|
1088
|
-
for (const [section, params] of Object.entries(sections)) {
|
|
1089
|
-
merged[section] = { ...merged[section] ?? {}, ...params };
|
|
1090
|
-
}
|
|
1091
|
-
return arbi.agentConfig.save({
|
|
1092
|
-
...merged,
|
|
1093
|
-
agent_ext_id: agentExtId,
|
|
1094
|
-
title: title ?? `agent-${agentExtId}`
|
|
1095
|
-
});
|
|
1096
|
-
},
|
|
1097
|
-
onSuccess: (_saved, { agentExtId }) => Promise.all([
|
|
1098
|
-
qc.invalidateQueries({ queryKey: chunkKXIIARRK_cjs.arbiQueryKeys.configs() }),
|
|
1099
|
-
qc.invalidateQueries({ queryKey: chunkKXIIARRK_cjs.arbiQueryKeys.agentConfig(agentExtId) }),
|
|
1100
|
-
// The agent list shows the pinned persona/model, so it refreshes too.
|
|
1101
|
-
qc.invalidateQueries({ queryKey: chunkKXIIARRK_cjs.arbiQueryKeys.agents() })
|
|
1102
|
-
])
|
|
1103
|
-
});
|
|
1104
|
-
}
|
|
1105
|
-
function useAgentWorkspaces(agentExtId, options) {
|
|
1106
|
-
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
1107
|
-
return reactQuery.useQuery({
|
|
1108
|
-
queryKey: chunkKXIIARRK_cjs.arbiQueryKeys.agentWorkspaces(agentExtId ?? ""),
|
|
1109
|
-
queryFn: () => arbi.agents.listWorkspaces(agentExtId),
|
|
1110
|
-
enabled: (options?.enabled ?? true) && !!agentExtId && arbi.isLoggedIn
|
|
1111
|
-
});
|
|
1356
|
+
return Number.isNaN(updated) ? 0 : updated;
|
|
1112
1357
|
}
|
|
1113
|
-
function
|
|
1114
|
-
const
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
}) => {
|
|
1122
|
-
if (mode.kind === "temporary") {
|
|
1123
|
-
return arbi.agents.grantTemporaryAccess(agentExtId, workspaceId, mode.ttlSeconds);
|
|
1124
|
-
}
|
|
1125
|
-
const agent = (await arbi.agents.list()).find((a) => a.external_id === agentExtId);
|
|
1126
|
-
if (!agent?.email) throw new Error("The agent's address is unknown.");
|
|
1127
|
-
return arbi.workspaces.grantAccess({ workspaceId, emails: [agent.email] });
|
|
1128
|
-
},
|
|
1129
|
-
onSuccess: (_res, { agentExtId }) => qc.invalidateQueries({ queryKey: chunkKXIIARRK_cjs.arbiQueryKeys.agentWorkspaces(agentExtId) })
|
|
1130
|
-
});
|
|
1358
|
+
function resolveActiveWorkspace(items, selectedId, options = {}) {
|
|
1359
|
+
const selected = selectedId ? items.find((w) => w.id === selectedId) : void 0;
|
|
1360
|
+
if (selected) return selected;
|
|
1361
|
+
if (options.isSeed && options.seedActiveId) {
|
|
1362
|
+
const seeded = items.find((w) => w.id === options.seedActiveId);
|
|
1363
|
+
if (seeded) return seeded;
|
|
1364
|
+
}
|
|
1365
|
+
return items[0];
|
|
1131
1366
|
}
|
|
1132
|
-
function
|
|
1133
|
-
const
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1367
|
+
function pickRecentWorkspaces(items, activeId, options = {}) {
|
|
1368
|
+
const { limit = 4, lastOpened, formatLastSeen } = options;
|
|
1369
|
+
return items.filter((w) => w.id !== activeId).map((w) => ({ w, at: recency(w, lastOpened) })).sort((a, b) => b.at - a.at).slice(0, limit).map(({ w, at }) => formatLastSeen ? { ...w, lastSeen: formatLastSeen(at) } : w);
|
|
1370
|
+
}
|
|
1371
|
+
|
|
1372
|
+
// src/workspaces/useShellWorkspaces.ts
|
|
1373
|
+
function useShellWorkspaces(options) {
|
|
1374
|
+
const {
|
|
1375
|
+
workspaces,
|
|
1376
|
+
isLoading = false,
|
|
1377
|
+
loadError,
|
|
1378
|
+
selectedId,
|
|
1379
|
+
seed,
|
|
1380
|
+
decorate,
|
|
1381
|
+
recentLimit,
|
|
1382
|
+
lastOpened,
|
|
1383
|
+
formatLastSeen
|
|
1384
|
+
} = options;
|
|
1385
|
+
const live = React.useMemo(
|
|
1386
|
+
() => (workspaces ?? []).map((source) => {
|
|
1387
|
+
const item = toShellWorkspace(source);
|
|
1388
|
+
return decorate ? { ...item, ...decorate(item, source) } : item;
|
|
1389
|
+
}),
|
|
1390
|
+
[workspaces, decorate]
|
|
1391
|
+
);
|
|
1392
|
+
const isLive = live.length > 0;
|
|
1393
|
+
const isSeed = !isLive && !isLoading && !!seed;
|
|
1394
|
+
const items = React.useMemo(
|
|
1395
|
+
() => isLive ? live : isSeed ? [...seed.workspaces] : [],
|
|
1396
|
+
[isLive, live, isSeed, seed]
|
|
1397
|
+
);
|
|
1398
|
+
const active = React.useMemo(
|
|
1399
|
+
() => resolveActiveWorkspace(items, selectedId, { isSeed, seedActiveId: seed?.activeId }),
|
|
1400
|
+
[items, selectedId, isSeed, seed?.activeId]
|
|
1401
|
+
);
|
|
1402
|
+
const recent = React.useMemo(
|
|
1403
|
+
() => pickRecentWorkspaces(items, active?.id, { limit: recentLimit, lastOpened, formatLastSeen }),
|
|
1404
|
+
[items, active?.id, recentLimit, lastOpened, formatLastSeen]
|
|
1405
|
+
);
|
|
1406
|
+
const [openingId, setOpeningId] = React.useState(null);
|
|
1407
|
+
const [openError, setOpenError] = React.useState(void 0);
|
|
1408
|
+
const callbacks = React.useRef({
|
|
1409
|
+
select: options.select,
|
|
1410
|
+
onOpened: options.onOpened,
|
|
1411
|
+
onOpenError: options.onOpenError
|
|
1149
1412
|
});
|
|
1413
|
+
callbacks.current = {
|
|
1414
|
+
select: options.select,
|
|
1415
|
+
onOpened: options.onOpened,
|
|
1416
|
+
onOpenError: options.onOpenError
|
|
1417
|
+
};
|
|
1418
|
+
const itemsRef = React.useRef(items);
|
|
1419
|
+
itemsRef.current = items;
|
|
1420
|
+
const open = React.useCallback(async (target) => {
|
|
1421
|
+
const id = typeof target === "string" ? target : target.id;
|
|
1422
|
+
const workspace = itemsRef.current.find((w) => w.id === id);
|
|
1423
|
+
if (!workspace) return false;
|
|
1424
|
+
setOpenError(void 0);
|
|
1425
|
+
setOpeningId(id);
|
|
1426
|
+
try {
|
|
1427
|
+
await callbacks.current.select(workspace);
|
|
1428
|
+
} catch (err) {
|
|
1429
|
+
setOpenError(err);
|
|
1430
|
+
setOpeningId(null);
|
|
1431
|
+
callbacks.current.onOpenError?.(err, workspace);
|
|
1432
|
+
return false;
|
|
1433
|
+
}
|
|
1434
|
+
setOpeningId(null);
|
|
1435
|
+
callbacks.current.onOpened?.(workspace);
|
|
1436
|
+
return true;
|
|
1437
|
+
}, []);
|
|
1438
|
+
return {
|
|
1439
|
+
items,
|
|
1440
|
+
active,
|
|
1441
|
+
recent,
|
|
1442
|
+
isLive,
|
|
1443
|
+
isLoading,
|
|
1444
|
+
error: openError ?? loadError ?? null,
|
|
1445
|
+
openingId,
|
|
1446
|
+
open
|
|
1447
|
+
};
|
|
1150
1448
|
}
|
|
1151
|
-
function
|
|
1449
|
+
function useArbiShellWorkspaces(options = {}) {
|
|
1152
1450
|
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1451
|
+
const query = chunk6BLXIF4R_cjs.useWorkspaces();
|
|
1452
|
+
const { select, ...rest } = options;
|
|
1453
|
+
const defaultSelect = React.useCallback(
|
|
1454
|
+
(workspace) => arbi.selectWorkspace(workspace.id),
|
|
1455
|
+
[arbi]
|
|
1456
|
+
);
|
|
1457
|
+
return useShellWorkspaces({
|
|
1458
|
+
...rest,
|
|
1459
|
+
workspaces: Array.isArray(query.data) ? query.data : void 0,
|
|
1460
|
+
isLoading: query.isLoading,
|
|
1461
|
+
loadError: query.error,
|
|
1462
|
+
select: select ?? defaultSelect
|
|
1158
1463
|
});
|
|
1159
1464
|
}
|
|
1160
1465
|
function useContacts(options) {
|
|
1161
1466
|
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
1162
1467
|
return reactQuery.useQuery({
|
|
1163
|
-
queryKey:
|
|
1468
|
+
queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.contacts(),
|
|
1164
1469
|
queryFn: () => arbi.contacts.list(),
|
|
1165
1470
|
enabled: (options?.enabled ?? true) && arbi.isLoggedIn
|
|
1166
1471
|
});
|
|
@@ -1180,7 +1485,7 @@ function useAddContacts() {
|
|
|
1180
1485
|
const qc = reactQuery.useQueryClient();
|
|
1181
1486
|
return reactQuery.useMutation({
|
|
1182
1487
|
mutationFn: (emails) => arbi.contacts.add(emails),
|
|
1183
|
-
onSuccess: () => qc.invalidateQueries({ queryKey:
|
|
1488
|
+
onSuccess: () => qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.contacts() })
|
|
1184
1489
|
});
|
|
1185
1490
|
}
|
|
1186
1491
|
function useRemoveContacts() {
|
|
@@ -1188,7 +1493,7 @@ function useRemoveContacts() {
|
|
|
1188
1493
|
const qc = reactQuery.useQueryClient();
|
|
1189
1494
|
return reactQuery.useMutation({
|
|
1190
1495
|
mutationFn: (contactIds) => arbi.contacts.remove(contactIds),
|
|
1191
|
-
onSuccess: () => qc.invalidateQueries({ queryKey:
|
|
1496
|
+
onSuccess: () => qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.contacts() })
|
|
1192
1497
|
});
|
|
1193
1498
|
}
|
|
1194
1499
|
function toProfileView(profile) {
|
|
@@ -1200,7 +1505,7 @@ function toProfileView(profile) {
|
|
|
1200
1505
|
function useProfile(options) {
|
|
1201
1506
|
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
1202
1507
|
return reactQuery.useQuery({
|
|
1203
|
-
queryKey:
|
|
1508
|
+
queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.profile(),
|
|
1204
1509
|
queryFn: () => {
|
|
1205
1510
|
const profile = arbi.user.profile();
|
|
1206
1511
|
return profile ? toProfileView(profile) : null;
|
|
@@ -1223,8 +1528,8 @@ function useUpdateProfile() {
|
|
|
1223
1528
|
return profile ? toProfileView(profile) : null;
|
|
1224
1529
|
},
|
|
1225
1530
|
onSuccess: (profile) => {
|
|
1226
|
-
qc.setQueryData(
|
|
1227
|
-
return qc.invalidateQueries({ queryKey:
|
|
1531
|
+
qc.setQueryData(chunk6BLXIF4R_cjs.arbiQueryKeys.profile(), profile);
|
|
1532
|
+
return qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.workspaces() });
|
|
1228
1533
|
}
|
|
1229
1534
|
});
|
|
1230
1535
|
}
|
|
@@ -1309,7 +1614,7 @@ function useConfirmEmailChange() {
|
|
|
1309
1614
|
mutationFn: ({ newEmail, code }) => arbi.account.confirmEmailChange(newEmail, code),
|
|
1310
1615
|
onSuccess: () => {
|
|
1311
1616
|
const profile = arbi.user.profile();
|
|
1312
|
-
qc.setQueryData(
|
|
1617
|
+
qc.setQueryData(chunk6BLXIF4R_cjs.arbiQueryKeys.profile(), profile ? toProfileView(profile) : null);
|
|
1313
1618
|
}
|
|
1314
1619
|
});
|
|
1315
1620
|
}
|
|
@@ -1478,7 +1783,7 @@ function toNotificationPreferences(stored, keys) {
|
|
|
1478
1783
|
function useUserSettings(options) {
|
|
1479
1784
|
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
1480
1785
|
return reactQuery.useQuery({
|
|
1481
|
-
queryKey:
|
|
1786
|
+
queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.userSettings(),
|
|
1482
1787
|
queryFn: () => arbi.settings.get(),
|
|
1483
1788
|
enabled: (options?.enabled ?? true) && arbi.isLoggedIn
|
|
1484
1789
|
});
|
|
@@ -1491,18 +1796,18 @@ function useNotificationPreferences(keys, options) {
|
|
|
1491
1796
|
const save = reactQuery.useMutation({
|
|
1492
1797
|
mutationFn: (patch) => arbi.settings.update({ email_notifications: patch }),
|
|
1493
1798
|
onMutate: async (patch) => {
|
|
1494
|
-
await qc.cancelQueries({ queryKey:
|
|
1495
|
-
const previous = qc.getQueryData(
|
|
1799
|
+
await qc.cancelQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.userSettings() });
|
|
1800
|
+
const previous = qc.getQueryData(chunk6BLXIF4R_cjs.arbiQueryKeys.userSettings());
|
|
1496
1801
|
qc.setQueryData(
|
|
1497
|
-
|
|
1802
|
+
chunk6BLXIF4R_cjs.arbiQueryKeys.userSettings(),
|
|
1498
1803
|
(old) => old ? { ...old, email_notifications: { ...old.email_notifications, ...patch } } : old
|
|
1499
1804
|
);
|
|
1500
1805
|
return { previous };
|
|
1501
1806
|
},
|
|
1502
1807
|
onError: (_err, _patch, context) => {
|
|
1503
|
-
qc.setQueryData(
|
|
1808
|
+
qc.setQueryData(chunk6BLXIF4R_cjs.arbiQueryKeys.userSettings(), context?.previous);
|
|
1504
1809
|
},
|
|
1505
|
-
onSettled: () => qc.invalidateQueries({ queryKey:
|
|
1810
|
+
onSettled: () => qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.userSettings() })
|
|
1506
1811
|
});
|
|
1507
1812
|
const model = React.useMemo(() => toNotificationPreferences(stored, keys), [stored, keys]);
|
|
1508
1813
|
const setAll = React.useCallback(
|
|
@@ -1528,7 +1833,7 @@ function useTerminateSession() {
|
|
|
1528
1833
|
const qc = reactQuery.useQueryClient();
|
|
1529
1834
|
return reactQuery.useMutation({
|
|
1530
1835
|
mutationFn: (sessionId) => arbi.sessions.terminate(sessionId),
|
|
1531
|
-
onSuccess: () => qc.invalidateQueries({ queryKey:
|
|
1836
|
+
onSuccess: () => qc.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.sessions() })
|
|
1532
1837
|
});
|
|
1533
1838
|
}
|
|
1534
1839
|
function useLogoutAllSessions() {
|
|
@@ -1604,7 +1909,7 @@ function useDeleteAccountFlow({
|
|
|
1604
1909
|
};
|
|
1605
1910
|
}
|
|
1606
1911
|
function useWorkspaceDocs(workspaceId) {
|
|
1607
|
-
const { data: docs = [], isLoading, isError } =
|
|
1912
|
+
const { data: docs = [], isLoading, isError } = chunk6BLXIF4R_cjs.useDocuments(workspaceId);
|
|
1608
1913
|
const docIds = React.useMemo(
|
|
1609
1914
|
() => docs.map((d) => d.external_id).filter((id) => !!id),
|
|
1610
1915
|
[docs]
|
|
@@ -1612,7 +1917,7 @@ function useWorkspaceDocs(workspaceId) {
|
|
|
1612
1917
|
return { wsId: workspaceId, docs, docIds, isLoading, isError, ready: docIds.length > 0 };
|
|
1613
1918
|
}
|
|
1614
1919
|
function useAiTask() {
|
|
1615
|
-
const mutation =
|
|
1920
|
+
const mutation = chunk6BLXIF4R_cjs.useAssistantQuery();
|
|
1616
1921
|
const [status, setStatus] = React.useState("idle");
|
|
1617
1922
|
const [text, setText] = React.useState("");
|
|
1618
1923
|
const [stepCount, setStepCount] = React.useState(0);
|
|
@@ -1826,7 +2131,7 @@ function AiAnswer({
|
|
|
1826
2131
|
}
|
|
1827
2132
|
),
|
|
1828
2133
|
hasText && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1829
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2134
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkPQDHGEXJ_cjs.AiMarkdown, { isStreaming: running, children: text }),
|
|
1830
2135
|
!running && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between border-t border-border pt-2.5", children: [
|
|
1831
2136
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1.5 text-xs text-muted-foreground", children: [
|
|
1832
2137
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ShieldCheck, { className: "size-3.5 text-ai-accent" }),
|
|
@@ -1871,7 +2176,7 @@ function AiActionCard({
|
|
|
1871
2176
|
const p = typeof prompt === "function" ? prompt() : prompt;
|
|
1872
2177
|
void task.run(p, docIds);
|
|
1873
2178
|
};
|
|
1874
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2179
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkPQDHGEXJ_cjs.Card, { variant: "elevated", className: "rounded-xl p-5", "data-testid": testId, children: [
|
|
1875
2180
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start justify-between gap-4", children: [
|
|
1876
2181
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
1877
2182
|
/* @__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" }) }),
|
|
@@ -1881,7 +2186,7 @@ function AiActionCard({
|
|
|
1881
2186
|
] })
|
|
1882
2187
|
] }),
|
|
1883
2188
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1884
|
-
|
|
2189
|
+
chunkPQDHGEXJ_cjs.Button,
|
|
1885
2190
|
{
|
|
1886
2191
|
variant: task.isDone ? "outline" : "accent",
|
|
1887
2192
|
size: "sm",
|
|
@@ -2013,11 +2318,11 @@ function ArtifactCanvas({
|
|
|
2013
2318
|
children: active.title
|
|
2014
2319
|
}
|
|
2015
2320
|
),
|
|
2016
|
-
isRedline && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2321
|
+
isRedline && /* @__PURE__ */ jsxRuntime.jsxs(chunkPQDHGEXJ_cjs.Badge, { variant: "accent", className: "gap-1", children: [
|
|
2017
2322
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.GitCompareArrows, { className: "size-3" }),
|
|
2018
2323
|
" Redline"
|
|
2019
2324
|
] }),
|
|
2020
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2325
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkPQDHGEXJ_cjs.Badge, { variant: "secondary", children: [
|
|
2021
2326
|
"v",
|
|
2022
2327
|
active.version
|
|
2023
2328
|
] }),
|
|
@@ -2073,7 +2378,7 @@ function ArtifactCanvas({
|
|
|
2073
2378
|
animate: { opacity: 1, y: 0 },
|
|
2074
2379
|
transition: { duration: 0.2 },
|
|
2075
2380
|
className: "mx-auto max-w-2xl rounded-lg bg-card p-8 shadow-sm ring-1 ring-border",
|
|
2076
|
-
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(
|
|
2381
|
+
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(chunkPQDHGEXJ_cjs.AiMarkdown, { children: active.content })
|
|
2077
2382
|
},
|
|
2078
2383
|
active.doc_ext_id
|
|
2079
2384
|
) }) })
|
|
@@ -2090,7 +2395,7 @@ function MessageArtifactCard({
|
|
|
2090
2395
|
const Icon = isImage ? lucideReact.Image : lucideReact.FileText;
|
|
2091
2396
|
const statusText = isImage ? isComplete ? "Image ready" : "Generating\u2026" : isComplete ? "Draft ready" : "Drafting\u2026";
|
|
2092
2397
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2093
|
-
|
|
2398
|
+
chunkPQDHGEXJ_cjs.Card,
|
|
2094
2399
|
{
|
|
2095
2400
|
variant: "outline",
|
|
2096
2401
|
className: "mt-3 flex items-center gap-3 px-3 py-2.5",
|
|
@@ -2166,7 +2471,7 @@ function DocSearch({
|
|
|
2166
2471
|
status === "done" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", "data-testid": "doc-search-results", children: [
|
|
2167
2472
|
/* @__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` }),
|
|
2168
2473
|
results.slice(0, 8).map((r, i) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2169
|
-
|
|
2474
|
+
chunkPQDHGEXJ_cjs.Card,
|
|
2170
2475
|
{
|
|
2171
2476
|
variant: "elevated",
|
|
2172
2477
|
className: chunkS6A6FSG7_cjs.cn(
|
|
@@ -2179,7 +2484,7 @@ function DocSearch({
|
|
|
2179
2484
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1 flex items-center gap-2", children: [
|
|
2180
2485
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileText, { className: "size-3.5 text-ai-accent" }),
|
|
2181
2486
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-xs font-medium text-foreground", children: r.docTitle ?? "Document" }),
|
|
2182
|
-
r.page != null && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2487
|
+
r.page != null && /* @__PURE__ */ jsxRuntime.jsxs(chunkPQDHGEXJ_cjs.Badge, { variant: "secondary", children: [
|
|
2183
2488
|
"p.",
|
|
2184
2489
|
r.page
|
|
2185
2490
|
] }),
|
|
@@ -2205,8 +2510,8 @@ function DocumentReview({
|
|
|
2205
2510
|
onClose,
|
|
2206
2511
|
className
|
|
2207
2512
|
}) {
|
|
2208
|
-
const parsedQuery =
|
|
2209
|
-
const tagsQuery =
|
|
2513
|
+
const parsedQuery = chunk6BLXIF4R_cjs.useParsedDocument(docId, stage);
|
|
2514
|
+
const tagsQuery = chunk6BLXIF4R_cjs.useTags(workspaceId);
|
|
2210
2515
|
const tagNameById = React__default.default.useMemo(() => {
|
|
2211
2516
|
const map = /* @__PURE__ */ new Map();
|
|
2212
2517
|
for (const t of tagsQuery.data ?? []) {
|
|
@@ -2273,7 +2578,7 @@ function DocumentReview({
|
|
|
2273
2578
|
findings.length ? ` \xB7 ${findings.length} findings` : ""
|
|
2274
2579
|
] })
|
|
2275
2580
|
] }),
|
|
2276
|
-
doc?.status ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2581
|
+
doc?.status ? /* @__PURE__ */ jsxRuntime.jsx(chunkPQDHGEXJ_cjs.Badge, { variant: "secondary", children: doc.status }) : null,
|
|
2277
2582
|
onClose ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2278
2583
|
"button",
|
|
2279
2584
|
{
|
|
@@ -2310,7 +2615,7 @@ function DocumentReview({
|
|
|
2310
2615
|
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",
|
|
2311
2616
|
children: [
|
|
2312
2617
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2313
|
-
|
|
2618
|
+
chunkPQDHGEXJ_cjs.TagEntity,
|
|
2314
2619
|
{
|
|
2315
2620
|
size: "sm",
|
|
2316
2621
|
tag: {
|
|
@@ -2355,7 +2660,7 @@ function DocumentReview({
|
|
|
2355
2660
|
),
|
|
2356
2661
|
children: [
|
|
2357
2662
|
highlighted ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2358
|
-
|
|
2663
|
+
chunkPQDHGEXJ_cjs.TagEntity,
|
|
2359
2664
|
{
|
|
2360
2665
|
size: "sm",
|
|
2361
2666
|
tag: {
|
|
@@ -2404,7 +2709,7 @@ function ResultRow({
|
|
|
2404
2709
|
onSelect
|
|
2405
2710
|
}) {
|
|
2406
2711
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2407
|
-
|
|
2712
|
+
chunkPQDHGEXJ_cjs.PassageCard,
|
|
2408
2713
|
{
|
|
2409
2714
|
onClick: onSelect,
|
|
2410
2715
|
active: isActive,
|
|
@@ -2413,7 +2718,7 @@ function ResultRow({
|
|
|
2413
2718
|
header: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2414
2719
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileText, { className: "size-3.5 shrink-0 text-ai-accent" }),
|
|
2415
2720
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-xs font-medium text-foreground", children: result.docTitle ?? "Document" }),
|
|
2416
|
-
result.page != null && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2721
|
+
result.page != null && /* @__PURE__ */ jsxRuntime.jsxs(chunkPQDHGEXJ_cjs.Badge, { variant: "secondary", children: [
|
|
2417
2722
|
"p.",
|
|
2418
2723
|
result.page
|
|
2419
2724
|
] })
|
|
@@ -2437,7 +2742,7 @@ function SemanticSearch({
|
|
|
2437
2742
|
const { results, status, error, search, isRunning, query } = useSemanticSearch(docIds);
|
|
2438
2743
|
const [value, setValue] = React.useState("");
|
|
2439
2744
|
const [selected, setSelected] = React.useState(null);
|
|
2440
|
-
const { data: docs = [] } =
|
|
2745
|
+
const { data: docs = [] } = chunk6BLXIF4R_cjs.useDocuments(workspaceId, { enabled: !!workspaceId });
|
|
2441
2746
|
const docMap = React.useMemo(() => {
|
|
2442
2747
|
const map = /* @__PURE__ */ new Map();
|
|
2443
2748
|
for (const d of docs) if (d.external_id) map.set(d.external_id, d);
|
|
@@ -2523,7 +2828,7 @@ function SemanticSearch({
|
|
|
2523
2828
|
"data-testid": "arbi-semantic-search-viewer",
|
|
2524
2829
|
children: selected && selected.docId ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full min-h-0 flex-col gap-2", children: [
|
|
2525
2830
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2526
|
-
|
|
2831
|
+
chunkPQDHGEXJ_cjs.Button,
|
|
2527
2832
|
{
|
|
2528
2833
|
variant: "ghost",
|
|
2529
2834
|
size: "sm",
|
|
@@ -2582,7 +2887,7 @@ Question: ${question}`,
|
|
|
2582
2887
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 space-y-3", "data-testid": "doc-qa", children: [
|
|
2583
2888
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
2584
2889
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2585
|
-
|
|
2890
|
+
chunkPQDHGEXJ_cjs.Input,
|
|
2586
2891
|
{
|
|
2587
2892
|
value: q,
|
|
2588
2893
|
onChange: (e) => setQ(e.target.value),
|
|
@@ -2593,7 +2898,7 @@ Question: ${question}`,
|
|
|
2593
2898
|
}
|
|
2594
2899
|
),
|
|
2595
2900
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2596
|
-
|
|
2901
|
+
chunkPQDHGEXJ_cjs.Button,
|
|
2597
2902
|
{
|
|
2598
2903
|
variant: "accent",
|
|
2599
2904
|
size: "icon",
|
|
@@ -2605,7 +2910,7 @@ Question: ${question}`,
|
|
|
2605
2910
|
}
|
|
2606
2911
|
),
|
|
2607
2912
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2608
|
-
|
|
2913
|
+
chunkPQDHGEXJ_cjs.Button,
|
|
2609
2914
|
{
|
|
2610
2915
|
variant: "outline",
|
|
2611
2916
|
size: "sm",
|
|
@@ -2969,7 +3274,7 @@ var CitationLink = ({
|
|
|
2969
3274
|
triggerRef,
|
|
2970
3275
|
children
|
|
2971
3276
|
}) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2972
|
-
|
|
3277
|
+
chunkPQDHGEXJ_cjs.MarkMenu,
|
|
2973
3278
|
{
|
|
2974
3279
|
triggerRef,
|
|
2975
3280
|
items,
|
|
@@ -3007,8 +3312,8 @@ var DocIcon = ({ size = 16, className = "" }) => {
|
|
|
3007
3312
|
"path",
|
|
3008
3313
|
{
|
|
3009
3314
|
d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z",
|
|
3010
|
-
fill:
|
|
3011
|
-
stroke:
|
|
3315
|
+
fill: chunkPQDHGEXJ_cjs.FILE_TYPE_COLORS.doc,
|
|
3316
|
+
stroke: chunkPQDHGEXJ_cjs.FILE_TYPE_COLORS.doc,
|
|
3012
3317
|
strokeWidth: "1",
|
|
3013
3318
|
strokeLinecap: "round",
|
|
3014
3319
|
strokeLinejoin: "round"
|
|
@@ -3019,7 +3324,7 @@ var DocIcon = ({ size = 16, className = "" }) => {
|
|
|
3019
3324
|
{
|
|
3020
3325
|
d: "M14 2v6h6",
|
|
3021
3326
|
fill: "none",
|
|
3022
|
-
stroke:
|
|
3327
|
+
stroke: chunkPQDHGEXJ_cjs.FILE_TYPE_COLORS.white,
|
|
3023
3328
|
strokeWidth: "1",
|
|
3024
3329
|
strokeLinecap: "round",
|
|
3025
3330
|
strokeLinejoin: "round"
|
|
@@ -3057,8 +3362,8 @@ var HtmlIcon = ({ size = 16, className = "" }) => {
|
|
|
3057
3362
|
"path",
|
|
3058
3363
|
{
|
|
3059
3364
|
d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z",
|
|
3060
|
-
fill:
|
|
3061
|
-
stroke:
|
|
3365
|
+
fill: chunkPQDHGEXJ_cjs.FILE_TYPE_COLORS.html,
|
|
3366
|
+
stroke: chunkPQDHGEXJ_cjs.FILE_TYPE_COLORS.html,
|
|
3062
3367
|
strokeWidth: "1",
|
|
3063
3368
|
strokeLinecap: "round",
|
|
3064
3369
|
strokeLinejoin: "round"
|
|
@@ -3069,7 +3374,7 @@ var HtmlIcon = ({ size = 16, className = "" }) => {
|
|
|
3069
3374
|
{
|
|
3070
3375
|
d: "M14 2v6h6",
|
|
3071
3376
|
fill: "none",
|
|
3072
|
-
stroke:
|
|
3377
|
+
stroke: chunkPQDHGEXJ_cjs.FILE_TYPE_COLORS.white,
|
|
3073
3378
|
strokeWidth: "1",
|
|
3074
3379
|
strokeLinecap: "round",
|
|
3075
3380
|
strokeLinejoin: "round"
|
|
@@ -3107,8 +3412,8 @@ var TxtIcon = ({ size = 16, className = "" }) => {
|
|
|
3107
3412
|
"path",
|
|
3108
3413
|
{
|
|
3109
3414
|
d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z",
|
|
3110
|
-
fill:
|
|
3111
|
-
stroke:
|
|
3415
|
+
fill: chunkPQDHGEXJ_cjs.FILE_TYPE_COLORS.txt,
|
|
3416
|
+
stroke: chunkPQDHGEXJ_cjs.FILE_TYPE_COLORS.txt,
|
|
3112
3417
|
strokeWidth: "1",
|
|
3113
3418
|
strokeLinecap: "round",
|
|
3114
3419
|
strokeLinejoin: "round"
|
|
@@ -3119,7 +3424,7 @@ var TxtIcon = ({ size = 16, className = "" }) => {
|
|
|
3119
3424
|
{
|
|
3120
3425
|
d: "M14 2v6h6",
|
|
3121
3426
|
fill: "none",
|
|
3122
|
-
stroke:
|
|
3427
|
+
stroke: chunkPQDHGEXJ_cjs.FILE_TYPE_COLORS.white,
|
|
3123
3428
|
strokeWidth: "1",
|
|
3124
3429
|
strokeLinecap: "round",
|
|
3125
3430
|
strokeLinejoin: "round"
|
|
@@ -3157,8 +3462,8 @@ var XlsIcon = ({ size = 16, className = "" }) => {
|
|
|
3157
3462
|
"path",
|
|
3158
3463
|
{
|
|
3159
3464
|
d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z",
|
|
3160
|
-
fill:
|
|
3161
|
-
stroke:
|
|
3465
|
+
fill: chunkPQDHGEXJ_cjs.FILE_TYPE_COLORS.xls,
|
|
3466
|
+
stroke: chunkPQDHGEXJ_cjs.FILE_TYPE_COLORS.xls,
|
|
3162
3467
|
strokeWidth: "1",
|
|
3163
3468
|
strokeLinecap: "round",
|
|
3164
3469
|
strokeLinejoin: "round"
|
|
@@ -3169,7 +3474,7 @@ var XlsIcon = ({ size = 16, className = "" }) => {
|
|
|
3169
3474
|
{
|
|
3170
3475
|
d: "M14 2v6h6",
|
|
3171
3476
|
fill: "none",
|
|
3172
|
-
stroke:
|
|
3477
|
+
stroke: chunkPQDHGEXJ_cjs.FILE_TYPE_COLORS.white,
|
|
3173
3478
|
strokeWidth: "1",
|
|
3174
3479
|
strokeLinecap: "round",
|
|
3175
3480
|
strokeLinejoin: "round"
|
|
@@ -3207,8 +3512,8 @@ var FileIcon = ({ size = 16, className = "" }) => {
|
|
|
3207
3512
|
"path",
|
|
3208
3513
|
{
|
|
3209
3514
|
d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z",
|
|
3210
|
-
fill:
|
|
3211
|
-
stroke:
|
|
3515
|
+
fill: chunkPQDHGEXJ_cjs.FILE_TYPE_COLORS.generic,
|
|
3516
|
+
stroke: chunkPQDHGEXJ_cjs.FILE_TYPE_COLORS.generic,
|
|
3212
3517
|
strokeWidth: "1",
|
|
3213
3518
|
strokeLinecap: "round",
|
|
3214
3519
|
strokeLinejoin: "round"
|
|
@@ -3219,7 +3524,7 @@ var FileIcon = ({ size = 16, className = "" }) => {
|
|
|
3219
3524
|
{
|
|
3220
3525
|
d: "M14 2v6h6",
|
|
3221
3526
|
fill: "none",
|
|
3222
|
-
stroke:
|
|
3527
|
+
stroke: chunkPQDHGEXJ_cjs.FILE_TYPE_COLORS.white,
|
|
3223
3528
|
strokeWidth: "1",
|
|
3224
3529
|
strokeLinecap: "round",
|
|
3225
3530
|
strokeLinejoin: "round"
|
|
@@ -3575,7 +3880,7 @@ var ArbiBotIcon = ({ size = 24, className = "" }) => {
|
|
|
3575
3880
|
);
|
|
3576
3881
|
};
|
|
3577
3882
|
function getNotificationTypeMeta(type) {
|
|
3578
|
-
const WorkspaceIcon =
|
|
3883
|
+
const WorkspaceIcon = chunkPQDHGEXJ_cjs.getEntityIcon("WORKSPACE");
|
|
3579
3884
|
switch (type) {
|
|
3580
3885
|
case "user_message":
|
|
3581
3886
|
return { Icon: lucideReact.MessageCircleMore, iconClassName: "text-primary", label: "Message" };
|
|
@@ -3693,7 +3998,7 @@ function describeActivity(content) {
|
|
|
3693
3998
|
}
|
|
3694
3999
|
default:
|
|
3695
4000
|
return {
|
|
3696
|
-
Icon: parsed.workspace_ext_id ?
|
|
4001
|
+
Icon: parsed.workspace_ext_id ? chunkPQDHGEXJ_cjs.getEntityIcon("WORKSPACE") : lucideReact.Activity,
|
|
3697
4002
|
iconClassName: "text-muted-foreground",
|
|
3698
4003
|
title: humaniseEvent(parsed.event)
|
|
3699
4004
|
};
|
|
@@ -3723,7 +4028,7 @@ function ActivityFeed({
|
|
|
3723
4028
|
enabled,
|
|
3724
4029
|
"data-testid": testId = "activity-feed"
|
|
3725
4030
|
}) {
|
|
3726
|
-
const { data, isLoading, isError } =
|
|
4031
|
+
const { data, isLoading, isError } = chunk6BLXIF4R_cjs.useActivity({ limit, enabled });
|
|
3727
4032
|
if (isLoading) {
|
|
3728
4033
|
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: [
|
|
3729
4034
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-4 w-4 shrink-0 animate-pulse rounded-full bg-muted" }),
|
|
@@ -3764,6 +4069,34 @@ function ActivityFeed({
|
|
|
3764
4069
|
);
|
|
3765
4070
|
}) });
|
|
3766
4071
|
}
|
|
4072
|
+
var workTypes = [
|
|
4073
|
+
"mention",
|
|
4074
|
+
"workspace_access_request",
|
|
4075
|
+
"conversation_ready_for_review",
|
|
4076
|
+
"conversation_approval_request",
|
|
4077
|
+
"conversation_done",
|
|
4078
|
+
"workflow_failed"
|
|
4079
|
+
];
|
|
4080
|
+
function useWorkNotifications(options) {
|
|
4081
|
+
const arbi = chunkZMTLGO3K_cjs.useArbi();
|
|
4082
|
+
const queries = reactQuery.useQueryClient();
|
|
4083
|
+
const queryKey = ["work-notifications", options.apiUrl, options.userId];
|
|
4084
|
+
const query = reactQuery.useQuery({
|
|
4085
|
+
queryKey,
|
|
4086
|
+
queryFn: async () => (await Promise.all(workTypes.map((type) => arbi.notifications.list(type)))).flat(),
|
|
4087
|
+
enabled: options.enabled && Boolean(options.userId),
|
|
4088
|
+
refetchInterval: 3e4
|
|
4089
|
+
});
|
|
4090
|
+
useArbiWebSocket((message) => {
|
|
4091
|
+
if (workTypes.some((type) => type === message.type))
|
|
4092
|
+
void queries.invalidateQueries({ queryKey });
|
|
4093
|
+
});
|
|
4094
|
+
const receipt = reactQuery.useMutation({
|
|
4095
|
+
mutationFn: (ids) => arbi.notifications.markRead(ids),
|
|
4096
|
+
onSuccess: () => queries.invalidateQueries({ queryKey })
|
|
4097
|
+
});
|
|
4098
|
+
return { ...query, markRead: receipt.mutateAsync };
|
|
4099
|
+
}
|
|
3767
4100
|
|
|
3768
4101
|
// src/directmessages/utils.ts
|
|
3769
4102
|
function userInitials(user) {
|
|
@@ -3847,7 +4180,7 @@ function useDirectMessages(options) {
|
|
|
3847
4180
|
enabled
|
|
3848
4181
|
});
|
|
3849
4182
|
const contactsQuery = reactQuery.useQuery({
|
|
3850
|
-
queryKey:
|
|
4183
|
+
queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.contacts(),
|
|
3851
4184
|
queryFn: () => arbi.contacts.list(),
|
|
3852
4185
|
enabled
|
|
3853
4186
|
});
|
|
@@ -3909,7 +4242,7 @@ function DmAvatar({ user, className, size = "lg" }) {
|
|
|
3909
4242
|
const presence = useArbiWsStore((s) => s.presence[user.external_id]);
|
|
3910
4243
|
const displayStatus = presence === void 0 ? void 0 : presence === "online" ? "connected" : "disconnected";
|
|
3911
4244
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3912
|
-
|
|
4245
|
+
chunkPQDHGEXJ_cjs.UserEntity,
|
|
3913
4246
|
{
|
|
3914
4247
|
variant: "icon",
|
|
3915
4248
|
size,
|
|
@@ -3919,7 +4252,7 @@ function DmAvatar({ user, className, size = "lg" }) {
|
|
|
3919
4252
|
initials: userInitials(user),
|
|
3920
4253
|
displayName: userDisplayName(user),
|
|
3921
4254
|
picture: user.picture,
|
|
3922
|
-
avatarStyle:
|
|
4255
|
+
avatarStyle: chunkPQDHGEXJ_cjs.getEntityColorStyles(user.external_id),
|
|
3923
4256
|
isAgent: isAgentUser(user),
|
|
3924
4257
|
displayStatus
|
|
3925
4258
|
}
|
|
@@ -3974,10 +4307,10 @@ function ConversationList({
|
|
|
3974
4307
|
children: userDisplayName(peer)
|
|
3975
4308
|
}
|
|
3976
4309
|
),
|
|
3977
|
-
c.badge ?? (isAgentUser(peer) ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
4310
|
+
c.badge ?? (isAgentUser(peer) ? /* @__PURE__ */ jsxRuntime.jsx(chunkPQDHGEXJ_cjs.AgentBadge, {}) : null)
|
|
3978
4311
|
] }),
|
|
3979
4312
|
c.statusLabel ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3980
|
-
|
|
4313
|
+
chunkPQDHGEXJ_cjs.Badge,
|
|
3981
4314
|
{
|
|
3982
4315
|
variant: "outline",
|
|
3983
4316
|
className: "shrink-0 rounded-full px-2 py-0 text-xs font-medium text-muted-foreground",
|
|
@@ -3988,7 +4321,7 @@ function ConversationList({
|
|
|
3988
4321
|
// shouted louder than the message it was counting.
|
|
3989
4322
|
// Enough to catch the eye scanning the list, no more.
|
|
3990
4323
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3991
|
-
|
|
4324
|
+
chunkPQDHGEXJ_cjs.Badge,
|
|
3992
4325
|
{
|
|
3993
4326
|
variant: "accent",
|
|
3994
4327
|
className: chunkS6A6FSG7_cjs.cn(
|
|
@@ -4024,7 +4357,7 @@ function ConversationList({
|
|
|
4024
4357
|
children: c.subtitle ?? preview
|
|
4025
4358
|
}
|
|
4026
4359
|
),
|
|
4027
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-xs text-muted-foreground", children: lastMessage ?
|
|
4360
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-xs text-muted-foreground", children: lastMessage ? chunkYSZJCWDD_cjs.formatRelativeTime(lastMessage.createdAt) : "" })
|
|
4028
4361
|
] })
|
|
4029
4362
|
] })
|
|
4030
4363
|
] });
|
|
@@ -4115,7 +4448,7 @@ function MessageBubble({
|
|
|
4115
4448
|
isLastOfRun,
|
|
4116
4449
|
senderName: message.isMine ? "You" : userDisplayName(message.sender),
|
|
4117
4450
|
classNames,
|
|
4118
|
-
formatTimestamp:
|
|
4451
|
+
formatTimestamp: chunkYSZJCWDD_cjs.formatRelativeTime
|
|
4119
4452
|
}
|
|
4120
4453
|
);
|
|
4121
4454
|
}
|
|
@@ -4207,7 +4540,7 @@ function DmComposer({
|
|
|
4207
4540
|
children,
|
|
4208
4541
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-end gap-2", children: [
|
|
4209
4542
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4210
|
-
|
|
4543
|
+
chunkPQDHGEXJ_cjs.Textarea,
|
|
4211
4544
|
{
|
|
4212
4545
|
ref: inputRef,
|
|
4213
4546
|
value: draft,
|
|
@@ -4221,7 +4554,7 @@ function DmComposer({
|
|
|
4221
4554
|
}
|
|
4222
4555
|
),
|
|
4223
4556
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4224
|
-
|
|
4557
|
+
chunkPQDHGEXJ_cjs.Button,
|
|
4225
4558
|
{
|
|
4226
4559
|
type: "button",
|
|
4227
4560
|
onClick: () => void submit(),
|
|
@@ -4289,9 +4622,9 @@ function StartByEmail({
|
|
|
4289
4622
|
void submit();
|
|
4290
4623
|
},
|
|
4291
4624
|
children: [
|
|
4292
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4625
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkPQDHGEXJ_cjs.Label, { htmlFor: `${uid}-email`, children: l.email }),
|
|
4293
4626
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4294
|
-
|
|
4627
|
+
chunkPQDHGEXJ_cjs.Input,
|
|
4295
4628
|
{
|
|
4296
4629
|
id: `${uid}-email`,
|
|
4297
4630
|
type: "email",
|
|
@@ -4305,9 +4638,9 @@ function StartByEmail({
|
|
|
4305
4638
|
}
|
|
4306
4639
|
),
|
|
4307
4640
|
email !== "" && !valid && /* @__PURE__ */ jsxRuntime.jsx("p", { id: `${uid}-bad`, className: "text-xs text-destructive", children: l.invalidEmail }),
|
|
4308
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4641
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkPQDHGEXJ_cjs.Label, { htmlFor: `${uid}-text`, children: l.message }),
|
|
4309
4642
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4310
|
-
|
|
4643
|
+
chunkPQDHGEXJ_cjs.Textarea,
|
|
4311
4644
|
{
|
|
4312
4645
|
id: `${uid}-text`,
|
|
4313
4646
|
value: text,
|
|
@@ -4320,7 +4653,7 @@ function StartByEmail({
|
|
|
4320
4653
|
),
|
|
4321
4654
|
error && /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "text-xs text-destructive", "data-testid": "arbi-dm-start-error", children: error }),
|
|
4322
4655
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4323
|
-
|
|
4656
|
+
chunkPQDHGEXJ_cjs.Button,
|
|
4324
4657
|
{
|
|
4325
4658
|
type: "submit",
|
|
4326
4659
|
size: "sm",
|
|
@@ -4510,7 +4843,7 @@ function ImageCropper({
|
|
|
4510
4843
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
|
|
4511
4844
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-xs font-semibold uppercase tracking-wider text-muted-foreground", children: "Zoom" }),
|
|
4512
4845
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4513
|
-
|
|
4846
|
+
chunkPQDHGEXJ_cjs.Slider,
|
|
4514
4847
|
{
|
|
4515
4848
|
value: [zoom],
|
|
4516
4849
|
onValueChange: ([v]) => setZoom(v ?? 1),
|
|
@@ -4587,8 +4920,8 @@ function ImageCropModal({
|
|
|
4587
4920
|
setBusy(false);
|
|
4588
4921
|
}
|
|
4589
4922
|
};
|
|
4590
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4591
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4923
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkPQDHGEXJ_cjs.Dialog, { open, onOpenChange: (next) => !next ? onCancel() : void 0, children: /* @__PURE__ */ jsxRuntime.jsxs(chunkPQDHGEXJ_cjs.DialogContent, { className: "sm:max-w-md", "data-testid": "image-crop-modal", children: [
|
|
4924
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkPQDHGEXJ_cjs.DialogHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkPQDHGEXJ_cjs.DialogTitle, { children: title }) }),
|
|
4592
4925
|
image ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
4593
4926
|
ImageCropper,
|
|
4594
4927
|
{
|
|
@@ -4599,9 +4932,9 @@ function ImageCropModal({
|
|
|
4599
4932
|
onCropComplete: setArea
|
|
4600
4933
|
}
|
|
4601
4934
|
) : null,
|
|
4602
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4603
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4604
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4935
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkPQDHGEXJ_cjs.DialogFooter, { className: "gap-2 sm:gap-2", children: [
|
|
4936
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkPQDHGEXJ_cjs.Button, { variant: "ghost", onClick: onCancel, disabled: busy, children: "Cancel" }),
|
|
4937
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkPQDHGEXJ_cjs.Button, { onClick: handleSave, disabled: !area || busy, "data-testid": "image-crop-save", children: [
|
|
4605
4938
|
busy ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "mr-1 size-4 animate-spin" }) : null,
|
|
4606
4939
|
saveLabel
|
|
4607
4940
|
] })
|
|
@@ -4667,8 +5000,8 @@ function CommandPalette({
|
|
|
4667
5000
|
if (!q || task.isRunning) return;
|
|
4668
5001
|
void task.run(buildAskPrompt(q), askDocIds, { model });
|
|
4669
5002
|
};
|
|
4670
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4671
|
-
|
|
5003
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkPQDHGEXJ_cjs.Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5004
|
+
chunkPQDHGEXJ_cjs.DialogContent,
|
|
4672
5005
|
{
|
|
4673
5006
|
className: chunkS6A6FSG7_cjs.cn(
|
|
4674
5007
|
"top-[12%] max-w-2xl translate-y-0 gap-0 overflow-hidden p-0",
|
|
@@ -4676,7 +5009,7 @@ function CommandPalette({
|
|
|
4676
5009
|
),
|
|
4677
5010
|
"data-testid": testId,
|
|
4678
5011
|
children: [
|
|
4679
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5012
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkPQDHGEXJ_cjs.DialogTitle, { className: "sr-only", children: "Command palette" }),
|
|
4680
5013
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 border-b border-border px-4", children: [
|
|
4681
5014
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: chunkS6A6FSG7_cjs.cn("size-4 shrink-0 text-ai-accent", classNames?.leadingIcon) }),
|
|
4682
5015
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4747,7 +5080,7 @@ function CommandPalette({
|
|
|
4747
5080
|
}
|
|
4748
5081
|
),
|
|
4749
5082
|
task.isDone && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3 flex justify-end", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4750
|
-
|
|
5083
|
+
chunkPQDHGEXJ_cjs.Button,
|
|
4751
5084
|
{
|
|
4752
5085
|
variant: "outline",
|
|
4753
5086
|
size: "sm",
|
|
@@ -4882,10 +5215,10 @@ function DocumentTable({
|
|
|
4882
5215
|
extraColumns,
|
|
4883
5216
|
className
|
|
4884
5217
|
}) {
|
|
4885
|
-
const query =
|
|
5218
|
+
const query = chunk6BLXIF4R_cjs.useDocuments(workspaceId, { enabled: !documents });
|
|
4886
5219
|
const rows = documents ?? query.data ?? [];
|
|
4887
5220
|
const isLoading = !documents && query.isLoading;
|
|
4888
|
-
const tagsQuery =
|
|
5221
|
+
const tagsQuery = chunk6BLXIF4R_cjs.useTags(workspaceId);
|
|
4889
5222
|
const tagNameById = React__default.default.useMemo(() => {
|
|
4890
5223
|
const map = /* @__PURE__ */ new Map();
|
|
4891
5224
|
for (const t of tagsQuery.data ?? []) {
|
|
@@ -4945,7 +5278,7 @@ function DocumentTable({
|
|
|
4945
5278
|
const doc = p.data;
|
|
4946
5279
|
if (!doc) return null;
|
|
4947
5280
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4948
|
-
|
|
5281
|
+
chunkPQDHGEXJ_cjs.DocumentEntity,
|
|
4949
5282
|
{
|
|
4950
5283
|
doc,
|
|
4951
5284
|
size: "base",
|
|
@@ -4968,7 +5301,7 @@ function DocumentTable({
|
|
|
4968
5301
|
cellRenderer: (p) => {
|
|
4969
5302
|
const status = p.data?.status;
|
|
4970
5303
|
if (!status) return null;
|
|
4971
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5304
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkPQDHGEXJ_cjs.Badge, { variant: STATUS_VARIANTS[status.toLowerCase()] ?? "secondary", children: status });
|
|
4972
5305
|
}
|
|
4973
5306
|
},
|
|
4974
5307
|
{
|
|
@@ -4982,7 +5315,7 @@ function DocumentTable({
|
|
|
4982
5315
|
const doctags = p.data?.doctags ?? [];
|
|
4983
5316
|
if (doctags.length === 0) return null;
|
|
4984
5317
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap items-center gap-1 py-1", children: doctags.map((dt) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
4985
|
-
|
|
5318
|
+
chunkPQDHGEXJ_cjs.TagEntity,
|
|
4986
5319
|
{
|
|
4987
5320
|
size: "sm",
|
|
4988
5321
|
tag: {
|
|
@@ -5066,7 +5399,7 @@ function DocumentCardMenu({
|
|
|
5066
5399
|
const invalidateDocuments = () => {
|
|
5067
5400
|
const workspaceId = arbi.getWorkspaceId();
|
|
5068
5401
|
if (workspaceId) {
|
|
5069
|
-
void queryClient.invalidateQueries({ queryKey:
|
|
5402
|
+
void queryClient.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.documents(workspaceId) });
|
|
5070
5403
|
}
|
|
5071
5404
|
};
|
|
5072
5405
|
const download = reactQuery.useMutation({
|
|
@@ -5165,10 +5498,10 @@ function DocumentGallery({
|
|
|
5165
5498
|
minTileWidth = 148,
|
|
5166
5499
|
className
|
|
5167
5500
|
}) {
|
|
5168
|
-
const query =
|
|
5501
|
+
const query = chunk6BLXIF4R_cjs.useDocuments(workspaceId, { enabled: !documents });
|
|
5169
5502
|
const rows = documents ?? query.data ?? [];
|
|
5170
5503
|
const isLoading = !documents && query.isLoading;
|
|
5171
|
-
const tagsQuery =
|
|
5504
|
+
const tagsQuery = chunk6BLXIF4R_cjs.useTags(workspaceId);
|
|
5172
5505
|
const tagNameById = React__default.default.useMemo(() => {
|
|
5173
5506
|
const map = /* @__PURE__ */ new Map();
|
|
5174
5507
|
for (const t of tagsQuery.data ?? []) {
|
|
@@ -5180,7 +5513,7 @@ function DocumentGallery({
|
|
|
5180
5513
|
() => rows.map((d) => d.external_id).filter((id) => !!id),
|
|
5181
5514
|
[rows]
|
|
5182
5515
|
);
|
|
5183
|
-
const thumbsQuery =
|
|
5516
|
+
const thumbsQuery = chunk6BLXIF4R_cjs.useThumbnails(docIds);
|
|
5184
5517
|
const thumbs = thumbsQuery.data ?? {};
|
|
5185
5518
|
const storeSelected = useArbiUiStore((s) => s.selectedDocIds);
|
|
5186
5519
|
const storeSetSelected = useArbiUiStore((s) => s.setSelectedDocIds);
|
|
@@ -5216,7 +5549,7 @@ function DocumentGallery({
|
|
|
5216
5549
|
setRenamingId(null);
|
|
5217
5550
|
const activeWorkspace = workspaceId ?? arbi.getWorkspaceId();
|
|
5218
5551
|
if (activeWorkspace) {
|
|
5219
|
-
void queryClient.invalidateQueries({ queryKey:
|
|
5552
|
+
void queryClient.invalidateQueries({ queryKey: chunk6BLXIF4R_cjs.arbiQueryKeys.documents(activeWorkspace) });
|
|
5220
5553
|
}
|
|
5221
5554
|
}
|
|
5222
5555
|
});
|
|
@@ -5258,7 +5591,7 @@ function DocumentGallery({
|
|
|
5258
5591
|
(dt) => tagNameById.get(dt.tag_ext_id) ?? dt.tag_ext_id.slice(0, 8)
|
|
5259
5592
|
);
|
|
5260
5593
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-doc-id": id, "data-testid": "document-gallery-card", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5261
|
-
|
|
5594
|
+
chunkPQDHGEXJ_cjs.DocumentCard,
|
|
5262
5595
|
{
|
|
5263
5596
|
doc,
|
|
5264
5597
|
thumbnailUrl: thumbs[id],
|
|
@@ -5295,7 +5628,7 @@ function VoiceNoteRecorder({
|
|
|
5295
5628
|
isSaving = false,
|
|
5296
5629
|
transcribe
|
|
5297
5630
|
}) {
|
|
5298
|
-
const recorder =
|
|
5631
|
+
const recorder = chunkPQDHGEXJ_cjs.useAudioRecorder();
|
|
5299
5632
|
const [transcript, setTranscript] = React.useState(null);
|
|
5300
5633
|
const [isTranscribing, setIsTranscribing] = React.useState(false);
|
|
5301
5634
|
React.useEffect(() => {
|
|
@@ -5327,7 +5660,7 @@ function VoiceNoteRecorder({
|
|
|
5327
5660
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-6 p-8", children: [
|
|
5328
5661
|
recorder.state === "idle" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
5329
5662
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5330
|
-
|
|
5663
|
+
chunkPQDHGEXJ_cjs.Button,
|
|
5331
5664
|
{
|
|
5332
5665
|
type: "button",
|
|
5333
5666
|
size: "lg",
|
|
@@ -5341,7 +5674,7 @@ function VoiceNoteRecorder({
|
|
|
5341
5674
|
] }),
|
|
5342
5675
|
(recorder.state === "recording" || recorder.state === "paused") && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
5343
5676
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5344
|
-
|
|
5677
|
+
chunkPQDHGEXJ_cjs.MicWaveformIndicator,
|
|
5345
5678
|
{
|
|
5346
5679
|
level: recorder.level,
|
|
5347
5680
|
elapsedMs: recorder.elapsedMs,
|
|
@@ -5350,7 +5683,7 @@ function VoiceNoteRecorder({
|
|
|
5350
5683
|
),
|
|
5351
5684
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
5352
5685
|
recorder.state === "recording" ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5353
|
-
|
|
5686
|
+
chunkPQDHGEXJ_cjs.Button,
|
|
5354
5687
|
{
|
|
5355
5688
|
type: "button",
|
|
5356
5689
|
variant: "outline",
|
|
@@ -5362,7 +5695,7 @@ function VoiceNoteRecorder({
|
|
|
5362
5695
|
]
|
|
5363
5696
|
}
|
|
5364
5697
|
) : /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5365
|
-
|
|
5698
|
+
chunkPQDHGEXJ_cjs.Button,
|
|
5366
5699
|
{
|
|
5367
5700
|
type: "button",
|
|
5368
5701
|
variant: "outline",
|
|
@@ -5374,7 +5707,7 @@ function VoiceNoteRecorder({
|
|
|
5374
5707
|
]
|
|
5375
5708
|
}
|
|
5376
5709
|
),
|
|
5377
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5710
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkPQDHGEXJ_cjs.Button, { type: "button", onClick: recorder.stop, "data-testid": "voice-note-stop-button", children: [
|
|
5378
5711
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "mr-1.5 h-3.5 w-3.5 fill-current" }),
|
|
5379
5712
|
"Stop"
|
|
5380
5713
|
] })
|
|
@@ -5398,7 +5731,7 @@ function VoiceNoteRecorder({
|
|
|
5398
5731
|
),
|
|
5399
5732
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
5400
5733
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5401
|
-
|
|
5734
|
+
chunkPQDHGEXJ_cjs.Button,
|
|
5402
5735
|
{
|
|
5403
5736
|
type: "button",
|
|
5404
5737
|
variant: "outline",
|
|
@@ -5412,7 +5745,7 @@ function VoiceNoteRecorder({
|
|
|
5412
5745
|
}
|
|
5413
5746
|
),
|
|
5414
5747
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5415
|
-
|
|
5748
|
+
chunkPQDHGEXJ_cjs.Button,
|
|
5416
5749
|
{
|
|
5417
5750
|
type: "button",
|
|
5418
5751
|
variant: "outline",
|
|
@@ -5426,7 +5759,7 @@ function VoiceNoteRecorder({
|
|
|
5426
5759
|
}
|
|
5427
5760
|
),
|
|
5428
5761
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5429
|
-
|
|
5762
|
+
chunkPQDHGEXJ_cjs.Button,
|
|
5430
5763
|
{
|
|
5431
5764
|
type: "button",
|
|
5432
5765
|
onClick: handleSave,
|
|
@@ -5463,7 +5796,7 @@ function DraftTitleControls({
|
|
|
5463
5796
|
}
|
|
5464
5797
|
),
|
|
5465
5798
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5466
|
-
|
|
5799
|
+
chunkPQDHGEXJ_cjs.IconToggle,
|
|
5467
5800
|
{
|
|
5468
5801
|
icon: lucideReact.Sparkles,
|
|
5469
5802
|
isActive: autoRename,
|
|
@@ -5497,7 +5830,7 @@ function useCameraStream(constraints = { video: true, audio: false }) {
|
|
|
5497
5830
|
streamRef.current = media;
|
|
5498
5831
|
setStream(media);
|
|
5499
5832
|
} catch (err) {
|
|
5500
|
-
setError(
|
|
5833
|
+
setError(chunkPQDHGEXJ_cjs.classifyMediaError(err, "camera"));
|
|
5501
5834
|
} finally {
|
|
5502
5835
|
setIsStarting(false);
|
|
5503
5836
|
}
|
|
@@ -5628,7 +5961,7 @@ function PhotoCapture({ onSave, onDiscard, onError, isSaving = false }) {
|
|
|
5628
5961
|
}
|
|
5629
5962
|
) }),
|
|
5630
5963
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5631
|
-
|
|
5964
|
+
chunkPQDHGEXJ_cjs.Button,
|
|
5632
5965
|
{
|
|
5633
5966
|
type: "button",
|
|
5634
5967
|
size: "lg",
|
|
@@ -5646,7 +5979,7 @@ function PhotoCapture({ onSave, onDiscard, onError, isSaving = false }) {
|
|
|
5646
5979
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-md", children: /* @__PURE__ */ jsxRuntime.jsx(chunkTMPDW7J5_cjs.ImageViewer, { blob: capturedBlob, alt: "Captured photo" }) }),
|
|
5647
5980
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
5648
5981
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5649
|
-
|
|
5982
|
+
chunkPQDHGEXJ_cjs.Button,
|
|
5650
5983
|
{
|
|
5651
5984
|
type: "button",
|
|
5652
5985
|
variant: "outline",
|
|
@@ -5660,7 +5993,7 @@ function PhotoCapture({ onSave, onDiscard, onError, isSaving = false }) {
|
|
|
5660
5993
|
}
|
|
5661
5994
|
),
|
|
5662
5995
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5663
|
-
|
|
5996
|
+
chunkPQDHGEXJ_cjs.Button,
|
|
5664
5997
|
{
|
|
5665
5998
|
type: "button",
|
|
5666
5999
|
variant: "outline",
|
|
@@ -5674,7 +6007,7 @@ function PhotoCapture({ onSave, onDiscard, onError, isSaving = false }) {
|
|
|
5674
6007
|
}
|
|
5675
6008
|
),
|
|
5676
6009
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5677
|
-
|
|
6010
|
+
chunkPQDHGEXJ_cjs.Button,
|
|
5678
6011
|
{
|
|
5679
6012
|
type: "button",
|
|
5680
6013
|
onClick: handleSave,
|
|
@@ -5733,10 +6066,10 @@ function VideoCapture({ onSave, onDiscard, onError, isSaving = false }) {
|
|
|
5733
6066
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "relative inline-flex h-2 w-2 rounded-full bg-red-500" })
|
|
5734
6067
|
] }),
|
|
5735
6068
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-semibold uppercase tracking-wide text-red-500", children: "Rec" }),
|
|
5736
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-xs tabular-nums text-muted-foreground", children:
|
|
6069
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-xs tabular-nums text-muted-foreground", children: chunkPQDHGEXJ_cjs.formatElapsed(recorder.elapsedMs) })
|
|
5737
6070
|
] }),
|
|
5738
6071
|
recorder.state === "recording" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
5739
|
-
|
|
6072
|
+
chunkPQDHGEXJ_cjs.Button,
|
|
5740
6073
|
{
|
|
5741
6074
|
type: "button",
|
|
5742
6075
|
size: "lg",
|
|
@@ -5746,7 +6079,7 @@ function VideoCapture({ onSave, onDiscard, onError, isSaving = false }) {
|
|
|
5746
6079
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "h-5 w-5 fill-current" })
|
|
5747
6080
|
}
|
|
5748
6081
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
5749
|
-
|
|
6082
|
+
chunkPQDHGEXJ_cjs.Button,
|
|
5750
6083
|
{
|
|
5751
6084
|
type: "button",
|
|
5752
6085
|
size: "lg",
|
|
@@ -5763,7 +6096,7 @@ function VideoCapture({ onSave, onDiscard, onError, isSaving = false }) {
|
|
|
5763
6096
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-md", children: /* @__PURE__ */ jsxRuntime.jsx(chunkTMPDW7J5_cjs.VideoViewer, { blob: recorder.blob, title: "Captured video" }) }),
|
|
5764
6097
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
5765
6098
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5766
|
-
|
|
6099
|
+
chunkPQDHGEXJ_cjs.Button,
|
|
5767
6100
|
{
|
|
5768
6101
|
type: "button",
|
|
5769
6102
|
variant: "outline",
|
|
@@ -5777,7 +6110,7 @@ function VideoCapture({ onSave, onDiscard, onError, isSaving = false }) {
|
|
|
5777
6110
|
}
|
|
5778
6111
|
),
|
|
5779
6112
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5780
|
-
|
|
6113
|
+
chunkPQDHGEXJ_cjs.Button,
|
|
5781
6114
|
{
|
|
5782
6115
|
type: "button",
|
|
5783
6116
|
variant: "outline",
|
|
@@ -5791,7 +6124,7 @@ function VideoCapture({ onSave, onDiscard, onError, isSaving = false }) {
|
|
|
5791
6124
|
}
|
|
5792
6125
|
),
|
|
5793
6126
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5794
|
-
|
|
6127
|
+
chunkPQDHGEXJ_cjs.Button,
|
|
5795
6128
|
{
|
|
5796
6129
|
type: "button",
|
|
5797
6130
|
onClick: handleSave,
|
|
@@ -5832,737 +6165,713 @@ function hasVideoTrack(blob) {
|
|
|
5832
6165
|
});
|
|
5833
6166
|
}
|
|
5834
6167
|
|
|
6168
|
+
Object.defineProperty(exports, "DEFAULT_NOTIFY_TONE", {
|
|
6169
|
+
enumerable: true,
|
|
6170
|
+
get: function () { return chunkYSZJCWDD_cjs.DEFAULT_NOTIFY_TONE; }
|
|
6171
|
+
});
|
|
6172
|
+
Object.defineProperty(exports, "NotificationBell", {
|
|
6173
|
+
enumerable: true,
|
|
6174
|
+
get: function () { return chunkYSZJCWDD_cjs.NotificationBell; }
|
|
6175
|
+
});
|
|
6176
|
+
Object.defineProperty(exports, "Toaster", {
|
|
6177
|
+
enumerable: true,
|
|
6178
|
+
get: function () { return chunkYSZJCWDD_cjs.Toaster; }
|
|
6179
|
+
});
|
|
6180
|
+
Object.defineProperty(exports, "formatRelativeTime", {
|
|
6181
|
+
enumerable: true,
|
|
6182
|
+
get: function () { return chunkYSZJCWDD_cjs.formatRelativeTime; }
|
|
6183
|
+
});
|
|
6184
|
+
Object.defineProperty(exports, "notify", {
|
|
6185
|
+
enumerable: true,
|
|
6186
|
+
get: function () { return chunkYSZJCWDD_cjs.notify; }
|
|
6187
|
+
});
|
|
6188
|
+
Object.defineProperty(exports, "seedNotifications", {
|
|
6189
|
+
enumerable: true,
|
|
6190
|
+
get: function () { return chunkYSZJCWDD_cjs.seedNotifications; }
|
|
6191
|
+
});
|
|
6192
|
+
Object.defineProperty(exports, "selectUnread", {
|
|
6193
|
+
enumerable: true,
|
|
6194
|
+
get: function () { return chunkYSZJCWDD_cjs.selectUnread; }
|
|
6195
|
+
});
|
|
6196
|
+
Object.defineProperty(exports, "toast", {
|
|
6197
|
+
enumerable: true,
|
|
6198
|
+
get: function () { return chunkYSZJCWDD_cjs.toast; }
|
|
6199
|
+
});
|
|
6200
|
+
Object.defineProperty(exports, "useNotify", {
|
|
6201
|
+
enumerable: true,
|
|
6202
|
+
get: function () { return chunkYSZJCWDD_cjs.useNotify; }
|
|
6203
|
+
});
|
|
5835
6204
|
Object.defineProperty(exports, "DEFAULT_USD_PER_CREDIT", {
|
|
5836
6205
|
enumerable: true,
|
|
5837
|
-
get: function () { return
|
|
6206
|
+
get: function () { return chunk6BLXIF4R_cjs.DEFAULT_USD_PER_CREDIT; }
|
|
5838
6207
|
});
|
|
5839
6208
|
Object.defineProperty(exports, "arbiQueryKeys", {
|
|
5840
6209
|
enumerable: true,
|
|
5841
|
-
get: function () { return
|
|
6210
|
+
get: function () { return chunk6BLXIF4R_cjs.arbiQueryKeys; }
|
|
5842
6211
|
});
|
|
5843
6212
|
Object.defineProperty(exports, "cleanDraftMarkdown", {
|
|
5844
6213
|
enumerable: true,
|
|
5845
|
-
get: function () { return
|
|
6214
|
+
get: function () { return chunk6BLXIF4R_cjs.cleanDraftMarkdown; }
|
|
5846
6215
|
});
|
|
5847
6216
|
Object.defineProperty(exports, "cleanDraftWithReport", {
|
|
5848
6217
|
enumerable: true,
|
|
5849
|
-
get: function () { return
|
|
6218
|
+
get: function () { return chunk6BLXIF4R_cjs.cleanDraftWithReport; }
|
|
5850
6219
|
});
|
|
5851
6220
|
Object.defineProperty(exports, "creditsToUsd", {
|
|
5852
6221
|
enumerable: true,
|
|
5853
|
-
get: function () { return
|
|
6222
|
+
get: function () { return chunk6BLXIF4R_cjs.creditsToUsd; }
|
|
5854
6223
|
});
|
|
5855
6224
|
Object.defineProperty(exports, "formatCredits", {
|
|
5856
6225
|
enumerable: true,
|
|
5857
|
-
get: function () { return
|
|
6226
|
+
get: function () { return chunk6BLXIF4R_cjs.formatCredits; }
|
|
5858
6227
|
});
|
|
5859
6228
|
Object.defineProperty(exports, "isUsageMetered", {
|
|
5860
6229
|
enumerable: true,
|
|
5861
|
-
get: function () { return
|
|
6230
|
+
get: function () { return chunk6BLXIF4R_cjs.isUsageMetered; }
|
|
5862
6231
|
});
|
|
5863
6232
|
Object.defineProperty(exports, "promoteBoldTitle", {
|
|
5864
6233
|
enumerable: true,
|
|
5865
|
-
get: function () { return
|
|
6234
|
+
get: function () { return chunk6BLXIF4R_cjs.promoteBoldTitle; }
|
|
5866
6235
|
});
|
|
5867
6236
|
Object.defineProperty(exports, "repairParsedStructure", {
|
|
5868
6237
|
enumerable: true,
|
|
5869
|
-
get: function () { return
|
|
6238
|
+
get: function () { return chunk6BLXIF4R_cjs.repairParsedStructure; }
|
|
5870
6239
|
});
|
|
5871
6240
|
Object.defineProperty(exports, "repairParsedTitle", {
|
|
5872
6241
|
enumerable: true,
|
|
5873
|
-
get: function () { return
|
|
6242
|
+
get: function () { return chunk6BLXIF4R_cjs.repairParsedTitle; }
|
|
5874
6243
|
});
|
|
5875
6244
|
Object.defineProperty(exports, "stripAgentPreamble", {
|
|
5876
6245
|
enumerable: true,
|
|
5877
|
-
get: function () { return
|
|
6246
|
+
get: function () { return chunk6BLXIF4R_cjs.stripAgentPreamble; }
|
|
5878
6247
|
});
|
|
5879
6248
|
Object.defineProperty(exports, "unescapeMarkdown", {
|
|
5880
6249
|
enumerable: true,
|
|
5881
|
-
get: function () { return
|
|
6250
|
+
get: function () { return chunk6BLXIF4R_cjs.unescapeMarkdown; }
|
|
5882
6251
|
});
|
|
5883
6252
|
Object.defineProperty(exports, "unwrapCitationLinks", {
|
|
5884
6253
|
enumerable: true,
|
|
5885
|
-
get: function () { return
|
|
6254
|
+
get: function () { return chunk6BLXIF4R_cjs.unwrapCitationLinks; }
|
|
5886
6255
|
});
|
|
5887
6256
|
Object.defineProperty(exports, "useActivity", {
|
|
5888
6257
|
enumerable: true,
|
|
5889
|
-
get: function () { return
|
|
6258
|
+
get: function () { return chunk6BLXIF4R_cjs.useActivity; }
|
|
5890
6259
|
});
|
|
5891
6260
|
Object.defineProperty(exports, "useAgents", {
|
|
5892
6261
|
enumerable: true,
|
|
5893
|
-
get: function () { return
|
|
6262
|
+
get: function () { return chunk6BLXIF4R_cjs.useAgents; }
|
|
5894
6263
|
});
|
|
5895
6264
|
Object.defineProperty(exports, "useAssistantQuery", {
|
|
5896
6265
|
enumerable: true,
|
|
5897
|
-
get: function () { return
|
|
6266
|
+
get: function () { return chunk6BLXIF4R_cjs.useAssistantQuery; }
|
|
5898
6267
|
});
|
|
5899
6268
|
Object.defineProperty(exports, "useConfigs", {
|
|
5900
6269
|
enumerable: true,
|
|
5901
|
-
get: function () { return
|
|
6270
|
+
get: function () { return chunk6BLXIF4R_cjs.useConfigs; }
|
|
5902
6271
|
});
|
|
5903
6272
|
Object.defineProperty(exports, "useConversationThreads", {
|
|
5904
6273
|
enumerable: true,
|
|
5905
|
-
get: function () { return
|
|
6274
|
+
get: function () { return chunk6BLXIF4R_cjs.useConversationThreads; }
|
|
5906
6275
|
});
|
|
5907
6276
|
Object.defineProperty(exports, "useConversations", {
|
|
5908
6277
|
enumerable: true,
|
|
5909
|
-
get: function () { return
|
|
6278
|
+
get: function () { return chunk6BLXIF4R_cjs.useConversations; }
|
|
5910
6279
|
});
|
|
5911
6280
|
Object.defineProperty(exports, "useDeleteAgents", {
|
|
5912
6281
|
enumerable: true,
|
|
5913
|
-
get: function () { return
|
|
6282
|
+
get: function () { return chunk6BLXIF4R_cjs.useDeleteAgents; }
|
|
5914
6283
|
});
|
|
5915
6284
|
Object.defineProperty(exports, "useDocuments", {
|
|
5916
6285
|
enumerable: true,
|
|
5917
|
-
get: function () { return
|
|
6286
|
+
get: function () { return chunk6BLXIF4R_cjs.useDocuments; }
|
|
5918
6287
|
});
|
|
5919
6288
|
Object.defineProperty(exports, "useFacts", {
|
|
5920
6289
|
enumerable: true,
|
|
5921
|
-
get: function () { return
|
|
6290
|
+
get: function () { return chunk6BLXIF4R_cjs.useFacts; }
|
|
5922
6291
|
});
|
|
5923
6292
|
Object.defineProperty(exports, "useHealth", {
|
|
5924
6293
|
enumerable: true,
|
|
5925
|
-
get: function () { return
|
|
6294
|
+
get: function () { return chunk6BLXIF4R_cjs.useHealth; }
|
|
5926
6295
|
});
|
|
5927
6296
|
Object.defineProperty(exports, "useParsedDocument", {
|
|
5928
6297
|
enumerable: true,
|
|
5929
|
-
get: function () { return
|
|
6298
|
+
get: function () { return chunk6BLXIF4R_cjs.useParsedDocument; }
|
|
5930
6299
|
});
|
|
5931
6300
|
Object.defineProperty(exports, "useProjectInvoices", {
|
|
5932
6301
|
enumerable: true,
|
|
5933
|
-
get: function () { return
|
|
6302
|
+
get: function () { return chunk6BLXIF4R_cjs.useProjectInvoices; }
|
|
5934
6303
|
});
|
|
5935
6304
|
Object.defineProperty(exports, "useProjectUsage", {
|
|
5936
6305
|
enumerable: true,
|
|
5937
|
-
get: function () { return
|
|
6306
|
+
get: function () { return chunk6BLXIF4R_cjs.useProjectUsage; }
|
|
5938
6307
|
});
|
|
5939
6308
|
Object.defineProperty(exports, "useProjects", {
|
|
5940
6309
|
enumerable: true,
|
|
5941
|
-
get: function () { return
|
|
6310
|
+
get: function () { return chunk6BLXIF4R_cjs.useProjects; }
|
|
5942
6311
|
});
|
|
5943
6312
|
Object.defineProperty(exports, "useProjectsUsage", {
|
|
5944
6313
|
enumerable: true,
|
|
5945
|
-
get: function () { return
|
|
6314
|
+
get: function () { return chunk6BLXIF4R_cjs.useProjectsUsage; }
|
|
5946
6315
|
});
|
|
5947
6316
|
Object.defineProperty(exports, "useSessions", {
|
|
5948
6317
|
enumerable: true,
|
|
5949
|
-
get: function () { return
|
|
6318
|
+
get: function () { return chunk6BLXIF4R_cjs.useSessions; }
|
|
5950
6319
|
});
|
|
5951
6320
|
Object.defineProperty(exports, "useTags", {
|
|
5952
6321
|
enumerable: true,
|
|
5953
|
-
get: function () { return
|
|
6322
|
+
get: function () { return chunk6BLXIF4R_cjs.useTags; }
|
|
5954
6323
|
});
|
|
5955
6324
|
Object.defineProperty(exports, "useThumbnails", {
|
|
5956
6325
|
enumerable: true,
|
|
5957
|
-
get: function () { return
|
|
6326
|
+
get: function () { return chunk6BLXIF4R_cjs.useThumbnails; }
|
|
5958
6327
|
});
|
|
5959
6328
|
Object.defineProperty(exports, "useUserUsageToday", {
|
|
5960
6329
|
enumerable: true,
|
|
5961
|
-
get: function () { return
|
|
5962
|
-
});
|
|
5963
|
-
Object.defineProperty(exports, "useWorkspaces", {
|
|
5964
|
-
enumerable: true,
|
|
5965
|
-
get: function () { return chunkKXIIARRK_cjs.useWorkspaces; }
|
|
5966
|
-
});
|
|
5967
|
-
Object.defineProperty(exports, "DEFAULT_NOTIFY_TONE", {
|
|
5968
|
-
enumerable: true,
|
|
5969
|
-
get: function () { return chunkPGLV23SB_cjs.DEFAULT_NOTIFY_TONE; }
|
|
5970
|
-
});
|
|
5971
|
-
Object.defineProperty(exports, "NotificationBell", {
|
|
5972
|
-
enumerable: true,
|
|
5973
|
-
get: function () { return chunkPGLV23SB_cjs.NotificationBell; }
|
|
5974
|
-
});
|
|
5975
|
-
Object.defineProperty(exports, "Toaster", {
|
|
5976
|
-
enumerable: true,
|
|
5977
|
-
get: function () { return chunkPGLV23SB_cjs.Toaster; }
|
|
5978
|
-
});
|
|
5979
|
-
Object.defineProperty(exports, "formatRelativeTime", {
|
|
5980
|
-
enumerable: true,
|
|
5981
|
-
get: function () { return chunkPGLV23SB_cjs.formatRelativeTime; }
|
|
5982
|
-
});
|
|
5983
|
-
Object.defineProperty(exports, "notify", {
|
|
5984
|
-
enumerable: true,
|
|
5985
|
-
get: function () { return chunkPGLV23SB_cjs.notify; }
|
|
5986
|
-
});
|
|
5987
|
-
Object.defineProperty(exports, "seedNotifications", {
|
|
5988
|
-
enumerable: true,
|
|
5989
|
-
get: function () { return chunkPGLV23SB_cjs.seedNotifications; }
|
|
5990
|
-
});
|
|
5991
|
-
Object.defineProperty(exports, "selectUnread", {
|
|
5992
|
-
enumerable: true,
|
|
5993
|
-
get: function () { return chunkPGLV23SB_cjs.selectUnread; }
|
|
6330
|
+
get: function () { return chunk6BLXIF4R_cjs.useUserUsageToday; }
|
|
5994
6331
|
});
|
|
5995
|
-
Object.defineProperty(exports, "
|
|
6332
|
+
Object.defineProperty(exports, "useWorkspaceUsers", {
|
|
5996
6333
|
enumerable: true,
|
|
5997
|
-
get: function () { return
|
|
6334
|
+
get: function () { return chunk6BLXIF4R_cjs.useWorkspaceUsers; }
|
|
5998
6335
|
});
|
|
5999
|
-
Object.defineProperty(exports, "
|
|
6336
|
+
Object.defineProperty(exports, "useWorkspaces", {
|
|
6000
6337
|
enumerable: true,
|
|
6001
|
-
get: function () { return
|
|
6338
|
+
get: function () { return chunk6BLXIF4R_cjs.useWorkspaces; }
|
|
6002
6339
|
});
|
|
6003
6340
|
Object.defineProperty(exports, "AgentBadge", {
|
|
6004
6341
|
enumerable: true,
|
|
6005
|
-
get: function () { return
|
|
6342
|
+
get: function () { return chunkPQDHGEXJ_cjs.AgentBadge; }
|
|
6006
6343
|
});
|
|
6007
6344
|
Object.defineProperty(exports, "AiMarkdown", {
|
|
6008
6345
|
enumerable: true,
|
|
6009
|
-
get: function () { return
|
|
6346
|
+
get: function () { return chunkPQDHGEXJ_cjs.AiMarkdown; }
|
|
6010
6347
|
});
|
|
6011
6348
|
Object.defineProperty(exports, "ArbiBotHeadIcon", {
|
|
6012
6349
|
enumerable: true,
|
|
6013
|
-
get: function () { return
|
|
6350
|
+
get: function () { return chunkPQDHGEXJ_cjs.ArbiBotHeadIcon; }
|
|
6014
6351
|
});
|
|
6015
6352
|
Object.defineProperty(exports, "AudIcon", {
|
|
6016
6353
|
enumerable: true,
|
|
6017
|
-
get: function () { return
|
|
6354
|
+
get: function () { return chunkPQDHGEXJ_cjs.AudIcon; }
|
|
6018
6355
|
});
|
|
6019
6356
|
Object.defineProperty(exports, "Avatar", {
|
|
6020
6357
|
enumerable: true,
|
|
6021
|
-
get: function () { return
|
|
6358
|
+
get: function () { return chunkPQDHGEXJ_cjs.Avatar; }
|
|
6022
6359
|
});
|
|
6023
6360
|
Object.defineProperty(exports, "AvatarFallback", {
|
|
6024
6361
|
enumerable: true,
|
|
6025
|
-
get: function () { return
|
|
6362
|
+
get: function () { return chunkPQDHGEXJ_cjs.AvatarFallback; }
|
|
6026
6363
|
});
|
|
6027
6364
|
Object.defineProperty(exports, "AvatarImage", {
|
|
6028
6365
|
enumerable: true,
|
|
6029
|
-
get: function () { return
|
|
6366
|
+
get: function () { return chunkPQDHGEXJ_cjs.AvatarImage; }
|
|
6030
6367
|
});
|
|
6031
6368
|
Object.defineProperty(exports, "BASE_COLORS", {
|
|
6032
6369
|
enumerable: true,
|
|
6033
|
-
get: function () { return
|
|
6370
|
+
get: function () { return chunkPQDHGEXJ_cjs.BASE_COLORS; }
|
|
6034
6371
|
});
|
|
6035
6372
|
Object.defineProperty(exports, "Badge", {
|
|
6036
6373
|
enumerable: true,
|
|
6037
|
-
get: function () { return
|
|
6374
|
+
get: function () { return chunkPQDHGEXJ_cjs.Badge; }
|
|
6038
6375
|
});
|
|
6039
6376
|
Object.defineProperty(exports, "Button", {
|
|
6040
6377
|
enumerable: true,
|
|
6041
|
-
get: function () { return
|
|
6378
|
+
get: function () { return chunkPQDHGEXJ_cjs.Button; }
|
|
6042
6379
|
});
|
|
6043
6380
|
Object.defineProperty(exports, "Card", {
|
|
6044
6381
|
enumerable: true,
|
|
6045
|
-
get: function () { return
|
|
6382
|
+
get: function () { return chunkPQDHGEXJ_cjs.Card; }
|
|
6046
6383
|
});
|
|
6047
6384
|
Object.defineProperty(exports, "CardContent", {
|
|
6048
6385
|
enumerable: true,
|
|
6049
|
-
get: function () { return
|
|
6386
|
+
get: function () { return chunkPQDHGEXJ_cjs.CardContent; }
|
|
6050
6387
|
});
|
|
6051
6388
|
Object.defineProperty(exports, "CardDescription", {
|
|
6052
6389
|
enumerable: true,
|
|
6053
|
-
get: function () { return
|
|
6390
|
+
get: function () { return chunkPQDHGEXJ_cjs.CardDescription; }
|
|
6054
6391
|
});
|
|
6055
6392
|
Object.defineProperty(exports, "CardFooter", {
|
|
6056
6393
|
enumerable: true,
|
|
6057
|
-
get: function () { return
|
|
6394
|
+
get: function () { return chunkPQDHGEXJ_cjs.CardFooter; }
|
|
6058
6395
|
});
|
|
6059
6396
|
Object.defineProperty(exports, "CardHeader", {
|
|
6060
6397
|
enumerable: true,
|
|
6061
|
-
get: function () { return
|
|
6398
|
+
get: function () { return chunkPQDHGEXJ_cjs.CardHeader; }
|
|
6062
6399
|
});
|
|
6063
6400
|
Object.defineProperty(exports, "CardTitle", {
|
|
6064
6401
|
enumerable: true,
|
|
6065
|
-
get: function () { return
|
|
6402
|
+
get: function () { return chunkPQDHGEXJ_cjs.CardTitle; }
|
|
6066
6403
|
});
|
|
6067
6404
|
Object.defineProperty(exports, "Checkbox", {
|
|
6068
6405
|
enumerable: true,
|
|
6069
|
-
get: function () { return
|
|
6406
|
+
get: function () { return chunkPQDHGEXJ_cjs.Checkbox; }
|
|
6070
6407
|
});
|
|
6071
6408
|
Object.defineProperty(exports, "Collapsible", {
|
|
6072
6409
|
enumerable: true,
|
|
6073
|
-
get: function () { return
|
|
6410
|
+
get: function () { return chunkPQDHGEXJ_cjs.Collapsible; }
|
|
6074
6411
|
});
|
|
6075
6412
|
Object.defineProperty(exports, "CollapsibleContent", {
|
|
6076
6413
|
enumerable: true,
|
|
6077
|
-
get: function () { return
|
|
6414
|
+
get: function () { return chunkPQDHGEXJ_cjs.CollapsibleContent; }
|
|
6078
6415
|
});
|
|
6079
6416
|
Object.defineProperty(exports, "CollapsibleTrigger", {
|
|
6080
6417
|
enumerable: true,
|
|
6081
|
-
get: function () { return
|
|
6418
|
+
get: function () { return chunkPQDHGEXJ_cjs.CollapsibleTrigger; }
|
|
6082
6419
|
});
|
|
6083
6420
|
Object.defineProperty(exports, "Command", {
|
|
6084
6421
|
enumerable: true,
|
|
6085
|
-
get: function () { return
|
|
6422
|
+
get: function () { return chunkPQDHGEXJ_cjs.Command; }
|
|
6086
6423
|
});
|
|
6087
6424
|
Object.defineProperty(exports, "CommandDialog", {
|
|
6088
6425
|
enumerable: true,
|
|
6089
|
-
get: function () { return
|
|
6426
|
+
get: function () { return chunkPQDHGEXJ_cjs.CommandDialog; }
|
|
6090
6427
|
});
|
|
6091
6428
|
Object.defineProperty(exports, "CommandEmpty", {
|
|
6092
6429
|
enumerable: true,
|
|
6093
|
-
get: function () { return
|
|
6430
|
+
get: function () { return chunkPQDHGEXJ_cjs.CommandEmpty; }
|
|
6094
6431
|
});
|
|
6095
6432
|
Object.defineProperty(exports, "CommandGroup", {
|
|
6096
6433
|
enumerable: true,
|
|
6097
|
-
get: function () { return
|
|
6434
|
+
get: function () { return chunkPQDHGEXJ_cjs.CommandGroup; }
|
|
6098
6435
|
});
|
|
6099
6436
|
Object.defineProperty(exports, "CommandInput", {
|
|
6100
6437
|
enumerable: true,
|
|
6101
|
-
get: function () { return
|
|
6438
|
+
get: function () { return chunkPQDHGEXJ_cjs.CommandInput; }
|
|
6102
6439
|
});
|
|
6103
6440
|
Object.defineProperty(exports, "CommandItem", {
|
|
6104
6441
|
enumerable: true,
|
|
6105
|
-
get: function () { return
|
|
6442
|
+
get: function () { return chunkPQDHGEXJ_cjs.CommandItem; }
|
|
6106
6443
|
});
|
|
6107
6444
|
Object.defineProperty(exports, "CommandList", {
|
|
6108
6445
|
enumerable: true,
|
|
6109
|
-
get: function () { return
|
|
6446
|
+
get: function () { return chunkPQDHGEXJ_cjs.CommandList; }
|
|
6110
6447
|
});
|
|
6111
6448
|
Object.defineProperty(exports, "CommandSeparator", {
|
|
6112
6449
|
enumerable: true,
|
|
6113
|
-
get: function () { return
|
|
6450
|
+
get: function () { return chunkPQDHGEXJ_cjs.CommandSeparator; }
|
|
6114
6451
|
});
|
|
6115
6452
|
Object.defineProperty(exports, "CommandShortcut", {
|
|
6116
6453
|
enumerable: true,
|
|
6117
|
-
get: function () { return
|
|
6454
|
+
get: function () { return chunkPQDHGEXJ_cjs.CommandShortcut; }
|
|
6118
6455
|
});
|
|
6119
6456
|
Object.defineProperty(exports, "Dialog", {
|
|
6120
6457
|
enumerable: true,
|
|
6121
|
-
get: function () { return
|
|
6458
|
+
get: function () { return chunkPQDHGEXJ_cjs.Dialog; }
|
|
6122
6459
|
});
|
|
6123
6460
|
Object.defineProperty(exports, "DialogClose", {
|
|
6124
6461
|
enumerable: true,
|
|
6125
|
-
get: function () { return
|
|
6462
|
+
get: function () { return chunkPQDHGEXJ_cjs.DialogClose; }
|
|
6126
6463
|
});
|
|
6127
6464
|
Object.defineProperty(exports, "DialogContent", {
|
|
6128
6465
|
enumerable: true,
|
|
6129
|
-
get: function () { return
|
|
6466
|
+
get: function () { return chunkPQDHGEXJ_cjs.DialogContent; }
|
|
6130
6467
|
});
|
|
6131
6468
|
Object.defineProperty(exports, "DialogDescription", {
|
|
6132
6469
|
enumerable: true,
|
|
6133
|
-
get: function () { return
|
|
6470
|
+
get: function () { return chunkPQDHGEXJ_cjs.DialogDescription; }
|
|
6134
6471
|
});
|
|
6135
6472
|
Object.defineProperty(exports, "DialogFooter", {
|
|
6136
6473
|
enumerable: true,
|
|
6137
|
-
get: function () { return
|
|
6474
|
+
get: function () { return chunkPQDHGEXJ_cjs.DialogFooter; }
|
|
6138
6475
|
});
|
|
6139
6476
|
Object.defineProperty(exports, "DialogHeader", {
|
|
6140
6477
|
enumerable: true,
|
|
6141
|
-
get: function () { return
|
|
6478
|
+
get: function () { return chunkPQDHGEXJ_cjs.DialogHeader; }
|
|
6142
6479
|
});
|
|
6143
6480
|
Object.defineProperty(exports, "DialogOverlay", {
|
|
6144
6481
|
enumerable: true,
|
|
6145
|
-
get: function () { return
|
|
6482
|
+
get: function () { return chunkPQDHGEXJ_cjs.DialogOverlay; }
|
|
6146
6483
|
});
|
|
6147
6484
|
Object.defineProperty(exports, "DialogPortal", {
|
|
6148
6485
|
enumerable: true,
|
|
6149
|
-
get: function () { return
|
|
6486
|
+
get: function () { return chunkPQDHGEXJ_cjs.DialogPortal; }
|
|
6150
6487
|
});
|
|
6151
6488
|
Object.defineProperty(exports, "DialogTitle", {
|
|
6152
6489
|
enumerable: true,
|
|
6153
|
-
get: function () { return
|
|
6490
|
+
get: function () { return chunkPQDHGEXJ_cjs.DialogTitle; }
|
|
6154
6491
|
});
|
|
6155
6492
|
Object.defineProperty(exports, "DialogTrigger", {
|
|
6156
6493
|
enumerable: true,
|
|
6157
|
-
get: function () { return
|
|
6494
|
+
get: function () { return chunkPQDHGEXJ_cjs.DialogTrigger; }
|
|
6158
6495
|
});
|
|
6159
6496
|
Object.defineProperty(exports, "DictateProvider", {
|
|
6160
6497
|
enumerable: true,
|
|
6161
|
-
get: function () { return
|
|
6498
|
+
get: function () { return chunkPQDHGEXJ_cjs.DictateProvider; }
|
|
6162
6499
|
});
|
|
6163
6500
|
Object.defineProperty(exports, "DocumentCard", {
|
|
6164
6501
|
enumerable: true,
|
|
6165
|
-
get: function () { return
|
|
6502
|
+
get: function () { return chunkPQDHGEXJ_cjs.DocumentCard; }
|
|
6166
6503
|
});
|
|
6167
6504
|
Object.defineProperty(exports, "DocumentEntity", {
|
|
6168
6505
|
enumerable: true,
|
|
6169
|
-
get: function () { return
|
|
6506
|
+
get: function () { return chunkPQDHGEXJ_cjs.DocumentEntity; }
|
|
6170
6507
|
});
|
|
6171
6508
|
Object.defineProperty(exports, "ENTITY_MAPPINGS", {
|
|
6172
6509
|
enumerable: true,
|
|
6173
|
-
get: function () { return
|
|
6510
|
+
get: function () { return chunkPQDHGEXJ_cjs.ENTITY_MAPPINGS; }
|
|
6174
6511
|
});
|
|
6175
6512
|
Object.defineProperty(exports, "EmlIcon", {
|
|
6176
6513
|
enumerable: true,
|
|
6177
|
-
get: function () { return
|
|
6514
|
+
get: function () { return chunkPQDHGEXJ_cjs.EmlIcon; }
|
|
6178
6515
|
});
|
|
6179
6516
|
Object.defineProperty(exports, "EntityIcon", {
|
|
6180
6517
|
enumerable: true,
|
|
6181
|
-
get: function () { return
|
|
6518
|
+
get: function () { return chunkPQDHGEXJ_cjs.EntityIcon; }
|
|
6182
6519
|
});
|
|
6183
6520
|
Object.defineProperty(exports, "EntityPill", {
|
|
6184
6521
|
enumerable: true,
|
|
6185
|
-
get: function () { return
|
|
6522
|
+
get: function () { return chunkPQDHGEXJ_cjs.EntityPill; }
|
|
6186
6523
|
});
|
|
6187
6524
|
Object.defineProperty(exports, "FILE_TYPE_COLORS", {
|
|
6188
6525
|
enumerable: true,
|
|
6189
|
-
get: function () { return
|
|
6526
|
+
get: function () { return chunkPQDHGEXJ_cjs.FILE_TYPE_COLORS; }
|
|
6190
6527
|
});
|
|
6191
6528
|
Object.defineProperty(exports, "HoverCard", {
|
|
6192
6529
|
enumerable: true,
|
|
6193
|
-
get: function () { return
|
|
6530
|
+
get: function () { return chunkPQDHGEXJ_cjs.HoverCard; }
|
|
6194
6531
|
});
|
|
6195
6532
|
Object.defineProperty(exports, "HoverCardContent", {
|
|
6196
6533
|
enumerable: true,
|
|
6197
|
-
get: function () { return
|
|
6534
|
+
get: function () { return chunkPQDHGEXJ_cjs.HoverCardContent; }
|
|
6198
6535
|
});
|
|
6199
6536
|
Object.defineProperty(exports, "HoverCardTrigger", {
|
|
6200
6537
|
enumerable: true,
|
|
6201
|
-
get: function () { return
|
|
6538
|
+
get: function () { return chunkPQDHGEXJ_cjs.HoverCardTrigger; }
|
|
6202
6539
|
});
|
|
6203
6540
|
Object.defineProperty(exports, "IconToggle", {
|
|
6204
6541
|
enumerable: true,
|
|
6205
|
-
get: function () { return
|
|
6542
|
+
get: function () { return chunkPQDHGEXJ_cjs.IconToggle; }
|
|
6206
6543
|
});
|
|
6207
6544
|
Object.defineProperty(exports, "ImgIcon", {
|
|
6208
6545
|
enumerable: true,
|
|
6209
|
-
get: function () { return
|
|
6546
|
+
get: function () { return chunkPQDHGEXJ_cjs.ImgIcon; }
|
|
6210
6547
|
});
|
|
6211
6548
|
Object.defineProperty(exports, "InlineMicButton", {
|
|
6212
6549
|
enumerable: true,
|
|
6213
|
-
get: function () { return
|
|
6550
|
+
get: function () { return chunkPQDHGEXJ_cjs.InlineMicButton; }
|
|
6214
6551
|
});
|
|
6215
6552
|
Object.defineProperty(exports, "Input", {
|
|
6216
6553
|
enumerable: true,
|
|
6217
|
-
get: function () { return
|
|
6554
|
+
get: function () { return chunkPQDHGEXJ_cjs.Input; }
|
|
6218
6555
|
});
|
|
6219
6556
|
Object.defineProperty(exports, "Label", {
|
|
6220
6557
|
enumerable: true,
|
|
6221
|
-
get: function () { return
|
|
6558
|
+
get: function () { return chunkPQDHGEXJ_cjs.Label; }
|
|
6222
6559
|
});
|
|
6223
6560
|
Object.defineProperty(exports, "MarkMenu", {
|
|
6224
6561
|
enumerable: true,
|
|
6225
|
-
get: function () { return
|
|
6562
|
+
get: function () { return chunkPQDHGEXJ_cjs.MarkMenu; }
|
|
6226
6563
|
});
|
|
6227
6564
|
Object.defineProperty(exports, "MicRecordingOverlay", {
|
|
6228
6565
|
enumerable: true,
|
|
6229
|
-
get: function () { return
|
|
6566
|
+
get: function () { return chunkPQDHGEXJ_cjs.MicRecordingOverlay; }
|
|
6230
6567
|
});
|
|
6231
6568
|
Object.defineProperty(exports, "MicWaveformIndicator", {
|
|
6232
6569
|
enumerable: true,
|
|
6233
|
-
get: function () { return
|
|
6570
|
+
get: function () { return chunkPQDHGEXJ_cjs.MicWaveformIndicator; }
|
|
6234
6571
|
});
|
|
6235
6572
|
Object.defineProperty(exports, "NEUTRAL_GRAY", {
|
|
6236
6573
|
enumerable: true,
|
|
6237
|
-
get: function () { return
|
|
6574
|
+
get: function () { return chunkPQDHGEXJ_cjs.NEUTRAL_GRAY; }
|
|
6238
6575
|
});
|
|
6239
6576
|
Object.defineProperty(exports, "PLACEHOLDER_COLOR", {
|
|
6240
6577
|
enumerable: true,
|
|
6241
|
-
get: function () { return
|
|
6578
|
+
get: function () { return chunkPQDHGEXJ_cjs.PLACEHOLDER_COLOR; }
|
|
6242
6579
|
});
|
|
6243
6580
|
Object.defineProperty(exports, "PassageCard", {
|
|
6244
6581
|
enumerable: true,
|
|
6245
|
-
get: function () { return
|
|
6582
|
+
get: function () { return chunkPQDHGEXJ_cjs.PassageCard; }
|
|
6246
6583
|
});
|
|
6247
6584
|
Object.defineProperty(exports, "PdfIcon", {
|
|
6248
6585
|
enumerable: true,
|
|
6249
|
-
get: function () { return
|
|
6586
|
+
get: function () { return chunkPQDHGEXJ_cjs.PdfIcon; }
|
|
6250
6587
|
});
|
|
6251
6588
|
Object.defineProperty(exports, "Popover", {
|
|
6252
6589
|
enumerable: true,
|
|
6253
|
-
get: function () { return
|
|
6590
|
+
get: function () { return chunkPQDHGEXJ_cjs.Popover; }
|
|
6254
6591
|
});
|
|
6255
6592
|
Object.defineProperty(exports, "PopoverAnchor", {
|
|
6256
6593
|
enumerable: true,
|
|
6257
|
-
get: function () { return
|
|
6594
|
+
get: function () { return chunkPQDHGEXJ_cjs.PopoverAnchor; }
|
|
6258
6595
|
});
|
|
6259
6596
|
Object.defineProperty(exports, "PopoverContent", {
|
|
6260
6597
|
enumerable: true,
|
|
6261
|
-
get: function () { return
|
|
6598
|
+
get: function () { return chunkPQDHGEXJ_cjs.PopoverContent; }
|
|
6262
6599
|
});
|
|
6263
6600
|
Object.defineProperty(exports, "PopoverTrigger", {
|
|
6264
6601
|
enumerable: true,
|
|
6265
|
-
get: function () { return
|
|
6602
|
+
get: function () { return chunkPQDHGEXJ_cjs.PopoverTrigger; }
|
|
6266
6603
|
});
|
|
6267
6604
|
Object.defineProperty(exports, "PresenceLabel", {
|
|
6268
6605
|
enumerable: true,
|
|
6269
|
-
get: function () { return
|
|
6606
|
+
get: function () { return chunkPQDHGEXJ_cjs.PresenceLabel; }
|
|
6270
6607
|
});
|
|
6271
6608
|
Object.defineProperty(exports, "Progress", {
|
|
6272
6609
|
enumerable: true,
|
|
6273
|
-
get: function () { return
|
|
6610
|
+
get: function () { return chunkPQDHGEXJ_cjs.Progress; }
|
|
6274
6611
|
});
|
|
6275
6612
|
Object.defineProperty(exports, "ProjectEntity", {
|
|
6276
6613
|
enumerable: true,
|
|
6277
|
-
get: function () { return
|
|
6614
|
+
get: function () { return chunkPQDHGEXJ_cjs.ProjectEntity; }
|
|
6278
6615
|
});
|
|
6279
6616
|
Object.defineProperty(exports, "RadioGroup", {
|
|
6280
6617
|
enumerable: true,
|
|
6281
|
-
get: function () { return
|
|
6618
|
+
get: function () { return chunkPQDHGEXJ_cjs.RadioGroup; }
|
|
6282
6619
|
});
|
|
6283
6620
|
Object.defineProperty(exports, "RadioGroupItem", {
|
|
6284
6621
|
enumerable: true,
|
|
6285
|
-
get: function () { return
|
|
6622
|
+
get: function () { return chunkPQDHGEXJ_cjs.RadioGroupItem; }
|
|
6286
6623
|
});
|
|
6287
6624
|
Object.defineProperty(exports, "RagDot", {
|
|
6288
6625
|
enumerable: true,
|
|
6289
|
-
get: function () { return
|
|
6626
|
+
get: function () { return chunkPQDHGEXJ_cjs.RagDot; }
|
|
6290
6627
|
});
|
|
6291
6628
|
Object.defineProperty(exports, "RelevanceDot", {
|
|
6292
6629
|
enumerable: true,
|
|
6293
|
-
get: function () { return
|
|
6630
|
+
get: function () { return chunkPQDHGEXJ_cjs.RelevanceDot; }
|
|
6294
6631
|
});
|
|
6295
6632
|
Object.defineProperty(exports, "Select", {
|
|
6296
6633
|
enumerable: true,
|
|
6297
|
-
get: function () { return
|
|
6634
|
+
get: function () { return chunkPQDHGEXJ_cjs.Select; }
|
|
6298
6635
|
});
|
|
6299
6636
|
Object.defineProperty(exports, "SelectContent", {
|
|
6300
6637
|
enumerable: true,
|
|
6301
|
-
get: function () { return
|
|
6638
|
+
get: function () { return chunkPQDHGEXJ_cjs.SelectContent; }
|
|
6302
6639
|
});
|
|
6303
6640
|
Object.defineProperty(exports, "SelectGroup", {
|
|
6304
6641
|
enumerable: true,
|
|
6305
|
-
get: function () { return
|
|
6642
|
+
get: function () { return chunkPQDHGEXJ_cjs.SelectGroup; }
|
|
6306
6643
|
});
|
|
6307
6644
|
Object.defineProperty(exports, "SelectItem", {
|
|
6308
6645
|
enumerable: true,
|
|
6309
|
-
get: function () { return
|
|
6646
|
+
get: function () { return chunkPQDHGEXJ_cjs.SelectItem; }
|
|
6310
6647
|
});
|
|
6311
6648
|
Object.defineProperty(exports, "SelectLabel", {
|
|
6312
6649
|
enumerable: true,
|
|
6313
|
-
get: function () { return
|
|
6650
|
+
get: function () { return chunkPQDHGEXJ_cjs.SelectLabel; }
|
|
6314
6651
|
});
|
|
6315
6652
|
Object.defineProperty(exports, "SelectScrollDownButton", {
|
|
6316
6653
|
enumerable: true,
|
|
6317
|
-
get: function () { return
|
|
6654
|
+
get: function () { return chunkPQDHGEXJ_cjs.SelectScrollDownButton; }
|
|
6318
6655
|
});
|
|
6319
6656
|
Object.defineProperty(exports, "SelectScrollUpButton", {
|
|
6320
6657
|
enumerable: true,
|
|
6321
|
-
get: function () { return
|
|
6658
|
+
get: function () { return chunkPQDHGEXJ_cjs.SelectScrollUpButton; }
|
|
6322
6659
|
});
|
|
6323
6660
|
Object.defineProperty(exports, "SelectSeparator", {
|
|
6324
6661
|
enumerable: true,
|
|
6325
|
-
get: function () { return
|
|
6662
|
+
get: function () { return chunkPQDHGEXJ_cjs.SelectSeparator; }
|
|
6326
6663
|
});
|
|
6327
6664
|
Object.defineProperty(exports, "SelectTrigger", {
|
|
6328
6665
|
enumerable: true,
|
|
6329
|
-
get: function () { return
|
|
6666
|
+
get: function () { return chunkPQDHGEXJ_cjs.SelectTrigger; }
|
|
6330
6667
|
});
|
|
6331
6668
|
Object.defineProperty(exports, "SelectValue", {
|
|
6332
6669
|
enumerable: true,
|
|
6333
|
-
get: function () { return
|
|
6670
|
+
get: function () { return chunkPQDHGEXJ_cjs.SelectValue; }
|
|
6334
6671
|
});
|
|
6335
6672
|
Object.defineProperty(exports, "Separator", {
|
|
6336
6673
|
enumerable: true,
|
|
6337
|
-
get: function () { return
|
|
6674
|
+
get: function () { return chunkPQDHGEXJ_cjs.Separator; }
|
|
6338
6675
|
});
|
|
6339
6676
|
Object.defineProperty(exports, "Slider", {
|
|
6340
6677
|
enumerable: true,
|
|
6341
|
-
get: function () { return
|
|
6678
|
+
get: function () { return chunkPQDHGEXJ_cjs.Slider; }
|
|
6342
6679
|
});
|
|
6343
6680
|
Object.defineProperty(exports, "StatusPill", {
|
|
6344
6681
|
enumerable: true,
|
|
6345
|
-
get: function () { return
|
|
6682
|
+
get: function () { return chunkPQDHGEXJ_cjs.StatusPill; }
|
|
6346
6683
|
});
|
|
6347
6684
|
Object.defineProperty(exports, "Switch", {
|
|
6348
6685
|
enumerable: true,
|
|
6349
|
-
get: function () { return
|
|
6686
|
+
get: function () { return chunkPQDHGEXJ_cjs.Switch; }
|
|
6350
6687
|
});
|
|
6351
6688
|
Object.defineProperty(exports, "TAG_TYPE_ICONS", {
|
|
6352
6689
|
enumerable: true,
|
|
6353
|
-
get: function () { return
|
|
6690
|
+
get: function () { return chunkPQDHGEXJ_cjs.TAG_TYPE_ICONS; }
|
|
6354
6691
|
});
|
|
6355
6692
|
Object.defineProperty(exports, "TAG_TYPE_LABELS", {
|
|
6356
6693
|
enumerable: true,
|
|
6357
|
-
get: function () { return
|
|
6694
|
+
get: function () { return chunkPQDHGEXJ_cjs.TAG_TYPE_LABELS; }
|
|
6358
6695
|
});
|
|
6359
6696
|
Object.defineProperty(exports, "Table", {
|
|
6360
6697
|
enumerable: true,
|
|
6361
|
-
get: function () { return
|
|
6698
|
+
get: function () { return chunkPQDHGEXJ_cjs.Table; }
|
|
6362
6699
|
});
|
|
6363
6700
|
Object.defineProperty(exports, "TableBody", {
|
|
6364
6701
|
enumerable: true,
|
|
6365
|
-
get: function () { return
|
|
6702
|
+
get: function () { return chunkPQDHGEXJ_cjs.TableBody; }
|
|
6366
6703
|
});
|
|
6367
6704
|
Object.defineProperty(exports, "TableCaption", {
|
|
6368
6705
|
enumerable: true,
|
|
6369
|
-
get: function () { return
|
|
6706
|
+
get: function () { return chunkPQDHGEXJ_cjs.TableCaption; }
|
|
6370
6707
|
});
|
|
6371
6708
|
Object.defineProperty(exports, "TableCell", {
|
|
6372
6709
|
enumerable: true,
|
|
6373
|
-
get: function () { return
|
|
6710
|
+
get: function () { return chunkPQDHGEXJ_cjs.TableCell; }
|
|
6374
6711
|
});
|
|
6375
6712
|
Object.defineProperty(exports, "TableFooter", {
|
|
6376
6713
|
enumerable: true,
|
|
6377
|
-
get: function () { return
|
|
6714
|
+
get: function () { return chunkPQDHGEXJ_cjs.TableFooter; }
|
|
6378
6715
|
});
|
|
6379
6716
|
Object.defineProperty(exports, "TableHead", {
|
|
6380
6717
|
enumerable: true,
|
|
6381
|
-
get: function () { return
|
|
6718
|
+
get: function () { return chunkPQDHGEXJ_cjs.TableHead; }
|
|
6382
6719
|
});
|
|
6383
6720
|
Object.defineProperty(exports, "TableHeader", {
|
|
6384
6721
|
enumerable: true,
|
|
6385
|
-
get: function () { return
|
|
6722
|
+
get: function () { return chunkPQDHGEXJ_cjs.TableHeader; }
|
|
6386
6723
|
});
|
|
6387
6724
|
Object.defineProperty(exports, "TableRow", {
|
|
6388
6725
|
enumerable: true,
|
|
6389
|
-
get: function () { return
|
|
6726
|
+
get: function () { return chunkPQDHGEXJ_cjs.TableRow; }
|
|
6390
6727
|
});
|
|
6391
6728
|
Object.defineProperty(exports, "Tabs", {
|
|
6392
6729
|
enumerable: true,
|
|
6393
|
-
get: function () { return
|
|
6730
|
+
get: function () { return chunkPQDHGEXJ_cjs.Tabs; }
|
|
6394
6731
|
});
|
|
6395
6732
|
Object.defineProperty(exports, "TabsContent", {
|
|
6396
6733
|
enumerable: true,
|
|
6397
|
-
get: function () { return
|
|
6734
|
+
get: function () { return chunkPQDHGEXJ_cjs.TabsContent; }
|
|
6398
6735
|
});
|
|
6399
6736
|
Object.defineProperty(exports, "TabsList", {
|
|
6400
6737
|
enumerable: true,
|
|
6401
|
-
get: function () { return
|
|
6738
|
+
get: function () { return chunkPQDHGEXJ_cjs.TabsList; }
|
|
6402
6739
|
});
|
|
6403
6740
|
Object.defineProperty(exports, "TabsTrigger", {
|
|
6404
6741
|
enumerable: true,
|
|
6405
|
-
get: function () { return
|
|
6742
|
+
get: function () { return chunkPQDHGEXJ_cjs.TabsTrigger; }
|
|
6406
6743
|
});
|
|
6407
6744
|
Object.defineProperty(exports, "TagEntity", {
|
|
6408
6745
|
enumerable: true,
|
|
6409
|
-
get: function () { return
|
|
6746
|
+
get: function () { return chunkPQDHGEXJ_cjs.TagEntity; }
|
|
6410
6747
|
});
|
|
6411
6748
|
Object.defineProperty(exports, "Textarea", {
|
|
6412
6749
|
enumerable: true,
|
|
6413
|
-
get: function () { return
|
|
6750
|
+
get: function () { return chunkPQDHGEXJ_cjs.Textarea; }
|
|
6414
6751
|
});
|
|
6415
6752
|
Object.defineProperty(exports, "Toggle", {
|
|
6416
6753
|
enumerable: true,
|
|
6417
|
-
get: function () { return
|
|
6754
|
+
get: function () { return chunkPQDHGEXJ_cjs.Toggle; }
|
|
6418
6755
|
});
|
|
6419
6756
|
Object.defineProperty(exports, "ToggleGroup", {
|
|
6420
6757
|
enumerable: true,
|
|
6421
|
-
get: function () { return
|
|
6758
|
+
get: function () { return chunkPQDHGEXJ_cjs.ToggleGroup; }
|
|
6422
6759
|
});
|
|
6423
6760
|
Object.defineProperty(exports, "ToggleGroupItem", {
|
|
6424
6761
|
enumerable: true,
|
|
6425
|
-
get: function () { return
|
|
6762
|
+
get: function () { return chunkPQDHGEXJ_cjs.ToggleGroupItem; }
|
|
6426
6763
|
});
|
|
6427
6764
|
Object.defineProperty(exports, "Tooltip", {
|
|
6428
6765
|
enumerable: true,
|
|
6429
|
-
get: function () { return
|
|
6766
|
+
get: function () { return chunkPQDHGEXJ_cjs.Tooltip; }
|
|
6430
6767
|
});
|
|
6431
6768
|
Object.defineProperty(exports, "TooltipContent", {
|
|
6432
6769
|
enumerable: true,
|
|
6433
|
-
get: function () { return
|
|
6770
|
+
get: function () { return chunkPQDHGEXJ_cjs.TooltipContent; }
|
|
6434
6771
|
});
|
|
6435
6772
|
Object.defineProperty(exports, "TooltipProvider", {
|
|
6436
6773
|
enumerable: true,
|
|
6437
|
-
get: function () { return
|
|
6774
|
+
get: function () { return chunkPQDHGEXJ_cjs.TooltipProvider; }
|
|
6438
6775
|
});
|
|
6439
6776
|
Object.defineProperty(exports, "TooltipTrigger", {
|
|
6440
6777
|
enumerable: true,
|
|
6441
|
-
get: function () { return
|
|
6778
|
+
get: function () { return chunkPQDHGEXJ_cjs.TooltipTrigger; }
|
|
6442
6779
|
});
|
|
6443
6780
|
Object.defineProperty(exports, "UserEntity", {
|
|
6444
6781
|
enumerable: true,
|
|
6445
|
-
get: function () { return
|
|
6782
|
+
get: function () { return chunkPQDHGEXJ_cjs.UserEntity; }
|
|
6446
6783
|
});
|
|
6447
6784
|
Object.defineProperty(exports, "UserMenu", {
|
|
6448
6785
|
enumerable: true,
|
|
6449
|
-
get: function () { return
|
|
6786
|
+
get: function () { return chunkPQDHGEXJ_cjs.UserMenu; }
|
|
6450
6787
|
});
|
|
6451
6788
|
Object.defineProperty(exports, "VISIBILITY_ICONS", {
|
|
6452
6789
|
enumerable: true,
|
|
6453
|
-
get: function () { return
|
|
6790
|
+
get: function () { return chunkPQDHGEXJ_cjs.VISIBILITY_ICONS; }
|
|
6454
6791
|
});
|
|
6455
6792
|
Object.defineProperty(exports, "VidIcon", {
|
|
6456
6793
|
enumerable: true,
|
|
6457
|
-
get: function () { return
|
|
6794
|
+
get: function () { return chunkPQDHGEXJ_cjs.VidIcon; }
|
|
6458
6795
|
});
|
|
6459
6796
|
Object.defineProperty(exports, "VisibilityIcon", {
|
|
6460
6797
|
enumerable: true,
|
|
6461
|
-
get: function () { return
|
|
6798
|
+
get: function () { return chunkPQDHGEXJ_cjs.VisibilityIcon; }
|
|
6462
6799
|
});
|
|
6463
6800
|
Object.defineProperty(exports, "VisibilityToggle", {
|
|
6464
6801
|
enumerable: true,
|
|
6465
|
-
get: function () { return
|
|
6802
|
+
get: function () { return chunkPQDHGEXJ_cjs.VisibilityToggle; }
|
|
6466
6803
|
});
|
|
6467
6804
|
Object.defineProperty(exports, "badgeVariants", {
|
|
6468
6805
|
enumerable: true,
|
|
6469
|
-
get: function () { return
|
|
6806
|
+
get: function () { return chunkPQDHGEXJ_cjs.badgeVariants; }
|
|
6470
6807
|
});
|
|
6471
6808
|
Object.defineProperty(exports, "buttonVariants", {
|
|
6472
6809
|
enumerable: true,
|
|
6473
|
-
get: function () { return
|
|
6810
|
+
get: function () { return chunkPQDHGEXJ_cjs.buttonVariants; }
|
|
6474
6811
|
});
|
|
6475
6812
|
Object.defineProperty(exports, "cardVariants", {
|
|
6476
6813
|
enumerable: true,
|
|
6477
|
-
get: function () { return
|
|
6814
|
+
get: function () { return chunkPQDHGEXJ_cjs.cardVariants; }
|
|
6478
6815
|
});
|
|
6479
6816
|
Object.defineProperty(exports, "configureEntityRegistry", {
|
|
6480
6817
|
enumerable: true,
|
|
6481
|
-
get: function () { return
|
|
6818
|
+
get: function () { return chunkPQDHGEXJ_cjs.configureEntityRegistry; }
|
|
6482
6819
|
});
|
|
6483
6820
|
Object.defineProperty(exports, "configureRagLabels", {
|
|
6484
6821
|
enumerable: true,
|
|
6485
|
-
get: function () { return
|
|
6822
|
+
get: function () { return chunkPQDHGEXJ_cjs.configureRagLabels; }
|
|
6486
6823
|
});
|
|
6487
6824
|
Object.defineProperty(exports, "configureStatusRegistry", {
|
|
6488
6825
|
enumerable: true,
|
|
6489
|
-
get: function () { return
|
|
6826
|
+
get: function () { return chunkPQDHGEXJ_cjs.configureStatusRegistry; }
|
|
6490
6827
|
});
|
|
6491
6828
|
Object.defineProperty(exports, "formatElapsed", {
|
|
6492
6829
|
enumerable: true,
|
|
6493
|
-
get: function () { return
|
|
6830
|
+
get: function () { return chunkPQDHGEXJ_cjs.formatElapsed; }
|
|
6494
6831
|
});
|
|
6495
6832
|
Object.defineProperty(exports, "getDocIcon", {
|
|
6496
6833
|
enumerable: true,
|
|
6497
|
-
get: function () { return
|
|
6834
|
+
get: function () { return chunkPQDHGEXJ_cjs.getDocIcon; }
|
|
6498
6835
|
});
|
|
6499
6836
|
Object.defineProperty(exports, "getEntityColor", {
|
|
6500
6837
|
enumerable: true,
|
|
6501
|
-
get: function () { return
|
|
6838
|
+
get: function () { return chunkPQDHGEXJ_cjs.getEntityColor; }
|
|
6502
6839
|
});
|
|
6503
6840
|
Object.defineProperty(exports, "getEntityColorStyles", {
|
|
6504
6841
|
enumerable: true,
|
|
6505
|
-
get: function () { return
|
|
6842
|
+
get: function () { return chunkPQDHGEXJ_cjs.getEntityColorStyles; }
|
|
6506
6843
|
});
|
|
6507
6844
|
Object.defineProperty(exports, "getEntityIcon", {
|
|
6508
6845
|
enumerable: true,
|
|
6509
|
-
get: function () { return
|
|
6846
|
+
get: function () { return chunkPQDHGEXJ_cjs.getEntityIcon; }
|
|
6510
6847
|
});
|
|
6511
6848
|
Object.defineProperty(exports, "getEntityLabel", {
|
|
6512
6849
|
enumerable: true,
|
|
6513
|
-
get: function () { return
|
|
6850
|
+
get: function () { return chunkPQDHGEXJ_cjs.getEntityLabel; }
|
|
6514
6851
|
});
|
|
6515
6852
|
Object.defineProperty(exports, "getStatusVariant", {
|
|
6516
6853
|
enumerable: true,
|
|
6517
|
-
get: function () { return
|
|
6854
|
+
get: function () { return chunkPQDHGEXJ_cjs.getStatusVariant; }
|
|
6518
6855
|
});
|
|
6519
6856
|
Object.defineProperty(exports, "getTagTypeIcon", {
|
|
6520
6857
|
enumerable: true,
|
|
6521
|
-
get: function () { return
|
|
6858
|
+
get: function () { return chunkPQDHGEXJ_cjs.getTagTypeIcon; }
|
|
6522
6859
|
});
|
|
6523
6860
|
Object.defineProperty(exports, "getTagTypeLabel", {
|
|
6524
6861
|
enumerable: true,
|
|
6525
|
-
get: function () { return
|
|
6862
|
+
get: function () { return chunkPQDHGEXJ_cjs.getTagTypeLabel; }
|
|
6526
6863
|
});
|
|
6527
6864
|
Object.defineProperty(exports, "getWorkspaceColor", {
|
|
6528
6865
|
enumerable: true,
|
|
6529
|
-
get: function () { return
|
|
6866
|
+
get: function () { return chunkPQDHGEXJ_cjs.getWorkspaceColor; }
|
|
6530
6867
|
});
|
|
6531
6868
|
Object.defineProperty(exports, "toggleVariants", {
|
|
6532
6869
|
enumerable: true,
|
|
6533
|
-
get: function () { return
|
|
6870
|
+
get: function () { return chunkPQDHGEXJ_cjs.toggleVariants; }
|
|
6534
6871
|
});
|
|
6535
6872
|
Object.defineProperty(exports, "useAudioRecorder", {
|
|
6536
6873
|
enumerable: true,
|
|
6537
|
-
get: function () { return
|
|
6538
|
-
});
|
|
6539
|
-
Object.defineProperty(exports, "MarkdownRenderer", {
|
|
6540
|
-
enumerable: true,
|
|
6541
|
-
get: function () { return chunkEOOHRPFM_cjs.MarkdownRenderer; }
|
|
6542
|
-
});
|
|
6543
|
-
Object.defineProperty(exports, "MarkdownStreamingContext", {
|
|
6544
|
-
enumerable: true,
|
|
6545
|
-
get: function () { return chunkEOOHRPFM_cjs.MarkdownStreamingContext; }
|
|
6546
|
-
});
|
|
6547
|
-
Object.defineProperty(exports, "closeOpenEmphasis", {
|
|
6548
|
-
enumerable: true,
|
|
6549
|
-
get: function () { return chunkEOOHRPFM_cjs.closeOpenEmphasis; }
|
|
6550
|
-
});
|
|
6551
|
-
Object.defineProperty(exports, "markdownBaseComponents", {
|
|
6552
|
-
enumerable: true,
|
|
6553
|
-
get: function () { return chunkEOOHRPFM_cjs.markdownBaseComponents; }
|
|
6554
|
-
});
|
|
6555
|
-
Object.defineProperty(exports, "normalizeCitationMarkup", {
|
|
6556
|
-
enumerable: true,
|
|
6557
|
-
get: function () { return chunkEOOHRPFM_cjs.normalizeCitationMarkup; }
|
|
6558
|
-
});
|
|
6559
|
-
Object.defineProperty(exports, "splitMarkdownBlocks", {
|
|
6560
|
-
enumerable: true,
|
|
6561
|
-
get: function () { return chunkEOOHRPFM_cjs.splitMarkdownBlocks; }
|
|
6562
|
-
});
|
|
6563
|
-
Object.defineProperty(exports, "trimOpenCitation", {
|
|
6564
|
-
enumerable: true,
|
|
6565
|
-
get: function () { return chunkEOOHRPFM_cjs.trimOpenCitation; }
|
|
6874
|
+
get: function () { return chunkPQDHGEXJ_cjs.useAudioRecorder; }
|
|
6566
6875
|
});
|
|
6567
6876
|
Object.defineProperty(exports, "DropdownMenu", {
|
|
6568
6877
|
enumerable: true,
|
|
@@ -6632,6 +6941,34 @@ Object.defineProperty(exports, "ScrollBar", {
|
|
|
6632
6941
|
enumerable: true,
|
|
6633
6942
|
get: function () { return chunkOBNTJEEO_cjs.ScrollBar; }
|
|
6634
6943
|
});
|
|
6944
|
+
Object.defineProperty(exports, "MarkdownRenderer", {
|
|
6945
|
+
enumerable: true,
|
|
6946
|
+
get: function () { return chunkEOOHRPFM_cjs.MarkdownRenderer; }
|
|
6947
|
+
});
|
|
6948
|
+
Object.defineProperty(exports, "MarkdownStreamingContext", {
|
|
6949
|
+
enumerable: true,
|
|
6950
|
+
get: function () { return chunkEOOHRPFM_cjs.MarkdownStreamingContext; }
|
|
6951
|
+
});
|
|
6952
|
+
Object.defineProperty(exports, "closeOpenEmphasis", {
|
|
6953
|
+
enumerable: true,
|
|
6954
|
+
get: function () { return chunkEOOHRPFM_cjs.closeOpenEmphasis; }
|
|
6955
|
+
});
|
|
6956
|
+
Object.defineProperty(exports, "markdownBaseComponents", {
|
|
6957
|
+
enumerable: true,
|
|
6958
|
+
get: function () { return chunkEOOHRPFM_cjs.markdownBaseComponents; }
|
|
6959
|
+
});
|
|
6960
|
+
Object.defineProperty(exports, "normalizeCitationMarkup", {
|
|
6961
|
+
enumerable: true,
|
|
6962
|
+
get: function () { return chunkEOOHRPFM_cjs.normalizeCitationMarkup; }
|
|
6963
|
+
});
|
|
6964
|
+
Object.defineProperty(exports, "splitMarkdownBlocks", {
|
|
6965
|
+
enumerable: true,
|
|
6966
|
+
get: function () { return chunkEOOHRPFM_cjs.splitMarkdownBlocks; }
|
|
6967
|
+
});
|
|
6968
|
+
Object.defineProperty(exports, "trimOpenCitation", {
|
|
6969
|
+
enumerable: true,
|
|
6970
|
+
get: function () { return chunkEOOHRPFM_cjs.trimOpenCitation; }
|
|
6971
|
+
});
|
|
6635
6972
|
Object.defineProperty(exports, "cn", {
|
|
6636
6973
|
enumerable: true,
|
|
6637
6974
|
get: function () { return chunkS6A6FSG7_cjs.cn; }
|
|
@@ -6733,8 +7070,10 @@ exports.toProfileView = toProfileView;
|
|
|
6733
7070
|
exports.toRedlineMarkdown = toRedlineMarkdown;
|
|
6734
7071
|
exports.toShellWorkspace = toShellWorkspace;
|
|
6735
7072
|
exports.useAddContacts = useAddContacts;
|
|
7073
|
+
exports.useAgentChats = useAgentChats;
|
|
6736
7074
|
exports.useAgentConfig = useAgentConfig;
|
|
6737
7075
|
exports.useAgentModels = useAgentModels;
|
|
7076
|
+
exports.useAgentSession = useAgentSession;
|
|
6738
7077
|
exports.useAgentWorkspaces = useAgentWorkspaces;
|
|
6739
7078
|
exports.useAiTask = useAiTask;
|
|
6740
7079
|
exports.useArbiChat = useArbiChat;
|
|
@@ -6751,6 +7090,7 @@ exports.useArbiWsTask = useArbiWsTask;
|
|
|
6751
7090
|
exports.useArbiWsTasks = useArbiWsTasks;
|
|
6752
7091
|
exports.useAvatarCrop = useAvatarCrop;
|
|
6753
7092
|
exports.useCameraStream = useCameraStream;
|
|
7093
|
+
exports.useCloseAgentSession = useCloseAgentSession;
|
|
6754
7094
|
exports.useCommandPalette = useCommandPalette;
|
|
6755
7095
|
exports.useConfirmEmailChange = useConfirmEmailChange;
|
|
6756
7096
|
exports.useContacts = useContacts;
|
|
@@ -6785,12 +7125,16 @@ exports.useSaveAgentConfig = useSaveAgentConfig;
|
|
|
6785
7125
|
exports.useSemanticSearch = useSemanticSearch;
|
|
6786
7126
|
exports.useShellWorkspaces = useShellWorkspaces;
|
|
6787
7127
|
exports.useSkills = useSkills;
|
|
7128
|
+
exports.useStartAgentSession = useStartAgentSession;
|
|
7129
|
+
exports.useStartWorkQuery = useStartWorkQuery;
|
|
6788
7130
|
exports.useTerminateSession = useTerminateSession;
|
|
6789
7131
|
exports.useUpdateConversation = useUpdateConversation;
|
|
6790
7132
|
exports.useUpdateProfile = useUpdateProfile;
|
|
6791
7133
|
exports.useUpdateWorkflow = useUpdateWorkflow;
|
|
7134
|
+
exports.useUploadSkillFiles = useUploadSkillFiles;
|
|
6792
7135
|
exports.useUserSettings = useUserSettings;
|
|
6793
7136
|
exports.useVideoRecorder = useVideoRecorder;
|
|
7137
|
+
exports.useWorkNotifications = useWorkNotifications;
|
|
6794
7138
|
exports.useWorkflows = useWorkflows;
|
|
6795
7139
|
exports.useWorkspaceDocs = useWorkspaceDocs;
|
|
6796
7140
|
exports.userDisplayName = userDisplayName;
|