@arbidocs/blocks 0.4.72 → 0.4.73

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/agents/index.cjs +400 -261
  2. package/dist/agents/index.js +6 -3
  3. package/dist/agents/tasks/TaskActivityTimeline.d.ts +1 -1
  4. package/dist/agents/tasks/WorkflowThreadStrip.d.ts +58 -0
  5. package/dist/agents/tasks/index.d.ts +1 -0
  6. package/dist/agents/workflows/WorkflowRunner.d.ts +70 -0
  7. package/dist/agents/workflows/index.d.ts +7 -1
  8. package/dist/agents/workflows/planSteps.d.ts +28 -0
  9. package/dist/agents/workflows/run.d.ts +97 -0
  10. package/dist/agents/workflows/skillMarkdown.d.ts +15 -0
  11. package/dist/agents/workflows/types.d.ts +109 -0
  12. package/dist/agents/workflows/useWorkflowPreview.d.ts +14 -0
  13. package/dist/agents/workflows/useWorkflowView.d.ts +54 -0
  14. package/dist/agents/workflows/workflow.d.ts +3 -1
  15. package/dist/chunk-2P3T23C7.js +1250 -0
  16. package/dist/chunk-2P3T23C7.js.map +1 -0
  17. package/dist/chunk-7D737FLE.cjs +43 -0
  18. package/dist/chunk-7D737FLE.cjs.map +1 -0
  19. package/dist/{chunk-LFGJAZ5H.js → chunk-DDF5GPIJ.js} +6 -36
  20. package/dist/chunk-DDF5GPIJ.js.map +1 -0
  21. package/dist/chunk-DETZZBG2.cjs +91 -0
  22. package/dist/chunk-DETZZBG2.cjs.map +1 -0
  23. package/dist/chunk-EVUEIBNU.js +89 -0
  24. package/dist/chunk-EVUEIBNU.js.map +1 -0
  25. package/dist/chunk-GTNUQBXI.cjs +1296 -0
  26. package/dist/chunk-GTNUQBXI.cjs.map +1 -0
  27. package/dist/{chunk-DH7C2UJO.cjs → chunk-IUR565UW.cjs} +297 -524
  28. package/dist/chunk-IUR565UW.cjs.map +1 -0
  29. package/dist/{chunk-THO7DZNN.cjs → chunk-MUMH3Z6K.cjs} +20 -15
  30. package/dist/chunk-MUMH3Z6K.cjs.map +1 -0
  31. package/dist/{chunk-KOXUBCLL.js → chunk-ORA2XE7U.js} +3 -3
  32. package/dist/{chunk-KOXUBCLL.js.map → chunk-ORA2XE7U.js.map} +1 -1
  33. package/dist/{chunk-5HOAOKZL.js → chunk-OYMWV45N.js} +21 -16
  34. package/dist/chunk-OYMWV45N.js.map +1 -0
  35. package/dist/{chunk-IMC2Z32C.js → chunk-QDNXEB3T.js} +268 -484
  36. package/dist/chunk-QDNXEB3T.js.map +1 -0
  37. package/dist/{chunk-G5QTGKDJ.cjs → chunk-WOYUXVVQ.cjs} +6 -6
  38. package/dist/{chunk-G5QTGKDJ.cjs.map → chunk-WOYUXVVQ.cjs.map} +1 -1
  39. package/dist/chunk-XD2M6LIG.js +41 -0
  40. package/dist/chunk-XD2M6LIG.js.map +1 -0
  41. package/dist/{chunk-WBDK4PIA.cjs → chunk-Z5VUZ6YD.cjs} +6 -37
  42. package/dist/chunk-Z5VUZ6YD.cjs.map +1 -0
  43. package/dist/connect/docx.cjs +2 -2
  44. package/dist/connect/docx.js +1 -1
  45. package/dist/connect/index.cjs +316 -23
  46. package/dist/connect/index.cjs.map +1 -1
  47. package/dist/connect/index.d.ts +1 -0
  48. package/dist/connect/index.js +300 -8
  49. package/dist/connect/index.js.map +1 -1
  50. package/dist/connection/ConnectedWorkflowBuilder.d.ts +44 -0
  51. package/dist/connection/ConnectedWorkflowRunner.d.ts +27 -0
  52. package/dist/connection/useWorkflowThread.d.ts +34 -0
  53. package/dist/facts/index.cjs +1 -1
  54. package/dist/facts/index.js +1 -1
  55. package/dist/files/index.cjs +9 -83
  56. package/dist/files/index.cjs.map +1 -1
  57. package/dist/files/index.js +6 -83
  58. package/dist/files/index.js.map +1 -1
  59. package/dist/home/index.cjs +22 -21
  60. package/dist/home/index.cjs.map +1 -1
  61. package/dist/home/index.js +4 -3
  62. package/dist/home/index.js.map +1 -1
  63. package/dist/index.cjs +450 -311
  64. package/dist/index.cjs.map +1 -1
  65. package/dist/index.js +7 -4
  66. package/dist/index.js.map +1 -1
  67. package/dist/shell/index.cjs +1 -1
  68. package/dist/shell/index.js +1 -1
  69. package/dist/studio/index.cjs +5 -5
  70. package/dist/studio/index.js +3 -3
  71. package/dist/workflow-canvas/StepInspector.d.ts +46 -0
  72. package/dist/workflow-canvas/TriggerInspector.d.ts +46 -0
  73. package/dist/workflow-canvas/WorkflowBuilder.d.ts +55 -0
  74. package/dist/workflow-canvas/WorkflowCanvas.d.ts +65 -0
  75. package/dist/workflow-canvas/edit.d.ts +54 -0
  76. package/dist/workflow-canvas/index.cjs +1609 -0
  77. package/dist/workflow-canvas/index.cjs.map +1 -0
  78. package/dist/workflow-canvas/index.d.ts +13 -0
  79. package/dist/workflow-canvas/index.js +1579 -0
  80. package/dist/workflow-canvas/index.js.map +1 -0
  81. package/dist/workflow-canvas/trigger.d.ts +51 -0
  82. package/package.json +25 -14
  83. package/src/workflow-canvas/canvas.css +113 -0
  84. package/dist/chunk-5HOAOKZL.js.map +0 -1
  85. package/dist/chunk-DH7C2UJO.cjs.map +0 -1
  86. package/dist/chunk-IMC2Z32C.js.map +0 -1
  87. package/dist/chunk-LFGJAZ5H.js.map +0 -1
  88. package/dist/chunk-THO7DZNN.cjs.map +0 -1
  89. package/dist/chunk-WBDK4PIA.cjs.map +0 -1
