@vectorx/agent-simulator 0.0.0-beta-20251112071234
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +76 -0
- package/bin/agent.js +55 -0
- package/lib/app.d.ts +43 -0
- package/lib/app.d.ts.map +1 -0
- package/lib/app.js +99 -0
- package/lib/app.js.map +1 -0
- package/lib/config/api.config.d.ts +2 -0
- package/lib/config/api.config.d.ts.map +1 -0
- package/lib/config/api.config.js +13 -0
- package/lib/config/api.config.js.map +1 -0
- package/lib/config/app.config.d.ts +22 -0
- package/lib/config/app.config.d.ts.map +1 -0
- package/lib/config/app.config.js +18 -0
- package/lib/config/app.config.js.map +1 -0
- package/lib/config/upload.config.d.ts +6 -0
- package/lib/config/upload.config.d.ts.map +1 -0
- package/lib/config/upload.config.js +10 -0
- package/lib/config/upload.config.js.map +1 -0
- package/lib/container/container.d.ts +6 -0
- package/lib/container/container.d.ts.map +1 -0
- package/lib/container/container.js +34 -0
- package/lib/container/container.js.map +1 -0
- package/lib/container/identifiers.d.ts +14 -0
- package/lib/container/identifiers.d.ts.map +1 -0
- package/lib/container/identifiers.js +20 -0
- package/lib/container/identifiers.js.map +1 -0
- package/lib/container/index.d.ts +4 -0
- package/lib/container/index.d.ts.map +1 -0
- package/lib/container/index.js +20 -0
- package/lib/container/index.js.map +1 -0
- package/lib/container/types.d.ts +48 -0
- package/lib/container/types.d.ts.map +1 -0
- package/lib/container/types.js +3 -0
- package/lib/container/types.js.map +1 -0
- package/lib/controllers/agent.controller.d.ts +19 -0
- package/lib/controllers/agent.controller.d.ts.map +1 -0
- package/lib/controllers/agent.controller.js +102 -0
- package/lib/controllers/agent.controller.js.map +1 -0
- package/lib/controllers/auth.controller.d.ts +23 -0
- package/lib/controllers/auth.controller.d.ts.map +1 -0
- package/lib/controllers/auth.controller.js +132 -0
- package/lib/controllers/auth.controller.js.map +1 -0
- package/lib/controllers/simulator.controller.d.ts +11 -0
- package/lib/controllers/simulator.controller.d.ts.map +1 -0
- package/lib/controllers/simulator.controller.js +44 -0
- package/lib/controllers/simulator.controller.js.map +1 -0
- package/lib/controllers/upload.controller.d.ts +8 -0
- package/lib/controllers/upload.controller.d.ts.map +1 -0
- package/lib/controllers/upload.controller.js +44 -0
- package/lib/controllers/upload.controller.js.map +1 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +18 -0
- package/lib/index.js.map +1 -0
- package/lib/middleware/cors.middleware.d.ts +7 -0
- package/lib/middleware/cors.middleware.d.ts.map +1 -0
- package/lib/middleware/cors.middleware.js +14 -0
- package/lib/middleware/cors.middleware.js.map +1 -0
- package/lib/middleware/error.middleware.d.ts +8 -0
- package/lib/middleware/error.middleware.d.ts.map +1 -0
- package/lib/middleware/error.middleware.js +33 -0
- package/lib/middleware/error.middleware.js.map +1 -0
- package/lib/middleware/proxy.middleware.d.ts +3 -0
- package/lib/middleware/proxy.middleware.d.ts.map +1 -0
- package/lib/middleware/proxy.middleware.js +21 -0
- package/lib/middleware/proxy.middleware.js.map +1 -0
- package/lib/middleware/upload.middleware.d.ts +10 -0
- package/lib/middleware/upload.middleware.d.ts.map +1 -0
- package/lib/middleware/upload.middleware.js +27 -0
- package/lib/middleware/upload.middleware.js.map +1 -0
- package/lib/routes/agent.d.ts +3 -0
- package/lib/routes/agent.d.ts.map +1 -0
- package/lib/routes/agent.js +19 -0
- package/lib/routes/agent.js.map +1 -0
- package/lib/routes/auth.d.ts +3 -0
- package/lib/routes/auth.d.ts.map +1 -0
- package/lib/routes/auth.js +20 -0
- package/lib/routes/auth.js.map +1 -0
- package/lib/routes/index.d.ts +3 -0
- package/lib/routes/index.d.ts.map +1 -0
- package/lib/routes/index.js +19 -0
- package/lib/routes/index.js.map +1 -0
- package/lib/routes/simulator.d.ts +3 -0
- package/lib/routes/simulator.d.ts.map +1 -0
- package/lib/routes/simulator.js +14 -0
- package/lib/routes/simulator.js.map +1 -0
- package/lib/routes/upload.d.ts +3 -0
- package/lib/routes/upload.d.ts.map +1 -0
- package/lib/routes/upload.js +13 -0
- package/lib/routes/upload.js.map +1 -0
- package/lib/services/agent.service.d.ts +49 -0
- package/lib/services/agent.service.d.ts.map +1 -0
- package/lib/services/agent.service.js +147 -0
- package/lib/services/agent.service.js.map +1 -0
- package/lib/services/auth.service.d.ts +55 -0
- package/lib/services/auth.service.d.ts.map +1 -0
- package/lib/services/auth.service.js +124 -0
- package/lib/services/auth.service.js.map +1 -0
- package/lib/services/simulator.service.d.ts +23 -0
- package/lib/services/simulator.service.d.ts.map +1 -0
- package/lib/services/simulator.service.js +49 -0
- package/lib/services/simulator.service.js.map +1 -0
- package/lib/services/upload.service.d.ts +32 -0
- package/lib/services/upload.service.d.ts.map +1 -0
- package/lib/services/upload.service.js +61 -0
- package/lib/services/upload.service.js.map +1 -0
- package/lib/simulator.d.ts +27 -0
- package/lib/simulator.d.ts.map +1 -0
- package/lib/simulator.js +79 -0
- package/lib/simulator.js.map +1 -0
- package/lib/utils/logger.d.ts +8 -0
- package/lib/utils/logger.d.ts.map +1 -0
- package/lib/utils/logger.js +28 -0
- package/lib/utils/logger.js.map +1 -0
- package/lib/utils/request.d.ts +11 -0
- package/lib/utils/request.d.ts.map +1 -0
- package/lib/utils/request.js +36 -0
- package/lib/utils/request.js.map +1 -0
- package/lib/utils/url-parser.d.ts +14 -0
- package/lib/utils/url-parser.d.ts.map +1 -0
- package/lib/utils/url-parser.js +25 -0
- package/lib/utils/url-parser.js.map +1 -0
- package/lib/utils.d.ts +6 -0
- package/lib/utils.d.ts.map +1 -0
- package/lib/utils.js +12 -0
- package/lib/utils.js.map +1 -0
- package/lib/webview-ui/Agent.d.ts +5 -0
- package/lib/webview-ui/Agent.d.ts.map +1 -0
- package/lib/webview-ui/Agent.js +24 -0
- package/lib/webview-ui/Agent.js.map +1 -0
- package/lib/webview-ui/App.d.ts +3 -0
- package/lib/webview-ui/App.d.ts.map +1 -0
- package/lib/webview-ui/App.js +775 -0
- package/lib/webview-ui/App.js.map +1 -0
- package/lib/webview-ui/ErrorBoundary.d.ts +19 -0
- package/lib/webview-ui/ErrorBoundary.d.ts.map +1 -0
- package/lib/webview-ui/ErrorBoundary.js +54 -0
- package/lib/webview-ui/ErrorBoundary.js.map +1 -0
- package/lib/webview-ui/components/AsyncTaskBlock.d.ts +13 -0
- package/lib/webview-ui/components/AsyncTaskBlock.d.ts.map +1 -0
- package/lib/webview-ui/components/AsyncTaskBlock.js +179 -0
- package/lib/webview-ui/components/AsyncTaskBlock.js.map +1 -0
- package/lib/webview-ui/components/AuthIndicator.d.ts +3 -0
- package/lib/webview-ui/components/AuthIndicator.d.ts.map +1 -0
- package/lib/webview-ui/components/AuthIndicator.js +17 -0
- package/lib/webview-ui/components/AuthIndicator.js.map +1 -0
- package/lib/webview-ui/components/ErrorCard.d.ts +11 -0
- package/lib/webview-ui/components/ErrorCard.d.ts.map +1 -0
- package/lib/webview-ui/components/ErrorCard.js +18 -0
- package/lib/webview-ui/components/ErrorCard.js.map +1 -0
- package/lib/webview-ui/components/KnowledgeBaseSearchBlock.d.ts +20 -0
- package/lib/webview-ui/components/KnowledgeBaseSearchBlock.d.ts.map +1 -0
- package/lib/webview-ui/components/KnowledgeBaseSearchBlock.js +45 -0
- package/lib/webview-ui/components/KnowledgeBaseSearchBlock.js.map +1 -0
- package/lib/webview-ui/components/KnowledgeBaseSearchResult.d.ts +9 -0
- package/lib/webview-ui/components/KnowledgeBaseSearchResult.d.ts.map +1 -0
- package/lib/webview-ui/components/KnowledgeBaseSearchResult.js +31 -0
- package/lib/webview-ui/components/KnowledgeBaseSearchResult.js.map +1 -0
- package/lib/webview-ui/components/MarkdownRenderer.d.ts +7 -0
- package/lib/webview-ui/components/MarkdownRenderer.d.ts.map +1 -0
- package/lib/webview-ui/components/MarkdownRenderer.js +28 -0
- package/lib/webview-ui/components/MarkdownRenderer.js.map +1 -0
- package/lib/webview-ui/components/MessageRenderer.d.ts +7 -0
- package/lib/webview-ui/components/MessageRenderer.d.ts.map +1 -0
- package/lib/webview-ui/components/MessageRenderer.js +33 -0
- package/lib/webview-ui/components/MessageRenderer.js.map +1 -0
- package/lib/webview-ui/components/MultimodalFileRenderer.d.ts +20 -0
- package/lib/webview-ui/components/MultimodalFileRenderer.d.ts.map +1 -0
- package/lib/webview-ui/components/MultimodalFileRenderer.js +216 -0
- package/lib/webview-ui/components/MultimodalFileRenderer.js.map +1 -0
- package/lib/webview-ui/components/ThinkingBlock.d.ts +8 -0
- package/lib/webview-ui/components/ThinkingBlock.d.ts.map +1 -0
- package/lib/webview-ui/components/ThinkingBlock.js +75 -0
- package/lib/webview-ui/components/ThinkingBlock.js.map +1 -0
- package/lib/webview-ui/components/ToolUseBlock.d.ts +10 -0
- package/lib/webview-ui/components/ToolUseBlock.d.ts.map +1 -0
- package/lib/webview-ui/components/ToolUseBlock.js +14 -0
- package/lib/webview-ui/components/ToolUseBlock.js.map +1 -0
- package/lib/webview-ui/components/ToolUseBlockHeader.d.ts +10 -0
- package/lib/webview-ui/components/ToolUseBlockHeader.d.ts.map +1 -0
- package/lib/webview-ui/components/ToolUseBlockHeader.js +31 -0
- package/lib/webview-ui/components/ToolUseBlockHeader.js.map +1 -0
- package/lib/webview-ui/components/UploadPreview.d.ts +6 -0
- package/lib/webview-ui/components/UploadPreview.d.ts.map +1 -0
- package/lib/webview-ui/components/UploadPreview.js +12 -0
- package/lib/webview-ui/components/UploadPreview.js.map +1 -0
- package/lib/webview-ui/components/WelcomeModule.d.ts +10 -0
- package/lib/webview-ui/components/WelcomeModule.d.ts.map +1 -0
- package/lib/webview-ui/components/WelcomeModule.js +161 -0
- package/lib/webview-ui/components/WelcomeModule.js.map +1 -0
- package/lib/webview-ui/components/index.d.ts +14 -0
- package/lib/webview-ui/components/index.d.ts.map +1 -0
- package/lib/webview-ui/components/index.js +30 -0
- package/lib/webview-ui/components/index.js.map +1 -0
- package/lib/webview-ui/config/cos-config.d.ts +41 -0
- package/lib/webview-ui/config/cos-config.d.ts.map +1 -0
- package/lib/webview-ui/config/cos-config.js +83 -0
- package/lib/webview-ui/config/cos-config.js.map +1 -0
- package/lib/webview-ui/config/http-config.d.ts +8 -0
- package/lib/webview-ui/config/http-config.d.ts.map +1 -0
- package/lib/webview-ui/config/http-config.js +36 -0
- package/lib/webview-ui/config/http-config.js.map +1 -0
- package/lib/webview-ui/constants.d.ts +18 -0
- package/lib/webview-ui/constants.d.ts.map +1 -0
- package/lib/webview-ui/constants.js +25 -0
- package/lib/webview-ui/constants.js.map +1 -0
- package/lib/webview-ui/contexts/AgentContext.d.ts +13 -0
- package/lib/webview-ui/contexts/AgentContext.d.ts.map +1 -0
- package/lib/webview-ui/contexts/AgentContext.js +19 -0
- package/lib/webview-ui/contexts/AgentContext.js.map +1 -0
- package/lib/webview-ui/contexts/AuthContext.d.ts +17 -0
- package/lib/webview-ui/contexts/AuthContext.d.ts.map +1 -0
- package/lib/webview-ui/contexts/AuthContext.js +79 -0
- package/lib/webview-ui/contexts/AuthContext.js.map +1 -0
- package/lib/webview-ui/contexts/ThemeContext.d.ts +12 -0
- package/lib/webview-ui/contexts/ThemeContext.d.ts.map +1 -0
- package/lib/webview-ui/contexts/ThemeContext.js +21 -0
- package/lib/webview-ui/contexts/ThemeContext.js.map +1 -0
- package/lib/webview-ui/hooks/useAgentStatus.d.ts +17 -0
- package/lib/webview-ui/hooks/useAgentStatus.d.ts.map +1 -0
- package/lib/webview-ui/hooks/useAgentStatus.js +117 -0
- package/lib/webview-ui/hooks/useAgentStatus.js.map +1 -0
- package/lib/webview-ui/hooks/useUploader.d.ts +19 -0
- package/lib/webview-ui/hooks/useUploader.d.ts.map +1 -0
- package/lib/webview-ui/hooks/useUploader.js +132 -0
- package/lib/webview-ui/hooks/useUploader.js.map +1 -0
- package/lib/webview-ui/hooks/useUserAvatar.d.ts +28 -0
- package/lib/webview-ui/hooks/useUserAvatar.d.ts.map +1 -0
- package/lib/webview-ui/hooks/useUserAvatar.js +74 -0
- package/lib/webview-ui/hooks/useUserAvatar.js.map +1 -0
- package/lib/webview-ui/index.d.ts +3 -0
- package/lib/webview-ui/index.d.ts.map +1 -0
- package/lib/webview-ui/index.js +17 -0
- package/lib/webview-ui/index.js.map +1 -0
- package/lib/webview-ui/services/agent-service.d.ts +124 -0
- package/lib/webview-ui/services/agent-service.d.ts.map +1 -0
- package/lib/webview-ui/services/agent-service.js +80 -0
- package/lib/webview-ui/services/agent-service.js.map +1 -0
- package/lib/webview-ui/services/index.d.ts +3 -0
- package/lib/webview-ui/services/index.d.ts.map +1 -0
- package/lib/webview-ui/services/index.js +19 -0
- package/lib/webview-ui/services/index.js.map +1 -0
- package/lib/webview-ui/services/logger-service.d.ts +46 -0
- package/lib/webview-ui/services/logger-service.d.ts.map +1 -0
- package/lib/webview-ui/services/logger-service.js +69 -0
- package/lib/webview-ui/services/logger-service.js.map +1 -0
- package/lib/webview-ui/styles/copilot.d.ts +14 -0
- package/lib/webview-ui/styles/copilot.d.ts.map +1 -0
- package/lib/webview-ui/styles/copilot.js +119 -0
- package/lib/webview-ui/styles/copilot.js.map +1 -0
- package/lib/webview-ui/styles/workarea.d.ts +11 -0
- package/lib/webview-ui/styles/workarea.d.ts.map +1 -0
- package/lib/webview-ui/styles/workarea.js +73 -0
- package/lib/webview-ui/styles/workarea.js.map +1 -0
- package/lib/webview-ui/types.d.ts +65 -0
- package/lib/webview-ui/types.d.ts.map +1 -0
- package/lib/webview-ui/types.js +3 -0
- package/lib/webview-ui/types.js.map +1 -0
- package/lib/webview-ui/utils/cos.d.ts +65 -0
- package/lib/webview-ui/utils/cos.d.ts.map +1 -0
- package/lib/webview-ui/utils/cos.js +113 -0
- package/lib/webview-ui/utils/cos.js.map +1 -0
- package/lib/webview-ui/utils/http-client.d.ts +44 -0
- package/lib/webview-ui/utils/http-client.d.ts.map +1 -0
- package/lib/webview-ui/utils/http-client.js +101 -0
- package/lib/webview-ui/utils/http-client.js.map +1 -0
- package/lib/webview-ui/utils/stream-text-handler.d.ts +4 -0
- package/lib/webview-ui/utils/stream-text-handler.d.ts.map +1 -0
- package/lib/webview-ui/utils/stream-text-handler.js +54 -0
- package/lib/webview-ui/utils/stream-text-handler.js.map +1 -0
- package/lib/webview-ui/utils/upload.d.ts +8 -0
- package/lib/webview-ui/utils/upload.d.ts.map +1 -0
- package/lib/webview-ui/utils/upload.js +22 -0
- package/lib/webview-ui/utils/upload.js.map +1 -0
- package/lib/webview-ui/widgets/BubbleComponents.d.ts +8 -0
- package/lib/webview-ui/widgets/BubbleComponents.d.ts.map +1 -0
- package/lib/webview-ui/widgets/BubbleComponents.js +62 -0
- package/lib/webview-ui/widgets/BubbleComponents.js.map +1 -0
- package/lib/webview-ui/widgets/ChatInput.d.ts +27 -0
- package/lib/webview-ui/widgets/ChatInput.d.ts.map +1 -0
- package/lib/webview-ui/widgets/ChatInput.js +203 -0
- package/lib/webview-ui/widgets/ChatInput.js.map +1 -0
- package/lib/webview-ui/widgets/LogPanel.d.ts +15 -0
- package/lib/webview-ui/widgets/LogPanel.d.ts.map +1 -0
- package/lib/webview-ui/widgets/LogPanel.js +59 -0
- package/lib/webview-ui/widgets/LogPanel.js.map +1 -0
- package/lib/webview-ui/widgets/SystemLogs.d.ts +30 -0
- package/lib/webview-ui/widgets/SystemLogs.d.ts.map +1 -0
- package/lib/webview-ui/widgets/SystemLogs.js +460 -0
- package/lib/webview-ui/widgets/SystemLogs.js.map +1 -0
- package/lib/webview-ui/widgets/ToolBar.d.ts +18 -0
- package/lib/webview-ui/widgets/ToolBar.d.ts.map +1 -0
- package/lib/webview-ui/widgets/ToolBar.js +90 -0
- package/lib/webview-ui/widgets/ToolBar.js.map +1 -0
- package/lib/webview-ui/widgets/index.d.ts +6 -0
- package/lib/webview-ui/widgets/index.d.ts.map +1 -0
- package/lib/webview-ui/widgets/index.js +22 -0
- package/lib/webview-ui/widgets/index.js.map +1 -0
- package/package.json +92 -0
- package/public/assets/index-j_rEEDWU.js +93 -0
- package/public/assets/main.js +603 -0
- package/public/assets/style.css +1 -0
- package/public/index.html +15 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
|
+
interface ThemeContextType {
|
|
3
|
+
isDark: boolean;
|
|
4
|
+
}
|
|
5
|
+
interface ThemeProviderProps {
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
isDark: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const ThemeProvider: React.FC<ThemeProviderProps>;
|
|
10
|
+
export declare const useThemeHook: () => ThemeContextType;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=ThemeContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemeContext.d.ts","sourceRoot":"","sources":["../../../src/webview-ui/contexts/ThemeContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA6B,SAAS,EAAE,MAAM,OAAO,CAAC;AAGpE,UAAU,gBAAgB;IACxB,MAAM,EAAE,OAAO,CAAC;CACjB;AAMD,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAEtD,CAAC;AAGF,eAAO,MAAM,YAAY,wBAMxB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useThemeHook = exports.ThemeProvider = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
// 创建 Context
|
|
7
|
+
const ThemeContext = (0, react_1.createContext)(undefined);
|
|
8
|
+
const ThemeProvider = ({ children, isDark }) => {
|
|
9
|
+
return (0, jsx_runtime_1.jsx)(ThemeContext.Provider, { value: { isDark }, children: children });
|
|
10
|
+
};
|
|
11
|
+
exports.ThemeProvider = ThemeProvider;
|
|
12
|
+
// 自定义 Hook 来使用 Theme Context
|
|
13
|
+
const useThemeHook = () => {
|
|
14
|
+
const context = (0, react_1.useContext)(ThemeContext);
|
|
15
|
+
if (context === undefined) {
|
|
16
|
+
throw new Error("useTheme must be used within a ThemeProvider");
|
|
17
|
+
}
|
|
18
|
+
return context;
|
|
19
|
+
};
|
|
20
|
+
exports.useThemeHook = useThemeHook;
|
|
21
|
+
//# sourceMappingURL=ThemeContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemeContext.js","sourceRoot":"","sources":["../../../src/webview-ui/contexts/ThemeContext.tsx"],"names":[],"mappings":";;;;AAAA,iCAAoE;AAOpE,aAAa;AACb,MAAM,YAAY,GAAG,IAAA,qBAAa,EAA+B,SAAS,CAAC,CAAC;AAQrE,MAAM,aAAa,GAAiC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;IAClF,OAAO,uBAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,YAAG,QAAQ,GAAyB,CAAC;AACtF,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB;AAEF,6BAA6B;AACtB,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,YAAY,CAAC,CAAC;IACzC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AANW,QAAA,YAAY,gBAMvB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type AgentSimulatorInfo } from "../services/agent-service";
|
|
2
|
+
export type DebugStatusType = "normal" | "stopped" | "error" | "connecting" | "timeout";
|
|
3
|
+
interface UseAgentStatusReturn {
|
|
4
|
+
agentSimulatorInfo: AgentSimulatorInfo | null;
|
|
5
|
+
debugStatus: DebugStatusType;
|
|
6
|
+
isConnecting: boolean;
|
|
7
|
+
error: string | null;
|
|
8
|
+
retryConnection: () => void;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Agent 状态管理 Hook
|
|
12
|
+
* 负责获取 Agent 信息和监控连接状态
|
|
13
|
+
*
|
|
14
|
+
*/
|
|
15
|
+
export declare const useAgentStatus: (pollInterval?: number) => UseAgentStatusReturn;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=useAgentStatus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAgentStatus.d.ts","sourceRoot":"","sources":["../../../src/webview-ui/hooks/useAgentStatus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAAc,MAAM,2BAA2B,CAAC;AAEhF,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,CAAC;AAExF,UAAU,oBAAoB;IAC5B,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C,WAAW,EAAE,eAAe,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,qBAAmB,KAAG,oBA6GpD,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useAgentStatus = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const agent_service_1 = require("../services/agent-service");
|
|
6
|
+
/**
|
|
7
|
+
* Agent 状态管理 Hook
|
|
8
|
+
* 负责获取 Agent 信息和监控连接状态
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
const useAgentStatus = (pollInterval = 5000) => {
|
|
12
|
+
const [agentSimulatorInfo, setAgentSimulatorInfo] = (0, react_1.useState)(null);
|
|
13
|
+
const [debugStatus, setDebugStatus] = (0, react_1.useState)("connecting");
|
|
14
|
+
const [isConnecting, setIsConnecting] = (0, react_1.useState)(true);
|
|
15
|
+
const [error, setError] = (0, react_1.useState)(null);
|
|
16
|
+
const pollTimerRef = (0, react_1.useRef)(null);
|
|
17
|
+
const timeoutRef = (0, react_1.useRef)(null);
|
|
18
|
+
/**
|
|
19
|
+
* 获取 Agent 信息
|
|
20
|
+
*/
|
|
21
|
+
const fetchAgentInfo = (0, react_1.useCallback)(async () => {
|
|
22
|
+
try {
|
|
23
|
+
const info = await agent_service_1.apiService.getAgentInfo();
|
|
24
|
+
setAgentSimulatorInfo(info);
|
|
25
|
+
setError(null);
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
setError(err instanceof Error ? err.message : "获取 Agent 信息失败");
|
|
29
|
+
}
|
|
30
|
+
}, []);
|
|
31
|
+
/**
|
|
32
|
+
* 检查 Agent 状态
|
|
33
|
+
*/
|
|
34
|
+
const fetchAgentStatus = (0, react_1.useCallback)(async () => {
|
|
35
|
+
try {
|
|
36
|
+
const data = await agent_service_1.apiService.getAgentStatus();
|
|
37
|
+
setDebugStatus(data.status === "normal" ? "normal" : "error");
|
|
38
|
+
setIsConnecting(false);
|
|
39
|
+
setError(null);
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
setDebugStatus("error");
|
|
43
|
+
setIsConnecting(false);
|
|
44
|
+
setError(err instanceof Error ? err.message : "检查 Agent 状态失败");
|
|
45
|
+
}
|
|
46
|
+
}, []);
|
|
47
|
+
/**
|
|
48
|
+
* 设置连接超时
|
|
49
|
+
*/
|
|
50
|
+
const startTimeout = (0, react_1.useCallback)(() => {
|
|
51
|
+
if (timeoutRef.current)
|
|
52
|
+
clearTimeout(timeoutRef.current);
|
|
53
|
+
timeoutRef.current = setTimeout(() => {
|
|
54
|
+
setDebugStatus("timeout");
|
|
55
|
+
setIsConnecting(false);
|
|
56
|
+
}, 10000);
|
|
57
|
+
}, []);
|
|
58
|
+
/**
|
|
59
|
+
* 清除连接超时
|
|
60
|
+
*/
|
|
61
|
+
const clearTimeoutRef = (0, react_1.useCallback)(() => {
|
|
62
|
+
if (timeoutRef.current)
|
|
63
|
+
clearTimeout(timeoutRef.current);
|
|
64
|
+
timeoutRef.current = null;
|
|
65
|
+
}, []);
|
|
66
|
+
/**
|
|
67
|
+
* 启动状态轮询
|
|
68
|
+
*/
|
|
69
|
+
const startPolling = (0, react_1.useCallback)(() => {
|
|
70
|
+
if (pollTimerRef.current)
|
|
71
|
+
clearInterval(pollTimerRef.current);
|
|
72
|
+
pollTimerRef.current = setInterval(fetchAgentStatus, pollInterval);
|
|
73
|
+
}, [fetchAgentStatus, pollInterval]);
|
|
74
|
+
/**
|
|
75
|
+
* 停止状态轮询
|
|
76
|
+
*/
|
|
77
|
+
const stopPolling = (0, react_1.useCallback)(() => {
|
|
78
|
+
if (pollTimerRef.current)
|
|
79
|
+
clearInterval(pollTimerRef.current);
|
|
80
|
+
pollTimerRef.current = null;
|
|
81
|
+
}, []);
|
|
82
|
+
/**
|
|
83
|
+
* 重试连接
|
|
84
|
+
*/
|
|
85
|
+
const retryConnection = (0, react_1.useCallback)(async () => {
|
|
86
|
+
setIsConnecting(true);
|
|
87
|
+
setDebugStatus("connecting");
|
|
88
|
+
setError(null);
|
|
89
|
+
startTimeout();
|
|
90
|
+
await Promise.all([fetchAgentInfo(), fetchAgentStatus()]);
|
|
91
|
+
clearTimeoutRef();
|
|
92
|
+
}, [fetchAgentInfo, fetchAgentStatus, startTimeout, clearTimeoutRef]);
|
|
93
|
+
/**
|
|
94
|
+
* 初始化
|
|
95
|
+
*/
|
|
96
|
+
(0, react_1.useEffect)(() => {
|
|
97
|
+
setIsConnecting(true);
|
|
98
|
+
setDebugStatus("connecting");
|
|
99
|
+
setError(null);
|
|
100
|
+
startTimeout();
|
|
101
|
+
Promise.all([fetchAgentInfo(), fetchAgentStatus()]).then(clearTimeoutRef);
|
|
102
|
+
startPolling();
|
|
103
|
+
return () => {
|
|
104
|
+
stopPolling();
|
|
105
|
+
clearTimeoutRef();
|
|
106
|
+
};
|
|
107
|
+
}, [fetchAgentInfo, fetchAgentStatus, startPolling, stopPolling, startTimeout, clearTimeoutRef]);
|
|
108
|
+
return {
|
|
109
|
+
agentSimulatorInfo,
|
|
110
|
+
debugStatus,
|
|
111
|
+
isConnecting,
|
|
112
|
+
error,
|
|
113
|
+
retryConnection,
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
exports.useAgentStatus = useAgentStatus;
|
|
117
|
+
//# sourceMappingURL=useAgentStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAgentStatus.js","sourceRoot":"","sources":["../../../src/webview-ui/hooks/useAgentStatus.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { MultimodalFile } from "../types";
|
|
2
|
+
export interface UploadCallbacks {
|
|
3
|
+
onStart?: (tempFile: MultimodalFile) => void;
|
|
4
|
+
onProgress?: (progress: number, tempFile: MultimodalFile) => void;
|
|
5
|
+
onComplete?: (file: MultimodalFile) => void;
|
|
6
|
+
onError?: (error: Error, tempFile: MultimodalFile) => void;
|
|
7
|
+
}
|
|
8
|
+
export interface UseUploaderOptions {
|
|
9
|
+
bizName?: string;
|
|
10
|
+
scene?: string;
|
|
11
|
+
getToken?: () => Promise<any>;
|
|
12
|
+
}
|
|
13
|
+
export declare function useUploader(options?: UseUploaderOptions): {
|
|
14
|
+
uploadFiles: (files: File[], callbacks?: UploadCallbacks) => Promise<MultimodalFile[]>;
|
|
15
|
+
cancelTask: (tempId: string) => void;
|
|
16
|
+
pauseTask: (tempId: string) => void;
|
|
17
|
+
resumeTask: (tempId: string) => void;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=useUploader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUploader.d.ts","sourceRoot":"","sources":["../../../src/webview-ui/hooks/useUploader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAClE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;CAC5D;AAOD,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;CAC/B;AAED,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB;yBAWpB,IAAI,EAAE,cAAc,eAAe,KAAG,OAAO,CAAC,cAAc,EAAE,CAAC;yBA8FrE,MAAM;wBAQP,MAAM;yBAQL,MAAM;EASnC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useUploader = useUploader;
|
|
4
|
+
const antd_1 = require("antd");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const upload_config_1 = require("../../config/upload.config");
|
|
7
|
+
const cos_config_1 = require("../config/cos-config");
|
|
8
|
+
const upload_1 = require("../utils/upload");
|
|
9
|
+
function getFileType(file) {
|
|
10
|
+
const mimeType = file.type.toLowerCase();
|
|
11
|
+
return cos_config_1.uploadConfig.fileTypeMap[mimeType] || "document";
|
|
12
|
+
}
|
|
13
|
+
function useUploader(options) {
|
|
14
|
+
const bizName = options?.bizName ?? upload_config_1.uploadBizConfig.bizName;
|
|
15
|
+
const scene = options?.scene ?? upload_config_1.uploadBizConfig.scene;
|
|
16
|
+
const getToken = options?.getToken ?? upload_1.getUploadToken;
|
|
17
|
+
const uploader = (0, react_1.useMemo)(() => (0, upload_1.createUploader)({ bizName, scene, getToken }), [bizName, scene, getToken]);
|
|
18
|
+
// 记录任务ID与 COS 实例,支持外部控制
|
|
19
|
+
const taskIdByTempId = (0, react_1.useRef)({});
|
|
20
|
+
const cosByTempId = (0, react_1.useRef)({});
|
|
21
|
+
async function uploadFiles(files, callbacks) {
|
|
22
|
+
const toUpload = files.map((file) => {
|
|
23
|
+
// 预校验:类型与尺寸
|
|
24
|
+
if (cos_config_1.uploadConfig.allowedTypes.length && !cos_config_1.uploadConfig.allowedTypes.includes(file.type)) {
|
|
25
|
+
const error = new Error(`不支持的文件类型: ${file.type || "unknown"}`);
|
|
26
|
+
const rejected = {
|
|
27
|
+
id: `upload_${Date.now()}_${Math.random().toString(36).slice(2, 10)}`,
|
|
28
|
+
name: file.name,
|
|
29
|
+
url: "",
|
|
30
|
+
type: getFileType(file),
|
|
31
|
+
size: file.size,
|
|
32
|
+
mimeType: file.type,
|
|
33
|
+
uploadTime: Date.now(),
|
|
34
|
+
status: "error",
|
|
35
|
+
errorMessage: error.message,
|
|
36
|
+
};
|
|
37
|
+
callbacks?.onError?.(error, rejected);
|
|
38
|
+
antd_1.message.error(`${file.name} 上传失败: ${error.message}`);
|
|
39
|
+
return Promise.resolve(rejected);
|
|
40
|
+
}
|
|
41
|
+
if (cos_config_1.uploadConfig.maxFileSize && file.size > cos_config_1.uploadConfig.maxFileSize) {
|
|
42
|
+
const error = new Error(`文件大小超过限制: ${(file.size / (1024 * 1024)).toFixed(1)}MB(最大 ${(cos_config_1.uploadConfig.maxFileSize / (1024 * 1024)).toFixed(1)}MB)`);
|
|
43
|
+
const rejected = {
|
|
44
|
+
id: `upload_${Date.now()}_${Math.random().toString(36).slice(2, 10)}`,
|
|
45
|
+
name: file.name,
|
|
46
|
+
url: "",
|
|
47
|
+
type: getFileType(file),
|
|
48
|
+
size: file.size,
|
|
49
|
+
mimeType: file.type,
|
|
50
|
+
uploadTime: Date.now(),
|
|
51
|
+
status: "error",
|
|
52
|
+
errorMessage: error.message,
|
|
53
|
+
};
|
|
54
|
+
callbacks?.onError?.(error, rejected);
|
|
55
|
+
antd_1.message.error(`${file.name} 上传失败: ${error.message}`);
|
|
56
|
+
return Promise.resolve(rejected);
|
|
57
|
+
}
|
|
58
|
+
const temp = {
|
|
59
|
+
id: `upload_${Date.now()}_${Math.random().toString(36).slice(2, 10)}`,
|
|
60
|
+
name: file.name,
|
|
61
|
+
url: "",
|
|
62
|
+
type: getFileType(file),
|
|
63
|
+
size: file.size,
|
|
64
|
+
mimeType: file.type,
|
|
65
|
+
uploadTime: Date.now(),
|
|
66
|
+
status: "uploading",
|
|
67
|
+
};
|
|
68
|
+
callbacks?.onStart?.(temp);
|
|
69
|
+
return uploader
|
|
70
|
+
.post({
|
|
71
|
+
Body: file,
|
|
72
|
+
// 参考服务端 deploy,用 fileInfo 显式传入元数据
|
|
73
|
+
fileInfo: {
|
|
74
|
+
name: file.name,
|
|
75
|
+
type: file.type || "application/octet-stream",
|
|
76
|
+
size: file.size,
|
|
77
|
+
},
|
|
78
|
+
// 浏览器环境无真实路径,这里用文件名占位,满足类型定义
|
|
79
|
+
onInstanceCreated: (cos) => {
|
|
80
|
+
cosByTempId.current[temp.id] = cos;
|
|
81
|
+
},
|
|
82
|
+
// 分片大小(1MB),过小影响吞吐,过大影响暂停/续传体验
|
|
83
|
+
SliceSize: 1024 * 1024,
|
|
84
|
+
})
|
|
85
|
+
.then((res) => {
|
|
86
|
+
const url = res?.previewUrl || res?.url || res?.Location || res?.data?.previewUrl || res?.data?.url;
|
|
87
|
+
if (!url) {
|
|
88
|
+
throw new Error("上传成功但未返回文件URL");
|
|
89
|
+
}
|
|
90
|
+
const successItem = {
|
|
91
|
+
...temp,
|
|
92
|
+
url,
|
|
93
|
+
status: "success",
|
|
94
|
+
thumbnail: temp.type === "image" ? `${url}?imageView2/2/w/200/h/200` : undefined,
|
|
95
|
+
};
|
|
96
|
+
callbacks?.onComplete?.(successItem);
|
|
97
|
+
return successItem;
|
|
98
|
+
})
|
|
99
|
+
.catch((e) => {
|
|
100
|
+
const error = e instanceof Error ? e : new Error(e?.message || "上传失败");
|
|
101
|
+
const errorItem = { ...temp, status: "error", errorMessage: error.message };
|
|
102
|
+
callbacks?.onError?.(error, errorItem);
|
|
103
|
+
antd_1.message.error(`${file.name} 上传失败: ${error.message}`);
|
|
104
|
+
return errorItem;
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
return Promise.all(toUpload);
|
|
108
|
+
}
|
|
109
|
+
const cancelTask = (tempId) => {
|
|
110
|
+
const cos = cosByTempId.current[tempId];
|
|
111
|
+
const taskId = taskIdByTempId.current[tempId];
|
|
112
|
+
if (cos && taskId) {
|
|
113
|
+
cos.cancelTask(taskId);
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
const pauseTask = (tempId) => {
|
|
117
|
+
const cos = cosByTempId.current[tempId];
|
|
118
|
+
const taskId = taskIdByTempId.current[tempId];
|
|
119
|
+
if (cos && taskId) {
|
|
120
|
+
cos.pauseTask(taskId);
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
const resumeTask = (tempId) => {
|
|
124
|
+
const cos = cosByTempId.current[tempId];
|
|
125
|
+
const taskId = taskIdByTempId.current[tempId];
|
|
126
|
+
if (cos && taskId) {
|
|
127
|
+
cos.restartTask(taskId);
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
return { uploadFiles, cancelTask, pauseTask, resumeTask };
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=useUploader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUploader.js","sourceRoot":"","sources":["../../../src/webview-ui/hooks/useUploader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* 用户头像 Hook
|
|
4
|
+
* 根据登录状态和用户信息返回对应的头像组件
|
|
5
|
+
*/
|
|
6
|
+
export declare const useUserAvatar: () => {
|
|
7
|
+
getUserAvatar: (size?: number) => React.FunctionComponentElement<import("antd").AvatarProps & React.RefAttributes<HTMLSpanElement>>;
|
|
8
|
+
getUserAvatarProps: () => {
|
|
9
|
+
src: string;
|
|
10
|
+
alt: string;
|
|
11
|
+
style: {
|
|
12
|
+
border: string;
|
|
13
|
+
boxShadow: string;
|
|
14
|
+
};
|
|
15
|
+
icon?: undefined;
|
|
16
|
+
} | {
|
|
17
|
+
icon: React.FunctionComponentElement<Omit<import("@ant-design/icons/lib/components/AntdIcon").AntdIconProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
18
|
+
style: {
|
|
19
|
+
border: string;
|
|
20
|
+
boxShadow: string;
|
|
21
|
+
};
|
|
22
|
+
src?: undefined;
|
|
23
|
+
alt?: undefined;
|
|
24
|
+
};
|
|
25
|
+
hasUserAvatar: boolean;
|
|
26
|
+
userName: string | undefined;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=useUserAvatar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUserAvatar.d.ts","sourceRoot":"","sources":["../../../src/webview-ui/hooks/useUserAvatar.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;CA6DzB,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.useUserAvatar = void 0;
|
|
7
|
+
const icons_1 = require("@ant-design/icons");
|
|
8
|
+
const antd_1 = require("antd");
|
|
9
|
+
const react_1 = __importDefault(require("react"));
|
|
10
|
+
const AuthContext_1 = require("../contexts/AuthContext");
|
|
11
|
+
const useAgentStatus_1 = require("./useAgentStatus");
|
|
12
|
+
/**
|
|
13
|
+
* 用户头像 Hook
|
|
14
|
+
* 根据登录状态和用户信息返回对应的头像组件
|
|
15
|
+
*/
|
|
16
|
+
const useUserAvatar = () => {
|
|
17
|
+
const { isLoggedIn, loginInfo } = (0, AuthContext_1.useAuth)();
|
|
18
|
+
const { agentSimulatorInfo } = (0, useAgentStatus_1.useAgentStatus)();
|
|
19
|
+
const getUserAvatar = (size = 40) => {
|
|
20
|
+
// 如果已登录且有头像URL,使用用户头像
|
|
21
|
+
if (isLoggedIn && loginInfo?.user_avatar) {
|
|
22
|
+
return react_1.default.createElement(antd_1.Avatar, {
|
|
23
|
+
size: size,
|
|
24
|
+
src: loginInfo.user_avatar,
|
|
25
|
+
alt: loginInfo.user_name || "用户",
|
|
26
|
+
style: {
|
|
27
|
+
background: "linear-gradient(135deg, #1677ff, #40a9ff)",
|
|
28
|
+
border: "2px solid rgba(255, 255, 255, 0.2)",
|
|
29
|
+
boxShadow: "0 2px 8px rgba(0, 0, 0, 0.1)",
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
// 默认头像
|
|
34
|
+
return react_1.default.createElement(antd_1.Avatar, {
|
|
35
|
+
size: size,
|
|
36
|
+
icon: react_1.default.createElement(icons_1.UserOutlined),
|
|
37
|
+
style: {
|
|
38
|
+
background: "linear-gradient(135deg, #1677ff, #40a9ff)",
|
|
39
|
+
border: "2px solid rgba(255, 255, 255, 0.2)",
|
|
40
|
+
boxShadow: "0 2px 8px rgba(0, 0, 0, 0.1)",
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
const getUserAvatarProps = () => {
|
|
45
|
+
// 优先使用用户头像,如果没有则使用智能体头像
|
|
46
|
+
const avatarUrl = loginInfo?.user_avatar || agentSimulatorInfo?.agentInfo?.agent_icon;
|
|
47
|
+
// 如果有头像URL就显示,不管是否登录
|
|
48
|
+
if (avatarUrl) {
|
|
49
|
+
return {
|
|
50
|
+
src: avatarUrl,
|
|
51
|
+
alt: loginInfo?.user_name || agentSimulatorInfo?.agentInfo?.agent_name || "用户",
|
|
52
|
+
style: {
|
|
53
|
+
border: "2px solid rgba(255, 255, 255, 0.2)",
|
|
54
|
+
boxShadow: "0 2px 8px rgba(0, 0, 0, 0.1)",
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
icon: react_1.default.createElement(icons_1.UserOutlined),
|
|
60
|
+
style: {
|
|
61
|
+
border: "2px solid rgba(255, 255, 255, 0.2)",
|
|
62
|
+
boxShadow: "0 2px 8px rgba(0, 0, 0, 0.1)",
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
return {
|
|
67
|
+
getUserAvatar,
|
|
68
|
+
getUserAvatarProps,
|
|
69
|
+
hasUserAvatar: !!(loginInfo?.user_avatar || agentSimulatorInfo?.agentInfo?.agent_icon),
|
|
70
|
+
userName: loginInfo?.user_name || agentSimulatorInfo?.agentInfo?.agent_name,
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
exports.useUserAvatar = useUserAvatar;
|
|
74
|
+
//# sourceMappingURL=useUserAvatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUserAvatar.js","sourceRoot":"","sources":["../../../src/webview-ui/hooks/useUserAvatar.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAiD;AACjD,+BAA8B;AAC9B,kDAA0B;AAC1B,yDAAkD;AAClD,qDAAkD;AAElD;;;GAGG;AACI,MAAM,aAAa,GAAG,GAAG,EAAE;IAChC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAA,qBAAO,GAAE,CAAC;IAC5C,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAA,+BAAc,GAAE,CAAC;IAEhD,MAAM,aAAa,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE;QAClC,sBAAsB;QACtB,IAAI,UAAU,IAAI,SAAS,EAAE,WAAW,EAAE,CAAC;YACzC,OAAO,eAAK,CAAC,aAAa,CAAC,aAAM,EAAE;gBACjC,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,SAAS,CAAC,WAAW;gBAC1B,GAAG,EAAE,SAAS,CAAC,SAAS,IAAI,IAAI;gBAChC,KAAK,EAAE;oBACL,UAAU,EAAE,2CAA2C;oBACvD,MAAM,EAAE,oCAAoC;oBAC5C,SAAS,EAAE,8BAA8B;iBAC1C;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO;QACP,OAAO,eAAK,CAAC,aAAa,CAAC,aAAM,EAAE;YACjC,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,eAAK,CAAC,aAAa,CAAC,oBAAY,CAAC;YACvC,KAAK,EAAE;gBACL,UAAU,EAAE,2CAA2C;gBACvD,MAAM,EAAE,oCAAoC;gBAC5C,SAAS,EAAE,8BAA8B;aAC1C;SACF,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,wBAAwB;QACxB,MAAM,SAAS,GAAG,SAAS,EAAE,WAAW,IAAI,kBAAkB,EAAE,SAAS,EAAE,UAAU,CAAC;QACtF,qBAAqB;QACrB,IAAI,SAAS,EAAE,CAAC;YACd,OAAO;gBACL,GAAG,EAAE,SAAS;gBACd,GAAG,EAAE,SAAS,EAAE,SAAS,IAAI,kBAAkB,EAAE,SAAS,EAAE,UAAU,IAAI,IAAI;gBAC9E,KAAK,EAAE;oBACL,MAAM,EAAE,oCAAoC;oBAC5C,SAAS,EAAE,8BAA8B;iBAC1C;aACF,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,eAAK,CAAC,aAAa,CAAC,oBAAY,CAAC;YACvC,KAAK,EAAE;gBACL,MAAM,EAAE,oCAAoC;gBAC5C,SAAS,EAAE,8BAA8B;aAC1C;SACF,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO;QACL,aAAa;QACb,kBAAkB;QAClB,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,IAAI,kBAAkB,EAAE,SAAS,EAAE,UAAU,CAAC;QACtF,QAAQ,EAAE,SAAS,EAAE,SAAS,IAAI,kBAAkB,EAAE,SAAS,EAAE,UAAU;KAC5E,CAAC;AACJ,CAAC,CAAC;AA7DW,QAAA,aAAa,iBA6DxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/webview-ui/index.tsx"],"names":[],"mappings":"AAGA,OAAO,cAAc,CAAC;AAOtB,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.App = void 0;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const client_1 = __importDefault(require("react-dom/client"));
|
|
9
|
+
const App_1 = __importDefault(require("./App"));
|
|
10
|
+
require("./styles.css"); // 导入样式
|
|
11
|
+
const rootElement = document.getElementById("root");
|
|
12
|
+
if (!rootElement)
|
|
13
|
+
throw new Error("Root element not found");
|
|
14
|
+
client_1.default.createRoot(rootElement).render((0, jsx_runtime_1.jsx)(App_1.default, {}));
|
|
15
|
+
var App_2 = require("./App");
|
|
16
|
+
Object.defineProperty(exports, "App", { enumerable: true, get: function () { return __importDefault(App_2).default; } });
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/webview-ui/index.tsx"],"names":[],"mappings":";;;;;;;AACA,8DAAwC;AACxC,gDAAwB;AACxB,wBAAsB,CAAC,OAAO;AAE9B,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AACpD,IAAI,CAAC,WAAW;IAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAE5D,gBAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,uBAAC,aAAG,KAAG,CAAC,CAAC;AAEjD,6BAAuC;AAA9B,2GAAA,OAAO,OAAO"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API 服务接口
|
|
3
|
+
*/
|
|
4
|
+
export interface AgentInfo {
|
|
5
|
+
agent_icon: string;
|
|
6
|
+
agent_id: string;
|
|
7
|
+
agent_name: string;
|
|
8
|
+
}
|
|
9
|
+
export interface AgentSimulatorInfo {
|
|
10
|
+
agentInfo: AgentInfo;
|
|
11
|
+
/**
|
|
12
|
+
* 模拟器地址
|
|
13
|
+
*/
|
|
14
|
+
agentServerUrl: string;
|
|
15
|
+
}
|
|
16
|
+
export interface AgentStatus {
|
|
17
|
+
status: "normal" | "error";
|
|
18
|
+
health?: any;
|
|
19
|
+
message?: string;
|
|
20
|
+
timestamp: number;
|
|
21
|
+
agentServerUrl: string;
|
|
22
|
+
parsedUrl: {
|
|
23
|
+
hostname: string;
|
|
24
|
+
port: string;
|
|
25
|
+
baseUrl: string;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export interface LoginInfo {
|
|
29
|
+
secret_id: string;
|
|
30
|
+
cli_token: string;
|
|
31
|
+
create_at: number;
|
|
32
|
+
expire_in_sec: number;
|
|
33
|
+
user_avatar?: string;
|
|
34
|
+
user_name?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface AuthStatus {
|
|
37
|
+
isLoggedIn: boolean;
|
|
38
|
+
loginInfo: LoginInfo | null;
|
|
39
|
+
expireTime?: string;
|
|
40
|
+
isExpired: boolean;
|
|
41
|
+
}
|
|
42
|
+
export interface CheckStatusRequest {
|
|
43
|
+
secret_id: string;
|
|
44
|
+
nonce: string;
|
|
45
|
+
cli_token: string;
|
|
46
|
+
}
|
|
47
|
+
export interface CheckStatusResponse {
|
|
48
|
+
code: number;
|
|
49
|
+
msg: string;
|
|
50
|
+
data: LoginInfo;
|
|
51
|
+
}
|
|
52
|
+
declare class ApiService {
|
|
53
|
+
/**
|
|
54
|
+
* 获取 Agent 信息
|
|
55
|
+
*/
|
|
56
|
+
getAgentInfo(): Promise<AgentSimulatorInfo>;
|
|
57
|
+
/**
|
|
58
|
+
* 获取 Agent 状态
|
|
59
|
+
*/
|
|
60
|
+
getAgentStatus(): Promise<AgentStatus>;
|
|
61
|
+
/**
|
|
62
|
+
* 获取认证状态
|
|
63
|
+
*/
|
|
64
|
+
getAuthStatus(): Promise<{
|
|
65
|
+
code: number;
|
|
66
|
+
message: string;
|
|
67
|
+
data: AuthStatus;
|
|
68
|
+
}>;
|
|
69
|
+
/**
|
|
70
|
+
* 获取登录信息
|
|
71
|
+
*/
|
|
72
|
+
getLoginInfo(): Promise<{
|
|
73
|
+
code: number;
|
|
74
|
+
message: string;
|
|
75
|
+
data: LoginInfo | null;
|
|
76
|
+
}>;
|
|
77
|
+
/**
|
|
78
|
+
* 检查是否已登录
|
|
79
|
+
*/
|
|
80
|
+
hasLogin(): Promise<{
|
|
81
|
+
code: number;
|
|
82
|
+
message: string;
|
|
83
|
+
data: {
|
|
84
|
+
isLoggedIn: boolean;
|
|
85
|
+
};
|
|
86
|
+
}>;
|
|
87
|
+
/**
|
|
88
|
+
* 退出登录
|
|
89
|
+
*/
|
|
90
|
+
logout(): Promise<{
|
|
91
|
+
code: number;
|
|
92
|
+
message: string;
|
|
93
|
+
data: null;
|
|
94
|
+
}>;
|
|
95
|
+
/**
|
|
96
|
+
* 检查登录状态(调用下游服务)
|
|
97
|
+
*/
|
|
98
|
+
checkLoginStatus(params: CheckStatusRequest): Promise<{
|
|
99
|
+
code: number;
|
|
100
|
+
message: string;
|
|
101
|
+
data: CheckStatusResponse;
|
|
102
|
+
}>;
|
|
103
|
+
/**
|
|
104
|
+
* 上传文件到 Agent(对齐 OpenAI 文件上传标准)
|
|
105
|
+
* 使用 multipart/form-data 格式,元数据和文件都放在 body 里
|
|
106
|
+
*/
|
|
107
|
+
uploadOpenAiFile(file: File, purpose?: string): Promise<{
|
|
108
|
+
code: number;
|
|
109
|
+
message: string;
|
|
110
|
+
data: {
|
|
111
|
+
id: string;
|
|
112
|
+
object: string;
|
|
113
|
+
bytes: number;
|
|
114
|
+
created_at: number;
|
|
115
|
+
filename: string;
|
|
116
|
+
purpose: string;
|
|
117
|
+
status: string;
|
|
118
|
+
status_details?: string;
|
|
119
|
+
};
|
|
120
|
+
}>;
|
|
121
|
+
}
|
|
122
|
+
export declare const apiService: ApiService;
|
|
123
|
+
export {};
|
|
124
|
+
//# sourceMappingURL=agent-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-service.d.ts","sourceRoot":"","sources":["../../../src/webview-ui/services/agent-service.ts"],"names":[],"mappings":"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"}
|