@arbidocs/blocks 0.4.137 → 0.4.138

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 (61) hide show
  1. package/dist/agents/index.cjs +380 -356
  2. package/dist/agents/index.js +8 -8
  3. package/dist/agents/skills/SkillLibraryDetail.d.ts +26 -0
  4. package/dist/agents/skills/index.d.ts +2 -0
  5. package/dist/agents/skills/skillLibrary.d.ts +46 -0
  6. package/dist/chat/index.cjs +139 -139
  7. package/dist/chat/index.js +4 -4
  8. package/dist/{chunk-CHVCTKF4.cjs → chunk-3BI6EWKP.cjs} +672 -55
  9. package/dist/chunk-3BI6EWKP.cjs.map +1 -0
  10. package/dist/{chunk-VMESMX7N.js → chunk-5BXEYYH6.js} +3 -3
  11. package/dist/{chunk-VMESMX7N.js.map → chunk-5BXEYYH6.js.map} +1 -1
  12. package/dist/{chunk-EHOPZBAX.cjs → chunk-7YLJHTDC.cjs} +11 -11
  13. package/dist/{chunk-EHOPZBAX.cjs.map → chunk-7YLJHTDC.cjs.map} +1 -1
  14. package/dist/{chunk-M33QUNFH.js → chunk-ED4HHTIA.js} +3 -3
  15. package/dist/{chunk-M33QUNFH.js.map → chunk-ED4HHTIA.js.map} +1 -1
  16. package/dist/{chunk-HDYWXEQU.cjs → chunk-IE5CUCZK.cjs} +4 -4
  17. package/dist/{chunk-HDYWXEQU.cjs.map → chunk-IE5CUCZK.cjs.map} +1 -1
  18. package/dist/{chunk-7M4C6CK7.js → chunk-JO3EMZ4X.js} +3 -3
  19. package/dist/{chunk-7M4C6CK7.js.map → chunk-JO3EMZ4X.js.map} +1 -1
  20. package/dist/{chunk-C3ZRLULA.cjs → chunk-JVL7HUIQ.cjs} +5 -5
  21. package/dist/{chunk-C3ZRLULA.cjs.map → chunk-JVL7HUIQ.cjs.map} +1 -1
  22. package/dist/{chunk-JY73DJOS.cjs → chunk-MJKBVIV3.cjs} +80 -495
  23. package/dist/{chunk-KMNZ2RVO.js.map → chunk-MJKBVIV3.cjs.map} +1 -1
  24. package/dist/{chunk-BUNZWOPX.cjs → chunk-OAL3B2ZU.cjs} +5 -5
  25. package/dist/{chunk-BUNZWOPX.cjs.map → chunk-OAL3B2ZU.cjs.map} +1 -1
  26. package/dist/{chunk-6F7SZCVL.cjs → chunk-OWCEQKAR.cjs} +3 -3
  27. package/dist/{chunk-6F7SZCVL.cjs.map → chunk-OWCEQKAR.cjs.map} +1 -1
  28. package/dist/{chunk-KMNZ2RVO.js → chunk-UBEI6WFJ.js} +10 -411
  29. package/dist/{chunk-JY73DJOS.cjs.map → chunk-UBEI6WFJ.js.map} +1 -1
  30. package/dist/{chunk-ATJUVHVB.js → chunk-XVME4XYD.js} +604 -8
  31. package/dist/chunk-XVME4XYD.js.map +1 -0
  32. package/dist/{chunk-YOMPLCP6.js → chunk-Y5KTM3V5.js} +3 -3
  33. package/dist/{chunk-YOMPLCP6.js.map → chunk-Y5KTM3V5.js.map} +1 -1
  34. package/dist/{chunk-L3T7OJRX.js → chunk-ZNI4SW2G.js} +3 -3
  35. package/dist/{chunk-L3T7OJRX.js.map → chunk-ZNI4SW2G.js.map} +1 -1
  36. package/dist/collaboration/index.cjs +9 -9
  37. package/dist/collaboration/index.js +1 -1
  38. package/dist/connect/index.cjs +436 -54
  39. package/dist/connect/index.cjs.map +1 -1
  40. package/dist/connect/index.d.ts +1 -0
  41. package/dist/connect/index.js +399 -18
  42. package/dist/connect/index.js.map +1 -1
  43. package/dist/connection/ConnectedSkillsLibrary.d.ts +26 -0
  44. package/dist/document-tools/index.cjs +1 -1
  45. package/dist/document-tools/index.js +1 -1
  46. package/dist/facts/index.cjs +2 -2
  47. package/dist/facts/index.js +2 -2
  48. package/dist/index.cjs +650 -626
  49. package/dist/index.js +15 -15
  50. package/dist/settings/index.cjs +10 -10
  51. package/dist/settings/index.js +2 -2
  52. package/dist/site/index.cjs +5 -5
  53. package/dist/site/index.js +1 -1
  54. package/dist/studio/index.cjs +6 -6
  55. package/dist/studio/index.js +5 -5
  56. package/dist/workflow-canvas/index.cjs +59 -59
  57. package/dist/workflow-canvas/index.js +8 -8
  58. package/node_modules/@arbidocs/coedit/package.json +1 -1
  59. package/package.json +4 -4
  60. package/dist/chunk-ATJUVHVB.js.map +0 -1
  61. package/dist/chunk-CHVCTKF4.cjs.map +0 -1
