@autobe/ui 0.21.0 → 0.22.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 (249) hide show
  1. package/lib/{AutoBeAssistantMessageMovie.d.ts → components/AutoBeAssistantMessageMovie.d.ts} +1 -1
  2. package/lib/{AutoBeAssistantMessageMovie.js → components/AutoBeAssistantMessageMovie.js} +3 -1
  3. package/lib/components/AutoBeAssistantMessageMovie.js.map +1 -0
  4. package/lib/components/AutoBeChatMain.d.ts +12 -0
  5. package/lib/components/AutoBeChatMain.js +88 -0
  6. package/lib/components/AutoBeChatMain.js.map +1 -0
  7. package/lib/components/AutoBeStatusModal.d.ts +6 -0
  8. package/lib/components/AutoBeStatusModal.js +269 -0
  9. package/lib/components/AutoBeStatusModal.js.map +1 -0
  10. package/lib/{AutoBeUserMessageMovie.d.ts → components/AutoBeUserMessageMovie.d.ts} +1 -1
  11. package/lib/{AutoBeUserMessageMovie.js → components/AutoBeUserMessageMovie.js} +3 -1
  12. package/lib/components/AutoBeUserMessageMovie.js.map +1 -0
  13. package/lib/{common → components/common}/ChatBubble.js +1 -1
  14. package/lib/components/common/ChatBubble.js.map +1 -0
  15. package/lib/{common → components/common}/Collapsible.js +6 -6
  16. package/lib/components/common/Collapsible.js.map +1 -0
  17. package/lib/components/common/index.js.map +1 -0
  18. package/lib/components/common/openai/OpenAIContent.js.map +1 -0
  19. package/lib/components/common/openai/OpenAIUserAudioContent.js.map +1 -0
  20. package/lib/components/common/openai/OpenAIUserFileContent.js.map +1 -0
  21. package/lib/components/common/openai/OpenAIUserImageContent.js.map +1 -0
  22. package/lib/{common → components/common}/openai/OpenAIUserTextContent.js +0 -1
  23. package/lib/components/common/openai/OpenAIUserTextContent.js.map +1 -0
  24. package/lib/components/common/openai/index.js.map +1 -0
  25. package/lib/components/events/AutoBeCompleteEventMovie.js.map +1 -0
  26. package/lib/components/events/AutoBeCorrectEventMovie.d.ts +9 -0
  27. package/lib/components/events/AutoBeCorrectEventMovie.js +146 -0
  28. package/lib/components/events/AutoBeCorrectEventMovie.js.map +1 -0
  29. package/lib/{events → components/events}/AutoBeEventMovie.d.ts +1 -2
  30. package/lib/{events → components/events}/AutoBeEventMovie.js +16 -7
  31. package/lib/components/events/AutoBeEventMovie.js.map +1 -0
  32. package/lib/components/events/AutoBeProgressEventMovie.js.map +1 -0
  33. package/lib/components/events/AutoBeScenarioEventMovie.js.map +1 -0
  34. package/lib/components/events/AutoBeStartEventMovie.js.map +1 -0
  35. package/lib/{events → components/events}/AutoBeValidateEventMovie.js +2 -2
  36. package/lib/components/events/AutoBeValidateEventMovie.js.map +1 -0
  37. package/lib/{events → components/events}/common/CollapsibleEventGroup.js +1 -5
  38. package/lib/components/events/common/CollapsibleEventGroup.js.map +1 -0
  39. package/lib/components/events/common/EventCard.js.map +1 -0
  40. package/lib/components/events/common/EventContent.js.map +1 -0
  41. package/lib/{events → components/events}/common/EventHeader.js +1 -1
  42. package/lib/components/events/common/EventHeader.js.map +1 -0
  43. package/lib/components/events/common/EventIcon.js.map +1 -0
  44. package/lib/{events → components/events}/common/ProgressBar.js +3 -2
  45. package/lib/components/events/common/ProgressBar.js.map +1 -0
  46. package/lib/components/events/common/index.js.map +1 -0
  47. package/lib/components/events/groups/CorrectEventGroup.d.ts +12 -0
  48. package/lib/components/events/groups/CorrectEventGroup.js +83 -0
  49. package/lib/components/events/groups/CorrectEventGroup.js.map +1 -0
  50. package/lib/{events → components/events}/groups/ValidateEventGroup.js +3 -3
  51. package/lib/components/events/groups/ValidateEventGroup.js.map +1 -0
  52. package/lib/{events → components/events}/groups/index.d.ts +1 -0
  53. package/lib/components/events/groups/index.js +8 -0
  54. package/lib/components/events/groups/index.js.map +1 -0
  55. package/lib/{events → components/events}/index.d.ts +1 -0
  56. package/lib/{events → components/events}/index.js +3 -1
  57. package/lib/components/events/index.js.map +1 -0
  58. package/lib/components/events/utils/eventGrouper.js.map +1 -0
  59. package/lib/components/events/utils/index.js.map +1 -0
  60. package/lib/components/index.d.ts +7 -0
  61. package/lib/{banner → components}/index.js +7 -4
  62. package/lib/components/index.js.map +1 -0
  63. package/lib/{upload → components/upload}/AutoBeChatUploadBox.js +3 -2
  64. package/lib/components/upload/AutoBeChatUploadBox.js.map +1 -0
  65. package/lib/components/upload/AutoBeChatUploadSendButton.js.map +1 -0
  66. package/lib/components/upload/AutoBeFileUploadBox.js.map +1 -0
  67. package/lib/components/upload/AutoBeUploadConfig.js.map +1 -0
  68. package/lib/{upload → components/upload}/AutoBeVoiceRecoderButton.js +1 -1
  69. package/lib/components/upload/AutoBeVoiceRecoderButton.js.map +1 -0
  70. package/lib/components/upload/index.js.map +1 -0
  71. package/lib/constant/color.d.ts +4 -0
  72. package/lib/constant/color.js +4 -0
  73. package/lib/constant/color.js.map +1 -1
  74. package/lib/context/AutoBeAgentContext.d.ts +20 -0
  75. package/lib/context/AutoBeAgentContext.js +50 -0
  76. package/lib/context/AutoBeAgentContext.js.map +1 -0
  77. package/lib/hooks/index.d.ts +1 -0
  78. package/lib/hooks/index.js +1 -0
  79. package/lib/hooks/index.js.map +1 -1
  80. package/lib/hooks/useEscapeKey.d.ts +7 -0
  81. package/lib/hooks/useEscapeKey.js +27 -0
  82. package/lib/hooks/useEscapeKey.js.map +1 -0
  83. package/lib/hooks/useMediaQuery.d.ts +8 -3
  84. package/lib/hooks/useMediaQuery.js +8 -3
  85. package/lib/hooks/useMediaQuery.js.map +1 -1
  86. package/lib/icons/Receipt.d.ts +12 -0
  87. package/lib/icons/Receipt.js +9 -0
  88. package/lib/icons/Receipt.js.map +1 -0
  89. package/lib/index.d.ts +3 -9
  90. package/lib/index.js +3 -17
  91. package/lib/index.js.map +1 -1
  92. package/package.json +3 -3
  93. package/src/{AutoBeAssistantMessageMovie.tsx → components/AutoBeAssistantMessageMovie.tsx} +1 -1
  94. package/src/components/AutoBeChatMain.tsx +178 -0
  95. package/src/components/AutoBeStatusModal.tsx +483 -0
  96. package/src/{AutoBeUserMessageMovie.tsx → components/AutoBeUserMessageMovie.tsx} +3 -1
  97. package/src/{common → components/common}/ChatBubble.tsx +1 -1
  98. package/src/{common → components/common}/Collapsible.tsx +7 -7
  99. package/src/{common → components/common}/openai/OpenAIUserTextContent.tsx +0 -1
  100. package/src/components/events/AutoBeCorrectEventMovie.tsx +368 -0
  101. package/src/{events → components/events}/AutoBeEventMovie.tsx +25 -9
  102. package/src/{events → components/events}/AutoBeValidateEventMovie.tsx +2 -2
  103. package/src/{events → components/events}/common/CollapsibleEventGroup.tsx +1 -10
  104. package/src/{events → components/events}/common/EventHeader.tsx +1 -1
  105. package/src/{events → components/events}/common/ProgressBar.tsx +3 -2
  106. package/src/components/events/groups/CorrectEventGroup.tsx +183 -0
  107. package/src/{events → components/events}/groups/ValidateEventGroup.tsx +3 -3
  108. package/src/{events → components/events}/groups/index.ts +4 -0
  109. package/src/{events → components/events}/index.ts +1 -0
  110. package/src/components/index.ts +7 -0
  111. package/src/{upload → components/upload}/AutoBeChatUploadBox.tsx +4 -2
  112. package/src/{upload → components/upload}/AutoBeVoiceRecoderButton.tsx +1 -1
  113. package/src/constant/color.ts +4 -0
  114. package/src/context/AutoBeAgentContext.tsx +79 -0
  115. package/src/hooks/index.ts +1 -0
  116. package/src/hooks/useEscapeKey.ts +24 -0
  117. package/src/hooks/useMediaQuery.ts +8 -3
  118. package/src/icons/Receipt.tsx +74 -0
  119. package/src/index.ts +3 -12
  120. package/lib/AutoBeAssistantMessageMovie.js.map +0 -1
  121. package/lib/AutoBeChatMain.d.ts +0 -16
  122. package/lib/AutoBeChatMain.js +0 -51
  123. package/lib/AutoBeChatMain.js.map +0 -1
  124. package/lib/AutoBeUserMessageMovie.js.map +0 -1
  125. package/lib/banner/AutoBeAgentInformation.d.ts +0 -15
  126. package/lib/banner/AutoBeAgentInformation.js +0 -41
  127. package/lib/banner/AutoBeAgentInformation.js.map +0 -1
  128. package/lib/banner/AutoBeChatBanner.d.ts +0 -15
  129. package/lib/banner/AutoBeChatBanner.js +0 -29
  130. package/lib/banner/AutoBeChatBanner.js.map +0 -1
  131. package/lib/banner/AutoBeChatState.d.ts +0 -6
  132. package/lib/banner/AutoBeChatState.js +0 -80
  133. package/lib/banner/AutoBeChatState.js.map +0 -1
  134. package/lib/banner/AutoBeTokenUsage.d.ts +0 -14
  135. package/lib/banner/AutoBeTokenUsage.js +0 -60
  136. package/lib/banner/AutoBeTokenUsage.js.map +0 -1
  137. package/lib/banner/index.d.ts +0 -4
  138. package/lib/banner/index.js.map +0 -1
  139. package/lib/common/ChatBubble.js.map +0 -1
  140. package/lib/common/Collapsible.js.map +0 -1
  141. package/lib/common/index.js.map +0 -1
  142. package/lib/common/openai/OpenAIContent.js.map +0 -1
  143. package/lib/common/openai/OpenAIUserAudioContent.js.map +0 -1
  144. package/lib/common/openai/OpenAIUserFileContent.js.map +0 -1
  145. package/lib/common/openai/OpenAIUserImageContent.js.map +0 -1
  146. package/lib/common/openai/OpenAIUserTextContent.js.map +0 -1
  147. package/lib/common/openai/index.js.map +0 -1
  148. package/lib/events/AutoBeCompleteEventMovie.js.map +0 -1
  149. package/lib/events/AutoBeEventMovie.js.map +0 -1
  150. package/lib/events/AutoBeProgressEventMovie.js.map +0 -1
  151. package/lib/events/AutoBeScenarioEventMovie.js.map +0 -1
  152. package/lib/events/AutoBeStartEventMovie.js.map +0 -1
  153. package/lib/events/AutoBeValidateEventMovie.js.map +0 -1
  154. package/lib/events/common/CollapsibleEventGroup.js.map +0 -1
  155. package/lib/events/common/EventCard.js.map +0 -1
  156. package/lib/events/common/EventContent.js.map +0 -1
  157. package/lib/events/common/EventHeader.js.map +0 -1
  158. package/lib/events/common/EventIcon.js.map +0 -1
  159. package/lib/events/common/ProgressBar.js.map +0 -1
  160. package/lib/events/common/index.js.map +0 -1
  161. package/lib/events/groups/ValidateEventGroup.js.map +0 -1
  162. package/lib/events/groups/index.js +0 -6
  163. package/lib/events/groups/index.js.map +0 -1
  164. package/lib/events/index.js.map +0 -1
  165. package/lib/events/utils/eventGrouper.js.map +0 -1
  166. package/lib/events/utils/index.js.map +0 -1
  167. package/lib/upload/AutoBeChatUploadBox.js.map +0 -1
  168. package/lib/upload/AutoBeChatUploadSendButton.js.map +0 -1
  169. package/lib/upload/AutoBeFileUploadBox.js.map +0 -1
  170. package/lib/upload/AutoBeUploadConfig.js.map +0 -1
  171. package/lib/upload/AutoBeVoiceRecoderButton.js.map +0 -1
  172. package/lib/upload/index.js.map +0 -1
  173. package/src/AutoBeChatMain.tsx +0 -123
  174. package/src/banner/AutoBeAgentInformation.tsx +0 -102
  175. package/src/banner/AutoBeChatBanner.tsx +0 -72
  176. package/src/banner/AutoBeChatState.tsx +0 -152
  177. package/src/banner/AutoBeTokenUsage.tsx +0 -152
  178. package/src/banner/index.ts +0 -4
  179. /package/lib/{common → components/common}/ChatBubble.d.ts +0 -0
  180. /package/lib/{common → components/common}/Collapsible.d.ts +0 -0
  181. /package/lib/{common → components/common}/index.d.ts +0 -0
  182. /package/lib/{common → components/common}/index.js +0 -0
  183. /package/lib/{common → components/common}/openai/OpenAIContent.d.ts +0 -0
  184. /package/lib/{common → components/common}/openai/OpenAIContent.js +0 -0
  185. /package/lib/{common → components/common}/openai/OpenAIUserAudioContent.d.ts +0 -0
  186. /package/lib/{common → components/common}/openai/OpenAIUserAudioContent.js +0 -0
  187. /package/lib/{common → components/common}/openai/OpenAIUserFileContent.d.ts +0 -0
  188. /package/lib/{common → components/common}/openai/OpenAIUserFileContent.js +0 -0
  189. /package/lib/{common → components/common}/openai/OpenAIUserImageContent.d.ts +0 -0
  190. /package/lib/{common → components/common}/openai/OpenAIUserImageContent.js +0 -0
  191. /package/lib/{common → components/common}/openai/OpenAIUserTextContent.d.ts +0 -0
  192. /package/lib/{common → components/common}/openai/index.d.ts +0 -0
  193. /package/lib/{common → components/common}/openai/index.js +0 -0
  194. /package/lib/{events → components/events}/AutoBeCompleteEventMovie.d.ts +0 -0
  195. /package/lib/{events → components/events}/AutoBeCompleteEventMovie.js +0 -0
  196. /package/lib/{events → components/events}/AutoBeProgressEventMovie.d.ts +0 -0
  197. /package/lib/{events → components/events}/AutoBeProgressEventMovie.js +0 -0
  198. /package/lib/{events → components/events}/AutoBeScenarioEventMovie.d.ts +0 -0
  199. /package/lib/{events → components/events}/AutoBeScenarioEventMovie.js +0 -0
  200. /package/lib/{events → components/events}/AutoBeStartEventMovie.d.ts +0 -0
  201. /package/lib/{events → components/events}/AutoBeStartEventMovie.js +0 -0
  202. /package/lib/{events → components/events}/AutoBeValidateEventMovie.d.ts +0 -0
  203. /package/lib/{events → components/events}/common/CollapsibleEventGroup.d.ts +0 -0
  204. /package/lib/{events → components/events}/common/EventCard.d.ts +0 -0
  205. /package/lib/{events → components/events}/common/EventCard.js +0 -0
  206. /package/lib/{events → components/events}/common/EventContent.d.ts +0 -0
  207. /package/lib/{events → components/events}/common/EventContent.js +0 -0
  208. /package/lib/{events → components/events}/common/EventHeader.d.ts +0 -0
  209. /package/lib/{events → components/events}/common/EventIcon.d.ts +0 -0
  210. /package/lib/{events → components/events}/common/EventIcon.js +0 -0
  211. /package/lib/{events → components/events}/common/ProgressBar.d.ts +0 -0
  212. /package/lib/{events → components/events}/common/index.d.ts +0 -0
  213. /package/lib/{events → components/events}/common/index.js +0 -0
  214. /package/lib/{events → components/events}/groups/ValidateEventGroup.d.ts +0 -0
  215. /package/lib/{events → components/events}/utils/eventGrouper.d.ts +0 -0
  216. /package/lib/{events → components/events}/utils/eventGrouper.js +0 -0
  217. /package/lib/{events → components/events}/utils/index.d.ts +0 -0
  218. /package/lib/{events → components/events}/utils/index.js +0 -0
  219. /package/lib/{upload → components/upload}/AutoBeChatUploadBox.d.ts +0 -0
  220. /package/lib/{upload → components/upload}/AutoBeChatUploadSendButton.d.ts +0 -0
  221. /package/lib/{upload → components/upload}/AutoBeChatUploadSendButton.js +0 -0
  222. /package/lib/{upload → components/upload}/AutoBeFileUploadBox.d.ts +0 -0
  223. /package/lib/{upload → components/upload}/AutoBeFileUploadBox.js +0 -0
  224. /package/lib/{upload → components/upload}/AutoBeUploadConfig.d.ts +0 -0
  225. /package/lib/{upload → components/upload}/AutoBeUploadConfig.js +0 -0
  226. /package/lib/{upload → components/upload}/AutoBeVoiceRecoderButton.d.ts +0 -0
  227. /package/lib/{upload → components/upload}/index.d.ts +0 -0
  228. /package/lib/{upload → components/upload}/index.js +0 -0
  229. /package/src/{common → components/common}/index.ts +0 -0
  230. /package/src/{common → components/common}/openai/OpenAIContent.tsx +0 -0
  231. /package/src/{common → components/common}/openai/OpenAIUserAudioContent.tsx +0 -0
  232. /package/src/{common → components/common}/openai/OpenAIUserFileContent.tsx +0 -0
  233. /package/src/{common → components/common}/openai/OpenAIUserImageContent.tsx +0 -0
  234. /package/src/{common → components/common}/openai/index.ts +0 -0
  235. /package/src/{events → components/events}/AutoBeCompleteEventMovie.tsx +0 -0
  236. /package/src/{events → components/events}/AutoBeProgressEventMovie.tsx +0 -0
  237. /package/src/{events → components/events}/AutoBeScenarioEventMovie.tsx +0 -0
  238. /package/src/{events → components/events}/AutoBeStartEventMovie.tsx +0 -0
  239. /package/src/{events → components/events}/README.md +0 -0
  240. /package/src/{events → components/events}/common/EventCard.tsx +0 -0
  241. /package/src/{events → components/events}/common/EventContent.tsx +0 -0
  242. /package/src/{events → components/events}/common/EventIcon.tsx +0 -0
  243. /package/src/{events → components/events}/common/index.ts +0 -0
  244. /package/src/{events → components/events}/utils/eventGrouper.tsx +0 -0
  245. /package/src/{events → components/events}/utils/index.ts +0 -0
  246. /package/src/{upload → components/upload}/AutoBeChatUploadSendButton.tsx +0 -0
  247. /package/src/{upload → components/upload}/AutoBeFileUploadBox.tsx +0 -0
  248. /package/src/{upload → components/upload}/AutoBeUploadConfig.ts +0 -0
  249. /package/src/{upload → components/upload}/index.ts +0 -0