@@ -1,8 +1,12 @@
1
1
  "use client";
2
2
  import { SettingsSection, ProfileCard, AvatarPicker, IdentityVerificationCard, IdentityVerificationDialog, RequireVerified, SettingsCard, SettingsActionRow, PasswordChangeDialog, EMAIL_NOTIFICATION_KEYS, EMAIL_NOTIFICATION_CATEGORIES, NotificationCategoryList, toNotificationCategories, toActiveSessionViews, SettingsRow, ActiveSessionsDialog, LogoutDialog, toLogoutSessionViews, SettingsDangerZone, DeleteAccountDialog, toDeleteBlockerViews } from '../chunk-GJV2G4FC.js';
3
- export { ConnectedAssistantDock, redlineStats, textToArtifact, toRedlineMarkdown, useConnectedAiTask, useConnectedChat, useSemanticSearch, useWorkspaceDocs } from '../chunk-KOXUBCLL.js';
4
- import { ConnectionProvider, useConnection } from '../chunk-5HOAOKZL.js';
5
- export { ConnectionProvider, SESSION_EXPIRED_MESSAGE, isAuthenticated, useConnection } from '../chunk-5HOAOKZL.js';
3
+ import { useWorkspaceDocs } from '../chunk-ORA2XE7U.js';
4
+ export { ConnectedAssistantDock, redlineStats, textToArtifact, toRedlineMarkdown, useConnectedAiTask, useConnectedChat, useSemanticSearch, useWorkspaceDocs } from '../chunk-ORA2XE7U.js';
5
+ import { ConnectionProvider, useConnection } from '../chunk-OYMWV45N.js';
6
+ export { ConnectionProvider, SESSION_EXPIRED_MESSAGE, isAuthenticated, useConnection } from '../chunk-OYMWV45N.js';
7
+ import { WorkflowRunner, initialRunInputs, workflowSteps, fromPlanSteps, stepStatesFromActivity, toPlanSteps, runThreadTitle, useWorkflowView } from '../chunk-2P3T23C7.js';
8
+ import '../chunk-EVUEIBNU.js';
9
+ import '../chunk-XD2M6LIG.js';
6
10
  import { StreamedArtifactFrame } from '../chunk-LOJVUGBJ.js';