@@ -1,17 +1,17 @@
1
1
  "use client";
2
- import { CellHoverIcon } from './chunk-RFXJYIDV.js';
3
2
  import { MultiSelect } from './chunk-CQCC7LE7.js';
4
- import { ToneBadge } from './chunk-5LXQPP2K.js';
5
- import { useWorkflowView, useControllableState, PersonPill, DEFAULT_TASK_ACTIVITY_LABELS, TaskActivityTimeline, activeStepId, DEFAULT_STEP_BAR_LABELS, StepBarFrame, workflowRunStatusLabel, STEP_LABEL_CURRENT, STEP_LABEL, STEP_LABEL_MAX, SchemaForm } from './chunk-ATJUVHVB.js';
3
+ import { useWorkflowView, useControllableState, SkillTypeBadge, SkillGlobalBadge, SkillActionButton, activateOnKey, PersonPill, DEFAULT_TASK_ACTIVITY_LABELS, TaskActivityTimeline, activeStepId, DEFAULT_STEP_BAR_LABELS, StepBarFrame, workflowRunStatusLabel, STEP_LABEL_CURRENT, STEP_LABEL, STEP_LABEL_MAX, SchemaForm } from './chunk-XVME4XYD.js';
4
+ import { ScopePicker, FoldSection, AddFilesFirst } from './chunk-3RJN2VTL.js';
6
5
  import { TriStateFilterMenu } from './chunk-KSHKTOY2.js';
7
6
  import { EmptyState } from './chunk-P6GHJSLR.js';
8
- import { ScopePicker, FoldSection, AddFilesFirst } from './chunk-3RJN2VTL.js';
7
+ import { CellHoverIcon } from './chunk-RFXJYIDV.js';
8
+ import { ToneBadge } from './chunk-5LXQPP2K.js';
9
9
  import { ActionLink } from './chunk-444XKG46.js';
10
10
  import { SelectionBar, SelectionBarAction } from './chunk-NUNKSZKU.js';
11
11
  import { FilterInput } from './chunk-YU2KUMGE.js';
12
12
  import { GridView } from './chunk-N5YEF3LC.js';
13
13
  import { TabHeader } from './chunk-4WWM3GQ5.js';
14
- import { DEFAULT_STEP_RECORD_LABELS, DEFAULT_STEP_DOCUMENT_LABELS, DEFAULT_STEP_KIND_LABELS, isWorkflowScope, workflowSteps, initialRunInputs, stepPhase, composeStepPrompt, useMentionAutocomplete, composeWorkflowPrompt, StepChip, StepDocumentButton, stepLevels, isRunFinished, stepKindOf, stepDocuments, eventWaitingDocuments, waitingForDocumentsText, defaultInputs, STEP_KIND_ICONS, StepDocumentCards, StepRecord, splitDocRef, validateInputs, waitingDocuments } from './chunk-YOMPLCP6.js';
14
+ import { DEFAULT_STEP_RECORD_LABELS, DEFAULT_STEP_DOCUMENT_LABELS, DEFAULT_STEP_KIND_LABELS, isWorkflowScope, workflowSteps, initialRunInputs, stepPhase, composeStepPrompt, useMentionAutocomplete, composeWorkflowPrompt, StepChip, StepDocumentButton, stepLevels, isRunFinished, stepKindOf, stepDocuments, eventWaitingDocuments, waitingForDocumentsText, defaultInputs, STEP_KIND_ICONS, StepDocumentCards, StepRecord, splitDocRef, validateInputs, waitingDocuments } from './chunk-Y5KTM3V5.js';
15
15
  import { toMessageMentions, extractMentions, MentionMenu } from './chunk-AA3PT6KR.js';
16
16
  import { useIsPhone } from './chunk-SLSBJRWW.js';
