@arbidocs/blocks 0.4.75 → 0.4.77

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 (113) hide show
  1. package/dist/agents/index.cjs +341 -253
  2. package/dist/agents/index.js +3 -3
  3. package/dist/agents/tasks/TaskActivityTimeline.d.ts +1 -1
  4. package/dist/agents/tasks/WorkflowThreadStrip.d.ts +44 -1
  5. package/dist/agents/tasks/index.d.ts +2 -1
  6. package/dist/agents/tasks/linkedRuns.d.ts +31 -0
  7. package/dist/agents/workflows/SchemaForm.d.ts +6 -1
  8. package/dist/agents/workflows/StepParts.d.ts +109 -0
  9. package/dist/agents/workflows/WorkflowRunner.d.ts +11 -2
  10. package/dist/agents/workflows/index.d.ts +3 -2
  11. package/dist/agents/workflows/planSteps.d.ts +10 -1
  12. package/dist/agents/workflows/run.d.ts +61 -8
  13. package/dist/agents/workflows/types.d.ts +160 -4
  14. package/dist/agents/workflows/useWorkflowPreview.d.ts +2 -1
  15. package/dist/agents/workflows/useWorkflowView.d.ts +19 -0
  16. package/dist/chat/ChatPage.d.ts +1 -1
  17. package/dist/chat/WorkflowStepChip.d.ts +24 -0
  18. package/dist/chat/chat-page-types.d.ts +4 -0
  19. package/dist/chat/index.cjs +130 -122
  20. package/dist/chat/index.d.ts +1 -0
  21. package/dist/chat/index.js +2 -2
  22. package/dist/{chunk-YWYVIQ7T.js → chunk-34UW6XUQ.js} +948 -38
  23. package/dist/chunk-34UW6XUQ.js.map +1 -0
  24. package/dist/{chunk-P2RBE3FD.cjs → chunk-3XR3IEGU.cjs} +965 -35
  25. package/dist/chunk-3XR3IEGU.cjs.map +1 -0
  26. package/dist/{chunk-ZWA7UUZL.cjs → chunk-7YUFMNFW.cjs} +2 -54
  27. package/dist/chunk-7YUFMNFW.cjs.map +1 -0
  28. package/dist/chunk-A24C6BNA.js +92 -0
  29. package/dist/chunk-A24C6BNA.js.map +1 -0
  30. package/dist/chunk-AINNADMT.cjs +62 -0
  31. package/dist/chunk-AINNADMT.cjs.map +1 -0
  32. package/dist/{chunk-7CVF3DK2.cjs → chunk-EKIUMNCN.cjs} +5 -5
  33. package/dist/{chunk-7CVF3DK2.cjs.map → chunk-EKIUMNCN.cjs.map} +1 -1
  34. package/dist/chunk-FE4ULGOR.js +151 -0
  35. package/dist/chunk-FE4ULGOR.js.map +1 -0
  36. package/dist/chunk-FT5FFXSJ.js +60 -0
  37. package/dist/chunk-FT5FFXSJ.js.map +1 -0
  38. package/dist/{chunk-HITAN7JF.cjs → chunk-GTXOV7IJ.cjs} +4 -4
  39. package/dist/{chunk-HITAN7JF.cjs.map → chunk-GTXOV7IJ.cjs.map} +1 -1
  40. package/dist/{chunk-LT2UORRG.js → chunk-HEVVT6IT.js} +205 -38
  41. package/dist/chunk-HEVVT6IT.js.map +1 -0
  42. package/dist/{chunk-IPGKTUF7.cjs → chunk-HOD6OM7L.cjs} +68 -3
  43. package/dist/chunk-HOD6OM7L.cjs.map +1 -0
  44. package/dist/{chunk-F4LUD3YC.cjs → chunk-JFUN4D7D.cjs} +229 -60
  45. package/dist/chunk-JFUN4D7D.cjs.map +1 -0
  46. package/dist/{chunk-UIWLDSTF.js → chunk-NIP5BOP7.js} +68 -5
  47. package/dist/chunk-NIP5BOP7.js.map +1 -0
  48. package/dist/{chunk-MK6NJQGF.js → chunk-OEM5ARVM.js} +3 -3
  49. package/dist/{chunk-MK6NJQGF.js.map → chunk-OEM5ARVM.js.map} +1 -1
  50. package/dist/{chunk-5EBGRG3X.js → chunk-OPA2Y6YZ.js} +3 -54
  51. package/dist/chunk-OPA2Y6YZ.js.map +1 -0
  52. package/dist/chunk-TZR36PPP.cjs +95 -0
  53. package/dist/chunk-TZR36PPP.cjs.map +1 -0
  54. package/dist/{chunk-WJEKRSPH.js → chunk-UEU23PTW.js} +3 -3
  55. package/dist/{chunk-WJEKRSPH.js.map → chunk-UEU23PTW.js.map} +1 -1
  56. package/dist/chunk-ZVBPRMHJ.cjs +153 -0
  57. package/dist/chunk-ZVBPRMHJ.cjs.map +1 -0
  58. package/dist/connect/docx.cjs +10 -88
  59. package/dist/connect/docx.cjs.map +1 -1
  60. package/dist/connect/docx.js +6 -86
  61. package/dist/connect/docx.js.map +1 -1
  62. package/dist/connect/index.cjs +295 -32
  63. package/dist/connect/index.cjs.map +1 -1
  64. package/dist/connect/index.js +280 -17
  65. package/dist/connect/index.js.map +1 -1
  66. package/dist/connection/ConnectedWorkflowRunner.d.ts +16 -2
  67. package/dist/connection/WorkflowRunnerDialogs.d.ts +37 -0
  68. package/dist/connection/useWorkflowThread.d.ts +12 -0
  69. package/dist/document-tools/index.cjs +7 -143
  70. package/dist/document-tools/index.cjs.map +1 -1
  71. package/dist/document-tools/index.js +5 -144
  72. package/dist/document-tools/index.js.map +1 -1
  73. package/dist/docx/index.cjs +18 -17
  74. package/dist/docx/index.cjs.map +1 -1
  75. package/dist/docx/index.js +3 -2
  76. package/dist/docx/index.js.map +1 -1
  77. package/dist/facts/index.cjs +1 -1
  78. package/dist/facts/index.js +1 -1
  79. package/dist/files/index.cjs +1 -1
  80. package/dist/files/index.js +1 -1
  81. package/dist/home/index.cjs +1 -1
  82. package/dist/home/index.js +1 -1
  83. package/dist/index.cjs +631 -535
  84. package/dist/index.js +8 -8
  85. package/dist/settings/index.cjs +1 -1
  86. package/dist/settings/index.js +1 -1
  87. package/dist/shell/index.cjs +1 -1
  88. package/dist/shell/index.js +1 -1
  89. package/dist/studio/index.cjs +4 -4
  90. package/dist/studio/index.js +3 -3
  91. package/dist/workflow-canvas/SignalsEditor.d.ts +41 -0
  92. package/dist/workflow-canvas/StepActionSettings.d.ts +132 -0
  93. package/dist/workflow-canvas/StepInspector.d.ts +28 -2
  94. package/dist/workflow-canvas/TriggerInspector.d.ts +11 -2
  95. package/dist/workflow-canvas/WorkflowBuilder.d.ts +17 -4
  96. package/dist/workflow-canvas/WorkflowCanvas.d.ts +27 -2
  97. package/dist/workflow-canvas/edit.d.ts +9 -1
  98. package/dist/workflow-canvas/index.cjs +1282 -208
  99. package/dist/workflow-canvas/index.cjs.map +1 -1
  100. package/dist/workflow-canvas/index.d.ts +2 -1
  101. package/dist/workflow-canvas/index.js +1255 -188
  102. package/dist/workflow-canvas/index.js.map +1 -1
  103. package/dist/workflow-canvas/trigger.d.ts +20 -1
  104. package/package.json +4 -4
  105. package/src/workflow-canvas/canvas.css +9 -0
  106. package/dist/chunk-5EBGRG3X.js.map +0 -1
  107. package/dist/chunk-F4LUD3YC.cjs.map +0 -1
  108. package/dist/chunk-IPGKTUF7.cjs.map +0 -1
  109. package/dist/chunk-LT2UORRG.js.map +0 -1
  110. package/dist/chunk-P2RBE3FD.cjs.map +0 -1
  111. package/dist/chunk-UIWLDSTF.js.map +0 -1
  112. package/dist/chunk-YWYVIQ7T.js.map +0 -1
  113. package/dist/chunk-ZWA7UUZL.cjs.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-YWYVIQ7T.js';