7
11
  import '../chunk-VILAPTCB.js';
8
12
  import { ChatPage } from '../chunk-G5DP27DU.js';
@@ -14,13 +18,13 @@ import { initials } from '../chunk-OXF2IFXG.js';
14
18
  import '../chunk-TX2ZICS7.js';
15
19
  import '../chunk-7F6CBP3Z.js';
16
20
  import '../chunk-VUNV25KB.js';
17
- import { lazy, useState, Suspense, useMemo, useEffect } from 'react';
21
+ import { lazy, useState, Suspense, useCallback, useMemo, useEffect } from 'react';
18
22
  import { QueryClient, QueryClientProvider, useQueryClient, useQuery } from '@tanstack/react-query';
19
- import { ArbiProvider, useConversations, useRunConversation, useUploadSkillFiles, ArtifactCanvas, useWorkspaces, useShellWorkspaces, useProfile, useUpdateProfile, useRequestEmailChange, useConfirmEmailChange, useNameEditor, useAvatarCrop, useEmailChange, ImageCropModal, useIdentityVerification, usePasswordChange, usePasswordChangeForm, useNotificationPreferences, useSessions, useCurrentSessionId, useTerminateSession, useLogoutAllSessions, useDeleteAccount, useDeleteAccountFlow, useArbi, useArbiWebSocket, notify, useWorkNotifications, useAgentSession, useStartAgentSession, useCloseAgentSession, ArbiWebSocketProvider, useArbiChat } from '@arbidocs/react';
23
+ import { ArbiProvider, useConversations, useRunConversation, useUploadSkillFiles, ArtifactCanvas, useArbi, useDocuments, useWorkspaceUsers, useWorkspaces, useShellWorkspaces, useProfile, useUpdateProfile, useRequestEmailChange, useConfirmEmailChange, useNameEditor, useAvatarCrop, useEmailChange, ImageCropModal, useIdentityVerification, usePasswordChange, usePasswordChangeForm, useNotificationPreferences, useSessions, useCurrentSessionId, useTerminateSession, useLogoutAllSessions, useDeleteAccount, useDeleteAccountFlow, useArbiWebSocket, notify, useWorkNotifications, useAgentSession, useStartAgentSession, useCloseAgentSession, AiAnswer, ArbiWebSocketProvider, useCreateWork, useActOnStep, useConversationActivity, useConversationThreads, useArbiChat } from '@arbidocs/react';
20
24
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
21
- import { Button, Label, Input } from '@arbidocs/react/ui';
25
+ import { Button, Label, Input, cn } from '@arbidocs/react/ui';
22
26
  import { useStreamedArtifact } from '@arbidocs/react/artifacts';
23
- import { UserCircle, KeyRound, Radio } from 'lucide-react';
27
+ import { ExternalLink, UserCircle, KeyRound, Radio } from 'lucide-react';
24
28
  import { useNotify } from '@arbidocs/react/shell';
25
29
 
26
30
  function ConnectionBoundWebSocket({ children }) {
@@ -179,6 +183,294 @@ function StreamedArtifact({
179
183
  }
180
184
  );
181
185
  }
