@arbidocs/blocks 0.4.76 → 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 (97) hide show
  1. package/dist/agents/index.cjs +331 -255
  2. package/dist/agents/index.js +2 -2
  3. package/dist/agents/tasks/TaskActivityTimeline.d.ts +1 -1
  4. package/dist/agents/tasks/WorkflowThreadStrip.d.ts +7 -1
  5. package/dist/agents/workflows/SchemaForm.d.ts +6 -1
  6. package/dist/agents/workflows/StepParts.d.ts +109 -0
  7. package/dist/agents/workflows/WorkflowRunner.d.ts +11 -2
  8. package/dist/agents/workflows/index.d.ts +3 -2
  9. package/dist/agents/workflows/planSteps.d.ts +8 -1
  10. package/dist/agents/workflows/run.d.ts +61 -8
  11. package/dist/agents/workflows/types.d.ts +133 -4
  12. package/dist/agents/workflows/useWorkflowPreview.d.ts +2 -1
  13. package/dist/agents/workflows/useWorkflowView.d.ts +19 -0
  14. package/dist/chat/ChatPage.d.ts +1 -1
  15. package/dist/chat/WorkflowStepChip.d.ts +24 -0
  16. package/dist/chat/chat-page-types.d.ts +4 -0
  17. package/dist/chat/index.cjs +130 -122
  18. package/dist/chat/index.d.ts +1 -0
  19. package/dist/chat/index.js +2 -2
  20. package/dist/{chunk-22P5KNIM.js → chunk-34UW6XUQ.js} +928 -38
  21. package/dist/chunk-34UW6XUQ.js.map +1 -0
  22. package/dist/{chunk-VYRKO3XU.cjs → chunk-3XR3IEGU.cjs} +944 -35
  23. package/dist/chunk-3XR3IEGU.cjs.map +1 -0
  24. package/dist/{chunk-ZWA7UUZL.cjs → chunk-7YUFMNFW.cjs} +2 -54
  25. package/dist/chunk-7YUFMNFW.cjs.map +1 -0
  26. package/dist/chunk-A24C6BNA.js +92 -0
  27. package/dist/chunk-A24C6BNA.js.map +1 -0
  28. package/dist/chunk-AINNADMT.cjs +62 -0
  29. package/dist/chunk-AINNADMT.cjs.map +1 -0
  30. package/dist/{chunk-7CVF3DK2.cjs → chunk-EKIUMNCN.cjs} +5 -5
  31. package/dist/{chunk-7CVF3DK2.cjs.map → chunk-EKIUMNCN.cjs.map} +1 -1
  32. package/dist/chunk-FE4ULGOR.js +151 -0
  33. package/dist/chunk-FE4ULGOR.js.map +1 -0
  34. package/dist/chunk-FT5FFXSJ.js +60 -0
  35. package/dist/chunk-FT5FFXSJ.js.map +1 -0
  36. package/dist/{chunk-HITAN7JF.cjs → chunk-GTXOV7IJ.cjs} +4 -4
  37. package/dist/{chunk-HITAN7JF.cjs.map → chunk-GTXOV7IJ.cjs.map} +1 -1
  38. package/dist/{chunk-TKB7TVMW.js → chunk-HEVVT6IT.js} +78 -14
  39. package/dist/chunk-HEVVT6IT.js.map +1 -0
  40. package/dist/{chunk-IPGKTUF7.cjs → chunk-HOD6OM7L.cjs} +68 -3
  41. package/dist/chunk-HOD6OM7L.cjs.map +1 -0
  42. package/dist/{chunk-7FKARMA3.cjs → chunk-JFUN4D7D.cjs} +101 -37
  43. package/dist/chunk-JFUN4D7D.cjs.map +1 -0
  44. package/dist/{chunk-UIWLDSTF.js → chunk-NIP5BOP7.js} +68 -5
  45. package/dist/chunk-NIP5BOP7.js.map +1 -0
  46. package/dist/{chunk-MK6NJQGF.js → chunk-OEM5ARVM.js} +3 -3
  47. package/dist/{chunk-MK6NJQGF.js.map → chunk-OEM5ARVM.js.map} +1 -1
  48. package/dist/{chunk-5EBGRG3X.js → chunk-OPA2Y6YZ.js} +3 -54
  49. package/dist/chunk-OPA2Y6YZ.js.map +1 -0
  50. package/dist/chunk-TZR36PPP.cjs +95 -0
  51. package/dist/chunk-TZR36PPP.cjs.map +1 -0
  52. package/dist/{chunk-WJEKRSPH.js → chunk-UEU23PTW.js} +3 -3
  53. package/dist/{chunk-WJEKRSPH.js.map → chunk-UEU23PTW.js.map} +1 -1
  54. package/dist/chunk-ZVBPRMHJ.cjs +153 -0
  55. package/dist/chunk-ZVBPRMHJ.cjs.map +1 -0
  56. package/dist/connect/docx.cjs +10 -88
  57. package/dist/connect/docx.cjs.map +1 -1
  58. package/dist/connect/docx.js +6 -86
  59. package/dist/connect/docx.js.map +1 -1
  60. package/dist/connect/index.cjs +293 -30
  61. package/dist/connect/index.cjs.map +1 -1
  62. package/dist/connect/index.js +278 -15
  63. package/dist/connect/index.js.map +1 -1
  64. package/dist/connection/ConnectedWorkflowRunner.d.ts +16 -2
  65. package/dist/connection/WorkflowRunnerDialogs.d.ts +37 -0
  66. package/dist/connection/useWorkflowThread.d.ts +12 -0
  67. package/dist/document-tools/index.cjs +7 -143
  68. package/dist/document-tools/index.cjs.map +1 -1
  69. package/dist/document-tools/index.js +5 -144
  70. package/dist/document-tools/index.js.map +1 -1
  71. package/dist/docx/index.cjs +18 -17
  72. package/dist/docx/index.cjs.map +1 -1
  73. package/dist/docx/index.js +3 -2
  74. package/dist/docx/index.js.map +1 -1
  75. package/dist/index.cjs +467 -383
  76. package/dist/index.js +5 -5
  77. package/dist/studio/index.cjs +3 -3
  78. package/dist/studio/index.js +2 -2
  79. package/dist/workflow-canvas/StepActionSettings.d.ts +132 -0
  80. package/dist/workflow-canvas/StepInspector.d.ts +25 -2
  81. package/dist/workflow-canvas/WorkflowBuilder.d.ts +11 -3
  82. package/dist/workflow-canvas/WorkflowCanvas.d.ts +27 -2
  83. package/dist/workflow-canvas/edit.d.ts +9 -1
  84. package/dist/workflow-canvas/index.cjs +879 -99
  85. package/dist/workflow-canvas/index.cjs.map +1 -1
  86. package/dist/workflow-canvas/index.js +846 -66
  87. package/dist/workflow-canvas/index.js.map +1 -1
  88. package/package.json +4 -4
  89. package/src/workflow-canvas/canvas.css +9 -0
  90. package/dist/chunk-22P5KNIM.js.map +0 -1
  91. package/dist/chunk-5EBGRG3X.js.map +0 -1
  92. package/dist/chunk-7FKARMA3.cjs.map +0 -1
  93. package/dist/chunk-IPGKTUF7.cjs.map +0 -1
  94. package/dist/chunk-TKB7TVMW.js.map +0 -1
  95. package/dist/chunk-UIWLDSTF.js.map +0 -1
  96. package/dist/chunk-VYRKO3XU.cjs.map +0 -1
  97. package/dist/chunk-ZWA7UUZL.cjs.map +0 -1
