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,145 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { ChatMessage } from '../../types/ai.types';
3
- import { LoggerService } from '../core/logger.service';
4
- export interface SavedSession {
5
- sessionId: string;
6
- title: string;
7
- messages: ChatMessage[];
8
- createdAt: Date;
9
- updatedAt: Date;
10
- messageCount: number;
11
- contextInfo?: {
12
- tokenUsage?: {
13
- input: number;
14
- output: number;
15
- cacheRead: number;
16
- cacheWrite: number;
17
- };
18
- compactionHistory?: Array<{
19
- timestamp: Date;
20
- type: 'prune' | 'compact' | 'truncate';
21
- tokensSaved: number;
22
- condenseId?: string;
23
- }>;
24
- hasCompression?: boolean;
25
- lastCompactionAt?: Date;
26
- };
27
- }
28
- /**
29
- * 聊天历史服务
30
- * 持久化存储和管理聊天会话历史
31
- */
32
- export declare class ChatHistoryService {
33
- private logger;
34
- private sessionsSubject;
35
- sessions$: Observable<SavedSession[]>;
36
- constructor(logger: LoggerService);
37
- /**
38
- * 保存会话
39
- */
40
- saveSession(sessionId: string, messages: ChatMessage[], title?: string): void;
41
- /**
42
- * 加载会话
43
- */
44
- loadSession(sessionId: string): SavedSession | undefined;
45
- /**
46
- * 删除会话
47
- */
48
- deleteSession(sessionId: string): void;
49
- /**
50
- * 清空所有历史
51
- */
52
- clearAllHistory(): void;
53
- /**
54
- * 搜索会话
55
- */
56
- searchSessions(query: string): SavedSession[];
57
- /**
58
- * 获取最近的会话
59
- */
60
- getRecentSessions(count?: number): SavedSession[];
61
- /**
62
- * 获取会话统计
63
- */
64
- getStatistics(): {
65
- totalSessions: number;
66
- totalMessages: number;
67
- averageMessagesPerSession: number;
68
- oldestSession?: Date;
69
- newestSession?: Date;
70
- };
71
- /**
72
- * 导出所有历史
73
- */
74
- exportAllHistory(): string;
75
- /**
76
- * 导入历史
77
- */
78
- importHistory(data: string): void;
79
- private loadSessions;
80
- private saveToStorage;
81
- private generateSessionTitle;
82
- private trimMessages;
83
- /**
84
- * 更新会话的上下文信息(压缩标记支持)
85
- */
86
- updateContextInfo(sessionId: string, contextInfo: SavedSession['contextInfo']): void;
87
- /**
88
- * 导出会话(包含压缩状态)
89
- */
90
- exportSessionWithContext(sessionId: string): string | undefined;
91
- /**
92
- * 导出会话历史(包含所有压缩状态)
93
- */
94
- exportAllHistoryWithContext(): string;
95
- /**
96
- * 导入会话(包含压缩状态)
97
- */
98
- importSessionWithContext(data: string): void;
99
- /**
100
- * 清理压缩数据
101
- */
102
- cleanupCompressedData(sessionId?: string): void;
103
- /**
104
- * 获取压缩统计信息
105
- */
106
- getCompressionStatistics(): {
107
- totalSessions: number;
108
- sessionsWithCompression: number;
109
- totalTokensSaved: number;
110
- averageTokensSaved: number;
111
- lastCompactionAt?: Date;
112
- compactionHistory: Array<{
113
- sessionId: string;
114
- type: 'prune' | 'compact' | 'truncate';
115
- timestamp: Date;
116
- tokensSaved: number;
117
- }>;
118
- };
119
- /**
120
- * 记录压缩事件
121
- */
122
- recordCompactionEvent(sessionId: string, type: 'prune' | 'compact' | 'truncate', tokensSaved: number, condenseId?: string): void;
123
- /**
124
- * 检查会话是否有压缩标记
125
- */
126
- hasCompressionMarkers(sessionId: string): boolean;
127
- /**
128
- * 获取会话的压缩历史
129
- */
130
- getCompactionHistory(sessionId: string): Array<{
131
- timestamp: Date;
132
- type: 'prune' | 'compact' | 'truncate';
133
- tokensSaved: number;
134
- condenseId?: string;
135
- }>;
136
- /**
137
- * 更新Token使用统计
138
- */
139
- updateTokenUsage(sessionId: string, tokenUsage?: {
140
- input: number;
141
- output: number;
142
- cacheRead: number;
143
- cacheWrite: number;
144
- }): void;
145
- }
@@ -1,113 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { ChatMessage, Checkpoint } from '../../types/ai.types';
3
- import { AiAssistantService } from '../core/ai-assistant.service';
4
- import { LoggerService } from '../core/logger.service';
5
- import { ChatHistoryService } from './chat-history.service';
6
- /**
7
- * 聊天会话服务
8
- * 管理聊天会话的生命周期、消息历史和状态
9
- */
10
- export declare class ChatSessionService {
11
- private aiService;
12
- private logger;
13
- private chatHistoryService;
14
- private currentSessionId;
15
- private messagesSubject;
16
- private isTypingSubject;
17
- private errorSubject;
18
- private checkpointsSubject;
19
- messages$: Observable<ChatMessage[]>;
20
- isTyping$: Observable<boolean>;
21
- error$: Observable<string>;
22
- checkpoints$: Observable<Checkpoint[]>;
23
- constructor(aiService: AiAssistantService, logger: LoggerService, chatHistoryService: ChatHistoryService);
24
- /**
25
- * 创建新会话
26
- */
27
- createSession(): string;
28
- /**
29
- * 切换到指定会话
30
- */
31
- switchToSession(sessionId: string): void;
32
- /**
33
- * 发送消息
34
- */
35
- sendMessage(content: string, systemPrompt?: string): Promise<void>;
36
- /**
37
- * 清空会话历史
38
- */
39
- clearSession(): void;
40
- /**
41
- * 删除消息
42
- */
43
- deleteMessage(messageId: string): void;
44
- /**
45
- * 获取当前会话ID
46
- */
47
- getCurrentSessionId(): string | null;
48
- /**
49
- * 获取当前消息列表
50
- */
51
- getCurrentMessages(): ChatMessage[];
52
- /**
53
- * 导出会话
54
- */
55
- exportSession(): string;
56
- /**
57
- * 导入会话
58
- */
59
- importSession(sessionData: string): void;
60
- private generateSessionId;
61
- private generateMessageId;
62
- /**
63
- * 创建检查点
64
- */
65
- createCheckpoint(label?: string): Checkpoint;
66
- /**
67
- * 恢复检查点
68
- */
69
- restoreCheckpoint(checkpointId: string): void;
70
- /**
71
- * 删除检查点
72
- */
73
- deleteCheckpoint(checkpointId: string): void;
74
- /**
75
- * 获取指定检查点
76
- */
77
- getCheckpoint(checkpointId: string): Checkpoint | undefined;
78
- /**
79
- * 列出所有检查点
80
- */
81
- listCheckpoints(sessionId?: string): Checkpoint[];
82
- /**
83
- * 清空检查点
84
- */
85
- clearCheckpoints(sessionId?: string): void;
86
- /**
87
- * 压缩存储检查点
88
- */
89
- compressCheckpoint(checkpointId: string): Checkpoint;
90
- /**
91
- * 导出会话(包含检查点)
92
- */
93
- exportSessionWithCheckpoints(): string;
94
- /**
95
- * 导入会话(包含检查点)
96
- */
97
- importSessionWithCheckpoints(sessionData: string): void;
98
- /**
99
- * 获取检查点统计信息
100
- */
101
- getCheckpointStatistics(): {
102
- totalCheckpoints: number;
103
- averageMessagesPerCheckpoint: number;
104
- totalTokenUsage: number;
105
- oldestCheckpoint?: Date;
106
- newestCheckpoint?: Date;
107
- };
108
- private generateCheckpointId;
109
- private generateCheckpointSummary;
110
- private truncateText;
111
- private calculateInputTokens;
112
- private calculateOutputTokens;
113
- }
@@ -1,49 +0,0 @@
1
- import { CommandRequest, CommandResponse } from '../../types/ai.types';
2
- import { TerminalError } from '../../types/terminal.types';
3
- import { AiAssistantService } from '../core/ai-assistant.service';
4
- import { TerminalContextService } from '../terminal/terminal-context.service';
5
- import { SecurityValidatorService } from '../security/security-validator.service';
6
- import { LoggerService } from '../core/logger.service';
7
- export declare class CommandGeneratorService {
8
- private aiService;
9
- private terminalContext;
10
- private securityValidator;
11
- private logger;
12
- constructor(aiService: AiAssistantService, terminalContext: TerminalContextService, securityValidator: SecurityValidatorService, logger: LoggerService);
13
- /**
14
- * 生成命令(基于终端上下文)
15
- */
16
- generateCommand(request: CommandRequest): Promise<CommandResponse>;
17
- /**
18
- * 从选择文本生成命令
19
- */
20
- generateFromSelection(selection: string): Promise<CommandResponse>;
21
- /**
22
- * 从错误生成修复命令
23
- */
24
- generateFixForError(error: TerminalError): Promise<CommandResponse>;
25
- /**
26
- * 生成智能建议
27
- */
28
- generateSuggestions(input: string): Promise<string[]>;
29
- /**
30
- * 构建增强提示词
31
- */
32
- private buildEnhancedPrompt;
33
- /**
34
- * 获取系统提示词
35
- */
36
- private getSystemPrompt;
37
- /**
38
- * 解析AI响应
39
- */
40
- private parseAiResponse;
41
- /**
42
- * 构建终端上下文
43
- */
44
- private buildTerminalContext;
45
- /**
46
- * 生成唯一ID
47
- */
48
- private generateId;
49
- }
@@ -1,90 +0,0 @@
1
- import { LoggerService } from '../core/logger.service';
2
- import { ApiMessage, ContextConfig, CompactionResult, PruneResult, TruncationResult } from '../../types/ai.types';
3
- /**
4
- * 压缩算法实现类
5
- * 提供Prune、Compact、Truncate三种压缩算法的具体实现
6
- */
7
- export declare class Compaction {
8
- private logger;
9
- private config;
10
- constructor(logger: LoggerService);
11
- /**
12
- * Prune算法 - 移除工具输出中的冗余信息
13
- * 保留关键信息,移除重复、冗长或无关的内容
14
- */
15
- prune(messages: ApiMessage[]): Promise<PruneResult>;
16
- /**
17
- * Compact算法 - 使用AI生成摘要压缩上下文
18
- * 将多个消息合并为一个摘要,保留核心信息
19
- */
20
- compact(messages: ApiMessage[]): Promise<CompactionResult>;
21
- /**
22
- * Truncate算法 - 滑动窗口截断
23
- * 保留最近的消息,移除较早的消息
24
- */
25
- truncate(messages: ApiMessage[]): TruncationResult;
26
- /**
27
- * 智能压缩 - 根据消息类型和重要性选择最佳压缩策略
28
- */
29
- smartCompact(messages: ApiMessage[], tokenBudget: number): Promise<{
30
- strategy: 'prune' | 'compact' | 'truncate';
31
- result: PruneResult | CompactionResult | TruncationResult;
32
- messages: ApiMessage[];
33
- }>;
34
- /**
35
- * 更新配置
36
- */
37
- updateConfig(newConfig: Partial<ContextConfig>): void;
38
- /**
39
- * 获取当前配置
40
- */
41
- getConfig(): ContextConfig;
42
- /**
43
- * 裁剪单条消息
44
- */
45
- private pruneMessage;
46
- /**
47
- * 裁剪字符串内容
48
- */
49
- private pruneStringContent;
50
- /**
51
- * 裁剪复杂内容(工具调用结果等)
52
- */
53
- private pruneComplexContent;
54
- /**
55
- * 应用Prune结果到消息
56
- */
57
- private applyPruneResult;
58
- /**
59
- * 格式化消息用于摘要
60
- */
61
- private formatMessagesForSummary;
62
- /**
63
- * 提取文本内容
64
- */
65
- private extractTextContent;
66
- /**
67
- * 生成摘要(集成AI API)
68
- */
69
- private generateSummary;
70
- /**
71
- * 创建简单摘要(适用于短对话)
72
- */
73
- private createSimpleSummary;
74
- /**
75
- * 创建降级摘要(当AI API不可用时)
76
- */
77
- private createFallbackSummary;
78
- /**
79
- * 创建智能摘要(简化版)
80
- */
81
- private createIntelligentSummary;
82
- /**
83
- * 计算总Token数
84
- */
85
- private calculateTotalTokens;
86
- /**
87
- * 估算Token数量
88
- */
89
- private estimateTokens;
90
- }
@@ -1,69 +0,0 @@
1
- import { LoggerService } from '../core/logger.service';
2
- import { ChatHistoryService } from '../chat/chat-history.service';
3
- import { ApiMessage, ContextConfig, TokenUsage, CompactionResult, PruneResult, TruncationResult } from '../../types/ai.types';
4
- /**
5
- * 上下文管理器 - 上下文工程的核心组件
6
- * 负责Token预算管理、压缩触发决策、历史过滤等核心功能
7
- */
8
- export declare class ContextManager {
9
- private logger;
10
- private chatHistoryService;
11
- private config;
12
- constructor(logger: LoggerService, chatHistoryService: ChatHistoryService);
13
- /**
14
- * 计算Token使用量
15
- */
16
- calculateTokenUsage(messages: ApiMessage[]): TokenUsage;
17
- /**
18
- * 计算使用率
19
- */
20
- calculateUsageRate(tokenUsage: TokenUsage): number;
21
- /**
22
- * 判断是否需要管理上下文
23
- */
24
- shouldManageContext(sessionId: string): boolean;
25
- /**
26
- * 统一管理上下文入口
27
- */
28
- manageContext(sessionId: string): Promise<{
29
- compactionResult?: CompactionResult;
30
- pruneResult?: PruneResult;
31
- truncationResult?: TruncationResult;
32
- }>;
33
- /**
34
- * 获取有效历史(过滤被压缩/截断的消息)
35
- */
36
- getEffectiveHistory(sessionId: string): ApiMessage[];
37
- /**
38
- * 滑动窗口截断
39
- */
40
- truncate(sessionId: string, messages: ApiMessage[]): Promise<TruncationResult>;
41
- /**
42
- * 清理孤儿标记
43
- */
44
- cleanupOrphanedTags(sessionId: string): number;
45
- /**
46
- * 更新配置
47
- */
48
- updateConfig(newConfig: Partial<ContextConfig>): void;
49
- /**
50
- * 获取当前配置
51
- */
52
- getConfig(): ContextConfig;
53
- /**
54
- * 压缩(Compact)- 使用AI生成摘要
55
- */
56
- private compact;
57
- /**
58
- * 裁剪(Prune)- 移除工具输出中的冗余信息
59
- */
60
- private prune;
61
- /**
62
- * 格式化消息用于摘要
63
- */
64
- private formatMessagesForSummary;
65
- /**
66
- * 估算Token数量(简化版)
67
- */
68
- private estimateTokens;
69
- }
@@ -1,116 +0,0 @@
1
- import { LoggerService } from '../core/logger.service';
2
- import { ApiMessage } from '../../types/ai.types';
3
- /**
4
- * 记忆层类型
5
- */
6
- export declare enum MemoryLayer {
7
- SHORT_TERM = "short_term",
8
- MID_TERM = "mid_term",
9
- LONG_TERM = "long_term"
10
- }
11
- /**
12
- * 记忆项接口
13
- */
14
- export interface MemoryItem {
15
- id: string;
16
- layer: MemoryLayer;
17
- content: string;
18
- metadata: {
19
- timestamp: number;
20
- sessionId?: string;
21
- importance: number;
22
- tags?: string[];
23
- source?: string;
24
- };
25
- accessCount: number;
26
- lastAccessed: number;
27
- }
28
- /**
29
- * 记忆摘要
30
- */
31
- export interface MemorySummary {
32
- id: string;
33
- layer: MemoryLayer;
34
- summary: string;
35
- keyPoints: string[];
36
- createdAt: number;
37
- relatedMemories: string[];
38
- }
39
- /**
40
- * 记忆统计信息
41
- */
42
- export interface MemoryStatistics {
43
- totalItems: number;
44
- shortTermCount: number;
45
- midTermCount: number;
46
- longTermCount: number;
47
- totalAccessCount: number;
48
- averageImportance: number;
49
- oldestMemory?: Date;
50
- newestMemory?: Date;
51
- }
52
- /**
53
- * 三层记忆系统
54
- * 实现 Claude Code 架构的记忆管理
55
- */
56
- export declare class Memory {
57
- private logger;
58
- private shortTermMemories;
59
- private midTermMemories;
60
- private longTermMemories;
61
- private readonly MAX_SHORT_TERM_ITEMS;
62
- private readonly MAX_MID_TERM_ITEMS;
63
- private readonly MAX_LONG_TERM_ITEMS;
64
- private readonly IMPORTANCE_THRESHOLD;
65
- constructor(logger: LoggerService);
66
- /**
67
- * 存储记忆
68
- */
69
- store(content: string, layer: MemoryLayer, metadata?: Partial<MemoryItem['metadata']>): string;
70
- /**
71
- * 检索记忆
72
- */
73
- retrieve(memoryId: string): MemoryItem | undefined;
74
- /**
75
- * 搜索记忆
76
- */
77
- search(query: string, layer?: MemoryLayer): MemoryItem[];
78
- /**
79
- * 从消息创建记忆
80
- */
81
- createFromMessages(messages: ApiMessage[], layer: MemoryLayer): string[];
82
- /**
83
- * 生成中期记忆摘要
84
- */
85
- createMidTermSummary(sessionId: string): Promise<string>;
86
- /**
87
- * 保存到长期记忆(项目级)
88
- */
89
- saveToLongTerm(content: string, metadata?: Partial<MemoryItem['metadata']>): string;
90
- /**
91
- * 从长期记忆加载
92
- */
93
- loadFromLongTerm(query?: string): MemoryItem[];
94
- /**
95
- * 获取记忆统计
96
- */
97
- getStatistics(): MemoryStatistics;
98
- /**
99
- * 清理过期记忆
100
- */
101
- cleanup(): number;
102
- /**
103
- * 清空指定层级
104
- */
105
- clearLayer(layer: MemoryLayer): void;
106
- /**
107
- * 获取相关记忆
108
- */
109
- getRelatedMemories(memoryId: string): MemoryItem[];
110
- private generateMemoryId;
111
- private enforceLimit;
112
- private generateIntelligentSummary;
113
- private calculateSimilarity;
114
- private saveToStorage;
115
- private loadFromStorage;
116
- }
@@ -1,105 +0,0 @@
1
- import { LoggerService } from '../core/logger.service';
2
- import { ContextConfig, TokenUsage } from '../../types/ai.types';
3
- /**
4
- * 预算分配策略
5
- */
6
- export interface BudgetAllocation {
7
- context: number;
8
- reserved: number;
9
- buffer: number;
10
- available: number;
11
- }
12
- /**
13
- * 预算使用情况
14
- */
15
- export interface BudgetUsage {
16
- current: TokenUsage;
17
- allocated: BudgetAllocation;
18
- utilizationRate: number;
19
- projectedUsage: number;
20
- remaining: number;
21
- warnings: string[];
22
- }
23
- /**
24
- * 预算策略配置
25
- */
26
- export interface BudgetStrategy {
27
- conservative: boolean;
28
- aggressive: boolean;
29
- adaptive: boolean;
30
- dynamic: boolean;
31
- }
32
- /**
33
- * Token预算管理器
34
- * 负责动态分配和管理Token预算
35
- */
36
- export declare class TokenBudget {
37
- private logger;
38
- private config;
39
- private currentUsage;
40
- private usageHistory;
41
- private strategy;
42
- constructor(logger: LoggerService, config?: ContextConfig);
43
- /**
44
- * 计算预算分配
45
- */
46
- calculateBudget(): BudgetAllocation;
47
- /**
48
- * 检查预算阈值
49
- */
50
- checkThresholds(usage?: TokenUsage): {
51
- shouldPrune: boolean;
52
- shouldCompact: boolean;
53
- shouldTruncate: boolean;
54
- urgency: 'low' | 'medium' | 'high' | 'critical';
55
- };
56
- /**
57
- * 分配Token
58
- */
59
- allocateTokens(type: 'input' | 'output' | 'cache_read' | 'cache_write', amount: number, sessionId?: string): boolean;
60
- /**
61
- * 追踪使用量
62
- */
63
- trackUsage(usage: TokenUsage): void;
64
- /**
65
- * 获取预算使用情况
66
- */
67
- getBudgetUsage(): BudgetUsage;
68
- /**
69
- * 预估未来使用量
70
- */
71
- projectUsage(horizon?: number): number;
72
- /**
73
- * 重置预算
74
- */
75
- reset(sessionId?: string): void;
76
- /**
77
- * 更新策略
78
- */
79
- updateStrategy(strategy: Partial<BudgetStrategy>): void;
80
- /**
81
- * 获取策略
82
- */
83
- getStrategy(): BudgetStrategy;
84
- /**
85
- * 更新配置
86
- */
87
- updateConfig(config: Partial<ContextConfig>): void;
88
- /**
89
- * 获取配置
90
- */
91
- getConfig(): ContextConfig;
92
- /**
93
- * 估算消息Token成本
94
- */
95
- estimateMessageCost(message: string, role: 'user' | 'assistant' | 'system'): number;
96
- /**
97
- * 优化预算分配
98
- */
99
- optimizeAllocation(): BudgetAllocation;
100
- private updateUsage;
101
- private getAverageUsage;
102
- private calculateUsageVariation;
103
- private calculateAverageGrowth;
104
- private adjustStrategy;
105
- }