186
+ var STARTING = /* @__PURE__ */ new Set(["pending", "running"]);
187
+ function formValues(step, inputs) {
188
+ if (step.kind !== "form") return void 0;
189
+ return Object.fromEntries(step.inputs.map((f) => [f.name, inputs[f.name] ?? ""]));
190
+ }
191
+ function useWorkflowThread(workflow, options = {}) {
192
+ const arbi = useArbi();
193
+ const { ensureWorkspaceOpen } = useConnection();
194
+ const { wsId } = useWorkspaceDocs();
195
+ const [threadId, setThreadId] = useState(options.conversationId);
196
+ const [localInputs, setLocalInputs] = useState(
197
+ () => initialRunInputs(workflow, options.initialInputs)
198
+ );
199
+ const [edits, setEdits] = useState({});
200
+ const [localStates, setLocalStates] = useState({});
201
+ const createWork = useCreateWork();
202
+ const actOnStep = useActOnStep();
203
+ const conversations = useConversations(wsId, { enabled: !!threadId, live: true });
204
+ const conversation = conversations.data?.find((c) => c.external_id === threadId);
205
+ const steps = useMemo(
206
+ () => workflowSteps(workflow).length > 0 ? workflowSteps(workflow) : fromPlanSteps(conversation?.plan?.steps ?? []),
207
+ [workflow, conversation?.plan?.steps]
208
+ );
209
+ const activity = useConversationActivity(threadId, { live: !!threadId });
210
+ const serverStates = useMemo(
211
+ () => stepStatesFromActivity(activity.data ?? []),
212
+ [activity.data]
213
+ );
214
+ const working = steps.some(
215
+ (s) => s.kind === "agent" && STARTING.has(serverStates[s.id]?.status ?? "pending")
216
+ );
217
+ const threads = useConversationThreads(wsId, threadId, { enabled: !!threadId, live: working });
218
+ const answers = useMemo(() => {
219
+ const byId = /* @__PURE__ */ new Map();
220
+ for (const t of threads.data?.threads ?? [])
221
+ for (const m of t.history) if (m.role === "assistant") byId.set(m.external_id, m.content);
222
+ return byId;
223
+ }, [threads.data]);
224
+ const answerMissing = Object.values(serverStates).some(
225
+ (st) => st.status === "done" && !!st.responseId && !answers.has(st.responseId)
226
+ );
227
+ const refetchThreads = threads.refetch;
228
+ useEffect(() => {
229
+ if (answerMissing) void refetchThreads();
230
+ }, [answerMissing, activity.data, refetchThreads]);
231
+ const states = useMemo(() => {
232
+ if (!threadId) return localStates;
233
+ const out = {};
234
+ for (const [id, s] of Object.entries(serverStates))
235
+ out[id] = { ...s, text: s.responseId ? answers.get(s.responseId) : void 0 };
236
+ return out;
237
+ }, [threadId, localStates, serverStates, answers]);
238
+ const inputs = useMemo(
239
+ () => threadId ? { ...localInputs, ...conversation?.skill_inputs ?? {}, ...edits } : { ...localInputs, ...edits },
240
+ [threadId, localInputs, conversation?.skill_inputs, edits]
241
+ );
242
+ const refresh = useCallback(async () => {
243
+ await Promise.all([activity.refetch(), conversations.refetch()]);
244
+ }, [activity, conversations]);
245
+ const act = useCallback(
246
+ async (id, body) => {
247
+ await actOnStep.mutateAsync({ conversationId: id, body });
248
+ await refresh();
249
+ },
250
+ [actOnStep, refresh]
251
+ );
252
+ const complete = useCallback(
253
+ async (step) => {
254
+ let values = inputs;
255
+ const commit = step.commit ? options.commit?.[step.id] : void 0;
256
+ if (commit && localStates[step.id]?.status !== "done") {
257
+ values = { ...values, ...await commit(values) ?? {} };
258
+ setLocalInputs(values);
259
+ setEdits({});
260
+ }
261
+ let id = threadId;
262
+ if (!id) {
263
+ await ensureWorkspaceOpen();
264
+ const created = await createWork.mutateAsync({
265
+ title: runThreadTitle(workflow, values).slice(0, 60),
266
+ description: workflow.description || null,
267
+ prompt: null,
268
+ skill_ref: null,
269
+ skill_inputs: values,
270
+ agent_ext_id: options.agentId ?? null,
271
+ auth_mode: "run_now_temp",
272
+ plan: {
273
+ goal: "",
274
+ criteria: [],
275
+ max_passes: 3,
276
+ documents: [],
277
+ steps: toPlanSteps(workflow, {
278
+ inputs: values,
279
+ resolveWorkflow: options.resolveWorkflow,
280
+ compose: options.compose
281
+ })
282
+ }
283
+ });
284
+ id = created.external_id;
285
+ setThreadId(id);
286
+ setLocalStates((s) => ({ ...s, [step.id]: { status: "done" } }));
287
+ options.onStarted?.(id);
288
+ }
289
+ await act(id, { step: step.id, action: "complete", inputs: formValues(step, values) });
290
+ },
291
+ [inputs, options, localStates, threadId, ensureWorkspaceOpen, createWork, workflow, act]
292
+ );
293
+ const skip = useCallback(
294
+ async (stepId) => {
295
+ if (!threadId) {
296
+ setLocalStates((s) => ({ ...s, [stepId]: { status: "skipped" } }));
297
+ return;
298
+ }
299
+ await act(threadId, { step: stepId, action: "skip" });
300
+ },
301
+ [threadId, act]
302
+ );
303
+ const retry = useCallback(
304
+ async (_stepId) => {
305
+ if (!threadId) return;
306
+ await arbi.conversations.runWithAuth(threadId);
307
+ await refresh();
308
+ },
309
+ [arbi, threadId, refresh]
310
+ );
311
+ const view = useWorkflowView({
312
+ steps,
313
+ states,
314
+ inputs,
315
+ setInput: (name, value) => setEdits((i) => ({ ...i, [name]: value })),
316
+ complete,
317
+ skip,
318
+ retry,
319
+ isLocked: (id) => states[id]?.status === "done"
320
+ });
321
+ return { view, conversationId: threadId, conversation };
322
+ }
323
+ var DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS = {
324
+ notify: "Ask to approve",
325
+ notified: "Notified.",
326
+ openThread: "Open the thread"
327
+ };
328
+ function ConnectedWorkflowRunner({
329
+ workflow,
330
+ options,
331
+ onOpenConversation,
332
+ emptyHint,
333
+ connectedLabels,
334
+ testIdPrefix = "workflow-run",
335
+ ...runnerProps
336
+ }) {
337
+ const l = { ...DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS, ...connectedLabels };
338
+ const arbi = useArbi();
339
+ const { ensureWorkspaceOpen } = useConnection();
340
+ const { wsId } = useWorkspaceDocs();
341
+ const { data: docs = [], refetch } = useDocuments(wsId);
342
+ const [uploading, setUploading] = useState(false);
343
+ const { view, conversationId } = useWorkflowThread(workflow, options);
344
+ const onUpload = useCallback(
345
+ async (files) => {
346
+ if (!files.length) return;
347
+ setUploading(true);
348
+ try {
349
+ await ensureWorkspaceOpen();
350
+ for (const f of files) await arbi.documents.uploadFile(f, f.name);
351
+ await refetch();
352
+ } finally {
353
+ setUploading(false);
354
+ }
355
+ },
356
+ [arbi, ensureWorkspaceOpen, refetch]
357
+ );
358
+ const renderAgentOutput = (step, state) => {
359
+ const status = state?.status;
360
+ if (!state?.text && status !== "done") return null;
361
+ return /* @__PURE__ */ jsx(
362
+ AiAnswer,
363
+ {
364
+ status: status === "running" ? "running" : "done",
365
+ text: state?.text ?? "",
366
+ emptyHint: emptyHint?.(step),
367
+ testId: `${testIdPrefix}-${step.id}-answer`
368
+ }
369
+ );
370
+ };
371
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
372
+ conversationId && onOpenConversation && /* @__PURE__ */ jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsxs(
373
+ Button,
374
+ {
375
+ variant: "ghost",
376
+ size: "sm",
377
+ onClick: () => onOpenConversation(conversationId),
378
+ "data-testid": `${testIdPrefix}-open-thread`,
379
+ children: [
380
+ /* @__PURE__ */ jsx(ExternalLink, { className: "size-4" }),
381
+ " ",
382
+ l.openThread
383
+ ]
384
+ }
385
+ ) }),
386
+ /* @__PURE__ */ jsx(
387
+ WorkflowRunner,
388
+ {
389
+ ...runnerProps,
390
+ workflow,
391
+ run: view,
392
+ renderAgentOutput,
393
+ renderReview: (step) => conversationId ? /* @__PURE__ */ jsx(
394
+ ReviewNotify,
395
+ {
396
+ conversationId,
397
+ workspaceId: wsId,
398
+ labels: l,
399
+ testId: `${testIdPrefix}-${step.id}`
400
+ }
401
+ ) : null,
402
+ onUpload,
403
+ uploading,
404
+ files: docs.map((d) => ({ id: d.external_id, name: d.file_name ?? d.external_id })),
405
+ testIdPrefix
406
+ }
407
+ )
408
+ ] });
409
+ }
410
+ function ReviewNotify({
411
+ conversationId,
412
+ workspaceId,
413
+ labels,
414
+ testId
415
+ }) {
416
+ const arbi = useArbi();
417
+ const { status, user, ensureWorkspaceOpen } = useConnection();
418
+ const { data: members = [] } = useWorkspaceUsers(workspaceId, {
419
+ enabled: status === "authenticated" && !!workspaceId,
420
+ beforeFetch: ensureWorkspaceOpen
421
+ });
422
+ const people = members.filter(
423
+ (m) => !m.agent_ext_id && !m.user.external_id.startsWith("agt-") && m.user.external_id !== user?.externalId
424
+ );
425
+ const [picked, setPicked] = useState([]);
426
+ const [sent, setSent] = useState(false);
427
+ const [busy, setBusy] = useState(false);
428
+ if (people.length === 0) return null;
429
+ const toggle = (id) => setPicked((p) => p.includes(id) ? p.filter((x) => x !== id) : [...p, id]);
430
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-3", "data-testid": `${testId}-notify`, children: [
431
+ /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1.5", children: people.map((m) => {
432
+ const name = [m.user.given_name, m.user.family_name].filter(Boolean).join(" ") || m.user.email;
433
+ const on = picked.includes(m.user.external_id);
434
+ return /* @__PURE__ */ jsx(
435
+ "button",
436
+ {
437
+ type: "button",
438
+ onClick: () => toggle(m.user.external_id),
439
+ "aria-pressed": on,
440
+ className: cn(
441
+ "rounded-full border px-2.5 py-1 text-xs",
442
+ on ? "border-primary bg-primary/10 text-primary" : "border-border text-muted-foreground"
443
+ ),
444
+ "data-testid": `${testId}-person-${m.user.external_id}`,
445
+ children: name
446
+ },
447
+ m.user.external_id
448
+ );
449
+ }) }),
450
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
451
+ /* @__PURE__ */ jsx(
452
+ Button,
453
+ {
454
+ variant: "outline",
455
+ size: "sm",
456
+ disabled: !picked.length || busy,
457
+ onClick: async () => {
458
+ setBusy(true);
459
+ try {
460
+ await arbi.conversations.notify(conversationId, picked);
461
+ setSent(true);
462
+ } finally {
463
+ setBusy(false);
464
+ }
465
+ },
466
+ "data-testid": `${testId}-notify-send`,
467
+ children: labels.notify
468
+ }
469
+ ),
470
+ sent && /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: labels.notified })
471
+ ] })
472
+ ] });
473
+ }
182
474
  function useConnectedShellWorkspaces(options = {}) {
183
475
  const { workspaceId, setWorkspace } = useConnection();
184
476
  const query = useWorkspaces();
@@ -777,6 +1069,6 @@ function ConnectedAgentChatPanel({
777
1069
  ] });