@@ -3,7 +3,7 @@
3
3
 
4
4
  var chunkYJQVLVBJ_cjs = require('./chunk-YJQVLVBJ.cjs');
5
5
  var chunkZW6FPIFC_cjs = require('./chunk-ZW6FPIFC.cjs');
6
- var chunkVYRKO3XU_cjs = require('./chunk-VYRKO3XU.cjs');
6
+ var chunk3XR3IEGU_cjs = require('./chunk-3XR3IEGU.cjs');
7
7
  var chunk7RGLTF76_cjs = require('./chunk-7RGLTF76.cjs');
8
8
  var chunk3AFWGEDJ_cjs = require('./chunk-3AFWGEDJ.cjs');
9
9
  var chunkVFUWWH52_cjs = require('./chunk-VFUWWH52.cjs');
@@ -145,7 +145,7 @@ function WorkflowConfigDialog({
145
145
  }) {
146
146
  const l = { ...DEFAULT_WORKFLOW_CONFIG_DIALOG_LABELS, ...labels };
147
147
  const initialKey = JSON.stringify(initialInputs ?? {});
148
- const seedKey = JSON.stringify({ ...chunkVYRKO3XU_cjs.defaultInputs(workflow), ...JSON.parse(initialKey) });
148
+ const seedKey = JSON.stringify({ ...chunk3XR3IEGU_cjs.defaultInputs(workflow), ...JSON.parse(initialKey) });
149
149
  const seed = react.useMemo(() => JSON.parse(seedKey), [seedKey]);
150
150
  const [inputs, setInputs] = useControllableState(inputsProp, seed, onInputsChange);
151
151
  const [agentId, setAgentId] = useControllableState(
@@ -157,7 +157,7 @@ function WorkflowConfigDialog({
157
157
  if (open && inputsProp === void 0) setInputs(seed);
158
158
  }, [open, seed]);
159
159
  const setField = (name, value) => setInputs({ ...inputs, [name]: value });
160
- const errors = chunkVYRKO3XU_cjs.validateInputs(workflow, inputs);
160
+ const errors = chunk3XR3IEGU_cjs.validateInputs(workflow, inputs);
161
161
  const valid = Object.keys(errors).length === 0;
162
162
  const visibleErrors = Object.fromEntries(
163
163
  Object.entries(errors).filter(([, e]) => e !== "required")
@@ -170,7 +170,7 @@ function WorkflowConfigDialog({
170
170
  const blockedByScope = matchedCount !== null && matchedCount === 0 && Boolean(workflow.requiresFiles);
171
171
  const showAgent = workflow.run.kind === "prompt" && workflow.options?.agent !== false && agents !== void 0 && agents.length > 0;
172
172
  const launch = (values) => {
173
- Promise.resolve(onLaunch(chunkVYRKO3XU_cjs.buildLaunch(workflow, values, agentId))).catch(() => {
173
+ Promise.resolve(onLaunch(chunk3XR3IEGU_cjs.buildLaunch(workflow, values, agentId))).catch(() => {
174
174
  });
175
175
  };
176
176
  const submit = () => {
@@ -248,7 +248,7 @@ function WorkflowConfigDialog({
248
248
  }
249
249
  ) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
250
250
  /* @__PURE__ */ jsxRuntime.jsx(
251
- chunkVYRKO3XU_cjs.SchemaForm,
251
+ chunk3XR3IEGU_cjs.SchemaForm,
252
252
  {
253
253
  fields,
254
254
  values: inputs,
@@ -326,7 +326,7 @@ function resolveScopeInputs(workflow, inputs, scopeSource) {
326
326
  for (const field of workflow.inputs) {
327
327
  if (field.type !== "scope") continue;
328
328
  const raw = inputs[field.name];
329
- const scope = chunkVYRKO3XU_cjs.isWorkflowScope(raw) ? raw : { folders: [], labels: [] };
329
+ const scope = chunk3XR3IEGU_cjs.isWorkflowScope(raw) ? raw : { folders: [], labels: [] };
330
330
  next[field.name] = { ...scope, documents: scopeSource.resolveDocuments(scope) };
331
331
  }
332
332
  return next;
@@ -368,9 +368,9 @@ function WorkflowLauncher({
368
368
  };
369
369
  const select = (workflow) => {
370
370
  if (workflow.run.kind === "operation" && workflow.inputs.length === 0) {
371
- const inputs = chunkVYRKO3XU_cjs.defaultInputs(workflow);
372
- if (Object.keys(chunkVYRKO3XU_cjs.validateInputs(workflow, inputs)).length === 0) {
373
- Promise.resolve(onLaunch(chunkVYRKO3XU_cjs.buildLaunch(workflow, inputs, void 0))).catch(() => {
371
+ const inputs = chunk3XR3IEGU_cjs.defaultInputs(workflow);
372
+ if (Object.keys(chunk3XR3IEGU_cjs.validateInputs(workflow, inputs)).length === 0) {
373
+ Promise.resolve(onLaunch(chunk3XR3IEGU_cjs.buildLaunch(workflow, inputs, void 0))).catch(() => {
374
374
  });
375
375
  return;
376
376
  }
@@ -520,7 +520,7 @@ function workflowToSkillMarkdown(workflow) {
520
520
  if (workflow.landing !== "chat") lines.push(`landing: ${workflow.landing}`);
521
521
  if (workflow.requiresFiles) lines.push("requires_files: true");
522
522
  if (workflow.inputs.length > 0) {
523
- lines.push(`inputs: ${JSON.stringify(workflow.inputs.map(chunkVYRKO3XU_cjs.fieldToFrontmatter))}`);
523
+ lines.push(`inputs: ${JSON.stringify(workflow.inputs.map(chunk3XR3IEGU_cjs.fieldToFrontmatter))}`);
524
524
  }
525
525
  lines.push("---", "", run.promptTemplate.trim(), "");
526
526
  return lines.join("\n");
@@ -542,11 +542,11 @@ function workflowFromSkillMarkdown(id, text2) {
542
542
  } else if (value === "true" || value === "false") frontmatter[key] = value === "true";
543
543
  else frontmatter[key] = value;
544
544
  }
545
- return chunkVYRKO3XU_cjs.workflowFromFrontmatter(id, frontmatter, body);
545
+ return chunk3XR3IEGU_cjs.workflowFromFrontmatter(id, frontmatter, body);
546
546
  }
547
547
  function useWorkflowPreview(workflow, { answer = "{prompt}", delayMs = 400, resolveWorkflow, compose } = {}) {
548
- const steps = chunkVYRKO3XU_cjs.workflowSteps(workflow);
549
- const [inputs, setInputs] = react.useState(() => chunkVYRKO3XU_cjs.initialRunInputs(workflow));
548
+ const steps = chunk3XR3IEGU_cjs.workflowSteps(workflow);
549
+ const [inputs, setInputs] = react.useState(() => chunk3XR3IEGU_cjs.initialRunInputs(workflow));
550
550
  const [states, setStates] = react.useState({});
551
551
  const set = (id, state) => setStates((s) => ({ ...s, [id]: state }));
552
552
  const timers = react.useRef(/* @__PURE__ */ new Map());
@@ -567,19 +567,24 @@ function useWorkflowPreview(workflow, { answer = "{prompt}", delayMs = 400, reso
567
567
  }, []);
568
568
  react.useEffect(() => {
569
569
  if (Object.values(states).some((s) => s.status === "running")) return;
570
- const next = steps.find((s) => s.kind === "agent" && chunkVYRKO3XU_cjs.stepPhase(steps, states, s.id) === "ready");
571
- if (!next || next.kind !== "agent") return;
572
- const prompt = chunkVYRKO3XU_cjs.composeStepPrompt(workflow, next, inputs, { resolveWorkflow, compose });
570
+ const next = steps.find(
571
+ (s) => (s.kind === "agent" || s.kind === "action") && chunk3XR3IEGU_cjs.stepPhase(steps, states, s.id) === "ready"
572
+ );
573
+ if (!next || next.kind !== "agent" && next.kind !== "action") return;
574
+ const prompt = next.kind === "agent" ? chunk3XR3IEGU_cjs.composeStepPrompt(workflow, next, inputs, { resolveWorkflow, compose }) : "";
573
575
  set(next.id, { status: "running", startedAt: (/* @__PURE__ */ new Date()).toISOString() });
574
576
  timers.current.set(
575
577
  next.id,
576
578
  setTimeout(() => {
577
579
  timers.current.delete(next.id);
578
- set(next.id, { status: "done", text: answer.replace("{prompt}", prompt) });
580
+ set(
581
+ next.id,
582
+ next.kind === "agent" ? { status: "done", text: answer.replace("{prompt}", prompt) } : { status: "done" }
583
+ );
579
584
  }, delayMs)
580
585
  );
581
586
  }, [states, steps, workflow]);
582
- return chunkVYRKO3XU_cjs.useWorkflowView({
587
+ return chunk3XR3IEGU_cjs.useWorkflowView({
583
588
  steps,
584
589
  states,
585
590
  inputs,
@@ -4992,7 +4997,7 @@ function workflowTaskFields(workflow, inputs, name, context) {
4992
4997
  }
4993
4998
  const typed = name?.trim();
4994
4999
  if (workflow.options?.agent === false) {
4995
- const message = chunkVYRKO3XU_cjs.composeWorkflowPrompt(workflow, inputs, context);
5000
+ const message = chunk3XR3IEGU_cjs.composeWorkflowPrompt(workflow, inputs, context);
4996
5001
  return { name: typed || message, prompt: "", skill_ref: null, skill_inputs: null };
4997
5002
  }
4998
5003
  const derived = typed || deriveWorkflowName(workflow, inputs);
@@ -5006,7 +5011,7 @@ function workflowTaskFields(workflow, inputs, name, context) {
5006
5011
  }
5007
5012
  return {
5008
5013
  name: derived,
5009
- prompt: chunkVYRKO3XU_cjs.composeWorkflowPrompt(workflow, inputs, context),
5014
+ prompt: chunk3XR3IEGU_cjs.composeWorkflowPrompt(workflow, inputs, context),
5010
5015
  skill_ref: null,
5011
5016
  // The files a run is bound to travel in the saved inputs, whatever the template: the server binds
5012
5017
  // the run to the ids listed under any input's `documents`.
@@ -6214,6 +6219,11 @@ var ICONS = {
6214
6219
  step_skipped: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RotateCcw, { className: "size-3.5", "aria-hidden": true }),
6215
6220
  step_failed: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "size-3.5", "aria-hidden": true }),
6216
6221
  step_signal: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Flag, { className: "size-3.5", "aria-hidden": true }),
6222
+ step_waiting: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Hourglass, { className: "size-3.5", "aria-hidden": true }),
6223
+ step_progress: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PenLine, { className: "size-3.5", "aria-hidden": true }),
6224
+ step_sent_back: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CornerUpLeft, { className: "size-3.5", "aria-hidden": true }),
6225
+ step_ready: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.BellRing, { className: "size-3.5", "aria-hidden": true }),
6226
+ step_reminded: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.BellRing, { className: "size-3.5", "aria-hidden": true }),
6217
6227
  linked_run: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowUpRight, { className: "size-3.5", "aria-hidden": true })
6218
6228
  };
6219
6229
  var asString = (v) => typeof v === "string" && v.trim() ? v : null;
@@ -6259,6 +6269,16 @@ function TaskActivityTimeline({
6259
6269
  return { headline: "Step done" };
6260
6270
  case "step_skipped":
6261
6271
  return { headline: "Step skipped" };
6272
+ case "step_waiting":
6273
+ return { headline: "Waiting on people" };
6274
+ case "step_progress":
6275
+ return { headline: detail.signed ? "Signed" : "Step moved on" };
6276
+ case "step_sent_back":
6277
+ return { headline: "Sent the work back" };
6278
+ case "step_ready":
6279
+ return { headline: "Told whose turn it is" };
6280
+ case "step_reminded":
6281
+ return { headline: "Sent a reminder" };
6262
6282
  case "step_signal":
6263
6283
  return { headline: `Signalled \u201C${asString(detail.signal) ?? "a signal"}\u201D` };
6264
6284
  case "linked_run":
@@ -6469,7 +6489,13 @@ function ThreadActivity({ item, children }) {
6469
6489
  }
6470
6490
  ) });
6471
6491
  }
6472
- var STEP_KINDS = /* @__PURE__ */ new Set(["step_started", "step_done", "step_skipped", "step_failed"]);
6492
+ var STEP_KINDS = /* @__PURE__ */ new Set([
6493
+ "step_started",
6494
+ "step_waiting",
6495
+ "step_done",
6496
+ "step_skipped",
6497
+ "step_failed"
6498
+ ]);
6473
6499
  function groupThreadActivity(steps, items) {
6474
6500
  const out = { before: [], byStep: {}, after: [] };
6475
6501
  const states = {};
@@ -6478,12 +6504,12 @@ function groupThreadActivity(steps, items) {
6478
6504
  if (item.kind && STEP_KINDS.has(item.kind) && item.step) {
6479
6505
  current = item.step;
6480
6506
  states[item.step] = {
6481
- status: item.kind === "step_started" ? "running" : item.kind === "step_done" ? "done" : item.kind === "step_skipped" ? "skipped" : "failed"
6507
+ status: item.kind === "step_started" ? "running" : item.kind === "step_waiting" ? "waiting" : item.kind === "step_done" ? "done" : item.kind === "step_skipped" ? "skipped" : "failed"
6482
6508
  };
6483
6509
  continue;
6484
6510
  }
6485
6511
  if (current === void 0) out.before.push(item);
6486
- else if (chunkVYRKO3XU_cjs.isRunFinished(steps, states)) out.after.push(item);
6512
+ else if (chunk3XR3IEGU_cjs.isRunFinished(steps, states)) out.after.push(item);
6487
6513
  else {
6488
6514
  const status = states[current]?.status;
6489
6515
  const at = status === "done" || status === "skipped" ? steps.find((s) => !["done", "skipped"].includes(states[s.id]?.status ?? ""))?.id ?? current : current;
@@ -6498,7 +6524,9 @@ var DEFAULT_WORKFLOW_THREAD_STRIP_LABELS = {
6498
6524
  skip: "Skip this step",
6499
6525
  startedBy: "Started by {step} in {thread}",
6500
6526
  signalled: "This step signalled \u201C{signal}\u201D",
6501
- linkedRun: "Started on \u201C{signal}\u201D: open its thread"
6527
+ linkedRun: "Started on \u201C{signal}\u201D: open its thread",
6528
+ waitingFor: "Waiting for {name}",
6529
+ sentBack: "Sent back to be done again"
6502
6530
  };
6503
6531
  function WorkflowThreadStartedBy({
6504
6532
  origin,
@@ -6556,6 +6584,7 @@ function SignalPill({ signal, l }) {
6556
6584
  function Mark({ phase, icon }) {
6557
6585
  if (phase === "done") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "size-3.5" });
6558
6586
  if (phase === "running") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "size-3.5 animate-spin" });
6587
+ if (phase === "waiting") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Hourglass, { className: "size-3.5" });
6559
6588
  if (phase === "failed") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "size-3.5" });
6560
6589
  if (phase === "skipped") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MinusCircle, { className: "size-3.5" });
6561
6590
  return icon ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex size-3.5 items-center justify-center [&_svg]:size-3.5", children: icon }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "size-1.5 rounded-full bg-current" });
@@ -6595,6 +6624,7 @@ function WorkflowThreadStrip({
6595
6624
  renderStepAction,
6596
6625
  signals = [],
6597
6626
  startedBy,
6627
+ assigneeOf,
6598
6628
  labels,
6599
6629
  className
6600
6630
  }) {
@@ -6619,14 +6649,16 @@ function WorkflowThreadStrip({
6619
6649
  chevron
6620
6650
  ] }, item.id)),
6621
6651
  steps.map((step, i) => {
6622
- const phase = chunkVYRKO3XU_cjs.stepPhase(steps, states, step.id);
6652
+ const phase = chunk3XR3IEGU_cjs.stepPhase(steps, states, step.id);
6623
6653
  const happened = grouped.byStep[step.id] ?? [];
6654
+ const assignee = phase === "ready" || phase === "waiting" ? assigneeOf?.(step) : void 0;
6655
+ const sentBack = states[step.id]?.sentBack;
6624
6656
  const chip = /* @__PURE__ */ jsxRuntime.jsxs(
6625
6657
  "span",
6626
6658
  {
6627
6659
  className: ui.cn(
6628
6660
  "flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded-full border px-2 py-0.5 text-xs font-medium",
6629
- 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"
6661
+ 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"
6630
6662
  ),
6631
6663
  "data-phase": phase,
6632
6664
  "data-testid": `workflow-thread-step-${step.id}`,
@@ -6639,6 +6671,26 @@ function WorkflowThreadStrip({
6639
6671
  }
6640
6672
  ),
6641
6673
  step.title,
6674
+ sentBack && /* @__PURE__ */ jsxRuntime.jsx(
6675
+ lucideReact.CornerUpLeft,
6676
+ {
6677
+ className: "size-3 text-amber-600 dark:text-amber-400",
6678
+ "aria-label": l.sentBack,
6679
+ "data-testid": `workflow-thread-step-${step.id}-sent-back`
6680
+ }
6681
+ ),
6682
+ assignee && /* @__PURE__ */ jsxRuntime.jsxs(
6683
+ "span",
6684
+ {
6685
+ className: "flex max-w-32 items-center gap-0.5 truncate font-normal opacity-80",
6686
+ title: l.waitingFor.replace("{name}", assignee),
6687
+ "data-testid": `workflow-thread-step-${step.id}-assignee`,
6688
+ children: [
6689
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.UserRound, { className: "size-3 shrink-0" }),
6690
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: assignee })
6691
+ ]
6692
+ }
6693
+ ),
6642
6694
  happened.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-full bg-muted px-1.5 text-[10px] text-muted-foreground", children: happened.length })
6643
6695
  ]
6644
6696
  }
@@ -6653,10 +6705,19 @@ function WorkflowThreadStrip({
6653
6705
  className: "w-72 space-y-1 p-2",
6654
6706
  "data-testid": `workflow-thread-step-${step.id}-menu`,
6655
6707
  children: [
6708
+ assignee && /* @__PURE__ */ jsxRuntime.jsx(
6709
+ "p",
6710
+ {
6711
+ className: "px-1 text-xs",
6712
+ "data-testid": `workflow-thread-step-${step.id}-waiting-for`,
6713
+ children: l.waitingFor.replace("{name}", assignee)
6714
+ }
6715
+ ),
6716
+ sentBack && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-1 text-xs text-amber-700 dark:text-amber-300", children: l.sentBack }),
6656
6717
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-1 text-xs font-medium text-muted-foreground", children: happened.length ? l.happened.replace("{count}", String(happened.length)) : l.nothingYet }),
6657
6718
  happened.map((item) => /* @__PURE__ */ jsxRuntime.jsx(Entry, { item }, item.id)),
6658
6719
  renderStepAction?.(step, phase),
6659
- onSkip && ["ready", "blocked", "failed"].includes(phase) && /* @__PURE__ */ jsxRuntime.jsx(
6720
+ onSkip && ["ready", "blocked", "failed", "waiting"].includes(phase) && /* @__PURE__ */ jsxRuntime.jsx(
6660
6721
  "button",
6661
6722
  {
6662
6723
  type: "button",
@@ -6719,7 +6780,10 @@ var STEP_LABELS = {
6719
6780
  step_started: "Step started",
6720
6781
  step_done: "Step done",
6721
6782
  step_skipped: "Step skipped",
6722
- step_failed: "Step failed"
6783
+ step_failed: "Step failed",
6784
+ step_waiting: "Waiting",
6785
+ step_progress: "Signed",
6786
+ step_sent_back: "Sent back"
6723
6787
  };
6724
6788
  function compactThreadActivity(events) {
6725
6789
  const result = [];
@@ -7140,7 +7204,7 @@ function defaultTaskComposerValues(workflows, initial) {
7140
7204
  return {
7141
7205
  assignee: "me",
7142
7206
  workflowId,
7143
- inputs: workflow ? { ...chunkVYRKO3XU_cjs.defaultInputs(workflow), ...initial?.inputs } : { ...initial?.inputs },
7207
+ inputs: workflow ? { ...chunk3XR3IEGU_cjs.defaultInputs(workflow), ...initial?.inputs } : { ...initial?.inputs },
7144
7208
  when: "manual",
7145
7209
  runAt: "",
7146
7210
  rrule: "",
@@ -7249,7 +7313,7 @@ function WorkflowComposer({
7249
7313
  return !docs?.length;
7250
7314
  })
7251
7315
  );
7252
- const whatMissing = !workflow || Object.keys(chunkVYRKO3XU_cjs.validateInputs({ ...workflow, inputs: fields }, values.inputs)).length > 0;
7316
+ const whatMissing = !workflow || Object.keys(chunk3XR3IEGU_cjs.validateInputs({ ...workflow, inputs: fields }, values.inputs)).length > 0;
7253
7317
  const runAtPast = values.when === "once" && values.runAt !== "" && values.runAt !== initialValues?.runAt && new Date(values.runAt).getTime() <= Date.now();
7254
7318
  const whenMissing = missingWhen(values, runAtPast);
7255
7319
  const scheduled = values.when !== "now" && values.when !== "manual";
@@ -7261,7 +7325,7 @@ function WorkflowComposer({
7261
7325
  setValues({
7262
7326
  ...values,
7263
7327
  workflowId: next,
7264
- inputs: def ? chunkVYRKO3XU_cjs.defaultInputs(def) : {},
7328
+ inputs: def ? chunk3XR3IEGU_cjs.defaultInputs(def) : {},
7265
7329
  ...def?.documentAction ? { access: "standing" } : {}
7266
7330
  });
7267
7331
  };
@@ -7399,7 +7463,7 @@ function WorkflowComposer({
7399
7463
  }
7400
7464
  ),
7401
7465
  !noFiles && workflow && fields.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
7402
- chunkVYRKO3XU_cjs.SchemaForm,
7466
+ chunk3XR3IEGU_cjs.SchemaForm,
7403
7467
  {
7404
7468
  fields,
7405
7469
  values: values.inputs,
@@ -7838,7 +7902,7 @@ function WorkTaskComposer({
7838
7902
  }, [open]);
7839
7903
  const workflow = workflows.find((w) => w.id === values.workflowId);
7840
7904
  const fields = workflow?.inputs ?? [];
7841
- const errors = workflow ? chunkVYRKO3XU_cjs.validateInputs({ ...workflow, inputs: fields }, values.inputs) : {};
7905
+ const errors = workflow ? chunk3XR3IEGU_cjs.validateInputs({ ...workflow, inputs: fields }, values.inputs) : {};
7842
7906
  const hasWork = configOpen && Boolean(workflow) && Object.keys(errors).length === 0;
7843
7907
  const unattended = hasWork && values.when !== "now" && values.when !== "manual";
7844
7908
  const canConfigure = !isEdit || seed.assignee === "agent";
@@ -7846,7 +7910,7 @@ function WorkTaskComposer({
7846
7910
  const set = (key, value) => setValues({ ...values, [key]: value });
7847
7911
  const pickWorkflow = (id2) => {
7848
7912
  const next = workflows.find((w) => w.id === id2);
7849
- setValues({ ...values, workflowId: id2, inputs: next ? chunkVYRKO3XU_cjs.defaultInputs(next) : {} });
7913
+ setValues({ ...values, workflowId: id2, inputs: next ? chunk3XR3IEGU_cjs.defaultInputs(next) : {} });
7850
7914
  };
7851
7915
  const openConfigure = () => {
7852
7916
  setConfigOpen(true);
@@ -8032,7 +8096,7 @@ function WorkTaskComposer({
8032
8096
  )
8033
8097
  ] }),
8034
8098
  workflow && fields.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
8035
- chunkVYRKO3XU_cjs.SchemaForm,
8099
+ chunk3XR3IEGU_cjs.SchemaForm,
8036
8100
  {
8037
8101
  fields,
8038
8102
  values: values.inputs,
@@ -10215,5 +10279,5 @@ exports.workflowToComposerValues = workflowToComposerValues;
10215
10279
  exports.workflowToSkillMarkdown = workflowToSkillMarkdown;
10216
10280
  exports.workflowTriggerType = workflowTriggerType;
10217
10281
  exports.workflowWhen = workflowWhen;
10218
- //# sourceMappingURL=chunk-7FKARMA3.cjs.map
10219
- //# sourceMappingURL=chunk-7FKARMA3.cjs.map
10282
+ //# sourceMappingURL=chunk-JFUN4D7D.cjs.map
10283
+ //# sourceMappingURL=chunk-JFUN4D7D.cjs.map