@arbidocs/blocks 0.4.53 → 0.4.55

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 (52) hide show
  1. package/dist/agents/index.cjs +218 -230
  2. package/dist/agents/index.js +2 -2
  3. package/dist/agents/tasks/NewThreadDialog.d.ts +4 -8
  4. package/dist/agents/tasks/TaskActivityTimeline.d.ts +2 -8
  5. package/dist/agents/tasks/TaskInbox.d.ts +1 -1
  6. package/dist/agents/tasks/TaskRowMenu.d.ts +1 -6
  7. package/dist/agents/tasks/TaskStartDialog.d.ts +1 -8
  8. package/dist/agents/tasks/TaskStatusPill.d.ts +2 -2
  9. package/dist/agents/tasks/TaskTable.d.ts +6 -17
  10. package/dist/agents/tasks/WorkflowComposer.d.ts +2 -2
  11. package/dist/agents/tasks/index.d.ts +1 -4
  12. package/dist/agents/tasks/taskColumns.d.ts +2 -2
  13. package/dist/agents/tasks/taskComposerTypes.d.ts +2 -15
  14. package/dist/agents/tasks/taskLabels.d.ts +5 -7
  15. package/dist/agents/tasks/taskRequest.d.ts +5 -7
  16. package/dist/agents/tasks/taskRows.d.ts +6 -10
  17. package/dist/agents/tasks/taskTableLabels.d.ts +2 -6
  18. package/dist/agents/tasks/workflowRows.d.ts +2 -2
  19. package/dist/chat/forward-scroll.d.ts +11 -0
  20. package/dist/chat/index.cjs +122 -122
  21. package/dist/chat/index.js +2 -2
  22. package/dist/{chunk-FVN2EWAV.cjs → chunk-5DM6VU4L.cjs} +52 -3
  23. package/dist/chunk-5DM6VU4L.cjs.map +1 -0
  24. package/dist/{chunk-2FBNT7Y6.js → chunk-BIAALPXI.js} +45 -611
  25. package/dist/chunk-BIAALPXI.js.map +1 -0
  26. package/dist/{chunk-553WJJIZ.cjs → chunk-BR2CPKFU.cjs} +4 -4
  27. package/dist/{chunk-553WJJIZ.cjs.map → chunk-BR2CPKFU.cjs.map} +1 -1
  28. package/dist/{chunk-QSVRKNPK.js → chunk-CW4WXGEN.js} +3 -3
  29. package/dist/{chunk-QSVRKNPK.js.map → chunk-CW4WXGEN.js.map} +1 -1
  30. package/dist/{chunk-CGNTPOWQ.js → chunk-DABEWNL2.js} +52 -3
  31. package/dist/chunk-DABEWNL2.js.map +1 -0
  32. package/dist/{chunk-SA2BVHQ5.cjs → chunk-WKNAFILY.cjs} +5 -5
  33. package/dist/{chunk-SA2BVHQ5.cjs.map → chunk-WKNAFILY.cjs.map} +1 -1
  34. package/dist/{chunk-E3NM576Y.js → chunk-ZQB7HNE6.js} +3 -3
  35. package/dist/{chunk-E3NM576Y.js.map → chunk-ZQB7HNE6.js.map} +1 -1
  36. package/dist/{chunk-5JEVPE7Y.cjs → chunk-ZSNH4CWE.cjs} +42 -611
  37. package/dist/chunk-ZSNH4CWE.cjs.map +1 -0
  38. package/dist/connect/index.cjs +12 -13
  39. package/dist/connect/index.cjs.map +1 -1
  40. package/dist/connect/index.js +3 -4
  41. package/dist/connect/index.js.map +1 -1
  42. package/dist/index.cjs +341 -353
  43. package/dist/index.js +4 -4
  44. package/dist/studio/index.cjs +3 -3
  45. package/dist/studio/index.js +2 -2
  46. package/package.json +4 -4
  47. package/dist/agents/tasks/TaskReviewActions.d.ts +0 -44
  48. package/dist/agents/tasks/TaskReviewDialog.d.ts +0 -22
  49. package/dist/chunk-2FBNT7Y6.js.map +0 -1
  50. package/dist/chunk-5JEVPE7Y.cjs.map +0 -1
  51. package/dist/chunk-CGNTPOWQ.js.map +0 -1
  52. package/dist/chunk-FVN2EWAV.cjs.map +0 -1
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { EmptyState } from './chunk-P6GHJSLR.js';
3
+ import { FoldSection, QuickActionDialogHeader, AddFilesFirst, ScopePicker, StartTiles } from './chunk-LFGJAZ5H.js';
3
4
  import { CellHoverIcon } from './chunk-RFXJYIDV.js';
4
5
  import { GridView, SelectionBar, SelectionBarAction } from './chunk-BUHKUKKB.js';
5
- import { FoldSection, QuickActionDialogHeader, AddFilesFirst, ScopePicker, StartTiles } from './chunk-LFGJAZ5H.js';
6
6
  import { DocumentPicker, TriStateFilterMenu, MultiSelect } from './chunk-CKB64Z4R.js';
7
7
  import { ToneBadge } from './chunk-DPLRHEJZ.js';
8
8
  import { FilterInput } from './chunk-YU2KUMGE.js';
@@ -16,9 +16,9 @@ import { ModalHeader } from './chunk-CPMNAJLF.js';
16
16
  import { toMessageMentions, extractMentions, MentionMenu } from './chunk-AA3PT6KR.js';
17
17
  import { testIdOr, prefixedTestId } from './chunk-7F6CBP3Z.js';
18
18
  import { memo, forwardRef, useState, useMemo, useId, useEffect, useRef, useCallback, useLayoutEffect } from 'react';
19
- import { cn, Label, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, Textarea, Input, Switch, Button, Collapsible, CollapsibleTrigger, CollapsibleContent, Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, Tooltip, TooltipTrigger, TooltipContent, Badge, Slider, UserEntity, getEntityColorStyles, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, Popover, PopoverTrigger, PopoverContent, Command, CommandInput, CommandList, CommandEmpty, CommandItem, VisibilityToggle, EntityPill, ThreadVisibilityIcon, DialogClose, DropdownMenuSeparator, badgeVariants, Checkbox } from '@arbidocs/react/ui';
19
+ import { cn, Label, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, Textarea, Input, Switch, Button, Collapsible, CollapsibleTrigger, CollapsibleContent, Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, Tooltip, TooltipTrigger, TooltipContent, Badge, Slider, UserEntity, getEntityColorStyles, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, VisibilityToggle, EntityPill, ThreadVisibilityIcon, DialogClose, Popover, PopoverTrigger, PopoverContent, Command, CommandInput, CommandList, CommandEmpty, CommandItem, DropdownMenuSeparator, badgeVariants, Checkbox } from '@arbidocs/react/ui';
20
20
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
21
- import { ChevronDown, ChevronRight, Plus, Trash2, Loader2, Play, MessageSquare, Eye, ClipboardList, Pencil, Copy, Bot, Sparkles, Wand2, X, Globe, Download, Lock, ListChecks, AlertTriangle, FileX, SkipForward, Check, FileText, CornerDownRight, MessageSquareReply, UserCheck, AlertCircle, KeyRound, Workflow, ChevronsUpDown, ChevronsDownUp, ListTodo, CheckCheck, MoreHorizontal, CalendarClock, History, ArrowRight, ChevronUp, Pause, Activity, Hourglass, MoreVertical, TriangleAlert, CheckSquare, Square, CheckCircle2, SquareArrowOutUpRight, ArrowLeft, LayoutGrid, List, CircleDashed, RotateCcw, ListPlus, UserRoundCog, Link2, Clock, Bell, MousePointerClick, CircleDot, Zap } from 'lucide-react';
21
+ import { ChevronDown, ChevronRight, Plus, Trash2, Loader2, Play, MessageSquare, Eye, ClipboardList, Pencil, Copy, Bot, Sparkles, Wand2, X, Globe, Download, Lock, ListChecks, AlertTriangle, FileX, SkipForward, Check, FileText, CornerDownRight, AlertCircle, KeyRound, Workflow, ChevronsUpDown, ChevronsDownUp, ListTodo, CheckCheck, MoreHorizontal, CalendarClock, History, ChevronUp, Pause, Activity, Hourglass, MoreVertical, TriangleAlert, CheckSquare, Square, CheckCircle2, SquareArrowOutUpRight, ArrowLeft, LayoutGrid, List, CircleDashed, RotateCcw, ListPlus, Link2, Clock, Bell, MousePointerClick, UserRoundCog, MessageSquareReply, Zap } from 'lucide-react';
22
22
 
23
23
  // src/agents/workflows/types.ts
24
24
  var EMPTY_WORKFLOW_SCOPE = { folders: [], labels: [] };
@@ -3049,21 +3049,13 @@ var TRIGGER_LABELS = {
3049
3049
  var STATUS_LABELS = {
3050
3050
  todo: "To do",
3051
3051
  generating: "Generating",
3052
- ready_for_review: "Ready for review",
3053
3052
  done: "Done",
3054
3053
  chat: "Chat"
3055
3054
  };
3056
- var STATUS_ORDER = [
3057
- "ready_for_review",
3058
- "generating",
3059
- "todo",
3060
- "done",
3061
- "chat"
3062
- ];
3055
+ var STATUS_ORDER = ["generating", "todo", "done", "chat"];
3063
3056
  var STATUS_TONE = {
3064
3057
  todo: "neutral",
3065
3058
  generating: "ai",
3066
- ready_for_review: "warning",
3067
3059
  done: "success",
3068
3060
  chat: "neutral"
3069
3061
  };
@@ -3092,21 +3084,6 @@ function PersonPill({ person, size = "sm", testId }) {
3092
3084
  }
3093
3085
  ) });
3094
3086
  }
3095
- function PersonAvatar({ person, size = "xs" }) {
3096
- return /* @__PURE__ */ jsx(
3097
- UserEntity,
3098
- {
3099
- variant: "icon",
3100
- size,
3101
- interactive: false,
3102
- showTooltip: false,
3103
- initials: initials(person.label),
3104
- displayName: person.label,
3105
- avatarStyle: person.id ? getEntityColorStyles(person.id) : void 0,
3106
- isAgent: person.isAgent
3107
- }
3108
- );
3109
- }
3110
3087
  var DEFAULT_TASK_OUTPUTS_CELL_LABELS = {
3111
3088
  none: "\u2014",
3112
3089
  open: (count) => `${count} ${count === 1 ? "output" : "outputs"}`,
@@ -3230,192 +3207,6 @@ function TaskMoveDialog({
3230
3207
  }
3231
3208
  );
3232
3209
  }
