@autobe/ui 0.29.2 → 0.30.0-dev.20260315

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 (151) hide show
  1. package/LICENSE +661 -661
  2. package/README.md +261 -0
  3. package/lib/components/AutoBeChatMain.js +5 -5
  4. package/lib/components/AutoBeChatMain.js.map +1 -1
  5. package/lib/components/AutoBeConfigModal.js +9 -9
  6. package/lib/components/AutoBeStatusModal.js +4 -4
  7. package/lib/components/AutoBeStatusModal.js.map +1 -1
  8. package/lib/components/AutoBeUserMessageMovie.d.ts +2 -2
  9. package/lib/components/common/ChatBubble.d.ts +2 -2
  10. package/lib/components/common/openai/OpenAIContent.d.ts +2 -2
  11. package/lib/components/common/openai/OpenAIContent.js.map +1 -1
  12. package/lib/components/common/openai/OpenAIUserAudioContent.js +1 -1
  13. package/lib/components/common/openai/OpenAIUserAudioContent.js.map +1 -1
  14. package/lib/components/common/openai/OpenAIUserFileContent.js +1 -1
  15. package/lib/components/common/openai/OpenAIUserFileContent.js.map +1 -1
  16. package/lib/components/common/openai/OpenAIUserImageContent.d.ts +2 -2
  17. package/lib/components/events/AutoBeCompleteEventMovie.d.ts +2 -2
  18. package/lib/components/events/AutoBeCompleteEventMovie.js +5 -5
  19. package/lib/components/events/AutoBeCompleteEventMovie.js.map +1 -1
  20. package/lib/components/events/AutoBeCorrectEventMovie.d.ts +2 -2
  21. package/lib/components/events/AutoBeCorrectEventMovie.js +4 -4
  22. package/lib/components/events/AutoBeCorrectEventMovie.js.map +1 -1
  23. package/lib/components/events/AutoBeEventMovie.js +38 -17
  24. package/lib/components/events/AutoBeEventMovie.js.map +1 -1
  25. package/lib/components/events/AutoBeProgressEventMovie.js +73 -13
  26. package/lib/components/events/AutoBeProgressEventMovie.js.map +1 -1
  27. package/lib/components/events/AutoBeScenarioEventMovie.d.ts +2 -2
  28. package/lib/components/events/AutoBeScenarioEventMovie.js +18 -5
  29. package/lib/components/events/AutoBeScenarioEventMovie.js.map +1 -1
  30. package/lib/components/events/AutoBeStartEventMovie.d.ts +2 -2
  31. package/lib/components/events/AutoBeStartEventMovie.js +2 -2
  32. package/lib/components/events/AutoBeStartEventMovie.js.map +1 -1
  33. package/lib/components/events/AutoBeValidateEventMovie.d.ts +2 -2
  34. package/lib/components/events/AutoBeValidateEventMovie.js +3 -11
  35. package/lib/components/events/AutoBeValidateEventMovie.js.map +1 -1
  36. package/lib/components/events/groups/CorrectEventGroup.d.ts +2 -2
  37. package/lib/components/events/groups/CorrectEventGroup.js +1 -1
  38. package/lib/components/events/groups/CorrectEventGroup.js.map +1 -1
  39. package/lib/components/events/groups/ValidateEventGroup.d.ts +2 -2
  40. package/lib/components/events/groups/ValidateEventGroup.js +1 -2
  41. package/lib/components/events/groups/ValidateEventGroup.js.map +1 -1
  42. package/lib/components/events/utils/eventGrouper.js +1 -2
  43. package/lib/components/events/utils/eventGrouper.js.map +1 -1
  44. package/lib/components/upload/AutoBeChatUploadBox.d.ts +3 -4
  45. package/lib/components/upload/AutoBeChatUploadBox.js +2 -1
  46. package/lib/components/upload/AutoBeChatUploadBox.js.map +1 -1
  47. package/lib/components/upload/AutoBeChatUploadSendButton.js +1 -1
  48. package/lib/components/upload/AutoBeChatUploadSendButton.js.map +1 -1
  49. package/lib/context/AutoBeAgentContext.d.ts +1 -3
  50. package/lib/context/AutoBeAgentContext.js +0 -4
  51. package/lib/context/AutoBeAgentContext.js.map +1 -1
  52. package/lib/hooks/useSessionStorage.d.ts +4 -0
  53. package/lib/hooks/useSessionStorage.js +16 -0
  54. package/lib/hooks/useSessionStorage.js.map +1 -0
  55. package/lib/index.d.ts +1 -0
  56. package/lib/index.js +1 -0
  57. package/lib/index.js.map +1 -1
  58. package/lib/strategy/AutoBeAgentSessionStorageStrategy.d.ts +10 -0
  59. package/lib/strategy/AutoBeAgentSessionStorageStrategy.js +117 -0
  60. package/lib/strategy/AutoBeAgentSessionStorageStrategy.js.map +1 -0
  61. package/lib/structure/AutoBeListener.js +91 -23
  62. package/lib/structure/AutoBeListener.js.map +1 -1
  63. package/lib/structure/AutoBeListenerState.d.ts +3 -3
  64. package/lib/structure/AutoBeListenerState.js +4 -4
  65. package/lib/structure/AutoBeListenerState.js.map +1 -1
  66. package/lib/structure/IAutoBeAgentSessionStorageStrategy.js +1 -1
  67. package/lib/structure/IAutoBeAgentSessionStorageStrategy.js.map +1 -1
  68. package/lib/utils/AutoBeFileUploader.d.ts +2 -2
  69. package/lib/utils/AutoBeFileUploader.js.map +1 -1
  70. package/package.json +3 -4
  71. package/src/components/AutoBeAssistantMessageMovie.tsx +22 -22
  72. package/src/components/AutoBeChatMain.tsx +376 -376
  73. package/src/components/AutoBeChatSidebar.tsx +414 -414
  74. package/src/components/AutoBeConfigButton.tsx +83 -83
  75. package/src/components/AutoBeConfigModal.tsx +443 -443
  76. package/src/components/AutoBeStatusButton.tsx +75 -75
  77. package/src/components/AutoBeStatusModal.tsx +486 -484
  78. package/src/components/AutoBeUserMessageMovie.tsx +27 -27
  79. package/src/components/common/ActionButton.tsx +205 -205
  80. package/src/components/common/ActionButtonGroup.tsx +80 -80
  81. package/src/components/common/AutoBeConfigInput.tsx +185 -185
  82. package/src/components/common/ChatBubble.tsx +119 -119
  83. package/src/components/common/Collapsible.tsx +95 -95
  84. package/src/components/common/CompactSessionIndicator.tsx +73 -73
  85. package/src/components/common/CompactSessionList.tsx +82 -82
  86. package/src/components/common/index.ts +8 -8
  87. package/src/components/common/openai/OpenAIContent.tsx +53 -53
  88. package/src/components/common/openai/OpenAIUserAudioContent.tsx +70 -70
  89. package/src/components/common/openai/OpenAIUserFileContent.tsx +76 -76
  90. package/src/components/common/openai/OpenAIUserImageContent.tsx +34 -34
  91. package/src/components/common/openai/OpenAIUserTextContent.tsx +15 -15
  92. package/src/components/common/openai/index.ts +5 -5
  93. package/src/components/events/AutoBeCompleteEventMovie.tsx +402 -402
  94. package/src/components/events/AutoBeCorrectEventMovie.tsx +354 -368
  95. package/src/components/events/AutoBeEventGroupMovie.tsx +18 -18
  96. package/src/components/events/AutoBeEventMovie.tsx +158 -139
  97. package/src/components/events/AutoBeProgressEventMovie.tsx +217 -157
  98. package/src/components/events/AutoBeScenarioEventMovie.tsx +135 -95
  99. package/src/components/events/AutoBeStartEventMovie.tsx +82 -82
  100. package/src/components/events/AutoBeValidateEventMovie.tsx +249 -286
  101. package/src/components/events/README.md +300 -300
  102. package/src/components/events/common/CollapsibleEventGroup.tsx +211 -211
  103. package/src/components/events/common/EventCard.tsx +61 -61
  104. package/src/components/events/common/EventContent.tsx +31 -31
  105. package/src/components/events/common/EventHeader.tsx +85 -85
  106. package/src/components/events/common/EventIcon.tsx +82 -82
  107. package/src/components/events/common/ProgressBar.tsx +64 -64
  108. package/src/components/events/common/index.ts +13 -13
  109. package/src/components/events/groups/CorrectEventGroup.tsx +183 -183
  110. package/src/components/events/groups/ValidateEventGroup.tsx +143 -146
  111. package/src/components/events/groups/index.ts +8 -8
  112. package/src/components/events/index.ts +16 -16
  113. package/src/components/events/utils/eventGrouper.tsx +116 -117
  114. package/src/components/events/utils/index.ts +1 -1
  115. package/src/components/index.ts +13 -13
  116. package/src/components/upload/AutoBeChatUploadBox.tsx +425 -424
  117. package/src/components/upload/AutoBeChatUploadSendButton.tsx +66 -66
  118. package/src/components/upload/AutoBeFileUploadBox.tsx +123 -123
  119. package/src/components/upload/AutoBeUploadConfig.ts +5 -5
  120. package/src/components/upload/AutoBeVoiceRecoderButton.tsx +100 -100
  121. package/src/components/upload/index.ts +5 -5
  122. package/src/constant/color.ts +28 -28
  123. package/src/context/AutoBeAgentContext.tsx +245 -258
  124. package/src/context/AutoBeAgentSessionList.tsx +58 -58
  125. package/src/context/SearchParamsContext.tsx +49 -49
  126. package/src/hooks/index.ts +3 -3
  127. package/src/hooks/useEscapeKey.ts +24 -24
  128. package/src/hooks/useIsomorphicLayoutEffect.ts +8 -8
  129. package/src/hooks/useMediaQuery.ts +73 -73
  130. package/src/hooks/useSessionStorage.ts +10 -0
  131. package/src/icons/Receipt.tsx +74 -74
  132. package/src/index.ts +9 -8
  133. package/src/strategy/AutoBeAgentSessionStorageStrategy.ts +127 -0
  134. package/src/structure/AutoBeListener.ts +373 -304
  135. package/src/structure/AutoBeListenerState.ts +53 -53
  136. package/src/structure/IAutoBeAgentSessionStorageStrategy.ts +87 -87
  137. package/src/structure/IAutoBeEventGroup.ts +6 -6
  138. package/src/structure/index.ts +4 -4
  139. package/src/types/config.ts +44 -44
  140. package/src/types/index.ts +1 -1
  141. package/src/utils/AutoBeFileUploader.ts +279 -279
  142. package/src/utils/AutoBeVoiceRecorder.ts +95 -95
  143. package/src/utils/__tests__/crypto.test.ts +286 -286
  144. package/src/utils/__tests__/storage.test.ts +229 -229
  145. package/src/utils/crypto.ts +95 -95
  146. package/src/utils/index.ts +6 -6
  147. package/src/utils/number.ts +17 -17
  148. package/src/utils/storage.ts +96 -96
  149. package/src/utils/time.ts +14 -14
  150. package/tsconfig.json +9 -9
  151. package/vitest.config.ts +15 -15
