@next-bricks/ai-portal 0.20.13 → 0.20.14

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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/8230.e8052bfd.js","mappings":"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","sources":["webpack:///./src/stat-with-mini-chart/styles.shadow.css","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/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/home-container/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","// 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;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;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:23px}.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}.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:not(.active)::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: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","// istanbul ignore file: experimental\nimport React, {\n createRef,\n forwardRef,\n memo,\n useCallback,\n useContext,\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 { getRuntime, handleHttpError } from \"@next-core/runtime\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport classNames from \"classnames\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport { select, type Selection, type TransitionLike } from \"d3-selection\";\nimport { ZoomTransform } from \"d3-zoom\";\nimport { mergeRects } from \"@next-shared/diagram\";\nimport { NS, locales } from \"./i18n.js\";\nimport styles from \"./styles.module.css\";\nimport { useZoom } from \"./useZoom.js\";\nimport type {\n SizeTuple,\n GraphNode,\n Job,\n RequirementGraphNode,\n JobGraphNode,\n TaskBaseDetail,\n GraphEdge,\n ZoomAction,\n FileInfo,\n} from \"./interfaces.js\";\nimport { useAutoCenter } from \"./useAutoCenter.js\";\nimport { useLayout } from \"./useLayout.js\";\nimport { useTaskDetail } from \"./useTaskDetail.js\";\nimport { useTaskGraph } from \"./useTaskGraph.js\";\nimport { ZoomBar } from \"./ZoomBar/ZoomBar.js\";\nimport { NodeStart } from \"./NodeStart/NodeStart.js\";\nimport { NodeRequirement } from \"./NodeRequirement/NodeRequirement.js\";\nimport { NodeInstruction } from \"./NodeInstruction/NodeInstruction.js\";\nimport { NodeJob } from \"./NodeJob/NodeJob.js\";\nimport { NodeEnd } from \"./NodeEnd/NodeEnd.js\";\nimport { NodeView } from \"./NodeView/NodeView.js\";\nimport {\n CANVAS_PADDING_BOTTOM,\n CANVAS_PADDING_LEFT,\n CANVAS_PADDING_RIGHT,\n CANVAS_PADDING_TOP,\n DONE_STATES,\n END_NODE_ID,\n GENERAL_DONE_STATES,\n} from \"./constants.js\";\nimport { WrappedIcon } from \"./bricks.js\";\nimport { CanvasContext } from \"./CanvasContext.js\";\nimport { ToolCallDetail } from \"./ToolCallDetail/ToolCallDetail.js\";\nimport { getScrollTo } from \"./utils/getScrollTo.js\";\nimport { handleKeyboardNav } from \"./utils/handleKeyboardNav.js\";\nimport { ExpandedView } from \"./ExpandedView/ExpandedView.js\";\nimport { Nav } from \"./Nav/Nav.js\";\nimport { ReplayToolbar } from \"./ReplayToolbar/ReplayToolbar.js\";\nimport { ChatBox } from \"./ChatBox/ChatBox.js\";\nimport { FilePreview } from \"./FilePreview/FilePreview.js\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event, method } = createDecorators();\n\nconst MemoizedNodeComponent = memo(NodeComponent);\n\nexport interface CruiseCanvasProps {\n taskId?: string;\n task?: TaskBaseDetail;\n jobs?: Job[];\n replay?: boolean;\n replayDelay?: number;\n supports?: Record<string, boolean>;\n}\n\nconst CruiseCanvasComponent = forwardRef(LegacyCruiseCanvasComponent);\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 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 })\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 @event({ type: \"share\" })\n accessor #shareEvent!: EventEmitter<void>;\n\n #onShare = () => {\n this.#shareEvent.emit();\n };\n\n @event({ type: \"pause\" })\n accessor #pauseEvent!: EventEmitter<void>;\n\n #onPause = () => {\n this.#pauseEvent.emit();\n };\n\n @event({ type: \"resume\" })\n accessor #resumeEvent!: EventEmitter<void>;\n\n #onResume = () => {\n this.#resumeEvent.emit();\n };\n\n @event({ type: \"cancel\" })\n accessor #cancelEvent!: EventEmitter<void>;\n\n #onCancel = () => {\n this.#cancelEvent.emit();\n };\n\n #ref = createRef<CruiseCanvasRef>();\n\n @method()\n resumed() {\n this.#ref.current?.resumed();\n }\n\n render() {\n return (\n <CruiseCanvasComponent\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 onShare={this.#onShare}\n onPause={this.#onPause}\n onResume={this.#onResume}\n onCancel={this.#onCancel}\n ref={this.#ref}\n />\n );\n }\n}\n\ninterface CruiseCanvasComponentProps extends CruiseCanvasProps {\n onShare: () => void;\n onPause: () => void;\n onResume: () => void;\n onCancel: () => void;\n}\n\ninterface ScrollToOptions {\n nodeId?: string;\n jobId?: string;\n\n /**\n * @default \"auto\"\n */\n behavior?: \"smooth\" | \"instant\" | \"auto\";\n\n /**\n * When set to \"start\", force scroll even if the node is fully visible.\n *\n * @default \"nearest\"\n */\n block?: \"start\" | \"nearest\";\n}\n\ninterface CruiseCanvasRef {\n resumed: () => void;\n}\n\nfunction LegacyCruiseCanvasComponent(\n {\n taskId,\n task: propTask,\n jobs: propJobs,\n replay,\n replayDelay,\n supports,\n onShare,\n onPause,\n onResume,\n onCancel,\n }: CruiseCanvasComponentProps,\n ref: React.Ref<CruiseCanvasRef>\n) {\n const rootRef = useRef<HTMLDivElement>(null);\n const {\n task: _task,\n jobs: _jobs,\n error,\n humanInputRef,\n resumedRef,\n skipToResults,\n watchAgain,\n } = useTaskDetail(taskId, replay, replayDelay);\n const task = taskId ? _task : propTask;\n const jobs = taskId ? _jobs : propJobs;\n const plan = task?.plan;\n const graph = useTaskGraph(task, jobs);\n const rawNodes = graph?.nodes;\n const rawEdges = graph?.edges;\n const nav = graph?.nav;\n const views = graph?.views;\n const jobLevels = graph?.jobLevels;\n const pageTitle = task?.title ?? \"\";\n const taskState = task?.state;\n const [activeNodeId, setActiveNodeId] = useState<string | null>(null);\n const currentNavId = useMemo(() => {\n if (activeNodeId) {\n const [type, jobId] = activeNodeId.split(\":\");\n if (type === \"job\" || type === \"view\") {\n return jobId;\n }\n }\n return null;\n }, [activeNodeId]);\n\n useImperativeHandle(\n ref,\n () => ({\n resumed: () => resumedRef.current?.(),\n }),\n [resumedRef]\n );\n\n // Enable transition after 3 seconds to avoid initial flicker\n const transitionEnabledRef = useRef(false);\n useEffect(() => {\n const timer = setTimeout(() => {\n transitionEnabledRef.current = true;\n }, 3e3);\n return () => {\n clearTimeout(timer);\n };\n }, []);\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 [sizeMap, setSizeMap] = useState<Map<string, SizeTuple> | null>(null);\n const onNodeResize = useCallback((id: string, size: SizeTuple | null) => {\n // Handle resize logic here\n setSizeMap((prev) => {\n if (!size) {\n if (!prev) {\n return null;\n }\n const newMap = new Map(prev);\n const deleted = newMap.delete(id);\n return deleted ? newMap : prev;\n }\n return prev ? new Map(prev).set(id, size) : new Map([[id, size]]);\n });\n }, []);\n\n const { sizeReady, nodes, edges } = useLayout({\n rawNodes,\n rawEdges,\n state: taskState,\n sizeMap,\n });\n\n // Disable auto scroll when the user manually scrolled up\n const detectScrolledUpRef = useRef(false);\n const manualScrolledUpRef = useRef(false);\n\n const [hoverOnScrollableContent, setHoverOnScrollableContent] =\n useState(false);\n\n const { grabbing, transform, transformRef, zoomer /* , scaleRange */ } =\n useZoom({\n rootRef,\n zoomable: sizeReady,\n scrollable: sizeReady && !hoverOnScrollableContent,\n pannable: sizeReady,\n manualScrolledUpRef,\n });\n\n const transitionRef = useRef(false);\n\n const pushZoomTransition = useMemo(() => {\n let nextAction: ZoomAction | null = null;\n\n const run = (action: ZoomAction) => {\n const current = transformRef.current;\n const target = typeof action === \"function\" ? action(current) : action;\n\n if (!target) {\n return;\n }\n\n const { transform, translateBy } = target;\n\n let selection:\n | Selection<HTMLDivElement, unknown, null, undefined>\n | TransitionLike<HTMLDivElement, unknown> = select(rootRef.current!);\n\n if (transitionEnabledRef.current && target.duration !== 0) {\n transitionRef.current = true;\n selection = selection\n .transition()\n .duration(target.duration ?? 300)\n .ease((t) => t * (2 - t)) // Ease in-out\n .on(\"end\", () => {\n transitionRef.current = false;\n if (nextAction) {\n const next = nextAction;\n nextAction = null;\n run(next);\n }\n });\n }\n\n if (transform) {\n zoomer.transform(\n selection,\n new ZoomTransform(\n transform.k ?? current.k,\n transform.x ?? current.x,\n transform.y ?? current.y\n )\n );\n } else {\n zoomer.translateBy(selection, translateBy[0] ?? 0, translateBy[1] ?? 0);\n }\n };\n\n return (action: ZoomAction) => {\n if (transitionRef.current) {\n nextAction = action;\n } else {\n run(action);\n }\n };\n }, [transformRef, zoomer]);\n\n const { centered, setCentered, reCenterRef } = useAutoCenter({\n nodes,\n sizeReady,\n zoomer,\n rootRef,\n pushZoomTransition,\n });\n\n const taskDone = DONE_STATES.includes(taskState ?? \"working\");\n const taskLoading = !taskDone && nodes.length === 2;\n\n const nonLeafNodes = useMemo(() => {\n return new Set<string>(edges.map((edge) => edge.source));\n }, [edges]);\n\n const bottom = useMemo(() => {\n if (!sizeReady) {\n return null;\n }\n\n const leafNodes: GraphNode[] = [];\n for (const node of nodes) {\n if (!nonLeafNodes.has(node.id)) {\n leafNodes.push(node);\n }\n }\n if (leafNodes.length > 0) {\n const y1 = Math.max(\n ...leafNodes.map((node) => node.view!.y + node.view!.height)\n );\n return y1;\n }\n\n return null;\n }, [nodes, nonLeafNodes, sizeReady]);\n\n const bottomRef = useRef<number | null>(null);\n useEffect(() => {\n bottomRef.current = bottom;\n }, [bottom]);\n\n // Make the latest (bottom most) node visible\n useEffect(() => {\n const root = rootRef.current;\n if (\n !root ||\n bottom === null ||\n (detectScrolledUpRef.current && manualScrolledUpRef.current)\n ) {\n return;\n }\n pushZoomTransition((current) => {\n const { offsetHeight } = root;\n const transformedBottom = bottom * current.k + current.y;\n const diffY = offsetHeight - CANVAS_PADDING_BOTTOM - transformedBottom;\n if (diffY < 0) {\n // Use `zoomer.transform()` which will not be restricted to its translate/scale extent\n return {\n transform: {\n y: current.y + diffY,\n },\n duration: diffY > -100 ? 100 : diffY < -500 ? 300 : 200,\n };\n }\n return null;\n });\n }, [bottom, pushZoomTransition]);\n\n // Detect if the user scrolled up manually\n useEffect(() => {\n const bottom = bottomRef.current;\n const root = rootRef.current;\n if (!root || bottom === null || transitionRef.current) {\n return;\n }\n const { offsetHeight } = root;\n const transformedBottom = bottom * transform.k + transform.y;\n\n const diffY = offsetHeight - CANVAS_PADDING_BOTTOM - transformedBottom;\n detectScrolledUpRef.current = diffY < 0;\n }, [transform, zoomer]);\n\n const handleReCenter = useCallback(() => {\n reCenterRef.current = true;\n setCentered(false);\n }, [reCenterRef, setCentered]);\n\n const handleScaleChange = useCallback(\n (scale: number) => {\n zoomer.scaleTo(select(rootRef.current!), scale);\n },\n [zoomer]\n );\n\n const fullRect = useMemo(() => {\n if (!sizeReady) {\n return null;\n }\n return mergeRects(nodes.map((node) => node.view!));\n }, [nodes, sizeReady]);\n\n useEffect(() => {\n if (!fullRect) {\n return;\n }\n const root = rootRef.current;\n if (!root) {\n return;\n }\n\n const distance = 20;\n const { offsetWidth, offsetHeight } = root;\n const viewportWidth = offsetWidth / transform.k;\n const viewportHeight = offsetHeight / transform.k;\n const minX = -(viewportWidth - distance - fullRect.x);\n const maxX = viewportWidth - distance + (fullRect.x + fullRect.width);\n const minY = -(viewportHeight - distance - fullRect.y);\n const maxY = viewportHeight - distance + (fullRect.y + fullRect.height);\n\n zoomer.translateExtent([\n [minX, minY],\n [maxX, maxY],\n ]);\n }, [zoomer, transform.k, fullRect]);\n\n const scrollTo = useCallback(\n ({ nodeId, jobId, behavior, block }: ScrollToOptions) => {\n /**\n * - When the node is fully visible, take no action.\n * - Otherwise, scroll to make it fully visible while make the scroll\n * distance as small as possible.\n * - Special cases:\n * - When the node is higher or wider than the viewport, scroll to\n * the top or left of the node.\n */\n const root = rootRef.current;\n const targets = nodes.filter((n) => {\n if (nodeId && n.id !== nodeId) {\n return false;\n }\n if (jobId && (n as JobGraphNode).job?.id !== jobId) {\n return false;\n }\n return true;\n });\n if (!root || targets.length === 0) {\n return;\n }\n const rect = mergeRects(targets.map((node) => node.view!));\n\n const { x, y } = getScrollTo(\n rect,\n [root.offsetWidth, root.offsetHeight],\n [\n CANVAS_PADDING_TOP,\n CANVAS_PADDING_RIGHT,\n CANVAS_PADDING_BOTTOM,\n CANVAS_PADDING_LEFT,\n ],\n transformRef.current,\n block\n );\n\n if (x || y) {\n pushZoomTransition({\n translateBy: [x, y],\n duration: behavior === \"instant\" ? 0 : undefined,\n });\n }\n },\n [nodes, pushZoomTransition, transformRef]\n );\n\n const scrollBy = useCallback(\n (\n direction: \"up\" | \"down\" | \"left\" | \"right\",\n range: \"line\" | \"page\" | \"document\"\n ) => {\n const root = rootRef.current;\n if (!root || !sizeReady) {\n return;\n }\n let x = 0;\n let y = 0;\n let duration = 300;\n let distance: number;\n const isHorizontal = direction === \"left\" || direction === \"right\";\n if (range === \"line\") {\n const lineHeight = 40;\n distance =\n lineHeight * (direction === \"up\" || direction === \"left\" ? 1 : -1);\n duration = 150;\n } else if (range === \"page\") {\n const pageHeight = root.offsetHeight - CANVAS_PADDING_BOTTOM;\n distance = pageHeight * (direction === \"up\" ? -1 : 1);\n } else {\n const { y: top, height } = mergeRects(nodes.map((node) => node.view!));\n\n if (direction === \"down\") {\n const bottom = top + height;\n const targetHeight = bottom - top + CANVAS_PADDING_BOTTOM;\n distance = root.offsetHeight - targetHeight - transformRef.current.y;\n } else {\n distance = top + CANVAS_PADDING_TOP - transformRef.current.y;\n }\n }\n\n if (isHorizontal) {\n x = distance;\n } else {\n y = distance;\n }\n\n if (x || y) {\n pushZoomTransition({\n translateBy: [x, y],\n duration,\n });\n }\n },\n [nodes, pushZoomTransition, sizeReady, transformRef]\n );\n\n const [activeToolCallJobId, setActiveToolCallJobId] = useState<string | null>(\n null\n );\n\n const [activeExpandedViewJobId, setActiveExpandedViewJobId] = useState<\n string | null\n >(null);\n\n const [activeFile, setActiveFile] = React.useState<FileInfo | null>(null);\n\n const canvasContextValue = useMemo(\n () => ({\n humanInput,\n onShare,\n onPause,\n onResume,\n onCancel,\n onNodeResize,\n activeToolCallJobId,\n setActiveToolCallJobId,\n setActiveNodeId,\n hoverOnScrollableContent,\n setHoverOnScrollableContent,\n activeExpandedViewJobId,\n setActiveExpandedViewJobId,\n supports,\n setActiveFile,\n }),\n [\n activeToolCallJobId,\n hoverOnScrollableContent,\n activeExpandedViewJobId,\n onNodeResize,\n humanInput,\n onShare,\n onPause,\n onResume,\n onCancel,\n supports,\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 const handleRootClick = useCallback((e: React.MouseEvent) => {\n for (const element of e.nativeEvent.composedPath()) {\n if (\n element instanceof HTMLElement &&\n element.classList.contains(styles.node)\n ) {\n // If the click is on a node, do not reset active node\n return;\n }\n if (element === rootRef.current) {\n break;\n }\n }\n setActiveNodeId(null);\n }, []);\n\n useEffect(() => {\n const root = rootRef.current;\n if (!root || activeToolCallJob || activeExpandedViewJobId || activeFile) {\n return;\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (\n document.activeElement &&\n document.activeElement !== document.body &&\n document.activeElement !== root\n ) {\n return;\n }\n\n const keyboardAction = handleKeyboardNav(e, { activeNodeId, nodes });\n if (!keyboardAction) {\n return;\n }\n const { action, node } = keyboardAction;\n\n if (action === \"scroll\") {\n scrollBy(keyboardAction.direction, keyboardAction.range);\n } else if (action === \"enter\") {\n if (node.type !== \"job\" && node.type !== \"view\") {\n return;\n }\n const askUser = node.job.toolCall?.name === \"ask_human\";\n const askUserPlan =\n node.job.toolCall?.name === \"ask_human_confirming_plan\";\n if (askUser || askUserPlan) {\n return;\n }\n }\n e.preventDefault();\n e.stopPropagation();\n\n if (action === \"enter\") {\n if (node.type === \"view\") {\n setActiveExpandedViewJobId(node.job.id);\n } else {\n setActiveToolCallJobId((node as JobGraphNode).job.id);\n }\n } else if (action === \"switch-active-node\") {\n if (node) {\n setActiveNodeId(node.id);\n if (node.type === \"job\" || node.type === \"view\") {\n scrollTo({\n jobId: node.job.id,\n behavior: \"smooth\",\n });\n } else {\n scrollTo({\n nodeId: node.id,\n behavior: \"smooth\",\n });\n }\n } else {\n setActiveNodeId(null);\n }\n }\n };\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [\n activeNodeId,\n activeToolCallJob,\n activeExpandedViewJobId,\n activeFile,\n nodes,\n scrollTo,\n scrollBy,\n ]);\n\n return (\n <CanvasContext.Provider value={canvasContextValue}>\n <div\n className={classNames(styles.root, { [styles.loading]: !task })}\n ref={rootRef}\n style={{\n cursor: grabbing ? \"grabbing\" : \"grab\",\n }}\n tabIndex={-1}\n onClick={handleRootClick}\n >\n {!task && (\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 <div\n className={classNames(styles.canvas, {\n [styles.ready]: sizeReady && centered,\n })}\n style={{\n transform: `translate3d(${transform.x}px, ${transform.y}px, 0) scale(${transform.k})`,\n }}\n >\n <svg className={styles.edges}>\n {edges.map((edge) =>\n edge.target === END_NODE_ID ? null : (\n <path\n className={styles.edge}\n key={`${edge.source}-${edge.target}`}\n d={edge\n .points!.map(\n ({ x, y }, i) => `${i === 0 ? \"M\" : \"L\"}${x},${y}`\n )\n .join(\" \")}\n />\n )\n )}\n </svg>\n {nodes.map((node) => (\n <MemoizedNodeComponent\n key={node.id}\n id={node.id}\n type={node.type}\n content={(node as RequirementGraphNode).content}\n job={(node as JobGraphNode).job}\n state={node.state}\n startTime={task?.startTime}\n taskLoading={taskLoading}\n instructionLoading={\n node.type === \"instruction\" &&\n !nonLeafNodes.has(node.id) &&\n !DONE_STATES.includes(node.state ?? \"working\") &&\n !GENERAL_DONE_STATES.includes(taskState ?? \"working\")\n }\n edges={edges}\n x={node.view?.x}\n y={node.view?.y}\n active={activeNodeId === node.id}\n />\n ))}\n </div>\n </div>\n <div className={styles.widgets}>\n <Nav\n nav={nav}\n plan={plan}\n jobs={jobs}\n jobLevels={jobLevels}\n currentNavId={currentNavId}\n taskState={taskState}\n onClick={(jobId: string) => {\n setActiveNodeId(`job:${jobId}`);\n scrollTo({ jobId, block: \"start\" });\n }}\n />\n <ZoomBar\n scale={transform.k}\n onScaleChange={handleScaleChange}\n onReCenter={handleReCenter}\n />\n {replay ? (\n <ReplayToolbar\n taskDone={taskDone}\n skipToResults={skipToResults}\n watchAgain={() => {\n watchAgain();\n setCentered(false);\n }}\n />\n ) : supports?.chat ? (\n <ChatBox taskState={taskState} taskDone={taskDone} />\n ) : null}\n </div>\n {activeToolCallJob && <ToolCallDetail job={activeToolCallJob} />}\n {activeExpandedViewJobId && <ExpandedView views={views!} />}\n {activeFile && <FilePreview file={activeFile} />}\n </CanvasContext.Provider>\n );\n}\n\ninterface NodeComponentProps {\n id: string;\n type: GraphNode[\"type\"];\n edges: GraphEdge[];\n content?: string;\n job?: Job;\n state?: string;\n startTime?: number;\n taskLoading?: boolean;\n instructionLoading?: boolean;\n x?: number;\n y?: number;\n active?: boolean;\n}\n\nfunction NodeComponent({\n id,\n type,\n state,\n job,\n content,\n startTime,\n taskLoading,\n instructionLoading,\n x,\n y,\n active,\n}: NodeComponentProps) {\n const nodeRef = useRef<HTMLDivElement>(null);\n const { onNodeResize, setActiveNodeId } = useContext(CanvasContext);\n\n useEffect(() => {\n const element = nodeRef.current;\n if (!element) {\n return;\n }\n const observer = new ResizeObserver(() => {\n onNodeResize(id, [element.offsetWidth, element.offsetHeight]);\n });\n observer.observe(element);\n return () => {\n observer.disconnect();\n onNodeResize(id, null);\n };\n }, [id, onNodeResize]);\n\n useEffect(() => {\n const element = nodeRef.current;\n if (!element) {\n return;\n }\n const handleMouseDown = (e: MouseEvent) => {\n e.stopPropagation();\n };\n element.addEventListener(\"mousedown\", handleMouseDown);\n return () => {\n element.removeEventListener(\"mousedown\", handleMouseDown);\n };\n }, []);\n\n const handleClick = useCallback(() => {\n if (type !== \"start\" && type !== \"instruction\") {\n setActiveNodeId(id);\n }\n }, [id, setActiveNodeId, type]);\n\n return (\n <div\n className={classNames(styles.node, {\n [styles.ready]: x != null && y != null,\n })}\n ref={nodeRef}\n style={{\n left: x,\n top: y,\n }}\n onClick={handleClick}\n >\n {type === \"start\" ? (\n <NodeStart />\n ) : type === \"end\" ? (\n <NodeEnd />\n ) : type === \"requirement\" ? (\n <NodeRequirement\n content={content}\n startTime={startTime}\n loading={taskLoading}\n active={active}\n />\n ) : type === \"instruction\" ? (\n <NodeInstruction\n content={job!.instruction}\n loading={instructionLoading}\n />\n ) : type === \"view\" ? (\n <NodeView job={job!} active={active} />\n ) : (\n <NodeJob state={state} job={job!} active={active} />\n )}\n </div>\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 { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport type { TaskState } from \"../cruise-canvas/interfaces.js\";\nimport classNames from \"classnames\";\nimport { DONE_STATES } from \"../cruise-canvas/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={26} />;\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}\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};\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};\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, { useEffect, useMemo, useRef, useState } 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 } 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 \"../cruise-canvas/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 function ChatHistory({\n activeId,\n actions,\n urlTemplate,\n onActionClick,\n onHistoryClick,\n}: ChatHistoryProps) {\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({ next_token: loadNextToken }),\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 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, { useCallback, useEffect, useState } 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 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 { ChatHistory, type ActionClickDetail } from \"./ChatHistory.js\";\n\ninitializeI18n(NS, locales);\n\nconst SIDEBAR_ICON: GeneralIconProps = {\n lib: \"easyops\",\n icon: \"sidebar\",\n};\n\nconst dropdownActions: DropdownActionsProps[\"actions\"] = [\n {\n icon: {\n lib: \"fa\",\n prefix: \"fas\",\n icon: \"arrow-right-from-bracket\",\n },\n text: t(K.LOGOUT),\n },\n];\n\nconst { defineElement, property, event } = 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}\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 @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 render() {\n return (\n <ElevoSidebarComponent\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 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 ElevoSidebarComponent({\n userInstanceId,\n behavior,\n logoUrl,\n newChatUrl,\n historyActiveId,\n historyUrlTemplate,\n historyActions,\n onLogout,\n onActionClick,\n}: ElevoSidebarComponentProps) {\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 return (\n <div className={classNames(\"container\", { collapsed })}>\n {behavior === \"drawer\" && !collapsed && (\n <div className=\"mask\" onClick={handleClickMask} />\n )}\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={26}\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 <ChatHistory\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={onLogout}\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 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>\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_TOOL_HUB = \"MCP_TOOL_HUB\",\n ALL = \"ALL\",\n\n SERVER_cmdb = \"SERVER_cmdb\",\n SERVER_alert = \"SERVER_alert\",\n SERVER_web_builder = \"SERVER_web_builder\",\n SERVER_host_troubleshooting = \"SERVER_host_troubleshooting\",\n SERVER_system_inspection = \"SERVER_system_inspection\",\n}\n\nconst en: Locale = {\n [K.MCP_TOOL_HUB]: \"MCP Tool Hub\",\n [K.ALL]: \"All\",\n\n [K.SERVER_cmdb]: \"CMDB\",\n [K.SERVER_alert]: \"Alert\",\n [K.SERVER_web_builder]: \"View\",\n [K.SERVER_host_troubleshooting]: \"Host Troubleshooting\",\n [K.SERVER_system_inspection]: \"System Inspection\",\n};\n\nconst zh: Locale = {\n [K.MCP_TOOL_HUB]: \"MCP 工具中心\",\n [K.ALL]: \"全部\",\n\n [K.SERVER_cmdb]: \"CMDB\",\n [K.SERVER_alert]: \"告警\",\n [K.SERVER_web_builder]: \"视图\",\n [K.SERVER_host_troubleshooting]: \"主机故障排查\",\n [K.SERVER_system_inspection]: \"系统巡检\",\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 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 = useMemo(() => {\n const map = new Map<string, McpTool[]>();\n list?.forEach((item) => {\n const key = t(\n `SERVER_${item.server.id.replaceAll(\"-\", \"_\")}`,\n item.server.name\n );\n let list = map.get(key);\n if (!list) {\n map.set(key, (list = []));\n }\n list.push(item);\n });\n return map;\n }, [list]);\n\n const groups = useMemo(() => [null, ...groupMap.keys()], [groupMap]);\n\n const [activeGroup, setActiveGroup] = useState<string | null>(null);\n\n const filteredGroups = useMemo(() => {\n const groupedList = [...groupMap];\n if (activeGroup === null) {\n return groupedList;\n }\n return groupedList.filter(([group]) => group === activeGroup);\n }, [activeGroup, groupMap]);\n\n return (\n <div className=\"container\">\n <h1>{t(K.MCP_TOOL_HUB)}</h1>\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=\"groups\">\n {filteredGroups?.map(([groupName, items]) => (\n <li key={groupName} className=\"group\">\n <h2>{groupName}</h2>\n <ul className=\"list\">\n {items.map((item) => (\n <li key={item.name} 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","// 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"],"names":["___CSS_LOADER_EXPORT___","push","module","id","toString","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_REPLACEMENT_0___","initializeI18n","NS","locales","defineElement","property","event","method","createDecorators","MemoizedNodeComponent","memo","NodeComponent","CruiseCanvasComponent","forwardRef","LegacyCruiseCanvasComponent","_CruiseCanvas","_A","WeakMap","_B","_C","_D","_E","_F","_G","_CruiseCanvas_brand","WeakSet","_onShare","_H","_onPause","_I","_onResume","_J","_onCancel","_ref","CruiseCanvas","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_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_shareEvent","_init_extra_shareEvent","_classPrivateGetter","this","_get_shareEvent","emit","_init_pauseEvent","_init_extra_pauseEvent","_get_pauseEvent","_init_resumeEvent","_init_extra_resumeEvent","_get_resumeEvent","_init_cancelEvent","_init_extra_cancelEvent","_get_cancelEvent","createRef","taskId","_classPrivateFieldGet","v","_classPrivateFieldSet","task","jobs","replay","replayDelay","supports","resumed","_classPrivateFieldGet2","current","render","React","onShare","onPause","onResume","onCancel","ref","_ref2","_task$title","propTask","propJobs","rootRef","useRef","_task","_jobs","error","humanInputRef","resumedRef","skipToResults","watchAgain","useTaskDetail","plan","graph","useTaskGraph","rawNodes","nodes","rawEdges","edges","nav","views","jobLevels","pageTitle","title","taskState","state","activeNodeId","setActiveNodeId","useState","currentNavId","useMemo","type","jobId","split","useImperativeHandle","_resumedRef$current","call","transitionEnabledRef","useEffect","timer","setTimeout","clearTimeout","getRuntime","applyPageTitle","handleHttpError","humanInput","useCallback","input","_humanInputRef$curren","sizeMap","setSizeMap","onNodeResize","size","prev","newMap","Map","delete","set","sizeReady","useLayout","detectScrolledUpRef","manualScrolledUpRef","hoverOnScrollableContent","setHoverOnScrollableContent","grabbing","transform","transformRef","zoomer","useZoom","zoomable","scrollable","pannable","transitionRef","pushZoomTransition","nextAction","run","action","target","translateBy","selection","select","_target$duration","_transform$k","_transform$x","_transform$y","_translateBy$","_translateBy$2","duration","transition","ease","t","on","next","ZoomTransform","k","x","y","centered","setCentered","reCenterRef","useAutoCenter","taskDone","DONE_STATES","includes","taskLoading","length","nonLeafNodes","Set","map","edge","source","bottom","leafNodes","node","has","Math","max","view","height","bottomRef","root","offsetHeight","transformedBottom","diffY","CANVAS_PADDING_BOTTOM","handleReCenter","handleScaleChange","scale","scaleTo","fullRect","mergeRects","offsetWidth","viewportWidth","viewportHeight","minX","maxX","width","minY","maxY","translateExtent","scrollTo","_ref3","nodeId","behavior","block","targets","filter","n","_job","job","rect","getScrollTo","CANVAS_PADDING_TOP","CANVAS_PADDING_RIGHT","CANVAS_PADDING_LEFT","undefined","scrollBy","direction","range","distance","isHorizontal","top","targetHeight","activeToolCallJobId","setActiveToolCallJobId","activeExpandedViewJobId","setActiveExpandedViewJobId","activeFile","setActiveFile","canvasContextValue","activeToolCallJob","find","handleRootClick","e","element","nativeEvent","composedPath","HTMLElement","classList","contains","styles","handleKeyDown","document","activeElement","body","keyboardAction","handleKeyboardNav","_node$job$toolCall","_node$job$toolCall2","askUser","toolCall","name","askUserPlan","preventDefault","stopPropagation","addEventListener","removeEventListener","CanvasContext","Provider","value","className","classNames","loading","style","cursor","tabIndex","onClick","WrappedIcon","lib","theme","icon","spinning","canvas","ready","END_NODE_ID","key","d","points","_ref4","i","join","_node$state","_node$view","_node$view2","content","startTime","instructionLoading","GENERAL_DONE_STATES","active","widgets","Nav","ZoomBar","onScaleChange","onReCenter","ReplayToolbar","chat","ChatBox","ToolCallDetail","ExpandedView","FilePreview","file","_ref5","nodeRef","useContext","observer","ResizeObserver","observe","disconnect","handleMouseDown","handleClick","left","NodeStart","NodeEnd","NodeRequirement","NodeInstruction","instruction","NodeView","NodeJob","_CruiseCanvas2","_set_shareEvent","_set_pauseEvent","_set_resumeEvent","_set_cancelEvent","c","_initClass","_applyDecs","shadowOptions","attribute","Boolean","Number","o","_","_checkInRHS","K","en","ASK_ANY_THING","COMMON_TASKS","zh","i18n","getFixedT","wrapBrick","_ChatBox","_ChatBox_brand","_handleMessageSubmit","_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","_get_messageSubmit","disabled","placeholder","autoFocus","suggestions","suggestionsLabel","ChatBoxComponent","onSubmit","containerRef","textareaRef","setValue","valueRef","handleSubmit","currentTarget","handleChange","handleSubmitClick","Promise","resolve","then","_textareaRef$current","focus","groupedSuggestions","chunk","ceil","handleSelectSuggestion","suggestion","_textareaRef$current2","TextareaAutoResize","minRows","paddingSize","autoResize","submitWhen","onChange","prefix","src","tips","group","index","SuggestionCarousel","pixelPerSecond","onSelect","carouselRef","listRef","setX","carousel","list","previousTimestamp","currentTimestamp","start","offsetTime","mod","step","timestamp","requestAnimationFrame","onMouseEnter","cancelAnimationFrame","onMouseLeave","item","_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","detail","_get_actionClick","_init_loadMore","_init_extra_loadMore","nextToken","_get_loadMore","actions","ChatHistoryComponent","onLoadMore","groups","groupMap","now","moment","startOfDay","clone","startOf","yesterday","subtract","sevenDaysAgo","thirtyDaysAgo","timestamps","groupKey","format","get","items","values","actionsVisible","setActionsVisible","nextRef","IntersectionObserver","entries","entry","isIntersecting","url","_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","lineColor","showArea","min","xField","yField","data","StatWithMiniChartComponent","chartProps","_extends","lineWidth","_StatWithMiniChart2","_ElevoLogo","ElevoLogo","ElevoLogoComponent","logoImage","alt","_ElevoLogo2","NEW_CHAT","LOGOUT","WrappedDropdownActions","WrappedEasyopsAvatar","WrappedIconButton","AgentFlowApi_searchTaskForAgentFlow","async","options","http","post","activeId","urlTemplate","onHistoryClick","setList","setNextToken","loadNextToken","setLoadNextToken","all","next_token","catch","console","template","context","replace","_match","SIDEBAR_ICON","dropdownActions","text","_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_logout","_init_extra_logout","_get_logout","userInstanceId","logoUrl","newChatUrl","historyActiveId","historyUrlTemplate","historyActions","ElevoSidebarComponent","onLogout","collapsed","setCollapsed","handleCollapse","handleExpand","handleClickMask","handleHistoryClick","variant","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_TOOL_HUB","SERVER_cmdb","SERVER_alert","SERVER_web_builder","SERVER_host_troubleshooting","SERVER_system_inspection","DEFAULT_TOOL_ICON","_McpTools","McpTools","McpToolsComponent","forEach","server","replaceAll","keys","filteredGroups","groupedList","groupName","_item$icon","fallback","description","_McpTools2"],"sourceRoot":""}
@@ -1,3 +0,0 @@
1
- /*! For license information please see elevo-sidebar.859a89ed.js.LICENSE.txt */
2
- (globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[2052,7771],{5536:(t,e,i)=>{"use strict";i.d(e,{A:()=>n});var r=i(12559);function n(t,e,i){return i((0,r.A)(t,e))}},11369:(t,e,i)=>{"use strict";i.d(e,{A:()=>n});var r=i(17545);function n(t){var e=function(t){if("object"!=(0,r.A)(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,"string");if("object"!=(0,r.A)(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==(0,r.A)(e)?e:e+""}},12559:(t,e,i)=>{"use strict";function r(t,e,i){if("function"==typeof t?t===e:t.has(e))return arguments.length<3?e:i;throw new TypeError("Private element is not present on this object")}i.d(e,{A:()=>r})},16854:(t,e,i)=>{"use strict";var r,n,a;i.d(e,{Bf:()=>v,CO:()=>m,DE:()=>u,GT:()=>g,Jw:()=>l,LQ:()=>w,QB:()=>b,RV:()=>d,U5:()=>c,X4:()=>y,Xc:()=>k,Yt:()=>s,bL:()=>f,kq:()=>p,sS:()=>o,vL:()=>A,xX:()=>h});const o=.5,s=2,c="<START>",l="<END>",u="<REQUIREMENT>",d=20,p=20,h=122,f=160,m=40,g=42,v=10,b=["completed","failed","canceled"],y=[...b,"paused"],A=/mac/i.test(null!==(r=null!==(n=null===(a=navigator.userAgentData)||void 0===a?void 0:a.platform)&&void 0!==n?n:navigator.platform)&&void 0!==r?r:navigator.userAgent),w={lib:"antd",icon:"close"},k={lib:"antd",icon:"loading-3-quarters",spinning:!0}},17099:(t,e,i)=>{"use strict";t.exports=i.p+"images/7385e5f5.png"},17545:(t,e,i)=>{"use strict";function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}i.d(e,{A:()=>r})},26902:(t,e,i)=>{"use strict";i.d(e,{A:()=>n});var r=i(17545);function n(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==t?(0,r.A)(t):"null"));return t}},33471:(t,e,i)=>{"use strict";i.d(e,{o:()=>n});var r=i(57372);const n=async(t,e)=>(await r.http.post("api/gateway/logic.llm.aiops_service/api/v1/llm/agent/flow/search",t,e)).data},36758:t=>{"use strict";t.exports=function(t){return t[1]}},40935:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var i="",r=void 0!==e[5];return e[4]&&(i+="@supports (".concat(e[4],") {")),e[2]&&(i+="@media ".concat(e[2]," {")),r&&(i+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),i+=t(e),r&&(i+="}"),e[2]&&(i+="}"),e[4]&&(i+="}"),i})).join("")},e.i=function(t,i,r,n,a){"string"==typeof t&&(t=[[null,t,void 0]]);var o={};if(r)for(var s=0;s<this.length;s++){var c=this[s][0];null!=c&&(o[c]=!0)}for(var l=0;l<t.length;l++){var u=[].concat(t[l]);r&&o[u[0]]||(void 0!==a&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=a),i&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=i):u[2]=i),n&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=n):u[4]="".concat(n)),e.push(u))}},e}},42965:(t,e,i)=>{"use strict";i.d(e,{Bj:()=>n,EM:()=>a,JQ:()=>s,Py:()=>l,qb:()=>o,qu:()=>c});var r=i(11280);const n=(0,r.wrapBrick)("eo-icon"),a=(0,r.wrapBrick)("eo-link"),o=(0,r.wrapBrick)("eo-dropdown-actions",{onActionClick:"action.click",onVisibleChange:"visible.change"}),s=(0,r.wrapBrick)("eo-easyops-avatar"),c=(0,r.wrapBrick)("eo-mini-actions",{onActionClick:"action.click",onVisibleChange:"visible.change"}),l=(0,r.wrapBrick)("ai-portal.icon-button")},53373:(t,e)=>{var i;!function(){"use strict";var r={}.hasOwnProperty;function n(){for(var t="",e=0;e<arguments.length;e++){var i=arguments[e];i&&(t=o(t,a(i)))}return t}function a(t){if("string"==typeof t||"number"==typeof t)return t;if("object"!=typeof t)return"";if(Array.isArray(t))return n.apply(null,t);if(t.toString!==Object.prototype.toString&&!t.toString.toString().includes("[native code]"))return t.toString();var e="";for(var i in t)r.call(t,i)&&t[i]&&(e=o(e,i));return e}function o(t,e){return e?t?t+" "+e:t+e:t}t.exports?(n.default=n,t.exports=n):void 0===(i=function(){return n}.apply(e,[]))||(t.exports=i)}()},61408:(t,e,i)=>{"use strict";i.d(e,{A:()=>s});var r=i(36758),n=i.n(r),a=i(40935),o=i.n(a)()(n());o.push([t.id,':host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.sidebar{position:relative;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;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:23px}.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}.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:not(.active)::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:hover .working,.history .item.active .working{display:none}.history .load-more{display:flex;justify-content:center;align-items:center;height:36px}',""]);const s=o.toString()},62740:(t,e,i)=>{"use strict";i.d(e,{A:()=>s});var r=i(17545),n=i(26902);function a(t,e,i){"symbol"==(0,r.A)(e)&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:i?i+" "+e:e})}catch(t){}return t}var o=i(11369);function s(t,e,i,s,c,l){var u,d,p,h,f,m,g,v=Symbol.metadata||Symbol.for("Symbol.metadata"),b=Object.defineProperty,y=Object.create,A=[y(null),y(null)],w=e.length;function k(e,i,r){return function(n,a){i&&(a=n,n=t);for(var o=0;o<e.length;o++)a=e[o].apply(n,r?[a]:[]);return r?a:n}}function E(t,e,i,r){if("function"!=typeof t&&(r||void 0!==t))throw new TypeError(e+" must "+(i||"be")+" a function"+(r?"":" or undefined"));return t}function x(t,e,i,n,o,s,c,l,p,h,f){function m(t){if(!f(t))throw new TypeError("Attempted to access private element on non-instance")}var g=[].concat(e[0]),v=e[3],y=!c,w=1===o,x=3===o,S=4===o,T=2===o;function O(e,i,r){return function(n,a){return i&&(a=n,n=t),r&&r(n),I[e].call(n,a)}}if(!y){var I={},N=[],C=x?"get":S||w?"set":"value";if(p?(h||w?I={get:a((function(){return v(this)}),n,"get"),set:function(t){e[4](this,t)}}:I[C]=v,h||a(I[C],n,T?"":C)):h||(I=Object.getOwnPropertyDescriptor(t,n)),!h&&!p){if((d=A[+l][n])&&7!=(d^o))throw Error("Decorating two elements with the same name ("+I[C].name+") is not supported yet");A[+l][n]=o<3?1:o}}for(var _=t,U=g.length-1;U>=0;U-=i?2:1){var Y=E(g[U],"A decorator","be",!0),D=i?g[U-1]:void 0,j={},P={kind:["field","accessor","method","getter","setter","class"][o],name:n,metadata:u,addInitializer:function(t,e){if(t.v)throw Error("attempted to call addInitializer after decoration was finished");E(e,"An initializer","be",!0),s.push(e)}.bind(null,j)};if(y)d=Y.call(D,_,P),j.v=1,E(d,"class decorators","return")&&(_=d);else if(P.static=l,P.private=p,d=P.access={has:p?f.bind():function(t){return n in t}},S||(d.get=p?T?function(t){return m(t),I.value}:O("get",0,m):function(t){return t[n]}),T||x||(d.set=p?O("set",0,m):function(t,e){t[n]=e}),_=Y.call(D,w?{get:I.get,set:I.set}:I[C],P),j.v=1,w){if("object"==(0,r.A)(_)&&_)(d=E(_.get,"accessor.get"))&&(I.get=d),(d=E(_.set,"accessor.set"))&&(I.set=d),(d=E(_.init,"accessor.init"))&&N.unshift(d);else if(void 0!==_)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else E(_,(h?"field":"method")+" decorators","return")&&(h?N.unshift(_):I[C]=_)}return o<2&&c.push(k(N,l,1),k(s,l,0)),h||y||(p?w?c.splice(-1,0,O("get",l),O("set",l)):c.push(T?I[C]:E.call.bind(I[C])):b(t,n,I)),_}function S(t){return b(t,v,{configurable:!0,enumerable:!0,value:u})}return void 0!==l&&(u=l[v]),u=y(null==u?null:u),f=[],m=function(t){t&&f.push(k(t))},g=function(e,r){for(var a=0;a<i.length;a++){var s=i[a],l=s[1],u=7&l;if((8&l)==e&&!u==r){var d=s[2],m=!!s[3],g=16&l;x(e?t:t.prototype,s,g,m?"#"+d:(0,o.A)(d),u,u<2?[]:e?h=h||[]:p=p||[],f,!!e,m,r,e&&m?function(e){return(0,n.A)(e)===t}:c)}}},g(8,0),g(0,0),g(8,1),g(0,1),m(p),m(h),d=f,w||S(t),{e:d,get c(){var i=[];return w&&[S(t=x(t,[e],s,t.name,5,i)),k(i,1)]}}}},65467:(t,e,i)=>{"use strict";i.d(e,{D:()=>m});var r=i(89575),n=i(18769),a=i.n(n),o=i(21302),s=i.n(o),c=i(53373),l=i.n(c),u=i(33471),d=i(41030),p=i(99671),h=i(42965),f=i(16854);function m(t){let{activeId:e,actions:i,urlTemplate:o,onActionClick:c,onHistoryClick:m}=t;const g=(0,n.useRef)(null),[v,b]=(0,n.useState)(null),[y,A]=(0,n.useState)(),[w,k]=(0,n.useState)();(0,n.useEffect)((()=>{Promise.all([(0,u.o)({next_token:w}),new Promise((t=>setTimeout(t,500)))]).then((t=>{let[e]=t;b((t=>[...null!=t?t:[],...e.data])),A(e.next_token)})).catch((t=>{console.error("Error loading chat history:",t)}))}),[w]);const E=(0,n.useMemo)((()=>{const t=new Map,e=s()(),i=e.clone().startOf("day"),r=i.clone().subtract(1,"day"),n=i.clone().subtract(7,"days"),a=i.clone().subtract(30,"days"),o=+i/1e3,c=+r/1e3,l=+n/1e3,u=+a/1e3,d=+e.clone().startOf("year")/1e3;for(const e of null!=v?v:[]){let i;i=e.startTime>=o?(0,p.t)(p.K.TODAY):e.startTime>=c?(0,p.t)(p.K.YESTERDAY):e.startTime>=l?(0,p.t)(p.K.PREVIOUS_7_DAYS):e.startTime>=u?(0,p.t)(p.K.PREVIOUS_30_DAYS):e.startTime>=d?s()(1e3*e.startTime).format("MMMM"):s()(1e3*e.startTime).format("YYYY");let r=t.get(i);r||t.set(i,r={title:i,items:[]}),r.items.push(e)}return[...t.values()]}),[v]),[x,S]=(0,n.useState)(null),T=(0,n.useRef)(null);return(0,n.useEffect)((()=>{const t=T.current,e=g.current;if(!t||!y||!e)return;const i=new IntersectionObserver((t=>{for(const e of t)e.isIntersecting&&k(y)}),{root:e});return i.observe(t),()=>{i.disconnect()}}),[y]),v?a().createElement("div",{className:"history",ref:g},a().createElement("ul",null,E.map((t=>a().createElement("li",{key:t.title,className:"group"},a().createElement("div",{className:"group-title"},t.title),a().createElement("ul",{className:"items"},t.items.map((t=>{return a().createElement("li",{key:t.id},a().createElement(h.EM,(0,r.A)({className:l()("item",{"actions-active":t.id===x,active:t.id===e}),onClick:m},o?{url:(n=o,s=t,null==n?void 0:n.replace(/{{(.*?)}}/g,((t,e)=>(0,d.get)(s,e))))}:null),a().createElement("div",{className:"item-title",title:t.title},t.title),a().createElement(h.qu,{className:"actions",actions:i,onActionClick:e=>{c({action:e.detail,item:t})},onVisibleChange:e=>{S(e.detail?t.id:null)}}),!f.QB.includes(t.state)&&a().createElement("div",{className:"working"})));var n,s}))))))),y&&a().createElement("div",{className:"load-more",ref:T},a().createElement(h.Bj,{lib:"antd",icon:"loading-3-quarters",spinning:!0}))):a().createElement("div",{className:"history"},a().createElement("div",{className:"loading"},a().createElement(h.Bj,{lib:"antd",theme:"outlined",icon:"loading-3-quarters",spinning:!0})))}},70829:(t,e,i)=>{"use strict";i.d(e,{A:()=>n});var r=i(12559);function n(t,e){return t.get((0,r.A)(t,e))}},70918:(t,e,i)=>{"use strict";i.d(e,{A:()=>n});var r=i(72016);function n(t,e,i){(0,r.A)(t,e),e.set(t,i)}},72016:(t,e,i)=>{"use strict";function r(t,e){if(e.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")}i.d(e,{A:()=>r})},74635:(t,e,i)=>{"use strict";i.d(e,{A:()=>n});var r=i(72016);function n(t,e){(0,r.A)(t,e),e.add(t)}},86121:(t,e,i)=>{"use strict";i.d(e,{A:()=>n});var r=i(12559);function n(t,e,i){return t.set((0,r.A)(t,e),i),i}},86833:(t,e,i)=>{"use strict";i.r(e),i.d(e,{ElevoSidebar:()=>F});var r,n=i(74635),a=i(70918),o=i(26902),s=i(5536),c=i(86121),l=i(70829),u=i(62740),d=i(18769),p=i.n(d),h=i(7921),f=i(11280),m=(i(65168),i(90079)),g=i(53373),v=i.n(g),b=i(99671),y=i(61408),A=i(17099),w=i(42965),k=i(65467);let E,x,S,T,O,I,N,C,_,U,Y,D,j,P,M,R,W,z,B,V,L,q,H;(0,m.initializeI18n)(b.NS,b.I);const K={lib:"easyops",icon:"sidebar"},G=[{icon:{lib:"fa",prefix:"fas",icon:"arrow-right-from-bracket"},text:(0,b.t)(b.K.LOGOUT)}],{defineElement:Q,property:X,event:J}=(0,h.createDecorators)();let F;var Z=new WeakMap,$=new WeakMap,tt=new WeakMap,et=new WeakMap,it=new WeakMap,rt=new WeakMap,nt=new WeakMap,at=new WeakMap,ot=new WeakSet,st=new WeakMap,ct=new WeakMap,lt=new WeakMap;class ut extends f.ReactNextElement{constructor(){super(...arguments),(0,n.A)(this,ot),(0,a.A)(this,Z,x(this)),(0,a.A)(this,$,(S(this),T(this))),(0,a.A)(this,tt,(O(this),I(this))),(0,a.A)(this,et,(N(this),C(this))),(0,a.A)(this,it,(_(this),U(this))),(0,a.A)(this,rt,(Y(this),D(this))),(0,a.A)(this,nt,(j(this),P(this))),(0,a.A)(this,at,(M(this),R(this))),(0,a.A)(this,st,(B(this),()=>{(0,s.A)(ot,this,W).emit()})),(0,a.A)(this,ct,V(this)),(0,a.A)(this,lt,(H(this),t=>{(0,s.A)(ot,this,L).emit(t)}))}get userInstanceId(){return(0,l.A)(Z,this)}set userInstanceId(t){(0,c.A)(Z,this,t)}get behavior(){return(0,l.A)($,this)}set behavior(t){(0,c.A)($,this,t)}get logoUrl(){return(0,l.A)(tt,this)}set logoUrl(t){(0,c.A)(tt,this,t)}get newChatUrl(){return(0,l.A)(et,this)}set newChatUrl(t){(0,c.A)(et,this,t)}get historyActiveId(){return(0,l.A)(it,this)}set historyActiveId(t){(0,c.A)(it,this,t)}get historyUrlTemplate(){return(0,l.A)(rt,this)}set historyUrlTemplate(t){(0,c.A)(rt,this,t)}get historyActions(){return(0,l.A)(nt,this)}set historyActions(t){(0,c.A)(nt,this,t)}render(){return p().createElement(dt,{userInstanceId:this.userInstanceId,behavior:this.behavior,logoUrl:this.logoUrl,newChatUrl:this.newChatUrl,historyActiveId:this.historyActiveId,historyUrlTemplate:this.historyUrlTemplate,historyActions:this.historyActions,onLogout:(0,l.A)(st,this),onActionClick:(0,l.A)(lt,this)})}}function dt(t){let{userInstanceId:e,behavior:i,logoUrl:r,newChatUrl:n,historyActiveId:a,historyUrlTemplate:o,historyActions:s,onLogout:c,onActionClick:l}=t;const[u,h]=(0,d.useState)("drawer"===i),f=(0,d.useCallback)((()=>{h(!0)}),[]),m=(0,d.useCallback)((()=>{h(!1)}),[]);(0,d.useEffect)((()=>{"drawer"===i&&h(!0)}),[i]);const g=(0,d.useCallback)((()=>{h(!0)}),[]),y=(0,d.useCallback)((()=>{"drawer"===i&&h(!0)}),[i]);return p().createElement("div",{className:v()("container",{collapsed:u})},"drawer"===i&&!u&&p().createElement("div",{className:"mask",onClick:g}),p().createElement("div",{className:"sidebar"},p().createElement("div",{className:"logo-bar"},p().createElement(w.EM,{url:r,className:"logo-link"},p().createElement("img",{className:"logo",alt:"Elevo",src:A,width:95,height:26})),p().createElement(w.Py,{icon:K,variant:"light",onClick:f})),p().createElement(w.EM,{className:"new-chat",url:n},p().createElement(w.Bj,{className:"new-chat-icon",lib:"easyops",icon:"new-chat"}),(0,b.t)(b.K.NEW_CHAT)),p().createElement(k.D,{activeId:a,urlTemplate:o,actions:s,onActionClick:l,onHistoryClick:y}),p().createElement("div",{className:"footer"},p().createElement(w.qb,{className:"dropdown",actions:G,onActionClick:c},p().createElement("button",{className:"account"},p().createElement(w.JQ,{nameOrInstanceId:e,showName:!0,size:"xs"}))))),p().createElement("div",{className:"alternative"},p().createElement(w.Py,{icon:K,variant:"light",onClick:m}),p().createElement(w.EM,{className:"new-chat",url:n},p().createElement(w.Bj,{className:"new-chat-icon",lib:"easyops",icon:"new-chat"}),(0,b.t)(b.K.NEW_CHAT))))}r=ut,({e:[x,S,T,O,I,N,C,_,U,Y,D,j,P,M,R,W,z,B,V,L,q,H],c:[F,E]}=(0,u.A)(r,[Q("ai-portal.elevo-sidebar",{styleTexts:[y.A]})],[[X(),1,"userInstanceId"],[X(),1,"behavior"],[X(),1,"logoUrl"],[X(),1,"newChatUrl"],[X(),1,"historyActiveId"],[X(),1,"historyUrlTemplate"],[X({attribute:!1}),1,"historyActions"],[J({type:"logout"}),1,"logout",t=>(0,l.A)(at,t),(t,e)=>(0,c.A)(at,t,e)],[J({type:"action.click"}),1,"actionClick",t=>(0,l.A)(ct,t),(t,e)=>(0,c.A)(ct,t,e)]],0,(t=>lt.has((0,o.A)(t))),f.ReactNextElement)),E()},89575:(t,e,i)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var r in i)Object.prototype.hasOwnProperty.call(i,r)&&(t[r]=i[r])}return t},r.apply(this,arguments)}i.d(e,{A:()=>r})},99671:(t,e,i)=>{"use strict";i.d(e,{I:()=>c,K:()=>n,NS:()=>s,t:()=>l});var r=i(90079);let n=function(t){return t.NEW_CHAT="NEW_CHAT",t.LOGOUT="LOGOUT",t.TODAY="TODAY",t.YESTERDAY="YESTERDAY",t.PREVIOUS_7_DAYS="PREVIOUS_7_DAYS",t.PREVIOUS_30_DAYS="PREVIOUS_30_DAYS",t}({});const a={[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"},o={[n.NEW_CHAT]:"新对话",[n.LOGOUT]:"登出",[n.TODAY]:"今天",[n.YESTERDAY]:"昨天",[n.PREVIOUS_7_DAYS]:"过去7天",[n.PREVIOUS_30_DAYS]:"过去30天"},s="bricks/ai-portal/elevo-sidebar",c={en:a,zh:o},l=r.i18n.getFixedT(null,s)}}]);
3
- //# sourceMappingURL=elevo-sidebar.859a89ed.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/elevo-sidebar.859a89ed.js","mappings":"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","sources":["webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateGetter.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/assertClassBrand.js","webpack:///./src/cruise-canvas/constants.ts","webpack:///../../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkInRHS.js","webpack:///../../node_modules/@next-api-sdk/llm-sdk/dist/esm/api/llm/agent_flow/searchTaskForAgentFlow.js","webpack:///../../node_modules/css-loader/dist/runtime/noSourceMaps.js","webpack:///../../node_modules/css-loader/dist/runtime/api.js","webpack:///./src/elevo-sidebar/bricks.ts","webpack:///../../node_modules/classnames/index.js","webpack:///./src/elevo-sidebar/styles.shadow.css","webpack:///../../node_modules/@babel/runtime/helpers/esm/setFunctionName.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/applyDecs2311.js","webpack:///./src/elevo-sidebar/ChatHistory.tsx","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet2.js","webpack:///./src/elevo-sidebar/index.tsx","webpack:///../../node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./src/elevo-sidebar/i18n.ts"],"sourcesContent":["import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateGetter(s, r, a) {\n return a(assertClassBrand(s, r));\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","export default function _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n}","import type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport { type TaskState } from \"./interfaces.js\";\n\nexport const DEFAULT_SCALE_RANGE_MIN = 0.5;\nexport const DEFAULT_SCALE_RANGE_MAX = 2;\nexport const START_NODE_ID = \"<START>\";\nexport const END_NODE_ID = \"<END>\";\nexport const REQUIREMENT_NODE_ID = \"<REQUIREMENT>\";\nexport const CANVAS_PADDING_TOP = 20;\nexport const CANVAS_PADDING_RIGHT = 20;\n// 20 + 48 + 8 + 26 + 20\nexport const CANVAS_PADDING_BOTTOM = 122;\nexport const CANVAS_PADDING_LEFT = 160;\nexport const RANK_SEP = 40;\nexport const NODE_SEP = 42;\nexport const EDGE_SEP = 10;\n\nexport const DONE_STATES = [\"completed\", \"failed\", \"canceled\"] as TaskState[];\n\nexport const GENERAL_DONE_STATES = [...DONE_STATES, \"paused\"] as TaskState[];\n\n// istanbul ignore next\nexport const IS_MAC = /mac/i.test(\n (\n navigator as Navigator & {\n userAgentData?: {\n platform: string;\n };\n }\n ).userAgentData?.platform ??\n navigator.platform ??\n navigator.userAgent\n);\n\nexport const ICON_CLOSE: GeneralIconProps = {\n lib: \"antd\",\n icon: \"close\",\n};\n\nexport const ICON_LOADING: GeneralIconProps = {\n lib: \"antd\",\n icon: \"loading-3-quarters\",\n spinning: true,\n};\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nexport default function _checkInRHS(e) {\n if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? _typeof(e) : \"null\"));\n return e;\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","\"use strict\";\n\nmodule.exports = function (i) {\n return i[1];\n};","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\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","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.sidebar{position:relative;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;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:23px}.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}.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:not(.active)::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: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","import _typeof from \"./typeof.js\";\nexport default function setFunctionName(e, t, n) {\n \"symbol\" == _typeof(t) && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\");\n try {\n Object.defineProperty(e, \"name\", {\n configurable: !0,\n value: n ? n + \" \" + t : t\n });\n } catch (e) {}\n return e;\n}","import _typeof from \"./typeof.js\";\nimport checkInRHS from \"./checkInRHS.js\";\nimport setFunctionName from \"./setFunctionName.js\";\nimport toPropertyKey from \"./toPropertyKey.js\";\nexport default function applyDecs2311(e, t, n, r, o, i) {\n var a,\n c,\n u,\n s,\n f,\n l,\n p,\n d = Symbol.metadata || Symbol[\"for\"](\"Symbol.metadata\"),\n m = Object.defineProperty,\n h = Object.create,\n y = [h(null), h(null)],\n v = t.length;\n function g(t, n, r) {\n return function (o, i) {\n n && (i = o, o = e);\n for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []);\n return r ? i : o;\n };\n }\n function b(e, t, n, r) {\n if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\"));\n return e;\n }\n function applyDec(e, t, n, r, o, i, u, s, f, l, p) {\n function d(e) {\n if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\");\n }\n var h = [].concat(t[0]),\n v = t[3],\n w = !u,\n D = 1 === o,\n S = 3 === o,\n j = 4 === o,\n E = 2 === o;\n function I(t, n, r) {\n return function (o, i) {\n return n && (i = o, o = e), r && r(o), P[t].call(o, i);\n };\n }\n if (!w) {\n var P = {},\n k = [],\n F = S ? \"get\" : j || D ? \"set\" : \"value\";\n if (f ? (l || D ? P = {\n get: setFunctionName(function () {\n return v(this);\n }, r, \"get\"),\n set: function set(e) {\n t[4](this, e);\n }\n } : P[F] = v, l || setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) {\n if ((c = y[+s][r]) && 7 != (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\");\n y[+s][r] = o < 3 ? 1 : o;\n }\n }\n for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) {\n var z = b(h[O], \"A decorator\", \"be\", !0),\n A = n ? h[O - 1] : void 0,\n H = {},\n K = {\n kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o],\n name: r,\n metadata: a,\n addInitializer: function (e, t) {\n if (e.v) throw Error(\"attempted to call addInitializer after decoration was finished\");\n b(t, \"An initializer\", \"be\", !0), i.push(t);\n }.bind(null, H)\n };\n if (w) c = z.call(A, N, K), H.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (K[\"static\"] = s, K[\"private\"] = f, c = K.access = {\n has: f ? p.bind() : function (e) {\n return r in e;\n }\n }, j || (c.get = f ? E ? function (e) {\n return d(e), P.value;\n } : I(\"get\", 0, d) : function (e) {\n return e[r];\n }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) {\n e[r] = t;\n }), N = z.call(A, D ? {\n get: P.get,\n set: P.set\n } : P[F], K), H.v = 1, D) {\n if (\"object\" == _typeof(N) && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\");\n } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N);\n }\n return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N;\n }\n function w(e) {\n return m(e, d, {\n configurable: !0,\n enumerable: !0,\n value: a\n });\n }\n return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function l(e) {\n e && f.push(g(e));\n }, p = function p(t, r) {\n for (var i = 0; i < n.length; i++) {\n var a = n[i],\n c = a[1],\n l = 7 & c;\n if ((8 & c) == t && !l == r) {\n var p = a[2],\n d = !!a[3],\n m = 16 & c;\n applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) {\n return checkInRHS(t) === e;\n } : o);\n }\n }\n }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), {\n e: c,\n get c() {\n var n = [];\n return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)];\n }\n };\n}","import React, { useEffect, useMemo, useRef, useState } 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 } 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 \"../cruise-canvas/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 function ChatHistory({\n activeId,\n actions,\n urlTemplate,\n onActionClick,\n onHistoryClick,\n}: ChatHistoryProps) {\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({ next_token: loadNextToken }),\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 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 assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldGet2(s, a) {\n return s.get(assertClassBrand(s, a));\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateFieldInitSpec(obj, privateMap, value) {\n checkPrivateRedeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}","export default function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateMethodInitSpec(obj, privateSet) {\n checkPrivateRedeclaration(obj, privateSet);\n privateSet.add(obj);\n}","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldSet2(s, a, r) {\n return s.set(assertClassBrand(s, a), r), r;\n}","import React, { useCallback, useEffect, useState } 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 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 { ChatHistory, type ActionClickDetail } from \"./ChatHistory.js\";\n\ninitializeI18n(NS, locales);\n\nconst SIDEBAR_ICON: GeneralIconProps = {\n lib: \"easyops\",\n icon: \"sidebar\",\n};\n\nconst dropdownActions: DropdownActionsProps[\"actions\"] = [\n {\n icon: {\n lib: \"fa\",\n prefix: \"fas\",\n icon: \"arrow-right-from-bracket\",\n },\n text: t(K.LOGOUT),\n },\n];\n\nconst { defineElement, property, event } = 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}\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 @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 render() {\n return (\n <ElevoSidebarComponent\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 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 ElevoSidebarComponent({\n userInstanceId,\n behavior,\n logoUrl,\n newChatUrl,\n historyActiveId,\n historyUrlTemplate,\n historyActions,\n onLogout,\n onActionClick,\n}: ElevoSidebarComponentProps) {\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 return (\n <div className={classNames(\"container\", { collapsed })}>\n {behavior === \"drawer\" && !collapsed && (\n <div className=\"mask\" onClick={handleClickMask} />\n )}\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={26}\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 <ChatHistory\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={onLogout}\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 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>\n );\n}\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\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}\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};\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};\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"],"names":["_classPrivateGetter","s","r","a","toPropertyKey","t","i","e","Symbol","toPrimitive","call","TypeError","String","_assertClassBrand","n","has","arguments","length","DEFAULT_SCALE_RANGE_MIN","DEFAULT_SCALE_RANGE_MAX","START_NODE_ID","END_NODE_ID","REQUIREMENT_NODE_ID","CANVAS_PADDING_TOP","CANVAS_PADDING_RIGHT","CANVAS_PADDING_BOTTOM","CANVAS_PADDING_LEFT","RANK_SEP","NODE_SEP","EDGE_SEP","DONE_STATES","GENERAL_DONE_STATES","IS_MAC","test","_ref","_userAgentData$platfo","_userAgentData","navigator","userAgentData","platform","userAgent","ICON_CLOSE","lib","icon","ICON_LOADING","spinning","_typeof","o","iterator","constructor","prototype","_checkInRHS","Object","AgentFlowApi_searchTaskForAgentFlow","async","data","options","http","post","module","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","join","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","id","_k","push","WrappedIcon","wrapBrick","WrappedLink","WrappedDropdownActions","onActionClick","onVisibleChange","WrappedEasyopsAvatar","WrappedMiniActions","WrappedIconButton","hasOwn","hasOwnProperty","classNames","classes","arg","appendClass","parseValue","Array","isArray","apply","includes","key","value","newClass","default","___CSS_LOADER_EXPORT___","setFunctionName","description","defineProperty","configurable","applyDecs2311","c","u","f","l","p","d","metadata","m","h","create","y","v","g","b","applyDec","w","D","S","j","E","I","P","F","get","set","getOwnPropertyDescriptor","Error","name","N","O","z","A","H","K","kind","addInitializer","bind","access","init","unshift","splice","enumerable","checkInRHS","ChatHistory","activeId","actions","urlTemplate","onHistoryClick","rootRef","useRef","setList","useState","nextToken","setNextToken","loadNextToken","setLoadNextToken","useEffect","Promise","all","next_token","resolve","setTimeout","then","_ref2","prev","catch","error","console","groups","useMemo","groupMap","Map","now","moment","startOfDay","clone","startOf","yesterday","subtract","sevenDaysAgo","thirtyDaysAgo","timestamps","groupKey","startTime","TODAY","YESTERDAY","PREVIOUS_7_DAYS","PREVIOUS_30_DAYS","format","group","title","items","values","actionsVisible","setActionsVisible","nextRef","next","current","root","observer","IntersectionObserver","entries","entry","isIntersecting","observe","disconnect","React","className","ref","_extends","active","onClick","url","template","context","replace","_match","action","detail","state","theme","_classPrivateFieldGet2","_classPrivateFieldInitSpec","obj","privateMap","_checkPrivateRedeclaration","privateCollection","_classPrivateMethodInitSpec","privateSet","add","_classPrivateFieldSet2","initializeI18n","NS","locales","SIDEBAR_ICON","dropdownActions","prefix","text","LOGOUT","defineElement","property","event","createDecorators","_ElevoSidebar","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_ElevoSidebar_brand","WeakSet","_handleLogout","_I","_handleActionClick","ElevoSidebar","ReactNextElement","_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_logout","_init_extra_logout","_get_logout","emit","_init_actionClick","_init_extra_actionClick","_get_actionClick","userInstanceId","_classPrivateFieldGet","_classPrivateFieldSet","behavior","logoUrl","newChatUrl","historyActiveId","historyUrlTemplate","historyActions","render","ElevoSidebarComponent","onLogout","collapsed","setCollapsed","handleCollapse","useCallback","handleExpand","handleClickMask","handleHistoryClick","alt","src","ElevoLogo","width","height","variant","NEW_CHAT","nameOrInstanceId","showName","size","_ElevoSidebar2","_set_logout","_set_actionClick","_initClass","_applyDecs","styleTexts","styleText","attribute","type","_","assign","target","source","en","zh","i18n","getFixedT"],"sourceRoot":""}