tabby-ai-assistant 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/README.md +232 -0
  2. package/dist/components/chat/chat-input.component.d.ts +65 -0
  3. package/dist/components/chat/chat-interface.component.d.ts +71 -0
  4. package/dist/components/chat/chat-message.component.d.ts +53 -0
  5. package/dist/components/chat/chat-settings.component.d.ts +62 -0
  6. package/dist/components/common/error-message.component.d.ts +11 -0
  7. package/dist/components/common/loading-spinner.component.d.ts +4 -0
  8. package/dist/components/security/consent-dialog.component.d.ts +11 -0
  9. package/dist/components/security/password-prompt.component.d.ts +10 -0
  10. package/dist/components/security/risk-confirm-dialog.component.d.ts +36 -0
  11. package/dist/components/settings/ai-settings-tab.component.d.ts +72 -0
  12. package/dist/components/settings/general-settings.component.d.ts +60 -0
  13. package/dist/components/settings/provider-config.component.d.ts +182 -0
  14. package/dist/components/settings/security-settings.component.d.ts +23 -0
  15. package/dist/components/terminal/ai-toolbar-button.component.d.ts +10 -0
  16. package/dist/components/terminal/command-preview.component.d.ts +15 -0
  17. package/dist/components/terminal/command-suggestion.component.d.ts +16 -0
  18. package/dist/index.d.ts +8 -0
  19. package/dist/index.js +2 -0
  20. package/dist/index.js.LICENSE.txt +18 -0
  21. package/dist/main.d.ts +8 -0
  22. package/dist/providers/tabby/ai-config.provider.d.ts +18 -0
  23. package/dist/providers/tabby/ai-hotkey.provider.d.ts +21 -0
  24. package/dist/providers/tabby/ai-settings-tab.provider.d.ts +11 -0
  25. package/dist/providers/tabby/ai-toolbar-button.provider.d.ts +17 -0
  26. package/dist/services/chat/chat-history.service.d.ts +67 -0
  27. package/dist/services/chat/chat-session.service.d.ts +58 -0
  28. package/dist/services/chat/command-generator.service.d.ts +49 -0
  29. package/dist/services/core/ai-assistant.service.d.ts +88 -0
  30. package/dist/services/core/ai-provider-manager.service.d.ts +119 -0
  31. package/dist/services/core/config-provider.service.d.ts +137 -0
  32. package/dist/services/core/logger.service.d.ts +21 -0
  33. package/dist/services/providers/anthropic-provider.service.d.ts +39 -0
  34. package/dist/services/providers/base-provider.service.d.ts +137 -0
  35. package/dist/services/providers/glm-provider.service.d.ts +91 -0
  36. package/dist/services/providers/minimax-provider.service.d.ts +93 -0
  37. package/dist/services/providers/openai-compatible.service.d.ts +39 -0
  38. package/dist/services/providers/openai-provider.service.d.ts +38 -0
  39. package/dist/services/security/consent-manager.service.d.ts +65 -0
  40. package/dist/services/security/password-manager.service.d.ts +67 -0
  41. package/dist/services/security/risk-assessment.service.d.ts +65 -0
  42. package/dist/services/security/security-validator.service.d.ts +36 -0
  43. package/dist/services/terminal/command-analyzer.service.d.ts +20 -0
  44. package/dist/services/terminal/context-menu.service.d.ts +24 -0
  45. package/dist/services/terminal/hotkey.service.d.ts +28 -0
  46. package/dist/services/terminal/terminal-context.service.d.ts +100 -0
  47. package/dist/types/ai.types.d.ts +107 -0
  48. package/dist/types/provider.types.d.ts +105 -0
  49. package/dist/types/security.types.d.ts +85 -0
  50. package/dist/types/terminal.types.d.ts +150 -0
  51. package/dist/utils/encryption.utils.d.ts +83 -0
  52. package/dist/utils/formatting.utils.d.ts +106 -0
  53. package/dist/utils/validation.utils.d.ts +83 -0
  54. package/integration-test-output.txt +50 -0
  55. package/integration-tests/api-integration.test.ts +183 -0
  56. package/jest.config.js +47 -0
  57. package/package.json +73 -0
  58. package/setup-jest.ts +37 -0
  59. package/src/components/chat/chat-input.component.html +61 -0
  60. package/src/components/chat/chat-input.component.scss +183 -0
  61. package/src/components/chat/chat-input.component.ts +149 -0
  62. package/src/components/chat/chat-interface.component.html +119 -0
  63. package/src/components/chat/chat-interface.component.scss +354 -0
  64. package/src/components/chat/chat-interface.component.ts +224 -0
  65. package/src/components/chat/chat-message.component.html +65 -0
  66. package/src/components/chat/chat-message.component.scss +178 -0
  67. package/src/components/chat/chat-message.component.ts +93 -0
  68. package/src/components/chat/chat-settings.component.html +132 -0
  69. package/src/components/chat/chat-settings.component.scss +172 -0
  70. package/src/components/chat/chat-settings.component.ts +168 -0
  71. package/src/components/common/error-message.component.ts +124 -0
  72. package/src/components/common/loading-spinner.component.ts +72 -0
  73. package/src/components/security/consent-dialog.component.ts +77 -0
  74. package/src/components/security/password-prompt.component.ts +79 -0
  75. package/src/components/security/risk-confirm-dialog.component.html +87 -0
  76. package/src/components/security/risk-confirm-dialog.component.scss +360 -0
  77. package/src/components/security/risk-confirm-dialog.component.ts +96 -0
  78. package/src/components/settings/ai-settings-tab.component.html +140 -0
  79. package/src/components/settings/ai-settings-tab.component.scss +371 -0
  80. package/src/components/settings/ai-settings-tab.component.ts +193 -0
  81. package/src/components/settings/general-settings.component.html +103 -0
  82. package/src/components/settings/general-settings.component.scss +285 -0
  83. package/src/components/settings/general-settings.component.ts +123 -0
  84. package/src/components/settings/provider-config.component.html +95 -0
  85. package/src/components/settings/provider-config.component.scss +60 -0
  86. package/src/components/settings/provider-config.component.ts +206 -0
  87. package/src/components/settings/security-settings.component.html +51 -0
  88. package/src/components/settings/security-settings.component.scss +66 -0
  89. package/src/components/settings/security-settings.component.ts +71 -0
  90. package/src/components/terminal/ai-toolbar-button.component.ts +49 -0
  91. package/src/components/terminal/command-preview.component.ts +185 -0
  92. package/src/components/terminal/command-suggestion.component.ts +128 -0
  93. package/src/index.ts +163 -0
  94. package/src/main.ts +16 -0
  95. package/src/providers/tabby/ai-config.provider.ts +70 -0
  96. package/src/providers/tabby/ai-hotkey.provider.ts +55 -0
  97. package/src/providers/tabby/ai-settings-tab.provider.ts +18 -0
  98. package/src/providers/tabby/ai-toolbar-button.provider.ts +49 -0
  99. package/src/services/chat/chat-history.service.ts +239 -0
  100. package/src/services/chat/chat-session.service.spec.ts +249 -0
  101. package/src/services/chat/chat-session.service.ts +180 -0
  102. package/src/services/chat/command-generator.service.ts +301 -0
  103. package/src/services/core/ai-assistant.service.ts +334 -0
  104. package/src/services/core/ai-provider-manager.service.ts +314 -0
  105. package/src/services/core/config-provider.service.ts +347 -0
  106. package/src/services/core/logger.service.ts +104 -0
  107. package/src/services/providers/anthropic-provider.service.ts +373 -0
  108. package/src/services/providers/base-provider.service.ts +369 -0
  109. package/src/services/providers/glm-provider.service.ts +467 -0
  110. package/src/services/providers/minimax-provider.service.ts +427 -0
  111. package/src/services/providers/openai-compatible.service.ts +394 -0
  112. package/src/services/providers/openai-provider.service.ts +376 -0
  113. package/src/services/security/consent-manager.service.ts +332 -0
  114. package/src/services/security/password-manager.service.ts +188 -0
  115. package/src/services/security/risk-assessment.service.ts +340 -0
  116. package/src/services/security/security-validator.service.ts +143 -0
  117. package/src/services/terminal/command-analyzer.service.ts +43 -0
  118. package/src/services/terminal/context-menu.service.ts +45 -0
  119. package/src/services/terminal/hotkey.service.ts +53 -0
  120. package/src/services/terminal/terminal-context.service.ts +317 -0
  121. package/src/styles/ai-assistant.scss +449 -0
  122. package/src/types/ai.types.ts +133 -0
  123. package/src/types/provider.types.ts +147 -0
  124. package/src/types/security.types.ts +103 -0
  125. package/src/types/terminal.types.ts +186 -0
  126. package/src/utils/encryption.utils.spec.ts +250 -0
  127. package/src/utils/encryption.utils.ts +271 -0
  128. package/src/utils/formatting.utils.ts +359 -0
  129. package/src/utils/validation.utils.spec.ts +225 -0
  130. package/src/utils/validation.utils.ts +314 -0
  131. package/tsconfig.json +45 -0
  132. package/webpack-docker.config.js +42 -0
  133. package/webpack.config.js +59 -0
  134. package/webpack.config.js.backup +57 -0