17
17
  import { testIdOr, prefixedTestId } from './chunk-7F6CBP3Z.js';
@@ -20,8 +20,8 @@ import { ModalHeader } from './chunk-TX2ZICS7.js';
20
20
  import { formatCount } from './chunk-OXF2IFXG.js';
21
21
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
22
22
  import { memo, forwardRef, useState, useMemo, useRef, useEffect, useCallback, useLayoutEffect } from 'react';
23
- import { ChevronDown, ChevronRight, Plus, Trash2, MessageSquare, Eye, ClipboardList, Pencil, Copy, Bot, Sparkles, Loader2, Wand2, X, Globe, Download, Lock, ListChecks, AlertTriangle, FileX, SkipForward, Check, FileText, CornerDownRight, AlertCircle, KeyRound, Workflow, ChevronsUpDown, ChevronsDownUp, ListTodo, CheckCheck, MoreHorizontal, CalendarClock, ArrowUpRight, SendHorizontal, Zap, MessagesSquare, History, ChevronUp, Pause, Activity, Hourglass, MoreVertical, TriangleAlert, CheckSquare, Square, CheckCircle2, SquareArrowOutUpRight, ArrowLeft, LayoutGrid, List, CornerLeftUp, CornerUpLeft, CircleDashed, RotateCcw, ListPlus, Clock, CircleCheck, Hand, Flag, Play } from 'lucide-react';
24
- import { cn, Label, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, Textarea, Input, Switch, Button, Collapsible, CollapsibleTrigger, CollapsibleContent, Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, Tooltip, TooltipTrigger, TooltipContent, Badge, Slider, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, VisibilityToggle, EntityPill, ThreadVisibilityIcon, DialogClose, Popover, PopoverTrigger, PopoverContent, Command, CommandInput, CommandList, CommandEmpty, CommandItem, Checkbox, UserEntity, DropdownMenuSeparator, PopoverClose } from '@arbidocs/react/ui';
23
+ import { ChevronDown, ChevronRight, Plus, Trash2, MessageSquare, Eye, ClipboardList, Pencil, Copy, Bot, Sparkles, Loader2, Wand2, X, Download, Lock, Globe, ListChecks, AlertTriangle, FileX, SkipForward, Check, FileText, CornerDownRight, AlertCircle, KeyRound, Workflow, ChevronsUpDown, ChevronsDownUp, ListTodo, CheckCheck, MoreHorizontal, CalendarClock, ArrowUpRight, SendHorizontal, Zap, MessagesSquare, History, ChevronUp, Pause, Activity, Hourglass, MoreVertical, TriangleAlert, CheckSquare, Square, CheckCircle2, SquareArrowOutUpRight, ArrowLeft, CornerLeftUp, CornerUpLeft, CircleDashed, RotateCcw, ListPlus, Clock, CircleCheck, Hand, Flag, Play } from 'lucide-react';
24
+ import { cn, Label, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, Textarea, Input, Switch, Button, Collapsible, CollapsibleTrigger, CollapsibleContent, Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, Badge, Slider, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, VisibilityToggle, Tooltip, TooltipTrigger, TooltipContent, EntityPill, ThreadVisibilityIcon, DialogClose, Popover, PopoverTrigger, PopoverContent, Command, CommandInput, CommandList, CommandEmpty, CommandItem, Checkbox, UserEntity, DropdownMenuSeparator, PopoverClose } from '@arbidocs/react/ui';
25
25
 
26
26
  function defaultScopeRenderer(scopeSource) {
27
27
  if (!scopeSource) return void 0;
@@ -866,79 +866,6 @@ function agentConfigSectionToValues(section, capabilityKeys) {
866
866
  capabilities: Object.fromEntries(capabilityKeys.map((k) => [k, Boolean(s[k])]))
867
867
  };
868
868
  }
