@blocklet/pages-kit 0.2.340 → 0.2.342

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 (97) hide show
  1. package/lib/cjs/builtin/async/ai-runtime/api/agent.js +3 -5
  2. package/lib/cjs/builtin/async/ai-runtime/api/message.js +2 -4
  3. package/lib/cjs/builtin/async/ai-runtime/api/request.js +5 -1
  4. package/lib/cjs/builtin/async/ai-runtime/api/{subscription.js → secret.js} +7 -15
  5. package/lib/cjs/builtin/async/ai-runtime/api/session.js +9 -10
  6. package/lib/cjs/builtin/async/ai-runtime/components/AgentErrorBoundary.js +27 -0
  7. package/lib/cjs/builtin/async/ai-runtime/components/AgentSettings/AgentSettingsDialog.js +80 -0
  8. package/lib/cjs/builtin/async/ai-runtime/components/PopperMenuButton/LoadingMenuItem.js +1 -1
  9. package/lib/cjs/builtin/async/ai-runtime/components/ShareActions/index.js +10 -10
  10. package/lib/cjs/builtin/async/ai-runtime/constants.js +2 -1
  11. package/lib/cjs/builtin/async/ai-runtime/contexts/CurrentAgent.js +2 -2
  12. package/lib/cjs/builtin/async/ai-runtime/contexts/Runtime.js +4 -3
  13. package/lib/cjs/builtin/async/ai-runtime/hooks/use-agent-admin.js +11 -0
  14. package/lib/cjs/builtin/async/ai-runtime/hooks/use-header-menu.js +10 -2
  15. package/lib/cjs/builtin/async/ai-runtime/locales/index.js +4 -0
  16. package/lib/cjs/builtin/async/ai-runtime/runtime/Runtime/index.js +5 -4
  17. package/lib/cjs/builtin/async/ai-runtime/runtime-components/AutoForm/index.js +26 -57
  18. package/lib/cjs/builtin/async/ai-runtime/runtime-components/ChatOutput/MessageItemView.js +10 -19
  19. package/lib/cjs/builtin/async/ai-runtime/runtime-components/ChatOutput/index.js +2 -2
  20. package/lib/cjs/builtin/async/ai-runtime/runtime-components/GoogleSearch/GoogleSearchRelatedQuestionsView.js +1 -1
  21. package/lib/cjs/builtin/async/ai-runtime/runtime-components/PhotoGallery/index.js +3 -3
  22. package/lib/cjs/builtin/async/ai-runtime/runtime-components/PhotoGalleryItem/index.js +5 -5
  23. package/lib/cjs/builtin/async/ai-runtime/runtime-components/SimpleChat/MessageView.js +5 -4
  24. package/lib/cjs/builtin/async/ai-runtime/runtime-components/SimpleChat/MessagesView.js +1 -1
  25. package/lib/cjs/builtin/async/ai-runtime/runtime-components/SimpleChat/UserMessageView.js +2 -2
  26. package/lib/cjs/builtin/async/ai-runtime/runtime-components/SimpleOutput/index.js +5 -4
  27. package/lib/cjs/builtin/async/ai-runtime/runtime-components/SimplePage/index.js +2 -2
  28. package/lib/cjs/builtin/async/ai-runtime/runtime-components/SuggestedQuestionsView/index.js +2 -2
  29. package/lib/cjs/builtin/async/ai-runtime/runtime-components/V0/Input.js +1 -1
  30. package/lib/cjs/builtin/async/ai-runtime/runtime-components/V0/Output.js +5 -5
  31. package/lib/cjs/builtin/async/ai-runtime/runtime-components/V0/Page.js +7 -7
  32. package/lib/cjs/builtin/async/ai-runtime/runtime-components/V0/components/CodePreview.js +8 -8
  33. package/lib/cjs/builtin/async/ai-runtime/state/agent.js +7 -8
  34. package/lib/cjs/builtin/async/ai-runtime/state/runtime.js +5 -5
  35. package/lib/cjs/builtin/async/ai-runtime/state/session.js +15 -17
  36. package/lib/cjs/builtin/page/header.js +3 -3
  37. package/lib/cjs/components/CustomComponentRenderer/index.js +1 -1
  38. package/lib/cjs/tsconfig.tsbuildinfo +1 -1
  39. package/lib/esm/builtin/async/ai-runtime/api/agent.js +4 -6
  40. package/lib/esm/builtin/async/ai-runtime/api/message.js +3 -5
  41. package/lib/esm/builtin/async/ai-runtime/api/request.js +3 -0
  42. package/lib/esm/builtin/async/ai-runtime/api/{subscription.js → secret.js} +7 -14
  43. package/lib/esm/builtin/async/ai-runtime/api/session.js +10 -11
  44. package/lib/esm/builtin/async/ai-runtime/components/AgentErrorBoundary.js +22 -0
  45. package/lib/esm/builtin/async/ai-runtime/components/AgentSettings/AgentSettingsDialog.js +76 -0
  46. package/lib/esm/builtin/async/ai-runtime/components/PopperMenuButton/LoadingMenuItem.js +1 -1
  47. package/lib/esm/builtin/async/ai-runtime/components/ShareActions/index.js +10 -10
  48. package/lib/esm/builtin/async/ai-runtime/constants.js +1 -0
  49. package/lib/esm/builtin/async/ai-runtime/contexts/CurrentAgent.js +2 -2
  50. package/lib/esm/builtin/async/ai-runtime/contexts/Runtime.js +4 -3
  51. package/lib/esm/builtin/async/ai-runtime/hooks/use-agent-admin.js +7 -0
  52. package/lib/esm/builtin/async/ai-runtime/hooks/use-header-menu.js +11 -3
  53. package/lib/esm/builtin/async/ai-runtime/locales/index.js +4 -0
  54. package/lib/esm/builtin/async/ai-runtime/runtime/Runtime/index.js +5 -4
  55. package/lib/esm/builtin/async/ai-runtime/runtime-components/AutoForm/index.js +27 -58
  56. package/lib/esm/builtin/async/ai-runtime/runtime-components/ChatOutput/MessageItemView.js +10 -19
  57. package/lib/esm/builtin/async/ai-runtime/runtime-components/ChatOutput/index.js +2 -2
  58. package/lib/esm/builtin/async/ai-runtime/runtime-components/GoogleSearch/GoogleSearchRelatedQuestionsView.js +1 -1
  59. package/lib/esm/builtin/async/ai-runtime/runtime-components/PhotoGallery/index.js +3 -3
  60. package/lib/esm/builtin/async/ai-runtime/runtime-components/PhotoGalleryItem/index.js +5 -5
  61. package/lib/esm/builtin/async/ai-runtime/runtime-components/SimpleChat/MessageView.js +5 -4
  62. package/lib/esm/builtin/async/ai-runtime/runtime-components/SimpleChat/MessagesView.js +1 -1
  63. package/lib/esm/builtin/async/ai-runtime/runtime-components/SimpleChat/UserMessageView.js +2 -2
  64. package/lib/esm/builtin/async/ai-runtime/runtime-components/SimpleOutput/index.js +5 -4
  65. package/lib/esm/builtin/async/ai-runtime/runtime-components/SimplePage/index.js +2 -2
  66. package/lib/esm/builtin/async/ai-runtime/runtime-components/SuggestedQuestionsView/index.js +2 -2
  67. package/lib/esm/builtin/async/ai-runtime/runtime-components/V0/Input.js +1 -1
  68. package/lib/esm/builtin/async/ai-runtime/runtime-components/V0/Output.js +5 -5
  69. package/lib/esm/builtin/async/ai-runtime/runtime-components/V0/Page.js +7 -7
  70. package/lib/esm/builtin/async/ai-runtime/runtime-components/V0/components/CodePreview.js +8 -8
  71. package/lib/esm/builtin/async/ai-runtime/state/agent.js +6 -6
  72. package/lib/esm/builtin/async/ai-runtime/state/runtime.js +5 -5
  73. package/lib/esm/builtin/async/ai-runtime/state/session.js +15 -17
  74. package/lib/esm/builtin/page/header.js +3 -3
  75. package/lib/esm/components/CustomComponentRenderer/BlockletReactComponentRenderer.js +1 -1
  76. package/lib/esm/components/CustomComponentRenderer/index.js +1 -1
  77. package/lib/esm/tsconfig.tsbuildinfo +1 -1
  78. package/lib/types/builtin/async/ai-runtime/api/agent.d.ts +10 -1
  79. package/lib/types/builtin/async/ai-runtime/api/message.d.ts +4 -15
  80. package/lib/types/builtin/async/ai-runtime/api/request.d.ts +1 -0
  81. package/lib/types/builtin/async/ai-runtime/api/secret.d.ts +12 -0
  82. package/lib/types/builtin/async/ai-runtime/api/session.d.ts +5 -8
  83. package/lib/types/builtin/async/ai-runtime/components/AgentErrorBoundary.d.ts +4 -0
  84. package/lib/types/builtin/async/ai-runtime/components/AgentSettings/AgentSettingsDialog.d.ts +10 -0
  85. package/lib/types/builtin/async/ai-runtime/constants.d.ts +1 -0
  86. package/lib/types/builtin/async/ai-runtime/contexts/Runtime.d.ts +3 -1
  87. package/lib/types/builtin/async/ai-runtime/hooks/use-agent-admin.d.ts +2 -0
  88. package/lib/types/builtin/async/ai-runtime/locales/index.d.ts +4 -0
  89. package/lib/types/builtin/async/ai-runtime/runtime/Runtime/index.d.ts +2 -1
  90. package/lib/types/builtin/async/ai-runtime/state/agent.d.ts +2 -6
  91. package/lib/types/builtin/async/ai-runtime/state/runtime.d.ts +2 -0
  92. package/lib/types/builtin/async/ai-runtime/state/session.d.ts +1 -0
  93. package/lib/types/builtin/page/header.d.ts +2 -2
  94. package/lib/types/components/CustomComponentRenderer/index.d.ts +3 -0
  95. package/lib/types/tsconfig.tsbuildinfo +1 -1
  96. package/package.json +7 -7
  97. package/lib/types/builtin/async/ai-runtime/api/subscription.d.ts +0 -15
