@arbidocs/blocks 0.4.77 → 0.4.79

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 (85) hide show
  1. package/dist/agents/index.cjs +287 -275
  2. package/dist/agents/index.js +3 -3
  3. package/dist/agents/tasks/WorkflowThreadStrip.d.ts +9 -4
  4. package/dist/agents/workflows/StepBarFrame.d.ts +75 -0
  5. package/dist/agents/workflows/WorkflowRunner.d.ts +5 -1
  6. package/dist/agents/workflows/WorkflowStepBar.d.ts +9 -11
  7. package/dist/agents/workflows/index.d.ts +2 -0
  8. package/dist/agents/workflows/stepWindow.d.ts +59 -0
  9. package/dist/chat/ChatPage.d.ts +1 -1
  10. package/dist/chat/chat-page-types.d.ts +5 -0
  11. package/dist/chat/index.cjs +124 -124
  12. package/dist/chat/index.js +2 -2
  13. package/dist/{chunk-JFUN4D7D.cjs → chunk-3YET6D5E.cjs} +150 -146
  14. package/dist/chunk-3YET6D5E.cjs.map +1 -0
  15. package/dist/{chunk-B3WCKBJ7.cjs → chunk-5XVWGJ2H.cjs} +3 -3
  16. package/dist/{chunk-B3WCKBJ7.cjs.map → chunk-5XVWGJ2H.cjs.map} +1 -1
  17. package/dist/{chunk-34UW6XUQ.js → chunk-6GXF62XN.js} +566 -171
  18. package/dist/chunk-6GXF62XN.js.map +1 -0
  19. package/dist/{chunk-HEVVT6IT.js → chunk-BMOL5DN6.js} +126 -122
  20. package/dist/chunk-BMOL5DN6.js.map +1 -0
  21. package/dist/chunk-CWAZNXC5.js +441 -0
  22. package/dist/chunk-CWAZNXC5.js.map +1 -0
  23. package/dist/{chunk-NIP5BOP7.js → chunk-EWSEQEPL.js} +5 -4
  24. package/dist/chunk-EWSEQEPL.js.map +1 -0
  25. package/dist/{chunk-UEU23PTW.js → chunk-ICBAFX5B.js} +3 -3
  26. package/dist/{chunk-UEU23PTW.js.map → chunk-ICBAFX5B.js.map} +1 -1
  27. package/dist/{chunk-EKIUMNCN.cjs → chunk-IF6VAYIA.cjs} +5 -5
  28. package/dist/{chunk-EKIUMNCN.cjs.map → chunk-IF6VAYIA.cjs.map} +1 -1
  29. package/dist/chunk-MLAHDAN5.cjs +450 -0
  30. package/dist/chunk-MLAHDAN5.cjs.map +1 -0
  31. package/dist/{chunk-HOD6OM7L.cjs → chunk-MP6FK43E.cjs} +5 -4
  32. package/dist/chunk-MP6FK43E.cjs.map +1 -0
  33. package/dist/{chunk-GJV2G4FC.js → chunk-O35LRB3P.js} +3 -3
  34. package/dist/{chunk-GJV2G4FC.js.map → chunk-O35LRB3P.js.map} +1 -1
  35. package/dist/{chunk-GTXOV7IJ.cjs → chunk-XMBYDLZQ.cjs} +4 -4
  36. package/dist/{chunk-GTXOV7IJ.cjs.map → chunk-XMBYDLZQ.cjs.map} +1 -1
  37. package/dist/{chunk-OEM5ARVM.js → chunk-XQDM6T6C.js} +3 -3
  38. package/dist/{chunk-OEM5ARVM.js.map → chunk-XQDM6T6C.js.map} +1 -1
  39. package/dist/{chunk-3XR3IEGU.cjs → chunk-YGUKTFKW.cjs} +572 -167
  40. package/dist/chunk-YGUKTFKW.cjs.map +1 -0
  41. package/dist/connect/index.cjs +233 -77
  42. package/dist/connect/index.cjs.map +1 -1
  43. package/dist/connect/index.d.ts +2 -0
  44. package/dist/connect/index.js +191 -37
  45. package/dist/connect/index.js.map +1 -1
  46. package/dist/connection/ConnectedTagMatrix.d.ts +20 -0
  47. package/dist/connection/ConnectedWorkflowRunner.d.ts +13 -1
  48. package/dist/connection/WorkflowRunThread.d.ts +21 -0
  49. package/dist/databases/ColumnConfigFields.d.ts +68 -0
  50. package/dist/databases/DatabaseColumnDialog.d.ts +27 -2
  51. package/dist/databases/DatabaseTable.d.ts +8 -1
  52. package/dist/databases/PickCellEditor.d.ts +21 -0
  53. package/dist/databases/column-types.d.ts +73 -9
  54. package/dist/databases/databaseColumns.d.ts +4 -0
  55. package/dist/databases/index.cjs +758 -27
  56. package/dist/databases/index.cjs.map +1 -1
  57. package/dist/databases/index.d.ts +4 -1
  58. package/dist/databases/index.js +745 -31
  59. package/dist/databases/index.js.map +1 -1
  60. package/dist/databases/linkCells.d.ts +48 -0
  61. package/dist/files/index.cjs +2 -2
  62. package/dist/files/index.js +2 -2
  63. package/dist/index.cjs +624 -579
  64. package/dist/index.cjs.map +1 -1
  65. package/dist/index.d.ts +1 -0
  66. package/dist/index.js +9 -8
  67. package/dist/index.js.map +1 -1
  68. package/dist/settings/index.cjs +35 -35
  69. package/dist/settings/index.js +3 -3
  70. package/dist/studio/index.cjs +3 -3
  71. package/dist/studio/index.js +2 -2
  72. package/dist/tags/TagMatrix.d.ts +64 -0
  73. package/dist/tags/index.d.ts +3 -0
  74. package/dist/tags/tagMatrixModel.d.ts +39 -0
  75. package/dist/workflow-canvas/index.cjs +46 -46
  76. package/dist/workflow-canvas/index.js +3 -3
  77. package/dist/workspaces/index.cjs +1 -1
  78. package/dist/workspaces/index.js +1 -1
  79. package/package.json +4 -4
  80. package/dist/chunk-34UW6XUQ.js.map +0 -1
  81. package/dist/chunk-3XR3IEGU.cjs.map +0 -1
  82. package/dist/chunk-HEVVT6IT.js.map +0 -1
  83. package/dist/chunk-HOD6OM7L.cjs.map +0 -1
  84. package/dist/chunk-JFUN4D7D.cjs.map +0 -1
  85. package/dist/chunk-NIP5BOP7.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { DocumentPicker, TriStateFilterMenu, MultiSelect } from './chunk-CKB64Z4R.js';
