@arbidocs/blocks 0.4.75 → 0.4.76

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 (48) hide show
  1. package/dist/agents/index.cjs +265 -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 +38 -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/index.d.ts +1 -1
  8. package/dist/agents/workflows/planSteps.d.ts +3 -1
  9. package/dist/agents/workflows/types.d.ts +27 -0
  10. package/dist/{chunk-YWYVIQ7T.js → chunk-22P5KNIM.js} +24 -4
  11. package/dist/chunk-22P5KNIM.js.map +1 -0
  12. package/dist/{chunk-F4LUD3YC.cjs → chunk-7FKARMA3.cjs} +158 -53
  13. package/dist/chunk-7FKARMA3.cjs.map +1 -0
  14. package/dist/{chunk-LT2UORRG.js → chunk-TKB7TVMW.js} +132 -29
  15. package/dist/chunk-TKB7TVMW.js.map +1 -0
  16. package/dist/{chunk-P2RBE3FD.cjs → chunk-VYRKO3XU.cjs} +24 -3
  17. package/dist/chunk-VYRKO3XU.cjs.map +1 -0
  18. package/dist/connect/index.cjs +10 -10
  19. package/dist/connect/index.js +3 -3
  20. package/dist/facts/index.cjs +1 -1
  21. package/dist/facts/index.js +1 -1
  22. package/dist/files/index.cjs +1 -1
  23. package/dist/files/index.js +1 -1
  24. package/dist/home/index.cjs +1 -1
  25. package/dist/home/index.js +1 -1
  26. package/dist/index.cjs +430 -418
  27. package/dist/index.js +7 -7
  28. package/dist/settings/index.cjs +1 -1
  29. package/dist/settings/index.js +1 -1
  30. package/dist/shell/index.cjs +1 -1
  31. package/dist/shell/index.js +1 -1
  32. package/dist/studio/index.cjs +1 -1
  33. package/dist/studio/index.js +1 -1
  34. package/dist/workflow-canvas/SignalsEditor.d.ts +41 -0
  35. package/dist/workflow-canvas/StepInspector.d.ts +4 -1
  36. package/dist/workflow-canvas/TriggerInspector.d.ts +11 -2
  37. package/dist/workflow-canvas/WorkflowBuilder.d.ts +7 -2
  38. package/dist/workflow-canvas/index.cjs +443 -149
  39. package/dist/workflow-canvas/index.cjs.map +1 -1
  40. package/dist/workflow-canvas/index.d.ts +2 -1
  41. package/dist/workflow-canvas/index.js +410 -123
  42. package/dist/workflow-canvas/index.js.map +1 -1
  43. package/dist/workflow-canvas/trigger.d.ts +20 -1
  44. package/package.json +4 -4
  45. package/dist/chunk-F4LUD3YC.cjs.map +0 -1
  46. package/dist/chunk-LT2UORRG.js.map +0 -1
  47. package/dist/chunk-P2RBE3FD.cjs.map +0 -1
  48. package/dist/chunk-YWYVIQ7T.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- 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, 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 } from '../chunk-LT2UORRG.js';
2
+ 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, 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 } from '../chunk-TKB7TVMW.js';
3
3
  import '../chunk-CKB64Z4R.js';
4
4
  import '../chunk-P6GHJSLR.js';
