tabby-ai-assistant 1.0.9 → 1.0.11

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 (103) 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.html +46 -12
  12. package/src/components/settings/provider-config.component.scss +59 -0
  13. package/src/components/settings/provider-config.component.ts +112 -15
  14. package/src/i18n/translations/en-US.ts +27 -1
  15. package/src/i18n/translations/ja-JP.ts +27 -1
  16. package/src/i18n/translations/zh-CN.ts +27 -1
  17. package/src/i18n/types.ts +28 -0
  18. package/src/index.ts +6 -0
  19. package/src/services/chat/chat-session.service.ts +91 -2
  20. package/src/services/context/manager.ts +33 -2
  21. package/src/services/core/ai-assistant.service.ts +35 -11
  22. package/src/services/core/config-provider.service.ts +66 -0
  23. package/src/services/core/toast.service.ts +36 -0
  24. package/src/services/providers/anthropic-provider.service.ts +12 -4
  25. package/src/services/providers/glm-provider.service.ts +12 -4
  26. package/src/services/providers/minimax-provider.service.ts +12 -4
  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 -273
  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/platform/escape-sequence.service.d.ts +0 -132
  74. package/dist/services/platform/platform-detection.service.d.ts +0 -146
  75. package/dist/services/providers/anthropic-provider.service.d.ts +0 -44
  76. package/dist/services/providers/base-provider.service.d.ts +0 -142
  77. package/dist/services/providers/glm-provider.service.d.ts +0 -96
  78. package/dist/services/providers/minimax-provider.service.d.ts +0 -102
  79. package/dist/services/providers/ollama-provider.service.d.ts +0 -76
  80. package/dist/services/providers/openai-compatible.service.d.ts +0 -44
  81. package/dist/services/providers/openai-provider.service.d.ts +0 -43
  82. package/dist/services/providers/vllm-provider.service.d.ts +0 -82
  83. package/dist/services/security/consent-manager.service.d.ts +0 -65
  84. package/dist/services/security/password-manager.service.d.ts +0 -67
  85. package/dist/services/security/risk-assessment.service.d.ts +0 -65
  86. package/dist/services/security/security-validator.service.d.ts +0 -36
  87. package/dist/services/terminal/buffer-analyzer.service.d.ts +0 -128
  88. package/dist/services/terminal/command-analyzer.service.d.ts +0 -20
  89. package/dist/services/terminal/context-menu.service.d.ts +0 -24
  90. package/dist/services/terminal/hotkey.service.d.ts +0 -28
  91. package/dist/services/terminal/terminal-context.service.d.ts +0 -100
  92. package/dist/services/terminal/terminal-manager.service.d.ts +0 -185
  93. package/dist/services/terminal/terminal-tools.service.d.ts +0 -79
  94. package/dist/types/ai.types.d.ts +0 -199
  95. package/dist/types/provider.types.d.ts +0 -105
  96. package/dist/types/security.types.d.ts +0 -85
  97. package/dist/types/terminal.types.d.ts +0 -150
  98. package/dist/utils/encryption.utils.d.ts +0 -83
  99. package/dist/utils/formatting.utils.d.ts +0 -106
  100. package/dist/utils/validation.utils.d.ts +0 -83
  101. package/jest.config.js +0 -47
  102. package/webpack-docker.config.js +0 -42
  103. package/webpack.config.js +0 -81
