@arbidocs/blocks 0.5.65 → 0.5.66

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 (118) hide show
  1. package/dist/{ConnectedCallDock-GJAGY75U.cjs → ConnectedCallDock-FFIDDYGH.cjs} +6 -6
  2. package/dist/{ConnectedCallDock-GJAGY75U.cjs.map → ConnectedCallDock-FFIDDYGH.cjs.map} +1 -1
  3. package/dist/{ConnectedCallDock-DEAEFUUD.js → ConnectedCallDock-VMEBH4LG.js} +6 -6
  4. package/dist/{ConnectedCallDock-DEAEFUUD.js.map → ConnectedCallDock-VMEBH4LG.js.map} +1 -1
  5. package/dist/{ConnectedCallRoom-DI7UYRHE.js → ConnectedCallRoom-2FNSX2VG.js} +6 -6
  6. package/dist/{ConnectedCallRoom-DI7UYRHE.js.map → ConnectedCallRoom-2FNSX2VG.js.map} +1 -1
  7. package/dist/{ConnectedCallRoom-KLE2PCMQ.cjs → ConnectedCallRoom-HYRLJUIV.cjs} +6 -6
  8. package/dist/{ConnectedCallRoom-KLE2PCMQ.cjs.map → ConnectedCallRoom-HYRLJUIV.cjs.map} +1 -1
  9. package/dist/{ConnectedDocumentViewer-YSZWOVGN.cjs → ConnectedDocumentViewer-S6YKCCRN.cjs} +9 -9
  10. package/dist/{ConnectedDocumentViewer-YSZWOVGN.cjs.map → ConnectedDocumentViewer-S6YKCCRN.cjs.map} +1 -1
  11. package/dist/{ConnectedDocumentViewer-HKIBNGGG.js → ConnectedDocumentViewer-XFQDHVWM.js} +9 -9
  12. package/dist/{ConnectedDocumentViewer-HKIBNGGG.js.map → ConnectedDocumentViewer-XFQDHVWM.js.map} +1 -1
  13. package/dist/agents/index.cjs +260 -260
  14. package/dist/agents/index.js +3 -3
  15. package/dist/calls/index.cjs +2 -2
  16. package/dist/calls/index.js +2 -2
  17. package/dist/chat/index.cjs +57 -57
  18. package/dist/chat/index.js +4 -4
  19. package/dist/{chunk-F777MGVA.cjs → chunk-3SHZPTR2.cjs} +18 -18
  20. package/dist/{chunk-F777MGVA.cjs.map → chunk-3SHZPTR2.cjs.map} +1 -1
  21. package/dist/{chunk-TVHTXO6V.cjs → chunk-56WWEK6I.cjs} +4 -4
  22. package/dist/{chunk-TVHTXO6V.cjs.map → chunk-56WWEK6I.cjs.map} +1 -1
  23. package/dist/{chunk-CGCTODPC.cjs → chunk-6PGTH2HD.cjs} +4 -4
  24. package/dist/{chunk-CGCTODPC.cjs.map → chunk-6PGTH2HD.cjs.map} +1 -1
  25. package/dist/{chunk-6QZ35CTZ.js → chunk-AD76WTGR.js} +3 -3
  26. package/dist/{chunk-6QZ35CTZ.js.map → chunk-AD76WTGR.js.map} +1 -1
  27. package/dist/{chunk-ROWJU4SK.cjs → chunk-AKGV6JUC.cjs} +12 -128
  28. package/dist/chunk-AKGV6JUC.cjs.map +1 -0
  29. package/dist/{chunk-UIUWCTIZ.js → chunk-APXW5XGA.js} +165 -4
  30. package/dist/chunk-APXW5XGA.js.map +1 -0
  31. package/dist/{chunk-SEVFIBF3.cjs → chunk-BFIHXDO6.cjs} +4 -4
  32. package/dist/{chunk-SEVFIBF3.cjs.map → chunk-BFIHXDO6.cjs.map} +1 -1
  33. package/dist/{chunk-JSHBC47B.cjs → chunk-BP5KBZLX.cjs} +38 -38
  34. package/dist/{chunk-JSHBC47B.cjs.map → chunk-BP5KBZLX.cjs.map} +1 -1
  35. package/dist/{chunk-YQEXBJVO.js → chunk-DF5X27QX.js} +42 -5
  36. package/dist/chunk-DF5X27QX.js.map +1 -0
  37. package/dist/{chunk-CJF7B5A7.cjs → chunk-DRUNPUDT.cjs} +3 -3
  38. package/dist/{chunk-CJF7B5A7.cjs.map → chunk-DRUNPUDT.cjs.map} +1 -1
  39. package/dist/{chunk-6OMIIF76.js → chunk-EM4KOKE6.js} +3 -3
  40. package/dist/{chunk-6OMIIF76.js.map → chunk-EM4KOKE6.js.map} +1 -1
  41. package/dist/{chunk-GPYLXEZO.js → chunk-FCOK73I3.js} +6 -120
  42. package/dist/chunk-FCOK73I3.js.map +1 -0
  43. package/dist/{chunk-ITRI47DF.cjs → chunk-GMGEAWFX.cjs} +41 -4
  44. package/dist/chunk-GMGEAWFX.cjs.map +1 -0
  45. package/dist/{chunk-LNH6NYG4.js → chunk-I3VBVP6R.js} +121 -6
  46. package/dist/chunk-I3VBVP6R.js.map +1 -0
  47. package/dist/{chunk-ZZHMJXM5.cjs → chunk-IXZCXK6Q.cjs} +122 -5
  48. package/dist/chunk-IXZCXK6Q.cjs.map +1 -0
  49. package/dist/{chunk-C2S246BV.js → chunk-J6FRFIVL.js} +3 -3
  50. package/dist/{chunk-C2S246BV.js.map → chunk-J6FRFIVL.js.map} +1 -1
  51. package/dist/{chunk-PLEMVK2W.js → chunk-KQLUMK56.js} +3 -3
  52. package/dist/{chunk-PLEMVK2W.js.map → chunk-KQLUMK56.js.map} +1 -1
  53. package/dist/{chunk-PNZVUH46.cjs → chunk-LAQ3Y5JP.cjs} +6 -6
  54. package/dist/{chunk-PNZVUH46.cjs.map → chunk-LAQ3Y5JP.cjs.map} +1 -1
  55. package/dist/{chunk-AESJLGMC.cjs → chunk-NDKZ6OR3.cjs} +6 -6
  56. package/dist/{chunk-AESJLGMC.cjs.map → chunk-NDKZ6OR3.cjs.map} +1 -1
  57. package/dist/{chunk-43IVRSFX.js → chunk-NVXNTHL4.js} +3 -3
  58. package/dist/{chunk-43IVRSFX.js.map → chunk-NVXNTHL4.js.map} +1 -1
  59. package/dist/{chunk-5EGTGHBW.js → chunk-PMWZTVIY.js} +3 -3
  60. package/dist/{chunk-5EGTGHBW.js.map → chunk-PMWZTVIY.js.map} +1 -1
  61. package/dist/{chunk-7MOQO6NO.cjs → chunk-RB54N5I7.cjs} +53 -5
  62. package/dist/chunk-RB54N5I7.cjs.map +1 -0
  63. package/dist/{chunk-2C4YUIVX.js → chunk-T2VGD4X6.js} +3 -3
  64. package/dist/{chunk-2C4YUIVX.js.map → chunk-T2VGD4X6.js.map} +1 -1
  65. package/dist/{chunk-4Q7ON335.js → chunk-TCCJ5I6G.js} +3 -3
  66. package/dist/{chunk-4Q7ON335.js.map → chunk-TCCJ5I6G.js.map} +1 -1
  67. package/dist/{chunk-4CI42DCG.js → chunk-U52KPOXT.js} +50 -5
  68. package/dist/chunk-U52KPOXT.js.map +1 -0
  69. package/dist/{chunk-SFTQO3TU.js → chunk-UO3FS6ZF.js} +3 -3
  70. package/dist/{chunk-SFTQO3TU.js.map → chunk-UO3FS6ZF.js.map} +1 -1
  71. package/dist/{chunk-LFS6UWSJ.cjs → chunk-XWUGPV7H.cjs} +5 -5
  72. package/dist/{chunk-LFS6UWSJ.cjs.map → chunk-XWUGPV7H.cjs.map} +1 -1
  73. package/dist/{chunk-OM5IVNEW.cjs → chunk-Z4KXF7WS.cjs} +165 -2
  74. package/dist/chunk-Z4KXF7WS.cjs.map +1 -0
  75. package/dist/connect/index.cjs +564 -283
  76. package/dist/connect/index.cjs.map +1 -1
  77. package/dist/connect/index.d.ts +3 -0
  78. package/dist/connect/index.js +292 -19
  79. package/dist/connect/index.js.map +1 -1
  80. package/dist/connect/viewer.cjs +7 -7
  81. package/dist/connect/viewer.js +7 -7
  82. package/dist/connection/runtime/ConnectedAppRuntime.d.ts +1 -1
  83. package/dist/connection/runtime/index.d.ts +1 -1
  84. package/dist/connection/runtime/requests.d.ts +8 -0
  85. package/dist/connection/runtime/useWelcomeDialog.d.ts +3 -0
  86. package/dist/connection/tips/ConnectedGettingStarted.d.ts +20 -0
  87. package/dist/connection/tips/ConnectedTipBar.d.ts +49 -0
  88. package/dist/connection/tips/useGettingStarted.d.ts +51 -0
  89. package/dist/embed/index.cjs +1 -1
  90. package/dist/embed/index.js +1 -1
  91. package/dist/home/index.cjs +23 -178
  92. package/dist/home/index.cjs.map +1 -1
  93. package/dist/home/index.js +3 -164
  94. package/dist/home/index.js.map +1 -1
  95. package/dist/index.cjs +457 -485
  96. package/dist/index.cjs.map +1 -1
  97. package/dist/index.js +15 -54
  98. package/dist/index.js.map +1 -1
  99. package/dist/shell/index.cjs +73 -73
  100. package/dist/shell/index.js +4 -4
  101. package/dist/studio/index.cjs +8 -8
  102. package/dist/studio/index.js +5 -5
  103. package/dist/tips/index.d.ts +1 -1
  104. package/dist/tips/visibility.d.ts +7 -0
  105. package/dist/workflow-canvas/index.cjs +17 -17
  106. package/dist/workflow-canvas/index.js +4 -4
  107. package/node_modules/@arbidocs/coedit/package.json +1 -1
  108. package/package.json +5 -5
  109. package/dist/chunk-4CI42DCG.js.map +0 -1
  110. package/dist/chunk-7MOQO6NO.cjs.map +0 -1
  111. package/dist/chunk-GPYLXEZO.js.map +0 -1
  112. package/dist/chunk-ITRI47DF.cjs.map +0 -1
  113. package/dist/chunk-LNH6NYG4.js.map +0 -1
  114. package/dist/chunk-OM5IVNEW.cjs.map +0 -1
  115. package/dist/chunk-ROWJU4SK.cjs.map +0 -1
  116. package/dist/chunk-UIUWCTIZ.js.map +0 -1
  117. package/dist/chunk-YQEXBJVO.js.map +0 -1
  118. package/dist/chunk-ZZHMJXM5.cjs.map +0 -1