5
- export { DEFAULT_SCHEMA_FORM_LABELS, DEFAULT_WORKFLOW_RUNNER_LABELS, EMPTY_WORKFLOW_SCOPE, SKILL_PROMPT_FALLBACK_PLACEHOLDER, SKILL_PROMPT_LABEL, SchemaForm, WorkflowRunner, buildLaunch, composeStepPrompt, composeWorkflowPrompt, defaultInputs, dependsOn, fieldToFrontmatter, fillRunText, fillStepInputs, fromPlanSteps, initialRunInputs, inputsFromContext, isEmptyWorkflowScope, isPersonStep, isRunFinished, isSteppedWorkflow, isWorkflowScope, layoutFromPlanSteps, nextAction, orderSteps, promptFieldName, reviewInstructions, runFields, runThreadTitle, skillToWorkflow, stepDependencies, stepLevels, stepPhase, stepStatesFromActivity, toPlanSteps, useWorkflowView, validateInputs, validateStep, validateWorkflowGraph, workflowAccepts, workflowFromFrontmatter, workflowSteps, workflowsAccepting, workflowsForHost } from '../chunk-YWYVIQ7T.js';
5
+ export { DEFAULT_SCHEMA_FORM_LABELS, DEFAULT_WORKFLOW_RUNNER_LABELS, EMPTY_WORKFLOW_SCOPE, SKILL_PROMPT_FALLBACK_PLACEHOLDER, SKILL_PROMPT_LABEL, SchemaForm, WorkflowRunner, buildLaunch, composeStepPrompt, composeWorkflowPrompt, defaultInputs, dependsOn, fieldToFrontmatter, fillRunText, fillStepInputs, fromPlanSteps, initialRunInputs, inputsFromContext, isEmptyWorkflowScope, isIncompleteSignal, isPersonStep, isRunFinished, isSteppedWorkflow, isWorkflowScope, layoutFromPlanSteps, nextAction, orderSteps, promptFieldName, reviewInstructions, runFields, runThreadTitle, skillToWorkflow, stepDependencies, stepLevels, stepPhase, stepStatesFromActivity, toPlanSteps, useWorkflowView, validateInputs, validateStep, validateWorkflowGraph, workflowAccepts, workflowFromFrontmatter, workflowSteps, workflowsAccepting, workflowsForHost } from '../chunk-22P5KNIM.js';
6
6
  import '../chunk-4WWM3GQ5.js';
7
7
  import '../chunk-RFXJYIDV.js';
8
8
  import '../chunk-DPLRHEJZ.js';
@@ -13,11 +13,11 @@ import '../chunk-ZPLG7QYF.js';
13
13
  import '../chunk-DDF5GPIJ.js';
14
14
  import '../chunk-XD2M6LIG.js';
15
15
  import '../chunk-S7PSMMRG.js';
16
+ import '../chunk-76JDDMSP.js';
16
17
  import '../chunk-HOXKR26S.js';
17
18
  import '../chunk-AA3PT6KR.js';
18
19
  import '../chunk-SLSBJRWW.js';
19
20
  import '../chunk-NPLYHR2E.js';
20
- import '../chunk-76JDDMSP.js';
21
21
  import '../chunk-OXF2IFXG.js';
22
22
  import '../chunk-TX2ZICS7.js';
23
23
  import '../chunk-7F6CBP3Z.js';
@@ -1,5 +1,5 @@
1
1
  import type { ReactNode } from 'react';
2
- export type TaskActivityKind = 'created' | 'run_started' | 'awaiting_access' | 'access_granted' | 'done' | 'reopened' | 'failed' | 'participant_joined' | 'assistant_responded' | 'assistant_stopped' | 'artifact_created' | 'artifact_edited' | 'document_added' | 'document_removed' | 'notified' | 'step_started' | 'step_done' | 'step_skipped' | 'step_failed';
2
+ export type TaskActivityKind = 'created' | 'run_started' | 'awaiting_access' | 'access_granted' | 'done' | 'reopened' | 'failed' | 'participant_joined' | 'assistant_responded' | 'assistant_stopped' | 'artifact_created' | 'artifact_edited' | 'document_added' | 'document_removed' | 'notified' | 'step_started' | 'step_done' | 'step_skipped' | 'step_failed' | 'step_signal' | 'linked_run';
3
3
  /** One event of a task's history, as the backend returns it (oldest first). */
4
4
  export interface TaskActivityEvent {
5
5
  external_id: string;
@@ -3,6 +3,8 @@
3
3
  * to come), with everything that actually happened in the thread attached to the step it happened
4
4
  * during — the assistant's turns, a draft sent back, people's messages and edits, notifications.
5
5
  * What happened before the first step or after the last stays as ordinary entries at either end.
6
+ * Linked runs show too: a signal a step raised and the linked thread it started (after the step),
7
+ * and, for a thread a signal started, "Started by <step> in <thread>" (before the steps).
6
8
  * A thread without a workflow shows `TaskFlow` instead.
7
9
  */
8
10
  import type { ReactNode } from 'react';