3
3
  import { EmptyState } from './chunk-P6GHJSLR.js';
4
- import { defaultInputs, validateInputs, SchemaForm, isWorkflowScope, fieldToFrontmatter, workflowFromFrontmatter, workflowSteps, initialRunInputs, stepPhase, composeStepPrompt, useWorkflowView, composeWorkflowPrompt, isRunFinished, buildLaunch } from './chunk-34UW6XUQ.js';
4
+ import { defaultInputs, validateInputs, SchemaForm, isWorkflowScope, fieldToFrontmatter, workflowFromFrontmatter, workflowSteps, initialRunInputs, stepPhase, composeStepPrompt, useWorkflowView, composeWorkflowPrompt, isRunFinished, StepBarFrame, stepLevels, buildLaunch, PhaseMark, STEP_LABEL, STEP_EXTRA, STEP_PILL, stepPillTone } from './chunk-6GXF62XN.js';
5
5
  import { TabHeader } from './chunk-4WWM3GQ5.js';
6
6
  import { CellHoverIcon } from './chunk-RFXJYIDV.js';
7
7
  import { ToneBadge } from './chunk-DPLRHEJZ.js';
@@ -12,16 +12,16 @@ import { QuickActionDialogHeader, AddFilesFirst, ScopePicker, StartTiles } from
12
12
  import { FoldSection } from './chunk-XD2M6LIG.js';
13
13
  import { ActionLink } from './chunk-S7PSMMRG.js';
