@arbidocs/blocks 0.4.137 → 0.4.139

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 (203) hide show
  1. package/dist/agents/definitions/AgentConnectInstructions.d.ts +12 -0
  2. package/dist/agents/definitions/defaults.d.ts +12 -0
  3. package/dist/agents/definitions/index.d.ts +2 -0
  4. package/dist/agents/index.cjs +457 -418
  5. package/dist/agents/index.js +12 -13
  6. package/dist/agents/skills/SkillLibraryDetail.d.ts +26 -0
  7. package/dist/agents/skills/index.d.ts +2 -0
  8. package/dist/agents/skills/skillLibrary.d.ts +46 -0
  9. package/dist/calendar/CalendarFormDialog.d.ts +13 -0
  10. package/dist/calendar/ProposeTimeDialog.d.ts +22 -0
  11. package/dist/calendar/WeeklyHoursEditor.d.ts +7 -0
  12. package/dist/calendar/access-setup.d.ts +8 -0
  13. package/dist/calendar/api-mapping.d.ts +22 -0
  14. package/dist/calendar/booking-form.d.ts +46 -0
  15. package/dist/calendar/conference.d.ts +11 -0
  16. package/dist/calendar/errors.d.ts +7 -0
  17. package/dist/calendar/feeds.d.ts +2 -0
  18. package/dist/calendar/freebusy.d.ts +22 -0
  19. package/dist/calendar/ics.d.ts +33 -0
  20. package/dist/calendar/index.cjs +472 -4293
  21. package/dist/calendar/index.cjs.map +1 -1
  22. package/dist/calendar/index.d.ts +17 -1
  23. package/dist/calendar/index.js +1 -4227
  24. package/dist/calendar/index.js.map +1 -1
  25. package/dist/calendar/requests.d.ts +42 -0
  26. package/dist/calendar/room-window.d.ts +6 -0
  27. package/dist/calendar/settings-value.d.ts +4 -0
  28. package/dist/calls/index.cjs +4 -4
  29. package/dist/calls/index.js +3 -3
  30. package/dist/chat/index.cjs +141 -141
  31. package/dist/chat/index.js +6 -6
  32. package/dist/{chunk-M33QUNFH.js → chunk-22WFGXG2.js} +3 -3
  33. package/dist/{chunk-M33QUNFH.js.map → chunk-22WFGXG2.js.map} +1 -1
  34. package/dist/{chunk-VMESMX7N.js → chunk-453PNNNW.js} +3 -3
  35. package/dist/{chunk-VMESMX7N.js.map → chunk-453PNNNW.js.map} +1 -1
  36. package/dist/{chunk-2KUCVSFF.js → chunk-45LRMW54.js} +3 -3
  37. package/dist/{chunk-2KUCVSFF.js.map → chunk-45LRMW54.js.map} +1 -1
  38. package/dist/chunk-5FTIHRZH.cjs +177 -0
  39. package/dist/chunk-5FTIHRZH.cjs.map +1 -0
  40. package/dist/{chunk-FUTMU4FR.js → chunk-5HFPRI3W.js} +3 -3
  41. package/dist/{chunk-FUTMU4FR.js.map → chunk-5HFPRI3W.js.map} +1 -1
  42. package/dist/{chunk-JY73DJOS.cjs → chunk-5UXDUOOB.cjs} +84 -1211
  43. package/dist/chunk-5UXDUOOB.cjs.map +1 -0
  44. package/dist/{chunk-ATJUVHVB.js → chunk-6QMWP5IU.js} +1445 -11
  45. package/dist/chunk-6QMWP5IU.js.map +1 -0
  46. package/dist/chunk-6YTHQ73P.cjs +5334 -0
  47. package/dist/chunk-6YTHQ73P.cjs.map +1 -0
  48. package/dist/{chunk-KMNZ2RVO.js → chunk-7QUUZBQZ.js} +15 -1109
  49. package/dist/chunk-7QUUZBQZ.js.map +1 -0
  50. package/dist/{chunk-C3ZRLULA.cjs → chunk-7X255TOM.cjs} +5 -5
  51. package/dist/{chunk-C3ZRLULA.cjs.map → chunk-7X255TOM.cjs.map} +1 -1
  52. package/dist/chunk-A3XPS2EU.js +245 -0
  53. package/dist/chunk-A3XPS2EU.js.map +1 -0
  54. package/dist/chunk-B3AHCIV5.js +5206 -0
  55. package/dist/chunk-B3AHCIV5.js.map +1 -0
  56. package/dist/{chunk-2Q7FDZAY.js → chunk-BPBSSMRB.js} +5 -163
  57. package/dist/chunk-BPBSSMRB.js.map +1 -0
  58. package/dist/{chunk-KSHKTOY2.js → chunk-CKCBBYTA.js} +205 -5
  59. package/dist/chunk-CKCBBYTA.js.map +1 -0
  60. package/dist/chunk-CYNF5PZI.js +170 -0
  61. package/dist/chunk-CYNF5PZI.js.map +1 -0
  62. package/dist/{chunk-OPTBQSCV.cjs → chunk-DJM7DLCT.cjs} +3 -3
  63. package/dist/{chunk-OPTBQSCV.cjs.map → chunk-DJM7DLCT.cjs.map} +1 -1
  64. package/dist/{chunk-E5OYHJMU.js → chunk-DN55PRGS.js} +4 -4
  65. package/dist/{chunk-E5OYHJMU.js.map → chunk-DN55PRGS.js.map} +1 -1
  66. package/dist/{chunk-VHJHY7TT.js → chunk-ECERC6TI.js} +3 -3
  67. package/dist/{chunk-VHJHY7TT.js.map → chunk-ECERC6TI.js.map} +1 -1
  68. package/dist/{chunk-KDUGTKVI.cjs → chunk-GFNELPDP.cjs} +17 -6
  69. package/dist/chunk-GFNELPDP.cjs.map +1 -0
  70. package/dist/{chunk-OGBXV326.cjs → chunk-GFRQG36Y.cjs} +2 -243
  71. package/dist/chunk-GFRQG36Y.cjs.map +1 -0
  72. package/dist/{chunk-WXYQ66KC.cjs → chunk-HEMU73OP.cjs} +2 -166
  73. package/dist/chunk-HEMU73OP.cjs.map +1 -0
  74. package/dist/{chunk-UUHUQHXR.cjs → chunk-JZNXRMLH.cjs} +6 -6
  75. package/dist/{chunk-UUHUQHXR.cjs.map → chunk-JZNXRMLH.cjs.map} +1 -1
  76. package/dist/{chunk-HDYWXEQU.cjs → chunk-K3HNLWZZ.cjs} +8 -8
  77. package/dist/{chunk-HDYWXEQU.cjs.map → chunk-K3HNLWZZ.cjs.map} +1 -1
  78. package/dist/{chunk-7M4C6CK7.js → chunk-KTFDUSON.js} +4 -4
  79. package/dist/{chunk-7M4C6CK7.js.map → chunk-KTFDUSON.js.map} +1 -1
  80. package/dist/{chunk-HLB4DIYV.cjs → chunk-MABUMUCA.cjs} +6 -6
  81. package/dist/{chunk-HLB4DIYV.cjs.map → chunk-MABUMUCA.cjs.map} +1 -1
  82. package/dist/{chunk-RQ2Y7USX.cjs → chunk-MIDXCYZB.cjs} +235 -15
  83. package/dist/chunk-MIDXCYZB.cjs.map +1 -0
  84. package/dist/{chunk-L3T7OJRX.js → chunk-MTPWZQTL.js} +4 -4
  85. package/dist/{chunk-L3T7OJRX.js.map → chunk-MTPWZQTL.js.map} +1 -1
  86. package/dist/{chunk-BUNZWOPX.cjs → chunk-O4ZIQDUT.cjs} +5 -5
  87. package/dist/{chunk-BUNZWOPX.cjs.map → chunk-O4ZIQDUT.cjs.map} +1 -1
  88. package/dist/{chunk-W3VYZXNS.js → chunk-O6W6RW3B.js} +5 -240
  89. package/dist/chunk-O6W6RW3B.js.map +1 -0
  90. package/dist/{chunk-WS5EX7DN.cjs → chunk-OGP6MQXQ.cjs} +3 -3
  91. package/dist/{chunk-WS5EX7DN.cjs.map → chunk-OGP6MQXQ.cjs.map} +1 -1
  92. package/dist/{chunk-6F7SZCVL.cjs → chunk-OWCEQKAR.cjs} +3 -3
  93. package/dist/{chunk-6F7SZCVL.cjs.map → chunk-OWCEQKAR.cjs.map} +1 -1
  94. package/dist/{chunk-OQ7RUNOC.js → chunk-PC5KVHX3.js} +22 -6
  95. package/dist/chunk-PC5KVHX3.js.map +1 -0
  96. package/dist/{chunk-CHVCTKF4.cjs → chunk-ULEDHANM.cjs} +1543 -66
  97. package/dist/chunk-ULEDHANM.cjs.map +1 -0
  98. package/dist/{chunk-L2PAPOZ5.js → chunk-US3S4DCB.js} +17 -6
  99. package/dist/chunk-US3S4DCB.js.map +1 -0
  100. package/dist/chunk-V46W7YLI.cjs +252 -0
  101. package/dist/chunk-V46W7YLI.cjs.map +1 -0
  102. package/dist/{chunk-3RJN2VTL.js → chunk-XDQXDWE7.js} +3 -3
  103. package/dist/{chunk-3RJN2VTL.js.map → chunk-XDQXDWE7.js.map} +1 -1
  104. package/dist/{chunk-EHOPZBAX.cjs → chunk-XOC44HQY.cjs} +12 -12
  105. package/dist/{chunk-EHOPZBAX.cjs.map → chunk-XOC44HQY.cjs.map} +1 -1
  106. package/dist/{chunk-YOMPLCP6.js → chunk-Y5KTM3V5.js} +3 -3
  107. package/dist/{chunk-YOMPLCP6.js.map → chunk-Y5KTM3V5.js.map} +1 -1
  108. package/dist/{chunk-DWZXSPMB.cjs → chunk-ZAVEMQ37.cjs} +3 -3
  109. package/dist/{chunk-DWZXSPMB.cjs.map → chunk-ZAVEMQ37.cjs.map} +1 -1
  110. package/dist/{chunk-AAFX64WD.cjs → chunk-ZXAWOLBQ.cjs} +22 -5
  111. package/dist/chunk-ZXAWOLBQ.cjs.map +1 -0
  112. package/dist/citations/QuietMarks.d.ts +5 -2
  113. package/dist/citations/index.cjs +15 -14
  114. package/dist/citations/index.js +3 -2
  115. package/dist/collaboration/index.cjs +51 -51
  116. package/dist/collaboration/index.js +3 -3
  117. package/dist/connect/docx.cjs +6 -6
  118. package/dist/connect/docx.js +5 -5
  119. package/dist/connect/index.cjs +6595 -1600
  120. package/dist/connect/index.cjs.map +1 -1
  121. package/dist/connect/index.d.ts +5 -0
  122. package/dist/connect/index.js +5064 -90
  123. package/dist/connect/index.js.map +1 -1
  124. package/dist/connection/ConnectedAgentCreator.d.ts +37 -0
  125. package/dist/connection/ConnectedSkillsLibrary.d.ts +26 -0
  126. package/dist/connection/ConnectedWorkflowHistory.d.ts +45 -0
  127. package/dist/connection/ConnectionProvider.d.ts +3 -1
  128. package/dist/connection/calendar/AddCalendarDialogs.d.ts +9 -0
  129. package/dist/connection/calendar/BookingPagesPanel.d.ts +13 -0
  130. package/dist/connection/calendar/CalendarAccountsPanel.d.ts +5 -0
  131. package/dist/connection/calendar/CalendarSettingsDialog.d.ts +12 -0
  132. package/dist/connection/calendar/ConnectedCalendar.d.ts +13 -0
  133. package/dist/connection/calendar/ConnectedMailInviteCard.d.ts +12 -0
  134. package/dist/connection/calendar/ConnectedPublicBooking.d.ts +9 -0
  135. package/dist/connection/calendar/ConnectedUpcomingEvents.d.ts +12 -0
  136. package/dist/connection/calendar/CopyField.d.ts +9 -0
  137. package/dist/connection/calendar/EventEditorDialog.d.ts +29 -0
  138. package/dist/connection/calendar/EventScheduling.d.ts +8 -0
  139. package/dist/connection/calendar/InvitationsPanel.d.ts +5 -0
  140. package/dist/connection/calendar/OpenAccessPanel.d.ts +7 -0
  141. package/dist/connection/calendar/PublishCalendarDialog.d.ts +8 -0
  142. package/dist/connection/calendar/RoomsDirectoryPanel.d.ts +8 -0
  143. package/dist/connection/calendar/ShareCalendarDialog.d.ts +6 -0
  144. package/dist/connection/calendar/copy.d.ts +2 -0
  145. package/dist/connection/calendar/index.d.ts +6 -0
  146. package/dist/connection/calendar/store.d.ts +47 -0
  147. package/dist/connection/calendar/types.d.ts +36 -0
  148. package/dist/connection/calendar/useWebinarAttendee.d.ts +3 -0
  149. package/dist/connection/notification-center/ConnectedNotificationCenter.d.ts +15 -0
  150. package/dist/connection/notification-center/NotificationCenter.d.ts +37 -0
  151. package/dist/connection/notification-center/NotificationEvent.d.ts +33 -0
  152. package/dist/connection/notification-center/index.d.ts +4 -0
  153. package/dist/connection/notification-center/items.d.ts +44 -0
  154. package/dist/document-tools/index.cjs +1 -1
  155. package/dist/document-tools/index.js +1 -1
  156. package/dist/facts/index.cjs +6 -6
  157. package/dist/facts/index.js +6 -6
  158. package/dist/files/index.cjs +6 -6
  159. package/dist/files/index.js +6 -6
  160. package/dist/home/index.cjs +20 -20
  161. package/dist/home/index.js +5 -5
  162. package/dist/index.cjs +969 -928
  163. package/dist/index.cjs.map +1 -1
  164. package/dist/index.js +26 -25
  165. package/dist/index.js.map +1 -1
  166. package/dist/retrieval/index.cjs +1 -1
  167. package/dist/retrieval/index.js +1 -1
  168. package/dist/settings/index.cjs +58 -72
  169. package/dist/settings/index.cjs.map +1 -1
  170. package/dist/settings/index.js +6 -23
  171. package/dist/settings/index.js.map +1 -1
  172. package/dist/shell/index.cjs +61 -60
  173. package/dist/shell/index.js +5 -4
  174. package/dist/site/index.cjs +5 -5
  175. package/dist/site/index.js +1 -1
  176. package/dist/studio/index.cjs +11 -11
  177. package/dist/studio/index.js +9 -9
  178. package/dist/workflow-canvas/index.cjs +69 -70
  179. package/dist/workflow-canvas/index.cjs.map +1 -1
  180. package/dist/workflow-canvas/index.js +14 -15
  181. package/dist/workflow-canvas/index.js.map +1 -1
  182. package/dist/workspaces/index.cjs +2 -2
  183. package/dist/workspaces/index.js +2 -2
  184. package/node_modules/@arbidocs/coedit/package.json +1 -1
  185. package/package.json +4 -4
  186. package/dist/chunk-2Q7FDZAY.js.map +0 -1
  187. package/dist/chunk-AAFX64WD.cjs.map +0 -1
  188. package/dist/chunk-ATJUVHVB.js.map +0 -1
  189. package/dist/chunk-CHVCTKF4.cjs.map +0 -1
  190. package/dist/chunk-CQCC7LE7.js +0 -210
  191. package/dist/chunk-CQCC7LE7.js.map +0 -1
  192. package/dist/chunk-JY73DJOS.cjs.map +0 -1
  193. package/dist/chunk-KDUGTKVI.cjs.map +0 -1
  194. package/dist/chunk-KMNZ2RVO.js.map +0 -1
  195. package/dist/chunk-KSHKTOY2.js.map +0 -1
  196. package/dist/chunk-L2PAPOZ5.js.map +0 -1
  197. package/dist/chunk-OGBXV326.cjs.map +0 -1
  198. package/dist/chunk-OQ7RUNOC.js.map +0 -1
  199. package/dist/chunk-RFIBUWLF.cjs +0 -232
  200. package/dist/chunk-RFIBUWLF.cjs.map +0 -1
  201. package/dist/chunk-RQ2Y7USX.cjs.map +0 -1
  202. package/dist/chunk-W3VYZXNS.js.map +0 -1
  203. package/dist/chunk-WXYQ66KC.cjs.map +0 -1