869
- function SkillTypeBadge({ type, className }) {
870
- return /* @__PURE__ */ jsx(
871
- "span",
872
- {
873
- className: cn(
874
- "shrink-0 rounded bg-background px-1.5 py-0.5 text-xs uppercase tracking-wide text-muted-foreground",
875
- className
876
- ),
877
- "data-slot": "skill-type-badge",
878
- children: type
879
- }
880
- );
881
- }
882
- var DEFAULT_SKILL_GLOBAL_BADGE_LABELS = {
883
- global: "Global",
884
- globalTitle: "Shared with everyone in the marketplace"
885
- };
886
- function SkillGlobalBadge({
887
- className,
888
- labels
889
- }) {
890
- const l = { ...DEFAULT_SKILL_GLOBAL_BADGE_LABELS, ...labels };
891
- return /* @__PURE__ */ jsxs(
892
- "span",
893
- {
894
- className: cn(
895
- "inline-flex shrink-0 items-center gap-1 rounded bg-accent px-1.5 py-0.5 text-xs uppercase tracking-wide text-accent-foreground",
896
- className
897
- ),
898
- title: l.globalTitle,
899
- "data-slot": "skill-global-badge",
900
- children: [
901
- /* @__PURE__ */ jsx(Globe, { className: "size-3" }),
902
- l.global
903
- ]
904
- }
905
- );
906
- }
907
- function SkillActionButton({
908
- label,
909
- tooltip,
910
- onClick,
911
- children,
912
- testId
913
- }) {
914
- return /* @__PURE__ */ jsxs(Tooltip, { children: [
915
- /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, onFocusCapture: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsx(
916
- Button,
917
- {
918
- variant: "ghost",
919
- size: "icon",
920
- className: "size-7 shrink-0 pointer-coarse:size-11",
921
- onClick: (e) => {
922
- e.stopPropagation();
923
- onClick(e);
924
- },
925
- "aria-label": label,
926
- "data-testid": testId,
927
- children
928
- }
929
- ) }),
930
- /* @__PURE__ */ jsx(TooltipContent, { children: /* @__PURE__ */ jsx("p", { children: tooltip ?? label }) })
931
- ] });
932
- }
933
- function activateOnKey(handler) {
934
- return (e) => {
935
- if (e.target !== e.currentTarget) return;
936
- if (e.key === "Enter" || e.key === " ") {
937
- e.preventDefault();
938
- handler();
939
- }
940
- };
941
- }
942
869
  var DEFAULT_SKILL_CARD_LABELS = {
943
870
  global: "Global",
944
871
  globalTitle: "Shared with everyone in the marketplace",
@@ -1132,334 +1059,6 @@ function SkillRow({
1132
1059
  }
1133
1060
  );
1134
1061
  }