@@ -0,0 +1,182 @@
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ import { ConfigProviderService } from '../../services/core/config-provider.service';
3
+ import { LoggerService } from '../../services/core/logger.service';
4
+ export declare class ProviderConfigComponent implements OnInit {
5
+ private config;
6
+ private logger;
7
+ providerStatus: any;
8
+ refreshStatus: EventEmitter<void>;
9
+ switchProvider: EventEmitter<string>;
10
+ selectedProvider: string;
11
+ configs: {
12
+ [key: string]: any;
13
+ };
14
+ providerTemplates: {
15
+ openai: {
16
+ name: string;
17
+ description: string;
18
+ fields: ({
19
+ key: string;
20
+ label: string;
21
+ type: string;
22
+ required: boolean;
23
+ default?: undefined;
24
+ options?: undefined;
25
+ } | {
26
+ key: string;
27
+ label: string;
28
+ type: string;
29
+ default: string;
30
+ required: boolean;
31
+ options?: undefined;
32
+ } | {
33
+ key: string;
34
+ label: string;
35
+ type: string;
36
+ options: string[];
37
+ default: string;
38
+ required: boolean;
39
+ })[];
40
+ };
41
+ anthropic: {
42
+ name: string;
43
+ description: string;
44
+ fields: ({
45
+ key: string;
46
+ label: string;
47
+ type: string;
48
+ required: boolean;
49
+ default?: undefined;
50
+ options?: undefined;
51
+ } | {
52
+ key: string;
53
+ label: string;
54
+ type: string;
55
+ default: string;
56
+ required: boolean;
57
+ options?: undefined;
58
+ } | {
59
+ key: string;
60
+ label: string;
61
+ type: string;
62
+ options: string[];
63
+ default: string;
64
+ required: boolean;
65
+ })[];
66
+ };
67
+ minimax: {
68
+ name: string;
69
+ description: string;
70
+ fields: ({
71
+ key: string;
72
+ label: string;
73
+ type: string;
74
+ required: boolean;
75
+ default?: undefined;
76
+ options?: undefined;
77
+ } | {
78
+ key: string;
79
+ label: string;
80
+ type: string;
81
+ default: string;
82
+ required: boolean;
83
+ options?: undefined;
84
+ } | {
85
+ key: string;
86
+ label: string;
87
+ type: string;
88
+ options: string[];
89
+ default: string;
90
+ required: boolean;
91
+ })[];
92
+ };
93
+ glm: {
94
+ name: string;
95
+ description: string;
96
+ fields: ({
97
+ key: string;
98
+ label: string;
99
+ type: string;
100
+ required: boolean;
101
+ default?: undefined;
102
+ options?: undefined;
103
+ } | {
104
+ key: string;
105
+ label: string;
106
+ type: string;
107
+ default: string;
108
+ required: boolean;
109
+ options?: undefined;
110
+ } | {
111
+ key: string;
112
+ label: string;
113
+ type: string;
114
+ options: string[];
115
+ default: string;
116
+ required: boolean;
117
+ })[];
118
+ };
119
+ };
120
+ constructor(config: ConfigProviderService, logger: LoggerService);
121
+ ngOnInit(): void;
122
+ /**
123
+ * 加载配置
124
+ */
125
+ private loadConfigs;
126
+ /**
127
+ * 保存配置
128
+ */
129
+ saveConfig(providerName: string): void;
130
+ /**
131
+ * 添加提供商
132
+ */
133
+ addProvider(providerName: string): void;
134
+ /**
135
+ * 删除提供商
136
+ */
137
+ removeProvider(providerName: string): void;
138
+ /**
139
+ * 切换提供商启用状态
140
+ */
141
+ toggleProviderEnabled(providerName: string): void;
142
+ /**
143
+ * 测试连接
144
+ */
145
+ testConnection(providerName: string): Promise<void>;
146
+ /**
147
+ * 创建默认配置
148
+ */
149
+ private createDefaultConfig;
150
+ /**
151
+ * 获取字段类型
152
+ */
153
+ getFieldType(field: any): string;
154
+ /**
155
+ * 获取选项
156
+ */
157
+ getFieldOptions(field: any): string[];
158
+ /**
159
+ * 检查是否是密码字段
160
+ */
161
+ isPasswordField(field: any): boolean;
162
+ /**
163
+ * 检查是否必填
164
+ */
165
+ isRequired(field: any): boolean;
166
+ /**
167
+ * 获取提供商模板
168
+ */
169
+ getProviderTemplate(providerName: string): any;
170
+ /**
171
+ * 检查是否有配置
172
+ */
173
+ hasConfig(providerName: string): boolean;
174
+ /**
175
+ * 获取配置值
176
+ */
177
+ getConfigValue(providerName: string, key: string, defaultValue?: any): any;
178
+ /**
179
+ * 更新配置值
180
+ */
181
+ updateConfigValue(providerName: string, key: string, value: any): void;
182
+ }
@@ -0,0 +1,23 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { ConfigProviderService } from '../../services/core/config-provider.service';
3
+ import { LoggerService } from '../../services/core/logger.service';
4
+ export declare class SecuritySettingsComponent implements OnInit {
5
+ private config;
6
+ private logger;
7
+ settings: {
8
+ enablePasswordProtection: boolean;
9
+ consentExpiryDays: number;
10
+ autoApproveLowRisk: boolean;
11
+ promptForMediumRisk: boolean;
12
+ requirePasswordForHighRisk: boolean;
13
+ enableRiskAssessment: boolean;
14
+ };
15
+ dangerousPatterns: string[];
16
+ constructor(config: ConfigProviderService, logger: LoggerService);
17
+ ngOnInit(): void;
18
+ private loadSettings;
19
+ updateSetting(key: string, value: any): void;
20
+ addDangerousPattern(pattern: string): void;
21
+ removeDangerousPattern(index: number): void;
22
+ resetToDefaults(): void;
23
+ }
@@ -0,0 +1,10 @@
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
+ }
@@ -0,0 +1,15 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { CommandResponse } from '../../types/ai.types';
3
+ import { RiskLevel } from '../../types/security.types';
4
+ export declare class CommandPreviewComponent {
5
+ command: CommandResponse | null;
6
+ riskLevel: RiskLevel;
7
+ executed: EventEmitter<CommandResponse>;
8
+ closed: EventEmitter<void>;
9
+ getRiskText(): string;
10
+ getRiskIcon(): string;
11
+ copyCommand(): void;
12
+ execute(): void;
13
+ close(): void;
14
+ selectAlternative(alt: any): void;
15
+ }
@@ -0,0 +1,16 @@
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
+ }
@@ -0,0 +1,8 @@
1
+ import { AiAssistantService } from './services/core/ai-assistant.service';
2
+ import { ConfigProviderService } from './services/core/config-provider.service';
3
+ export default class AiAssistantModule {
4
+ private app;
5
+ private aiService;
6
+ private config;
7
+ constructor(app: any, aiService: AiAssistantService, config: ConfigProviderService);
8
+ }