@@ -1,9 +1,9 @@
1
1
  "use client";
2
- export { DEFAULT_SKILL_CARD_LABELS, DEFAULT_SKILL_ROW_LABELS, SkillCard, SkillRow, useWorkflowPreview } from '../chunk-6OMIIF76.js';
3
- export { ANNOTATE, ANNOTATE_ID, ActionStepBody, AgentAvatarField, AgentBar, AgentBarIconButton, AgentBarMenu, AgentBarNotes, AgentBarProbeAnswer, AgentBarQueuedNote, AgentBarStatus, AgentCard, AgentConnectInstructions, AgentCreateView, AgentCreatedView, AgentCreator, AgentEditView, AgentGallery, AgentMainView, AgentTypeSelector, ApprovalEvidence, AssigneeLine, BUILTIN_SKILLS, CHRONOLOGY, CHRONOLOGY_ID, CUSTOM_TASK, CUSTOM_TASK_ID, CapabilityGrid, CapabilityTile, ConfigField, ConfigForm, ConsentActions, ConsentBulletList, ConsentCard, ConsentFootnote, ConsentHeader, ConsentMessage, ConsentNotice, ConsentPage, ConsentPermissionList, ConsentSection, ConsentStrong, ConsentText, ConversationListView, ConversationTurnSpeaker, CopyableUrl, DASHBOARD_OPERATIONS, DASHBOARD_PINNED, DEEP_RESEARCH, DEEP_RESEARCH_ID, DEFAULT_AGENT_AVATAR_FIELD_LABELS, DEFAULT_AGENT_BAR_LABELS, DEFAULT_AGENT_CAPABILITIES, DEFAULT_AGENT_CARD_LABELS, DEFAULT_AGENT_CREATOR_LABELS, DEFAULT_AGENT_GALLERY_LABELS, DEFAULT_AGENT_TEMPLATES, DEFAULT_AGENT_TYPES, 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_BUILDER_LABELS, DEFAULT_SKILL_EDIT_FORM_LABELS, DEFAULT_SKILL_GENERATE_FORM_LABELS, DEFAULT_SKILL_GLOBAL_BADGE_LABELS, DEFAULT_SKILL_VIEW_TOGGLE_LABELS, DEFAULT_STEP_BAR_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_THREAD_LAUNCHER_LABELS, DEFAULT_THREAD_STATE_LABELS, DEFAULT_TUPLE_ARRAY_FIELD_LABELS, DEFAULT_UPLOAD_TASK_ITEM_LABELS, DEFAULT_UPLOAD_TASK_LIST_LABELS, DEFAULT_WORKFLOWS_CHROME_LABELS, DEFAULT_WORKFLOW_RUNNER_LABELS, DEFAULT_WORKFLOW_RUN_STATUS_LABELS, DEFAULT_WORKFLOW_STEP_PARTS_LABELS, DEFAULT_WORKFLOW_THREAD_STRIP_LABELS, DERIVED_NAME_WORDS, EMPTY_NEW_THREAD, GENERATE_IMAGE, GENERATE_IMAGE_ID, IMAGE_ASPECT_AUTO, IMAGE_ASPECT_RATIOS, MAX_TASK_DEPTH, NewThreadDialog, PillSelect, REMIND_TASK, REMIND_TASK_ID, RecurrenceBuilder, SKILL_FIELD_TYPE_LABELS, SKILL_MAIN_FILENAME, SKILL_SOURCE_LABELS, SKILL_TYPES, SKILL_TYPE_LABELS, STATUS_LABELS, STATUS_ORDER, STATUS_TONE, SUMMARISE, SUMMARISE_ID, SendBackControl, SkillActionButton, SkillDetail, SkillDetailSection, SkillEditForm, SkillFilterChips, SkillGenerateForm, SkillGlobalBadge, SkillLibraryDetail, SkillTile, SkillTypeBadge, SkillViewToggle, TASK_COLUMN_ORDER, TIMELINE, TIMELINE_ID, TIMELINE_PROMPT, TRANSLATE, TRANSLATE_ID, TRANSLATE_LANGUAGES, TRIGGER_LABELS, TaskActivityDialog, TaskActivityTimeline, TaskComposer, TaskEmptyState, TaskInbox, TaskMoveDialog, TaskOutputsCell, TaskPlan, TaskRunsDialog, TaskStartDialog, TaskStatusPill, TaskTable, TaskThreadChip, TasksToolbar, ThreadLauncher, ThreadNotifyDialog, ThreadStatusLine, TupleArrayField, UploadTaskItem, UploadTaskList, WEB_WORKFLOWS, WORD_ASK, WORD_ASK_ID, WORD_CONTINUE, WORD_CONTINUE_ID, WORD_SUMMARISE, WORD_SUMMARISE_ID, WORD_SUPPORT, WORD_SUPPORT_ID, WORD_WORKFLOWS, WORKFLOW_REGISTRY, WorkflowRunStatus, WorkflowRunner, WorkflowStepAction, WorkflowThreadStartedBy, WorkflowThreadStrip, WorkflowsToolbar, activeStepId, agentConfigSectionToValues, agentCreatorToConfigSection, asTaskStatus, authModeFor, buildLibrarySkills, buildTaskRows, buildZipSkillImport, closeWorkflowLaunch, composePersona, composerToTaskQuery, composerToWorkRequest, composerToWorkflowRequest, composerToWorkflowUpdate, createTaskColumns, createsWork, defaultScopeRenderer, defaultTaskComposerValues, deriveAgentName, deriveAnnotationName, deriveWorkflowName, descendantIds, filterConversationRows, filterLibrarySkills, firstWords, formatElapsed, goalProgress, groupAgentTasks, groupThreadActivity, hasTaskFields, humanizeSection, importMarkdownSkill, importSkillFile, importSkillFromUrl, indexTasks, inferType, inputDocumentIds, isAgenticWorkflow, isMainSkillFile, isOutOfBounds, isPlainTodo, isValidAgentName, isoToLocalInput, labelRef, labelRefKey, localInputToIso, matchRequiredLabels, moveTargets, newThreadToRequest, nextCriterionId, openWorkflowLaunch, ownerExtId, parseSkillFrontmatter, prettifyKey, readSkillArchive, recordWorkflowUse, renderWorkflowIcon, requiredLabelsOf, resetWorkflowUsage, resolveScopeInputs, serializeSkill, skillSlug, sortByRecentUse, stepWindow, stripPersonaPreamble, summarizeAgent, summarizeCapabilities, taskActivityHeadline, taskComposerToCreateRequest, taskComposerToUpdateRequest, taskNeedsAccess, taskToComposerValues, unresolvedLabelRefs, useWorkflowLaunchRequest, useWorkflowUsage, useWorkflowView, withLabelIds, workflowFromSkillMarkdown, workflowTaskFields, workflowToComposerValues, workflowToSkillMarkdown, workflowWhen } from '../chunk-4Q7ON335.js';
2
+ export { DEFAULT_SKILL_CARD_LABELS, DEFAULT_SKILL_ROW_LABELS, SkillCard, SkillRow, useWorkflowPreview } from '../chunk-EM4KOKE6.js';
3
+ export { ANNOTATE, ANNOTATE_ID, ActionStepBody, AgentAvatarField, AgentBar, AgentBarIconButton, AgentBarMenu, AgentBarNotes, AgentBarProbeAnswer, AgentBarQueuedNote, AgentBarStatus, AgentCard, AgentConnectInstructions, AgentCreateView, AgentCreatedView, AgentCreator, AgentEditView, AgentGallery, AgentMainView, AgentTypeSelector, ApprovalEvidence, AssigneeLine, BUILTIN_SKILLS, CHRONOLOGY, CHRONOLOGY_ID, CUSTOM_TASK, CUSTOM_TASK_ID, CapabilityGrid, CapabilityTile, ConfigField, ConfigForm, ConsentActions, ConsentBulletList, ConsentCard, ConsentFootnote, ConsentHeader, ConsentMessage, ConsentNotice, ConsentPage, ConsentPermissionList, ConsentSection, ConsentStrong, ConsentText, ConversationListView, ConversationTurnSpeaker, CopyableUrl, DASHBOARD_OPERATIONS, DASHBOARD_PINNED, DEEP_RESEARCH, DEEP_RESEARCH_ID, DEFAULT_AGENT_AVATAR_FIELD_LABELS, DEFAULT_AGENT_BAR_LABELS, DEFAULT_AGENT_CAPABILITIES, DEFAULT_AGENT_CARD_LABELS, DEFAULT_AGENT_CREATOR_LABELS, DEFAULT_AGENT_GALLERY_LABELS, DEFAULT_AGENT_TEMPLATES, DEFAULT_AGENT_TYPES, 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_BUILDER_LABELS, DEFAULT_SKILL_EDIT_FORM_LABELS, DEFAULT_SKILL_GENERATE_FORM_LABELS, DEFAULT_SKILL_GLOBAL_BADGE_LABELS, DEFAULT_SKILL_VIEW_TOGGLE_LABELS, DEFAULT_STEP_BAR_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_THREAD_LAUNCHER_LABELS, DEFAULT_THREAD_STATE_LABELS, DEFAULT_TUPLE_ARRAY_FIELD_LABELS, DEFAULT_UPLOAD_TASK_ITEM_LABELS, DEFAULT_UPLOAD_TASK_LIST_LABELS, DEFAULT_WORKFLOWS_CHROME_LABELS, DEFAULT_WORKFLOW_RUNNER_LABELS, DEFAULT_WORKFLOW_RUN_STATUS_LABELS, DEFAULT_WORKFLOW_STEP_PARTS_LABELS, DEFAULT_WORKFLOW_THREAD_STRIP_LABELS, DERIVED_NAME_WORDS, EMPTY_NEW_THREAD, GENERATE_IMAGE, GENERATE_IMAGE_ID, IMAGE_ASPECT_AUTO, IMAGE_ASPECT_RATIOS, MAX_TASK_DEPTH, NewThreadDialog, PillSelect, REMIND_TASK, REMIND_TASK_ID, RecurrenceBuilder, SKILL_FIELD_TYPE_LABELS, SKILL_MAIN_FILENAME, SKILL_SOURCE_LABELS, SKILL_TYPES, SKILL_TYPE_LABELS, STATUS_LABELS, STATUS_ORDER, STATUS_TONE, SUMMARISE, SUMMARISE_ID, SendBackControl, SkillActionButton, SkillDetail, SkillDetailSection, SkillEditForm, SkillFilterChips, SkillGenerateForm, SkillGlobalBadge, SkillLibraryDetail, SkillTile, SkillTypeBadge, SkillViewToggle, TASK_COLUMN_ORDER, TIMELINE, TIMELINE_ID, TIMELINE_PROMPT, TRANSLATE, TRANSLATE_ID, TRANSLATE_LANGUAGES, TRIGGER_LABELS, TaskActivityDialog, TaskActivityTimeline, TaskComposer, TaskEmptyState, TaskInbox, TaskMoveDialog, TaskOutputsCell, TaskPlan, TaskRunsDialog, TaskStartDialog, TaskStatusPill, TaskTable, TaskThreadChip, TasksToolbar, ThreadLauncher, ThreadNotifyDialog, ThreadStatusLine, TupleArrayField, UploadTaskItem, UploadTaskList, WEB_WORKFLOWS, WORD_ASK, WORD_ASK_ID, WORD_CONTINUE, WORD_CONTINUE_ID, WORD_SUMMARISE, WORD_SUMMARISE_ID, WORD_SUPPORT, WORD_SUPPORT_ID, WORD_WORKFLOWS, WORKFLOW_REGISTRY, WorkflowRunStatus, WorkflowRunner, WorkflowStepAction, WorkflowThreadStartedBy, WorkflowThreadStrip, WorkflowsToolbar, activeStepId, agentConfigSectionToValues, agentCreatorToConfigSection, asTaskStatus, authModeFor, buildLibrarySkills, buildTaskRows, buildZipSkillImport, closeWorkflowLaunch, composePersona, composerToTaskQuery, composerToWorkRequest, composerToWorkflowRequest, composerToWorkflowUpdate, createTaskColumns, createsWork, defaultScopeRenderer, defaultTaskComposerValues, deriveAgentName, deriveAnnotationName, deriveWorkflowName, descendantIds, filterConversationRows, filterLibrarySkills, firstWords, formatElapsed, goalProgress, groupAgentTasks, groupThreadActivity, hasTaskFields, humanizeSection, importMarkdownSkill, importSkillFile, importSkillFromUrl, indexTasks, inferType, inputDocumentIds, isAgenticWorkflow, isMainSkillFile, isOutOfBounds, isPlainTodo, isValidAgentName, isoToLocalInput, labelRef, labelRefKey, localInputToIso, matchRequiredLabels, moveTargets, newThreadToRequest, nextCriterionId, openWorkflowLaunch, ownerExtId, parseSkillFrontmatter, prettifyKey, readSkillArchive, recordWorkflowUse, renderWorkflowIcon, requiredLabelsOf, resetWorkflowUsage, resolveScopeInputs, serializeSkill, skillSlug, sortByRecentUse, stepWindow, stripPersonaPreamble, summarizeAgent, summarizeCapabilities, taskActivityHeadline, taskComposerToCreateRequest, taskComposerToUpdateRequest, taskNeedsAccess, taskToComposerValues, unresolvedLabelRefs, useWorkflowLaunchRequest, useWorkflowUsage, useWorkflowView, withLabelIds, workflowFromSkillMarkdown, workflowTaskFields, workflowToComposerValues, workflowToSkillMarkdown, workflowWhen } from '../chunk-TCCJ5I6G.js';
4
4
  export { AUTOMATION_EVENTS, AssistantEntity, DEFAULT_AGENT_STEPS_LABELS, DEFAULT_RECURRENCE, DEFAULT_SUBAGENT_ROSTER_LABELS, GoalCriteria, MODEL_NAME_ICONS, MODEL_TIER_ICON_MAP, MODEL_TIER_LABELS, STEP_ICON_MAP, StepDetail, StepNarration, StepOutcome, StepParams, StepRow, StepSummary, StepTrace, StepTraceSummary, SubAgentLane, SubStepGroup, SubagentRoster, TAG_ICONS, TOOL_ICON_MAP, TaskFlow, ThreadActivity, WEEKDAYS, buildRRule, compactThreadActivity, describeRRule, describeTrigger, fromPlanAssignee, fromPlanDocumentRef, fromPlanSteps, getAgentStepIcon, getAgentStepPresentation, getCurrentAgentStepPresentation, getModelIcon, isIncompleteSignal, isSupersededStop, latestMessageTime, layoutFromPlanSteps, linkedRunsFromActivity, notifiedLabel, parseRRule, stepAccent, toPlanAssignee, toPlanDocumentRef, toPlanSteps, unnotifiedMentions } from '../chunk-2VH2PT3J.js';
