@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.
- package/dist/agents/index.cjs +331 -255
- package/dist/agents/index.js +2 -2
- package/dist/agents/tasks/TaskActivityTimeline.d.ts +1 -1
- package/dist/agents/tasks/WorkflowThreadStrip.d.ts +7 -1
- package/dist/agents/workflows/SchemaForm.d.ts +6 -1
- package/dist/agents/workflows/StepParts.d.ts +109 -0
- package/dist/agents/workflows/WorkflowRunner.d.ts +11 -2
- package/dist/agents/workflows/index.d.ts +3 -2
- package/dist/agents/workflows/planSteps.d.ts +8 -1
- package/dist/agents/workflows/run.d.ts +61 -8
- package/dist/agents/workflows/types.d.ts +133 -4
- package/dist/agents/workflows/useWorkflowPreview.d.ts +2 -1
- package/dist/agents/workflows/useWorkflowView.d.ts +19 -0
- package/dist/chat/ChatPage.d.ts +1 -1
- package/dist/chat/WorkflowStepChip.d.ts +24 -0
- package/dist/chat/chat-page-types.d.ts +4 -0
- package/dist/chat/index.cjs +130 -122
- package/dist/chat/index.d.ts +1 -0
- package/dist/chat/index.js +2 -2
- package/dist/{chunk-22P5KNIM.js → chunk-34UW6XUQ.js} +928 -38
- package/dist/chunk-34UW6XUQ.js.map +1 -0
- package/dist/{chunk-VYRKO3XU.cjs → chunk-3XR3IEGU.cjs} +944 -35
- package/dist/chunk-3XR3IEGU.cjs.map +1 -0
- package/dist/{chunk-ZWA7UUZL.cjs → chunk-7YUFMNFW.cjs} +2 -54
- package/dist/chunk-7YUFMNFW.cjs.map +1 -0
- package/dist/chunk-A24C6BNA.js +92 -0
- package/dist/chunk-A24C6BNA.js.map +1 -0
- package/dist/chunk-AINNADMT.cjs +62 -0
- package/dist/chunk-AINNADMT.cjs.map +1 -0
- package/dist/{chunk-7CVF3DK2.cjs → chunk-EKIUMNCN.cjs} +5 -5
- package/dist/{chunk-7CVF3DK2.cjs.map → chunk-EKIUMNCN.cjs.map} +1 -1
- package/dist/chunk-FE4ULGOR.js +151 -0
- package/dist/chunk-FE4ULGOR.js.map +1 -0
- package/dist/chunk-FT5FFXSJ.js +60 -0
- package/dist/chunk-FT5FFXSJ.js.map +1 -0
- package/dist/{chunk-HITAN7JF.cjs → chunk-GTXOV7IJ.cjs} +4 -4
- package/dist/{chunk-HITAN7JF.cjs.map → chunk-GTXOV7IJ.cjs.map} +1 -1
- package/dist/{chunk-TKB7TVMW.js → chunk-HEVVT6IT.js} +78 -14
- package/dist/chunk-HEVVT6IT.js.map +1 -0
- package/dist/{chunk-IPGKTUF7.cjs → chunk-HOD6OM7L.cjs} +68 -3
- package/dist/chunk-HOD6OM7L.cjs.map +1 -0
- package/dist/{chunk-7FKARMA3.cjs → chunk-JFUN4D7D.cjs} +101 -37
- package/dist/chunk-JFUN4D7D.cjs.map +1 -0
- package/dist/{chunk-UIWLDSTF.js → chunk-NIP5BOP7.js} +68 -5
- package/dist/chunk-NIP5BOP7.js.map +1 -0
- package/dist/{chunk-MK6NJQGF.js → chunk-OEM5ARVM.js} +3 -3
- package/dist/{chunk-MK6NJQGF.js.map → chunk-OEM5ARVM.js.map} +1 -1
- package/dist/{chunk-5EBGRG3X.js → chunk-OPA2Y6YZ.js} +3 -54
- package/dist/chunk-OPA2Y6YZ.js.map +1 -0
- package/dist/chunk-TZR36PPP.cjs +95 -0
- package/dist/chunk-TZR36PPP.cjs.map +1 -0
- package/dist/{chunk-WJEKRSPH.js → chunk-UEU23PTW.js} +3 -3
- package/dist/{chunk-WJEKRSPH.js.map → chunk-UEU23PTW.js.map} +1 -1
- package/dist/chunk-ZVBPRMHJ.cjs +153 -0
- package/dist/chunk-ZVBPRMHJ.cjs.map +1 -0
- package/dist/connect/docx.cjs +10 -88
- package/dist/connect/docx.cjs.map +1 -1
- package/dist/connect/docx.js +6 -86
- package/dist/connect/docx.js.map +1 -1
- package/dist/connect/index.cjs +293 -30
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.js +278 -15
- package/dist/connect/index.js.map +1 -1
- package/dist/connection/ConnectedWorkflowRunner.d.ts +16 -2
- package/dist/connection/WorkflowRunnerDialogs.d.ts +37 -0
- package/dist/connection/useWorkflowThread.d.ts +12 -0
- package/dist/document-tools/index.cjs +7 -143
- package/dist/document-tools/index.cjs.map +1 -1
- package/dist/document-tools/index.js +5 -144
- package/dist/document-tools/index.js.map +1 -1
- package/dist/docx/index.cjs +18 -17
- package/dist/docx/index.cjs.map +1 -1
- package/dist/docx/index.js +3 -2
- package/dist/docx/index.js.map +1 -1
- package/dist/index.cjs +467 -383
- package/dist/index.js +5 -5
- package/dist/studio/index.cjs +3 -3
- package/dist/studio/index.js +2 -2
- package/dist/workflow-canvas/StepActionSettings.d.ts +132 -0
- package/dist/workflow-canvas/StepInspector.d.ts +25 -2
- package/dist/workflow-canvas/WorkflowBuilder.d.ts +11 -3
- package/dist/workflow-canvas/WorkflowCanvas.d.ts +27 -2
- package/dist/workflow-canvas/edit.d.ts +9 -1
- package/dist/workflow-canvas/index.cjs +879 -99
- package/dist/workflow-canvas/index.cjs.map +1 -1
- package/dist/workflow-canvas/index.js +846 -66
- package/dist/workflow-canvas/index.js.map +1 -1
- package/package.json +4 -4
- package/src/workflow-canvas/canvas.css +9 -0
- package/dist/chunk-22P5KNIM.js.map +0 -1
- package/dist/chunk-5EBGRG3X.js.map +0 -1
- package/dist/chunk-7FKARMA3.cjs.map +0 -1
- package/dist/chunk-IPGKTUF7.cjs.map +0 -1
- package/dist/chunk-TKB7TVMW.js.map +0 -1
- package/dist/chunk-UIWLDSTF.js.map +0 -1
- package/dist/chunk-VYRKO3XU.cjs.map +0 -1
- 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
|
|
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({ ...
|
|
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 =
|
|
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(
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
372
|
-
if (Object.keys(
|
|
373
|
-
Promise.resolve(onLaunch(
|
|
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(
|
|
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
|
|
545
|
+
return chunk3XR3IEGU_cjs.workflowFromFrontmatter(id, frontmatter, body);
|
|
546
546
|
}
|
|
547
547
|
function useWorkflowPreview(workflow, { answer = "{prompt}", delayMs = 400, resolveWorkflow, compose } = {}) {
|
|
548
|
-
const steps =
|
|
549
|
-
const [inputs, setInputs] = react.useState(() =>
|
|
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(
|
|
571
|
-
|
|
572
|
-
|
|
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(
|
|
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
|
|
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 =
|
|
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:
|
|
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([
|
|
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 (
|
|
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 =
|
|
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 ? { ...
|
|
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(
|
|
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 ?
|
|
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
|
-
|
|
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 ?
|
|
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 ?
|
|
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
|
-
|
|
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-
|
|
10219
|
-
//# sourceMappingURL=chunk-
|
|
10282
|
+
//# sourceMappingURL=chunk-JFUN4D7D.cjs.map
|
|
10283
|
+
//# sourceMappingURL=chunk-JFUN4D7D.cjs.map
|