@autobe/ui 0.30.0-dev.20260315 → 0.30.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 (86) hide show
  1. package/LICENSE +661 -661
  2. package/lib/components/AutoBeChatMain.js +5 -5
  3. package/lib/components/AutoBeConfigModal.js +9 -9
  4. package/package.json +2 -2
  5. package/src/components/AutoBeAssistantMessageMovie.tsx +22 -22
  6. package/src/components/AutoBeChatMain.tsx +376 -376
  7. package/src/components/AutoBeChatSidebar.tsx +414 -414
  8. package/src/components/AutoBeConfigButton.tsx +83 -83
  9. package/src/components/AutoBeConfigModal.tsx +443 -443
  10. package/src/components/AutoBeStatusButton.tsx +75 -75
  11. package/src/components/AutoBeStatusModal.tsx +486 -486
  12. package/src/components/AutoBeUserMessageMovie.tsx +27 -27
  13. package/src/components/common/ActionButton.tsx +205 -205
  14. package/src/components/common/ActionButtonGroup.tsx +80 -80
  15. package/src/components/common/AutoBeConfigInput.tsx +185 -185
  16. package/src/components/common/ChatBubble.tsx +119 -119
  17. package/src/components/common/Collapsible.tsx +95 -95
  18. package/src/components/common/CompactSessionIndicator.tsx +73 -73
  19. package/src/components/common/CompactSessionList.tsx +82 -82
  20. package/src/components/common/index.ts +8 -8
  21. package/src/components/common/openai/OpenAIContent.tsx +53 -53
  22. package/src/components/common/openai/OpenAIUserAudioContent.tsx +70 -70
  23. package/src/components/common/openai/OpenAIUserFileContent.tsx +76 -76
  24. package/src/components/common/openai/OpenAIUserImageContent.tsx +34 -34
  25. package/src/components/common/openai/OpenAIUserTextContent.tsx +15 -15
  26. package/src/components/common/openai/index.ts +5 -5
  27. package/src/components/events/AutoBeCompleteEventMovie.tsx +402 -402
  28. package/src/components/events/AutoBeCorrectEventMovie.tsx +354 -354
  29. package/src/components/events/AutoBeEventGroupMovie.tsx +18 -18
  30. package/src/components/events/AutoBeEventMovie.tsx +158 -158
  31. package/src/components/events/AutoBeProgressEventMovie.tsx +217 -217
  32. package/src/components/events/AutoBeScenarioEventMovie.tsx +135 -135
  33. package/src/components/events/AutoBeStartEventMovie.tsx +82 -82
  34. package/src/components/events/AutoBeValidateEventMovie.tsx +249 -249
  35. package/src/components/events/README.md +300 -300
  36. package/src/components/events/common/CollapsibleEventGroup.tsx +211 -211
  37. package/src/components/events/common/EventCard.tsx +61 -61
  38. package/src/components/events/common/EventContent.tsx +31 -31
  39. package/src/components/events/common/EventHeader.tsx +85 -85
  40. package/src/components/events/common/EventIcon.tsx +82 -82
  41. package/src/components/events/common/ProgressBar.tsx +64 -64
  42. package/src/components/events/common/index.ts +13 -13
  43. package/src/components/events/groups/CorrectEventGroup.tsx +183 -183
  44. package/src/components/events/groups/ValidateEventGroup.tsx +143 -143
  45. package/src/components/events/groups/index.ts +8 -8
  46. package/src/components/events/index.ts +16 -16
  47. package/src/components/events/utils/eventGrouper.tsx +116 -116
  48. package/src/components/events/utils/index.ts +1 -1
  49. package/src/components/index.ts +13 -13
  50. package/src/components/upload/AutoBeChatUploadBox.tsx +425 -425
  51. package/src/components/upload/AutoBeChatUploadSendButton.tsx +66 -66
  52. package/src/components/upload/AutoBeFileUploadBox.tsx +123 -123
  53. package/src/components/upload/AutoBeUploadConfig.ts +5 -5
  54. package/src/components/upload/AutoBeVoiceRecoderButton.tsx +100 -100
  55. package/src/components/upload/index.ts +5 -5
  56. package/src/constant/color.ts +28 -28
  57. package/src/context/AutoBeAgentContext.tsx +245 -245
  58. package/src/context/AutoBeAgentSessionList.tsx +58 -58
  59. package/src/context/SearchParamsContext.tsx +49 -49
  60. package/src/hooks/index.ts +3 -3
  61. package/src/hooks/useEscapeKey.ts +24 -24
  62. package/src/hooks/useIsomorphicLayoutEffect.ts +8 -8
  63. package/src/hooks/useMediaQuery.ts +73 -73
  64. package/src/hooks/useSessionStorage.ts +10 -10
  65. package/src/icons/Receipt.tsx +74 -74
  66. package/src/index.ts +9 -9
  67. package/src/strategy/AutoBeAgentSessionStorageStrategy.ts +127 -127
  68. package/src/structure/AutoBeListener.ts +373 -373
  69. package/src/structure/AutoBeListenerState.ts +53 -53
  70. package/src/structure/IAutoBeAgentSessionStorageStrategy.ts +87 -87
  71. package/src/structure/IAutoBeEventGroup.ts +6 -6
  72. package/src/structure/index.ts +4 -4
  73. package/src/types/config.ts +44 -44
  74. package/src/types/index.ts +1 -1
  75. package/src/utils/AutoBeFileUploader.ts +279 -279
  76. package/src/utils/AutoBeVoiceRecorder.ts +95 -95
  77. package/src/utils/__tests__/crypto.test.ts +286 -286
  78. package/src/utils/__tests__/storage.test.ts +229 -229
  79. package/src/utils/crypto.ts +95 -95
  80. package/src/utils/index.ts +6 -6
  81. package/src/utils/number.ts +17 -17
  82. package/src/utils/storage.ts +96 -96
  83. package/src/utils/time.ts +14 -14
  84. package/tsconfig.json +9 -9
  85. package/vitest.config.ts +15 -15
  86. package/README.md +0 -261
@@ -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,116 +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 "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
+ 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";