@arbidocs/blocks 0.4.91 → 0.4.93

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 (34) hide show
  1. package/dist/agents/index.cjs +280 -280
  2. package/dist/agents/index.js +4 -4
  3. package/dist/{chunk-ZPERNIMP.cjs → chunk-2WLXQGWC.cjs} +8 -3
  4. package/dist/chunk-2WLXQGWC.cjs.map +1 -0
  5. package/dist/{chunk-3US5OIDQ.cjs → chunk-3WW32OUU.cjs} +3 -3
  6. package/dist/{chunk-3US5OIDQ.cjs.map → chunk-3WW32OUU.cjs.map} +1 -1
  7. package/dist/{chunk-EHF63UYP.cjs → chunk-AMC5PMJ3.cjs} +5 -5
  8. package/dist/{chunk-EHF63UYP.cjs.map → chunk-AMC5PMJ3.cjs.map} +1 -1
  9. package/dist/{chunk-IC2VHFWR.js → chunk-JJA6GQKH.js} +8 -3
  10. package/dist/chunk-JJA6GQKH.js.map +1 -0
  11. package/dist/{chunk-DDYXFALG.cjs → chunk-MROSCSPW.cjs} +43 -43
  12. package/dist/{chunk-DDYXFALG.cjs.map → chunk-MROSCSPW.cjs.map} +1 -1
  13. package/dist/{chunk-PGDL26TQ.js → chunk-SF4BDUZS.js} +3 -3
  14. package/dist/{chunk-PGDL26TQ.js.map → chunk-SF4BDUZS.js.map} +1 -1
  15. package/dist/{chunk-5NQIBJPP.js → chunk-SJVUKXS6.js} +5 -5
  16. package/dist/{chunk-5NQIBJPP.js.map → chunk-SJVUKXS6.js.map} +1 -1
  17. package/dist/{chunk-5RQOVALO.js → chunk-UO74FLRK.js} +3 -3
  18. package/dist/{chunk-5RQOVALO.js.map → chunk-UO74FLRK.js.map} +1 -1
  19. package/dist/connect/index.cjs +27 -29
  20. package/dist/connect/index.cjs.map +1 -1
  21. package/dist/connect/index.js +7 -9
  22. package/dist/connect/index.js.map +1 -1
  23. package/dist/facts/index.cjs +2 -2
  24. package/dist/facts/index.js +1 -1
  25. package/dist/files/ViewToggle.d.ts +6 -1
  26. package/dist/files/index.cjs +4 -4
  27. package/dist/files/index.js +1 -1
  28. package/dist/index.cjs +315 -315
  29. package/dist/index.js +7 -7
  30. package/dist/workflow-canvas/index.cjs +47 -47
  31. package/dist/workflow-canvas/index.js +4 -4
  32. package/package.json +4 -4
  33. package/dist/chunk-IC2VHFWR.js.map +0 -1
  34. package/dist/chunk-ZPERNIMP.cjs.map +0 -1
@@ -53,6 +53,10 @@ function ViewToggleItem({
53
53
  )
54
54
  );
55
55
  }
