@theia/ai-terminal 1.58.2 → 1.59.0-next.62
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/lib/browser/ai-terminal-agent.d.ts.map +1 -1
- package/lib/browser/ai-terminal-agent.js +4 -4
- package/lib/browser/ai-terminal-agent.js.map +1 -1
- package/lib/browser/ai-terminal-contribution.d.ts.map +1 -1
- package/lib/browser/ai-terminal-contribution.js +15 -13
- package/lib/browser/ai-terminal-contribution.js.map +1 -1
- package/package.json +7 -7
- package/src/browser/ai-terminal-agent.ts +5 -5
- package/src/browser/ai-terminal-contribution.ts +16 -15
- package/src/browser/style/ai-terminal.css +9 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-terminal-agent.d.ts","sourceRoot":"","sources":["../../src/browser/ai-terminal-agent.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,KAAK,EACL,6BAA6B,EAG7B,qBAAqB,EAAE,wBAAwB,EAC/C,aAAa,EAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAgB,OAAO,
|
|
1
|
+
{"version":3,"file":"ai-terminal-agent.d.ts","sourceRoot":"","sources":["../../src/browser/ai-terminal-agent.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,KAAK,EACL,6BAA6B,EAG7B,qBAAqB,EAAE,wBAAwB,EAC/C,aAAa,EAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAgB,OAAO,EAAO,MAAM,aAAa,CAAC;AAUzD,qBACa,eAAgB,YAAW,KAAK;IAEzC,SAAS,CAAC,gBAAgB,EAAE,6BAA6B,CAAC;IAE1D,EAAE,SAAwB;IAC1B,IAAI,SAAwB;IAC5B,WAAW,SAEqI;IAChJ,SAAS,UAAM;IACf,SAAS,UAAM;IACf,sBAAsB;;;;QAKpB;IACF,eAAe;;;;;QA8Db;IACF,yBAAyB,EAAE,wBAAwB,EAAE,CAKnD;IAGF,SAAS,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAGvD,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IAGvC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAEpB,WAAW,CACb,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,sBAAsB,EAAE,MAAM,EAAE,GACjC,OAAO,CAAC,MAAM,EAAE,CAAC;CAsFvB"}
|
|
@@ -29,9 +29,9 @@ let AiTerminalAgent = class AiTerminalAgent {
|
|
|
29
29
|
constructor() {
|
|
30
30
|
this.id = 'Terminal Assistant';
|
|
31
31
|
this.name = 'Terminal Assistant';
|
|
32
|
-
this.description = 'This agent provides assistance to write and execute arbitrary terminal commands. \
|
|
32
|
+
this.description = core_1.nls.localize('theia/ai/terminal/agent/description', 'This agent provides assistance to write and execute arbitrary terminal commands. \
|
|
33
33
|
Based on the user\'s request, it suggests commands and allows the user to directly paste and execute them in the terminal. \
|
|
34
|
-
It accesses the current directory, environment and the recent terminal output of the terminal session to provide context-aware assistance';
|
|
34
|
+
It accesses the current directory, environment and the recent terminal output of the terminal session to provide context-aware assistance');
|
|
35
35
|
this.variables = [];
|
|
36
36
|
this.functions = [];
|
|
37
37
|
this.agentSpecificVariables = [
|
|
@@ -44,7 +44,7 @@ let AiTerminalAgent = class AiTerminalAgent {
|
|
|
44
44
|
{
|
|
45
45
|
id: 'terminal-system',
|
|
46
46
|
name: 'AI Terminal System Prompt',
|
|
47
|
-
description: 'Prompt for the AI Terminal Assistant',
|
|
47
|
+
description: core_1.nls.localize('theia/ai/terminal/systemPrompt/description', 'Prompt for the AI Terminal Assistant'),
|
|
48
48
|
template: `{{!-- Made improvements or adaptations to this prompt template? We’d love for you to share it with the community! Contribute back here:
|
|
49
49
|
https://github.com/eclipse-theia/theia/discussions/new?category=prompt-template-contribution --}}
|
|
50
50
|
# Instructions
|
|
@@ -92,7 +92,7 @@ nothing to commit, working tree clean
|
|
|
92
92
|
{
|
|
93
93
|
id: 'terminal-user',
|
|
94
94
|
name: 'AI Terminal User Prompt',
|
|
95
|
-
description: 'Prompt that contains the user request',
|
|
95
|
+
description: core_1.nls.localize('theia/ai/terminal/userPrompt/description', 'Prompt that contains the user request'),
|
|
96
96
|
template: `{{!-- Made improvements or adaptations to this prompt template? We’d love for you to share it with the community! Contribute back here:
|
|
97
97
|
https://github.com/eclipse-theia/theia/discussions/new?category=prompt-template-contribution --}}
|
|
98
98
|
user-request: {{userRequest}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-terminal-agent.js","sourceRoot":"","sources":["../../src/browser/ai-terminal-agent.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,sDAOmC;AACnC,
|
|
1
|
+
{"version":3,"file":"ai-terminal-agent.js","sourceRoot":"","sources":["../../src/browser/ai-terminal-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-terminal-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/ai-terminal-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,
|
|
1
|
+
{"version":3,"file":"ai-terminal-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/ai-terminal-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAW,mBAAmB,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACjH,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAGpF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC;AAShG,qBACa,6BAA8B,YAAW,mBAAmB,EAAE,gBAAgB,EAAE,sBAAsB;IAG/G,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAG3C,SAAS,CAAC,aAAa,EAAE,eAAe,CAAC;IAGzC,SAAS,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;IAGzD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAE5C,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI;IAO1D,aAAa,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAM7C,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;CAYpD"}
|
|
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
exports.AiTerminalCommandContribution = void 0;
|
|
19
19
|
const tslib_1 = require("tslib");
|
|
20
20
|
const browser_1 = require("@theia/ai-core/lib/browser");
|
|
21
|
+
const core_1 = require("@theia/core");
|
|
21
22
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
22
23
|
const terminal_service_1 = require("@theia/terminal/lib/browser/base/terminal-service");
|
|
23
24
|
const terminal_frontend_contribution_1 = require("@theia/terminal/lib/browser/terminal-frontend-contribution");
|
|
@@ -25,21 +26,22 @@ const terminal_widget_impl_1 = require("@theia/terminal/lib/browser/terminal-wid
|
|
|
25
26
|
const ai_terminal_agent_1 = require("./ai-terminal-agent");
|
|
26
27
|
const ai_command_handler_factory_1 = require("@theia/ai-core/lib/browser/ai-command-handler-factory");
|
|
27
28
|
const ai_core_1 = require("@theia/ai-core");
|
|
28
|
-
const
|
|
29
|
+
const nls_1 = require("@theia/core/lib/common/nls");
|
|
30
|
+
const AI_TERMINAL_COMMAND = core_1.Command.toDefaultLocalizedCommand({
|
|
29
31
|
id: 'ai-terminal:open',
|
|
30
|
-
label: 'Ask the AI'
|
|
31
|
-
};
|
|
32
|
+
label: nls_1.nls.localize('theia/ai/terminal/askAi', 'Ask the AI')
|
|
33
|
+
});
|
|
32
34
|
let AiTerminalCommandContribution = class AiTerminalCommandContribution {
|
|
33
35
|
registerKeybindings(keybindings) {
|
|
34
36
|
keybindings.registerKeybinding({
|
|
35
37
|
command: AI_TERMINAL_COMMAND.id,
|
|
36
38
|
keybinding: 'ctrlcmd+i',
|
|
37
|
-
when: `terminalFocus && ${browser_1.
|
|
39
|
+
when: `terminalFocus && ${browser_1.ENABLE_AI_CONTEXT_KEY}`
|
|
38
40
|
});
|
|
39
41
|
}
|
|
40
42
|
registerMenus(menus) {
|
|
41
43
|
menus.registerMenuAction([...terminal_frontend_contribution_1.TerminalMenus.TERMINAL_CONTEXT_MENU, '_5'], {
|
|
42
|
-
when: browser_1.
|
|
44
|
+
when: browser_1.ENABLE_AI_CONTEXT_KEY,
|
|
43
45
|
commandId: AI_TERMINAL_COMMAND.id
|
|
44
46
|
});
|
|
45
47
|
}
|
|
@@ -87,14 +89,14 @@ class AiTerminalChatWidget {
|
|
|
87
89
|
const chatResultContainer = document.createElement('div');
|
|
88
90
|
chatResultContainer.className = 'ai-terminal-chat-result';
|
|
89
91
|
this.chatResultParagraph = document.createElement('p');
|
|
90
|
-
this.chatResultParagraph.textContent = 'How can I help you?';
|
|
92
|
+
this.chatResultParagraph.textContent = nls_1.nls.localize('theia/ai/terminal/howCanIHelp', 'How can I help you?');
|
|
91
93
|
chatResultContainer.appendChild(this.chatResultParagraph);
|
|
92
94
|
this.chatContainer.appendChild(chatResultContainer);
|
|
93
95
|
this.chatInputContainer = document.createElement('div');
|
|
94
96
|
this.chatInputContainer.className = 'ai-terminal-chat-input-container';
|
|
95
97
|
this.chatInput = document.createElement('textarea');
|
|
96
98
|
this.chatInput.className = 'theia-input theia-ChatInput';
|
|
97
|
-
this.chatInput.placeholder = 'Ask about a terminal command...';
|
|
99
|
+
this.chatInput.placeholder = nls_1.nls.localize('theia/ai/terminal/askTerminalCommand', 'Ask about a terminal command...');
|
|
98
100
|
this.chatInput.onkeydown = event => {
|
|
99
101
|
if (event.key === 'Enter' && !event.shiftKey) {
|
|
100
102
|
event.preventDefault();
|
|
@@ -120,7 +122,7 @@ class AiTerminalChatWidget {
|
|
|
120
122
|
const chatInputOptionsContainer = document.createElement('div');
|
|
121
123
|
const chatInputOptionsSpan = document.createElement('span');
|
|
122
124
|
chatInputOptionsSpan.className = 'codicon codicon-send option';
|
|
123
|
-
chatInputOptionsSpan.title = 'Send';
|
|
125
|
+
chatInputOptionsSpan.title = nls_1.nls.localizeByDefault('Send');
|
|
124
126
|
chatInputOptionsSpan.onclick = () => this.send();
|
|
125
127
|
chatInputOptionsContainer.appendChild(chatInputOptionsSpan);
|
|
126
128
|
this.chatInputContainer.appendChild(chatInputOptionsContainer);
|
|
@@ -132,7 +134,7 @@ class AiTerminalChatWidget {
|
|
|
132
134
|
const userRequest = this.chatInput.value;
|
|
133
135
|
if (userRequest) {
|
|
134
136
|
this.chatInput.value = '';
|
|
135
|
-
this.chatResultParagraph.innerText = 'Loading';
|
|
137
|
+
this.chatResultParagraph.innerText = nls_1.nls.localize('theia/ai/terminal/loading', 'Loading');
|
|
136
138
|
this.chatResultParagraph.className = 'loading';
|
|
137
139
|
const cwd = (await this.terminalWidget.cwd).toString();
|
|
138
140
|
const processInfo = await this.terminalWidget.processInfo;
|
|
@@ -142,16 +144,16 @@ class AiTerminalChatWidget {
|
|
|
142
144
|
if (this.commands.length > 0) {
|
|
143
145
|
this.chatResultParagraph.className = 'command';
|
|
144
146
|
this.chatResultParagraph.innerText = this.commands[0];
|
|
145
|
-
this.chatInput.placeholder = 'Hit enter to confirm';
|
|
147
|
+
this.chatInput.placeholder = nls_1.nls.localize('theia/ai/terminal/hitEnterConfirm', 'Hit enter to confirm');
|
|
146
148
|
if (this.commands.length > 1) {
|
|
147
|
-
this.chatInput.placeholder += ' or use ⇅ to show alternatives...';
|
|
149
|
+
this.chatInput.placeholder += nls_1.nls.localize('theia/ai/terminal/useArrowsAlternatives', ' or use ⇅ to show alternatives...');
|
|
148
150
|
}
|
|
149
151
|
this.haveResult = true;
|
|
150
152
|
}
|
|
151
153
|
else {
|
|
152
154
|
this.chatResultParagraph.className = '';
|
|
153
|
-
this.chatResultParagraph.innerText = 'No results';
|
|
154
|
-
this.chatInput.placeholder = 'Try again...';
|
|
155
|
+
this.chatResultParagraph.innerText = nls_1.nls.localizeByDefault('No results');
|
|
156
|
+
this.chatInput.placeholder = nls_1.nls.localize('theia/ai/terminal/tryAgain', 'Try again...');
|
|
155
157
|
}
|
|
156
158
|
}
|
|
157
159
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-terminal-contribution.js","sourceRoot":"","sources":["../../src/browser/ai-terminal-contribution.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,
|
|
1
|
+
{"version":3,"file":"ai-terminal-contribution.js","sourceRoot":"","sources":["../../src/browser/ai-terminal-contribution.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,wDAAmE;AACnE,sCAAiH;AAEjH,4DAAkE;AAClE,wFAAoF;AACpF,+GAA2F;AAC3F,2FAAsF;AACtF,2DAAsD;AACtD,sGAAgG;AAChG,4CAA8C;AAC9C,oDAAiD;AAEjD,MAAM,mBAAmB,GAAG,cAAO,CAAC,yBAAyB,CAAC;IAC1D,EAAE,EAAE,kBAAkB;IACtB,KAAK,EAAE,SAAG,CAAC,QAAQ,CAAC,yBAAyB,EAAE,YAAY,CAAC;CAC/D,CAAC,CAAC;AAGI,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IActC,mBAAmB,CAAC,WAA+B;QAC/C,WAAW,CAAC,kBAAkB,CAAC;YAC3B,OAAO,EAAE,mBAAmB,CAAC,EAAE;YAC/B,UAAU,EAAE,WAAW;YACvB,IAAI,EAAE,oBAAoB,+BAAqB,EAAE;SACpD,CAAC,CAAC;IACP,CAAC;IACD,aAAa,CAAC,KAAwB;QAClC,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAAG,8CAAa,CAAC,qBAAqB,EAAE,IAAI,CAAC,EAAE;YACrE,IAAI,EAAE,+BAAqB;YAC3B,SAAS,EAAE,mBAAmB,CAAC,EAAE;SACpC,CAAC,CAAC;IACP,CAAC;IACD,gBAAgB,CAAC,QAAyB;QACtC,QAAQ,CAAC,eAAe,CAAC,mBAAmB,EAAE,IAAI,CAAC,qBAAqB,CAAC;YACrE,OAAO,EAAE,GAAG,EAAE;gBACV,IAAI,IAAI,CAAC,eAAe,CAAC,eAAe,YAAY,yCAAkB,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC3H,IAAI,oBAAoB,CACpB,IAAI,CAAC,eAAe,CAAC,eAAe,EACpC,IAAI,CAAC,aAAa,CACrB,CAAC;gBACN,CAAC;YACL,CAAC;SACJ,CAAC,CAAC,CAAC;IACR,CAAC;CACJ,CAAA;AAvCY,sEAA6B;AAG5B;IADT,IAAA,kBAAM,EAAC,kCAAe,CAAC;;sEACmB;AAGjC;IADT,IAAA,kBAAM,EAAC,mCAAe,CAAC;sCACC,mCAAe;oEAAC;AAG/B;IADT,IAAA,kBAAM,EAAC,oDAAuB,CAAC;;4EACyB;AAGxC;IADhB,IAAA,kBAAM,EAAC,sBAAY,CAAC;;mEACuB;wCAZnC,6BAA6B;IADzC,IAAA,sBAAU,GAAE;GACA,6BAA6B,CAuCzC;AAED,MAAM,oBAAoB;IAUtB,YACc,cAAkC,EAClC,aAA8B;QAD9B,mBAAc,GAAd,cAAc,CAAoB;QAClC,kBAAa,GAAb,aAAa,CAAiB;QALlC,eAAU,GAAG,KAAK,CAAC;QAOzB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,4BAA4B,CAAC;QAE5D,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACvD,eAAe,CAAC,SAAS,GAAG,mCAAmC,CAAC;QAChE,eAAe,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/C,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAEhD,MAAM,mBAAmB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1D,mBAAmB,CAAC,SAAS,GAAG,yBAAyB,CAAC;QAC1D,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,mBAAmB,CAAC,WAAW,GAAG,SAAG,CAAC,QAAQ,CAAC,+BAA+B,EAAE,qBAAqB,CAAC,CAAC;QAC5G,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;QAEpD,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACxD,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,kCAAkC,CAAC;QAEvE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,6BAA6B,CAAC;QACzD,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,SAAG,CAAC,QAAQ,CAAC,sCAAsC,EAAE,iCAAiC,CAAC,CAAC;QACrH,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE;YAC/B,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC3C,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,EAAE,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;oBACjE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC;YACL,CAAC;iBAAM,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC;iBAAM,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,CAAC;iBAAM,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACtD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,CAAC;QACL,CAAC,CAAC;QACF,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEpD,MAAM,yBAAyB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,oBAAoB,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5D,oBAAoB,CAAC,SAAS,GAAG,6BAA6B,CAAC;QAC/D,oBAAoB,CAAC,KAAK,GAAG,SAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC3D,oBAAoB,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACjD,yBAAyB,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;QAC5D,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;QAE/D,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAExD,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEpD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAES,KAAK,CAAC,IAAI;QAChB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACzC,IAAI,WAAW,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;YAE1B,IAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,SAAG,CAAC,QAAQ,CAAC,2BAA2B,EAAE,SAAS,CAAC,CAAC;YAC1F,IAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,SAAS,CAAC;YAE/C,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;YACvD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;YAC1D,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC;YACrC,MAAM,sBAAsB,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;YAEhE,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,sBAAsB,CAAC,CAAC;YAEtG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC/C,IAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACtD,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,SAAG,CAAC,QAAQ,CAAC,mCAAmC,EAAE,sBAAsB,CAAC,CAAC;gBACvG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,SAAG,CAAC,QAAQ,CAAC,yCAAyC,EAAE,mCAAmC,CAAC,CAAC;gBAC/H,CAAC;gBACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,EAAE,CAAC;gBACxC,IAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,SAAG,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;gBACzE,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,SAAG,CAAC,QAAQ,CAAC,4BAA4B,EAAE,cAAc,CAAC,CAAC;YAC5F,CAAC;QACL,CAAC;IACL,CAAC;IAES,yBAAyB;QAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC;QACrB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EACxC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAC9F,CAAC;IACN,CAAC;IAES,mBAAmB,CAAC,IAAY;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAC/E,MAAM,SAAS,GAAG,CAAC,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACtF,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,gBAAgB,CAAC,KAAa;QACpC,IAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAES,OAAO;QACb,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC;IAC9C,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/ai-terminal",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.59.0-next.62+9e43c93ad",
|
|
4
4
|
"description": "Theia - AI Terminal Extension",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/ai-chat": "1.
|
|
7
|
-
"@theia/ai-core": "1.
|
|
8
|
-
"@theia/core": "1.
|
|
9
|
-
"@theia/terminal": "1.
|
|
6
|
+
"@theia/ai-chat": "1.59.0-next.62+9e43c93ad",
|
|
7
|
+
"@theia/ai-core": "1.59.0-next.62+9e43c93ad",
|
|
8
|
+
"@theia/core": "1.59.0-next.62+9e43c93ad",
|
|
9
|
+
"@theia/terminal": "1.59.0-next.62+9e43c93ad",
|
|
10
10
|
"zod": "^3.23.8",
|
|
11
11
|
"zod-to-json-schema": "^3.23.2"
|
|
12
12
|
},
|
|
@@ -43,10 +43,10 @@
|
|
|
43
43
|
"watch": "theiaext watch"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@theia/ext-scripts": "1.58.
|
|
46
|
+
"@theia/ext-scripts": "1.58.0"
|
|
47
47
|
},
|
|
48
48
|
"nyc": {
|
|
49
49
|
"extends": "../../configs/nyc.json"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "9e43c93ad61ea977db3974207bac5d7c1fd3ccd6"
|
|
52
52
|
}
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
LanguageModelRegistry, LanguageModelRequirement,
|
|
23
23
|
PromptService
|
|
24
24
|
} from '@theia/ai-core/lib/common';
|
|
25
|
-
import { generateUuid, ILogger } from '@theia/core';
|
|
25
|
+
import { generateUuid, ILogger, nls } from '@theia/core';
|
|
26
26
|
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
27
27
|
import { z } from 'zod';
|
|
28
28
|
import zodToJsonSchema from 'zod-to-json-schema';
|
|
@@ -39,9 +39,9 @@ export class AiTerminalAgent implements Agent {
|
|
|
39
39
|
|
|
40
40
|
id = 'Terminal Assistant';
|
|
41
41
|
name = 'Terminal Assistant';
|
|
42
|
-
description = 'This agent provides assistance to write and execute arbitrary terminal commands. \
|
|
42
|
+
description = nls.localize('theia/ai/terminal/agent/description', 'This agent provides assistance to write and execute arbitrary terminal commands. \
|
|
43
43
|
Based on the user\'s request, it suggests commands and allows the user to directly paste and execute them in the terminal. \
|
|
44
|
-
It accesses the current directory, environment and the recent terminal output of the terminal session to provide context-aware assistance';
|
|
44
|
+
It accesses the current directory, environment and the recent terminal output of the terminal session to provide context-aware assistance');
|
|
45
45
|
variables = [];
|
|
46
46
|
functions = [];
|
|
47
47
|
agentSpecificVariables = [
|
|
@@ -54,7 +54,7 @@ export class AiTerminalAgent implements Agent {
|
|
|
54
54
|
{
|
|
55
55
|
id: 'terminal-system',
|
|
56
56
|
name: 'AI Terminal System Prompt',
|
|
57
|
-
description: 'Prompt for the AI Terminal Assistant',
|
|
57
|
+
description: nls.localize('theia/ai/terminal/systemPrompt/description', 'Prompt for the AI Terminal Assistant'),
|
|
58
58
|
template: `{{!-- Made improvements or adaptations to this prompt template? We’d love for you to share it with the community! Contribute back here:
|
|
59
59
|
https://github.com/eclipse-theia/theia/discussions/new?category=prompt-template-contribution --}}
|
|
60
60
|
# Instructions
|
|
@@ -102,7 +102,7 @@ nothing to commit, working tree clean
|
|
|
102
102
|
{
|
|
103
103
|
id: 'terminal-user',
|
|
104
104
|
name: 'AI Terminal User Prompt',
|
|
105
|
-
description: 'Prompt that contains the user request',
|
|
105
|
+
description: nls.localize('theia/ai/terminal/userPrompt/description', 'Prompt that contains the user request'),
|
|
106
106
|
template: `{{!-- Made improvements or adaptations to this prompt template? We’d love for you to share it with the community! Contribute back here:
|
|
107
107
|
https://github.com/eclipse-theia/theia/discussions/new?category=prompt-template-contribution --}}
|
|
108
108
|
user-request: {{userRequest}}
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import {
|
|
18
|
-
import { CommandContribution, CommandRegistry, MenuContribution, MenuModelRegistry } from '@theia/core';
|
|
17
|
+
import { ENABLE_AI_CONTEXT_KEY } from '@theia/ai-core/lib/browser';
|
|
18
|
+
import { Command, CommandContribution, CommandRegistry, MenuContribution, MenuModelRegistry } from '@theia/core';
|
|
19
19
|
import { KeybindingContribution, KeybindingRegistry } from '@theia/core/lib/browser';
|
|
20
20
|
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
21
21
|
import { TerminalService } from '@theia/terminal/lib/browser/base/terminal-service';
|
|
@@ -24,11 +24,12 @@ import { TerminalWidgetImpl } from '@theia/terminal/lib/browser/terminal-widget-
|
|
|
24
24
|
import { AiTerminalAgent } from './ai-terminal-agent';
|
|
25
25
|
import { AICommandHandlerFactory } from '@theia/ai-core/lib/browser/ai-command-handler-factory';
|
|
26
26
|
import { AgentService } from '@theia/ai-core';
|
|
27
|
+
import { nls } from '@theia/core/lib/common/nls';
|
|
27
28
|
|
|
28
|
-
const AI_TERMINAL_COMMAND = {
|
|
29
|
+
const AI_TERMINAL_COMMAND = Command.toDefaultLocalizedCommand({
|
|
29
30
|
id: 'ai-terminal:open',
|
|
30
|
-
label: 'Ask the AI'
|
|
31
|
-
};
|
|
31
|
+
label: nls.localize('theia/ai/terminal/askAi', 'Ask the AI')
|
|
32
|
+
});
|
|
32
33
|
|
|
33
34
|
@injectable()
|
|
34
35
|
export class AiTerminalCommandContribution implements CommandContribution, MenuContribution, KeybindingContribution {
|
|
@@ -49,12 +50,12 @@ export class AiTerminalCommandContribution implements CommandContribution, MenuC
|
|
|
49
50
|
keybindings.registerKeybinding({
|
|
50
51
|
command: AI_TERMINAL_COMMAND.id,
|
|
51
52
|
keybinding: 'ctrlcmd+i',
|
|
52
|
-
when: `terminalFocus && ${
|
|
53
|
+
when: `terminalFocus && ${ENABLE_AI_CONTEXT_KEY}`
|
|
53
54
|
});
|
|
54
55
|
}
|
|
55
56
|
registerMenus(menus: MenuModelRegistry): void {
|
|
56
57
|
menus.registerMenuAction([...TerminalMenus.TERMINAL_CONTEXT_MENU, '_5'], {
|
|
57
|
-
when:
|
|
58
|
+
when: ENABLE_AI_CONTEXT_KEY,
|
|
58
59
|
commandId: AI_TERMINAL_COMMAND.id
|
|
59
60
|
});
|
|
60
61
|
}
|
|
@@ -97,7 +98,7 @@ class AiTerminalChatWidget {
|
|
|
97
98
|
const chatResultContainer = document.createElement('div');
|
|
98
99
|
chatResultContainer.className = 'ai-terminal-chat-result';
|
|
99
100
|
this.chatResultParagraph = document.createElement('p');
|
|
100
|
-
this.chatResultParagraph.textContent = 'How can I help you?';
|
|
101
|
+
this.chatResultParagraph.textContent = nls.localize('theia/ai/terminal/howCanIHelp', 'How can I help you?');
|
|
101
102
|
chatResultContainer.appendChild(this.chatResultParagraph);
|
|
102
103
|
this.chatContainer.appendChild(chatResultContainer);
|
|
103
104
|
|
|
@@ -106,7 +107,7 @@ class AiTerminalChatWidget {
|
|
|
106
107
|
|
|
107
108
|
this.chatInput = document.createElement('textarea');
|
|
108
109
|
this.chatInput.className = 'theia-input theia-ChatInput';
|
|
109
|
-
this.chatInput.placeholder = 'Ask about a terminal command...';
|
|
110
|
+
this.chatInput.placeholder = nls.localize('theia/ai/terminal/askTerminalCommand', 'Ask about a terminal command...');
|
|
110
111
|
this.chatInput.onkeydown = event => {
|
|
111
112
|
if (event.key === 'Enter' && !event.shiftKey) {
|
|
112
113
|
event.preventDefault();
|
|
@@ -129,7 +130,7 @@ class AiTerminalChatWidget {
|
|
|
129
130
|
const chatInputOptionsContainer = document.createElement('div');
|
|
130
131
|
const chatInputOptionsSpan = document.createElement('span');
|
|
131
132
|
chatInputOptionsSpan.className = 'codicon codicon-send option';
|
|
132
|
-
chatInputOptionsSpan.title = 'Send';
|
|
133
|
+
chatInputOptionsSpan.title = nls.localizeByDefault('Send');
|
|
133
134
|
chatInputOptionsSpan.onclick = () => this.send();
|
|
134
135
|
chatInputOptionsContainer.appendChild(chatInputOptionsSpan);
|
|
135
136
|
this.chatInputContainer.appendChild(chatInputOptionsContainer);
|
|
@@ -146,7 +147,7 @@ class AiTerminalChatWidget {
|
|
|
146
147
|
if (userRequest) {
|
|
147
148
|
this.chatInput.value = '';
|
|
148
149
|
|
|
149
|
-
this.chatResultParagraph.innerText = 'Loading';
|
|
150
|
+
this.chatResultParagraph.innerText = nls.localize('theia/ai/terminal/loading', 'Loading');
|
|
150
151
|
this.chatResultParagraph.className = 'loading';
|
|
151
152
|
|
|
152
153
|
const cwd = (await this.terminalWidget.cwd).toString();
|
|
@@ -159,15 +160,15 @@ class AiTerminalChatWidget {
|
|
|
159
160
|
if (this.commands.length > 0) {
|
|
160
161
|
this.chatResultParagraph.className = 'command';
|
|
161
162
|
this.chatResultParagraph.innerText = this.commands[0];
|
|
162
|
-
this.chatInput.placeholder = 'Hit enter to confirm';
|
|
163
|
+
this.chatInput.placeholder = nls.localize('theia/ai/terminal/hitEnterConfirm', 'Hit enter to confirm');
|
|
163
164
|
if (this.commands.length > 1) {
|
|
164
|
-
this.chatInput.placeholder += ' or use ⇅ to show alternatives...';
|
|
165
|
+
this.chatInput.placeholder += nls.localize('theia/ai/terminal/useArrowsAlternatives', ' or use ⇅ to show alternatives...');
|
|
165
166
|
}
|
|
166
167
|
this.haveResult = true;
|
|
167
168
|
} else {
|
|
168
169
|
this.chatResultParagraph.className = '';
|
|
169
|
-
this.chatResultParagraph.innerText = 'No results';
|
|
170
|
-
this.chatInput.placeholder = 'Try again...';
|
|
170
|
+
this.chatResultParagraph.innerText = nls.localizeByDefault('No results');
|
|
171
|
+
this.chatInput.placeholder = nls.localize('theia/ai/terminal/tryAgain', 'Try again...');
|
|
171
172
|
}
|
|
172
173
|
}
|
|
173
174
|
}
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
display: flex;
|
|
14
14
|
flex-direction: column;
|
|
15
15
|
align-items: center;
|
|
16
|
-
border:
|
|
16
|
+
border: var(--theia-border-width) solid var(--theia-dropdown-border);
|
|
17
|
+
border-radius: 4px;
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
.ai-terminal-chat-container .closeButton {
|
|
@@ -38,16 +39,22 @@
|
|
|
38
39
|
align-items: center;
|
|
39
40
|
}
|
|
40
41
|
|
|
41
|
-
|
|
42
|
+
#theia-bottom-content-panel .theia-ChatInput {
|
|
43
|
+
border: var(--theia-border-width) solid var(--theia-dropdown-border);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.ai-terminal-chat-input-container .theia-ChatInput {
|
|
42
47
|
flex-grow: 1;
|
|
43
48
|
height: 36px;
|
|
44
49
|
background-color: var(--theia-input-background);
|
|
50
|
+
border: var(--theia-border-width) solid var(--theia-dropdown-border);
|
|
45
51
|
border-radius: 4px;
|
|
46
52
|
box-sizing: border-box;
|
|
47
53
|
padding: 8px;
|
|
48
54
|
resize: none;
|
|
49
55
|
overflow: hidden;
|
|
50
56
|
line-height: 1.3rem;
|
|
57
|
+
margin-top: 0;
|
|
51
58
|
margin-right: 10px; /* Add some space between textarea and button */
|
|
52
59
|
}
|
|
53
60
|
|