@next-bricks/ai-portal 0.27.2 → 0.27.4

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 (81) hide show
  1. package/dist/bricks.json +22 -22
  2. package/dist/chunks/1097.2d02ad95.js +3 -0
  3. package/dist/chunks/{2966.30d4dbdb.js.LICENSE.txt → 1097.2d02ad95.js.LICENSE.txt} +2 -2
  4. package/dist/chunks/1097.2d02ad95.js.map +1 -0
  5. package/dist/chunks/{5552.02ddc385.js → 3171.f486ac82.js} +2 -2
  6. package/dist/chunks/{3171.1b784ef4.js.map → 3171.f486ac82.js.map} +1 -1
  7. package/dist/chunks/{4306.27789c20.js → 4306.bae21d5d.js} +2 -2
  8. package/dist/chunks/4306.bae21d5d.js.map +1 -0
  9. package/dist/chunks/{7146.9e1f38b0.js → 4765.ae81ae59.js} +2 -2
  10. package/dist/chunks/4765.ae81ae59.js.map +1 -0
  11. package/dist/chunks/4820.4305acaa.js +2 -0
  12. package/dist/chunks/4820.4305acaa.js.map +1 -0
  13. package/dist/chunks/{4837.5b90ffe2.js → 4837.ef36f6e2.js} +2 -2
  14. package/dist/chunks/{7218.893a0ad4.js.map → 4837.ef36f6e2.js.map} +1 -1
  15. package/dist/chunks/{5054.dee4d597.js → 5054.0e746eec.js} +2 -2
  16. package/dist/chunks/{5054.dee4d597.js.map → 5054.0e746eec.js.map} +1 -1
  17. package/dist/chunks/{3171.1b784ef4.js → 5552.57a9edba.js} +2 -2
  18. package/dist/chunks/{5552.02ddc385.js.map → 5552.57a9edba.js.map} +1 -1
  19. package/dist/chunks/{4765.0d4af568.js → 7146.c0ae3b12.js} +2 -2
  20. package/dist/chunks/7146.c0ae3b12.js.map +1 -0
  21. package/dist/chunks/{7218.893a0ad4.js → 7218.13c19b72.js} +2 -2
  22. package/dist/chunks/{4837.5b90ffe2.js.map → 7218.13c19b72.js.map} +1 -1
  23. package/dist/chunks/871.42c14164.js +2 -0
  24. package/dist/chunks/871.42c14164.js.map +1 -0
  25. package/dist/chunks/{8928.31043568.js → 8928.c3da7b15.js} +3 -3
  26. package/dist/chunks/{8928.31043568.js.map → 8928.c3da7b15.js.map} +1 -1
  27. package/dist/chunks/9140.8e69fcb4.js +3 -0
  28. package/dist/chunks/9140.8e69fcb4.js.map +1 -0
  29. package/dist/chunks/981.e0bd1e25.js +2 -0
  30. package/dist/chunks/981.e0bd1e25.js.map +1 -0
  31. package/dist/chunks/{ai-agents.2da5692c.js → ai-agents.921e8399.js} +2 -2
  32. package/dist/chunks/{ai-agents.2da5692c.js.map → ai-agents.921e8399.js.map} +1 -1
  33. package/dist/chunks/{ai-employees.1c05e0e7.js → ai-employees.f2cc101e.js} +3 -3
  34. package/dist/chunks/{ai-employees.1c05e0e7.js.map → ai-employees.f2cc101e.js.map} +1 -1
  35. package/dist/chunks/{chat-box.2fbc1947.js → chat-box.b34adf84.js} +2 -2
  36. package/dist/chunks/{chat-box.2fbc1947.js.map → chat-box.b34adf84.js.map} +1 -1
  37. package/dist/chunks/{chat-history.a7ed7639.js → chat-history.d6faa19d.js} +3 -3
  38. package/dist/chunks/{chat-history.a7ed7639.js.map → chat-history.d6faa19d.js.map} +1 -1
  39. package/dist/chunks/{chat-stream.52db0e15.js → chat-stream.0274b098.js} +2 -2
  40. package/dist/chunks/{chat-stream.52db0e15.js.map → chat-stream.0274b098.js.map} +1 -1
  41. package/dist/chunks/{cruise-canvas.847fcd10.js → cruise-canvas.d4e9e5d8.js} +2 -2
  42. package/dist/chunks/{cruise-canvas.847fcd10.js.map → cruise-canvas.d4e9e5d8.js.map} +1 -1
  43. package/dist/chunks/{elevo-sidebar.c1b8a33b.js → elevo-sidebar.f02fd532.js} +3 -3
  44. package/dist/chunks/{elevo-sidebar.c1b8a33b.js.map → elevo-sidebar.f02fd532.js.map} +1 -1
  45. package/dist/chunks/{load-request-store.291fe1bf.js → load-request-store.eb92f754.js} +2 -2
  46. package/dist/chunks/{load-request-store.291fe1bf.js.map → load-request-store.eb92f754.js.map} +1 -1
  47. package/dist/chunks/main.b1cbab28.js +2 -0
  48. package/dist/chunks/{main.7f69e4a0.js.map → main.b1cbab28.js.map} +1 -1
  49. package/dist/chunks/{mcp-tools.169e225f.js → mcp-tools.089be187.js} +3 -3
  50. package/dist/chunks/{mcp-tools.169e225f.js.map → mcp-tools.089be187.js.map} +1 -1
  51. package/dist/chunks/{show-cases.cac0e03e.js → show-cases.f0f70cfb.js} +3 -3
  52. package/dist/chunks/{show-cases.cac0e03e.js.map → show-cases.f0f70cfb.js.map} +1 -1
  53. package/dist/examples.json +10 -10
  54. package/dist/index.978fd8b7.js +2 -0
  55. package/dist/index.978fd8b7.js.map +1 -0
  56. package/dist/manifest.json +200 -200
  57. package/dist/types.json +301 -301
  58. package/package.json +3 -3
  59. package/dist/chunks/2966.30d4dbdb.js +0 -3
  60. package/dist/chunks/2966.30d4dbdb.js.map +0 -1
  61. package/dist/chunks/4306.27789c20.js.map +0 -1
  62. package/dist/chunks/4765.0d4af568.js.map +0 -1
  63. package/dist/chunks/4820.e3f1d522.js +0 -2
  64. package/dist/chunks/4820.e3f1d522.js.map +0 -1
  65. package/dist/chunks/7146.9e1f38b0.js.map +0 -1
  66. package/dist/chunks/871.4a339fab.js +0 -2
  67. package/dist/chunks/871.4a339fab.js.map +0 -1
  68. package/dist/chunks/9140.5bed5052.js +0 -3
  69. package/dist/chunks/9140.5bed5052.js.map +0 -1
  70. package/dist/chunks/981.03a72180.js +0 -2
  71. package/dist/chunks/981.03a72180.js.map +0 -1
  72. package/dist/chunks/main.7f69e4a0.js +0 -2
  73. package/dist/index.bd7e0061.js +0 -2
  74. package/dist/index.bd7e0061.js.map +0 -1
  75. /package/dist/chunks/{8928.31043568.js.LICENSE.txt → 8928.c3da7b15.js.LICENSE.txt} +0 -0
  76. /package/dist/chunks/{9140.5bed5052.js.LICENSE.txt → 9140.8e69fcb4.js.LICENSE.txt} +0 -0
  77. /package/dist/chunks/{ai-employees.1c05e0e7.js.LICENSE.txt → ai-employees.f2cc101e.js.LICENSE.txt} +0 -0
  78. /package/dist/chunks/{chat-history.a7ed7639.js.LICENSE.txt → chat-history.d6faa19d.js.LICENSE.txt} +0 -0
  79. /package/dist/chunks/{elevo-sidebar.c1b8a33b.js.LICENSE.txt → elevo-sidebar.f02fd532.js.LICENSE.txt} +0 -0
  80. /package/dist/chunks/{mcp-tools.169e225f.js.LICENSE.txt → mcp-tools.089be187.js.LICENSE.txt} +0 -0
  81. /package/dist/chunks/{show-cases.cac0e03e.js.LICENSE.txt → show-cases.f0f70cfb.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/8928.31043568.js","mappings":"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","sources":["webpack:///./src/stat-with-mini-chart/styles.shadow.css","webpack:///./src/cruise-canvas/index.tsx","webpack:///./src/chat-box/i18n.ts","webpack:///./src/chat-box/index.tsx","webpack:///./src/home-container/index.tsx","webpack:///./src/chat-history/i18n.ts","webpack:///./src/chat-history/index.tsx","webpack:///./src/stat-with-mini-chart/index.tsx","webpack:///./src/elevo-logo/index.tsx","webpack:///./src/elevo-sidebar/i18n.ts","webpack:///./src/elevo-sidebar/bricks.ts","webpack:///../../node_modules/@next-api-sdk/llm-sdk/dist/esm/api/llm/agent_flow/searchTaskForAgentFlow.js","webpack:///./src/elevo-sidebar/ChatHistory.tsx","webpack:///./src/elevo-sidebar/index.tsx","webpack:///./src/icon-button/index.tsx","webpack:///./src/show-cases/i18n.ts","webpack:///./src/show-cases/index.tsx","webpack:///./src/mcp-tools/i18n.ts","webpack:///./src/mcp-tools/index.tsx","webpack:///./src/chat-stream/index.tsx","webpack:///./src/ai-employees/i18n.ts","webpack:///./src/ai-employees/index.tsx","webpack:///./src/ai-agents/i18n.ts","webpack:///./src/ai-agents/index.tsx","webpack:///./src/data-providers/request-store.ts","webpack:///./src/chat-history/styles.shadow.css","webpack:///./src/elevo-logo/styles.shadow.css","webpack:///./src/mcp-tools/styles.shadow.css","webpack:///./src/show-cases/styles.shadow.css","webpack:///./src/chat-box/styles.shadow.css","webpack:///./src/icon-button/styles.shadow.css","webpack:///./src/elevo-sidebar/styles.shadow.css","webpack:///./src/home-container/styles.shadow.css","webpack:///./src/ai-agents/styles.shadow.css","webpack:///./src/ai-employees/styles.shadow.css"],"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, `:host{display:block;white-space:nowrap}.container{border-radius:var(--elevo-border-radius)}:host([hidden]){display:none}*{box-sizing:border-box}.label{font-weight:500;overflow:hidden;text-overflow:ellipsis}.stat{font-weight:600}.chart{min-width:0}.chart > *{display:block}:host(:not([size=\"small\"])) .container{background:linear-gradient(164deg,rgba(105,153,253,0) 40%,rgba(105,153,253,0.05) 60%,rgba(105,153,253,0.32) 100%),#fff;padding:22px}:host(:not([size=\"small\"])) .label{font-size:14px;height:22px;margin-bottom:16px}:host(:not([size=\"small\"])) .stat-and-chart{display:flex;align-items:center;justify-content:end;position:relative}:host(:not([size=\"small\"])) .stat{font-size:36px;color:#1d212a;position:absolute;left:0}:host(:not([size=\"small\"])) .chart{width:calc(100% - 160px)}:host([size=\"small\"]) .container{padding:11px 15px;display:flex;align-items:center;justify-content:end;position:relative;background:var(--elevo-component-background);-webkit-backdrop-filter:var(--elevo-component-backdrop-filter);backdrop-filter:var(--elevo-component-backdrop-filter)}:host([size=\"small\"]) .label-and-stat{position:absolute;left:15px}:host([size=\"small\"]) .label{font-size:12px;color:#8c8c8c;line-height:17px;height:17px;margin-bottom:7px}:host([size=\"small\"]) .stat{font-size:20px;color:#262626;line-height:24px}:host([size=\"small\"]) .chart{width:calc(100% - 90px)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// istanbul ignore file: experimental\nimport React, { createRef, forwardRef } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { NS, locales } from \"./i18n.js\";\nimport type { Job, TaskBaseDetail, FeedbackDetail } from \"./interfaces.js\";\nimport { LegacyCruiseCanvasComponent } from \"./LegacyCruiseCanvas.js\";\nimport { CruiseCanvasComponent, type CruiseCanvasRef } from \"./CruiseCanvas.js\";\nimport type { RequestStore } from \"../shared/interfaces.js\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface CruiseCanvasProps {\n conversationId?: string;\n initialRequest?: RequestStore | null;\n taskId?: string;\n task?: TaskBaseDetail;\n jobs?: Job[];\n replay?: boolean;\n replayDelay?: number;\n supports?: Record<string, boolean>;\n showHiddenJobs?: boolean;\n showFeedback?: boolean;\n showUiSwitch?: boolean;\n showFeedbackOnView?: boolean;\n showJsxEditor?: boolean;\n}\n\nconst ForwardedLegacyCruiseCanvasComponent = forwardRef(\n LegacyCruiseCanvasComponent\n);\n\nconst ForwardedCruiseCanvasComponent = forwardRef(CruiseCanvasComponent);\n\n/**\n * 构件 `ai-portal.cruise-canvas`\n */\nexport\n@defineElement(\"ai-portal.cruise-canvas\", {\n // Will wrap v2 bricks which don't support in shadow DOM.\n shadowOptions: false,\n})\nclass CruiseCanvas extends ReactNextElement implements CruiseCanvasProps {\n @property()\n accessor conversationId: string | undefined;\n\n /** 初始请求数据。仅初始设置有效。 */\n @property({ attribute: false, render: false })\n accessor initialRequest: RequestStore | undefined | null;\n\n @property()\n accessor taskId: string | undefined;\n\n @property({ attribute: false })\n accessor task: TaskBaseDetail | undefined;\n\n @property({ attribute: false })\n accessor jobs: Job[] | undefined;\n\n /** 是否启用回放。仅初始设置有效。 */\n @property({ type: Boolean, render: false })\n accessor replay: boolean | undefined;\n\n /**\n * 设置回放时消息之间的时间间隔,单位为秒。仅初始设置有效。\n *\n * @default 2\n */\n @property({ type: Number, render: false })\n accessor replayDelay: number | undefined;\n\n @property({ attribute: false })\n accessor supports: Record<string, boolean> | undefined;\n\n @property({ type: Boolean })\n accessor showHiddenJobs: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedback: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedbackOnView: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showUiSwitch: boolean | undefined;\n\n @property({ type: Boolean, render: false })\n accessor hideMermaid: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showJsxEditor: boolean | undefined;\n\n @event({ type: \"share\" })\n accessor #shareEvent!: EventEmitter<void>;\n\n #onShare = () => {\n this.#shareEvent.emit();\n };\n\n @event({ type: \"terminate\" })\n accessor #terminateEvent!: EventEmitter<void>;\n\n #onTerminate = () => {\n this.#terminateEvent.emit();\n };\n\n @event({ type: \"feedback.submit\" })\n accessor #feedbackSubmitEvent!: EventEmitter<FeedbackDetail>;\n\n #onSubmitFeedback = (detail: FeedbackDetail) => {\n this.#feedbackSubmitEvent.emit(detail);\n };\n\n @event({ type: \"feedback.on.view\" })\n accessor #feedbackOnViewEvent!: EventEmitter<string>;\n\n #onFeedbackOnView = (viewId: string) => {\n this.#feedbackOnViewEvent.emit(viewId);\n };\n\n @event({ type: \"ui.switch\" })\n accessor #switch!: EventEmitter<\"chat\">;\n\n #onSwitchToChat = () => {\n this.#switch.emit(\"chat\");\n };\n\n #ref = createRef<CruiseCanvasRef>();\n\n @method()\n resumed() {\n this.#ref.current?.resumed?.();\n }\n\n @method()\n feedbackSubmitDone() {\n this.#ref.current?.feedbackSubmitDone();\n }\n\n @method()\n feedbackSubmitFailed() {\n this.#ref.current?.feedbackSubmitFailed();\n }\n\n @method()\n feedbackOnViewDone(viewId: string) {\n this.#ref.current?.feedbackOnViewDone(viewId);\n }\n\n render() {\n const Component = this.conversationId\n ? ForwardedCruiseCanvasComponent\n : ForwardedLegacyCruiseCanvasComponent;\n return (\n <Component\n conversationId={this.conversationId!}\n initialRequest={this.initialRequest}\n taskId={this.taskId}\n jobs={this.jobs}\n task={this.task}\n replay={this.replay}\n replayDelay={this.replayDelay}\n supports={this.supports}\n showHiddenJobs={this.showHiddenJobs}\n showFeedback={this.showFeedback}\n showUiSwitch={this.showUiSwitch}\n showFeedbackOnView={this.showFeedbackOnView}\n showJsxEditor={this.showJsxEditor}\n onShare={this.#onShare}\n onTerminate={this.#onTerminate}\n onSubmitFeedback={this.#onSubmitFeedback}\n onSwitchToChat={this.#onSwitchToChat}\n onFeedbackOnView={this.#onFeedbackOnView}\n ref={this.#ref}\n />\n );\n }\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ASK_ANY_THING = \"ASK_ANYTHING\",\n COMMON_TASKS = \"COMMON_TASKS\",\n}\n\nconst en: Locale = {\n [K.ASK_ANY_THING]: \"Ask anything\",\n [K.COMMON_TASKS]: \"Common tasks\",\n};\n\nconst zh: Locale = {\n [K.ASK_ANY_THING]: \"询问任何问题\",\n [K.COMMON_TASKS]: \"常用任务\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-box\";\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","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport {\n TextareaAutoResize,\n type TextareaAutoResizeRef,\n} from \"@next-shared/form\";\nimport { chunk } from \"lodash\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport tips from \"./images/tips.svg\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ChatBoxProps {\n disabled?: boolean;\n placeholder?: string;\n autoFocus?: boolean;\n suggestions?: Suggestion[];\n suggestionsLabel?: string;\n}\n\nexport interface Suggestion {\n title: string;\n content: string;\n}\n\n/**\n * 构件 `ai-portal.chat-box`\n */\nexport\n@defineElement(\"ai-portal.chat-box\", {\n styleTexts: [styleText],\n})\nclass ChatBox extends ReactNextElement implements ChatBoxProps {\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n @property()\n accessor placeholder: string | undefined;\n\n @property({ type: Boolean })\n accessor autoFocus: boolean | undefined;\n\n @property({ attribute: false })\n accessor suggestions: Suggestion[] | undefined;\n\n @property()\n accessor suggestionsLabel: string | undefined;\n\n @event({ type: \"message.submit\" })\n accessor #messageSubmit!: EventEmitter<string>;\n\n #handleMessageSubmit = (value: string) => {\n this.#messageSubmit.emit(value);\n };\n\n render() {\n return (\n <ChatBoxComponent\n disabled={this.disabled}\n placeholder={this.placeholder}\n autoFocus={this.autoFocus}\n suggestions={this.suggestions}\n suggestionsLabel={this.suggestionsLabel}\n onSubmit={this.#handleMessageSubmit}\n />\n );\n }\n}\n\nexport interface ChatBoxComponentProps extends ChatBoxProps {\n // Define react event handlers here.\n onSubmit?: (value: string) => void;\n}\n\nexport function ChatBoxComponent({\n disabled,\n placeholder,\n autoFocus,\n suggestions,\n suggestionsLabel,\n onSubmit,\n}: ChatBoxComponentProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const textareaRef = useRef<TextareaAutoResizeRef>(null);\n const [value, setValue] = useState(\"\");\n const valueRef = useRef(\"\");\n\n const handleSubmit = useCallback(\n (e: React.FormEvent<HTMLTextAreaElement>) => {\n if (e.currentTarget.value) {\n onSubmit?.(e.currentTarget.value);\n }\n },\n [onSubmit]\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n valueRef.current = e.target.value;\n setValue(e.target.value);\n },\n []\n );\n\n const handleSubmitClick = useCallback(() => {\n onSubmit?.(valueRef.current);\n }, [onSubmit]);\n\n useEffect(\n () => {\n if (autoFocus) {\n Promise.resolve().then(() => {\n textareaRef.current?.focus();\n });\n }\n },\n // One-time focus\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n // istanbul ignore next: experimental\n const groupedSuggestions = useMemo(() => {\n if (!suggestions?.length) {\n return [];\n }\n return chunk(suggestions, Math.max(2, Math.ceil(suggestions.length / 2)));\n }, [suggestions]);\n\n // istanbul ignore next: experimental\n const handleSelectSuggestion = useCallback((suggestion: Suggestion) => {\n valueRef.current = suggestion.content;\n setValue(suggestion.content);\n setTimeout(() => {\n textareaRef.current?.focus();\n });\n }, []);\n\n return (\n <div className=\"root\">\n <div className=\"container\" ref={containerRef}>\n <TextareaAutoResize\n containerRef={containerRef}\n ref={textareaRef}\n value={value}\n minRows={3}\n paddingSize={62}\n autoResize\n disabled={disabled}\n placeholder={placeholder ?? t(K.ASK_ANY_THING)}\n submitWhen=\"enter-without-shift\"\n onSubmit={handleSubmit}\n onChange={handleChange}\n />\n <button\n className=\"btn-send\"\n disabled={!value}\n onClick={handleSubmitClick}\n >\n <WrappedIcon lib=\"fa\" prefix=\"fas\" icon=\"arrow-up\" />\n </button>\n </div>\n {\n // istanbul ignore next: experimental\n !!groupedSuggestions?.length && (\n <div className=\"suggestions\">\n <div className=\"heading\">\n <img\n className=\"icon\"\n src={tips as unknown as string}\n width={16}\n height={16}\n />\n <span>{suggestionsLabel ?? t(K.COMMON_TASKS)}</span>\n </div>\n {groupedSuggestions.map((group, index) => (\n <SuggestionCarousel\n key={index}\n suggestions={group}\n pixelPerSecond={(index + 2) * 10}\n onSelect={handleSelectSuggestion}\n />\n ))}\n </div>\n )\n }\n </div>\n );\n}\n\nexport interface SuggestionCarouselProps {\n suggestions: Suggestion[];\n pixelPerSecond: number;\n onSelect: (suggestion: Suggestion) => void;\n}\n\n// istanbul ignore next: experimental\nfunction SuggestionCarousel({\n suggestions,\n pixelPerSecond,\n onSelect,\n}: SuggestionCarouselProps) {\n const carouselRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLUListElement>(null);\n const [x, setX] = useState(0);\n\n // Auto scroll suggestions infinitely.\n // Stop scrolling when mouse enter, and resume when mouse leave.\n useEffect(() => {\n const carousel = carouselRef.current;\n const list = listRef.current;\n\n if (!carousel || !list) {\n return;\n }\n\n let previousTimestamp: number | undefined;\n let currentTimestamp: number | undefined;\n let offsetTime = 0;\n let start: number | undefined;\n let timer: number;\n\n // We doubled the suggestions to make it scroll infinitely.\n const gap = 7;\n const listSingleWidth = (list.offsetWidth - gap) / 2;\n const mod = listSingleWidth + gap;\n\n function step(timestamp: number) {\n currentTimestamp = timestamp;\n if (start === undefined) {\n start = timestamp;\n }\n if (previousTimestamp !== undefined) {\n offsetTime += timestamp - previousTimestamp;\n previousTimestamp = undefined;\n }\n const elapsed = timestamp - start - offsetTime;\n setX(((elapsed / 1000) * pixelPerSecond) % mod);\n timer = requestAnimationFrame(step);\n }\n\n timer = requestAnimationFrame(step);\n\n const onMouseEnter = () => {\n cancelAnimationFrame(timer);\n previousTimestamp = currentTimestamp;\n };\n const onMouseLeave = () => {\n timer = requestAnimationFrame(step);\n };\n\n carousel.addEventListener(\"mouseenter\", onMouseEnter);\n carousel.addEventListener(\"mouseleave\", onMouseLeave);\n\n return () => {\n cancelAnimationFrame(timer);\n carousel.removeEventListener(\"mouseenter\", onMouseEnter);\n carousel.removeEventListener(\"mouseleave\", onMouseLeave);\n };\n }, [suggestions, pixelPerSecond]);\n\n return (\n <div className=\"carousel\" ref={carouselRef}>\n <ul\n className=\"list\"\n ref={listRef}\n style={{ transform: `translateX(${-x}px)` }}\n >\n {[...suggestions, ...suggestions].map((item, index) => (\n <li key={index}>\n <div\n className=\"item\"\n onClick={() => onSelect(item)}\n title={item.content}\n >\n <div className=\"title\">{item.title}</div>\n <div className=\"content\">{item.content}</div>\n </div>\n </li>\n ))}\n </ul>\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement } = createDecorators();\n\n/**\n * 构件 `ai-portal.home-container`\n */\nexport\n@defineElement(\"ai-portal.home-container\", {\n styleTexts: [styleText],\n})\nclass HomeContainer extends ReactNextElement {\n render() {\n return <HomeContainerComponent />;\n }\n}\n\nexport function HomeContainerComponent() {\n return <slot />;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n TODAY = \"TODAY\",\n YESTERDAY = \"YESTERDAY\",\n PREVIOUS_7_DAYS = \"PREVIOUS_7_DAYS\",\n PREVIOUS_30_DAYS = \"PREVIOUS_30_DAYS\",\n}\n\nconst en: Locale = {\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};\n\nconst zh: Locale = {\n [K.TODAY]: \"今天\",\n [K.YESTERDAY]: \"昨天\",\n [K.PREVIOUS_7_DAYS]: \"过去7天\",\n [K.PREVIOUS_30_DAYS]: \"过去30天\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-history\";\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","// istanbul ignore file: experimental\nimport React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport moment from \"moment\";\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 ActionType,\n EoMiniActions,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping,\n EoMiniActionsProps,\n SimpleActionType,\n} from \"@next-bricks/basic/mini-actions\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport type { TaskState } from \"../cruise-canvas/interfaces.js\";\nimport { DONE_STATES } from \"../shared/constants.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedMiniActions = wrapBrick<\n EoMiniActions,\n EoMiniActionsProps,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping\n>(\"eo-mini-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ChatHistoryProps {\n list?: HistoryItem[];\n actions?: ActionType[];\n nextToken?: string;\n}\n\nexport interface HistoryItem {\n id: string;\n url: string;\n title: string;\n startTime: number;\n state?: TaskState;\n}\n\nexport interface ActionClickDetail {\n action: SimpleActionType;\n item: HistoryItem;\n}\n\n/**\n * 构件 `ai-portal.chat-history`\n */\nexport\n@defineElement(\"ai-portal.chat-history\", {\n styleTexts: [styleText],\n})\nclass ChatHistory extends ReactNextElement implements ChatHistoryProps {\n @property({ attribute: false })\n accessor list: HistoryItem[] | undefined;\n\n @property({ attribute: false })\n accessor actions: ActionType[] | undefined;\n\n @property()\n accessor nextToken: string | undefined;\n\n @event({ type: \"action.click\" })\n accessor #actionClick!: EventEmitter<ActionClickDetail>;\n\n #handleActionClick = (detail: ActionClickDetail) => {\n this.#actionClick.emit(detail);\n };\n\n @event({ type: \"load.more\" })\n accessor #loadMore!: EventEmitter<{ nextToken: string }>;\n\n #handleLoadMore = (nextToken: string) => {\n this.#loadMore.emit({ nextToken });\n };\n\n render() {\n return (\n <ChatHistoryComponent\n root={this}\n list={this.list}\n actions={this.actions}\n nextToken={this.nextToken}\n onActionClick={this.#handleActionClick}\n onLoadMore={this.#handleLoadMore}\n />\n );\n }\n}\n\nexport interface ChatHistoryComponentProps extends ChatHistoryProps {\n root: HTMLElement;\n onActionClick: (detail: ActionClickDetail) => void;\n onLoadMore: (nextToken: string) => void;\n}\n\ninterface GroupedHistory {\n title: string;\n items: HistoryItem[];\n}\n\nexport function ChatHistoryComponent({\n root,\n list,\n actions,\n nextToken,\n onActionClick,\n onLoadMore,\n}: ChatHistoryComponentProps) {\n const groups = useMemo(() => {\n const groupMap = new Map<string, GroupedHistory>();\n // Group history by\n // - today\n // - yesterday\n // - previous 7 days\n // - previous 30 days\n // - each month this year\n // - each year before.\n const now = moment();\n const startOfDay = now.clone().startOf(\"day\");\n const yesterday = startOfDay.clone().subtract(1, \"day\");\n const sevenDaysAgo = startOfDay.clone().subtract(7, \"days\");\n const thirtyDaysAgo = startOfDay.clone().subtract(30, \"days\");\n const thisYear = now.clone().startOf(\"year\");\n\n const timestamps = {\n startOfDay: +startOfDay / 1000,\n yesterday: +yesterday / 1000,\n sevenDaysAgo: +sevenDaysAgo / 1000,\n thirtyDaysAgo: +thirtyDaysAgo / 1000,\n thisYear: +thisYear / 1000,\n };\n for (const item of list ?? []) {\n let groupKey: string;\n if (item.startTime >= timestamps.startOfDay) {\n groupKey = t(K.TODAY);\n } else if (item.startTime >= timestamps.yesterday) {\n groupKey = t(K.YESTERDAY);\n } else if (item.startTime >= timestamps.sevenDaysAgo) {\n groupKey = t(K.PREVIOUS_7_DAYS);\n } else if (item.startTime >= timestamps.thirtyDaysAgo) {\n groupKey = t(K.PREVIOUS_30_DAYS);\n } else if (item.startTime >= timestamps.thisYear) {\n groupKey = moment(item.startTime * 1000).format(\"MMMM\");\n } else {\n groupKey = moment(item.startTime * 1000).format(\"YYYY\");\n }\n let group = groupMap.get(groupKey);\n if (!group) {\n groupMap.set(groupKey, (group = { title: groupKey, items: [] }));\n }\n group.items.push(item);\n }\n\n return [...groupMap.values()];\n }, [list]);\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 if (!next || !nextToken) {\n return;\n }\n const observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n onLoadMore(nextToken);\n }\n }\n },\n { root }\n );\n observer.observe(next);\n return () => {\n observer.disconnect();\n };\n }, [nextToken, onLoadMore, root]);\n\n if (!list) {\n return (\n <div className=\"loading\">\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </div>\n );\n }\n\n return (\n <>\n <ul>\n {groups.map((group) => (\n <li key={group.title} className=\"group\">\n <div className=\"group-title\">{group.title}</div>\n <ul className=\"items\">\n {group.items.map((item) => (\n <li key={item.id}>\n <WrappedLink\n className={classNames(\"item\", {\n active: actionsVisible === item.id,\n })}\n url={item.url}\n >\n <div className=\"item-title\" title={item.title}>\n {item.title}\n </div>\n <WrappedMiniActions\n className=\"actions\"\n actions={actions}\n onActionClick={(e) => {\n onActionClick({ action: e.detail, item });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(e.detail ? item.id : null);\n }}\n />\n {!DONE_STATES.includes(item.state!) && (\n <div className=\"working\"></div>\n )}\n </WrappedLink>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n {nextToken && (\n <div className=\"load-more\" ref={nextRef}>\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n )}\n </>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n MiniLineChart,\n MiniLineChartProps,\n} from \"@next-bricks/mini-chart/mini-line-chart\";\n\nconst WrappedMiniLineChart = wrapBrick<MiniLineChart, MiniLineChartProps>(\n \"eo-mini-line-chart\"\n);\n\nconst { defineElement, property } = createDecorators();\n\nexport interface StatWithMiniChartProps\n extends Pick<\n MiniLineChartProps,\n \"data\" | \"xField\" | \"yField\" | \"lineColor\" | \"showArea\" | \"min\" | \"max\"\n > {\n label?: string;\n value?: string;\n size?: \"medium\" | \"small\";\n}\n\n/**\n * 构件 `ai-portal.stat-with-mini-chart`\n */\nexport\n@defineElement(\"ai-portal.stat-with-mini-chart\", {\n styleTexts: [styleText],\n})\nclass StatWithMiniChart\n extends ReactNextElement\n implements StatWithMiniChartProps\n{\n @property()\n accessor label: string | undefined;\n\n @property()\n accessor value: string | undefined;\n\n /**\n * @default \"medium\"\n */\n @property()\n accessor size: \"medium\" | \"small\" | undefined;\n\n /**\n * @default \"var(--color-brand)\"\n */\n @property()\n accessor lineColor: string | undefined;\n\n @property({ type: Boolean })\n accessor showArea: boolean | undefined;\n\n /**\n * Specify the minimum value of the y-axis.\n * If not specified, the minimum value will be calculated from the data.\n */\n @property({ type: Number })\n accessor min: number | undefined;\n\n /**\n * Specify the maximum value of the y-axis.\n * If not specified, the maximum value will be calculated from the data.\n */\n @property({ type: Number })\n accessor max: number | undefined;\n\n /**\n * @default \"0\"\n */\n @property()\n accessor xField: string | undefined;\n\n /**\n * @default \"1\"\n */\n @property()\n accessor yField: string | undefined;\n\n @property({ attribute: false })\n accessor data: Record<string, number>[] | undefined;\n\n render() {\n return (\n <StatWithMiniChartComponent\n label={this.label}\n value={this.value}\n size={this.size}\n lineColor={this.lineColor}\n showArea={this.showArea}\n min={this.min}\n max={this.max}\n xField={this.xField}\n yField={this.yField}\n data={this.data}\n />\n );\n }\n}\n\nfunction StatWithMiniChartComponent({\n label,\n value,\n size,\n ...chartProps\n}: StatWithMiniChartProps) {\n if (size === \"small\") {\n return (\n <div className=\"container\">\n <div className=\"label-and-stat\">\n <div className=\"label\">{label}</div>\n <div className=\"stat\">{value}</div>\n </div>\n <div className=\"chart\">\n <WrappedMiniLineChart\n {...chartProps}\n lineWidth={1.5}\n width=\"auto\"\n height=\"55\"\n />\n </div>\n </div>\n );\n }\n return (\n <div className=\"container\">\n <div className=\"label\">{label}</div>\n <div className=\"stat-and-chart\">\n <div className=\"chart\">\n <WrappedMiniLineChart\n {...chartProps}\n lineWidth={2}\n width=\"auto\"\n height=\"92\"\n />\n </div>\n <div className=\"stat\">{value}</div>\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport logoImage from \"./images/logo@2x.png\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement } = createDecorators();\n\n/**\n * Elevo Logo\n */\nexport\n@defineElement(\"ai-portal.elevo-logo\", {\n styleTexts: [styleText],\n})\nclass ElevoLogo extends ReactNextElement {\n render() {\n return <ElevoLogoComponent />;\n }\n}\n\nfunction ElevoLogoComponent() {\n return <img src={logoImage} alt=\"Elevo\" width={95} height={28} />;\n}\n","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}\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};\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};\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","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,\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 分页查询agent flow, 默认只查询最近三个页的数据\n * @endpoint POST /api/v1/llm/agent/flow/search\n */\nexport const AgentFlowApi_searchTaskForAgentFlow = async (data, options) => /**! @contract easyops.api.llm.agent_flow.SearchTaskForAgentFlow@1.0.0 */(await http.post(\"api/gateway/logic.llm.aiops_service/api/v1/llm/agent/flow/search\", data, options)).data;\n//# sourceMappingURL=searchTaskForAgentFlow.js.map","import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport moment from \"moment\";\nimport classNames from \"classnames\";\nimport { AgentFlowApi_searchTaskForAgentFlow } from \"@next-api-sdk/llm-sdk\";\nimport type {\n ActionType,\n SimpleActionType,\n} from \"@next-bricks/basic/mini-actions\";\nimport { get, isEqual } from \"lodash\";\nimport { K, t } from \"./i18n.js\";\nimport type { TaskState } from \"../cruise-canvas/interfaces.js\";\nimport { WrappedIcon, WrappedLink, WrappedMiniActions } from \"./bricks.js\";\nimport { DONE_STATES } from \"../shared/constants.js\";\n\nexport interface HistoryItem {\n id: string;\n title: string;\n startTime: number;\n state?: TaskState;\n}\n\nexport interface GroupedHistory {\n title: string;\n items: HistoryItem[];\n}\n\nexport interface ActionClickDetail {\n action: SimpleActionType;\n item: HistoryItem;\n}\n\nexport interface ChatHistoryProps {\n activeId?: string;\n urlTemplate?: string;\n actions?: ActionType[];\n onActionClick: (detail: ActionClickDetail) => void;\n onHistoryClick: () => void;\n}\n\nexport interface ChatHistoryRef {\n pull: () => void;\n}\n\nexport const ChatHistory = forwardRef(LegacyChatHistory);\n\nexport function LegacyChatHistory(\n {\n activeId,\n actions,\n urlTemplate,\n onActionClick,\n onHistoryClick,\n }: ChatHistoryProps,\n ref: React.Ref<ChatHistoryRef>\n) {\n const rootRef = useRef<HTMLDivElement | null>(null);\n const [list, setList] = useState<HistoryItem[] | null>(null);\n const [nextToken, setNextToken] = useState<string | undefined>();\n const [loadNextToken, setLoadNextToken] = useState<string | undefined>();\n\n useEffect(() => {\n Promise.all([\n AgentFlowApi_searchTaskForAgentFlow(\n { next_token: loadNextToken },\n {\n interceptorParams: {\n ignoreLoadingBar: true,\n },\n }\n ),\n new Promise((resolve) => setTimeout(resolve, 500)), // Force a minimum delay\n ])\n .then(([data]) => {\n setList((prev) => [...(prev ?? []), ...(data.data as HistoryItem[])]);\n setNextToken(data.next_token);\n })\n .catch((error) => {\n if (process.env.NODE_ENV !== \"test\") {\n // eslint-disable-next-line no-console\n console.error(\"Error loading chat history:\", error);\n }\n });\n }, [loadNextToken]);\n\n const groups = useMemo(() => {\n const groupMap = new Map<string, GroupedHistory>();\n // Group history by\n // - today\n // - yesterday\n // - previous 7 days\n // - previous 30 days\n // - each month this year\n // - each year before.\n const now = moment();\n const startOfDay = now.clone().startOf(\"day\");\n const yesterday = startOfDay.clone().subtract(1, \"day\");\n const sevenDaysAgo = startOfDay.clone().subtract(7, \"days\");\n const thirtyDaysAgo = startOfDay.clone().subtract(30, \"days\");\n const thisYear = now.clone().startOf(\"year\");\n\n const timestamps = {\n startOfDay: +startOfDay / 1000,\n yesterday: +yesterday / 1000,\n sevenDaysAgo: +sevenDaysAgo / 1000,\n thirtyDaysAgo: +thirtyDaysAgo / 1000,\n thisYear: +thisYear / 1000,\n };\n for (const item of list ?? []) {\n let groupKey: string;\n if (item.startTime >= timestamps.startOfDay) {\n groupKey = t(K.TODAY);\n } else if (item.startTime >= timestamps.yesterday) {\n groupKey = t(K.YESTERDAY);\n } else if (item.startTime >= timestamps.sevenDaysAgo) {\n groupKey = t(K.PREVIOUS_7_DAYS);\n } else if (item.startTime >= timestamps.thirtyDaysAgo) {\n groupKey = t(K.PREVIOUS_30_DAYS);\n } else if (item.startTime >= timestamps.thisYear) {\n groupKey = moment(item.startTime * 1000).format(\"MMMM\");\n } else {\n groupKey = moment(item.startTime * 1000).format(\"YYYY\");\n }\n let group = groupMap.get(groupKey);\n if (!group) {\n groupMap.set(groupKey, (group = { title: groupKey, items: [] }));\n }\n group.items.push(item);\n }\n\n return [...groupMap.values()];\n }, [list]);\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) {\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]);\n\n const pullIdRef = useRef(0);\n\n const pull = useCallback(async () => {\n try {\n const pullId = ++pullIdRef.current;\n const list = await AgentFlowApi_searchTaskForAgentFlow(\n {},\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 setList((prev) => {\n const prevList = prev ?? [];\n const newList = list.data as HistoryItem[];\n const newIds = new Set(newList.map((item) => item.id));\n const newItemsMap = new Map(newList.map((item) => [item.id, item]));\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.id);\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(list.next_token);\n return newList;\n }\n\n if (foundChanged) {\n return [\n ...newList,\n ...prevList.filter((item) => !newIds.has(item.id)),\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 }),\n [pull]\n );\n\n if (!list) {\n return (\n <div className=\"history\">\n <div className=\"loading\">\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"history\" ref={rootRef}>\n <ul>\n {groups.map((group) => (\n <li key={group.title} className=\"group\">\n <div className=\"group-title\">{group.title}</div>\n <ul className=\"items\">\n {group.items.map((item) => (\n <li key={item.id}>\n <WrappedLink\n className={classNames(\"item\", {\n \"actions-active\": item.id === actionsVisible,\n active: item.id === activeId,\n })}\n onClick={onHistoryClick}\n {...(urlTemplate\n ? { url: parseTemplate(urlTemplate, item) }\n : null)}\n >\n <div className=\"item-title\" title={item.title}>\n {item.title}\n </div>\n <WrappedMiniActions\n className=\"actions\"\n actions={actions}\n onActionClick={(e) => {\n onActionClick({ action: e.detail, item });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(e.detail ? item.id : null);\n }}\n />\n {!DONE_STATES.includes(item.state!) && (\n <div className=\"working\"></div>\n )}\n </WrappedLink>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n {nextToken && (\n <div className=\"load-more\" ref={nextRef}>\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n )}\n </div>\n );\n}\n\nfunction parseTemplate(\n template: string | undefined,\n context: Record<string, any>\n) {\n return template?.replace(/{{(.*?)}}/g, (_match: string, key: string) => {\n const value = get(context, key);\n return value;\n });\n}\n","import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { getHistory } from \"@next-core/runtime\";\nimport classNames from \"classnames\";\nimport type { DropdownActionsProps } from \"@next-bricks/basic/dropdown-actions\";\nimport type { ActionType } from \"@next-bricks/basic/mini-actions\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport ElevoLogo from \"../elevo-logo/images/logo@2x.png\";\nimport {\n WrappedDropdownActions,\n WrappedEasyopsAvatar,\n WrappedIcon,\n WrappedIconButton,\n WrappedLink,\n} from \"./bricks.js\";\nimport {\n ChatHistory,\n type ActionClickDetail,\n type ChatHistoryRef,\n} from \"./ChatHistory.js\";\n\ninitializeI18n(NS, locales);\n\nconst SIDEBAR_ICON: GeneralIconProps = {\n lib: \"easyops\",\n icon: \"sidebar\",\n};\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ElevoSidebarProps {\n userInstanceId?: string;\n behavior?: \"default\" | \"drawer\";\n logoUrl?: string;\n newChatUrl?: string;\n historyActiveId?: string;\n historyUrlTemplate?: string;\n historyActions?: ActionType[];\n links?: SidebarLink[];\n}\n\nexport interface SidebarLink {\n title: string;\n url: string;\n icon: GeneralIconProps;\n}\n\nconst ElevoSidebarComponent = forwardRef(LegacyElevoSidebarComponent);\n\ninterface ElevoSidebarRef extends ChatHistoryRef {\n close: () => void;\n}\n\n/**\n * 构件 `ai-portal.elevo-sidebar`\n */\nexport\n@defineElement(\"ai-portal.elevo-sidebar\", {\n styleTexts: [styleText],\n})\nclass ElevoSidebar extends ReactNextElement implements ElevoSidebarProps {\n @property()\n accessor userInstanceId: string | undefined;\n\n @property()\n accessor behavior: \"default\" | \"drawer\" | undefined;\n\n @property()\n accessor logoUrl: string | undefined;\n\n @property()\n accessor newChatUrl: string | undefined;\n\n @property()\n accessor historyActiveId: string | undefined;\n\n @property()\n accessor historyUrlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor historyActions: ActionType[] | undefined;\n\n @property({ attribute: false })\n accessor links: SidebarLink[] | undefined;\n\n @event({ type: \"logout\" })\n accessor #logout!: EventEmitter<void>;\n\n #handleLogout = () => {\n this.#logout.emit();\n };\n\n @event({ type: \"action.click\" })\n accessor #actionClick!: EventEmitter<ActionClickDetail>;\n\n #handleActionClick = (detail: ActionClickDetail) => {\n this.#actionClick.emit(detail);\n };\n\n #ref = createRef<ElevoSidebarRef>();\n\n /**\n * @param delay Delay in milliseconds before pulling the latest chat history.\n */\n @method()\n pullHistory(delay: number) {\n // Wait several seconds to let the task title to be summarized.\n setTimeout(() => {\n this.#ref.current?.pull();\n }, delay);\n }\n\n @method()\n close() {\n this.#ref.current?.close();\n }\n\n render() {\n return (\n <ElevoSidebarComponent\n ref={this.#ref}\n userInstanceId={this.userInstanceId}\n behavior={this.behavior}\n logoUrl={this.logoUrl}\n newChatUrl={this.newChatUrl}\n historyActiveId={this.historyActiveId}\n historyUrlTemplate={this.historyUrlTemplate}\n historyActions={this.historyActions}\n links={this.links}\n onLogout={this.#handleLogout}\n onActionClick={this.#handleActionClick}\n />\n );\n }\n}\n\ninterface ElevoSidebarComponentProps extends ElevoSidebarProps {\n onLogout: () => void;\n onActionClick: (detail: ActionClickDetail) => void;\n}\n\nfunction LegacyElevoSidebarComponent(\n {\n userInstanceId,\n behavior,\n logoUrl,\n newChatUrl,\n historyActiveId,\n historyUrlTemplate,\n historyActions,\n links,\n onLogout,\n onActionClick,\n }: ElevoSidebarComponentProps,\n ref: React.Ref<ElevoSidebarRef>\n) {\n const [collapsed, setCollapsed] = useState(behavior === \"drawer\");\n const handleCollapse = useCallback(() => {\n setCollapsed(true);\n }, []);\n const handleExpand = useCallback(() => {\n setCollapsed(false);\n }, []);\n\n useEffect(() => {\n if (behavior === \"drawer\") {\n setCollapsed(true);\n }\n }, [behavior]);\n\n const handleClickMask = useCallback(() => {\n setCollapsed(true);\n }, []);\n\n const handleHistoryClick = useCallback(() => {\n if (behavior === \"drawer\") {\n setCollapsed(true);\n }\n }, [behavior]);\n\n const dropdownActions = useMemo<DropdownActionsProps[\"actions\"]>(\n () => [\n {\n key: \"logout\",\n icon: {\n lib: \"fa\",\n prefix: \"fas\",\n icon: \"arrow-right-from-bracket\",\n },\n text: t(K.LOGOUT),\n },\n {\n key: \"switch-language\",\n icon: {\n lib: \"easyops\",\n icon: \"language\",\n },\n text: t(K.SWITCH_LANGUAGE),\n },\n ],\n []\n );\n\n const historyRef = useRef<ChatHistoryRef>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n close: () => {\n setCollapsed(true);\n },\n pull: () => {\n historyRef.current?.pull();\n },\n }),\n []\n );\n\n return (\n <div className={classNames(\"container\", { collapsed })}>\n {behavior === \"drawer\" && !collapsed && (\n <div className=\"mask\" onClick={handleClickMask} />\n )}\n <div className=\"alternative\">\n <WrappedIconButton\n icon={SIDEBAR_ICON}\n variant=\"light\"\n onClick={handleExpand}\n />\n <WrappedLink className=\"new-chat\" url={newChatUrl}>\n <WrappedIcon\n className=\"new-chat-icon\"\n lib=\"easyops\"\n icon=\"new-chat\"\n />\n {t(K.NEW_CHAT)}\n </WrappedLink>\n </div>\n <div className=\"sidebar\">\n <div className=\"logo-bar\">\n <WrappedLink url={logoUrl} className=\"logo-link\">\n <img\n className=\"logo\"\n alt=\"Elevo\"\n src={ElevoLogo}\n width={95}\n height={28}\n />\n </WrappedLink>\n <WrappedIconButton\n icon={SIDEBAR_ICON}\n variant=\"light\"\n onClick={handleCollapse}\n />\n </div>\n <WrappedLink className=\"new-chat\" url={newChatUrl}>\n <WrappedIcon\n className=\"new-chat-icon\"\n lib=\"easyops\"\n icon=\"new-chat\"\n />\n {t(K.NEW_CHAT)}\n </WrappedLink>\n {links?.length ? (\n <div className=\"links\">\n {links.map((link, index) => (\n <WrappedLink className=\"link\" key={index} url={link.url}>\n <WrappedIcon className=\"icon\" {...link.icon} />\n <span className=\"title\">{link.title}</span>\n </WrappedLink>\n ))}\n </div>\n ) : null}\n <ChatHistory\n ref={historyRef}\n activeId={historyActiveId}\n urlTemplate={historyUrlTemplate}\n actions={historyActions}\n onActionClick={onActionClick}\n onHistoryClick={handleHistoryClick}\n />\n <div className=\"footer\">\n <WrappedDropdownActions\n className=\"dropdown\"\n actions={dropdownActions}\n onActionClick={async (e) => {\n if (e.detail.key === \"logout\") {\n onLogout();\n } else {\n await i18n.changeLanguage(\n i18n.language && i18n.language.split(\"-\")[0] === \"en\"\n ? \"zh\"\n : \"en\"\n );\n getHistory().reload();\n }\n }}\n >\n <button className=\"account\">\n <WrappedEasyopsAvatar\n nameOrInstanceId={userInstanceId}\n showName\n size=\"xs\"\n />\n </button>\n </WrappedDropdownActions>\n </div>\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport styleText from \"./styles.shadow.css\";\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface IconButtonProps {\n icon?: GeneralIconProps;\n tooltip?: string;\n disabled?: boolean;\n variant?: IconButtonVariant;\n}\n\nexport type IconButtonVariant = \"default\" | \"light\" | \"mini\";\n\n/**\n * 构件 `ai-portal.icon-button`\n */\nexport\n@defineElement(\"ai-portal.icon-button\", {\n styleTexts: [styleText],\n})\nclass IconButton extends ReactNextElement implements IconButtonProps {\n @property({ attribute: false })\n accessor icon: GeneralIconProps | undefined;\n\n @property()\n accessor tooltip: string | undefined;\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n @property({ render: false })\n accessor variant: IconButtonVariant | undefined;\n\n render() {\n return (\n <IconButtonComponent\n icon={this.icon}\n tooltip={this.tooltip}\n disabled={this.disabled}\n />\n );\n }\n}\n\nfunction IconButtonComponent({ icon, tooltip, disabled }: IconButtonProps) {\n const btn = (\n <button disabled={disabled}>\n <WrappedIcon {...icon} />\n </button>\n );\n\n if (tooltip) {\n return <WrappedTooltip content={tooltip}>{btn}</WrappedTooltip>;\n }\n\n return btn;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ALL = \"ALL\",\n}\n\nconst en: Locale = {\n [K.ALL]: \"All\",\n};\n\nconst zh: Locale = {\n [K.ALL]: \"全部\",\n};\n\nexport const NS = \"bricks/ai-portal/show-cases\";\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","import React, { useMemo, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport { get } from \"lodash\";\nimport classNames from \"classnames\";\nimport { getBasePath } from \"@next-core/runtime\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface ShowCasesProps {\n list?: ShowCase[];\n taskUrlTemplate?: string;\n}\n\nexport interface ShowCase {\n taskId: string;\n title: string;\n summary: string;\n scenario: string;\n thumbUrl?: string;\n}\n\n/**\n * 构件 `ai-portal.show-cases`\n */\nexport\n@defineElement(\"ai-portal.show-cases\", {\n styleTexts: [styleText],\n})\nclass ShowCases extends ReactNextElement implements ShowCasesProps {\n @property({ attribute: false })\n accessor list: ShowCase[] | undefined;\n\n @property()\n accessor taskUrlTemplate: string | undefined;\n\n render() {\n return (\n <ShowCasesComponent\n list={this.list}\n taskUrlTemplate={this.taskUrlTemplate}\n />\n );\n }\n}\n\nfunction ShowCasesComponent({ list, taskUrlTemplate }: ShowCasesProps) {\n // Grouping the list by scenario\n const groups = useMemo<(string | null)[]>(() => {\n return [\n null,\n ...new Set(list?.map((item) => item.scenario).filter(Boolean)),\n ];\n }, [list]);\n\n const [activeGroup, setActiveGroup] = useState<string | null>(null);\n\n const filteredList = useMemo(() => {\n if (!activeGroup) {\n return list;\n }\n return list?.filter((item) => item.scenario === activeGroup);\n }, [activeGroup, list]);\n\n if (!list?.length) {\n return null;\n }\n\n return (\n <>\n <ul className=\"nav\">\n {groups?.map((group) => (\n <li key={group} className=\"item\">\n <a\n className={classNames({ active: activeGroup === group })}\n onClick={() => setActiveGroup(group)}\n >\n {group === null ? t(K.ALL) : group}\n </a>\n </li>\n ))}\n </ul>\n <ul className=\"cases\">\n {filteredList?.map((item) => (\n <li key={item.taskId} className=\"item\">\n <WrappedLink\n className=\"link\"\n url={parseTemplate(taskUrlTemplate, item)}\n >\n <span\n className={classNames(\n \"placeholder\",\n item.thumbUrl ? \"thumbnail\" : \"summary\"\n )}\n >\n {item.thumbUrl ? (\n <span\n style={{\n backgroundImage: `url(${getBasePath()}${item.thumbUrl})`,\n }}\n />\n ) : (\n <span className=\"summary-1\">\n <span className=\"summary-2\">\n <span>{item.summary}</span>\n </span>\n </span>\n )}\n </span>\n <span className=\"title\">\n <span>{item.title}</span>\n </span>\n </WrappedLink>\n </li>\n ))}\n </ul>\n </>\n );\n}\n\nfunction parseTemplate(\n template: string | undefined,\n context: Record<string, any>\n) {\n return template?.replace(/{{(.*?)}}/g, (_match: string, key: string) => {\n const value = get(context, key);\n return value;\n });\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n MCP_HUB = \"MCP_HUB\",\n ALL = \"ALL\",\n\n SERVER_cmdb = \"SERVER_cmdb\",\n SERVER_cmdb_product_helper = \"SERVER_cmdb_product_helper\",\n SERVER_alert = \"SERVER_alert\",\n SERVER_web_builder = \"SERVER_web_builder\",\n SERVER_web_builder2 = \"SERVER_web_builder2\",\n SERVER_host_troubleshooting = \"SERVER_host_troubleshooting\",\n SERVER_system_inspection = \"SERVER_system_inspection\",\n SERVER_grafana = \"SERVER_grafana\",\n SERVER_kubernetes = \"SERVER_kubernetes\",\n SERVER_llm = \"SERVER_llm\",\n}\n\nconst en: Locale = {\n [K.MCP_HUB]: \"MCP Hub\",\n [K.ALL]: \"All\",\n\n [K.SERVER_cmdb]: \"CMDB\",\n [K.SERVER_cmdb_product_helper]: \"CMDB\",\n [K.SERVER_alert]: \"Alert\",\n [K.SERVER_web_builder]: \"View\",\n [K.SERVER_web_builder2]: \"View\",\n [K.SERVER_host_troubleshooting]: \"Host Troubleshooting\",\n [K.SERVER_system_inspection]: \"System Inspection\",\n [K.SERVER_grafana]: \"Grafana\",\n [K.SERVER_kubernetes]: \"Kubernetes\",\n [K.SERVER_llm]: \"LLM\",\n};\n\nconst zh: Locale = {\n [K.MCP_HUB]: \"MCP 中心\",\n [K.ALL]: \"全部\",\n\n [K.SERVER_cmdb]: \"CMDB\",\n [K.SERVER_cmdb_product_helper]: \"CMDB\",\n [K.SERVER_alert]: \"告警\",\n [K.SERVER_web_builder]: \"视图\",\n [K.SERVER_web_builder2]: \"视图\",\n [K.SERVER_host_troubleshooting]: \"主机故障排查\",\n [K.SERVER_system_inspection]: \"系统巡检\",\n [K.SERVER_grafana]: \"Grafana\",\n [K.SERVER_kubernetes]: \"Kubernetes\",\n [K.SERVER_llm]: \"大模型\",\n};\n\nexport const NS = \"bricks/ai-portal/mcp-tools\";\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","import React, { useMemo, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst DEFAULT_TOOL_ICON: GeneralIconProps = {\n lib: \"antd\",\n icon: \"tool\",\n};\n\nconst PLATFORM_CONFIG = new Map([\n [\n \"EasyOps平台\",\n {\n servers: [\"cmdb\", \"cmdb_product_helper\"],\n },\n ],\n [\n \"Grafana\",\n {\n servers: [\"grafana\"],\n },\n ],\n [\n \"Kubernetes\",\n {\n servers: [\"kubernetes\"],\n },\n ],\n [\n \"监控事件\",\n {\n servers: [\"alert\"],\n },\n ],\n [\n \"浏览器\",\n {\n servers: [\"playwright\"],\n },\n ],\n [\n \"低代码\",\n {\n servers: [\"web-builder\", \"web-builder2\"],\n },\n ],\n [\n \"大模型\",\n {\n servers: [\"llm\"],\n },\n ],\n [\n \"故障排查\",\n {\n servers: [\"host-troubleshooting\"],\n },\n ],\n]);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface McpToolsProps {\n list?: McpTool[];\n}\n\nexport interface McpTool {\n name: string;\n title: string;\n description: string;\n icon?: GeneralIconProps;\n server: McpServer;\n}\n\nexport interface McpServer {\n id: string;\n name: string;\n}\n\n/**\n * 构件 `ai-portal.mcp-tools`\n */\nexport\n@defineElement(\"ai-portal.mcp-tools\", {\n styleTexts: [styleText],\n})\nclass McpTools extends ReactNextElement implements McpToolsProps {\n @property({ attribute: false })\n accessor list: McpTool[] | undefined;\n\n render() {\n return <McpToolsComponent list={this.list} />;\n }\n}\n\nfunction McpToolsComponent({ list }: McpToolsProps) {\n // Grouping the list by server name\n const [groupMap, platformMap] = useMemo(() => {\n const map = new Map<string, McpTool[]>();\n const platformMap = new Map<string, string[]>();\n list?.forEach((item) => {\n const groupName = t(\n `SERVER_${item.server.id.replaceAll(\"-\", \"_\")}`,\n item.server.name\n );\n let list = map.get(groupName);\n if (!list) {\n map.set(groupName, (list = []));\n }\n list.push(item);\n\n const platform = [...PLATFORM_CONFIG.entries()].find(\n ([_name, { servers }]) => servers.includes(item.server.id)\n );\n const platformName = platform ? platform[0] : \"其他\";\n let groups = platformMap.get(platformName);\n if (!groups) {\n platformMap.set(platformName, (groups = []));\n }\n groups.push(groupName);\n });\n\n const orderedNames = [\"CMDB\"];\n const orderedMap = new Map<string, McpTool[]>(\n [...map.entries()].sort(([nameA], [nameB]) => {\n const indexA = orderedNames.indexOf(nameA);\n const indexB = orderedNames.indexOf(nameB);\n return (\n (indexA < 0 ? orderedNames.length : indexA) -\n (indexB < 0 ? orderedNames.length : indexB)\n );\n })\n );\n\n return [orderedMap, platformMap];\n }, [list]);\n\n const platforms = useMemo(() => {\n const orderedNames = [...PLATFORM_CONFIG.keys()];\n const names = [...platformMap.keys()];\n names.sort((a, b) => {\n const aIndex = orderedNames.indexOf(a);\n const bIndex = orderedNames.indexOf(b);\n return (\n (aIndex < 0 ? orderedNames.length : aIndex) -\n (bIndex < 0 ? orderedNames.length : bIndex)\n );\n });\n return [null, ...names];\n }, [platformMap]);\n\n const [activePlatform, setActivePlatform] = useState<string | null>(null);\n\n const filteredGroups = useMemo(() => {\n const groupedList = [...groupMap];\n if (activePlatform === null) {\n return groupedList;\n }\n const platformGroups = platformMap.get(activePlatform);\n return groupedList.filter(([group]) => platformGroups?.includes(group));\n }, [activePlatform, groupMap, platformMap]);\n\n return (\n <div className=\"container\">\n <h1>{t(K.MCP_HUB)}</h1>\n <ul className=\"nav\">\n {platforms?.map((platform) => (\n <li key={platform} className=\"item\">\n <a\n className={classNames({ active: activePlatform === platform })}\n onClick={() => setActivePlatform(platform)}\n >\n {platform === null ? t(K.ALL) : platform}\n </a>\n </li>\n ))}\n </ul>\n <ul className=\"groups\">\n {filteredGroups?.map(([groupName, items]) => (\n <li key={groupName} className=\"group\">\n <h2>{groupName}</h2>\n <ul className=\"list\">\n {items.map((item, index) => (\n <li key={index} className=\"item\">\n <div className=\"heading\">\n <WrappedIcon\n className=\"icon\"\n {...(item.icon ?? DEFAULT_TOOL_ICON)}\n fallback={DEFAULT_TOOL_ICON}\n />\n <div className=\"title\">{item.title}</div>\n </div>\n <div className=\"description\">{item.description}</div>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </div>\n );\n}\n","// istanbul ignore file: experimental\nimport React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { getRuntime, handleHttpError } from \"@next-core/runtime\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport classNames from \"classnames\";\nimport { NS, locales } from \"./i18n.js\";\nimport { useTaskDetail } from \"../cruise-canvas/useTaskDetail.js\";\nimport { useChatStream } from \"./useChatStream.js\";\nimport styles from \"./styles.module.css\";\nimport { WrappedIcon, WrappedIconButton } from \"../shared/bricks.js\";\nimport { UserMessage } from \"./UserMessage/UserMessage.js\";\nimport { AssistantMessage } from \"./AssistantMessage/AssistantMessage.js\";\nimport { TaskContext } from \"../shared/TaskContext.js\";\nimport { ChatBox } from \"../shared/ChatBox/ChatBox.js\";\nimport { DONE_STATES, ICON_CANVAS } from \"../shared/constants.js\";\nimport { ExpandedView } from \"../shared/ExpandedView/ExpandedView.js\";\nimport { ReplayToolbar } from \"../shared/ReplayToolbar/ReplayToolbar.js\";\nimport { Aside } from \"./Aside/Aside.js\";\nimport { StreamContext } from \"./StreamContext.js\";\nimport type { FeedbackDetail } from \"../cruise-canvas/interfaces.js\";\nimport { NodeFeedback } from \"../shared/NodeFeedback/NodeFeedback.js\";\n\ninitializeI18n(NS, locales);\n\nconst ICON_SHARE: GeneralIconProps = {\n lib: \"easyops\",\n icon: \"share\",\n};\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ChatStreamProps {\n taskId?: string;\n replay?: boolean;\n replayDelay?: number;\n supports?: Record<string, boolean>;\n showFeedback?: boolean;\n showFeedbackOnView?: boolean;\n showUiSwitch?: boolean;\n}\n\nconst ChatStreamComponent = forwardRef(LegacyChatStreamComponent);\n\n/**\n * 构件 `ai-portal.chat-stream`\n */\nexport\n@defineElement(\"ai-portal.chat-stream\", {\n // Will wrap v2 bricks which don't support in shadow DOM.\n shadowOptions: false,\n})\nclass ChatStream extends ReactNextElement implements ChatStreamProps {\n @property()\n accessor taskId: string | undefined;\n\n /** 是否启用回放。仅初始设置有效。 */\n @property({ type: Boolean })\n accessor replay: boolean | undefined;\n\n /**\n * 设置回放时消息之间的时间间隔,单位为秒。仅初始设置有效。\n *\n * @default 2\n */\n @property({ type: Number })\n accessor replayDelay: number | undefined;\n\n @property({ attribute: false })\n accessor supports: Record<string, boolean> | undefined;\n\n @property({ type: Boolean })\n accessor showFeedback: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedbackOnView: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showUiSwitch: boolean | undefined;\n\n @property({ type: Boolean, render: false })\n accessor hideMermaid: boolean | undefined;\n\n @event({ type: \"share\" })\n accessor #shareEvent!: EventEmitter<void>;\n\n #onShare = () => {\n this.#shareEvent.emit();\n };\n\n @event({ type: \"terminate\" })\n accessor #terminateEvent!: EventEmitter<void>;\n\n #onTerminate = () => {\n this.#terminateEvent.emit();\n };\n\n @event({ type: \"feedback.submit\" })\n accessor #feedbackSubmitEvent!: EventEmitter<FeedbackDetail>;\n\n #onSubmitFeedback = (detail: FeedbackDetail) => {\n this.#feedbackSubmitEvent.emit(detail);\n };\n\n @event({ type: \"feedback.on.view\" })\n accessor #feedbackOnViewEvent!: EventEmitter<string>;\n\n #onFeedbackOnView = (viewId: string) => {\n this.#feedbackOnViewEvent.emit(viewId);\n };\n\n @event({ type: \"ui.switch\" })\n accessor #switch!: EventEmitter<\"canvas\">;\n\n #onSwitchToCanvas = () => {\n this.#switch.emit(\"canvas\");\n };\n\n #ref = createRef<ChatStreamRef>();\n\n @method()\n resumed() {\n this.#ref.current?.resumed();\n }\n\n @method()\n feedbackSubmitDone() {\n this.#ref.current?.feedbackSubmitDone();\n }\n\n @method()\n feedbackSubmitFailed() {\n this.#ref.current?.feedbackSubmitFailed();\n }\n\n @method()\n feedbackOnViewDone(viewId: string) {\n this.#ref.current?.feedbackOnViewDone(viewId);\n }\n\n render() {\n return (\n <ChatStreamComponent\n taskId={this.taskId}\n replay={this.replay}\n replayDelay={this.replayDelay}\n supports={this.supports}\n showFeedback={this.showFeedback}\n showFeedbackOnView={this.showFeedbackOnView}\n showUiSwitch={this.showUiSwitch}\n onShare={this.#onShare}\n onTerminate={this.#onTerminate}\n onSubmitFeedback={this.#onSubmitFeedback}\n onSwitchToCanvas={this.#onSwitchToCanvas}\n onFeedbackOnView={this.#onFeedbackOnView}\n />\n );\n }\n}\n\ninterface ChatStreamComponentProps extends ChatStreamProps {\n onShare: () => void;\n onTerminate: () => void;\n onSubmitFeedback: (detail: FeedbackDetail) => void;\n onSwitchToCanvas: () => void;\n onFeedbackOnView: (viewId: string) => void;\n}\n\ninterface ChatStreamRef {\n resumed: () => void;\n feedbackSubmitDone: () => void;\n feedbackSubmitFailed: () => void;\n feedbackOnViewDone: (viewId: string) => void;\n}\n\nfunction LegacyChatStreamComponent(\n {\n taskId,\n replay,\n replayDelay,\n supports,\n showFeedback: propShowFeedback,\n showFeedbackOnView,\n showUiSwitch,\n onShare,\n onTerminate,\n onSubmitFeedback,\n onSwitchToCanvas,\n onFeedbackOnView,\n }: ChatStreamComponentProps,\n ref: React.Ref<ChatStreamRef>\n) {\n const {\n task,\n jobs,\n error,\n humanInputRef,\n resumedRef,\n skipToResults,\n watchAgain,\n } = useTaskDetail(taskId, replay, replayDelay);\n const pageTitle = task?.title ?? \"\";\n const taskState = task?.state;\n const taskDone = DONE_STATES.includes(taskState!);\n const { messages, inputRequiredJobId, lastToolCallJobId } = useChatStream(\n task,\n jobs\n );\n\n const views = useMemo(() => {\n return jobs?.flatMap((job) =>\n job.generatedView\n ? {\n id: job.id,\n view: job.generatedView,\n }\n : []\n );\n }, [jobs]);\n\n const [submittingFeedback, setSubmittingFeedback] = useState(false);\n const [submittedFeedback, setSubmittedFeedback] = useState(false);\n const [showFeedback, setShowFeedback] = useState<boolean>(!!propShowFeedback);\n useEffect(() => {\n setShowFeedback(!!propShowFeedback);\n }, [propShowFeedback]);\n const [feedbackDoneViews, setFeedbackDoneViews] = useState<\n Set<string> | undefined\n >();\n\n const handleSubmitFeedback = useCallback(\n (detail: FeedbackDetail) => {\n setSubmittingFeedback(true);\n onSubmitFeedback(detail);\n },\n [onSubmitFeedback]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n resumed: () => resumedRef.current?.(),\n feedbackSubmitDone: () => {\n setSubmittedFeedback(true);\n setTimeout(() => {\n setShowFeedback(false);\n }, 3000);\n },\n feedbackSubmitFailed: () => {\n setSubmittingFeedback(false);\n },\n feedbackOnViewDone: (viewId: string) => {\n setFeedbackDoneViews((prev) => {\n const newSet = new Set(prev);\n newSet.add(viewId);\n return newSet;\n });\n },\n }),\n [resumedRef]\n );\n\n const [activeExpandedViewJobId, setActiveExpandedViewJobId] = useState<\n string | null\n >(null);\n\n const [activeToolCallJobId, setActiveToolCallJobId] = useState<string | null>(\n null\n );\n const [userClosedAside, setUserClosedAside] = useState(false);\n // Delay flag to prevent aside from auto opened for a completed task\n const delayRef = useRef(false);\n\n const taskAvailable = !!task;\n useEffect(() => {\n if (taskAvailable) {\n const timer = setTimeout(() => {\n delayRef.current = true;\n }, 1000);\n return () => {\n clearTimeout(timer);\n };\n }\n }, [taskAvailable]);\n\n useEffect(() => {\n if (delayRef.current && lastToolCallJobId && !userClosedAside) {\n setActiveToolCallJobId(lastToolCallJobId);\n }\n }, [lastToolCallJobId, userClosedAside]);\n\n useEffect(() => {\n getRuntime().applyPageTitle(pageTitle);\n }, [pageTitle]);\n\n useEffect(() => {\n if (error) {\n handleHttpError(error);\n }\n }, [error]);\n\n const humanInput = useCallback(\n (jobId: string, input: string) => {\n humanInputRef.current?.(jobId, input);\n },\n [humanInputRef]\n );\n\n const taskContextValue = useMemo(\n () => ({\n humanInput,\n onShare,\n onTerminate,\n supports,\n\n activeExpandedViewJobId,\n setActiveExpandedViewJobId,\n activeToolCallJobId,\n setActiveToolCallJobId,\n\n submittingFeedback,\n submittedFeedback,\n onSubmitFeedback: handleSubmitFeedback,\n setShowFeedback,\n showFeedbackOnView,\n onFeedbackOnView,\n feedbackDoneViews,\n }),\n [\n humanInput,\n onShare,\n onTerminate,\n supports,\n\n activeExpandedViewJobId,\n activeToolCallJobId,\n\n submittingFeedback,\n submittedFeedback,\n handleSubmitFeedback,\n showFeedbackOnView,\n onFeedbackOnView,\n feedbackDoneViews,\n ]\n );\n\n const streamContextValue = useMemo(\n () => ({\n lastToolCallJobId,\n setUserClosedAside,\n }),\n [lastToolCallJobId]\n );\n\n const detectScrolledUpRef = useRef(false);\n const manualScrolledRef = useRef(false);\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const [scrollable, setScrollable] = useState(false);\n\n useEffect(() => {\n const scrollContainer = scrollContainerRef.current;\n const contentContainer = scrollContainer?.firstElementChild;\n if (manualScrolledRef.current || !scrollContainer || !contentContainer) {\n return;\n }\n\n const handleScroll = () => {\n setScrollable(\n scrollContainer.scrollTop + scrollContainer.clientHeight! + 24 <\n scrollContainer.scrollHeight\n );\n if (!detectScrolledUpRef.current) {\n return;\n }\n manualScrolledRef.current =\n scrollContainer.scrollTop + scrollContainer.clientHeight! + 6 <\n scrollContainer.scrollHeight;\n };\n scrollContainer.addEventListener(\"scroll\", handleScroll);\n\n let timer: ReturnType<typeof setTimeout>;\n const observer = new ResizeObserver(() => {\n if (manualScrolledRef.current) {\n return;\n }\n detectScrolledUpRef.current = false;\n // Scroll to the bottom of the content container\n scrollContainer.scrollTo({\n top: contentContainer.scrollHeight,\n behavior: \"instant\",\n });\n clearTimeout(timer);\n timer = setTimeout(() => {\n detectScrolledUpRef.current = true;\n }, 100);\n });\n observer.observe(contentContainer);\n\n return () => {\n observer.disconnect();\n scrollContainer.removeEventListener(\"scroll\", handleScroll);\n };\n }, [taskAvailable]);\n\n const scrollToBottom = useCallback(() => {\n const scrollContainer = scrollContainerRef.current;\n scrollContainer?.scrollTo({\n top: scrollContainer?.scrollHeight,\n behavior: \"instant\",\n });\n }, []);\n\n const activeToolCallJob = useMemo(() => {\n if (!activeToolCallJobId) {\n return null;\n }\n return jobs?.find((job) => job.id === activeToolCallJobId);\n }, [activeToolCallJobId, jobs]);\n\n return (\n <TaskContext.Provider value={taskContextValue}>\n <StreamContext.Provider value={streamContextValue}>\n <div className={styles.container}>\n <div className={styles.header}>\n <div className={styles.left} />\n <h1>{pageTitle}</h1>\n <div className={styles.right}>\n {showUiSwitch && (\n <WrappedIconButton\n icon={ICON_CANVAS}\n variant=\"mini\"\n style={{\n transform: \"rotate(90deg)\",\n }}\n onClick={onSwitchToCanvas}\n />\n )}\n <WrappedIconButton\n icon={ICON_SHARE}\n variant=\"mini\"\n onClick={onShare}\n />\n </div>\n </div>\n {taskAvailable ? (\n <>\n <div className={styles.main} ref={scrollContainerRef}>\n <div className={styles.narrow}>\n {messages.map((msg, index, list) => (\n <div className={styles.message} key={index}>\n {msg.role === \"user\" ? (\n <UserMessage content={msg.content} />\n ) : (\n <AssistantMessage\n jobs={msg.jobs}\n taskState={taskState}\n isLatest={index === list.length - 1}\n />\n )}\n </div>\n ))}\n {showFeedback && taskState === \"completed\" && (\n <NodeFeedback className={styles.feedback} />\n )}\n </div>\n </div>\n <div\n className={styles[\"scroll-down\"]}\n hidden={!scrollable}\n onClick={scrollToBottom}\n >\n <WrappedIcon lib=\"antd\" icon=\"down\" />\n </div>\n </>\n ) : (\n <div className={styles[\"loading-icon\"]}>\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </div>\n )}\n {replay || supports?.chat ? (\n <div className={styles.footer}>\n <div className={styles.narrow}>\n {replay ? (\n <ReplayToolbar\n taskDone={taskDone}\n skipToResults={skipToResults}\n watchAgain={watchAgain}\n />\n ) : (\n <ChatBox\n state={taskState}\n canChat={taskDone && !!inputRequiredJobId}\n inputRequiredJobId={inputRequiredJobId}\n />\n )}\n </div>\n </div>\n ) : null}\n </div>\n <div\n className={classNames(styles.aside, {\n [styles.expanded]: !!activeToolCallJobId,\n })}\n >\n {activeToolCallJobId && <Aside job={activeToolCallJob!} />}\n </div>\n {activeExpandedViewJobId && <ExpandedView views={views!} />}\n </StreamContext.Provider>\n </TaskContext.Provider>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n AI_EMPLOYEES = \"AI_EMPLOYEES\",\n}\n\nconst en: Locale = {\n AI_EMPLOYEES: \"AI Employees\",\n};\n\nconst zh: Locale = {\n AI_EMPLOYEES: \"Ai 数字人\",\n};\n\nexport const NS = \"bricks/ai-portal/ai-employees\";\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","import React, { useMemo, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport classNames from \"classnames\";\nimport Avatar1 from \"./images/avatar-1@2x.png\";\nimport Avatar2 from \"./images/avatar-2@2x.png\";\nimport Avatar3 from \"./images/avatar-3@2x.png\";\nimport Avatar4 from \"./images/avatar-4@2x.png\";\nimport Avatar5 from \"./images/avatar-5@2x.png\";\nimport Avatar6 from \"./images/avatar-6@2x.png\";\nimport Avatar7 from \"./images/avatar-7@2x.png\";\nimport Avatar8 from \"./images/avatar-8@2x.png\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst AVATARS = [\n Avatar1,\n Avatar2,\n Avatar3,\n Avatar4,\n Avatar5,\n Avatar6,\n Avatar7,\n Avatar8,\n];\n\nconst { defineElement, property } = createDecorators();\n\nexport interface AIEmployeesProps {\n list?: Employee[];\n industries?: string[];\n // roles?: string[];\n}\n\nexport interface Employee {\n name: string;\n industry: string;\n role: string;\n description: string;\n}\n\n/**\n * 构件 `ai-portal.ai-employees`\n */\nexport\n@defineElement(\"ai-portal.ai-employees\", {\n styleTexts: [styleText],\n})\nclass AIEmployees extends ReactNextElement implements AIEmployeesProps {\n @property({ attribute: false })\n accessor list: Employee[] | undefined;\n\n @property({ attribute: false })\n accessor industries: string[] | undefined;\n\n // @property({ attribute: false })\n // accessor roles: string[] | undefined;\n\n render() {\n return (\n <AIEmployeesComponent list={this.list} industries={this.industries} />\n );\n }\n}\n\nfunction AIEmployeesComponent({\n list,\n industries: _industries,\n}: AIEmployeesProps) {\n const industries = useMemo(() => {\n return [\n ...new Set([\n ...(_industries ?? []),\n ...(list ?? []).map((item) => item.industry),\n ]),\n ];\n }, [_industries, list]);\n\n const [activeIndustry, setActiveIndustry] = useState(industries[0]);\n\n // Grouping the list by role\n const groups = useMemo(() => {\n const map = new Map<string, Employee[]>();\n list?.forEach((item) => {\n if (item.industry !== activeIndustry) {\n return;\n }\n let array = map.get(item.role);\n if (!array) {\n map.set(item.role, (array = []));\n }\n array.push(item);\n });\n return [...map.entries()];\n }, [activeIndustry, list]);\n\n const industryIndex = industries.indexOf(activeIndustry);\n\n return (\n <div className=\"container\">\n <h1>{t(K.AI_EMPLOYEES)}</h1>\n <ul className=\"nav\">\n {industries.map((industry) => (\n <li key={industry} className=\"item\">\n <a\n className={classNames({ active: industry === activeIndustry })}\n onClick={() => setActiveIndustry(industry)}\n >\n {industry}\n </a>\n </li>\n ))}\n </ul>\n <ul className=\"groups\">\n {groups.map(([groupName, items], groupIndex) => (\n <li key={groupName} className=\"group\">\n <h2>{groupName}</h2>\n <ul className=\"list\">\n {items.map((item, index) => (\n <li key={index} className=\"item\">\n <div className=\"heading\">\n <div className=\"avatar\">\n <img\n src={\n AVATARS[\n (index + groupIndex + industryIndex) %\n AVATARS.length\n ]\n }\n />\n </div>\n <div className=\"title\">{item.name}</div>\n </div>\n <div className=\"description\">{item.description}</div>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </div>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n AGENTS = \"AGENTS\",\n}\n\nconst en: Locale = {\n AGENTS: \"Agents\",\n};\n\nconst zh: Locale = {\n AGENTS: \"智能体\",\n};\n\nexport const NS = \"bricks/ai-portal/ai-agents\";\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","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\nconst DEFAULT_TOOL_ICON: GeneralIconProps = {\n lib: \"antd\",\n icon: \"tool\",\n};\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface AIAgentsProps {\n list?: Agent[];\n}\n\nexport interface Agent {\n name: string;\n description: string;\n icon?: GeneralIconProps;\n tags?: string[];\n}\n\n/**\n * 构件 `ai-portal.ai-agents`\n */\nexport\n@defineElement(\"ai-portal.ai-agents\", {\n styleTexts: [styleText],\n})\nclass AIAgents extends ReactNextElement implements AIAgentsProps {\n @property({ attribute: false })\n accessor list: Agent[] | undefined;\n\n render() {\n return <AIAgentsComponent list={this.list} />;\n }\n}\n\nfunction AIAgentsComponent({ list }: AIAgentsProps) {\n return (\n <div className=\"container\">\n <h1>{t(K.AGENTS)}</h1>\n <ul className=\"list\">\n {list?.map((item, index) => (\n <li key={index} className=\"item\">\n <div className=\"heading\">\n <div className=\"icon\">\n <WrappedIcon\n {...(item.icon ?? DEFAULT_TOOL_ICON)}\n fallback={DEFAULT_TOOL_ICON}\n />\n </div>\n <div className=\"title\">{item.name}</div>\n </div>\n <div className=\"tags\">\n {item.tags?.map((tag, tagIndex) => (\n <span key={tagIndex} className=\"tag\">\n {tag}\n </span>\n ))}\n </div>\n <div className=\"description\">{item.description}</div>\n </li>\n ))}\n </ul>\n </div>\n );\n}\n","import { createProviderClass } from \"@next-core/utils/general\";\nimport type { RequestStore } from \"../shared/interfaces\";\n\nlet store: RequestStore | null = null;\n\nexport function saveRequestStore(value: RequestStore): void {\n store = value;\n}\n\nexport function loadRequestStore(): RequestStore | null {\n const value = store;\n store = null;\n return value;\n}\n\nexport function clearRequestStore(): void {\n store = null;\n}\n\ncustomElements.define(\n \"ai-portal.save-request-store\",\n createProviderClass(saveRequestStore)\n);\n\ncustomElements.define(\n \"ai-portal.load-request-store\",\n createProviderClass(loadRequestStore)\n);\n\ncustomElements.define(\n \"ai-portal.clear-request-store\",\n createProviderClass(clearRequestStore)\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}ul{list-style:none;margin:0;padding:0}.loading{display:flex;justify-content:center;padding:8px}.group + .group{margin-top:15px}.group-title{font-weight:500;font-size:12px;color:#000;padding:8px;height:36px;line-height:20px}.item{display:block}.item::part(link){display:flex;align-items:center;padding:0 8px;height:36px;border-radius:8px;color:#000}.item::part(link):hover{background:rgba(0,0,0,0.04)}.item-title{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.actions{cursor:auto}.item:not(:hover):not(.active) .actions{display:none}.working{width:8px;height:8px;border-radius:8px;background:var(--elevo-color-brand);margin:0 7px}.item:hover .working,\n.item.active .working{display:none}.load-more{display:flex;justify-content:center;align-items:center;height:36px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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:inline-block;padding:3px 0}:host([hidden]){display:none}img{display:block}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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, `:host{display:block;position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}:host([hidden]){display:none}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}h1,\nh2{font-weight:500;margin:0}h1{font-size:20px;line-height:28px}h2{font-size:16px;line-height:22px}.nav,\n.groups,\n.list{list-style:none;margin:0;padding:0}.nav{display:flex;font-size:16px;margin-top:17px}.nav .item + .item{margin-left:32px}.nav .item a{color:rgba(38,38,38,0.65);cursor:pointer}.nav .item a.active{color:#262626;font-weight:500}.nav .item a.active::after{content:\"\";display:block;width:100%;height:4px;background-color:currentColor;border-radius:2px}.groups{margin-top:27px}.group + .group{margin-top:32px}.list{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.list .item{background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px}.heading{display:flex;align-items:center}.icon{font-size:24px;color:#333;margin-right:8px}.title{font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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/border@2x.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, `:host{display:flex;flex-direction:column;align-items:center;max-width:1200px;width:100%}:host([hidden]){display:none}*{box-sizing:border-box}.nav,\n.cases{list-style:none;padding:0;margin:0}.nav{display:flex;font-size:16px}.nav .item + .item{margin-left:32px}.nav .item a{color:rgba(38,38,38,0.65);cursor:pointer}.nav .item a.active{color:#262626;font-weight:500}.nav .item a.active::after{content:\"\";display:block;width:100%;height:4px;background-color:currentColor;border-radius:2px}.cases{display:grid;width:100%;grid-template-columns:repeat(auto-fill,minmax(276px,1fr));gap:24px;margin-top:2em}.link{background:#fefefe;border:1px solid #e8e9ec;border-radius:12px;overflow:hidden;display:block}.link::part(link){display:flex;gap:0;flex-direction:column;height:218px}.title{width:100%;height:76px;padding:16px 16px 15px;color:#262626;border-top:1px solid #e8e9ec;font-weight:500;font-size:15px;line-height:22px}.title span{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.placeholder{width:100%;height:142px;background:linear-gradient(308deg,#dee9fc 0%,#fcfbfd 100%,#fbf9fe 100%);overflow:hidden}.summary{color:rgba(0,0,0,0.65);padding:27px 0 0 24px}.thumbnail span{display:block;width:100%;height:100%;background-size:cover;background-position:center;background-repeat:no-repeat}.link:hover{box-shadow:0px 4px 12px 0px rgba(0,0,0,0.06)}.link:hover .title{color:var(--elevo-color-brand)}.summary-1{display:block;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:237px 115px;background-repeat:no-repeat;background-position:0 0;padding:10px 0 0 10px}.summary-2{display:block;background:linear-gradient(90deg,#ffffff 0%,#e4ecfc 100%);padding:12px 15px 5px 15px;border-top-left-radius:12px}.summary-2 span{display:-webkit-box;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;font-size:15px;color:#525971;line-height:22px;height:88px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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@2x.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, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.root{color:#262626;background-color:#e1e3ec;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:694px 144px;background-position:top left;background-repeat:no-repeat;box-shadow:inset 0px 2px 5px 1px rgba(42,46,59,0.1);border-radius:20px;padding:12px}.container{position:relative}textarea{display:block;width:100%;padding:10px 16px 52px;color:var(--antd-input-color);background:rgba(255,255,255,0.8);border-radius:14px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.5);font-size:14px;line-height:22px;height:130px}textarea::placeholder{color:rgba(0,0,0,0.4)}.btn-send:focus,\ntextarea:focus{outline:none}.btn-send{position:absolute;bottom:14px;right:14px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--elevo-color-brand);border:none;border-radius:8px;color:#fff}.btn-send[disabled]{background:rgba(0,0,0,0.15)}.btn-send:not([disabled]){cursor:pointer}.btn-send:not([disabled]):hover{background:#5166ff}.btn-send:not([disabled]):active{background:#1e33cc}.suggestions{margin-top:19px}.heading{display:flex;align-items:center;padding:0 5px;margin-bottom:8px}.icon{margin-right:5px}.carousel{overflow:hidden}.carousel + .carousel{margin-top:7px}.list{display:flex;width:max-content;list-style:none;margin:0;padding:0;font-size:12px}.item{background:rgba(255,255,255,0.4);border-radius:12px;border:1px solid #dcdee6;padding:12px;max-width:330px;cursor:pointer}.item:hover{background:rgba(255,255,255,0.5);border:1px solid rgba(37,64,255,0.3)}.list > li + li{margin-left:7px}.title{margin-bottom:4px}.content{color:rgba(0,0,0,0.45);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tooltip{display:block}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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:inline-block}:host([hidden]){display:none}:host,\neo-tooltip{vertical-align:middle}button{width:28px;height:28px;font-size:18px;border-radius:8px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:#333}button:disabled{color:#8c8c8c}button:not(:disabled){cursor:pointer}button:focus{outline:none}button:not(:disabled):hover{background:rgba(0,0,0,0.04)}button:not(:disabled):active{background:rgba(0,0,0,0.08)}:host([variant=\"light\"]) button{color:#595959}:host([variant=\"mini\"]) button{width:24px;height:24px;font-size:16px;border-radius:4px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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:1;width:261px;height:100%;background:#f6f7f9;border-right:1px solid #e3e5eb;padding:26px 16px 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}.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 -16px}.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:8px;left:8px;padding:6px 10px 6px 8px;display:flex;align-items:center;opacity:0;z-index:1;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:261px;height:100%;transition:width 0.3s ease-in-out}.collapsed{width:0;overflow:visible}.collapsed .sidebar{transform:translateX(-100%)}.collapsed .alternative{opacity:1}:host([behavior=\"drawer\"]){z-index:1;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 13px;border-radius:8px;color:#000}.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 -16px;padding:0 12px}.history ul{list-style:none;margin:0;padding:0}.history .loading{display:flex;justify-content:center;padding:8px}.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}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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, `:host{display:block;background-color:#fff;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-position:center;background-size:cover;background-repeat:no-repeat;background-attachment:fixed}:host([hidden]){display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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(\"../mcp-tools/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, `:host{display:block;position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}:host([hidden]){display:none}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}h1{font-weight:500;margin:0;font-size:20px;line-height:28px}.list{list-style:none;margin:0;padding:0;margin-top:30px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.list .item{background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px}.heading{display:flex;align-items:center}.icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#ffffff;border-radius:12px;border:1px solid #e8e9ec;font-size:32px;color:#595959;margin-right:16px}.title{font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tags{display:flex;gap:6px;margin:16px 0 -3px}.tag{display:block;background:rgba(0,0,0,0.04);border-radius:4px;font-size:12px;line-height:22px;padding:0 7px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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(\"../mcp-tools/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, `:host{display:block;position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}:host([hidden]){display:none}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}h1,\nh2{font-weight:500;margin:0}h1{font-size:20px;line-height:28px}h2{font-size:16px;line-height:22px}.nav,\n.groups,\n.list{list-style:none;margin:0;padding:0}.nav{display:flex;font-size:16px;margin-top:17px}.nav .item + .item{margin-left:32px}.nav .item a{color:rgba(38,38,38,0.65);cursor:pointer}.nav .item a.active{color:#262626;font-weight:500}.nav .item a.active::after{content:\"\";display:block;width:100%;height:4px;background-color:currentColor;border-radius:2px}.groups{margin-top:27px}.group + .group{margin-top:32px}.list{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.list .item{background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px}.heading{display:flex;align-items:center}.avatar{width:48px;height:48px;border-radius:12px;margin-right:16px;background-color:#d5d6e6}.title{font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","toString","initializeI18n","NS","locales","defineElement","property","event","method","createDecorators","ForwardedLegacyCruiseCanvasComponent","forwardRef","LegacyCruiseCanvasComponent","ForwardedCruiseCanvasComponent","CruiseCanvasComponent","_CruiseCanvas","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_CruiseCanvas_brand","WeakSet","_onShare","_P","_onTerminate","_Q","_onSubmitFeedback","_R","_onFeedbackOnView","_S","_onSwitchToChat","_ref","CruiseCanvas","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_init_conversationId","_init_extra_conversationId","_init_initialRequest","_init_extra_initialRequest","_init_taskId","_init_extra_taskId","_init_task","_init_extra_task","_init_jobs","_init_extra_jobs","_init_replay","_init_extra_replay","_init_replayDelay","_init_extra_replayDelay","_init_supports","_init_extra_supports","_init_showHiddenJobs","_init_extra_showHiddenJobs","_init_showFeedback","_init_extra_showFeedback","_init_showFeedbackOnView","_init_extra_showFeedbackOnView","_init_showUiSwitch","_init_extra_showUiSwitch","_init_hideMermaid","_init_extra_hideMermaid","_init_showJsxEditor","_init_extra_showJsxEditor","_init_shareEvent","_init_extra_shareEvent","_classPrivateGetter","this","_get_shareEvent","emit","_init_terminateEvent","_init_extra_terminateEvent","_get_terminateEvent","_init_feedbackSubmitEvent","_init_extra_feedbackSubmitEvent","detail","_get_feedbackSubmitEvent","_init_feedbackOnViewEvent","_init_extra_feedbackOnViewEvent","viewId","_get_feedbackOnViewEvent","_init_switch","_init_extra_switch","_get_switch","createRef","conversationId","_classPrivateFieldGet","v","_classPrivateFieldSet","initialRequest","taskId","task","jobs","replay","replayDelay","supports","showHiddenJobs","showFeedback","showFeedbackOnView","showUiSwitch","hideMermaid","showJsxEditor","resumed","_classPrivateFieldGet2","_classPrivateFieldGet3","current","call","feedbackSubmitDone","_classPrivateFieldGet4","feedbackSubmitFailed","_classPrivateFieldGet5","feedbackOnViewDone","_classPrivateFieldGet6","render","Component","React","onShare","onTerminate","onSubmitFeedback","onSwitchToChat","onFeedbackOnView","ref","_CruiseCanvas2","e","_set_shareEvent","_set_terminateEvent","_set_feedbackSubmitEvent","_set_feedbackOnViewEvent","_set_switch","c","_initClass","_applyDecs","shadowOptions","attribute","type","Boolean","Number","o","_","has","_checkInRHS","K","en","ASK_ANY_THING","COMMON_TASKS","zh","t","i18n","getFixedT","WrappedIcon","wrapBrick","_ChatBox","_ChatBox_brand","_handleMessageSubmit","ChatBox","_init_disabled","_init_extra_disabled","_init_placeholder","_init_extra_placeholder","_init_autoFocus","_init_extra_autoFocus","_init_suggestions","_init_extra_suggestions","_init_suggestionsLabel","_init_extra_suggestionsLabel","_init_messageSubmit","_init_extra_messageSubmit","value","_get_messageSubmit","disabled","placeholder","autoFocus","suggestions","suggestionsLabel","ChatBoxComponent","onSubmit","containerRef","useRef","textareaRef","setValue","useState","valueRef","handleSubmit","useCallback","currentTarget","handleChange","target","handleSubmitClick","useEffect","Promise","resolve","then","_textareaRef$current","focus","groupedSuggestions","useMemo","length","chunk","Math","max","ceil","handleSelectSuggestion","suggestion","content","setTimeout","_textareaRef$current2","className","TextareaAutoResize","minRows","paddingSize","autoResize","submitWhen","onChange","onClick","lib","prefix","icon","src","tips","width","height","map","group","index","SuggestionCarousel","key","pixelPerSecond","onSelect","_ref2","carouselRef","listRef","x","setX","carousel","list","previousTimestamp","currentTimestamp","start","timer","offsetTime","mod","offsetWidth","step","timestamp","undefined","requestAnimationFrame","onMouseEnter","cancelAnimationFrame","onMouseLeave","addEventListener","removeEventListener","style","transform","item","title","_ChatBox2","_set_messageSubmit","styleTexts","styleText","_HomeContainer","HomeContainer","HomeContainerComponent","_HomeContainer2","TODAY","YESTERDAY","PREVIOUS_7_DAYS","PREVIOUS_30_DAYS","WrappedLink","WrappedMiniActions","onActionClick","onVisibleChange","_ChatHistory","_ChatHistory_brand","_handleActionClick","_handleLoadMore","ChatHistory","_init_list","_init_extra_list","_init_actions","_init_extra_actions","_init_nextToken","_init_extra_nextToken","_init_actionClick","_init_extra_actionClick","_get_actionClick","_init_loadMore","_init_extra_loadMore","nextToken","_get_loadMore","actions","ChatHistoryComponent","root","onLoadMore","groups","groupMap","Map","now","moment","startOfDay","clone","startOf","yesterday","subtract","sevenDaysAgo","thirtyDaysAgo","timestamps","groupKey","startTime","format","get","set","items","values","actionsVisible","setActionsVisible","nextRef","next","observer","IntersectionObserver","entries","entry","isIntersecting","observe","disconnect","classNames","active","url","action","DONE_STATES","includes","state","spinning","theme","_ChatHistory2","_set_actionClick","_set_loadMore","WrappedMiniLineChart","_StatWithMiniChart","StatWithMiniChart","_init_label","_init_extra_label","_init_value","_init_extra_value","_init_size","_init_extra_size","_init_lineColor","_init_extra_lineColor","_init_showArea","_init_extra_showArea","_init_min","_init_extra_min","_init_max","_init_extra_max","_init_xField","_init_extra_xField","_init_yField","_init_extra_yField","_init_data","_init_extra_data","label","size","lineColor","showArea","min","xField","yField","data","StatWithMiniChartComponent","chartProps","_extends","lineWidth","_StatWithMiniChart2","_ElevoLogo","ElevoLogo","ElevoLogoComponent","logoImage","alt","_ElevoLogo2","NEW_CHAT","LOGOUT","SWITCH_LANGUAGE","WrappedDropdownActions","WrappedEasyopsAvatar","WrappedIconButton","AgentFlowApi_searchTaskForAgentFlow","async","options","http","post","LegacyChatHistory","activeId","urlTemplate","onHistoryClick","rootRef","setList","setNextToken","loadNextToken","setLoadNextToken","all","next_token","interceptorParams","ignoreLoadingBar","prev","catch","error","console","pullIdRef","pull","pullId","prevList","newList","newIds","Set","newItemsMap","foundIntersection","foundChanged","isFirst","newItem","isEqual","filter","useImperativeHandle","template","context","replace","_match","SIDEBAR_ICON","ElevoSidebarComponent","LegacyElevoSidebarComponent","_ElevoSidebar","_ElevoSidebar_brand","_handleLogout","ElevoSidebar","_init_userInstanceId","_init_extra_userInstanceId","_init_behavior","_init_extra_behavior","_init_logoUrl","_init_extra_logoUrl","_init_newChatUrl","_init_extra_newChatUrl","_init_historyActiveId","_init_extra_historyActiveId","_init_historyUrlTemplate","_init_extra_historyUrlTemplate","_init_historyActions","_init_extra_historyActions","_init_links","_init_extra_links","_init_logout","_init_extra_logout","_get_logout","userInstanceId","behavior","logoUrl","newChatUrl","historyActiveId","historyUrlTemplate","historyActions","links","pullHistory","delay","close","onLogout","collapsed","setCollapsed","handleCollapse","handleExpand","handleClickMask","handleHistoryClick","dropdownActions","text","historyRef","_historyRef$current","variant","link","changeLanguage","language","split","getHistory","reload","nameOrInstanceId","showName","_ElevoSidebar2","_set_logout","WrappedTooltip","_IconButton","IconButton","_init_icon","_init_extra_icon","_init_tooltip","_init_extra_tooltip","_init_variant","_init_extra_variant","tooltip","IconButtonComponent","btn","_IconButton2","ALL","_ShowCases","ShowCases","_init_taskUrlTemplate","_init_extra_taskUrlTemplate","taskUrlTemplate","ShowCasesComponent","scenario","activeGroup","setActiveGroup","filteredList","thumbUrl","backgroundImage","getBasePath","summary","_ShowCases2","MCP_HUB","SERVER_cmdb","SERVER_cmdb_product_helper","SERVER_alert","SERVER_web_builder","SERVER_web_builder2","SERVER_host_troubleshooting","SERVER_system_inspection","SERVER_grafana","SERVER_kubernetes","SERVER_llm","DEFAULT_TOOL_ICON","PLATFORM_CONFIG","servers","_McpTools","McpTools","McpToolsComponent","platformMap","forEach","groupName","server","replaceAll","name","platform","find","_name","platformName","orderedNames","sort","_ref3","_ref4","nameA","nameB","indexA","indexOf","indexB","platforms","keys","names","a","b","aIndex","bIndex","activePlatform","setActivePlatform","filteredGroups","groupedList","platformGroups","_ref5","_ref6","_item$icon","fallback","description","_McpTools2","ICON_SHARE","ChatStreamComponent","LegacyChatStreamComponent","_ChatStream","_ChatStream_brand","_onSwitchToCanvas","ChatStream","onSwitchToCanvas","_task$title","propShowFeedback","humanInputRef","resumedRef","skipToResults","watchAgain","useTaskDetail","pageTitle","taskState","taskDone","messages","inputRequiredJobId","lastToolCallJobId","useChatStream","views","flatMap","job","generatedView","view","submittingFeedback","setSubmittingFeedback","submittedFeedback","setSubmittedFeedback","setShowFeedback","feedbackDoneViews","setFeedbackDoneViews","handleSubmitFeedback","_resumedRef$current","newSet","add","activeExpandedViewJobId","setActiveExpandedViewJobId","activeToolCallJobId","setActiveToolCallJobId","userClosedAside","setUserClosedAside","delayRef","taskAvailable","clearTimeout","getRuntime","applyPageTitle","handleHttpError","humanInput","jobId","input","_humanInputRef$curren","taskContextValue","streamContextValue","detectScrolledUpRef","manualScrolledRef","scrollContainerRef","scrollable","setScrollable","scrollContainer","contentContainer","firstElementChild","handleScroll","scrollTop","clientHeight","scrollHeight","ResizeObserver","scrollTo","top","scrollToBottom","activeToolCallJob","TaskContext","Provider","StreamContext","styles","container","header","left","right","ICON_CANVAS","main","narrow","msg","message","role","UserMessage","AssistantMessage","isLatest","NodeFeedback","feedback","hidden","chat","footer","ReplayToolbar","canChat","aside","expanded","Aside","ExpandedView","_ChatStream2","AI_EMPLOYEES","AVATARS","Avatar1","Avatar2","Avatar3","Avatar4","Avatar5","Avatar6","Avatar7","Avatar8","_AIEmployees","AIEmployees","_init_industries","_init_extra_industries","industries","AIEmployeesComponent","_industries","industry","activeIndustry","setActiveIndustry","array","industryIndex","groupIndex","_AIEmployees2","AGENTS","_AIAgents","AIAgents","AIAgentsComponent","_item$tags","tags","tag","tagIndex","_AIAgents2","store","customElements","define","createProviderClass","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_REPLACEMENT_0___"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/8928.c3da7b15.js","mappings":"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","sources":["webpack:///./src/stat-with-mini-chart/styles.shadow.css","webpack:///./src/cruise-canvas/index.tsx","webpack:///./src/chat-box/i18n.ts","webpack:///./src/chat-box/index.tsx","webpack:///./src/home-container/index.tsx","webpack:///./src/chat-history/i18n.ts","webpack:///./src/chat-history/index.tsx","webpack:///./src/stat-with-mini-chart/index.tsx","webpack:///./src/elevo-logo/index.tsx","webpack:///./src/elevo-sidebar/i18n.ts","webpack:///./src/elevo-sidebar/bricks.ts","webpack:///../../node_modules/@next-api-sdk/llm-sdk/dist/esm/api/llm/agent_flow/searchTaskForAgentFlow.js","webpack:///./src/elevo-sidebar/ChatHistory.tsx","webpack:///./src/elevo-sidebar/index.tsx","webpack:///./src/icon-button/index.tsx","webpack:///./src/show-cases/i18n.ts","webpack:///./src/show-cases/index.tsx","webpack:///./src/mcp-tools/i18n.ts","webpack:///./src/mcp-tools/index.tsx","webpack:///./src/chat-stream/index.tsx","webpack:///./src/ai-employees/i18n.ts","webpack:///./src/ai-employees/index.tsx","webpack:///./src/ai-agents/i18n.ts","webpack:///./src/ai-agents/index.tsx","webpack:///./src/data-providers/request-store.ts","webpack:///./src/chat-history/styles.shadow.css","webpack:///./src/elevo-logo/styles.shadow.css","webpack:///./src/mcp-tools/styles.shadow.css","webpack:///./src/show-cases/styles.shadow.css","webpack:///./src/chat-box/styles.shadow.css","webpack:///./src/icon-button/styles.shadow.css","webpack:///./src/elevo-sidebar/styles.shadow.css","webpack:///./src/home-container/styles.shadow.css","webpack:///./src/ai-agents/styles.shadow.css","webpack:///./src/ai-employees/styles.shadow.css"],"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, `:host{display:block;white-space:nowrap}.container{border-radius:var(--elevo-border-radius)}:host([hidden]){display:none}*{box-sizing:border-box}.label{font-weight:500;overflow:hidden;text-overflow:ellipsis}.stat{font-weight:600}.chart{min-width:0}.chart > *{display:block}:host(:not([size=\"small\"])) .container{background:linear-gradient(164deg,rgba(105,153,253,0) 40%,rgba(105,153,253,0.05) 60%,rgba(105,153,253,0.32) 100%),#fff;padding:22px}:host(:not([size=\"small\"])) .label{font-size:14px;height:22px;margin-bottom:16px}:host(:not([size=\"small\"])) .stat-and-chart{display:flex;align-items:center;justify-content:end;position:relative}:host(:not([size=\"small\"])) .stat{font-size:36px;color:#1d212a;position:absolute;left:0}:host(:not([size=\"small\"])) .chart{width:calc(100% - 160px)}:host([size=\"small\"]) .container{padding:11px 15px;display:flex;align-items:center;justify-content:end;position:relative;background:var(--elevo-component-background);-webkit-backdrop-filter:var(--elevo-component-backdrop-filter);backdrop-filter:var(--elevo-component-backdrop-filter)}:host([size=\"small\"]) .label-and-stat{position:absolute;left:15px}:host([size=\"small\"]) .label{font-size:12px;color:#8c8c8c;line-height:17px;height:17px;margin-bottom:7px}:host([size=\"small\"]) .stat{font-size:20px;color:#262626;line-height:24px}:host([size=\"small\"]) .chart{width:calc(100% - 90px)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// istanbul ignore file: experimental\nimport React, { createRef, forwardRef } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { NS, locales } from \"./i18n.js\";\nimport type { Job, TaskBaseDetail, FeedbackDetail } from \"./interfaces.js\";\nimport { LegacyCruiseCanvasComponent } from \"./LegacyCruiseCanvas.js\";\nimport { CruiseCanvasComponent, type CruiseCanvasRef } from \"./CruiseCanvas.js\";\nimport type { RequestStore } from \"../shared/interfaces.js\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface CruiseCanvasProps {\n conversationId?: string;\n initialRequest?: RequestStore | null;\n taskId?: string;\n task?: TaskBaseDetail;\n jobs?: Job[];\n replay?: boolean;\n replayDelay?: number;\n supports?: Record<string, boolean>;\n showHiddenJobs?: boolean;\n showFeedback?: boolean;\n showUiSwitch?: boolean;\n showFeedbackOnView?: boolean;\n showJsxEditor?: boolean;\n}\n\nconst ForwardedLegacyCruiseCanvasComponent = forwardRef(\n LegacyCruiseCanvasComponent\n);\n\nconst ForwardedCruiseCanvasComponent = forwardRef(CruiseCanvasComponent);\n\n/**\n * 构件 `ai-portal.cruise-canvas`\n */\nexport\n@defineElement(\"ai-portal.cruise-canvas\", {\n // Will wrap v2 bricks which don't support in shadow DOM.\n shadowOptions: false,\n})\nclass CruiseCanvas extends ReactNextElement implements CruiseCanvasProps {\n @property()\n accessor conversationId: string | undefined;\n\n /** 初始请求数据。仅初始设置有效。 */\n @property({ attribute: false, render: false })\n accessor initialRequest: RequestStore | undefined | null;\n\n @property()\n accessor taskId: string | undefined;\n\n @property({ attribute: false })\n accessor task: TaskBaseDetail | undefined;\n\n @property({ attribute: false })\n accessor jobs: Job[] | undefined;\n\n /** 是否启用回放。仅初始设置有效。 */\n @property({ type: Boolean, render: false })\n accessor replay: boolean | undefined;\n\n /**\n * 设置回放时消息之间的时间间隔,单位为秒。仅初始设置有效。\n *\n * @default 2\n */\n @property({ type: Number, render: false })\n accessor replayDelay: number | undefined;\n\n @property({ attribute: false })\n accessor supports: Record<string, boolean> | undefined;\n\n @property({ type: Boolean })\n accessor showHiddenJobs: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedback: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedbackOnView: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showUiSwitch: boolean | undefined;\n\n @property({ type: Boolean, render: false })\n accessor hideMermaid: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showJsxEditor: boolean | undefined;\n\n @event({ type: \"share\" })\n accessor #shareEvent!: EventEmitter<void>;\n\n #onShare = () => {\n this.#shareEvent.emit();\n };\n\n @event({ type: \"terminate\" })\n accessor #terminateEvent!: EventEmitter<void>;\n\n #onTerminate = () => {\n this.#terminateEvent.emit();\n };\n\n @event({ type: \"feedback.submit\" })\n accessor #feedbackSubmitEvent!: EventEmitter<FeedbackDetail>;\n\n #onSubmitFeedback = (detail: FeedbackDetail) => {\n this.#feedbackSubmitEvent.emit(detail);\n };\n\n @event({ type: \"feedback.on.view\" })\n accessor #feedbackOnViewEvent!: EventEmitter<string>;\n\n #onFeedbackOnView = (viewId: string) => {\n this.#feedbackOnViewEvent.emit(viewId);\n };\n\n @event({ type: \"ui.switch\" })\n accessor #switch!: EventEmitter<\"chat\">;\n\n #onSwitchToChat = () => {\n this.#switch.emit(\"chat\");\n };\n\n #ref = createRef<CruiseCanvasRef>();\n\n @method()\n resumed() {\n this.#ref.current?.resumed?.();\n }\n\n @method()\n feedbackSubmitDone() {\n this.#ref.current?.feedbackSubmitDone();\n }\n\n @method()\n feedbackSubmitFailed() {\n this.#ref.current?.feedbackSubmitFailed();\n }\n\n @method()\n feedbackOnViewDone(viewId: string) {\n this.#ref.current?.feedbackOnViewDone(viewId);\n }\n\n render() {\n const Component = this.conversationId\n ? ForwardedCruiseCanvasComponent\n : ForwardedLegacyCruiseCanvasComponent;\n return (\n <Component\n conversationId={this.conversationId!}\n initialRequest={this.initialRequest}\n taskId={this.taskId}\n jobs={this.jobs}\n task={this.task}\n replay={this.replay}\n replayDelay={this.replayDelay}\n supports={this.supports}\n showHiddenJobs={this.showHiddenJobs}\n showFeedback={this.showFeedback}\n showUiSwitch={this.showUiSwitch}\n showFeedbackOnView={this.showFeedbackOnView}\n showJsxEditor={this.showJsxEditor}\n onShare={this.#onShare}\n onTerminate={this.#onTerminate}\n onSubmitFeedback={this.#onSubmitFeedback}\n onSwitchToChat={this.#onSwitchToChat}\n onFeedbackOnView={this.#onFeedbackOnView}\n ref={this.#ref}\n />\n );\n }\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ASK_ANY_THING = \"ASK_ANYTHING\",\n COMMON_TASKS = \"COMMON_TASKS\",\n}\n\nconst en: Locale = {\n [K.ASK_ANY_THING]: \"Ask anything\",\n [K.COMMON_TASKS]: \"Common tasks\",\n};\n\nconst zh: Locale = {\n [K.ASK_ANY_THING]: \"询问任何问题\",\n [K.COMMON_TASKS]: \"常用任务\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-box\";\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","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport {\n TextareaAutoResize,\n type TextareaAutoResizeRef,\n} from \"@next-shared/form\";\nimport { chunk } from \"lodash\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport tips from \"./images/tips.svg\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ChatBoxProps {\n disabled?: boolean;\n placeholder?: string;\n autoFocus?: boolean;\n suggestions?: Suggestion[];\n suggestionsLabel?: string;\n}\n\nexport interface Suggestion {\n title: string;\n content: string;\n}\n\n/**\n * 构件 `ai-portal.chat-box`\n */\nexport\n@defineElement(\"ai-portal.chat-box\", {\n styleTexts: [styleText],\n})\nclass ChatBox extends ReactNextElement implements ChatBoxProps {\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n @property()\n accessor placeholder: string | undefined;\n\n @property({ type: Boolean })\n accessor autoFocus: boolean | undefined;\n\n @property({ attribute: false })\n accessor suggestions: Suggestion[] | undefined;\n\n @property()\n accessor suggestionsLabel: string | undefined;\n\n @event({ type: \"message.submit\" })\n accessor #messageSubmit!: EventEmitter<string>;\n\n #handleMessageSubmit = (value: string) => {\n this.#messageSubmit.emit(value);\n };\n\n render() {\n return (\n <ChatBoxComponent\n disabled={this.disabled}\n placeholder={this.placeholder}\n autoFocus={this.autoFocus}\n suggestions={this.suggestions}\n suggestionsLabel={this.suggestionsLabel}\n onSubmit={this.#handleMessageSubmit}\n />\n );\n }\n}\n\nexport interface ChatBoxComponentProps extends ChatBoxProps {\n // Define react event handlers here.\n onSubmit?: (value: string) => void;\n}\n\nexport function ChatBoxComponent({\n disabled,\n placeholder,\n autoFocus,\n suggestions,\n suggestionsLabel,\n onSubmit,\n}: ChatBoxComponentProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const textareaRef = useRef<TextareaAutoResizeRef>(null);\n const [value, setValue] = useState(\"\");\n const valueRef = useRef(\"\");\n\n const handleSubmit = useCallback(\n (e: React.FormEvent<HTMLTextAreaElement>) => {\n if (e.currentTarget.value) {\n onSubmit?.(e.currentTarget.value);\n }\n },\n [onSubmit]\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n valueRef.current = e.target.value;\n setValue(e.target.value);\n },\n []\n );\n\n const handleSubmitClick = useCallback(() => {\n onSubmit?.(valueRef.current);\n }, [onSubmit]);\n\n useEffect(\n () => {\n if (autoFocus) {\n Promise.resolve().then(() => {\n textareaRef.current?.focus();\n });\n }\n },\n // One-time focus\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n // istanbul ignore next: experimental\n const groupedSuggestions = useMemo(() => {\n if (!suggestions?.length) {\n return [];\n }\n return chunk(suggestions, Math.max(2, Math.ceil(suggestions.length / 2)));\n }, [suggestions]);\n\n // istanbul ignore next: experimental\n const handleSelectSuggestion = useCallback((suggestion: Suggestion) => {\n valueRef.current = suggestion.content;\n setValue(suggestion.content);\n setTimeout(() => {\n textareaRef.current?.focus();\n });\n }, []);\n\n return (\n <div className=\"root\">\n <div className=\"container\" ref={containerRef}>\n <TextareaAutoResize\n containerRef={containerRef}\n ref={textareaRef}\n value={value}\n minRows={3}\n paddingSize={62}\n autoResize\n disabled={disabled}\n placeholder={placeholder ?? t(K.ASK_ANY_THING)}\n submitWhen=\"enter-without-shift\"\n onSubmit={handleSubmit}\n onChange={handleChange}\n />\n <button\n className=\"btn-send\"\n disabled={!value}\n onClick={handleSubmitClick}\n >\n <WrappedIcon lib=\"fa\" prefix=\"fas\" icon=\"arrow-up\" />\n </button>\n </div>\n {\n // istanbul ignore next: experimental\n !!groupedSuggestions?.length && (\n <div className=\"suggestions\">\n <div className=\"heading\">\n <img\n className=\"icon\"\n src={tips as unknown as string}\n width={16}\n height={16}\n />\n <span>{suggestionsLabel ?? t(K.COMMON_TASKS)}</span>\n </div>\n {groupedSuggestions.map((group, index) => (\n <SuggestionCarousel\n key={index}\n suggestions={group}\n pixelPerSecond={(index + 2) * 10}\n onSelect={handleSelectSuggestion}\n />\n ))}\n </div>\n )\n }\n </div>\n );\n}\n\nexport interface SuggestionCarouselProps {\n suggestions: Suggestion[];\n pixelPerSecond: number;\n onSelect: (suggestion: Suggestion) => void;\n}\n\n// istanbul ignore next: experimental\nfunction SuggestionCarousel({\n suggestions,\n pixelPerSecond,\n onSelect,\n}: SuggestionCarouselProps) {\n const carouselRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLUListElement>(null);\n const [x, setX] = useState(0);\n\n // Auto scroll suggestions infinitely.\n // Stop scrolling when mouse enter, and resume when mouse leave.\n useEffect(() => {\n const carousel = carouselRef.current;\n const list = listRef.current;\n\n if (!carousel || !list) {\n return;\n }\n\n let previousTimestamp: number | undefined;\n let currentTimestamp: number | undefined;\n let offsetTime = 0;\n let start: number | undefined;\n let timer: number;\n\n // We doubled the suggestions to make it scroll infinitely.\n const gap = 7;\n const listSingleWidth = (list.offsetWidth - gap) / 2;\n const mod = listSingleWidth + gap;\n\n function step(timestamp: number) {\n currentTimestamp = timestamp;\n if (start === undefined) {\n start = timestamp;\n }\n if (previousTimestamp !== undefined) {\n offsetTime += timestamp - previousTimestamp;\n previousTimestamp = undefined;\n }\n const elapsed = timestamp - start - offsetTime;\n setX(((elapsed / 1000) * pixelPerSecond) % mod);\n timer = requestAnimationFrame(step);\n }\n\n timer = requestAnimationFrame(step);\n\n const onMouseEnter = () => {\n cancelAnimationFrame(timer);\n previousTimestamp = currentTimestamp;\n };\n const onMouseLeave = () => {\n timer = requestAnimationFrame(step);\n };\n\n carousel.addEventListener(\"mouseenter\", onMouseEnter);\n carousel.addEventListener(\"mouseleave\", onMouseLeave);\n\n return () => {\n cancelAnimationFrame(timer);\n carousel.removeEventListener(\"mouseenter\", onMouseEnter);\n carousel.removeEventListener(\"mouseleave\", onMouseLeave);\n };\n }, [suggestions, pixelPerSecond]);\n\n return (\n <div className=\"carousel\" ref={carouselRef}>\n <ul\n className=\"list\"\n ref={listRef}\n style={{ transform: `translateX(${-x}px)` }}\n >\n {[...suggestions, ...suggestions].map((item, index) => (\n <li key={index}>\n <div\n className=\"item\"\n onClick={() => onSelect(item)}\n title={item.content}\n >\n <div className=\"title\">{item.title}</div>\n <div className=\"content\">{item.content}</div>\n </div>\n </li>\n ))}\n </ul>\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement } = createDecorators();\n\n/**\n * 构件 `ai-portal.home-container`\n */\nexport\n@defineElement(\"ai-portal.home-container\", {\n styleTexts: [styleText],\n})\nclass HomeContainer extends ReactNextElement {\n render() {\n return <HomeContainerComponent />;\n }\n}\n\nexport function HomeContainerComponent() {\n return <slot />;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n TODAY = \"TODAY\",\n YESTERDAY = \"YESTERDAY\",\n PREVIOUS_7_DAYS = \"PREVIOUS_7_DAYS\",\n PREVIOUS_30_DAYS = \"PREVIOUS_30_DAYS\",\n}\n\nconst en: Locale = {\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};\n\nconst zh: Locale = {\n [K.TODAY]: \"今天\",\n [K.YESTERDAY]: \"昨天\",\n [K.PREVIOUS_7_DAYS]: \"过去7天\",\n [K.PREVIOUS_30_DAYS]: \"过去30天\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-history\";\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","// istanbul ignore file: experimental\nimport React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport moment from \"moment\";\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 ActionType,\n EoMiniActions,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping,\n EoMiniActionsProps,\n SimpleActionType,\n} from \"@next-bricks/basic/mini-actions\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport type { TaskState } from \"../cruise-canvas/interfaces.js\";\nimport { DONE_STATES } from \"../shared/constants.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedMiniActions = wrapBrick<\n EoMiniActions,\n EoMiniActionsProps,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping\n>(\"eo-mini-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ChatHistoryProps {\n list?: HistoryItem[];\n actions?: ActionType[];\n nextToken?: string;\n}\n\nexport interface HistoryItem {\n id: string;\n url: string;\n title: string;\n startTime: number;\n state?: TaskState;\n}\n\nexport interface ActionClickDetail {\n action: SimpleActionType;\n item: HistoryItem;\n}\n\n/**\n * 构件 `ai-portal.chat-history`\n */\nexport\n@defineElement(\"ai-portal.chat-history\", {\n styleTexts: [styleText],\n})\nclass ChatHistory extends ReactNextElement implements ChatHistoryProps {\n @property({ attribute: false })\n accessor list: HistoryItem[] | undefined;\n\n @property({ attribute: false })\n accessor actions: ActionType[] | undefined;\n\n @property()\n accessor nextToken: string | undefined;\n\n @event({ type: \"action.click\" })\n accessor #actionClick!: EventEmitter<ActionClickDetail>;\n\n #handleActionClick = (detail: ActionClickDetail) => {\n this.#actionClick.emit(detail);\n };\n\n @event({ type: \"load.more\" })\n accessor #loadMore!: EventEmitter<{ nextToken: string }>;\n\n #handleLoadMore = (nextToken: string) => {\n this.#loadMore.emit({ nextToken });\n };\n\n render() {\n return (\n <ChatHistoryComponent\n root={this}\n list={this.list}\n actions={this.actions}\n nextToken={this.nextToken}\n onActionClick={this.#handleActionClick}\n onLoadMore={this.#handleLoadMore}\n />\n );\n }\n}\n\nexport interface ChatHistoryComponentProps extends ChatHistoryProps {\n root: HTMLElement;\n onActionClick: (detail: ActionClickDetail) => void;\n onLoadMore: (nextToken: string) => void;\n}\n\ninterface GroupedHistory {\n title: string;\n items: HistoryItem[];\n}\n\nexport function ChatHistoryComponent({\n root,\n list,\n actions,\n nextToken,\n onActionClick,\n onLoadMore,\n}: ChatHistoryComponentProps) {\n const groups = useMemo(() => {\n const groupMap = new Map<string, GroupedHistory>();\n // Group history by\n // - today\n // - yesterday\n // - previous 7 days\n // - previous 30 days\n // - each month this year\n // - each year before.\n const now = moment();\n const startOfDay = now.clone().startOf(\"day\");\n const yesterday = startOfDay.clone().subtract(1, \"day\");\n const sevenDaysAgo = startOfDay.clone().subtract(7, \"days\");\n const thirtyDaysAgo = startOfDay.clone().subtract(30, \"days\");\n const thisYear = now.clone().startOf(\"year\");\n\n const timestamps = {\n startOfDay: +startOfDay / 1000,\n yesterday: +yesterday / 1000,\n sevenDaysAgo: +sevenDaysAgo / 1000,\n thirtyDaysAgo: +thirtyDaysAgo / 1000,\n thisYear: +thisYear / 1000,\n };\n for (const item of list ?? []) {\n let groupKey: string;\n if (item.startTime >= timestamps.startOfDay) {\n groupKey = t(K.TODAY);\n } else if (item.startTime >= timestamps.yesterday) {\n groupKey = t(K.YESTERDAY);\n } else if (item.startTime >= timestamps.sevenDaysAgo) {\n groupKey = t(K.PREVIOUS_7_DAYS);\n } else if (item.startTime >= timestamps.thirtyDaysAgo) {\n groupKey = t(K.PREVIOUS_30_DAYS);\n } else if (item.startTime >= timestamps.thisYear) {\n groupKey = moment(item.startTime * 1000).format(\"MMMM\");\n } else {\n groupKey = moment(item.startTime * 1000).format(\"YYYY\");\n }\n let group = groupMap.get(groupKey);\n if (!group) {\n groupMap.set(groupKey, (group = { title: groupKey, items: [] }));\n }\n group.items.push(item);\n }\n\n return [...groupMap.values()];\n }, [list]);\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 if (!next || !nextToken) {\n return;\n }\n const observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n onLoadMore(nextToken);\n }\n }\n },\n { root }\n );\n observer.observe(next);\n return () => {\n observer.disconnect();\n };\n }, [nextToken, onLoadMore, root]);\n\n if (!list) {\n return (\n <div className=\"loading\">\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </div>\n );\n }\n\n return (\n <>\n <ul>\n {groups.map((group) => (\n <li key={group.title} className=\"group\">\n <div className=\"group-title\">{group.title}</div>\n <ul className=\"items\">\n {group.items.map((item) => (\n <li key={item.id}>\n <WrappedLink\n className={classNames(\"item\", {\n active: actionsVisible === item.id,\n })}\n url={item.url}\n >\n <div className=\"item-title\" title={item.title}>\n {item.title}\n </div>\n <WrappedMiniActions\n className=\"actions\"\n actions={actions}\n onActionClick={(e) => {\n onActionClick({ action: e.detail, item });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(e.detail ? item.id : null);\n }}\n />\n {!DONE_STATES.includes(item.state!) && (\n <div className=\"working\"></div>\n )}\n </WrappedLink>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n {nextToken && (\n <div className=\"load-more\" ref={nextRef}>\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n )}\n </>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n MiniLineChart,\n MiniLineChartProps,\n} from \"@next-bricks/mini-chart/mini-line-chart\";\n\nconst WrappedMiniLineChart = wrapBrick<MiniLineChart, MiniLineChartProps>(\n \"eo-mini-line-chart\"\n);\n\nconst { defineElement, property } = createDecorators();\n\nexport interface StatWithMiniChartProps\n extends Pick<\n MiniLineChartProps,\n \"data\" | \"xField\" | \"yField\" | \"lineColor\" | \"showArea\" | \"min\" | \"max\"\n > {\n label?: string;\n value?: string;\n size?: \"medium\" | \"small\";\n}\n\n/**\n * 构件 `ai-portal.stat-with-mini-chart`\n */\nexport\n@defineElement(\"ai-portal.stat-with-mini-chart\", {\n styleTexts: [styleText],\n})\nclass StatWithMiniChart\n extends ReactNextElement\n implements StatWithMiniChartProps\n{\n @property()\n accessor label: string | undefined;\n\n @property()\n accessor value: string | undefined;\n\n /**\n * @default \"medium\"\n */\n @property()\n accessor size: \"medium\" | \"small\" | undefined;\n\n /**\n * @default \"var(--color-brand)\"\n */\n @property()\n accessor lineColor: string | undefined;\n\n @property({ type: Boolean })\n accessor showArea: boolean | undefined;\n\n /**\n * Specify the minimum value of the y-axis.\n * If not specified, the minimum value will be calculated from the data.\n */\n @property({ type: Number })\n accessor min: number | undefined;\n\n /**\n * Specify the maximum value of the y-axis.\n * If not specified, the maximum value will be calculated from the data.\n */\n @property({ type: Number })\n accessor max: number | undefined;\n\n /**\n * @default \"0\"\n */\n @property()\n accessor xField: string | undefined;\n\n /**\n * @default \"1\"\n */\n @property()\n accessor yField: string | undefined;\n\n @property({ attribute: false })\n accessor data: Record<string, number>[] | undefined;\n\n render() {\n return (\n <StatWithMiniChartComponent\n label={this.label}\n value={this.value}\n size={this.size}\n lineColor={this.lineColor}\n showArea={this.showArea}\n min={this.min}\n max={this.max}\n xField={this.xField}\n yField={this.yField}\n data={this.data}\n />\n );\n }\n}\n\nfunction StatWithMiniChartComponent({\n label,\n value,\n size,\n ...chartProps\n}: StatWithMiniChartProps) {\n if (size === \"small\") {\n return (\n <div className=\"container\">\n <div className=\"label-and-stat\">\n <div className=\"label\">{label}</div>\n <div className=\"stat\">{value}</div>\n </div>\n <div className=\"chart\">\n <WrappedMiniLineChart\n {...chartProps}\n lineWidth={1.5}\n width=\"auto\"\n height=\"55\"\n />\n </div>\n </div>\n );\n }\n return (\n <div className=\"container\">\n <div className=\"label\">{label}</div>\n <div className=\"stat-and-chart\">\n <div className=\"chart\">\n <WrappedMiniLineChart\n {...chartProps}\n lineWidth={2}\n width=\"auto\"\n height=\"92\"\n />\n </div>\n <div className=\"stat\">{value}</div>\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport logoImage from \"./images/logo@2x.png\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement } = createDecorators();\n\n/**\n * Elevo Logo\n */\nexport\n@defineElement(\"ai-portal.elevo-logo\", {\n styleTexts: [styleText],\n})\nclass ElevoLogo extends ReactNextElement {\n render() {\n return <ElevoLogoComponent />;\n }\n}\n\nfunction ElevoLogoComponent() {\n return <img src={logoImage} alt=\"Elevo\" width={95} height={28} />;\n}\n","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}\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};\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};\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","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,\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 分页查询agent flow, 默认只查询最近三个页的数据\n * @endpoint POST /api/v1/llm/agent/flow/search\n */\nexport const AgentFlowApi_searchTaskForAgentFlow = async (data, options) => /**! @contract easyops.api.llm.agent_flow.SearchTaskForAgentFlow@1.0.0 */(await http.post(\"api/gateway/logic.llm.aiops_service/api/v1/llm/agent/flow/search\", data, options)).data;\n//# sourceMappingURL=searchTaskForAgentFlow.js.map","import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport moment from \"moment\";\nimport classNames from \"classnames\";\nimport { AgentFlowApi_searchTaskForAgentFlow } from \"@next-api-sdk/llm-sdk\";\nimport type {\n ActionType,\n SimpleActionType,\n} from \"@next-bricks/basic/mini-actions\";\nimport { get, isEqual } from \"lodash\";\nimport { K, t } from \"./i18n.js\";\nimport type { TaskState } from \"../cruise-canvas/interfaces.js\";\nimport { WrappedIcon, WrappedLink, WrappedMiniActions } from \"./bricks.js\";\nimport { DONE_STATES } from \"../shared/constants.js\";\n\nexport interface HistoryItem {\n id: string;\n title: string;\n startTime: number;\n state?: TaskState;\n}\n\nexport interface GroupedHistory {\n title: string;\n items: HistoryItem[];\n}\n\nexport interface ActionClickDetail {\n action: SimpleActionType;\n item: HistoryItem;\n}\n\nexport interface ChatHistoryProps {\n activeId?: string;\n urlTemplate?: string;\n actions?: ActionType[];\n onActionClick: (detail: ActionClickDetail) => void;\n onHistoryClick: () => void;\n}\n\nexport interface ChatHistoryRef {\n pull: () => void;\n}\n\nexport const ChatHistory = forwardRef(LegacyChatHistory);\n\nexport function LegacyChatHistory(\n {\n activeId,\n actions,\n urlTemplate,\n onActionClick,\n onHistoryClick,\n }: ChatHistoryProps,\n ref: React.Ref<ChatHistoryRef>\n) {\n const rootRef = useRef<HTMLDivElement | null>(null);\n const [list, setList] = useState<HistoryItem[] | null>(null);\n const [nextToken, setNextToken] = useState<string | undefined>();\n const [loadNextToken, setLoadNextToken] = useState<string | undefined>();\n\n useEffect(() => {\n Promise.all([\n AgentFlowApi_searchTaskForAgentFlow(\n { next_token: loadNextToken },\n {\n interceptorParams: {\n ignoreLoadingBar: true,\n },\n }\n ),\n new Promise((resolve) => setTimeout(resolve, 500)), // Force a minimum delay\n ])\n .then(([data]) => {\n setList((prev) => [...(prev ?? []), ...(data.data as HistoryItem[])]);\n setNextToken(data.next_token);\n })\n .catch((error) => {\n if (process.env.NODE_ENV !== \"test\") {\n // eslint-disable-next-line no-console\n console.error(\"Error loading chat history:\", error);\n }\n });\n }, [loadNextToken]);\n\n const groups = useMemo(() => {\n const groupMap = new Map<string, GroupedHistory>();\n // Group history by\n // - today\n // - yesterday\n // - previous 7 days\n // - previous 30 days\n // - each month this year\n // - each year before.\n const now = moment();\n const startOfDay = now.clone().startOf(\"day\");\n const yesterday = startOfDay.clone().subtract(1, \"day\");\n const sevenDaysAgo = startOfDay.clone().subtract(7, \"days\");\n const thirtyDaysAgo = startOfDay.clone().subtract(30, \"days\");\n const thisYear = now.clone().startOf(\"year\");\n\n const timestamps = {\n startOfDay: +startOfDay / 1000,\n yesterday: +yesterday / 1000,\n sevenDaysAgo: +sevenDaysAgo / 1000,\n thirtyDaysAgo: +thirtyDaysAgo / 1000,\n thisYear: +thisYear / 1000,\n };\n for (const item of list ?? []) {\n let groupKey: string;\n if (item.startTime >= timestamps.startOfDay) {\n groupKey = t(K.TODAY);\n } else if (item.startTime >= timestamps.yesterday) {\n groupKey = t(K.YESTERDAY);\n } else if (item.startTime >= timestamps.sevenDaysAgo) {\n groupKey = t(K.PREVIOUS_7_DAYS);\n } else if (item.startTime >= timestamps.thirtyDaysAgo) {\n groupKey = t(K.PREVIOUS_30_DAYS);\n } else if (item.startTime >= timestamps.thisYear) {\n groupKey = moment(item.startTime * 1000).format(\"MMMM\");\n } else {\n groupKey = moment(item.startTime * 1000).format(\"YYYY\");\n }\n let group = groupMap.get(groupKey);\n if (!group) {\n groupMap.set(groupKey, (group = { title: groupKey, items: [] }));\n }\n group.items.push(item);\n }\n\n return [...groupMap.values()];\n }, [list]);\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) {\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]);\n\n const pullIdRef = useRef(0);\n\n const pull = useCallback(async () => {\n try {\n const pullId = ++pullIdRef.current;\n const list = await AgentFlowApi_searchTaskForAgentFlow(\n {},\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 setList((prev) => {\n const prevList = prev ?? [];\n const newList = list.data as HistoryItem[];\n const newIds = new Set(newList.map((item) => item.id));\n const newItemsMap = new Map(newList.map((item) => [item.id, item]));\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.id);\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(list.next_token);\n return newList;\n }\n\n if (foundChanged) {\n return [\n ...newList,\n ...prevList.filter((item) => !newIds.has(item.id)),\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 }),\n [pull]\n );\n\n if (!list) {\n return (\n <div className=\"history\">\n <div className=\"loading\">\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"history\" ref={rootRef}>\n <ul>\n {groups.map((group) => (\n <li key={group.title} className=\"group\">\n <div className=\"group-title\">{group.title}</div>\n <ul className=\"items\">\n {group.items.map((item) => (\n <li key={item.id}>\n <WrappedLink\n className={classNames(\"item\", {\n \"actions-active\": item.id === actionsVisible,\n active: item.id === activeId,\n })}\n onClick={onHistoryClick}\n {...(urlTemplate\n ? { url: parseTemplate(urlTemplate, item) }\n : null)}\n >\n <div className=\"item-title\" title={item.title}>\n {item.title}\n </div>\n <WrappedMiniActions\n className=\"actions\"\n actions={actions}\n onActionClick={(e) => {\n onActionClick({ action: e.detail, item });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(e.detail ? item.id : null);\n }}\n />\n {!DONE_STATES.includes(item.state!) && (\n <div className=\"working\"></div>\n )}\n </WrappedLink>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n {nextToken && (\n <div className=\"load-more\" ref={nextRef}>\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n )}\n </div>\n );\n}\n\nfunction parseTemplate(\n template: string | undefined,\n context: Record<string, any>\n) {\n return template?.replace(/{{(.*?)}}/g, (_match: string, key: string) => {\n const value = get(context, key);\n return value;\n });\n}\n","import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { getHistory } from \"@next-core/runtime\";\nimport classNames from \"classnames\";\nimport type { DropdownActionsProps } from \"@next-bricks/basic/dropdown-actions\";\nimport type { ActionType } from \"@next-bricks/basic/mini-actions\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport ElevoLogo from \"../elevo-logo/images/logo@2x.png\";\nimport {\n WrappedDropdownActions,\n WrappedEasyopsAvatar,\n WrappedIcon,\n WrappedIconButton,\n WrappedLink,\n} from \"./bricks.js\";\nimport {\n ChatHistory,\n type ActionClickDetail,\n type ChatHistoryRef,\n} from \"./ChatHistory.js\";\n\ninitializeI18n(NS, locales);\n\nconst SIDEBAR_ICON: GeneralIconProps = {\n lib: \"easyops\",\n icon: \"sidebar\",\n};\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ElevoSidebarProps {\n userInstanceId?: string;\n behavior?: \"default\" | \"drawer\";\n logoUrl?: string;\n newChatUrl?: string;\n historyActiveId?: string;\n historyUrlTemplate?: string;\n historyActions?: ActionType[];\n links?: SidebarLink[];\n}\n\nexport interface SidebarLink {\n title: string;\n url: string;\n icon: GeneralIconProps;\n}\n\nconst ElevoSidebarComponent = forwardRef(LegacyElevoSidebarComponent);\n\ninterface ElevoSidebarRef extends ChatHistoryRef {\n close: () => void;\n}\n\n/**\n * 构件 `ai-portal.elevo-sidebar`\n */\nexport\n@defineElement(\"ai-portal.elevo-sidebar\", {\n styleTexts: [styleText],\n})\nclass ElevoSidebar extends ReactNextElement implements ElevoSidebarProps {\n @property()\n accessor userInstanceId: string | undefined;\n\n @property()\n accessor behavior: \"default\" | \"drawer\" | undefined;\n\n @property()\n accessor logoUrl: string | undefined;\n\n @property()\n accessor newChatUrl: string | undefined;\n\n @property()\n accessor historyActiveId: string | undefined;\n\n @property()\n accessor historyUrlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor historyActions: ActionType[] | undefined;\n\n @property({ attribute: false })\n accessor links: SidebarLink[] | undefined;\n\n @event({ type: \"logout\" })\n accessor #logout!: EventEmitter<void>;\n\n #handleLogout = () => {\n this.#logout.emit();\n };\n\n @event({ type: \"action.click\" })\n accessor #actionClick!: EventEmitter<ActionClickDetail>;\n\n #handleActionClick = (detail: ActionClickDetail) => {\n this.#actionClick.emit(detail);\n };\n\n #ref = createRef<ElevoSidebarRef>();\n\n /**\n * @param delay Delay in milliseconds before pulling the latest chat history.\n */\n @method()\n pullHistory(delay: number) {\n // Wait several seconds to let the task title to be summarized.\n setTimeout(() => {\n this.#ref.current?.pull();\n }, delay);\n }\n\n @method()\n close() {\n this.#ref.current?.close();\n }\n\n render() {\n return (\n <ElevoSidebarComponent\n ref={this.#ref}\n userInstanceId={this.userInstanceId}\n behavior={this.behavior}\n logoUrl={this.logoUrl}\n newChatUrl={this.newChatUrl}\n historyActiveId={this.historyActiveId}\n historyUrlTemplate={this.historyUrlTemplate}\n historyActions={this.historyActions}\n links={this.links}\n onLogout={this.#handleLogout}\n onActionClick={this.#handleActionClick}\n />\n );\n }\n}\n\ninterface ElevoSidebarComponentProps extends ElevoSidebarProps {\n onLogout: () => void;\n onActionClick: (detail: ActionClickDetail) => void;\n}\n\nfunction LegacyElevoSidebarComponent(\n {\n userInstanceId,\n behavior,\n logoUrl,\n newChatUrl,\n historyActiveId,\n historyUrlTemplate,\n historyActions,\n links,\n onLogout,\n onActionClick,\n }: ElevoSidebarComponentProps,\n ref: React.Ref<ElevoSidebarRef>\n) {\n const [collapsed, setCollapsed] = useState(behavior === \"drawer\");\n const handleCollapse = useCallback(() => {\n setCollapsed(true);\n }, []);\n const handleExpand = useCallback(() => {\n setCollapsed(false);\n }, []);\n\n useEffect(() => {\n if (behavior === \"drawer\") {\n setCollapsed(true);\n }\n }, [behavior]);\n\n const handleClickMask = useCallback(() => {\n setCollapsed(true);\n }, []);\n\n const handleHistoryClick = useCallback(() => {\n if (behavior === \"drawer\") {\n setCollapsed(true);\n }\n }, [behavior]);\n\n const dropdownActions = useMemo<DropdownActionsProps[\"actions\"]>(\n () => [\n {\n key: \"logout\",\n icon: {\n lib: \"fa\",\n prefix: \"fas\",\n icon: \"arrow-right-from-bracket\",\n },\n text: t(K.LOGOUT),\n },\n {\n key: \"switch-language\",\n icon: {\n lib: \"easyops\",\n icon: \"language\",\n },\n text: t(K.SWITCH_LANGUAGE),\n },\n ],\n []\n );\n\n const historyRef = useRef<ChatHistoryRef>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n close: () => {\n setCollapsed(true);\n },\n pull: () => {\n historyRef.current?.pull();\n },\n }),\n []\n );\n\n return (\n <div className={classNames(\"container\", { collapsed })}>\n {behavior === \"drawer\" && !collapsed && (\n <div className=\"mask\" onClick={handleClickMask} />\n )}\n <div className=\"alternative\">\n <WrappedIconButton\n icon={SIDEBAR_ICON}\n variant=\"light\"\n onClick={handleExpand}\n />\n <WrappedLink className=\"new-chat\" url={newChatUrl}>\n <WrappedIcon\n className=\"new-chat-icon\"\n lib=\"easyops\"\n icon=\"new-chat\"\n />\n {t(K.NEW_CHAT)}\n </WrappedLink>\n </div>\n <div className=\"sidebar\">\n <div className=\"logo-bar\">\n <WrappedLink url={logoUrl} className=\"logo-link\">\n <img\n className=\"logo\"\n alt=\"Elevo\"\n src={ElevoLogo}\n width={95}\n height={28}\n />\n </WrappedLink>\n <WrappedIconButton\n icon={SIDEBAR_ICON}\n variant=\"light\"\n onClick={handleCollapse}\n />\n </div>\n <WrappedLink className=\"new-chat\" url={newChatUrl}>\n <WrappedIcon\n className=\"new-chat-icon\"\n lib=\"easyops\"\n icon=\"new-chat\"\n />\n {t(K.NEW_CHAT)}\n </WrappedLink>\n {links?.length ? (\n <div className=\"links\">\n {links.map((link, index) => (\n <WrappedLink className=\"link\" key={index} url={link.url}>\n <WrappedIcon className=\"icon\" {...link.icon} />\n <span className=\"title\">{link.title}</span>\n </WrappedLink>\n ))}\n </div>\n ) : null}\n <ChatHistory\n ref={historyRef}\n activeId={historyActiveId}\n urlTemplate={historyUrlTemplate}\n actions={historyActions}\n onActionClick={onActionClick}\n onHistoryClick={handleHistoryClick}\n />\n <div className=\"footer\">\n <WrappedDropdownActions\n className=\"dropdown\"\n actions={dropdownActions}\n onActionClick={async (e) => {\n if (e.detail.key === \"logout\") {\n onLogout();\n } else {\n await i18n.changeLanguage(\n i18n.language && i18n.language.split(\"-\")[0] === \"en\"\n ? \"zh\"\n : \"en\"\n );\n getHistory().reload();\n }\n }}\n >\n <button className=\"account\">\n <WrappedEasyopsAvatar\n nameOrInstanceId={userInstanceId}\n showName\n size=\"xs\"\n />\n </button>\n </WrappedDropdownActions>\n </div>\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport styleText from \"./styles.shadow.css\";\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface IconButtonProps {\n icon?: GeneralIconProps;\n tooltip?: string;\n disabled?: boolean;\n variant?: IconButtonVariant;\n}\n\nexport type IconButtonVariant = \"default\" | \"light\" | \"mini\";\n\n/**\n * 构件 `ai-portal.icon-button`\n */\nexport\n@defineElement(\"ai-portal.icon-button\", {\n styleTexts: [styleText],\n})\nclass IconButton extends ReactNextElement implements IconButtonProps {\n @property({ attribute: false })\n accessor icon: GeneralIconProps | undefined;\n\n @property()\n accessor tooltip: string | undefined;\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n @property({ render: false })\n accessor variant: IconButtonVariant | undefined;\n\n render() {\n return (\n <IconButtonComponent\n icon={this.icon}\n tooltip={this.tooltip}\n disabled={this.disabled}\n />\n );\n }\n}\n\nfunction IconButtonComponent({ icon, tooltip, disabled }: IconButtonProps) {\n const btn = (\n <button disabled={disabled}>\n <WrappedIcon {...icon} />\n </button>\n );\n\n if (tooltip) {\n return <WrappedTooltip content={tooltip}>{btn}</WrappedTooltip>;\n }\n\n return btn;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ALL = \"ALL\",\n}\n\nconst en: Locale = {\n [K.ALL]: \"All\",\n};\n\nconst zh: Locale = {\n [K.ALL]: \"全部\",\n};\n\nexport const NS = \"bricks/ai-portal/show-cases\";\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","import React, { useMemo, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport { get } from \"lodash\";\nimport classNames from \"classnames\";\nimport { getBasePath } from \"@next-core/runtime\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface ShowCasesProps {\n list?: ShowCase[];\n taskUrlTemplate?: string;\n}\n\nexport interface ShowCase {\n taskId: string;\n title: string;\n summary: string;\n scenario: string;\n thumbUrl?: string;\n}\n\n/**\n * 构件 `ai-portal.show-cases`\n */\nexport\n@defineElement(\"ai-portal.show-cases\", {\n styleTexts: [styleText],\n})\nclass ShowCases extends ReactNextElement implements ShowCasesProps {\n @property({ attribute: false })\n accessor list: ShowCase[] | undefined;\n\n @property()\n accessor taskUrlTemplate: string | undefined;\n\n render() {\n return (\n <ShowCasesComponent\n list={this.list}\n taskUrlTemplate={this.taskUrlTemplate}\n />\n );\n }\n}\n\nfunction ShowCasesComponent({ list, taskUrlTemplate }: ShowCasesProps) {\n // Grouping the list by scenario\n const groups = useMemo<(string | null)[]>(() => {\n return [\n null,\n ...new Set(list?.map((item) => item.scenario).filter(Boolean)),\n ];\n }, [list]);\n\n const [activeGroup, setActiveGroup] = useState<string | null>(null);\n\n const filteredList = useMemo(() => {\n if (!activeGroup) {\n return list;\n }\n return list?.filter((item) => item.scenario === activeGroup);\n }, [activeGroup, list]);\n\n if (!list?.length) {\n return null;\n }\n\n return (\n <>\n <ul className=\"nav\">\n {groups?.map((group) => (\n <li key={group} className=\"item\">\n <a\n className={classNames({ active: activeGroup === group })}\n onClick={() => setActiveGroup(group)}\n >\n {group === null ? t(K.ALL) : group}\n </a>\n </li>\n ))}\n </ul>\n <ul className=\"cases\">\n {filteredList?.map((item) => (\n <li key={item.taskId} className=\"item\">\n <WrappedLink\n className=\"link\"\n url={parseTemplate(taskUrlTemplate, item)}\n >\n <span\n className={classNames(\n \"placeholder\",\n item.thumbUrl ? \"thumbnail\" : \"summary\"\n )}\n >\n {item.thumbUrl ? (\n <span\n style={{\n backgroundImage: `url(${getBasePath()}${item.thumbUrl})`,\n }}\n />\n ) : (\n <span className=\"summary-1\">\n <span className=\"summary-2\">\n <span>{item.summary}</span>\n </span>\n </span>\n )}\n </span>\n <span className=\"title\">\n <span>{item.title}</span>\n </span>\n </WrappedLink>\n </li>\n ))}\n </ul>\n </>\n );\n}\n\nfunction parseTemplate(\n template: string | undefined,\n context: Record<string, any>\n) {\n return template?.replace(/{{(.*?)}}/g, (_match: string, key: string) => {\n const value = get(context, key);\n return value;\n });\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n MCP_HUB = \"MCP_HUB\",\n ALL = \"ALL\",\n\n SERVER_cmdb = \"SERVER_cmdb\",\n SERVER_cmdb_product_helper = \"SERVER_cmdb_product_helper\",\n SERVER_alert = \"SERVER_alert\",\n SERVER_web_builder = \"SERVER_web_builder\",\n SERVER_web_builder2 = \"SERVER_web_builder2\",\n SERVER_host_troubleshooting = \"SERVER_host_troubleshooting\",\n SERVER_system_inspection = \"SERVER_system_inspection\",\n SERVER_grafana = \"SERVER_grafana\",\n SERVER_kubernetes = \"SERVER_kubernetes\",\n SERVER_llm = \"SERVER_llm\",\n}\n\nconst en: Locale = {\n [K.MCP_HUB]: \"MCP Hub\",\n [K.ALL]: \"All\",\n\n [K.SERVER_cmdb]: \"CMDB\",\n [K.SERVER_cmdb_product_helper]: \"CMDB\",\n [K.SERVER_alert]: \"Alert\",\n [K.SERVER_web_builder]: \"View\",\n [K.SERVER_web_builder2]: \"View\",\n [K.SERVER_host_troubleshooting]: \"Host Troubleshooting\",\n [K.SERVER_system_inspection]: \"System Inspection\",\n [K.SERVER_grafana]: \"Grafana\",\n [K.SERVER_kubernetes]: \"Kubernetes\",\n [K.SERVER_llm]: \"LLM\",\n};\n\nconst zh: Locale = {\n [K.MCP_HUB]: \"MCP 中心\",\n [K.ALL]: \"全部\",\n\n [K.SERVER_cmdb]: \"CMDB\",\n [K.SERVER_cmdb_product_helper]: \"CMDB\",\n [K.SERVER_alert]: \"告警\",\n [K.SERVER_web_builder]: \"视图\",\n [K.SERVER_web_builder2]: \"视图\",\n [K.SERVER_host_troubleshooting]: \"主机故障排查\",\n [K.SERVER_system_inspection]: \"系统巡检\",\n [K.SERVER_grafana]: \"Grafana\",\n [K.SERVER_kubernetes]: \"Kubernetes\",\n [K.SERVER_llm]: \"大模型\",\n};\n\nexport const NS = \"bricks/ai-portal/mcp-tools\";\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","import React, { useMemo, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst DEFAULT_TOOL_ICON: GeneralIconProps = {\n lib: \"antd\",\n icon: \"tool\",\n};\n\nconst PLATFORM_CONFIG = new Map([\n [\n \"EasyOps平台\",\n {\n servers: [\"cmdb\", \"cmdb_product_helper\"],\n },\n ],\n [\n \"Grafana\",\n {\n servers: [\"grafana\"],\n },\n ],\n [\n \"Kubernetes\",\n {\n servers: [\"kubernetes\"],\n },\n ],\n [\n \"监控事件\",\n {\n servers: [\"alert\"],\n },\n ],\n [\n \"浏览器\",\n {\n servers: [\"playwright\"],\n },\n ],\n [\n \"低代码\",\n {\n servers: [\"web-builder\", \"web-builder2\"],\n },\n ],\n [\n \"大模型\",\n {\n servers: [\"llm\"],\n },\n ],\n [\n \"故障排查\",\n {\n servers: [\"host-troubleshooting\"],\n },\n ],\n]);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface McpToolsProps {\n list?: McpTool[];\n}\n\nexport interface McpTool {\n name: string;\n title: string;\n description: string;\n icon?: GeneralIconProps;\n server: McpServer;\n}\n\nexport interface McpServer {\n id: string;\n name: string;\n}\n\n/**\n * 构件 `ai-portal.mcp-tools`\n */\nexport\n@defineElement(\"ai-portal.mcp-tools\", {\n styleTexts: [styleText],\n})\nclass McpTools extends ReactNextElement implements McpToolsProps {\n @property({ attribute: false })\n accessor list: McpTool[] | undefined;\n\n render() {\n return <McpToolsComponent list={this.list} />;\n }\n}\n\nfunction McpToolsComponent({ list }: McpToolsProps) {\n // Grouping the list by server name\n const [groupMap, platformMap] = useMemo(() => {\n const map = new Map<string, McpTool[]>();\n const platformMap = new Map<string, string[]>();\n list?.forEach((item) => {\n const groupName = t(\n `SERVER_${item.server.id.replaceAll(\"-\", \"_\")}`,\n item.server.name\n );\n let list = map.get(groupName);\n if (!list) {\n map.set(groupName, (list = []));\n }\n list.push(item);\n\n const platform = [...PLATFORM_CONFIG.entries()].find(\n ([_name, { servers }]) => servers.includes(item.server.id)\n );\n const platformName = platform ? platform[0] : \"其他\";\n let groups = platformMap.get(platformName);\n if (!groups) {\n platformMap.set(platformName, (groups = []));\n }\n groups.push(groupName);\n });\n\n const orderedNames = [\"CMDB\"];\n const orderedMap = new Map<string, McpTool[]>(\n [...map.entries()].sort(([nameA], [nameB]) => {\n const indexA = orderedNames.indexOf(nameA);\n const indexB = orderedNames.indexOf(nameB);\n return (\n (indexA < 0 ? orderedNames.length : indexA) -\n (indexB < 0 ? orderedNames.length : indexB)\n );\n })\n );\n\n return [orderedMap, platformMap];\n }, [list]);\n\n const platforms = useMemo(() => {\n const orderedNames = [...PLATFORM_CONFIG.keys()];\n const names = [...platformMap.keys()];\n names.sort((a, b) => {\n const aIndex = orderedNames.indexOf(a);\n const bIndex = orderedNames.indexOf(b);\n return (\n (aIndex < 0 ? orderedNames.length : aIndex) -\n (bIndex < 0 ? orderedNames.length : bIndex)\n );\n });\n return [null, ...names];\n }, [platformMap]);\n\n const [activePlatform, setActivePlatform] = useState<string | null>(null);\n\n const filteredGroups = useMemo(() => {\n const groupedList = [...groupMap];\n if (activePlatform === null) {\n return groupedList;\n }\n const platformGroups = platformMap.get(activePlatform);\n return groupedList.filter(([group]) => platformGroups?.includes(group));\n }, [activePlatform, groupMap, platformMap]);\n\n return (\n <div className=\"container\">\n <h1>{t(K.MCP_HUB)}</h1>\n <ul className=\"nav\">\n {platforms?.map((platform) => (\n <li key={platform} className=\"item\">\n <a\n className={classNames({ active: activePlatform === platform })}\n onClick={() => setActivePlatform(platform)}\n >\n {platform === null ? t(K.ALL) : platform}\n </a>\n </li>\n ))}\n </ul>\n <ul className=\"groups\">\n {filteredGroups?.map(([groupName, items]) => (\n <li key={groupName} className=\"group\">\n <h2>{groupName}</h2>\n <ul className=\"list\">\n {items.map((item, index) => (\n <li key={index} className=\"item\">\n <div className=\"heading\">\n <WrappedIcon\n className=\"icon\"\n {...(item.icon ?? DEFAULT_TOOL_ICON)}\n fallback={DEFAULT_TOOL_ICON}\n />\n <div className=\"title\">{item.title}</div>\n </div>\n <div className=\"description\">{item.description}</div>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </div>\n );\n}\n","// istanbul ignore file: experimental\nimport React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { getRuntime, handleHttpError } from \"@next-core/runtime\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport classNames from \"classnames\";\nimport { NS, locales } from \"./i18n.js\";\nimport { useTaskDetail } from \"../cruise-canvas/useTaskDetail.js\";\nimport { useChatStream } from \"./useChatStream.js\";\nimport styles from \"./styles.module.css\";\nimport { WrappedIcon, WrappedIconButton } from \"../shared/bricks.js\";\nimport { UserMessage } from \"./UserMessage/UserMessage.js\";\nimport { AssistantMessage } from \"./AssistantMessage/AssistantMessage.js\";\nimport { TaskContext } from \"../shared/TaskContext.js\";\nimport { ChatBox } from \"../shared/ChatBox/ChatBox.js\";\nimport { DONE_STATES, ICON_CANVAS } from \"../shared/constants.js\";\nimport { ExpandedView } from \"../shared/ExpandedView/ExpandedView.js\";\nimport { ReplayToolbar } from \"../shared/ReplayToolbar/ReplayToolbar.js\";\nimport { Aside } from \"./Aside/Aside.js\";\nimport { StreamContext } from \"./StreamContext.js\";\nimport type { FeedbackDetail } from \"../cruise-canvas/interfaces.js\";\nimport { NodeFeedback } from \"../shared/NodeFeedback/NodeFeedback.js\";\n\ninitializeI18n(NS, locales);\n\nconst ICON_SHARE: GeneralIconProps = {\n lib: \"easyops\",\n icon: \"share\",\n};\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ChatStreamProps {\n taskId?: string;\n replay?: boolean;\n replayDelay?: number;\n supports?: Record<string, boolean>;\n showFeedback?: boolean;\n showFeedbackOnView?: boolean;\n showUiSwitch?: boolean;\n}\n\nconst ChatStreamComponent = forwardRef(LegacyChatStreamComponent);\n\n/**\n * 构件 `ai-portal.chat-stream`\n */\nexport\n@defineElement(\"ai-portal.chat-stream\", {\n // Will wrap v2 bricks which don't support in shadow DOM.\n shadowOptions: false,\n})\nclass ChatStream extends ReactNextElement implements ChatStreamProps {\n @property()\n accessor taskId: string | undefined;\n\n /** 是否启用回放。仅初始设置有效。 */\n @property({ type: Boolean })\n accessor replay: boolean | undefined;\n\n /**\n * 设置回放时消息之间的时间间隔,单位为秒。仅初始设置有效。\n *\n * @default 2\n */\n @property({ type: Number })\n accessor replayDelay: number | undefined;\n\n @property({ attribute: false })\n accessor supports: Record<string, boolean> | undefined;\n\n @property({ type: Boolean })\n accessor showFeedback: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedbackOnView: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showUiSwitch: boolean | undefined;\n\n @property({ type: Boolean, render: false })\n accessor hideMermaid: boolean | undefined;\n\n @event({ type: \"share\" })\n accessor #shareEvent!: EventEmitter<void>;\n\n #onShare = () => {\n this.#shareEvent.emit();\n };\n\n @event({ type: \"terminate\" })\n accessor #terminateEvent!: EventEmitter<void>;\n\n #onTerminate = () => {\n this.#terminateEvent.emit();\n };\n\n @event({ type: \"feedback.submit\" })\n accessor #feedbackSubmitEvent!: EventEmitter<FeedbackDetail>;\n\n #onSubmitFeedback = (detail: FeedbackDetail) => {\n this.#feedbackSubmitEvent.emit(detail);\n };\n\n @event({ type: \"feedback.on.view\" })\n accessor #feedbackOnViewEvent!: EventEmitter<string>;\n\n #onFeedbackOnView = (viewId: string) => {\n this.#feedbackOnViewEvent.emit(viewId);\n };\n\n @event({ type: \"ui.switch\" })\n accessor #switch!: EventEmitter<\"canvas\">;\n\n #onSwitchToCanvas = () => {\n this.#switch.emit(\"canvas\");\n };\n\n #ref = createRef<ChatStreamRef>();\n\n @method()\n resumed() {\n this.#ref.current?.resumed();\n }\n\n @method()\n feedbackSubmitDone() {\n this.#ref.current?.feedbackSubmitDone();\n }\n\n @method()\n feedbackSubmitFailed() {\n this.#ref.current?.feedbackSubmitFailed();\n }\n\n @method()\n feedbackOnViewDone(viewId: string) {\n this.#ref.current?.feedbackOnViewDone(viewId);\n }\n\n render() {\n return (\n <ChatStreamComponent\n taskId={this.taskId}\n replay={this.replay}\n replayDelay={this.replayDelay}\n supports={this.supports}\n showFeedback={this.showFeedback}\n showFeedbackOnView={this.showFeedbackOnView}\n showUiSwitch={this.showUiSwitch}\n onShare={this.#onShare}\n onTerminate={this.#onTerminate}\n onSubmitFeedback={this.#onSubmitFeedback}\n onSwitchToCanvas={this.#onSwitchToCanvas}\n onFeedbackOnView={this.#onFeedbackOnView}\n />\n );\n }\n}\n\ninterface ChatStreamComponentProps extends ChatStreamProps {\n onShare: () => void;\n onTerminate: () => void;\n onSubmitFeedback: (detail: FeedbackDetail) => void;\n onSwitchToCanvas: () => void;\n onFeedbackOnView: (viewId: string) => void;\n}\n\ninterface ChatStreamRef {\n resumed: () => void;\n feedbackSubmitDone: () => void;\n feedbackSubmitFailed: () => void;\n feedbackOnViewDone: (viewId: string) => void;\n}\n\nfunction LegacyChatStreamComponent(\n {\n taskId,\n replay,\n replayDelay,\n supports,\n showFeedback: propShowFeedback,\n showFeedbackOnView,\n showUiSwitch,\n onShare,\n onTerminate,\n onSubmitFeedback,\n onSwitchToCanvas,\n onFeedbackOnView,\n }: ChatStreamComponentProps,\n ref: React.Ref<ChatStreamRef>\n) {\n const {\n task,\n jobs,\n error,\n humanInputRef,\n resumedRef,\n skipToResults,\n watchAgain,\n } = useTaskDetail(taskId, replay, replayDelay);\n const pageTitle = task?.title ?? \"\";\n const taskState = task?.state;\n const taskDone = DONE_STATES.includes(taskState!);\n const { messages, inputRequiredJobId, lastToolCallJobId } = useChatStream(\n task,\n jobs\n );\n\n const views = useMemo(() => {\n return jobs?.flatMap((job) =>\n job.generatedView\n ? {\n id: job.id,\n view: job.generatedView,\n }\n : []\n );\n }, [jobs]);\n\n const [submittingFeedback, setSubmittingFeedback] = useState(false);\n const [submittedFeedback, setSubmittedFeedback] = useState(false);\n const [showFeedback, setShowFeedback] = useState<boolean>(!!propShowFeedback);\n useEffect(() => {\n setShowFeedback(!!propShowFeedback);\n }, [propShowFeedback]);\n const [feedbackDoneViews, setFeedbackDoneViews] = useState<\n Set<string> | undefined\n >();\n\n const handleSubmitFeedback = useCallback(\n (detail: FeedbackDetail) => {\n setSubmittingFeedback(true);\n onSubmitFeedback(detail);\n },\n [onSubmitFeedback]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n resumed: () => resumedRef.current?.(),\n feedbackSubmitDone: () => {\n setSubmittedFeedback(true);\n setTimeout(() => {\n setShowFeedback(false);\n }, 3000);\n },\n feedbackSubmitFailed: () => {\n setSubmittingFeedback(false);\n },\n feedbackOnViewDone: (viewId: string) => {\n setFeedbackDoneViews((prev) => {\n const newSet = new Set(prev);\n newSet.add(viewId);\n return newSet;\n });\n },\n }),\n [resumedRef]\n );\n\n const [activeExpandedViewJobId, setActiveExpandedViewJobId] = useState<\n string | null\n >(null);\n\n const [activeToolCallJobId, setActiveToolCallJobId] = useState<string | null>(\n null\n );\n const [userClosedAside, setUserClosedAside] = useState(false);\n // Delay flag to prevent aside from auto opened for a completed task\n const delayRef = useRef(false);\n\n const taskAvailable = !!task;\n useEffect(() => {\n if (taskAvailable) {\n const timer = setTimeout(() => {\n delayRef.current = true;\n }, 1000);\n return () => {\n clearTimeout(timer);\n };\n }\n }, [taskAvailable]);\n\n useEffect(() => {\n if (delayRef.current && lastToolCallJobId && !userClosedAside) {\n setActiveToolCallJobId(lastToolCallJobId);\n }\n }, [lastToolCallJobId, userClosedAside]);\n\n useEffect(() => {\n getRuntime().applyPageTitle(pageTitle);\n }, [pageTitle]);\n\n useEffect(() => {\n if (error) {\n handleHttpError(error);\n }\n }, [error]);\n\n const humanInput = useCallback(\n (jobId: string, input: string) => {\n humanInputRef.current?.(jobId, input);\n },\n [humanInputRef]\n );\n\n const taskContextValue = useMemo(\n () => ({\n humanInput,\n onShare,\n onTerminate,\n supports,\n\n activeExpandedViewJobId,\n setActiveExpandedViewJobId,\n activeToolCallJobId,\n setActiveToolCallJobId,\n\n submittingFeedback,\n submittedFeedback,\n onSubmitFeedback: handleSubmitFeedback,\n setShowFeedback,\n showFeedbackOnView,\n onFeedbackOnView,\n feedbackDoneViews,\n }),\n [\n humanInput,\n onShare,\n onTerminate,\n supports,\n\n activeExpandedViewJobId,\n activeToolCallJobId,\n\n submittingFeedback,\n submittedFeedback,\n handleSubmitFeedback,\n showFeedbackOnView,\n onFeedbackOnView,\n feedbackDoneViews,\n ]\n );\n\n const streamContextValue = useMemo(\n () => ({\n lastToolCallJobId,\n setUserClosedAside,\n }),\n [lastToolCallJobId]\n );\n\n const detectScrolledUpRef = useRef(false);\n const manualScrolledRef = useRef(false);\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const [scrollable, setScrollable] = useState(false);\n\n useEffect(() => {\n const scrollContainer = scrollContainerRef.current;\n const contentContainer = scrollContainer?.firstElementChild;\n if (manualScrolledRef.current || !scrollContainer || !contentContainer) {\n return;\n }\n\n const handleScroll = () => {\n setScrollable(\n scrollContainer.scrollTop + scrollContainer.clientHeight! + 24 <\n scrollContainer.scrollHeight\n );\n if (!detectScrolledUpRef.current) {\n return;\n }\n manualScrolledRef.current =\n scrollContainer.scrollTop + scrollContainer.clientHeight! + 6 <\n scrollContainer.scrollHeight;\n };\n scrollContainer.addEventListener(\"scroll\", handleScroll);\n\n let timer: ReturnType<typeof setTimeout>;\n const observer = new ResizeObserver(() => {\n if (manualScrolledRef.current) {\n return;\n }\n detectScrolledUpRef.current = false;\n // Scroll to the bottom of the content container\n scrollContainer.scrollTo({\n top: contentContainer.scrollHeight,\n behavior: \"instant\",\n });\n clearTimeout(timer);\n timer = setTimeout(() => {\n detectScrolledUpRef.current = true;\n }, 100);\n });\n observer.observe(contentContainer);\n\n return () => {\n observer.disconnect();\n scrollContainer.removeEventListener(\"scroll\", handleScroll);\n };\n }, [taskAvailable]);\n\n const scrollToBottom = useCallback(() => {\n const scrollContainer = scrollContainerRef.current;\n scrollContainer?.scrollTo({\n top: scrollContainer?.scrollHeight,\n behavior: \"instant\",\n });\n }, []);\n\n const activeToolCallJob = useMemo(() => {\n if (!activeToolCallJobId) {\n return null;\n }\n return jobs?.find((job) => job.id === activeToolCallJobId);\n }, [activeToolCallJobId, jobs]);\n\n return (\n <TaskContext.Provider value={taskContextValue}>\n <StreamContext.Provider value={streamContextValue}>\n <div className={styles.container}>\n <div className={styles.header}>\n <div className={styles.left} />\n <h1>{pageTitle}</h1>\n <div className={styles.right}>\n {showUiSwitch && (\n <WrappedIconButton\n icon={ICON_CANVAS}\n variant=\"mini\"\n style={{\n transform: \"rotate(90deg)\",\n }}\n onClick={onSwitchToCanvas}\n />\n )}\n <WrappedIconButton\n icon={ICON_SHARE}\n variant=\"mini\"\n onClick={onShare}\n />\n </div>\n </div>\n {taskAvailable ? (\n <>\n <div className={styles.main} ref={scrollContainerRef}>\n <div className={styles.narrow}>\n {messages.map((msg, index, list) => (\n <div className={styles.message} key={index}>\n {msg.role === \"user\" ? (\n <UserMessage content={msg.content} />\n ) : (\n <AssistantMessage\n jobs={msg.jobs}\n taskState={taskState}\n isLatest={index === list.length - 1}\n />\n )}\n </div>\n ))}\n {showFeedback && taskState === \"completed\" && (\n <NodeFeedback className={styles.feedback} />\n )}\n </div>\n </div>\n <div\n className={styles[\"scroll-down\"]}\n hidden={!scrollable}\n onClick={scrollToBottom}\n >\n <WrappedIcon lib=\"antd\" icon=\"down\" />\n </div>\n </>\n ) : (\n <div className={styles[\"loading-icon\"]}>\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </div>\n )}\n {replay || supports?.chat ? (\n <div className={styles.footer}>\n <div className={styles.narrow}>\n {replay ? (\n <ReplayToolbar\n taskDone={taskDone}\n skipToResults={skipToResults}\n watchAgain={watchAgain}\n />\n ) : (\n <ChatBox\n state={taskState}\n canChat={taskDone && !!inputRequiredJobId}\n inputRequiredJobId={inputRequiredJobId}\n />\n )}\n </div>\n </div>\n ) : null}\n </div>\n <div\n className={classNames(styles.aside, {\n [styles.expanded]: !!activeToolCallJobId,\n })}\n >\n {activeToolCallJobId && <Aside job={activeToolCallJob!} />}\n </div>\n {activeExpandedViewJobId && <ExpandedView views={views!} />}\n </StreamContext.Provider>\n </TaskContext.Provider>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n AI_EMPLOYEES = \"AI_EMPLOYEES\",\n}\n\nconst en: Locale = {\n AI_EMPLOYEES: \"AI Employees\",\n};\n\nconst zh: Locale = {\n AI_EMPLOYEES: \"Ai 数字人\",\n};\n\nexport const NS = \"bricks/ai-portal/ai-employees\";\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","import React, { useMemo, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport classNames from \"classnames\";\nimport Avatar1 from \"./images/avatar-1@2x.png\";\nimport Avatar2 from \"./images/avatar-2@2x.png\";\nimport Avatar3 from \"./images/avatar-3@2x.png\";\nimport Avatar4 from \"./images/avatar-4@2x.png\";\nimport Avatar5 from \"./images/avatar-5@2x.png\";\nimport Avatar6 from \"./images/avatar-6@2x.png\";\nimport Avatar7 from \"./images/avatar-7@2x.png\";\nimport Avatar8 from \"./images/avatar-8@2x.png\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst AVATARS = [\n Avatar1,\n Avatar2,\n Avatar3,\n Avatar4,\n Avatar5,\n Avatar6,\n Avatar7,\n Avatar8,\n];\n\nconst { defineElement, property } = createDecorators();\n\nexport interface AIEmployeesProps {\n list?: Employee[];\n industries?: string[];\n // roles?: string[];\n}\n\nexport interface Employee {\n name: string;\n industry: string;\n role: string;\n description: string;\n}\n\n/**\n * 构件 `ai-portal.ai-employees`\n */\nexport\n@defineElement(\"ai-portal.ai-employees\", {\n styleTexts: [styleText],\n})\nclass AIEmployees extends ReactNextElement implements AIEmployeesProps {\n @property({ attribute: false })\n accessor list: Employee[] | undefined;\n\n @property({ attribute: false })\n accessor industries: string[] | undefined;\n\n // @property({ attribute: false })\n // accessor roles: string[] | undefined;\n\n render() {\n return (\n <AIEmployeesComponent list={this.list} industries={this.industries} />\n );\n }\n}\n\nfunction AIEmployeesComponent({\n list,\n industries: _industries,\n}: AIEmployeesProps) {\n const industries = useMemo(() => {\n return [\n ...new Set([\n ...(_industries ?? []),\n ...(list ?? []).map((item) => item.industry),\n ]),\n ];\n }, [_industries, list]);\n\n const [activeIndustry, setActiveIndustry] = useState(industries[0]);\n\n // Grouping the list by role\n const groups = useMemo(() => {\n const map = new Map<string, Employee[]>();\n list?.forEach((item) => {\n if (item.industry !== activeIndustry) {\n return;\n }\n let array = map.get(item.role);\n if (!array) {\n map.set(item.role, (array = []));\n }\n array.push(item);\n });\n return [...map.entries()];\n }, [activeIndustry, list]);\n\n const industryIndex = industries.indexOf(activeIndustry);\n\n return (\n <div className=\"container\">\n <h1>{t(K.AI_EMPLOYEES)}</h1>\n <ul className=\"nav\">\n {industries.map((industry) => (\n <li key={industry} className=\"item\">\n <a\n className={classNames({ active: industry === activeIndustry })}\n onClick={() => setActiveIndustry(industry)}\n >\n {industry}\n </a>\n </li>\n ))}\n </ul>\n <ul className=\"groups\">\n {groups.map(([groupName, items], groupIndex) => (\n <li key={groupName} className=\"group\">\n <h2>{groupName}</h2>\n <ul className=\"list\">\n {items.map((item, index) => (\n <li key={index} className=\"item\">\n <div className=\"heading\">\n <div className=\"avatar\">\n <img\n src={\n AVATARS[\n (index + groupIndex + industryIndex) %\n AVATARS.length\n ]\n }\n />\n </div>\n <div className=\"title\">{item.name}</div>\n </div>\n <div className=\"description\">{item.description}</div>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </div>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n AGENTS = \"AGENTS\",\n}\n\nconst en: Locale = {\n AGENTS: \"Agents\",\n};\n\nconst zh: Locale = {\n AGENTS: \"智能体\",\n};\n\nexport const NS = \"bricks/ai-portal/ai-agents\";\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","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\nconst DEFAULT_TOOL_ICON: GeneralIconProps = {\n lib: \"antd\",\n icon: \"tool\",\n};\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface AIAgentsProps {\n list?: Agent[];\n}\n\nexport interface Agent {\n name: string;\n description: string;\n icon?: GeneralIconProps;\n tags?: string[];\n}\n\n/**\n * 构件 `ai-portal.ai-agents`\n */\nexport\n@defineElement(\"ai-portal.ai-agents\", {\n styleTexts: [styleText],\n})\nclass AIAgents extends ReactNextElement implements AIAgentsProps {\n @property({ attribute: false })\n accessor list: Agent[] | undefined;\n\n render() {\n return <AIAgentsComponent list={this.list} />;\n }\n}\n\nfunction AIAgentsComponent({ list }: AIAgentsProps) {\n return (\n <div className=\"container\">\n <h1>{t(K.AGENTS)}</h1>\n <ul className=\"list\">\n {list?.map((item, index) => (\n <li key={index} className=\"item\">\n <div className=\"heading\">\n <div className=\"icon\">\n <WrappedIcon\n {...(item.icon ?? DEFAULT_TOOL_ICON)}\n fallback={DEFAULT_TOOL_ICON}\n />\n </div>\n <div className=\"title\">{item.name}</div>\n </div>\n <div className=\"tags\">\n {item.tags?.map((tag, tagIndex) => (\n <span key={tagIndex} className=\"tag\">\n {tag}\n </span>\n ))}\n </div>\n <div className=\"description\">{item.description}</div>\n </li>\n ))}\n </ul>\n </div>\n );\n}\n","import { createProviderClass } from \"@next-core/utils/general\";\nimport type { RequestStore } from \"../shared/interfaces\";\n\nlet store: RequestStore | null = null;\n\nexport function saveRequestStore(value: RequestStore): void {\n store = value;\n}\n\nexport function loadRequestStore(): RequestStore | null {\n const value = store;\n store = null;\n return value;\n}\n\nexport function clearRequestStore(): void {\n store = null;\n}\n\ncustomElements.define(\n \"ai-portal.save-request-store\",\n createProviderClass(saveRequestStore)\n);\n\ncustomElements.define(\n \"ai-portal.load-request-store\",\n createProviderClass(loadRequestStore)\n);\n\ncustomElements.define(\n \"ai-portal.clear-request-store\",\n createProviderClass(clearRequestStore)\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}ul{list-style:none;margin:0;padding:0}.loading{display:flex;justify-content:center;padding:8px}.group + .group{margin-top:15px}.group-title{font-weight:500;font-size:12px;color:#000;padding:8px;height:36px;line-height:20px}.item{display:block}.item::part(link){display:flex;align-items:center;padding:0 8px;height:36px;border-radius:8px;color:#000}.item::part(link):hover{background:rgba(0,0,0,0.04)}.item-title{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.actions{cursor:auto}.item:not(:hover):not(.active) .actions{display:none}.working{width:8px;height:8px;border-radius:8px;background:var(--elevo-color-brand);margin:0 7px}.item:hover .working,\n.item.active .working{display:none}.load-more{display:flex;justify-content:center;align-items:center;height:36px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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:inline-block;padding:3px 0}:host([hidden]){display:none}img{display:block}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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, `:host{display:block;position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}:host([hidden]){display:none}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}h1,\nh2{font-weight:500;margin:0}h1{font-size:20px;line-height:28px}h2{font-size:16px;line-height:22px}.nav,\n.groups,\n.list{list-style:none;margin:0;padding:0}.nav{display:flex;font-size:16px;margin-top:17px}.nav .item + .item{margin-left:32px}.nav .item a{color:rgba(38,38,38,0.65);cursor:pointer}.nav .item a.active{color:#262626;font-weight:500}.nav .item a.active::after{content:\"\";display:block;width:100%;height:4px;background-color:currentColor;border-radius:2px}.groups{margin-top:27px}.group + .group{margin-top:32px}.list{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.list .item{background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px}.heading{display:flex;align-items:center}.icon{font-size:24px;color:#333;margin-right:8px}.title{font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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/border@2x.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, `:host{display:flex;flex-direction:column;align-items:center;max-width:1200px;width:100%}:host([hidden]){display:none}*{box-sizing:border-box}.nav,\n.cases{list-style:none;padding:0;margin:0}.nav{display:flex;font-size:16px}.nav .item + .item{margin-left:32px}.nav .item a{color:rgba(38,38,38,0.65);cursor:pointer}.nav .item a.active{color:#262626;font-weight:500}.nav .item a.active::after{content:\"\";display:block;width:100%;height:4px;background-color:currentColor;border-radius:2px}.cases{display:grid;width:100%;grid-template-columns:repeat(auto-fill,minmax(276px,1fr));gap:24px;margin-top:2em}.link{background:#fefefe;border:1px solid #e8e9ec;border-radius:12px;overflow:hidden;display:block}.link::part(link){display:flex;gap:0;flex-direction:column;height:218px}.title{width:100%;height:76px;padding:16px 16px 15px;color:#262626;border-top:1px solid #e8e9ec;font-weight:500;font-size:15px;line-height:22px}.title span{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.placeholder{width:100%;height:142px;background:linear-gradient(308deg,#dee9fc 0%,#fcfbfd 100%,#fbf9fe 100%);overflow:hidden}.summary{color:rgba(0,0,0,0.65);padding:27px 0 0 24px}.thumbnail span{display:block;width:100%;height:100%;background-size:cover;background-position:center;background-repeat:no-repeat}.link:hover{box-shadow:0px 4px 12px 0px rgba(0,0,0,0.06)}.link:hover .title{color:var(--elevo-color-brand)}.summary-1{display:block;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:237px 115px;background-repeat:no-repeat;background-position:0 0;padding:10px 0 0 10px}.summary-2{display:block;background:linear-gradient(90deg,#ffffff 0%,#e4ecfc 100%);padding:12px 15px 5px 15px;border-top-left-radius:12px}.summary-2 span{display:-webkit-box;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;font-size:15px;color:#525971;line-height:22px;height:88px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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@2x.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, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.root{color:#262626;background-color:#e1e3ec;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:694px 144px;background-position:top left;background-repeat:no-repeat;box-shadow:inset 0px 2px 5px 1px rgba(42,46,59,0.1);border-radius:20px;padding:12px}.container{position:relative}textarea{display:block;width:100%;padding:10px 16px 52px;color:var(--antd-input-color);background:rgba(255,255,255,0.8);border-radius:14px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.5);font-size:14px;line-height:22px;height:130px}textarea::placeholder{color:rgba(0,0,0,0.4)}.btn-send:focus,\ntextarea:focus{outline:none}.btn-send{position:absolute;bottom:14px;right:14px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--elevo-color-brand);border:none;border-radius:8px;color:#fff}.btn-send[disabled]{background:rgba(0,0,0,0.15)}.btn-send:not([disabled]){cursor:pointer}.btn-send:not([disabled]):hover{background:#5166ff}.btn-send:not([disabled]):active{background:#1e33cc}.suggestions{margin-top:19px}.heading{display:flex;align-items:center;padding:0 5px;margin-bottom:8px}.icon{margin-right:5px}.carousel{overflow:hidden}.carousel + .carousel{margin-top:7px}.list{display:flex;width:max-content;list-style:none;margin:0;padding:0;font-size:12px}.item{background:rgba(255,255,255,0.4);border-radius:12px;border:1px solid #dcdee6;padding:12px;max-width:330px;cursor:pointer}.item:hover{background:rgba(255,255,255,0.5);border:1px solid rgba(37,64,255,0.3)}.list > li + li{margin-left:7px}.title{margin-bottom:4px}.content{color:rgba(0,0,0,0.45);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tooltip{display:block}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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:inline-block}:host([hidden]){display:none}:host,\neo-tooltip{vertical-align:middle}button{width:28px;height:28px;font-size:18px;border-radius:8px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:#333}button:disabled{color:#8c8c8c}button:not(:disabled){cursor:pointer}button:focus{outline:none}button:not(:disabled):hover{background:rgba(0,0,0,0.04)}button:not(:disabled):active{background:rgba(0,0,0,0.08)}:host([variant=\"light\"]) button{color:#595959}:host([variant=\"mini\"]) button{width:24px;height:24px;font-size:16px;border-radius:4px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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:1;width:261px;height:100%;background:#f6f7f9;border-right:1px solid #e3e5eb;padding:26px 16px 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}.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 -16px}.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:8px;left:8px;padding:6px 10px 6px 8px;display:flex;align-items:center;opacity:0;z-index:1;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:261px;height:100%;transition:width 0.3s ease-in-out}.collapsed{width:0;overflow:visible}.collapsed .sidebar{transform:translateX(-100%)}.collapsed .alternative{opacity:1}:host([behavior=\"drawer\"]){z-index:1;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 13px;border-radius:8px;color:#000}.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 -16px;padding:0 12px}.history ul{list-style:none;margin:0;padding:0}.history .loading{display:flex;justify-content:center;padding:8px}.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}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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, `:host{display:block;background-color:#fff;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-position:center;background-size:cover;background-repeat:no-repeat;background-attachment:fixed}:host([hidden]){display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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(\"../mcp-tools/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, `:host{display:block;position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}:host([hidden]){display:none}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}h1{font-weight:500;margin:0;font-size:20px;line-height:28px}.list{list-style:none;margin:0;padding:0;margin-top:30px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.list .item{background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px}.heading{display:flex;align-items:center}.icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#ffffff;border-radius:12px;border:1px solid #e8e9ec;font-size:32px;color:#595959;margin-right:16px}.title{font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tags{display:flex;gap:6px;margin:16px 0 -3px}.tag{display:block;background:rgba(0,0,0,0.04);border-radius:4px;font-size:12px;line-height:22px;padding:0 7px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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(\"../mcp-tools/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, `:host{display:block;position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}:host([hidden]){display:none}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}h1,\nh2{font-weight:500;margin:0}h1{font-size:20px;line-height:28px}h2{font-size:16px;line-height:22px}.nav,\n.groups,\n.list{list-style:none;margin:0;padding:0}.nav{display:flex;font-size:16px;margin-top:17px}.nav .item + .item{margin-left:32px}.nav .item a{color:rgba(38,38,38,0.65);cursor:pointer}.nav .item a.active{color:#262626;font-weight:500}.nav .item a.active::after{content:\"\";display:block;width:100%;height:4px;background-color:currentColor;border-radius:2px}.groups{margin-top:27px}.group + .group{margin-top:32px}.list{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.list .item{background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px}.heading{display:flex;align-items:center}.avatar{width:48px;height:48px;border-radius:12px;margin-right:16px;background-color:#d5d6e6}.title{font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","toString","initializeI18n","NS","locales","defineElement","property","event","method","createDecorators","ForwardedLegacyCruiseCanvasComponent","forwardRef","LegacyCruiseCanvasComponent","ForwardedCruiseCanvasComponent","CruiseCanvasComponent","_CruiseCanvas","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_CruiseCanvas_brand","WeakSet","_onShare","_P","_onTerminate","_Q","_onSubmitFeedback","_R","_onFeedbackOnView","_S","_onSwitchToChat","_ref","CruiseCanvas","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_init_conversationId","_init_extra_conversationId","_init_initialRequest","_init_extra_initialRequest","_init_taskId","_init_extra_taskId","_init_task","_init_extra_task","_init_jobs","_init_extra_jobs","_init_replay","_init_extra_replay","_init_replayDelay","_init_extra_replayDelay","_init_supports","_init_extra_supports","_init_showHiddenJobs","_init_extra_showHiddenJobs","_init_showFeedback","_init_extra_showFeedback","_init_showFeedbackOnView","_init_extra_showFeedbackOnView","_init_showUiSwitch","_init_extra_showUiSwitch","_init_hideMermaid","_init_extra_hideMermaid","_init_showJsxEditor","_init_extra_showJsxEditor","_init_shareEvent","_init_extra_shareEvent","_classPrivateGetter","this","_get_shareEvent","emit","_init_terminateEvent","_init_extra_terminateEvent","_get_terminateEvent","_init_feedbackSubmitEvent","_init_extra_feedbackSubmitEvent","detail","_get_feedbackSubmitEvent","_init_feedbackOnViewEvent","_init_extra_feedbackOnViewEvent","viewId","_get_feedbackOnViewEvent","_init_switch","_init_extra_switch","_get_switch","createRef","conversationId","_classPrivateFieldGet","v","_classPrivateFieldSet","initialRequest","taskId","task","jobs","replay","replayDelay","supports","showHiddenJobs","showFeedback","showFeedbackOnView","showUiSwitch","hideMermaid","showJsxEditor","resumed","_classPrivateFieldGet2","_classPrivateFieldGet3","current","call","feedbackSubmitDone","_classPrivateFieldGet4","feedbackSubmitFailed","_classPrivateFieldGet5","feedbackOnViewDone","_classPrivateFieldGet6","render","Component","React","onShare","onTerminate","onSubmitFeedback","onSwitchToChat","onFeedbackOnView","ref","_CruiseCanvas2","e","_set_shareEvent","_set_terminateEvent","_set_feedbackSubmitEvent","_set_feedbackOnViewEvent","_set_switch","c","_initClass","_applyDecs","shadowOptions","attribute","type","Boolean","Number","o","_","has","_checkInRHS","K","en","ASK_ANY_THING","COMMON_TASKS","zh","t","i18n","getFixedT","WrappedIcon","wrapBrick","_ChatBox","_ChatBox_brand","_handleMessageSubmit","ChatBox","_init_disabled","_init_extra_disabled","_init_placeholder","_init_extra_placeholder","_init_autoFocus","_init_extra_autoFocus","_init_suggestions","_init_extra_suggestions","_init_suggestionsLabel","_init_extra_suggestionsLabel","_init_messageSubmit","_init_extra_messageSubmit","value","_get_messageSubmit","disabled","placeholder","autoFocus","suggestions","suggestionsLabel","ChatBoxComponent","onSubmit","containerRef","useRef","textareaRef","setValue","useState","valueRef","handleSubmit","useCallback","currentTarget","handleChange","target","handleSubmitClick","useEffect","Promise","resolve","then","_textareaRef$current","focus","groupedSuggestions","useMemo","length","chunk","Math","max","ceil","handleSelectSuggestion","suggestion","content","setTimeout","_textareaRef$current2","className","TextareaAutoResize","minRows","paddingSize","autoResize","submitWhen","onChange","onClick","lib","prefix","icon","src","tips","width","height","map","group","index","SuggestionCarousel","key","pixelPerSecond","onSelect","_ref2","carouselRef","listRef","x","setX","carousel","list","previousTimestamp","currentTimestamp","start","timer","offsetTime","mod","offsetWidth","step","timestamp","undefined","requestAnimationFrame","onMouseEnter","cancelAnimationFrame","onMouseLeave","addEventListener","removeEventListener","style","transform","item","title","_ChatBox2","_set_messageSubmit","styleTexts","styleText","_HomeContainer","HomeContainer","HomeContainerComponent","_HomeContainer2","TODAY","YESTERDAY","PREVIOUS_7_DAYS","PREVIOUS_30_DAYS","WrappedLink","WrappedMiniActions","onActionClick","onVisibleChange","_ChatHistory","_ChatHistory_brand","_handleActionClick","_handleLoadMore","ChatHistory","_init_list","_init_extra_list","_init_actions","_init_extra_actions","_init_nextToken","_init_extra_nextToken","_init_actionClick","_init_extra_actionClick","_get_actionClick","_init_loadMore","_init_extra_loadMore","nextToken","_get_loadMore","actions","ChatHistoryComponent","root","onLoadMore","groups","groupMap","Map","now","moment","startOfDay","clone","startOf","yesterday","subtract","sevenDaysAgo","thirtyDaysAgo","timestamps","groupKey","startTime","format","get","set","items","values","actionsVisible","setActionsVisible","nextRef","next","observer","IntersectionObserver","entries","entry","isIntersecting","observe","disconnect","classNames","active","url","action","DONE_STATES","includes","state","spinning","theme","_ChatHistory2","_set_actionClick","_set_loadMore","WrappedMiniLineChart","_StatWithMiniChart","StatWithMiniChart","_init_label","_init_extra_label","_init_value","_init_extra_value","_init_size","_init_extra_size","_init_lineColor","_init_extra_lineColor","_init_showArea","_init_extra_showArea","_init_min","_init_extra_min","_init_max","_init_extra_max","_init_xField","_init_extra_xField","_init_yField","_init_extra_yField","_init_data","_init_extra_data","label","size","lineColor","showArea","min","xField","yField","data","StatWithMiniChartComponent","chartProps","_extends","lineWidth","_StatWithMiniChart2","_ElevoLogo","ElevoLogo","ElevoLogoComponent","logoImage","alt","_ElevoLogo2","NEW_CHAT","LOGOUT","SWITCH_LANGUAGE","WrappedDropdownActions","WrappedEasyopsAvatar","WrappedIconButton","AgentFlowApi_searchTaskForAgentFlow","async","options","http","post","LegacyChatHistory","activeId","urlTemplate","onHistoryClick","rootRef","setList","setNextToken","loadNextToken","setLoadNextToken","all","next_token","interceptorParams","ignoreLoadingBar","prev","catch","error","console","pullIdRef","pull","pullId","prevList","newList","newIds","Set","newItemsMap","foundIntersection","foundChanged","isFirst","newItem","isEqual","filter","useImperativeHandle","template","context","replace","_match","SIDEBAR_ICON","ElevoSidebarComponent","LegacyElevoSidebarComponent","_ElevoSidebar","_ElevoSidebar_brand","_handleLogout","ElevoSidebar","_init_userInstanceId","_init_extra_userInstanceId","_init_behavior","_init_extra_behavior","_init_logoUrl","_init_extra_logoUrl","_init_newChatUrl","_init_extra_newChatUrl","_init_historyActiveId","_init_extra_historyActiveId","_init_historyUrlTemplate","_init_extra_historyUrlTemplate","_init_historyActions","_init_extra_historyActions","_init_links","_init_extra_links","_init_logout","_init_extra_logout","_get_logout","userInstanceId","behavior","logoUrl","newChatUrl","historyActiveId","historyUrlTemplate","historyActions","links","pullHistory","delay","close","onLogout","collapsed","setCollapsed","handleCollapse","handleExpand","handleClickMask","handleHistoryClick","dropdownActions","text","historyRef","_historyRef$current","variant","link","changeLanguage","language","split","getHistory","reload","nameOrInstanceId","showName","_ElevoSidebar2","_set_logout","WrappedTooltip","_IconButton","IconButton","_init_icon","_init_extra_icon","_init_tooltip","_init_extra_tooltip","_init_variant","_init_extra_variant","tooltip","IconButtonComponent","btn","_IconButton2","ALL","_ShowCases","ShowCases","_init_taskUrlTemplate","_init_extra_taskUrlTemplate","taskUrlTemplate","ShowCasesComponent","scenario","activeGroup","setActiveGroup","filteredList","thumbUrl","backgroundImage","getBasePath","summary","_ShowCases2","MCP_HUB","SERVER_cmdb","SERVER_cmdb_product_helper","SERVER_alert","SERVER_web_builder","SERVER_web_builder2","SERVER_host_troubleshooting","SERVER_system_inspection","SERVER_grafana","SERVER_kubernetes","SERVER_llm","DEFAULT_TOOL_ICON","PLATFORM_CONFIG","servers","_McpTools","McpTools","McpToolsComponent","platformMap","forEach","groupName","server","replaceAll","name","platform","find","_name","platformName","orderedNames","sort","_ref3","_ref4","nameA","nameB","indexA","indexOf","indexB","platforms","keys","names","a","b","aIndex","bIndex","activePlatform","setActivePlatform","filteredGroups","groupedList","platformGroups","_ref5","_ref6","_item$icon","fallback","description","_McpTools2","ICON_SHARE","ChatStreamComponent","LegacyChatStreamComponent","_ChatStream","_ChatStream_brand","_onSwitchToCanvas","ChatStream","onSwitchToCanvas","_task$title","propShowFeedback","humanInputRef","resumedRef","skipToResults","watchAgain","useTaskDetail","pageTitle","taskState","taskDone","messages","inputRequiredJobId","lastToolCallJobId","useChatStream","views","flatMap","job","generatedView","view","submittingFeedback","setSubmittingFeedback","submittedFeedback","setSubmittedFeedback","setShowFeedback","feedbackDoneViews","setFeedbackDoneViews","handleSubmitFeedback","_resumedRef$current","newSet","add","activeExpandedViewJobId","setActiveExpandedViewJobId","activeToolCallJobId","setActiveToolCallJobId","userClosedAside","setUserClosedAside","delayRef","taskAvailable","clearTimeout","getRuntime","applyPageTitle","handleHttpError","humanInput","jobId","input","_humanInputRef$curren","taskContextValue","streamContextValue","detectScrolledUpRef","manualScrolledRef","scrollContainerRef","scrollable","setScrollable","scrollContainer","contentContainer","firstElementChild","handleScroll","scrollTop","clientHeight","scrollHeight","ResizeObserver","scrollTo","top","scrollToBottom","activeToolCallJob","TaskContext","Provider","StreamContext","styles","container","header","left","right","ICON_CANVAS","main","narrow","msg","message","role","UserMessage","AssistantMessage","isLatest","NodeFeedback","feedback","hidden","chat","footer","ReplayToolbar","canChat","aside","expanded","Aside","ExpandedView","_ChatStream2","AI_EMPLOYEES","AVATARS","Avatar1","Avatar2","Avatar3","Avatar4","Avatar5","Avatar6","Avatar7","Avatar8","_AIEmployees","AIEmployees","_init_industries","_init_extra_industries","industries","AIEmployeesComponent","_industries","industry","activeIndustry","setActiveIndustry","array","industryIndex","groupIndex","_AIEmployees2","AGENTS","_AIAgents","AIAgents","AIAgentsComponent","_item$tags","tags","tag","tagIndex","_AIAgents2","store","customElements","define","createProviderClass","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_REPLACEMENT_0___"],"sourceRoot":""}