tabby-ai-assistant 1.0.10 → 1.0.12

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 (104) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +3 -3
  3. package/src/components/chat/ai-sidebar.component.scss +43 -0
  4. package/src/components/chat/ai-sidebar.component.ts +43 -1
  5. package/src/components/settings/ai-settings-tab.component.html +13 -5
  6. package/src/components/settings/ai-settings-tab.component.scss +164 -33
  7. package/src/components/settings/ai-settings-tab.component.ts +1 -0
  8. package/src/components/settings/context-settings.component.html +87 -0
  9. package/src/components/settings/context-settings.component.scss +133 -0
  10. package/src/components/settings/context-settings.component.ts +91 -0
  11. package/src/components/settings/provider-config.component.ts +12 -6
  12. package/src/i18n/translations/en-US.ts +27 -1
  13. package/src/i18n/translations/ja-JP.ts +27 -1
  14. package/src/i18n/translations/zh-CN.ts +27 -1
  15. package/src/i18n/types.ts +28 -0
  16. package/src/index.ts +6 -0
  17. package/src/services/chat/ai-sidebar.service.ts +1 -1
  18. package/src/services/chat/chat-session.service.ts +91 -2
  19. package/src/services/context/manager.ts +33 -2
  20. package/src/services/core/ai-assistant.service.ts +35 -11
  21. package/src/services/core/config-provider.service.ts +66 -0
  22. package/src/services/core/toast.service.ts +70 -0
  23. package/src/services/providers/anthropic-provider.service.ts +12 -4
  24. package/src/services/providers/glm-provider.service.ts +12 -4
  25. package/src/services/providers/minimax-provider.service.ts +12 -4
  26. package/src/styles/ai-assistant.scss +23 -0
  27. package/src/types/ai.types.ts +3 -3
  28. package/src/types/provider.types.ts +1 -0
  29. package/dist/components/chat/ai-sidebar.component.d.ts +0 -160
  30. package/dist/components/chat/chat-input.component.d.ts +0 -69
  31. package/dist/components/chat/chat-interface.component.d.ts +0 -124
  32. package/dist/components/chat/chat-message.component.d.ts +0 -53
  33. package/dist/components/chat/chat-settings.component.d.ts +0 -72
  34. package/dist/components/common/error-message.component.d.ts +0 -11
  35. package/dist/components/common/loading-spinner.component.d.ts +0 -4
  36. package/dist/components/security/consent-dialog.component.d.ts +0 -11
  37. package/dist/components/security/password-prompt.component.d.ts +0 -10
  38. package/dist/components/security/risk-confirm-dialog.component.d.ts +0 -36
  39. package/dist/components/settings/ai-settings-tab.component.d.ts +0 -82
  40. package/dist/components/settings/general-settings.component.d.ts +0 -94
  41. package/dist/components/settings/provider-config.component.d.ts +0 -300
  42. package/dist/components/settings/security-settings.component.d.ts +0 -33
  43. package/dist/components/terminal/ai-toolbar-button.component.d.ts +0 -10
  44. package/dist/components/terminal/command-preview.component.d.ts +0 -53
  45. package/dist/components/terminal/command-suggestion.component.d.ts +0 -16
  46. package/dist/i18n/index.d.ts +0 -48
  47. package/dist/i18n/translations/en-US.d.ts +0 -5
  48. package/dist/i18n/translations/ja-JP.d.ts +0 -5
  49. package/dist/i18n/translations/zh-CN.d.ts +0 -5
  50. package/dist/i18n/types.d.ts +0 -198
  51. package/dist/index-full.d.ts +0 -8
  52. package/dist/index-minimal.d.ts +0 -3
  53. package/dist/index.d.ts +0 -12
  54. package/dist/main.d.ts +0 -8
  55. package/dist/providers/tabby/ai-config.provider.d.ts +0 -70
  56. package/dist/providers/tabby/ai-hotkey.provider.d.ts +0 -15
  57. package/dist/providers/tabby/ai-settings-tab.provider.d.ts +0 -11
  58. package/dist/providers/tabby/ai-toolbar-button.provider.d.ts +0 -16
  59. package/dist/services/chat/ai-sidebar.service.d.ts +0 -111
  60. package/dist/services/chat/chat-history.service.d.ts +0 -145
  61. package/dist/services/chat/chat-session.service.d.ts +0 -113
  62. package/dist/services/chat/command-generator.service.d.ts +0 -49
  63. package/dist/services/context/compaction.d.ts +0 -90
  64. package/dist/services/context/manager.d.ts +0 -69
  65. package/dist/services/context/memory.d.ts +0 -116
  66. package/dist/services/context/token-budget.d.ts +0 -105
  67. package/dist/services/core/ai-assistant.service.d.ts +0 -127
  68. package/dist/services/core/ai-provider-manager.service.d.ts +0 -119
  69. package/dist/services/core/checkpoint.service.d.ts +0 -130
  70. package/dist/services/core/config-provider.service.d.ts +0 -137
  71. package/dist/services/core/logger.service.d.ts +0 -21
  72. package/dist/services/core/theme.service.d.ts +0 -53
  73. package/dist/services/core/toast.service.d.ts +0 -15
  74. package/dist/services/platform/escape-sequence.service.d.ts +0 -132
  75. package/dist/services/platform/platform-detection.service.d.ts +0 -146
  76. package/dist/services/providers/anthropic-provider.service.d.ts +0 -44
  77. package/dist/services/providers/base-provider.service.d.ts +0 -142
  78. package/dist/services/providers/glm-provider.service.d.ts +0 -96
  79. package/dist/services/providers/minimax-provider.service.d.ts +0 -102
  80. package/dist/services/providers/ollama-provider.service.d.ts +0 -76
  81. package/dist/services/providers/openai-compatible.service.d.ts +0 -44
  82. package/dist/services/providers/openai-provider.service.d.ts +0 -43
  83. package/dist/services/providers/vllm-provider.service.d.ts +0 -82
  84. package/dist/services/security/consent-manager.service.d.ts +0 -65
  85. package/dist/services/security/password-manager.service.d.ts +0 -67
  86. package/dist/services/security/risk-assessment.service.d.ts +0 -65
  87. package/dist/services/security/security-validator.service.d.ts +0 -36
  88. package/dist/services/terminal/buffer-analyzer.service.d.ts +0 -128
  89. package/dist/services/terminal/command-analyzer.service.d.ts +0 -20
  90. package/dist/services/terminal/context-menu.service.d.ts +0 -24
  91. package/dist/services/terminal/hotkey.service.d.ts +0 -28
  92. package/dist/services/terminal/terminal-context.service.d.ts +0 -100
  93. package/dist/services/terminal/terminal-manager.service.d.ts +0 -185
  94. package/dist/services/terminal/terminal-tools.service.d.ts +0 -79
  95. package/dist/types/ai.types.d.ts +0 -199
  96. package/dist/types/provider.types.d.ts +0 -105
  97. package/dist/types/security.types.d.ts +0 -85
  98. package/dist/types/terminal.types.d.ts +0 -150
  99. package/dist/utils/encryption.utils.d.ts +0 -83
  100. package/dist/utils/formatting.utils.d.ts +0 -106
  101. package/dist/utils/validation.utils.d.ts +0 -83
  102. package/jest.config.js +0 -47
  103. package/webpack-docker.config.js +0 -42
  104. package/webpack.config.js +0 -81