3233
- var DEFAULT_TASK_REVIEW_ACTIONS_LABELS = {
3234
- approve: "Approve",
3235
- requestChanges: "Request changes",
3236
- feedbackLabel: "What should change?",
3237
- feedbackPlaceholder: "Tell the agent what to fix. It continues in the same thread.",
3238
- send: "Send back",
3239
- cancel: "Cancel",
3240
- askApproval: "Ask someone to approve",
3241
- askApprovalPerson: "Who should approve this?",
3242
- askApprovalSearch: "Search people\u2026",
3243
- askApprovalEmpty: "No one to ask.",
3244
- askApprovalNote: "Add a note (optional)",
3245
- askApprovalSend: "Request approval"
3246
- };
3247
- function TaskReviewActions({
3248
- id,
3249
- busy = false,
3250
- canRequestChanges = true,
3251
- onApprove,
3252
- onRequestChanges,
3253
- onRequestApproval,
3254
- people = [],
3255
- compact = false,
3256
- quiet = false,
3257
- canApprove = true,
3258
- labels
3259
- }) {
3260
- const l = { ...DEFAULT_TASK_REVIEW_ACTIONS_LABELS, ...labels };
3261
- const [open, setOpen] = useState(false);
3262
- const [feedback, setFeedback] = useState("");
3263
- const trimmed = feedback.trim();
3264
- const [askOpen, setAskOpen] = useState(false);
3265
- const [person, setPerson] = useState("");
3266
- const [note, setNote] = useState("");
3267
- const canAsk = !!onRequestApproval && people.length > 0;
3268
- const ask = () => {
3269
- if (!person || !onRequestApproval) return;
3270
- onRequestApproval(person, note.trim());
3271
- setPerson("");
3272
- setNote("");
3273
- setAskOpen(false);
3274
- };
3275
- const send = () => {
3276
- if (!trimmed) return;
3277
- onRequestChanges(trimmed);
3278
- setFeedback("");
3279
- setOpen(false);
3280
- };
3281
- return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", "data-slot": "task-review-actions", children: [
3282
- canApprove && /* @__PURE__ */ jsxs(
3283
- Button,
3284
- {
3285
- size: "sm",
3286
- variant: quiet ? "outline" : "default",
3287
- className: "h-8 gap-1.5 pointer-coarse:h-11",
3288
- disabled: busy,
3289
- onClick: onApprove,
3290
- "data-testid": testIdOr(void 0, { testId: `task-approve-${id}` }),
3291
- children: [
3292
- /* @__PURE__ */ jsx(Check, { className: "size-3.5", "aria-hidden": true }),
3293
- l.approve
3294
- ]
3295
- }
3296
- ),
3297
- canRequestChanges && /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, children: [
3298
- /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
3299
- Button,
3300
- {
3301
- size: "sm",
3302
- variant: "outline",
3303
- className: cn(
3304
- "h-8 gap-1.5 pointer-coarse:h-11",
3305
- compact && "w-8 px-0 pointer-coarse:w-11"
3306
- ),
3307
- disabled: busy,
3308
- "aria-label": compact ? l.requestChanges : void 0,
3309
- title: compact ? l.requestChanges : void 0,
3310
- "data-testid": `task-request-changes-${id}`,
3311
- children: [
3312
- /* @__PURE__ */ jsx(MessageSquareReply, { className: "size-3.5", "aria-hidden": true }),
3313
- !compact && l.requestChanges
3314
- ]
3315
- }
3316
- ) }),
3317
- /* @__PURE__ */ jsxs(PopoverContent, { align: "end", className: "w-80 space-y-2", children: [
3318
- /* @__PURE__ */ jsx("label", { htmlFor: `task-feedback-${id}`, className: "text-sm font-medium", children: l.feedbackLabel }),
3319
- /* @__PURE__ */ jsx(
3320
- Textarea,
3321
- {
3322
- id: `task-feedback-${id}`,
3323
- value: feedback,
3324
- rows: 3,
3325
- placeholder: l.feedbackPlaceholder,
3326
- onChange: (e) => setFeedback(e.target.value),
3327
- "data-testid": `task-feedback-${id}`
3328
- }
3329
- ),
3330
- /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2", children: [
3331
- /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", onClick: () => setOpen(false), children: l.cancel }),
3332
- /* @__PURE__ */ jsx(
3333
- Button,
3334
- {
3335
- size: "sm",
3336
- disabled: !trimmed || busy,
3337
- onClick: send,
3338
- "data-testid": `task-send-changes-${id}`,
3339
- children: l.send
3340
- }
3341
- )
3342
- ] })
3343
- ] })
3344
- ] }),
3345
- canAsk && /* @__PURE__ */ jsxs(Popover, { open: askOpen, onOpenChange: setAskOpen, children: [
3346
- /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
3347
- Button,
3348
- {
3349
- size: "sm",
3350
- variant: "outline",
3351
- className: cn(
3352
- "h-8 gap-1.5 pointer-coarse:h-11",
3353
- compact && "w-8 px-0 pointer-coarse:w-11"
3354
- ),
3355
- disabled: busy,
3356
- "aria-label": compact ? l.askApproval : void 0,
3357
- title: compact ? l.askApproval : void 0,
3358
- "data-testid": `task-ask-approval-${id}`,
3359
- children: [
3360
- /* @__PURE__ */ jsx(UserCheck, { className: "size-3.5", "aria-hidden": true }),
3361
- !compact && l.askApproval
3362
- ]
3363
- }
3364
- ) }),
3365
- /* @__PURE__ */ jsxs(PopoverContent, { align: "end", className: "w-72 space-y-2 p-2", children: [
3366
- /* @__PURE__ */ jsx("p", { className: "px-1 text-sm font-medium", children: l.askApprovalPerson }),
3367
- /* @__PURE__ */ jsxs(Command, { className: "rounded-md border", children: [
3368
- /* @__PURE__ */ jsx(
3369
- CommandInput,
3370
- {
3371
- placeholder: l.askApprovalSearch,
3372
- "data-testid": `task-ask-approval-search-${id}`
3373
- }
3374
- ),
3375
- /* @__PURE__ */ jsxs(CommandList, { className: "max-h-40", children: [
3376
- /* @__PURE__ */ jsx(CommandEmpty, { children: l.askApprovalEmpty }),
3377
- people.map((p) => /* @__PURE__ */ jsxs(
3378
- CommandItem,
3379
- {
3380
- value: p.label,
3381
- onSelect: () => setPerson(p.id),
3382
- "data-testid": `task-ask-approval-person-${id}-${p.id}`,
3383
- children: [
3384
- /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate", children: p.label }),
3385
- p.id === person && /* @__PURE__ */ jsx(Check, { className: "ml-2 size-4 shrink-0", "aria-hidden": true })
3386
- ]
3387
- },
3388
- p.id
3389
- ))
3390
- ] })
3391
- ] }),
3392
- /* @__PURE__ */ jsx(
3393
- Textarea,
3394
- {
3395
- value: note,
3396
- rows: 2,
3397
- placeholder: l.askApprovalNote,
3398
- onChange: (e) => setNote(e.target.value),
3399
- "data-testid": `task-ask-approval-note-${id}`
3400
- }
3401
- ),
3402
- /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2", children: [
3403
- /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", onClick: () => setAskOpen(false), children: l.cancel }),
3404
- /* @__PURE__ */ jsx(
3405
- Button,
3406
- {
3407
- size: "sm",
3408
- disabled: !person || busy,
3409
- onClick: ask,
3410
- "data-testid": `task-send-approval-${id}`,
3411
- children: l.askApprovalSend
3412
- }
3413
- )
3414
- ] })
3415
- ] })
3416
- ] })
3417
- ] });
3418
- }
3419
3210
  function TaskRowMenu({
3420
3211
  task,
3421
3212
  status,
@@ -3434,11 +3225,9 @@ function TaskRowMenu({
3434
3225
  onEdit,
3435
3226
  onDelete,
3436
3227
  onMoveTo,
3437
- onChangeOwner,
3438
3228
  onOpenActivity,
3439
3229
  onToggleShared,
3440
- onGrantAccess,
3441
- reviewActions
3230
+ onGrantAccess
3442
3231
  }) {
3443
3232
  const [open, setOpen] = useState(false);
3444
3233
  const id = task.external_id;
@@ -3458,7 +3247,6 @@ function TaskRowMenu({
3458
3247
  ) }),
3459
3248
  /* @__PURE__ */ jsxs(DropdownMenuContent, { align: "end", children: [
3460
3249
  onToggleSelected && /* @__PURE__ */ jsx(DropdownMenuItem, { onSelect: onToggleSelected, "data-testid": `task-select-${id}`, children: selected ? "Deselect task" : "Select task" }),
3461
- reviewActions && /* @__PURE__ */ jsx("div", { className: "px-2 py-1.5", children: typeof reviewActions === "function" ? reviewActions(() => setOpen(false)) : reviewActions }),
3462
3250
  isOwner && onGrantAccess && task.pending_auth_request_id && /* @__PURE__ */ jsxs(
3463
3251
  DropdownMenuItem,
3464
3252
  {
@@ -3503,10 +3291,6 @@ function TaskRowMenu({
3503
3291
  /* @__PURE__ */ jsx(ListPlus, { className: "mr-2 size-4", "aria-hidden": true }),
3504
3292
  labels.addSubtask
3505
3293
  ] }),
3506
- canEdit && !isChat && onChangeOwner && /* @__PURE__ */ jsxs(DropdownMenuItem, { onSelect: onChangeOwner, "data-testid": `task-change-owner-${id}`, children: [
3507
- /* @__PURE__ */ jsx(UserRoundCog, { className: "mr-2 size-4", "aria-hidden": true }),
3508
- labels.changeOwner
3509
- ] }),
3510
3294
  canEdit && onMoveTo && /* @__PURE__ */ jsxs(DropdownMenuItem, { onSelect: onMoveTo, "data-testid": `task-move-${id}`, children: [
3511
3295
  /* @__PURE__ */ jsx(CornerDownRight, { className: "mr-2 size-4", "aria-hidden": true }),
3512
3296
  labels.moveTo
@@ -3545,8 +3329,6 @@ function StatusIcon({ status }) {
3545
3329
  switch (status) {
3546
3330
  case "generating":
3547
3331
  return /* @__PURE__ */ jsx(Loader2, { className: `${ICON} animate-spin`, "aria-hidden": true });
3548
- case "ready_for_review":
3549
- return /* @__PURE__ */ jsx(Eye, { className: ICON, "aria-hidden": true });
3550
3332
  case "done":
3551
3333
  return /* @__PURE__ */ jsx(Check, { className: ICON, "aria-hidden": true });
3552
3334
  case "chat":
@@ -3621,7 +3403,7 @@ function TaskStatusPill({
3621
3403
  }
3622
3404
 
3623
3405
  // src/agents/tasks/taskColumns.tsx
3624
- var ACTIONS_WIDTH = 240;
3406
+ var ACTIONS_WIDTH = 160;
3625
3407
  var NARROW_ACTIONS_WIDTH = 56;
3626
3408
  var TASK_COLUMN_ORDER = [
3627
3409
  "name",
@@ -3710,7 +3492,7 @@ function createTaskColumns(o) {
3710
3492
  colId: "status",
3711
3493
  ...sortable,
3712
3494
  headerName: l.colStatus,
3713
- // Wide enough for "Ready for review" and "Waiting for access" in full, with the elapsed time.
3495
+ // Wide enough for "Generating" and "Waiting for access" in full, with the elapsed time.
3714
3496
  flex: 1.3,
3715
3497
  minWidth: 170,
3716
3498
  valueGetter: (p) => p.data?.task.status ?? "",
@@ -3740,7 +3522,7 @@ function applyColumnWidthRules(api, gridWidth, rules) {
3740
3522
 
3741
3523
  // src/agents/tasks/taskRows.ts
3742
3524
  var MAX_TASK_DEPTH = 5;
3743
- var ownerExtId = (task) => task.signoff_ext_id || task.owner_ext_id || task.created_by_ext_id || null;
3525
+ var ownerExtId = (task) => task.owner_ext_id || task.created_by_ext_id || null;
3744
3526
  var isPlainTodo = (task) => !task.agent_ext_id && !task.has_agent_action && !task.skill_ref;
3745
3527
  function indexTasks(tasks) {
3746
3528
  const byId = new Map(tasks.map((t) => [t.external_id, t]));
@@ -3880,18 +3662,15 @@ function buildTaskRows(tasks, filter, collapsed, compare, options = {}) {
3880
3662
  var DEFAULT_TASK_LIST_LABELS = {
3881
3663
  filterAll: "All",
3882
3664
  emptyTitle: "No tasks yet",
3883
- emptyMessage: "Use New to add one: just type what you need, or fill in an owner and a due date. Automations that create tasks live on the Workflows page. You always decide when a task is done.",
3665
+ emptyMessage: "Use New to add one: just type what you need, or add a due date. Automations that create tasks live on the Workflows page. You always decide when a task is done.",
3884
3666
  noMatches: "No tasks match.",
3885
3667
  due: (when) => when,
3886
3668
  overdue: (when) => `${when} \xB7 overdue`,
3887
3669
  agent: "Agent",
3888
3670
  colTask: "Task",
3889
3671
  colOwner: "Owner",
3890
- ownerHint: "Who has the next step. They are notified when the previous step finishes.",
3672
+ ownerHint: "Who created the task. They are notified when its run finishes.",
3891
3673
  colOutputs: "Outputs",
3892
- changeOwner: "Change owner\u2026",
3893
- changeOwnerTitle: (name) => `Who has the next step on \u201C${name}\u201D?`,
3894
- changeOwnerMe: "Me",
3895
3674
  preparedBy: (agent) => `Prepared by ${agent}`,
3896
3675
  colDue: "Due",
3897
3676
  colStatus: "Status",
@@ -3911,9 +3690,8 @@ var DEFAULT_TASK_LIST_LABELS = {
3911
3690
  markDone: "Mark done",
3912
3691
  reopen: "Reopen",
3913
3692
  markDoneMany: "Mark done",
3914
- markDoneManyHint: "Marks your own to-dos done. Agent work is finished by reviewing it.",
3693
+ markDoneManyHint: "Marks the selected tasks done.",
3915
3694
  deleteMany: "Delete",
3916
- approve: "Approve",
3917
3695
  moveTo: "Move to\u2026",
3918
3696
  untitled: "Untitled task",
3919
3697
  fromWorkflow: (name) => `From \u201C${name}\u201D`,
@@ -3935,7 +3713,7 @@ var DEFAULT_TASK_LIST_LABELS = {
3935
3713
  allowAccess: "Allow access",
3936
3714
  moreActions: "More actions",
3937
3715
  activity: "Activity",
3938
- statusHint: (status, ago, forWho) => [status, ago, forWho && `for ${forWho}`].filter(Boolean).join(" \xB7 "),
3716
+ statusHint: (status, ago) => `${status} \xB7 ${ago}`,
3939
3717
  status: {}
3940
3718
  };
3941
3719
  var ROW_HEIGHT = 56;
@@ -3951,16 +3729,12 @@ var WIDTH_RULES = [
3951
3729
  { colId: "status", minWidth: NARROW_GRID }
3952
3730
  ];
3953
3731
  function statusHint(task, ctx) {
3954
- const { props: p, l, owner } = ctx;
3732
+ const { props: p, l } = ctx;
3955
3733
  if (!p.formatRelative || !task.updated_at) return void 0;
3956
3734
  const key = asTaskStatus(task.status);
3957
3735
  const pill = { ...DEFAULT_TASK_STATUS_PILL_LABELS, ...p.statusPillLabels };
3958
3736
  const label = task.pending_auth_request_id ? pill.waitingForAccess : STATUS_LABELS[key];
3959
- return l.statusHint(
3960
- label,
3961
- p.formatRelative(task.updated_at),
3962
- key === "ready_for_review" ? owner(task).label : void 0
3963
- );
3737
+ return l.statusHint(label, p.formatRelative(task.updated_at));
3964
3738
  }
3965
3739
  function TaskTable(props) {
3966
3740
  const { tasks: allTasks, isLoading, busyId, header, testId } = props;
@@ -3975,7 +3749,6 @@ function TaskTable(props) {
3975
3749
  const [selectedIds, setSelectedIds] = useState(/* @__PURE__ */ new Set());
3976
3750
  const [sort, setSort] = useState(null);
3977
3751
  const [moving, setMoving] = useState(null);
3978
- const [handingOff, setHandingOff] = useState(null);
3979
3752
  const tasks = allTasks;
3980
3753
  const apiRef = useRef(null);
3981
3754
  const [narrow, setNarrow] = useState(false);
@@ -3988,7 +3761,7 @@ function TaskTable(props) {
3988
3761
  const nameOf = (task) => task.title?.trim() || task.workflow_ext_id && props.workflowNames?.[task.workflow_ext_id] || l.untitled;
3989
3762
  const owner = (task) => {
3990
3763
  const id = ownerExtId(task);
3991
- const mine = task.signoff_ext_id ? Boolean(task.can_signoff) : task.is_owner !== false;
3764
+ const mine = task.is_owner !== false;
3992
3765
  return {
3993
3766
  id,
3994
3767
  label: mine ? l.me : (id && peopleNames.get(id)) ?? l.someone,
@@ -4295,51 +4068,7 @@ function TaskTable(props) {
4295
4068
  const isOwner = task.is_owner !== false;
4296
4069
  const canEdit = isOwner || Boolean(p.canEditShared);
4297
4070
  const canAdmin = isOwner || Boolean(p.isWorkspaceOwner);
4298
- const canAskReview = status !== "done" && status !== "chat" && canEdit && Boolean(p.onRequestApproval && p.people?.length);
4299
- const reviewActions = (closeMenu) => status === "ready_for_review" ? /* @__PURE__ */ jsx(
4300
- TaskReviewActions,
4301
- {
4302
- id,
4303
- busy,
4304
- quiet: true,
4305
- canApprove: task.signoff_ext_id ? Boolean(task.can_signoff) : isOwner,
4306
- canRequestChanges: Boolean(task.agent_ext_id || task.has_agent_action || task.skill_ref) && canEdit,
4307
- onApprove: () => {
4308
- p.onApprove(task);
4309
- closeMenu?.();
4310
- },
4311
- onRequestChanges: (feedback) => {
4312
- p.onRequestChanges(task, feedback);
4313
- closeMenu?.();
4314
- },
4315
- onRequestApproval: p.onRequestApproval ? (userId, note) => {
4316
- p.onRequestApproval?.(task, userId, note);
4317
- closeMenu?.();
4318
- } : void 0,
4319
- people: p.people,
4320
- compact: true,
4321
- labels: p.reviewLabels
4322
- }
4323
- ) : canAskReview ? /* @__PURE__ */ jsx(
4324
- TaskReviewActions,
4325
- {
4326
- id,
4327
- busy,
4328
- canApprove: false,
4329
- canRequestChanges: false,
4330
- onApprove: () => void 0,
4331
- onRequestChanges: () => void 0,
4332
- onRequestApproval: (userId, note) => {
4333
- p.onRequestApproval?.(task, userId, note);
4334
- closeMenu?.();
4335
- },
4336
- people: p.people,
4337
- compact: true,
4338
- labels: p.reviewLabels
4339
- }
4340
- ) : null;
4341
4071
  return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-2", children: [
4342
- !latest.current.narrow && reviewActions(),
4343
4072
  !latest.current.narrow && isOwner && task.pending_auth_request_id && p.onGrantAccess && /* @__PURE__ */ jsxs(
4344
4073
  Button,
4345
4074
  {
@@ -4356,7 +4085,6 @@ function TaskTable(props) {
4356
4085
  /* @__PURE__ */ jsx(
4357
4086
  TaskRowMenu,
4358
4087
  {
4359
- reviewActions: latest.current.narrow && (status === "ready_for_review" || canAskReview) ? reviewActions : void 0,
4360
4088
  task,
4361
4089
  status,
4362
4090
  busy,
@@ -4368,7 +4096,6 @@ function TaskTable(props) {
4368
4096
  onReopen: () => p.onReopen(task),
4369
4097
  onAddSubtask: p.onAddSubtask ? () => p.onAddSubtask?.(task) : void 0,
4370
4098
  onMoveTo: p.onMove ? () => setMoving(task) : void 0,
4371
- onChangeOwner: p.onChangeOwner && p.people?.length ? () => setHandingOff(task) : void 0,
4372
4099
  onEdit: () => p.onEdit(task),
4373
4100
  onDelete: () => p.onDelete(task),
4374
4101
  onOpenActivity: p.onOpenActivity ? () => p.onOpenActivity?.(task) : void 0,
@@ -4607,24 +4334,6 @@ function TaskTable(props) {
4607
4334
  ] })
4608
4335
  }
4609
4336
  ),
4610
- handingOff && props.onChangeOwner && /* @__PURE__ */ jsx(
4611
- TaskMoveDialog,
4612
- {
4613
- open: true,
4614
- onOpenChange: (open) => !open && setHandingOff(null),
4615
- options: (props.people ?? []).map((p) => ({ id: p.id, label: p.label })),
4616
- currentParentId: handingOff.signoff_ext_id,
4617
- onPick: (userId) => props.onChangeOwner?.(handingOff, userId),
4618
- labels: {
4619
- title: l.changeOwnerTitle(nameOf(handingOff)),
4620
- none: l.changeOwnerMe,
4621
- search: l.moveToSearch,
4622
- empty: l.moveToEmpty,
4623
- cancel: l.moveToCancel
4624
- },
4625
- testId: "task-owner"
4626
- }
4627
- ),
4628
4337
  moving && props.onMove && /* @__PURE__ */ jsx(
4629
4338
  TaskMoveDialog,
4630
4339
  {
@@ -4656,7 +4365,6 @@ function TaskInbox(p) {
4656
4365
  const [selected, setSelected] = useState(/* @__PURE__ */ new Set());
4657
4366
  const [collapsed, setCollapsed] = useState(/* @__PURE__ */ new Set());
4658
4367
  const [moving, setMoving] = useState(null);
4659
- const [handingOff, setHandingOff] = useState(null);
4660
4368
  const l = { ...DEFAULT_TASK_LIST_LABELS, ...p.labels };
4661
4369
  const nameOf = (t) => t.title?.trim() || t.workflow_ext_id && p.workflowNames?.[t.workflow_ext_id] || l.untitled;
4662
4370
  const all = p.tasks.filter((t) => t.status != null);
@@ -4705,7 +4413,7 @@ function TaskInbox(p) {
4705
4413
  });
4706
4414
  const workflowIds = new Set(workflows.map((w) => w.external_id));
4707
4415
  const order = (a, b) => {
4708
- const weight = (t) => t.pending_auth_request_id || t.last_error ? 0 : t.status === "ready_for_review" ? 1 : t.status === "todo" ? 2 : t.status === "generating" ? 3 : 4;
4416
+ const weight = (t) => t.pending_auth_request_id || t.last_error ? 0 : t.status === "todo" ? 1 : t.status === "generating" ? 2 : 3;
4709
4417
  return weight(a) - weight(b) || (b.updated_at ?? "").localeCompare(a.updated_at ?? "");
4710
4418
  };
4711
4419
  const renderTask = (task, depth = 0) => {
@@ -4756,7 +4464,7 @@ function TaskInbox(p) {
4756
4464
  }
4757
4465
  ),
4758
4466
  /* @__PURE__ */ jsxs("div", { className: "mt-1 flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted-foreground", children: [
4759
- status !== "todo" && status !== "ready_for_review" && /* @__PURE__ */ jsx(
4467
+ status !== "todo" && /* @__PURE__ */ jsx(
4760
4468
  TaskStatusPill,
4761
4469
  {
4762
4470
  id,
@@ -4805,21 +4513,6 @@ function TaskInbox(p) {
4805
4513
  children: "Allow access"
4806
4514
  }
4807
4515
  ),
4808
- p.onRequestApproval && status !== "done" && canEdit(task) && /* @__PURE__ */ jsx(
4809
- TaskReviewActions,
4810
- {
4811
- id,
4812
- busy,
4813
- compact: true,
4814
- canApprove: false,
4815
- canRequestChanges: false,
4816
- onApprove: () => void 0,
4817
- onRequestChanges: () => void 0,
4818
- onRequestApproval: (userId, note) => p.onRequestApproval?.(task, userId, note),
4819
- people: p.people,
4820
- labels: p.reviewLabels
4821
- }
4822
- ),
4823
4516
  /* @__PURE__ */ jsx(
4824
4517
  TaskRowMenu,
4825
4518
  {
@@ -4840,7 +4533,6 @@ function TaskInbox(p) {
4840
4533
  onEdit: () => p.onEdit(task),
4841
4534
  onAddSubtask: p.onAddSubtask ? () => p.onAddSubtask?.(task) : void 0,
4842
4535
  onMoveTo: p.onMove ? () => setMoving(task) : void 0,
4843
- onChangeOwner: status !== "ready_for_review" && p.onChangeOwner && p.people?.length ? () => setHandingOff(task) : void 0,
4844
4536
  onOpenActivity: p.onOpenActivity ? () => p.onOpenActivity?.(task) : void 0,
4845
4537
  onToggleShared: p.onToggleShared ? () => p.onToggleShared?.(task, !task.is_shared) : void 0
4846
4538
  }
@@ -4905,20 +4597,13 @@ function TaskInbox(p) {
4905
4597
  label: "Generating",
4906
4598
  count: all.filter((t) => t.status === "generating").length
4907
4599
  },
4908
- {
4909
- id: "ready_for_review",
4910
- label: "Ready for review",
4911
- count: all.filter((t) => t.status === "ready_for_review").length
4912
- },
4913
4600
  {
4914
4601
  id: "done",
4915
4602
  label: "Completed",
4916
4603
  count: all.filter((t) => t.status === "done").length
4917
4604
  }
4918
4605
  ],
4919
- groups: [
4920
- { label: "Status", options: ["todo", "generating", "ready_for_review", "done"] }
4921
- ],
4606
+ groups: [{ label: "Status", options: ["todo", "generating", "done"] }],
4922
4607
  triggerClassName: "flex h-5 items-center gap-0.5 rounded px-1 text-muted-foreground hover:text-foreground pointer-coarse:h-11! pointer-coarse:min-w-11 pointer-coarse:justify-center",
4923
4608
  renderChevron: true,
4924
4609
  disableHoverOpen: true
@@ -4943,7 +4628,7 @@ function TaskInbox(p) {
4943
4628
  EmptyState,
4944
4629
  {
4945
4630
  title: q ? "No matches" : all.length ? "You\u2019re all caught up" : "No work here yet",
4946
- description: "Create a task from a prompt or a saved workflow. Keep its drafts, reviews and handoffs together."
4631
+ description: "Create a task from a prompt or a saved workflow. Keep its drafts and outputs together."
4947
4632
  }
4948
4633
  ) : /* @__PURE__ */ jsxs("ul", { children: [
4949
4634
  workflows.map((w) => {
@@ -5057,24 +4742,6 @@ function TaskInbox(p) {
5057
4742
  cancel: l.moveToCancel
5058
4743
  }
5059
4744
  }
5060
- ),
5061
- handingOff && p.onChangeOwner && /* @__PURE__ */ jsx(
5062
- TaskMoveDialog,
5063
- {
5064
- open: true,
5065
- onOpenChange: (open) => !open && setHandingOff(null),
5066
- options: p.people ?? [],
5067
- currentParentId: handingOff.signoff_ext_id,
5068
- onPick: (id) => p.onChangeOwner?.(handingOff, id),
5069
- labels: {
5070
- title: l.changeOwnerTitle(nameOf(handingOff)),
5071
- none: l.changeOwnerMe,
5072
- search: l.moveToSearch,
5073
- empty: l.moveToEmpty,
5074
- cancel: l.moveToCancel
5075
- },
5076
- testId: "task-owner"
5077
- }
5078
4745
  )
5079
4746
  ] });
5080
4747
  }
@@ -5336,13 +5003,11 @@ function ConversationListView(p) {
5336
5003
  ] });
5337
5004
  }
5338
5005
  var NO_PEOPLE = [];
5339
- var NO_ASSIGNEES = [];
5340
5006
  function TaskStartDialog({
5341
5007
  open,
5342
5008
  onOpenChange,
5343
5009
  workflows,
5344
5010
  people = NO_PEOPLE,
5345
- assignees = NO_ASSIGNEES,
5346
5011
  isPending,
5347
5012
  error,
5348
5013
  startLabel,
@@ -5353,14 +5018,12 @@ function TaskStartDialog({
5353
5018
  const [choice, setChoice] = useState("prompt");
5354
5019
  const [shared, setShared] = useState(false);
5355
5020
  const [sourceOpen, setSourceOpen] = useState(false);
5356
- const [assignee, setAssignee] = useState("");
5357
5021
  useEffect(() => {
5358
5022
  if (open) return;
5359
5023
  setPrompt("");
5360
5024
  setChoice("prompt");
5361
5025
  setShared(false);
5362
5026
  setSourceOpen(false);
5363
- setAssignee("");
5364
5027
  }, [open]);
5365
5028
  const textareaRef = useRef(null);
5366
5029
  const mention = useMentionAutocomplete({
@@ -5372,16 +5035,13 @@ function TaskStartDialog({
5372
5035
  const todo = choice === "todo";
5373
5036
  const promptHint = todo ? "What needs doing?" : "What should ARBI do?";
5374
5037
  const workflowId = choice === "prompt" || todo ? null : choice;
5375
- const assigneeId = todo ? assignee : "";
5376
- const sharedNow = shared || assigneeId !== "";
5377
5038
  const valid = workflowId ? workflows.some((w) => w.external_id === workflowId) : Boolean(prompt.trim());
5378
5039
  const values = {
5379
5040
  prompt: prompt.trim(),
5380
5041
  workflowId,
5381
5042
  todo,
5382
- shared: sharedNow,
5383
- mentions: toMessageMentions(extractMentions(prompt, people)),
5384
- ...assigneeId ? { assigneeId } : {}
5043
+ shared,
5044
+ mentions: toMessageMentions(extractMentions(prompt, people))
5385
5045
  };
5386
5046
  return /* @__PURE__ */ jsx(Dialog, { modal: false, open, onOpenChange: (next) => !isPending && onOpenChange(next), children: /* @__PURE__ */ jsxs(
5387
5047
  DialogContent,
@@ -5463,39 +5123,12 @@ function TaskStartDialog({
5463
5123
  ),
5464
5124
  /* @__PURE__ */ jsxs(SelectContent, { children: [
5465
5125
  /* @__PURE__ */ jsx(SelectItem, { value: "prompt", children: "With ARBI" }),
5466
- /* @__PURE__ */ jsx(SelectItem, { value: "todo", children: "Send to a person" }),
5126
+ /* @__PURE__ */ jsx(SelectItem, { value: "todo", children: "To-do" }),
5467
5127
  workflows.map((workflow) => /* @__PURE__ */ jsx(SelectItem, { value: workflow.external_id, children: workflow.name }, workflow.external_id))
5468
5128
  ] })
5469
5129
  ]
5470
5130
  }
5471
5131
  ),
5472
- todo && /* @__PURE__ */ jsxs("div", { className: "mt-2 flex items-center gap-2 text-xs text-muted-foreground", children: [
5473
- /* @__PURE__ */ jsx("span", { children: "Assigned to" }),
5474
- /* @__PURE__ */ jsxs(
5475
- Select,
5476
- {
5477
- value: assigneeId || "me",
5478
- onValueChange: (next) => setAssignee(next === "me" ? "" : next),
5479
- disabled: isPending,
5480
- children: [
5481
- /* @__PURE__ */ jsx(
5482
- SelectTrigger,
5483
- {
5484
- id: "task-start-assignee",
5485
- "aria-label": "Assigned to",
5486
- className: "h-7 w-auto max-w-full border-0 bg-transparent px-1 text-xs font-normal text-foreground shadow-none hover:bg-muted",
5487
- children: /* @__PURE__ */ jsx(SelectValue, {})
5488
- }
5489
- ),
5490
- /* @__PURE__ */ jsxs(SelectContent, { children: [
5491
- /* @__PURE__ */ jsx(SelectItem, { value: "me", children: "Me" }),
5492
- assignees.map((person) => /* @__PURE__ */ jsx(SelectItem, { value: person.id, children: person.label }, person.id))
5493
- ] })
5494
- ]
5495
- }
5496
- )
5497
- ] }),
5498
- todo && assignees.length === 0 && /* @__PURE__ */ jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: "Invite a workspace collaborator to assign this to them." }),
5499
5132
  error && /* @__PURE__ */ jsx("p", { role: "alert", className: "mt-3 text-sm text-destructive", children: error })
5500
5133
  ] }),
5501
5134
  /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2 border-t px-3 py-2", children: [
@@ -5514,10 +5147,10 @@ function TaskStartDialog({
5514
5147
  /* @__PURE__ */ jsx(
5515
5148
  VisibilityToggle,
5516
5149
  {
5517
- items: { shared: sharedNow },
5150
+ items: { shared },
5518
5151
  onToggle: setShared,
5519
- label: sharedNow ? "Workspace" : "Only Me",
5520
- disabled: isPending || assigneeId !== "",
5152
+ label: shared ? "Workspace" : "Only Me",
5153
+ disabled: isPending,
5521
5154
  "data-testid": "task-start-visibility"
5522
5155
  }
5523
5156
  ),
@@ -5533,7 +5166,7 @@ function TaskStartDialog({
5533
5166
  } catch {
5534
5167
  }
5535
5168
  },
5536
- children: isPending ? "Starting\u2026" : startLabel ? startLabel : todo ? assigneeId ? "Send for review" : "Create task" : "Start now"
5169
+ children: isPending ? "Starting\u2026" : startLabel ? startLabel : todo ? "Create task" : "Start now"
5537
5170
  }
5538
5171
  )
5539
5172
  ] })
@@ -5772,7 +5405,6 @@ function composerToWorkRequest({ workflow, values, plan, documentTitles }, works
5772
5405
  description: values.description.trim(),
5773
5406
  due_at: values.dueAt ? localInputToIso(values.dueAt) : null,
5774
5407
  parent_conversation_ext_id: values.parentTaskId || null,
5775
- signoff_user_ext_id: values.signoffUserId || null,
5776
5408
  shared: values.shared
5777
5409
  };
5778
5410
  if (values.assignee === "me") {
@@ -5815,7 +5447,6 @@ function composerToTaskQuery({ workflow, values, plan, documentTitles }, workspa
5815
5447
  title: fields.name,
5816
5448
  description: values.description.trim(),
5817
5449
  due_at: values.dueAt ? localInputToIso(values.dueAt) : null,
5818
- signoff_user_ext_id: values.signoffUserId || null,
5819
5450
  parent_conversation_ext_id: values.parentTaskId || null,
5820
5451
  shared: values.shared,
5821
5452
  ...fields.skill_ref === null && fields.prompt && plan ? { plan } : {}
@@ -5851,7 +5482,6 @@ function composerToWorkflowRequest({ workflow, values, plan, documentTitles }, w
5851
5482
  skill_inputs: fields.skill_inputs,
5852
5483
  agent_ext_id: values.agentId || null,
5853
5484
  auth_mode: authModeFor(values),
5854
- signoff_user_ext_id: values.signoffUserId || null,
5855
5485
  workspace_ext_id: workspaceId,
5856
5486
  // The plan grades every run of a free-instruction workflow (a skill's run is not a goal run).
5857
5487
  ...fields.skill_ref === null && fields.prompt && plan ? { plan } : {}
@@ -5872,7 +5502,6 @@ function taskComposerToUpdateRequest({
5872
5502
  description: values.description.trim(),
5873
5503
  due_at: values.dueAt ? localInputToIso(values.dueAt) : null,
5874
5504
  shared: values.shared,
5875
- ...values.signoffUserId ? { signoff_user_ext_id: values.signoffUserId } : {},
5876
5505
  parent_conversation_ext_id: values.parentTaskId || null,
5877
5506
  ...plan !== void 0 ? { plan } : {}
5878
5507
  };
@@ -5896,7 +5525,6 @@ function composerToWorkflowUpdate({
5896
5525
  skill_inputs: fields.skill_inputs,
5897
5526
  agent_ext_id: values.agentId || null,
5898
5527
  auth_mode: authModeFor(values),
5899
- signoff_user_ext_id: values.signoffUserId || null,
5900
5528
  // Omission preserves the plan; explicit null removes a stored free-instruction plan.
5901
5529
  ...fields.skill_ref === null && fields.prompt && plan !== void 0 ? { plan } : {}
5902
5530
  };
@@ -5910,7 +5538,6 @@ function taskToComposerValues(task, workflows) {
5910
5538
  inputs: {},
5911
5539
  when: "now",
5912
5540
  parentTaskId: task.parent_conversation_ext_id ?? "",
5913
- signoffUserId: task.signoff_ext_id && task.signoff_ext_id !== task.owner_ext_id ? task.signoff_ext_id : "",
5914
5541
  shared: task.is_shared ?? true,
5915
5542
  description: task.description ?? "",
5916
5543
  dueAt: isoToLocalInput(task.due_at),
@@ -5937,7 +5564,6 @@ function workflowToComposerValues(workflow, workflows) {
5937
5564
  eventKind: workflow.event_kind ?? "user_message",
5938
5565
  eventFilter: workflow.event_filter ?? null,
5939
5566
  afterTaskId: workflow.after_conversation_ext_id ?? "",
5940
- signoffUserId: workflow.signoff_ext_id && workflow.signoff_ext_id !== workflow.owner_ext_id ? workflow.signoff_ext_id : "",
5941
5567
  shared: workflow.shared,
5942
5568
  description: workflow.description ?? "",
5943
5569
  agentId: workflow.agent_ext_id ?? "",
@@ -5987,12 +5613,11 @@ var EMPTY_NEW_THREAD = {
5987
5613
  prompt: "",
5988
5614
  title: "",
5989
5615
  shared: false,
5990
- ownerId: "",
5991
5616
  dueAt: "",
5992
5617
  parentId: "",
5993
5618
  assistant: true
5994
5619
  };
5995
- var hasTaskFields = (v) => Boolean(v.ownerId || v.dueAt || v.parentId);
5620
+ var hasTaskFields = (v) => Boolean(v.dueAt || v.parentId);
5996
5621
  function titleFromPrompt(prompt, max = 80) {
5997
5622
  const first = prompt.trim().split("\n")[0].trim();
5998
5623
  return first.length > max ? `${first.slice(0, max - 1).trimEnd()}\u2026` : first;
@@ -6003,7 +5628,6 @@ function newThreadToRequest(values) {
6003
5628
  const task = {
6004
5629
  ...title ? { title } : {},
6005
5630
  due_at: values.dueAt ? localInputToIso(values.dueAt) : null,
6006
- signoff_user_ext_id: values.ownerId || null,
6007
5631
  parent_conversation_ext_id: values.parentId || null,
6008
5632
  shared: values.shared
6009
5633
  };
@@ -6021,7 +5645,7 @@ function newThreadToRequest(values) {
6021
5645
  }
6022
5646
  var DEFAULT_NEW_THREAD_DIALOG_LABELS = {
6023
5647
  title: "New",
6024
- description: "Ask for anything, like a normal chat: the assistant gets on it. Add an owner or a due date if it matters.",
5648
+ description: "Ask for anything, like a normal chat: the assistant gets on it. Add a due date if it matters.",
6025
5649
  promptLabel: "What do you want to ask or get done?",
6026
5650
  promptPlaceholder: "Ask a question, or describe what needs doing\u2026",
6027
5651
  titleLabel: "Title",
@@ -6030,8 +5654,6 @@ var DEFAULT_NEW_THREAD_DIALOG_LABELS = {
6030
5654
  taskDetails: "Task details",
6031
5655
  files: (count) => count === 0 ? "No files in this workspace yet: answers come from general knowledge." : `Can use the ${count} file${count === 1 ? "" : "s"} in this workspace.`,
6032
5656
  taskDetailsHint: "Optional.",
6033
- owner: "Owner",
6034
- ownerMe: "Me",
6035
5657
  due: "Due",
6036
5658
  dueNone: "No date",
6037
5659
  dueClear: "Clear date",
@@ -6061,7 +5683,6 @@ function formatDue(local) {
6061
5683
  function NewThreadDialog({
6062
5684
  open,
6063
5685
  onOpenChange,
6064
- people,
6065
5686
  tasks = [],
6066
5687
  initialValues,
6067
5688
  fileCount,
@@ -6084,12 +5705,6 @@ function NewThreadDialog({
6084
5705
  const set = (key, value) => setValues((v) => ({ ...v, [key]: value }));
6085
5706
  const canSubmit = values.prompt.trim() !== "" && !isPending;
6086
5707
  const pillLabels = { search: l.search, empty: l.empty };
6087
- const personOptions = (people ?? []).map((p) => ({
6088
- id: p.id,
6089
- label: p.label,
6090
- description: p.description,
6091
- icon: /* @__PURE__ */ jsx(PersonAvatar, { person: { id: p.id, label: p.label } })
6092
- }));
6093
5708
  const taskOptions = tasks.map((t) => ({
6094
5709
  id: t.id,
6095
5710
  label: t.name,
@@ -6193,20 +5808,6 @@ function NewThreadDialog({
6193
5808
  detailsOpen && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3", "data-testid": `${id}-details`, children: [
6194
5809
  /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: l.taskDetailsHint }),
6195
5810
  /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [
6196
- people !== void 0 && /* @__PURE__ */ jsx(
6197
- PillSelect,
6198
- {
6199
- icon: /* @__PURE__ */ jsx(UserCheck, { className: GLYPH, "aria-hidden": true }),
6200
- prefix: l.owner,
6201
- value: values.ownerId,
6202
- options: personOptions,
6203
- noneOption: { id: "", label: l.ownerMe },
6204
- onChange: (v) => set("ownerId", v),
6205
- searchable: personOptions.length > 6,
6206
- labels: pillLabels,
6207
- testId: `${id}-owner`
6208
- }
6209
- ),
6210
5811
  /* @__PURE__ */ jsxs(Popover, { children: [
6211
5812
  /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
6212
5813
  EntityPill,
@@ -6360,14 +5961,11 @@ function workflowRunStatusLabel(status) {
6360
5961
  success: "Success",
6361
5962
  failed: "Failed",
6362
5963
  running: "In progress",
6363
- awaiting_review: "Waiting for review",
6364
5964
  awaiting_authorization: "Awaiting access"
6365
5965
  };
6366
5966
  return labels[status] ?? status.replaceAll("_", " ");
6367
5967
  }
6368
5968
  function listedRunStatus(status, threadStatus) {
6369
- if (threadStatus === "ready_for_review" && (status === "running" || status === "completed"))
6370
- return "awaiting_review";
6371
5969
  if (threadStatus === "done" && status === "running") return "completed";
6372
5970
  return status;
6373
5971
  }
@@ -6974,14 +6572,9 @@ var DEFAULT_TASK_ACTIVITY_LABELS = {
6974
6572
  runStartedBy: (agent) => `Run started by ${agent}`,
6975
6573
  awaitingAccess: "Waiting for access",
6976
6574
  accessGranted: "Access granted",
6977
- readyForReview: "Ready for review",
6978
- handedOff: "Handed off",
6979
- changesRequested: "Asked for changes",
6980
6575
  done: "Marked done",
6981
6576
  reopened: "Reopened",
6982
6577
  failed: "Run failed",
6983
- handedOverNote: (note) => `Handed over: \u201C${note}\u201D`,
6984
- sentBackNote: (note) => `Asked: \u201C${note}\u201D`,
6985
6578
  failureLine: (error) => error,
6986
6579
  system: "System"
6987
6580
  };
@@ -6990,10 +6583,6 @@ var ICONS = {
6990
6583
  run_started: /* @__PURE__ */ jsx(Play, { className: "size-3.5", "aria-hidden": true }),
6991
6584
  awaiting_access: /* @__PURE__ */ jsx(Lock, { className: "size-3.5", "aria-hidden": true }),
6992
6585
  access_granted: /* @__PURE__ */ jsx(KeyRound, { className: "size-3.5", "aria-hidden": true }),
6993
- ready_for_review: /* @__PURE__ */ jsx(CircleDot, { className: "size-3.5", "aria-hidden": true }),
6994
- reviewed: /* @__PURE__ */ jsx(CheckCircle2, { className: "size-3.5", "aria-hidden": true }),
6995
- handed_off: /* @__PURE__ */ jsx(UserRoundCog, { className: "size-3.5", "aria-hidden": true }),
6996
- changes_requested: /* @__PURE__ */ jsx(MessageSquareReply, { className: "size-3.5", "aria-hidden": true }),
6997
6586
  done: /* @__PURE__ */ jsx(CheckCircle2, { className: "size-3.5", "aria-hidden": true }),
6998
6587
  reopened: /* @__PURE__ */ jsx(RotateCcw, { className: "size-3.5", "aria-hidden": true }),
6999
6588
  failed: /* @__PURE__ */ jsx(AlertTriangle, { className: "size-3.5", "aria-hidden": true }),
@@ -7024,7 +6613,6 @@ function TaskActivityTimeline({
7024
6613
  const base = testIdOr(testId, { testId: "task-activity" });
7025
6614
  const describe = (e) => {
7026
6615
  const detail = e.detail ?? {};
7027
- const note = asString(e.note);
7028
6616
  const agentId = asString(detail.agent_ext_id);
7029
6617
  const agent = agentId ? agentName?.(agentId) : void 0;
7030
6618
  switch (e.kind) {
@@ -7052,22 +6640,8 @@ function TaskActivityTimeline({
7052
6640
  return { headline: l.awaitingAccess };
7053
6641
  case "access_granted":
7054
6642
  return { headline: l.accessGranted };
7055
- case "ready_for_review":
7056
- return { headline: l.readyForReview };
7057
- case "reviewed":
7058
- return { headline: "Approved this review stage" };
7059
- case "handed_off":
7060
- return {
7061
- headline: l.handedOff,
7062
- extra: note ? /* @__PURE__ */ jsx(Quote, { text: l.handedOverNote(note) }) : void 0
7063
- };
7064
- case "changes_requested":
7065
- return {
7066
- headline: l.changesRequested,
7067
- extra: note ? /* @__PURE__ */ jsx(Quote, { text: l.sentBackNote(note) }) : void 0
7068
- };
7069
6643
  case "done":
7070
- return { headline: l.done, extra: note ? /* @__PURE__ */ jsx(Quote, { text: note }) : void 0 };
6644
+ return { headline: l.done };
7071
6645
  case "reopened":
7072
6646
  return { headline: l.reopened };
7073
6647
  case "failed": {
@@ -7105,17 +6679,6 @@ function TaskActivityTimeline({
7105
6679
  /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-x-2 gap-y-1 text-sm", children: [
7106
6680
  e.actor_ext_id ? /* @__PURE__ */ jsx("span", { className: "inline-flex", "data-testid": `${base}-actor-${e.external_id}`, children: renderPerson(e.actor_ext_id) }) : /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: l.system }),
7107
6681
  /* @__PURE__ */ jsx("span", { className: "font-medium", children: headline }),
7108
- e.kind === "handed_off" && e.to_ext_id && /* @__PURE__ */ jsxs(
7109
- "span",
7110
- {
7111
- className: "inline-flex items-center gap-1",
7112
- "data-testid": `${base}-to-${e.external_id}`,
7113
- children: [
7114
- /* @__PURE__ */ jsx(ArrowRight, { className: "size-3.5 text-muted-foreground", "aria-hidden": true }),
7115
- renderPerson(e.to_ext_id)
7116
- ]
7117
- }
7118
- ),
7119
6682
  /* @__PURE__ */ jsx(
7120
6683
  "time",
7121
6684
  {
@@ -7135,9 +6698,6 @@ function TaskActivityTimeline({
7135
6698
  );
7136
6699
  }) });
7137
6700
  }
7138
- function Quote({ text }) {
7139
- return /* @__PURE__ */ jsx("blockquote", { className: "border-l-2 pl-2 text-xs text-muted-foreground whitespace-pre-wrap", children: text });
7140
- }
7141
6701
  function TaskActivityDialog({
7142
6702
  open,
7143
6703
  onOpenChange,
@@ -7278,7 +6838,7 @@ function compactThreadActivity(events) {
7278
6838
  const batches = /* @__PURE__ */ new Map();
7279
6839
  for (const event of events) {
7280
6840
  if (event.kind === "notified") {
7281
- if (["conversation_ready_for_review", "conversation_done"].includes(
6841
+ if (["conversation_ready", "conversation_done"].includes(
7282
6842
  String(event.detail?.notification_type)
7283
6843
  ))
7284
6844
  continue;
@@ -7624,8 +7184,6 @@ var DEFAULT_TASK_COMPOSER_LABELS = {
7624
7184
  titlePlaceholder: "What needs doing?",
7625
7185
  descriptionLabel: "Description",
7626
7186
  descriptionPlaceholder: "Add details (optional)",
7627
- signoff: "Owner",
7628
- signoffMe: "Me",
7629
7187
  due: "Due",
7630
7188
  dueNone: "No date",
7631
7189
  dueClear: "Clear date",
@@ -7636,14 +7194,14 @@ var DEFAULT_TASK_COMPOSER_LABELS = {
7636
7194
  visibilityPrivate: "Only me",
7637
7195
  assistant: "Task Assistant",
7638
7196
  assistantStandby: "On standby. It replies when you @mention it in the task\u2019s thread.",
7639
- assistantPreparing: (when) => `Will prepare this task ${when}. You review its work before it is done.`,
7197
+ assistantPreparing: (when) => `Will work on this task ${when}. You mark it done when it is.`,
7640
7198
  configure: "Configure",
7641
7199
  configureClose: "Done",
7642
7200
  what: "What should it do?",
7643
7201
  template: "Skill",
7644
7202
  whatPlaceholder: "Choose\u2026",
7645
7203
  plan: "Plan",
7646
- planHint: "The checklist it is held to. You see how it did when you review.",
7204
+ planHint: "The checklist it is held to. You see how it did when it finishes.",
7647
7205
  start: "Start",
7648
7206
  whenOptions: {
7649
7207
  manual: "When asked",
@@ -7700,7 +7258,6 @@ function defaultTaskComposerValues(workflows, initial) {
7700
7258
  eventKind: "user_message",
7701
7259
  afterTaskId: "",
7702
7260
  parentTaskId: "",
7703
- signoffUserId: "",
7704
7261
  shared: false,
7705
7262
  description: "",
7706
7263
  dueAt: "",
@@ -7728,7 +7285,6 @@ function WorkflowComposer({
7728
7285
  hideRunLater = false,
7729
7286
  workflows,
7730
7287
  agents,
7731
- people,
7732
7288
  tasks = [],
7733
7289
  values: valuesProp,
7734
7290
  initialValues,
@@ -7854,12 +7410,6 @@ function WorkflowComposer({
7854
7410
  else onSubmit(submitted);
7855
7411
  };
7856
7412
  const pillLabels = { search: l.search, empty: l.empty };
7857
- const personOptions = (people ?? []).map((p) => ({
7858
- id: p.id,
7859
- label: p.label,
7860
- description: p.description,
7861
- icon: /* @__PURE__ */ jsx(PersonAvatar, { person: { id: p.id, label: p.label } })
7862
- }));
7863
7413
  const taskOptions = tasks.map((t) => ({
7864
7414
  id: t.id,
7865
7415
  label: t.name,
@@ -8269,36 +7819,20 @@ function WorkflowComposer({
8269
7819
  }
8270
7820
  )
8271
7821
  ] }),
8272
- /* @__PURE__ */ jsxs(
7822
+ /* @__PURE__ */ jsx(
8273
7823
  "div",
8274
7824
  {
8275
7825
  className: "flex flex-wrap items-center gap-2",
8276
7826
  "data-testid": `${id}-properties`,
8277
- children: [
8278
- people !== void 0 && /* @__PURE__ */ jsx(
8279
- PillSelect,
8280
- {
8281
- icon: /* @__PURE__ */ jsx(UserCheck, { className: GLYPH2, "aria-hidden": true }),
8282
- prefix: l.signoff,
8283
- value: values.signoffUserId,
8284
- options: personOptions,
8285
- noneOption: { id: "", label: l.signoffMe },
8286
- onChange: (v) => set("signoffUserId", v),
8287
- searchable: personOptions.length > 6,
8288
- labels: pillLabels,
8289
- testId: `${id}-signoff`
8290
- }
8291
- ),
8292
- /* @__PURE__ */ jsx(
8293
- VisibilityToggle,
8294
- {
8295
- items: { shared: values.shared },
8296
- onToggle: (share) => set("shared", share),
8297
- label: l.visibility,
8298
- "data-testid": `${id}-visibility`
8299
- }
8300
- )
8301
- ]
7827
+ children: /* @__PURE__ */ jsx(
7828
+ VisibilityToggle,
7829
+ {
7830
+ items: { shared: values.shared },
7831
+ onToggle: (share) => set("shared", share),
7832
+ label: l.visibility,
7833
+ "data-testid": `${id}-visibility`
7834
+ }
7835
+ )
8302
7836
  }
8303
7837
  )
8304
7838
  ] })
@@ -8369,7 +7903,6 @@ function WorkTaskComposer({
8369
7903
  isEdit = false,
8370
7904
  workflows,
8371
7905
  agents,
8372
- people,
8373
7906
  tasks = [],
8374
7907
  values: valuesProp,
8375
7908
  initialValues,
@@ -8442,12 +7975,6 @@ function WorkTaskComposer({
8442
7975
  });
8443
7976
  const id = testIdOr(testId, { testId: "task-composer" });
8444
7977
  const submitText = isPending ? l.saving : isEdit ? l.save : !hasWork ? l.addTask : values.when === "now" ? l.addAndStart : l.addAndSchedule;
8445
- const personOptions = (people ?? []).map((p) => ({
8446
- id: p.id,
8447
- label: p.label,
8448
- description: p.description,
8449
- icon: /* @__PURE__ */ jsx(PersonAvatar, { person: { id: p.id, label: p.label } })
8450
- }));
8451
7978
  const taskOptions = tasks.map((t) => ({
8452
7979
  id: t.id,
8453
7980
  label: t.name,
@@ -8508,20 +8035,6 @@ function WorkTaskComposer({
8508
8035
  )
8509
8036
  ] }),
8510
8037
  /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-2", "data-testid": `${id}-properties`, children: [
8511
- people !== void 0 && /* @__PURE__ */ jsx(
8512
- PillSelect,
8513
- {
8514
- icon: /* @__PURE__ */ jsx(UserCheck, { className: GLYPH3, "aria-hidden": true }),
8515
- prefix: l.signoff,
8516
- value: values.signoffUserId,
8517
- options: personOptions,
8518
- noneOption: { id: "", label: l.signoffMe },
8519
- onChange: (v) => set("signoffUserId", v),
8520
- searchable: personOptions.length > 6,
8521
- labels: pillLabels,
8522
- testId: `${id}-signoff`
8523
- }
8524
- ),
8525
8038
  /* @__PURE__ */ jsxs(Popover, { children: [
8526
8039
  /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
8527
8040
  EntityPill,
@@ -8819,85 +8332,6 @@ function WorkTaskComposer({
8819
8332
  function TaskComposer(props) {
8820
8333
  return props.kind === "workflow" ? /* @__PURE__ */ jsx(WorkflowComposer, { ...props }) : /* @__PURE__ */ jsx(WorkTaskComposer, { ...props });
8821
8334
  }
8822
- function TaskReviewDialog(p) {
8823
- const [action, setAction] = useState("forward");
8824
- const [userId, setUserId] = useState("");
8825
- const [note, setNote] = useState("");
8826
- useEffect(() => {
8827
- if (p.open) {
8828
- setAction(p.people.length ? "forward" : p.canApprove ? "finish" : "revise");
8829
- setUserId("");
8830
- setNote("");
8831
- }
8832
- }, [p.open]);
8833
- const valid = action === "forward" ? p.people.some((person) => person.id === userId) : action === "revise" ? p.canRevise && Boolean(note.trim()) : p.canApprove;
8834
- return /* @__PURE__ */ jsx(Dialog, { open: p.open, onOpenChange: (next) => !p.isPending && p.onOpenChange(next), children: /* @__PURE__ */ jsxs(DialogContent, { "data-testid": "task-review-dialog", className: "sm:max-w-lg", children: [
8835
- /* @__PURE__ */ jsxs(DialogTitle, { children: [
8836
- "Review: ",
8837
- p.taskName
8838
- ] }),
8839
- /* @__PURE__ */ jsx(DialogDescription, { children: p.canApprove ? "Approve your review and send it on, request changes, or finish the task." : "Choose who should review this work next, or ask ARBI for changes." }),
8840
- /* @__PURE__ */ jsxs("div", { className: "space-y-4 py-2", children: [
8841
- /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
8842
- /* @__PURE__ */ jsx(Label, { htmlFor: "review-next-step", children: "Next step" }),
8843
- /* @__PURE__ */ jsxs(
8844
- Select,
8845
- {
8846
- value: action,
8847
- onValueChange: (value) => setAction(value),
8848
- disabled: p.isPending,
8849
- children: [
8850
- /* @__PURE__ */ jsx(SelectTrigger, { id: "review-next-step", children: /* @__PURE__ */ jsx(SelectValue, {}) }),
8851
- /* @__PURE__ */ jsxs(SelectContent, { children: [
8852
- p.people.length > 0 && /* @__PURE__ */ jsx(SelectItem, { value: "forward", children: p.canApprove ? "Approve and send for review" : "Send for review" }),
8853
- p.canRevise && /* @__PURE__ */ jsx(SelectItem, { value: "revise", children: "Ask ARBI for changes" }),
8854
- p.canApprove && /* @__PURE__ */ jsx(SelectItem, { value: "finish", children: "Approve and finish task" })
8855
- ] })
8856
- ]
8857
- }
8858
- )
8859
- ] }),
8860
- action === "forward" && /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
8861
- /* @__PURE__ */ jsx(Label, { htmlFor: "review-recipient", children: "Next reviewer" }),
8862
- /* @__PURE__ */ jsxs(Select, { value: userId, onValueChange: setUserId, disabled: p.isPending, children: [
8863
- /* @__PURE__ */ jsx(SelectTrigger, { id: "review-recipient", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Choose a person" }) }),
8864
- /* @__PURE__ */ jsx(SelectContent, { children: p.people.map((person) => /* @__PURE__ */ jsx(SelectItem, { value: person.id, children: person.label }, person.id)) })
8865
- ] })
8866
- ] }),
8867
- /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
8868
- /* @__PURE__ */ jsx(Label, { htmlFor: "review-note", children: action === "revise" ? "What should ARBI change?" : "Review note (optional)" }),
8869
- /* @__PURE__ */ jsx(
8870
- Textarea,
8871
- {
8872
- id: "review-note",
8873
- value: note,
8874
- onChange: (e) => setNote(e.target.value),
8875
- disabled: p.isPending,
8876
- placeholder: action === "revise" ? "Explain what needs changing in the same draft\u2026" : "Explain what you checked and what the next reviewer should focus on\u2026"
8877
- }
8878
- )
8879
- ] }),
8880
- p.error && /* @__PURE__ */ jsx("p", { role: "alert", className: "text-sm text-destructive", children: p.error })
8881
- ] }),
8882
- /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2", children: [
8883
- /* @__PURE__ */ jsx(Button, { variant: "outline", onClick: () => p.onOpenChange(false), disabled: p.isPending, children: "Cancel" }),
8884
- /* @__PURE__ */ jsx(
8885
- Button,
8886
- {
8887
- "data-testid": "task-review-submit",
8888
- disabled: !valid || p.isPending,
8889
- onClick: () => p.onSubmit({
8890
- action,
8891
- userId,
8892
- note: note.trim(),
8893
- approveCurrent: p.canApprove && action === "forward"
8894
- }),
8895
- children: p.isPending ? "Saving\u2026" : action === "forward" ? p.canApprove ? "Approve and send" : "Send for review" : action === "revise" ? "Send to ARBI" : "Finish task"
8896
- }
8897
- )
8898
- ] })
8899
- ] }) });
8900
- }
8901
8335
  function ThreadNotifyDialog({
8902
8336
  open,
8903
8337
  onOpenChange,
@@ -10683,6 +10117,6 @@ function AgentCreateView({
10683
10117
  ] });
10684
10118
  }
10685
10119
 
10686
- export { AgentAvatarField, AgentBar, AgentBarIconButton, AgentBarMenu, AgentBarNotes, AgentBarProbeAnswer, AgentBarQueuedNote, AgentBarStatus, AgentCard, AgentCreateView, AgentCreatedView, AgentCreator, AgentEditView, AgentGallery, AgentMainView, AgentSelect, AgentTypeSelector, CapabilityGrid, CapabilityTile, ConfigField, ConfigForm, ConsentActions, ConsentBulletList, ConsentCard, ConsentFootnote, ConsentHeader, ConsentMessage, ConsentNotice, ConsentPage, ConsentPermissionList, ConsentSection, ConsentStrong, ConsentText, ConversationListView, ConversationTurnSpeaker, CopyableUrl, DEFAULT_AGENT_AVATAR_FIELD_LABELS, DEFAULT_AGENT_BAR_LABELS, DEFAULT_AGENT_CARD_LABELS, DEFAULT_AGENT_CREATOR_LABELS, DEFAULT_AGENT_GALLERY_LABELS, DEFAULT_AGENT_SELECT_LABELS, DEFAULT_AGENT_STEPS_LABELS, DEFAULT_AGENT_TYPE_SELECTOR_LABELS, DEFAULT_AUTHORIZE_AGENT_LABELS, DEFAULT_CONFIG_FIELD_LABELS, DEFAULT_CONFIG_FORM_LABELS, DEFAULT_CONSENT_ACTIONS_LABELS, DEFAULT_COPYABLE_URL_LABELS, DEFAULT_NEW_THREAD_DIALOG_LABELS, DEFAULT_PILL_SELECT_LABELS, DEFAULT_RECURRENCE, DEFAULT_RECURRENCE_BUILDER_LABELS, DEFAULT_SCHEMA_FORM_LABELS, DEFAULT_SKILL_CARD_LABELS, DEFAULT_SKILL_EDIT_FORM_LABELS, DEFAULT_SKILL_GENERATE_FORM_LABELS, DEFAULT_SKILL_GLOBAL_BADGE_LABELS, DEFAULT_SKILL_ROW_LABELS, DEFAULT_SKILL_VIEW_TOGGLE_LABELS, DEFAULT_SUBAGENT_ROSTER_LABELS, DEFAULT_TASKS_CHROME_LABELS, DEFAULT_TASK_ACTIVITY_LABELS, DEFAULT_TASK_COMPOSER_LABELS, DEFAULT_TASK_LIST_LABELS, DEFAULT_TASK_OUTPUTS_CELL_LABELS, DEFAULT_TASK_PLAN_LABELS, DEFAULT_TASK_REVIEW_ACTIONS_LABELS, DEFAULT_TASK_RUNS_DIALOG_LABELS, DEFAULT_TASK_STATUS_PILL_LABELS, DEFAULT_TASK_THREAD_CHIP_LABELS, DEFAULT_TASK_TRIGGER_CHIP_LABELS, DEFAULT_TUPLE_ARRAY_FIELD_LABELS, DEFAULT_UPLOAD_TASK_ITEM_LABELS, DEFAULT_UPLOAD_TASK_LIST_LABELS, DEFAULT_WORKFLOWS_CHROME_LABELS, DEFAULT_WORKFLOW_CONFIG_DIALOG_LABELS, DEFAULT_WORKFLOW_LIST_LABELS, DERIVED_NAME_WORDS, EMPTY_NEW_THREAD, EMPTY_WORKFLOW_SCOPE, EntityChip, GoalCriteria, MAX_TASK_DEPTH, NewThreadDialog, PersonPill, PillSelect, RecurrenceBuilder, SKILL_PROMPT_FALLBACK_PLACEHOLDER, SKILL_PROMPT_LABEL, STATUS_LABELS, STATUS_ORDER, STATUS_TONE, SchemaForm, SkillActionButton, SkillCard, SkillDetail, SkillDetailSection, SkillEditForm, SkillFilterChips, SkillGenerateForm, SkillGlobalBadge, SkillRow, SkillTile, SkillTypeBadge, SkillViewToggle, StepDetail, StepNarration, StepOutcome, StepParams, StepRow, StepSummary, StepTrace, StepTraceSummary, SubAgentLane, SubStepGroup, SubagentRoster, TASK_COLUMN_ORDER, TRIGGER_LABELS, TaskActivityDialog, TaskActivityTimeline, TaskComposer, TaskFlow, TaskInbox, TaskMoveDialog, TaskOutputsCell, TaskPlan, TaskReviewActions, TaskReviewDialog, TaskRunsDialog, TaskStartDialog, TaskStatusPill, TaskTable, TaskThreadChip, TaskTriggerChip, TasksToolbar, ThreadActivity, ThreadNotifyDialog, TupleArrayField, UploadTaskItem, UploadTaskList, WEEKDAYS, WORKFLOW_COLUMN_ORDER, WorkflowConfigDialog, WorkflowDocumentsField, WorkflowLauncher, WorkflowsTable, WorkflowsToolbar, agentConfigSectionToValues, agentCreatorToConfigSection, asTaskStatus, authModeFor, buildLaunch, buildRRule, buildTaskRows, buildWorkflowScopeSource, compactThreadActivity, composePersona, composeWorkflowPrompt, composerToTaskQuery, composerToWorkRequest, composerToWorkflowRequest, composerToWorkflowUpdate, createTaskColumns, createWorkflowColumns, createsWork, defaultInputs, defaultScopeRenderer, defaultTaskComposerValues, deriveAgentName, deriveWorkflowName, descendantIds, describeRRule, filterConversationRows, firstWords, formatElapsed, goalProgress, hasTaskFields, hasTrigger, humanizeSection, indexTasks, inferType, inputDocumentIds, inputsFromContext, isAgenticWorkflow, isEmptyWorkflowScope, isOutOfBounds, isPlainTodo, isSkillRow, isValidAgentName, isWorkflowScope, isoToLocalInput, localInputToIso, matchWorkflowScope, moveTargets, newThreadToRequest, nextCriterionId, ownerExtId, parseRRule, prettifyKey, promptFieldName, resolveScopeInputs, skillToWorkflow, stripPersonaPreamble, summarizeAgent, summarizeCapabilities, taskComposerToCreateRequest, taskComposerToUpdateRequest, taskNeedsAccess, taskToComposerValues, validateInputs, workflowAccepts, workflowFromFrontmatter, workflowStatus, workflowTaskFields, workflowToComposerValues, workflowTriggerType, workflowWhen, workflowsAccepting, workflowsForHost };
10687
- //# sourceMappingURL=chunk-2FBNT7Y6.js.map
10688
- //# sourceMappingURL=chunk-2FBNT7Y6.js.map
10120
+ export { AgentAvatarField, AgentBar, AgentBarIconButton, AgentBarMenu, AgentBarNotes, AgentBarProbeAnswer, AgentBarQueuedNote, AgentBarStatus, AgentCard, AgentCreateView, AgentCreatedView, AgentCreator, AgentEditView, AgentGallery, AgentMainView, AgentSelect, AgentTypeSelector, CapabilityGrid, CapabilityTile, ConfigField, ConfigForm, ConsentActions, ConsentBulletList, ConsentCard, ConsentFootnote, ConsentHeader, ConsentMessage, ConsentNotice, ConsentPage, ConsentPermissionList, ConsentSection, ConsentStrong, ConsentText, ConversationListView, ConversationTurnSpeaker, CopyableUrl, DEFAULT_AGENT_AVATAR_FIELD_LABELS, DEFAULT_AGENT_BAR_LABELS, DEFAULT_AGENT_CARD_LABELS, DEFAULT_AGENT_CREATOR_LABELS, DEFAULT_AGENT_GALLERY_LABELS, DEFAULT_AGENT_SELECT_LABELS, DEFAULT_AGENT_STEPS_LABELS, DEFAULT_AGENT_TYPE_SELECTOR_LABELS, DEFAULT_AUTHORIZE_AGENT_LABELS, DEFAULT_CONFIG_FIELD_LABELS, DEFAULT_CONFIG_FORM_LABELS, DEFAULT_CONSENT_ACTIONS_LABELS, DEFAULT_COPYABLE_URL_LABELS, DEFAULT_NEW_THREAD_DIALOG_LABELS, DEFAULT_PILL_SELECT_LABELS, DEFAULT_RECURRENCE, DEFAULT_RECURRENCE_BUILDER_LABELS, DEFAULT_SCHEMA_FORM_LABELS, DEFAULT_SKILL_CARD_LABELS, DEFAULT_SKILL_EDIT_FORM_LABELS, DEFAULT_SKILL_GENERATE_FORM_LABELS, DEFAULT_SKILL_GLOBAL_BADGE_LABELS, DEFAULT_SKILL_ROW_LABELS, DEFAULT_SKILL_VIEW_TOGGLE_LABELS, DEFAULT_SUBAGENT_ROSTER_LABELS, DEFAULT_TASKS_CHROME_LABELS, DEFAULT_TASK_ACTIVITY_LABELS, DEFAULT_TASK_COMPOSER_LABELS, DEFAULT_TASK_LIST_LABELS, DEFAULT_TASK_OUTPUTS_CELL_LABELS, DEFAULT_TASK_PLAN_LABELS, DEFAULT_TASK_RUNS_DIALOG_LABELS, DEFAULT_TASK_STATUS_PILL_LABELS, DEFAULT_TASK_THREAD_CHIP_LABELS, DEFAULT_TASK_TRIGGER_CHIP_LABELS, DEFAULT_TUPLE_ARRAY_FIELD_LABELS, DEFAULT_UPLOAD_TASK_ITEM_LABELS, DEFAULT_UPLOAD_TASK_LIST_LABELS, DEFAULT_WORKFLOWS_CHROME_LABELS, DEFAULT_WORKFLOW_CONFIG_DIALOG_LABELS, DEFAULT_WORKFLOW_LIST_LABELS, DERIVED_NAME_WORDS, EMPTY_NEW_THREAD, EMPTY_WORKFLOW_SCOPE, EntityChip, GoalCriteria, MAX_TASK_DEPTH, NewThreadDialog, PersonPill, PillSelect, RecurrenceBuilder, SKILL_PROMPT_FALLBACK_PLACEHOLDER, SKILL_PROMPT_LABEL, STATUS_LABELS, STATUS_ORDER, STATUS_TONE, SchemaForm, SkillActionButton, SkillCard, SkillDetail, SkillDetailSection, SkillEditForm, SkillFilterChips, SkillGenerateForm, SkillGlobalBadge, SkillRow, SkillTile, SkillTypeBadge, SkillViewToggle, StepDetail, StepNarration, StepOutcome, StepParams, StepRow, StepSummary, StepTrace, StepTraceSummary, SubAgentLane, SubStepGroup, SubagentRoster, TASK_COLUMN_ORDER, TRIGGER_LABELS, TaskActivityDialog, TaskActivityTimeline, TaskComposer, TaskFlow, TaskInbox, TaskMoveDialog, TaskOutputsCell, TaskPlan, TaskRunsDialog, TaskStartDialog, TaskStatusPill, TaskTable, TaskThreadChip, TaskTriggerChip, TasksToolbar, ThreadActivity, ThreadNotifyDialog, TupleArrayField, UploadTaskItem, UploadTaskList, WEEKDAYS, WORKFLOW_COLUMN_ORDER, WorkflowConfigDialog, WorkflowDocumentsField, WorkflowLauncher, WorkflowsTable, WorkflowsToolbar, agentConfigSectionToValues, agentCreatorToConfigSection, asTaskStatus, authModeFor, buildLaunch, buildRRule, buildTaskRows, buildWorkflowScopeSource, compactThreadActivity, composePersona, composeWorkflowPrompt, composerToTaskQuery, composerToWorkRequest, composerToWorkflowRequest, composerToWorkflowUpdate, createTaskColumns, createWorkflowColumns, createsWork, defaultInputs, defaultScopeRenderer, defaultTaskComposerValues, deriveAgentName, deriveWorkflowName, descendantIds, describeRRule, filterConversationRows, firstWords, formatElapsed, goalProgress, hasTaskFields, hasTrigger, humanizeSection, indexTasks, inferType, inputDocumentIds, inputsFromContext, isAgenticWorkflow, isEmptyWorkflowScope, isOutOfBounds, isPlainTodo, isSkillRow, isValidAgentName, isWorkflowScope, isoToLocalInput, localInputToIso, matchWorkflowScope, moveTargets, newThreadToRequest, nextCriterionId, ownerExtId, parseRRule, prettifyKey, promptFieldName, resolveScopeInputs, skillToWorkflow, stripPersonaPreamble, summarizeAgent, summarizeCapabilities, taskComposerToCreateRequest, taskComposerToUpdateRequest, taskNeedsAccess, taskToComposerValues, validateInputs, workflowAccepts, workflowFromFrontmatter, workflowStatus, workflowTaskFields, workflowToComposerValues, workflowTriggerType, workflowWhen, workflowsAccepting, workflowsForHost };
10121
+ //# sourceMappingURL=chunk-BIAALPXI.js.map
10122
+ //# sourceMappingURL=chunk-BIAALPXI.js.map