14
14
  import { useBlocksEnvironment } from './chunk-76JDDMSP.js';
15
+ import { ModalHeader } from './chunk-TX2ZICS7.js';
15
16
  import { useMentionAutocomplete } from './chunk-HOXKR26S.js';
16
17
  import { toMessageMentions, extractMentions, MentionMenu } from './chunk-AA3PT6KR.js';
17
18
  import { useIsPhone } from './chunk-SLSBJRWW.js';
18
19
  import { formatCount, initials } from './chunk-OXF2IFXG.js';
19
- import { ModalHeader } from './chunk-TX2ZICS7.js';
20
20
  import { testIdOr, prefixedTestId } from './chunk-7F6CBP3Z.js';
21
21
  import { memo, forwardRef, useState, useMemo, useId, useEffect, useRef, useCallback, useLayoutEffect } from 'react';
22
22
  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';
23
23
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
24
- 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, CornerUpLeft, UserRound, ChevronUp, Pause, Activity, Hourglass, MoreVertical, TriangleAlert, CheckSquare, Square, CheckCircle2, SquareArrowOutUpRight, ArrowLeft, LayoutGrid, List, CornerLeftUp, CircleDashed, RotateCcw, ListPlus, Link2, Clock, Bell, MousePointerClick, ArrowUpRight, BellRing, PenLine, Flag, UserRoundCog, MessageSquareReply, MinusCircle, Zap } from 'lucide-react';
24
+ 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, CornerLeftUp, CornerUpLeft, UserRound, CircleDashed, RotateCcw, ListPlus, Link2, Clock, Bell, MousePointerClick, ArrowUpRight, BellRing, PenLine, Flag, UserRoundCog, MessageSquareReply, Zap } from 'lucide-react';
25
25
 
26
26
  function useControllableState(value, defaultValue, onChange) {
27
27
  const [inner, setInner] = useState(defaultValue);
@@ -6579,14 +6579,6 @@ function SignalPill({ signal, l }) {
6579
6579
  }
6580
6580
  );
6581
6581
  }
