@next-bricks/ai-portal 0.55.0 → 0.55.1
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.
- package/dist/bricks.json +21 -21
- package/dist/chunks/1080.c0cb398b.js +2 -0
- package/dist/chunks/1080.c0cb398b.js.map +1 -0
- package/dist/chunks/{2084.0e9751e7.js → 2084.778e8126.js} +3 -3
- package/dist/chunks/2084.778e8126.js.map +1 -0
- package/dist/chunks/3227.77ba4968.js +2 -0
- package/dist/chunks/3227.77ba4968.js.map +1 -0
- package/dist/chunks/8717.462ca5c9.js +2 -0
- package/dist/chunks/8717.462ca5c9.js.map +1 -0
- package/dist/chunks/{main.6b7402db.js → main.9f2b6ec7.js} +2 -2
- package/dist/chunks/{main.6b7402db.js.map → main.9f2b6ec7.js.map} +1 -1
- package/dist/examples.json +14 -14
- package/dist/{index.14c08956.js → index.fe56261d.js} +2 -2
- package/dist/{index.14c08956.js.map → index.fe56261d.js.map} +1 -1
- package/dist/manifest.json +139 -139
- package/dist/types.json +188 -84
- package/dist-types/chat-stream/UserMessage/UserMessage.d.ts +3 -1
- package/dist-types/chat-stream/interfaces.d.ts +2 -1
- package/dist-types/cruise-canvas/NodeRequirement/NodeRequirement.d.ts +3 -1
- package/dist-types/cruise-canvas/interfaces.d.ts +2 -1
- package/dist-types/shared/ReadableCommand/ReadableCommand.d.ts +7 -0
- package/dist-types/shared/interfaces.d.ts +3 -0
- package/package.json +2 -2
- package/dist/chunks/2084.0e9751e7.js.map +0 -1
- package/dist/chunks/3227.689d8678.js +0 -2
- package/dist/chunks/3227.689d8678.js.map +0 -1
- package/dist/chunks/6201.fa3b6e24.js +0 -2
- package/dist/chunks/6201.fa3b6e24.js.map +0 -1
- package/dist/chunks/8717.1e5ad2b1.js +0 -2
- package/dist/chunks/8717.1e5ad2b1.js.map +0 -1
- /package/dist/chunks/{2084.0e9751e7.js.LICENSE.txt → 2084.778e8126.js.LICENSE.txt} +0 -0
package/dist/types.json
CHANGED
|
@@ -1,17 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"ai-portal.home-container": {
|
|
3
|
-
"properties": [
|
|
4
|
-
{
|
|
5
|
-
"name": "sticky",
|
|
6
|
-
"annotation": {
|
|
7
|
-
"type": "keyword",
|
|
8
|
-
"value": "boolean"
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
],
|
|
12
|
-
"events": [],
|
|
13
|
-
"methods": []
|
|
14
|
-
},
|
|
15
2
|
"ai-portal.stat-with-mini-chart": {
|
|
16
3
|
"properties": [
|
|
17
4
|
{
|
|
@@ -116,6 +103,19 @@
|
|
|
116
103
|
"events": [],
|
|
117
104
|
"methods": []
|
|
118
105
|
},
|
|
106
|
+
"ai-portal.home-container": {
|
|
107
|
+
"properties": [
|
|
108
|
+
{
|
|
109
|
+
"name": "sticky",
|
|
110
|
+
"annotation": {
|
|
111
|
+
"type": "keyword",
|
|
112
|
+
"value": "boolean"
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
],
|
|
116
|
+
"events": [],
|
|
117
|
+
"methods": []
|
|
118
|
+
},
|
|
119
119
|
"ai-portal.icon-button": {
|
|
120
120
|
"properties": [
|
|
121
121
|
{
|
|
@@ -365,6 +365,19 @@
|
|
|
365
365
|
},
|
|
366
366
|
"computed": false
|
|
367
367
|
},
|
|
368
|
+
{
|
|
369
|
+
"type": "propertySignature",
|
|
370
|
+
"key": {
|
|
371
|
+
"type": "identifier",
|
|
372
|
+
"name": "spaceName"
|
|
373
|
+
},
|
|
374
|
+
"annotation": {
|
|
375
|
+
"type": "keyword",
|
|
376
|
+
"value": "string"
|
|
377
|
+
},
|
|
378
|
+
"optional": true,
|
|
379
|
+
"computed": false
|
|
380
|
+
},
|
|
368
381
|
{
|
|
369
382
|
"type": "propertySignature",
|
|
370
383
|
"key": {
|
|
@@ -377,6 +390,19 @@
|
|
|
377
390
|
},
|
|
378
391
|
"optional": true,
|
|
379
392
|
"computed": false
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
"type": "propertySignature",
|
|
396
|
+
"key": {
|
|
397
|
+
"type": "identifier",
|
|
398
|
+
"name": "flowName"
|
|
399
|
+
},
|
|
400
|
+
"annotation": {
|
|
401
|
+
"type": "keyword",
|
|
402
|
+
"value": "string"
|
|
403
|
+
},
|
|
404
|
+
"optional": true,
|
|
405
|
+
"computed": false
|
|
380
406
|
}
|
|
381
407
|
]
|
|
382
408
|
},
|
|
@@ -502,6 +528,19 @@
|
|
|
502
528
|
},
|
|
503
529
|
"computed": false
|
|
504
530
|
},
|
|
531
|
+
{
|
|
532
|
+
"type": "propertySignature",
|
|
533
|
+
"key": {
|
|
534
|
+
"type": "identifier",
|
|
535
|
+
"name": "spaceName"
|
|
536
|
+
},
|
|
537
|
+
"annotation": {
|
|
538
|
+
"type": "keyword",
|
|
539
|
+
"value": "string"
|
|
540
|
+
},
|
|
541
|
+
"optional": true,
|
|
542
|
+
"computed": false
|
|
543
|
+
},
|
|
505
544
|
{
|
|
506
545
|
"type": "propertySignature",
|
|
507
546
|
"key": {
|
|
@@ -514,6 +553,19 @@
|
|
|
514
553
|
},
|
|
515
554
|
"optional": true,
|
|
516
555
|
"computed": false
|
|
556
|
+
},
|
|
557
|
+
{
|
|
558
|
+
"type": "propertySignature",
|
|
559
|
+
"key": {
|
|
560
|
+
"type": "identifier",
|
|
561
|
+
"name": "flowName"
|
|
562
|
+
},
|
|
563
|
+
"annotation": {
|
|
564
|
+
"type": "keyword",
|
|
565
|
+
"value": "string"
|
|
566
|
+
},
|
|
567
|
+
"optional": true,
|
|
568
|
+
"computed": false
|
|
517
569
|
}
|
|
518
570
|
]
|
|
519
571
|
},
|
|
@@ -598,6 +650,77 @@
|
|
|
598
650
|
}
|
|
599
651
|
]
|
|
600
652
|
},
|
|
653
|
+
"ai-portal.tab-list": {
|
|
654
|
+
"properties": [
|
|
655
|
+
{
|
|
656
|
+
"name": "tabs",
|
|
657
|
+
"annotation": {
|
|
658
|
+
"type": "array",
|
|
659
|
+
"elementType": {
|
|
660
|
+
"type": "reference",
|
|
661
|
+
"typeName": {
|
|
662
|
+
"type": "identifier",
|
|
663
|
+
"name": "Tab"
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
},
|
|
668
|
+
{
|
|
669
|
+
"name": "activeTab",
|
|
670
|
+
"annotation": {
|
|
671
|
+
"type": "keyword",
|
|
672
|
+
"value": "string"
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
],
|
|
676
|
+
"events": [
|
|
677
|
+
{
|
|
678
|
+
"name": "tab.click",
|
|
679
|
+
"detail": {
|
|
680
|
+
"annotation": {
|
|
681
|
+
"type": "reference",
|
|
682
|
+
"typeName": {
|
|
683
|
+
"type": "identifier",
|
|
684
|
+
"name": "Tab"
|
|
685
|
+
}
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
],
|
|
690
|
+
"methods": [],
|
|
691
|
+
"types": [
|
|
692
|
+
{
|
|
693
|
+
"type": "interface",
|
|
694
|
+
"name": "Tab",
|
|
695
|
+
"body": [
|
|
696
|
+
{
|
|
697
|
+
"type": "propertySignature",
|
|
698
|
+
"key": {
|
|
699
|
+
"type": "identifier",
|
|
700
|
+
"name": "id"
|
|
701
|
+
},
|
|
702
|
+
"annotation": {
|
|
703
|
+
"type": "keyword",
|
|
704
|
+
"value": "string"
|
|
705
|
+
},
|
|
706
|
+
"computed": false
|
|
707
|
+
},
|
|
708
|
+
{
|
|
709
|
+
"type": "propertySignature",
|
|
710
|
+
"key": {
|
|
711
|
+
"type": "identifier",
|
|
712
|
+
"name": "label"
|
|
713
|
+
},
|
|
714
|
+
"annotation": {
|
|
715
|
+
"type": "keyword",
|
|
716
|
+
"value": "string"
|
|
717
|
+
},
|
|
718
|
+
"computed": false
|
|
719
|
+
}
|
|
720
|
+
]
|
|
721
|
+
}
|
|
722
|
+
]
|
|
723
|
+
},
|
|
601
724
|
"ai-portal.page-container": {
|
|
602
725
|
"properties": [
|
|
603
726
|
{
|
|
@@ -706,77 +829,6 @@
|
|
|
706
829
|
}
|
|
707
830
|
]
|
|
708
831
|
},
|
|
709
|
-
"ai-portal.tab-list": {
|
|
710
|
-
"properties": [
|
|
711
|
-
{
|
|
712
|
-
"name": "tabs",
|
|
713
|
-
"annotation": {
|
|
714
|
-
"type": "array",
|
|
715
|
-
"elementType": {
|
|
716
|
-
"type": "reference",
|
|
717
|
-
"typeName": {
|
|
718
|
-
"type": "identifier",
|
|
719
|
-
"name": "Tab"
|
|
720
|
-
}
|
|
721
|
-
}
|
|
722
|
-
}
|
|
723
|
-
},
|
|
724
|
-
{
|
|
725
|
-
"name": "activeTab",
|
|
726
|
-
"annotation": {
|
|
727
|
-
"type": "keyword",
|
|
728
|
-
"value": "string"
|
|
729
|
-
}
|
|
730
|
-
}
|
|
731
|
-
],
|
|
732
|
-
"events": [
|
|
733
|
-
{
|
|
734
|
-
"name": "tab.click",
|
|
735
|
-
"detail": {
|
|
736
|
-
"annotation": {
|
|
737
|
-
"type": "reference",
|
|
738
|
-
"typeName": {
|
|
739
|
-
"type": "identifier",
|
|
740
|
-
"name": "Tab"
|
|
741
|
-
}
|
|
742
|
-
}
|
|
743
|
-
}
|
|
744
|
-
}
|
|
745
|
-
],
|
|
746
|
-
"methods": [],
|
|
747
|
-
"types": [
|
|
748
|
-
{
|
|
749
|
-
"type": "interface",
|
|
750
|
-
"name": "Tab",
|
|
751
|
-
"body": [
|
|
752
|
-
{
|
|
753
|
-
"type": "propertySignature",
|
|
754
|
-
"key": {
|
|
755
|
-
"type": "identifier",
|
|
756
|
-
"name": "id"
|
|
757
|
-
},
|
|
758
|
-
"annotation": {
|
|
759
|
-
"type": "keyword",
|
|
760
|
-
"value": "string"
|
|
761
|
-
},
|
|
762
|
-
"computed": false
|
|
763
|
-
},
|
|
764
|
-
{
|
|
765
|
-
"type": "propertySignature",
|
|
766
|
-
"key": {
|
|
767
|
-
"type": "identifier",
|
|
768
|
-
"name": "label"
|
|
769
|
-
},
|
|
770
|
-
"annotation": {
|
|
771
|
-
"type": "keyword",
|
|
772
|
-
"value": "string"
|
|
773
|
-
},
|
|
774
|
-
"computed": false
|
|
775
|
-
}
|
|
776
|
-
]
|
|
777
|
-
}
|
|
778
|
-
]
|
|
779
|
-
},
|
|
780
832
|
"ai-portal.elevo-logo": {
|
|
781
833
|
"properties": [],
|
|
782
834
|
"events": [],
|
|
@@ -5069,6 +5121,19 @@
|
|
|
5069
5121
|
},
|
|
5070
5122
|
"computed": false
|
|
5071
5123
|
},
|
|
5124
|
+
{
|
|
5125
|
+
"type": "propertySignature",
|
|
5126
|
+
"key": {
|
|
5127
|
+
"type": "identifier",
|
|
5128
|
+
"name": "spaceName"
|
|
5129
|
+
},
|
|
5130
|
+
"annotation": {
|
|
5131
|
+
"type": "keyword",
|
|
5132
|
+
"value": "string"
|
|
5133
|
+
},
|
|
5134
|
+
"optional": true,
|
|
5135
|
+
"computed": false
|
|
5136
|
+
},
|
|
5072
5137
|
{
|
|
5073
5138
|
"type": "propertySignature",
|
|
5074
5139
|
"key": {
|
|
@@ -5081,6 +5146,19 @@
|
|
|
5081
5146
|
},
|
|
5082
5147
|
"optional": true,
|
|
5083
5148
|
"computed": false
|
|
5149
|
+
},
|
|
5150
|
+
{
|
|
5151
|
+
"type": "propertySignature",
|
|
5152
|
+
"key": {
|
|
5153
|
+
"type": "identifier",
|
|
5154
|
+
"name": "flowName"
|
|
5155
|
+
},
|
|
5156
|
+
"annotation": {
|
|
5157
|
+
"type": "keyword",
|
|
5158
|
+
"value": "string"
|
|
5159
|
+
},
|
|
5160
|
+
"optional": true,
|
|
5161
|
+
"computed": false
|
|
5084
5162
|
}
|
|
5085
5163
|
]
|
|
5086
5164
|
},
|
|
@@ -5602,6 +5680,19 @@
|
|
|
5602
5680
|
},
|
|
5603
5681
|
"computed": false
|
|
5604
5682
|
},
|
|
5683
|
+
{
|
|
5684
|
+
"type": "propertySignature",
|
|
5685
|
+
"key": {
|
|
5686
|
+
"type": "identifier",
|
|
5687
|
+
"name": "spaceName"
|
|
5688
|
+
},
|
|
5689
|
+
"annotation": {
|
|
5690
|
+
"type": "keyword",
|
|
5691
|
+
"value": "string"
|
|
5692
|
+
},
|
|
5693
|
+
"optional": true,
|
|
5694
|
+
"computed": false
|
|
5695
|
+
},
|
|
5605
5696
|
{
|
|
5606
5697
|
"type": "propertySignature",
|
|
5607
5698
|
"key": {
|
|
@@ -5614,6 +5705,19 @@
|
|
|
5614
5705
|
},
|
|
5615
5706
|
"optional": true,
|
|
5616
5707
|
"computed": false
|
|
5708
|
+
},
|
|
5709
|
+
{
|
|
5710
|
+
"type": "propertySignature",
|
|
5711
|
+
"key": {
|
|
5712
|
+
"type": "identifier",
|
|
5713
|
+
"name": "flowName"
|
|
5714
|
+
},
|
|
5715
|
+
"annotation": {
|
|
5716
|
+
"type": "keyword",
|
|
5717
|
+
"value": "string"
|
|
5718
|
+
},
|
|
5719
|
+
"optional": true,
|
|
5720
|
+
"computed": false
|
|
5617
5721
|
}
|
|
5618
5722
|
]
|
|
5619
5723
|
},
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import type { CommandPayload } from "../../shared/interfaces";
|
|
2
3
|
export interface UserMessageProps {
|
|
3
4
|
content: string;
|
|
5
|
+
cmd?: CommandPayload;
|
|
4
6
|
}
|
|
5
|
-
export declare function UserMessage({ content }: UserMessageProps): React.JSX.Element;
|
|
7
|
+
export declare function UserMessage({ content, cmd }: UserMessageProps): React.JSX.Element;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { Job } from "../shared/interfaces.js";
|
|
1
|
+
import type { CommandPayload, Job } from "../shared/interfaces.js";
|
|
2
2
|
export type ChatMessage = MessageFromUser | MessageFromAssistant;
|
|
3
3
|
export interface MessageFromUser {
|
|
4
4
|
role: "user";
|
|
5
5
|
content: string;
|
|
6
|
+
cmd?: CommandPayload;
|
|
6
7
|
}
|
|
7
8
|
export interface MessageFromAssistant {
|
|
8
9
|
role: "assistant";
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import type { CommandPayload } from "../../shared/interfaces";
|
|
1
2
|
export interface NodeRequirementProps {
|
|
2
3
|
username?: string;
|
|
3
4
|
content?: string;
|
|
4
5
|
startTime?: number;
|
|
5
6
|
active?: boolean;
|
|
7
|
+
cmd?: CommandPayload;
|
|
6
8
|
}
|
|
7
|
-
export declare function NodeRequirement({ username, content, startTime, active, }: NodeRequirementProps): JSX.Element;
|
|
9
|
+
export declare function NodeRequirement({ username, content, startTime, active, cmd, }: NodeRequirementProps): JSX.Element;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { JSONSchema } from "./json-schema";
|
|
2
|
-
import type { GeneratedView, Job, JobState } from "../shared/interfaces";
|
|
2
|
+
import type { CommandPayload, GeneratedView, Job, JobState } from "../shared/interfaces";
|
|
3
3
|
export type RangeTuple = [min: number, max: number];
|
|
4
4
|
export type SizeTuple = [width: number, height: number];
|
|
5
5
|
export interface NodePosition {
|
|
@@ -16,6 +16,7 @@ export interface RequirementGraphNode extends BaseGraphNode {
|
|
|
16
16
|
type: "requirement";
|
|
17
17
|
content: string;
|
|
18
18
|
username?: string;
|
|
19
|
+
cmd?: CommandPayload;
|
|
19
20
|
}
|
|
20
21
|
export interface LoadingGraphNode extends BaseGraphNode {
|
|
21
22
|
type: "loading";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { CommandPayload } from "../interfaces";
|
|
3
|
+
export interface ReadableCommandProps {
|
|
4
|
+
cmd: CommandPayload;
|
|
5
|
+
size?: "medium" | "small";
|
|
6
|
+
}
|
|
7
|
+
export declare function ReadableCommand({ cmd, size }: ReadableCommandProps): React.JSX.Element;
|
|
@@ -40,6 +40,7 @@ export interface Job {
|
|
|
40
40
|
humanAction?: string;
|
|
41
41
|
aiEmployeeId?: string;
|
|
42
42
|
username?: string;
|
|
43
|
+
cmd?: CommandPayload;
|
|
43
44
|
}
|
|
44
45
|
export type HumanAction = HumanActionConfirm | HumanActionSelect;
|
|
45
46
|
export interface HumanActionConfirm {
|
|
@@ -139,6 +140,8 @@ export interface CommandPayloadServiceFlowStarting {
|
|
|
139
140
|
type: "serviceFlowStarting";
|
|
140
141
|
serviceFlowStarting: {
|
|
141
142
|
spaceInstanceId: string;
|
|
143
|
+
spaceName?: string;
|
|
142
144
|
flowInstanceId?: string;
|
|
145
|
+
flowName?: string;
|
|
143
146
|
};
|
|
144
147
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-bricks/ai-portal",
|
|
3
|
-
"version": "0.55.
|
|
3
|
+
"version": "0.55.1",
|
|
4
4
|
"homepage": "https://github.com/easyops-cn/next-advanced-bricks/tree/master/bricks/ai-portal",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"@next-bricks/presentational": "*",
|
|
48
48
|
"@next-bricks/vs": "*"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "dcc953bab421b19595f25a36abd5ff30d04aa819"
|
|
51
51
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/2084.0e9751e7.js","mappings":"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","sources":["webpack:///./src/elevo-sidebar/i18n.ts","webpack:///./src/elevo-sidebar/styles.shadow.css","webpack:///./src/elevo-sidebar/bricks.ts","webpack:///../../node_modules/@next-api-sdk/llm-sdk/dist/esm/api/llm/elevo/getElevoProjects.js","webpack:///../../node_modules/@next-api-sdk/llm-sdk/dist/esm/api/llm/elevo/listElevoConversations.js","webpack:///./src/elevo-sidebar/ChatHistory.tsx","webpack:///./src/elevo-sidebar/NavLink.tsx"],"sourcesContent":["import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n NEW_CHAT = \"NEW_CHAT\",\n LOGOUT = \"LOGOUT\",\n TODAY = \"TODAY\",\n YESTERDAY = \"YESTERDAY\",\n PREVIOUS_7_DAYS = \"PREVIOUS_7_DAYS\",\n PREVIOUS_30_DAYS = \"PREVIOUS_30_DAYS\",\n SWITCH_LANGUAGE = \"SWITCH_LANGUAGE\",\n MY = \"MY\",\n PROJECTS = \"PROJECTS\",\n HISTORY = \"HISTORY\",\n CREATE_PROJECT = \"CREATE_PROJECT\",\n MOVE_TO_PROJECT = \"MOVE_TO_PROJECT\",\n UNTITLED = \"UNTITLED\",\n UNNAMED = \"UNNAMED\",\n}\n\nconst en: Locale = {\n [K.NEW_CHAT]: \"New chat\",\n [K.LOGOUT]: \"Logout\",\n [K.TODAY]: \"Today\",\n [K.YESTERDAY]: \"Yesterday\",\n [K.PREVIOUS_7_DAYS]: \"Previous 7 days\",\n [K.PREVIOUS_30_DAYS]: \"Previous 30 days\",\n [K.SWITCH_LANGUAGE]: \"中文\",\n [K.MY]: \"My\",\n [K.PROJECTS]: \"Projects\",\n [K.HISTORY]: \"Chats\",\n [K.CREATE_PROJECT]: \"Create project\",\n [K.MOVE_TO_PROJECT]: \"Move to project\",\n [K.UNTITLED]: \"Untitled\",\n [K.UNNAMED]: \"Unnamed\",\n};\n\nconst zh: Locale = {\n [K.NEW_CHAT]: \"新对话\",\n [K.LOGOUT]: \"登出\",\n [K.TODAY]: \"今天\",\n [K.YESTERDAY]: \"昨天\",\n [K.PREVIOUS_7_DAYS]: \"过去7天\",\n [K.PREVIOUS_30_DAYS]: \"过去30天\",\n [K.SWITCH_LANGUAGE]: \"English\",\n [K.MY]: \"我的\",\n [K.PROJECTS]: \"项目\",\n [K.HISTORY]: \"对话\",\n [K.CREATE_PROJECT]: \"创建项目\",\n [K.MOVE_TO_PROJECT]: \"移动到项目\",\n [K.UNTITLED]: \"无标题\",\n [K.UNNAMED]: \"未命名\",\n};\n\nexport const NS = \"bricks/ai-portal/elevo-sidebar\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.sidebar{position:relative;z-index:2;width:260px;height:100%;background:rgba(246,247,249,0.5);border:1px solid rgba(255,255,255,0.3);border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:23px 11px 0;display:flex;flex-direction:column;transition:transform 0.3s ease-in-out}.logo-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px;margin-left:4px}.logo-link::part(link){display:block}.logo{vertical-align:middle}.new-chat::part(link){display:flex;gap:0;align-items:center;color:var(--elevo-color-brand);font-size:14px;text-align:left;cursor:pointer}.sidebar .new-chat::part(link){background:#f0f4ff;border-radius:8px;border:1px solid #c9d7ff;padding:9px 13px;font-weight:500;margin-bottom:16px}.sidebar .new-chat::part(link):hover{background:rgba(201,215,255,0.5)}.new-chat-icon{font-size:16px;margin-right:5px}.footer{border-top:1px solid rgba(0,0,0,0.04);padding:9px 12px;margin:0 -12px}.dropdown{display:block}.account{background:none;border:none;border-radius:8px;padding:6px 10px;display:block;width:100%;text-align:left;cursor:pointer}.account:hover{background:rgba(0,0,0,0.04)}.alternative{position:fixed;top:12px;left:8px;padding:6px 10px 6px 8px;display:flex;align-items:center;opacity:0;z-index:2;transition:opacity 0.2s ease-in-out;background:rgba(255,255,255,0);border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.alternative .new-chat::part(link){padding:4px;margin-left:16px;font-size:12px}.alternative .new-chat::part(link):hover{color:#7891ff}.alternative .new-chat::part(link):active{color:#0911b3}.container{width:270px;padding:10px 0 10px 10px;height:100%;transition:width 0.3s ease-in-out,padding 0.3s ease-in-out}.container.collapsed{width:0;padding:10px 0;overflow:visible}.container.collapsed .sidebar{transform:translateX(-100%)}.container.collapsed .alternative{opacity:1}:host([behavior=\"drawer\"]){z-index:2;width:0}:host(:not([behavior=\"drawer\"])) .alternative .new-chat{display:none}.mask{position:fixed;top:0;right:0;bottom:0;left:0}.links{border-bottom:1px solid rgba(0,0,0,0.06);padding-bottom:16px;margin-bottom:16px}.link{display:block}.link + .link{margin-top:4px}.link::part(link){display:flex;gap:0;align-items:center;padding:7px 10px;border-radius:8px;color:#000}.link.active::part(link),.link::part(link):hover{background:rgba(0,0,0,0.04)}.link .icon{font-size:16px;margin-right:10px}.link .title{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.history{flex:1;min-height:0;overflow-y:auto;margin:0 -12px;padding:0 12px}.history ul{list-style:none;margin:0;padding:0}.history .section + .section{margin-top:14px}.history .section-title{display:flex;align-items:center;justify-content:space-between;height:30px;margin-bottom:6px;padding:0 8px;position:sticky;top:0}.history .section-title.sticky::before{content:\"\";position:absolute;top:0;right:0;bottom:0;left:0;background-color:rgb(229,228,234);border-radius:8px;z-index:-1}.history .section-label{display:flex;align-items:center;height:24px;padding:0 8px;margin-left:-8px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;font-size:12px;color:#8c8c8c;border-radius:8px}.history .section-label eo-icon{vertical-align:middle;margin-left:6px;transition:transform 0.2s ease-in-out}.history .section-label:hover{background:rgba(0,0,0,0.04)}.history .collapsed > ul{display:none}.history .collapsed .section-label eo-icon{transform:rotate(-90deg)}.history .error,.history .loading{display:flex;align-items:center;height:36px;padding:0 8px}.history .loading{justify-content:center}.history .error{color:var(--color-error)}.history .group + .group{margin-top:15px}.history .group-title{font-weight:500;font-size:12px;color:#000;padding:8px;height:36px;line-height:20px}.history .item{display:block}.history .item::part(link){display:flex;align-items:center;padding:0 8px;height:36px;border-radius:8px;color:#000}.history .item.active::part(link){background:rgba(0,0,0,0.06)}.history .item.actions-active::part(link),.history .item::part(link):hover{background:rgba(0,0,0,0.04)}.history .item-title{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.history .actions{cursor:auto}.history .item:not(:hover):not(.actions-active) .actions{display:none}.history .working{width:8px;height:8px;border-radius:8px;background:var(--elevo-color-brand);margin:0 7px}.history .item.actions-active .working,.history .item:hover .working,.history .item.active .working{display:none}.history .load-more{display:flex;justify-content:center;align-items:center;height:36px}.button{display:flex}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import { wrapBrick } from \"@next-core/react-element\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n EoDropdownActions,\n DropdownActionsProps,\n DropdownActionsEvents,\n DropdownActionsEventsMapping,\n} from \"@next-bricks/basic/dropdown-actions\";\nimport type {\n EoEasyopsAvatar,\n EoEasyopsAvatarProps,\n} from \"@next-bricks/basic/easyops-avatar\";\nimport type {\n EoMiniActions,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping,\n EoMiniActionsProps,\n} from \"@next-bricks/basic/mini-actions\";\nimport type { IconButton, IconButtonProps } from \"../icon-button\";\n\nexport const WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nexport const WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nexport const WrappedDropdownActions = wrapBrick<\n EoDropdownActions,\n DropdownActionsProps,\n DropdownActionsEvents,\n DropdownActionsEventsMapping\n>(\"eo-dropdown-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\nexport const WrappedEasyopsAvatar = wrapBrick<\n EoEasyopsAvatar,\n EoEasyopsAvatarProps\n>(\"eo-easyops-avatar\");\nexport const WrappedMiniActions = wrapBrick<\n EoMiniActions,\n EoMiniActionsProps & { themeVariant?: \"default\" | \"elevo\" },\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping\n>(\"eo-mini-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\nexport const WrappedIconButton = wrapBrick<IconButton, IconButtonProps>(\n \"ai-portal.icon-button\"\n);\n","import { http } from \"@next-core/http\";\n/**\n * @description 获取elevo项目列表\n * @endpoint list /api/v1/elevo/projects\n */\nexport const ElevoApi_getElevoProjects = async (params, options) => /**! @contract easyops.api.llm.elevo.GetElevoProjects@1.0.0 */(await http.get(\"api/gateway/logic.llm.aiops_service/api/v1/elevo/projects\", {\n ...options,\n params\n})).data;\n//# sourceMappingURL=getElevoProjects.js.map","import { http } from \"@next-core/http\";\n/**\n * @description 获取elevo会话列表\n * @endpoint GET /api/v1/elevo/conversations\n */\nexport const ElevoApi_listElevoConversations = async (params, options) => /**! @contract easyops.api.llm.elevo.ListElevoConversations@1.0.0 */(await http.get(\"api/gateway/logic.llm.aiops_service/api/v1/elevo/conversations\", {\n ...options,\n params\n})).data;\n//# sourceMappingURL=listElevoConversations.js.map","import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type MutableRefObject,\n type PropsWithChildren,\n} from \"react\";\nimport classNames from \"classnames\";\nimport {\n ElevoApi_listElevoConversations,\n ElevoApi_getElevoProjects,\n type ElevoApi_ListElevoConversationsRequestParams,\n} from \"@next-api-sdk/llm-sdk\";\nimport type {\n ActionType,\n SimpleActionType,\n} from \"@next-bricks/basic/mini-actions\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport { isEqual, throttle } from \"lodash\";\nimport { K, t } from \"./i18n.js\";\nimport {\n WrappedIcon,\n WrappedLink,\n WrappedMiniActions,\n WrappedIconButton,\n} from \"./bricks.js\";\nimport { DONE_STATES } from \"../shared/constants.js\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\nimport type { ConversationState } from \"../shared/interfaces.js\";\nimport type { SidebarLink } from \"./index.js\";\nimport { NavLink } from \"./NavLink.js\";\n\nconst ADD_ICON: GeneralIconProps = {\n lib: \"fa\",\n icon: \"plus\",\n};\n\nexport interface HistoryItem {\n conversationId: string;\n title: string;\n startTime: number;\n state?: ConversationState;\n}\n\nexport interface GroupedHistory {\n title: string;\n items: HistoryItem[];\n}\n\nexport interface ActionClickDetail {\n action: SimpleActionType;\n item: HistoryItem;\n project?: Project;\n}\n\nexport interface ProjectActionClickDetail {\n action: SimpleActionType;\n project: Project;\n}\n\nexport interface Project {\n /** 实例ID */\n instanceId: string;\n /** 项目名称 */\n name: string;\n /** 项目描述 */\n description: string;\n /** 状态 */\n state: \"active\" | \"inactive\";\n /** 默认数字人ID */\n defaultAiEmployeeId: string;\n /** 创建者 */\n creator: string;\n /** 创建时间 */\n ctime: string;\n /** 修改时间 */\n mtime: string;\n /** 修改者 */\n modifier: string;\n}\n\nexport interface ChatHistoryProps {\n historyUrlTemplate?: string;\n historyActions?: ActionType[];\n projectUrlTemplate?: string;\n projectActions?: ActionType[];\n canAddProject?: boolean;\n myLinks?: SidebarLink[];\n onActionClick: (detail: ActionClickDetail) => void;\n onHistoryClick: () => void;\n onProjectActionClick: (detail: ProjectActionClickDetail) => void;\n onAddProject: () => void;\n}\n\nexport interface ChatHistoryRef {\n pull: () => void;\n removeProject?: (projectId: string) => void;\n addProject?: (project: Project) => void;\n moveConversation?: (conversationId: string) => void;\n}\n\nexport const ChatHistory = forwardRef(LowLevelChatHistory);\n\nexport function LowLevelChatHistory(\n {\n historyActions,\n historyUrlTemplate,\n projectUrlTemplate,\n projectActions,\n canAddProject,\n myLinks,\n onActionClick,\n onHistoryClick,\n onProjectActionClick,\n onAddProject,\n }: ChatHistoryProps,\n ref: React.Ref<ChatHistoryRef>\n) {\n const rootRef = useRef<HTMLDivElement | null>(null);\n const [myCollapsed, setMyCollapsed] = useState(false);\n const [projects, setProjects] = useState<Project[] | null>(null);\n const [projectsCollapsed, setProjectsCollapsed] = useState(false);\n const [projectsError, setProjectsError] = useState(false);\n const [historyList, setHistoryList] = useState<HistoryItem[] | null>(null);\n const [historyCollapsed, setHistoryCollapsed] = useState(false);\n const [nextToken, setNextToken] = useState<string | undefined>();\n const [loadNextToken, setLoadNextToken] = useState<string | undefined>();\n const [historyError, setHistoryError] = useState(false);\n const initialRef = useRef(true);\n const [movedConversations, setMovedConversations] = useState<string[]>([]);\n\n const mergedHistoryActions = useMemo(\n () =>\n [\n ...(historyActions ?? []),\n {\n isDropdown: true,\n text: t(K.MOVE_TO_PROJECT),\n disabled: !projects?.length,\n items: projects?.map((project) => ({\n event: \"move\",\n key: project.instanceId,\n text: project.name,\n project,\n })),\n },\n ] as ActionType[],\n [historyActions, projects]\n );\n\n useEffect(() => {\n (async () => {\n try {\n const projects = await ElevoApi_getElevoProjects({\n page: 1,\n page_size: 3000,\n });\n setProjects(projects.list as Project[]);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Error loading projects:\", error);\n setProjectsError(true);\n setProjects([]);\n }\n })();\n }, []);\n\n useEffect(() => {\n Promise.all([\n ElevoApi_listElevoConversations(\n {\n token: loadNextToken,\n limit: 30,\n onlyOwner: true,\n onlyUnrelatedProject: true,\n } as ElevoApi_ListElevoConversationsRequestParams,\n {\n interceptorParams: {\n ignoreLoadingBar: true,\n },\n }\n ),\n ...(initialRef.current\n ? []\n : [\n new Promise((resolve) => setTimeout(resolve, 500)), // Force a minimum delay\n ]),\n ])\n .then(([data]) => {\n initialRef.current = false;\n setHistoryList((prev) => [\n ...(prev ?? []),\n ...(data.conversations as HistoryItem[]),\n ]);\n setNextToken(data.nextToken);\n })\n .catch((error) => {\n // eslint-disable-next-line no-console\n console.error(\"Error loading chat history:\", error);\n setHistoryList([]);\n setHistoryError(true);\n });\n }, [loadNextToken]);\n\n const [actionsVisible, setActionsVisible] = useState<string | null>(null);\n\n const nextRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n const next = nextRef.current;\n const root = rootRef.current;\n if (!next || !nextToken || !root || historyCollapsed) {\n return;\n }\n const observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n setLoadNextToken(nextToken);\n }\n }\n },\n { root }\n );\n observer.observe(next);\n return () => {\n observer.disconnect();\n };\n }, [nextToken, historyCollapsed]);\n\n const pullIdRef = useRef(0);\n\n const pull = useCallback(async () => {\n try {\n const pullId = ++pullIdRef.current;\n const tempList = await ElevoApi_listElevoConversations(\n {\n limit: 30,\n onlyOwner: true,\n onlyUnrelatedProject: true,\n } as ElevoApi_ListElevoConversationsRequestParams,\n {\n interceptorParams: {\n ignoreLoadingBar: true,\n },\n }\n );\n if (pullId !== pullIdRef.current) {\n // Ignore this pull if a newer one has been triggered\n return;\n }\n setHistoryList((prev) => {\n const prevList = prev ?? [];\n const newList = tempList.conversations as HistoryItem[];\n const newIds = new Set(newList.map((item) => item.conversationId));\n const newItemsMap = new Map(\n newList.map((item) => [item.conversationId, item])\n );\n\n let foundIntersection = false;\n let foundChanged = false;\n let isFirst = true;\n for (const item of prevList) {\n const newItem = newItemsMap.get(item.conversationId);\n if (newItem) {\n foundIntersection = true;\n foundChanged =\n (isFirst && newItem !== newList[0]) || !isEqual(newItem, item);\n if (foundChanged) {\n break;\n }\n } else {\n break;\n }\n isFirst = false;\n }\n\n if (!foundIntersection) {\n setNextToken(tempList.nextToken);\n return newList;\n }\n\n if (foundChanged) {\n return [\n ...newList,\n ...prevList.filter((item) => !newIds.has(item.conversationId)),\n ];\n }\n\n return prev;\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Error pulling chat history:\", error);\n }\n }, []);\n\n useImperativeHandle(\n ref,\n () => ({\n pull,\n removeProject: (projectId: string) => {\n setProjects((prev) =>\n prev ? prev.filter((p) => p.instanceId !== projectId) : prev\n );\n },\n addProject: (project: Project) => {\n setProjects((prev) => (prev ? [...prev, project] : [project]));\n },\n moveConversation: (conversationId: string) => {\n setMovedConversations((prev) => [...prev, conversationId]);\n },\n }),\n [pull]\n );\n\n const filteredHistoryList = useMemo(() => {\n if (!historyList || !historyList.length) {\n return historyList;\n }\n return historyList.filter(\n (item) => !movedConversations.includes(item.conversationId)\n );\n }, [historyList, movedConversations]);\n\n return (\n <div className=\"history\" ref={rootRef}>\n {myLinks?.length ? (\n <div className={classNames(\"section\", { collapsed: myCollapsed })}>\n <SectionTitle\n rootRef={rootRef}\n title={t(K.MY)}\n onToggle={() => setMyCollapsed((prev) => !prev)}\n />\n <ul className=\"items\">\n {myLinks.map((link, index) => (\n <li key={index}>\n <NavLink\n url={link.url}\n activeIncludes={link.activeIncludes}\n render={({ active }) => (\n <WrappedLink\n className={classNames(\"item\", { active })}\n url={link.url}\n >\n <div className=\"item-title\">{link.title}</div>\n </WrappedLink>\n )}\n />\n </li>\n ))}\n </ul>\n </div>\n ) : null}\n <div className={classNames(\"section\", { collapsed: projectsCollapsed })}>\n <SectionTitle\n rootRef={rootRef}\n title={t(K.PROJECTS)}\n onToggle={() => setProjectsCollapsed((prev) => !prev)}\n >\n {canAddProject && (\n <WrappedIconButton\n icon={ADD_ICON}\n variant=\"mini-light\"\n tooltip={t(K.CREATE_PROJECT)}\n tooltipHoist={true}\n className=\"button\"\n onClick={onAddProject}\n />\n )}\n </SectionTitle>\n <ul className=\"items\">\n {projectsError ? (\n <li className=\"error\">Failed to load project</li>\n ) : projects ? (\n projects.map((project) => {\n const url = projectUrlTemplate\n ? parseTemplate(projectUrlTemplate, project)\n : undefined;\n return (\n <li key={project.instanceId}>\n <NavLink\n url={url}\n render={({ active }) => (\n <WrappedLink\n className={classNames(\"item\", {\n \"actions-active\":\n project.instanceId === actionsVisible,\n active,\n })}\n onClick={onHistoryClick}\n {...(url ? { url } : null)}\n >\n <div className=\"item-title\" title={project.name}>\n {project.name || t(K.UNNAMED)}\n </div>\n <WrappedMiniActions\n className=\"actions\"\n actions={projectActions}\n themeVariant=\"elevo\"\n onActionClick={(e) => {\n onProjectActionClick({ action: e.detail, project });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(\n e.detail ? project.instanceId : null\n );\n }}\n />\n </WrappedLink>\n )}\n />\n </li>\n );\n })\n ) : (\n <li className=\"loading\">\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </li>\n )}\n </ul>\n </div>\n <div className={classNames(\"section\", { collapsed: historyCollapsed })}>\n <SectionTitle\n rootRef={rootRef}\n title={t(K.HISTORY)}\n onToggle={() => setHistoryCollapsed((prev) => !prev)}\n />\n <ul className=\"items\">\n {filteredHistoryList ? (\n filteredHistoryList.map((item) => {\n const url = historyUrlTemplate\n ? parseTemplate(historyUrlTemplate, item)\n : undefined;\n return (\n <li key={item.conversationId}>\n <NavLink\n url={url}\n render={({ active }) => (\n <WrappedLink\n className={classNames(\"item\", {\n \"actions-active\":\n item.conversationId === actionsVisible,\n active,\n })}\n onClick={onHistoryClick}\n {...(historyUrlTemplate\n ? { url: parseTemplate(historyUrlTemplate, item) }\n : null)}\n >\n <div className=\"item-title\" title={item.title}>\n {item.title || t(K.UNTITLED)}\n </div>\n <WrappedMiniActions\n className=\"actions\"\n actions={mergedHistoryActions}\n onActionClick={(e) => {\n onActionClick({ action: e.detail, item });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(\n e.detail ? item.conversationId : null\n );\n }}\n />\n {!DONE_STATES.includes(item.state!) && (\n <div className=\"working\"></div>\n )}\n </WrappedLink>\n )}\n />\n </li>\n );\n })\n ) : (\n <li className=\"loading\">\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </li>\n )}\n {historyError ? (\n <li className=\"error\">Failed to load chat history</li>\n ) : null}\n </ul>\n {!historyCollapsed && nextToken && (\n <div className=\"load-more\" ref={nextRef}>\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n )}\n </div>\n </div>\n );\n}\n\ninterface SectionTitleProps {\n rootRef: MutableRefObject<HTMLDivElement | null>;\n title: string;\n onToggle: () => void;\n}\n\nfunction SectionTitle({\n rootRef,\n title,\n children,\n onToggle,\n}: PropsWithChildren<SectionTitleProps>) {\n const ref = useRef<HTMLDivElement | null>(null);\n const [stickyActive, setStickyActive] = useState(false);\n\n useEffect(() => {\n const parent = rootRef.current;\n const element = ref.current;\n const sibling = element?.nextElementSibling as HTMLElement | null;\n if (!parent || !element || !sibling) {\n return;\n }\n const onScroll = throttle(() => {\n const rect = element.getBoundingClientRect();\n const siblingRect = sibling.getBoundingClientRect();\n const diff = siblingRect.top - rect.top - rect.height;\n setStickyActive(diff < 1);\n }, 100);\n parent.addEventListener(\"scroll\", onScroll);\n return () => {\n parent.removeEventListener(\"scroll\", onScroll);\n };\n }, [rootRef]);\n\n return (\n <div\n className={classNames(\"section-title\", { sticky: stickyActive })}\n ref={ref}\n >\n <div className=\"section-label\" onClick={onToggle}>\n {title}\n <WrappedIcon lib=\"fa\" icon=\"angle-down\" />\n </div>\n {children}\n </div>\n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport { getHistory, matchPath } from \"@next-core/runtime\";\nimport type { Location } from \"history\";\n\nexport interface NavLinkProps {\n url?: string;\n activeIncludes?: string[];\n render: (props: { active: boolean }) => React.ReactElement;\n}\n\nexport function NavLink({ url, activeIncludes, render }: NavLinkProps) {\n const [active, setActive] = useState(false);\n\n useEffect(() => {\n function checkLinkActive(loc: Location) {\n if (!url) {\n setActive(false);\n return;\n }\n for (const path of [url, ...(activeIncludes ?? [])]) {\n const matched = matchPath(loc.pathname, { path, exact: false });\n if (matched) {\n setActive(true);\n return;\n }\n }\n setActive(false);\n }\n const history = getHistory();\n checkLinkActive(history.location);\n return history.listen(checkLinkActive);\n }, [url, activeIncludes]);\n\n return render({ active });\n}\n"],"names":["K","en","NEW_CHAT","LOGOUT","TODAY","YESTERDAY","PREVIOUS_7_DAYS","PREVIOUS_30_DAYS","SWITCH_LANGUAGE","MY","PROJECTS","HISTORY","CREATE_PROJECT","MOVE_TO_PROJECT","UNTITLED","UNNAMED","zh","NS","locales","t","i18n","getFixedT","___CSS_LOADER_EXPORT___","push","module","id","toString","WrappedIcon","wrapBrick","WrappedLink","WrappedDropdownActions","onActionClick","onVisibleChange","WrappedEasyopsAvatar","WrappedMiniActions","WrappedIconButton","ElevoApi_listElevoConversations","async","params","options","http","get","data","ADD_ICON","lib","icon","ChatHistory","forwardRef","LowLevelChatHistory","_ref","ref","historyActions","historyUrlTemplate","projectUrlTemplate","projectActions","canAddProject","myLinks","onHistoryClick","onProjectActionClick","onAddProject","rootRef","useRef","myCollapsed","setMyCollapsed","useState","projects","setProjects","projectsCollapsed","setProjectsCollapsed","projectsError","setProjectsError","historyList","setHistoryList","historyCollapsed","setHistoryCollapsed","nextToken","setNextToken","loadNextToken","setLoadNextToken","historyError","setHistoryError","initialRef","movedConversations","setMovedConversations","mergedHistoryActions","useMemo","isDropdown","text","disabled","length","items","map","project","event","key","instanceId","name","useEffect","page","page_size","ElevoApi_getElevoProjects","list","error","console","Promise","all","token","limit","onlyOwner","onlyUnrelatedProject","interceptorParams","ignoreLoadingBar","current","resolve","setTimeout","then","_ref2","prev","conversations","catch","actionsVisible","setActionsVisible","nextRef","next","root","observer","IntersectionObserver","entries","entry","isIntersecting","observe","disconnect","pullIdRef","pull","useCallback","pullId","tempList","prevList","newList","newIds","Set","item","conversationId","newItemsMap","Map","foundIntersection","foundChanged","isFirst","newItem","isEqual","filter","has","useImperativeHandle","removeProject","projectId","p","addProject","moveConversation","filteredHistoryList","includes","React","className","classNames","collapsed","SectionTitle","title","onToggle","link","index","NavLink","url","activeIncludes","render","_ref3","active","variant","tooltip","tooltipHoist","onClick","parseTemplate","undefined","_ref4","_extends","actions","themeVariant","e","action","detail","theme","spinning","_ref5","DONE_STATES","state","_ref6","children","stickyActive","setStickyActive","parent","element","sibling","nextElementSibling","onScroll","throttle","rect","getBoundingClientRect","diff","top","height","addEventListener","removeEventListener","sticky","setActive","checkLinkActive","loc","path","matchPath","pathname","exact","history","getHistory","location","listen"],"sourceRoot":""}
|