@@ -110,7 +110,7 @@ export const ValidateEventGroup = (props: IValidateEventGroupProps) => {
110
110
  style={{
111
111
  width: "12px",
112
112
  height: "12px",
113
- backgroundColor: "#ef4444",
113
+ backgroundColor: "#f59e0b",
114
114
  borderRadius: "2px",
115
115
  }}
116
116
  />
@@ -122,13 +122,13 @@ export const ValidateEventGroup = (props: IValidateEventGroupProps) => {
122
122
 
123
123
  const getGroupIconType = () => {
124
124
  if (errorEvents === 0) return "success"; // All successful
125
- if (successEvents === 0) return "error"; // All failed
125
+ if (successEvents === 0) return "warning"; // All failed
126
126
  return "warning"; // Mixed results
127
127
  };
128
128
 
129
129
  const getGroupVariant = () => {
130
130
  if (errorEvents === 0) return "success"; // All successful
131
- if (successEvents === 0) return "error"; // All failed
131
+ if (successEvents === 0) return "warning"; // All failed
132
132
  return "warning"; // Mixed results
133
133
  };
134
134
 
@@ -1,3 +1,7 @@
1
+ export {
2
+ CorrectEventGroup,
3
+ type ICorrectEventGroupProps,
4
+ } from "./CorrectEventGroup";
1
5
  export {
2
6
  ValidateEventGroup,
3
7
  type IValidateEventGroupProps,
@@ -3,6 +3,7 @@ export { default as AutoBeScenarioEventMovie } from "./AutoBeScenarioEventMovie"
3
3
  export { default as AutoBeProgressEventMovie } from "./AutoBeProgressEventMovie";
4
4
  export { default as AutoBeCompleteEventMovie } from "./AutoBeCompleteEventMovie";
5
5
  export { default as AutoBeValidateEventMovie } from "./AutoBeValidateEventMovie";
6
+ export { default as AutoBeCorrectEventMovie } from "./AutoBeCorrectEventMovie";
6
7
  export { default as AutoBeEventMovie } from "./AutoBeEventMovie";
7
8
 
8
9
  // Common components
@@ -0,0 +1,7 @@
1
+ export * from "./AutoBeStatusModal";
2
+ export * from "./AutoBeChatMain";
3
+ export * from "./AutoBeUserMessageMovie";
4
+ export * from "./AutoBeAssistantMessageMovie";
5
+ export * from "./common";
6
+ export * from "./events";
7
+ export * from "./upload";
@@ -11,7 +11,8 @@ import {
11
11
  AutoBeFileUploadBox,
12
12
  AutoBeVoiceRecoderButton,
13
13
  } from ".";
14
- import { AutoBeFileUploader } from "../utils";
14
+ import { useMediaQuery } from "../../hooks/useMediaQuery";
15
+ import { AutoBeFileUploader } from "../../utils";
15
16
 
16
17
  export interface IAutoBeBucket {
17
18
  file: File;
@@ -158,7 +159,7 @@ export const AutoBeChatUploadBox = (props: AutoBeChatUploadBox.IProps) => {
158
159
  return (
159
160
  <div
160
161
  style={{
161
- maxWidth: "768px",
162
+ maxWidth: useMediaQuery.WIDTH_MD,
162
163
  margin: "0 auto",
163
164
  padding: "12px",
164
165
  borderRadius: "16px",
@@ -270,6 +271,7 @@ export const AutoBeChatUploadBox = (props: AutoBeChatUploadBox.IProps) => {
270
271
  ))}
271
272
  </div>
272
273
  )}
274
+
273
275
  <textarea
274
276
  ref={inputRef}
275
277
  style={{
@@ -1,7 +1,7 @@
1
1
  import { AutoBeUserMessageAudioContent } from "@autobe/interface";
2
2
  import { useState } from "react";
3
3
 
4
- import { AutoBeVoiceRecorder } from "../utils/AutoBeVoiceRecorder";
4
+ import { AutoBeVoiceRecorder } from "../../utils/AutoBeVoiceRecorder";
5
5
 
6
6
  export const AutoBeVoiceRecoderButton = (
7
7
  props: AutoBeVoiceRecoderButton.IProps,
@@ -21,4 +21,8 @@ export const COLORS = {
21
21
  /** Shadow styles */
22
22
  export const SHADOWS = {
23
23
  CARD: "0 1px 2px 0 rgba(0, 0, 0, 0.05)",
24
+ BANNER: "0 1px 2px 0 rgba(0, 0, 0, 0.1)",
25
+ STRONG: "0 4px 12px 0 rgba(0, 0, 0, 0.15)",
26
+ BUTTON: "0 2px 8px 0 rgba(0, 0, 0, 0.12)",
27
+ BUTTON_HOVER: "0 4px 16px 0 rgba(0, 0, 0, 0.2)",
24
28
  } as const;
@@ -0,0 +1,79 @@
1
+ import {
2
+ IAutoBePlaygroundHeader,
3
+ IAutoBeRpcService,
4
+ IAutoBeTokenUsageJson,
5
+ } from "@autobe/interface";
6
+ import { ILlmSchema } from "@samchon/openapi";
7
+ import { ReactNode, createContext, useContext, useState } from "react";
8
+ import { useEffect } from "react";
9
+
10
+ import {
11
+ AutoBeListener,
12
+ AutoBeListenerState,
13
+ IAutoBeEventGroup,
14
+ } from "../structure";
15
+
16
+ interface AutoBeAgentContextType {
17
+ eventGroups: IAutoBeEventGroup[];
18
+ tokenUsage: IAutoBeTokenUsageJson | null;
19
+ state: AutoBeListenerState;
20
+ header: IAutoBePlaygroundHeader<ILlmSchema.Model>;
21
+ service: IAutoBeRpcService;
22
+ listener: AutoBeListener;
23
+ }
24
+
25
+ const AutoBeAgentContext = createContext<AutoBeAgentContextType | null>(null);
26
+
27
+ export function AutoBeAgentProvider({
28
+ children,
29
+ listener,
30
+ service,
31
+ header,
32
+ }: {
33
+ listener: AutoBeListener;
34
+ service: IAutoBeRpcService;
35
+ header: IAutoBePlaygroundHeader<ILlmSchema.Model>;
36
+ children: ReactNode;
37
+ }) {
38
+ const [tokenUsage, setTokenUsage] = useState<IAutoBeTokenUsageJson | null>(
39
+ null,
40
+ );
41
+ const [eventGroups, setEventGroups] = useState<IAutoBeEventGroup[]>([]);
42
+
43
+ useEffect(() => {
44
+ listener.on(async (e) => {
45
+ service
46
+ .getTokenUsage()
47
+ .then(setTokenUsage)
48
+ .catch(() => {});
49
+ setEventGroups(e);
50
+ });
51
+ service
52
+ .getTokenUsage()
53
+ .then(setTokenUsage)
54
+ .catch(() => {});
55
+ }, []);
56
+
57
+ return (
58
+ <AutoBeAgentContext.Provider
59
+ value={{
60
+ eventGroups,
61
+ tokenUsage,
62
+ state: listener.getState(),
63
+ header,
64
+ service,
65
+ listener,
66
+ }}
67
+ >
68
+ {children}
69
+ </AutoBeAgentContext.Provider>
70
+ );
71
+ }
72
+
73
+ export function useAutoBeAgent() {
74
+ const context = useContext(AutoBeAgentContext);
75
+ if (!context) {
76
+ throw new Error("useAutoBeAgent must be used within a AutoBeAgentProvider");
77
+ }
78
+ return context;
79
+ }
@@ -1,2 +1,3 @@
1
+ export * from "./useEscapeKey";
1
2
  export * from "./useIsomorphicLayoutEffect";
2
3
  export * from "./useMediaQuery";
@@ -0,0 +1,24 @@
1
+ import { useEffect } from "react";
2
+
3
+ /**
4
+ * Hook to handle ESC key press to close modal or overlay
5
+ *
6
+ * @param isOpen - Whether the modal/overlay is open
7
+ * @param onClose - Callback function to close the modal/overlay
8
+ */
9
+ export const useEscapeKey = (isOpen: boolean, onClose: () => void): void => {
10
+ useEffect(() => {
11
+ const handleKeyDown = (event: KeyboardEvent) => {
12
+ if (event.key === "Escape" && isOpen) {
13
+ onClose();
14
+ }
15
+ };
16
+
17
+ if (isOpen) {
18
+ document.addEventListener("keydown", handleKeyDown);
19
+ return () => {
20
+ document.removeEventListener("keydown", handleKeyDown);
21
+ };
22
+ }
23
+ }, [isOpen, onClose]);
24
+ };
@@ -62,7 +62,12 @@ export function useMediaQuery(
62
62
  }
63
63
 
64
64
  export namespace useMediaQuery {
65
- export const MIN_WIDTH_LG = "(min-width: 1200px)";
66
- export const MIN_WIDTH_MD = "(min-width: 900px)";
67
- export const MIN_WIDTH_SM = "(min-width: 600px)";
65
+ export const WIDTH_XL = "80rem";
66
+ export const WIDTH_LG = "64rem";
67
+ export const WIDTH_MD = "48rem";
68
+ export const WIDTH_SM = "40rem";
69
+ export const MIN_WIDTH_XL = `(min-width: ${WIDTH_XL})`;
70
+ export const MIN_WIDTH_LG = `(min-width: ${WIDTH_LG})`;
71
+ export const MIN_WIDTH_MD = `(min-width: ${WIDTH_MD})`;
72
+ export const MIN_WIDTH_SM = `(min-width: ${WIDTH_SM})`;
68
73
  }
@@ -0,0 +1,74 @@
1
+ import { COLORS } from "../constant/color";
2
+
3
+ /** Props interface for ReceiptIcon component */
4
+ interface IReceiptIconProps {
5
+ /** Width of the icon */
6
+ width?: number;
7
+ /** Height of the icon */
8
+ height?: number;
9
+ /** Color of the icon */
10
+ color?: string;
11
+ }
12
+
13
+ /** Receipt SVG icon component */
14
+ export const ReceiptIcon = ({
15
+ width = 24,
16
+ height = 30,
17
+ color = COLORS.GRAY_TEXT_DARK,
18
+ }: IReceiptIconProps) => (
19
+ <svg
20
+ width={width}
21
+ height={height}
22
+ viewBox="0 0 24 30"
23
+ fill="none"
24
+ xmlns="http://www.w3.org/2000/svg"
25
+ >
26
+ {/* Receipt Body */}
27
+ <path
28
+ d="M2 2H22V24L20 22L18 24L16 22L14 24L12 22L10 24L8 22L6 24L4 22L2 24V2Z"
29
+ fill={color}
30
+ fillOpacity="0.1"
31
+ stroke={color}
32
+ strokeWidth="1.5"
33
+ strokeLinecap="round"
34
+ strokeLinejoin="round"
35
+ />
36
+ {/* Receipt Lines */}
37
+ <line
38
+ x1="6"
39
+ y1="7"
40
+ x2="18"
41
+ y2="7"
42
+ stroke={color}
43
+ strokeWidth="1"
44
+ strokeLinecap="round"
45
+ />
46
+ <line
47
+ x1="6"
48
+ y1="11"
49
+ x2="18"
50
+ y2="11"
51
+ stroke={color}
52
+ strokeWidth="1"
53
+ strokeLinecap="round"
54
+ />
55
+ <line
56
+ x1="6"
57
+ y1="15"
58
+ x2="14"
59
+ y2="15"
60
+ stroke={color}
61
+ strokeWidth="1"
62
+ strokeLinecap="round"
63
+ />
64
+ <line
65
+ x1="6"
66
+ y1="19"
67
+ x2="16"
68
+ y2="19"
69
+ stroke={color}
70
+ strokeWidth="1"
71
+ strokeLinecap="round"
72
+ />
73
+ </svg>
74
+ );
package/src/index.ts CHANGED
@@ -1,13 +1,4 @@
1
- export * from "./events";
2
- export { default as AutoBeAssistantMessageMovie } from "./AutoBeAssistantMessageMovie";
3
- export { default as AutoBeUserMessageMovie } from "./AutoBeUserMessageMovie";
4
- export { default as ChatBubble } from "./common/ChatBubble";
5
- export { default as AutoBeChatMain } from "./AutoBeChatMain";
6
- export type {
7
- IChatBubbleProps,
8
- IContentRendererProps,
9
- } from "./common/ChatBubble";
10
- export { AutoBeFileUploader } from "./utils";
11
- export * from "./upload";
12
- export * from "./banner";
1
+ export * from "./components";
2
+ export * from "./utils";
13
3
  export * from "./structure";
4
+ export * from "./context/AutoBeAgentContext";
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutoBeAssistantMessageMovie.js","sourceRoot":"","sources":["../src/AutoBeAssistantMessageMovie.tsx"],"names":[],"mappings":";;;;;;AAAA,qEAA6C;AAQ7C,MAAM,2BAA2B,GAAG,CAAC,KAA6B,EAAE,EAAE;IACpE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE/D,OAAO,CACL,uBAAC,oBAAU,IACT,OAAO,EAAE,CAAC,IAAI,CAAC,EACf,SAAS,EAAC,MAAM,EAChB,SAAS,EAAE,YAAY,EACvB,aAAa,EAAE,aAAa,GAC5B,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,2BAA2B,CAAC"}
@@ -1,16 +0,0 @@
1
- import { AutoBeUserMessageContent, IAutoBePlaygroundHeader, IAutoBeRpcService, IAutoBeTokenUsageJson } from "@autobe/interface";
2
- import { ILlmSchema } from "@samchon/openapi";
3
- import { AutoBeListenerState, IAutoBeEventGroup, IAutoBeUploadConfig } from ".";
4
- export interface IAutoBeChatMainProps {
5
- isMobile: boolean;
6
- eventGroups: IAutoBeEventGroup[];
7
- service: IAutoBeRpcService;
8
- conversate: (messages: AutoBeUserMessageContent[]) => Promise<void>;
9
- setError: (error: Error) => void;
10
- uploadConfig?: IAutoBeUploadConfig;
11
- tokenUsage: IAutoBeTokenUsageJson | null;
12
- header: IAutoBePlaygroundHeader<ILlmSchema.Model>;
13
- state: AutoBeListenerState;
14
- }
15
- export declare const AutoBeChatMain: (props: IAutoBeChatMainProps) => import("react/jsx-runtime").JSX.Element;
16
- export default AutoBeChatMain;
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AutoBeChatMain = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_1 = require("react");
6
- const _1 = require(".");
7
- const hooks_1 = require("./hooks");
8
- const AutoBeChatMain = (props) => {
9
- var _a;
10
- const bodyContainerRef = (0, react_1.useRef)(null);
11
- const scrollAnchorRef = (0, react_1.useRef)(null);
12
- const listener = (0, react_1.useRef)({
13
- handleDragEnter: () => { },
14
- handleDragLeave: () => { },
15
- handleDrop: () => { },
16
- handleDragOver: () => { },
17
- });
18
- (0, react_1.useEffect)(() => {
19
- var _a;
20
- if (props.eventGroups.length === 0)
21
- return;
22
- (_a = scrollAnchorRef.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView({
23
- behavior: "smooth",
24
- });
25
- }, [(_a = bodyContainerRef.current) === null || _a === void 0 ? void 0 : _a.scrollHeight]);
26
- const isMinWidthLg = (0, hooks_1.useMediaQuery)(hooks_1.useMediaQuery.MIN_WIDTH_LG);
27
- return ((0, jsx_runtime_1.jsxs)("div", { onDragEnter: (e) => listener.current.handleDragEnter(e), onDragLeave: (e) => listener.current.handleDragLeave(e), onDragOver: (e) => listener.current.handleDragOver(e), onDrop: (e) => listener.current.handleDrop(e), style: {
28
- position: "relative",
29
- overflowY: "auto",
30
- margin: 0,
31
- backgroundColor: "lightblue",
32
- flexGrow: 1,
33
- display: "flex",
34
- flexDirection: "column",
35
- }, ref: bodyContainerRef, children: [!isMinWidthLg && ((0, jsx_runtime_1.jsx)(_1.AutoBeChatBanner, { header: props.header, tokenUsage: props.tokenUsage, state: props.state })), (0, jsx_runtime_1.jsx)("div", { style: {
36
- backgroundColor: "lightblue",
37
- padding: "2rem",
38
- gap: 16,
39
- display: "flex",
40
- flexDirection: "column",
41
- }, children: props.eventGroups.map((e, index) => ((0, jsx_runtime_1.jsx)(_1.AutoBeEventMovie, { getFiles: props.service.getFiles, events: e.events, last: index === props.eventGroups.length - 1 }, index))) }), (0, jsx_runtime_1.jsx)("div", { style: { flexGrow: 1, minHeight: "1rem" }, ref: scrollAnchorRef }), (0, jsx_runtime_1.jsx)("div", { style: {
42
- position: "sticky",
43
- bottom: 16,
44
- left: 0,
45
- right: 0,
46
- zIndex: 1000,
47
- }, children: (0, jsx_runtime_1.jsx)(_1.AutoBeChatUploadBox, { listener: listener, uploadConfig: props.uploadConfig, conversate: props.conversate, setError: props.setError }) })] }));
48
- };
49
- exports.AutoBeChatMain = AutoBeChatMain;
50
- exports.default = exports.AutoBeChatMain;
51
- //# sourceMappingURL=AutoBeChatMain.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutoBeChatMain.js","sourceRoot":"","sources":["../src/AutoBeChatMain.tsx"],"names":[],"mappings":";;;;AAOA,iCAAqD;AAErD,wBAOW;AACX,mCAAwC;AAcjC,MAAM,cAAc,GAAG,CAAC,KAA2B,EAAE,EAAE;;IAC5D,MAAM,gBAAgB,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IACtD,MAAM,eAAe,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IAErD,MAAM,QAAQ,GAA6C,IAAA,cAAM,EAAC;QAChE,eAAe,EAAE,GAAG,EAAE,GAAE,CAAC;QACzB,eAAe,EAAE,GAAG,EAAE,GAAE,CAAC;QACzB,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;QACpB,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;KACzB,CAAC,CAAC;IAEH,IAAA,iBAAS,EAAC,GAAG,EAAE;;QACb,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC3C,MAAA,eAAe,CAAC,OAAO,0CAAE,cAAc,CAAC;YACtC,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,MAAA,gBAAgB,CAAC,OAAO,0CAAE,YAAY,CAAC,CAAC,CAAC;IAE7C,MAAM,YAAY,GAAG,IAAA,qBAAa,EAAC,qBAAa,CAAC,YAAY,CAAC,CAAC;IAC/D,OAAO,CACL,iCACE,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EACvD,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EACvD,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EACrD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAC7C,KAAK,EAAE;YACL,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,MAAM;YACjB,MAAM,EAAE,CAAC;YACT,eAAe,EAAE,WAAW;YAC5B,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;SACxB,EACD,GAAG,EAAE,gBAAgB,aAEpB,CAAC,YAAY,IAAI,CAChB,uBAAC,mBAAgB,IACf,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,KAAK,EAAE,KAAK,CAAC,KAAK,GAClB,CACH,EAED,gCACE,KAAK,EAAE;oBACL,eAAe,EAAE,WAAW;oBAC5B,OAAO,EAAE,MAAM;oBACf,GAAG,EAAE,EAAE;oBACP,OAAO,EAAE,MAAM;oBACf,aAAa,EAAE,QAAQ;iBACxB,YAEA,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CACnC,uBAAC,mBAAgB,IAEf,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAChB,IAAI,EAAE,KAAK,KAAK,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAHvC,KAAK,CAIV,CACH,CAAC,GACE,EAON,gCACE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EACzC,GAAG,EAAE,eAAe,GACf,EACP,gCACE,KAAK,EAAE;oBACL,QAAQ,EAAE,QAAQ;oBAClB,MAAM,EAAE,EAAE;oBACV,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,IAAI;iBACb,YAED,uBAAC,sBAAmB,IAClB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ,GACxB,GACE,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AA1FW,QAAA,cAAc,kBA0FzB;AACF,kBAAe,sBAAc,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutoBeUserMessageMovie.js","sourceRoot":"","sources":["../src/AutoBeUserMessageMovie.tsx"],"names":[],"mappings":";;;;;;AAEA,qEAA6C;AAM7C,MAAM,sBAAsB,GAAG,CAAC,KAA0C,EAAE,EAAE;IAC5E,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAE1B,OAAO,CACL,gCACE,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,GAAG,EAAE,CAAC;SACP,YAED,uBAAC,oBAAU,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAC,OAAO,EAAC,aAAa,EAAC,KAAK,GAAG,GAClE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,sBAAsB,CAAC"}
@@ -1,15 +0,0 @@
1
- import { IAutoBePlaygroundHeader, IAutoBePlaygroundVendor } from "@autobe/interface";
2
- import { ILlmSchema } from "@samchon/openapi";
3
- export interface IAutoBeAgentInformationProps {
4
- header: Omit<IAutoBePlaygroundHeader<ILlmSchema.Model>, "vendor"> & {
5
- vendor: Omit<IAutoBePlaygroundVendor, "apiKey">;
6
- };
7
- }
8
- /**
9
- * Agent information component displaying model, locale, and configuration
10
- * details
11
- *
12
- * @param props - Component props
13
- * @returns JSX element representing the agent information
14
- */
15
- export declare const AutoBeAgentInformation: ({ header, }: IAutoBeAgentInformationProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AutoBeAgentInformation = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const color_1 = require("../constant/color");
6
- /** Info row component with consistent flex layout */
7
- const InfoRow = ({ label, value }) => ((0, jsx_runtime_1.jsxs)("div", { style: {
8
- display: "flex",
9
- alignItems: "center",
10
- padding: "4px 0",
11
- gap: "8px",
12
- }, children: [(0, jsx_runtime_1.jsx)(InfoLabel, { children: label + ":" }), (0, jsx_runtime_1.jsx)(InfoValue, { children: value })] }));
13
- /** Info label component with consistent styling */
14
- const InfoLabel = ({ children }) => ((0, jsx_runtime_1.jsx)("span", { style: {
15
- color: color_1.COLORS.GRAY_TEXT_MEDIUM,
16
- fontWeight: "500",
17
- fontSize: "0.875rem",
18
- }, children: children }));
19
- /** Info value component with styling */
20
- const InfoValue = ({ children }) => ((0, jsx_runtime_1.jsx)("span", { style: {
21
- color: color_1.COLORS.GRAY_TEXT_DARK,
22
- fontWeight: "600",
23
- fontSize: "0.875rem",
24
- }, children: children }));
25
- /**
26
- * Agent information component displaying model, locale, and configuration
27
- * details
28
- *
29
- * @param props - Component props
30
- * @returns JSX element representing the agent information
31
- */
32
- const AutoBeAgentInformation = ({ header, }) => {
33
- var _a;
34
- return ((0, jsx_runtime_1.jsxs)("div", { style: {
35
- display: "flex",
36
- flexDirection: "column",
37
- gap: "6px",
38
- }, children: [(0, jsx_runtime_1.jsx)(InfoRow, { label: "AI Model", value: header.vendor.model }), (0, jsx_runtime_1.jsx)(InfoRow, { label: "Schema Model", value: header.model }), (0, jsx_runtime_1.jsx)(InfoRow, { label: "Locale", value: header.locale }), (0, jsx_runtime_1.jsx)(InfoRow, { label: "Timezone", value: header.timezone }), (0, jsx_runtime_1.jsx)(InfoRow, { label: "Semaphore", value: (_a = header.vendor.semaphore) !== null && _a !== void 0 ? _a : 16 })] }));
39
- };
40
- exports.AutoBeAgentInformation = AutoBeAgentInformation;
41
- //# sourceMappingURL=AutoBeAgentInformation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutoBeAgentInformation.js","sourceRoot":"","sources":["../../src/banner/AutoBeAgentInformation.tsx"],"names":[],"mappings":";;;;AAOA,6CAA2C;AA4B3C,qDAAqD;AACrD,MAAM,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAiB,EAAE,EAAE,CAAC,CACnD,iCACE,KAAK,EAAE;QACL,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;QACpB,OAAO,EAAE,OAAO;QAChB,GAAG,EAAE,KAAK;KACX,aAED,uBAAC,SAAS,cAAE,KAAK,GAAG,GAAG,GAAa,EACpC,uBAAC,SAAS,cAAE,KAAK,GAAa,IAC1B,CACP,CAAC;AAEF,mDAAmD;AACnD,MAAM,SAAS,GAAG,CAAC,EAAE,QAAQ,EAAmB,EAAE,EAAE,CAAC,CACnD,iCACE,KAAK,EAAE;QACL,KAAK,EAAE,cAAM,CAAC,gBAAgB;QAC9B,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,UAAU;KACrB,YAEA,QAAQ,GACJ,CACR,CAAC;AAEF,wCAAwC;AACxC,MAAM,SAAS,GAAG,CAAC,EAAE,QAAQ,EAAmB,EAAE,EAAE,CAAC,CACnD,iCACE,KAAK,EAAE;QACL,KAAK,EAAE,cAAM,CAAC,cAAc;QAC5B,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,UAAU;KACrB,YAEA,QAAQ,GACJ,CACR,CAAC;AAEF;;;;;;GAMG;AACI,MAAM,sBAAsB,GAAG,CAAC,EACrC,MAAM,GACuB,EAAE,EAAE;;IACjC,OAAO,CACL,iCACE,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,GAAG,EAAE,KAAK;SACX,aAED,uBAAC,OAAO,IAAC,KAAK,EAAC,UAAU,EAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,GAAI,EACxD,uBAAC,OAAO,IAAC,KAAK,EAAC,cAAc,EAAC,KAAK,EAAE,MAAM,CAAC,KAAK,GAAI,EACrD,uBAAC,OAAO,IAAC,KAAK,EAAC,QAAQ,EAAC,KAAK,EAAE,MAAM,CAAC,MAAM,GAAI,EAChD,uBAAC,OAAO,IAAC,KAAK,EAAC,UAAU,EAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,GAAI,EACpD,uBAAC,OAAO,IAAC,KAAK,EAAC,WAAW,EAAC,KAAK,EAAE,MAAA,MAAM,CAAC,MAAM,CAAC,SAAS,mCAAI,EAAE,GAAI,IAC/D,CACP,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,sBAAsB,0BAkBjC"}
@@ -1,15 +0,0 @@
1
- import { IAutoBeTokenUsageJson } from "@autobe/interface";
2
- import { IAutoBeAgentInformationProps } from "./AutoBeAgentInformation";
3
- import { IAutoBeChatStateProps } from "./AutoBeChatState";
4
- /** Props interface for AutoBeChatBanner component */
5
- interface IAutoBeChatBannerProps {
6
- /** Agent information to display */
7
- header: IAutoBeAgentInformationProps["header"];
8
- /** Token usage data to display */
9
- tokenUsage: IAutoBeTokenUsageJson | null;
10
- /** Chat state to display */
11
- state: IAutoBeChatStateProps["state"];
12
- }
13
- /** Chat banner component with collapsible token usage display */
14
- export declare const AutoBeChatBanner: (props: IAutoBeChatBannerProps) => import("react/jsx-runtime").JSX.Element;
15
- export default AutoBeChatBanner;
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AutoBeChatBanner = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const common_1 = require("../common");
6
- const color_1 = require("../constant/color");
7
- const AutoBeAgentInformation_1 = require("./AutoBeAgentInformation");
8
- const AutoBeChatState_1 = require("./AutoBeChatState");
9
- const AutoBeTokenUsage_1 = require("./AutoBeTokenUsage");
10
- /** Chat banner component with collapsible token usage display */
11
- const AutoBeChatBanner = (props) => {
12
- return ((0, jsx_runtime_1.jsx)("header", { style: {
13
- padding: "0 48",
14
- position: "sticky",
15
- top: "12px",
16
- marginBottom: "1rem",
17
- zIndex: 10,
18
- }, children: (0, jsx_runtime_1.jsxs)("div", { style: {
19
- border: `1px solid ${color_1.COLORS.GRAY_BORDER}`,
20
- borderRadius: "8px",
21
- backgroundColor: color_1.COLORS.GRAY_BACKGROUND,
22
- padding: "0 16px 16px 16px",
23
- boxShadow: color_1.SHADOWS.CARD,
24
- width: "100%",
25
- }, children: [(0, jsx_runtime_1.jsx)("h3", { children: "Summaries" }), (0, jsx_runtime_1.jsx)(common_1.Collapsible, { title: "Agent Information", defaultCollapsed: true, animated: true, children: (0, jsx_runtime_1.jsx)(AutoBeAgentInformation_1.AutoBeAgentInformation, { header: props.header }) }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)(common_1.Collapsible, { title: "Token Usage", defaultCollapsed: false, animated: true, children: (0, jsx_runtime_1.jsx)(AutoBeTokenUsage_1.AutoBeTokenUsage, { tokenUsage: props.tokenUsage }) }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)(common_1.Collapsible, { title: "Chat State", defaultCollapsed: true, animated: true, children: (0, jsx_runtime_1.jsx)(AutoBeChatState_1.AutoBeChatState, { state: props.state }) })] }) }));
26
- };
27
- exports.AutoBeChatBanner = AutoBeChatBanner;
28
- exports.default = exports.AutoBeChatBanner;
29
- //# sourceMappingURL=AutoBeChatBanner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutoBeChatBanner.js","sourceRoot":"","sources":["../../src/banner/AutoBeChatBanner.tsx"],"names":[],"mappings":";;;;AAEA,sCAAwC;AACxC,6CAAoD;AACpD,qEAGkC;AAClC,uDAA2E;AAC3E,yDAAsD;AActD,iEAAiE;AAC1D,MAAM,gBAAgB,GAAG,CAAC,KAA6B,EAAE,EAAE;IAChE,OAAO,CACL,mCACE,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,QAAQ;YAClB,GAAG,EAAE,MAAM;YACX,YAAY,EAAE,MAAM;YACpB,MAAM,EAAE,EAAE;SACX,YAED,iCACE,KAAK,EAAE;gBACL,MAAM,EAAE,aAAa,cAAM,CAAC,WAAW,EAAE;gBACzC,YAAY,EAAE,KAAK;gBACnB,eAAe,EAAE,cAAM,CAAC,eAAe;gBACvC,OAAO,EAAE,kBAAkB;gBAC3B,SAAS,EAAE,eAAO,CAAC,IAAI;gBACvB,KAAK,EAAE,MAAM;aACd,aAED,uDAAkB,EAElB,uBAAC,oBAAW,IACV,KAAK,EAAC,mBAAmB,EACzB,gBAAgB,EAAE,IAAI,EACtB,QAAQ,EAAE,IAAI,YAEd,uBAAC,+CAAsB,IAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAI,GACpC,EACd,gCAAM,EACN,uBAAC,oBAAW,IACV,KAAK,EAAC,aAAa,EACnB,gBAAgB,EAAE,KAAK,EACvB,QAAQ,EAAE,IAAI,YAEd,uBAAC,mCAAgB,IAAC,UAAU,EAAE,KAAK,CAAC,UAAU,GAAI,GACtC,EACd,gCAAM,EACN,uBAAC,oBAAW,IAAC,KAAK,EAAC,YAAY,EAAC,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,YACpE,uBAAC,iCAAe,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAI,GAC3B,IACV,GACC,CACV,CAAC;AACJ,CAAC,CAAC;AA7CW,QAAA,gBAAgB,oBA6C3B;AAEF,kBAAe,wBAAgB,CAAC"}
@@ -1,6 +0,0 @@
1
- import { AutoBeListenerState } from "..";
2
- export interface IAutoBeChatStateProps {
3
- state: AutoBeListenerState;
4
- }
5
- /** Component to display development state information */
6
- export declare const AutoBeChatState: (props: IAutoBeChatStateProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,80 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AutoBeChatState = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const color_1 = require("../constant/color");
6
- /** Common styles for step items */
7
- const getStepItemStyle = (isActive) => ({
8
- padding: "12px",
9
- backgroundColor: color_1.COLORS.GRAY_BACKGROUND,
10
- borderRadius: "6px",
11
- borderLeft: `4px solid ${isActive ? "#007bff" : color_1.COLORS.GRAY_BORDER}`,
12
- });
13
- const stepTitleStyle = {
14
- fontWeight: "bold",
15
- fontSize: "0.9rem",
16
- marginBottom: "4px",
17
- color: color_1.COLORS.GRAY_TEXT_DARK,
18
- };
19
- const stepDataStyle = {
20
- fontSize: "0.85rem",
21
- color: color_1.COLORS.GRAY_TEXT_MEDIUM,
22
- lineHeight: "1.4",
23
- };
24
- /** Component for displaying active state step */
25
- const StateStep = ({ step, data }) => ((0, jsx_runtime_1.jsxs)("div", { style: getStepItemStyle(true), children: [(0, jsx_runtime_1.jsx)("div", { style: stepTitleStyle, children: `${step.charAt(0).toUpperCase()}${step.slice(1)}` }), (0, jsx_runtime_1.jsx)("div", { style: stepDataStyle, children: Object.entries(getStepCount(data))
26
- .map(([key, value]) => `${key}: ${value.toLocaleString()}`)
27
- .join(" • ") }), (0, jsx_runtime_1.jsxs)("div", { style: stepDataStyle, children: ["\u23F1\uFE0F ", (Math.floor((data.elapsed / 60000) * 100) / 100).toLocaleString(), " ", "mins"] })] }));
28
- /** Component for displaying empty state step */
29
- const StateEmpty = ({ step }) => ((0, jsx_runtime_1.jsxs)("div", { style: getStepItemStyle(false), children: [(0, jsx_runtime_1.jsx)("div", { style: stepTitleStyle, children: `${step.charAt(0).toUpperCase()}${step.slice(1)}` }), (0, jsx_runtime_1.jsx)("div", { style: stepDataStyle, children: "0 items \u2022 \u23F1\uFE0F 0 mins" })] }));
30
- /** Component to display development state information */
31
- const AutoBeChatState = (props) => {
32
- const containerStyle = {
33
- display: "flex",
34
- flexDirection: "column",
35
- gap: "12px",
36
- };
37
- const steps = ["analyze", "prisma", "interface", "test", "realize"];
38
- return ((0, jsx_runtime_1.jsx)("div", { style: containerStyle, children: (0, jsx_runtime_1.jsx)("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: steps.map((stepType) => props.state[stepType] ? ((0, jsx_runtime_1.jsx)(StateStep, { step: stepType, data: props.state[stepType] }, stepType)) : ((0, jsx_runtime_1.jsx)(StateEmpty, { step: stepType }, stepType))) }) }));
39
- };
40
- exports.AutoBeChatState = AutoBeChatState;
41
- /** Calculate count data based on step type */
42
- const getStepCount = (data) => {
43
- switch (data.type) {
44
- case "analyzeComplete": {
45
- return {
46
- Documents: Object.keys(data.files).length,
47
- "Actor Roles": data.roles.length,
48
- };
49
- }
50
- case "prismaComplete": {
51
- return {
52
- Namespaces: data.result.data.files.length,
53
- Models: data.result.data.files
54
- .map((f) => f.models.length)
55
- .reduce((a, b) => a + b, 0),
56
- };
57
- }
58
- case "interfaceComplete": {
59
- return {
60
- Operations: data.document.operations.length,
61
- Schemas: Object.keys(data.document.components.schemas).length,
62
- };
63
- }
64
- case "testComplete": {
65
- return {
66
- Functions: data.files.length,
67
- };
68
- }
69
- case "realizeComplete": {
70
- return {
71
- Controllers: Object.keys(data.controllers).length,
72
- Functions: data.functions.length,
73
- };
74
- }
75
- default:
76
- data;
77
- throw new Error(`Unknown step type: ${data}`);
78
- }
79
- };
80
- //# sourceMappingURL=AutoBeChatState.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutoBeChatState.js","sourceRoot":"","sources":["../../src/banner/AutoBeChatState.tsx"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import { IAutoBeTokenUsageJson } from "@autobe/interface";
2
- /** Props interface for TokenUsageCard component */
3
- interface ITokenUsageCardProps {
4
- /** Token usage data to display */
5
- tokenUsage: IAutoBeTokenUsageJson | null;
6
- }
7
- /**
8
- * Token usage card component displaying input, output, and total token counts
9
- *
10
- * @param props - Component props
11
- * @returns JSX element representing the token usage card
12
- */
13
- export declare const AutoBeTokenUsage: ({ tokenUsage }: ITokenUsageCardProps) => import("react/jsx-runtime").JSX.Element;
14
- export default AutoBeTokenUsage;