5
- import '../chunk-CQCC7LE7.js';
6
5
  export { ChevronShape, ProgressChevron, ProgressChevronBar } from '../chunk-LRPGXNMA.js';
6
+ import '../chunk-CQCC7LE7.js';
7
7
  export { AgentSelect, DEFAULT_AGENT_SELECT_LABELS, DEFAULT_SCHEMA_FORM_LABELS, DEFAULT_TASK_TRIGGER_CHIP_LABELS, DEFAULT_WORKFLOW_CATALOGUE_LABELS, DEFAULT_WORKFLOW_CONFIG_DIALOG_LABELS, DEFAULT_WORKFLOW_DOCUMENTS_FIELD_LABELS, DEFAULT_WORKFLOW_LIST_LABELS, PersonPill, SchemaForm, TaskTriggerChip, WORKFLOW_COLUMN_ORDER, WorkflowCatalogueSections, WorkflowConfigDialog, WorkflowDocumentsField, WorkflowLauncher, WorkflowsTable, buildWorkflowScopeSource, createWorkflowColumns, documentScopeLabels, matchWorkflowScope } from '../chunk-CEKOZAGO.js';
8
8
  export { hasTrigger, isScheduledWorkflow, isSkillRow, workflowSignal, workflowStatus, workflowTriggerType } from '../chunk-4QUUU7GH.js';
9
9
  import '../chunk-G4GLDQLY.js';
@@ -66,10 +66,10 @@ function ConnectedIncomingCall() {
66
66
  );
67
67
  }
68
68
  var ConnectedCallDock = react.lazy(
69
- () => import('../ConnectedCallDock-GJAGY75U.cjs').then((m) => ({ default: m.ConnectedCallDock }))
69
+ () => import('../ConnectedCallDock-FFIDDYGH.cjs').then((m) => ({ default: m.ConnectedCallDock }))
70
70
  );
71
71
  var ConnectedCallRoom = react.lazy(
72
- () => import('../ConnectedCallRoom-KLE2PCMQ.cjs').then((m) => ({ default: m.ConnectedCallRoom }))
72
+ () => import('../ConnectedCallRoom-HYRLJUIV.cjs').then((m) => ({ default: m.ConnectedCallRoom }))
73
73
  );
74
74
  function ConnectedCallLayer() {
75
75
  const hasActiveCall = react$1.useCallSession((s) => s.active !== null);
@@ -65,10 +65,10 @@ function ConnectedIncomingCall() {
65
65
  );
66
66
  }
67
67
  var ConnectedCallDock = lazy(
68
- () => import('../ConnectedCallDock-DEAEFUUD.js').then((m) => ({ default: m.ConnectedCallDock }))
68
+ () => import('../ConnectedCallDock-VMEBH4LG.js').then((m) => ({ default: m.ConnectedCallDock }))
69
69
  );
70
70
  var ConnectedCallRoom = lazy(
71
- () => import('../ConnectedCallRoom-DI7UYRHE.js').then((m) => ({ default: m.ConnectedCallRoom }))
71
+ () => import('../ConnectedCallRoom-2FNSX2VG.js').then((m) => ({ default: m.ConnectedCallRoom }))
72
72
  );
