@axiom-lattice/react-sdk 4.3.0 → 4.4.0

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 (65) hide show
  1. package/dist/{AgentDetailSideApp-TI7723CK.mjs → AgentDetailSideApp-RW6B3BGT.mjs} +7 -7
  2. package/dist/AgentGovernanceWorkbench-OXGHJNFL.mjs +19 -0
  3. package/dist/{MessageGraph-ES3P4VLY.mjs → MessageGraph-BVP2M3TM.mjs} +3 -3
  4. package/dist/{ReactChart-6AYFMCMD.mjs → ReactChart-3XHMWXL6.mjs} +3 -3
  5. package/dist/{TasksSideApp-7R42CIFG.mjs → TasksSideApp-MLG7XUQA.mjs} +4 -4
  6. package/dist/{TeamWorkspace-JQ762PEX.mjs → TeamWorkspace-IENL2T4X.mjs} +3 -3
  7. package/dist/{TopologyRuntimeView-OJ35YYVM.mjs → TopologyRuntimeView-B5TVUTAB.mjs} +4 -4
  8. package/dist/{WorkflowAutomationView-3AS77NKN.mjs → WorkflowAutomationView-ZKTUYMPU.mjs} +6 -6
  9. package/dist/{chunk-4FI66ZJ3.mjs → chunk-2NCNDHTI.mjs} +2 -2
  10. package/dist/{chunk-ENLK3ODS.mjs → chunk-3JNBTKKB.mjs} +2 -2
  11. package/dist/{chunk-2ZK7AUQW.mjs → chunk-ADZRYRP6.mjs} +9 -5
  12. package/dist/chunk-ADZRYRP6.mjs.map +1 -0
  13. package/dist/{chunk-4SVLWYLW.mjs → chunk-AJLGOGUB.mjs} +2 -2
  14. package/dist/{chunk-NSGSGYM7.mjs → chunk-HLVE2SB7.mjs} +48 -1
  15. package/dist/chunk-HLVE2SB7.mjs.map +1 -0
  16. package/dist/{chunk-YUV4WO25.mjs → chunk-N5VEHSQU.mjs} +160 -69
  17. package/dist/chunk-N5VEHSQU.mjs.map +1 -0
  18. package/dist/{chunk-3NR7UAPT.mjs → chunk-ORTSDZD4.mjs} +26 -44
  19. package/dist/chunk-ORTSDZD4.mjs.map +1 -0
  20. package/dist/{chunk-DBTFQUSQ.mjs → chunk-XE2ZIE2L.mjs} +4 -4
  21. package/dist/{embed-page-AgentDetailSideApp-PSRQVFNR.js → embed-page-AgentDetailSideApp-2BDEWFQ6.js} +1 -1
  22. package/dist/embed-page-AgentGovernanceWorkbench-WG7E3G5T.js +5 -0
  23. package/dist/{embed-page-MessageGraph-PDNQ67T4.js → embed-page-MessageGraph-5SWPEQ4V.js} +1 -1
  24. package/dist/{embed-page-ReactChart-25KAFLQ3.js → embed-page-ReactChart-ZYWRXIMC.js} +1 -1
  25. package/dist/{embed-page-TasksSideApp-DLH5LRMS.js → embed-page-TasksSideApp-X6255GEF.js} +1 -1
  26. package/dist/{embed-page-TeamWorkspace-2WJJWF25.js → embed-page-TeamWorkspace-XNZM7AV7.js} +1 -1
  27. package/dist/{embed-page-TopologyRuntimeView-WDQRHDMO.js → embed-page-TopologyRuntimeView-DGSHSTIU.js} +1 -1
  28. package/dist/{embed-page-WorkflowAutomationView-BAMJ2WVB.js → embed-page-WorkflowAutomationView-BHIRIWV3.js} +1 -1
  29. package/dist/embed-page-chunk-DEDTYRZE.js +245 -0
  30. package/dist/{embed-page-chunk-XVUA7UHE.js → embed-page-chunk-HEO7X7LH.js} +1 -1
  31. package/dist/{embed-page-chunk-TL2AYM76.js → embed-page-chunk-JMZ7OODN.js} +1 -1
  32. package/dist/{embed-page-chunk-OBM5EUWZ.js → embed-page-chunk-SPC4BYNU.js} +192 -192
  33. package/dist/{embed-page-chunk-LOXLXZNP.js → embed-page-chunk-XUXEGF3S.js} +1 -1
  34. package/dist/{embed-page-chunk-MQDYZS3S.js → embed-page-chunk-YCX5YZRP.js} +1 -1
  35. package/dist/embed-page.js +1 -1
  36. package/dist/index.d.mts +27 -1
  37. package/dist/index.d.ts +27 -1
  38. package/dist/index.js +2029 -1890
  39. package/dist/index.js.map +1 -1
  40. package/dist/index.mjs +13 -8
  41. package/dist/index.mjs.map +1 -1
  42. package/dist/web-app.js +48 -3
  43. package/dist/web-app.js.map +1 -1
  44. package/dist/web-app.mjs +5 -4
  45. package/dist/web-app.mjs.map +1 -1
  46. package/package.json +3 -3
  47. package/dist/AgentGovernanceWorkbench-2MPAB6UF.mjs +0 -19
  48. package/dist/chunk-2ZK7AUQW.mjs.map +0 -1
  49. package/dist/chunk-3NR7UAPT.mjs.map +0 -1
  50. package/dist/chunk-NSGSGYM7.mjs.map +0 -1
  51. package/dist/chunk-YUV4WO25.mjs.map +0 -1
  52. package/dist/embed-page-AgentGovernanceWorkbench-UPQHJZD7.js +0 -5
  53. package/dist/embed-page-chunk-SSC7ANWV.js +0 -245
  54. /package/dist/{AgentDetailSideApp-TI7723CK.mjs.map → AgentDetailSideApp-RW6B3BGT.mjs.map} +0 -0
  55. /package/dist/{AgentGovernanceWorkbench-2MPAB6UF.mjs.map → AgentGovernanceWorkbench-OXGHJNFL.mjs.map} +0 -0
  56. /package/dist/{MessageGraph-ES3P4VLY.mjs.map → MessageGraph-BVP2M3TM.mjs.map} +0 -0
  57. /package/dist/{ReactChart-6AYFMCMD.mjs.map → ReactChart-3XHMWXL6.mjs.map} +0 -0
  58. /package/dist/{TasksSideApp-7R42CIFG.mjs.map → TasksSideApp-MLG7XUQA.mjs.map} +0 -0
  59. /package/dist/{TeamWorkspace-JQ762PEX.mjs.map → TeamWorkspace-IENL2T4X.mjs.map} +0 -0
  60. /package/dist/{TopologyRuntimeView-OJ35YYVM.mjs.map → TopologyRuntimeView-B5TVUTAB.mjs.map} +0 -0
  61. /package/dist/{WorkflowAutomationView-3AS77NKN.mjs.map → WorkflowAutomationView-ZKTUYMPU.mjs.map} +0 -0
  62. /package/dist/{chunk-4FI66ZJ3.mjs.map → chunk-2NCNDHTI.mjs.map} +0 -0
  63. /package/dist/{chunk-ENLK3ODS.mjs.map → chunk-3JNBTKKB.mjs.map} +0 -0
  64. /package/dist/{chunk-4SVLWYLW.mjs.map → chunk-AJLGOGUB.mjs.map} +0 -0
  65. /package/dist/{chunk-DBTFQUSQ.mjs.map → chunk-XE2ZIE2L.mjs.map} +0 -0
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  XMarkdown_default,
3
+ formatErrorMessage,
3
4
  useReviewDecision
