@next-bricks/ai-portal 0.22.1 → 0.22.2
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 +26 -26
- package/dist/chunks/3500.f0c191e3.js +2 -0
- package/dist/chunks/3500.f0c191e3.js.map +1 -0
- package/dist/chunks/{5054.815afa91.js → 5054.087396dd.js} +2 -2
- package/dist/chunks/5054.087396dd.js.map +1 -0
- package/dist/chunks/7170.69f823b8.js +2 -0
- package/dist/chunks/7170.69f823b8.js.map +1 -0
- package/dist/chunks/9543.433bae9f.js +3 -0
- package/dist/chunks/9543.433bae9f.js.map +1 -0
- package/dist/chunks/chat-stream.0b634b54.js +2 -0
- package/dist/chunks/chat-stream.0b634b54.js.map +1 -0
- package/dist/chunks/cruise-canvas.23852953.js +2 -0
- package/dist/chunks/cruise-canvas.23852953.js.map +1 -0
- package/dist/chunks/elevo-sidebar.8a4cd6d3.js +3 -0
- package/dist/chunks/elevo-sidebar.8a4cd6d3.js.map +1 -0
- package/dist/chunks/{main.4eb5cda1.js → main.8091b272.js} +2 -2
- package/dist/chunks/{main.4eb5cda1.js.map → main.8091b272.js.map} +1 -1
- package/dist/examples.json +12 -12
- package/dist/index.bbf59e6f.js +2 -0
- package/dist/index.bbf59e6f.js.map +1 -0
- package/dist/manifest.json +144 -139
- package/dist/types.json +147 -89
- package/dist-types/cruise-canvas/NodeLoading/NodeLoading.d.ts +1 -0
- package/dist-types/cruise-canvas/NodeRequirement/NodeRequirement.d.ts +1 -2
- package/dist-types/cruise-canvas/constants.d.ts +1 -0
- package/dist-types/cruise-canvas/getOrderedJobs.d.ts +1 -0
- package/dist-types/cruise-canvas/interfaces.d.ts +4 -1
- package/dist-types/elevo-sidebar/i18n.d.ts +2 -1
- package/dist-types/elevo-sidebar/index.d.ts +8 -0
- package/package.json +2 -2
- package/dist/chunks/5054.815afa91.js.map +0 -1
- package/dist/chunks/5527.27d722cb.js +0 -2
- package/dist/chunks/5527.27d722cb.js.map +0 -1
- package/dist/chunks/7170.5fccd1cf.js +0 -2
- package/dist/chunks/7170.5fccd1cf.js.map +0 -1
- package/dist/chunks/9543.071831a1.js +0 -3
- package/dist/chunks/9543.071831a1.js.map +0 -1
- package/dist/chunks/chat-stream.4939c740.js +0 -2
- package/dist/chunks/chat-stream.4939c740.js.map +0 -1
- package/dist/chunks/cruise-canvas.3906b1c8.js +0 -2
- package/dist/chunks/cruise-canvas.3906b1c8.js.map +0 -1
- package/dist/chunks/elevo-sidebar.0faa824f.js +0 -3
- package/dist/chunks/elevo-sidebar.0faa824f.js.map +0 -1
- package/dist/index.950ffacb.js +0 -2
- package/dist/index.950ffacb.js.map +0 -1
- /package/dist/chunks/{9543.071831a1.js.LICENSE.txt → 9543.433bae9f.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{elevo-sidebar.0faa824f.js.LICENSE.txt → elevo-sidebar.8a4cd6d3.js.LICENSE.txt} +0 -0
package/dist/types.json
CHANGED
|
@@ -176,6 +176,95 @@
|
|
|
176
176
|
"events": [],
|
|
177
177
|
"methods": []
|
|
178
178
|
},
|
|
179
|
+
"ai-portal.chat-box": {
|
|
180
|
+
"properties": [
|
|
181
|
+
{
|
|
182
|
+
"name": "disabled",
|
|
183
|
+
"annotation": {
|
|
184
|
+
"type": "keyword",
|
|
185
|
+
"value": "boolean"
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"name": "placeholder",
|
|
190
|
+
"annotation": {
|
|
191
|
+
"type": "keyword",
|
|
192
|
+
"value": "string"
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"name": "autoFocus",
|
|
197
|
+
"annotation": {
|
|
198
|
+
"type": "keyword",
|
|
199
|
+
"value": "boolean"
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"name": "suggestions",
|
|
204
|
+
"annotation": {
|
|
205
|
+
"type": "array",
|
|
206
|
+
"elementType": {
|
|
207
|
+
"type": "reference",
|
|
208
|
+
"typeName": {
|
|
209
|
+
"type": "identifier",
|
|
210
|
+
"name": "Suggestion"
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"name": "suggestionsLabel",
|
|
217
|
+
"annotation": {
|
|
218
|
+
"type": "keyword",
|
|
219
|
+
"value": "string"
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
],
|
|
223
|
+
"events": [
|
|
224
|
+
{
|
|
225
|
+
"name": "message.submit",
|
|
226
|
+
"detail": {
|
|
227
|
+
"annotation": {
|
|
228
|
+
"type": "keyword",
|
|
229
|
+
"value": "string"
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
],
|
|
234
|
+
"methods": [],
|
|
235
|
+
"types": [
|
|
236
|
+
{
|
|
237
|
+
"type": "interface",
|
|
238
|
+
"name": "Suggestion",
|
|
239
|
+
"body": [
|
|
240
|
+
{
|
|
241
|
+
"type": "propertySignature",
|
|
242
|
+
"key": {
|
|
243
|
+
"type": "identifier",
|
|
244
|
+
"name": "title"
|
|
245
|
+
},
|
|
246
|
+
"annotation": {
|
|
247
|
+
"type": "keyword",
|
|
248
|
+
"value": "string"
|
|
249
|
+
},
|
|
250
|
+
"computed": false
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
"type": "propertySignature",
|
|
254
|
+
"key": {
|
|
255
|
+
"type": "identifier",
|
|
256
|
+
"name": "content"
|
|
257
|
+
},
|
|
258
|
+
"annotation": {
|
|
259
|
+
"type": "keyword",
|
|
260
|
+
"value": "string"
|
|
261
|
+
},
|
|
262
|
+
"computed": false
|
|
263
|
+
}
|
|
264
|
+
]
|
|
265
|
+
}
|
|
266
|
+
]
|
|
267
|
+
},
|
|
179
268
|
"ai-portal.chat-history": {
|
|
180
269
|
"properties": [
|
|
181
270
|
{
|
|
@@ -577,95 +666,6 @@
|
|
|
577
666
|
}
|
|
578
667
|
]
|
|
579
668
|
},
|
|
580
|
-
"ai-portal.chat-box": {
|
|
581
|
-
"properties": [
|
|
582
|
-
{
|
|
583
|
-
"name": "disabled",
|
|
584
|
-
"annotation": {
|
|
585
|
-
"type": "keyword",
|
|
586
|
-
"value": "boolean"
|
|
587
|
-
}
|
|
588
|
-
},
|
|
589
|
-
{
|
|
590
|
-
"name": "placeholder",
|
|
591
|
-
"annotation": {
|
|
592
|
-
"type": "keyword",
|
|
593
|
-
"value": "string"
|
|
594
|
-
}
|
|
595
|
-
},
|
|
596
|
-
{
|
|
597
|
-
"name": "autoFocus",
|
|
598
|
-
"annotation": {
|
|
599
|
-
"type": "keyword",
|
|
600
|
-
"value": "boolean"
|
|
601
|
-
}
|
|
602
|
-
},
|
|
603
|
-
{
|
|
604
|
-
"name": "suggestions",
|
|
605
|
-
"annotation": {
|
|
606
|
-
"type": "array",
|
|
607
|
-
"elementType": {
|
|
608
|
-
"type": "reference",
|
|
609
|
-
"typeName": {
|
|
610
|
-
"type": "identifier",
|
|
611
|
-
"name": "Suggestion"
|
|
612
|
-
}
|
|
613
|
-
}
|
|
614
|
-
}
|
|
615
|
-
},
|
|
616
|
-
{
|
|
617
|
-
"name": "suggestionsLabel",
|
|
618
|
-
"annotation": {
|
|
619
|
-
"type": "keyword",
|
|
620
|
-
"value": "string"
|
|
621
|
-
}
|
|
622
|
-
}
|
|
623
|
-
],
|
|
624
|
-
"events": [
|
|
625
|
-
{
|
|
626
|
-
"name": "message.submit",
|
|
627
|
-
"detail": {
|
|
628
|
-
"annotation": {
|
|
629
|
-
"type": "keyword",
|
|
630
|
-
"value": "string"
|
|
631
|
-
}
|
|
632
|
-
}
|
|
633
|
-
}
|
|
634
|
-
],
|
|
635
|
-
"methods": [],
|
|
636
|
-
"types": [
|
|
637
|
-
{
|
|
638
|
-
"type": "interface",
|
|
639
|
-
"name": "Suggestion",
|
|
640
|
-
"body": [
|
|
641
|
-
{
|
|
642
|
-
"type": "propertySignature",
|
|
643
|
-
"key": {
|
|
644
|
-
"type": "identifier",
|
|
645
|
-
"name": "title"
|
|
646
|
-
},
|
|
647
|
-
"annotation": {
|
|
648
|
-
"type": "keyword",
|
|
649
|
-
"value": "string"
|
|
650
|
-
},
|
|
651
|
-
"computed": false
|
|
652
|
-
},
|
|
653
|
-
{
|
|
654
|
-
"type": "propertySignature",
|
|
655
|
-
"key": {
|
|
656
|
-
"type": "identifier",
|
|
657
|
-
"name": "content"
|
|
658
|
-
},
|
|
659
|
-
"annotation": {
|
|
660
|
-
"type": "keyword",
|
|
661
|
-
"value": "string"
|
|
662
|
-
},
|
|
663
|
-
"computed": false
|
|
664
|
-
}
|
|
665
|
-
]
|
|
666
|
-
}
|
|
667
|
-
]
|
|
668
|
-
},
|
|
669
669
|
"ai-portal.elevo-sidebar": {
|
|
670
670
|
"properties": [
|
|
671
671
|
{
|
|
@@ -731,6 +731,19 @@
|
|
|
731
731
|
}
|
|
732
732
|
}
|
|
733
733
|
}
|
|
734
|
+
},
|
|
735
|
+
{
|
|
736
|
+
"name": "links",
|
|
737
|
+
"annotation": {
|
|
738
|
+
"type": "array",
|
|
739
|
+
"elementType": {
|
|
740
|
+
"type": "reference",
|
|
741
|
+
"typeName": {
|
|
742
|
+
"type": "identifier",
|
|
743
|
+
"name": "SidebarLink"
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
}
|
|
734
747
|
}
|
|
735
748
|
],
|
|
736
749
|
"events": [
|
|
@@ -772,6 +785,51 @@
|
|
|
772
785
|
}
|
|
773
786
|
],
|
|
774
787
|
"types": [
|
|
788
|
+
{
|
|
789
|
+
"type": "interface",
|
|
790
|
+
"name": "SidebarLink",
|
|
791
|
+
"body": [
|
|
792
|
+
{
|
|
793
|
+
"type": "propertySignature",
|
|
794
|
+
"key": {
|
|
795
|
+
"type": "identifier",
|
|
796
|
+
"name": "title"
|
|
797
|
+
},
|
|
798
|
+
"annotation": {
|
|
799
|
+
"type": "keyword",
|
|
800
|
+
"value": "string"
|
|
801
|
+
},
|
|
802
|
+
"computed": false
|
|
803
|
+
},
|
|
804
|
+
{
|
|
805
|
+
"type": "propertySignature",
|
|
806
|
+
"key": {
|
|
807
|
+
"type": "identifier",
|
|
808
|
+
"name": "url"
|
|
809
|
+
},
|
|
810
|
+
"annotation": {
|
|
811
|
+
"type": "keyword",
|
|
812
|
+
"value": "string"
|
|
813
|
+
},
|
|
814
|
+
"computed": false
|
|
815
|
+
},
|
|
816
|
+
{
|
|
817
|
+
"type": "propertySignature",
|
|
818
|
+
"key": {
|
|
819
|
+
"type": "identifier",
|
|
820
|
+
"name": "icon"
|
|
821
|
+
},
|
|
822
|
+
"annotation": {
|
|
823
|
+
"type": "reference",
|
|
824
|
+
"typeName": {
|
|
825
|
+
"type": "identifier",
|
|
826
|
+
"name": "GeneralIconProps"
|
|
827
|
+
}
|
|
828
|
+
},
|
|
829
|
+
"computed": false
|
|
830
|
+
}
|
|
831
|
+
]
|
|
832
|
+
},
|
|
775
833
|
{
|
|
776
834
|
"type": "interface",
|
|
777
835
|
"name": "ActionClickDetail",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function NodeLoading(): JSX.Element;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export interface NodeRequirementProps {
|
|
2
2
|
content?: string;
|
|
3
3
|
startTime?: number;
|
|
4
|
-
loading?: boolean;
|
|
5
4
|
active?: boolean;
|
|
6
5
|
}
|
|
7
|
-
export declare function NodeRequirement({ content, startTime,
|
|
6
|
+
export declare function NodeRequirement({ content, startTime, active, }: NodeRequirementProps): JSX.Element;
|
|
@@ -4,6 +4,7 @@ export declare const START_NODE_ID = "<START>";
|
|
|
4
4
|
export declare const END_NODE_ID = "<END>";
|
|
5
5
|
export declare const FEEDBACK_NODE_ID = "<FEEDBACK>";
|
|
6
6
|
export declare const REQUIREMENT_NODE_ID = "<REQUIREMENT>";
|
|
7
|
+
export declare const LOADING_NODE_ID = "<LOADING>";
|
|
7
8
|
export declare const CANVAS_PADDING_TOP = 20;
|
|
8
9
|
export declare const CANVAS_PADDING_RIGHT = 20;
|
|
9
10
|
export declare const CANVAS_PADDING_BOTTOM = 122;
|
|
@@ -12,11 +12,14 @@ export interface TransformLiteral {
|
|
|
12
12
|
x: number;
|
|
13
13
|
y: number;
|
|
14
14
|
}
|
|
15
|
-
export type GraphNode = RequirementGraphNode | InstructionGraphNode | JobGraphNode | ViewGraphNode | StartGraphNode | EndGraphNode | FeedbackGraphNode;
|
|
15
|
+
export type GraphNode = RequirementGraphNode | LoadingGraphNode | InstructionGraphNode | JobGraphNode | ViewGraphNode | StartGraphNode | EndGraphNode | FeedbackGraphNode;
|
|
16
16
|
export interface RequirementGraphNode extends BaseGraphNode {
|
|
17
17
|
type: "requirement";
|
|
18
18
|
content: string;
|
|
19
19
|
}
|
|
20
|
+
export interface LoadingGraphNode extends BaseGraphNode {
|
|
21
|
+
type: "loading";
|
|
22
|
+
}
|
|
20
23
|
export interface InstructionGraphNode extends BaseGraphNode {
|
|
21
24
|
type: "instruction";
|
|
22
25
|
job: Job;
|
|
@@ -4,7 +4,8 @@ export declare enum K {
|
|
|
4
4
|
TODAY = "TODAY",
|
|
5
5
|
YESTERDAY = "YESTERDAY",
|
|
6
6
|
PREVIOUS_7_DAYS = "PREVIOUS_7_DAYS",
|
|
7
|
-
PREVIOUS_30_DAYS = "PREVIOUS_30_DAYS"
|
|
7
|
+
PREVIOUS_30_DAYS = "PREVIOUS_30_DAYS",
|
|
8
|
+
SWITCH_LANGUAGE = "SWITCH_LANGUAGE"
|
|
8
9
|
}
|
|
9
10
|
export declare const NS = "bricks/ai-portal/elevo-sidebar";
|
|
10
11
|
export declare const locales: {
|
|
@@ -2,6 +2,7 @@ import React from "react";
|
|
|
2
2
|
import { ReactNextElement } from "@next-core/react-element";
|
|
3
3
|
import "@next-core/theme";
|
|
4
4
|
import type { ActionType } from "@next-bricks/basic/mini-actions";
|
|
5
|
+
import type { GeneralIconProps } from "@next-bricks/icons/general-icon";
|
|
5
6
|
export interface ElevoSidebarProps {
|
|
6
7
|
userInstanceId?: string;
|
|
7
8
|
behavior?: "default" | "drawer";
|
|
@@ -10,6 +11,12 @@ export interface ElevoSidebarProps {
|
|
|
10
11
|
historyActiveId?: string;
|
|
11
12
|
historyUrlTemplate?: string;
|
|
12
13
|
historyActions?: ActionType[];
|
|
14
|
+
links?: SidebarLink[];
|
|
15
|
+
}
|
|
16
|
+
export interface SidebarLink {
|
|
17
|
+
title: string;
|
|
18
|
+
url: string;
|
|
19
|
+
icon: GeneralIconProps;
|
|
13
20
|
}
|
|
14
21
|
/**
|
|
15
22
|
* 构件 `ai-portal.elevo-sidebar`
|
|
@@ -23,6 +30,7 @@ export declare class ElevoSidebar extends ReactNextElement implements ElevoSideb
|
|
|
23
30
|
accessor historyActiveId: string | undefined;
|
|
24
31
|
accessor historyUrlTemplate: string | undefined;
|
|
25
32
|
accessor historyActions: ActionType[] | undefined;
|
|
33
|
+
accessor links: SidebarLink[] | undefined;
|
|
26
34
|
/**
|
|
27
35
|
* @param delay Delay in milliseconds before pulling the latest chat history.
|
|
28
36
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-bricks/ai-portal",
|
|
3
|
-
"version": "0.22.
|
|
3
|
+
"version": "0.22.2",
|
|
4
4
|
"homepage": "https://github.com/easyops-cn/next-advanced-bricks/tree/master/bricks/ai-portal",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"@next-bricks/mini-chart": "*",
|
|
46
46
|
"@next-bricks/presentational": "*"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "8fd38337841d5adf918103aca1ce770ca951286d"
|
|
49
49
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/5054.815afa91.js","mappings":"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","sources":["webpack:///./src/chat-stream/NodeJob/NodeJob.module.css","webpack:///./src/chat-stream/UserMessage/UserMessage.module.css?84b2","webpack:///./src/chat-stream/UserMessage/UserMessage.tsx","webpack:///./src/chat-stream/Aside/Aside.module.css?0aa1","webpack:///./src/chat-stream/Aside/Aside.tsx","webpack:///./src/chat-stream/styles.module.css?c00e","webpack:///./src/chat-stream/UserMessage/UserMessage.module.css","webpack:///./src/chat-stream/AssistantMessage/AssistantMessage.module.css?a84b","webpack:///./src/chat-stream/NodeJob/NodeJob.module.css?840d","webpack:///./src/chat-stream/HumanAdjustPlanResult/HumanAdjustPlanResult.tsx","webpack:///./src/chat-stream/NodeView/NodeView.module.css?3001","webpack:///./src/chat-stream/NodeView/NodeView.tsx","webpack:///./src/chat-stream/NodeJob/NodeJob.tsx","webpack:///./src/chat-stream/AssistantMessage/AssistantMessage.tsx","webpack:///./src/chat-stream/AssistantMessage/AssistantMessage.module.css","webpack:///./src/chat-stream/NodeView/NodeView.module.css","webpack:///./src/chat-stream/styles.module.css","webpack:///./src/chat-stream/useChatStream.ts","webpack:///./src/chat-stream/Aside/Aside.module.css","webpack:///./src/chat-stream/i18n.ts"],"sourcesContent":["// 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, `.heading--Uyl__y0l{display:flex;align-items:center;padding:5px 8px;margin:0 -8px 12px;cursor:pointer}.main--TukugFGT{font-size:16px;line-height:26px}.caret--RIrd1Bh6{opacity:0;transition:transform 0.2s ease-in-out}.heading--Uyl__y0l:hover{background:rgba(184,187,205,0.15);border-radius:8px}.heading--Uyl__y0l:hover .caret--RIrd1Bh6{opacity:1}.icon--i_Eo2KvU{display:flex;align-items:center;margin-right:12px}.title--dRyYSVof{color:#262626;font-weight:500;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool--eKJi4smD{background:#e2e5ef;border:1px solid #d4d4de;border-radius:13px;line-height:24px;padding:0 12px;width:-moz-fit-content;width:fit-content;color:#595959;cursor:pointer}.body--CUgbPhLT{padding-left:26px;margin-bottom:20px}.collapsed--RP7bbO2u .body--CUgbPhLT{display:none}.collapsed--RP7bbO2u .caret--RIrd1Bh6{transform:rotate(180deg);opacity:1}.content--zdMqn1ov{margin-top:14px}.content--zdMqn1ov .markdown--id3ANDOE .mermaid{background:rgba(255,255,255,0.6);border-radius:8px;border:1px solid rgba(0,0,0,0.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:20px;min-width:var(--cruise-canvas-node-width-medium);width:-moz-fit-content;width:fit-content;max-width:100%}.content--zdMqn1ov:empty{display:none}.message--CC09F6Pi:first-child > .message-part--h0OExat1:first-child > :first-child{margin-top:0}.icon--i_Eo2KvU{color:#abaab7}.completed--NfHzTqxj .icon--i_Eo2KvU{color:#0fbe59}.failed--UHw5ym5a .icon--i_Eo2KvU{color:#f24c25}.working--hPmYriQY .icon--i_Eo2KvU{color:var(--elevo-color-brand)}.input-required--iLv9MI8X .icon--i_Eo2KvU{color:#12aacc}.canceled--xdorM4ka .icon--i_Eo2KvU{color:#fcaa07}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"heading\": `heading--Uyl__y0l`,\n\t\"main\": `main--TukugFGT`,\n\t\"caret\": `caret--RIrd1Bh6`,\n\t\"icon\": `icon--i_Eo2KvU`,\n\t\"title\": `title--dRyYSVof`,\n\t\"tool\": `tool--eKJi4smD`,\n\t\"body\": `body--CUgbPhLT`,\n\t\"collapsed\": `collapsed--RP7bbO2u`,\n\t\"content\": `content--zdMqn1ov`,\n\t\"markdown\": `markdown--id3ANDOE`,\n\t\"message\": `message--CC09F6Pi`,\n\t\"message-part\": `message-part--h0OExat1`,\n\t\"completed\": `completed--NfHzTqxj`,\n\t\"failed\": `failed--UHw5ym5a`,\n\t\"working\": `working--hPmYriQY`,\n\t\"input-required\": `input-required--iLv9MI8X`,\n\t\"canceled\": `canceled--xdorM4ka`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./UserMessage.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./UserMessage.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React from \"react\";\nimport styles from \"./UserMessage.module.css\";\n\nexport interface UserMessageProps {\n content: string;\n}\n\nexport function UserMessage({ content }: UserMessageProps) {\n return <div className={styles.user}>{content}</div>;\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./Aside.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./Aside.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { useContext } from \"react\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport styles from \"./Aside.module.css\";\nimport { WrappedIconButton } from \"../../shared/bricks\";\nimport type { Job } from \"../../cruise-canvas/interfaces\";\nimport { ToolCallStatus } from \"../../cruise-canvas/ToolCallStatus/ToolCallStatus\";\nimport { TaskContext } from \"../../shared/TaskContext\";\n\nconst ICON_SHRINK: GeneralIconProps = {\n lib: \"easyops\",\n icon: \"shrink\",\n};\n\nexport interface AsideProps {\n job: Job;\n}\n\nexport function Aside({ job }: AsideProps) {\n const { setActiveToolCallJobId } = useContext(TaskContext);\n\n return (\n <div className={styles.aside}>\n <div className={styles.box}>\n <div className={styles.heading}>\n <div className={styles.title}>Elevo's Computer</div>\n <WrappedIconButton\n icon={ICON_SHRINK}\n variant=\"mini\"\n onClick={() => {\n setActiveToolCallJobId(null);\n }}\n />\n </div>\n <div className={styles.body}>\n <ToolCallStatus job={job} variant=\"read-only\" />\n </div>\n </div>\n </div>\n );\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./styles.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./styles.module.css\";\n export default content && content.locals ? content.locals : undefined;\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, `.user--HjXM9OHW{background:rgba(255,255,255,0.6);border-radius:24px;padding:8px 16px;width:-moz-fit-content;width:fit-content;max-width:500px;margin-left:auto;overflow-wrap:break-word;white-space:pre-wrap;font-size:16px;line-height:26px}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"user\": `user--HjXM9OHW`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./AssistantMessage.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./AssistantMessage.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./NodeJob.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./NodeJob.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { useMemo } from \"react\";\nimport type { Job } from \"../../cruise-canvas/interfaces\";\nimport styles from \"../NodeJob/NodeJob.module.css\";\n\nexport interface HumanAdjustPlanResultProps {\n job: Job;\n}\n\nexport function HumanAdjustPlanResult({\n job,\n}: HumanAdjustPlanResultProps): JSX.Element {\n const response = useMemo(() => {\n const msg = job.messages?.find((msg) => {\n return msg.role === \"tool\";\n });\n if (msg) {\n const text = msg.parts?.find((part) => part.type === \"text\")?.text;\n if (text) {\n try {\n return JSON.parse(text) as { type: \"plan\"; steps: string[] };\n } catch {\n // Fallback to original text\n }\n }\n }\n return null;\n }, [job.messages]);\n\n if (response?.type === \"plan\" && Array.isArray(response.steps)) {\n return (\n <div className={styles.message}>\n <ol\n style={{\n paddingLeft: `${Math.floor(Math.log10(response.steps.length + 1)) * 0.5 + 1.5}em`,\n }}\n >\n {response.steps.map((step, index) => (\n <li key={index}>{step}</li>\n ))}\n </ol>\n </div>\n );\n }\n\n return <div className={styles.message}>Something went wrong.</div>;\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./NodeView.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./NodeView.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","// istanbul ignore file: experimental\nimport React, { useCallback, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { CreatedView } from \"../../shared/CreatedView/CreatedView\";\nimport type { Job } from \"../../cruise-canvas/interfaces\";\nimport styles from \"./NodeView.module.css\";\n\nexport interface NodeViewProps {\n job: Job;\n}\n\nexport function NodeView({ job }: NodeViewProps): JSX.Element {\n const [size, setSize] = useState<\"medium\" | \"large\">(\"medium\");\n\n const handleSizeChange = useCallback((value: \"medium\" | \"large\") => {\n setSize(value);\n }, []);\n\n return (\n <div\n className={classNames(styles.view, {\n [styles.large]: size === \"large\",\n })}\n >\n <CreatedView job={job} onSizeChange={handleSizeChange} />\n </div>\n );\n}\n","import React, { useContext, useMemo, useState } from \"react\";\nimport classNames from \"classnames\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport type {\n CmdbInstanceDetailData,\n FileInfo,\n Job,\n JobState,\n TaskState,\n} from \"../../cruise-canvas/interfaces.js\";\nimport styles from \"./NodeJob.module.css\";\nimport sharedStyles from \"../../cruise-canvas/shared.module.css\";\nimport { WrappedIcon } from \"../../shared/bricks.js\";\nimport { EnhancedMarkdown } from \"../../cruise-canvas/EnhancedMarkdown/EnhancedMarkdown.js\";\nimport { CmdbInstanceDetail } from \"../../cruise-canvas/CmdbInstanceDetail/CmdbInstanceDetail.js\";\nimport { K, t } from \"../i18n.js\";\nimport { HumanAdjustPlanResult } from \"../HumanAdjustPlanResult/HumanAdjustPlanResult.js\";\nimport { HumanAdjustPlan } from \"../../shared/HumanAdjustPlan/HumanAdjustPlan.js\";\nimport { NodeView } from \"../NodeView/NodeView.js\";\nimport { TaskContext } from \"../../shared/TaskContext.js\";\n\nexport interface NodeJobProps {\n job: Job;\n taskState: TaskState | undefined;\n}\n\nconst ICON_UP: GeneralIconProps = {\n lib: \"fa\",\n icon: \"angle-up\",\n};\n\nexport function NodeJob({ job, taskState }: NodeJobProps) {\n const toolCall = job.toolCall;\n const toolTitle = toolCall?.annotations?.title || toolCall?.name;\n const toolName = toolCall?.name;\n const askUser = toolName === \"ask_human\";\n const askUserPlan = toolName === \"ask_human_confirming_plan\";\n const generalAskUser = askUser || askUserPlan;\n const knownAskUser =\n (askUser &&\n [\n \"ask_user_more\",\n \"ask_user_confirm\",\n \"ask_user_choose\",\n \"ask_user_select_from_cmdb\",\n \"ask_user_adjust_plan\",\n ].includes(job.toolCall!.arguments?.command as string)) ||\n askUserPlan;\n const showToolCall = !!toolCall && !generalAskUser;\n const { setActiveToolCallJobId } = useContext(TaskContext);\n\n const { className, icon } = useMemo(() => {\n return getClassNameAndIconProps(job.state, taskState);\n }, [job.state, taskState]);\n\n const [toolMarkdownContent, cmdbInstanceDetails /* , files */] =\n useMemo(() => {\n const contents: string[] = [];\n const instanceDetails: CmdbInstanceDetailData[] = [];\n const files: FileInfo[] = [];\n let large = toolName === \"llm_answer\";\n job.messages?.forEach((message) => {\n if (message.role === \"tool\") {\n for (const part of message.parts) {\n if (part.type === \"data\") {\n switch (part.data?.type) {\n case \"markdown\":\n contents.push(part.data.content);\n break;\n case \"cmdb_instance_detail\":\n instanceDetails.push(part.data as CmdbInstanceDetailData);\n if (!large) {\n large =\n Object.keys(\n part.data?.outputSchema?.type === \"object\"\n ? part.data.outputSchema.properties\n : part.data.detail\n ).length > 6;\n }\n break;\n }\n } else if (part.type === \"file\") {\n files.push(part.file);\n }\n }\n }\n });\n\n const markdownContent = contents.join(\"\");\n\n return [markdownContent, instanceDetails, files] as const;\n }, [job.messages, toolName]);\n\n const [collapsed, setCollapsed] = useState(false);\n\n return (\n <div className={classNames(styles.job, { [styles.collapsed]: collapsed })}>\n <div className={styles.main}>\n {knownAskUser ? (\n <>\n {(askUserPlan || !!toolCall!.arguments?.question) && (\n <div\n className={classNames(styles.message, sharedStyles.markdown)}\n >\n <EnhancedMarkdown\n className={styles[\"message-part\"]}\n content={\n askUserPlan\n ? t(K.CONFIRMING_PLAN_TIPS)\n : (job.toolCall!.arguments?.question as string)\n }\n />\n </div>\n )}\n {job.state === \"input-required\" &&\n (askUserPlan ? (\n <HumanAdjustPlan\n jobId={job.id}\n steps={job.toolCall!.arguments!.steps as string[]}\n />\n ) : null)}\n </>\n ) : null}\n {askUserPlan && job.state === \"completed\" ? (\n <HumanAdjustPlanResult job={job} />\n ) : askUser ? null : (\n job.messages?.map((message, index) =>\n message.role === \"tool\" && !generalAskUser ? null : (\n <div\n key={index}\n className={classNames(styles.message, sharedStyles.markdown)}\n >\n {message.parts?.map((part, partIndex) => (\n <React.Fragment key={partIndex}>\n {part.type === \"text\" && (\n <EnhancedMarkdown\n className={styles[\"message-part\"]}\n content={part.text}\n />\n )}\n </React.Fragment>\n ))}\n </div>\n )\n )\n )}\n </div>\n {showToolCall && (\n <>\n <div\n className={classNames(styles.heading, className)}\n onClick={() => setCollapsed((prev) => !prev)}\n >\n <div className={styles.icon}>\n <WrappedIcon {...icon} />\n </div>\n <div className={styles.title}>{job.instruction || toolTitle}</div>\n <WrappedIcon className={styles.caret} {...ICON_UP} />\n </div>\n <div className={styles.body}>\n <div\n className={styles.tool}\n onClick={() => {\n setActiveToolCallJobId(job.id);\n }}\n >\n {toolTitle}\n </div>\n <div className={styles.content}>\n {toolMarkdownContent && (\n <div\n className={classNames(styles.markdown, sharedStyles.markdown)}\n >\n <EnhancedMarkdown content={toolMarkdownContent} />\n </div>\n )}\n {cmdbInstanceDetails.map((detail, index) => (\n <div key={index} className={styles.box}>\n <CmdbInstanceDetail {...detail} />\n </div>\n ))}\n {job.generatedView ? <NodeView job={job} /> : null}\n </div>\n </div>\n </>\n )}\n </div>\n );\n}\n\nfunction getClassNameAndIconProps(\n state: JobState | undefined,\n taskState: TaskState | undefined\n) {\n switch (state) {\n case \"completed\":\n return {\n className: styles.completed,\n icon: {\n lib: \"antd\",\n theme: \"filled\",\n icon: \"check-circle\",\n },\n };\n case \"submitted\":\n case \"working\":\n if (taskState === \"paused\" || taskState === \"canceled\") {\n return {\n icon: {\n lib: \"fa\",\n prefix: \"far\",\n icon: taskState === \"paused\" ? \"circle-pause\" : \"circle-stop\",\n },\n };\n }\n return {\n className: styles.working,\n icon: {\n lib: \"antd\",\n theme: \"outlined\",\n icon: \"loading-3-quarters\",\n spinning: true,\n },\n };\n case \"input-required\":\n return {\n className: styles[\"input-required\"],\n icon: {\n lib: \"fa\",\n prefix: \"far\",\n icon: \"circle-user\",\n },\n };\n case \"failed\":\n return {\n className: styles.failed,\n icon: {\n lib: \"fa\",\n prefix: \"fas\",\n icon: \"xmark\",\n },\n };\n case \"canceled\":\n return {\n className: styles.canceled,\n icon: {\n lib: \"fa\",\n prefix: \"far\",\n icon: \"circle-stop\",\n },\n };\n case \"skipped\":\n return {\n icon: {\n lib: \"fa\",\n prefix: \"fas\",\n icon: \"ban\",\n },\n };\n default:\n return {\n icon: {\n lib: \"fa\",\n prefix: \"far\",\n icon: \"clock\",\n },\n };\n }\n}\n","import React, { useMemo } from \"react\";\nimport type { Job, TaskState } from \"../../cruise-canvas/interfaces.js\";\nimport styles from \"./AssistantMessage.module.css\";\nimport Avatar from \"../images/avatar@2x.png\";\nimport { NodeJob } from \"../NodeJob/NodeJob.js\";\nimport { NON_WORKING_STATES } from \"../../shared/constants.js\";\n\nexport interface AssistantMessageProps {\n jobs: Job[];\n taskState: TaskState | undefined;\n isLatest?: boolean;\n}\n\nexport function AssistantMessage({\n jobs,\n taskState,\n isLatest,\n}: AssistantMessageProps) {\n const working = useMemo(() => {\n if (!isLatest || NON_WORKING_STATES.includes(taskState!)) {\n return false;\n }\n for (const job of jobs) {\n if (job.state === \"input-required\") {\n return false;\n }\n }\n const lastJob = jobs[jobs.length - 1];\n if (lastJob && lastJob.state === \"working\" && lastJob.toolCall) {\n const toolName = lastJob.toolCall.name;\n if (\n toolName !== \"ask_human\" &&\n toolName !== \"ask_human_confirming_plan\"\n ) {\n return false;\n }\n }\n\n return true;\n }, [isLatest, jobs, taskState]);\n\n return (\n <div className={styles.assistant}>\n <div className={styles.avatar}>\n <img src={Avatar} width={32} height={32} alt=\"Elevo\" />\n </div>\n <div className={styles.body}>\n {jobs.map((job) => (\n <NodeJob key={job.id} job={job} taskState={taskState} />\n ))}\n {working && <div className={styles.texting}></div>}\n </div>\n </div>\n );\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, `.assistant--CrlgPgYL{display:flex}.body--sAIo2dhL{flex:1;min-width:0;padding:3px 0 3px 16px}.texting--Rpmsbpca::after{content:\" \";animation:texting--Rpmsbpca 2s infinite;white-space:pre}@keyframes texting--Rpmsbpca{0%{content:\" \"}25%{content:\". \"}50%{content:\".. \"}75%{content:\"...\"}100%{content:\" \"}}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"assistant\": `assistant--CrlgPgYL`,\n\t\"body\": `body--sAIo2dhL`,\n\t\"texting\": `texting--Rpmsbpca`\n};\nexport default ___CSS_LOADER_EXPORT___;\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, `.view--O8CNDdS_{background:rgba(255,255,255,0.6);border-radius:8px;border:1px solid rgba(0,0,0,0.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:12px 20px;width:var(--cruise-canvas-node-width-medium)}.large--jT3IWlRf{width:var(--cruise-canvas-node-width-large)}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"view\": `view--O8CNDdS_`,\n\t\"large\": `large--jT3IWlRf`\n};\nexport default ___CSS_LOADER_EXPORT___;\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\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `ai-portal\\\\.chat-stream{display:flex;position:relative;width:100%;height:100%;overflow:hidden;background-color:#f3f3f4;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:rgba(0,0,0,0.88);--cruise-canvas-node-width-small:330px;--cruise-canvas-node-width-medium:453px;--cruise-canvas-node-width-large:800px;--cruise-canvas-primary-color:var(--elevo-color-brand);--cruise-canvas-input-background:rgba(255,255,255,0.8);--cruise-canvas-input-box-shadow:0px 1px 0px 0px #ffffff,inset 0px 2px 4px 0px #b3bcf9}.container--IOwk4fR1{display:flex;flex-direction:column;position:relative;flex:1;min-width:0}.header--O9c4lNA3{height:54px;padding:0 24px;display:flex;align-items:center;justify-content:space-between}.header--O9c4lNA3 h1{font-weight:500;font-size:14px;margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.header--O9c4lNA3 .left--ed9ka1jF,.header--O9c4lNA3 .right--fs8TyVN3{width:24px}.main--KDIjetJs{overflow-y:auto;flex:1;padding:20px 24px}.narrow--xWih9UIb{width:100%;max-width:800px;margin:0 auto}.message--YIXGDQNi + .message--YIXGDQNi{margin-top:40px}.loading-icon--lagcmORP{flex:1;display:flex;align-items:center;justify-content:center;font-size:48px;color:#fff}.footer--aLZ8UWjM{padding:20px 24px}.aside--Xjd6To2A{width:0%;height:100%;transition:width 0.2s ease-in-out}.expanded--xZgk3uBF{width:50%}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"container\": `container--IOwk4fR1`,\n\t\"header\": `header--O9c4lNA3`,\n\t\"left\": `left--ed9ka1jF`,\n\t\"right\": `right--fs8TyVN3`,\n\t\"main\": `main--KDIjetJs`,\n\t\"narrow\": `narrow--xWih9UIb`,\n\t\"message\": `message--YIXGDQNi`,\n\t\"loading-icon\": `loading-icon--lagcmORP`,\n\t\"footer\": `footer--aLZ8UWjM`,\n\t\"aside\": `aside--Xjd6To2A`,\n\t\"expanded\": `expanded--xZgk3uBF`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","import { useMemo } from \"react\";\nimport type { Job, TaskBaseDetail } from \"../cruise-canvas/interfaces.js\";\nimport type { ChatMessage } from \"./interfaces.js\";\nimport { getOrderedJobs } from \"../cruise-canvas/getOrderedJobs.js\";\n\nexport function useChatStream(\n task: TaskBaseDetail | null | undefined,\n jobs: Job[] | null | undefined\n) {\n return useMemo(() => {\n if (!task) {\n return {};\n }\n\n const messages: ChatMessage[] = [\n {\n role: \"user\",\n content: task.requirement,\n },\n ];\n\n const { list, jobMap } = getOrderedJobs(jobs);\n\n let prevAssistantMessage: ChatMessage = {\n role: \"assistant\",\n jobs: [],\n };\n let inputRequiredJobId: string | null = null;\n for (const jobId of list) {\n const job = jobMap.get(jobId)!;\n prevAssistantMessage.jobs.push(job);\n\n const toolName = job.toolCall?.name;\n const askUser = toolName === \"ask_human\";\n if (askUser && job.state === \"completed\") {\n messages.push(prevAssistantMessage);\n\n loop: for (const msg of job.messages ?? []) {\n if (msg.role === \"tool\") {\n for (const part of msg.parts) {\n if (part.type === \"text\") {\n try {\n const { human_answer } = JSON.parse(part.text);\n messages.push({\n role: \"user\",\n content: human_answer,\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Error parsing human answer:\", error);\n }\n }\n break loop;\n }\n }\n }\n\n prevAssistantMessage = {\n role: \"assistant\",\n jobs: [],\n };\n }\n\n if (askUser && job.state === \"input-required\") {\n inputRequiredJobId = jobId;\n }\n }\n\n messages.push(prevAssistantMessage);\n\n return { messages, inputRequiredJobId };\n }, [task, jobs]);\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, `.aside--DDIdDtkt{padding:12px 12px 12px 0;height:100%}.box--niuFBiiQ{background:#ffffff;box-shadow:1px 1px 10px 0px rgba(0,10,26,0.1);border-radius:12px;height:100%}.heading--ngRi_rQ4{height:52px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(0,0,0,0.15);padding:0 20px}.title--HlE9yRcJ{font-weight:500;font-size:16px;color:#262626}.body--OLKz1zeC{flex:1;min-height:0;padding:20px}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"aside\": `aside--DDIdDtkt`,\n\t\"box\": `box--niuFBiiQ`,\n\t\"heading\": `heading--ngRi_rQ4`,\n\t\"title\": `title--HlE9yRcJ`,\n\t\"body\": `body--OLKz1zeC`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n CONFIRMING_PLAN_TIPS = \"CONFIRMING_PLAN_TIPS\",\n}\n\nconst en: Locale = {\n CONFIRMING_PLAN_TIPS:\n \"According to the request, I have made the following plan:\",\n};\n\nconst zh: Locale = {\n CONFIRMING_PLAN_TIPS: \"根据需求,我已制定如下计划:\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-stream\";\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"],"names":["___CSS_LOADER_EXPORT___","push","module","id","locals","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","undefined","UserMessage","_ref","content","React","className","styles","user","ICON_SHRINK","lib","icon","Aside","job","setActiveToolCallJobId","useContext","TaskContext","aside","box","heading","title","WrappedIconButton","variant","onClick","body","ToolCallStatus","HumanAdjustPlanResult","response","useMemo","_job$messages","msg","messages","find","role","_msg$parts","text","parts","part","type","JSON","parse","Array","isArray","steps","message","style","paddingLeft","Math","floor","log10","length","map","step","index","key","NodeView","size","setSize","useState","handleSizeChange","useCallback","value","classNames","view","large","CreatedView","onSizeChange","ICON_UP","NodeJob","_toolCall$annotations","_arguments","_arguments2","_arguments3","_job$messages2","taskState","toolCall","toolTitle","annotations","name","toolName","askUser","askUserPlan","generalAskUser","knownAskUser","includes","arguments","command","showToolCall","state","completed","theme","prefix","working","spinning","failed","canceled","getClassNameAndIconProps","toolMarkdownContent","cmdbInstanceDetails","contents","instanceDetails","files","forEach","_part$data","data","_part$data2","Object","keys","outputSchema","properties","detail","file","join","collapsed","setCollapsed","main","question","sharedStyles","markdown","EnhancedMarkdown","t","K","CONFIRMING_PLAN_TIPS","HumanAdjustPlan","jobId","_message$parts","partIndex","prev","WrappedIcon","instruction","_extends","caret","tool","CmdbInstanceDetail","generatedView","AssistantMessage","jobs","isLatest","NON_WORKING_STATES","lastJob","assistant","avatar","src","Avatar","width","height","alt","texting","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_REPLACEMENT_0___","useChatStream","task","requirement","list","jobMap","getOrderedJobs","prevAssistantMessage","inputRequiredJobId","_job$toolCall","get","loop","human_answer","error","console","NS","locales","en","zh","i18n","getFixedT"],"sourceRoot":""}
|