@@ -1,25 +1,24 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
+ var chunkULEDHANM_cjs = require('./chunk-ULEDHANM.cjs');
5
+ var chunkOGP6MQXQ_cjs = require('./chunk-OGP6MQXQ.cjs');
6
+ var chunkMIDXCYZB_cjs = require('./chunk-MIDXCYZB.cjs');
7
+ var chunkZW6FPIFC_cjs = require('./chunk-ZW6FPIFC.cjs');
4
8
  var chunk3AFWGEDJ_cjs = require('./chunk-3AFWGEDJ.cjs');
5
- var chunkRFIBUWLF_cjs = require('./chunk-RFIBUWLF.cjs');
6
9
  var chunkDVUZTGVL_cjs = require('./chunk-DVUZTGVL.cjs');
7
- var chunkCHVCTKF4_cjs = require('./chunk-CHVCTKF4.cjs');
8
- var chunkRQ2Y7USX_cjs = require('./chunk-RQ2Y7USX.cjs');
9
- var chunkZW6FPIFC_cjs = require('./chunk-ZW6FPIFC.cjs');
10
- var chunkWS5EX7DN_cjs = require('./chunk-WS5EX7DN.cjs');
11
10
  var chunkR26BK7YL_cjs = require('./chunk-R26BK7YL.cjs');
12
11
  var chunkV4ISCZJ7_cjs = require('./chunk-V4ISCZJ7.cjs');
13
12
  var chunk2EI7NCUA_cjs = require('./chunk-2EI7NCUA.cjs');
14
- var chunkC2CWWEHO_cjs = require('./chunk-C2CWWEHO.cjs');
13
+ var chunkC4WSHRR6_cjs = require('./chunk-C4WSHRR6.cjs');
15
14
  var chunk7RGLTF76_cjs = require('./chunk-7RGLTF76.cjs');
16
- var chunk6F7SZCVL_cjs = require('./chunk-6F7SZCVL.cjs');
15
+ var chunkOWCEQKAR_cjs = require('./chunk-OWCEQKAR.cjs');
17
16
  var chunk7UTB4PHM_cjs = require('./chunk-7UTB4PHM.cjs');
17
+ var chunkKDG6FER6_cjs = require('./chunk-KDG6FER6.cjs');
18
+ var chunkC2CWWEHO_cjs = require('./chunk-C2CWWEHO.cjs');
19
+ var chunkULWRNGGE_cjs = require('./chunk-ULWRNGGE.cjs');
18
20
  var chunkFX3K6LNZ_cjs = require('./chunk-FX3K6LNZ.cjs');
19
21
  var chunkMHVNT4J3_cjs = require('./chunk-MHVNT4J3.cjs');
20
- var chunkC4WSHRR6_cjs = require('./chunk-C4WSHRR6.cjs');
21
- var chunkULWRNGGE_cjs = require('./chunk-ULWRNGGE.cjs');
22
- var chunkKDG6FER6_cjs = require('./chunk-KDG6FER6.cjs');
23
22
  var jsxRuntime = require('react/jsx-runtime');
24
23
  var react = require('react');
25
24
  var lucideReact = require('lucide-react');
