@axiom-lattice/react-sdk 4.6.3 → 4.6.5

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 (51) hide show
  1. package/dist/{AgentDetailSideApp-OBDHXBHZ.mjs → AgentDetailSideApp-2ZWWXXAM.mjs} +6 -6
  2. package/dist/{AgentGovernanceWorkbench-GGVJP6GJ.mjs → AgentGovernanceWorkbench-BZDX64QS.mjs} +7 -7
  3. package/dist/{MessageGraph-GTPXPTZC.mjs → MessageGraph-C5WP23G7.mjs} +2 -2
  4. package/dist/{ReactChart-JEUW4EU2.mjs → ReactChart-JH2RKBRE.mjs} +2 -2
  5. package/dist/{TasksSideApp-74BUDYDZ.mjs → TasksSideApp-H7HMCYAP.mjs} +3 -3
  6. package/dist/{TeamWorkspace-EDO2D3QP.mjs → TeamWorkspace-QHSRNALK.mjs} +2 -2
  7. package/dist/{TopologyRuntimeView-TJ2O6QAK.mjs → TopologyRuntimeView-NDPEEC4A.mjs} +3 -3
  8. package/dist/{WorkflowAutomationView-BMP5ALOD.mjs → WorkflowAutomationView-B5ZKGVJQ.mjs} +5 -5
  9. package/dist/{chunk-RCMWZB5U.mjs → chunk-4R3453QP.mjs} +2 -2
  10. package/dist/{chunk-Y4VGUJAK.mjs → chunk-KLNZZCOC.mjs} +4 -4
  11. package/dist/{chunk-3SVN3DBY.mjs → chunk-LVWTPDHR.mjs} +308 -68
  12. package/dist/chunk-LVWTPDHR.mjs.map +1 -0
  13. package/dist/{chunk-MQJ4GZ45.mjs → chunk-RU45MWG6.mjs} +5 -5
  14. package/dist/{chunk-XVRNO7O4.mjs → chunk-SBL4B3F6.mjs} +2 -2
  15. package/dist/{chunk-H2YPL7NX.mjs → chunk-SC7PWT7C.mjs} +4 -4
  16. package/dist/{chunk-WD5XJQ7Y.mjs → chunk-ZIOX5BRF.mjs} +2 -2
  17. package/dist/{embed-page-AgentDetailSideApp-IV5GFM6V.js → embed-page-AgentDetailSideApp-MVSXAG5S.js} +1 -1
  18. package/dist/{embed-page-AgentGovernanceWorkbench-O7EHZD7A.js → embed-page-AgentGovernanceWorkbench-ZEVAVRIQ.js} +1 -1
  19. package/dist/{embed-page-MessageGraph-TPEQXQVI.js → embed-page-MessageGraph-CPZJIKOD.js} +1 -1
  20. package/dist/{embed-page-ReactChart-A54ZOWXH.js → embed-page-ReactChart-7NQMTFJE.js} +1 -1
  21. package/dist/{embed-page-TasksSideApp-VVT5TJHD.js → embed-page-TasksSideApp-CY6NI4DD.js} +1 -1
  22. package/dist/{embed-page-TeamWorkspace-UJCO54AJ.js → embed-page-TeamWorkspace-7GQCMJWF.js} +1 -1
  23. package/dist/{embed-page-TopologyRuntimeView-S65ORYJP.js → embed-page-TopologyRuntimeView-5DJPLCLQ.js} +1 -1
  24. package/dist/{embed-page-WorkflowAutomationView-U346EREK.js → embed-page-WorkflowAutomationView-PDVXZXEF.js} +1 -1
  25. package/dist/embed-page-chunk-3SV3E6X5.js +6986 -0
  26. package/dist/{embed-page-chunk-5KAV3UKK.js → embed-page-chunk-BKCIU75D.js} +1 -1
  27. package/dist/{embed-page-chunk-ZWOJE3I4.js → embed-page-chunk-PZCET7LJ.js} +1 -1
  28. package/dist/{embed-page-chunk-HXKUWQKZ.js → embed-page-chunk-SFHRRNYQ.js} +1 -1
  29. package/dist/{embed-page-chunk-ZXXK35AA.js → embed-page-chunk-ULBEL4OA.js} +1 -1
  30. package/dist/{embed-page-chunk-DLMNBQDM.js → embed-page-chunk-UWL37DAK.js} +1 -1
  31. package/dist/embed-page.js +1 -1
  32. package/dist/index.js +298 -57
  33. package/dist/index.js.map +1 -1
  34. package/dist/index.mjs +7 -7
  35. package/package.json +3 -3
  36. package/dist/chunk-3SVN3DBY.mjs.map +0 -1
  37. package/dist/embed-page-chunk-PJ6DIO3E.js +0 -6985
  38. /package/dist/{AgentDetailSideApp-OBDHXBHZ.mjs.map → AgentDetailSideApp-2ZWWXXAM.mjs.map} +0 -0
  39. /package/dist/{AgentGovernanceWorkbench-GGVJP6GJ.mjs.map → AgentGovernanceWorkbench-BZDX64QS.mjs.map} +0 -0
  40. /package/dist/{MessageGraph-GTPXPTZC.mjs.map → MessageGraph-C5WP23G7.mjs.map} +0 -0
  41. /package/dist/{ReactChart-JEUW4EU2.mjs.map → ReactChart-JH2RKBRE.mjs.map} +0 -0
  42. /package/dist/{TasksSideApp-74BUDYDZ.mjs.map → TasksSideApp-H7HMCYAP.mjs.map} +0 -0
  43. /package/dist/{TeamWorkspace-EDO2D3QP.mjs.map → TeamWorkspace-QHSRNALK.mjs.map} +0 -0
  44. /package/dist/{TopologyRuntimeView-TJ2O6QAK.mjs.map → TopologyRuntimeView-NDPEEC4A.mjs.map} +0 -0
  45. /package/dist/{WorkflowAutomationView-BMP5ALOD.mjs.map → WorkflowAutomationView-B5ZKGVJQ.mjs.map} +0 -0
  46. /package/dist/{chunk-RCMWZB5U.mjs.map → chunk-4R3453QP.mjs.map} +0 -0
  47. /package/dist/{chunk-Y4VGUJAK.mjs.map → chunk-KLNZZCOC.mjs.map} +0 -0
  48. /package/dist/{chunk-MQJ4GZ45.mjs.map → chunk-RU45MWG6.mjs.map} +0 -0
  49. /package/dist/{chunk-XVRNO7O4.mjs.map → chunk-SBL4B3F6.mjs.map} +0 -0
  50. /package/dist/{chunk-H2YPL7NX.mjs.map → chunk-SC7PWT7C.mjs.map} +0 -0
  51. /package/dist/{chunk-WD5XJQ7Y.mjs.map → chunk-ZIOX5BRF.mjs.map} +0 -0
