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.
- package/dist/index.js +1 -1
- package/package.json +3 -3
- package/src/components/chat/ai-sidebar.component.scss +43 -0
- package/src/components/chat/ai-sidebar.component.ts +43 -1
- package/src/components/settings/ai-settings-tab.component.html +13 -5
- package/src/components/settings/ai-settings-tab.component.scss +164 -33
- package/src/components/settings/ai-settings-tab.component.ts +1 -0
- package/src/components/settings/context-settings.component.html +87 -0
- package/src/components/settings/context-settings.component.scss +133 -0
- package/src/components/settings/context-settings.component.ts +91 -0
- package/src/components/settings/provider-config.component.ts +12 -6
- package/src/i18n/translations/en-US.ts +27 -1
- package/src/i18n/translations/ja-JP.ts +27 -1
- package/src/i18n/translations/zh-CN.ts +27 -1
- package/src/i18n/types.ts +28 -0
- package/src/index.ts +6 -0
- package/src/services/chat/ai-sidebar.service.ts +1 -1
- package/src/services/chat/chat-session.service.ts +91 -2
- package/src/services/context/manager.ts +33 -2
- package/src/services/core/ai-assistant.service.ts +35 -11
- package/src/services/core/config-provider.service.ts +66 -0
- package/src/services/core/toast.service.ts +70 -0
- package/src/services/providers/anthropic-provider.service.ts +12 -4
- package/src/services/providers/glm-provider.service.ts +12 -4
- package/src/services/providers/minimax-provider.service.ts +12 -4
- package/src/styles/ai-assistant.scss +23 -0
- package/src/types/ai.types.ts +3 -3
- package/src/types/provider.types.ts +1 -0
- package/dist/components/chat/ai-sidebar.component.d.ts +0 -160
- package/dist/components/chat/chat-input.component.d.ts +0 -69
- package/dist/components/chat/chat-interface.component.d.ts +0 -124
- package/dist/components/chat/chat-message.component.d.ts +0 -53
- package/dist/components/chat/chat-settings.component.d.ts +0 -72
- package/dist/components/common/error-message.component.d.ts +0 -11
- package/dist/components/common/loading-spinner.component.d.ts +0 -4
- package/dist/components/security/consent-dialog.component.d.ts +0 -11
- package/dist/components/security/password-prompt.component.d.ts +0 -10
- package/dist/components/security/risk-confirm-dialog.component.d.ts +0 -36
- package/dist/components/settings/ai-settings-tab.component.d.ts +0 -82
- package/dist/components/settings/general-settings.component.d.ts +0 -94
- package/dist/components/settings/provider-config.component.d.ts +0 -300
- package/dist/components/settings/security-settings.component.d.ts +0 -33
- package/dist/components/terminal/ai-toolbar-button.component.d.ts +0 -10
- package/dist/components/terminal/command-preview.component.d.ts +0 -53
- package/dist/components/terminal/command-suggestion.component.d.ts +0 -16
- package/dist/i18n/index.d.ts +0 -48
- package/dist/i18n/translations/en-US.d.ts +0 -5
- package/dist/i18n/translations/ja-JP.d.ts +0 -5
- package/dist/i18n/translations/zh-CN.d.ts +0 -5
- package/dist/i18n/types.d.ts +0 -198
- package/dist/index-full.d.ts +0 -8
- package/dist/index-minimal.d.ts +0 -3
- package/dist/index.d.ts +0 -12
- package/dist/main.d.ts +0 -8
- package/dist/providers/tabby/ai-config.provider.d.ts +0 -70
- package/dist/providers/tabby/ai-hotkey.provider.d.ts +0 -15
- package/dist/providers/tabby/ai-settings-tab.provider.d.ts +0 -11
- package/dist/providers/tabby/ai-toolbar-button.provider.d.ts +0 -16
- package/dist/services/chat/ai-sidebar.service.d.ts +0 -111
- package/dist/services/chat/chat-history.service.d.ts +0 -145
- package/dist/services/chat/chat-session.service.d.ts +0 -113
- package/dist/services/chat/command-generator.service.d.ts +0 -49
- package/dist/services/context/compaction.d.ts +0 -90
- package/dist/services/context/manager.d.ts +0 -69
- package/dist/services/context/memory.d.ts +0 -116
- package/dist/services/context/token-budget.d.ts +0 -105
- package/dist/services/core/ai-assistant.service.d.ts +0 -127
- package/dist/services/core/ai-provider-manager.service.d.ts +0 -119
- package/dist/services/core/checkpoint.service.d.ts +0 -130
- package/dist/services/core/config-provider.service.d.ts +0 -137
- package/dist/services/core/logger.service.d.ts +0 -21
- package/dist/services/core/theme.service.d.ts +0 -53
- package/dist/services/core/toast.service.d.ts +0 -15
- package/dist/services/platform/escape-sequence.service.d.ts +0 -132
- package/dist/services/platform/platform-detection.service.d.ts +0 -146
- package/dist/services/providers/anthropic-provider.service.d.ts +0 -44
- package/dist/services/providers/base-provider.service.d.ts +0 -142
- package/dist/services/providers/glm-provider.service.d.ts +0 -96
- package/dist/services/providers/minimax-provider.service.d.ts +0 -102
- package/dist/services/providers/ollama-provider.service.d.ts +0 -76
- package/dist/services/providers/openai-compatible.service.d.ts +0 -44
- package/dist/services/providers/openai-provider.service.d.ts +0 -43
- package/dist/services/providers/vllm-provider.service.d.ts +0 -82
- package/dist/services/security/consent-manager.service.d.ts +0 -65
- package/dist/services/security/password-manager.service.d.ts +0 -67
- package/dist/services/security/risk-assessment.service.d.ts +0 -65
- package/dist/services/security/security-validator.service.d.ts +0 -36
- package/dist/services/terminal/buffer-analyzer.service.d.ts +0 -128
- package/dist/services/terminal/command-analyzer.service.d.ts +0 -20
- package/dist/services/terminal/context-menu.service.d.ts +0 -24
- package/dist/services/terminal/hotkey.service.d.ts +0 -28
- package/dist/services/terminal/terminal-context.service.d.ts +0 -100
- package/dist/services/terminal/terminal-manager.service.d.ts +0 -185
- package/dist/services/terminal/terminal-tools.service.d.ts +0 -79
- package/dist/types/ai.types.d.ts +0 -199
- package/dist/types/provider.types.d.ts +0 -105
- package/dist/types/security.types.d.ts +0 -85
- package/dist/types/terminal.types.d.ts +0 -150
- package/dist/utils/encryption.utils.d.ts +0 -83
- package/dist/utils/formatting.utils.d.ts +0 -106
- package/dist/utils/validation.utils.d.ts +0 -83
- package/jest.config.js +0 -47
- package/webpack-docker.config.js +0 -42
- package/webpack.config.js +0 -81
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
2
|
-
import { ChatRequest, ChatResponse, CommandRequest, CommandResponse, ExplainRequest, ExplainResponse } from '../../types/ai.types';
|
|
3
|
-
import { AiProviderManagerService } from './ai-provider-manager.service';
|
|
4
|
-
import { ConfigProviderService } from './config-provider.service';
|
|
5
|
-
import { TerminalContextService } from '../terminal/terminal-context.service';
|
|
6
|
-
import { TerminalToolsService } from '../terminal/terminal-tools.service';
|
|
7
|
-
import { LoggerService } from './logger.service';
|
|
8
|
-
import { OpenAiProviderService } from '../providers/openai-provider.service';
|
|
9
|
-
import { AnthropicProviderService } from '../providers/anthropic-provider.service';
|
|
10
|
-
import { MinimaxProviderService } from '../providers/minimax-provider.service';
|
|
11
|
-
import { GlmProviderService } from '../providers/glm-provider.service';
|
|
12
|
-
import { OpenAiCompatibleProviderService } from '../providers/openai-compatible.service';
|
|
13
|
-
import { OllamaProviderService } from '../providers/ollama-provider.service';
|
|
14
|
-
import { VllmProviderService } from '../providers/vllm-provider.service';
|
|
15
|
-
export declare class AiAssistantService {
|
|
16
|
-
private providerManager;
|
|
17
|
-
private config;
|
|
18
|
-
private terminalContext;
|
|
19
|
-
private terminalTools;
|
|
20
|
-
private logger;
|
|
21
|
-
private openaiProvider;
|
|
22
|
-
private anthropicProvider;
|
|
23
|
-
private minimaxProvider;
|
|
24
|
-
private glmProvider;
|
|
25
|
-
private openaiCompatibleProvider;
|
|
26
|
-
private ollamaProvider;
|
|
27
|
-
private vllmProvider;
|
|
28
|
-
private providerMapping;
|
|
29
|
-
constructor(providerManager: AiProviderManagerService, config: ConfigProviderService, terminalContext: TerminalContextService, terminalTools: TerminalToolsService, logger: LoggerService, openaiProvider: OpenAiProviderService, anthropicProvider: AnthropicProviderService, minimaxProvider: MinimaxProviderService, glmProvider: GlmProviderService, openaiCompatibleProvider: OpenAiCompatibleProviderService, ollamaProvider: OllamaProviderService, vllmProvider: VllmProviderService);
|
|
30
|
-
/**
|
|
31
|
-
* 构建提供商映射表
|
|
32
|
-
*/
|
|
33
|
-
private buildProviderMapping;
|
|
34
|
-
/**
|
|
35
|
-
* 初始化AI助手
|
|
36
|
-
*/
|
|
37
|
-
initialize(): void;
|
|
38
|
-
/**
|
|
39
|
-
* 注册并配置所有提供商
|
|
40
|
-
*/
|
|
41
|
-
private registerAllProviders;
|
|
42
|
-
/**
|
|
43
|
-
* 聊天功能
|
|
44
|
-
*/
|
|
45
|
-
chat(request: ChatRequest): Promise<ChatResponse>;
|
|
46
|
-
/**
|
|
47
|
-
* 流式聊天功能
|
|
48
|
-
*/
|
|
49
|
-
chatStream(request: ChatRequest): Observable<any>;
|
|
50
|
-
/**
|
|
51
|
-
* 执行工具调用(不阻塞流)
|
|
52
|
-
*/
|
|
53
|
-
private executeToolAndContinue;
|
|
54
|
-
/**
|
|
55
|
-
* 处理工具调用
|
|
56
|
-
* @param maxDepth 最大递归深度,避免无限循环
|
|
57
|
-
*/
|
|
58
|
-
private handleToolCalls;
|
|
59
|
-
/**
|
|
60
|
-
* 生成命令
|
|
61
|
-
*/
|
|
62
|
-
generateCommand(request: CommandRequest): Promise<CommandResponse>;
|
|
63
|
-
/**
|
|
64
|
-
* 解释命令
|
|
65
|
-
*/
|
|
66
|
-
explainCommand(request: ExplainRequest): Promise<ExplainResponse>;
|
|
67
|
-
/**
|
|
68
|
-
* 分析结果
|
|
69
|
-
*/
|
|
70
|
-
analyzeResult(request: any): Promise<any>;
|
|
71
|
-
/**
|
|
72
|
-
* 从选择生成命令
|
|
73
|
-
*/
|
|
74
|
-
generateCommandFromSelection(): Promise<CommandResponse | null>;
|
|
75
|
-
/**
|
|
76
|
-
* 解释当前选择
|
|
77
|
-
*/
|
|
78
|
-
explainCommandFromSelection(): Promise<ExplainResponse | null>;
|
|
79
|
-
/**
|
|
80
|
-
* 打开聊天界面
|
|
81
|
-
*/
|
|
82
|
-
openChatInterface(): void;
|
|
83
|
-
/**
|
|
84
|
-
* 获取提供商状态
|
|
85
|
-
*/
|
|
86
|
-
getProviderStatus(): any;
|
|
87
|
-
/**
|
|
88
|
-
* 切换提供商
|
|
89
|
-
*/
|
|
90
|
-
switchProvider(providerName: string): boolean;
|
|
91
|
-
/**
|
|
92
|
-
* 获取下一个提供商
|
|
93
|
-
*/
|
|
94
|
-
switchToNextProvider(): boolean;
|
|
95
|
-
/**
|
|
96
|
-
* 获取上一个提供商
|
|
97
|
-
*/
|
|
98
|
-
switchToPreviousProvider(): boolean;
|
|
99
|
-
/**
|
|
100
|
-
* 健康检查
|
|
101
|
-
*/
|
|
102
|
-
healthCheck(): Promise<{
|
|
103
|
-
provider: string;
|
|
104
|
-
status: string;
|
|
105
|
-
latency?: number;
|
|
106
|
-
}[]>;
|
|
107
|
-
/**
|
|
108
|
-
* 验证配置
|
|
109
|
-
*/
|
|
110
|
-
validateConfig(): Promise<{
|
|
111
|
-
name: string;
|
|
112
|
-
valid: boolean;
|
|
113
|
-
errors: string[];
|
|
114
|
-
}[]>;
|
|
115
|
-
/**
|
|
116
|
-
* 获取当前上下文感知提示
|
|
117
|
-
*/
|
|
118
|
-
getContextAwarePrompt(basePrompt: string): string;
|
|
119
|
-
/**
|
|
120
|
-
* 获取建议命令
|
|
121
|
-
*/
|
|
122
|
-
getSuggestedCommands(_input: string): Promise<string[]>;
|
|
123
|
-
/**
|
|
124
|
-
* 分析终端错误并提供修复建议
|
|
125
|
-
*/
|
|
126
|
-
getErrorFix(error: any): Promise<CommandResponse | null>;
|
|
127
|
-
}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
2
|
-
import { BaseAiProvider, ProviderManager, ProviderInfo, ProviderEvent } from '../../types/provider.types';
|
|
3
|
-
import { LoggerService } from './logger.service';
|
|
4
|
-
/**
|
|
5
|
-
* AI提供商管理器
|
|
6
|
-
* 负责注册、管理和切换不同的AI提供商
|
|
7
|
-
*/
|
|
8
|
-
export declare class AiProviderManagerService implements ProviderManager {
|
|
9
|
-
private logger;
|
|
10
|
-
private providers;
|
|
11
|
-
private activeProvider;
|
|
12
|
-
private eventSubject;
|
|
13
|
-
constructor(logger: LoggerService);
|
|
14
|
-
/**
|
|
15
|
-
* 注册AI提供商
|
|
16
|
-
*/
|
|
17
|
-
registerProvider(provider: BaseAiProvider): void;
|
|
18
|
-
/**
|
|
19
|
-
* 注销AI提供商
|
|
20
|
-
*/
|
|
21
|
-
unregisterProvider(name: string): void;
|
|
22
|
-
/**
|
|
23
|
-
* 获取指定提供商
|
|
24
|
-
*/
|
|
25
|
-
getProvider(name: string): BaseAiProvider | undefined;
|
|
26
|
-
/**
|
|
27
|
-
* 获取所有提供商
|
|
28
|
-
*/
|
|
29
|
-
getAllProviders(): BaseAiProvider[];
|
|
30
|
-
/**
|
|
31
|
-
* 获取当前激活的提供商
|
|
32
|
-
*/
|
|
33
|
-
getActiveProvider(): BaseAiProvider | undefined;
|
|
34
|
-
/**
|
|
35
|
-
* 设置激活的提供商
|
|
36
|
-
*/
|
|
37
|
-
setActiveProvider(name: string): boolean;
|
|
38
|
-
/**
|
|
39
|
-
* 获取提供商信息
|
|
40
|
-
*/
|
|
41
|
-
getProviderInfo(name: string): ProviderInfo | undefined;
|
|
42
|
-
/**
|
|
43
|
-
* 获取所有提供商信息
|
|
44
|
-
*/
|
|
45
|
-
getAllProviderInfo(): ProviderInfo[];
|
|
46
|
-
/**
|
|
47
|
-
* 检查提供商是否存在
|
|
48
|
-
*/
|
|
49
|
-
hasProvider(name: string): boolean;
|
|
50
|
-
/**
|
|
51
|
-
* 获取提供商数量
|
|
52
|
-
*/
|
|
53
|
-
getProviderCount(): number;
|
|
54
|
-
/**
|
|
55
|
-
* 获取当前激活的提供商名称
|
|
56
|
-
*/
|
|
57
|
-
getActiveProviderName(): string | null;
|
|
58
|
-
/**
|
|
59
|
-
* 验证所有提供商配置
|
|
60
|
-
*/
|
|
61
|
-
validateAllProviders(): Promise<{
|
|
62
|
-
name: string;
|
|
63
|
-
valid: boolean;
|
|
64
|
-
errors: string[];
|
|
65
|
-
}[]>;
|
|
66
|
-
/**
|
|
67
|
-
* 检查所有提供商健康状态
|
|
68
|
-
*/
|
|
69
|
-
checkAllProvidersHealth(): Promise<{
|
|
70
|
-
provider: string;
|
|
71
|
-
status: string;
|
|
72
|
-
latency?: number;
|
|
73
|
-
}[]>;
|
|
74
|
-
/**
|
|
75
|
-
* 获取启用的提供商
|
|
76
|
-
*/
|
|
77
|
-
getEnabledProviders(): BaseAiProvider[];
|
|
78
|
-
/**
|
|
79
|
-
* 获取启用的提供商名称
|
|
80
|
-
*/
|
|
81
|
-
getEnabledProviderNames(): string[];
|
|
82
|
-
/**
|
|
83
|
-
* 切换到下一个启用的提供商
|
|
84
|
-
*/
|
|
85
|
-
switchToNextProvider(): boolean;
|
|
86
|
-
/**
|
|
87
|
-
* 切换到上一个启用的提供商
|
|
88
|
-
*/
|
|
89
|
-
switchToPreviousProvider(): boolean;
|
|
90
|
-
/**
|
|
91
|
-
* 订阅提供商事件
|
|
92
|
-
*/
|
|
93
|
-
onEvent(): Observable<ProviderEvent>;
|
|
94
|
-
/**
|
|
95
|
-
* 获取所有启用的提供商中性能最好的(延迟最低)
|
|
96
|
-
*/
|
|
97
|
-
getBestPerformingProvider(): Promise<BaseAiProvider | null>;
|
|
98
|
-
/**
|
|
99
|
-
* 发送事件
|
|
100
|
-
*/
|
|
101
|
-
private emitEvent;
|
|
102
|
-
/**
|
|
103
|
-
* 获取提供商统计信息
|
|
104
|
-
*/
|
|
105
|
-
getStats(): {
|
|
106
|
-
totalProviders: number;
|
|
107
|
-
enabledProviders: number;
|
|
108
|
-
activeProvider: string | null;
|
|
109
|
-
providers: {
|
|
110
|
-
name: string;
|
|
111
|
-
enabled: boolean;
|
|
112
|
-
healthy: boolean;
|
|
113
|
-
}[];
|
|
114
|
-
};
|
|
115
|
-
/**
|
|
116
|
-
* 重置所有提供商
|
|
117
|
-
*/
|
|
118
|
-
reset(): void;
|
|
119
|
-
}
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
2
|
-
import { LoggerService } from './logger.service';
|
|
3
|
-
import { ChatHistoryService } from '../chat/chat-history.service';
|
|
4
|
-
import { Checkpoint, ApiMessage } from '../../types/ai.types';
|
|
5
|
-
/**
|
|
6
|
-
* 检查点状态
|
|
7
|
-
*/
|
|
8
|
-
export declare enum CheckpointStatus {
|
|
9
|
-
ACTIVE = "active",
|
|
10
|
-
ARCHIVED = "archived",
|
|
11
|
-
COMPRESSED = "compressed",
|
|
12
|
-
CORRUPTED = "corrupted"
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* 检查点过滤器
|
|
16
|
-
*/
|
|
17
|
-
export interface CheckpointFilter {
|
|
18
|
-
sessionId?: string;
|
|
19
|
-
status?: CheckpointStatus;
|
|
20
|
-
dateFrom?: Date;
|
|
21
|
-
dateTo?: Date;
|
|
22
|
-
tags?: string[];
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* 检查点搜索结果
|
|
26
|
-
*/
|
|
27
|
-
export interface CheckpointSearchResult {
|
|
28
|
-
checkpoint: Checkpoint;
|
|
29
|
-
relevanceScore: number;
|
|
30
|
-
matchedFields: string[];
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* 检查点统计
|
|
34
|
-
*/
|
|
35
|
-
export interface CheckpointStatistics {
|
|
36
|
-
totalCheckpoints: number;
|
|
37
|
-
activeCheckpoints: number;
|
|
38
|
-
archivedCheckpoints: number;
|
|
39
|
-
compressedCheckpoints: number;
|
|
40
|
-
averageMessagesPerCheckpoint: number;
|
|
41
|
-
totalTokenUsage: number;
|
|
42
|
-
oldestCheckpoint?: Date;
|
|
43
|
-
newestCheckpoint?: Date;
|
|
44
|
-
mostActiveSession?: string;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* 检查点管理器
|
|
48
|
-
* 负责检查点的创建、恢复、归档和清理
|
|
49
|
-
*/
|
|
50
|
-
export declare class CheckpointManager {
|
|
51
|
-
private logger;
|
|
52
|
-
private chatHistoryService;
|
|
53
|
-
private checkpointsSubject;
|
|
54
|
-
checkpoints$: Observable<Checkpoint[]>;
|
|
55
|
-
private readonly MAX_CHECKPOINTS_PER_SESSION;
|
|
56
|
-
private readonly AUTO_CLEANUP_DAYS;
|
|
57
|
-
private readonly COMPRESSION_THRESHOLD;
|
|
58
|
-
constructor(logger: LoggerService, chatHistoryService: ChatHistoryService);
|
|
59
|
-
/**
|
|
60
|
-
* 创建检查点
|
|
61
|
-
*/
|
|
62
|
-
create(sessionId: string, messages: ApiMessage[], summary?: string, metadata?: Partial<Checkpoint>): Checkpoint;
|
|
63
|
-
/**
|
|
64
|
-
* 恢复检查点
|
|
65
|
-
*/
|
|
66
|
-
restore(checkpointId: string): ApiMessage[];
|
|
67
|
-
/**
|
|
68
|
-
* 获取检查点
|
|
69
|
-
*/
|
|
70
|
-
getCheckpoint(checkpointId: string): Checkpoint | undefined;
|
|
71
|
-
/**
|
|
72
|
-
* 列出检查点
|
|
73
|
-
*/
|
|
74
|
-
listBySession(sessionId: string, filter?: CheckpointFilter): Checkpoint[];
|
|
75
|
-
/**
|
|
76
|
-
* 搜索检查点
|
|
77
|
-
*/
|
|
78
|
-
search(query: string, filter?: CheckpointFilter): CheckpointSearchResult[];
|
|
79
|
-
/**
|
|
80
|
-
* 归档检查点
|
|
81
|
-
*/
|
|
82
|
-
archive(checkpointId: string): void;
|
|
83
|
-
/**
|
|
84
|
-
* 删除检查点
|
|
85
|
-
*/
|
|
86
|
-
delete(checkpointId: string): void;
|
|
87
|
-
/**
|
|
88
|
-
* 压缩存储检查点
|
|
89
|
-
*/
|
|
90
|
-
compressForCheckpoint(checkpointId: string): Promise<Checkpoint>;
|
|
91
|
-
/**
|
|
92
|
-
* 清理孤儿检查点
|
|
93
|
-
*/
|
|
94
|
-
cleanupOrphaned(): number;
|
|
95
|
-
/**
|
|
96
|
-
* 自动清理过期检查点
|
|
97
|
-
*/
|
|
98
|
-
autoCleanup(): number;
|
|
99
|
-
/**
|
|
100
|
-
* 获取统计信息
|
|
101
|
-
*/
|
|
102
|
-
getStatistics(): CheckpointStatistics;
|
|
103
|
-
/**
|
|
104
|
-
* 导出检查点
|
|
105
|
-
*/
|
|
106
|
-
exportCheckpoint(checkpointId: string): string;
|
|
107
|
-
/**
|
|
108
|
-
* 导入检查点
|
|
109
|
-
*/
|
|
110
|
-
importCheckpoint(data: string): Checkpoint;
|
|
111
|
-
/**
|
|
112
|
-
* 比较检查点
|
|
113
|
-
*/
|
|
114
|
-
compare(checkpointId1: string, checkpointId2: string): {
|
|
115
|
-
messageDiff: number;
|
|
116
|
-
tokenDiff: number;
|
|
117
|
-
timeDiff: number;
|
|
118
|
-
summaryDiff: string;
|
|
119
|
-
};
|
|
120
|
-
private generateCheckpointId;
|
|
121
|
-
private calculateTokenUsage;
|
|
122
|
-
private generateSummary;
|
|
123
|
-
private applyFilter;
|
|
124
|
-
private validateCheckpoint;
|
|
125
|
-
private enforceSessionLimit;
|
|
126
|
-
private saveCheckpoint;
|
|
127
|
-
private removeFromStorage;
|
|
128
|
-
private updateCheckpoint;
|
|
129
|
-
private loadCheckpoints;
|
|
130
|
-
}
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
2
|
-
import { LoggerService } from './logger.service';
|
|
3
|
-
import { SecurityConfig } from '../../types/security.types';
|
|
4
|
-
import { ProviderConfig } from '../../types/provider.types';
|
|
5
|
-
/**
|
|
6
|
-
* AI助手配置
|
|
7
|
-
*/
|
|
8
|
-
export interface AiAssistantConfig {
|
|
9
|
-
enabled: boolean;
|
|
10
|
-
defaultProvider: string;
|
|
11
|
-
chatHistoryEnabled: boolean;
|
|
12
|
-
maxChatHistory: number;
|
|
13
|
-
autoSaveChat: boolean;
|
|
14
|
-
theme: 'light' | 'dark' | 'auto';
|
|
15
|
-
language: string;
|
|
16
|
-
logLevel: 'debug' | 'info' | 'warn' | 'error';
|
|
17
|
-
security: SecurityConfig;
|
|
18
|
-
providers: {
|
|
19
|
-
[name: string]: ProviderConfig;
|
|
20
|
-
};
|
|
21
|
-
hotkeys: {
|
|
22
|
-
openChat: string;
|
|
23
|
-
generateCommand: string;
|
|
24
|
-
explainCommand: string;
|
|
25
|
-
};
|
|
26
|
-
ui: {
|
|
27
|
-
showTooltips: boolean;
|
|
28
|
-
compactMode: boolean;
|
|
29
|
-
fontSize: number;
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
export declare class ConfigProviderService {
|
|
33
|
-
private logger;
|
|
34
|
-
private config;
|
|
35
|
-
private configChange$;
|
|
36
|
-
constructor(logger: LoggerService);
|
|
37
|
-
/**
|
|
38
|
-
* 加载配置
|
|
39
|
-
*/
|
|
40
|
-
private loadConfig;
|
|
41
|
-
/**
|
|
42
|
-
* 保存配置
|
|
43
|
-
*/
|
|
44
|
-
private saveConfig;
|
|
45
|
-
/**
|
|
46
|
-
* 获取完整配置
|
|
47
|
-
*/
|
|
48
|
-
getConfig(): AiAssistantConfig;
|
|
49
|
-
/**
|
|
50
|
-
* 设置完整配置
|
|
51
|
-
*/
|
|
52
|
-
setConfig(config: Partial<AiAssistantConfig>): void;
|
|
53
|
-
/**
|
|
54
|
-
* 获取指定配置项
|
|
55
|
-
*/
|
|
56
|
-
get<T>(key: string, defaultValue?: T): T | undefined;
|
|
57
|
-
/**
|
|
58
|
-
* 设置指定配置项
|
|
59
|
-
*/
|
|
60
|
-
set<T>(key: string, value: T): void;
|
|
61
|
-
/**
|
|
62
|
-
* 获取提供商配置
|
|
63
|
-
*/
|
|
64
|
-
getProviderConfig(name: string): ProviderConfig | null;
|
|
65
|
-
/**
|
|
66
|
-
* 设置提供商配置
|
|
67
|
-
*/
|
|
68
|
-
setProviderConfig(name: string, config: ProviderConfig): void;
|
|
69
|
-
/**
|
|
70
|
-
* 删除提供商配置
|
|
71
|
-
*/
|
|
72
|
-
deleteProviderConfig(name: string): void;
|
|
73
|
-
/**
|
|
74
|
-
* 获取所有提供商配置
|
|
75
|
-
*/
|
|
76
|
-
getAllProviderConfigs(): {
|
|
77
|
-
[name: string]: ProviderConfig;
|
|
78
|
-
};
|
|
79
|
-
/**
|
|
80
|
-
* 获取默认提供商
|
|
81
|
-
*/
|
|
82
|
-
getDefaultProvider(): string;
|
|
83
|
-
/**
|
|
84
|
-
* 设置默认提供商
|
|
85
|
-
*/
|
|
86
|
-
setDefaultProvider(name: string): void;
|
|
87
|
-
/**
|
|
88
|
-
* 获取安全配置
|
|
89
|
-
*/
|
|
90
|
-
getSecurityConfig(): SecurityConfig;
|
|
91
|
-
/**
|
|
92
|
-
* 更新安全配置
|
|
93
|
-
*/
|
|
94
|
-
updateSecurityConfig(config: Partial<SecurityConfig>): void;
|
|
95
|
-
/**
|
|
96
|
-
* 获取启用状态
|
|
97
|
-
*/
|
|
98
|
-
isEnabled(): boolean;
|
|
99
|
-
/**
|
|
100
|
-
* 设置启用状态
|
|
101
|
-
*/
|
|
102
|
-
setEnabled(enabled: boolean): void;
|
|
103
|
-
/**
|
|
104
|
-
* 获取日志级别
|
|
105
|
-
*/
|
|
106
|
-
getLogLevel(): string;
|
|
107
|
-
/**
|
|
108
|
-
* 设置日志级别
|
|
109
|
-
*/
|
|
110
|
-
setLogLevel(level: 'debug' | 'info' | 'warn' | 'error'): void;
|
|
111
|
-
/**
|
|
112
|
-
* 重置为默认配置
|
|
113
|
-
*/
|
|
114
|
-
reset(): void;
|
|
115
|
-
/**
|
|
116
|
-
* 订阅配置变化
|
|
117
|
-
*/
|
|
118
|
-
onConfigChange(): Observable<{
|
|
119
|
-
key: string;
|
|
120
|
-
value: any;
|
|
121
|
-
}>;
|
|
122
|
-
/**
|
|
123
|
-
* 导出配置
|
|
124
|
-
*/
|
|
125
|
-
exportConfig(): string;
|
|
126
|
-
/**
|
|
127
|
-
* 导入配置
|
|
128
|
-
*/
|
|
129
|
-
importConfig(configJson: string): void;
|
|
130
|
-
/**
|
|
131
|
-
* 验证配置
|
|
132
|
-
*/
|
|
133
|
-
validateConfig(): {
|
|
134
|
-
valid: boolean;
|
|
135
|
-
errors: string[];
|
|
136
|
-
};
|
|
137
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export declare class LoggerService {
|
|
2
|
-
private logLevel;
|
|
3
|
-
private logs;
|
|
4
|
-
constructor();
|
|
5
|
-
private loadLogLevel;
|
|
6
|
-
debug(message: string, data?: any): void;
|
|
7
|
-
info(message: string, data?: any): void;
|
|
8
|
-
warn(message: string, data?: any): void;
|
|
9
|
-
error(message: string, error?: any): void;
|
|
10
|
-
private shouldLog;
|
|
11
|
-
private log;
|
|
12
|
-
getLogs(): Array<{
|
|
13
|
-
level: string;
|
|
14
|
-
message: string;
|
|
15
|
-
timestamp: Date;
|
|
16
|
-
data?: any;
|
|
17
|
-
}>;
|
|
18
|
-
clearLogs(): void;
|
|
19
|
-
setLogLevel(level: 'debug' | 'info' | 'warn' | 'error'): void;
|
|
20
|
-
getLogLevel(): string;
|
|
21
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 主题服务 - 统一管理所有 AI 助手主题
|
|
3
|
-
* 通过动态 <style> 注入实现主题切换
|
|
4
|
-
*/
|
|
5
|
-
import { OnDestroy } from '@angular/core';
|
|
6
|
-
import { ConfigService } from 'tabby-core';
|
|
7
|
-
import { ConfigProviderService } from './config-provider.service';
|
|
8
|
-
export type ThemeType = 'auto' | 'light' | 'dark' | 'pixel' | 'tech';
|
|
9
|
-
export declare class ThemeService implements OnDestroy {
|
|
10
|
-
private config;
|
|
11
|
-
private tabbyConfig;
|
|
12
|
-
private currentTheme$;
|
|
13
|
-
private tabbySubscription?;
|
|
14
|
-
private styleElement;
|
|
15
|
-
readonly theme$: import("rxjs").Observable<ThemeType>;
|
|
16
|
-
private readonly allThemeClasses;
|
|
17
|
-
private readonly containerSelectors;
|
|
18
|
-
constructor(config: ConfigProviderService, tabbyConfig: ConfigService);
|
|
19
|
-
private init;
|
|
20
|
-
/**
|
|
21
|
-
* 获取当前主题
|
|
22
|
-
*/
|
|
23
|
-
getCurrentTheme(): ThemeType;
|
|
24
|
-
/**
|
|
25
|
-
* 设置并应用主题
|
|
26
|
-
*/
|
|
27
|
-
setTheme(theme: ThemeType): void;
|
|
28
|
-
/**
|
|
29
|
-
* 核心方法:动态注入主题样式
|
|
30
|
-
*/
|
|
31
|
-
applyTheme(theme: ThemeType): void;
|
|
32
|
-
/**
|
|
33
|
-
* 生成 CSS 变量字符串
|
|
34
|
-
*/
|
|
35
|
-
private buildCssVariables;
|
|
36
|
-
/**
|
|
37
|
-
* 生成主题特定样式(像素风格、科技风格等)
|
|
38
|
-
*/
|
|
39
|
-
private buildThemeStyles;
|
|
40
|
-
/**
|
|
41
|
-
* 更新 body 和 html 的类名
|
|
42
|
-
*/
|
|
43
|
-
private updateBodyClasses;
|
|
44
|
-
/**
|
|
45
|
-
* 获取 Tabby 当前的有效主题
|
|
46
|
-
*/
|
|
47
|
-
private getTabbyEffectiveTheme;
|
|
48
|
-
/**
|
|
49
|
-
* 刷新所有容器的主题类
|
|
50
|
-
*/
|
|
51
|
-
refreshContainers(): void;
|
|
52
|
-
ngOnDestroy(): void;
|
|
53
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export interface ToastMessage {
|
|
2
|
-
id: string;
|
|
3
|
-
type: 'success' | 'error' | 'warning' | 'info';
|
|
4
|
-
message: string;
|
|
5
|
-
duration?: number;
|
|
6
|
-
}
|
|
7
|
-
export declare class ToastService {
|
|
8
|
-
private toastSubject;
|
|
9
|
-
toast$: import("rxjs").Observable<ToastMessage>;
|
|
10
|
-
show(type: ToastMessage['type'], message: string, duration?: number): void;
|
|
11
|
-
success(message: string, duration?: number): void;
|
|
12
|
-
error(message: string, duration?: number): void;
|
|
13
|
-
warning(message: string, duration?: number): void;
|
|
14
|
-
info(message: string, duration?: number): void;
|
|
15
|
-
}
|