4
+ import { defaultInputs, validateInputs, SchemaForm, isWorkflowScope, fieldToFrontmatter, workflowFromFrontmatter, workflowSteps, initialRunInputs, stepPhase, composeStepPrompt, useWorkflowView, composeWorkflowPrompt, isRunFinished, buildLaunch } from './chunk-34UW6XUQ.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';
@@ -11,17 +11,17 @@ import { GridView } from './chunk-ZPLG7QYF.js';
11
11
  import { QuickActionDialogHeader, AddFilesFirst, ScopePicker, StartTiles } from './chunk-DDF5GPIJ.js';
12
12
  import { FoldSection } from './chunk-XD2M6LIG.js';
13
13
  import { ActionLink } from './chunk-S7PSMMRG.js';
14
+ import { useBlocksEnvironment } from './chunk-76JDDMSP.js';
14
15
  import { useMentionAutocomplete } from './chunk-HOXKR26S.js';
15
16
  import { toMessageMentions, extractMentions, MentionMenu } from './chunk-AA3PT6KR.js';
16
17
  import { useIsPhone } from './chunk-SLSBJRWW.js';
17
- import { useBlocksEnvironment } from './chunk-76JDDMSP.js';
18
18
  import { formatCount, initials } from './chunk-OXF2IFXG.js';