1135
- var DEFAULT_SKILL_GENERATE_FORM_LABELS = {
1136
- title: "Generate with AI",
1137
- hint: "Describe what the skill should do. The assistant drafts it in chat, then you can edit it here.",
1138
- placeholder: "e.g. Summarize a contract into key obligations, dates, and parties",
1139
- generate: "Generate with AI",
1140
- writeManually: "\u2026or write it manually"
1141
- };
1142
- function SkillGenerateForm({
1143
- onGenerate,
1144
- onManual,
1145
- icon,
1146
- labels,
1147
- testIds
1148
- }) {
1149
- const l = { ...DEFAULT_SKILL_GENERATE_FORM_LABELS, ...labels };
1150
- const [desc, setDesc] = useState("");
1151
- return /* @__PURE__ */ jsxs("div", { className: "flex flex-1 flex-col gap-4 overflow-y-auto p-4", "data-slot": "skill-generate-form", children: [
1152
- /* @__PURE__ */ jsxs("div", { className: "rounded-lg bg-muted p-4", children: [
1153
- /* @__PURE__ */ jsxs("div", { className: "mb-1 flex items-center gap-2", children: [
1154
- /* @__PURE__ */ jsx(Wand2, { className: "size-4 text-primary" }),
1155
- /* @__PURE__ */ jsx("span", { className: "text-sm font-medium", children: l.title })
1156
- ] }),
1157
- /* @__PURE__ */ jsx("p", { className: "mb-3 text-xs text-muted-foreground", children: l.hint }),
1158
- /* @__PURE__ */ jsx(
1159
- Textarea,
1160
- {
1161
- value: desc,
1162
- onChange: (e) => setDesc(e.target.value),
1163
- rows: 4,
1164
- placeholder: l.placeholder,
1165
- "data-testid": testIdOr(testIds?.description, { testId: "skills-panel-ai-desc" })
1166
- }
1167
- ),
1168
- /* @__PURE__ */ jsx("div", { className: "mt-3 flex justify-end", children: /* @__PURE__ */ jsxs(
1169
- Button,
1170
- {
1171
- size: "sm",
1172
- disabled: !desc.trim(),
1173
- onClick: () => onGenerate(desc.trim()),
1174
- "data-testid": testIdOr(testIds?.generate, { testId: "skills-panel-ai-generate" }),
1175
- children: [
1176
- icon && /* @__PURE__ */ jsx("span", { className: "mr-1 [&>svg]:size-4", children: icon }),
1177
- l.generate
1178
- ]
1179
- }
1180
- ) })
1181
- ] }),
1182
- /* @__PURE__ */ jsx(
1183
- "button",
1184
- {
1185
- type: "button",
1186
- className: "self-start text-sm text-muted-foreground underline-offset-2 hover:text-foreground hover:underline pointer-coarse:min-h-11",
1187
- onClick: onManual,
1188
- "data-testid": testIdOr(testIds?.writeManually, { testId: "skills-panel-write-manually" }),
1189
- children: l.writeManually
1190
- }
1191
- )
1192
- ] });
1193
- }
1194
- var DEFAULT_SKILL_EDIT_FORM_LABELS = {
1195
- name: "Name",
1196
- namePlaceholder: "contract-summary",
1197
- invokedAs: (name) => /* @__PURE__ */ jsxs(Fragment, { children: [
1198
- "Invoked as ",
1199
- /* @__PURE__ */ jsxs("span", { className: "font-mono", children: [
1200
- "/",
1201
- name || "skill-name"
1202
- ] })
1203
- ] }),
1204
- description: "Description",
1205
- descriptionPlaceholder: "What it does and when to use it",
1206
- instructions: "Instructions",
1207
- cancel: "Cancel",
1208
- saving: "Saving\u2026",
1209
- saveChanges: "Save changes",
1210
- create: "Create skill"
1211
- };
1212
- var FIELD_LABEL = "text-xs font-semibold uppercase tracking-wide text-muted-foreground";
1213
- function SkillEditForm({
1214
- name,
1215
- onNameChange,
1216
- isNameLocked,
1217
- nameError,
1218
- description,
1219
- onDescriptionChange,
1220
- editor,
1221
- isSaving,
1222
- isEditing,
1223
- onSave,
1224
- onCancel,
1225
- labels,
1226
- testIds
1227
- }) {
1228
- const l = { ...DEFAULT_SKILL_EDIT_FORM_LABELS, ...labels };
1229
- return /* @__PURE__ */ jsxs("div", { className: "flex h-full min-h-0 flex-col", "data-slot": "skill-edit-form", children: [
1230
- /* @__PURE__ */ jsxs("div", { className: "flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto p-4", children: [
1231
- /* @__PURE__ */ jsxs("div", { children: [
1232
- /* @__PURE__ */ jsx(Label, { htmlFor: "sp-name", className: FIELD_LABEL, children: l.name }),
1233
- /* @__PURE__ */ jsx(
1234
- Input,
1235
- {
1236
- id: "sp-name",
1237
- value: name,
1238
- disabled: isNameLocked,
1239
- placeholder: l.namePlaceholder,
1240
- onChange: (e) => onNameChange(e.target.value),
1241
- className: "mt-1",
1242
- "data-testid": testIdOr(testIds?.name, { testId: "skills-panel-edit-name" })
1243
- }
1244
- ),
1245
- /* @__PURE__ */ jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: l.invokedAs(name) }),
1246
- nameError && /* @__PURE__ */ jsx("p", { className: "mt-1 text-xs text-destructive", children: nameError })
1247
- ] }),
1248
- /* @__PURE__ */ jsxs("div", { children: [
1249
- /* @__PURE__ */ jsx(Label, { htmlFor: "sp-desc", className: FIELD_LABEL, children: l.description }),
1250
- /* @__PURE__ */ jsx(
1251
- Input,
1252
- {
1253
- id: "sp-desc",
1254
- value: description,
1255
- placeholder: l.descriptionPlaceholder,
1256
- onChange: (e) => onDescriptionChange(e.target.value),
1257
- className: "mt-1",
1258
- "data-testid": testIdOr(testIds?.description, { testId: "skills-panel-edit-desc" })
1259
- }
1260
- )
1261
- ] }),
1262
- /* @__PURE__ */ jsxs("div", { className: "flex min-h-0 flex-1 flex-col", children: [
1263
- /* @__PURE__ */ jsx(Label, { className: `${FIELD_LABEL} mb-1`, children: l.instructions }),
1264
- /* @__PURE__ */ jsx("div", { className: "min-h-[240px] flex-1 overflow-hidden rounded-md border border-border", children: editor })
1265
- ] })
1266
- ] }),
1267
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col-reverse sm:flex-row sm:justify-end gap-2 border-t border-border px-4 py-3", children: [
1268
- /* @__PURE__ */ jsx(Button, { variant: "outline", size: "sm", onClick: onCancel, children: l.cancel }),
1269
- /* @__PURE__ */ jsx(
1270
- Button,
1271
- {
1272
- size: "sm",
1273
- onClick: onSave,
1274
- disabled: isSaving,
1275
- "data-testid": testIdOr(testIds?.save, { testId: "skills-panel-edit-save" }),
1276
- children: isSaving ? l.saving : isEditing ? l.saveChanges : l.create
1277
- }
1278
- )
1279
- ] })
1280
- ] });
1281
- }
1282
- function SkillFilterChips({
1283
- options,
1284
- value,
1285
- onChange,
1286
- label,
1287
- testIdPrefix = "skills-filter",
1288
- className
1289
- }) {
1290
- return /* @__PURE__ */ jsx(
1291
- "div",
1292
- {
1293
- role: "radiogroup",
1294
- "aria-label": label,
1295
- className: cn("flex flex-wrap gap-2", className),
1296
- "data-slot": "skill-filter-chips",
1297
- children: options.map((option) => {
1298
- const selected = option.id === value;
1299
- return /* @__PURE__ */ jsxs(
1300
- "button",
1301
- {
1302
- type: "button",
1303
- role: "radio",
1304
- "aria-checked": selected,
1305
- onClick: () => onChange(option.id),
1306
- "data-testid": `${testIdPrefix}-${option.id}`,
1307
- className: cn(
1308
- "inline-flex min-h-8 items-center gap-1.5 rounded-full border px-3 text-sm transition-colors pointer-coarse:min-h-11 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
1309
- selected ? "border-primary bg-primary/10 text-foreground" : "border-border bg-background text-muted-foreground [&:hover]:bg-muted"
1310
- ),
1311
- children: [
1312
- option.label,
1313
- option.count !== void 0 && /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: option.count })
1314
- ]
1315
- },
1316
- option.id
1317
- );
1318
- })
1319
- }
1320
- );
1321
- }
1322
- var DEFAULT_SKILL_VIEW_TOGGLE_LABELS = {
1323
- group: "View",
1324
- gallery: "Gallery",
1325
- list: "List"
1326
- };
1327
- function SkillViewToggle({ value, onChange, labels, testId }) {
1328
- const l = { ...DEFAULT_SKILL_VIEW_TOGGLE_LABELS, ...labels };
1329
- const item = (view, label, icon) => /* @__PURE__ */ jsx(
1330
- "button",
1331
- {
1332
- type: "button",
1333
- role: "radio",
1334
- "aria-checked": value === view,
1335
- "aria-label": label,
1336
- title: label,
1337
- onClick: () => onChange(view),
1338
- "data-testid": `${testId ?? "skills-view-toggle"}-${view}`,
1339
- className: cn(
1340
- "flex size-8 items-center justify-center rounded-md pointer-coarse:size-11 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
1341
- value === view ? "bg-background text-foreground shadow-sm" : "text-muted-foreground"
1342
- ),
1343
- children: icon
1344
- }
1345
- );
1346
- return /* @__PURE__ */ jsxs(
1347
- "div",
1348
- {
1349
- role: "radiogroup",
1350
- "aria-label": l.group,
1351
- className: "inline-flex shrink-0 gap-0.5 rounded-lg bg-muted p-0.5",
1352
- "data-testid": testId ?? "skills-view-toggle",
1353
- children: [
1354
- item("gallery", l.gallery, /* @__PURE__ */ jsx(LayoutGrid, { className: "size-4" })),
1355
- item("list", l.list, /* @__PURE__ */ jsx(List, { className: "size-4" }))
1356
- ]
1357
- }
1358
- );
1359
- }
1360
- function SkillTile({
1361
- name,
1362
- description,
1363
- sourceLabel,
1364
- type,
1365
- icon,
1366
- layout,
1367
- selected,
1368
- onSelect,
1369
- testId
1370
- }) {
1371
- const isRow = layout === "list";
1372
- return /* @__PURE__ */ jsxs(
1373
- "div",
1374
- {
1375
- role: "button",
1376
- tabIndex: 0,
1377
- "aria-pressed": selected,
1378
- onClick: onSelect,
1379
- onKeyDown: activateOnKey(onSelect),
1380
- "data-testid": testId ?? `skill-tile-${name}`,
1381
- "data-skill-name": name,
1382
- "data-slot": "skill-tile",
1383
- className: cn(
1384
- "flex cursor-pointer rounded-lg border p-3 text-left transition-colors pointer-coarse:min-h-11 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
1385
- isRow ? "items-center gap-3" : "h-full flex-col gap-2",
1386
- selected ? "border-primary bg-primary/5" : "border-transparent bg-muted [&:hover]:bg-accent"
1387
- ),
1388
- children: [
1389
- /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
1390
- icon && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-ai-ink [&>svg]:size-5", children: icon }),
1391
- /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate text-sm font-semibold text-foreground", children: name })
1392
- ] }),
1393
- /* @__PURE__ */ jsx(
1394
- "p",
1395
- {
1396
- className: cn(
1397
- "min-w-0 text-sm text-muted-foreground",
1398
- isRow ? "flex-1 truncate max-sm:hidden" : "line-clamp-3"
1399
- ),
1400
- children: description
1401
- }
1402
- ),
1403
- /* @__PURE__ */ jsxs("div", { className: cn("flex shrink-0 items-center gap-1.5", isRow && "ml-auto"), children: [
1404
- type && type !== "markdown" && /* @__PURE__ */ jsx("span", { className: "rounded bg-background px-1.5 py-0.5 text-xs uppercase tracking-wide text-muted-foreground", children: type }),
1405
- /* @__PURE__ */ jsx("span", { className: "rounded bg-background px-1.5 py-0.5 text-xs text-muted-foreground", children: sourceLabel })
1406
- ] })
1407
- ]
1408
- }
1409
- );
1410
- }
1411
- function SkillDetail({
1412
- title,
1413
- sourceLabel,
1414
- description,
1415
- icon,
1416
- notice,
1417
- children,
1418
- actions,
1419
- testId
1420
- }) {
1421
- return /* @__PURE__ */ jsxs(
1422
- "section",
1423
- {
1424
- className: "flex min-h-0 flex-1 flex-col",
1425
- "data-testid": testId ?? "skill-detail",
1426
- "data-slot": "skill-detail",
1427
- "aria-label": title,
1428
- children: [
1429
- /* @__PURE__ */ jsxs("div", { className: "min-h-0 flex-1 space-y-4 overflow-y-auto p-4", children: [
1430
- /* @__PURE__ */ jsxs("header", { className: "space-y-1", children: [
1431
- /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [
1432
- icon && /* @__PURE__ */ jsx("span", { className: "text-ai-ink [&>svg]:size-5", children: icon }),
1433
- /* @__PURE__ */ jsx("h3", { className: "text-base font-semibold text-foreground", children: title }),
1434
- /* @__PURE__ */ jsx("span", { className: "rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground", children: sourceLabel })
1435
- ] }),
1436
- description && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: description }),
1437
- notice && /* @__PURE__ */ jsx("p", { className: "text-sm text-foreground", children: notice })
1438
- ] }),
1439
- children
1440
- ] }),
1441
- actions && /* @__PURE__ */ jsx(
1442
- "div",
1443
- {
1444
- className: "flex flex-wrap gap-2 border-t border-border bg-background p-3",
1445
- "data-slot": "skill-detail-actions",
1446
- children: actions
1447
- }
1448
- )
1449
- ]
1450
- }
1451
- );
1452
- }
1453
- function SkillDetailSection({
1454
- title,
1455
- children,
1456
- testId
1457
- }) {
1458
- return /* @__PURE__ */ jsxs("div", { className: "space-y-1.5", "data-testid": testId, children: [
1459
- /* @__PURE__ */ jsx("h4", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: title }),
1460
- children
1461
- ] });
1462
- }
1463
1062
  var DEFAULT_TASK_PLAN_LABELS = {
1464
1063
  emptyTitle: "Draft a plan to review",
1465
1064
  emptyBody: "The assistant writes a short checklist of what its work must cover. You can edit it, and it checks its own draft against it before handing it to you.",
@@ -9297,6 +8896,6 @@ function AgentCreateView({
9297
8896
  ] });