@@ -3201,6 +3201,17 @@ function AgentThreadProvider({
3201
3201
  onStreamCompletedRef.current = onStreamCompleted;
3202
3202
  const pendingIdsRef = useRef5(/* @__PURE__ */ new Set());
3203
3203
  const inFlightRef = useRef5(0);
3204
+ const dismissedInterruptIdsRef = useRef5(/* @__PURE__ */ new Set());
3205
+ const interruptsRef = useRef5(state.interrupts);
3206
+ interruptsRef.current = state.interrupts;
3207
+ const isDismissedInterrupt = useCallback7(
3208
+ (id) => id !== void 0 && dismissedInterruptIdsRef.current.has(id),
3209
+ []
3210
+ );
3211
+ const filterDismissedInterrupts = useCallback7(
3212
+ (list) => list?.filter((interrupt) => !dismissedInterruptIdsRef.current.has(interrupt.id)),
3213
+ []
3214
+ );
3204
3215
  const historyLoadingRef = useRef5(false);
3205
3216
  const streamActiveRef = useRef5(false);
3206
3217
  const historyGenerationRef = useRef5(0);
@@ -3216,6 +3227,7 @@ function AgentThreadProvider({
3216
3227
  historyLoadingRef.current = false;
3217
3228
  inFlightRef.current = 0;
3218
3229
  streamActiveRef.current = false;
3230
+ dismissedInterruptIdsRef.current = /* @__PURE__ */ new Set();
3219
3231
  }
3220
3232
  const isLoadingRef = useRef5(state.isLoading);
3221
3233
  isLoadingRef.current = state.isLoading;
@@ -3245,8 +3257,9 @@ function AgentThreadProvider({
3245
3257
  };
3246
3258
  });
3247
3259
  });
3248
- if (fetchedInterrupts?.length) {
3249
- needUpdateFields.interrupts = fetchedInterrupts;
3260
+ const remainingInterrupts = filterDismissedInterrupts(fetchedInterrupts);
3261
+ if (remainingInterrupts?.length) {
3262
+ needUpdateFields.interrupts = remainingInterrupts;
3250
3263
  }
3251
3264
  needUpdateFields.todos = agentState?.values?.todos;
3252
3265
  needUpdateFields.tasks = agentState?.values?.tasks;
@@ -3258,7 +3271,7 @@ function AgentThreadProvider({
3258
3271
  console.warn("Failed to fetch agent state:", error);
3259
3272
  }
3260
3273
  },
3261
- [client, options.enableReturnStateWhenStreamCompleted]
3274
+ [client, options.enableReturnStateWhenStreamCompleted, filterDismissedInterrupts]
3262
3275
  );