@@ -29,7 +28,7 @@ function defaultScopeRenderer(scopeSource) {
29
28
  if (!scopeSource) return void 0;
30
29
  return function renderScope(_field, value, onChange) {
31
30
  return /* @__PURE__ */ jsxRuntime.jsx(
32
- chunkWS5EX7DN_cjs.ScopePicker,
31
+ chunkOGP6MQXQ_cjs.ScopePicker,
33
32
  {
34
33
  folders: scopeSource.folders,
35
34
  unfiledCount: scopeSource.unfiledCount,
@@ -48,14 +47,14 @@ function resolveScopeInputs(workflow, inputs, scopeSource) {
48
47
  for (const field of workflow.inputs) {
49
48
  if (field.type !== "scope") continue;
50
49
  const raw = inputs[field.name];
51
- const scope = chunk6F7SZCVL_cjs.isWorkflowScope(raw) ? raw : { folders: [], labels: [] };
50
+ const scope = chunkOWCEQKAR_cjs.isWorkflowScope(raw) ? raw : { folders: [], labels: [] };
52
51
  next[field.name] = { ...scope, documents: scopeSource.resolveDocuments(scope) };
53
52
  }
54
53
  return next;
55
54
  }
56
55
  function useWorkflowPreview(workflow, { answer = "{prompt}", delayMs = 400, resolveWorkflow, compose } = {}) {
57
- const steps = chunk6F7SZCVL_cjs.workflowSteps(workflow);
58
- const [inputs, setInputs] = react.useState(() => chunk6F7SZCVL_cjs.initialRunInputs(workflow));
56
+ const steps = chunkOWCEQKAR_cjs.workflowSteps(workflow);
57
+ const [inputs, setInputs] = react.useState(() => chunkOWCEQKAR_cjs.initialRunInputs(workflow));
59
58
  const [states, setStates] = react.useState({});
60
59
  const set = (id, state) => setStates((s) => ({ ...s, [id]: state }));
61
60
  const timers = react.useRef(/* @__PURE__ */ new Map());
@@ -77,10 +76,10 @@ function useWorkflowPreview(workflow, { answer = "{prompt}", delayMs = 400, reso
77
76
  react.useEffect(() => {
78
77
  if (Object.values(states).some((s) => s.status === "running")) return;
79
78
  const next = steps.find(
80
- (s) => (s.kind === "agent" || s.kind === "action") && chunk6F7SZCVL_cjs.stepPhase(steps, states, s.id) === "ready"
79
+ (s) => (s.kind === "agent" || s.kind === "action") && chunkOWCEQKAR_cjs.stepPhase(steps, states, s.id) === "ready"
81
80
  );
82
81
  if (!next || next.kind !== "agent" && next.kind !== "action") return;
83
- const prompt = next.kind === "agent" ? chunk6F7SZCVL_cjs.composeStepPrompt(workflow, next, inputs, { resolveWorkflow, compose }) : "";
82
+ const prompt = next.kind === "agent" ? chunkOWCEQKAR_cjs.composeStepPrompt(workflow, next, inputs, { resolveWorkflow, compose }) : "";
84
83
  set(next.id, { status: "running", startedAt: (/* @__PURE__ */ new Date()).toISOString() });
85
84
  timers.current.set(
86
85
  next.id,
@@ -93,7 +92,7 @@ function useWorkflowPreview(workflow, { answer = "{prompt}", delayMs = 400, reso
93
92
  }, delayMs)
94
93
  );
95
94
  }, [states, steps, workflow]);
96
- return chunkCHVCTKF4_cjs.useWorkflowView({
95
+ return chunkULEDHANM_cjs.useWorkflowView({
97
96
  steps,
98
97
  states,
99
98
  inputs,
@@ -341,606 +340,6 @@ function AgentGallery({
341
340
  )
342
341
  ] });
343
342
  }
344
- function CapabilityTile({
345
- label,
346
- description,
347
- icon: Icon,
348
- selected,
349
- onToggle,
350
- testId,
351
- className
352
- }) {
353
- return /* @__PURE__ */ jsxRuntime.jsxs(
354
- "button",
355
- {
356
- type: "button",
357
- onClick: onToggle,
358
- "aria-pressed": selected,
359
- "data-testid": testId,
360
- "data-slot": "capability-tile",
361
- className: ui.cn(
362
- "flex flex-col items-start gap-1 rounded-lg p-3 text-left transition-colors pointer-coarse:min-h-11 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
363
- selected ? "bg-accent text-accent-foreground ring-1 ring-inset ring-primary/30" : "bg-muted hover:bg-accent/60",
364
- className
365
- ),
366
- children: [
367
- /* @__PURE__ */ jsxRuntime.jsx(Icon, { size: 16, className: selected ? "text-accent-foreground" : "text-muted-foreground" }),
368
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium leading-tight", children: label }),
369
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs leading-tight text-muted-foreground", children: description })
370
- ]
371
- }
372
- );
373
- }
374
- function CapabilityGrid({
375
- children,
376
- testId,
377
- className
378
- }) {
379
- return /* @__PURE__ */ jsxRuntime.jsx(
380
- "div",
381
- {
382
- className: ui.cn("grid grid-cols-2 gap-2 sm:grid-cols-4", className),
383
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "agent-capabilities" }),
384
- children
385
- }
386
- );
387
- }
388
- var DEFAULT_AGENT_TYPE_SELECTOR_LABELS = {
389
- agentType: "Agent type"
390
- };
391
- function AgentTypeSelector({
392
- value,
393
- onChange,
394
- options,
395
- label,
396
- labels,
397
- testId,
398
- optionTestId
399
- }) {
400
- const l = { ...DEFAULT_AGENT_TYPE_SELECTOR_LABELS, ...labels };
401
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", "data-testid": chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "agent-type-selector" }), children: [
402
- /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { children: label ?? l.agentType }),
403
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2", children: options.map((opt) => /* @__PURE__ */ jsxRuntime.jsxs(
404
- "button",
405
- {
406
- type: "button",
407
- onClick: () => onChange(opt.value),
408
- "aria-pressed": value === opt.value,
409
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(optionTestId?.(opt.value), { testId: `agent-type-${opt.value}` }),
410
- className: ui.cn(
411
- "rounded-lg p-3 text-left transition-colors pointer-coarse:min-h-11 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
412
- value === opt.value ? "bg-accent text-accent-foreground ring-1 ring-inset ring-primary/30" : "bg-muted hover:bg-accent/60"
413
- ),
414
- children: [
415
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium", children: opt.title }),
416
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-0.5 text-xs text-muted-foreground", children: opt.description })
417
- ]
418
- },
419
- opt.value
420
- )) })
421
- ] });
422
- }
423
- var DEFAULT_AGENT_AVATAR_FIELD_LABELS = {
424
- painting: "Painting\u2026",
425
- generate: "Generate avatar",
426
- regenerate: "Regenerate"
427
- };
428
- function AgentAvatarField({
429
- picture,
430
- isBusy,
431
- canGenerate,
432
- onGenerate,
433
- labels,
434
- testIds
435
- }) {
436
- const l = { ...DEFAULT_AGENT_AVATAR_FIELD_LABELS, ...labels };
437
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-2", "data-slot": "agent-avatar-field", children: [
438
- /* @__PURE__ */ jsxRuntime.jsx(
439
- "div",
440
- {
441
- className: "flex size-24 shrink-0 items-center justify-center overflow-hidden rounded-lg bg-muted",
442
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.preview, { testId: "agent-avatar-preview" }),
443
- children: isBusy ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-1 text-ai-ink", children: [
444
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "size-7 animate-spin" }),
445
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs", children: l.painting })
446
- ] }) : picture ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: picture, alt: "", className: "size-full object-cover" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Bot, { className: "size-10 text-ai-ink/70" })
447
- }
448
- ),
449
- /* @__PURE__ */ jsxRuntime.jsxs(
450
- ui.Button,
451
- {
452
- variant: "outline",
453
- size: "sm",
454
- className: "h-8 gap-1 px-2 text-xs pointer-coarse:h-11",
455
- disabled: isBusy || !canGenerate,
456
- onClick: onGenerate,
457
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.generate, { testId: "agent-avatar-generate" }),
458
- children: [
459
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Wand2, { size: 12 }),
460
- " ",
461
- picture ? l.regenerate : l.generate
462
- ]
463
- }
464
- )
465
- ] });
466
- }
467
- var DEFAULT_AGENT_CREATOR_LABELS = {
468
- titleNew: "New agent",
469
- titleEdit: (name) => `Edit ${name}`,
470
- descriptionNew: "Say what this agent is for. Everything else follows from that.",
471
- descriptionEdit: "Change what this agent is for, or fine-tune it under Advanced.",
472
- describe: "What should it do?",
473
- describePlaceholder: "e.g. Reads new files each morning and tells me what changed, with sources.",
474
- describeHint: "This becomes the agent\u2019s persona and shapes every answer.",
475
- startFrom: "Or start from",
476
- summaryHeading: "What it can do (its tools)",
477
- summaryCan: (list) => `Can ${list}.`,
478
- summaryCannot: (list) => `Cannot ${list}.`,
479
- summaryNone: "It can read your files and answer. Nothing else is switched on yet.",
480
- summaryModel: (model) => `Uses ${model}.`,
481
- summaryModelAuto: "Uses the default model.",
482
- summaryWorkspaces: (list) => `Can read ${list}.`,
483
- summaryNoWorkspaces: "Cannot read any workspace yet. Give it access under Advanced.",
484
- summaryName: (name) => `Will be called ${name}.`,
485
- workspaceAccess: "Workspace access",
486
- workspaceAccessHint: "Each workspace stays separate. The agent can only read the ones you tick here.",
487
- workspaceAlready: "Already has access",
488
- revokeWorkspace: (name) => `Remove access to ${name}`,
489
- noWorkspacesToGrant: "You have no workspaces yet.",
490
- name: "Name",
491
- nameHint: "Letters, digits, - and _ only; must start with a letter or digit.",
492
- nameInvalid: "Letters, digits, - and _ only; must start with a letter or digit.",
493
- advanced: "Advanced",
494
- capabilities: "Tools",
495
- toolsHint: "Tools are switches on this agent: what it may do on its own, such as search the web or run code. Change them any time.",
496
- summaryChange: "Change tools",
497
- model: "Model",
498
- modelAuto: "Automatic",
499
- cancel: "Cancel",
500
- create: "Create agent",
501
- save: "Save changes",
502
- saving: "Saving\u2026"
503
- };
504
- var NAME_RE = /^[a-zA-Z0-9][a-zA-Z0-9_-]*$/;
505
- var FILLER = /* @__PURE__ */ new Set([
506
- "a",
507
- "an",
508
- "the",
509
- "who",
510
- "that",
511
- "which",
512
- "to",
513
- "for",
514
- "and",
515
- "of",
516
- "i",
517
- "my"
518
- ]);
519
- function deriveAgentName(description) {
520
- const words = description.toLowerCase().replace(/[^a-z0-9\s-]/g, " ").split(/\s+/).filter((w) => w && !FILLER.has(w)).slice(0, 3);
521
- return words.join("-").slice(0, 64);
522
- }
523
- var isValidAgentName = (name) => NAME_RE.test(name) && name.length <= 64;
524
- var joinList = (items) => items.length <= 2 ? items.join(" and ") : `${items.slice(0, -1).join(", ")} and ${items[items.length - 1]}`;
525
- function summarizeCapabilities(capabilities, enabled, modelName, labels = DEFAULT_AGENT_CREATOR_LABELS) {
526
- const on = capabilities.filter((c) => enabled[c.key]).map((c) => c.label.toLowerCase());
527
- const off = capabilities.filter((c) => !enabled[c.key]).map((c) => c.label.toLowerCase());
528
- const lines = [];
529
- if (on.length === 0) lines.push(labels.summaryNone);
530
- else {
531
- lines.push(labels.summaryCan(joinList(on)));
532
- if (off.length > 0) lines.push(labels.summaryCannot(joinList(off)));
533
- }
534
- lines.push(modelName ? labels.summaryModel(modelName) : labels.summaryModelAuto);
535
- return lines;
536
- }
537
- function summarizeAgent(capabilities, values, workspaces, labels = DEFAULT_AGENT_CREATOR_LABELS) {
538
- const lines = summarizeCapabilities(capabilities, values.capabilities, values.modelName, labels);
539
- const names = workspaces.filter((w) => values.workspaceIds.includes(w.id)).map((w) => w.name);
540
- lines.push(
541
- names.length > 0 ? labels.summaryWorkspaces(joinList(names)) : labels.summaryNoWorkspaces
542
- );
543
- if (values.name) lines.push(labels.summaryName(values.name));
544
- return lines;
545
- }
546
- var BLANK = {
547
- name: "",
548
- persona: "",
549
- capabilities: {},
550
- modelName: "",
551
- type: "builtin",
552
- workspaceIds: []
553
- };
554
- function AgentCreator({
555
- open,
556
- onOpenChange,
557
- isEdit = false,
558
- agentName,
559
- capabilities,
560
- templates = [],
561
- models = [],
562
- workspaces = [],
563
- grantedWorkspaceIds = [],
564
- onRevokeWorkspace,
565
- revokingWorkspaceId,
566
- avatar,
567
- types,
568
- values: valuesProp,
569
- initialValues,
570
- onValuesChange,
571
- advanced,
572
- isSaving,
573
- onSubmit,
574
- labels,
575
- testId
576
- }) {
577
- const l = { ...DEFAULT_AGENT_CREATOR_LABELS, ...labels };
578
- const seed = react.useMemo(
579
- () => ({ ...BLANK, ...initialValues }),
580
- // Seeded once per open.
581
- // eslint-disable-next-line react-hooks/exhaustive-deps
582
- [open]
583
- );
584
- const [values, setValues] = chunkCHVCTKF4_cjs.useControllableState(
585
- valuesProp,
586
- seed,
587
- onValuesChange
588
- );
589
- const [advancedOpen, setAdvancedOpen] = react.useState(false);
590
- const [nameTouched, setNameTouched] = react.useState(false);
591
- react.useEffect(() => {
592
- if (open) {
593
- if (valuesProp === void 0) setValues(seed);
594
- setAdvancedOpen(false);
595
- setNameTouched(Boolean(seed.name));
596
- }
597
- }, [open]);
598
- const id = chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "agent-creator" });
599
- const name = values.name;
600
- const nameValid = isValidAgentName(name);
601
- const canSubmit = (isEdit || nameValid) && !isSaving;
602
- const patch = (next) => setValues({ ...values, ...next });
603
- const setPersona = (persona) => patch({ persona, ...!isEdit && !nameTouched ? { name: deriveAgentName(persona) } : {} });
604
- const applyTemplate = (t) => patch({
605
- persona: t.persona,
606
- capabilities: Object.fromEntries(
607
- capabilities.map((c) => [c.key, t.capabilities.includes(c.key)])
608
- ),
609
- ...!isEdit && !nameTouched ? { name: deriveAgentName(t.persona) } : {}
610
- });
611
- const summary = summarizeAgent(capabilities, values, workspaces, l);
612
- return /* @__PURE__ */ jsxRuntime.jsx(ui.Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsxs(
613
- ui.DialogContent,
614
- {
615
- presentation: "sheet",
616
- className: "max-h-[calc(100dvh-2rem)] overflow-y-auto sm:max-w-xl",
617
- "data-testid": id,
618
- children: [
619
- /* @__PURE__ */ jsxRuntime.jsxs(ui.DialogHeader, { children: [
620
- /* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: isEdit ? l.titleEdit(agentName ?? name) : l.titleNew }),
621
- /* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { children: isEdit ? l.descriptionEdit : l.descriptionNew })
622
- ] }),
623
- /* @__PURE__ */ jsxRuntime.jsxs(
624
- "form",
625
- {
626
- className: "flex flex-col gap-5",
627
- onSubmit: (event) => {
628
- event.preventDefault();
629
- if (canSubmit) onSubmit(values);
630
- },
631
- children: [
632
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1.5", children: [
633
- /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "agent-creator-describe", children: l.describe }),
634
- /* @__PURE__ */ jsxRuntime.jsx(
635
- ui.Textarea,
636
- {
637
- id: "agent-creator-describe",
638
- "data-testid": `${id}-describe`,
639
- value: values.persona,
640
- placeholder: l.describePlaceholder,
641
- rows: 4,
642
- autoFocus: true,
643
- onChange: (e) => setPersona(e.target.value)
644
- }
645
- ),
646
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: l.describeHint })
647
- ] }),
648
- !isEdit && templates.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", "data-testid": `${id}-templates`, children: [
649
- /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { children: l.startFrom }),
650
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-2", children: templates.map((t) => /* @__PURE__ */ jsxRuntime.jsx(
651
- "button",
652
- {
653
- type: "button",
654
- title: t.description,
655
- onClick: () => applyTemplate(t),
656
- "data-testid": `${id}-template-${t.id}`,
657
- className: ui.cn(
658
- "rounded-full border border-border px-3 py-1.5 text-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:min-h-11 [&:hover]:bg-accent"
659
- ),
660
- children: t.title
661
- },
662
- t.id
663
- )) })
664
- ] }),
665
- /* @__PURE__ */ jsxRuntime.jsxs(
666
- "div",
667
- {
668
- className: "rounded-lg bg-muted p-3 text-sm",
669
- "data-testid": `${id}-summary`,
670
- "aria-live": "polite",
671
- children: [
672
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1 flex items-center gap-1.5 text-xs font-medium text-muted-foreground", children: [
673
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "size-4 text-ai-ink", "aria-hidden": "true" }),
674
- l.summaryHeading
675
- ] }),
676
- summary.map((line) => /* @__PURE__ */ jsxRuntime.jsx("p", { children: line }, line)),
677
- /* @__PURE__ */ jsxRuntime.jsx(
678
- "button",
679
- {
680
- type: "button",
681
- onClick: () => setAdvancedOpen(true),
682
- "data-testid": `${id}-summary-change`,
683
- className: "mt-1 text-xs font-medium text-primary underline-offset-2 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:min-h-11",
684
- children: l.summaryChange
685
- }
686
- )
687
- ]
688
- }
689
- ),
690
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-end gap-4", children: [
691
- typeof avatar === "function" ? avatar(values) : avatar,
692
- !isEdit && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1.5", children: [
693
- /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "agent-creator-name", children: l.name }),
694
- /* @__PURE__ */ jsxRuntime.jsx(
695
- ui.Input,
696
- {
697
- id: "agent-creator-name",
698
- "data-testid": `${id}-name`,
699
- value: name,
700
- placeholder: "research-assistant",
701
- "aria-invalid": name !== "" && !nameValid ? true : void 0,
702
- onChange: (e) => {
703
- setNameTouched(true);
704
- patch({ name: e.target.value });
705
- }
706
- }
707
- ),
708
- name !== "" && !nameValid && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-destructive", children: l.nameInvalid })
709
- ] })
710
- ] }),
711
- /* @__PURE__ */ jsxRuntime.jsx(
712
- chunkWS5EX7DN_cjs.FoldSection,
713
- {
714
- label: l.advanced,
715
- open: advancedOpen,
716
- onOpenChange: setAdvancedOpen,
717
- testId: `${id}-advanced-toggle`,
718
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-4", children: [
719
- !isEdit && types && types.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
720
- AgentTypeSelector,
721
- {
722
- value: values.type,
723
- onChange: (type) => patch({ type }),
724
- options: types,
725
- testId: `${id}-type`,
726
- optionTestId: (value) => `${id}-type-${value}`
727
- }
728
- ),
729
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", children: [
730
- /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { children: l.capabilities }),
731
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: l.toolsHint }),
732
- /* @__PURE__ */ jsxRuntime.jsx(CapabilityGrid, { testId: `${id}-capabilities`, children: capabilities.map((c) => /* @__PURE__ */ jsxRuntime.jsx(
733
- CapabilityTile,
734
- {
735
- label: c.label,
736
- description: c.description,
737
- icon: c.icon,
738
- selected: Boolean(values.capabilities[c.key]),
739
- onToggle: () => patch({
740
- capabilities: {
741
- ...values.capabilities,
742
- [c.key]: !values.capabilities[c.key]
743
- }
744
- }),
745
- testId: `${id}-cap-${c.key}`
746
- },
747
- c.key
748
- )) })
749
- ] }),
750
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", "data-testid": `${id}-workspaces`, children: [
751
- /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { children: l.workspaceAccess }),
752
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: l.workspaceAccessHint }),
753
- workspaces.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: l.noWorkspacesToGrant }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-2", children: workspaces.map((w) => {
754
- const already = grantedWorkspaceIds.includes(w.id);
755
- const on = already || values.workspaceIds.includes(w.id);
756
- return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1", children: [
757
- /* @__PURE__ */ jsxRuntime.jsx(
758
- "button",
759
- {
760
- type: "button",
761
- role: "checkbox",
762
- "aria-checked": on,
763
- disabled: already,
764
- title: already ? l.workspaceAlready : void 0,
765
- "data-testid": `${id}-workspace-${w.id}`,
766
- onClick: () => patch({
767
- workspaceIds: on ? values.workspaceIds.filter((x) => x !== w.id) : [...values.workspaceIds, w.id]
768
- }),
769
- className: ui.cn(
770
- "rounded-md border px-3 py-1.5 text-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-60 pointer-coarse:min-h-11",
771
- on ? "border-primary bg-primary/10 text-primary" : "border-border [&:hover:not(:disabled)]:bg-accent"
772
- ),
773
- children: w.name
774
- }
775
- ),
776
- already && onRevokeWorkspace && /* @__PURE__ */ jsxRuntime.jsx(
777
- "button",
778
- {
779
- type: "button",
780
- "aria-label": l.revokeWorkspace(w.name),
781
- title: l.revokeWorkspace(w.name),
782
- disabled: revokingWorkspaceId === w.id,
783
- "data-testid": `${id}-workspace-${w.id}-revoke`,
784
- onClick: () => onRevokeWorkspace(w.id),
785
- className: "flex size-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-50 pointer-coarse:size-11",
786
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "size-4", "aria-hidden": true })
787
- }
788
- )
789
- ] }, w.id);
790
- }) })
791
- ] }),
792
- models.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1.5", children: [
793
- /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { children: l.model }),
794
- /* @__PURE__ */ jsxRuntime.jsxs(
795
- ui.Select,
796
- {
797
- value: values.modelName || "__auto__",
798
- onValueChange: (v) => patch({ modelName: v === "__auto__" ? "" : v }),
799
- children: [
800
- /* @__PURE__ */ jsxRuntime.jsx(ui.SelectTrigger, { "data-testid": `${id}-model`, className: "pointer-coarse:min-h-11", children: /* @__PURE__ */ jsxRuntime.jsx(ui.SelectValue, {}) }),
801
- /* @__PURE__ */ jsxRuntime.jsxs(ui.SelectContent, { children: [
802
- /* @__PURE__ */ jsxRuntime.jsx(ui.SelectItem, { value: "__auto__", children: l.modelAuto }),
803
- models.map((m) => /* @__PURE__ */ jsxRuntime.jsx(ui.SelectItem, { value: m, children: m }, m))
804
- ] })
805
- ]
806
- }
807
- )
808
- ] }),
809
- typeof advanced === "function" ? advanced(values) : advanced
810
- ] })
811
- }
812
- ),
813
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col-reverse sm:flex-row sm:justify-end gap-2 border-t border-border pt-3", children: [
814
- /* @__PURE__ */ jsxRuntime.jsx(
815
- ui.Button,
816
- {
817
- type: "button",
818
- variant: "ghost",
819
- onClick: () => onOpenChange(false),
820
- "data-testid": `${id}-cancel`,
821
- className: "pointer-coarse:min-h-11",
822
- children: l.cancel
823
- }
824
- ),
825
- /* @__PURE__ */ jsxRuntime.jsxs(
826
- ui.Button,
827
- {
828
- type: "submit",
829
- disabled: !canSubmit,
830
- "data-testid": `${id}-submit`,
831
- className: "gap-1.5 pointer-coarse:min-h-11",
832
- children: [
833
- isSaving ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "size-4 animate-spin" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "size-4" }),
834
- isSaving ? l.saving : isEdit ? l.save : l.create
835
- ]
836
- }
837
- )
838
- ] })
839
- ]
840
- }
841
- )
842
- ]
843
- }
844
- ) });
845
- }
846
-
847
- // src/agents/definitions/persona.ts
848
- function composePersona(name, description) {
849
- const body = description.trim();
850
- const preamble = `You are ${name}, an AI agent.`;
851
- return body ? `${preamble} ${body}` : preamble;
852
- }
853
- function stripPersonaPreamble(persona) {
854
- return persona.replace(/^You are .+?, an AI agent\.\s*/, "").trim();
855
- }
856
- function agentCreatorToConfigSection(values, capabilityKeys) {
857
- return {
858
- PERSONA: composePersona(values.name, values.persona),
859
- ...values.modelName ? { AGENT_MODEL_NAME: values.modelName } : {},
860
- ...Object.fromEntries(capabilityKeys.map((k) => [k, !!values.capabilities[k]]))
861
- };
862
- }
863
- function agentConfigSectionToValues(section, capabilityKeys) {
864
- const s = section ?? {};
865
- return {
866
- persona: stripPersonaPreamble(String(s.PERSONA ?? "")),
867
- modelName: String(s.AGENT_MODEL_NAME ?? ""),
868
- capabilities: Object.fromEntries(capabilityKeys.map((k) => [k, Boolean(s[k])]))
869
- };
870
- }
871
- function SkillTypeBadge({ type, className }) {
872
- return /* @__PURE__ */ jsxRuntime.jsx(
873
- "span",
874
- {
875
- className: ui.cn(
876
- "shrink-0 rounded bg-background px-1.5 py-0.5 text-xs uppercase tracking-wide text-muted-foreground",
877
- className
878
- ),
879
- "data-slot": "skill-type-badge",
880
- children: type
881
- }
882
- );
883
- }
884
- var DEFAULT_SKILL_GLOBAL_BADGE_LABELS = {
885
- global: "Global",
886
- globalTitle: "Shared with everyone in the marketplace"
887
- };
888
- function SkillGlobalBadge({
889
- className,
890
- labels
891
- }) {
892
- const l = { ...DEFAULT_SKILL_GLOBAL_BADGE_LABELS, ...labels };
893
- return /* @__PURE__ */ jsxRuntime.jsxs(
894
- "span",
895
- {
896
- className: ui.cn(
897
- "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",
898
- className
899
- ),
900
- title: l.globalTitle,
901
- "data-slot": "skill-global-badge",
902
- children: [
903
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Globe, { className: "size-3" }),
904
- l.global
905
- ]
906
- }
907
- );
908
- }
909
- function SkillActionButton({
910
- label,
911
- tooltip,
912
- onClick,
913
- children,
914
- testId
915
- }) {
916
- return /* @__PURE__ */ jsxRuntime.jsxs(ui.Tooltip, { children: [
917
- /* @__PURE__ */ jsxRuntime.jsx(ui.TooltipTrigger, { asChild: true, onFocusCapture: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsxRuntime.jsx(
918
- ui.Button,
919
- {
920
- variant: "ghost",
921
- size: "icon",
922
- className: "size-7 shrink-0 pointer-coarse:size-11",
923
- onClick: (e) => {
924
- e.stopPropagation();
925
- onClick(e);
926
- },
927
- "aria-label": label,
928
- "data-testid": testId,
929
- children
930
- }
931
- ) }),
932
- /* @__PURE__ */ jsxRuntime.jsx(ui.TooltipContent, { children: /* @__PURE__ */ jsxRuntime.jsx("p", { children: tooltip ?? label }) })
933
- ] });
934
- }
935
- function activateOnKey(handler) {
936
- return (e) => {
937
- if (e.target !== e.currentTarget) return;
938
- if (e.key === "Enter" || e.key === " ") {
939
- e.preventDefault();
940
- handler();
941
- }
942
- };
943
- }
944
343
  var DEFAULT_SKILL_CARD_LABELS = {
945
344
  global: "Global",
946
345
  globalTitle: "Shared with everyone in the marketplace",
@@ -983,7 +382,7 @@ function SkillCard({
983
382
  className
984
383
  ),
985
384
  onClick,
986
- onKeyDown: activateOnKey(onClick),
385
+ onKeyDown: chunkULEDHANM_cjs.activateOnKey(onClick),
987
386
  "data-skill-name": name,
988
387
  "data-testid": chunkMHVNT4J3_cjs.testIdOr(testId ?? testIds?.root, { testId: "skill-card" }),
989
388
  "data-slot": "skill-card",
@@ -1007,12 +406,12 @@ function SkillCard({
1007
406
  "/",
1008
407
  name
1009
408
  ] }),
1010
- type && type !== "markdown" && /* @__PURE__ */ jsxRuntime.jsx(SkillTypeBadge, { type }),
1011
- isGlobal && /* @__PURE__ */ jsxRuntime.jsx(SkillGlobalBadge, { labels: l }),
409
+ type && type !== "markdown" && /* @__PURE__ */ jsxRuntime.jsx(chunkULEDHANM_cjs.SkillTypeBadge, { type }),
410
+ isGlobal && /* @__PURE__ */ jsxRuntime.jsx(chunkULEDHANM_cjs.SkillGlobalBadge, { labels: l }),
1012
411
  /* @__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 }),
1013
412
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-auto flex shrink-0 items-center gap-1", "data-slot": "skill-card-actions", children: [
1014
413
  /* @__PURE__ */ jsxRuntime.jsx(
1015
- SkillActionButton,
414
+ chunkULEDHANM_cjs.SkillActionButton,
1016
415
  {
1017
416
  label: l.preview,
1018
417
  onClick: onPreview,
@@ -1021,7 +420,7 @@ function SkillCard({
1021
420
  }
1022
421
  ),
1023
422
  /* @__PURE__ */ jsxRuntime.jsx(
1024
- SkillActionButton,
423
+ chunkULEDHANM_cjs.SkillActionButton,
1025
424
  {
1026
425
  label: l.edit,
1027
426
  onClick: onEdit,
@@ -1030,7 +429,7 @@ function SkillCard({
1030
429
  }
1031
430
  ),
1032
431
  /* @__PURE__ */ jsxRuntime.jsx(
1033
- SkillActionButton,
432
+ chunkULEDHANM_cjs.SkillActionButton,
1034
433
  {
1035
434
  label: l.export,
1036
435
  onClick: onExport,
@@ -1039,7 +438,7 @@ function SkillCard({
1039
438
  }
1040
439
  ),
1041
440
  isOwner && onToggleVisibility && /* @__PURE__ */ jsxRuntime.jsx(
1042
- SkillActionButton,
441
+ chunkULEDHANM_cjs.SkillActionButton,
1043
442
  {
1044
443
  label: isGlobal ? l.makePrivate : l.publish,
1045
444
  tooltip: isGlobal ? l.makePrivateTooltip : l.publish,
@@ -1094,7 +493,7 @@ function SkillRow({
1094
493
  className
1095
494
  ),
1096
495
  onClick: onInvoke,
1097
- onKeyDown: activateOnKey(onInvoke),
496
+ onKeyDown: chunkULEDHANM_cjs.activateOnKey(onInvoke),
1098
497
  "data-testid": chunkMHVNT4J3_cjs.testIdOr(testId, { testId: `skills-panel-row-${name}` }),
1099
498
  "data-slot": "skill-row",
1100
499
  title: l.insertTitle(name),
@@ -1112,356 +511,28 @@ function SkillRow({
1112
511
  "/",
1113
512
  name
1114
513
  ] }),
1115
- type && type !== "markdown" && /* @__PURE__ */ jsxRuntime.jsx(SkillTypeBadge, { type }),
1116
- isGlobal && /* @__PURE__ */ jsxRuntime.jsx(SkillGlobalBadge, { labels: l })
514
+ type && type !== "markdown" && /* @__PURE__ */ jsxRuntime.jsx(chunkULEDHANM_cjs.SkillTypeBadge, { type }),
515
+ isGlobal && /* @__PURE__ */ jsxRuntime.jsx(chunkULEDHANM_cjs.SkillGlobalBadge, { labels: l })
1117
516
  ] }),
1118
517
  description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-xs text-muted-foreground", children: description })
1119
518
  ] }),
1120
519
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-0.5", children: [
1121
- /* @__PURE__ */ jsxRuntime.jsx(SkillActionButton, { label: l.preview, onClick: () => onPreview(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Eye, { className: "size-4" }) }),
1122
- onEdit && /* @__PURE__ */ jsxRuntime.jsx(SkillActionButton, { label: l.edit, onClick: () => onEdit(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pencil, { className: "size-4" }) }),
520
+ /* @__PURE__ */ jsxRuntime.jsx(chunkULEDHANM_cjs.SkillActionButton, { label: l.preview, onClick: () => onPreview(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Eye, { className: "size-4" }) }),
521
+ onEdit && /* @__PURE__ */ jsxRuntime.jsx(chunkULEDHANM_cjs.SkillActionButton, { label: l.edit, onClick: () => onEdit(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pencil, { className: "size-4" }) }),
1123
522
  onTogglePublish && /* @__PURE__ */ jsxRuntime.jsx(
1124
- SkillActionButton,
523
+ chunkULEDHANM_cjs.SkillActionButton,
1125
524
  {
1126
525
  label: isGlobal ? l.makePrivate : l.publish,
1127
526
  onClick: () => onTogglePublish(),
1128
527
  children: isGlobal ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Lock, { className: "size-4" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Globe, { className: "size-4 text-primary" })
1129
528
  }
1130
529
  ),
1131
- onDelete && /* @__PURE__ */ jsxRuntime.jsx(SkillActionButton, { label: l.delete, onClick: () => onDelete(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2, { className: "size-4 text-destructive" }) })
1132
- ] })
1133
- ]
1134
- }
1135
- );
1136
- }
1137
- var DEFAULT_SKILL_GENERATE_FORM_LABELS = {
1138
- title: "Generate with AI",
1139
- hint: "Describe what the skill should do. The assistant drafts it in chat, then you can edit it here.",
1140
- placeholder: "e.g. Summarize a contract into key obligations, dates, and parties",
1141
- generate: "Generate with AI",
1142
- writeManually: "\u2026or write it manually"
1143
- };
1144
- function SkillGenerateForm({
1145
- onGenerate,
1146
- onManual,
1147
- icon,
1148
- labels,
1149
- testIds
1150
- }) {
1151
- const l = { ...DEFAULT_SKILL_GENERATE_FORM_LABELS, ...labels };
1152
- const [desc, setDesc] = react.useState("");
1153
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-1 flex-col gap-4 overflow-y-auto p-4", "data-slot": "skill-generate-form", children: [
1154
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg bg-muted p-4", children: [
1155
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1 flex items-center gap-2", children: [
1156
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Wand2, { className: "size-4 text-primary" }),
1157
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium", children: l.title })
1158
- ] }),
1159
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-3 text-xs text-muted-foreground", children: l.hint }),
1160
- /* @__PURE__ */ jsxRuntime.jsx(
1161
- ui.Textarea,
1162
- {
1163
- value: desc,
1164
- onChange: (e) => setDesc(e.target.value),
1165
- rows: 4,
1166
- placeholder: l.placeholder,
1167
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.description, { testId: "skills-panel-ai-desc" })
1168
- }
1169
- ),
1170
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3 flex justify-end", children: /* @__PURE__ */ jsxRuntime.jsxs(
1171
- ui.Button,
1172
- {
1173
- size: "sm",
1174
- disabled: !desc.trim(),
1175
- onClick: () => onGenerate(desc.trim()),
1176
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.generate, { testId: "skills-panel-ai-generate" }),
1177
- children: [
1178
- icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mr-1 [&>svg]:size-4", children: icon }),
1179
- l.generate
1180
- ]
1181
- }
1182
- ) })
1183
- ] }),
1184
- /* @__PURE__ */ jsxRuntime.jsx(
1185
- "button",
1186
- {
1187
- type: "button",
1188
- className: "self-start text-sm text-muted-foreground underline-offset-2 hover:text-foreground hover:underline pointer-coarse:min-h-11",
1189
- onClick: onManual,
1190
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.writeManually, { testId: "skills-panel-write-manually" }),
1191
- children: l.writeManually
1192
- }
1193
- )
1194
- ] });
1195
- }
1196
- var DEFAULT_SKILL_EDIT_FORM_LABELS = {
1197
- name: "Name",
1198
- namePlaceholder: "contract-summary",
1199
- invokedAs: (name) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1200
- "Invoked as ",
1201
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-mono", children: [
1202
- "/",
1203
- name || "skill-name"
1204
- ] })
1205
- ] }),
1206
- description: "Description",
1207
- descriptionPlaceholder: "What it does and when to use it",
1208
- instructions: "Instructions",
1209
- cancel: "Cancel",
1210
- saving: "Saving\u2026",
1211
- saveChanges: "Save changes",
1212
- create: "Create skill"
1213
- };
1214
- var FIELD_LABEL = "text-xs font-semibold uppercase tracking-wide text-muted-foreground";
1215
- function SkillEditForm({
1216
- name,
1217
- onNameChange,
1218
- isNameLocked,
1219
- nameError,
1220
- description,
1221
- onDescriptionChange,
1222
- editor,
1223
- isSaving,
1224
- isEditing,
1225
- onSave,
1226
- onCancel,
1227
- labels,
1228
- testIds
1229
- }) {
1230
- const l = { ...DEFAULT_SKILL_EDIT_FORM_LABELS, ...labels };
1231
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full min-h-0 flex-col", "data-slot": "skill-edit-form", children: [
1232
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto p-4", children: [
1233
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1234
- /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "sp-name", className: FIELD_LABEL, children: l.name }),
1235
- /* @__PURE__ */ jsxRuntime.jsx(
1236
- ui.Input,
1237
- {
1238
- id: "sp-name",
1239
- value: name,
1240
- disabled: isNameLocked,
1241
- placeholder: l.namePlaceholder,
1242
- onChange: (e) => onNameChange(e.target.value),
1243
- className: "mt-1",
1244
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.name, { testId: "skills-panel-edit-name" })
1245
- }
1246
- ),
1247
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: l.invokedAs(name) }),
1248
- nameError && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-destructive", children: nameError })
1249
- ] }),
1250
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1251
- /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "sp-desc", className: FIELD_LABEL, children: l.description }),
1252
- /* @__PURE__ */ jsxRuntime.jsx(
1253
- ui.Input,
1254
- {
1255
- id: "sp-desc",
1256
- value: description,
1257
- placeholder: l.descriptionPlaceholder,
1258
- onChange: (e) => onDescriptionChange(e.target.value),
1259
- className: "mt-1",
1260
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.description, { testId: "skills-panel-edit-desc" })
1261
- }
1262
- )
1263
- ] }),
1264
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-0 flex-1 flex-col", children: [
1265
- /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { className: `${FIELD_LABEL} mb-1`, children: l.instructions }),
1266
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-[240px] flex-1 overflow-hidden rounded-md border border-border", children: editor })
1267
- ] })
1268
- ] }),
1269
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col-reverse sm:flex-row sm:justify-end gap-2 border-t border-border px-4 py-3", children: [
1270
- /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { variant: "outline", size: "sm", onClick: onCancel, children: l.cancel }),
1271
- /* @__PURE__ */ jsxRuntime.jsx(
1272
- ui.Button,
1273
- {
1274
- size: "sm",
1275
- onClick: onSave,
1276
- disabled: isSaving,
1277
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.save, { testId: "skills-panel-edit-save" }),
1278
- children: isSaving ? l.saving : isEditing ? l.saveChanges : l.create
1279
- }
1280
- )
1281
- ] })
1282
- ] });
1283
- }
1284
- function SkillFilterChips({
1285
- options,
1286
- value,
1287
- onChange,
1288
- label,
1289
- testIdPrefix = "skills-filter",
1290
- className
1291
- }) {
1292
- return /* @__PURE__ */ jsxRuntime.jsx(
1293
- "div",
1294
- {
1295
- role: "radiogroup",
1296
- "aria-label": label,
1297
- className: ui.cn("flex flex-wrap gap-2", className),
1298
- "data-slot": "skill-filter-chips",
1299
- children: options.map((option) => {
1300
- const selected = option.id === value;
1301
- return /* @__PURE__ */ jsxRuntime.jsxs(
1302
- "button",
1303
- {
1304
- type: "button",
1305
- role: "radio",
1306
- "aria-checked": selected,
1307
- onClick: () => onChange(option.id),
1308
- "data-testid": `${testIdPrefix}-${option.id}`,
1309
- className: ui.cn(
1310
- "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",
1311
- selected ? "border-primary bg-primary/10 text-foreground" : "border-border bg-background text-muted-foreground [&:hover]:bg-muted"
1312
- ),
1313
- children: [
1314
- option.label,
1315
- option.count !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-muted-foreground", children: option.count })
1316
- ]
1317
- },
1318
- option.id
1319
- );
1320
- })
1321
- }
1322
- );
1323
- }
1324
- var DEFAULT_SKILL_VIEW_TOGGLE_LABELS = {
1325
- group: "View",
1326
- gallery: "Gallery",
1327
- list: "List"
1328
- };
1329
- function SkillViewToggle({ value, onChange, labels, testId }) {
1330
- const l = { ...DEFAULT_SKILL_VIEW_TOGGLE_LABELS, ...labels };
1331
- const item = (view, label, icon) => /* @__PURE__ */ jsxRuntime.jsx(
1332
- "button",
1333
- {
1334
- type: "button",
1335
- role: "radio",
1336
- "aria-checked": value === view,
1337
- "aria-label": label,
1338
- title: label,
1339
- onClick: () => onChange(view),
1340
- "data-testid": `${testId ?? "skills-view-toggle"}-${view}`,
1341
- className: ui.cn(
1342
- "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",
1343
- value === view ? "bg-background text-foreground shadow-sm" : "text-muted-foreground"
1344
- ),
1345
- children: icon
1346
- }
1347
- );
1348
- return /* @__PURE__ */ jsxRuntime.jsxs(
1349
- "div",
1350
- {
1351
- role: "radiogroup",
1352
- "aria-label": l.group,
1353
- className: "inline-flex shrink-0 gap-0.5 rounded-lg bg-muted p-0.5",
1354
- "data-testid": testId ?? "skills-view-toggle",
1355
- children: [
1356
- item("gallery", l.gallery, /* @__PURE__ */ jsxRuntime.jsx(lucideReact.LayoutGrid, { className: "size-4" })),
1357
- item("list", l.list, /* @__PURE__ */ jsxRuntime.jsx(lucideReact.List, { className: "size-4" }))
1358
- ]
1359
- }
1360
- );
1361
- }
1362
- function SkillTile({
1363
- name,
1364
- description,
1365
- sourceLabel,
1366
- type,
1367
- icon,
1368
- layout,
1369
- selected,
1370
- onSelect,
1371
- testId
1372
- }) {
1373
- const isRow = layout === "list";
1374
- return /* @__PURE__ */ jsxRuntime.jsxs(
1375
- "div",
1376
- {
1377
- role: "button",
1378
- tabIndex: 0,
1379
- "aria-pressed": selected,
1380
- onClick: onSelect,
1381
- onKeyDown: activateOnKey(onSelect),
1382
- "data-testid": testId ?? `skill-tile-${name}`,
1383
- "data-skill-name": name,
1384
- "data-slot": "skill-tile",
1385
- className: ui.cn(
1386
- "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",
1387
- isRow ? "items-center gap-3" : "h-full flex-col gap-2",
1388
- selected ? "border-primary bg-primary/5" : "border-transparent bg-muted [&:hover]:bg-accent"
1389
- ),
1390
- children: [
1391
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
1392
- icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-ai-ink [&>svg]:size-5", children: icon }),
1393
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate text-sm font-semibold text-foreground", children: name })
1394
- ] }),
1395
- /* @__PURE__ */ jsxRuntime.jsx(
1396
- "p",
1397
- {
1398
- className: ui.cn(
1399
- "min-w-0 text-sm text-muted-foreground",
1400
- isRow ? "flex-1 truncate max-sm:hidden" : "line-clamp-3"
1401
- ),
1402
- children: description
1403
- }
1404
- ),
1405
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ui.cn("flex shrink-0 items-center gap-1.5", isRow && "ml-auto"), children: [
1406
- type && type !== "markdown" && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded bg-background px-1.5 py-0.5 text-xs uppercase tracking-wide text-muted-foreground", children: type }),
1407
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded bg-background px-1.5 py-0.5 text-xs text-muted-foreground", children: sourceLabel })
530
+ onDelete && /* @__PURE__ */ jsxRuntime.jsx(chunkULEDHANM_cjs.SkillActionButton, { label: l.delete, onClick: () => onDelete(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2, { className: "size-4 text-destructive" }) })
1408
531
  ] })