56
+ var CONTAINER_LABEL_CLASS = {
57
+ "32rem": "hidden @lg:inline text-sm",
58
+ "40rem": "hidden @[40rem]:inline text-sm"
59
+ };
56
60
  function ViewToggle({
57
61
  options,
58
62
  value,
@@ -62,9 +66,10 @@ function ViewToggle({
62
66
  hideTooltips = false,
63
67
  size = "default",
64
68
  containerCollapse = false,
69
+ labelsFrom = "32rem",
65
70
  className
66
71
  }) {
67
- const labelClassName = containerCollapse ? "hidden @lg:inline text-sm" : "hidden md:inline text-sm";
72
+ const labelClassName = containerCollapse ? CONTAINER_LABEL_CLASS[labelsFrom] : "hidden md:inline text-sm";
68
73
  return /* @__PURE__ */ jsx(
69
74
  ToggleGroup,
70
75
  {
@@ -154,5 +159,5 @@ function DocumentViewToggle({
154
159
  }
155
160
 
156
161
  export { DEFAULT_DOCUMENT_VIEW_TOGGLE_LABELS, DocumentViewToggle, ViewToggle };
157
- //# sourceMappingURL=chunk-IC2VHFWR.js.map
158
- //# sourceMappingURL=chunk-IC2VHFWR.js.map
162
+ //# sourceMappingURL=chunk-JJA6GQKH.js.map
163
+ //# sourceMappingURL=chunk-JJA6GQKH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/files/ViewToggle.tsx"],"names":[],"mappings":"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","file":"chunk-JJA6GQKH.js","sourcesContent":["import { useRef, useState, type ReactNode } from 'react'\nimport { BookOpen, FileImage, Search, Table2 } from 'lucide-react'\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n ToggleGroup,\n ToggleGroupItem,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n cn,\n} from '@arbidocs/react/ui'\nimport { testIdOr } from '../chat/test-id'\n\n/** Names of the four document view modes. Pass a partial `labels` to translate or reword. */\nexport interface DocumentViewToggleLabels {\n gallery: string\n table: string\n review: string\n smartSearch: string\n}\n\nexport const DEFAULT_DOCUMENT_VIEW_TOGGLE_LABELS: DocumentViewToggleLabels = {\n gallery: 'Gallery',\n table: 'Table',\n review: 'Review',\n smartSearch: 'Smart Search',\n}\n\nexport interface ViewToggleOption {\n value: string\n icon: ReactNode\n label: string\n /** Overrides this item's test id (default `${testIdPrefix}-${value}-button`). */\n testId?: string\n}\n\nexport interface ViewToggleProps {\n options: ViewToggleOption[]\n value: string\n onChange: (value: string) => void\n /** Item test ids are `${testIdPrefix}-${value}-button` unless an option sets its own `testId`. */\n testIdPrefix?: string\n showLabels?: boolean\n hideTooltips?: boolean\n size?: 'default' | 'sm'\n /**\n * Collapse labels to icons by the width of the nearest `@container` ancestor instead of the\n * viewport. The consumer must mark that region `@container`.\n */\n containerCollapse?: boolean\n /**\n * With `containerCollapse`: the container width from which labels show (default `32rem`). More\n * options need a wider container before their labels fit.\n */\n labelsFrom?: '32rem' | '40rem'\n className?: string\n}\n\ninterface ViewToggleItemProps {\n option: ViewToggleOption\n size: 'default' | 'sm'\n testIdPrefix: string\n showLabel: boolean\n labelClassName: string\n hideTooltip: boolean\n}\n\nfunction ViewToggleItem({\n option,\n size,\n testIdPrefix,\n showLabel,\n labelClassName,\n hideTooltip,\n}: ViewToggleItemProps) {\n const labelRef = useRef<HTMLSpanElement>(null)\n const [isTipNeeded, setIsTipNeeded] = useState(true)\n // A control that shows its own text needs no tooltip repeating it; when the container is too\n // narrow and the label collapses to the icon, the tooltip is the label.\n const isLabelShown = () => !!labelRef.current && labelRef.current.offsetParent !== null\n const content = (\n <span\n className=\"flex items-center gap-1.5\"\n onPointerEnter={() => setIsTipNeeded(!isLabelShown())}\n onFocus={() => setIsTipNeeded(!isLabelShown())}\n >\n {option.icon}\n {showLabel && (\n <span ref={labelRef} className={labelClassName}>\n {option.label}\n </span>\n )}\n </span>\n )\n return (\n // The tooltip lives INSIDE the item: wrapping the ToggleGroupItem would make Radix\n // Tooltip's data-state collide with the toggle's on/off state.\n <ToggleGroupItem\n value={option.value}\n aria-label={option.label}\n size={size}\n className=\"rounded-[5px] border-0 bg-transparent text-muted-foreground pointer-coarse:min-h-11 data-[state=off]:hover:bg-background/60 data-[state=off]:hover:text-foreground data-[state=on]:bg-accent data-[state=on]:text-accent-foreground data-[state=on]:hover:bg-accent data-[state=on]:hover:text-accent-foreground\"\n data-testid={option.testId ?? `${testIdPrefix}-${option.value}-button`}\n >\n {hideTooltip ? (\n content\n ) : (\n <Tooltip>\n <TooltipTrigger asChild>{content}</TooltipTrigger>\n {isTipNeeded && <TooltipContent>{option.label}</TooltipContent>}\n </Tooltip>\n )}\n </ToggleGroupItem>\n )\n}\n\n/** Labels shown from a container width on (spelled out so Tailwind sees each class). */\nconst CONTAINER_LABEL_CLASS = {\n '32rem': 'hidden @lg:inline text-sm',\n '40rem': 'hidden @[40rem]:inline text-sm',\n} as const\n\n/** Segmented view switch: selected = accent tint, tone-only hover, 44px targets on touch. */\nexport function ViewToggle({\n options,\n value,\n onChange,\n testIdPrefix = 'view',\n showLabels = false,\n hideTooltips = false,\n size = 'default',\n containerCollapse = false,\n labelsFrom = '32rem',\n className,\n}: ViewToggleProps) {\n const labelClassName = containerCollapse\n ? CONTAINER_LABEL_CLASS[labelsFrom]\n : 'hidden md:inline text-sm'\n return (\n <ToggleGroup\n variant=\"default\"\n type=\"single\"\n value={value}\n onValueChange={(next) => next && onChange(next)}\n className={cn('gap-0.5 rounded-md bg-muted p-0.5', className)}\n >\n {options.map((option) => (\n <ViewToggleItem\n key={option.value}\n option={option}\n size={size}\n testIdPrefix={testIdPrefix}\n showLabel={showLabels}\n labelClassName={labelClassName}\n hideTooltip={hideTooltips}\n />\n ))}\n </ToggleGroup>\n )\n}\n\nexport type DocumentViewMode = 'grid' | 'explorer' | 'navigator' | 'search'\n\nfunction documentViewOptions(l: DocumentViewToggleLabels): ViewToggleOption[] {\n return [\n // \"Gallery\" (page-preview grid) reads more conventionally than \"Tiles\".\n { value: 'explorer', icon: <FileImage className=\"size-3.5\" />, label: l.gallery },\n { value: 'grid', icon: <Table2 className=\"size-3.5\" />, label: l.table },\n { value: 'navigator', icon: <BookOpen className=\"size-3.5\" />, label: l.review },\n { value: 'search', icon: <Search className=\"size-3.5\" />, label: l.smartSearch },\n ]\n}\n\nexport interface DocumentViewToggleProps {\n viewMode: DocumentViewMode\n onChange: (mode: DocumentViewMode) => void\n /** Collapse the four modes into one select trigger (narrow viewports). */\n compact?: boolean\n labels?: Partial<DocumentViewToggleLabels>\n /** Overrides the segmented items' prefix (default `documents-layout`: `<prefix>-<mode>-button`). */\n testIdPrefix?: string\n /** Per-mode item ids, for hosts that keep their own (e.g. `documents-view-gallery`). */\n testIds?: Partial<Record<DocumentViewMode, string>>\n /** Overrides the compact select test ids (defaults keep the current ids). */\n compactTestIds?: Partial<{ select: string; option: (mode: DocumentViewMode) => string }>\n}\n\n/** The Documents page's Gallery / Table / Review / Smart Search switch. */\nexport function DocumentViewToggle({\n viewMode,\n onChange,\n compact,\n labels,\n testIdPrefix,\n testIds,\n compactTestIds,\n}: DocumentViewToggleProps) {\n const options = documentViewOptions({ ...DEFAULT_DOCUMENT_VIEW_TOGGLE_LABELS, ...labels }).map(\n (o) => ({ ...o, testId: testIds?.[o.value as DocumentViewMode] })\n )\n if (compact) {\n const current = options.find((o) => o.value === viewMode) ?? options[0]\n return (\n <Select value={viewMode} onValueChange={(v) => onChange(v as DocumentViewMode)}>\n <SelectTrigger\n className=\"h-7 w-10 justify-center gap-0 border-input p-0 pointer-coarse:h-11! pointer-coarse:w-11! shrink-0 [&>svg]:hidden\"\n aria-label={current.label}\n data-testid={testIdOr(compactTestIds?.select, {\n testId: 'documents-layout-compact-select',\n })}\n >\n <SelectValue>{current.icon}</SelectValue>\n </SelectTrigger>\n <SelectContent align=\"center\">\n {options.map((option) => (\n <SelectItem\n key={option.value}\n value={option.value}\n data-testid={testIdOr(compactTestIds?.option?.(option.value as DocumentViewMode), {\n testId: `documents-layout-compact-${option.value}-option`,\n })}\n >\n <span className=\"flex items-center gap-2\">\n {option.icon}\n {option.label}\n </span>\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n )\n }\n return (\n <ViewToggle\n options={options}\n value={viewMode}\n onChange={(v) => onChange(v as DocumentViewMode)}\n testIdPrefix={testIdPrefix ?? 'documents-layout'}\n showLabels\n containerCollapse\n size=\"sm\"\n />\n )\n}\n"]}
@@ -3,15 +3,15 @@
3
3
 
4
4
  var chunkS5HZBXZA_cjs = require('./chunk-S5HZBXZA.cjs');
5
5
  var chunkZW6FPIFC_cjs = require('./chunk-ZW6FPIFC.cjs');
6
- var chunk3US5OIDQ_cjs = require('./chunk-3US5OIDQ.cjs');
6
+ var chunk3WW32OUU_cjs = require('./chunk-3WW32OUU.cjs');
7
7
  var chunkN26CXGXC_cjs = require('./chunk-N26CXGXC.cjs');
8
8
  var chunk7RGLTF76_cjs = require('./chunk-7RGLTF76.cjs');
9
+ var chunkZ5VUZ6YD_cjs = require('./chunk-Z5VUZ6YD.cjs');
10
+ var chunk7D737FLE_cjs = require('./chunk-7D737FLE.cjs');
9
11
  var chunk3AFWGEDJ_cjs = require('./chunk-3AFWGEDJ.cjs');
10
12
  var chunkDVUZTGVL_cjs = require('./chunk-DVUZTGVL.cjs');
11
13
  var chunkV4ISCZJ7_cjs = require('./chunk-V4ISCZJ7.cjs');
12
14
  var chunk2EI7NCUA_cjs = require('./chunk-2EI7NCUA.cjs');
13
- var chunkZ5VUZ6YD_cjs = require('./chunk-Z5VUZ6YD.cjs');
14
- var chunk7D737FLE_cjs = require('./chunk-7D737FLE.cjs');
15
15
  var chunkOB5F4577_cjs = require('./chunk-OB5F4577.cjs');
16
16
  var chunkB4SRYJLM_cjs = require('./chunk-B4SRYJLM.cjs');
17
17
  var chunk7UTB4PHM_cjs = require('./chunk-7UTB4PHM.cjs');
@@ -146,7 +146,7 @@ function WorkflowConfigDialog({
146
146
  }) {
147
147
  const l = { ...DEFAULT_WORKFLOW_CONFIG_DIALOG_LABELS, ...labels };
148
148
  const initialKey = JSON.stringify(initialInputs ?? {});
149
- const seedKey = JSON.stringify({ ...chunk3US5OIDQ_cjs.defaultInputs(workflow), ...JSON.parse(initialKey) });
149
+ const seedKey = JSON.stringify({ ...chunk3WW32OUU_cjs.defaultInputs(workflow), ...JSON.parse(initialKey) });
150
150
  const seed = react.useMemo(() => JSON.parse(seedKey), [seedKey]);
151
151
  const [inputs, setInputs] = useControllableState(inputsProp, seed, onInputsChange);
152
152
  const [agentId, setAgentId] = useControllableState(
@@ -158,7 +158,7 @@ function WorkflowConfigDialog({
158
158
  if (open && inputsProp === void 0) setInputs(seed);
159
159
  }, [open, seed]);
160
160
  const setField = (name, value) => setInputs({ ...inputs, [name]: value });
161
- const errors = chunk3US5OIDQ_cjs.validateInputs(workflow, inputs);
161
+ const errors = chunk3WW32OUU_cjs.validateInputs(workflow, inputs);
162
162
  const valid = Object.keys(errors).length === 0;
163
163
  const visibleErrors = Object.fromEntries(
164
164
  Object.entries(errors).filter(([, e]) => e !== "required")
@@ -171,7 +171,7 @@ function WorkflowConfigDialog({
171
171
  const blockedByScope = matchedCount !== null && matchedCount === 0 && Boolean(workflow.requiresFiles);
172
172
  const showAgent = workflow.run.kind === "prompt" && workflow.options?.agent !== false && agents !== void 0 && agents.length > 0;
173
173
  const launch = (values) => {
174
- Promise.resolve(onLaunch(chunk3US5OIDQ_cjs.buildLaunch(workflow, values, agentId))).catch(() => {
174
+ Promise.resolve(onLaunch(chunk3WW32OUU_cjs.buildLaunch(workflow, values, agentId))).catch(() => {
175
175
  });
176
176
  };
177
177
  const submit = () => {
@@ -249,7 +249,7 @@ function WorkflowConfigDialog({
249
249
  }
250
250
  ) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
251
251
  /* @__PURE__ */ jsxRuntime.jsx(
252
- chunk3US5OIDQ_cjs.SchemaForm,
252
+ chunk3WW32OUU_cjs.SchemaForm,
253
253
  {
254
254
  fields,
255
255
  values: inputs,
@@ -327,7 +327,7 @@ function resolveScopeInputs(workflow, inputs, scopeSource) {
327
327
  for (const field of workflow.inputs) {
328
328
  if (field.type !== "scope") continue;
329
329
  const raw = inputs[field.name];
330
- const scope = chunk3US5OIDQ_cjs.isWorkflowScope(raw) ? raw : { folders: [], labels: [] };
330
+ const scope = chunk3WW32OUU_cjs.isWorkflowScope(raw) ? raw : { folders: [], labels: [] };
331
331
  next[field.name] = { ...scope, documents: scopeSource.resolveDocuments(scope) };
332
332
  }
333
333
  return next;
@@ -369,9 +369,9 @@ function WorkflowLauncher({
369
369
  };
370
370
  const select = (workflow) => {
371
371
  if (workflow.run.kind === "operation" && workflow.inputs.length === 0) {
372
- const inputs = chunk3US5OIDQ_cjs.defaultInputs(workflow);
373
- if (Object.keys(chunk3US5OIDQ_cjs.validateInputs(workflow, inputs)).length === 0) {
374
- Promise.resolve(onLaunch(chunk3US5OIDQ_cjs.buildLaunch(workflow, inputs, void 0))).catch(() => {
372
+ const inputs = chunk3WW32OUU_cjs.defaultInputs(workflow);
373
+ if (Object.keys(chunk3WW32OUU_cjs.validateInputs(workflow, inputs)).length === 0) {
374
+ Promise.resolve(onLaunch(chunk3WW32OUU_cjs.buildLaunch(workflow, inputs, void 0))).catch(() => {
375
375
  });
376
376
  return;
377
377
  }
@@ -521,7 +521,7 @@ function workflowToSkillMarkdown(workflow) {
521
521
  if (workflow.landing !== "chat") lines.push(`landing: ${workflow.landing}`);
522
522
  if (workflow.requiresFiles) lines.push("requires_files: true");
523
523
  if (workflow.inputs.length > 0) {
524
- lines.push(`inputs: ${JSON.stringify(workflow.inputs.map(chunk3US5OIDQ_cjs.fieldToFrontmatter))}`);
524
+ lines.push(`inputs: ${JSON.stringify(workflow.inputs.map(chunk3WW32OUU_cjs.fieldToFrontmatter))}`);
525
525
  }
526
526
  lines.push("---", "", run.promptTemplate.trim(), "");
527
527
  return lines.join("\n");
@@ -543,11 +543,11 @@ function workflowFromSkillMarkdown(id, text2) {
543
543
  } else if (value === "true" || value === "false") frontmatter[key] = value === "true";
544
544
  else frontmatter[key] = value;
545
545
  }
546
- return chunk3US5OIDQ_cjs.workflowFromFrontmatter(id, frontmatter, body);
546
+ return chunk3WW32OUU_cjs.workflowFromFrontmatter(id, frontmatter, body);
547
547
  }
548
548
  function useWorkflowPreview(workflow, { answer = "{prompt}", delayMs = 400, resolveWorkflow, compose } = {}) {
549
- const steps = chunk3US5OIDQ_cjs.workflowSteps(workflow);
550
- const [inputs, setInputs] = react.useState(() => chunk3US5OIDQ_cjs.initialRunInputs(workflow));
549
+ const steps = chunk3WW32OUU_cjs.workflowSteps(workflow);
550
+ const [inputs, setInputs] = react.useState(() => chunk3WW32OUU_cjs.initialRunInputs(workflow));
551
551
  const [states, setStates] = react.useState({});
552
552
  const set = (id, state) => setStates((s) => ({ ...s, [id]: state }));
553
553
  const timers = react.useRef(/* @__PURE__ */ new Map());
@@ -569,10 +569,10 @@ function useWorkflowPreview(workflow, { answer = "{prompt}", delayMs = 400, reso
569
569
  react.useEffect(() => {
570
570
  if (Object.values(states).some((s) => s.status === "running")) return;
571
571
  const next = steps.find(
572
- (s) => (s.kind === "agent" || s.kind === "action") && chunk3US5OIDQ_cjs.stepPhase(steps, states, s.id) === "ready"
572
+ (s) => (s.kind === "agent" || s.kind === "action") && chunk3WW32OUU_cjs.stepPhase(steps, states, s.id) === "ready"
573
573
  );
574
574
  if (!next || next.kind !== "agent" && next.kind !== "action") return;
575
- const prompt = next.kind === "agent" ? chunk3US5OIDQ_cjs.composeStepPrompt(workflow, next, inputs, { resolveWorkflow, compose }) : "";
575
+ const prompt = next.kind === "agent" ? chunk3WW32OUU_cjs.composeStepPrompt(workflow, next, inputs, { resolveWorkflow, compose }) : "";
576
576
  set(next.id, { status: "running", startedAt: (/* @__PURE__ */ new Date()).toISOString() });
577
577
  timers.current.set(
578
578
  next.id,
@@ -585,7 +585,7 @@ function useWorkflowPreview(workflow, { answer = "{prompt}", delayMs = 400, reso
585
585
  }, delayMs)
586
586
  );
587
587
  }, [states, steps, workflow]);
588
- return chunk3US5OIDQ_cjs.useWorkflowView({
588
+ return chunk3WW32OUU_cjs.useWorkflowView({
589
589
  steps,
590
590
  states,
591
591
  inputs,
@@ -4998,7 +4998,7 @@ function workflowTaskFields(workflow, inputs, name, context) {
4998
4998
  }
4999
4999
  const typed = name?.trim();
5000
5000
  if (workflow.options?.agent === false) {
5001
- const message = chunk3US5OIDQ_cjs.composeWorkflowPrompt(workflow, inputs, context);
5001
+ const message = chunk3WW32OUU_cjs.composeWorkflowPrompt(workflow, inputs, context);
5002
5002
  return { name: typed || message, prompt: "", skill_ref: null, skill_inputs: null };
5003
5003
  }
5004
5004
  const derived = typed || deriveWorkflowName(workflow, inputs);
@@ -5012,7 +5012,7 @@ function workflowTaskFields(workflow, inputs, name, context) {
5012
5012
  }
5013
5013
  return {
5014
5014
  name: derived,
5015
- prompt: chunk3US5OIDQ_cjs.composeWorkflowPrompt(workflow, inputs, context),
5015
+ prompt: chunk3WW32OUU_cjs.composeWorkflowPrompt(workflow, inputs, context),
5016
5016
  skill_ref: null,
5017
5017
  // The files a run is bound to travel in the saved inputs, whatever the template: the server binds
5018
5018
  // the run to the ids listed under any input's `documents`.
@@ -6192,7 +6192,7 @@ function TaskActivityDialog({
6192
6192
  testId,
6193
6193
  ...timeline
6194
6194
  }) {
6195
- const l = { ...chunk3US5OIDQ_cjs.DEFAULT_TASK_ACTIVITY_LABELS, ...labels };
6195
+ const l = { ...chunk3WW32OUU_cjs.DEFAULT_TASK_ACTIVITY_LABELS, ...labels };
6196
6196
  const id = chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "task-activity" });
6197
6197
  const count = events?.length ?? 0;
6198
6198
  const scrollToEnd = react.useCallback(
@@ -6207,7 +6207,7 @@ function TaskActivityDialog({
6207
6207
  /* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { className: "truncate", children: taskName })
6208
6208
  ] }),
6209
6209
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-h-[55dvh] overflow-y-auto pr-1", "data-testid": `${id}-scroll`, children: [
6210
- isLoading && !events ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: l.loading }) : isError && !events ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-destructive", children: l.error }) : count === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: l.empty }) : /* @__PURE__ */ jsxRuntime.jsx(chunk3US5OIDQ_cjs.TaskActivityTimeline, { events: events ?? [], labels, testId: id, ...timeline }),
6210
+ isLoading && !events ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: l.loading }) : isError && !events ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-destructive", children: l.error }) : count === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: l.empty }) : /* @__PURE__ */ jsxRuntime.jsx(chunk3WW32OUU_cjs.TaskActivityTimeline, { events: events ?? [], labels, testId: id, ...timeline }),
6211
6211
  /* @__PURE__ */ jsxRuntime.jsx("div", { ref: scrollToEnd })
6212
6212
  ] })
6213
6213
  ] }) });
@@ -6334,7 +6334,7 @@ function groupThreadActivity(steps, items) {
6334
6334
  continue;
6335
6335
  }
6336
6336
  if (current === void 0) out.before.push(item);
6337
- else if (chunk3US5OIDQ_cjs.isRunFinished(steps, states)) out.after.push(item);
6337
+ else if (chunk3WW32OUU_cjs.isRunFinished(steps, states)) out.after.push(item);
6338
6338
  else {
6339
6339
  const status = states[current]?.status;
6340
6340
  const at = status === "done" || status === "skipped" ? steps.find((s) => !["done", "skipped"].includes(states[s.id]?.status ?? ""))?.id ?? current : current;
@@ -6452,13 +6452,13 @@ function WorkflowThreadStrip({
6452
6452
  const chevron = /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "size-3 shrink-0 text-muted-foreground" });
6453
6453
  const [selected, setSelected] = react.useState(null);
6454
6454
  const [open, setOpen] = react.useState(null);
6455
- const phaseOf = (id) => chunk3US5OIDQ_cjs.stepPhase(steps, states, id);
6455
+ const phaseOf = (id) => chunk3WW32OUU_cjs.stepPhase(steps, states, id);
6456
6456
  const iconOf = (step) => step.icon && renderIcon ? renderIcon(step.icon) : void 0;
6457
6457
  const waitingOf = (id) => {
6458
6458
  const step = steps.find((s) => s.id === id);
6459
6459
  const phase = phaseOf(id);
6460
- const documents = chunk3US5OIDQ_cjs.waitingDocuments(states[id]);
6461
- if (documents.length) return chunk3US5OIDQ_cjs.waitingForDocumentsText(documents.length);
6460
+ const documents = chunk3WW32OUU_cjs.waitingDocuments(states[id]);
6461
+ if (documents.length) return chunk3WW32OUU_cjs.waitingForDocumentsText(documents.length);
6462
6462
  const name = step && (phase === "ready" || phase === "waiting") ? assigneeOf?.(step) : void 0;
6463
6463
  return name ? l.waitingFor.replace("{name}", name) : void 0;
6464
6464
  };
@@ -6473,14 +6473,14 @@ function WorkflowThreadStrip({
6473
6473
  "button",
6474
6474
  {
6475
6475
  type: "button",
6476
- className: ui.cn(chunk3US5OIDQ_cjs.STEP_PILL, "py-0.5", chunk3US5OIDQ_cjs.stepPillTone(phase, isCurrent)),
6476
+ className: ui.cn(chunk3WW32OUU_cjs.STEP_PILL, "py-0.5", chunk3WW32OUU_cjs.stepPillTone(phase, isCurrent)),
6477
6477
  "aria-current": isCurrent ? "step" : void 0,
6478
6478
  title: waiting ? `${step.title} \xB7 ${waiting}` : step.title,
6479
6479
  "data-phase": phase,
6480
6480
  "data-testid": `workflow-thread-step-${step.id}`,
6481
6481
  children: [
6482
- /* @__PURE__ */ jsxRuntime.jsx(chunk3US5OIDQ_cjs.PhaseMark, { phase, icon: iconOf(step) }),
6483
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: isCurrent ? chunk3US5OIDQ_cjs.STEP_LABEL_CURRENT : ui.cn(chunk3US5OIDQ_cjs.STEP_LABEL, chunk3US5OIDQ_cjs.STEP_LABEL_MAX), children: step.title }),
6482
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3WW32OUU_cjs.PhaseMark, { phase, icon: iconOf(step) }),
6483
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: isCurrent ? chunk3WW32OUU_cjs.STEP_LABEL_CURRENT : ui.cn(chunk3WW32OUU_cjs.STEP_LABEL, chunk3WW32OUU_cjs.STEP_LABEL_MAX), children: step.title }),
6484
6484
  sentBack && /* @__PURE__ */ jsxRuntime.jsx(
6485
6485
  lucideReact.CornerUpLeft,
6486
6486
  {
@@ -6492,7 +6492,7 @@ function WorkflowThreadStrip({
6492
6492
  assignee && isCurrent && !narrow && /* @__PURE__ */ jsxRuntime.jsxs(
6493
6493
  "span",
6494
6494
  {
6495
- className: ui.cn(chunk3US5OIDQ_cjs.STEP_EXTRA, "flex max-w-[12rem] items-center gap-0.5"),
6495
+ className: ui.cn(chunk3WW32OUU_cjs.STEP_EXTRA, "flex max-w-[12rem] items-center gap-0.5"),
6496
6496
  title: waiting,
6497
6497
  "data-testid": `workflow-thread-step-${step.id}-assignee`,
6498
6498
  children: [
@@ -6551,9 +6551,9 @@ function WorkflowThreadStrip({
6551
6551
  strays.map((s) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: "flex shrink-0 items-center gap-1", children: /* @__PURE__ */ jsxRuntime.jsx(SignalPill, { signal: s, l }) }, `${s.step}-${s.signal}`))
6552
6552
  ] }) : null;
6553
6553
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: ui.cn("min-w-0 flex-1", className), "data-testid": "workflow-thread-strip", children: /* @__PURE__ */ jsxRuntime.jsx(
6554
- chunk3US5OIDQ_cjs.StepBarFrame,
6554
+ chunk3WW32OUU_cjs.StepBarFrame,
6555
6555
  {
6556
- levels: chunk3US5OIDQ_cjs.stepLevels(steps),
6556
+ levels: chunk3WW32OUU_cjs.stepLevels(steps),
6557
6557
  phaseOf,
6558
6558
  current: selected,
6559
6559
  onSelect: (id) => {
@@ -6638,10 +6638,10 @@ function compactThreadActivity(events) {
6638
6638
  const count = Math.max(1, entry.recipients.length);
6639
6639
  entry.label = `Notified ${count} ${count === 1 ? "user" : "users"}`;
6640
6640
  } else if (STEP_LABELS[event.kind]) {
6641
- const documents = chunk3US5OIDQ_cjs.eventWaitingDocuments(event.detail);
6641
+ const documents = chunk3WW32OUU_cjs.eventWaitingDocuments(event.detail);
6642
6642
  result.push({
6643
6643
  event,
6644
- label: documents ? chunk3US5OIDQ_cjs.waitingForDocumentsText(documents.length) : STEP_LABELS[event.kind],
6644
+ label: documents ? chunk3WW32OUU_cjs.waitingForDocumentsText(documents.length) : STEP_LABELS[event.kind],
6645
6645
  recipients: []
6646
6646
  });
6647
6647
  } else if (["artifact_created", "artifact_edited", "document_added", "document_removed"].includes(
@@ -7040,7 +7040,7 @@ function defaultTaskComposerValues(workflows, initial) {
7040
7040
  return {
7041
7041
  assignee: "me",
7042
7042
  workflowId,
7043
- inputs: workflow ? { ...chunk3US5OIDQ_cjs.defaultInputs(workflow), ...initial?.inputs } : { ...initial?.inputs },
7043
+ inputs: workflow ? { ...chunk3WW32OUU_cjs.defaultInputs(workflow), ...initial?.inputs } : { ...initial?.inputs },
7044
7044
  when: "manual",
7045
7045
  runAt: "",
7046
7046
  rrule: "",
@@ -7149,7 +7149,7 @@ function WorkflowComposer({
7149
7149
  return !docs?.length;
7150
7150
  })
7151
7151
  );
7152
- const whatMissing = !workflow || Object.keys(chunk3US5OIDQ_cjs.validateInputs({ ...workflow, inputs: fields }, values.inputs)).length > 0;
7152
+ const whatMissing = !workflow || Object.keys(chunk3WW32OUU_cjs.validateInputs({ ...workflow, inputs: fields }, values.inputs)).length > 0;
7153
7153
  const runAtPast = values.when === "once" && values.runAt !== "" && values.runAt !== initialValues?.runAt && new Date(values.runAt).getTime() <= Date.now();
7154
7154
  const whenMissing = missingWhen(values, runAtPast);
7155
7155
  const scheduled = values.when !== "now" && values.when !== "manual";
@@ -7161,7 +7161,7 @@ function WorkflowComposer({
7161
7161
  setValues({
7162
7162
  ...values,
7163
7163
  workflowId: next,
7164
- inputs: def ? chunk3US5OIDQ_cjs.defaultInputs(def) : {},
7164
+ inputs: def ? chunk3WW32OUU_cjs.defaultInputs(def) : {},
7165
7165
  ...def?.documentAction ? { access: "standing" } : {}
7166
7166
  });
7167
7167
  };
@@ -7299,7 +7299,7 @@ function WorkflowComposer({
7299
7299
  }
7300
7300
  ),
7301
7301
  !noFiles && workflow && fields.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
7302
- chunk3US5OIDQ_cjs.SchemaForm,
7302
+ chunk3WW32OUU_cjs.SchemaForm,
7303
7303
  {
7304
7304
  fields,
7305
7305
  values: values.inputs,
@@ -7738,7 +7738,7 @@ function WorkTaskComposer({
7738
7738
  }, [open]);
7739
7739
  const workflow = workflows.find((w) => w.id === values.workflowId);
7740
7740
  const fields = workflow?.inputs ?? [];
7741
- const errors = workflow ? chunk3US5OIDQ_cjs.validateInputs({ ...workflow, inputs: fields }, values.inputs) : {};
7741
+ const errors = workflow ? chunk3WW32OUU_cjs.validateInputs({ ...workflow, inputs: fields }, values.inputs) : {};
7742
7742
  const hasWork = configOpen && Boolean(workflow) && Object.keys(errors).length === 0;
7743
7743
  const unattended = hasWork && values.when !== "now" && values.when !== "manual";
7744
7744
  const canConfigure = !isEdit || seed.assignee === "agent";
@@ -7746,7 +7746,7 @@ function WorkTaskComposer({
7746
7746
  const set = (key, value) => setValues({ ...values, [key]: value });
7747
7747
  const pickWorkflow = (id2) => {
7748
7748
  const next = workflows.find((w) => w.id === id2);
7749
- setValues({ ...values, workflowId: id2, inputs: next ? chunk3US5OIDQ_cjs.defaultInputs(next) : {} });
7749
+ setValues({ ...values, workflowId: id2, inputs: next ? chunk3WW32OUU_cjs.defaultInputs(next) : {} });
7750
7750
  };
7751
7751
  const openConfigure = () => {
7752
7752
  setConfigOpen(true);
@@ -7932,7 +7932,7 @@ function WorkTaskComposer({
7932
7932
  )
7933
7933
  ] }),
7934
7934
  workflow && fields.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
7935
- chunk3US5OIDQ_cjs.SchemaForm,
7935
+ chunk3WW32OUU_cjs.SchemaForm,
7936
7936
  {
7937
7937
  fields,
7938
7938
  values: values.inputs,
@@ -10113,5 +10113,5 @@ exports.workflowToComposerValues = workflowToComposerValues;
10113
10113
  exports.workflowToSkillMarkdown = workflowToSkillMarkdown;
10114
10114
  exports.workflowTriggerType = workflowTriggerType;
10115
10115
  exports.workflowWhen = workflowWhen;
10116
- //# sourceMappingURL=chunk-DDYXFALG.cjs.map
10117
- //# sourceMappingURL=chunk-DDYXFALG.cjs.map
10116
+ //# sourceMappingURL=chunk-MROSCSPW.cjs.map
10117
+ //# sourceMappingURL=chunk-MROSCSPW.cjs.map