@@ -10,7 +10,6 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
- import ImagePreview from '@blocklet/ai-kit/components/image-preview';
14
13
  import { cx } from '@emotion/css';
15
14
  import { Box, Skeleton, Stack, Tooltip, Typography, styled, useMediaQuery, useTheme } from '@mui/material';
16
15
  import dayjs from 'dayjs';
@@ -27,8 +26,8 @@ import MessageMetadataRenderer from './MessageMetadataRenderer';
27
26
  const MessageItemView = memo((_a) => {
28
27
  var _b;
29
28
  var { message, hideAvatar } = _a, props = __rest(_a, ["message", "hideAvatar"]);
30
- const showUserMessage = !!((_b = message.parameters) === null || _b === void 0 ? void 0 : _b.question);
31
- return (_jsxs(MessageItemContainer, Object.assign({}, props, { className: cx('ai-chat-message-item', hideAvatar && 'hide-avatar', props.className), children: [showUserMessage && !isEmpty(message.parameters) && _jsx(UserMessage, { message: message, hideAvatar: hideAvatar }), !isEmpty(message.result) && _jsx(AgentMessage, { message: message, hideAvatar: hideAvatar })] })));
29
+ const showUserMessage = !!((_b = message.inputs) === null || _b === void 0 ? void 0 : _b.question);
30
+ return (_jsxs(MessageItemContainer, Object.assign({}, props, { className: cx('ai-chat-message-item', hideAvatar && 'hide-avatar', props.className), children: [showUserMessage && !isEmpty(message.inputs) && _jsx(UserMessage, { message: message, hideAvatar: hideAvatar }), !isEmpty(message.outputs) && _jsx(AgentMessage, { message: message, hideAvatar: hideAvatar })] })));
32
31
  });
33
32
  export default MessageItemView;