19
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, ChevronUp, Pause, Activity, Hourglass, MoreVertical, TriangleAlert, CheckSquare, Square, CheckCircle2, SquareArrowOutUpRight, ArrowLeft, LayoutGrid, List, CircleDashed, RotateCcw, ListPlus, Link2, Clock, Bell, MousePointerClick, 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, 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';
25
25
 
26
26
  function useControllableState(value, defaultValue, onChange) {
27
27
  const [inner, setInner] = useState(defaultValue);
@@ -504,7 +504,7 @@ function WorkflowDocumentsField({
504
504
 
505
505
  // src/agents/workflows/skillMarkdown.ts
506
506
  var JSON_KEYS = /* @__PURE__ */ new Set(["inputs"]);
507
- var oneLine = (text) => text.replace(/\s*\n\s*/g, " ").trim();
507
+ var oneLine = (text2) => text2.replace(/\s*\n\s*/g, " ").trim();
508
508
  var skillSlug = (raw) => raw.toLowerCase().replace(/[^a-z0-9-]/g, "");
509
509
  function workflowToSkillMarkdown(workflow) {
510
510
  const { run } = workflow;
@@ -523,10 +523,10 @@ function workflowToSkillMarkdown(workflow) {
523
523
  lines.push("---", "", run.promptTemplate.trim(), "");
524
524
  return lines.join("\n");
525
525
  }
526
- function workflowFromSkillMarkdown(id, text) {
527
- const match = /^---\n([\s\S]*?)\n---\n?([\s\S]*)$/.exec(text);
526
+ function workflowFromSkillMarkdown(id, text2) {
527
+ const match = /^---\n([\s\S]*?)\n---\n?([\s\S]*)$/.exec(text2);
528
528
  const frontmatter = {};
529
- const body = match ? match[2] : text;
529
+ const body = match ? match[2] : text2;
530
530
  for (const line of (match ? match[1] : "").split("\n")) {
531
531
  const i = line.indexOf(":");
532
532
  if (i < 1) continue;
@@ -565,15 +565,20 @@ function useWorkflowPreview(workflow, { answer = "{prompt}", delayMs = 400, reso
565
565
  }, []);
566
566
  useEffect(() => {
567
567
  if (Object.values(states).some((s) => s.status === "running")) return;
568
- const next = steps.find((s) => s.kind === "agent" && stepPhase(steps, states, s.id) === "ready");
569
- if (!next || next.kind !== "agent") return;
570
- const prompt = composeStepPrompt(workflow, next, inputs, { resolveWorkflow, compose });
568
+ const next = steps.find(
569
+ (s) => (s.kind === "agent" || s.kind === "action") && stepPhase(steps, states, s.id) === "ready"
570
+ );
571
+ if (!next || next.kind !== "agent" && next.kind !== "action") return;
572
+ const prompt = next.kind === "agent" ? composeStepPrompt(workflow, next, inputs, { resolveWorkflow, compose }) : "";
571
573
  set(next.id, { status: "running", startedAt: (/* @__PURE__ */ new Date()).toISOString() });
572
574
  timers.current.set(
573
575
  next.id,
574
576
  setTimeout(() => {
575
577
  timers.current.delete(next.id);
576
- set(next.id, { status: "done", text: answer.replace("{prompt}", prompt) });
578
+ set(
579
+ next.id,
580
+ next.kind === "agent" ? { status: "done", text: answer.replace("{prompt}", prompt) } : { status: "done" }
581
+ );
577
582
  }, delayMs)
578
583
  );
579
584
  }, [states, steps, workflow]);
@@ -2028,7 +2033,7 @@ function TaskPlan({
2028
2033
  );
2029
2034
  }
2030
2035
  const patch = (fields) => onChange({ ...plan, ...fields });
2031
- const setCriterion = (idx, text) => patch({ criteria: plan.criteria.map((c, i) => i === idx ? { ...c, text } : c) });
2036
+ const setCriterion = (idx, text2) => patch({ criteria: plan.criteria.map((c, i) => i === idx ? { ...c, text: text2 } : c) });
2032
2037
  const addCriterion = () => patch({ criteria: [...plan.criteria, { id: nextCriterionId(plan.criteria), text: "" }] });
2033
2038
  const removeCriterion = (idx) => patch({ criteria: plan.criteria.filter((_, i) => i !== idx) });
2034
2039
  const count = plan.criteria.length;
@@ -2974,10 +2979,10 @@ function TaskStatusPill({
2974
2979
  const generating = key === "generating";
2975
2980
  const now = useNow(generating && Boolean(runStartedAt));
2976
2981
  const started = runStartedAt ? Date.parse(runStartedAt) : NaN;
2977
- let text = STATUS_LABELS[key];
2982
+ let text2 = STATUS_LABELS[key];
2978
2983
  let tone = STATUS_TONE[key];
2979
2984
  if (awaitingAccess) {
2980
- text = l.waitingForAccess;
2985
+ text2 = l.waitingForAccess;
2981
2986
  tone = "danger";
2982
2987
  }
2983
2988
  const elapsed = generating && !Number.isNaN(started) ? formatElapsed(started, now) : null;
@@ -2990,7 +2995,7 @@ function TaskStatusPill({
2990
2995
  "data-status": key,
2991
2996
  "data-testid": testIdOr(testId, { testId: `task-status-${id}` }),
2992
2997
  children: [
2993
- text,
2998
+ text2,
2994
2999
  elapsed && /* @__PURE__ */ jsxs("span", { className: "tabular-nums opacity-70", children: [
2995
3000
  "\xB7 ",
2996
3001
  elapsed
@@ -3396,8 +3401,8 @@ function TaskTable(props) {
3396
3401
  const map = new Map(STATUS_ORDER.map((s) => [s, 0]));
3397
3402
  let all = 0;
3398
3403
  for (const task of tasks) {
3399
- const text = `${nameOf(task)} ${task.description ?? ""}`.toLowerCase();
3400
- if (q && !text.includes(q)) continue;
3404
+ const text2 = `${nameOf(task)} ${task.description ?? ""}`.toLowerCase();
3405
+ if (q && !text2.includes(q)) continue;
3401
3406
  all += 1;
3402
3407
  const s = asTaskStatus(task.status);
3403
3408
  map.set(s, (map.get(s) ?? 0) + 1);
@@ -4942,8 +4947,8 @@ function isoToLocalInput(iso) {
4942
4947
  return new Date(d.getTime() - d.getTimezoneOffset() * 6e4).toISOString().slice(0, 16);
4943
4948
  }
4944
4949
  var DERIVED_NAME_WORDS = 6;
4945
- function firstWords(text, count = DERIVED_NAME_WORDS) {
4946
- const words = text.trim().split(/\s+/).filter(Boolean);
4950
+ function firstWords(text2, count = DERIVED_NAME_WORDS) {
4951
+ const words = text2.trim().split(/\s+/).filter(Boolean);
4947
4952
  if (words.length <= count) return words.join(" ");
4948
4953
  return `${words.slice(0, count).join(" ")}\u2026`;
4949
4954
  }
@@ -5537,7 +5542,7 @@ function TaskTriggerChip({
5537
5542
  }) {
5538
5543
  const l = { ...DEFAULT_TASK_TRIGGER_CHIP_LABELS, ...labels };
5539
5544
  const chained = Boolean(afterTaskId);
5540
- const text = chained ? afterTaskName ? l.after(afterTaskName) : l.afterUnknown : triggerType === "on_demand" ? l.onDemand : summary;
5545
+ const text2 = chained ? afterTaskName ? l.after(afterTaskName) : l.afterUnknown : triggerType === "on_demand" ? l.onDemand : summary;
5541
5546
  return /* @__PURE__ */ jsxs(
5542
5547
  "span",
5543
5548
  {
@@ -5546,7 +5551,7 @@ function TaskTriggerChip({
5546
5551
  "data-trigger": chained ? "task" : triggerType,
5547
5552
  children: [
5548
5553
  /* @__PURE__ */ jsx(TriggerIcon, { type: triggerType, chained }),
5549
- /* @__PURE__ */ jsx("span", { className: "truncate", children: text })
5554
+ /* @__PURE__ */ jsx("span", { className: "truncate", children: text2 })
5550
5555
  ]
5551
5556
  }
5552
5557
  );
@@ -5779,9 +5784,9 @@ function WorkflowsTable(props) {
5779
5784
  renderName: (w) => {
5780
5785
  const { l: lb } = latest.current;
5781
5786
  const skill = isSkillRow(w);
5782
- const text = skill ? latest.current.actionText(w) : w.description || latest.current.actionText(w);
5787
+ const text2 = skill ? latest.current.actionText(w) : w.description || latest.current.actionText(w);
5783
5788
  const stem = w.name.replace(/…$/, "").trim();
5784
- const about = text && text.trim() !== w.name.trim() && text.trim() !== stem ? text : "";
5789
+ const about = text2 && text2.trim() !== w.name.trim() && text2.trim() !== stem ? text2 : "";
5785
5790
  return /* @__PURE__ */ jsxs("div", { className: "min-w-0 leading-tight", children: [
5786
5791
  /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 items-center gap-1.5", children: [
5787
5792
  /* @__PURE__ */ jsx(
@@ -6210,7 +6215,14 @@ var ICONS = {
6210
6215
  step_started: /* @__PURE__ */ jsx(Play, { className: "size-3.5", "aria-hidden": true }),
6211
6216
  step_done: /* @__PURE__ */ jsx(CheckCircle2, { className: "size-3.5", "aria-hidden": true }),
6212
6217
  step_skipped: /* @__PURE__ */ jsx(RotateCcw, { className: "size-3.5", "aria-hidden": true }),
6213
- step_failed: /* @__PURE__ */ jsx(AlertTriangle, { className: "size-3.5", "aria-hidden": true })
6218
+ step_failed: /* @__PURE__ */ jsx(AlertTriangle, { className: "size-3.5", "aria-hidden": true }),
6219
+ step_signal: /* @__PURE__ */ jsx(Flag, { className: "size-3.5", "aria-hidden": true }),
6220
+ step_waiting: /* @__PURE__ */ jsx(Hourglass, { className: "size-3.5", "aria-hidden": true }),
6221
+ step_progress: /* @__PURE__ */ jsx(PenLine, { className: "size-3.5", "aria-hidden": true }),
6222
+ step_sent_back: /* @__PURE__ */ jsx(CornerUpLeft, { className: "size-3.5", "aria-hidden": true }),
6223
+ step_ready: /* @__PURE__ */ jsx(BellRing, { className: "size-3.5", "aria-hidden": true }),
6224
+ step_reminded: /* @__PURE__ */ jsx(BellRing, { className: "size-3.5", "aria-hidden": true }),
6225
+ linked_run: /* @__PURE__ */ jsx(ArrowUpRight, { className: "size-3.5", "aria-hidden": true })
6214
6226
  };
6215
6227
  var asString = (v) => typeof v === "string" && v.trim() ? v : null;
6216
6228
  function summarizeError(error) {
@@ -6255,6 +6267,22 @@ function TaskActivityTimeline({
6255
6267
  return { headline: "Step done" };
6256
6268
  case "step_skipped":
6257
6269
  return { headline: "Step skipped" };
6270
+ case "step_waiting":
6271
+ return { headline: "Waiting on people" };
6272
+ case "step_progress":
6273
+ return { headline: detail.signed ? "Signed" : "Step moved on" };
6274
+ case "step_sent_back":
6275
+ return { headline: "Sent the work back" };
6276
+ case "step_ready":
6277
+ return { headline: "Told whose turn it is" };
6278
+ case "step_reminded":
6279
+ return { headline: "Sent a reminder" };
6280
+ case "step_signal":
6281
+ return { headline: `Signalled \u201C${asString(detail.signal) ?? "a signal"}\u201D` };
6282
+ case "linked_run":
6283
+ return {
6284
+ headline: `Started a linked workflow on \u201C${asString(detail.signal) ?? "a signal"}\u201D`
6285
+ };
6258
6286
  case "step_failed":
6259
6287
  return {
6260
6288
  headline: "Step failed",
@@ -6459,7 +6487,13 @@ function ThreadActivity({ item, children }) {
6459
6487
  }
6460
6488
  ) });
6461
6489
  }
6462
- var STEP_KINDS = /* @__PURE__ */ new Set(["step_started", "step_done", "step_skipped", "step_failed"]);
6490
+ var STEP_KINDS = /* @__PURE__ */ new Set([
6491
+ "step_started",
6492
+ "step_waiting",
6493
+ "step_done",
6494
+ "step_skipped",
6495
+ "step_failed"
6496
+ ]);
6463
6497
  function groupThreadActivity(steps, items) {
6464
6498
  const out = { before: [], byStep: {}, after: [] };
6465
6499
  const states = {};
@@ -6468,7 +6502,7 @@ function groupThreadActivity(steps, items) {
6468
6502
  if (item.kind && STEP_KINDS.has(item.kind) && item.step) {
6469
6503
  current = item.step;
6470
6504
  states[item.step] = {
6471
- status: item.kind === "step_started" ? "running" : item.kind === "step_done" ? "done" : item.kind === "step_skipped" ? "skipped" : "failed"
6505
+ status: item.kind === "step_started" ? "running" : item.kind === "step_waiting" ? "waiting" : item.kind === "step_done" ? "done" : item.kind === "step_skipped" ? "skipped" : "failed"
6472
6506
  };
6473
6507
  continue;
6474
6508
  }
@@ -6485,11 +6519,70 @@ function groupThreadActivity(steps, items) {
6485
6519
  var DEFAULT_WORKFLOW_THREAD_STRIP_LABELS = {
6486
6520
  happened: "{count} in this step",
6487
6521
  nothingYet: "Nothing here yet.",
6488
- skip: "Skip this step"
6522
+ skip: "Skip this step",
6523
+ startedBy: "Started by {step} in {thread}",
6524
+ signalled: "This step signalled \u201C{signal}\u201D",
6525
+ linkedRun: "Started on \u201C{signal}\u201D: open its thread",
6526
+ waitingFor: "Waiting for {name}",
6527
+ sentBack: "Sent back to be done again"
6489
6528
  };
6529
+ function WorkflowThreadStartedBy({
6530
+ origin,
6531
+ labels
6532
+ }) {
6533
+ const l = { ...DEFAULT_WORKFLOW_THREAD_STRIP_LABELS, ...labels };
6534
+ const text2 = l.startedBy.replace("{step}", origin.stepTitle).replace("{thread}", origin.threadTitle);
6535
+ const className = "flex max-w-64 shrink-0 items-center gap-1 truncate rounded-full border border-border px-2 py-0.5 text-[11px] text-muted-foreground";
6536
+ const content = /* @__PURE__ */ jsxs(Fragment, { children: [
6537
+ /* @__PURE__ */ jsx(CornerLeftUp, { className: "size-3 shrink-0" }),
6538
+ /* @__PURE__ */ jsx("span", { className: "truncate", children: text2 })
6539
+ ] });
6540
+ return origin.onSelect ? /* @__PURE__ */ jsx(
6541
+ "button",
6542
+ {
6543
+ type: "button",
6544
+ onClick: origin.onSelect,
6545
+ title: origin.signal ? `${text2} (${origin.signal})` : text2,
6546
+ className: cn(className, "hover:border-primary/40 hover:text-primary"),
6547
+ "data-testid": "workflow-thread-started-by",
6548
+ children: content
6549
+ }
6550
+ ) : /* @__PURE__ */ jsx("span", { className, title: text2, "data-testid": "workflow-thread-started-by", children: content });
6551
+ }
6552
+ function SignalPill({ signal, l }) {
6553
+ return /* @__PURE__ */ jsxs(
6554
+ "span",
6555
+ {
6556
+ className: "flex shrink-0 items-center gap-1 rounded-full border border-amber-500/40 bg-amber-500/10 px-1.5 py-0.5 text-[11px] text-amber-700 dark:text-amber-300",
6557
+ title: l.signalled.replace("{signal}", signal.signal),
6558
+ "data-testid": `workflow-thread-signal-${signal.step}-${signal.signal}`,
6559
+ children: [
6560
+ /* @__PURE__ */ jsx(Flag, { className: "size-3 shrink-0" }),
6561
+ /* @__PURE__ */ jsx("span", { className: "font-mono", children: signal.signal }),
6562
+ signal.runs.map((run) => /* @__PURE__ */ jsxs(
6563
+ "button",
6564
+ {
6565
+ type: "button",
6566
+ onClick: run.onSelect,
6567
+ disabled: !run.onSelect,
6568
+ title: l.linkedRun.replace("{signal}", signal.signal),
6569
+ className: "flex max-w-40 items-center gap-0.5 truncate rounded-full bg-background/80 px-1.5 text-foreground hover:text-primary disabled:cursor-default",
6570
+ "data-testid": `workflow-thread-linked-${run.id}`,
6571
+ children: [
6572
+ /* @__PURE__ */ jsx(ArrowUpRight, { className: "size-3 shrink-0" }),
6573
+ /* @__PURE__ */ jsx("span", { className: "truncate", children: run.label })
6574
+ ]
6575
+ },
6576
+ run.id
6577
+ ))
6578
+ ]
6579
+ }
6580
+ );
6581
+ }
6490
6582
  function Mark({ phase, icon }) {
6491
6583
  if (phase === "done") return /* @__PURE__ */ jsx(Check, { className: "size-3.5" });
6492
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" });
6493
6586
  if (phase === "failed") return /* @__PURE__ */ jsx(AlertTriangle, { className: "size-3.5" });
6494
6587
  if (phase === "skipped") return /* @__PURE__ */ jsx(MinusCircle, { className: "size-3.5" });
6495
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" });
@@ -6527,11 +6620,15 @@ function WorkflowThreadStrip({
6527
6620
  renderIcon,
6528
6621
  onSkip,
6529
6622
  renderStepAction,
6623
+ signals = [],
6624
+ startedBy,
6625
+ assigneeOf,
6530
6626
  labels,
6531
6627
  className
6532
6628
  }) {
6533
6629
  const l = { ...DEFAULT_WORKFLOW_THREAD_STRIP_LABELS, ...labels };
6534
6630
  const grouped = groupThreadActivity(steps, items);
6631
+ const strays = signals.filter((s) => !steps.some((step) => step.id === s.step));
6535
6632
  const chevron = /* @__PURE__ */ jsx(ChevronRight, { className: "size-3 shrink-0 text-muted-foreground" });
6536
6633
  return /* @__PURE__ */ jsx(
6537
6634
  "div",
@@ -6541,6 +6638,10 @@ function WorkflowThreadStrip({
6541
6638
  "aria-label": "Workflow steps",
6542
6639
  "data-testid": "workflow-thread-strip",
6543
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
+ ] }),
6544
6645
  grouped.before.map((item) => /* @__PURE__ */ jsxs("li", { className: "flex shrink-0 items-center gap-1", children: [
6545
6646
  /* @__PURE__ */ jsx(Entry, { item }),
6546
6647
  chevron
@@ -6548,12 +6649,14 @@ function WorkflowThreadStrip({
6548
6649
  steps.map((step, i) => {
6549
6650
  const phase = stepPhase(steps, states, step.id);
6550
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;
6551
6654
  const chip = /* @__PURE__ */ jsxs(
6552
6655
  "span",
6553
6656
  {
6554
6657
  className: cn(
6555
6658
  "flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded-full border px-2 py-0.5 text-xs font-medium",
6556
- phase === "running" || phase === "ready" ? "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"
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"
6557
6660
  ),
6558
6661
  "data-phase": phase,
6559
6662
  "data-testid": `workflow-thread-step-${step.id}`,
@@ -6566,6 +6669,26 @@ function WorkflowThreadStrip({
6566
6669
  }
6567
6670
  ),
6568
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
+ ),
6569
6692
  happened.length > 0 && /* @__PURE__ */ jsx("span", { className: "rounded-full bg-muted px-1.5 text-[10px] text-muted-foreground", children: happened.length })
6570
6693
  ]
6571
6694
  }
@@ -6580,10 +6703,19 @@ function WorkflowThreadStrip({
6580
6703
  className: "w-72 space-y-1 p-2",
6581
6704
  "data-testid": `workflow-thread-step-${step.id}-menu`,
6582
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 }),
6583
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 }),
6584
6716
  happened.map((item) => /* @__PURE__ */ jsx(Entry, { item }, item.id)),
6585
6717
  renderStepAction?.(step, phase),
6586
- onSkip && ["ready", "blocked", "failed"].includes(phase) && /* @__PURE__ */ jsx(
6718
+ onSkip && ["ready", "blocked", "failed", "waiting"].includes(phase) && /* @__PURE__ */ jsx(
6587
6719
  "button",
6588
6720
  {
6589
6721
  type: "button",
@@ -6597,24 +6729,59 @@ function WorkflowThreadStrip({
6597
6729
  }
6598
6730
  )
6599
6731
  ] }),
6600
- (i < steps.length - 1 || grouped.after.length > 0) && chevron
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
6601
6734
  ] }, step.id);
6602
6735
  }),
6603
6736
  grouped.after.map((item, i) => /* @__PURE__ */ jsxs("li", { className: "flex shrink-0 items-center gap-1", children: [
6604
6737
  /* @__PURE__ */ jsx(Entry, { item }),
6605
- i < grouped.after.length - 1 && chevron
6606
- ] }, item.id))
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}`))
6607
6741
  ] })
6608
6742
  }
6609
6743
  );
6610
6744
  }
6611
6745
 
6746
+ // src/agents/tasks/linkedRuns.ts
6747
+ var text = (v) => typeof v === "string" && v ? v : void 0;
6748
+ function linkedRunsFromActivity(events) {
6749
+ const raised = [];
6750
+ let startedBy;
6751
+ const entry = (step, signal) => {
6752
+ let found = raised.find((r) => r.step === step && r.signal === signal);
6753
+ if (!found) raised.push(found = { step, signal, runs: [] });
6754
+ return found;
6755
+ };
6756
+ for (const e of events ?? []) {
6757
+ const d = e.detail ?? {};
6758
+ const step = text(d.step);
6759
+ const signal = text(d.signal);
6760
+ if (e.kind === "step_signal" && step && signal) entry(step, signal);
6761
+ else if (e.kind === "linked_run" && step && signal) {
6762
+ const conversationId = text(d.conversation_ext_id);
6763
+ const runs = entry(step, signal).runs;
6764
+ if (conversationId && !runs.some((r) => r.conversationId === conversationId))
6765
+ runs.push({ conversationId, workflowId: text(d.workflow_ext_id) });
6766
+ } else if (e.kind === "created" && d.linked_from && typeof d.linked_from === "object") {
6767
+ const from = d.linked_from;
6768
+ const conversationId = text(from.conversation_ext_id);
6769
+ if (conversationId)
6770
+ startedBy = { conversationId, step: text(from.step), signal: text(from.signal) };
6771
+ }
6772
+ }
6773
+ return startedBy ? { raised, startedBy } : { raised };
6774
+ }
6775
+
6612
6776
  // src/agents/tasks/compact-thread-activity.ts
6613
6777
  var STEP_LABELS = {
6614
6778
  step_started: "Step started",
6615
6779
  step_done: "Step done",
6616
6780
  step_skipped: "Step skipped",
6617
- step_failed: "Step failed"
6781
+ step_failed: "Step failed",
6782
+ step_waiting: "Waiting",
6783
+ step_progress: "Signed",
6784
+ step_sent_back: "Sent back"
6618
6785
  };
6619
6786
  function compactThreadActivity(events) {
6620
6787
  const result = [];
@@ -9019,7 +9186,7 @@ function AgentBarNotes({
9019
9186
  return /* @__PURE__ */ jsx("div", { className: cn("mx-3 mb-2 space-y-1.5", className), children });
9020
9187
  }
9021
9188
  function AgentBarQueuedNote({
9022
- text,
9189
+ text: text2,
9023
9190
  isAcknowledged,
9024
9191
  labels,
9025
9192
  testId = "agent-queued-message"
@@ -9041,7 +9208,7 @@ function AgentBarQueuedNote({
9041
9208
  children: l.queuedMessage
9042
9209
  }
9043
9210
  ),
9044
- /* @__PURE__ */ jsx("p", { className: "line-clamp-2 whitespace-pre-line text-sm text-foreground", title: text, children: text })
9211
+ /* @__PURE__ */ jsx("p", { className: "line-clamp-2 whitespace-pre-line text-sm text-foreground", title: text2, children: text2 })
9045
9212
  ] })
9046
9213
  ]
9047
9214
  }
@@ -9902,6 +10069,6 @@ function AgentCreateView({
9902
10069
  ] });
9903
10070
  }
9904
10071
 
9905
- 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, 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, 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 };
9906
- //# sourceMappingURL=chunk-LT2UORRG.js.map
9907
- //# sourceMappingURL=chunk-LT2UORRG.js.map
10072
+ 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