@@ -1,8 +1,8 @@
1
- export {
2
- CorrectEventGroup,
3
- type ICorrectEventGroupProps,
4
- } from "./CorrectEventGroup";
5
- export {
6
- ValidateEventGroup,
7
- type IValidateEventGroupProps,
8
- } from "./ValidateEventGroup";
1
+ export {
2
+ CorrectEventGroup,
3
+ type ICorrectEventGroupProps,
4
+ } from "./CorrectEventGroup";
5
+ export {
6
+ ValidateEventGroup,
7
+ type IValidateEventGroupProps,
8
+ } from "./ValidateEventGroup";
@@ -1,16 +1,16 @@
1
- export { default as AutoBeStartEventMovie } from "./AutoBeStartEventMovie";
2
- export { default as AutoBeScenarioEventMovie } from "./AutoBeScenarioEventMovie";
3
- export { default as AutoBeProgressEventMovie } from "./AutoBeProgressEventMovie";
4
- export { default as AutoBeCompleteEventMovie } from "./AutoBeCompleteEventMovie";
5
- export { default as AutoBeValidateEventMovie } from "./AutoBeValidateEventMovie";
6
- export { default as AutoBeCorrectEventMovie } from "./AutoBeCorrectEventMovie";
7
- export { default as AutoBeEventMovie } from "./AutoBeEventMovie";
8
-
9
- // Common components
10
- export * from "./common";
11
-
12
- // Event groups
13
- export * from "./groups";
14
-
15
- // Utilities
16
- export * from "./utils";
1
+ export { default as AutoBeStartEventMovie } from "./AutoBeStartEventMovie";
2
+ export { default as AutoBeScenarioEventMovie } from "./AutoBeScenarioEventMovie";
3
+ export { default as AutoBeProgressEventMovie } from "./AutoBeProgressEventMovie";
4
+ export { default as AutoBeCompleteEventMovie } from "./AutoBeCompleteEventMovie";
5
+ export { default as AutoBeValidateEventMovie } from "./AutoBeValidateEventMovie";
6
+ export { default as AutoBeCorrectEventMovie } from "./AutoBeCorrectEventMovie";
7
+ export { default as AutoBeEventMovie } from "./AutoBeEventMovie";
8
+
9
+ // Common components
10
+ export * from "./common";
11
+
12
+ // Event groups
13
+ export * from "./groups";
14
+
15
+ // Utilities
16
+ export * from "./utils";
@@ -1,117 +1,116 @@
1
- import { AutoBeEvent } from "@autobe/interface";
2
- import { ReactNode } from "react";
3
-
4
- import { ValidateEventGroup } from "../groups";
5
- import { ValidateEvent } from "../groups/ValidateEventGroup";
6
-
7
- /** Configuration for event grouping */
8
- export interface IEventGrouperConfig {
9
- /** Minimum number of events to form a group (default: 2) */
10
- minGroupSize?: number;
11
- /** Whether groups should be collapsed by default (default: true) */
12
- defaultCollapsed?: boolean;
13
- /** Whether to group events at all (default: true) */
14
- enableGrouping?: boolean;
15
- }
16
-
17
- /**
18
- * Groups events by type and renders appropriate group components
19
- *
20
- * @param events Array of AutoBe events to group
21
- * @param config Configuration options for grouping
22
- * @returns Array of ReactNode components (grouped or individual)
23
- */
24
- export function groupEvents(
25
- events: AutoBeEvent[],
26
- config: IEventGrouperConfig = {},
27
- ): ReactNode[] {
28
- const {
29
- minGroupSize = 2,
30
- defaultCollapsed = true,
31
- enableGrouping = true,
32
- } = config;
33
-
34
- if (!enableGrouping) {
35
- // Return individual event components without grouping
36
- return events.map((event, index) => (
37
- <div key={`${event.type}-${index}`}>{renderIndividualEvent(event)}</div>
38
- ));
39
- }
40
-
41
- // Group events by category
42
- const groupedEvents = groupEventsByCategory(events);
43
- const components: ReactNode[] = [];
44
-
45
- // Validation Events
46
- if (groupedEvents.validate.length >= minGroupSize) {
47
- components.push(
48
- <ValidateEventGroup
49
- key="validate-group"
50
- events={groupedEvents.validate}
51
- defaultCollapsed={defaultCollapsed}
52
- />,
53
- );
54
- } else {
55
- groupedEvents.validate.forEach((event, index) => {
56
- components.push(
57
- <div key={`validate-${index}`}>{renderIndividualEvent(event)}</div>,
58
- );
59
- });
60
- }
61
-
62
- // All other events (ungrouped)
63
- groupedEvents.other.forEach((event, index) => {
64
- components.push(
65
- <div key={`other-${index}`}>{renderIndividualEvent(event)}</div>,
66
- );
67
- });
68
-
69
- return components;
70
- }
71
-
72
- /** Groups events by their category */
73
- function groupEventsByCategory(events: AutoBeEvent[]) {
74
- const grouped = {
75
- validate: [] as ValidateEvent[],
76
- other: [] as AutoBeEvent[],
77
- };
78
-
79
- events.forEach((event) => {
80
- switch (event.type) {
81
- // Validation events
82
- case "prismaValidate":
83
- case "testValidate":
84
- case "realizeValidate":
85
- case "realizeAuthorizationValidate":
86
- case "prismaInsufficient":
87
- case "interfaceOperationReview":
88
- grouped.validate.push(event);
89
- break;
90
- default:
91
- grouped.other.push(event);
92
- break;
93
- }
94
- });
95
-
96
- return grouped;
97
- }
98
-
99
- /** Renders individual event components based on event type */
100
- function renderIndividualEvent(event: AutoBeEvent): ReactNode {
101
- // This would import and use the actual event components
102
- // For now, returning a placeholder
103
- return (
104
- <div
105
- style={{
106
- padding: "1rem",
107
- border: "1px solid #e2e8f0",
108
- borderRadius: "0.5rem",
109
- marginBottom: "0.5rem",
110
- }}
111
- >
112
- <strong>{event.type}</strong> - {event.created_at}
113
- </div>
114
- );
115
- }
116
-
117
- export default groupEvents;
1
+ import { AutoBeEvent } from "@autobe/interface";
2
+ import { ReactNode } from "react";
3
+
4
+ import { ValidateEventGroup } from "../groups";
5
+ import { ValidateEvent } from "../groups/ValidateEventGroup";
6
+
7
+ /** Configuration for event grouping */
8
+ export interface IEventGrouperConfig {
9
+ /** Minimum number of events to form a group (default: 2) */
10
+ minGroupSize?: number;
11
+ /** Whether groups should be collapsed by default (default: true) */
12
+ defaultCollapsed?: boolean;
13
+ /** Whether to group events at all (default: true) */
14
+ enableGrouping?: boolean;
15
+ }
16
+
17
+ /**
18
+ * Groups events by type and renders appropriate group components
19
+ *
20
+ * @param events Array of AutoBe events to group
21
+ * @param config Configuration options for grouping
22
+ * @returns Array of ReactNode components (grouped or individual)
23
+ */
24
+ export function groupEvents(
25
+ events: AutoBeEvent[],
26
+ config: IEventGrouperConfig = {},
27
+ ): ReactNode[] {
28
+ const {
29
+ minGroupSize = 2,
30
+ defaultCollapsed = true,
31
+ enableGrouping = true,
32
+ } = config;
33
+
34
+ if (!enableGrouping) {
35
+ // Return individual event components without grouping
36
+ return events.map((event, index) => (
37
+ <div key={`${event.type}-${index}`}>{renderIndividualEvent(event)}</div>
38
+ ));
39
+ }
40
+
41
+ // Group events by category
42
+ const groupedEvents = groupEventsByCategory(events);
43
+ const components: ReactNode[] = [];
44
+
45
+ // Validation Events
46
+ if (groupedEvents.validate.length >= minGroupSize) {
47
+ components.push(
48
+ <ValidateEventGroup
49
+ key="validate-group"
50
+ events={groupedEvents.validate}
51
+ defaultCollapsed={defaultCollapsed}
52
+ />,
53
+ );
54
+ } else {
55
+ groupedEvents.validate.forEach((event, index) => {
56
+ components.push(
57
+ <div key={`validate-${index}`}>{renderIndividualEvent(event)}</div>,
58
+ );
59
+ });
60
+ }
61
+
62
+ // All other events (ungrouped)
63
+ groupedEvents.other.forEach((event, index) => {
64
+ components.push(
65
+ <div key={`other-${index}`}>{renderIndividualEvent(event)}</div>,
66
+ );
67
+ });
68
+
69
+ return components;
70
+ }
71
+
72
+ /** Groups events by their category */
73
+ function groupEventsByCategory(events: AutoBeEvent[]) {
74
+ const grouped = {
75
+ validate: [] as ValidateEvent[],
76
+ other: [] as AutoBeEvent[],
77
+ };
78
+
79
+ events.forEach((event) => {
80
+ switch (event.type) {
81
+ // Validation events
82
+ case "databaseValidate":
83
+ case "testValidate":
84
+ case "realizeValidate":
85
+ case "realizeAuthorizationValidate":
86
+ case "interfaceOperationReview":
87
+ grouped.validate.push(event);
88
+ break;
89
+ default:
90
+ grouped.other.push(event);
91
+ break;
92
+ }
93
+ });
94
+
95
+ return grouped;
96
+ }
97
+
98
+ /** Renders individual event components based on event type */
99
+ function renderIndividualEvent(event: AutoBeEvent): ReactNode {
100
+ // This would import and use the actual event components
101
+ // For now, returning a placeholder
102
+ return (
103
+ <div
104
+ style={{
105
+ padding: "1rem",
106
+ border: "1px solid #e2e8f0",
107
+ borderRadius: "0.5rem",
108
+ marginBottom: "0.5rem",
109
+ }}
110
+ >
111
+ <strong>{event.type}</strong> - {event.created_at}
112
+ </div>
113
+ );
114
+ }
115
+
116
+ export default groupEvents;
@@ -1 +1 @@
1
- export { groupEvents, type IEventGrouperConfig } from "./eventGrouper";
1
+ export { groupEvents, type IEventGrouperConfig } from "./eventGrouper";
@@ -1,13 +1,13 @@
1
- export * from "./AutoBeConfigButton";
2
- export * from "./AutoBeConfigModal";
3
- export { createAutoBeConfigFields } from "./AutoBeConfigModal";
4
- export type { AutoBeConfigKey } from "./AutoBeConfigModal";
5
- export * from "./AutoBeStatusButton";
6
- export * from "./AutoBeStatusModal";
7
- export * from "./AutoBeChatMain";
8
- export * from "./AutoBeChatSidebar";
9
- export * from "./AutoBeUserMessageMovie";
10
- export * from "./AutoBeAssistantMessageMovie";
11
- export * from "./common";
12
- export * from "./events";
13
- export * from "./upload";
1
+ export * from "./AutoBeConfigButton";
2
+ export * from "./AutoBeConfigModal";
3
+ export { createAutoBeConfigFields } from "./AutoBeConfigModal";
4
+ export type { AutoBeConfigKey } from "./AutoBeConfigModal";
5
+ export * from "./AutoBeStatusButton";
6
+ export * from "./AutoBeStatusModal";
7
+ export * from "./AutoBeChatMain";
8
+ export * from "./AutoBeChatSidebar";
9
+ export * from "./AutoBeUserMessageMovie";
10
+ export * from "./AutoBeAssistantMessageMovie";
11
+ export * from "./common";
12
+ export * from "./events";
13
+ export * from "./upload";