73
73
  function ConnectedCallLayer() {
74
74
  const hasActiveCall = useCallSession((s) => s.active !== null);
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkCGCTODPC_cjs = require('../chunk-CGCTODPC.cjs');
4
+ var chunk6PGTH2HD_cjs = require('../chunk-6PGTH2HD.cjs');
5
5
  var chunkTQOCQ6RD_cjs = require('../chunk-TQOCQ6RD.cjs');
6
- var chunkTVHTXO6V_cjs = require('../chunk-TVHTXO6V.cjs');
7
- var chunkPNZVUH46_cjs = require('../chunk-PNZVUH46.cjs');
6
+ var chunk56WWEK6I_cjs = require('../chunk-56WWEK6I.cjs');
7
+ var chunkLAQ3Y5JP_cjs = require('../chunk-LAQ3Y5JP.cjs');
8
8
  var chunkLT6WRY7A_cjs = require('../chunk-LT6WRY7A.cjs');
9
9
  var chunk2NW66KJF_cjs = require('../chunk-2NW66KJF.cjs');
10
10
  var chunkDASZUEP3_cjs = require('../chunk-DASZUEP3.cjs');
@@ -12,7 +12,7 @@ var chunkUVZSX6GP_cjs = require('../chunk-UVZSX6GP.cjs');
12
12
  var chunkWWFHS6EI_cjs = require('../chunk-WWFHS6EI.cjs');
13
13
  require('../chunk-TAVQOU3M.cjs');
14
14
  var chunkZ2XZ2D4N_cjs = require('../chunk-Z2XZ2D4N.cjs');
15
- require('../chunk-ITRI47DF.cjs');
15
+ require('../chunk-GMGEAWFX.cjs');
16
16
  require('../chunk-KQF7POTG.cjs');
17
17
  require('../chunk-IN6ILI5A.cjs');
18
18
  var chunkBRDCHYIT_cjs = require('../chunk-BRDCHYIT.cjs');
@@ -35,67 +35,67 @@ require('../chunk-DES3K4SD.cjs');
35
35
 
36
36
  Object.defineProperty(exports, "AssistantToaster", {
37
37
  enumerable: true,
38
- get: function () { return chunkCGCTODPC_cjs.AssistantToaster; }
38
+ get: function () { return chunk6PGTH2HD_cjs.AssistantToaster; }
39
39
  });
40
40
  Object.defineProperty(exports, "ContextActionButton", {
41
41
  enumerable: true,
42
- get: function () { return chunkCGCTODPC_cjs.ContextActionButton; }
42
+ get: function () { return chunk6PGTH2HD_cjs.ContextActionButton; }
43
43
  });
44
44
  Object.defineProperty(exports, "ContextCheckRow", {
45
45
  enumerable: true,
46
- get: function () { return chunkCGCTODPC_cjs.ContextCheckRow; }
46
+ get: function () { return chunk6PGTH2HD_cjs.ContextCheckRow; }
47
47
  });
48
48
  Object.defineProperty(exports, "ContextPanelContent", {
49
49
  enumerable: true,
50
- get: function () { return chunkCGCTODPC_cjs.ContextPanelContent; }
50
+ get: function () { return chunk6PGTH2HD_cjs.ContextPanelContent; }
51
51
  });
52
52
  Object.defineProperty(exports, "ContextPanelFooter", {
53
53
  enumerable: true,
54
- get: function () { return chunkCGCTODPC_cjs.ContextPanelFooter; }
54
+ get: function () { return chunk6PGTH2HD_cjs.ContextPanelFooter; }
55
55
  });
56
56
  Object.defineProperty(exports, "ContextPanelTabs", {
57
57
  enumerable: true,
58
- get: function () { return chunkCGCTODPC_cjs.ContextPanelTabs; }
58
+ get: function () { return chunk6PGTH2HD_cjs.ContextPanelTabs; }
59
59
  });
60
60
  Object.defineProperty(exports, "ContextPickerList", {
61
61
  enumerable: true,
62
- get: function () { return chunkCGCTODPC_cjs.ContextPickerList; }
62
+ get: function () { return chunk6PGTH2HD_cjs.ContextPickerList; }
63
63
  });
64
64
  Object.defineProperty(exports, "ContextPickerRow", {
65
65
  enumerable: true,
66
- get: function () { return chunkCGCTODPC_cjs.ContextPickerRow; }
66
+ get: function () { return chunk6PGTH2HD_cjs.ContextPickerRow; }
67
67
  });
68
68
  Object.defineProperty(exports, "ContextSearchInput", {
69
69
  enumerable: true,
70
- get: function () { return chunkCGCTODPC_cjs.ContextSearchInput; }
70
+ get: function () { return chunk6PGTH2HD_cjs.ContextSearchInput; }
71
71
  });
72
72
  Object.defineProperty(exports, "ContextSelectList", {
73
73
  enumerable: true,
74
- get: function () { return chunkCGCTODPC_cjs.ContextSelectList; }
74
+ get: function () { return chunk6PGTH2HD_cjs.ContextSelectList; }
75
75
  });
76
76
  Object.defineProperty(exports, "ContextSelectRow", {
77
77
  enumerable: true,
78
- get: function () { return chunkCGCTODPC_cjs.ContextSelectRow; }
78
+ get: function () { return chunk6PGTH2HD_cjs.ContextSelectRow; }
79
79
  });
80
80
  Object.defineProperty(exports, "DEFAULT_LABEL_PIN_ROW_LABELS", {
81
81
  enumerable: true,
82
- get: function () { return chunkCGCTODPC_cjs.DEFAULT_LABEL_PIN_ROW_LABELS; }
82
+ get: function () { return chunk6PGTH2HD_cjs.DEFAULT_LABEL_PIN_ROW_LABELS; }
83
83
  });
84
84
  Object.defineProperty(exports, "DEFAULT_PINNED_DOC_CHIP_LABELS", {
85
85
  enumerable: true,
86
- get: function () { return chunkCGCTODPC_cjs.DEFAULT_PINNED_DOC_CHIP_LABELS; }
86
+ get: function () { return chunk6PGTH2HD_cjs.DEFAULT_PINNED_DOC_CHIP_LABELS; }
87
87
  });
88
88
  Object.defineProperty(exports, "LabelPinRow", {
89
89
  enumerable: true,
90
- get: function () { return chunkCGCTODPC_cjs.LabelPinRow; }
90
+ get: function () { return chunk6PGTH2HD_cjs.LabelPinRow; }
91
91
  });
92
92
  Object.defineProperty(exports, "PinnedDocChip", {
93
93
  enumerable: true,
94
- get: function () { return chunkCGCTODPC_cjs.PinnedDocChip; }
94
+ get: function () { return chunk6PGTH2HD_cjs.PinnedDocChip; }
95
95
  });
96
96
  Object.defineProperty(exports, "useDismissibleCard", {
97
97
  enumerable: true,
98
- get: function () { return chunkCGCTODPC_cjs.useDismissibleCard; }
98
+ get: function () { return chunk6PGTH2HD_cjs.useDismissibleCard; }
99
99
  });
100
100
  Object.defineProperty(exports, "DEFAULT_DRAFTING_START_LABELS", {
101
101
  enumerable: true,
@@ -115,151 +115,151 @@ Object.defineProperty(exports, "buildDraftingPrompt", {
115
115
  });
116
116
  Object.defineProperty(exports, "ComposerAccessories", {
117
117
  enumerable: true,
118
- get: function () { return chunkTVHTXO6V_cjs.ComposerAccessories; }
118
+ get: function () { return chunk56WWEK6I_cjs.ComposerAccessories; }
119
119
  });
120
120
  Object.defineProperty(exports, "ComposerTools", {
121
121
  enumerable: true,
122
- get: function () { return chunkTVHTXO6V_cjs.ComposerTools; }
122
+ get: function () { return chunk56WWEK6I_cjs.ComposerTools; }
123
123
  });
124
124
  Object.defineProperty(exports, "Conversation", {
125
125
  enumerable: true,
126
- get: function () { return chunkTVHTXO6V_cjs.Conversation; }
126
+ get: function () { return chunk56WWEK6I_cjs.Conversation; }
127
127
  });
128
128
  Object.defineProperty(exports, "ConversationBody", {
129
129
  enumerable: true,
130
- get: function () { return chunkTVHTXO6V_cjs.ConversationBody; }
130
+ get: function () { return chunk56WWEK6I_cjs.ConversationBody; }
131
131
  });
132
132
  Object.defineProperty(exports, "ConversationHeader", {
133
133
  enumerable: true,
134
- get: function () { return chunkTVHTXO6V_cjs.ConversationHeader; }
134
+ get: function () { return chunk56WWEK6I_cjs.ConversationHeader; }
135
135
  });
136
136
  Object.defineProperty(exports, "ConversationHeaderActions", {
137
137
  enumerable: true,
138
- get: function () { return chunkTVHTXO6V_cjs.ConversationHeaderActions; }
138
+ get: function () { return chunk56WWEK6I_cjs.ConversationHeaderActions; }
139
139
  });
140
140
  Object.defineProperty(exports, "ConversationHistoryPane", {
141
141
  enumerable: true,
142
- get: function () { return chunkTVHTXO6V_cjs.ConversationHistoryPane; }
142
+ get: function () { return chunk56WWEK6I_cjs.ConversationHistoryPane; }
143
143
  });
144
144
  Object.defineProperty(exports, "ConversationLoading", {
145
145
  enumerable: true,
146
- get: function () { return chunkTVHTXO6V_cjs.ConversationLoading; }
146
+ get: function () { return chunk56WWEK6I_cjs.ConversationLoading; }
147
147
  });
148
148
  Object.defineProperty(exports, "ConversationMain", {
149
149
  enumerable: true,
150
- get: function () { return chunkTVHTXO6V_cjs.ConversationMain; }
150
+ get: function () { return chunk56WWEK6I_cjs.ConversationMain; }
151
151
  });
152
152
  Object.defineProperty(exports, "ConversationRoot", {
153
153
  enumerable: true,
154
- get: function () { return chunkTVHTXO6V_cjs.ConversationRoot; }
154
+ get: function () { return chunk56WWEK6I_cjs.ConversationRoot; }
155
155
  });
156
156
  Object.defineProperty(exports, "ConversationSearchView", {
157
157
  enumerable: true,
158
- get: function () { return chunkTVHTXO6V_cjs.ConversationSearchView; }
158
+ get: function () { return chunk56WWEK6I_cjs.ConversationSearchView; }
159
159
  });
160
160
  Object.defineProperty(exports, "ConversationSettingsButton", {
161
161
  enumerable: true,
162
- get: function () { return chunkTVHTXO6V_cjs.ConversationSettingsButton; }
162
+ get: function () { return chunk56WWEK6I_cjs.ConversationSettingsButton; }
163
163
  });
164
164
  Object.defineProperty(exports, "DEFAULT_CONVERSATION_LAYOUT_LABELS", {
165
165
  enumerable: true,
166
- get: function () { return chunkTVHTXO6V_cjs.DEFAULT_CONVERSATION_LAYOUT_LABELS; }
166
+ get: function () { return chunk56WWEK6I_cjs.DEFAULT_CONVERSATION_LAYOUT_LABELS; }
167
167
  });
168
168
  Object.defineProperty(exports, "DEFAULT_CONVERSATION_PARTS_LABELS", {
169
169
  enumerable: true,
170
- get: function () { return chunkTVHTXO6V_cjs.DEFAULT_CONVERSATION_PARTS_LABELS; }
170
+ get: function () { return chunk56WWEK6I_cjs.DEFAULT_CONVERSATION_PARTS_LABELS; }
171
171
  });
172
172
  Object.defineProperty(exports, "DEFAULT_CONVERSATION_SEARCH_LABELS", {
173
173
  enumerable: true,
174
- get: function () { return chunkTVHTXO6V_cjs.DEFAULT_CONVERSATION_SEARCH_LABELS; }
174
+ get: function () { return chunk56WWEK6I_cjs.DEFAULT_CONVERSATION_SEARCH_LABELS; }
175
175
  });
176
176
  Object.defineProperty(exports, "DEFAULT_MODEL_PRICING_TIP_LABELS", {
177
177
  enumerable: true,
178
- get: function () { return chunkTVHTXO6V_cjs.DEFAULT_MODEL_PRICING_TIP_LABELS; }
178
+ get: function () { return chunk56WWEK6I_cjs.DEFAULT_MODEL_PRICING_TIP_LABELS; }
179
179
  });
180
180
  Object.defineProperty(exports, "DEFAULT_PENDING_ANSWER_BAR_LABELS", {
181
181
  enumerable: true,
182
- get: function () { return chunkTVHTXO6V_cjs.DEFAULT_PENDING_ANSWER_BAR_LABELS; }
182
+ get: function () { return chunk56WWEK6I_cjs.DEFAULT_PENDING_ANSWER_BAR_LABELS; }
183
183
  });
184
184
  Object.defineProperty(exports, "ModelAutoIcon", {
185
185
  enumerable: true,
186
- get: function () { return chunkTVHTXO6V_cjs.ModelAutoIcon; }
186
+ get: function () { return chunk56WWEK6I_cjs.ModelAutoIcon; }
187
187
  });
188
188
  Object.defineProperty(exports, "ModelConfigureButton", {
189
189
  enumerable: true,
190
- get: function () { return chunkTVHTXO6V_cjs.ModelConfigureButton; }
190
+ get: function () { return chunk56WWEK6I_cjs.ModelConfigureButton; }
191
191
  });
192
192
  Object.defineProperty(exports, "ModelDot", {
193
193
  enumerable: true,
194
- get: function () { return chunkTVHTXO6V_cjs.ModelDot; }
194
+ get: function () { return chunk56WWEK6I_cjs.ModelDot; }
195
195
  });
196
196
  Object.defineProperty(exports, "ModelMenuDivider", {
197
197
  enumerable: true,
198
- get: function () { return chunkTVHTXO6V_cjs.ModelMenuDivider; }
198
+ get: function () { return chunk56WWEK6I_cjs.ModelMenuDivider; }
199
199
  });
200
200
  Object.defineProperty(exports, "ModelMenuMessage", {
201
201
  enumerable: true,
202
- get: function () { return chunkTVHTXO6V_cjs.ModelMenuMessage; }
202
+ get: function () { return chunk56WWEK6I_cjs.ModelMenuMessage; }
203
203
  });
204
204
  Object.defineProperty(exports, "ModelOption", {
205
205
  enumerable: true,
206
- get: function () { return chunkTVHTXO6V_cjs.ModelOption; }
206
+ get: function () { return chunk56WWEK6I_cjs.ModelOption; }
207
207
  });
208
208
  Object.defineProperty(exports, "ModelOptionLabel", {
209
209
  enumerable: true,
210
- get: function () { return chunkTVHTXO6V_cjs.ModelOptionLabel; }
210
+ get: function () { return chunk56WWEK6I_cjs.ModelOptionLabel; }
211
211
  });
212
212
  Object.defineProperty(exports, "ModelPickerPopover", {
213
213
  enumerable: true,
214
- get: function () { return chunkTVHTXO6V_cjs.ModelPickerPopover; }
214
+ get: function () { return chunk56WWEK6I_cjs.ModelPickerPopover; }
215
215
  });
216
216
  Object.defineProperty(exports, "ModelPickerTrigger", {
217
217
  enumerable: true,
218
- get: function () { return chunkTVHTXO6V_cjs.ModelPickerTrigger; }
218
+ get: function () { return chunk56WWEK6I_cjs.ModelPickerTrigger; }
219
219
  });
220
220
  Object.defineProperty(exports, "ModelPricingTip", {
221
221
  enumerable: true,
222
- get: function () { return chunkTVHTXO6V_cjs.ModelPricingTip; }
222
+ get: function () { return chunk56WWEK6I_cjs.ModelPricingTip; }
223
223
  });
224
224
  Object.defineProperty(exports, "ModelTierIcon", {
225
225
  enumerable: true,
226
- get: function () { return chunkTVHTXO6V_cjs.ModelTierIcon; }
226
+ get: function () { return chunk56WWEK6I_cjs.ModelTierIcon; }
227
227
  });
228
228
  Object.defineProperty(exports, "ModelTierOption", {
229
229
  enumerable: true,
230
- get: function () { return chunkTVHTXO6V_cjs.ModelTierOption; }
230
+ get: function () { return chunk56WWEK6I_cjs.ModelTierOption; }
231
231
  });
232
232
  Object.defineProperty(exports, "ModelTriggerContent", {
233
233
  enumerable: true,
234
- get: function () { return chunkTVHTXO6V_cjs.ModelTriggerContent; }
234
+ get: function () { return chunk56WWEK6I_cjs.ModelTriggerContent; }
235
235
  });
236
236
  Object.defineProperty(exports, "NewChatButton", {
237
237
  enumerable: true,
238
- get: function () { return chunkTVHTXO6V_cjs.NewChatButton; }
238
+ get: function () { return chunk56WWEK6I_cjs.NewChatButton; }
239
239
  });
240
240
  Object.defineProperty(exports, "NewPaChatButton", {
241
241
  enumerable: true,
242
- get: function () { return chunkTVHTXO6V_cjs.NewPaChatButton; }
242
+ get: function () { return chunk56WWEK6I_cjs.NewPaChatButton; }
243
243
  });
244
244
  Object.defineProperty(exports, "PaModeBadge", {
245
245
  enumerable: true,
246
- get: function () { return chunkTVHTXO6V_cjs.PaModeBadge; }
246
+ get: function () { return chunk56WWEK6I_cjs.PaModeBadge; }
247
247
  });
248
248
  Object.defineProperty(exports, "PendingAnswerBar", {
249
249
  enumerable: true,
250
- get: function () { return chunkTVHTXO6V_cjs.PendingAnswerBar; }
250
+ get: function () { return chunk56WWEK6I_cjs.PendingAnswerBar; }
251
251
  });
252
252
  Object.defineProperty(exports, "AssistantDock", {
253
253
  enumerable: true,
254
- get: function () { return chunkPNZVUH46_cjs.AssistantDock; }
254
+ get: function () { return chunkLAQ3Y5JP_cjs.AssistantDock; }
255
255
  });
256
256
  Object.defineProperty(exports, "AssistantDockToggle", {
257
257
  enumerable: true,
258
- get: function () { return chunkPNZVUH46_cjs.AssistantDockToggle; }
258
+ get: function () { return chunkLAQ3Y5JP_cjs.AssistantDockToggle; }
259
259
  });
260
260
  Object.defineProperty(exports, "useAssistantDock", {
261
261
  enumerable: true,
262
- get: function () { return chunkPNZVUH46_cjs.useAssistantDock; }
262
+ get: function () { return chunkLAQ3Y5JP_cjs.useAssistantDock; }
263
263
  });
264
264
  Object.defineProperty(exports, "useOpenCitation", {
265
265
  enumerable: true,
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- export { AssistantToaster, ContextActionButton, ContextCheckRow, ContextPanelContent, ContextPanelFooter, ContextPanelTabs, ContextPickerList, ContextPickerRow, ContextSearchInput, ContextSelectList, ContextSelectRow, DEFAULT_LABEL_PIN_ROW_LABELS, DEFAULT_PINNED_DOC_CHIP_LABELS, LabelPinRow, PinnedDocChip, useDismissibleCard } from '../chunk-SFTQO3TU.js';
2
+ export { AssistantToaster, ContextActionButton, ContextCheckRow, ContextPanelContent, ContextPanelFooter, ContextPanelTabs, ContextPickerList, ContextPickerRow, ContextSearchInput, ContextSelectList, ContextSelectRow, DEFAULT_LABEL_PIN_ROW_LABELS, DEFAULT_PINNED_DOC_CHIP_LABELS, LabelPinRow, PinnedDocChip, useDismissibleCard } from '../chunk-UO3FS6ZF.js';
3
3
  export { DEFAULT_DRAFTING_START_LABELS, DEFAULT_DRAFTING_TYPES, DraftingStart, buildDraftingPrompt } from '../chunk-YMJ7CBOR.js';
4
- export { ComposerAccessories, ComposerTools, Conversation, ConversationBody, ConversationHeader, ConversationHeaderActions, ConversationHistoryPane, ConversationLoading, ConversationMain, ConversationRoot, ConversationSearchView, ConversationSettingsButton, DEFAULT_CONVERSATION_LAYOUT_LABELS, DEFAULT_CONVERSATION_PARTS_LABELS, DEFAULT_CONVERSATION_SEARCH_LABELS, DEFAULT_MODEL_PRICING_TIP_LABELS, DEFAULT_PENDING_ANSWER_BAR_LABELS, ModelAutoIcon, ModelConfigureButton, ModelDot, ModelMenuDivider, ModelMenuMessage, ModelOption, ModelOptionLabel, ModelPickerPopover, ModelPickerTrigger, ModelPricingTip, ModelTierIcon, ModelTierOption, ModelTriggerContent, NewChatButton, NewPaChatButton, PaModeBadge, PendingAnswerBar } from '../chunk-43IVRSFX.js';
5
- export { AssistantDock, AssistantDockToggle, useAssistantDock } from '../chunk-PLEMVK2W.js';
4
+ export { ComposerAccessories, ComposerTools, Conversation, ConversationBody, ConversationHeader, ConversationHeaderActions, ConversationHistoryPane, ConversationLoading, ConversationMain, ConversationRoot, ConversationSearchView, ConversationSettingsButton, DEFAULT_CONVERSATION_LAYOUT_LABELS, DEFAULT_CONVERSATION_PARTS_LABELS, DEFAULT_CONVERSATION_SEARCH_LABELS, DEFAULT_MODEL_PRICING_TIP_LABELS, DEFAULT_PENDING_ANSWER_BAR_LABELS, ModelAutoIcon, ModelConfigureButton, ModelDot, ModelMenuDivider, ModelMenuMessage, ModelOption, ModelOptionLabel, ModelPickerPopover, ModelPickerTrigger, ModelPricingTip, ModelTierIcon, ModelTierOption, ModelTriggerContent, NewChatButton, NewPaChatButton, PaModeBadge, PendingAnswerBar } from '../chunk-NVXNTHL4.js';
5
+ export { AssistantDock, AssistantDockToggle, useAssistantDock } from '../chunk-KQLUMK56.js';
6
6
  export { useOpenCitation } from '../chunk-QMYD35O3.js';
7
7
  export { AssistantModeToggle, ChatDocuments, ChatMessageContent, ChatPage, ChatThreadList, ChatThreadSelect, CitationMark, ContextChip, ConversationEmpty, DEFAULT_ASSISTANT_MODE_TOGGLE_LABELS, DEFAULT_CHAT_PAGE_LABELS, DEFAULT_CONVERSATION_EMPTY_LABELS, DEFAULT_MESSAGE_ALERT_LABELS, MessageAlert, useChatSurface, useControlledThread, useRegisterEmbeddedChat, useStartRequestedConversation } from '../chunk-OR6GABIG.js';
8
8
  export { BranchControls, ContextUsageBar, DEFAULT_BRANCH_CONTROLS_LABELS, DEFAULT_SLASH_MENU_LABELS, DEFAULT_THREAD_MAP_LABELS, DEFAULT_THREAD_VISUALIZER_LABELS, SlashMenu, ThreadMap, ThreadMapDiagram, ThreadMapError, ThreadMapLoading, ThreadVisualizer, buildMessageLink, buildSlashItems, buildThreadDiagram, copyMessageToClipboard, downloadTableAsCsv, filterSlashItems, findMessageDocument, flashMessage, getParticipantTints, groupOutputsByConversation, isLongPastedText, latestThreadVersionMessage, parseSlashTokenInProgress as parseSlashToken, threadForNode, useLongPaste, useRecipientDraft } from '../chunk-C2SIAQAV.js';
@@ -10,7 +10,7 @@ export { Composer, ComposerBranchingNotice, ComposerContainer, ComposerDock, Com
10
10
  export { DEFAULT_DRAFTING_DOC_CHIP_LABELS, DraftingDocChip } from '../chunk-67TZA3L7.js';
11
11
  import '../chunk-SUVMOGTC.js';
12
12
  export { DOC_ID_IN_HREF, rehypeDocEntityPills, workspaceDocIdFromHref } from '../chunk-DDCMLHXF.js';
13
- import '../chunk-YQEXBJVO.js';
13
+ import '../chunk-DF5X27QX.js';
14
14
  import '../chunk-UH7LTR2B.js';
15
15
  import '../chunk-UCVGWGI6.js';
16
16
  export { useMentionAutocomplete } from '../chunk-HMICW5O7.js';
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkCJF7B5A7_cjs = require('./chunk-CJF7B5A7.cjs');
4
+ var chunkDRUNPUDT_cjs = require('./chunk-DRUNPUDT.cjs');
5
5
  var chunk2UYT7MIX_cjs = require('./chunk-2UYT7MIX.cjs');
6
6
  var chunk555BS22J_cjs = require('./chunk-555BS22J.cjs');
7
7
  var chunkMHVNT4J3_cjs = require('./chunk-MHVNT4J3.cjs');
@@ -50,7 +50,7 @@ function useWorkflowPreview(workflow, { answer = "{prompt}", delayMs = 400, reso
50
50
  }, delayMs)
51
51
  );
52
52
  }, [states, steps, workflow]);
53
- return chunkCJF7B5A7_cjs.useWorkflowView({
53
+ return chunkDRUNPUDT_cjs.useWorkflowView({
54
54
  steps,
55
55
  states,
56
56
  inputs,
@@ -103,7 +103,7 @@ function SkillCard({
103
103
  className
104
104
  ),
105
105
  onClick,
106
- onKeyDown: chunkCJF7B5A7_cjs.activateOnKey(onClick),
106
+ onKeyDown: chunkDRUNPUDT_cjs.activateOnKey(onClick),
107
107
  "data-skill-name": name,
108
108
  "data-testid": chunkMHVNT4J3_cjs.testIdOr(testId ?? testIds?.root, { testId: "skill-card" }),
109
109
  "data-slot": "skill-card",
@@ -127,12 +127,12 @@ function SkillCard({
127
127
  "/",
128
128
  name
129
129
  ] }),
130
- type && type !== "markdown" && /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.SkillTypeBadge, { type }),
131
- isGlobal && /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.SkillGlobalBadge, { labels: l }),
130
+ type && type !== "markdown" && /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.SkillTypeBadge, { type }),
131
+ isGlobal && /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.SkillGlobalBadge, { labels: l }),
132
132
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 text-sm text-muted-foreground max-sm:order-last max-sm:w-full max-sm:line-clamp-2 sm:flex-1 sm:truncate", children: description }),
133
133
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-auto flex shrink-0 items-center gap-1", "data-slot": "skill-card-actions", children: [
134
134
  /* @__PURE__ */ jsxRuntime.jsx(
135
- chunkCJF7B5A7_cjs.SkillActionButton,
135
+ chunkDRUNPUDT_cjs.SkillActionButton,
136
136
  {
137
137
  label: l.preview,
138
138
  onClick: onPreview,
@@ -141,7 +141,7 @@ function SkillCard({
141
141
  }
142
142
  ),
143
143
  /* @__PURE__ */ jsxRuntime.jsx(
144
- chunkCJF7B5A7_cjs.SkillActionButton,
144
+ chunkDRUNPUDT_cjs.SkillActionButton,
145
145
  {
146
146
  label: l.edit,
147
147
  onClick: onEdit,
@@ -150,7 +150,7 @@ function SkillCard({
150
150
  }
151
151
  ),
152
152
  /* @__PURE__ */ jsxRuntime.jsx(
153
- chunkCJF7B5A7_cjs.SkillActionButton,
153
+ chunkDRUNPUDT_cjs.SkillActionButton,
154
154
  {
155
155
  label: l.export,
156
156
  onClick: onExport,
@@ -159,7 +159,7 @@ function SkillCard({
159
159
  }
160
160
  ),
161
161
  isOwner && onToggleVisibility && /* @__PURE__ */ jsxRuntime.jsx(
162
- chunkCJF7B5A7_cjs.SkillActionButton,
162
+ chunkDRUNPUDT_cjs.SkillActionButton,
163
163
  {
164
164
  label: isGlobal ? l.makePrivate : l.publish,
165
165
  tooltip: isGlobal ? l.makePrivateTooltip : l.publish,
@@ -214,7 +214,7 @@ function SkillRow({
214
214
  className
215
215
  ),
216
216
  onClick: onInvoke,
217
- onKeyDown: chunkCJF7B5A7_cjs.activateOnKey(onInvoke),
217
+ onKeyDown: chunkDRUNPUDT_cjs.activateOnKey(onInvoke),
218
218
  "data-testid": chunkMHVNT4J3_cjs.testIdOr(testId, { testId: `skills-panel-row-${name}` }),
219
219
  "data-slot": "skill-row",
220
220
  title: l.insertTitle(name),
@@ -232,23 +232,23 @@ function SkillRow({
232
232
  "/",
233
233
  name
234
234
  ] }),
235
- type && type !== "markdown" && /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.SkillTypeBadge, { type }),
236
- isGlobal && /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.SkillGlobalBadge, { labels: l })
235
+ type && type !== "markdown" && /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.SkillTypeBadge, { type }),
236
+ isGlobal && /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.SkillGlobalBadge, { labels: l })
237
237
  ] }),
238
238
  description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-xs text-muted-foreground", children: description })
239
239
  ] }),
240
240
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-0.5", children: [
241
- /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.SkillActionButton, { label: l.preview, onClick: () => onPreview(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Eye, { className: "size-4" }) }),
242
- onEdit && /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.SkillActionButton, { label: l.edit, onClick: () => onEdit(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pencil, { className: "size-4" }) }),
241
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.SkillActionButton, { label: l.preview, onClick: () => onPreview(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Eye, { className: "size-4" }) }),
242
+ onEdit && /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.SkillActionButton, { label: l.edit, onClick: () => onEdit(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pencil, { className: "size-4" }) }),
243
243
  onTogglePublish && /* @__PURE__ */ jsxRuntime.jsx(
244
- chunkCJF7B5A7_cjs.SkillActionButton,
244
+ chunkDRUNPUDT_cjs.SkillActionButton,
245
245
  {
246
246
  label: isGlobal ? l.makePrivate : l.publish,
247
247
  onClick: () => onTogglePublish(),
248
248
  children: isGlobal ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Lock, { className: "size-4" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Globe, { className: "size-4 text-primary" })
249
249
  }
250
250
  ),