778
1070
  }
779
1071
 
780
- export { ArbiAppProvider, ConnectedAgentChatPanel, ConnectedDangerZone, ConnectedIdentityVerification, ConnectedLogoutDialog, ConnectedNotificationPreferences, ConnectedProfileCard, ConnectedRequireVerified, ConnectedSecuritySection, ConnectedSessionsRow, ConnectedSkillUpload, ConnectedTaskAccessRequest, StreamedArtifact, defaultUnmetPasswordRequirement, useConnectedDocxNotifications, useConnectedShellWorkspaces, useConnectedWorkNotifications };
1072
+ export { ArbiAppProvider, ConnectedAgentChatPanel, ConnectedDangerZone, ConnectedIdentityVerification, ConnectedLogoutDialog, ConnectedNotificationPreferences, ConnectedProfileCard, ConnectedRequireVerified, ConnectedSecuritySection, ConnectedSessionsRow, ConnectedSkillUpload, ConnectedTaskAccessRequest, ConnectedWorkflowRunner, DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS, StreamedArtifact, defaultUnmetPasswordRequirement, useConnectedDocxNotifications, useConnectedShellWorkspaces, useConnectedWorkNotifications };
781
1073
  //# sourceMappingURL=index.js.map
782
1074
  //# sourceMappingURL=index.js.map