1409
532
  ]
1410
533
  }
1411
534
  );
1412
535
  }
1413
- function SkillDetail({
1414
- title,
1415
- sourceLabel,
1416
- description,
1417
- icon,
1418
- notice,
1419
- children,
1420
- actions,
1421
- testId
1422
- }) {
1423
- return /* @__PURE__ */ jsxRuntime.jsxs(
1424
- "section",
1425
- {
1426
- className: "flex min-h-0 flex-1 flex-col",
1427
- "data-testid": testId ?? "skill-detail",
1428
- "data-slot": "skill-detail",
1429
- "aria-label": title,
1430
- children: [
1431
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-h-0 flex-1 space-y-4 overflow-y-auto p-4", children: [
1432
- /* @__PURE__ */ jsxRuntime.jsxs("header", { className: "space-y-1", children: [
1433
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [
1434
- icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-ai-ink [&>svg]:size-5", children: icon }),
1435
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-base font-semibold text-foreground", children: title }),
1436
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground", children: sourceLabel })
1437
- ] }),
1438
- description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: description }),
1439
- notice && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-foreground", children: notice })
1440
- ] }),
1441
- children
1442
- ] }),
1443
- actions && /* @__PURE__ */ jsxRuntime.jsx(
1444
- "div",
1445
- {
1446
- className: "flex flex-wrap gap-2 border-t border-border bg-background p-3",
1447
- "data-slot": "skill-detail-actions",
1448
- children: actions
1449
- }
1450
- )
1451
- ]
1452
- }
1453
- );
1454
- }
1455
- function SkillDetailSection({
1456
- title,
1457
- children,
1458
- testId
1459
- }) {
1460
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", "data-testid": testId, children: [
1461
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: title }),
1462
- children
1463
- ] });
1464
- }
1465
536
  var DEFAULT_TASK_PLAN_LABELS = {
1466
537
  emptyTitle: "Draft a plan to review",
1467
538
  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.",
@@ -2890,7 +1961,7 @@ function TaskTable(props) {
2890
1961
  isMe: mine
2891
1962
  };
2892
1963
  };