251
- onDelete && /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.SkillActionButton, { label: l.delete, onClick: () => onDelete(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2, { className: "size-4 text-destructive" }) })
251
+ onDelete && /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.SkillActionButton, { label: l.delete, onClick: () => onDelete(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2, { className: "size-4 text-destructive" }) })
252
252
  ] })
253
253
  ]
254
254
  }
@@ -260,5 +260,5 @@ exports.DEFAULT_SKILL_ROW_LABELS = DEFAULT_SKILL_ROW_LABELS;
260
260
  exports.SkillCard = SkillCard;
261
261
  exports.SkillRow = SkillRow;
262
262
  exports.useWorkflowPreview = useWorkflowPreview;
263
- //# sourceMappingURL=chunk-F777MGVA.cjs.map
264
- //# sourceMappingURL=chunk-F777MGVA.cjs.map
263
+ //# sourceMappingURL=chunk-3SHZPTR2.cjs.map
264
+ //# sourceMappingURL=chunk-3SHZPTR2.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/agents/workflows/useWorkflowPreview.ts","../src/agents/skills/SkillCard.tsx","../src/agents/skills/SkillRow.tsx"],"names":["workflowSteps","useState","initialRunInputs","useRef","useEffect","stepPhase","composeStepPrompt","useWorkflowView","jsxs","cn","activateOnKey","testIdOr","jsx","ActionLink","SkillTypeBadge","SkillGlobalBadge","SkillActionButton","Eye","Pencil","Download","Lock","Globe","Trash2"],"mappings":"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","file":"chunk-F777MGVA.cjs","sourcesContent":["/**\n * A stepped workflow run on screen only (the builder's preview): agent steps run one at a time,\n * the way the server does, and answer with the prompt they would send; action steps just finish.\n * No thread, no agent.\n */\n\nimport { useEffect, useRef, useState } from 'react'\nimport {\n composeStepPrompt,\n initialRunInputs,\n stepPhase,\n workflowSteps,\n type StepComposeOptions,\n} from './run'\nimport type { WorkflowDefinition, WorkflowInputs, WorkflowStepState } from './types'\nimport { useWorkflowView, type WorkflowRunView } from './useWorkflowView'\n\nexport interface UseWorkflowPreviewOptions extends StepComposeOptions {\n /** What a stand-in agent step answers; `{prompt}` is replaced with the prompt it would send. */\n answer?: string\n /** How long a stand-in step takes. */\n delayMs?: number\n}\n\nexport function useWorkflowPreview(\n workflow: WorkflowDefinition,\n { answer = '{prompt}', delayMs = 400, resolveWorkflow, compose }: UseWorkflowPreviewOptions = {}\n): WorkflowRunView {\n const steps = workflowSteps(workflow)\n const [inputs, setInputs] = useState<WorkflowInputs>(() => initialRunInputs(workflow))\n const [states, setStates] = useState<Record<string, WorkflowStepState>>({})\n const set = (id: string, state: WorkflowStepState) => setStates((s) => ({ ...s, [id]: state }))\n\n // A stand-in step's timer outlives the re-render its start causes; it is cleared on unmount, and\n // a step it cut short starts again (StrictMode mounts twice).\n const timers = useRef(new Map<string, ReturnType<typeof setTimeout>>())\n useEffect(() => {\n const pending = timers.current\n return () => {\n for (const t of pending.values()) clearTimeout(t)\n pending.clear()\n setStates((s) =>\n Object.fromEntries(\n Object.entries(s).map(([id, v]) => [\n id,\n v.status === 'running' ? { status: 'pending' } : v,\n ])\n )\n )\n }\n }, [])\n\n // One turn at a time: start the first ready agent step when nothing is running.\n useEffect(() => {\n if (Object.values(states).some((s) => s.status === 'running')) return\n // An action step (a signature, an email, a review) stands in the same way, with no answer.\n const next = steps.find(\n (s) =>\n (s.kind === 'agent' || s.kind === 'action') && stepPhase(steps, states, s.id) === 'ready'\n )\n if (!next || (next.kind !== 'agent' && next.kind !== 'action')) return\n const prompt =\n next.kind === 'agent'\n ? composeStepPrompt(workflow, next, inputs, { resolveWorkflow, compose })\n : ''\n set(next.id, { status: 'running', startedAt: new Date().toISOString() })\n timers.current.set(\n next.id,\n setTimeout(() => {\n timers.current.delete(next.id)\n set(\n next.id,\n next.kind === 'agent'\n ? { status: 'done', text: answer.replace('{prompt}', prompt) }\n : { status: 'done' }\n )\n }, delayMs)\n )\n // `inputs` are read when a step starts, not watched.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [states, steps, workflow])\n\n return useWorkflowView({\n steps,\n states,\n inputs,\n setInput: (name, value) => setInputs((i) => ({ ...i, [name]: value })),\n complete: async (step) => set(step.id, { status: 'done' }),\n skip: async (id) => set(id, { status: 'skipped' }),\n retry: async (id) => set(id, { status: 'pending' }),\n isLocked: (id) => states[id]?.status === 'done',\n })\n}\n","import type { HTMLAttributes, MouseEvent, ReactNode } from 'react'\nimport { Download, Eye, Globe, Lock, Pencil } from 'lucide-react'\nimport { cn } from '@arbidocs/react/ui'\nimport { ActionLink } from '../../components/ActionLink'\nimport { testIdOr } from '../../chat/test-id'\nimport {\n SkillActionButton,\n SkillGlobalBadge,\n SkillTypeBadge,\n activateOnKey,\n type SkillGlobalBadgeLabels,\n} from './SkillParts'\n\nexport interface SkillCardLabels extends SkillGlobalBadgeLabels {\n preview: string\n edit: string\n export: string\n makePrivate: string\n makePrivateTooltip: string\n publish: string\n}\n\nexport const DEFAULT_SKILL_CARD_LABELS: SkillCardLabels = {\n global: 'Global',\n globalTitle: 'Shared with everyone in the marketplace',\n preview: 'Preview skill',\n edit: 'Edit skill',\n export: 'Export skill',\n makePrivate: 'Make private',\n makePrivateTooltip: 'Make private (unpublish)',\n publish: 'Publish to marketplace',\n}\n\nexport interface SkillCardTestIds {\n root: string\n preview: string\n edit: string\n export: string\n toggleVisibility: string\n}\n\nexport interface SkillCardProps {\n name: string\n description: string\n /** Skill type; a small badge is shown when not `markdown`. */\n type?: string\n /** `global` shows a badge and drives the publish toggle. */\n visibility?: 'mine' | 'global'\n /** Only owners see the publish toggle. */\n isOwner?: boolean\n /** Leading icon (the app supplies its skill entity icon). */\n icon?: ReactNode\n /** Invoke the skill (row click / Enter / Space). */\n onClick: () => void\n onPreview: (e: MouseEvent) => void\n onEdit: (e: MouseEvent) => void\n onExport: (e: MouseEvent) => void\n /** Publish / unpublish. Owner-only; omit to hide. */\n onToggleVisibility?: (e: MouseEvent) => void\n /** Destination of the skill; the name becomes a real link (modified clicks go to the browser). */\n href?: string\n labels?: Partial<SkillCardLabels>\n testId?: string\n testIds?: Partial<SkillCardTestIds>\n className?: string\n}\n\n/**\n * Horizontal skill row: icon + `/name` + badges + description, with preview / edit / export /\n * publish actions. All actions are always visible (nothing is hover-only).\n */\nexport function SkillCard({\n name,\n description,\n type,\n visibility = 'mine',\n isOwner = true,\n icon,\n onClick,\n onPreview,\n onEdit,\n onExport,\n onToggleVisibility,\n href,\n labels,\n testId,\n testIds,\n className,\n ...rest\n}: SkillCardProps & Omit<HTMLAttributes<HTMLDivElement>, keyof SkillCardProps | 'onClick'>) {\n const l = { ...DEFAULT_SKILL_CARD_LABELS, ...labels }\n const isGlobal = visibility === 'global'\n return (\n <div\n {...rest}\n role=\"button\"\n tabIndex={0}\n className={cn(\n 'flex w-full cursor-pointer flex-wrap items-center gap-x-3 gap-y-1 rounded-lg bg-muted px-4 py-3 transition-colors hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n className\n )}\n onClick={onClick}\n onKeyDown={activateOnKey(onClick)}\n data-skill-name={name}\n data-testid={testIdOr(testId ?? testIds?.root, { testId: 'skill-card' })}\n data-slot=\"skill-card\"\n >\n {icon && <span className=\"shrink-0 text-primary [&>svg]:size-5\">{icon}</span>}\n {href ? (\n // The link owns plain + modified clicks; stop the row handler from double-firing.\n <span onClick={(e) => e.stopPropagation()}>\n <ActionLink\n href={href}\n onSelect={onClick}\n className=\"whitespace-nowrap font-mono text-sm font-medium\"\n >\n /{name}\n </ActionLink>\n </span>\n ) : (\n <span className=\"whitespace-nowrap font-mono text-sm font-medium\">/{name}</span>\n )}\n {type && type !== 'markdown' && <SkillTypeBadge type={type} />}\n {isGlobal && <SkillGlobalBadge labels={l} />}\n <span className=\"min-w-0 text-sm text-muted-foreground max-sm:order-last max-sm:w-full max-sm:line-clamp-2 sm:flex-1 sm:truncate\">\n {description}\n </span>\n <span className=\"ml-auto flex shrink-0 items-center gap-1\" data-slot=\"skill-card-actions\">\n <SkillActionButton\n label={l.preview}\n onClick={onPreview}\n testId={testIdOr(testIds?.preview, { testId: 'preview-skill-button' })}\n >\n <Eye className=\"size-4 text-muted-foreground\" />\n </SkillActionButton>\n <SkillActionButton\n label={l.edit}\n onClick={onEdit}\n testId={testIdOr(testIds?.edit, { testId: 'edit-skill-button' })}\n >\n <Pencil className=\"size-4 text-muted-foreground\" />\n </SkillActionButton>\n <SkillActionButton\n label={l.export}\n onClick={onExport}\n testId={testIdOr(testIds?.export, { testId: 'export-skill-button' })}\n >\n <Download className=\"size-4 text-muted-foreground\" />\n </SkillActionButton>\n {isOwner && onToggleVisibility && (\n <SkillActionButton\n label={isGlobal ? l.makePrivate : l.publish}\n tooltip={isGlobal ? l.makePrivateTooltip : l.publish}\n onClick={onToggleVisibility}\n testId={testIdOr(testIds?.toggleVisibility, {\n testId: 'toggle-skill-visibility-button',\n })}\n >\n {isGlobal ? (\n <Lock className=\"size-4 text-muted-foreground\" />\n ) : (\n <Globe className=\"size-4 text-primary\" />\n )}\n </SkillActionButton>\n )}\n </span>\n </div>\n )\n}\n","import type { HTMLAttributes, ReactNode } from 'react'\nimport { Eye, Globe, Lock, Pencil, Trash2 } from 'lucide-react'\nimport { cn } from '@arbidocs/react/ui'\nimport { ActionLink } from '../../components/ActionLink'\nimport { testIdOr } from '../../chat/test-id'\nimport {\n SkillActionButton,\n SkillGlobalBadge,\n SkillTypeBadge,\n activateOnKey,\n type SkillGlobalBadgeLabels,\n} from './SkillParts'\n\nexport interface SkillRowLabels extends SkillGlobalBadgeLabels {\n preview: string\n edit: string\n makePrivate: string\n publish: string\n delete: string\n /** Row tooltip; receives the skill name. */\n insertTitle: (name: string) => string\n}\n\nexport const DEFAULT_SKILL_ROW_LABELS: SkillRowLabels = {\n global: 'Global',\n globalTitle: 'Shared with everyone in the marketplace',\n preview: 'Preview',\n edit: 'Edit',\n makePrivate: 'Make private',\n publish: 'Publish to marketplace',\n delete: 'Delete',\n insertTitle: (name) => `Insert /${name} into the chat`,\n}\n\nexport interface SkillRowProps {\n name: string\n description?: string\n type?: string\n isGlobal?: boolean\n icon?: ReactNode\n /** Invoke the skill (inserts `/name` into the chat). */\n onInvoke: () => void\n onPreview: () => void\n /** Owner-only actions: omit to hide. */\n onEdit?: () => void\n onTogglePublish?: () => void\n onDelete?: () => void\n /** Destination of the skill; the name becomes a real link (modified clicks go to the browser). */\n href?: string\n labels?: Partial<SkillRowLabels>\n /** Overrides the default `skills-panel-row-{name}` id. */\n testId?: string\n className?: string\n}\n\n/** Compact two-line skill row for side panels. Actions are always visible. */\nexport function SkillRow({\n name,\n description,\n type,\n isGlobal = false,\n icon,\n onInvoke,\n onPreview,\n onEdit,\n onTogglePublish,\n onDelete,\n href,\n labels,\n testId,\n className,\n ...rest\n}: SkillRowProps & Omit<HTMLAttributes<HTMLDivElement>, keyof SkillRowProps | 'onClick'>) {\n const l = { ...DEFAULT_SKILL_ROW_LABELS, ...labels }\n return (\n <div\n {...rest}\n role=\"button\"\n tabIndex={0}\n className={cn(\n 'flex cursor-pointer items-center gap-2 px-4 py-2 hover:bg-accent/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring',\n className\n )}\n onClick={onInvoke}\n onKeyDown={activateOnKey(onInvoke)}\n data-testid={testIdOr(testId, { testId: `skills-panel-row-${name}` })}\n data-slot=\"skill-row\"\n title={l.insertTitle(name)}\n >\n {icon && <span className=\"shrink-0 text-primary [&>svg]:size-4\">{icon}</span>}\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-1.5\">\n {href ? (\n // The link owns plain + modified clicks; stop the row handler from double-firing.\n <span className=\"min-w-0\" onClick={(e) => e.stopPropagation()}>\n <ActionLink href={href} onSelect={onInvoke} className=\"truncate font-mono text-sm\">\n /{name}\n </ActionLink>\n </span>\n ) : (\n <span className=\"truncate font-mono text-sm\">/{name}</span>\n )}\n {type && type !== 'markdown' && <SkillTypeBadge type={type} />}\n {isGlobal && <SkillGlobalBadge labels={l} />}\n </div>\n {description && <div className=\"truncate text-xs text-muted-foreground\">{description}</div>}\n </div>\n <div className=\"flex shrink-0 items-center gap-0.5\">\n <SkillActionButton label={l.preview} onClick={() => onPreview()}>\n <Eye className=\"size-4\" />\n </SkillActionButton>\n {onEdit && (\n <SkillActionButton label={l.edit} onClick={() => onEdit()}>\n <Pencil className=\"size-4\" />\n </SkillActionButton>\n )}\n {onTogglePublish && (\n <SkillActionButton\n label={isGlobal ? l.makePrivate : l.publish}\n onClick={() => onTogglePublish()}\n >\n {isGlobal ? <Lock className=\"size-4\" /> : <Globe className=\"size-4 text-primary\" />}\n </SkillActionButton>\n )}\n {onDelete && (\n <SkillActionButton label={l.delete} onClick={() => onDelete()}>\n <Trash2 className=\"size-4 text-destructive\" />\n </SkillActionButton>\n )}\n </div>\n </div>\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/agents/workflows/useWorkflowPreview.ts","../src/agents/skills/SkillCard.tsx","../src/agents/skills/SkillRow.tsx"],"names":["workflowSteps","useState","initialRunInputs","useRef","useEffect","stepPhase","composeStepPrompt","useWorkflowView","jsxs","cn","activateOnKey","testIdOr","jsx","ActionLink","SkillTypeBadge","SkillGlobalBadge","SkillActionButton","Eye","Pencil","Download","Lock","Globe","Trash2"],"mappings":"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","file":"chunk-3SHZPTR2.cjs","sourcesContent":["/**\n * A stepped workflow run on screen only (the builder's preview): agent steps run one at a time,\n * the way the server does, and answer with the prompt they would send; action steps just finish.\n * No thread, no agent.\n */\n\nimport { useEffect, useRef, useState } from 'react'\nimport {\n composeStepPrompt,\n initialRunInputs,\n stepPhase,\n workflowSteps,\n type StepComposeOptions,\n} from './run'\nimport type { WorkflowDefinition, WorkflowInputs, WorkflowStepState } from './types'\nimport { useWorkflowView, type WorkflowRunView } from './useWorkflowView'\n\nexport interface UseWorkflowPreviewOptions extends StepComposeOptions {\n /** What a stand-in agent step answers; `{prompt}` is replaced with the prompt it would send. */\n answer?: string\n /** How long a stand-in step takes. */\n delayMs?: number\n}\n\nexport function useWorkflowPreview(\n workflow: WorkflowDefinition,\n { answer = '{prompt}', delayMs = 400, resolveWorkflow, compose }: UseWorkflowPreviewOptions = {}\n): WorkflowRunView {\n const steps = workflowSteps(workflow)\n const [inputs, setInputs] = useState<WorkflowInputs>(() => initialRunInputs(workflow))\n const [states, setStates] = useState<Record<string, WorkflowStepState>>({})\n const set = (id: string, state: WorkflowStepState) => setStates((s) => ({ ...s, [id]: state }))\n\n // A stand-in step's timer outlives the re-render its start causes; it is cleared on unmount, and\n // a step it cut short starts again (StrictMode mounts twice).\n const timers = useRef(new Map<string, ReturnType<typeof setTimeout>>())\n useEffect(() => {\n const pending = timers.current\n return () => {\n for (const t of pending.values()) clearTimeout(t)\n pending.clear()\n setStates((s) =>\n Object.fromEntries(\n Object.entries(s).map(([id, v]) => [\n id,\n v.status === 'running' ? { status: 'pending' } : v,\n ])\n )\n )\n }\n }, [])\n\n // One turn at a time: start the first ready agent step when nothing is running.\n useEffect(() => {\n if (Object.values(states).some((s) => s.status === 'running')) return\n // An action step (a signature, an email, a review) stands in the same way, with no answer.\n const next = steps.find(\n (s) =>\n (s.kind === 'agent' || s.kind === 'action') && stepPhase(steps, states, s.id) === 'ready'\n )\n if (!next || (next.kind !== 'agent' && next.kind !== 'action')) return\n const prompt =\n next.kind === 'agent'\n ? composeStepPrompt(workflow, next, inputs, { resolveWorkflow, compose })\n : ''\n set(next.id, { status: 'running', startedAt: new Date().toISOString() })\n timers.current.set(\n next.id,\n setTimeout(() => {\n timers.current.delete(next.id)\n set(\n next.id,\n next.kind === 'agent'\n ? { status: 'done', text: answer.replace('{prompt}', prompt) }\n : { status: 'done' }\n )\n }, delayMs)\n )\n // `inputs` are read when a step starts, not watched.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [states, steps, workflow])\n\n return useWorkflowView({\n steps,\n states,\n inputs,\n setInput: (name, value) => setInputs((i) => ({ ...i, [name]: value })),\n complete: async (step) => set(step.id, { status: 'done' }),\n skip: async (id) => set(id, { status: 'skipped' }),\n retry: async (id) => set(id, { status: 'pending' }),\n isLocked: (id) => states[id]?.status === 'done',\n })\n}\n","import type { HTMLAttributes, MouseEvent, ReactNode } from 'react'\nimport { Download, Eye, Globe, Lock, Pencil } from 'lucide-react'\nimport { cn } from '@arbidocs/react/ui'\nimport { ActionLink } from '../../components/ActionLink'\nimport { testIdOr } from '../../chat/test-id'\nimport {\n SkillActionButton,\n SkillGlobalBadge,\n SkillTypeBadge,\n activateOnKey,\n type SkillGlobalBadgeLabels,\n} from './SkillParts'\n\nexport interface SkillCardLabels extends SkillGlobalBadgeLabels {\n preview: string\n edit: string\n export: string\n makePrivate: string\n makePrivateTooltip: string\n publish: string\n}\n\nexport const DEFAULT_SKILL_CARD_LABELS: SkillCardLabels = {\n global: 'Global',\n globalTitle: 'Shared with everyone in the marketplace',\n preview: 'Preview skill',\n edit: 'Edit skill',\n export: 'Export skill',\n makePrivate: 'Make private',\n makePrivateTooltip: 'Make private (unpublish)',\n publish: 'Publish to marketplace',\n}\n\nexport interface SkillCardTestIds {\n root: string\n preview: string\n edit: string\n export: string\n toggleVisibility: string\n}\n\nexport interface SkillCardProps {\n name: string\n description: string\n /** Skill type; a small badge is shown when not `markdown`. */\n type?: string\n /** `global` shows a badge and drives the publish toggle. */\n visibility?: 'mine' | 'global'\n /** Only owners see the publish toggle. */\n isOwner?: boolean\n /** Leading icon (the app supplies its skill entity icon). */\n icon?: ReactNode\n /** Invoke the skill (row click / Enter / Space). */\n onClick: () => void\n onPreview: (e: MouseEvent) => void\n onEdit: (e: MouseEvent) => void\n onExport: (e: MouseEvent) => void\n /** Publish / unpublish. Owner-only; omit to hide. */\n onToggleVisibility?: (e: MouseEvent) => void\n /** Destination of the skill; the name becomes a real link (modified clicks go to the browser). */\n href?: string\n labels?: Partial<SkillCardLabels>\n testId?: string\n testIds?: Partial<SkillCardTestIds>\n className?: string\n}\n\n/**\n * Horizontal skill row: icon + `/name` + badges + description, with preview / edit / export /\n * publish actions. All actions are always visible (nothing is hover-only).\n */\nexport function SkillCard({\n name,\n description,\n type,\n visibility = 'mine',\n isOwner = true,\n icon,\n onClick,\n onPreview,\n onEdit,\n onExport,\n onToggleVisibility,\n href,\n labels,\n testId,\n testIds,\n className,\n ...rest\n}: SkillCardProps & Omit<HTMLAttributes<HTMLDivElement>, keyof SkillCardProps | 'onClick'>) {\n const l = { ...DEFAULT_SKILL_CARD_LABELS, ...labels }\n const isGlobal = visibility === 'global'\n return (\n <div\n {...rest}\n role=\"button\"\n tabIndex={0}\n className={cn(\n 'flex w-full cursor-pointer flex-wrap items-center gap-x-3 gap-y-1 rounded-lg bg-muted px-4 py-3 transition-colors hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n className\n )}\n onClick={onClick}\n onKeyDown={activateOnKey(onClick)}\n data-skill-name={name}\n data-testid={testIdOr(testId ?? testIds?.root, { testId: 'skill-card' })}\n data-slot=\"skill-card\"\n >\n {icon && <span className=\"shrink-0 text-primary [&>svg]:size-5\">{icon}</span>}\n {href ? (\n // The link owns plain + modified clicks; stop the row handler from double-firing.\n <span onClick={(e) => e.stopPropagation()}>\n <ActionLink\n href={href}\n onSelect={onClick}\n className=\"whitespace-nowrap font-mono text-sm font-medium\"\n >\n /{name}\n </ActionLink>\n </span>\n ) : (\n <span className=\"whitespace-nowrap font-mono text-sm font-medium\">/{name}</span>\n )}\n {type && type !== 'markdown' && <SkillTypeBadge type={type} />}\n {isGlobal && <SkillGlobalBadge labels={l} />}\n <span className=\"min-w-0 text-sm text-muted-foreground max-sm:order-last max-sm:w-full max-sm:line-clamp-2 sm:flex-1 sm:truncate\">\n {description}\n </span>\n <span className=\"ml-auto flex shrink-0 items-center gap-1\" data-slot=\"skill-card-actions\">\n <SkillActionButton\n label={l.preview}\n onClick={onPreview}\n testId={testIdOr(testIds?.preview, { testId: 'preview-skill-button' })}\n >\n <Eye className=\"size-4 text-muted-foreground\" />\n </SkillActionButton>\n <SkillActionButton\n label={l.edit}\n onClick={onEdit}\n testId={testIdOr(testIds?.edit, { testId: 'edit-skill-button' })}\n >\n <Pencil className=\"size-4 text-muted-foreground\" />\n </SkillActionButton>\n <SkillActionButton\n label={l.export}\n onClick={onExport}\n testId={testIdOr(testIds?.export, { testId: 'export-skill-button' })}\n >\n <Download className=\"size-4 text-muted-foreground\" />\n </SkillActionButton>\n {isOwner && onToggleVisibility && (\n <SkillActionButton\n label={isGlobal ? l.makePrivate : l.publish}\n tooltip={isGlobal ? l.makePrivateTooltip : l.publish}\n onClick={onToggleVisibility}\n testId={testIdOr(testIds?.toggleVisibility, {\n testId: 'toggle-skill-visibility-button',\n })}\n >\n {isGlobal ? (\n <Lock className=\"size-4 text-muted-foreground\" />\n ) : (\n <Globe className=\"size-4 text-primary\" />\n )}\n </SkillActionButton>\n )}\n </span>\n </div>\n )\n}\n","import type { HTMLAttributes, ReactNode } from 'react'\nimport { Eye, Globe, Lock, Pencil, Trash2 } from 'lucide-react'\nimport { cn } from '@arbidocs/react/ui'\nimport { ActionLink } from '../../components/ActionLink'\nimport { testIdOr } from '../../chat/test-id'\nimport {\n SkillActionButton,\n SkillGlobalBadge,\n SkillTypeBadge,\n activateOnKey,\n type SkillGlobalBadgeLabels,\n} from './SkillParts'\n\nexport interface SkillRowLabels extends SkillGlobalBadgeLabels {\n preview: string\n edit: string\n makePrivate: string\n publish: string\n delete: string\n /** Row tooltip; receives the skill name. */\n insertTitle: (name: string) => string\n}\n\nexport const DEFAULT_SKILL_ROW_LABELS: SkillRowLabels = {\n global: 'Global',\n globalTitle: 'Shared with everyone in the marketplace',\n preview: 'Preview',\n edit: 'Edit',\n makePrivate: 'Make private',\n publish: 'Publish to marketplace',\n delete: 'Delete',\n insertTitle: (name) => `Insert /${name} into the chat`,\n}\n\nexport interface SkillRowProps {\n name: string\n description?: string\n type?: string\n isGlobal?: boolean\n icon?: ReactNode\n /** Invoke the skill (inserts `/name` into the chat). */\n onInvoke: () => void\n onPreview: () => void\n /** Owner-only actions: omit to hide. */\n onEdit?: () => void\n onTogglePublish?: () => void\n onDelete?: () => void\n /** Destination of the skill; the name becomes a real link (modified clicks go to the browser). */\n href?: string\n labels?: Partial<SkillRowLabels>\n /** Overrides the default `skills-panel-row-{name}` id. */\n testId?: string\n className?: string\n}\n\n/** Compact two-line skill row for side panels. Actions are always visible. */\nexport function SkillRow({\n name,\n description,\n type,\n isGlobal = false,\n icon,\n onInvoke,\n onPreview,\n onEdit,\n onTogglePublish,\n onDelete,\n href,\n labels,\n testId,\n className,\n ...rest\n}: SkillRowProps & Omit<HTMLAttributes<HTMLDivElement>, keyof SkillRowProps | 'onClick'>) {\n const l = { ...DEFAULT_SKILL_ROW_LABELS, ...labels }\n return (\n <div\n {...rest}\n role=\"button\"\n tabIndex={0}\n className={cn(\n 'flex cursor-pointer items-center gap-2 px-4 py-2 hover:bg-accent/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring',\n className\n )}\n onClick={onInvoke}\n onKeyDown={activateOnKey(onInvoke)}\n data-testid={testIdOr(testId, { testId: `skills-panel-row-${name}` })}\n data-slot=\"skill-row\"\n title={l.insertTitle(name)}\n >\n {icon && <span className=\"shrink-0 text-primary [&>svg]:size-4\">{icon}</span>}\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-1.5\">\n {href ? (\n // The link owns plain + modified clicks; stop the row handler from double-firing.\n <span className=\"min-w-0\" onClick={(e) => e.stopPropagation()}>\n <ActionLink href={href} onSelect={onInvoke} className=\"truncate font-mono text-sm\">\n /{name}\n </ActionLink>\n </span>\n ) : (\n <span className=\"truncate font-mono text-sm\">/{name}</span>\n )}\n {type && type !== 'markdown' && <SkillTypeBadge type={type} />}\n {isGlobal && <SkillGlobalBadge labels={l} />}\n </div>\n {description && <div className=\"truncate text-xs text-muted-foreground\">{description}</div>}\n </div>\n <div className=\"flex shrink-0 items-center gap-0.5\">\n <SkillActionButton label={l.preview} onClick={() => onPreview()}>\n <Eye className=\"size-4\" />\n </SkillActionButton>\n {onEdit && (\n <SkillActionButton label={l.edit} onClick={() => onEdit()}>\n <Pencil className=\"size-4\" />\n </SkillActionButton>\n )}\n {onTogglePublish && (\n <SkillActionButton\n label={isGlobal ? l.makePrivate : l.publish}\n onClick={() => onTogglePublish()}\n >\n {isGlobal ? <Lock className=\"size-4\" /> : <Globe className=\"size-4 text-primary\" />}\n </SkillActionButton>\n )}\n {onDelete && (\n <SkillActionButton label={l.delete} onClick={() => onDelete()}>\n <Trash2 className=\"size-4 text-destructive\" />\n </SkillActionButton>\n )}\n </div>\n </div>\n )\n}\n"]}