react-docs-ui 0.5.5 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/react-docs-ui.css +1 -1
- package/dist/react-docs-ui.es.js +6894 -3300
- package/dist/types/components/ComponentProvider.d.ts.map +1 -1
- package/dist/types/components/FloatingActionBall.d.ts.map +1 -1
- package/dist/types/components/HeaderNav.d.ts +1 -2
- package/dist/types/components/HeaderNav.d.ts.map +1 -1
- package/dist/types/components/MdxContent.d.ts.map +1 -1
- package/dist/types/components/ai/AIChatDialog.d.ts +6 -0
- package/dist/types/components/ai/AIChatDialog.d.ts.map +1 -0
- package/dist/types/components/ai/AIChatInput.d.ts +13 -0
- package/dist/types/components/ai/AIChatInput.d.ts.map +1 -0
- package/dist/types/components/ai/AIChatMessage.d.ts +10 -0
- package/dist/types/components/ai/AIChatMessage.d.ts.map +1 -0
- package/dist/types/components/ai/AIProvider.d.ts +33 -0
- package/dist/types/components/ai/AIProvider.d.ts.map +1 -0
- package/dist/types/components/ai/AISelectionTrigger.d.ts +6 -0
- package/dist/types/components/ai/AISelectionTrigger.d.ts.map +1 -0
- package/dist/types/components/ai/AISettingsPanel.d.ts +5 -0
- package/dist/types/components/ai/AISettingsPanel.d.ts.map +1 -0
- package/dist/types/components/ai/index.d.ts +10 -0
- package/dist/types/components/ai/index.d.ts.map +1 -0
- package/dist/types/components/ui/toast.d.ts +16 -0
- package/dist/types/components/ui/toast.d.ts.map +1 -0
- package/dist/types/components/ui/toaster.d.ts +2 -0
- package/dist/types/components/ui/toaster.d.ts.map +1 -0
- package/dist/types/components/ui/use-toast.d.ts +44 -0
- package/dist/types/components/ui/use-toast.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/ai/chat.d.ts +38 -0
- package/dist/types/lib/ai/chat.d.ts.map +1 -0
- package/dist/types/lib/ai/config.d.ts +59 -0
- package/dist/types/lib/ai/config.d.ts.map +1 -0
- package/dist/types/lib/ai/crypto.d.ts +30 -0
- package/dist/types/lib/ai/crypto.d.ts.map +1 -0
- package/dist/types/lib/ai/index.d.ts +9 -0
- package/dist/types/lib/ai/index.d.ts.map +1 -0
- package/dist/types/lib/ai/providers/base.d.ts +53 -0
- package/dist/types/lib/ai/providers/base.d.ts.map +1 -0
- package/dist/types/lib/ai/providers/claude.d.ts +38 -0
- package/dist/types/lib/ai/providers/claude.d.ts.map +1 -0
- package/dist/types/lib/ai/providers/gemini.d.ts +54 -0
- package/dist/types/lib/ai/providers/gemini.d.ts.map +1 -0
- package/dist/types/lib/ai/providers/index.d.ts +28 -0
- package/dist/types/lib/ai/providers/index.d.ts.map +1 -0
- package/dist/types/lib/ai/providers/openai.d.ts +37 -0
- package/dist/types/lib/ai/providers/openai.d.ts.map +1 -0
- package/dist/types/lib/ai/types.d.ts +162 -0
- package/dist/types/lib/ai/types.d.ts.map +1 -0
- package/dist/types/lib/config.d.ts +3 -0
- package/dist/types/lib/config.d.ts.map +1 -1
- package/dist/types/lib/rehype-toc.d.ts.map +1 -1
- package/dist/types/lib/shiki-highlighter.d.ts +10 -0
- package/dist/types/lib/shiki-highlighter.d.ts.map +1 -0
- package/package.json +4 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentProvider.d.ts","sourceRoot":"","sources":["../../../src/components/ComponentProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAQjE,UAAU,sBAAsB;IAC9B,UAAU,EAAE,iBAAiB,CAAA;IAC7B,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,sBAAsB,2CAMjF;AAED,wBAAgB,aAAa,IAAI,iBAAiB,
|
|
1
|
+
{"version":3,"file":"ComponentProvider.d.ts","sourceRoot":"","sources":["../../../src/components/ComponentProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAQjE,UAAU,sBAAsB;IAC9B,UAAU,EAAE,iBAAiB,CAAA;IAC7B,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,sBAAsB,2CAMjF;AAED,wBAAgB,aAAa,IAAI,iBAAiB,CAEjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FloatingActionBall.d.ts","sourceRoot":"","sources":["../../../src/components/FloatingActionBall.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,UAAU,uBAAuB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IACjE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,QAAa,EACb,GAAQ,EACR,WAAkB,EAClB,aAAa,EACd,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"FloatingActionBall.d.ts","sourceRoot":"","sources":["../../../src/components/FloatingActionBall.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,UAAU,uBAAuB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IACjE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,QAAa,EACb,GAAQ,EACR,WAAkB,EAClB,aAAa,EACd,EAAE,uBAAuB,2CAsLzB"}
|
|
@@ -35,8 +35,7 @@ interface HeaderNavProps {
|
|
|
35
35
|
themeConfig?: {
|
|
36
36
|
allowToggle?: boolean;
|
|
37
37
|
};
|
|
38
|
-
onMenuClick?: () => void;
|
|
39
38
|
}
|
|
40
|
-
export declare function HeaderNav({ lang, site, navbar, themeConfig
|
|
39
|
+
export declare function HeaderNav({ lang, site, navbar, themeConfig }: HeaderNavProps): import("react/jsx-runtime").JSX.Element;
|
|
41
40
|
export {};
|
|
42
41
|
//# sourceMappingURL=HeaderNav.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderNav.d.ts","sourceRoot":"","sources":["../../../src/components/HeaderNav.tsx"],"names":[],"mappings":"AAmBA,UAAU,UAAU;IAClB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,EAAE,MAAM,GAAG;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAC/C,CAAA;IACD,MAAM,EAAE;QACN,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,SAAS,CAAC,EAAE,OAAO,CAAA;QACnB,oBAAoB,CAAC,EAAE,OAAO,CAAA;QAC9B,KAAK,EAAE;YACL,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;YACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;YAClB,OAAO,CAAC,EAAE,OAAO,CAAA;SAClB,EAAE,CAAA;QACH,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;YAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;YACd,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,CAAC,EAAE,MAAM,CAAA;YACb,OAAO,CAAC,EAAE,OAAO,CAAA;SAClB,EAAE,CAAA;KACJ,CAAA;IACD,KAAK,CAAC,EAAE;QACN,WAAW,CAAC,EAAE,OAAO,CAAA;KACtB,CAAA;CACF;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IACxB,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC5B,WAAW,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"HeaderNav.d.ts","sourceRoot":"","sources":["../../../src/components/HeaderNav.tsx"],"names":[],"mappings":"AAmBA,UAAU,UAAU;IAClB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,EAAE,MAAM,GAAG;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAC/C,CAAA;IACD,MAAM,EAAE;QACN,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,SAAS,CAAC,EAAE,OAAO,CAAA;QACnB,oBAAoB,CAAC,EAAE,OAAO,CAAA;QAC9B,KAAK,EAAE;YACL,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;YACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;YAClB,OAAO,CAAC,EAAE,OAAO,CAAA;SAClB,EAAE,CAAA;QACH,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;YAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;YACd,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,CAAC,EAAE,MAAM,CAAA;YACb,OAAO,CAAC,EAAE,OAAO,CAAA;SAClB,EAAE,CAAA;KACJ,CAAA;IACD,KAAK,CAAC,EAAE;QACN,WAAW,CAAC,EAAE,OAAO,CAAA;KACtB,CAAA;CACF;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IACxB,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC5B,WAAW,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CACxC;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,cAAc,2CAkM5E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MdxContent.d.ts","sourceRoot":"","sources":["../../../src/components/MdxContent.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MdxContent.d.ts","sourceRoot":"","sources":["../../../src/components/MdxContent.tsx"],"names":[],"mappings":"AAeA,OAAO,0BAA0B,CAAA;AACjC,OAAO,gCAAgC,CAAA;AAGvC,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,CAAA;CACf;AA0VD,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,2CA4IrD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIChatDialog.d.ts","sourceRoot":"","sources":["../../../../src/components/ai/AIChatDialog.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,wBAAgB,YAAY,4CAqT3B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI聊天输入组件
|
|
3
|
+
*/
|
|
4
|
+
interface AIChatInputProps {
|
|
5
|
+
onSend: (message: string) => void;
|
|
6
|
+
onStop?: () => void;
|
|
7
|
+
isLoading?: boolean;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
placeholder?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function AIChatInput({ onSend, onStop, isLoading, disabled, placeholder, }: AIChatInputProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=AIChatInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIChatInput.d.ts","sourceRoot":"","sources":["../../../../src/components/ai/AIChatInput.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAMH,UAAU,gBAAgB;IACxB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,MAAM,EACN,SAAiB,EACjB,QAAgB,EAChB,WAAuB,GACxB,EAAE,gBAAgB,2CA4FlB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ChatMessage as ChatMessageType } from '../../lib/ai/types';
|
|
2
|
+
interface AIChatMessageProps {
|
|
3
|
+
message: ChatMessageType;
|
|
4
|
+
onRegenerate?: () => void;
|
|
5
|
+
onEdit?: (newContent: string) => void;
|
|
6
|
+
onDelete?: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function AIChatMessage({ message, onRegenerate, onEdit, onDelete }: AIChatMessageProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=AIChatMessage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIChatMessage.d.ts","sourceRoot":"","sources":["../../../../src/components/ai/AIChatMessage.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAExE,OAAO,qBAAqB,CAAA;AAE5B,UAAU,kBAAkB;IAC1B,OAAO,EAAE,eAAe,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB;AAED,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CAkS5F"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { AIConfig, ChatMessage, ChatContext, ChatSession } from '../../lib/ai/types';
|
|
3
|
+
interface AIContextValue {
|
|
4
|
+
config: AIConfig | null;
|
|
5
|
+
isConfigured: boolean;
|
|
6
|
+
isLoading: boolean;
|
|
7
|
+
error: string | null;
|
|
8
|
+
currentSession: ChatSession | null;
|
|
9
|
+
messages: ChatMessage[];
|
|
10
|
+
selectedText: string;
|
|
11
|
+
setSelectedText: (text: string) => void;
|
|
12
|
+
isDialogOpen: boolean;
|
|
13
|
+
openDialog: (context?: ChatContext) => void;
|
|
14
|
+
closeDialog: () => void;
|
|
15
|
+
isSettingsOpen: boolean;
|
|
16
|
+
openSettings: () => void;
|
|
17
|
+
closeSettings: () => void;
|
|
18
|
+
sendMessage: (content: string) => Promise<void>;
|
|
19
|
+
regenerateLast: () => Promise<void>;
|
|
20
|
+
clearHistory: () => void;
|
|
21
|
+
updateConfig: (config: Partial<AIConfig>) => Promise<void>;
|
|
22
|
+
switchProvider: (provider: AIConfig['provider']) => Promise<void>;
|
|
23
|
+
stopGeneration: () => void;
|
|
24
|
+
editMessage: (messageId: string, newContent: string) => void;
|
|
25
|
+
deleteMessage: (messageId: string) => void;
|
|
26
|
+
}
|
|
27
|
+
interface AIProviderProps {
|
|
28
|
+
children: React.ReactNode;
|
|
29
|
+
}
|
|
30
|
+
export declare function AIProvider({ children }: AIProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
export declare function useAI(): AIContextValue;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=AIProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/ai/AIProvider.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAA8E,MAAM,OAAO,CAAA;AAClG,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAe,MAAM,oBAAoB,CAAA;AAetG,UAAU,cAAc;IACtB,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAA;IACvB,YAAY,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,cAAc,EAAE,WAAW,GAAG,IAAI,CAAA;IAClC,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,YAAY,EAAE,OAAO,CAAA;IACrB,UAAU,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,KAAK,IAAI,CAAA;IAC3C,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,cAAc,EAAE,OAAO,CAAA;IACvB,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/C,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1D,cAAc,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjE,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5D,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;CAC3C;AAID,UAAU,eAAe;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAoBD,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,eAAe,2CAoUvD;AAED,wBAAgB,KAAK,IAAI,cAAc,CAMtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AISelectionTrigger.d.ts","sourceRoot":"","sources":["../../../../src/components/ai/AISelectionTrigger.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AA0BH,wBAAgB,kBAAkB,4CAwIjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AISettingsPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/ai/AISettingsPanel.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAiCH,wBAAgB,eAAe,4CAqrB9B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI组件模块导出
|
|
3
|
+
*/
|
|
4
|
+
export { AIProvider, useAI } from './AIProvider';
|
|
5
|
+
export { AISelectionTrigger } from './AISelectionTrigger';
|
|
6
|
+
export { AIChatDialog } from './AIChatDialog';
|
|
7
|
+
export { AIChatMessage } from './AIChatMessage';
|
|
8
|
+
export { AIChatInput } from './AIChatInput';
|
|
9
|
+
export { AISettingsPanel } from './AISettingsPanel';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ai/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import * as ToastPrimitives from "@radix-ui/react-toast";
|
|
4
|
+
declare const ToastProvider: React.FC<ToastPrimitives.ToastProviderProps>;
|
|
5
|
+
declare const ToastViewport: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastViewportProps & React.RefAttributes<HTMLOListElement>, "ref"> & React.RefAttributes<HTMLOListElement>>;
|
|
6
|
+
declare const Toast: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastProps & React.RefAttributes<HTMLLIElement>, "ref"> & VariantProps<(props?: {
|
|
7
|
+
variant?: "default" | "destructive" | "success";
|
|
8
|
+
} & import('class-variance-authority/types').ClassProp) => string> & React.RefAttributes<HTMLLIElement>>;
|
|
9
|
+
declare const ToastAction: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastActionProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
10
|
+
declare const ToastClose: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastCloseProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
11
|
+
declare const ToastTitle: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastTitleProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
12
|
+
declare const ToastDescription: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastDescriptionProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
13
|
+
type ToastProps = React.ComponentPropsWithoutRef<typeof Toast>;
|
|
14
|
+
type ToastActionElement = React.ReactElement<typeof ToastAction>;
|
|
15
|
+
export { type ToastProps, type ToastActionElement, ToastProvider, ToastViewport, Toast, ToastTitle, ToastDescription, ToastClose, ToastAction, };
|
|
16
|
+
//# sourceMappingURL=toast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/toast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,eAAe,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAKjE,QAAA,MAAM,aAAa,8CAA2B,CAAA;AAE9C,QAAA,MAAM,aAAa,kKAYjB,CAAA;AAqBF,QAAA,MAAM,KAAK;;wGAYT,CAAA;AAGF,QAAA,MAAM,WAAW,kKAYf,CAAA;AAGF,QAAA,MAAM,UAAU,iKAed,CAAA;AAGF,QAAA,MAAM,UAAU,2JASd,CAAA;AAGF,QAAA,MAAM,gBAAgB,iKASpB,CAAA;AAGF,KAAK,UAAU,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,KAAK,CAAC,CAAA;AAE9D,KAAK,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,WAAW,CAAC,CAAA;AAEhE,OAAO,EACL,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,aAAa,EACb,aAAa,EACb,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,WAAW,GACZ,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toaster.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/toaster.tsx"],"names":[],"mappings":"AAUA,wBAAgB,OAAO,4CAsBtB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ToastActionElement, ToastProps } from './toast';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
type ToasterToast = ToastProps & {
|
|
4
|
+
id: string;
|
|
5
|
+
title?: React.ReactNode;
|
|
6
|
+
description?: React.ReactNode;
|
|
7
|
+
action?: ToastActionElement;
|
|
8
|
+
};
|
|
9
|
+
type ActionType = {
|
|
10
|
+
ADD_TOAST: 'ADD_TOAST';
|
|
11
|
+
UPDATE_TOAST: 'UPDATE_TOAST';
|
|
12
|
+
DISMISS_TOAST: 'DISMISS_TOAST';
|
|
13
|
+
REMOVE_TOAST: 'REMOVE_TOAST';
|
|
14
|
+
};
|
|
15
|
+
type Action = {
|
|
16
|
+
type: ActionType['ADD_TOAST'];
|
|
17
|
+
toast: ToasterToast;
|
|
18
|
+
} | {
|
|
19
|
+
type: ActionType['UPDATE_TOAST'];
|
|
20
|
+
toast: Partial<ToasterToast>;
|
|
21
|
+
} | {
|
|
22
|
+
type: ActionType['DISMISS_TOAST'];
|
|
23
|
+
toastId?: ToasterToast["id"];
|
|
24
|
+
} | {
|
|
25
|
+
type: ActionType['REMOVE_TOAST'];
|
|
26
|
+
toastId?: ToasterToast["id"];
|
|
27
|
+
};
|
|
28
|
+
interface State {
|
|
29
|
+
toasts: ToasterToast[];
|
|
30
|
+
}
|
|
31
|
+
export declare const reducer: (state: State, action: Action) => State;
|
|
32
|
+
type Toast = Omit<ToasterToast, "id">;
|
|
33
|
+
declare function toast({ ...props }: Toast): {
|
|
34
|
+
id: string;
|
|
35
|
+
dismiss: () => void;
|
|
36
|
+
update: (props: ToasterToast) => void;
|
|
37
|
+
};
|
|
38
|
+
declare function useToast(): {
|
|
39
|
+
toast: typeof toast;
|
|
40
|
+
dismiss: (toastId?: string) => void;
|
|
41
|
+
toasts: ToasterToast[];
|
|
42
|
+
};
|
|
43
|
+
export { useToast, toast };
|
|
44
|
+
//# sourceMappingURL=use-toast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-toast.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/use-toast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAK3E,KAAK,YAAY,GAAG,UAAU,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,MAAM,CAAC,EAAE,kBAAkB,CAAA;CAC5B,CAAA;AAED,KAAK,UAAU,GAAG;IAChB,SAAS,EAAE,WAAW,CAAA;IACtB,YAAY,EAAE,cAAc,CAAA;IAC5B,aAAa,EAAE,eAAe,CAAA;IAC9B,YAAY,EAAE,cAAc,CAAA;CAC7B,CAAA;AASD,KAAK,MAAM,GACP;IACE,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,CAAA;IAC7B,KAAK,EAAE,YAAY,CAAA;CACpB,GACD;IACE,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,CAAA;IAChC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;CAC7B,GACD;IACE,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,CAAA;IACjC,OAAO,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;CAC7B,GACD;IACE,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,CAAA;IAChC,OAAO,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;CAC7B,CAAA;AAEL,UAAU,KAAK;IACb,MAAM,EAAE,YAAY,EAAE,CAAA;CACvB;AAoBD,eAAO,MAAM,OAAO,GAAI,OAAO,KAAK,EAAE,QAAQ,MAAM,KAAG,KAmDtD,CAAA;AAaD,KAAK,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;AAErC,iBAAS,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK;;;oBAGT,YAAY;EAwBpC;AAED,iBAAS,QAAQ;;wBAgBO,MAAM;YApIpB,YAAY,EAAE;EAsIvB;AAED,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -31,4 +31,7 @@ export type { NavigationResult } from './lib/navigation';
|
|
|
31
31
|
export { DocsApp } from './app/DocsApp';
|
|
32
32
|
export { rehypeToc } from './lib/rehype-toc';
|
|
33
33
|
export type { TocItem } from './lib/rehype-toc';
|
|
34
|
+
export { AIProvider, useAI, AISelectionTrigger, AIChatDialog, AIChatMessage, AIChatInput, AISettingsPanel, } from './components/ai';
|
|
35
|
+
export { getDefaultModelConfig, getDefaultAIConfig, saveAIConfig, getAIConfig, isAIConfigured, getCurrentProviderConfig, updateProviderConfig, deleteProvider, clearAIConfig, validateModelConfig, createAIProvider, getProviderDisplayName, getProviderDefaultModels, getProviderHelpInfo, sendChatMessage, testAIConnection, generateMessageId, createUserMessage, createAssistantMessage, } from './lib/ai';
|
|
36
|
+
export type { AIModelConfig, AIFeaturesConfig, AIUIConfig, AIConfig, ChatMessageRole, ChatMessage, ChatContext, ChatSession, ChatOptions, AIProviderConfig, StreamEvent, TestConnectionResult, AIState, } from './lib/ai';
|
|
34
37
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAA;AAapB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAG5D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAGhE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,aAAa,GACd,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,+BAA+B,CAAA;AAGtC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAGpD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAGjF,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC1G,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAGjF,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAGxD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAGvC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,YAAY,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { AIConfig, ChatMessage, ChatContext, StreamEvent, TestConnectionResult, AIModelConfig } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* 构建包含上下文的消息
|
|
4
|
+
*/
|
|
5
|
+
export declare function buildContextMessage(userMessage: string, context?: ChatContext): string;
|
|
6
|
+
/**
|
|
7
|
+
* 构建系统提示词
|
|
8
|
+
*/
|
|
9
|
+
export declare function buildSystemPrompt(basePrompt: string, context?: ChatContext): string;
|
|
10
|
+
/**
|
|
11
|
+
* 发送聊天消息(带重试机制)
|
|
12
|
+
*/
|
|
13
|
+
export declare function sendChatMessage(messages: ChatMessage[], onEvent: (event: StreamEvent) => void, config?: AIConfig, context?: ChatContext, signal?: AbortSignal, options?: {
|
|
14
|
+
timeout?: number;
|
|
15
|
+
retryCount?: number;
|
|
16
|
+
retryDelay?: number;
|
|
17
|
+
}): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* 测试连接
|
|
20
|
+
*/
|
|
21
|
+
export declare function testAIConnection(providerType: string, modelConfig: AIModelConfig, systemPrompt?: string): Promise<TestConnectionResult>;
|
|
22
|
+
/**
|
|
23
|
+
* 生成消息ID
|
|
24
|
+
*/
|
|
25
|
+
export declare function generateMessageId(): string;
|
|
26
|
+
/**
|
|
27
|
+
* 创建用户消息
|
|
28
|
+
*/
|
|
29
|
+
export declare function createUserMessage(content: string): ChatMessage;
|
|
30
|
+
/**
|
|
31
|
+
* 创建助手消息
|
|
32
|
+
*/
|
|
33
|
+
export declare function createAssistantMessage(content?: string): ChatMessage;
|
|
34
|
+
/**
|
|
35
|
+
* 更新助手消息内容
|
|
36
|
+
*/
|
|
37
|
+
export declare function updateAssistantMessage(message: ChatMessage, content: string, isStreaming?: boolean, error?: string): ChatMessage;
|
|
38
|
+
//# sourceMappingURL=chat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../../src/lib/ai/chat.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAoB,aAAa,EAAE,MAAM,SAAS,CAAA;AA8BrI;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,WAAW,GACpB,MAAM,CAqBR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,WAAW,GACpB,MAAM,CAiBR;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,EACrC,MAAM,CAAC,EAAE,QAAQ,EACjB,OAAO,CAAC,EAAE,WAAW,EACrB,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACvE,OAAO,CAAC,IAAI,CAAC,CAwEf;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,aAAa,EAC1B,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,oBAAoB,CAAC,CAkB/B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAO9D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,MAAW,GAAG,WAAW,CAQxE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,OAAe,EAC5B,KAAK,CAAC,EAAE,MAAM,GACb,WAAW,CAOb"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { AIConfig, AIModelConfig } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* 获取默认模型配置
|
|
4
|
+
*/
|
|
5
|
+
export declare function getDefaultModelConfig(provider: string): AIModelConfig;
|
|
6
|
+
/**
|
|
7
|
+
* 获取默认AI配置
|
|
8
|
+
*/
|
|
9
|
+
export declare function getDefaultAIConfig(): AIConfig;
|
|
10
|
+
/**
|
|
11
|
+
* 保存AI配置到localStorage
|
|
12
|
+
* API密钥会被加密后存储
|
|
13
|
+
*/
|
|
14
|
+
export declare function saveAIConfig(config: AIConfig): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* 从localStorage读取AI配置
|
|
17
|
+
* API密钥会被解密后返回
|
|
18
|
+
*/
|
|
19
|
+
export declare function getAIConfig(): Promise<AIConfig | null>;
|
|
20
|
+
/**
|
|
21
|
+
* 检查AI是否已配置(是否有有效的API密钥)
|
|
22
|
+
*/
|
|
23
|
+
export declare function isAIConfigured(): Promise<boolean>;
|
|
24
|
+
/**
|
|
25
|
+
* 检查指定 Provider 是否已配置
|
|
26
|
+
*/
|
|
27
|
+
export declare function isProviderConfigured(provider: string): Promise<boolean>;
|
|
28
|
+
/**
|
|
29
|
+
* 获取当前 Provider 的配置
|
|
30
|
+
*/
|
|
31
|
+
export declare function getCurrentProviderConfig(config?: AIConfig): Promise<AIModelConfig | null>;
|
|
32
|
+
/**
|
|
33
|
+
* 更新单个提供商的配置
|
|
34
|
+
*/
|
|
35
|
+
export declare function updateProviderConfig(provider: string, updates: Partial<AIModelConfig>): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* 删除自定义 Provider
|
|
38
|
+
*/
|
|
39
|
+
export declare function deleteProvider(provider: string): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* 清除AI配置
|
|
42
|
+
*/
|
|
43
|
+
export declare function clearAIConfig(): void;
|
|
44
|
+
/**
|
|
45
|
+
* 验证API配置是否有效
|
|
46
|
+
*/
|
|
47
|
+
export declare function validateModelConfig(config: AIModelConfig): {
|
|
48
|
+
valid: boolean;
|
|
49
|
+
message: string;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* 导出配置(不包含API密钥)
|
|
53
|
+
*/
|
|
54
|
+
export declare function exportAIConfig(): Promise<Partial<AIConfig>>;
|
|
55
|
+
/**
|
|
56
|
+
* 获取所有 Provider 列表(包括自定义)
|
|
57
|
+
*/
|
|
58
|
+
export declare function getAllProviders(): Promise<string[]>;
|
|
59
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/lib/ai/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AActD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAoCrE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,QAAQ,CAwB7C;AAsCD;;;GAGG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBlE;AAED;;;GAGG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAuD5D;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAQvD;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ7E;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAO/F;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBpE;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAMpC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAqB9F;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAoBjE;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAWzD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API密钥加密/解密工具
|
|
3
|
+
* 使用 Web Crypto API 的 AES-GCM 算法
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 加密API密钥
|
|
7
|
+
* @param plaintext 明文API密钥
|
|
8
|
+
* @returns 加密后的Base64字符串
|
|
9
|
+
*/
|
|
10
|
+
export declare function encryptApiKey(plaintext: string): Promise<string>;
|
|
11
|
+
/**
|
|
12
|
+
* 解密API密钥
|
|
13
|
+
* @param encryptedBase64 加密后的Base64字符串
|
|
14
|
+
* @returns 解密后的明文API密钥
|
|
15
|
+
*/
|
|
16
|
+
export declare function decryptApiKey(encryptedBase64: string): Promise<string>;
|
|
17
|
+
/**
|
|
18
|
+
* 检查是否支持加密
|
|
19
|
+
*/
|
|
20
|
+
export declare function isCryptoSupported(): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* 简单加密(用于不支持Web Crypto的环境降级)
|
|
23
|
+
* 注意:这不是真正的安全加密,仅用于兼容
|
|
24
|
+
*/
|
|
25
|
+
export declare function simpleEncrypt(plaintext: string): string;
|
|
26
|
+
/**
|
|
27
|
+
* 简单解密
|
|
28
|
+
*/
|
|
29
|
+
export declare function simpleDecrypt(encrypted: string): string;
|
|
30
|
+
//# sourceMappingURL=crypto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../../src/lib/ai/crypto.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsGH;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsCtE;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsC5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAG3C;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAYvD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAgBvD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI 模块入口
|
|
3
|
+
*/
|
|
4
|
+
export type { AIModelConfig, AIFeaturesConfig, AIUIConfig, AIConfig, ChatMessageRole, ChatMessage, ChatContext, ChatSession, ChatOptions, AIProviderConfig, StreamEvent, TestConnectionResult, AIState, } from './types';
|
|
5
|
+
export { getDefaultModelConfig, getDefaultAIConfig, saveAIConfig, getAIConfig, isAIConfigured, isProviderConfigured, getCurrentProviderConfig, updateProviderConfig, deleteProvider, clearAIConfig, validateModelConfig, exportAIConfig, getAllProviders, } from './config';
|
|
6
|
+
export { encryptApiKey, decryptApiKey, isCryptoSupported, } from './crypto';
|
|
7
|
+
export { createAIProvider, getProviderDisplayName, getProviderDefaultModels, getProviderHelpInfo, } from './providers';
|
|
8
|
+
export { buildContextMessage, buildSystemPrompt, sendChatMessage, testAIConnection, generateMessageId, createUserMessage, createAssistantMessage, updateAssistantMessage, } from './chat';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/ai/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,eAAe,EACf,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,OAAO,GACR,MAAM,SAAS,CAAA;AAGhB,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,eAAe,GAChB,MAAM,UAAU,CAAA;AAGjB,OAAO,EACL,aAAa,EACb,aAAa,EACb,iBAAiB,GAClB,MAAM,UAAU,CAAA;AAGjB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,aAAa,CAAA;AAGpB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,QAAQ,CAAA"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ChatMessage, AIProviderConfig, StreamEvent, TestConnectionResult } from '../types';
|
|
2
|
+
export declare abstract class BaseAIProvider {
|
|
3
|
+
protected config: AIProviderConfig;
|
|
4
|
+
constructor(config: AIProviderConfig);
|
|
5
|
+
/**
|
|
6
|
+
* 发送聊天消息(流式输出)
|
|
7
|
+
*/
|
|
8
|
+
abstract chat(messages: ChatMessage[], onEvent: (event: StreamEvent) => void, signal?: AbortSignal): Promise<void>;
|
|
9
|
+
/**
|
|
10
|
+
* 测试连接
|
|
11
|
+
*/
|
|
12
|
+
abstract testConnection(): Promise<TestConnectionResult>;
|
|
13
|
+
/**
|
|
14
|
+
* 验证配置
|
|
15
|
+
*/
|
|
16
|
+
validateConfig(): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* 更新配置
|
|
19
|
+
*/
|
|
20
|
+
updateConfig(config: Partial<AIProviderConfig>): void;
|
|
21
|
+
/**
|
|
22
|
+
* 构建请求头
|
|
23
|
+
*/
|
|
24
|
+
protected abstract buildHeaders(): Record<string, string>;
|
|
25
|
+
/**
|
|
26
|
+
* 构建请求体
|
|
27
|
+
*/
|
|
28
|
+
protected abstract buildRequestBody(messages: ChatMessage[]): unknown;
|
|
29
|
+
/**
|
|
30
|
+
* 解析流式响应
|
|
31
|
+
*/
|
|
32
|
+
protected abstract parseStreamChunk(chunk: string, onEvent: (event: StreamEvent) => void): void;
|
|
33
|
+
/**
|
|
34
|
+
* 生成消息ID
|
|
35
|
+
*/
|
|
36
|
+
protected generateId(): string;
|
|
37
|
+
/**
|
|
38
|
+
* 格式化消息(移除不必要的字段)
|
|
39
|
+
*/
|
|
40
|
+
protected formatMessages(messages: ChatMessage[]): Array<{
|
|
41
|
+
role: string;
|
|
42
|
+
content: string;
|
|
43
|
+
}>;
|
|
44
|
+
/**
|
|
45
|
+
* 发起HTTP请求
|
|
46
|
+
*/
|
|
47
|
+
protected makeRequest(url: string, body: unknown, headers: Record<string, string>, signal?: AbortSignal): Promise<Response>;
|
|
48
|
+
/**
|
|
49
|
+
* 读取流式响应
|
|
50
|
+
*/
|
|
51
|
+
protected readStream(response: Response, _onEvent: (event: StreamEvent) => void, parseChunk: (chunk: string) => void): Promise<void>;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/lib/ai/providers/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAEhG,8BAAsB,cAAc;IAClC,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAA;gBAEtB,MAAM,EAAE,gBAAgB;IAIpC;;OAEG;IACH,QAAQ,CAAC,IAAI,CACX,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,EACrC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAExD;;OAEG;IACH,cAAc,IAAI,OAAO;IAQzB;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAIrD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAEzD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO;IAErE;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;IAE/F;;OAEG;IACH,SAAS,CAAC,UAAU,IAAI,MAAM;IAI9B;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAS3F;;OAEG;cACa,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,QAAQ,CAAC;IAyBpB;;OAEG;cACa,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,EACtC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAClC,OAAO,CAAC,IAAI,CAAC;CAqCjB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { BaseAIProvider } from './base';
|
|
2
|
+
import { ChatMessage, StreamEvent, TestConnectionResult } from '../types';
|
|
3
|
+
interface ClaudeMessage {
|
|
4
|
+
role: 'user' | 'assistant';
|
|
5
|
+
content: string;
|
|
6
|
+
}
|
|
7
|
+
interface ClaudeRequest {
|
|
8
|
+
model: string;
|
|
9
|
+
messages: ClaudeMessage[];
|
|
10
|
+
max_tokens: number;
|
|
11
|
+
system?: string;
|
|
12
|
+
temperature?: number;
|
|
13
|
+
stream: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare class ClaudeProvider extends BaseAIProvider {
|
|
16
|
+
/**
|
|
17
|
+
* 发送聊天消息(流式输出)
|
|
18
|
+
*/
|
|
19
|
+
chat(messages: ChatMessage[], onEvent: (event: StreamEvent) => void, signal?: AbortSignal): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* 测试连接
|
|
22
|
+
*/
|
|
23
|
+
testConnection(): Promise<TestConnectionResult>;
|
|
24
|
+
/**
|
|
25
|
+
* 构建请求头
|
|
26
|
+
*/
|
|
27
|
+
protected buildHeaders(): Record<string, string>;
|
|
28
|
+
/**
|
|
29
|
+
* 构建请求体
|
|
30
|
+
*/
|
|
31
|
+
protected buildRequestBody(messages: ChatMessage[]): ClaudeRequest;
|
|
32
|
+
/**
|
|
33
|
+
* 解析流式响应
|
|
34
|
+
*/
|
|
35
|
+
protected parseStreamChunk(chunk: string, onEvent: (event: StreamEvent) => void): void;
|
|
36
|
+
}
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=claude.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../../../src/lib/ai/providers/claude.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE9E,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;CAChB;AAqBD,qBAAa,cAAe,SAAQ,cAAc;IAChD;;OAEG;IACG,IAAI,CACR,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,EACrC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;IAyBhB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC;IA4CrD;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAShD;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,aAAa;IAyClE;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;CAyDvF"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { BaseAIProvider } from './base';
|
|
2
|
+
import { ChatMessage, StreamEvent, TestConnectionResult } from '../types';
|
|
3
|
+
interface GeminiContent {
|
|
4
|
+
parts: Array<{
|
|
5
|
+
text?: string;
|
|
6
|
+
}>;
|
|
7
|
+
role: 'user' | 'model';
|
|
8
|
+
}
|
|
9
|
+
interface GeminiRequest {
|
|
10
|
+
contents: GeminiContent[];
|
|
11
|
+
generationConfig: {
|
|
12
|
+
maxOutputTokens?: number;
|
|
13
|
+
temperature?: number;
|
|
14
|
+
topP?: number;
|
|
15
|
+
topK?: number;
|
|
16
|
+
};
|
|
17
|
+
systemInstruction?: {
|
|
18
|
+
parts: Array<{
|
|
19
|
+
text: string;
|
|
20
|
+
}>;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export declare class GeminiProvider extends BaseAIProvider {
|
|
24
|
+
/**
|
|
25
|
+
* 发送聊天消息(流式输出)
|
|
26
|
+
*/
|
|
27
|
+
chat(messages: ChatMessage[], onEvent: (event: StreamEvent) => void, signal?: AbortSignal): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* 测试连接
|
|
30
|
+
*/
|
|
31
|
+
testConnection(): Promise<TestConnectionResult>;
|
|
32
|
+
/**
|
|
33
|
+
* 构建流式请求URL
|
|
34
|
+
*/
|
|
35
|
+
private buildStreamUrl;
|
|
36
|
+
/**
|
|
37
|
+
* 构建非流式请求URL
|
|
38
|
+
*/
|
|
39
|
+
private buildGenerateContentUrl;
|
|
40
|
+
/**
|
|
41
|
+
* 构建请求头
|
|
42
|
+
*/
|
|
43
|
+
protected buildHeaders(): Record<string, string>;
|
|
44
|
+
/**
|
|
45
|
+
* 构建请求体
|
|
46
|
+
*/
|
|
47
|
+
protected buildRequestBody(messages: ChatMessage[]): GeminiRequest;
|
|
48
|
+
/**
|
|
49
|
+
* 解析流式响应
|
|
50
|
+
*/
|
|
51
|
+
protected parseStreamChunk(chunk: string, onEvent: (event: StreamEvent) => void): void;
|
|
52
|
+
}
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=gemini.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../../../src/lib/ai/providers/gemini.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE9E,UAAU,aAAa;IACrB,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAC,CAAA;IACF,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,UAAU,aAAa;IACrB,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,gBAAgB,EAAE;QAChB,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;IACD,iBAAiB,CAAC,EAAE;QAClB,KAAK,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAC/B,CAAA;CACF;AAmBD,qBAAa,cAAe,SAAQ,cAAc;IAChD;;OAEG;IACG,IAAI,CACR,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,EACrC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;IAyBhB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC;IA8CrD;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAI/B;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMhD;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,aAAa;IA+BlE;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;CA+CvF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AIProviderConfig } from '../types';
|
|
2
|
+
import { BaseAIProvider } from './base';
|
|
3
|
+
export { BaseAIProvider } from './base';
|
|
4
|
+
export { OpenAIProvider } from './openai';
|
|
5
|
+
export { ClaudeProvider } from './claude';
|
|
6
|
+
export { GeminiProvider } from './gemini';
|
|
7
|
+
/**
|
|
8
|
+
* 创建 AI Provider 实例
|
|
9
|
+
* 对于预定义的 Provider,使用对应的实现
|
|
10
|
+
* 对于自定义 Provider,默认使用 OpenAI 兼容格式
|
|
11
|
+
*/
|
|
12
|
+
export declare function createAIProvider(providerName: string, config: AIProviderConfig): BaseAIProvider;
|
|
13
|
+
/**
|
|
14
|
+
* 获取 Provider 显示名称
|
|
15
|
+
*/
|
|
16
|
+
export declare function getProviderDisplayName(providerName: string): string;
|
|
17
|
+
/**
|
|
18
|
+
* 获取 Provider 默认模型列表
|
|
19
|
+
*/
|
|
20
|
+
export declare function getProviderDefaultModels(providerName: string): string[];
|
|
21
|
+
/**
|
|
22
|
+
* 获取 Provider 帮助信息
|
|
23
|
+
*/
|
|
24
|
+
export declare function getProviderHelpInfo(providerName: string): {
|
|
25
|
+
apiKeyUrl: string;
|
|
26
|
+
docsUrl: string;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/ai/providers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAKvC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAYzC;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,gBAAgB,GACvB,cAAc,CAgBhB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAkBnE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAmCvE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG;IACzD,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB,CAiCA"}
|