@@ -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,273 +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 { TranslateService } from '../../i18n';
5
- export declare class ProviderConfigComponent implements OnInit, OnDestroy {
6
- private config;
7
- private logger;
8
- private translate;
9
- providerStatus: any;
10
- refreshStatus: EventEmitter<void>;
11
- switchProvider: EventEmitter<string>;
12
- Object: ObjectConstructor;
13
- selectedProvider: string;
14
- configs: {
15
- [key: string]: any;
16
- };
17
- expandedProvider: string;
18
- localStatus: {
19
- [key: string]: boolean;
20
- };
21
- t: any;
22
- private destroy$;
23
- cloudProviderTemplates: {
24
- openai: {
25
- name: string;
26
- description: string;
27
- icon: string;
28
- fields: ({
29
- key: string;
30
- label: string;
31
- type: string;
32
- required: boolean;
33
- default?: undefined;
34
- placeholder?: undefined;
35
- } | {
36
- key: string;
37
- label: string;
38
- type: string;
39
- default: string;
40
- required: boolean;
41
- placeholder?: undefined;
42
- } | {
43
- key: string;
44
- label: string;
45
- type: string;
46
- default: string;
47
- required: boolean;
48
- placeholder: string;
49
- })[];
50
- };
51
- anthropic: {
52
- name: string;
53
- description: string;
54
- icon: string;
55
- fields: ({
56
- key: string;
57
- label: string;
58
- type: string;
59
- required: boolean;
60
- default?: undefined;
61
- placeholder?: undefined;
62
- } | {
63
- key: string;
64
- label: string;
65
- type: string;
66
- default: string;
67
- required: boolean;
68
- placeholder?: undefined;
69
- } | {
70
- key: string;
71
- label: string;
72
- type: string;
73
- default: string;
74
- required: boolean;
75
- placeholder: string;
76
- })[];
77
- };
78
- minimax: {
79
- name: string;
80
- description: string;
81
- icon: string;
82
- fields: ({
83
- key: string;
84
- label: string;
85
- type: string;
86
- required: boolean;
87
- default?: undefined;
88
- placeholder?: undefined;
89
- } | {
90
- key: string;
91
- label: string;
92
- type: string;
93
- default: string;
94
- required: boolean;
95
- placeholder?: undefined;
96
- } | {
97
- key: string;
98
- label: string;
99
- type: string;
100
- default: string;
101
- required: boolean;
102
- placeholder: string;
103
- })[];
104
- };
105
- glm: {
106
- name: string;
107
- description: string;
108
- icon: string;
109
- fields: ({
110
- key: string;
111
- label: string;
112
- type: string;
113
- required: boolean;
114
- default?: undefined;
115
- placeholder?: undefined;
116
- } | {
117
- key: string;
118
- label: string;
119
- type: string;
120
- default: string;
121
- required: boolean;
122
- placeholder?: undefined;
123
- } | {
124
- key: string;
125
- label: string;
126
- type: string;
127
- default: string;
128
- required: boolean;
129
- placeholder: string;
130
- })[];
131
- };
132
- };
133
- localProviderTemplates: {
134
- ollama: {
135
- name: string;
136
- description: string;
137
- icon: string;
138
- defaultURL: string;
139
- fields: {
140
- key: string;
141
- label: string;
142
- type: string;
143
- default: string;
144
- required: boolean;
145
- placeholder: string;
146
- }[];
147
- };
148
- vllm: {
149
- name: string;
150
- description: string;
151
- icon: string;
152
- defaultURL: string;
153
- fields: ({
154
- key: string;
155
- label: string;
156
- type: string;
157
- default: string;
158
- required: boolean;
159
- placeholder: string;
160
- } | {
161
- key: string;
162
- label: string;
163
- type: string;
164
- required: boolean;
165
- default?: undefined;
166
- placeholder?: undefined;
167
- })[];
168
- };
169
- };
170
- constructor(config: ConfigProviderService, logger: LoggerService, translate: TranslateService);
171
- ngOnInit(): void;
172
- ngOnDestroy(): void;
173
- /**
174
- * 加载配置
175
- */
176
- private loadConfigs;
177
- /**
178
- * 切换展开/折叠
179
- */
180
- toggleExpand(providerName: string): void;
181
- /**
182
- * 检查是否是本地提供商
183
- */
184
- isLocalProvider(providerName: string): boolean;
185
- /**
186
- * 检测本地供应商状态
187
- */
188
- private checkLocalProviderStatus;
189
- /**
190
- * 获取本地供应商在线状态
191
- */
192
- getLocalStatus(providerName: string): {
193
- text: string;
194
- color: string;
195
- icon: string;
196
- };
197
- /**
198
- * 测试本地提供商连接
199
- */
200
- testLocalProvider(providerName: string): Promise<void>;
201
- /**
202
- * 保存配置
203
- */
204
- saveConfig(providerName: string): void;
205
- /**
206
- * 添加提供商
207
- */
208
- addProvider(providerName: string): void;
209
- /**
210
- * 删除提供商
211
- */
212
- removeProvider(providerName: string): void;
213
- /**
214
- * 切换提供商启用状态
215
- */
216
- toggleProviderEnabled(providerName: string): void;
217
- /**
218
- * 测试连接
219
- */
220
- testConnection(providerName: string): Promise<void>;
221
- /**
222
- * 获取测试端点
223
- */
224
- private getTestEndpoint;
225
- /**
226
- * 获取测试请求头
227
- */
228
- private getTestHeaders;
229
- /**
230
- * 获取测试请求体
231
- */
232
- private getTestBody;
233
- /**
234
- * 创建默认配置
235
- */
236
- private createDefaultConfig;
237
- /**
238
- * 获取字段类型
239
- */
240
- getFieldType(field: any): string;
241
- /**
242
- * 获取选项
243
- */
244
- getFieldOptions(field: any): string[];
245
- /**
246
- * 检查是否是密码字段
247
- */
248
- isPasswordField(field: any): boolean;
249
- /**
250
- * 检查是否必填
251
- */
252
- isRequired(field: any): boolean;
253
- /**
254
- * 获取提供商模板(支持云端和本地)
255
- */
256
- getProviderTemplate(providerName: string): any;
257
- /**
258
- * 获取提供商图标
259
- */
260
- getProviderIcon(providerName: string): string;
261
- /**
262
- * 检查是否有配置
263
- */
264
- hasConfig(providerName: string): boolean;
265
- /**
266
- * 获取配置值
267
- */
268
- getConfigValue(providerName: string, key: string, defaultValue?: any): any;
269
- /**
270
- * 更新配置值
271
- */
272
- updateConfigValue(providerName: string, key: string, value: any): void;
273
- }
@@ -1,33 +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 { TranslateService } from '../../i18n';
5
- export declare class SecuritySettingsComponent implements OnInit, OnDestroy {
6
- private config;
7
- private logger;
8
- private translate;
9
- settings: {
10
- enablePasswordProtection: boolean;
11
- enableRiskAssessment: boolean;
12
- defaultRiskLevel: string;
13
- enableConsentPersistence: boolean;
14
- consentExpiryDays: number;
15
- autoApproveLowRisk: boolean;
16
- promptForMediumRisk: boolean;
17
- requirePasswordForHighRisk: boolean;
18
- };
19
- password: string;
20
- newPattern: string;
21
- dangerousPatterns: string[];
22
- t: any;
23
- private destroy$;
24
- constructor(config: ConfigProviderService, logger: LoggerService, translate: TranslateService);
25
- ngOnInit(): void;
26
- ngOnDestroy(): void;
27
- private loadSettings;
28
- updateSetting(key: string, value: any): void;
29
- addDangerousPattern(pattern: string): void;
30
- removeDangerousPattern(index: number): void;
31
- saveSettings(): void;
32
- resetToDefaults(): void;
33
- }
@@ -1,10 +0,0 @@
1
- /**
2
- * AI工具栏按钮组件
3
- * 在Tabby工具栏显示AI助手按钮
4
- */
5
- export declare class AiToolbarButtonComponent {
6
- label: string;
7
- tooltip: string;
8
- showLabel: boolean;
9
- onClick(): void;
10
- }
@@ -1,53 +0,0 @@
1
- import { EventEmitter } from '@angular/core';
2
- import { CommandResponse } from '../../types/ai.types';
3
- import { RiskLevel } from '../../types/security.types';
4
- import { TerminalManagerService, TerminalInfo } from '../../services/terminal/terminal-manager.service';
5
- import { LoggerService } from '../../services/core/logger.service';
6
- export declare class CommandPreviewComponent {
7
- private terminalManager;
8
- private logger;
9
- command: CommandResponse | null;
10
- riskLevel: RiskLevel;
11
- executed: EventEmitter<CommandResponse>;
12
- closed: EventEmitter<void>;
13
- terminals: TerminalInfo[];
14
- selectedTerminalIndex: number;
15
- showTerminalSelector: boolean;
16
- executionStatus: 'idle' | 'executing' | 'success' | 'error';
17
- statusMessage: string;
18
- constructor(terminalManager: TerminalManagerService, logger: LoggerService);
19
- /**
20
- * 加载可用终端列表
21
- */
22
- loadTerminals(): void;
23
- getRiskText(): string;
24
- getRiskIcon(): string;
25
- /**
26
- * 复制命令到剪贴板
27
- */
28
- copyCommand(): void;
29
- /**
30
- * 执行命令到终端
31
- */
32
- execute(): void;
33
- /**
34
- * 仅插入命令(不执行)
35
- */
36
- insertOnly(): void;
37
- /**
38
- * 切换终端选择器
39
- */
40
- toggleTerminalSelector(): void;
41
- /**
42
- * 选择终端
43
- */
44
- selectTerminal(index: number): void;
45
- /**
46
- * 关闭预览
47
- */
48
- close(): void;
49
- /**
50
- * 选择替代命令
51
- */
52
- selectAlternative(alt: any): void;
53
- }
@@ -1,16 +0,0 @@
1
- import { EventEmitter, OnInit, OnDestroy } from '@angular/core';
2
- import { CommandResponse } from '../../types/ai.types';
3
- export declare class CommandSuggestionComponent implements OnInit, OnDestroy {
4
- inputText: string;
5
- suggestionSelected: EventEmitter<CommandResponse>;
6
- closed: EventEmitter<void>;
7
- suggestions: CommandResponse[];
8
- private inputSubject;
9
- private destroy$;
10
- ngOnInit(): void;
11
- ngOnDestroy(): void;
12
- onInputChange(text: string): void;
13
- private generateSuggestions;
14
- selectSuggestion(suggestion: CommandResponse): void;
15
- close(): void;
16
- }
@@ -1,48 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { TranslationKeys, SupportedLanguage, LanguageConfig } from './types';
3
- import { ConfigProviderService } from '../services/core/config-provider.service';
4
- export declare const languageConfigs: LanguageConfig[];
5
- export { TranslationKeys, SupportedLanguage, LanguageConfig } from './types';
6
- export declare class TranslateService {
7
- private config;
8
- private currentLang$;
9
- private currentTranslation$;
10
- constructor(config: ConfigProviderService);
11
- /**
12
- * 获取当前语言
13
- */
14
- get currentLanguage(): SupportedLanguage;
15
- /**
16
- * 监听语言变化
17
- */
18
- get language$(): Observable<SupportedLanguage>;
19
- /**
20
- * 获取翻译对象
21
- */
22
- get t(): TranslationKeys;
23
- /**
24
- * 监听翻译变化
25
- */
26
- get translation$(): Observable<TranslationKeys>;
27
- /**
28
- * 获取所有语言配置
29
- */
30
- get languages(): LanguageConfig[];
31
- /**
32
- * 设置语言
33
- */
34
- setLanguage(lang: SupportedLanguage): void;
35
- /**
36
- * 获取翻译 - 支持插值
37
- * 例如: translate('general.providerCount', { count: 3 })
38
- */
39
- translate(key: string, params?: Record<string, any>): string;
40
- /**
41
- * 简写方法
42
- */
43
- _(key: string, params?: Record<string, any>): string;
44
- /**
45
- * 获取指定语言的翻译
46
- */
47
- getTranslationForLang(lang: SupportedLanguage): TranslationKeys;
48
- }
@@ -1,5 +0,0 @@
1
- /**
2
- * English translations
3
- */
4
- import { TranslationKeys } from '../types';
5
- export declare const enUS: TranslationKeys;
@@ -1,5 +0,0 @@
1
- /**
2
- * 日本語翻訳
3
- */
4
- import { TranslationKeys } from '../types';
5
- export declare const jaJP: TranslationKeys;
@@ -1,5 +0,0 @@
1
- /**
2
- * 中文翻译
3
- */
4
- import { TranslationKeys } from '../types';
5
- export declare const zhCN: TranslationKeys;