3263
3276
  useEffect8(() => {
3264
3277
  if (options.initialMessages && options.initialMessages.length > 0) {
@@ -3358,13 +3371,14 @@ function AgentThreadProvider({
3358
3371
  isLoadingRef.current = isLoading;
3359
3372
  setState((prev) => {
3360
3373
  if (currentThreadIdRef.current !== threadId) return prev;
3374
+ const nextInterrupts = interrupt ? isDismissedInterrupt(interrupt.id) ? prev.interrupts : [interrupt] : void 0;
3361
3375
  return {
3362
3376
  ...prev,
3363
3377
  todos: todos || prev.todos,
3364
3378
  messages: chunkMessageMerger.current.getMessages(),
3365
3379
  isLoading,
3366
3380
  stopReason: null,
3367
- interrupts: interrupt ? [interrupt] : void 0
3381
+ interrupts: nextInterrupts
3368
3382
  };
3369
3383
  });
3370
3384
  } else {
@@ -3384,7 +3398,7 @@ function AgentThreadProvider({
3384
3398
  });
3385
3399
  }
3386
3400
  },
3387
- [getOwnedLoading, startTransition, threadId]
3401
+ [getOwnedLoading, startTransition, threadId, isDismissedInterrupt]
3388
3402
  );
3389
3403
  const handleStreamEventRef = useRef5(handleStreamEvent);
3390
3404
  handleStreamEventRef.current = handleStreamEvent;
@@ -3414,8 +3428,14 @@ function AgentThreadProvider({
3414
3428
  };
3415
3429
  messageActivityGenerationRef.current += 1;
3416
3430
  const wasIdle = !getOwnedLoading();
3431
+ const isHitlResume = command?.resume !== void 0;
3432
+ if (isHitlResume) {
3433
+ for (const pending of interruptsRef.current ?? []) {
3434
+ dismissedInterruptIdsRef.current.add(pending.id);
3435
+ }
3436
+ }
3417
3437
  inFlightRef.current += 1;
3418
- if (wasIdle) {
3438
+ if (wasIdle || isHitlResume) {
3419
3439
  const isLoading = getOwnedLoading();
3420
3440
  isLoadingRef.current = isLoading;
3421
3441
  setState((prev) => ({
@@ -3608,8 +3628,8 @@ function AgentThreadProvider({
3608
3628
  };
3609
3629
  });
3610
3630
  }
3611
- );
3612
- needUpdateFields.interrupts = interrupts;
3631
+ ) ?? [];
3632
+ needUpdateFields.interrupts = filterDismissedInterrupts(interrupts);
3613
3633
  const fetchedMessages = await client.getMessages({ threadId: capturedThreadId });
3614
3634
  if (capturedEpoch !== threadEpochRef.current || currentThreadIdRef.current !== capturedThreadId || capturedGeneration !== historyGenerationRef.current) return;
3615
3635
  historyLoadingRef.current = false;
@@ -3627,7 +3647,7 @@ function AgentThreadProvider({
3627
3647
  return {
3628
3648
  ...prev,
3629
3649
  ...needUpdateFields,
3630
- interrupts: prev.interrupts ?? needUpdateFields.interrupts,
3650
+ interrupts: filterDismissedInterrupts(prev.interrupts ?? needUpdateFields.interrupts),
3631
3651
  messages: chunkMessageMerger.current.getMessages(),
3632
3652
  isLoading
3633
3653
  };
@@ -3651,7 +3671,8 @@ function AgentThreadProvider({
3651
3671
  handleStreamEvent,
3652
3672
  fetchAndUpdateAgentState,
3653
3673
  getOwnedLoading,
3654
- resumeStream
3674
+ resumeStream,
3675
+ filterDismissedInterrupts
3655
3676
  ]);
3656
3677
  const clearMessages = useCallback7(() => {
3657
3678
  messageActivityGenerationRef.current += 1;
@@ -28707,7 +28728,7 @@ import { Spin as Spin21 } from "antd";
28707
28728
  import { ListChecks as ListChecks2 } from "lucide-react";
28708
28729
  import { jsx as jsx106 } from "react/jsx-runtime";
28709
28730
  var TasksSideApp = lazy2(
28710
- () => import("./TasksSideApp-74BUDYDZ.mjs").then((m) => ({ default: m.TasksSideApp }))
28731
+ () => import("./TasksSideApp-H7HMCYAP.mjs").then((m) => ({ default: m.TasksSideApp }))
28711
28732
  );
28712
28733
  var TasksButton = () => {
28713
28734
  const { openSideApp, sideAppVisible, sideAppSelectedCard } = useChatUIContext();
@@ -28980,7 +29001,7 @@ ${JSON.stringify(
28980
29001
  // src/components/Chat/MessageViewPanel.tsx
28981
29002
  import { jsx as jsx108 } from "react/jsx-runtime";
28982
29003
  var MessageGraph = React77.lazy(
28983
- () => import("./MessageGraph-GTPXPTZC.mjs").then((m) => ({ default: m.MessageGraph }))
29004
+ () => import("./MessageGraph-C5WP23G7.mjs").then((m) => ({ default: m.MessageGraph }))
28984
29005
  );
28985
29006
  var MessageViewPanel = ({
28986
29007
  messages,
@@ -33009,6 +33030,7 @@ ${nextContent}`;
33009
33030
  ref: senderRef,
33010
33031
  value: content,
33011
33032
  header: senderHeader,
33033
+ autoSize: { minRows: 1, maxRows: 8 },
33012
33034
  onSubmit,
33013
33035
  placeholder: getPlaceholder(isEmpty, isStreaming, hasPendingMessages),
33014
33036
  onChange: (val) => {
@@ -37538,19 +37560,19 @@ var DEFAULT_WORKSPACE_MENU_ITEMS = [
37538
37560
  ];
37539
37561
  var PanelSuspenseFallback = () => /* @__PURE__ */ jsx151("div", { style: { display: "flex", alignItems: "center", justifyContent: "center", height: "100%", minHeight: 120 }, children: /* @__PURE__ */ jsx151(Spin32, {}) });
37540
37562
  var AgentGovernanceWorkbench = lazy3(
37541
- () => import("./AgentGovernanceWorkbench-GGVJP6GJ.mjs").then((m) => ({ default: m.AgentGovernanceWorkbench }))
37563
+ () => import("./AgentGovernanceWorkbench-BZDX64QS.mjs").then((m) => ({ default: m.AgentGovernanceWorkbench }))
37542
37564
  );
37543
37565
  var TopologyRuntimeView = lazy3(
37544
- () => import("./TopologyRuntimeView-TJ2O6QAK.mjs").then((m) => ({ default: m.TopologyRuntimeView }))
37566
+ () => import("./TopologyRuntimeView-NDPEEC4A.mjs").then((m) => ({ default: m.TopologyRuntimeView }))
37545
37567
  );
37546
37568
  var WorkflowAutomationView = lazy3(
37547
- () => import("./WorkflowAutomationView-BMP5ALOD.mjs").then((m) => ({ default: m.WorkflowAutomationView }))
37569
+ () => import("./WorkflowAutomationView-B5ZKGVJQ.mjs").then((m) => ({ default: m.WorkflowAutomationView }))
37548
37570
  );
37549
37571
  var TasksSideApp2 = lazy3(
37550
- () => import("./TasksSideApp-74BUDYDZ.mjs").then((m) => ({ default: m.TasksSideApp }))
37572
+ () => import("./TasksSideApp-H7HMCYAP.mjs").then((m) => ({ default: m.TasksSideApp }))
37551
37573
  );
37552
37574
  var AgentDetailSideApp = lazy3(
37553
- () => import("./AgentDetailSideApp-OBDHXBHZ.mjs").then((m) => ({ default: m.AgentDetailSideApp }))
37575
+ () => import("./AgentDetailSideApp-2ZWWXXAM.mjs").then((m) => ({ default: m.AgentDetailSideApp }))
37554
37576
  );
37555
37577
  var createWrapper = (Component2) => {
37556
37578
  return () => /* @__PURE__ */ jsx151(Suspense4, { fallback: /* @__PURE__ */ jsx151(PanelSuspenseFallback, {}), children: /* @__PURE__ */ jsx151(Component2, { ...{} }) });
@@ -39634,7 +39656,7 @@ var ReadEvalCard = ({ data }) => {
39634
39656
  };
39635
39657
 
39636
39658
  // src/components/GenUI/elements/task_manage_card.tsx
39637
- import { Typography as Typography58 } from "antd";
39659
+ import { Typography as Typography58, Popover as Popover4 } from "antd";
39638
39660
  import { createStyles as createStyles69 } from "antd-style";
39639
39661
  import { ListTodo, ListChecks as ListChecks4 } from "lucide-react";
39640
39662
  import { Fragment as Fragment50, jsx as jsx161, jsxs as jsxs119 } from "react/jsx-runtime";
@@ -39664,6 +39686,10 @@ var actionTitleStyle4 = {
39664
39686
  letterSpacing: 0.5
39665
39687
  };
39666
39688
  var truncate2 = (s, max = 120) => s.length > max ? s.slice(0, max) + "..." : s;
39689
+ var firstLine = (s) => {
39690
+ const line = s.split("\n").map((l) => l.replace(/^#+\s*/, "").trim()).find((l) => l.length > 0) ?? "";
39691
+ return truncate2(line, 80);
39692
+ };
39667
39693
  var statusColor = {
39668
39694
  pending: "#9ca3af",
39669
39695
  in_progress: "#3b82f6",
@@ -39678,28 +39704,89 @@ var priorityColor = {
39678
39704
  medium: "#f59e0b",
39679
39705
  low: "#9ca3af"
39680
39706
  };
39681
- var openTaskSideApp = (openSideApp) => {
39682
- openSideApp({ component_key: "manage_task", data: {} });
39683
- };
39684
- var TaskLiveCard = ({ data, result }) => {
39685
- const openSideApp = useSideAppOpener();
39707
+ var StatusDot = ({ status }) => /* @__PURE__ */ jsx161(
39708
+ "span",
39709
+ {
39710
+ style: {
39711
+ width: 8,
39712
+ height: 8,
39713
+ borderRadius: "50%",
39714
+ background: statusColor[status] ?? "#9ca3af",
39715
+ display: "inline-block",
39716
+ flexShrink: 0
39717
+ }
39718
+ }
39719
+ );
39720
+ var HoverReveal = ({ chip, detail, onClick }) => {
39686
39721
  const { styles } = useStyles52();
39722
+ const trigger = /* @__PURE__ */ jsx161("span", { "data-testid": "manage-task-chip", style: { display: "inline-block", maxWidth: "100%" }, children: /* @__PURE__ */ jsx161(
39723
+ EntityCard,
39724
+ {
39725
+ item: null,
39726
+ dense: true,
39727
+ className: styles.compactLiveCard,
39728
+ onClick: onClick ? () => onClick() : void 0,
39729
+ renderPrimary: () => /* @__PURE__ */ jsx161("div", { style: { display: "flex", alignItems: "center", gap: 8, minWidth: 0 }, children: chip })
39730
+ }
39731
+ ) });
39732
+ if (!detail) return trigger;
39733
+ return /* @__PURE__ */ jsx161(
39734
+ Popover4,
39735
+ {
39736
+ content: /* @__PURE__ */ jsx161("div", { style: { maxWidth: 420 }, children: detail }),
39737
+ trigger: "hover",
39738
+ placement: "rightTop",
39739
+ mouseEnterDelay: 0.15,
39740
+ mouseLeaveDelay: 0.1,
39741
+ children: trigger
39742
+ }
39743
+ );
39744
+ };
39745
+ var resolveLiveView = (data, result, task) => {
39687
39746
  const args = data?.args ?? {};
39688
39747
  const action = args.action ?? "";
39689
- const item = result.data ?? {};
39690
- const verb = action === "create" ? "CREATE TASK" : action === "set_status" ? "SET STATUS" : "UPDATE TASK";
39691
- const title = item.title ?? args.title ?? "";
39692
- const description = item.description ?? "";
39693
- const status = item.status ?? "pending";
39694
- const priority = item.priority ?? "medium";
39695
- const dependencies = Array.isArray(item.dependencies) ? item.dependencies : [];
39696
- const reviewerAction = result.reviewerAction;
39748
+ const item = task ?? result.data ?? {};
39749
+ return {
39750
+ verb: action === "create" ? "CREATE TASK" : action === "set_status" ? "SET STATUS" : action === "get" ? "TASK" : "UPDATE TASK",
39751
+ title: item.title ?? args.title ?? "",
39752
+ status: item.status ?? "pending",
39753
+ description: item.description ?? "",
39754
+ priority: item.priority ?? "medium",
39755
+ dependencies: Array.isArray(item.dependencies) ? item.dependencies : [],
39756
+ reviewerAction: result.reviewerAction
39757
+ };
39758
+ };
39759
+ var resolveListStats = (result) => {
39760
+ const items = Array.isArray(result.data) ? result.data : [];
39761
+ return {
39762
+ items,
39763
+ count: result.count ?? items.length,
39764
+ inProgress: items.filter((t) => t.status === "in_progress").length,
39765
+ completed: items.filter((t) => t.status === "completed").length
39766
+ };
39767
+ };
39768
+ var resolveActivityView = (data, result, task) => {
39769
+ const args = data?.args ?? {};
39770
+ const activity = result.data ?? {};
39771
+ const markdown = activity?.detail?.markdown ?? args.content ?? "";
39772
+ return {
39773
+ markdown,
39774
+ summary: activity?.summary ?? args.summary ?? firstLine(markdown),
39775
+ title: task?.title ?? "",
39776
+ status: task?.status ?? "pending"
39777
+ };
39778
+ };
39779
+ var TaskLiveCard = ({ data, result, task }) => {
39780
+ const openSideApp = useSideAppOpener();
39781
+ const { styles } = useStyles52();
39782
+ const { verb, title, status, description, priority, dependencies, reviewerAction } = resolveLiveView(data, result, task);
39783
+ const item = task ?? result.data ?? {};
39697
39784
  const handleClick = () => {
39698
39785
  if (item.id) {
39699
39786
  openSideApp({ component_key: "manage_task", data: { task: item } });
39700
39787
  return;
39701
39788
  }
39702
- openTaskSideApp(openSideApp);
39789
+ openSideApp({ component_key: "manage_task", data: {} });
39703
39790
  };
39704
39791
  return /* @__PURE__ */ jsx161(
39705
39792
  EntityCard,
@@ -39711,19 +39798,7 @@ var TaskLiveCard = ({ data, result }) => {
39711
39798
  renderPrimary: () => /* @__PURE__ */ jsxs119(Fragment50, { children: [
39712
39799
  /* @__PURE__ */ jsxs119("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
39713
39800
  /* @__PURE__ */ jsx161(Text47, { strong: true, style: actionTitleStyle4, children: verb }),
39714
- /* @__PURE__ */ jsx161(
39715
- "span",
39716
- {
39717
- style: {
39718
- width: 8,
39719
- height: 8,
39720
- borderRadius: "50%",
39721
- background: statusColor[status] ?? "#9ca3af",
39722
- display: "inline-block",
39723
- flexShrink: 0
39724
- }
39725
- }
39726
- )
39801
+ /* @__PURE__ */ jsx161(StatusDot, { status })
39727
39802
  ] }),
39728
39803
  /* @__PURE__ */ jsx161("div", { children: /* @__PURE__ */ jsx161(Text47, { strong: true, style: { fontSize: 14 }, children: title }) })
39729
39804
  ] }),
@@ -39742,14 +39817,48 @@ var TaskLiveCard = ({ data, result }) => {
39742
39817
  }
39743
39818
  );
39744
39819
  };
39820
+ var TaskLiveHoverCard = ({ data, result, task }) => {
39821
+ const openSideApp = useSideAppOpener();
39822
+ const action = data?.args?.action ?? "";
39823
+ const { verb, title, status } = resolveLiveView(data, result, task);
39824
+ const handleClick = () => {
39825
+ if (task.id) {
39826
+ openSideApp({ component_key: "manage_task", data: { task } });
39827
+ return;
39828
+ }
39829
+ openSideApp({ component_key: "manage_task", data: {} });
39830
+ };
39831
+ return /* @__PURE__ */ jsx161(
39832
+ HoverReveal,
39833
+ {
39834
+ onClick: handleClick,
39835
+ detail: /* @__PURE__ */ jsx161(TaskLiveCard, { data, result, task }),
39836
+ chip: /* @__PURE__ */ jsxs119(Fragment50, { children: [
39837
+ /* @__PURE__ */ jsx161(Text47, { strong: true, style: actionTitleStyle4, children: verb }),
39838
+ /* @__PURE__ */ jsx161(
39839
+ Text47,
39840
+ {
39841
+ style: {
39842
+ fontSize: 13,
39843
+ flex: 1,
39844
+ minWidth: 0,
39845
+ overflow: "hidden",
39846
+ textOverflow: "ellipsis",
39847
+ whiteSpace: "nowrap"
39848
+ },
39849
+ children: title
39850
+ }
39851
+ ),
39852
+ action === "set_status" ? /* @__PURE__ */ jsx161(Text47, { style: { fontSize: 12, flexShrink: 0, color: statusColor[status] ?? "#9ca3af" }, children: status }) : /* @__PURE__ */ jsx161(StatusDot, { status })
39853
+ ] })
39854
+ }
39855
+ );
39856
+ };
39745
39857
  var TaskListCard = ({ data, result }) => {
39746
39858
  const openSideApp = useSideAppOpener();
39747
39859
  const { styles } = useStyles52();
39748
- const items = Array.isArray(result.data) ? result.data : [];
39749
- const count = result.count ?? items.length;
39750
- const inProgress = items.filter((t) => t.status === "in_progress").length;
39751
- const completed = items.filter((t) => t.status === "completed").length;
39752
- const handleClick = () => openTaskSideApp(openSideApp);
39860
+ const { items, count, inProgress, completed } = resolveListStats(result);
39861
+ const handleClick = () => openSideApp({ component_key: "manage_task", data: {} });
39753
39862
  return /* @__PURE__ */ jsx161(
39754
39863
  EntityCard,
39755
39864
  {
@@ -39802,20 +39911,137 @@ var TaskListCard = ({ data, result }) => {
39802
39911
  }
39803
39912
  );
39804
39913
  };
39805
- var TaskDeleteCard = ({ data }) => {
39914
+ var TaskListHoverCard = ({ data, result }) => {
39915
+ const openSideApp = useSideAppOpener();
39916
+ const { count, inProgress, completed } = resolveListStats(result);
39917
+ return /* @__PURE__ */ jsx161(
39918
+ HoverReveal,
39919
+ {
39920
+ onClick: () => openSideApp({ component_key: "manage_task", data: {} }),
39921
+ detail: /* @__PURE__ */ jsx161(TaskListCard, { data, result }),
39922
+ chip: /* @__PURE__ */ jsxs119(Fragment50, { children: [
39923
+ /* @__PURE__ */ jsx161(Text47, { strong: true, style: actionTitleStyle4, children: "TASK LIST" }),
39924
+ /* @__PURE__ */ jsxs119(Text47, { style: { fontSize: 13 }, children: [
39925
+ count,
39926
+ " ",
39927
+ count === 1 ? "task" : "tasks"
39928
+ ] }),
39929
+ /* @__PURE__ */ jsxs119(Text47, { type: "secondary", style: { fontSize: 12 }, children: [
39930
+ inProgress,
39931
+ " in progress \xB7 ",
39932
+ completed,
39933
+ " completed"
39934
+ ] })
39935
+ ] })
39936
+ }
39937
+ );
39938
+ };
39939
+ var TaskActivityCard = ({ data, result, task }) => {
39806
39940
  const openSideApp = useSideAppOpener();
39807
39941
  const { styles } = useStyles52();
39808
- const args = data?.args ?? {};
39809
- const title = args.title ?? "";
39810
- const handleClick = () => openTaskSideApp(openSideApp);
39942
+ const { markdown, title, status } = resolveActivityView(data, result, task);
39943
+ const handleClick = () => {
39944
+ openSideApp({ component_key: "manage_task", data: task?.id ? { task } : {} });
39945
+ };
39811
39946
  return /* @__PURE__ */ jsx161(
39812
39947
  EntityCard,
39813
39948
  {
39814
39949
  item: data,
39815
- dense: true,
39816
- className: styles.compactLiveCard,
39950
+ className: styles.liveCard,
39817
39951
  onClick: handleClick,
39818
- renderPrimary: () => /* @__PURE__ */ jsxs119("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
39952
+ renderIcon: () => /* @__PURE__ */ jsx161(ListChecks4, { size: 20 }),
39953
+ renderPrimary: () => /* @__PURE__ */ jsxs119(Fragment50, { children: [
39954
+ /* @__PURE__ */ jsx161(Text47, { strong: true, style: actionTitleStyle4, children: "ACTIVITY" }),
39955
+ /* @__PURE__ */ jsxs119("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
39956
+ /* @__PURE__ */ jsx161(Text47, { strong: true, style: { fontSize: 14 }, children: title || "Task" }),
39957
+ /* @__PURE__ */ jsx161(StatusDot, { status })
39958
+ ] })
39959
+ ] }),
39960
+ renderDetails: () => /* @__PURE__ */ jsx161(MDResponse, { content: markdown })
39961
+ }
39962
+ );
39963
+ };
39964
+ var TaskActivityHoverCard = ({ data, result, task }) => {
39965
+ const openSideApp = useSideAppOpener();
39966
+ const { summary, title } = resolveActivityView(data, result, task);
39967
+ const handleClick = () => {
39968
+ if (task?.id) {
39969
+ openSideApp({ component_key: "manage_task", data: { task } });
39970
+ return;
39971
+ }
39972
+ openSideApp({ component_key: "manage_task", data: {} });
39973
+ };
39974
+ return /* @__PURE__ */ jsx161(
39975
+ HoverReveal,
39976
+ {
39977
+ onClick: handleClick,
39978
+ detail: /* @__PURE__ */ jsx161(TaskActivityCard, { data, result, task }),
39979
+ chip: /* @__PURE__ */ jsxs119(Fragment50, { children: [
39980
+ /* @__PURE__ */ jsx161(Text47, { strong: true, style: actionTitleStyle4, children: "ACTIVITY" }),
39981
+ /* @__PURE__ */ jsx161(
39982
+ Text47,
39983
+ {
39984
+ style: {
39985
+ fontSize: 13,
39986
+ flex: 1,
39987
+ minWidth: 0,
39988
+ overflow: "hidden",
39989
+ textOverflow: "ellipsis",
39990
+ whiteSpace: "nowrap"
39991
+ },
39992
+ children: summary
39993
+ }
39994
+ ),
39995
+ title && /* @__PURE__ */ jsxs119(
39996
+ Text47,
39997
+ {
39998
+ type: "secondary",
39999
+ style: {
40000
+ fontSize: 12,
40001
+ overflow: "hidden",
40002
+ textOverflow: "ellipsis",
40003
+ whiteSpace: "nowrap"
40004
+ },
40005
+ children: [
40006
+ "\xB7 ",
40007
+ title
40008
+ ]
40009
+ }
40010
+ )
40011
+ ] })
40012
+ }
40013
+ );
40014
+ };
40015
+ var TaskDeleteDetailCard = ({ title, id }) => {
40016
+ const openSideApp = useSideAppOpener();
40017
+ const { styles } = useStyles52();
40018
+ return /* @__PURE__ */ jsx161(
40019
+ EntityCard,
40020
+ {
40021
+ item: null,
40022
+ className: styles.liveCard,
40023
+ onClick: () => openSideApp({ component_key: "manage_task", data: {} }),
40024
+ renderPrimary: () => /* @__PURE__ */ jsxs119(Fragment50, { children: [
40025
+ /* @__PURE__ */ jsxs119(Text47, { strong: true, style: actionTitleStyle4, children: [
40026
+ /* @__PURE__ */ jsx161("span", { style: { color: "#ef4444" }, children: "\u2713" }),
40027
+ " Deleted task"
40028
+ ] }),
40029
+ /* @__PURE__ */ jsx161("div", { children: /* @__PURE__ */ jsx161(Text47, { strong: true, style: { fontSize: 14 }, children: title || id }) })
40030
+ ] })
40031
+ }
40032
+ );
40033
+ };
40034
+ var TaskDeleteHoverCard = ({ data }) => {
40035
+ const openSideApp = useSideAppOpener();
40036
+ const args = data?.args ?? {};
40037
+ const title = args.title ?? "";
40038
+ const id = args.id ?? "";
40039
+ return /* @__PURE__ */ jsx161(
40040
+ HoverReveal,
40041
+ {
40042
+ onClick: () => openSideApp({ component_key: "manage_task", data: {} }),
40043
+ detail: /* @__PURE__ */ jsx161(TaskDeleteDetailCard, { title, id }),
40044
+ chip: /* @__PURE__ */ jsxs119(Fragment50, { children: [
39819
40045
  /* @__PURE__ */ jsxs119(Text47, { strong: true, style: actionTitleStyle4, children: [
39820
40046
  /* @__PURE__ */ jsx161("span", { style: { color: "#ef4444" }, children: "\u2713" }),
39821
40047
  " Deleted task"
@@ -39829,7 +40055,9 @@ var failureActionLabel = {
39829
40055
  create: "CREATE TASK",
39830
40056
  update: "UPDATE TASK",
39831
40057
  set_status: "SET STATUS",
40058
+ get: "GET TASK",
39832
40059
  list: "LIST TASKS",
40060
+ add_activity: "ADD ACTIVITY",
39833
40061
  delete: "DELETE TASK"
39834
40062
  };
39835
40063
  var TaskFailureCard = ({ action, message: message36 }) => {
@@ -39857,6 +40085,14 @@ var TaskFailureCard = ({ action, message: message36 }) => {
39857
40085
  }
39858
40086
  );
39859
40087
  };
40088
+ var extractTask = (action, result) => {
40089
+ if (action === "get") return result.data?.task;
40090
+ if (action === "add_activity") return result.task;
40091
+ if (action === "create" || action === "update" || action === "set_status") {
40092
+ return result.data;
40093
+ }
40094
+ return void 0;
40095
+ };
39860
40096
  var TaskManageCard = ({ data }) => {
39861
40097
  const args = data?.args ?? {};
39862
40098
  const action = typeof args.action === "string" ? args.action : "";
@@ -39864,15 +40100,19 @@ var TaskManageCard = ({ data }) => {
39864
40100
  if (!result.success) {
39865
40101
  return /* @__PURE__ */ jsx161(TaskFailureCard, { action, message: result.error ?? "manage_task failed" });
39866
40102
  }
40103
+ const task = extractTask(action, result);
39867
40104
  switch (action) {
39868
40105
  case "create":
39869
40106
  case "update":
39870
40107
  case "set_status":
39871
- return /* @__PURE__ */ jsx161(TaskLiveCard, { data, result });
40108
+ case "get":
40109
+ return /* @__PURE__ */ jsx161(TaskLiveHoverCard, { data, result, task: task ?? {} });
39872
40110
  case "list":
39873
- return /* @__PURE__ */ jsx161(TaskListCard, { data, result });
40111
+ return /* @__PURE__ */ jsx161(TaskListHoverCard, { data, result });
40112
+ case "add_activity":
40113
+ return /* @__PURE__ */ jsx161(TaskActivityHoverCard, { data, result, task });
39874
40114
  case "delete":
39875
- return /* @__PURE__ */ jsx161(TaskDeleteCard, { data });
40115
+ return /* @__PURE__ */ jsx161(TaskDeleteHoverCard, { data });
39876
40116
  default:
39877
40117
  return null;
39878
40118
  }
@@ -42273,11 +42513,11 @@ var constructLines = (value) => {
42273
42513
  return lines;
42274
42514
  }
42275
42515
  const lastLine = lines[lines.length - 1];
42276
- const firstLine = lines[0];
42516
+ const firstLine2 = lines[0];
42277
42517
  if (!lastLine) {
42278
42518
  lines.pop();
42279
42519
  }
42280
- if (!firstLine) {
42520
+ if (!firstLine2) {
42281
42521
  lines.shift();
42282
42522
  }
42283
42523
  return lines;
@@ -45220,8 +45460,8 @@ var formatDate4 = (timestamp) => {
45220
45460
  }
45221
45461
  };
45222
45462
  var getMessagePreview = (content) => {
45223
- const firstLine = content.split("\n")[0];
45224
- return firstLine.length > 80 ? firstLine.slice(0, 80) + "..." : firstLine;
45463
+ const firstLine2 = content.split("\n")[0];
45464
+ return firstLine2.length > 80 ? firstLine2.slice(0, 80) + "..." : firstLine2;
45225
45465
  };
45226
45466
  var MessageGroupComponent = ({ group, styles, defaultExpanded = true, onMessageClick }) => {
45227
45467
  const [isExpanded, setIsExpanded] = useState127(defaultExpanded);
@@ -46526,10 +46766,10 @@ var McpAppCard = ({ data, component_key }) => {
46526
46766
  // src/components/GenUI/elements/builtIns.tsx
46527
46767
  import { jsx as jsx188 } from "react/jsx-runtime";
46528
46768
  var TasksSideApp3 = lazy4(
46529
- () => import("./TasksSideApp-74BUDYDZ.mjs").then((m) => ({ default: m.TasksSideApp }))
46769
+ () => import("./TasksSideApp-H7HMCYAP.mjs").then((m) => ({ default: m.TasksSideApp }))
46530
46770
  );
46531
46771
  var TeamWorkspace = lazy4(
46532
- () => import("./TeamWorkspace-EDO2D3QP.mjs").then((m) => ({ default: m.TeamWorkspace }))
46772
+ () => import("./TeamWorkspace-QHSRNALK.mjs").then((m) => ({ default: m.TeamWorkspace }))
46533
46773
  );
46534
46774
  var elements = {
46535
46775
  action_show_attachments_uploader: {
@@ -46851,7 +47091,7 @@ var LazyReactInfographic = lazy5(
46851
47091
  () => import("./ReactInfographic-ONUZIC7W.mjs").then((m) => ({ default: m.ReactInfographic }))
46852
47092
  );
46853
47093
  var LazyReactChart = lazy5(
46854
- () => import("./ReactChart-JEUW4EU2.mjs").then((m) => ({ default: m.ReactChart }))
47094
+ () => import("./ReactChart-JH2RKBRE.mjs").then((m) => ({ default: m.ReactChart }))
46855
47095
  );
46856
47096
  function BlockLoading() {
46857
47097
  return /* @__PURE__ */ jsx190(
@@ -47762,4 +48002,4 @@ export {
47762
48002
  http://jedwatson.github.io/classnames
47763
48003
  *)
47764
48004
  */
47765
- //# sourceMappingURL=chunk-3SVN3DBY.mjs.map
48005
+ //# sourceMappingURL=chunk-LVWTPDHR.mjs.map