6582
- function Mark({ phase, icon }) {
6583
- if (phase === "done") return /* @__PURE__ */ jsx(Check, { className: "size-3.5" });
6584
- if (phase === "running") return /* @__PURE__ */ jsx(Loader2, { className: "size-3.5 animate-spin" });
6585
- if (phase === "waiting") return /* @__PURE__ */ jsx(Hourglass, { className: "size-3.5" });
6586
- if (phase === "failed") return /* @__PURE__ */ jsx(AlertTriangle, { className: "size-3.5" });
6587
- if (phase === "skipped") return /* @__PURE__ */ jsx(MinusCircle, { className: "size-3.5" });
6588
- return icon ? /* @__PURE__ */ jsx("span", { className: "flex size-3.5 items-center justify-center [&_svg]:size-3.5", children: icon }) : /* @__PURE__ */ jsx("span", { className: "size-1.5 rounded-full bg-current" });
6589
- }
6590
6582
  function Entry({ item }) {
6591
6583
  const content = /* @__PURE__ */ jsxs(Fragment, { children: [
6592
6584
  /* @__PURE__ */ jsx("span", { className: "shrink-0", children: item.avatar }),
@@ -6624,123 +6616,135 @@ function WorkflowThreadStrip({
6624
6616
  startedBy,
6625
6617
  assigneeOf,
6626
6618
  labels,
6619
+ barLabels,
6627
6620
  className
6628
6621
  }) {
6629
6622
  const l = { ...DEFAULT_WORKFLOW_THREAD_STRIP_LABELS, ...labels };
6630
6623
  const grouped = groupThreadActivity(steps, items);
6631
6624
  const strays = signals.filter((s) => !steps.some((step) => step.id === s.step));
6632
6625
  const chevron = /* @__PURE__ */ jsx(ChevronRight, { className: "size-3 shrink-0 text-muted-foreground" });
6633
- return /* @__PURE__ */ jsx(
6634
- "div",
6626
+ const [selected, setSelected] = useState(null);
6627
+ const [open, setOpen] = useState(null);
6628
+ const phaseOf = (id) => stepPhase(steps, states, id);
6629
+ const iconOf = (step) => step.icon && renderIcon ? renderIcon(step.icon) : void 0;
6630
+ const waitingOf = (id) => {
6631
+ const step = steps.find((s) => s.id === id);
6632
+ const phase = phaseOf(id);
6633
+ const name = step && (phase === "ready" || phase === "waiting") ? assigneeOf?.(step) : void 0;
6634
+ return name ? l.waitingFor.replace("{name}", name) : void 0;
6635
+ };
6636
+ const pill = (step, isCurrent, narrow = false) => {
6637
+ const phase = phaseOf(step.id);
6638
+ const happened = grouped.byStep[step.id] ?? [];
6639
+ const assignee = phase === "ready" || phase === "waiting" ? assigneeOf?.(step) : void 0;
6640
+ const waiting = assignee ? l.waitingFor.replace("{name}", assignee) : void 0;
6641
+ const sentBack = states[step.id]?.sentBack;
6642
+ return /* @__PURE__ */ jsxs(Popover, { open: open === step.id, onOpenChange: (o) => setOpen(o ? step.id : null), children: [
6643
+ /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
6644
+ "button",
6645
+ {
6646
+ type: "button",
6647
+ className: cn(STEP_PILL, "py-0.5", stepPillTone(phase, isCurrent)),
6648
+ "aria-current": isCurrent ? "step" : void 0,
6649
+ title: waiting ? `${step.title} \xB7 ${waiting}` : step.title,
6650
+ "data-phase": phase,
6651
+ "data-testid": `workflow-thread-step-${step.id}`,
6652
+ children: [
6653
+ /* @__PURE__ */ jsx(PhaseMark, { phase, icon: iconOf(step) }),
6654
+ /* @__PURE__ */ jsx("span", { className: cn(STEP_LABEL, isCurrent ? "max-w-[16rem]" : "max-w-[11rem]"), children: step.title }),
6655
+ sentBack && /* @__PURE__ */ jsx(
6656
+ CornerUpLeft,
6657
+ {
6658
+ className: "size-3 shrink-0 text-amber-600 dark:text-amber-400",
6659
+ "aria-label": l.sentBack,
6660
+ "data-testid": `workflow-thread-step-${step.id}-sent-back`
6661
+ }
6662
+ ),
6663
+ assignee && isCurrent && !narrow && /* @__PURE__ */ jsxs(
6664
+ "span",
6665
+ {
6666
+ className: cn(STEP_EXTRA, "flex max-w-[12rem] items-center gap-0.5"),
6667
+ title: waiting,
6668
+ "data-testid": `workflow-thread-step-${step.id}-assignee`,
6669
+ children: [
6670
+ /* @__PURE__ */ jsx(UserRound, { className: "size-3 shrink-0" }),
6671
+ /* @__PURE__ */ jsx("span", { className: "truncate", children: waiting })
6672
+ ]
6673
+ }
6674
+ ),
6675
+ happened.length > 0 && /* @__PURE__ */ jsx("span", { className: "shrink-0 rounded-full bg-muted px-1.5 text-[10px] font-normal text-muted-foreground", children: happened.length })
6676
+ ]
6677
+ }
6678
+ ) }),
6679
+ /* @__PURE__ */ jsxs(
6680
+ PopoverContent,
6681
+ {
6682
+ align: "start",
6683
+ className: "w-72 space-y-1 p-2",
6684
+ "data-testid": `workflow-thread-step-${step.id}-menu`,
6685
+ children: [
6686
+ /* @__PURE__ */ jsx("p", { className: "px-1 text-xs font-semibold", children: step.title }),
6687
+ assignee && /* @__PURE__ */ jsx("p", { className: "px-1 text-xs", "data-testid": `workflow-thread-step-${step.id}-waiting-for`, children: waiting }),
6688
+ sentBack && /* @__PURE__ */ jsx("p", { className: "px-1 text-xs text-amber-700 dark:text-amber-300", children: l.sentBack }),
6689
+ /* @__PURE__ */ jsx("p", { className: "px-1 text-xs font-medium text-muted-foreground", children: happened.length ? l.happened.replace("{count}", String(happened.length)) : l.nothingYet }),
6690
+ happened.map((item) => /* @__PURE__ */ jsx(Entry, { item }, item.id)),
6691
+ renderStepAction?.(step, phase),
6692
+ onSkip && ["ready", "blocked", "failed", "waiting"].includes(phase) && /* @__PURE__ */ jsx(
6693
+ "button",
6694
+ {
6695
+ type: "button",
6696
+ onClick: () => onSkip(step.id),
6697
+ className: "w-full rounded-md px-1 py-1 text-left text-xs text-muted-foreground hover:bg-accent",
6698
+ "data-testid": `workflow-thread-step-${step.id}-skip`,
6699
+ children: l.skip
6700
+ }
6701
+ )
6702
+ ]
6703
+ }
6704
+ )
6705
+ ] });
6706
+ };
6707
+ const leading = startedBy || grouped.before.length ? /* @__PURE__ */ jsxs("ol", { className: "flex shrink-0 items-center gap-1", children: [
6708
+ startedBy && /* @__PURE__ */ jsxs("li", { className: "flex shrink-0 items-center gap-1", children: [
6709
+ /* @__PURE__ */ jsx(WorkflowThreadStartedBy, { origin: startedBy, labels }),
6710
+ chevron
6711
+ ] }),
6712
+ grouped.before.map((item) => /* @__PURE__ */ jsxs("li", { className: "flex shrink-0 items-center gap-1", children: [
6713
+ /* @__PURE__ */ jsx(Entry, { item }),
6714
+ chevron
6715
+ ] }, item.id))
6716
+ ] }) : null;
6717
+ const trailing = grouped.after.length || strays.length ? /* @__PURE__ */ jsxs("ol", { className: "flex shrink-0 items-center gap-1", children: [
6718
+ grouped.after.map((item) => /* @__PURE__ */ jsxs("li", { className: "flex shrink-0 items-center gap-1", children: [
6719
+ chevron,
6720
+ /* @__PURE__ */ jsx(Entry, { item })
6721
+ ] }, item.id)),
6722
+ strays.map((s) => /* @__PURE__ */ jsx("li", { className: "flex shrink-0 items-center gap-1", children: /* @__PURE__ */ jsx(SignalPill, { signal: s, l }) }, `${s.step}-${s.signal}`))
6723
+ ] }) : null;
6724
+ return /* @__PURE__ */ jsx("div", { className: cn("min-w-0 flex-1", className), "data-testid": "workflow-thread-strip", children: /* @__PURE__ */ jsx(
6725
+ StepBarFrame,
6635
6726
  {
6636
- className: cn("min-w-0 flex-1 overflow-x-auto overscroll-x-contain", className),
6637
- role: "region",
6638
- "aria-label": "Workflow steps",
6639
- "data-testid": "workflow-thread-strip",
6640
- children: /* @__PURE__ */ jsxs("ol", { className: "flex w-max min-w-full items-center gap-1", children: [
6641
- startedBy && /* @__PURE__ */ jsxs("li", { className: "flex shrink-0 items-center gap-1", children: [
6642
- /* @__PURE__ */ jsx(WorkflowThreadStartedBy, { origin: startedBy, labels }),
6643
- chevron
6644
- ] }),
6645
- grouped.before.map((item) => /* @__PURE__ */ jsxs("li", { className: "flex shrink-0 items-center gap-1", children: [
6646
- /* @__PURE__ */ jsx(Entry, { item }),
6647
- chevron
6648
- ] }, item.id)),
6649
- steps.map((step, i) => {
6650
- const phase = stepPhase(steps, states, step.id);
6651
- const happened = grouped.byStep[step.id] ?? [];
6652
- const assignee = phase === "ready" || phase === "waiting" ? assigneeOf?.(step) : void 0;
6653
- const sentBack = states[step.id]?.sentBack;
6654
- const chip = /* @__PURE__ */ jsxs(
6655
- "span",
6656
- {
6657
- className: cn(
6658
- "flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded-full border px-2 py-0.5 text-xs font-medium",
6659
- phase === "running" || phase === "ready" || phase === "waiting" ? "border-primary bg-primary/10 text-primary" : phase === "done" || phase === "skipped" ? "border-primary/30 text-primary" : phase === "failed" ? "border-destructive/40 text-destructive" : "border-dashed border-border text-muted-foreground"
6660
- ),
6661
- "data-phase": phase,
6662
- "data-testid": `workflow-thread-step-${step.id}`,
6663
- children: [
6664
- /* @__PURE__ */ jsx(
6665
- Mark,
6666
- {
6667
- phase,
6668
- icon: step.icon && renderIcon ? renderIcon(step.icon) : void 0
6669
- }
6670
- ),
6671
- step.title,
6672
- sentBack && /* @__PURE__ */ jsx(
6673
- CornerUpLeft,
6674
- {
6675
- className: "size-3 text-amber-600 dark:text-amber-400",
6676
- "aria-label": l.sentBack,
6677
- "data-testid": `workflow-thread-step-${step.id}-sent-back`
6678
- }
6679
- ),
6680
- assignee && /* @__PURE__ */ jsxs(
6681
- "span",
6682
- {
6683
- className: "flex max-w-32 items-center gap-0.5 truncate font-normal opacity-80",
6684
- title: l.waitingFor.replace("{name}", assignee),
6685
- "data-testid": `workflow-thread-step-${step.id}-assignee`,
6686
- children: [
6687
- /* @__PURE__ */ jsx(UserRound, { className: "size-3 shrink-0" }),
6688
- /* @__PURE__ */ jsx("span", { className: "truncate", children: assignee })
6689
- ]
6690
- }
6691
- ),
6692
- happened.length > 0 && /* @__PURE__ */ jsx("span", { className: "rounded-full bg-muted px-1.5 text-[10px] text-muted-foreground", children: happened.length })
6693
- ]
6694
- }
6695
- );
6696
- return /* @__PURE__ */ jsxs("li", { className: "flex shrink-0 items-center gap-1", children: [
6697
- /* @__PURE__ */ jsxs(Popover, { children: [
6698
- /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx("button", { type: "button", className: "rounded-full", children: chip }) }),
6699
- /* @__PURE__ */ jsxs(
6700
- PopoverContent,
6701
- {
6702
- align: "start",
6703
- className: "w-72 space-y-1 p-2",
6704
- "data-testid": `workflow-thread-step-${step.id}-menu`,
6705
- children: [
6706
- assignee && /* @__PURE__ */ jsx(
6707
- "p",
6708
- {
6709
- className: "px-1 text-xs",
6710
- "data-testid": `workflow-thread-step-${step.id}-waiting-for`,
6711
- children: l.waitingFor.replace("{name}", assignee)
6712
- }
6713
- ),
6714
- sentBack && /* @__PURE__ */ jsx("p", { className: "px-1 text-xs text-amber-700 dark:text-amber-300", children: l.sentBack }),
6715
- /* @__PURE__ */ jsx("p", { className: "px-1 text-xs font-medium text-muted-foreground", children: happened.length ? l.happened.replace("{count}", String(happened.length)) : l.nothingYet }),
6716
- happened.map((item) => /* @__PURE__ */ jsx(Entry, { item }, item.id)),
6717
- renderStepAction?.(step, phase),
6718
- onSkip && ["ready", "blocked", "failed", "waiting"].includes(phase) && /* @__PURE__ */ jsx(
6719
- "button",
6720
- {
6721
- type: "button",
6722
- onClick: () => onSkip(step.id),
6723
- className: "w-full rounded-md px-1 py-1 text-left text-xs text-muted-foreground hover:bg-accent",
6724
- "data-testid": `workflow-thread-step-${step.id}-skip`,
6725
- children: l.skip
6726
- }
6727
- )
6728
- ]
6729
- }
6730
- )
6731
- ] }),
6732
- signals.filter((s) => s.step === step.id).map((s) => /* @__PURE__ */ jsx(SignalPill, { signal: s, l }, `${s.step}-${s.signal}`)),
6733
- (i < steps.length - 1 || grouped.after.length > 0 || strays.length > 0) && chevron
6734
- ] }, step.id);
6735
- }),
6736
- grouped.after.map((item, i) => /* @__PURE__ */ jsxs("li", { className: "flex shrink-0 items-center gap-1", children: [
6737
- /* @__PURE__ */ jsx(Entry, { item }),
6738
- (i < grouped.after.length - 1 || strays.length > 0) && chevron
6739
- ] }, item.id)),
6740
- strays.map((s) => /* @__PURE__ */ jsx("li", { className: "flex shrink-0 items-center gap-1", children: /* @__PURE__ */ jsx(SignalPill, { signal: s, l }) }, `${s.step}-${s.signal}`))
6741
- ] })
6727
+ levels: stepLevels(steps),
6728
+ phaseOf,
6729
+ current: selected,
6730
+ onSelect: (id) => {
6731
+ setSelected(id);
6732
+ setOpen(id);
6733
+ },
6734
+ renderStep: (step, _level, win, narrow) => pill(
6735
+ step,
6736
+ step.id === win.levels[win.currentLevel]?.primary.id || step.id === selected,
6737
+ narrow
6738
+ ),
6739
+ noteOf: waitingOf,
6740
+ renderAfter: (level) => signals.filter((s) => level.steps.some((step) => step.id === s.step)).map((s) => /* @__PURE__ */ jsx(SignalPill, { signal: s, l }, `${s.step}-${s.signal}`)),
6741
+ leading,
6742
+ trailing,
6743
+ icon: iconOf,
6744
+ labels: { waitingFor: l.waitingFor, ...barLabels },
6745
+ tid: (suffix) => `workflow-thread-${suffix}`
6742
6746
  }
6743
- );
6747
+ ) });
6744
6748
  }