2893
- const renderPerson = props.renderPerson ?? ((person) => /* @__PURE__ */ jsxRuntime.jsx(chunkCHVCTKF4_cjs.PersonPill, { person }));
1964
+ const renderPerson = props.renderPerson ?? ((person) => /* @__PURE__ */ jsxRuntime.jsx(chunkULEDHANM_cjs.PersonPill, { person }));
2894
1965
  const q = (query.trim() || (props.filterText ?? "").trim()).toLowerCase();
2895
1966
  const counts = react.useMemo(() => {
2896
1967
  const map = new Map(STATUS_ORDER.map((s) => [s, 0]));
@@ -3504,7 +2575,7 @@ function TaskInbox(p) {
3504
2575
  else next.add(id);
3505
2576
  return next;
3506
2577
  });
3507
- p.renderPerson ?? ((value) => /* @__PURE__ */ jsxRuntime.jsx(chunkCHVCTKF4_cjs.PersonPill, { person: value }));
2578
+ p.renderPerson ?? ((value) => /* @__PURE__ */ jsxRuntime.jsx(chunkULEDHANM_cjs.PersonPill, { person: value }));
3508
2579
  const taskById = new Map(all.map((t) => [t.external_id, t]));
3509
2580
  const visible = new Set(rows.map((t) => t.external_id));
3510
2581
  for (const task of rows) {
@@ -3692,7 +2763,7 @@ function TaskInbox(p) {
3692
2763
  fieldsButton: "tasks-filter-fields"
3693
2764
  },
3694
2765
  filter: /* @__PURE__ */ jsxRuntime.jsx(
3695
- chunkRQ2Y7USX_cjs.TriStateFilterMenu,
2766
+ chunkMIDXCYZB_cjs.TriStateFilterMenu,
3696
2767
  {
3697
2768
  testId: "tasks-status-filter",
3698
2769
  open: filterOpen,
@@ -4202,7 +3273,7 @@ function TaskStartDialog({
4202
3273
  setSourceOpen(false);
4203
3274
  }, [open]);
4204
3275
  const textareaRef = react.useRef(null);
4205
- const mention = chunk6F7SZCVL_cjs.useMentionAutocomplete({
3276
+ const mention = chunkOWCEQKAR_cjs.useMentionAutocomplete({
4206
3277
  value: prompt,
4207
3278
  onValueChange: setPrompt,
4208
3279
  candidates: people,
@@ -4553,7 +3624,7 @@ function workflowTaskFields(workflow, inputs, name, context) {
4553
3624
  }
4554
3625
  const typed = name?.trim();
4555
3626
  if (workflow.options?.agent === false) {
4556
- const message = chunk6F7SZCVL_cjs.composeWorkflowPrompt(workflow, inputs, context);
3627
+ const message = chunkOWCEQKAR_cjs.composeWorkflowPrompt(workflow, inputs, context);
4557
3628
  return { name: typed || message, prompt: "", skill_ref: null, skill_inputs: null };
4558
3629
  }
4559
3630
  const derived = typed || deriveWorkflowName(workflow, inputs);
@@ -4567,7 +3638,7 @@ function workflowTaskFields(workflow, inputs, name, context) {
4567
3638
  }
4568
3639
  return {
4569
3640
  name: derived,
4570
- prompt: chunk6F7SZCVL_cjs.composeWorkflowPrompt(workflow, inputs, context),
3641
+ prompt: chunkOWCEQKAR_cjs.composeWorkflowPrompt(workflow, inputs, context),
4571
3642
  skill_ref: null,
4572
3643
  // The files a run is bound to travel in the saved inputs, whatever the template: the server binds
4573
3644
  // the run to the ids listed under any input's `documents`.
@@ -5070,37 +4141,6 @@ function NewThreadDialog({
5070
4141
  }
5071
4142
  ) });
5072
4143
  }
5073
- function TaskActivityDialog({
5074
- open,
5075
- onOpenChange,
5076
- taskName,
5077
- events,
5078
- isLoading,
5079
- isError,
5080
- labels,
5081
- testId,
5082
- ...timeline
5083
- }) {
5084
- const l = { ...chunkCHVCTKF4_cjs.DEFAULT_TASK_ACTIVITY_LABELS, ...labels };
5085
- const id = chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "task-activity" });
5086
- const count = events?.length ?? 0;
5087
- const scrollToEnd = react.useCallback(
5088
- (el) => {
5089
- if (count >= 0) el?.scrollIntoView?.({ block: "end" });
5090
- },
5091
- [count]
5092
- );
5093
- return /* @__PURE__ */ jsxRuntime.jsx(ui.Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsxs(ui.DialogContent, { presentation: "sheet", className: "max-h-[80dvh] sm:max-w-lg", "data-testid": id, children: [
5094
- /* @__PURE__ */ jsxRuntime.jsxs(ui.DialogHeader, { children: [
5095
- /* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: l.title }),
5096
- /* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { className: "truncate", children: taskName })
5097
- ] }),
5098
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-h-[55dvh] overflow-y-auto pr-1", "data-testid": `${id}-scroll`, children: [
5099
- isLoading && !events ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: l.loading }) : isError && !events ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-destructive", children: l.error }) : count === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: l.empty }) : /* @__PURE__ */ jsxRuntime.jsx(chunkCHVCTKF4_cjs.TaskActivityTimeline, { events: events ?? [], labels, testId: id, ...timeline }),
5100
- /* @__PURE__ */ jsxRuntime.jsx("div", { ref: scrollToEnd })
5101
- ] })
5102
- ] }) });
5103
- }
5104
4144
  function TaskFlow({
5105
4145
  items,
5106
4146
  className
@@ -5134,7 +4174,7 @@ function TaskFlow({
5134
4174
  },
5135
4175
  children: /* @__PURE__ */ jsxRuntime.jsx("ol", { className: "flex w-max min-w-full items-center gap-1 py-0.5", children: items.map((item, i) => {
5136
4176
  const chip = (props) => /* @__PURE__ */ jsxRuntime.jsx(
5137
- chunk6F7SZCVL_cjs.StepChip,
4177
+ chunkOWCEQKAR_cjs.StepChip,
5138
4178
  {
5139
4179
  kind: "adhoc",
5140
4180
  phase: "ready",
@@ -5188,7 +4228,7 @@ function ThreadActivity({ item, children }) {
5188
4228
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full max-w-xl items-center gap-2", children: [
5189
4229
  /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, className: "wf-link", "data-done": done || void 0 }),
5190
4230
  /* @__PURE__ */ jsxRuntime.jsx(
5191
- chunk6F7SZCVL_cjs.StepChip,
4231
+ chunkOWCEQKAR_cjs.StepChip,
5192
4232
  {
5193
4233
  inert: true,
5194
4234
  kind,
@@ -5207,7 +4247,7 @@ function ThreadActivity({ item, children }) {
5207
4247
  }
5208
4248
  ),
5209
4249
  document && /* @__PURE__ */ jsxRuntime.jsx(
5210
- chunk6F7SZCVL_cjs.StepDocumentButton,
4250
+ chunkOWCEQKAR_cjs.StepDocumentButton,
5211
4251
  {
5212
4252
  kind,
5213
4253
  name: document.name,
@@ -5274,7 +4314,7 @@ function ThreadLauncher({
5274
4314
  const [shared, setShared] = react.useState(false);
5275
4315
  const [started, setStarted] = react.useState(null);
5276
4316
  const textareaRef = react.useRef(null);
5277
- const mention = chunk6F7SZCVL_cjs.useMentionAutocomplete({
4317
+ const mention = chunkOWCEQKAR_cjs.useMentionAutocomplete({
5278
4318
  value: prompt,
5279
4319
  onValueChange: setPrompt,
5280
4320
  candidates: people,
@@ -5471,10 +4511,10 @@ function WorkflowRunStatus({
5471
4511
  testId = "workflow-run-status"
5472
4512
  }) {
5473
4513
  const l = { ...DEFAULT_WORKFLOW_RUN_STATUS_LABELS, ...labels };
5474
- const ordered = chunk6F7SZCVL_cjs.stepLevels(steps).flat();
5475
- const phaseOf = (id) => isLoading ? "blocked" : chunk6F7SZCVL_cjs.stepPhase(steps, states, id);
5476
- const finished = !isLoading && chunk6F7SZCVL_cjs.isRunFinished(steps, states);
5477
- const atId = finished || isLoading ? void 0 : chunkCHVCTKF4_cjs.activeStepId(chunk6F7SZCVL_cjs.stepLevels(steps), phaseOf);
4514
+ const ordered = chunkOWCEQKAR_cjs.stepLevels(steps).flat();
4515
+ const phaseOf = (id) => isLoading ? "blocked" : chunkOWCEQKAR_cjs.stepPhase(steps, states, id);
4516
+ const finished = !isLoading && chunkOWCEQKAR_cjs.isRunFinished(steps, states);
4517
+ const atId = finished || isLoading ? void 0 : chunkULEDHANM_cjs.activeStepId(chunkOWCEQKAR_cjs.stepLevels(steps), phaseOf);
5478
4518
  const at = ordered.find((s) => s.id === atId);
5479
4519
  const phase = at ? phaseOf(at.id) : "done";
5480
4520
  const assignee = at && ["ready", "waiting"].includes(phase) ? assigneeOf?.(at) : void 0;
@@ -5506,7 +4546,7 @@ function WorkflowRunStatus({
5506
4546
  "span",
5507
4547
  {
5508
4548
  className: ui.cn(
5509
- `wf-kind-${chunk6F7SZCVL_cjs.stepKindOf(s)}`,
4549
+ `wf-kind-${chunkOWCEQKAR_cjs.stepKindOf(s)}`,
5510
4550
  "h-1.5 w-3 shrink-0 rounded-full",
5511
4551
  SEGMENT[phaseOf(s.id)],
5512
4552
  s.id === atId && "w-5"
@@ -5552,7 +4592,7 @@ function groupThreadActivity(steps, items) {
5552
4592
  continue;
5553
4593
  }
5554
4594
  if (current === void 0) out.before.push(item);
5555
- else if (chunk6F7SZCVL_cjs.isRunFinished(steps, states)) out.after.push(item);
4595
+ else if (chunkOWCEQKAR_cjs.isRunFinished(steps, states)) out.after.push(item);
5556
4596
  else {
5557
4597
  const status = states[current]?.status;
5558
4598
  const at = status === "done" || status === "skipped" ? steps.find((s) => !["done", "skipped"].includes(states[s.id]?.status ?? ""))?.id ?? current : current;
@@ -5575,9 +4615,9 @@ var DEFAULT_WORKFLOW_THREAD_STRIP_LABELS = {
5575
4615
  after: "After",
5576
4616
  beforeSteps: "Before the first step",
5577
4617
  afterSteps: "After the last step",
5578
- kinds: chunk6F7SZCVL_cjs.DEFAULT_STEP_KIND_LABELS,
5579
- documents: chunk6F7SZCVL_cjs.DEFAULT_STEP_DOCUMENT_LABELS,
5580
- record: chunk6F7SZCVL_cjs.DEFAULT_STEP_RECORD_LABELS
4618
+ kinds: chunkOWCEQKAR_cjs.DEFAULT_STEP_KIND_LABELS,
4619
+ documents: chunkOWCEQKAR_cjs.DEFAULT_STEP_DOCUMENT_LABELS,
4620
+ record: chunkOWCEQKAR_cjs.DEFAULT_STEP_RECORD_LABELS
5581
4621
  };
5582
4622
  function WorkflowThreadStartedBy({
5583
4623
  origin,
@@ -5708,7 +4748,7 @@ function EntriesChip({
5708
4748
  const latest = items.at(-1);
5709
4749
  return /* @__PURE__ */ jsxRuntime.jsxs(ui.Popover, { children: [
5710
4750
  /* @__PURE__ */ jsxRuntime.jsx(ui.PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
5711
- chunk6F7SZCVL_cjs.StepChip,
4751
+ chunkOWCEQKAR_cjs.StepChip,
5712
4752
  {
5713
4753
  kind,
5714
4754
  phase: "ready",
@@ -5747,23 +4787,23 @@ function WorkflowThreadStrip({
5747
4787
  className
5748
4788
  }) {
5749
4789
  const l = { ...DEFAULT_WORKFLOW_THREAD_STRIP_LABELS, ...labels };
5750
- const barL = { ...chunkCHVCTKF4_cjs.DEFAULT_STEP_BAR_LABELS, ...barLabels };
4790
+ const barL = { ...chunkULEDHANM_cjs.DEFAULT_STEP_BAR_LABELS, ...barLabels };
5751
4791
  const grouped = groupThreadActivity(steps, items);
5752
4792
  const strays = signals.filter((s) => !steps.some((step) => step.id === s.step));
5753
4793
  const link = /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, className: "wf-link wf-kind-start max-w-6", "data-done": true });
5754
4794
  const [selected, setSelected] = react.useState(null);
5755
4795
  const [open, setOpen] = react.useState(null);
5756
- const phaseOf = (id) => chunk6F7SZCVL_cjs.stepPhase(steps, states, id);
4796
+ const phaseOf = (id) => chunkOWCEQKAR_cjs.stepPhase(steps, states, id);
5757
4797
  const iconOf = (step) => step.icon && renderIcon ? renderIcon(step.icon) : void 0;
5758
4798
  const glyphOf = (step) => {
5759
- const KindIcon = chunk6F7SZCVL_cjs.STEP_KIND_ICONS[chunk6F7SZCVL_cjs.stepKindOf(step)];
4799
+ const KindIcon = chunkOWCEQKAR_cjs.STEP_KIND_ICONS[chunkOWCEQKAR_cjs.stepKindOf(step)];
5760
4800
  return iconOf(step) ?? /* @__PURE__ */ jsxRuntime.jsx(KindIcon, {});
5761
4801
  };
5762
4802
  const waitingOf = (id) => {
5763
4803
  const step = steps.find((s) => s.id === id);
5764
4804
  const phase = phaseOf(id);
5765
- const documents = chunk6F7SZCVL_cjs.waitingDocuments(states[id]);
5766
- if (documents.length) return chunk6F7SZCVL_cjs.waitingForDocumentsText(documents.length);
4805
+ const documents = chunkOWCEQKAR_cjs.waitingDocuments(states[id]);
4806
+ if (documents.length) return chunkOWCEQKAR_cjs.waitingForDocumentsText(documents.length);
5767
4807
  const name = step && (phase === "ready" || phase === "waiting") ? assigneeOf?.(step) : void 0;
5768
4808
  return name ? l.waitingFor.replace("{name}", name) : void 0;
5769
4809
  };
@@ -5773,8 +4813,8 @@ function WorkflowThreadStrip({
5773
4813
  const assignee = phase === "ready" || phase === "waiting" ? assigneeOf?.(step) : void 0;
5774
4814
  const waiting = waitingOf(step.id);
5775
4815
  const sentBack = states[step.id]?.sentBack;
5776
- const kind = chunk6F7SZCVL_cjs.stepKindOf(step);
5777
- const documents = chunk6F7SZCVL_cjs.stepDocuments(steps, states, step.id);
4816
+ const kind = chunkOWCEQKAR_cjs.stepKindOf(step);
4817
+ const documents = chunkOWCEQKAR_cjs.stepDocuments(steps, states, step.id);
5778
4818
  const latestDoc = onOpenDocument ? documents.at(-1) : void 0;
5779
4819
  const finished = ["done", "skipped", "failed"].includes(phase);
5780
4820
  const chip = /* @__PURE__ */ jsxRuntime.jsxs(
@@ -5787,7 +4827,7 @@ function WorkflowThreadStrip({
5787
4827
  },
5788
4828
  children: [
5789
4829
  /* @__PURE__ */ jsxRuntime.jsx(ui.PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
5790
- chunk6F7SZCVL_cjs.StepChip,
4830
+ chunkOWCEQKAR_cjs.StepChip,
5791
4831
  {
5792
4832
  kind,
5793
4833
  phase,
@@ -5801,7 +4841,7 @@ function WorkflowThreadStrip({
5801
4841
  waiting
5802
4842
  ] })
5803
4843
  ] }),
5804
- labelClassName: isCurrent ? chunkCHVCTKF4_cjs.STEP_LABEL_CURRENT : ui.cn(chunkCHVCTKF4_cjs.STEP_LABEL, chunkCHVCTKF4_cjs.STEP_LABEL_MAX),
4844
+ labelClassName: isCurrent ? chunkULEDHANM_cjs.STEP_LABEL_CURRENT : ui.cn(chunkULEDHANM_cjs.STEP_LABEL, chunkULEDHANM_cjs.STEP_LABEL_MAX),
5805
4845
  className: ui.cn(latestDoc && "rounded-r-none"),
5806
4846
  title: waiting ? `${step.title} \xB7 ${waiting}` : step.title,
5807
4847
  "data-testid": `workflow-thread-step-${step.id}`,
@@ -5836,7 +4876,7 @@ function WorkflowThreadStrip({
5836
4876
  ),
5837
4877
  sentBack && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-1 text-xs text-amber-700 dark:text-amber-300", children: l.sentBack }),
5838
4878
  /* @__PURE__ */ jsxRuntime.jsx(
5839
- chunk6F7SZCVL_cjs.StepDocumentCards,
4879
+ chunkOWCEQKAR_cjs.StepDocumentCards,
5840
4880
  {
5841
4881
  refs: documents,
5842
4882
  heading: step.kind === "review" ? phase === "done" ? l.documents.approved : l.documents.toApprove : l.documents.produced,
@@ -5847,7 +4887,7 @@ function WorkflowThreadStrip({
5847
4887
  }
5848
4888
  ),
5849
4889
  /* @__PURE__ */ jsxRuntime.jsx(
5850
- chunk6F7SZCVL_cjs.StepRecord,
4890
+ chunkOWCEQKAR_cjs.StepRecord,
5851
4891
  {
5852
4892
  step,
5853
4893
  state: states[step.id],
@@ -5879,10 +4919,10 @@ function WorkflowThreadStrip({
5879
4919
  return latestDoc ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex min-w-0 items-center", children: [
5880
4920
  chip,
5881
4921
  /* @__PURE__ */ jsxRuntime.jsx(
5882
- chunk6F7SZCVL_cjs.StepDocumentButton,
4922
+ chunkOWCEQKAR_cjs.StepDocumentButton,
5883
4923
  {
5884
4924
  kind,
5885
- name: nameOfDoc?.(chunk6F7SZCVL_cjs.splitDocRef(latestDoc).id) ?? latestDoc,
4925
+ name: nameOfDoc?.(chunkOWCEQKAR_cjs.splitDocRef(latestDoc).id) ?? latestDoc,
5886
4926
  onOpen: () => onOpenDocument?.(latestDoc),
5887
4927
  testId: `workflow-thread-step-${step.id}-open-document`
5888
4928
  }
@@ -5921,17 +4961,17 @@ function WorkflowThreadStrip({
5921
4961
  ] }),
5922
4962
  strays.map((s) => /* @__PURE__ */ jsxRuntime.jsx(SignalPill, { signal: s, l }, `${s.step}-${s.signal}`))
5923
4963
  ] }) : null;
5924
- const at = steps.find((s) => s.id === (selected ?? chunkCHVCTKF4_cjs.activeStepId(chunk6F7SZCVL_cjs.stepLevels(steps), phaseOf)));
5925
- const headingPx = (step) => `${l.kinds[chunk6F7SZCVL_cjs.stepKindOf(step)]} \xB7 ${waitingOf(step.id) ?? ""}`.length * 5.6 - step.title.length * 6.5;
4964
+ const at = steps.find((s) => s.id === (selected ?? chunkULEDHANM_cjs.activeStepId(chunkOWCEQKAR_cjs.stepLevels(steps), phaseOf)));
4965
+ const headingPx = (step) => `${l.kinds[chunkOWCEQKAR_cjs.stepKindOf(step)]} \xB7 ${waitingOf(step.id) ?? ""}`.length * 5.6 - step.title.length * 6.5;
5926
4966
  const reserve = {
5927
- always: (at ? Math.max(0, headingPx(at)) : 0) + steps.filter((s) => grouped.byStep[s.id]?.length).length * BEADS_PX + (onOpenDocument ? steps.filter((s) => chunk6F7SZCVL_cjs.stepDocuments(steps, states, s.id).length).length * DOC_BUTTON_PX : 0),
4967
+ always: (at ? Math.max(0, headingPx(at)) : 0) + steps.filter((s) => grouped.byStep[s.id]?.length).length * BEADS_PX + (onOpenDocument ? steps.filter((s) => chunkOWCEQKAR_cjs.stepDocuments(steps, states, s.id).length).length * DOC_BUTTON_PX : 0),
5928
4968
  leading: leading ? 150 : 0,
5929
4969
  trailing: trailing ? 120 : 0
5930
4970
  };
5931
4971
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: ui.cn("min-w-0 flex-1", className), "data-testid": "workflow-thread-strip", children: /* @__PURE__ */ jsxRuntime.jsx(
5932
- chunkCHVCTKF4_cjs.StepBarFrame,
4972
+ chunkULEDHANM_cjs.StepBarFrame,
5933
4973
  {
5934
- levels: chunk6F7SZCVL_cjs.stepLevels(steps),
4974
+ levels: chunkOWCEQKAR_cjs.stepLevels(steps),
5935
4975
  phaseOf,
5936
4976
  current: selected,
5937
4977
  onSelect: (id) => {
@@ -5944,7 +4984,7 @@ function WorkflowThreadStrip({
5944
4984
  trailing,
5945
4985
  reservePx: reserve,
5946
4986
  icon: glyphOf,
5947
- kindOf: chunk6F7SZCVL_cjs.stepKindOf,
4987
+ kindOf: chunkOWCEQKAR_cjs.stepKindOf,
5948
4988
  labels: { waitingFor: l.waitingFor, ...barLabels },
5949
4989
  tid: (suffix) => `workflow-thread-${suffix}`
5950
4990
  }
@@ -6020,11 +5060,11 @@ function compactThreadActivity(events, stepTitleOf) {
6020
5060
  const count = Math.max(1, entry.recipients.length);
6021
5061
  entry.label = `Notified ${count} ${count === 1 ? "user" : "users"}`;
6022
5062
  } else if (STEP_LABELS[event.kind]) {
6023
- const documents = chunk6F7SZCVL_cjs.eventWaitingDocuments(event.detail);
5063
+ const documents = chunkOWCEQKAR_cjs.eventWaitingDocuments(event.detail);
6024
5064
  const title = typeof event.detail?.step === "string" ? stepTitleOf?.(event.detail.step) : void 0;
6025
5065
  result.push({
6026
5066
  event,
6027
- label: documents ? chunk6F7SZCVL_cjs.waitingForDocumentsText(documents.length) : title && STEP_VERBS[event.kind] ? `${title} ${STEP_VERBS[event.kind]}` : STEP_LABELS[event.kind],
5067
+ label: documents ? chunkOWCEQKAR_cjs.waitingForDocumentsText(documents.length) : title && STEP_VERBS[event.kind] ? `${title} ${STEP_VERBS[event.kind]}` : STEP_LABELS[event.kind],
6028
5068
  recipients: []
6029
5069
  });
6030
5070
  } else if (["artifact_created", "artifact_edited", "document_added", "document_removed"].includes(
@@ -6120,140 +5160,6 @@ function TaskThreadChip({
6120
5160
  }
6121
5161
  );
6122
5162
  }
6123
- var DEFAULT_TASK_RUNS_DIALOG_LABELS = {
6124
- title: (taskName) => `Run history \u2014 ${taskName}`,
6125
- description: "Every time this task ran. Open a run to read or watch it in its conversation.",
6126
- loading: "Loading runs\u2026",
6127
- empty: "This task hasn\u2019t run yet.",
6128
- open: "Open"
6129
- };
6130
- var STATUS_STYLE = {
6131
- running: "bg-ai-soft text-ai-ink",
6132
- success: "bg-green-bg text-green-text",
6133
- completed: "bg-green-bg text-green-text",
6134
- failed: "bg-red-bg text-red-text"
6135
- };
6136
- function TaskRunsDialog({
6137
- inline = false,
6138
- renderErrorReport,
6139
- hideHeader = false,
6140
- open,
6141
- onOpenChange,
6142
- taskName,
6143
- runs,
6144
- isLoading,
6145
- onOpenRun,
6146
- onOpenResult,
6147
- getRunHref,
6148
- testIds,
6149
- labels
6150
- }) {
6151
- const l = { ...DEFAULT_TASK_RUNS_DIALOG_LABELS, ...labels };
6152
- const columns = react.useMemo(
6153
- () => [
6154
- {
6155
- colId: "status",
6156
- field: "status",
6157
- headerName: "Status",
6158
- width: 160,
6159
- minWidth: 140,
6160
- cellRenderer: ({ data }) => data && /* @__PURE__ */ jsxRuntime.jsx(
6161
- "span",
6162
- {
6163
- className: ui.cn(
6164
- "rounded-full px-2 py-0.5 text-xs font-medium capitalize",
6165
- STATUS_STYLE[data.status] ?? "text-muted-foreground"
6166
- ),
6167
- children: chunkCHVCTKF4_cjs.workflowRunStatusLabel(data.status)
6168
- }
6169
- )
6170
- },
6171
- { colId: "when", field: "when", headerName: "Run", flex: 2, minWidth: 240 },
6172
- {
6173
- colId: "result",
6174
- headerName: "",
6175
- width: 280,
6176
- minWidth: 220,
6177
- sortable: false,
6178
- cellRenderer: ({ data: run }) => {
6179
- if (!run) return null;
6180
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full items-center gap-2", children: [
6181
- run.error && renderErrorReport?.(run),
6182
- (run.conversationId || run.resultId && onOpenResult) && /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { asChild: true, variant: "ghost", size: "sm", className: "h-7 gap-1.5", children: /* @__PURE__ */ jsxRuntime.jsxs(
6183
- chunkR26BK7YL_cjs.ActionLink,
6184
- {
6185
- href: getRunHref?.(run),
6186
- onSelect: () => {
6187
- if (run.conversationId) onOpenRun(run.conversationId);
6188
- else if (run.resultId) onOpenResult?.(run.resultId);
6189
- onOpenChange(false);
6190
- },
6191
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.open, { testId: "task-run-open" }),
6192
- children: [
6193
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Eye, { size: 13 }),
6194
- " ",
6195
- l.open
6196
- ]
6197
- }
6198
- ) })
6199
- ] });
6200
- }
6201
- }
6202
- ],
6203
- [onOpenRun, onOpenResult, getRunHref, onOpenChange, testIds?.open, l.open, renderErrorReport]
6204
- );
6205
- const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
6206
- hideHeader ? null : inline ? /* @__PURE__ */ jsxRuntime.jsx(
6207
- chunk7RGLTF76_cjs.TabHeader,
6208
- {
6209
- tabs: [
6210
- {
6211
- id: "history",
6212
- label: l.title(taskName),
6213
- count: runs.length,
6214
- countIcon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.History, { size: 14 }),
6215
- presentation: "count",
6216
- onClose: () => onOpenChange(false)
6217
- }
6218
- ],
6219
- activeTabId: "history",
6220
- onTabChange: () => {
6221
- }
6222
- }
6223
- ) : /* @__PURE__ */ jsxRuntime.jsxs(ui.DialogHeader, { children: [
6224
- /* @__PURE__ */ jsxRuntime.jsxs(ui.DialogTitle, { className: "flex items-center gap-2", children: [
6225
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.History, { size: 16 }),
6226
- " ",
6227
- l.title(taskName)
6228
- ] }),
6229
- /* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { children: l.description })
6230
- ] }),
6231
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
6232
- chunkC2CWWEHO_cjs.GridView,
6233
- {
6234
- testId: chunkMHVNT4J3_cjs.testIdOr(testIds?.list, { testId: "task-runs-list" }),
6235
- gridId: "workflow-runs",
6236
- items: runs,
6237
- columnDefs: columns,
6238
- getItemId: (run) => run.id,
6239
- getRowTestId: () => chunkMHVNT4J3_cjs.testIdOr(testIds?.row, { testId: "task-run-row" }),
6240
- isLoading,
6241
- loadingMessage: l.loading,
6242
- emptyState: { title: l.empty },
6243
- height: "100%"
6244
- }
6245
- ) })
6246
- ] });
6247
- return inline ? /* @__PURE__ */ jsxRuntime.jsx("section", { className: "flex min-h-0 flex-1 flex-col", "data-testid": "automation-history", children: content }) : /* @__PURE__ */ jsxRuntime.jsx(ui.Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsx(
6248
- ui.DialogContent,
6249
- {
6250
- presentation: "sheet",
6251
- className: "flex h-[min(32rem,calc(100dvh-2rem))] min-h-0 max-w-3xl flex-col",
6252
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.modal, { testId: "task-runs-modal" }),
6253
- children: content
6254
- }
6255
- ) });
6256
- }
6257
5163
  var DEFAULT_TASKS_CHROME_LABELS = {
6258
5164
  tasksTab: "Tasks",
6259
5165
  newTask: "New task"
@@ -6431,7 +5337,7 @@ function defaultTaskComposerValues(workflows, initial) {
6431
5337
  return {
6432
5338
  assignee: "me",
6433
5339
  workflowId,
6434
- inputs: workflow ? { ...chunk6F7SZCVL_cjs.defaultInputs(workflow), ...initial?.inputs } : { ...initial?.inputs },
5340
+ inputs: workflow ? { ...chunkOWCEQKAR_cjs.defaultInputs(workflow), ...initial?.inputs } : { ...initial?.inputs },
6435
5341
  when: "manual",
6436
5342
  runAt: "",
6437
5343
  rrule: "",
@@ -6507,7 +5413,7 @@ function WorkflowComposer({
6507
5413
  // eslint-disable-next-line react-hooks/exhaustive-deps
6508
5414
  [workflows, open]
6509
5415
  );
6510
- const [values, setValues] = chunkCHVCTKF4_cjs.useControllableState(
5416
+ const [values, setValues] = chunkULEDHANM_cjs.useControllableState(
6511
5417
  valuesProp,
6512
5418
  seed,
6513
5419
  onValuesChange
@@ -6540,7 +5446,7 @@ function WorkflowComposer({
6540
5446
  return !docs?.length;
6541
5447
  })
6542
5448
  );
6543
- const whatMissing = !workflow || Object.keys(chunk6F7SZCVL_cjs.validateInputs({ ...workflow, inputs: fields }, values.inputs)).length > 0;
5449
+ const whatMissing = !workflow || Object.keys(chunkOWCEQKAR_cjs.validateInputs({ ...workflow, inputs: fields }, values.inputs)).length > 0;
6544
5450
  const runAtPast = values.when === "once" && values.runAt !== "" && values.runAt !== initialValues?.runAt && new Date(values.runAt).getTime() <= Date.now();
6545
5451
  const whenMissing = missingWhen(values, runAtPast);
6546
5452
  const scheduled = values.when !== "now" && values.when !== "manual";
@@ -6552,7 +5458,7 @@ function WorkflowComposer({
6552
5458
  setValues({
6553
5459
  ...values,
6554
5460
  workflowId: next,
6555
- inputs: def ? chunk6F7SZCVL_cjs.defaultInputs(def) : {},
5461
+ inputs: def ? chunkOWCEQKAR_cjs.defaultInputs(def) : {},
6556
5462
  ...def?.documentAction ? { access: "standing" } : {}
6557
5463
  });
6558
5464
  };
@@ -6680,7 +5586,7 @@ function WorkflowComposer({
6680
5586
  },
6681
5587
  "data-testid": `${id}-dropzone`,
6682
5588
  children: /* @__PURE__ */ jsxRuntime.jsx(
6683
- chunkWS5EX7DN_cjs.AddFilesFirst,
5589
+ chunkOGP6MQXQ_cjs.AddFilesFirst,
6684
5590
  {
6685
5591
  reason: l.addFilesReason,
6686
5592
  action: addFilesAction,
@@ -6690,7 +5596,7 @@ function WorkflowComposer({
6690
5596
  }
6691
5597
  ),
6692
5598
  !noFiles && workflow && fields.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
6693
- chunkCHVCTKF4_cjs.SchemaForm,
5599
+ chunkULEDHANM_cjs.SchemaForm,
6694
5600
  {
6695
5601
  fields,
6696
5602
  values: values.inputs,
@@ -7115,7 +6021,7 @@ function WorkTaskComposer({
7115
6021
  // eslint-disable-next-line react-hooks/exhaustive-deps
7116
6022
  [workflows, open]
7117
6023
  );
7118
- const [values, setValues] = chunkCHVCTKF4_cjs.useControllableState(
6024
+ const [values, setValues] = chunkULEDHANM_cjs.useControllableState(
7119
6025
  valuesProp,
7120
6026
  seed,
7121
6027
  onValuesChange
@@ -7129,7 +6035,7 @@ function WorkTaskComposer({
7129
6035
  }, [open]);
7130
6036
  const workflow = workflows.find((w) => w.id === values.workflowId);
7131
6037
  const fields = workflow?.inputs ?? [];
7132
- const errors = workflow ? chunk6F7SZCVL_cjs.validateInputs({ ...workflow, inputs: fields }, values.inputs) : {};
6038
+ const errors = workflow ? chunkOWCEQKAR_cjs.validateInputs({ ...workflow, inputs: fields }, values.inputs) : {};
7133
6039
  const hasWork = configOpen && Boolean(workflow) && Object.keys(errors).length === 0;
7134
6040
  const unattended = hasWork && values.when !== "now" && values.when !== "manual";
7135
6041
  const canConfigure = !isEdit || seed.assignee === "agent";
@@ -7137,7 +6043,7 @@ function WorkTaskComposer({
7137
6043
  const set = (key, value) => setValues({ ...values, [key]: value });
7138
6044
  const pickWorkflow = (id2) => {
7139
6045
  const next = workflows.find((w) => w.id === id2);
7140
- setValues({ ...values, workflowId: id2, inputs: next ? chunk6F7SZCVL_cjs.defaultInputs(next) : {} });
6046
+ setValues({ ...values, workflowId: id2, inputs: next ? chunkOWCEQKAR_cjs.defaultInputs(next) : {} });
7141
6047
  };
7142
6048
  const openConfigure = () => {
7143
6049
  setConfigOpen(true);
@@ -7323,7 +6229,7 @@ function WorkTaskComposer({
7323
6229
  )
7324
6230
  ] }),
7325
6231
  workflow && fields.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
7326
- chunkCHVCTKF4_cjs.SchemaForm,
6232
+ chunkULEDHANM_cjs.SchemaForm,
7327
6233
  {
7328
6234
  fields,
7329
6235
  values: values.inputs,
@@ -9267,7 +8173,7 @@ function AgentCreateView({
9267
8173
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-normal text-muted-foreground", children: l.optional })
9268
8174
  ] }),
9269
8175
  /* @__PURE__ */ jsxRuntime.jsx(
9270
- chunkRFIBUWLF_cjs.MultiSelect,
8176
+ chunkMIDXCYZB_cjs.MultiSelect,
9271
8177
  {
9272
8178
  data: workspaces.map((ws) => ({ label: ws.name, value: ws.id })),
9273
8179
  value: selectedWorkspaces,
@@ -9299,7 +8205,6 @@ function AgentCreateView({
9299
8205
  ] });
9300
8206
  }
9301
8207
 
9302
- exports.AgentAvatarField = AgentAvatarField;
9303
8208
  exports.AgentBar = AgentBar;
9304
8209
  exports.AgentBarIconButton = AgentBarIconButton;
9305
8210
  exports.AgentBarMenu = AgentBarMenu;
@@ -9310,13 +8215,9 @@ exports.AgentBarStatus = AgentBarStatus;
9310
8215
  exports.AgentCard = AgentCard;
9311
8216
  exports.AgentCreateView = AgentCreateView;
9312
8217
  exports.AgentCreatedView = AgentCreatedView;
9313
- exports.AgentCreator = AgentCreator;
9314
8218
  exports.AgentEditView = AgentEditView;
9315
8219
  exports.AgentGallery = AgentGallery;
9316
8220
  exports.AgentMainView = AgentMainView;
9317
- exports.AgentTypeSelector = AgentTypeSelector;
9318
- exports.CapabilityGrid = CapabilityGrid;
9319
- exports.CapabilityTile = CapabilityTile;
9320
8221
  exports.ConfigField = ConfigField;
9321
8222
  exports.ConfigForm = ConfigForm;
9322
8223
  exports.ConsentActions = ConsentActions;
@@ -9334,13 +8235,10 @@ exports.ConsentText = ConsentText;
9334
8235
  exports.ConversationListView = ConversationListView;
9335
8236
  exports.ConversationTurnSpeaker = ConversationTurnSpeaker;
9336
8237
  exports.CopyableUrl = CopyableUrl;
9337
- exports.DEFAULT_AGENT_AVATAR_FIELD_LABELS = DEFAULT_AGENT_AVATAR_FIELD_LABELS;
9338
8238
  exports.DEFAULT_AGENT_BAR_LABELS = DEFAULT_AGENT_BAR_LABELS;
9339
8239
  exports.DEFAULT_AGENT_CARD_LABELS = DEFAULT_AGENT_CARD_LABELS;
9340
- exports.DEFAULT_AGENT_CREATOR_LABELS = DEFAULT_AGENT_CREATOR_LABELS;
9341
8240
  exports.DEFAULT_AGENT_GALLERY_LABELS = DEFAULT_AGENT_GALLERY_LABELS;
9342
8241
  exports.DEFAULT_AGENT_STEPS_LABELS = DEFAULT_AGENT_STEPS_LABELS;
9343
- exports.DEFAULT_AGENT_TYPE_SELECTOR_LABELS = DEFAULT_AGENT_TYPE_SELECTOR_LABELS;
9344
8242
  exports.DEFAULT_AUTHORIZE_AGENT_LABELS = DEFAULT_AUTHORIZE_AGENT_LABELS;
9345
8243
  exports.DEFAULT_CONFIG_FIELD_LABELS = DEFAULT_CONFIG_FIELD_LABELS;
9346
8244
  exports.DEFAULT_CONFIG_FORM_LABELS = DEFAULT_CONFIG_FORM_LABELS;
@@ -9351,18 +8249,13 @@ exports.DEFAULT_PILL_SELECT_LABELS = DEFAULT_PILL_SELECT_LABELS;
9351
8249
  exports.DEFAULT_RECURRENCE = DEFAULT_RECURRENCE;
9352
8250
  exports.DEFAULT_RECURRENCE_BUILDER_LABELS = DEFAULT_RECURRENCE_BUILDER_LABELS;
9353
8251
  exports.DEFAULT_SKILL_CARD_LABELS = DEFAULT_SKILL_CARD_LABELS;
9354
- exports.DEFAULT_SKILL_EDIT_FORM_LABELS = DEFAULT_SKILL_EDIT_FORM_LABELS;
9355
- exports.DEFAULT_SKILL_GENERATE_FORM_LABELS = DEFAULT_SKILL_GENERATE_FORM_LABELS;
9356
- exports.DEFAULT_SKILL_GLOBAL_BADGE_LABELS = DEFAULT_SKILL_GLOBAL_BADGE_LABELS;
9357
8252
  exports.DEFAULT_SKILL_ROW_LABELS = DEFAULT_SKILL_ROW_LABELS;
9358
- exports.DEFAULT_SKILL_VIEW_TOGGLE_LABELS = DEFAULT_SKILL_VIEW_TOGGLE_LABELS;
9359
8253
  exports.DEFAULT_SUBAGENT_ROSTER_LABELS = DEFAULT_SUBAGENT_ROSTER_LABELS;
9360
8254
  exports.DEFAULT_TASKS_CHROME_LABELS = DEFAULT_TASKS_CHROME_LABELS;
9361
8255
  exports.DEFAULT_TASK_COMPOSER_LABELS = DEFAULT_TASK_COMPOSER_LABELS;
9362
8256
  exports.DEFAULT_TASK_LIST_LABELS = DEFAULT_TASK_LIST_LABELS;
9363
8257
  exports.DEFAULT_TASK_OUTPUTS_CELL_LABELS = DEFAULT_TASK_OUTPUTS_CELL_LABELS;
9364
8258
  exports.DEFAULT_TASK_PLAN_LABELS = DEFAULT_TASK_PLAN_LABELS;
9365
- exports.DEFAULT_TASK_RUNS_DIALOG_LABELS = DEFAULT_TASK_RUNS_DIALOG_LABELS;
9366
8259
  exports.DEFAULT_TASK_STATUS_PILL_LABELS = DEFAULT_TASK_STATUS_PILL_LABELS;
9367
8260
  exports.DEFAULT_TASK_THREAD_CHIP_LABELS = DEFAULT_TASK_THREAD_CHIP_LABELS;
9368
8261
  exports.DEFAULT_THREAD_LAUNCHER_LABELS = DEFAULT_THREAD_LAUNCHER_LABELS;
@@ -9384,18 +8277,8 @@ exports.RecurrenceBuilder = RecurrenceBuilder;
9384
8277
  exports.STATUS_LABELS = STATUS_LABELS;
9385
8278
  exports.STATUS_ORDER = STATUS_ORDER;
9386
8279
  exports.STATUS_TONE = STATUS_TONE;
9387
- exports.SkillActionButton = SkillActionButton;
9388
8280
  exports.SkillCard = SkillCard;
9389
- exports.SkillDetail = SkillDetail;
9390
- exports.SkillDetailSection = SkillDetailSection;
9391
- exports.SkillEditForm = SkillEditForm;
9392
- exports.SkillFilterChips = SkillFilterChips;
9393
- exports.SkillGenerateForm = SkillGenerateForm;
9394
- exports.SkillGlobalBadge = SkillGlobalBadge;
9395
8281
  exports.SkillRow = SkillRow;
9396
- exports.SkillTile = SkillTile;
9397
- exports.SkillTypeBadge = SkillTypeBadge;
9398
- exports.SkillViewToggle = SkillViewToggle;
9399
8282
  exports.StepDetail = StepDetail;
9400
8283
  exports.StepNarration = StepNarration;
9401
8284
  exports.StepOutcome = StepOutcome;
@@ -9409,14 +8292,12 @@ exports.SubStepGroup = SubStepGroup;
9409
8292
  exports.SubagentRoster = SubagentRoster;
9410
8293
  exports.TASK_COLUMN_ORDER = TASK_COLUMN_ORDER;
9411
8294
  exports.TRIGGER_LABELS = TRIGGER_LABELS;
9412
- exports.TaskActivityDialog = TaskActivityDialog;
9413
8295
  exports.TaskComposer = TaskComposer;
9414
8296
  exports.TaskFlow = TaskFlow;
9415
8297
  exports.TaskInbox = TaskInbox;
9416
8298
  exports.TaskMoveDialog = TaskMoveDialog;
9417
8299
  exports.TaskOutputsCell = TaskOutputsCell;
9418
8300
  exports.TaskPlan = TaskPlan;
9419
- exports.TaskRunsDialog = TaskRunsDialog;
9420
8301
  exports.TaskStartDialog = TaskStartDialog;
9421
8302
  exports.TaskStatusPill = TaskStatusPill;
9422
8303
  exports.TaskTable = TaskTable;
@@ -9434,14 +8315,11 @@ exports.WorkflowRunStatus = WorkflowRunStatus;
9434
8315
  exports.WorkflowThreadStartedBy = WorkflowThreadStartedBy;
9435
8316
  exports.WorkflowThreadStrip = WorkflowThreadStrip;
9436
8317
  exports.WorkflowsToolbar = WorkflowsToolbar;
9437
- exports.agentConfigSectionToValues = agentConfigSectionToValues;
9438
- exports.agentCreatorToConfigSection = agentCreatorToConfigSection;
9439
8318
  exports.asTaskStatus = asTaskStatus;
9440
8319
  exports.authModeFor = authModeFor;
9441
8320
  exports.buildRRule = buildRRule;
9442
8321
  exports.buildTaskRows = buildTaskRows;
9443
8322
  exports.compactThreadActivity = compactThreadActivity;
9444
- exports.composePersona = composePersona;
9445
8323
  exports.composerToTaskQuery = composerToTaskQuery;
9446
8324
  exports.composerToWorkRequest = composerToWorkRequest;
9447
8325
  exports.composerToWorkflowRequest = composerToWorkflowRequest;
@@ -9450,7 +8328,6 @@ exports.createTaskColumns = createTaskColumns;
9450
8328
  exports.createsWork = createsWork;
9451
8329
  exports.defaultScopeRenderer = defaultScopeRenderer;
9452
8330
  exports.defaultTaskComposerValues = defaultTaskComposerValues;
9453
- exports.deriveAgentName = deriveAgentName;
9454
8331
  exports.deriveWorkflowName = deriveWorkflowName;
9455
8332
  exports.descendantIds = descendantIds;
9456
8333
  exports.describeRRule = describeRRule;
@@ -9467,7 +8344,6 @@ exports.inputDocumentIds = inputDocumentIds;
9467
8344
  exports.isAgenticWorkflow = isAgenticWorkflow;
9468
8345
  exports.isOutOfBounds = isOutOfBounds;
9469
8346
  exports.isPlainTodo = isPlainTodo;
9470
- exports.isValidAgentName = isValidAgentName;
9471
8347
  exports.isoToLocalInput = isoToLocalInput;
9472
8348
  exports.linkedRunsFromActivity = linkedRunsFromActivity;
9473
8349
  exports.localInputToIso = localInputToIso;
@@ -9478,9 +8354,6 @@ exports.ownerExtId = ownerExtId;
9478
8354
  exports.parseRRule = parseRRule;
9479
8355
  exports.prettifyKey = prettifyKey;
9480
8356
  exports.resolveScopeInputs = resolveScopeInputs;
9481
- exports.stripPersonaPreamble = stripPersonaPreamble;
9482
- exports.summarizeAgent = summarizeAgent;
9483
- exports.summarizeCapabilities = summarizeCapabilities;
9484
8357
  exports.taskComposerToCreateRequest = taskComposerToCreateRequest;
9485
8358
  exports.taskComposerToUpdateRequest = taskComposerToUpdateRequest;
9486
8359
  exports.taskNeedsAccess = taskNeedsAccess;
@@ -9489,5 +8362,5 @@ exports.useWorkflowPreview = useWorkflowPreview;
9489
8362
  exports.workflowTaskFields = workflowTaskFields;
9490
8363
  exports.workflowToComposerValues = workflowToComposerValues;
9491
8364
  exports.workflowWhen = workflowWhen;
9492
- //# sourceMappingURL=chunk-JY73DJOS.cjs.map
9493
- //# sourceMappingURL=chunk-JY73DJOS.cjs.map
8365
+ //# sourceMappingURL=chunk-5UXDUOOB.cjs.map
8366
+ //# sourceMappingURL=chunk-5UXDUOOB.cjs.map