@@ -36,8 +38,34 @@ export interface WorkflowThreadStripLabels {
36
38
  happened: string;
37
39
  nothingYet: string;
38
40
  skip: string;
41
+ /** A linked run's origin; `{step}` and `{thread}` are replaced. */
42
+ startedBy: string;
43
+ /** A raised signal's tooltip; `{signal}` is replaced. */
44
+ signalled: string;
45
+ /** A linked thread's tooltip; `{signal}` is replaced. */
46
+ linkedRun: string;
39
47
  }
40
48
  export declare const DEFAULT_WORKFLOW_THREAD_STRIP_LABELS: WorkflowThreadStripLabels;
49
+ /** A linked thread a signal started, as the host names it. */
50
+ export interface WorkflowThreadLinkedRun {
51
+ id: string;
52
+ /** The thread's title, or its workflow's name. */
53
+ label: string;
54
+ onSelect?: () => void;
55
+ }
56
+ /** A signal one of the run's steps raised, and the linked threads it started. */
57
+ export interface WorkflowThreadSignal {
58
+ step: string;
59
+ signal: string;
60
+ runs: WorkflowThreadLinkedRun[];
61
+ }
62
+ /** Where a linked run came from: the step and the parent thread whose signal started it. */
63
+ export interface WorkflowThreadOrigin {
64
+ stepTitle: string;
65
+ threadTitle: string;
66
+ signal?: string;
67
+ onSelect?: () => void;
68
+ }
41
69
  export interface WorkflowThreadStripProps {
42
70
  steps: WorkflowStep[];
43
71
  /** Each step's state (from `stepStatesFromActivity`). */
@@ -52,7 +80,16 @@ export interface WorkflowThreadStripProps {
52
80
  onSkip?: (stepId: string) => void;
53
81
  /** The host's action for a person's step (fill in the form, approve…), shown in its popover. */
54
82
  renderStepAction?: (step: WorkflowStep, phase: WorkflowStepPhase) => ReactNode;
83
+ /** Signals the steps raised and the linked threads they started (`linkedRunsFromActivity`). */
84
+ signals?: readonly WorkflowThreadSignal[];
85
+ /** For a thread a signal started: where it came from. */
86
+ startedBy?: WorkflowThreadOrigin;
55
87
  labels?: Partial<WorkflowThreadStripLabels>;
56
88
  className?: string;
57
89
  }
58
- export declare function WorkflowThreadStrip({ steps, states, items, renderIcon, onSkip, renderStepAction, labels, className, }: WorkflowThreadStripProps): import("react").JSX.Element;
90
+ /** "Started by <step> in <thread>": a linked run's way back to the thread that started it. */
91
+ export declare function WorkflowThreadStartedBy({ origin, labels, }: {
92
+ origin: WorkflowThreadOrigin;
93
+ labels?: Partial<WorkflowThreadStripLabels>;
94
+ }): import("react").JSX.Element;
95
+ export declare function WorkflowThreadStrip({ steps, states, items, renderIcon, onSkip, renderStepAction, signals, startedBy, labels, className, }: WorkflowThreadStripProps): import("react").JSX.Element;
@@ -23,7 +23,8 @@ export { TaskStatusPill, DEFAULT_TASK_STATUS_PILL_LABELS, type TaskStatusPillPro
23
23
  export { TaskActivityTimeline, DEFAULT_TASK_ACTIVITY_LABELS, type TaskActivityEvent, type TaskActivityKind, type TaskActivityLabels, type TaskActivityTimelineProps, } from './TaskActivityTimeline';
24
24
  export { TaskActivityDialog, type TaskActivityDialogProps } from './TaskActivityDialog';
25
25
  export { TaskFlow, ThreadActivity, type TaskFlowItem } from './TaskFlow';
26
- export { WorkflowThreadStrip, groupThreadActivity, DEFAULT_WORKFLOW_THREAD_STRIP_LABELS, type WorkflowThreadItem, type WorkflowThreadStripProps, type WorkflowThreadStripLabels, type GroupedThreadActivity, } from './WorkflowThreadStrip';
26
+ export { WorkflowThreadStrip, groupThreadActivity, DEFAULT_WORKFLOW_THREAD_STRIP_LABELS, type WorkflowThreadItem, type WorkflowThreadStripProps, type WorkflowThreadStripLabels, type GroupedThreadActivity, WorkflowThreadStartedBy, type WorkflowThreadSignal, type WorkflowThreadOrigin, type WorkflowThreadLinkedRun, } from './WorkflowThreadStrip';
27
+ export { linkedRunsFromActivity, type WorkflowRunLinks, type WorkflowRaisedSignal, type WorkflowRunOrigin, type WorkflowLinkedRunRef, } from './linkedRuns';
27
28
  export { compactThreadActivity, type CompactThreadActivity } from './compact-thread-activity';
28
29
  export { TaskOutputsCell, DEFAULT_TASK_OUTPUTS_CELL_LABELS, type TaskOutput, type TaskOutputsCellProps, type TaskOutputsCellLabels, } from './TaskOutputsCell';
29
30
  export { TaskThreadChip, DEFAULT_TASK_THREAD_CHIP_LABELS, type TaskThreadChipProps, type TaskThreadChipLabels, } from './TaskThreadChip';
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Linked runs, read from a thread's activity log: the signals its steps raised (`step_signal`), the
3
+ * linked workflows each one started (`linked_run`, pointing at the new thread), and, for a thread a
4
+ * signal started, where it came from (its `created` event's `linked_from`). The thread's top bar
5
+ * shows them (`WorkflowThreadStrip`); the host resolves the threads' titles and navigation.
6
+ */
7
+ import type { WorkflowActivityEvent } from '../workflows/run';
8
+ /** A thread a signal started. */
9
+ export interface WorkflowLinkedRunRef {
10
+ conversationId: string;
11
+ /** The workflow that started on the signal (`wfl-…`). */
12
+ workflowId?: string;
13
+ }
14
+ /** A signal one of the thread's steps raised, and the linked threads it started. */
15
+ export interface WorkflowRaisedSignal {
16
+ step: string;
17
+ signal: string;
18
+ runs: WorkflowLinkedRunRef[];
19
+ }
20
+ /** Where a linked run came from: the step (and its signal) in the parent thread that started it. */
21
+ export interface WorkflowRunOrigin {
22
+ conversationId: string;
23
+ step?: string;
24
+ signal?: string;
25
+ }
26
+ export interface WorkflowRunLinks {
27
+ raised: WorkflowRaisedSignal[];
28
+ startedBy?: WorkflowRunOrigin;
29
+ }
30
+ /** The thread's linked runs from its activity log (oldest first). */
31
+ export declare function linkedRunsFromActivity(events: readonly WorkflowActivityEvent[] | null | undefined): WorkflowRunLinks;
@@ -8,7 +8,7 @@ export { WorkflowLauncher, type WorkflowLauncherProps } from './WorkflowLauncher
8
8
  export { buildWorkflowScopeSource, matchWorkflowScope, type WorkflowScopeDocument, type WorkflowScopeLabel, } from './workspaceScope';
9
9
  export { WorkflowDocumentsField, type WorkflowDocumentsFieldProps } from './WorkflowDocumentsField';
10
10
  export { workflowSteps, isSteppedWorkflow, stepDependencies, dependsOn, orderSteps, validateWorkflowGraph, stepLevels, stepStatesFromActivity, runFields, initialRunInputs, stepPhase, isRunFinished, isPersonStep, nextAction, validateStep, fillRunText, fillStepInputs, runThreadTitle, reviewInstructions, composeStepPrompt, type StepComposeOptions, type WorkflowActivityEvent, type WorkflowGraphProblem, type WorkflowStepPhase, type WorkflowNextAction, } from './run';
11
- export { toPlanSteps, fromPlanSteps, layoutFromPlanSteps, type TaskPlanStep, type ToPlanOptions, } from './planSteps';
11
+ export { toPlanSteps, fromPlanSteps, layoutFromPlanSteps, isIncompleteSignal, type TaskPlanStep, type ToPlanOptions, } from './planSteps';
12
12
  export { workflowToSkillMarkdown, workflowFromSkillMarkdown, skillSlug } from './skillMarkdown';
13
13
  export { useWorkflowView, type UseWorkflowViewOptions, type WorkflowRunView, } from './useWorkflowView';
14
14
  export { useWorkflowPreview, type UseWorkflowPreviewOptions } from './useWorkflowPreview';
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import type { components } from '@arbidocs/client';
8
8
  import { type StepComposeOptions } from './run';
9
- import type { WorkflowDefinition, WorkflowInputs, WorkflowStep } from './types';
9
+ import type { WorkflowDefinition, WorkflowInputs, WorkflowSignal, WorkflowStep } from './types';
10
10
  export type TaskPlanStep = components['schemas']['TaskPlanStep'];
11
11
  export type TaskPlan = components['schemas']['TaskPlan'];
12
12
  export interface ToPlanOptions extends StepComposeOptions {
@@ -19,6 +19,8 @@ export interface ToPlanOptions extends StepComposeOptions {
19
19
  }
20
20
  /** The plan steps a run thread (or a saved workflow) carries for `workflow`. */
21
21
  export declare function toPlanSteps(workflow: WorkflowDefinition, options?: ToPlanOptions): TaskPlanStep[];
22
+ /** A signal the builder holds that is not finished yet: no name, or a condition with nothing in it. */
23
+ export declare function isIncompleteSignal(signal: WorkflowSignal): boolean;
22
24
  /** Steps from a run's (or a saved workflow's) plan: what the runner, the builder and the top bar show. */
23
25
  export declare function fromPlanSteps(steps: TaskPlanStep[] | null | undefined): WorkflowStep[];
24
26
  /** Where each step sits on the builder's canvas, as the plan keeps it. */
@@ -92,6 +92,31 @@ export type WorkflowRun =
92
92
  y: number;
93
93
  }>;
94
94
  };
95
+ /**
96
+ * When a step's signal is raised, tested against the step's outcome once it is done (a skipped or
97
+ * failed step never signals): a form field equals a value (case-insensitive text), the agent's
98
+ * answer contains a phrase or matches a regex, or a review is approved. Absent = whenever it is done.
99
+ */
100
+ export type WorkflowSignalWhen = {
101
+ field: string;
102
+ equals: string | number | boolean;
103
+ } | {
104
+ contains: string;
105
+ } | {
106
+ matches: string;
107
+ } | {
108
+ approved: true;
109
+ };
110
+ /**
111
+ * A named signal a step raises when it is done and its condition holds. Another workflow starts on
112
+ * it ("When a step signals") as its own thread linked to this one, so the if/then between
113
+ * workflows lives in the link and each workflow stays short.
114
+ */
115
+ export interface WorkflowSignal {
116
+ /** A slug (`[a-z0-9][a-z0-9_.-]*`), e.g. `risk-high`: what a linked workflow listens for. */
117
+ name: string;
118
+ when?: WorkflowSignalWhen;
119
+ }
95
120
  interface WorkflowStepBase {
96
121
  /** Unique within the workflow (`[a-z][a-z0-9_-]*`): the thread's progress is keyed by it. */
97
122
  id: string;
@@ -113,6 +138,8 @@ interface WorkflowStepBase {
113
138
  * sequence. `[]`: it starts with the run. A step waiting for several waits for them all.
114
139
  */
115
140
  after?: string[];
141
+ /** Signals the step raises when it is done and their condition holds. */
142
+ signals?: WorkflowSignal[];
116
143
  }
117
144
  /** Ask for inputs. Every step's fields share the run's one input namespace (`{{name}}`). */
118
145
  export interface WorkflowFormStep extends WorkflowStepBase {
@@ -738,10 +738,29 @@ function toPlanSteps(workflow, options = {}) {
738
738
  branch: step.kind === "agent" && !!step.branch,
739
739
  requires_files: false,
740
740
  ui,
741
+ // An unfinished signal (still being typed) is not saved: the server would refuse it.
742
+ ...step.signals?.some((s) => !isIncompleteSignal(s)) ? { signals: step.signals.filter((s) => !isIncompleteSignal(s)).map(toPlanSignal) } : {},
741
743
  ...step.kind === "agent" ? agentStep(workflow, step, options) : { skill: null, inputs: null, prompt: null }
742
744
  };
743
745
  });
744
746
  }
747
+ function toPlanSignal(signal) {
748
+ return signal.when ? { name: signal.name, when: signal.when } : { name: signal.name };
749
+ }
750
+ function isIncompleteSignal(signal) {
751
+ const when = signal.when;
752
+ if (!signal.name.trim()) return true;
753
+ if (!when) return false;
754
+ if ("field" in when) return !when.field || String(when.equals).trim() === "";
755
+ if ("contains" in when) return !when.contains.trim();
756
+ if ("matches" in when) return !when.matches.trim();
757
+ return false;
758
+ }
759
+ function fromPlanSignal(signal) {
760
+ const w = signal.when;
761
+ const when = w?.field != null && w.equals != null ? { field: w.field, equals: w.equals } : w?.contains != null ? { contains: w.contains } : w?.matches != null ? { matches: w.matches } : w?.approved ? { approved: true } : void 0;
762
+ return when ? { name: signal.name, when } : { name: signal.name };
763
+ }
745
764
  function fromPlanSteps(steps) {
746
765
  return (steps ?? []).map((p) => {
747
766
  const ui = p.ui ?? {};
@@ -752,7 +771,8 @@ function fromPlanSteps(steps) {
752
771
  icon: ui.icon,
753
772
  commit: ui.commit,
754
773
  nextLabel: ui.next_label,
755
- ...p.after != null ? { after: p.after } : {}
774
+ ...p.after != null ? { after: p.after } : {},
775
+ ...p.signals?.length ? { signals: p.signals.map(fromPlanSignal) } : {}
756
776
  };
757
777
  switch (p.kind) {
758
778
  case "form":
@@ -1397,6 +1417,6 @@ function AgentStepBody({
1397
1417
  ] });
1398
1418
  }
1399
1419
 
1400
- export { DEFAULT_SCHEMA_FORM_LABELS, DEFAULT_WORKFLOW_RUNNER_LABELS, EMPTY_WORKFLOW_SCOPE, SKILL_PROMPT_FALLBACK_PLACEHOLDER, SKILL_PROMPT_LABEL, SchemaForm, WorkflowRunner, buildLaunch, composeStepPrompt, composeWorkflowPrompt, defaultInputs, dependsOn, fieldToFrontmatter, fillRunText, fillStepInputs, fromPlanSteps, initialRunInputs, inputsFromContext, isEmptyWorkflowScope, isPersonStep, isRunFinished, isSteppedWorkflow, isWorkflowScope, layoutFromPlanSteps, nextAction, orderSteps, promptFieldName, reviewInstructions, runFields, runThreadTitle, skillToWorkflow, stepDependencies, stepLevels, stepPhase, stepStatesFromActivity, toPlanSteps, useWorkflowView, validateInputs, validateStep, validateWorkflowGraph, workflowAccepts, workflowFromFrontmatter, workflowSteps, workflowsAccepting, workflowsForHost };
1401
- //# sourceMappingURL=chunk-YWYVIQ7T.js.map
1402
- //# sourceMappingURL=chunk-YWYVIQ7T.js.map
1420
+ export { DEFAULT_SCHEMA_FORM_LABELS, DEFAULT_WORKFLOW_RUNNER_LABELS, EMPTY_WORKFLOW_SCOPE, SKILL_PROMPT_FALLBACK_PLACEHOLDER, SKILL_PROMPT_LABEL, SchemaForm, WorkflowRunner, buildLaunch, composeStepPrompt, composeWorkflowPrompt, defaultInputs, dependsOn, fieldToFrontmatter, fillRunText, fillStepInputs, fromPlanSteps, initialRunInputs, inputsFromContext, isEmptyWorkflowScope, isIncompleteSignal, isPersonStep, isRunFinished, isSteppedWorkflow, isWorkflowScope, layoutFromPlanSteps, nextAction, orderSteps, promptFieldName, reviewInstructions, runFields, runThreadTitle, skillToWorkflow, stepDependencies, stepLevels, stepPhase, stepStatesFromActivity, toPlanSteps, useWorkflowView, validateInputs, validateStep, validateWorkflowGraph, workflowAccepts, workflowFromFrontmatter, workflowSteps, workflowsAccepting, workflowsForHost };
1421
+ //# sourceMappingURL=chunk-22P5KNIM.js.map
1422
+ //# sourceMappingURL=chunk-22P5KNIM.js.map