6745
6749
 
6746
6750
  // src/agents/tasks/linkedRuns.ts
@@ -10070,5 +10074,5 @@ function AgentCreateView({
10070
10074
  }
10071
10075
 
10072
10076
  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_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, DEFAULT_WORKFLOW_THREAD_STRIP_LABELS, DERIVED_NAME_WORDS, EMPTY_NEW_THREAD, EntityChip, GoalCriteria, MAX_TASK_DEPTH, NewThreadDialog, PersonPill, PillSelect, RecurrenceBuilder, STATUS_LABELS, STATUS_ORDER, STATUS_TONE, 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, WorkflowThreadStartedBy, WorkflowThreadStrip, WorkflowsTable, WorkflowsToolbar, agentConfigSectionToValues, agentCreatorToConfigSection, asTaskStatus, authModeFor, buildRRule, buildTaskRows, buildWorkflowScopeSource, compactThreadActivity, composePersona, composerToTaskQuery, composerToWorkRequest, composerToWorkflowRequest, composerToWorkflowUpdate, createTaskColumns, createWorkflowColumns, createsWork, defaultScopeRenderer, defaultTaskComposerValues, deriveAgentName, deriveWorkflowName, descendantIds, describeRRule, filterConversationRows, firstWords, formatElapsed, goalProgress, groupThreadActivity, hasTaskFields, hasTrigger, humanizeSection, indexTasks, inferType, inputDocumentIds, isAgenticWorkflow, isOutOfBounds, isPlainTodo, isSkillRow, isValidAgentName, isoToLocalInput, linkedRunsFromActivity, localInputToIso, matchWorkflowScope, moveTargets, newThreadToRequest, nextCriterionId, ownerExtId, parseRRule, prettifyKey, resolveScopeInputs, skillSlug, stripPersonaPreamble, summarizeAgent, summarizeCapabilities, taskComposerToCreateRequest, taskComposerToUpdateRequest, taskNeedsAccess, taskToComposerValues, useWorkflowPreview, workflowFromSkillMarkdown, workflowStatus, workflowTaskFields, workflowToComposerValues, workflowToSkillMarkdown, workflowTriggerType, workflowWhen };
10073
- //# sourceMappingURL=chunk-HEVVT6IT.js.map
10074
- //# sourceMappingURL=chunk-HEVVT6IT.js.map
10077
+ //# sourceMappingURL=chunk-BMOL5DN6.js.map
10078
+ //# sourceMappingURL=chunk-BMOL5DN6.js.map