@@ -1,53 +0,0 @@
1
- import { EventEmitter } from '@angular/core';
2
- import { ChatMessage } from '../../types/ai.types';
3
- export declare class ChatMessageComponent {
4
- message: ChatMessage;
5
- showAvatar: boolean;
6
- showTimestamp: boolean;
7
- isGrouped: boolean;
8
- messageClick: EventEmitter<ChatMessage>;
9
- messageAction: EventEmitter<{
10
- action: string;
11
- message: ChatMessage;
12
- }>;
13
- /**
14
- * 处理消息点击
15
- */
16
- onMessageClick(): void;
17
- /**
18
- * 处理消息操作
19
- */
20
- onAction(action: string): void;
21
- /**
22
- * 复制消息内容
23
- */
24
- copyMessage(): void;
25
- /**
26
- * 重新生成响应
27
- */
28
- regenerateResponse(): void;
29
- /**
30
- * 标记为有用
31
- */
32
- markAsHelpful(): void;
33
- /**
34
- * 标记为无用
35
- */
36
- markAsNotHelpful(): void;
37
- /**
38
- * 格式化时间
39
- */
40
- formatTime(timestamp: Date): string;
41
- /**
42
- * 检查是否为用户消息
43
- */
44
- isUserMessage(): boolean;
45
- /**
46
- * 检查是否为AI消息
47
- */
48
- isAssistantMessage(): boolean;
49
- /**
50
- * 检查是否为系统消息
51
- */
52
- isSystemMessage(): boolean;
53
- }
@@ -1,72 +0,0 @@
1
- import { OnInit, OnDestroy } from '@angular/core';
2
- import { ConfigProviderService } from '../../services/core/config-provider.service';
3
- import { LoggerService } from '../../services/core/logger.service';
4
- import { ThemeService } from '../../services/core/theme.service';
5
- import { TranslateService } from '../../i18n';
6
- export declare class ChatSettingsComponent implements OnInit, OnDestroy {
7
- private config;
8
- private logger;
9
- private translate;
10
- private themeService;
11
- settings: {
12
- chatHistoryEnabled: boolean;
13
- maxChatHistory: number;
14
- autoSaveChat: boolean;
15
- theme: string;
16
- fontSize: number;
17
- compactMode: boolean;
18
- showTimestamps: boolean;
19
- showAvatars: boolean;
20
- enterToSend: boolean;
21
- soundEnabled: boolean;
22
- };
23
- t: any;
24
- fontSizes: number[];
25
- private destroy$;
26
- constructor(config: ConfigProviderService, logger: LoggerService, translate: TranslateService, themeService: ThemeService);
27
- ngOnInit(): void;
28
- ngOnDestroy(): void;
29
- /**
30
- * 更新主题标签翻译
31
- */
32
- private updateThemeLabels;
33
- /**
34
- * 获取主题选项
35
- */
36
- get themes(): {
37
- value: string;
38
- label: any;
39
- }[];
40
- /**
41
- * 加载设置
42
- */
43
- private loadSettings;
44
- /**
45
- * 保存设置
46
- */
47
- saveSetting(key: string, value: any): void;
48
- /**
49
- * 更新主题
50
- */
51
- updateTheme(theme: string): void;
52
- /**
53
- * 更新字体大小
54
- */
55
- updateFontSize(size: number): void;
56
- /**
57
- * 切换紧凑模式
58
- */
59
- toggleCompactMode(): void;
60
- /**
61
- * 清空聊天历史
62
- */
63
- clearChatHistory(): void;
64
- /**
65
- * 导出聊天设置
66
- */
67
- exportSettings(): void;
68
- /**
69
- * 重置为默认设置
70
- */
71
- resetToDefaults(): void;
72
- }
@@ -1,11 +0,0 @@
1
- import { EventEmitter } from '@angular/core';
2
- export declare class ErrorMessageComponent {
3
- type: 'error' | 'warning' | 'info' | 'success';
4
- title: string;
5
- message: string;
6
- details: string;
7
- dismissible: boolean;
8
- dismissed: EventEmitter<void>;
9
- getIconClass(): string;
10
- onDismiss(): void;
11
- }
@@ -1,4 +0,0 @@
1
- export declare class LoadingSpinnerComponent {
2
- size: 'small' | 'medium' | 'large';
3
- message: string;
4
- }
@@ -1,11 +0,0 @@
1
- import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
2
- import { RiskLevel } from '../../types/security.types';
3
- export declare class ConsentDialogComponent {
4
- activeModal: NgbActiveModal;
5
- command: string;
6
- riskLevel: RiskLevel;
7
- rememberChoice: boolean;
8
- constructor(activeModal: NgbActiveModal);
9
- confirm(): void;
10
- cancel(): void;
11
- }
@@ -1,10 +0,0 @@
1
- import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
2
- export declare class PasswordPromptComponent {
3
- activeModal: NgbActiveModal;
4
- title: string;
5
- password: string;
6
- errorMessage: string;
7
- constructor(activeModal: NgbActiveModal);
8
- submit(): void;
9
- cancel(): void;
10
- }
@@ -1,36 +0,0 @@
1
- import { EventEmitter } from '@angular/core';
2
- import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
3
- import { RiskLevel } from '../../types/security.types';
4
- export declare class RiskConfirmDialogComponent {
5
- activeModal: NgbActiveModal;
6
- command: string;
7
- explanation: string;
8
- riskLevel: RiskLevel;
9
- suggestions: string[];
10
- confirmed: EventEmitter<boolean>;
11
- constructor(activeModal: NgbActiveModal);
12
- /**
13
- * 确认执行
14
- */
15
- confirm(): void;
16
- /**
17
- * 取消执行
18
- */
19
- cancel(): void;
20
- /**
21
- * 获取风险级别文本
22
- */
23
- getRiskLevelText(): string;
24
- /**
25
- * 获取风险级别颜色
26
- */
27
- getRiskLevelColor(): string;
28
- /**
29
- * 获取风险级别图标
30
- */
31
- getRiskLevelIcon(): string;
32
- /**
33
- * 是否为高风险
34
- */
35
- isHighRisk(): boolean;
36
- }
@@ -1,82 +0,0 @@
1
- import { OnInit, OnDestroy } from '@angular/core';
2
- import { AiAssistantService } from '../../services/core/ai-assistant.service';
3
- import { ConfigProviderService } from '../../services/core/config-provider.service';
4
- import { LoggerService } from '../../services/core/logger.service';
5
- import { TranslateService } from '../../i18n';
6
- export declare class AiSettingsTabComponent implements OnInit, OnDestroy {
7
- private aiService;
8
- private config;
9
- private logger;
10
- private translate;
11
- activeTab: string;
12
- isEnabled: boolean;
13
- currentProvider: string;
14
- providerStatus: any;
15
- pluginVersion: string;
16
- t: any;
17
- tabs: {
18
- id: string;
19
- labelKey: string;
20
- icon: string;
21
- }[];
22
- private destroy$;
23
- constructor(aiService: AiAssistantService, config: ConfigProviderService, logger: LoggerService, translate: TranslateService);
24
- ngOnInit(): void;
25
- ngOnDestroy(): void;
26
- /**
27
- * 更新 Tab 标签
28
- */
29
- private updateTabLabels;
30
- /**
31
- * 加载设置
32
- */
33
- private loadSettings;
34
- /**
35
- * 加载提供商状态
36
- */
37
- private loadProviderStatus;
38
- /**
39
- * 切换标签页
40
- */
41
- switchTab(tabId: string): void;
42
- /**
43
- * 切换启用状态
44
- */
45
- toggleEnabled(): void;
46
- /**
47
- * 切换提供商
48
- */
49
- switchProvider(providerName: string): void;
50
- /**
51
- * 刷新提供商状态
52
- */
53
- refreshProviderStatus(): Promise<void>;
54
- /**
55
- * 获取提供商图标类名
56
- */
57
- getProviderIcon(providerName: string): string;
58
- /**
59
- * 获取提供商状态颜色
60
- */
61
- getProviderStatusColor(healthy: boolean): string;
62
- /**
63
- * 获取提供商状态文本
64
- */
65
- getProviderStatusText(healthy: boolean): string;
66
- /**
67
- * 验证配置
68
- */
69
- validateConfig(): Promise<void>;
70
- /**
71
- * 导出配置
72
- */
73
- exportConfig(): void;
74
- /**
75
- * 导入配置
76
- */
77
- importConfig(): void;
78
- /**
79
- * 重置为默认配置
80
- */
81
- resetToDefaults(): void;
82
- }
@@ -1,94 +0,0 @@
1
- import { EventEmitter, OnInit, OnDestroy } from '@angular/core';
2
- import { AiAssistantService } from '../../services/core/ai-assistant.service';
3
- import { ConfigProviderService } from '../../services/core/config-provider.service';
4
- import { LoggerService } from '../../services/core/logger.service';
5
- import { ThemeService } from '../../services/core/theme.service';
6
- import { ConfigService } from 'tabby-core';
7
- import { TranslateService } from '../../i18n';
8
- export declare class GeneralSettingsComponent implements OnInit, OnDestroy {
9
- private aiService;
10
- private config;
11
- private tabbyConfig;
12
- private logger;
13
- private translate;
14
- private themeService;
15
- providerChanged: EventEmitter<string>;
16
- availableProviders: any[];
17
- selectedProvider: string;
18
- isEnabled: boolean;
19
- language: string;
20
- theme: string;
21
- t: any;
22
- private localProviderStatus;
23
- private readonly statusCacheDuration;
24
- private destroy$;
25
- languages: {
26
- value: string;
27
- label: string;
28
- flag: string;
29
- }[];
30
- themes: {
31
- value: string;
32
- label: string;
33
- }[];
34
- private providerNames;
35
- constructor(aiService: AiAssistantService, config: ConfigProviderService, tabbyConfig: ConfigService, logger: LoggerService, translate: TranslateService, themeService: ThemeService);
36
- ngOnInit(): void;
37
- ngOnDestroy(): void;
38
- /**
39
- * 更新主题标签翻译
40
- */
41
- private updateThemeLabels;
42
- /**
43
- * 加载设置
44
- */
45
- private loadSettings;
46
- /**
47
- * 加载可用提供商 - 支持云端和本地供应商
48
- */
49
- private loadProviders;
50
- /**
51
- * 获取供应商描述
52
- */
53
- private getProviderDescription;
54
- /**
55
- * 获取云端提供商状态(同步返回)
56
- */
57
- getProviderStatus(providerName: string): {
58
- text: string;
59
- color: string;
60
- icon: string;
61
- };
62
- /**
63
- * 检测本地供应商状态(异步)
64
- */
65
- private checkLocalProviderStatus;
66
- /**
67
- * 获取本地供应商状态(同步返回,异步更新缓存)
68
- */
69
- getLocalProviderStatus(providerName: string): {
70
- text: string;
71
- color: string;
72
- icon: string;
73
- };
74
- /**
75
- * 更新默认提供商
76
- */
77
- updateDefaultProvider(providerName: string): void;
78
- /**
79
- * 更新启用状态
80
- */
81
- updateEnabled(enabled: boolean): void;
82
- /**
83
- * 更新语言
84
- */
85
- updateLanguage(language: string): void;
86
- /**
87
- * 更新主题
88
- */
89
- updateTheme(theme: string): void;
90
- /**
91
- * 应用主题 - 使用 ThemeService
92
- */
93
- private applyTheme;
94
- }
@@ -1,300 +0,0 @@
1
- import { EventEmitter, OnInit, OnDestroy } from '@angular/core';
2
- import { ConfigProviderService } from '../../services/core/config-provider.service';
3
- import { LoggerService } from '../../services/core/logger.service';
4
- import { ToastService } from '../../services/core/toast.service';
5
- import { TranslateService } from '../../i18n';
6
- export declare class ProviderConfigComponent implements OnInit, OnDestroy {
7
- private config;
8
- private logger;
9
- private toast;
10
- private translate;
11
- providerStatus: any;
12
- refreshStatus: EventEmitter<void>;
13
- switchProvider: EventEmitter<string>;
14
- Object: ObjectConstructor;
15
- selectedProvider: string;
16
- configs: {
17
- [key: string]: any;
18
- };
19
- expandedProvider: string;
20
- localStatus: {
21
- [key: string]: boolean;
22
- };
23
- passwordVisibility: {
24
- [key: string]: {
25
- [fieldKey: string]: boolean;
26
- };
27
- };
28
- t: any;
29
- private apiKeyPatterns;
30
- private destroy$;
31
- cloudProviderTemplates: {
32
- openai: {
33
- name: string;
34
- description: string;
35
- icon: string;
36
- fields: ({
37
- key: string;
38
- label: string;
39
- type: string;
40
- required: boolean;
41
- default?: undefined;
42
- placeholder?: undefined;
43
- } | {
44
- key: string;
45
- label: string;
46
- type: string;
47
- default: string;
48
- required: boolean;
49
- placeholder?: undefined;
50
- } | {
51
- key: string;
52
- label: string;
53
- type: string;
54
- default: string;
55
- required: boolean;
56
- placeholder: string;
57
- })[];
58
- };
59
- anthropic: {
60
- name: string;
61
- description: string;
62
- icon: string;
63
- fields: ({
64
- key: string;
65
- label: string;
66
- type: string;
67
- required: boolean;
68
- default?: undefined;
69
- placeholder?: undefined;
70
- } | {
71
- key: string;
72
- label: string;
73
- type: string;
74
- default: string;
75
- required: boolean;
76
- placeholder?: undefined;
77
- } | {
78
- key: string;
79
- label: string;
80
- type: string;
81
- default: string;
82
- required: boolean;
83
- placeholder: string;
84
- })[];
85
- };
86
- minimax: {
87
- name: string;
88
- description: string;
89
- icon: string;
90
- fields: ({
91
- key: string;
92
- label: string;
93
- type: string;
94
- required: boolean;
95
- default?: undefined;
96
- placeholder?: undefined;
97
- } | {
98
- key: string;
99
- label: string;
100
- type: string;
101
- default: string;
102
- required: boolean;
103
- placeholder?: undefined;
104
- } | {
105
- key: string;
106
- label: string;
107
- type: string;
108
- default: string;
109
- required: boolean;
110
- placeholder: string;
111
- })[];
112
- };
113
- glm: {
114
- name: string;
115
- description: string;
116
- icon: string;
117
- fields: ({
118
- key: string;
119
- label: string;
120
- type: string;
121
- required: boolean;
122
- default?: undefined;
123
- placeholder?: undefined;
124
- } | {
125
- key: string;
126
- label: string;
127
- type: string;
128
- default: string;
129
- required: boolean;
130
- placeholder?: undefined;
131
- } | {
132
- key: string;
133
- label: string;
134
- type: string;
135
- default: string;
136
- required: boolean;
137
- placeholder: string;
138
- })[];
139
- };
140
- };
141
- localProviderTemplates: {
142
- ollama: {
143
- name: string;
144
- description: string;
145
- icon: string;
146
- defaultURL: string;
147
- fields: {
148
- key: string;
149
- label: string;
150
- type: string;
151
- default: string;
152
- required: boolean;
153
- placeholder: string;
154
- }[];
155
- };
156
- vllm: {
157
- name: string;
158
- description: string;
159
- icon: string;
160
- defaultURL: string;
161
- fields: ({
162
- key: string;
163
- label: string;
164
- type: string;
165
- default: string;
166
- required: boolean;
167
- placeholder: string;
168
- } | {
169
- key: string;
170
- label: string;
171
- type: string;
172
- required: boolean;
173
- default?: undefined;
174
- placeholder?: undefined;
175
- })[];
176
- };
177
- };
178
- constructor(config: ConfigProviderService, logger: LoggerService, toast: ToastService, translate: TranslateService);
179
- ngOnInit(): void;
180
- ngOnDestroy(): void;
181
- /**
182
- * 加载配置
183
- */
184
- private loadConfigs;
185
- /**
186
- * 切换展开/折叠
187
- */
188
- toggleExpand(providerName: string): void;
189
- /**
190
- * 检查是否是本地提供商
191
- */
192
- isLocalProvider(providerName: string): boolean;
193
- /**
194
- * 检测本地供应商状态
195
- */
196
- private checkLocalProviderStatus;
197
- /**
198
- * 获取本地供应商在线状态
199
- */
200
- getLocalStatus(providerName: string): {
201
- text: string;
202
- color: string;
203
- icon: string;
204
- };
205
- /**
206
- * 测试本地提供商连接
207
- */
208
- testLocalProvider(providerName: string): Promise<void>;
209
- /**
210
- * 保存配置
211
- */
212
- saveConfig(providerName: string): void;
213
- /**
214
- * 添加提供商
215
- */
216
- addProvider(providerName: string): void;
217
- /**
218
- * 删除提供商
219
- */
220
- removeProvider(providerName: string): void;
221
- /**
222
- * 切换提供商启用状态
223
- */
224
- toggleProviderEnabled(providerName: string): void;
225
- /**
226
- * 测试连接
227
- */
228
- testConnection(providerName: string): Promise<void>;
229
- /**
230
- * 获取测试端点
231
- */
232
- private getTestEndpoint;
233
- /**
234
- * 获取测试请求头
235
- */
236
- private getTestHeaders;
237
- /**
238
- * 获取测试请求体
239
- */
240
- private getTestBody;
241
- /**
242
- * 创建默认配置
243
- */
244
- private createDefaultConfig;
245
- /**
246
- * 获取字段类型
247
- */
248
- getFieldType(field: any): string;
249
- /**
250
- * 获取选项
251
- */
252
- getFieldOptions(field: any): string[];
253
- /**
254
- * 检查是否是密码字段
255
- */
256
- isPasswordField(field: any): boolean;
257
- /**
258
- * 检查是否必填
259
- */
260
- isRequired(field: any): boolean;
261
- /**
262
- * 获取提供商模板(支持云端和本地)
263
- */
264
- getProviderTemplate(providerName: string): any;
265
- /**
266
- * 获取提供商图标
267
- */
268
- getProviderIcon(providerName: string): string;
269
- /**
270
- * 检查是否有配置
271
- */
272
- hasConfig(providerName: string): boolean;
273
- /**
274
- * 获取配置值
275
- */
276
- getConfigValue(providerName: string, key: string, defaultValue?: any): any;
277
- /**
278
- * 更新配置值
279
- */
280
- updateConfigValue(providerName: string, key: string, value: any): void;
281
- /**
282
- * 切换密码字段可见性
283
- */
284
- togglePasswordVisibility(providerName: string, fieldKey: string): void;
285
- /**
286
- * 获取密码字段可见性状态
287
- */
288
- isPasswordVisible(providerName: string, fieldKey: string): boolean;
289
- /**
290
- * 验证 API Key 格式
291
- */
292
- validateApiKeyFormat(providerName: string, apiKey: string): {
293
- valid: boolean;
294
- message: string;
295
- };
296
- /**
297
- * 获取输入框的验证状态类
298
- */
299
- getInputValidationClass(providerName: string, fieldKey: string): string;
300
- }