react-docs-ui 0.5.5 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/react-docs-ui.css +1 -1
  2. package/dist/react-docs-ui.es.js +6868 -3326
  3. package/dist/types/components/ComponentProvider.d.ts.map +1 -1
  4. package/dist/types/components/FloatingActionBall.d.ts.map +1 -1
  5. package/dist/types/components/HeaderNav.d.ts +1 -2
  6. package/dist/types/components/HeaderNav.d.ts.map +1 -1
  7. package/dist/types/components/MdxContent.d.ts.map +1 -1
  8. package/dist/types/components/ai/AIChatDialog.d.ts +6 -0
  9. package/dist/types/components/ai/AIChatDialog.d.ts.map +1 -0
  10. package/dist/types/components/ai/AIChatInput.d.ts +13 -0
  11. package/dist/types/components/ai/AIChatInput.d.ts.map +1 -0
  12. package/dist/types/components/ai/AIChatMessage.d.ts +10 -0
  13. package/dist/types/components/ai/AIChatMessage.d.ts.map +1 -0
  14. package/dist/types/components/ai/AIProvider.d.ts +33 -0
  15. package/dist/types/components/ai/AIProvider.d.ts.map +1 -0
  16. package/dist/types/components/ai/AISelectionTrigger.d.ts +6 -0
  17. package/dist/types/components/ai/AISelectionTrigger.d.ts.map +1 -0
  18. package/dist/types/components/ai/AISettingsPanel.d.ts +5 -0
  19. package/dist/types/components/ai/AISettingsPanel.d.ts.map +1 -0
  20. package/dist/types/components/ai/index.d.ts +10 -0
  21. package/dist/types/components/ai/index.d.ts.map +1 -0
  22. package/dist/types/components/ui/toast.d.ts +16 -0
  23. package/dist/types/components/ui/toast.d.ts.map +1 -0
  24. package/dist/types/components/ui/toaster.d.ts +2 -0
  25. package/dist/types/components/ui/toaster.d.ts.map +1 -0
  26. package/dist/types/components/ui/use-toast.d.ts +44 -0
  27. package/dist/types/components/ui/use-toast.d.ts.map +1 -0
  28. package/dist/types/index.d.ts +3 -0
  29. package/dist/types/index.d.ts.map +1 -1
  30. package/dist/types/lib/ai/chat.d.ts +38 -0
  31. package/dist/types/lib/ai/chat.d.ts.map +1 -0
  32. package/dist/types/lib/ai/config.d.ts +59 -0
  33. package/dist/types/lib/ai/config.d.ts.map +1 -0
  34. package/dist/types/lib/ai/crypto.d.ts +30 -0
  35. package/dist/types/lib/ai/crypto.d.ts.map +1 -0
  36. package/dist/types/lib/ai/index.d.ts +9 -0
  37. package/dist/types/lib/ai/index.d.ts.map +1 -0
  38. package/dist/types/lib/ai/providers/base.d.ts +53 -0
  39. package/dist/types/lib/ai/providers/base.d.ts.map +1 -0
  40. package/dist/types/lib/ai/providers/claude.d.ts +38 -0
  41. package/dist/types/lib/ai/providers/claude.d.ts.map +1 -0
  42. package/dist/types/lib/ai/providers/gemini.d.ts +54 -0
  43. package/dist/types/lib/ai/providers/gemini.d.ts.map +1 -0
  44. package/dist/types/lib/ai/providers/index.d.ts +28 -0
  45. package/dist/types/lib/ai/providers/index.d.ts.map +1 -0
  46. package/dist/types/lib/ai/providers/openai.d.ts +37 -0
  47. package/dist/types/lib/ai/providers/openai.d.ts.map +1 -0
  48. package/dist/types/lib/ai/types.d.ts +162 -0
  49. package/dist/types/lib/ai/types.d.ts.map +1 -0
  50. package/dist/types/lib/config.d.ts +3 -0
  51. package/dist/types/lib/config.d.ts.map +1 -1
  52. package/dist/types/lib/shiki-highlighter.d.ts +10 -0
  53. package/dist/types/lib/shiki-highlighter.d.ts.map +1 -0
  54. 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,CAOjD"}
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,2CA4LzB"}
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, onMenuClick }: HeaderNavProps): import("react/jsx-runtime").JSX.Element;
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;IACvC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;CACzB;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,cAAc,2CA+MzF"}
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":"AAcA,OAAO,0BAA0B,CAAA;AACjC,OAAO,gCAAgC,CAAA;AAGvC,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,CAAA;CACf;AA4GD,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,2CAsHrD"}
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;AAsUD,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,2CA4IrD"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * AI聊天对话框组件
3
+ * 从底部弹出的对话框,支持拖拽、快捷键
4
+ */
5
+ export declare function AIChatDialog(): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=AIChatDialog.d.ts.map
@@ -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,2CA8Q5F"}
@@ -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,6 @@
1
+ /**
2
+ * 选中文本触发器组件
3
+ * 监听文本选择,显示AI询问按钮
4
+ */
5
+ export declare function AISelectionTrigger(): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=AISelectionTrigger.d.ts.map
@@ -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,5 @@
1
+ /**
2
+ * AI设置面板组件
3
+ */
4
+ export declare function AISettingsPanel(): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=AISettingsPanel.d.ts.map
@@ -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,2 @@
1
+ export declare function Toaster(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=toaster.d.ts.map
@@ -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"}
@@ -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"}