34
33
  const MessageItemContainer = styled(Stack) `
@@ -80,17 +79,17 @@ function UserMessage({ message, hideAvatar }) {
80
79
  display: 'flex',
81
80
  flexDirection: 'column',
82
81
  alignItems: 'flex-end',
83
- }, children: [!hideAvatar && (_jsxs(MessageUserName, { children: [(_c = authSession.user) === null || _c === void 0 ? void 0 : _c.fullName, _jsx(MessageTime, { time: message.createdAt })] })), _jsx(Box, { className: "message-question", sx: { whiteSpace: 'pre-wrap', wordBreak: 'break-word', textAlign: 'left' }, children: (_d = message.parameters) === null || _d === void 0 ? void 0 : _d.question })] })] }));
82
+ }, children: [!hideAvatar && (_jsxs(MessageUserName, { children: [(_c = authSession.user) === null || _c === void 0 ? void 0 : _c.fullName, _jsx(MessageTime, { time: message.createdAt })] })), _jsx(Box, { className: "message-question", sx: { whiteSpace: 'pre-wrap', wordBreak: 'break-word', textAlign: 'left' }, children: (_d = message.inputs) === null || _d === void 0 ? void 0 : _d.question })] })] }));
84
83
  }
85
84
  function AgentMessage({ message, hideAvatar }) {
86
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
85
+ var _a, _b, _c, _d, _e, _f;
87
86
  const { aid } = useRuntimeState();
88
87
  const profile = useProfile({ aid });
89
- const showMainMessage = !!(((_a = message.result) === null || _a === void 0 ? void 0 : _a.content) || ((_c = (_b = message.result) === null || _b === void 0 ? void 0 : _b.messages) === null || _c === void 0 ? void 0 : _c.length));
90
- const isMessageLoading = (message.loading || !message.result) && !message.error;
88
+ const showMainMessage = !!((_a = message.outputs) === null || _a === void 0 ? void 0 : _a.content);
89
+ const isMessageLoading = (message.loading || !message.outputs) && !message.error;
91
90
  const theme = useTheme();
92
91
  const isMobile = useMediaQuery(theme.breakpoints.down('sm'));
93
- return (_jsxs(Stack, { className: "ai-chat-message-ai", direction: "row", gap: 1.5, children: [!hideAvatar && (_jsx(Box, { children: _jsx(Avatar, { size: 40, did: (_d = globalThis.blocklet) === null || _d === void 0 ? void 0 : _d.appId, variant: "circle", shape: "circle", src: profile.avatar }) })), _jsxs(Box, { flex: 1, width: 0, children: [!hideAvatar && (_jsxs(MessageUserName, { children: [profile.name, _jsx(MessageTime, { time: message.createdAt })] })), _jsxs(React.Suspense, { children: [showMainMessage ? (_jsx(Tooltip, { placement: "right-start", slotProps: {
92
+ return (_jsxs(Stack, { className: "ai-chat-message-ai", direction: "row", gap: 1.5, children: [!hideAvatar && (_jsx(Box, { children: _jsx(Avatar, { size: 40, did: (_b = globalThis.blocklet) === null || _b === void 0 ? void 0 : _b.appId, variant: "circle", shape: "circle", src: profile.avatar }) })), _jsxs(Box, { flex: 1, width: 0, children: [!hideAvatar && (_jsxs(MessageUserName, { children: [profile.name, _jsx(MessageTime, { time: message.createdAt })] })), _jsxs(React.Suspense, { children: [showMainMessage ? (_jsx(Tooltip, { placement: "right-start", slotProps: {
94
93
  popper: {
95
94
  disablePortal: true,
96
95
  modifiers: [
@@ -106,23 +105,15 @@ function AgentMessage({ message, hideAvatar }) {
106
105
  sx: { p: 0, bgcolor: 'white' },
107
106
  },
108
107
  }, title: !isMessageLoading &&
109
- ((_e = message.result) === null || _e === void 0 ? void 0 : _e.content) && (_jsx(ShareActions, { sx: {
108
+ ((_c = message.outputs) === null || _c === void 0 ? void 0 : _c.content) && (_jsx(ShareActions, { sx: {
110
109
  fontSize: '1rem',
111
110
  boxShadow: '0px 4px 8px 0px rgba(3, 7, 18, 0.08)',
112
111
  border: '1px solid rgba(229, 231, 235, 1)',
113
112
  borderRadius: 1,
114
113
  p: 0.25,
115
- } })), children: _jsxs(Stack, { gap: 1, className: "message-response", children: [(_g = (_f = message.result) === null || _f === void 0 ? void 0 : _f.messages) === null || _g === void 0 ? void 0 : _g.map((childMsg, index) => {
116
- var _a, _b, _c, _d, _e, _f, _g;
117
- return ((_a = childMsg.result) === null || _a === void 0 ? void 0 : _a.content) ? (_jsx(MarkdownRenderer, { className: isMessageLoading &&
118
- !((_b = message.result) === null || _b === void 0 ? void 0 : _b.content) &&
119
- !((_d = (_c = message.result) === null || _c === void 0 ? void 0 : _c.images) === null || _d === void 0 ? void 0 : _d.length) &&
120
- message.result.messages.length - 1 === index
121
- ? 'writing'
122
- : '', sx: childMsg.respondAs === 'systemMessage' ? { color: 'text.secondary' } : {}, children: (_e = childMsg.result) === null || _e === void 0 ? void 0 : _e.content }, childMsg.taskId)) : ((_g = (_f = childMsg.result) === null || _f === void 0 ? void 0 : _f.images) === null || _g === void 0 ? void 0 : _g.length) ? (_jsx(ImagePreview, { itemWidth: 100, spacing: 1, dataSource: childMsg.result.images.map((i) => ({ src: i.url })) }, childMsg.taskId)) : null;
123
- }), ((_h = message.result) === null || _h === void 0 ? void 0 : _h.content) && (_jsx(MarkdownRenderer, { className: isMessageLoading ? 'writing' : '', children: message.result.content }))] }) })) : (isMessageLoading && (_jsx(Skeleton, { variant: "rectangular", height: 24 + 8 + 8,
114
+ } })), children: _jsx(Stack, { gap: 1, className: "message-response", children: ((_d = message.outputs) === null || _d === void 0 ? void 0 : _d.content) && (_jsx(MarkdownRenderer, { className: isMessageLoading ? 'writing' : '', children: message.outputs.content })) }) })) : (isMessageLoading && (_jsx(Skeleton, { variant: "rectangular", height: 24 + 8 + 8,
124
115
  // only response with loading
125
- className: "message-response" }))), (_k = (_j = message.result) === null || _j === void 0 ? void 0 : _j.objects) === null || _k === void 0 ? void 0 : _k.map((object) => (_jsx(MessageMetadataRenderer, { object: object.data }, object.taskId))), message.error && _jsx(MessageErrorView, { error: message.error })] })] })] }));
116
+ className: "message-response" }))), (_f = (_e = message.outputs) === null || _e === void 0 ? void 0 : _e.objects) === null || _f === void 0 ? void 0 : _f.map((object) => (_jsx(MessageMetadataRenderer, { object: object.data }, object.taskId))), message.error && _jsx(MessageErrorView, { error: message.error })] })] })] }));
126
117
  }
127
118
  export function MessageItemWrapper(_a) {
128
119
  var _b;
@@ -8,8 +8,8 @@ export default function ChatOutput({ hideAvatar = true, renderType, }) {
8
8
  const formattedMessage = useMemo(() => {
9
9
  if (renderType) {
10
10
  return Object.assign({}, message, {
11
- result: renderType === 'parameters' ? {} : message.result,
12
- parameters: renderType === 'result' ? {} : message.parameters,
11
+ result: renderType === 'parameters' ? {} : message.outputs,
12
+ parameters: renderType === 'result' ? {} : message.inputs,
13
13
  });
14
14
  }
15
15
  return message;
@@ -29,7 +29,7 @@ export default function GoogleSearchRelatedView({ output, outputValue, onlyLastM
29
29
  const { aid } = useCurrentAgent();
30
30
  const { message } = (_a = useCurrentMessage({ optional: true })) !== null && _a !== void 0 ? _a : {};
31
31
  const lastMessage = useCurrentSessionState((s) => { var _a; return (_a = s === null || s === void 0 ? void 0 : s.messages) === null || _a === void 0 ? void 0 : _a.at(-1); });
32
- const isLastMessage = !!message && (message === null || message === void 0 ? void 0 : message.taskId) === (lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.taskId);
32
+ const isLastMessage = !!message && (message === null || message === void 0 ? void 0 : message.id) === (lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.id);
33
33
  const [submitting, setSubmitting] = useState(false);
34
34
  const { execute } = useRuntimeState();
35
35
  const result = useMemo(() => {
@@ -49,11 +49,11 @@ function OutputView(_a) {
49
49
  return (_jsxs(Stack, Object.assign({ width: "100%", alignItems: "center", px: { xs: 2, sm: 3 }, mt: { xs: 2, sm: 3 } }, props, { children: [resultTitle && (_jsx(Typography, { width: "100%", component: "h2", fontSize: 36, fontWeight: 700, textAlign: "center", children: _jsx(Balancer, { children: resultTitle }) })), loaded && !messages.length && _jsx(NoOutputs, {}), _jsxs(Masonry, { ref: ref, columns: { xs: 2, sm: 3, md: 4, lg: 5 }, spacing: 1, sequential: true, sx: { width: '100%', overflow: 'hidden', '> *': { borderRadius: 1 } }, children: [running && (_jsx(Skeleton, { variant: "rectangular", sx: {
50
50
  // FIXME: default using history height
51
51
  height: (_e = (_d = (_c = ref.current) === null || _c === void 0 ? void 0 : _c.querySelector('*')) === null || _d === void 0 ? void 0 : _d.clientHeight) !== null && _e !== void 0 ? _e : 200,
52
- } })), mapRight(messages, (message) => (_jsx(OutputItemView, { message: message }, message.taskId)))] }), _jsx(Box, { my: 4, children: !!messages.length && !noMoreMessage && (_jsx(LoadingButton, { variant: "outlined", onClick: () => loadMoreMessages(), children: t('loadMore') })) })] })));
52
+ } })), mapRight(messages, (message) => (_jsx(OutputItemView, { message: message }, message.id)))] }), _jsx(Box, { my: 4, children: !!messages.length && !noMoreMessage && (_jsx(LoadingButton, { variant: "outlined", onClick: () => loadMoreMessages(), children: t('loadMore') })) })] })));
53
53
  }
54
54
  const OutputItemView = memo(({ message }) => {
55
- const { appearanceOutput } = useAppearances({ agentId: message.assistantId });
55
+ const { appearanceOutput } = useAppearances({ agentId: message.agentId });
56
56
  if (!(appearanceOutput === null || appearanceOutput === void 0 ? void 0 : appearanceOutput.componentId))
57
57
  return null;
58
- return (_jsx(CurrentAgentProvider, { agentId: message.assistantId, children: _jsx(CurrentMessageProvider, { message: message, children: _jsx(Suspense, { children: _jsx(CustomComponentRenderer, { componentId: appearanceOutput.componentId, properties: appearanceOutput.componentProperties }) }) }) }, message.taskId));
58
+ return (_jsx(CurrentAgentProvider, { agentId: message.agentId, children: _jsx(CurrentMessageProvider, { message: message, children: _jsx(Suspense, { children: _jsx(CustomComponentRenderer, { componentId: appearanceOutput.componentId, properties: appearanceOutput.componentProperties }) }) }) }, message.id));
59
59
  });
@@ -36,7 +36,7 @@ export default function PhotoGalleryItem() {
36
36
  var _a, _b;
37
37
  const { message } = useCurrentMessage();
38
38
  const [openDialog, setOpenDialog] = useState(false);
39
- const objects = (_b = (_a = message.result) === null || _a === void 0 ? void 0 : _a.objects) !== null && _b !== void 0 ? _b : [];
39
+ const objects = (_b = (_a = message.outputs) === null || _a === void 0 ? void 0 : _a.objects) !== null && _b !== void 0 ? _b : [];
40
40
  const images = objects.flatMap((i) => { var _a; return (_a = i.data[RuntimeOutputVariable.images]) !== null && _a !== void 0 ? _a : []; });
41
41
  if (!images.length && message.error) {
42
42
  return (_jsx(Stack, { alignItems: "center", justifyContent: "center", sx: {
@@ -78,7 +78,7 @@ export default function PhotoGalleryItem() {
78
78
  background: 'linear-gradient(to bottom, rgba(2, 7, 19, 0) 0%, rgba(2, 7, 19, 0.8) 100%)',
79
79
  opacity: 0,
80
80
  transition: 'opacity 0.3s',
81
- }, children: _jsx(Box, { sx: Object.assign({ lineHeight: 1.5 }, getLineClamp(3)), children: (_a = message.parameters) === null || _a === void 0 ? void 0 : _a.question }) }), openDialog && (_jsx(PromptDialog, { open: true, url: url, onClose: (e) => {
81
+ }, children: _jsx(Box, { sx: Object.assign({ lineHeight: 1.5 }, getLineClamp(3)), children: (_a = message.inputs) === null || _a === void 0 ? void 0 : _a.question }) }), openDialog && (_jsx(PromptDialog, { open: true, url: url, onClose: (e) => {
82
82
  e.stopPropagation();
83
83
  e.preventDefault();
84
84
  setOpenDialog(false);
@@ -94,8 +94,8 @@ function PromptView() {
94
94
  const { agent } = useCurrentAgent();
95
95
  const params = useMemo(() => {
96
96
  var _a;
97
- return (_a = agent.parameters) === null || _a === void 0 ? void 0 : _a.filter(isValidInput).map((i) => { var _a, _b; return [((_a = i.label) === null || _a === void 0 ? void 0 : _a.trim()) || i.key, (_b = message.parameters) === null || _b === void 0 ? void 0 : _b[i.key]]; }).filter((i) => i[1]);
98
- }, [agent.parameters, message.parameters]);
97
+ return (_a = agent.parameters) === null || _a === void 0 ? void 0 : _a.filter(isValidInput).map((i) => { var _a, _b; return [((_a = i.label) === null || _a === void 0 ? void 0 : _a.trim()) || i.key, (_b = message.inputs) === null || _b === void 0 ? void 0 : _b[i.key]]; }).filter((i) => i[1]);
98
+ }, [agent.parameters, message.inputs]);
99
99
  if ((params === null || params === void 0 ? void 0 : params.length) === 1) {
100
100
  return (_a = params[0]) === null || _a === void 0 ? void 0 : _a[1];
101
101
  }
@@ -105,7 +105,7 @@ function PromptDialog(_a) {
105
105
  var _b, _c, _d;
106
106
  var { url } = _a, props = __rest(_a, ["url"]);
107
107
  const { message } = useCurrentMessage();
108
- const { parameters } = message;
108
+ const { inputs: parameters } = message;
109
109
  const { t } = useLocaleContext();
110
110
  const { session: authSession } = useSessionContext();
111
111
  const borderRadius = 1;
@@ -14,6 +14,7 @@ import { Box, Stack } from '@mui/material';
14
14
  import { memo } from 'react';
15
15
  import CustomComponentRenderer from '../../../../../components/CustomComponentRenderer';
16
16
  import { useSessionContext } from '../../../../session';
17
+ import { AgentErrorView } from '../../components/AgentErrorBoundary';
17
18
  import UserInfo from '../../components/UserInfo';
18
19
  import { useComponentPreferences } from '../../contexts/ComponentPreferences';
19
20
  import CurrentAgentProvider from '../../contexts/CurrentAgent';
@@ -25,13 +26,13 @@ const MessageView = memo(({ message }) => {
25
26
  const preferences = useComponentPreferences();
26
27
  const hasBg = !!((_a = preferences === null || preferences === void 0 ? void 0 : preferences.backgroundImage) === null || _a === void 0 ? void 0 : _a.url);
27
28
  const { session: authSession } = useSessionContext();
28
- const { appearanceOutput } = useAppearances({ agentId: message.assistantId });
29
- const profile = useProfile({ agentId: message.assistantId });
29
+ const { appearanceOutput } = useAppearances({ agentId: message.agentId });
30
+ const profile = useProfile({ agentId: message.agentId });
30
31
  const { hideAgentAvatar, hideUserInputs } = (_b = useComponentPreferences()) !== null && _b !== void 0 ? _b : {};
31
32
  if (!(appearanceOutput === null || appearanceOutput === void 0 ? void 0 : appearanceOutput.componentId))
32
33
  return null;
33
- const agentMessage = (_jsx(MessageBodyContainer, { messageRole: "assistant", children: _jsx(CustomComponentRenderer, { componentId: appearanceOutput.componentId, properties: appearanceOutput.componentProperties }) }));
34
- return (_jsx(CurrentAgentProvider, { agentId: message.assistantId, children: _jsx(CurrentMessageProvider, { message: message, children: _jsxs(Stack, { gap: 2, children: [!hideUserInputs && (_jsx(Box, { children: _jsx(UserInfo, { name: (_c = authSession.user) === null || _c === void 0 ? void 0 : _c.fullName, did: (_d = authSession.user) === null || _d === void 0 ? void 0 : _d.did, avatar: (_e = authSession.user) === null || _e === void 0 ? void 0 : _e.avatar, time: message.createdAt, reverse: true, alignItems: "flex-start", UserNameProps: { sx: { color: hasBg ? 'white' : undefined } }, children: _jsx(Stack, { sx: { alignItems: 'flex-end' }, children: _jsx(MessageBodyContainer, { messageRole: "user", children: _jsx(UserMessageView, {}) }) }) }) })), _jsx(Box, { children: !hideAgentAvatar ? (_jsx(UserInfo, { name: profile.name, did: (_f = globalThis.blocklet) === null || _f === void 0 ? void 0 : _f.appId, avatar: profile.avatar, time: message.createdAt, alignItems: "flex-start", UserNameProps: { sx: { color: hasBg ? 'white' : undefined } }, children: agentMessage })) : (agentMessage) })] }) }) }));
34
+ const agentMessage = (_jsx(MessageBodyContainer, { messageRole: "assistant", children: _jsx(CustomComponentRenderer, { componentId: appearanceOutput.componentId, properties: appearanceOutput.componentProperties, fallbackRender: AgentErrorView }) }));
35
+ return (_jsx(CurrentAgentProvider, { agentId: message.agentId, children: _jsx(CurrentMessageProvider, { message: message, children: _jsxs(Stack, { gap: 2, children: [!hideUserInputs && (_jsx(Box, { children: _jsx(UserInfo, { name: (_c = authSession.user) === null || _c === void 0 ? void 0 : _c.fullName, did: (_d = authSession.user) === null || _d === void 0 ? void 0 : _d.did, avatar: (_e = authSession.user) === null || _e === void 0 ? void 0 : _e.avatar, time: message.createdAt, reverse: true, alignItems: "flex-start", UserNameProps: { sx: { color: hasBg ? 'white' : undefined } }, children: _jsx(Stack, { sx: { alignItems: 'flex-end' }, children: _jsx(MessageBodyContainer, { messageRole: "user", children: _jsx(UserMessageView, {}) }) }) }) })), _jsx(Box, { children: !hideAgentAvatar ? (_jsx(UserInfo, { name: profile.name, did: (_f = globalThis.blocklet) === null || _f === void 0 ? void 0 : _f.appId, avatar: profile.avatar, time: message.createdAt, alignItems: "flex-start", UserNameProps: { sx: { color: hasBg ? 'white' : undefined } }, children: agentMessage })) : (agentMessage) })] }) }) }));
35
36
  });
36
37
  export default MessageView;
37
38
  export function MessageBodyContainer(_a) {
@@ -22,5 +22,5 @@ export default function MessagesView(_a) {
22
22
  const loaded = useSessionState((s) => s.loaded);
23
23
  const showOpening = useCurrentSessionState((s) => !s || (s === null || s === void 0 ? void 0 : s.loaded)) && loaded;
24
24
  const divider = (_b = useComponentPreferences()) === null || _b === void 0 ? void 0 : _b.divider;
25
- return (_jsxs(Stack, Object.assign({ gap: 2 }, props, { children: [showOpening && _jsx(OpeningMessageView, { isMessagesEmpty: !(messages === null || messages === void 0 ? void 0 : messages.length) }), messages === null || messages === void 0 ? void 0 : messages.map((message, index) => (_jsxs(_Fragment, { children: [_jsx(MessageView, { message: message }, message.taskId), divider && index !== messages.length - 1 ? _jsx(Divider, { sx: { my: 2 } }) : undefined] })))] })));
25
+ return (_jsxs(Stack, Object.assign({ gap: 2 }, props, { children: [showOpening && _jsx(OpeningMessageView, { isMessagesEmpty: !(messages === null || messages === void 0 ? void 0 : messages.length) }), messages === null || messages === void 0 ? void 0 : messages.map((message, index) => (_jsxs(_Fragment, { children: [_jsx(MessageView, { message: message }, message.id), divider && index !== messages.length - 1 ? _jsx(Divider, { sx: { my: 2 } }) : undefined] })))] })));
26
26
  }
@@ -11,10 +11,10 @@ export default function UserMessageView() {
11
11
  const { agent } = useCurrentAgent();
12
12
  const params = useMemo(() => {
13
13
  var _a;
14
- const inputs = (_a = agent.parameters) === null || _a === void 0 ? void 0 : _a.filter(isValidInput).map((i) => { var _a, _b; return [((_a = i.label) === null || _a === void 0 ? void 0 : _a.trim()) || i.key, (_b = message.parameters) === null || _b === void 0 ? void 0 : _b[i.key]]; }).filter((i) => i[1]);
14
+ const inputs = (_a = agent.parameters) === null || _a === void 0 ? void 0 : _a.filter(isValidInput).map((i) => { var _a, _b; return [((_a = i.label) === null || _a === void 0 ? void 0 : _a.trim()) || i.key, (_b = message.inputs) === null || _b === void 0 ? void 0 : _b[i.key]]; }).filter((i) => i[1]);
15
15
  const q = inputs === null || inputs === void 0 ? void 0 : inputs.find((i) => i[0] === 'question');
16
16
  return q ? [q] : inputs;
17
- }, [agent.parameters, message.parameters]);
17
+ }, [agent.parameters, message.inputs]);
18
18
  if ((params === null || params === void 0 ? void 0 : params.length) === 1) {
19
19
  return _jsx(MarkdownRenderer, { children: (_a = params[0]) === null || _a === void 0 ? void 0 : _a[1] });
20
20
  }
@@ -28,10 +28,11 @@ export default function SimpleOutput() {
28
28
  if (!(outputs === null || outputs === void 0 ? void 0 : outputs.length))
29
29
  return null;
30
30
  return (_jsx(Stack, { gap: 2, children: outputs.map((output) => {
31
- var _a, _b, _c, _d, _e, _f;
31
+ var _a, _b, _c, _d, _e, _f, _g, _h;
32
32
  const value = output.name === RuntimeOutputVariable.text
33
- ? (_a = message.result) === null || _a === void 0 ? void 0 : _a.content
34
- : (_e = (_d = (_c = (_b = message.result) === null || _b === void 0 ? void 0 : _b.objects) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e[output.name];
35
- return (_jsx(CustomComponentRenderer, { instanceId: output.id, componentId: output.appearance.componentId, properties: output.appearance.componentProperties, props: Object.assign({ output, outputValue: value, writing: output.name === RuntimeOutputVariable.text && message.loading }, (((_f = output === null || output === void 0 ? void 0 : output.appearance) === null || _f === void 0 ? void 0 : _f.componentProps) || {})) }, output.id));
33
+ ? ((_a = message.outputs) === null || _a === void 0 ? void 0 : _a.content) ||
34
+ ((_d = (_c = (_b = message.outputs) === null || _b === void 0 ? void 0 : _b.objects) === null || _c === void 0 ? void 0 : _c.find((i) => i === null || i === void 0 ? void 0 : i[RuntimeOutputVariable.text])) === null || _d === void 0 ? void 0 : _d[RuntimeOutputVariable.text])
35
+ : (_g = (_f = (_e = message.outputs) === null || _e === void 0 ? void 0 : _e.objects) === null || _f === void 0 ? void 0 : _f[0]) === null || _g === void 0 ? void 0 : _g[output.name];
36
+ return (_jsx(CustomComponentRenderer, { instanceId: output.id, componentId: output.appearance.componentId, properties: output.appearance.componentProperties, props: Object.assign({ output, outputValue: value, writing: output.name === RuntimeOutputVariable.text && message.loading }, (((_h = output === null || output === void 0 ? void 0 : output.appearance) === null || _h === void 0 ? void 0 : _h.componentProps) || {})) }, output.id));
36
37
  }) }));
37
38
  }
@@ -39,8 +39,8 @@ function OutputView(_a) {
39
39
  return (_jsx(Stack, Object.assign({ gap: 2, mt: 4 }, props, { children: lastMessage && (_jsxs(_Fragment, { children: [resultTitle && (_jsx(Typography, { width: "100%", component: "h5", fontSize: 36, fontWeight: 700, textAlign: "center", children: _jsx(Balancer, { children: resultTitle }) })), _jsx(Stack, { children: _jsx(OutputItemView, { message: lastMessage }) })] })) })));
40
40
  }
41
41
  const OutputItemView = memo(({ message }) => {
42
- const { appearanceOutput } = useAppearances({ agentId: message.assistantId });
42
+ const { appearanceOutput } = useAppearances({ agentId: message.agentId });
43
43
  if (!(appearanceOutput === null || appearanceOutput === void 0 ? void 0 : appearanceOutput.componentId))
44
44
  return null;
45
- return (_jsx(CurrentAgentProvider, { agentId: message.assistantId, children: _jsx(CurrentMessageProvider, { message: message, children: _jsx(Suspense, { children: _jsx(CustomComponentRenderer, { componentId: appearanceOutput.componentId, properties: appearanceOutput.componentProperties }) }) }) }));
45
+ return (_jsx(CurrentAgentProvider, { agentId: message.agentId, children: _jsx(CurrentMessageProvider, { message: message, children: _jsx(Suspense, { children: _jsx(CustomComponentRenderer, { componentId: appearanceOutput.componentId, properties: appearanceOutput.componentProperties }) }) }) }));
46
46
  });
@@ -25,7 +25,7 @@ export default function SuggestedQuestionsView({ output, outputValue, onlyLastMe
25
25
  var _a;
26
26
  const { message } = (_a = useCurrentMessage({ optional: true })) !== null && _a !== void 0 ? _a : {};
27
27
  const lastMessage = useCurrentSessionState((s) => { var _a; return (_a = s === null || s === void 0 ? void 0 : s.messages) === null || _a === void 0 ? void 0 : _a.at(-1); });
28
- const isLastMessage = !!message && message.taskId === (lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.taskId);
28
+ const isLastMessage = !!message && message.id === (lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.id);
29
29
  const questions = useMemo(() => {
30
30
  const result = suggestedQuestionsSchema.validate(outputValue, { allowUnknown: true });
31
31
  if (result.error)
@@ -37,7 +37,7 @@ export default function SuggestedQuestionsView({ output, outputValue, onlyLastMe
37
37
  if (!message || (!isLastMessage && onlyLastMessage) || !(questions === null || questions === void 0 ? void 0 : questions.length))
38
38
  return null;
39
39
  return (_jsx(OutputFieldContainer, { output: output, children: _jsx(Stack, { gap: 1, children: questions.map((item) => (_jsx(MessageSuggestedQuestion, { onClick: () => {
40
- execute({ aid, parameters: Object.assign(Object.assign({}, message.parameters), { question: item.question }) });
40
+ execute({ aid, parameters: Object.assign(Object.assign({}, message.inputs), { question: item.question }) });
41
41
  }, children: item.question }, item.question))) }) }));
42
42
  }
43
43
  function MessageSuggestedQuestion(_a) {
@@ -120,7 +120,7 @@ function useInitialFormValues() {
120
120
  const [lastInputs, setLastInputs] = useState();
121
121
  useEffect(() => {
122
122
  if (autoSetLastParameters && !lastInputs) {
123
- const lastParameters = lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.parameters;
123
+ const lastParameters = lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.inputs;
124
124
  if (!isEmpty(lastParameters))
125
125
  setLastInputs(lastParameters);
126
126
  }
@@ -39,9 +39,9 @@ export default function V0Output() {
39
39
  sx: DEFAULT_DESKTOP_SX,
40
40
  key: 'Desktop',
41
41
  });
42
- const objects = (_a = message.result) === null || _a === void 0 ? void 0 : _a.objects;
43
- const { taskId, parameters } = message;
44
- const isMessageLoading = (message.loading || !message.result) && !message.error;
42
+ const objects = (_a = message.outputs) === null || _a === void 0 ? void 0 : _a.objects;
43
+ const { id: taskId, inputs } = message;
44
+ const isMessageLoading = (message.loading || !message.outputs) && !message.error;
45
45
  const disabled = isMessageLoading || !(objects === null || objects === void 0 ? void 0 : objects.length) || message.error;
46
46
  const responsiveSx = {
47
47
  backgroundColor: 'white',
@@ -208,7 +208,7 @@ export default function V0Output() {
208
208
  border: 1,
209
209
  borderColor: 'rgba(0, 0, 0, 0.1) !important',
210
210
  },
211
- }, children: [_jsx(UserQuestion, { question: parameters === null || parameters === void 0 ? void 0 : parameters.question }), _jsx(Box, { sx: {
211
+ }, children: [_jsx(UserQuestion, { question: inputs === null || inputs === void 0 ? void 0 : inputs.question }), _jsx(Box, { sx: {
212
212
  display: 'flex',
213
213
  alignItems: 'center',
214
214
  gap: 1,
@@ -225,7 +225,7 @@ export default function V0Output() {
225
225
  overflowY: 'auto',
226
226
  scrollbarWidth: 'thin',
227
227
  scrollbarColor: 'grey transparent',
228
- }, propertiesValueMap: propertiesValueMap }) }), objects === null || objects === void 0 ? void 0 : objects.map((item, index) => _jsx(MessageMetadataRenderer, { object: item.data }, index)), !isMessageLoading && ((_b = message.result) === null || _b === void 0 ? void 0 : _b.content) && (_jsx(ShareActions, { direction: "row", justifyContent: "flex-end", sx: { mt: 2 } })), _jsxs(Suspense, { fallback: _jsx(Loading, {}), children: [_jsx(Drawer, { anchor: isMobile ? 'bottom' : 'right', open: !!code, onClose: onCloseCode, children: _jsxs(Box, { sx: Object.assign({ p: 2, pt: 0 }, (isMobile ? { maxHeight: '70vh' } : { maxWidth: '70vw' })), children: [_jsxs(Box, { sx: {
228
+ }, propertiesValueMap: propertiesValueMap }) }), objects === null || objects === void 0 ? void 0 : objects.map((item, index) => _jsx(MessageMetadataRenderer, { object: item.data }, index)), !isMessageLoading && ((_b = message.outputs) === null || _b === void 0 ? void 0 : _b.content) && (_jsx(ShareActions, { direction: "row", justifyContent: "flex-end", sx: { mt: 2 } })), _jsxs(Suspense, { fallback: _jsx(Loading, {}), children: [_jsx(Drawer, { anchor: isMobile ? 'bottom' : 'right', open: !!code, onClose: onCloseCode, children: _jsxs(Box, { sx: Object.assign({ p: 2, pt: 0 }, (isMobile ? { maxHeight: '70vh' } : { maxWidth: '70vw' })), children: [_jsxs(Box, { sx: {
229
229
  py: 2,
230
230
  position: 'sticky',
231
231
  top: 0,
@@ -180,18 +180,18 @@ function V0DetailRender() {
180
180
  // FIXME: 现在临时把 error 的消息隐藏了,后续需要优化
181
181
  const messagesList = messagesListOriginal === null || messagesListOriginal === void 0 ? void 0 : messagesListOriginal.filter((message, index) => {
182
182
  var _a, _b;
183
- return (!(message === null || message === void 0 ? void 0 : message.error) && ((_b = (_a = message === null || message === void 0 ? void 0 : message.result) === null || _a === void 0 ? void 0 : _a.objects) === null || _b === void 0 ? void 0 : _b.length)) ||
184
- message.taskId === currentMessageTaskId ||
183
+ return (!(message === null || message === void 0 ? void 0 : message.error) && ((_b = (_a = message === null || message === void 0 ? void 0 : message.outputs) === null || _a === void 0 ? void 0 : _a.objects) === null || _b === void 0 ? void 0 : _b.length)) ||
184
+ message.id === currentMessageTaskId ||
185
185
  index === messagesListOriginal.length - 1;
186
186
  });
187
- const currentMessage = messagesList === null || messagesList === void 0 ? void 0 : messagesList.find((message) => message.taskId === currentMessageTaskId);
187
+ const currentMessage = messagesList === null || messagesList === void 0 ? void 0 : messagesList.find((message) => message.id === currentMessageTaskId);
188
188
  useEffect(() => {
189
189
  if (messagesList === null || messagesList === void 0 ? void 0 : messagesList.length) {
190
190
  const latestMessage = messagesList === null || messagesList === void 0 ? void 0 : messagesList.at(-1);
191
191
  // no currentMessageTaskId or has new message
192
- if (!currentMessageTaskId || (currentMessageTaskId === (latestMessage === null || latestMessage === void 0 ? void 0 : latestMessage.taskId) && (messagesList === null || messagesList === void 0 ? void 0 : messagesList.length) > 1)) {
192
+ if (!currentMessageTaskId || (currentMessageTaskId === (latestMessage === null || latestMessage === void 0 ? void 0 : latestMessage.id) && (messagesList === null || messagesList === void 0 ? void 0 : messagesList.length) > 1)) {
193
193
  // @ts-ignore
194
- setCurrentMessageTaskId(latestMessage.taskId);
194
+ setCurrentMessageTaskId(latestMessage.id);
195
195
  }
196
196
  }
197
197
  }, [messagesList, currentMessageTaskId]);
@@ -237,7 +237,7 @@ function V0DetailRender() {
237
237
  '&::-webkit-scrollbar': {
238
238
  display: 'none',
239
239
  } }), children: messagesList === null || messagesList === void 0 ? void 0 : messagesList.map((item, i) => {
240
- const { parameters, taskId, updatedAt } = item;
240
+ const { inputs: parameters, id: taskId, updatedAt } = item;
241
241
  const isCurrent = taskId === (currentMessageTaskId || undefined);
242
242
  return (_jsx(Box, { sx: {
243
243
  display: 'flex',
@@ -246,7 +246,7 @@ function V0DetailRender() {
246
246
  gap: 1,
247
247
  }, children: _jsxs(Box, { id: taskId, onClick: () => {
248
248
  // @ts-ignore
249
- setCurrentMessageTaskId(item.taskId);
249
+ setCurrentMessageTaskId(item.id);
250
250
  }, sx: Object.assign({ cursor: 'pointer', color: 'textColor', borderRadius: 1, border: 1, borderColor: isCurrent ? 'primary.main' : 'background.block', backgroundColor: 'white', position: 'relative', transition: 'all 0.3s', '&:hover': {
251
251
  borderColor: 'primary.main',
252
252
  } }, (isMobile
@@ -60,9 +60,9 @@ function RetryComponent({ message, tip }) {
60
60
  } }) })] }), _jsx(LoadingButton, { variant: "contained", loading: loading, color: "primary", onClick: () => __awaiter(this, void 0, void 0, function* () {
61
61
  setLoading(true);
62
62
  try {
63
- const { parameters } = message || {};
63
+ const { inputs } = message || {};
64
64
  // remove $ starting parameters object
65
- const canUseParameters = Object.fromEntries(Object.entries(parameters || {}).filter(([key]) => !key.startsWith('$')));
65
+ const canUseParameters = Object.fromEntries(Object.entries(inputs || {}).filter(([key]) => !key.startsWith('$')));
66
66
  yield execute({
67
67
  aid,
68
68
  parameters: canUseParameters,
@@ -112,7 +112,7 @@ export function CodeRenderByMessage({ zoom, message, minHeight = 200, sx, proper
112
112
  minHeight,
113
113
  },
114
114
  };
115
- const isMessageLoading = ((message === null || message === void 0 ? void 0 : message.loading) || !(message === null || message === void 0 ? void 0 : message.result)) && !(message === null || message === void 0 ? void 0 : message.error);
115
+ const isMessageLoading = ((message === null || message === void 0 ? void 0 : message.loading) || !(message === null || message === void 0 ? void 0 : message.outputs)) && !(message === null || message === void 0 ? void 0 : message.error);
116
116
  const ContentRender = useCallback(() => {
117
117
  var _a, _b, _c, _d;
118
118
  if (isMessageLoading) {
@@ -123,10 +123,10 @@ export function CodeRenderByMessage({ zoom, message, minHeight = 200, sx, proper
123
123
  alignItems: 'center',
124
124
  }, children: _jsx(AIRunningLoading, {}) }));
125
125
  }
126
- if ((message === null || message === void 0 ? void 0 : message.error) || !((_b = (_a = message === null || message === void 0 ? void 0 : message.result) === null || _a === void 0 ? void 0 : _a.objects) === null || _b === void 0 ? void 0 : _b.length)) {
126
+ if ((message === null || message === void 0 ? void 0 : message.error) || !((_b = (_a = message === null || message === void 0 ? void 0 : message.outputs) === null || _a === void 0 ? void 0 : _a.objects) === null || _b === void 0 ? void 0 : _b.length)) {
127
127
  return _jsx(RetryComponent, { message: message });
128
128
  }
129
- return (_d = (_c = message === null || message === void 0 ? void 0 : message.result) === null || _c === void 0 ? void 0 : _c.objects) === null || _d === void 0 ? void 0 : _d.map((item) => {
129
+ return (_d = (_c = message === null || message === void 0 ? void 0 : message.outputs) === null || _c === void 0 ? void 0 : _c.objects) === null || _d === void 0 ? void 0 : _d.map((item) => {
130
130
  var _a, _b, _c;
131
131
  const { taskId } = item;
132
132
  // @ts-ignore
@@ -134,14 +134,14 @@ export function CodeRenderByMessage({ zoom, message, minHeight = 200, sx, proper
134
134
  return (_jsx(CodePreviewMemo, { componentId: `code-preview-${taskId}`, code: code, propertiesValue: ((_b = propertiesValueMap === null || propertiesValueMap === void 0 ? void 0 : propertiesValueMap[taskId]) === null || _b === void 0 ? void 0 : _b[locale]) || ((_c = propertiesValueMap === null || propertiesValueMap === void 0 ? void 0 : propertiesValueMap[taskId]) === null || _c === void 0 ? void 0 : _c.en) || {}, message: message }, item.taskId));
135
135
  });
136
136
  // eslint-disable-next-line react-hooks/exhaustive-deps
137
- }, [isMessageLoading, (_a = message === null || message === void 0 ? void 0 : message.result) === null || _a === void 0 ? void 0 : _a.objects, propertiesValueMap, locale]);
137
+ }, [isMessageLoading, (_a = message === null || message === void 0 ? void 0 : message.outputs) === null || _a === void 0 ? void 0 : _a.objects, propertiesValueMap, locale]);
138
138
  return (_jsx(Box, { sx: Object.assign(Object.assign(Object.assign({ transition: 'all 0.3s', overflow: 'hidden', borderRadius: 1, width: '100%', height: '100%', backgroundColor: 'white' }, zoomSx), sx), { '.code-preview-wrapper': {
139
139
  // p: 2,
140
- } }), children: _jsx(ContentRender, {}) }, message === null || message === void 0 ? void 0 : message.taskId));
140
+ } }), children: _jsx(ContentRender, {}) }, message === null || message === void 0 ? void 0 : message.id));
141
141
  }
142
142
  export const CodeRenderByMessageMemo = memo(CodeRenderByMessage);
143
143
  export function getCurrentCodeByTaskId(message, taskId) {
144
144
  var _a, _b, _c, _d;
145
145
  // @ts-ignore
146
- return (_d = (_c = (_b = (_a = message === null || message === void 0 ? void 0 : message.result) === null || _a === void 0 ? void 0 : _a.objects) === null || _b === void 0 ? void 0 : _b.find((item) => item.taskId === taskId)) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d[codeField];
146
+ return (_d = (_c = (_b = (_a = message === null || message === void 0 ? void 0 : message.outputs) === null || _a === void 0 ? void 0 : _a.objects) === null || _b === void 0 ? void 0 : _b.find((item) => item.taskId === taskId)) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d[codeField];
147
147
  }
@@ -12,15 +12,15 @@ import { immer } from 'zustand/middleware/immer';
12
12
  import { getAgent } from '../api/agent';
13
13
  import { useRuntimeContext } from '../contexts/Runtime';
14
14
  import { createCachedStore } from '../utils/zustand';
15
- export const createAgentState = ({ aid, working, agent }) => {
16
- return createCachedStore(`agent-state-${aid}-${working}`, () => create()(immer((set) => ({
15
+ const createAgentState = ({ blockletDid, aid, working, agent, }) => {
16
+ return createCachedStore(`agent-state-${blockletDid}-${aid}-${working}`, () => create()(immer((set) => ({
17
17
  agent,
18
18
  load: () => __awaiter(void 0, void 0, void 0, function* () {
19
19
  set((state) => {
20
20
  state.loading = true;
21
21
  });
22
22
  try {
23
- const agent = yield getAgent({ aid, working });
23
+ const agent = yield getAgent({ blockletDid, aid, working });
24
24
  set((state) => {
25
25
  state.agent = agent;
26
26
  });
@@ -40,14 +40,14 @@ export const createAgentState = ({ aid, working, agent }) => {
40
40
  }))));
41
41
  };
42
42
  const LOADING_TASKS = {};
43
- export function useAgentState({ aid, working }) {
43
+ export function useAgentState({ blockletDid, aid, working, }) {
44
44
  var _a;
45
45
  const runtimeState = useRuntimeContext();
46
- const state = createAgentState({ aid, working: working !== null && working !== void 0 ? working : runtimeState.working })();
46
+ const state = createAgentState({ blockletDid, aid, working: working !== null && working !== void 0 ? working : runtimeState.working })();
47
47
  if (!state.agent) {
48
48
  if (state.error)
49
49
  throw state.error;
50
- const key = `agent-loading-${aid}-${working}`;
50
+ const key = `agent-loading-${blockletDid}-${aid}-${working}`;
51
51
  (_a = LOADING_TASKS[key]) !== null && _a !== void 0 ? _a : (LOADING_TASKS[key] = state.load());
52
52
  throw LOADING_TASKS[key];
53
53
  }
@@ -13,8 +13,8 @@ import { useRuntimeContext } from '../contexts/Runtime';
13
13
  import { useAgentState } from './agent';
14
14
  import { createSessionState } from './session';
15
15
  export function useRuntimeState() {
16
- const { aid, working } = useRuntimeContext();
17
- const [agent] = useAgentState({ aid, working });
16
+ const { blockletDid, aid, working } = useRuntimeContext();
17
+ const [agent] = useAgentState({ blockletDid, aid, working });
18
18
  const { session: authSession, events } = useSessionContext();
19
19
  const sessionState = useMemo(() => createSessionState({ aid }), [aid]);
20
20
  const exec = sessionState((s) => s.execute);
@@ -38,7 +38,7 @@ export function useRuntimeState() {
38
38
  if (!authSession.user) {
39
39
  yield login();
40
40
  }
41
- return exec(Object.assign(Object.assign({}, args), { working }));
42
- }), [authSession.user, exec, working, login]);
43
- return { aid, working, agent, execute };
41
+ return exec(Object.assign(Object.assign({}, args), { blockletDid, working }));
42
+ }), [authSession.user, exec, blockletDid, working, login]);
43
+ return { blockletDid, aid, working, agent, execute };
44
44
  }
@@ -243,7 +243,7 @@ export const createSessionState = ({ aid }) => {
243
243
  }),
244
244
  execute: (_g) => __awaiter(void 0, void 0, void 0, function* () {
245
245
  var _h, e_1, _j, _k;
246
- var { aid, working, parameters, onResponseStart } = _g, args = __rest(_g, ["aid", "working", "parameters", "onResponseStart"]);
246
+ var { blockletDid, aid, working, parameters, onResponseStart } = _g, args = __rest(_g, ["blockletDid", "aid", "working", "parameters", "onResponseStart"]);
247
247
  const sessionId = args.sessionId ||
248
248
  get().currentSessionId ||
249
249
  (yield get().createSession({
@@ -261,6 +261,7 @@ export const createSessionState = ({ aid }) => {
261
261
  });
262
262
  try {
263
263
  const stream = runAgent({
264
+ blockletDid,
264
265
  aid,
265
266
  sessionId,
266
267
  working,
@@ -279,10 +280,10 @@ export const createSessionState = ({ aid }) => {
279
280
  if ((value === null || value === void 0 ? void 0 : value.type) === 'CHUNK') {
280
281
  if (!message) {
281
282
  message = {
282
- taskId: value.taskId,
283
- assistantId: identity.assistantId,
283
+ id: value.taskId,
284
+ agentId: identity.assistantId,
284
285
  sessionId,
285
- parameters,
286
+ inputs: parameters,
286
287
  createdAt: new Date().toISOString(),
287
288
  updatedAt: new Date().toISOString(),
288
289
  loading: true,
@@ -296,25 +297,22 @@ export const createSessionState = ({ aid }) => {
296
297
  s.messages.push(message);
297
298
  });
298
299
  }
299
- if (message.taskId === value.taskId) {
300
+ if (message.id === value.taskId) {
300
301
  requestAnimationFrame(() => {
301
302
  set((state) => {
302
- var _a, _b, _c, _d, _e, _f, _g;
303
- var _h;
303
+ var _a, _b, _c, _d;
304
+ var _e;
304
305
  const s = (_a = state.sessionMap) === null || _a === void 0 ? void 0 : _a[sessionId];
305
306
  if (!s)
306
307
  return;
307
- const msg = (_b = s.messages) === null || _b === void 0 ? void 0 : _b.findLast((i) => i.taskId === message.taskId);
308
+ const msg = (_b = s.messages) === null || _b === void 0 ? void 0 : _b.findLast((i) => i.id === message.id);
308
309
  if (!msg)
309
310
  return;
310
- (_c = msg.result) !== null && _c !== void 0 ? _c : (msg.result = {});
311
- msg.result.content = (msg.result.content || '') + (value.delta.content || '');
312
- if ((_e = (_d = value.delta) === null || _d === void 0 ? void 0 : _d.images) === null || _e === void 0 ? void 0 : _e.length) {
313
- msg.result.images = ((_f = msg.result.images) !== null && _f !== void 0 ? _f : []).concat(value.delta.images);
314
- }
311
+ (_c = msg.outputs) !== null && _c !== void 0 ? _c : (msg.outputs = {});
312
+ msg.outputs.content = (msg.outputs.content || '') + (value.delta.content || '');
315
313
  if (value.delta.object) {
316
- (_g = (_h = msg.result).objects) !== null && _g !== void 0 ? _g : (_h.objects = []);
317
- msg.result.objects.push({ taskId: value.taskId, data: value.delta.object });
314
+ (_d = (_e = msg.outputs).objects) !== null && _d !== void 0 ? _d : (_e.objects = []);
315
+ msg.outputs.objects.push(value.delta.object);
318
316
  }
319
317
  });
320
318
  });
@@ -326,7 +324,7 @@ export const createSessionState = ({ aid }) => {
326
324
  const s = (_a = state.sessionMap) === null || _a === void 0 ? void 0 : _a[sessionId];
327
325
  if (!s)
328
326
  return;
329
- const msg = (_b = s.messages) === null || _b === void 0 ? void 0 : _b.findLast((i) => i.taskId === message.taskId);
327
+ const msg = (_b = s.messages) === null || _b === void 0 ? void 0 : _b.findLast((i) => i.id === message.id);
330
328
  if (msg)
331
329
  msg.error = value.error;
332
330
  else
@@ -360,7 +358,7 @@ export const createSessionState = ({ aid }) => {
360
358
  return;
361
359
  s.running = false;
362
360
  if (message) {
363
- const msg = (_b = s.messages) === null || _b === void 0 ? void 0 : _b.findLast((i) => i.taskId === message.taskId);
361
+ const msg = (_b = s.messages) === null || _b === void 0 ? void 0 : _b.findLast((i) => i.id === message.id);
364
362
  if (msg)
365
363
  msg.loading = false;
366
364
  }
@@ -22,10 +22,10 @@ export const useHeaderState = create()(immer((set, get) => ({
22
22
  for (const i of get().stack) {
23
23
  widgets.push(i());
24
24
  }
25
- const r = widgets.reduce((res, i) => (Object.assign(Object.assign(Object.assign({}, res), i), { addons: (...exists) => {
25
+ const r = widgets.reduce((res, i) => (Object.assign(Object.assign(Object.assign({}, res), i), { addons: (exists) => {
26
26
  var _a, _b, _c, _d;
27
- const a = (_b = (_a = res.addons) === null || _a === void 0 ? void 0 : _a.call(res, ...exists)) !== null && _b !== void 0 ? _b : exists;
28
- const b = (_d = (_c = i.addons) === null || _c === void 0 ? void 0 : _c.call(i, ...a)) !== null && _d !== void 0 ? _d : a;
27
+ const a = (_b = (_a = res.addons) === null || _a === void 0 ? void 0 : _a.call(res, exists)) !== null && _b !== void 0 ? _b : exists;
28
+ const b = (_d = (_c = i.addons) === null || _c === void 0 ? void 0 : _c.call(i, a)) !== null && _d !== void 0 ? _d : a;
29
29
  return b;
30
30
  } })), {});
31
31
  set((state) => {
@@ -31,6 +31,6 @@ export default function BlockletReactComponentRenderer(_a) {
31
31
  const COMPONENTS_CACHE = {};
32
32
  function loadComponent(url) {
33
33
  var _a;
34
- (_a = COMPONENTS_CACHE[url]) !== null && _a !== void 0 ? _a : (COMPONENTS_CACHE[url] = React.lazy(() => import(url)));
34
+ (_a = COMPONENTS_CACHE[url]) !== null && _a !== void 0 ? _a : (COMPONENTS_CACHE[url] = React.lazy(() => import(/* @vite-ignore */ url)));
35
35
  return COMPONENTS_CACHE[url];
36
36
  }
@@ -23,7 +23,7 @@ export default function CustomComponentRenderer(_a) {
23
23
  var { dev } = _a, props = __rest(_a, ["dev"]);
24
24
  const inheritedDev = useDev();
25
25
  const BuiltinComponent = BuiltinComponents[props.componentId];
26
- return (_jsx(ErrorBoundary, { fallbackRender: (props === null || props === void 0 ? void 0 : props.fallbackRender) || ErrorView, children: _jsx(DevProvider, { dev: dev !== null && dev !== void 0 ? dev : inheritedDev, children: BuiltinComponent ? (_jsx(BuiltinComponent, Object.assign({}, props))) : (_jsx(ComponentRenderer, Object.assign({}, props, { instanceId: (_b = props.instanceId) !== null && _b !== void 0 ? _b : props.componentId }))) }) }));
26
+ return (_jsx(ErrorBoundary, { FallbackComponent: (props === null || props === void 0 ? void 0 : props.fallbackRender) || ErrorView, children: _jsx(DevProvider, { dev: dev !== null && dev !== void 0 ? dev : inheritedDev, children: BuiltinComponent ? (_jsx(BuiltinComponent, Object.assign({}, props))) : (_jsx(ComponentRenderer, Object.assign({}, props, { instanceId: (_b = props.instanceId) !== null && _b !== void 0 ? _b : props.componentId }))) }) }));
27
27
  }
28
28
  const BuiltinComponents = {
29
29
  'blocklet-react-component': BlockletReactComponentRenderer,