9298
8897
  }
9299
8898
 
9300
- export { AgentAvatarField, AgentBar, AgentBarIconButton, AgentBarMenu, AgentBarNotes, AgentBarProbeAnswer, AgentBarQueuedNote, AgentBarStatus, AgentCard, AgentCreateView, AgentCreatedView, AgentCreator, AgentEditView, AgentGallery, AgentMainView, 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_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_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_RUN_STATUS_LABELS, DEFAULT_WORKFLOW_THREAD_STRIP_LABELS, DERIVED_NAME_WORDS, EMPTY_NEW_THREAD, EntityChip, GoalCriteria, MAX_TASK_DEPTH, NewThreadDialog, 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, TaskComposer, TaskFlow, TaskInbox, TaskMoveDialog, TaskOutputsCell, TaskPlan, TaskRunsDialog, TaskStartDialog, TaskStatusPill, TaskTable, TaskThreadChip, TasksToolbar, ThreadActivity, ThreadLauncher, ThreadNotifyDialog, ThreadStatusLine, TupleArrayField, UploadTaskItem, UploadTaskList, WEEKDAYS, WorkflowRunStatus, WorkflowThreadStartedBy, WorkflowThreadStrip, WorkflowsToolbar, agentConfigSectionToValues, agentCreatorToConfigSection, asTaskStatus, authModeFor, buildRRule, buildTaskRows, compactThreadActivity, composePersona, composerToTaskQuery, composerToWorkRequest, composerToWorkflowRequest, composerToWorkflowUpdate, createTaskColumns, createsWork, defaultScopeRenderer, defaultTaskComposerValues, deriveAgentName, deriveWorkflowName, descendantIds, describeRRule, filterConversationRows, firstWords, formatElapsed, goalProgress, groupThreadActivity, hasTaskFields, humanizeSection, indexTasks, inferType, inputDocumentIds, isAgenticWorkflow, isOutOfBounds, isPlainTodo, isValidAgentName, isoToLocalInput, linkedRunsFromActivity, localInputToIso, moveTargets, newThreadToRequest, nextCriterionId, ownerExtId, parseRRule, prettifyKey, resolveScopeInputs, stripPersonaPreamble, summarizeAgent, summarizeCapabilities, taskComposerToCreateRequest, taskComposerToUpdateRequest, taskNeedsAccess, taskToComposerValues, useWorkflowPreview, workflowTaskFields, workflowToComposerValues, workflowWhen };
9301
- //# sourceMappingURL=chunk-KMNZ2RVO.js.map
9302
- //# sourceMappingURL=chunk-KMNZ2RVO.js.map
8899
+ export { AgentAvatarField, AgentBar, AgentBarIconButton, AgentBarMenu, AgentBarNotes, AgentBarProbeAnswer, AgentBarQueuedNote, AgentBarStatus, AgentCard, AgentCreateView, AgentCreatedView, AgentCreator, AgentEditView, AgentGallery, AgentMainView, 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_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_ROW_LABELS, DEFAULT_SUBAGENT_ROSTER_LABELS, DEFAULT_TASKS_CHROME_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_RUN_STATUS_LABELS, DEFAULT_WORKFLOW_THREAD_STRIP_LABELS, DERIVED_NAME_WORDS, EMPTY_NEW_THREAD, EntityChip, GoalCriteria, MAX_TASK_DEPTH, NewThreadDialog, PillSelect, RecurrenceBuilder, STATUS_LABELS, STATUS_ORDER, STATUS_TONE, SkillCard, SkillRow, StepDetail, StepNarration, StepOutcome, StepParams, StepRow, StepSummary, StepTrace, StepTraceSummary, SubAgentLane, SubStepGroup, SubagentRoster, TASK_COLUMN_ORDER, TRIGGER_LABELS, TaskActivityDialog, TaskComposer, TaskFlow, TaskInbox, TaskMoveDialog, TaskOutputsCell, TaskPlan, TaskRunsDialog, TaskStartDialog, TaskStatusPill, TaskTable, TaskThreadChip, TasksToolbar, ThreadActivity, ThreadLauncher, ThreadNotifyDialog, ThreadStatusLine, TupleArrayField, UploadTaskItem, UploadTaskList, WEEKDAYS, WorkflowRunStatus, WorkflowThreadStartedBy, WorkflowThreadStrip, WorkflowsToolbar, agentConfigSectionToValues, agentCreatorToConfigSection, asTaskStatus, authModeFor, buildRRule, buildTaskRows, compactThreadActivity, composePersona, composerToTaskQuery, composerToWorkRequest, composerToWorkflowRequest, composerToWorkflowUpdate, createTaskColumns, createsWork, defaultScopeRenderer, defaultTaskComposerValues, deriveAgentName, deriveWorkflowName, descendantIds, describeRRule, filterConversationRows, firstWords, formatElapsed, goalProgress, groupThreadActivity, hasTaskFields, humanizeSection, indexTasks, inferType, inputDocumentIds, isAgenticWorkflow, isOutOfBounds, isPlainTodo, isValidAgentName, isoToLocalInput, linkedRunsFromActivity, localInputToIso, moveTargets, newThreadToRequest, nextCriterionId, ownerExtId, parseRRule, prettifyKey, resolveScopeInputs, stripPersonaPreamble, summarizeAgent, summarizeCapabilities, taskComposerToCreateRequest, taskComposerToUpdateRequest, taskNeedsAccess, taskToComposerValues, useWorkflowPreview, workflowTaskFields, workflowToComposerValues, workflowWhen };
8900
+ //# sourceMappingURL=chunk-UBEI6WFJ.js.map
8901
+ //# sourceMappingURL=chunk-UBEI6WFJ.js.map