4
- } from "./chunk-NSGSGYM7.mjs";
5
+ } from "./chunk-HLVE2SB7.mjs";
5
6
  import {
6
7
  AxiomLatticeProvider,
7
8
  CreateSkillModal,
@@ -114,14 +115,13 @@ function useChat(threadId, assistantId, options = {}) {
114
115
  if (anyChunk.type === "error") {
115
116
  const code = typeof anyChunk.data?.code === "string" ? anyChunk.data.code : "stream_error";
116
117
  const isStop = code === "aborted" || code === "superseded";
118
+ const content = anyChunk.data?.content;
117
119
  setState((prev) => ({
118
120
  ...prev,
119
121
  messages: chunkMessageMerger.current.getMessages(),
120
122
  isLoading: false,
121
123
  streamingMessage: null,
122
- error: isStop ? null : new Error(
123
- typeof anyChunk.data?.content === "string" && anyChunk.data.content ? anyChunk.data.content : "Stream error"
124
- )
124
+ error: isStop ? null : new Error(typeof content === "string" ? formatErrorMessage(content, "Stream error") : "Stream error")
125
125
  }));
126
126
  return;
127
127
  }
@@ -252,7 +252,7 @@ function useChat(threadId, assistantId, options = {}) {
252
252
  setState((prev) => ({
253
253
  ...prev,
254
254
  isLoading: false,
255
- error: error instanceof Error ? error : new Error(String(error))
255
+ error: new Error(formatErrorMessage(error, "Stream error"))
256
256
  }));
257
257
  }
258
258
  },
@@ -341,7 +341,7 @@ function useChat(threadId, assistantId, options = {}) {
341
341
  console.error("Resume stream error:", error);
342
342
  setState((prev) => ({
343
343
  ...prev,
344
- error
344
+ error: new Error(formatErrorMessage(error, "Resume stream error"))
345
345
  }));
346
346
  streamEndedByInterruptRef.current = false;
347
347
  stopStreamingRef.current = null;
@@ -353,7 +353,7 @@ function useChat(threadId, assistantId, options = {}) {
353
353
  setState((prev) => ({
354
354
  ...prev,
355
355
  isLoading: false,
356
- error: error instanceof Error ? error : new Error(String(error))
356
+ error: new Error(formatErrorMessage(error, "Resume stream error"))
357
357
  }));
358
358
  }
359
359
  },
@@ -3398,6 +3398,7 @@ function AgentThreadProvider({
3398
3398
  }
3399
3399
  const { input, command, streaming = true, mode, throwOnError = false } = data;
3400
3400
  const { message: message35, files, ...rest } = input || {};
3401
+ const effectiveRunConfig = data.customRunConfig ? { ...customRunConfig, ...data.customRunConfig } : customRunConfig;
3401
3402
  const capturedEpoch = threadEpochRef.current;
3402
3403
  const capturedStopGeneration = streamStopGenerationRef.current;
3403
3404
  const capturedStream = stream;
@@ -3455,7 +3456,7 @@ function AgentThreadProvider({
3455
3456
  threadId,
3456
3457
  messages: [userMessage],
3457
3458
  command,
3458
- custom_run_config: customRunConfig,
3459
+ custom_run_config: effectiveRunConfig,
3459
3460
  mode,
3460
3461
  ...rest
3461
3462
  });
@@ -3479,7 +3480,7 @@ function AgentThreadProvider({
3479
3480
  threadId,
3480
3481
  messages: [userMessage],
3481
3482
  command,
3482
- custom_run_config: customRunConfig,
3483
+ custom_run_config: effectiveRunConfig,
3483
3484
  ...rest
3484
3485
  });
3485
3486
  if (capturedEpoch !== threadEpochRef.current || currentThreadIdRef.current !== threadId) {
@@ -7722,7 +7723,7 @@ var useSideAppOpener = () => {
7722
7723
  import { Table as Table6, Typography as Typography73, Button as Button86, Flex as Flex7, Space as Space51 } from "antd";
7723
7724
 
7724
7725
  // src/components/GenUI/MDResponse.tsx
7725
- import React127, { useRef as useRef54, useState as useState123, useMemo as useMemo50, useDeferredValue as useDeferredValue3 } from "react";
7726
+ import React128, { useRef as useRef54, useState as useState124, useMemo as useMemo50, useDeferredValue as useDeferredValue3 } from "react";
7726
7727
  import { createStyles as createStyles78 } from "antd-style";
7727
7728
 
7728
7729
  // src/components/GenUI/Code.tsx
@@ -11238,7 +11239,7 @@ var ProjectRoomTimeline = ({
11238
11239
  /* @__PURE__ */ jsx37(Button16, { size: "small", disabled: loadingOlder, onClick: handleLoadOlder, children: "Load older messages" }),
11239
11240
  /* @__PURE__ */ jsx37("span", { role: "status", children: loadingOlder ? "Loading older messages" : "" })
11240
11241
  ] }),
11241
- error !== null && /* @__PURE__ */ jsx37("div", { role: "alert", className: styles.error, children: error.message }),
11242
+ error !== null && /* @__PURE__ */ jsx37("div", { role: "alert", className: styles.error, children: formatErrorMessage(error.message, "The room request failed.") }),
11242
11243
  messages.length === 0 ? loading ? /* @__PURE__ */ jsx37("div", { role: "status", className: styles.state, children: "Loading messages" }) : /* @__PURE__ */ jsx37("div", { role: "status", className: styles.state, children: "No messages yet" }) : /* @__PURE__ */ jsx37(
11243
11244
  Bubble.List,
11244
11245
  {
@@ -11387,11 +11388,11 @@ var useStyles8 = createStyles13(({ token, css }) => ({
11387
11388
  `
11388
11389
  }));
11389
11390
  function errorText(error) {
11390
- if (error instanceof Error) return error.message;
11391
- if (typeof error === "string" && error.length > 0) return error;
11391
+ if (error instanceof Error) return formatErrorMessage(error, "Failed to send the message");
11392
+ if (typeof error === "string" && error.length > 0) return formatErrorMessage(error, "Failed to send the message");
11392
11393
  try {
11393
11394
  const serialized = JSON.stringify(error);
11394
- if (serialized !== void 0 && serialized !== "{}") return serialized;
11395
+ if (serialized !== void 0 && serialized !== "{}") return formatErrorMessage(serialized, "Failed to send the message");
11395
11396
  } catch {
11396
11397
  }
11397
11398
  return "Failed to send the message";
@@ -11817,7 +11818,7 @@ var OK_LABELS = {
11817
11818
  "remove-bot": "Remove"
11818
11819
  };
11819
11820
  function errorText2(error) {
11820
- return error instanceof Error ? error.message : "The request failed. Try again.";
11821
+ return formatErrorMessage(error, "The request failed. Try again.");
11821
11822
  }
11822
11823
  var useStyles10 = createStyles15(({ token, css }) => ({
11823
11824
  root: css`
@@ -13869,7 +13870,7 @@ function buildTaskChatCard(task, threadId) {
13869
13870
  };
13870
13871
  }
13871
13872
  var useOpenTaskChat = (task) => {
13872
- const { openSideApp } = useChatUIContext();
13873
+ const openSideApp = useSideAppOpener();
13873
13874
  return useCallback31(
13874
13875
  (threadId) => {
13875
13876
  if (!task) return;
@@ -15478,7 +15479,7 @@ var ProjectRoomFilesPanel = () => {
15478
15479
  message6.success(`Uploaded "${file.name}" successfully`);
15479
15480
  if (folderName === ROOT_FOLDER) await reloadRoot();
15480
15481
  } catch (error) {
15481
- const errorMessage2 = error instanceof Error ? error.message : "Failed to upload file";
15482
+ const errorMessage2 = formatErrorMessage(error, "Failed to upload file");
15482
15483
  message6.error(errorMessage2);
15483
15484
  } finally {
15484
15485
  setUploadingFolder(null);
@@ -27275,7 +27276,7 @@ import { Spin as Spin19 } from "antd";
27275
27276
  import { ListChecks as ListChecks2 } from "lucide-react";
27276
27277
  import { jsx as jsx102 } from "react/jsx-runtime";
27277
27278
  var TasksSideApp = lazy2(
27278
- () => import("./TasksSideApp-7R42CIFG.mjs").then((m) => ({ default: m.TasksSideApp }))
27279
+ () => import("./TasksSideApp-MLG7XUQA.mjs").then((m) => ({ default: m.TasksSideApp }))
27279
27280
  );
27280
27281
  var TasksButton = () => {
27281
27282
  const { openSideApp, sideAppVisible, sideAppSelectedCard } = useChatUIContext();
@@ -27545,7 +27546,7 @@ ${JSON.stringify(
27545
27546
  // src/components/Chat/MessageViewPanel.tsx
27546
27547
  import { jsx as jsx104 } from "react/jsx-runtime";
27547
27548
  var MessageGraph = React73.lazy(
27548
- () => import("./MessageGraph-ES3P4VLY.mjs").then((m) => ({ default: m.MessageGraph }))
27549
+ () => import("./MessageGraph-BVP2M3TM.mjs").then((m) => ({ default: m.MessageGraph }))
27549
27550
  );
27550
27551
  var MessageViewPanel = ({
27551
27552
  messages,
@@ -30919,7 +30920,8 @@ function InitialMessageSubmitter({
30919
30920
  sendResult = sendMessageRef.current({
30920
30921
  input: { message: content },
30921
30922
  streaming: true,
30922
- throwOnError: true
30923
+ throwOnError: true,
30924
+ ...request.customRunConfig ? { customRunConfig: request.customRunConfig } : {}
30923
30925
  });
30924
30926
  } catch {
30925
30927
  requestRegistryRef.current.delete(requestId);
@@ -31011,6 +31013,7 @@ import { Fragment as Fragment34, jsx as jsx129, jsxs as jsxs94 } from "react/jsx
31011
31013
  var slotConfig = [];
31012
31014
  function LegacyInitialMessageSubmitter({
31013
31015
  initialMessage,
31016
+ initialMessageCustomRunConfig,
31014
31017
  onInitialMessageSent,
31015
31018
  threadId
31016
31019
  }) {
@@ -31037,7 +31040,8 @@ function LegacyInitialMessageSubmitter({
31037
31040
  threadId,
31038
31041
  request: {
31039
31042
  requestId: `legacy:${threadId}:${occurrenceRef.current}`,
31040
- content: initialMessage
31043
+ content: initialMessage,
31044
+ ...initialMessageCustomRunConfig ? { customRunConfig: initialMessageCustomRunConfig } : {}
31041
31045
  }
31042
31046
  };
31043
31047
  committedOccurrenceRef.current = next;
@@ -31087,6 +31091,7 @@ var Chating = ({
31087
31091
  onChatReady,
31088
31092
  onChatMessage,
31089
31093
  initialMessage,
31094
+ initialMessageCustomRunConfig,
31090
31095
  onInitialMessageSent
31091
31096
  }) => {
31092
31097
  const [content, setContent] = useState96("");
@@ -31615,6 +31620,7 @@ ${nextContent}`;
31615
31620
  LegacyInitialMessageSubmitter,
31616
31621
  {
31617
31622
  initialMessage,
31623
+ initialMessageCustomRunConfig,
31618
31624
  onInitialMessageSent,
31619
31625
  threadId
31620
31626
  }
@@ -31717,7 +31723,7 @@ ${nextContent}`;
31717
31723
  banner: true,
31718
31724
  closable: true,
31719
31725
  onClose: () => clearError(),
31720
- message: `${error.message}`
31726
+ message: formatErrorMessage(error, "Stream error")
31721
31727
  }
31722
31728
  ) }),
31723
31729
  !error && stopReason && /* @__PURE__ */ jsx129("div", { style: { padding: "0 16px 8px" }, children: /* @__PURE__ */ jsx129(
@@ -36088,19 +36094,19 @@ var DEFAULT_WORKSPACE_MENU_ITEMS = [
36088
36094
  ];
36089
36095
  var PanelSuspenseFallback = () => /* @__PURE__ */ jsx147("div", { style: { display: "flex", alignItems: "center", justifyContent: "center", height: "100%", minHeight: 120 }, children: /* @__PURE__ */ jsx147(Spin30, {}) });
36090
36096
  var AgentGovernanceWorkbench = lazy3(
36091
- () => import("./AgentGovernanceWorkbench-2MPAB6UF.mjs").then((m) => ({ default: m.AgentGovernanceWorkbench }))
36097
+ () => import("./AgentGovernanceWorkbench-OXGHJNFL.mjs").then((m) => ({ default: m.AgentGovernanceWorkbench }))
36092
36098
  );
36093
36099
  var TopologyRuntimeView = lazy3(
36094
- () => import("./TopologyRuntimeView-OJ35YYVM.mjs").then((m) => ({ default: m.TopologyRuntimeView }))
36100
+ () => import("./TopologyRuntimeView-B5TVUTAB.mjs").then((m) => ({ default: m.TopologyRuntimeView }))
36095
36101
  );
36096
36102
  var WorkflowAutomationView = lazy3(
36097
- () => import("./WorkflowAutomationView-3AS77NKN.mjs").then((m) => ({ default: m.WorkflowAutomationView }))
36103
+ () => import("./WorkflowAutomationView-ZKTUYMPU.mjs").then((m) => ({ default: m.WorkflowAutomationView }))
36098
36104
  );
36099
36105
  var TasksSideApp2 = lazy3(
36100
- () => import("./TasksSideApp-7R42CIFG.mjs").then((m) => ({ default: m.TasksSideApp }))
36106
+ () => import("./TasksSideApp-MLG7XUQA.mjs").then((m) => ({ default: m.TasksSideApp }))
36101
36107
  );
36102
36108
  var AgentDetailSideApp = lazy3(
36103
- () => import("./AgentDetailSideApp-TI7723CK.mjs").then((m) => ({ default: m.AgentDetailSideApp }))
36109
+ () => import("./AgentDetailSideApp-RW6B3BGT.mjs").then((m) => ({ default: m.AgentDetailSideApp }))
36104
36110
  );
36105
36111
  var createWrapper = (Component2) => {
36106
36112
  return () => /* @__PURE__ */ jsx147(Suspense4, { fallback: /* @__PURE__ */ jsx147(PanelSuspenseFallback, {}), children: /* @__PURE__ */ jsx147(Component2, { ...{} }) });
@@ -41265,6 +41271,7 @@ var EditFile = ({
41265
41271
  };
41266
41272
 
41267
41273
  // src/components/GenUI/elements/task_card.tsx
41274
+ import { useEffect as useEffect92, useState as useState118 } from "react";
41268
41275
  import { Card as Card16, Typography as Typography62, Tag as Tag34, Avatar as Avatar9 } from "antd";
41269
41276
  import { createStyles as createStyles71 } from "antd-style";
41270
41277
  import {
@@ -41275,7 +41282,7 @@ import {
41275
41282
  RightOutlined as RightOutlined3,
41276
41283
  CarryOutOutlined
41277
41284
  } from "@ant-design/icons";
41278
- import { jsx as jsx167, jsxs as jsxs124 } from "react/jsx-runtime";
41285
+ import { Fragment as Fragment52, jsx as jsx167, jsxs as jsxs124 } from "react/jsx-runtime";
41279
41286
  var { Text: Text50 } = Typography62;
41280
41287
  var useStyle13 = createStyles71(({ token, css }) => ({
41281
41288
  card: css`
@@ -41423,6 +41430,45 @@ var useStyle13 = createStyles71(({ token, css }) => ({
41423
41430
  border: 1px solid ${token.colorBorderSecondary};
41424
41431
  `
41425
41432
  }));
41433
+ function parseTaskExecution(response) {
41434
+ if (!response) return void 0;
41435
+ try {
41436
+ const parsed = JSON.parse(response);
41437
+ if (parsed && typeof parsed === "object") return parsed;
41438
+ } catch {
41439
+ return void 0;
41440
+ }
41441
+ return void 0;
41442
+ }
41443
+ function threadIdFromExecutionResultId(eventKey) {
41444
+ if (typeof eventKey !== "string") return void 0;
41445
+ const prefix = "execution-result:";
41446
+ if (!eventKey.startsWith(prefix)) return void 0;
41447
+ const suffix = eventKey.slice(prefix.length).trim();
41448
+ return suffix.length > 0 ? suffix : void 0;
41449
+ }
41450
+ async function resolveExecutionThreadId(client, taskId, response, contextThreadId) {
41451
+ const execution = parseTaskExecution(response);
41452
+ const direct = execution?.threadId ?? threadIdFromExecutionResultId(execution?.executionResultId) ?? (typeof contextThreadId === "string" && contextThreadId.length > 0 ? contextThreadId : void 0);
41453
+ if (direct) return direct;
41454
+ try {
41455
+ const items = await client.tasks.workItems.list(taskId);
41456
+ let latest;
41457
+ let latestAt = Number.NEGATIVE_INFINITY;
41458
+ for (const item of items) {
41459
+ if (item.action !== "execution_result" || typeof item.threadId !== "string") continue;
41460
+ if (item.threadId.length === 0) continue;
41461
+ const at = new Date(item.createdAt).getTime();
41462
+ if (Number.isFinite(at) && at > latestAt) {
41463
+ latestAt = at;
41464
+ latest = item.threadId;
41465
+ }
41466
+ }
41467
+ return latest;
41468
+ } catch {
41469
+ return void 0;
41470
+ }
41471
+ }
41426
41472
  var TaskCard = ({
41427
41473
  data,
41428
41474
  component_key,
@@ -41431,13 +41477,34 @@ var TaskCard = ({
41431
41477
  const { styles } = useStyle13();
41432
41478
  const toolCallData = data;
41433
41479
  const openSideApp = useSideAppOpener();
41480
+ const client = useClient("__GLOBAL__");
41481
+ const dispatchTaskId = typeof toolCallData?.args?.taskId === "string" && toolCallData.args.taskId.length > 0 ? toolCallData.args.taskId : void 0;
41482
+ const dispatchAgentId = typeof toolCallData?.args?.agentId === "string" && toolCallData.args.agentId.length > 0 ? toolCallData.args.agentId : void 0;
41483
+ const isDispatch = dispatchTaskId !== void 0 && dispatchAgentId !== void 0;
41484
+ const [resolvedTask, setResolvedTask] = useState118(null);
41485
+ const { threadId, assistantId } = useAgentChat();
41486
+ useEffect92(() => {
41487
+ if (!isDispatch || !dispatchTaskId) return;
41488
+ let cancelled = false;
41489
+ client.tasks.get(dispatchTaskId).then(
41490
+ (task) => {
41491
+ if (!cancelled) setResolvedTask(task);
41492
+ },
41493
+ () => {
41494
+ if (!cancelled) setResolvedTask(null);
41495
+ }
41496
+ );
41497
+ return () => {
41498
+ cancelled = true;
41499
+ };
41500
+ }, [client, isDispatch, dispatchTaskId]);
41434
41501
  if (!toolCallData) {
41435
41502
  return null;
41436
41503
  }
41437
41504
  const { description, subagent_type, assignee } = toolCallData?.args || {};
41438
41505
  const status = toolCallData.status || "pending";
41439
41506
  const response = toolCallData.response || null;
41440
- const { threadId, assistantId } = useAgentChat();
41507
+ const displayedTitle = isDispatch ? resolvedTask?.title ?? "Task" : void 0;
41441
41508
  let new_assistant_id = subagent_type;
41442
41509
  if (subagent_type === "general-purpose") {
41443
41510
  new_assistant_id = assistantId + "-general-purpose";
@@ -41472,6 +41539,27 @@ var TaskCard = ({
41472
41539
  const statusConfig = getStatusConfig(status);
41473
41540
  const showResponse = status === "success" && response;
41474
41541
  const handleCardClick = () => {
41542
+ if (isDispatch) {
41543
+ if (!dispatchTaskId) return;
41544
+ const targetTitle = displayedTitle;
41545
+ const targetDescription = resolvedTask?.description ?? "";
41546
+ const contextThreadId = resolvedTask?.context?.thread_id;
41547
+ const executionAgentId = parseTaskExecution(response)?.agentId ?? dispatchAgentId;
41548
+ void resolveExecutionThreadId(client, dispatchTaskId, response, contextThreadId).then((executionThreadId) => {
41549
+ if (!executionThreadId) return;
41550
+ openSideApp({
41551
+ component_key: "task",
41552
+ message: targetTitle,
41553
+ data: {
41554
+ thread_id: executionThreadId,
41555
+ description: targetDescription,
41556
+ subagent_type: executionAgentId,
41557
+ display_name: targetTitle
41558
+ }
41559
+ });
41560
+ });
41561
+ return;
41562
+ }
41475
41563
  openSideApp({
41476
41564
  component_key: "task",
41477
41565
  message: subagent_type,
@@ -41494,10 +41582,13 @@ var TaskCard = ({
41494
41582
  children: /* @__PURE__ */ jsxs124("div", { className: styles.cardBody, children: [
41495
41583
  /* @__PURE__ */ jsx167("div", { className: styles.header, children: /* @__PURE__ */ jsxs124("div", { className: styles.titleSection, children: [
41496
41584
  /* @__PURE__ */ jsx167("div", { className: styles.iconWrapper, children: /* @__PURE__ */ jsx167(CarryOutOutlined, { style: { fontSize: 20, color: "#1890ff" } }) }),
41497
- /* @__PURE__ */ jsxs124("div", { className: styles.titleContent, children: [
41585
+ /* @__PURE__ */ jsx167("div", { className: styles.titleContent, children: isDispatch ? /* @__PURE__ */ jsxs124(Fragment52, { children: [
41586
+ dispatchAgentId && /* @__PURE__ */ jsx167("div", { className: styles.taskType, children: dispatchAgentId }),
41587
+ /* @__PURE__ */ jsx167(Text50, { className: styles.description, children: displayedTitle })
41588
+ ] }) : /* @__PURE__ */ jsxs124(Fragment52, { children: [
41498
41589
  subagent_type && /* @__PURE__ */ jsx167("div", { className: styles.taskType, children: subagent_type }),
41499
41590
  description && /* @__PURE__ */ jsx167(Text50, { className: styles.description, children: description })
41500
- ] })
41591
+ ] }) })
41501
41592
  ] }) }),
41502
41593
  /* @__PURE__ */ jsxs124("div", { className: styles.footer, children: [
41503
41594
  /* @__PURE__ */ jsxs124("div", { className: styles.footerLeft, children: [
@@ -41746,7 +41837,7 @@ var InternetSearchCard = ({
41746
41837
  };
41747
41838
 
41748
41839
  // src/components/GenUI/elements/schedule_viewer.tsx
41749
- import { useState as useState118, useEffect as useEffect92, useCallback as useCallback70 } from "react";
41840
+ import { useState as useState119, useEffect as useEffect93, useCallback as useCallback70 } from "react";
41750
41841
  import {
41751
41842
  Tag as Tag35,
41752
41843
  Button as Button78,
@@ -41910,9 +42001,9 @@ var ScheduleViewer = ({ data }) => {
41910
42001
  const { styles } = useStyles53();
41911
42002
  const { threadId, assistantId, tasks: initialTasks, onRefresh } = data ?? {};
41912
42003
  const client = useClient(assistantId || "");
41913
- const [tasks, setTasks] = useState118(initialTasks || []);
41914
- const [loading, setLoading] = useState118(false);
41915
- const [actionLoading, setActionLoading] = useState118(null);
42004
+ const [tasks, setTasks] = useState119(initialTasks || []);
42005
+ const [loading, setLoading] = useState119(false);
42006
+ const [actionLoading, setActionLoading] = useState119(null);
41916
42007
  const handleRefresh = useCallback70(async () => {
41917
42008
  if (!threadId) return;
41918
42009
  setLoading(true);
@@ -41975,12 +42066,12 @@ var ScheduleViewer = ({ data }) => {
41975
42066
  },
41976
42067
  [client, handleRefresh]
41977
42068
  );
41978
- useEffect92(() => {
42069
+ useEffect93(() => {
41979
42070
  if (threadId && (!initialTasks || initialTasks.length === 0)) {
41980
42071
  handleRefresh();
41981
42072
  }
41982
42073
  }, [threadId]);
41983
- useEffect92(() => {
42074
+ useEffect93(() => {
41984
42075
  if (initialTasks) {
41985
42076
  setTasks(initialTasks);
41986
42077
  }
@@ -42793,7 +42884,7 @@ var TaskBoard = ({
42793
42884
  };
42794
42885
 
42795
42886
  // src/components/GenUI/elements/Mailbox.tsx
42796
- import { useState as useState119, useMemo as useMemo44, useRef as useRef52, useEffect as useEffect93 } from "react";
42887
+ import { useState as useState120, useMemo as useMemo44, useRef as useRef52, useEffect as useEffect94 } from "react";
42797
42888
  import { jsx as jsx176, jsxs as jsxs132 } from "react/jsx-runtime";
42798
42889
  var useStyle17 = () => {
42799
42890
  return {
@@ -43079,7 +43170,7 @@ var renderMessageWithMentions = (content, mentions, styles) => {
43079
43170
  var TeamChat = ({ data }) => {
43080
43171
  const styles = useStyle17();
43081
43172
  const { teamName, currentUser, teammates, messages, onSendMessage } = data || {};
43082
- const [inputValue, setInputValue] = useState119("");
43173
+ const [inputValue, setInputValue] = useState120("");
43083
43174
  const messagesEndRef = useRef52(null);
43084
43175
  const sortedMessages = useMemo44(() => {
43085
43176
  return [...messages || []].sort(
@@ -43089,7 +43180,7 @@ var TeamChat = ({ data }) => {
43089
43180
  const mentions = useMemo44(() => {
43090
43181
  return teammates?.map((t) => t.name) || [];
43091
43182
  }, [teammates]);
43092
- useEffect93(() => {
43183
+ useEffect94(() => {
43093
43184
  messagesEndRef.current?.scrollIntoView({ behavior: "smooth" });
43094
43185
  }, [sortedMessages]);
43095
43186
  const handleSend = () => {
@@ -43258,7 +43349,7 @@ var TeamChat = ({ data }) => {
43258
43349
  };
43259
43350
 
43260
43351
  // src/components/GenUI/elements/MailboxPanel.tsx
43261
- import { useState as useState120, useMemo as useMemo45 } from "react";
43352
+ import { useState as useState121, useMemo as useMemo45 } from "react";
43262
43353
  import { Typography as Typography70, Empty as Empty22 } from "antd";
43263
43354
  import { createStyles as createStyles75 } from "antd-style";
43264
43355
  import {
@@ -43681,7 +43772,7 @@ var getMessagePreview = (content) => {
43681
43772
  return firstLine.length > 80 ? firstLine.slice(0, 80) + "..." : firstLine;
43682
43773
  };
43683
43774
  var MessageGroupComponent = ({ group, styles, defaultExpanded = true, onMessageClick }) => {
43684
- const [isExpanded, setIsExpanded] = useState120(defaultExpanded);
43775
+ const [isExpanded, setIsExpanded] = useState121(defaultExpanded);
43685
43776
  return /* @__PURE__ */ jsxs134("div", { className: styles.listGroup, children: [
43686
43777
  /* @__PURE__ */ jsxs134(
43687
43778
  "div",
@@ -43736,8 +43827,8 @@ var MessageGroupComponent = ({ group, styles, defaultExpanded = true, onMessageC
43736
43827
  };
43737
43828
  var MailboxPanel = ({ data }) => {
43738
43829
  const { styles } = useStyles55();
43739
- const [selectedMessage, setSelectedMessage] = useState120(null);
43740
- const [modalVisible, setModalVisible] = useState120(false);
43830
+ const [selectedMessage, setSelectedMessage] = useState121(null);
43831
+ const [modalVisible, setModalVisible] = useState121(false);
43741
43832
  const { teamMailbox = [] } = data || {};
43742
43833
  const messageGroups = useMemo45(() => {
43743
43834
  const groupsMap = /* @__PURE__ */ new Map();
@@ -43812,7 +43903,7 @@ import { Button as Button82, Typography as Typography71 } from "antd";
43812
43903
  import { ExpandOutlined as ExpandOutlined2 } from "@ant-design/icons";
43813
43904
 
43814
43905
  // src/streaming-html/StreamingHTMLRenderer.tsx
43815
- import React119, { useEffect as useEffect94, useRef as useRef53, useCallback as useCallback71, useState as useState121 } from "react";
43906
+ import React120, { useEffect as useEffect95, useRef as useRef53, useCallback as useCallback71, useState as useState122 } from "react";
43816
43907
 
43817
43908
  // src/streaming-html/show-widget-css-generator.ts
43818
43909
  function generateShowWidgetCSS(tokens) {
@@ -44511,14 +44602,14 @@ var StreamingHTMLRenderer = ({
44511
44602
  const pendingChunksRef = useRef53([]);
44512
44603
  const isCompleteRef = useRef53(isComplete);
44513
44604
  const isScriptExecuted = useRef53(false);
44514
- const [iframeHeight, setIframeHeight] = React119.useState(0);
44515
- const [iframeWidth, setIframeWidth] = React119.useState(void 0);
44516
- const [currentMessageIndex, setCurrentMessageIndex] = useState121(0);
44517
- const [showLoading, setShowLoading] = useState121(true);
44518
- useEffect94(() => {
44605
+ const [iframeHeight, setIframeHeight] = React120.useState(0);
44606
+ const [iframeWidth, setIframeWidth] = React120.useState(void 0);
44607
+ const [currentMessageIndex, setCurrentMessageIndex] = useState122(0);
44608
+ const [showLoading, setShowLoading] = useState122(true);
44609
+ useEffect95(() => {
44519
44610
  isCompleteRef.current = isComplete;
44520
44611
  }, [isComplete]);
44521
- useEffect94(() => {
44612
+ useEffect95(() => {
44522
44613
  if (iframeHeight > 0) {
44523
44614
  setShowLoading(false);
44524
44615
  return;
@@ -44594,7 +44685,7 @@ var StreamingHTMLRenderer = ({
44594
44685
  onError?.(streamingError);
44595
44686
  }
44596
44687
  }, [onError]);
44597
- useEffect94(() => {
44688
+ useEffect95(() => {
44598
44689
  const handleMessage = (event) => {
44599
44690
  const iframe = iframeRef.current;
44600
44691
  if (!iframe || event.source !== iframe.contentWindow) {
@@ -44648,7 +44739,7 @@ var StreamingHTMLRenderer = ({
44648
44739
  window.removeEventListener("message", handleMessage);
44649
44740
  };
44650
44741
  }, [onError, onPrompt, sendChunk, executeScripts]);
44651
- useEffect94(() => {
44742
+ useEffect95(() => {
44652
44743
  if (html === prevHTMLRef.current) {
44653
44744
  return;
44654
44745
  }
@@ -44659,12 +44750,12 @@ var StreamingHTMLRenderer = ({
44659
44750
  sendChunk(newChunk);
44660
44751
  }
44661
44752
  }, [html, sendChunk]);
44662
- useEffect94(() => {
44753
+ useEffect95(() => {
44663
44754
  if (isComplete && isReadyRef.current) {
44664
44755
  executeScripts();
44665
44756
  }
44666
44757
  }, [isComplete, executeScripts]);
44667
- useEffect94(() => {
44758
+ useEffect95(() => {
44668
44759
  const container = containerRef.current;
44669
44760
  if (!container) return;
44670
44761
  const antBubble = container.closest(".ant-bubble");
@@ -44690,7 +44781,7 @@ var StreamingHTMLRenderer = ({
44690
44781
  resizeObserverRef.current = null;
44691
44782
  };
44692
44783
  }, []);
44693
- useEffect94(() => {
44784
+ useEffect95(() => {
44694
44785
  return () => {
44695
44786
  isReadyRef.current = false;
44696
44787
  pendingChunksRef.current = [];
@@ -44983,10 +45074,10 @@ var McpAppCard = ({ data, component_key }) => {
44983
45074
  // src/components/GenUI/elements/builtIns.tsx
44984
45075
  import { jsx as jsx184 } from "react/jsx-runtime";
44985
45076
  var TasksSideApp3 = lazy4(
44986
- () => import("./TasksSideApp-7R42CIFG.mjs").then((m) => ({ default: m.TasksSideApp }))
45077
+ () => import("./TasksSideApp-MLG7XUQA.mjs").then((m) => ({ default: m.TasksSideApp }))
44987
45078
  );
44988
45079
  var TeamWorkspace = lazy4(
44989
- () => import("./TeamWorkspace-JQ762PEX.mjs").then((m) => ({ default: m.TeamWorkspace }))
45080
+ () => import("./TeamWorkspace-IENL2T4X.mjs").then((m) => ({ default: m.TeamWorkspace }))
44990
45081
  );
44991
45082
  var elements = {
44992
45083
  action_show_attachments_uploader: {
@@ -45117,7 +45208,7 @@ var regsiterElement = (language, ElementMeta) => {
45117
45208
  import { CodeHighlighter } from "@ant-design/x";
45118
45209
 
45119
45210
  // src/components/GenUI/Embed.tsx
45120
- import { useMemo as useMemo46, useState as useState122 } from "react";
45211
+ import { useMemo as useMemo46, useState as useState123 } from "react";
45121
45212
  import { Collapse as Collapse10, Button as Button83 } from "antd";
45122
45213
  import { createStyles as createStyles77 } from "antd-style";
45123
45214
  import {
@@ -45218,7 +45309,7 @@ var Embed = ({ children }) => {
45218
45309
  const { styles } = useStyles57();
45219
45310
  const { config } = useLatticeChatShellContext();
45220
45311
  const { threadId, assistantId } = useOptionalConversationContext() ?? {};
45221
- const [shareOpen, setShareOpen] = useState122(false);
45312
+ const [shareOpen, setShareOpen] = useState123(false);
45222
45313
  const embedConfig = useMemo46(() => parseEmbedContent(children), [children]);
45223
45314
  const fileUrl = useMemo46(() => {
45224
45315
  if (embedConfig.url) return embedConfig.url;
@@ -45308,7 +45399,7 @@ var LazyReactInfographic = lazy5(
45308
45399
  () => import("./ReactInfographic-ONUZIC7W.mjs").then((m) => ({ default: m.ReactInfographic }))
45309
45400
  );
45310
45401
  var LazyReactChart = lazy5(
45311
- () => import("./ReactChart-6AYFMCMD.mjs").then((m) => ({ default: m.ReactChart }))
45402
+ () => import("./ReactChart-3XHMWXL6.mjs").then((m) => ({ default: m.ReactChart }))
45312
45403
  );
45313
45404
  function BlockLoading() {
45314
45405
  return /* @__PURE__ */ jsx186(
@@ -45395,13 +45486,13 @@ var MDComponentWrap = (Element) => {
45395
45486
  // src/components/GenUI/elements/file_link.tsx
45396
45487
  import { Button as Button84 } from "antd";
45397
45488
  import { useMemo as useMemo47, useCallback as useCallback74 } from "react";
45398
- import { Fragment as Fragment52, jsx as jsx188 } from "react/jsx-runtime";
45489
+ import { Fragment as Fragment53, jsx as jsx188 } from "react/jsx-runtime";
45399
45490
  var FileLink = ({ data }) => {
45400
45491
  if (!data) {
45401
45492
  return null;
45402
45493
  }
45403
45494
  if (!isFileName(data)) {
45404
- return /* @__PURE__ */ jsx188(Fragment52, { children: data });
45495
+ return /* @__PURE__ */ jsx188(Fragment53, { children: data });
45405
45496
  }
45406
45497
  const openSideApp = useSideAppOpener();
45407
45498
  const { threadId, assistantId } = useOptionalConversationContext() ?? {};
@@ -45779,7 +45870,7 @@ var useStyles58 = createStyles78(({ token, css }) => ({
45779
45870
  }
45780
45871
  `
45781
45872
  }));
45782
- var MarkdownErrorBoundary = class extends React127.Component {
45873
+ var MarkdownErrorBoundary = class extends React128.Component {
45783
45874
  constructor(props) {
45784
45875
  super(props);
45785
45876
  this.state = { hasError: false };
@@ -45797,7 +45888,7 @@ var MarkdownErrorBoundary = class extends React127.Component {
45797
45888
  return this.props.children;
45798
45889
  }
45799
45890
  };
45800
- var SafeXMarkdown = React127.memo(({ content, components, className }) => {
45891
+ var SafeXMarkdown = React128.memo(({ content, components, className }) => {
45801
45892
  const deferredContent = useDeferredValue3(content);
45802
45893
  if (typeof deferredContent !== "string") {
45803
45894
  console.warn("[MDResponse] Content is not a string:", typeof deferredContent, deferredContent);
@@ -45839,20 +45930,20 @@ var MDResponseInner = ({
45839
45930
  }
45840
45931
  ) });
45841
45932
  };
45842
- var MDResponse = React127.memo(MDResponseInner);
45933
+ var MDResponse = React128.memo(MDResponseInner);
45843
45934
  MDResponse.displayName = "MDResponse";
45844
45935
  var MDViewFormItem = ({ value }) => {
45845
45936
  return /* @__PURE__ */ jsx191(MDResponse, { content: value || "" });
45846
45937
  };
45847
45938
 
45848
45939
  // src/components/GenUI/elements/generic_data_table.tsx
45849
- import { useState as useState124 } from "react";
45940
+ import { useState as useState125 } from "react";
45850
45941
  import { DownloadOutlined as DownloadOutlined4, ExpandAltOutlined } from "@ant-design/icons";
45851
45942
  import { jsx as jsx192, jsxs as jsxs140 } from "react/jsx-runtime";
45852
45943
  var { Text: Text60 } = Typography73;
45853
45944
  var GenericDataTable = ({ data, interactive = true, default_open_in_side_app = true }) => {
45854
45945
  const { dataSource, message: message35 } = data ?? {};
45855
- const [expandedRowKeys, setExpandedRowKeys] = useState124([]);
45946
+ const [expandedRowKeys, setExpandedRowKeys] = useState125([]);
45856
45947
  const openSideApp = useSideAppOpener();
45857
45948
  const processedData = dataSource?.map((item, index) => ({
45858
45949
  ...item,
@@ -46208,4 +46299,4 @@ export {
46208
46299
  http://jedwatson.github.io/classnames
46209
46300
  *)
46210
46301
  */
46211
- //# sourceMappingURL=chunk-YUV4WO25.mjs.map
46302
+ //# sourceMappingURL=chunk-N5VEHSQU.mjs.map