@theia/ai-ide 1.67.0-next.59 → 1.67.0-next.86
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/address-pr-review-command-contribution.d.ts +9 -0
- package/lib/browser/address-pr-review-command-contribution.d.ts.map +1 -0
- package/lib/browser/address-pr-review-command-contribution.js +176 -0
- package/lib/browser/address-pr-review-command-contribution.js.map +1 -0
- package/lib/browser/ai-configuration/agent-configuration-widget.d.ts +12 -6
- package/lib/browser/ai-configuration/agent-configuration-widget.d.ts.map +1 -1
- package/lib/browser/ai-configuration/agent-configuration-widget.js +156 -104
- package/lib/browser/ai-configuration/agent-configuration-widget.js.map +1 -1
- package/lib/browser/ai-configuration/base/ai-card-grid-configuration-widget.d.ts +32 -0
- package/lib/browser/ai-configuration/base/ai-card-grid-configuration-widget.d.ts.map +1 -0
- package/lib/browser/ai-configuration/base/ai-card-grid-configuration-widget.js +55 -0
- package/lib/browser/ai-configuration/base/ai-card-grid-configuration-widget.js.map +1 -0
- package/lib/browser/ai-configuration/base/ai-configuration-base-widget.d.ts +14 -0
- package/lib/browser/ai-configuration/base/ai-configuration-base-widget.d.ts.map +1 -0
- package/lib/browser/ai-configuration/base/ai-configuration-base-widget.js +35 -0
- package/lib/browser/ai-configuration/base/ai-configuration-base-widget.js.map +1 -0
- package/lib/browser/ai-configuration/base/ai-hierarchical-configuration-widget.d.ts +23 -0
- package/lib/browser/ai-configuration/base/ai-hierarchical-configuration-widget.d.ts.map +1 -0
- package/lib/browser/ai-configuration/base/ai-hierarchical-configuration-widget.js +60 -0
- package/lib/browser/ai-configuration/base/ai-hierarchical-configuration-widget.js.map +1 -0
- package/lib/browser/ai-configuration/base/ai-list-detail-configuration-widget.d.ts +56 -0
- package/lib/browser/ai-configuration/base/ai-list-detail-configuration-widget.d.ts.map +1 -0
- package/lib/browser/ai-configuration/base/ai-list-detail-configuration-widget.js +96 -0
- package/lib/browser/ai-configuration/base/ai-list-detail-configuration-widget.js.map +1 -0
- package/lib/browser/ai-configuration/base/ai-table-configuration-widget.d.ts +45 -0
- package/lib/browser/ai-configuration/base/ai-table-configuration-widget.d.ts.map +1 -0
- package/lib/browser/ai-configuration/base/ai-table-configuration-widget.js +66 -0
- package/lib/browser/ai-configuration/base/ai-table-configuration-widget.js.map +1 -0
- package/lib/browser/ai-configuration/components/configuration-section.d.ts +13 -0
- package/lib/browser/ai-configuration/components/configuration-section.d.ts.map +1 -0
- package/lib/browser/ai-configuration/components/configuration-section.js +28 -0
- package/lib/browser/ai-configuration/components/configuration-section.js.map +1 -0
- package/lib/browser/ai-configuration/components/empty-state.d.ts +11 -0
- package/lib/browser/ai-configuration/components/empty-state.d.ts.map +1 -0
- package/lib/browser/ai-configuration/components/empty-state.js +26 -0
- package/lib/browser/ai-configuration/components/empty-state.js.map +1 -0
- package/lib/browser/ai-configuration/components/expandable-section.d.ts +14 -0
- package/lib/browser/ai-configuration/components/expandable-section.d.ts.map +1 -0
- package/lib/browser/ai-configuration/components/expandable-section.js +31 -0
- package/lib/browser/ai-configuration/components/expandable-section.js.map +1 -0
- package/lib/browser/ai-configuration/language-model-renderer.d.ts.map +1 -1
- package/lib/browser/ai-configuration/language-model-renderer.js +23 -22
- package/lib/browser/ai-configuration/language-model-renderer.js.map +1 -1
- package/lib/browser/ai-configuration/mcp-configuration-widget.d.ts +0 -1
- package/lib/browser/ai-configuration/mcp-configuration-widget.d.ts.map +1 -1
- package/lib/browser/ai-configuration/mcp-configuration-widget.js +86 -80
- package/lib/browser/ai-configuration/mcp-configuration-widget.js.map +1 -1
- package/lib/browser/ai-configuration/model-aliases-configuration-widget.d.ts +8 -22
- package/lib/browser/ai-configuration/model-aliases-configuration-widget.d.ts.map +1 -1
- package/lib/browser/ai-configuration/model-aliases-configuration-widget.js +49 -78
- package/lib/browser/ai-configuration/model-aliases-configuration-widget.js.map +1 -1
- package/lib/browser/ai-configuration/template-settings-renderer.d.ts.map +1 -1
- package/lib/browser/ai-configuration/template-settings-renderer.js +11 -11
- package/lib/browser/ai-configuration/template-settings-renderer.js.map +1 -1
- package/lib/browser/ai-configuration/token-usage-configuration-widget.d.ts +7 -8
- package/lib/browser/ai-configuration/token-usage-configuration-widget.d.ts.map +1 -1
- package/lib/browser/ai-configuration/token-usage-configuration-widget.js +92 -78
- package/lib/browser/ai-configuration/token-usage-configuration-widget.js.map +1 -1
- package/lib/browser/ai-configuration/tools-configuration-widget.d.ts +12 -7
- package/lib/browser/ai-configuration/tools-configuration-widget.d.ts.map +1 -1
- package/lib/browser/ai-configuration/tools-configuration-widget.js +43 -35
- package/lib/browser/ai-configuration/tools-configuration-widget.js.map +1 -1
- package/lib/browser/ai-configuration/variable-configuration-widget.d.ts +8 -4
- package/lib/browser/ai-configuration/variable-configuration-widget.d.ts.map +1 -1
- package/lib/browser/ai-configuration/variable-configuration-widget.js +61 -28
- package/lib/browser/ai-configuration/variable-configuration-widget.js.map +1 -1
- package/lib/browser/analyze-gh-ticket-command-contribution.d.ts +9 -0
- package/lib/browser/analyze-gh-ticket-command-contribution.d.ts.map +1 -0
- package/lib/browser/analyze-gh-ticket-command-contribution.js +172 -0
- package/lib/browser/analyze-gh-ticket-command-contribution.js.map +1 -0
- package/lib/browser/frontend-module.d.ts.map +1 -1
- package/lib/browser/frontend-module.js +6 -0
- package/lib/browser/frontend-module.js.map +1 -1
- package/lib/browser/implement-gh-ticket-command-contribution.d.ts +9 -0
- package/lib/browser/implement-gh-ticket-command-contribution.d.ts.map +1 -0
- package/lib/browser/implement-gh-ticket-command-contribution.js +156 -0
- package/lib/browser/implement-gh-ticket-command-contribution.js.map +1 -0
- package/package.json +21 -21
- package/src/browser/address-pr-review-command-contribution.ts +180 -0
- package/src/browser/ai-configuration/agent-configuration-widget.tsx +256 -135
- package/src/browser/ai-configuration/base/ai-card-grid-configuration-widget.tsx +72 -0
- package/src/browser/ai-configuration/base/ai-configuration-base-widget.tsx +37 -0
- package/src/browser/ai-configuration/base/ai-hierarchical-configuration-widget.tsx +51 -0
- package/src/browser/ai-configuration/base/ai-list-detail-configuration-widget.tsx +140 -0
- package/src/browser/ai-configuration/base/ai-table-configuration-widget.tsx +107 -0
- package/src/browser/ai-configuration/components/configuration-section.tsx +37 -0
- package/src/browser/ai-configuration/components/empty-state.tsx +30 -0
- package/src/browser/ai-configuration/components/expandable-section.tsx +51 -0
- package/src/browser/ai-configuration/language-model-renderer.tsx +68 -63
- package/src/browser/ai-configuration/mcp-configuration-widget.tsx +80 -85
- package/src/browser/ai-configuration/model-aliases-configuration-widget.tsx +93 -107
- package/src/browser/ai-configuration/template-settings-renderer.tsx +25 -29
- package/src/browser/ai-configuration/token-usage-configuration-widget.tsx +130 -130
- package/src/browser/ai-configuration/tools-configuration-widget.tsx +68 -59
- package/src/browser/ai-configuration/variable-configuration-widget.tsx +95 -45
- package/src/browser/analyze-gh-ticket-command-contribution.ts +176 -0
- package/src/browser/frontend-module.ts +6 -0
- package/src/browser/implement-gh-ticket-command-contribution.ts +160 -0
- package/src/browser/style/ai-configuration-base.css +90 -0
- package/src/browser/style/ai-configuration-cards.css +60 -0
- package/src/browser/style/ai-configuration-hierarchical.css +61 -0
- package/src/browser/style/ai-configuration-list-detail.css +88 -0
- package/src/browser/style/ai-configuration-table.css +73 -0
- package/src/browser/style/index.css +458 -288
- package/src/browser/style/widgets/mcp-configuration.css +253 -0
- package/src/browser/style/widgets/model-aliases-configuration.css +74 -0
|
@@ -25,44 +25,77 @@ const React = require("@theia/core/shared/react");
|
|
|
25
25
|
const agent_configuration_widget_1 = require("./agent-configuration-widget");
|
|
26
26
|
const ai_configuration_service_1 = require("./ai-configuration-service");
|
|
27
27
|
const core_1 = require("@theia/core");
|
|
28
|
-
|
|
28
|
+
const ai_list_detail_configuration_widget_1 = require("./base/ai-list-detail-configuration-widget");
|
|
29
|
+
let AIVariableConfigurationWidget = AIVariableConfigurationWidget_1 = class AIVariableConfigurationWidget extends ai_list_detail_configuration_widget_1.AIListDetailConfigurationWidget {
|
|
29
30
|
init() {
|
|
30
31
|
this.id = AIVariableConfigurationWidget_1.ID;
|
|
31
32
|
this.title.label = AIVariableConfigurationWidget_1.LABEL;
|
|
32
33
|
this.title.closable = false;
|
|
33
|
-
this.
|
|
34
|
-
this.
|
|
34
|
+
this.addClass('ai-configuration-widget');
|
|
35
|
+
this.loadItems().then(() => this.update());
|
|
36
|
+
this.toDispose.push(this.variableService.onDidChangeVariables(async () => {
|
|
37
|
+
await this.loadItems();
|
|
38
|
+
this.update();
|
|
39
|
+
}));
|
|
35
40
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
React.createElement("small", null, variable.id),
|
|
41
|
-
React.createElement("small", null, variable.description),
|
|
42
|
-
this.renderReferencedVariables(variable),
|
|
43
|
-
this.renderArgs(variable)))));
|
|
44
|
-
}
|
|
45
|
-
renderReferencedVariables(variable) {
|
|
46
|
-
const agents = this.getAgentsForVariable(variable);
|
|
47
|
-
if (agents.length === 0) {
|
|
48
|
-
return;
|
|
41
|
+
async loadItems() {
|
|
42
|
+
this.items = this.variableService.getVariables();
|
|
43
|
+
if (this.items.length > 0 && !this.selectedItem) {
|
|
44
|
+
this.selectedItem = this.items[0];
|
|
49
45
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
46
|
+
}
|
|
47
|
+
getItemId(variable) {
|
|
48
|
+
return variable.id;
|
|
49
|
+
}
|
|
50
|
+
getItemLabel(variable) {
|
|
51
|
+
return variable.name;
|
|
52
|
+
}
|
|
53
|
+
getEmptySelectionMessage() {
|
|
54
|
+
return core_1.nls.localize('theia/ai/ide/variableConfiguration/selectVariable', 'Please select a Variable.');
|
|
55
|
+
}
|
|
56
|
+
renderItemDetail(variable) {
|
|
57
|
+
return (React.createElement("div", null,
|
|
58
|
+
React.createElement("div", { className: "settings-section-title settings-section-category-title" },
|
|
59
|
+
variable.name,
|
|
60
|
+
React.createElement("pre", { className: 'ai-id-label' },
|
|
61
|
+
"Id: ",
|
|
62
|
+
variable.id)),
|
|
63
|
+
variable.description && (React.createElement("div", { style: {
|
|
64
|
+
marginBottom: 'calc(var(--theia-ui-padding) * 2)',
|
|
65
|
+
color: 'var(--theia-descriptionForeground)',
|
|
66
|
+
lineHeight: '1.5'
|
|
67
|
+
} }, variable.description)),
|
|
68
|
+
this.renderArgs(variable),
|
|
69
|
+
this.renderReferencedVariables(variable)));
|
|
56
70
|
}
|
|
57
71
|
renderArgs(variable) {
|
|
58
72
|
if (variable.args === undefined || variable.args.length === 0) {
|
|
59
|
-
return;
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
return (React.createElement(React.Fragment, null,
|
|
76
|
+
React.createElement("div", { className: "settings-section-subcategory-title" }, core_1.nls.localize('theia/ai/ide/variableConfiguration/variableArgs', 'Arguments')),
|
|
77
|
+
React.createElement("div", { style: {
|
|
78
|
+
display: 'grid',
|
|
79
|
+
gridTemplateColumns: 'auto 1fr',
|
|
80
|
+
gap: 'calc(var(--theia-ui-padding) / 2) var(--theia-ui-padding)',
|
|
81
|
+
alignItems: 'start',
|
|
82
|
+
marginBottom: 'calc(var(--theia-ui-padding) * 2)'
|
|
83
|
+
} }, variable.args.map(arg => (React.createElement(React.Fragment, { key: arg.name },
|
|
84
|
+
React.createElement("span", { style: { fontWeight: 500 } },
|
|
85
|
+
arg.name,
|
|
86
|
+
":"),
|
|
87
|
+
React.createElement("span", { style: { color: 'var(--theia-descriptionForeground)' } }, arg.description)))))));
|
|
88
|
+
}
|
|
89
|
+
renderReferencedVariables(variable) {
|
|
90
|
+
const agents = this.getAgentsForVariable(variable);
|
|
91
|
+
if (agents.length === 0) {
|
|
92
|
+
return undefined;
|
|
60
93
|
}
|
|
61
|
-
return React.createElement(
|
|
62
|
-
React.createElement("
|
|
63
|
-
React.createElement("
|
|
64
|
-
React.createElement("span", null,
|
|
65
|
-
React.createElement("
|
|
94
|
+
return (React.createElement(React.Fragment, null,
|
|
95
|
+
React.createElement("div", { className: "settings-section-subcategory-title" }, core_1.nls.localize('theia/ai/ide/variableConfiguration/usedByAgents', 'Used by Agents')),
|
|
96
|
+
React.createElement("ul", { className: "variable-agent-list" }, agents.map(agent => (React.createElement("li", { key: agent.id, className: "variable-agent-item", onClick: () => this.showAgentConfiguration(agent) },
|
|
97
|
+
React.createElement("span", null, agent.name),
|
|
98
|
+
React.createElement("i", { className: (0, browser_1.codicon)('chevron-right') })))))));
|
|
66
99
|
}
|
|
67
100
|
showAgentConfiguration(agent) {
|
|
68
101
|
this.aiConfigurationSelectionService.setActiveAgent(agent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variable-configuration-widget.js","sourceRoot":"","sources":["../../../src/browser/ai-configuration/variable-configuration-widget.tsx"],"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,sDAA+F;AAC/F,
|
|
1
|
+
{"version":3,"file":"variable-configuration-widget.js","sourceRoot":"","sources":["../../../src/browser/ai-configuration/variable-configuration-widget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FrontendApplicationContribution } from '@theia/core/lib/browser';
|
|
2
|
+
import { PromptService } from '@theia/ai-core/lib/common';
|
|
3
|
+
export declare class AnalyzesGhTicketCommandContribution implements FrontendApplicationContribution {
|
|
4
|
+
protected readonly promptService: PromptService;
|
|
5
|
+
onStart(): void;
|
|
6
|
+
protected registerGitHubTicketCommand(): void;
|
|
7
|
+
protected buildCommandTemplate(): string;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=analyze-gh-ticket-command-contribution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze-gh-ticket-command-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/analyze-gh-ticket-command-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAK1D,qBACa,mCAAoC,YAAW,+BAA+B;IAGvF,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAEhD,OAAO,IAAI,IAAI;IAIf,SAAS,CAAC,2BAA2B,IAAI,IAAI;IAoB7C,SAAS,CAAC,oBAAoB,IAAI,MAAM;CA0H3C"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2025 EclipseSource GmbH.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.AnalyzesGhTicketCommandContribution = void 0;
|
|
19
|
+
const tslib_1 = require("tslib");
|
|
20
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
|
+
const common_1 = require("@theia/ai-core/lib/common");
|
|
22
|
+
const core_1 = require("@theia/core");
|
|
23
|
+
const agent_delegation_tool_1 = require("@theia/ai-chat/lib/browser/agent-delegation-tool");
|
|
24
|
+
const github_chat_agent_1 = require("./github-chat-agent");
|
|
25
|
+
let AnalyzesGhTicketCommandContribution = class AnalyzesGhTicketCommandContribution {
|
|
26
|
+
onStart() {
|
|
27
|
+
this.registerGitHubTicketCommand();
|
|
28
|
+
}
|
|
29
|
+
registerGitHubTicketCommand() {
|
|
30
|
+
const commandTemplate = this.buildCommandTemplate();
|
|
31
|
+
this.promptService.addBuiltInPromptFragment({
|
|
32
|
+
id: 'analyze-gh-ticket',
|
|
33
|
+
template: commandTemplate,
|
|
34
|
+
isCommand: true,
|
|
35
|
+
commandName: 'analyze-gh-ticket',
|
|
36
|
+
commandDescription: core_1.nls.localize('theia/ai-ide/ticketCommand/description', 'Analyze a GitHub ticket and create an implementation plan'),
|
|
37
|
+
commandArgumentHint: core_1.nls.localize('theia/ai-ide/ticketCommand/argumentHint', '<ticket-number>'),
|
|
38
|
+
commandAgents: ['Architect']
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
buildCommandTemplate() {
|
|
42
|
+
return `You have been asked to analyze a GitHub ticket and create an implementation plan.
|
|
43
|
+
|
|
44
|
+
## Ticket Number
|
|
45
|
+
$ARGUMENTS
|
|
46
|
+
|
|
47
|
+
## Task Overview
|
|
48
|
+
You need to retrieve details about the specified GitHub ticket and analyze whether it can be implemented by an AI coding agent.
|
|
49
|
+
|
|
50
|
+
## Step 1: Retrieve Ticket Information
|
|
51
|
+
Use the ~{${agent_delegation_tool_1.AGENT_DELEGATION_FUNCTION_ID}} tool to delegate to the GitHub agent and retrieve comprehensive information about the ticket.
|
|
52
|
+
|
|
53
|
+
**Agent ID:** '${github_chat_agent_1.GitHubChatAgentId}'
|
|
54
|
+
**Prompt:** Ask the GitHub agent to retrieve ALL details about issue/ticket #$ARGUMENTS, specifically requesting:
|
|
55
|
+
- The complete issue title and description/body
|
|
56
|
+
- All comments on the issue (this is critical for understanding the full context)
|
|
57
|
+
- Labels and assignees
|
|
58
|
+
- Issue state (open/closed)
|
|
59
|
+
- Any referenced issues or pull requests mentioned in the description or comments
|
|
60
|
+
- If other issues are referenced, retrieve their details as well
|
|
61
|
+
|
|
62
|
+
Example delegation prompt:
|
|
63
|
+
\`\`\`
|
|
64
|
+
Please retrieve comprehensive information about issue #$ARGUMENTS. I need:
|
|
65
|
+
1. The complete issue title, body/description, labels, state, and assignees
|
|
66
|
+
2. ALL comments on this issue - every single comment is important for understanding the context
|
|
67
|
+
3. Any issues or PRs that are referenced or linked in the description or comments
|
|
68
|
+
4. For any referenced issues, please also retrieve their titles and descriptions
|
|
69
|
+
|
|
70
|
+
This is for analyzing whether the issue can be implemented, so completeness is crucial.
|
|
71
|
+
\`\`\`
|
|
72
|
+
|
|
73
|
+
## Step 2: Analyze AI Solvability
|
|
74
|
+
After receiving the ticket information, analyze whether this ticket can be solved by an AI coding agent. Consider:
|
|
75
|
+
|
|
76
|
+
### Criteria for AI-Solvable Tickets:
|
|
77
|
+
- **Clear requirements**: The ticket clearly describes what needs to be done
|
|
78
|
+
- **Defined scope**: The scope of changes is well-defined and bounded
|
|
79
|
+
- **Technical feasibility**: The task involves code changes that can be reasoned about
|
|
80
|
+
- **Sufficient context**: Enough information is provided to understand the problem and solution
|
|
81
|
+
- **Reproducible**: For bugs, there's enough information to understand and reproduce the issue
|
|
82
|
+
|
|
83
|
+
### Criteria for Non-AI-Solvable Tickets:
|
|
84
|
+
- **Ambiguous requirements**: The ticket is vague or open to multiple interpretations
|
|
85
|
+
- **Missing context**: Critical information is missing (e.g., environment details, reproduction steps)
|
|
86
|
+
- **External dependencies**: Requires access to external systems, credentials, or human interaction
|
|
87
|
+
- **Design decisions needed**: Requires architectural decisions that need human judgment
|
|
88
|
+
- **Insufficient information**: Cannot determine what success looks like
|
|
89
|
+
|
|
90
|
+
## Step 3: Respond Based on Analysis
|
|
91
|
+
|
|
92
|
+
### If the ticket CANNOT be solved by AI:
|
|
93
|
+
Provide a clear explanation:
|
|
94
|
+
1. **Reason**: Explain specifically why this ticket cannot be solved by AI
|
|
95
|
+
2. **Missing Information**: List what information is missing or unclear
|
|
96
|
+
3. **Questions for Clarification**: Ask specific questions that, if answered, might make the ticket solvable
|
|
97
|
+
|
|
98
|
+
Example response format:
|
|
99
|
+
\`\`\`
|
|
100
|
+
## Analysis Result: Cannot Be Solved by AI
|
|
101
|
+
|
|
102
|
+
### Reason
|
|
103
|
+
[Explain why]
|
|
104
|
+
|
|
105
|
+
### Missing Information
|
|
106
|
+
- [Item 1]
|
|
107
|
+
- [Item 2]
|
|
108
|
+
|
|
109
|
+
### Questions for Clarification
|
|
110
|
+
1. [Question 1]
|
|
111
|
+
2. [Question 2]
|
|
112
|
+
\`\`\`
|
|
113
|
+
|
|
114
|
+
### If the ticket CAN be solved by AI:
|
|
115
|
+
Create a detailed implementation plan:
|
|
116
|
+
|
|
117
|
+
1. **Summary**: Brief summary of what the ticket requests
|
|
118
|
+
2. **Analysis**: Your understanding of the problem and the proposed solution approach
|
|
119
|
+
3. **Implementation Plan**: A step-by-step plan that a coding agent can follow, including:
|
|
120
|
+
- Files that likely need to be modified or created
|
|
121
|
+
- Specific changes to be made in each file
|
|
122
|
+
- Order of operations
|
|
123
|
+
- Testing considerations
|
|
124
|
+
4. **Potential Challenges**: Any challenges or edge cases to be aware of
|
|
125
|
+
5. **Success Criteria**: How to verify the implementation is correct
|
|
126
|
+
|
|
127
|
+
Example response format:
|
|
128
|
+
\`\`\`
|
|
129
|
+
## Analysis Result: Can Be Solved by AI
|
|
130
|
+
|
|
131
|
+
### Summary
|
|
132
|
+
[Brief summary of the ticket]
|
|
133
|
+
|
|
134
|
+
### Analysis
|
|
135
|
+
[Your understanding of the problem and solution approach]
|
|
136
|
+
|
|
137
|
+
### Implementation Plan
|
|
138
|
+
|
|
139
|
+
#### Step 1: [First step]
|
|
140
|
+
- File: \`path/to/file\`
|
|
141
|
+
- Changes: [Description of changes]
|
|
142
|
+
|
|
143
|
+
#### Step 2: [Second step]
|
|
144
|
+
- File: \`path/to/file\`
|
|
145
|
+
- Changes: [Description of changes]
|
|
146
|
+
|
|
147
|
+
[Continue with additional steps...]
|
|
148
|
+
|
|
149
|
+
### Potential Challenges
|
|
150
|
+
- [Challenge 1]
|
|
151
|
+
- [Challenge 2]
|
|
152
|
+
|
|
153
|
+
### Success Criteria
|
|
154
|
+
- [Criterion 1]
|
|
155
|
+
- [Criterion 2]
|
|
156
|
+
|
|
157
|
+
### Next Steps
|
|
158
|
+
To implement this plan, you can ask @Coder to execute it.
|
|
159
|
+
\`\`\`
|
|
160
|
+
|
|
161
|
+
Remember: Be thorough in your analysis. It's better to ask for clarification than to create an incomplete or incorrect implementation plan.`;
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
exports.AnalyzesGhTicketCommandContribution = AnalyzesGhTicketCommandContribution;
|
|
165
|
+
tslib_1.__decorate([
|
|
166
|
+
(0, inversify_1.inject)(common_1.PromptService),
|
|
167
|
+
tslib_1.__metadata("design:type", Object)
|
|
168
|
+
], AnalyzesGhTicketCommandContribution.prototype, "promptService", void 0);
|
|
169
|
+
exports.AnalyzesGhTicketCommandContribution = AnalyzesGhTicketCommandContribution = tslib_1.__decorate([
|
|
170
|
+
(0, inversify_1.injectable)()
|
|
171
|
+
], AnalyzesGhTicketCommandContribution);
|
|
172
|
+
//# sourceMappingURL=analyze-gh-ticket-command-contribution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze-gh-ticket-command-contribution.js","sourceRoot":"","sources":["../../src/browser/analyze-gh-ticket-command-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;;;;AAGhF,4DAAkE;AAClE,sDAA0D;AAC1D,sCAAkC;AAClC,4FAAgG;AAChG,2DAAwD;AAGjD,IAAM,mCAAmC,GAAzC,MAAM,mCAAmC;IAK5C,OAAO;QACH,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACvC,CAAC;IAES,2BAA2B;QACjC,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAEpD,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC;YACxC,EAAE,EAAE,mBAAmB;YACvB,QAAQ,EAAE,eAAe;YACzB,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,mBAAmB;YAChC,kBAAkB,EAAE,UAAG,CAAC,QAAQ,CAC5B,wCAAwC,EACxC,2DAA2D,CAC9D;YACD,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAC7B,yCAAyC,EACzC,iBAAiB,CACpB;YACD,aAAa,EAAE,CAAC,WAAW,CAAC;SAC/B,CAAC,CAAC;IACP,CAAC;IAES,oBAAoB;QAC1B,OAAO;;;;;;;;;YASH,oDAA4B;;iBAEvB,qCAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4IA4G0G,CAAC;IACzI,CAAC;CACJ,CAAA;AAvJY,kFAAmC;AAGzB;IADlB,IAAA,kBAAM,EAAC,sBAAa,CAAC;;0EAC0B;8CAHvC,mCAAmC;IAD/C,IAAA,sBAAU,GAAE;GACA,mCAAmC,CAuJ/C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/frontend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,mCAAmC,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;
|
|
1
|
+
{"version":3,"file":"frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/frontend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,mCAAmC,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAuF/D,wBAqLG"}
|
|
@@ -68,6 +68,9 @@ const ai_terminal_functions_1 = require("./ai-terminal-functions");
|
|
|
68
68
|
const context_file_validation_service_1 = require("@theia/ai-chat/lib/browser/context-file-validation-service");
|
|
69
69
|
const context_file_validation_service_impl_1 = require("./context-file-validation-service-impl");
|
|
70
70
|
const remember_command_contribution_1 = require("./remember-command-contribution");
|
|
71
|
+
const implement_gh_ticket_command_contribution_1 = require("./implement-gh-ticket-command-contribution");
|
|
72
|
+
const analyze_gh_ticket_command_contribution_1 = require("./analyze-gh-ticket-command-contribution");
|
|
73
|
+
const address_pr_review_command_contribution_1 = require("./address-pr-review-command-contribution");
|
|
71
74
|
exports.default = new inversify_1.ContainerModule((bind, _unbind, _isBound, rebind) => {
|
|
72
75
|
bind(core_1.PreferenceContribution).toConstantValue({ schema: ai_ide_preferences_1.aiIdePreferenceSchema });
|
|
73
76
|
bind(core_1.PreferenceContribution).toConstantValue({ schema: workspace_preferences_1.WorkspacePreferencesSchema });
|
|
@@ -216,5 +219,8 @@ exports.default = new inversify_1.ContainerModule((bind, _unbind, _isBound, rebi
|
|
|
216
219
|
bind(context_file_validation_service_impl_1.ContextFileValidationServiceImpl).toSelf().inSingletonScope();
|
|
217
220
|
bind(context_file_validation_service_1.ContextFileValidationService).toService(context_file_validation_service_impl_1.ContextFileValidationServiceImpl);
|
|
218
221
|
bind(browser_1.FrontendApplicationContribution).to(remember_command_contribution_1.RememberCommandContribution);
|
|
222
|
+
bind(browser_1.FrontendApplicationContribution).to(implement_gh_ticket_command_contribution_1.FixGitHubTicketCommandContribution);
|
|
223
|
+
bind(browser_1.FrontendApplicationContribution).to(address_pr_review_command_contribution_1.AddressGhReviewCommandContribution);
|
|
224
|
+
bind(browser_1.FrontendApplicationContribution).to(analyze_gh_ticket_command_contribution_1.AnalyzesGhTicketCommandContribution);
|
|
219
225
|
});
|
|
220
226
|
//# sourceMappingURL=frontend-module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontend-module.js","sourceRoot":"","sources":["../../src/browser/frontend-module.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,6CAA2C;AAE3C,4DAA+D;AAC/D,sDAA+F;AAC/F,sDAA4F;AAC5F,uDAAmD;AACnD,+CAA2C;AAC3C,qGAA+F;AAC/F,+DAO+B;AAC/B,2EAAsE;AACtE,qDAMiC;AACjC,uEAAiF;AACjF,2EAIqC;AACrC,2EAA6E;AAC7E,yEAcoC;AACpC,+EAAmG;AACnG,yEAA0F;AAC1F,mEAA6D;AAC7D,2DAAsD;AACtD,uEAAiE;AACjE,2DAAgG;AAChG,8FAA2F;AAC3F,0FAA8F;AAC9F,8GAA6G;AAC7G,wFAA4F;AAC5F,oGAAiG;AACjG,6EAAoF;AACpF,8FAA2F;AAC3F,mFAA0F;AAC1F,yFAAoF;AACpF,0FAAuF;AACvF,iFAA0F;AAC1F,2FAAoF;AACpF,0GAAsG;AACtG,yFAA4F;AAC5F,2FAAqF;AACrF,2FAAoF;AACpF,0FAA4F;AAC5F,sCAA0E;AAC1E,oHAAgH;AAChH,uFAAiG;AACjG,yEAA0F;AAC1F,2EAAsI;AACtI,8GAAwG;AACxG,qEAAqE;AACrE,wDAAiE;AACjE,2EAAyE;AACzE,yFAAoF;AACpF,6DAAwD;AACxD,6DAAwD;AACxD,mEAAiE;AACjE,gHAA0G;AAC1G,iGAA0F;AAC1F,mFAA8E;
|
|
1
|
+
{"version":3,"file":"frontend-module.js","sourceRoot":"","sources":["../../src/browser/frontend-module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FrontendApplicationContribution } from '@theia/core/lib/browser';
|
|
2
|
+
import { PromptService } from '@theia/ai-core/lib/common';
|
|
3
|
+
export declare class FixGitHubTicketCommandContribution implements FrontendApplicationContribution {
|
|
4
|
+
protected readonly promptService: PromptService;
|
|
5
|
+
onStart(): void;
|
|
6
|
+
protected registerFixGitHubTicketCommand(): void;
|
|
7
|
+
protected buildCommandTemplate(): string;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=implement-gh-ticket-command-contribution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"implement-gh-ticket-command-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/implement-gh-ticket-command-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAK1D,qBACa,kCAAmC,YAAW,+BAA+B;IAGtF,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAEhD,OAAO,IAAI,IAAI;IAIf,SAAS,CAAC,8BAA8B,IAAI,IAAI;IAoBhD,SAAS,CAAC,oBAAoB,IAAI,MAAM;CA0G3C"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2025 EclipseSource GmbH.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.FixGitHubTicketCommandContribution = void 0;
|
|
19
|
+
const tslib_1 = require("tslib");
|
|
20
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
|
+
const common_1 = require("@theia/ai-core/lib/common");
|
|
22
|
+
const core_1 = require("@theia/core");
|
|
23
|
+
const agent_delegation_tool_1 = require("@theia/ai-chat/lib/browser/agent-delegation-tool");
|
|
24
|
+
const github_chat_agent_1 = require("./github-chat-agent");
|
|
25
|
+
let FixGitHubTicketCommandContribution = class FixGitHubTicketCommandContribution {
|
|
26
|
+
onStart() {
|
|
27
|
+
this.registerFixGitHubTicketCommand();
|
|
28
|
+
}
|
|
29
|
+
registerFixGitHubTicketCommand() {
|
|
30
|
+
const commandTemplate = this.buildCommandTemplate();
|
|
31
|
+
this.promptService.addBuiltInPromptFragment({
|
|
32
|
+
id: 'fix-gh-ticket',
|
|
33
|
+
template: commandTemplate,
|
|
34
|
+
isCommand: true,
|
|
35
|
+
commandName: 'fix-gh-ticket',
|
|
36
|
+
commandDescription: core_1.nls.localize('theia/ai-ide/fixGhTicketCommand/description', 'Analyze a GitHub ticket and implement the solution'),
|
|
37
|
+
commandArgumentHint: core_1.nls.localize('theia/ai-ide/fixGhTicketCommand/argumentHint', '<ticket-number>'),
|
|
38
|
+
commandAgents: ['Coder']
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
buildCommandTemplate() {
|
|
42
|
+
return `You have been asked to analyze a GitHub ticket and implement the solution.
|
|
43
|
+
|
|
44
|
+
## Ticket Number
|
|
45
|
+
$ARGUMENTS
|
|
46
|
+
|
|
47
|
+
## Task Overview
|
|
48
|
+
You need to retrieve details about the specified GitHub ticket, analyze whether it can be implemented, and if so, implement the solution.
|
|
49
|
+
|
|
50
|
+
## Step 1: Retrieve Ticket Information
|
|
51
|
+
Use the ~{${agent_delegation_tool_1.AGENT_DELEGATION_FUNCTION_ID}} tool to delegate to the GitHub agent and retrieve comprehensive information about the ticket.
|
|
52
|
+
|
|
53
|
+
**Agent ID:** '${github_chat_agent_1.GitHubChatAgentId}'
|
|
54
|
+
**Prompt:** Ask the GitHub agent to retrieve ALL details about issue/ticket #$ARGUMENTS, specifically requesting:
|
|
55
|
+
- The complete issue title and description/body
|
|
56
|
+
- All comments on the issue (this is critical for understanding the full context)
|
|
57
|
+
- Labels and assignees
|
|
58
|
+
- Issue state (open/closed)
|
|
59
|
+
- Any referenced issues or pull requests mentioned in the description or comments
|
|
60
|
+
- If other issues are referenced, retrieve their details as well
|
|
61
|
+
|
|
62
|
+
Example delegation prompt:
|
|
63
|
+
\`\`\`
|
|
64
|
+
Please retrieve comprehensive information about issue #$ARGUMENTS. I need:
|
|
65
|
+
1. The complete issue title, body/description, labels, state, and assignees
|
|
66
|
+
2. ALL comments on this issue - every single comment is important for understanding the context
|
|
67
|
+
3. Any issues or PRs that are referenced or linked in the description or comments
|
|
68
|
+
4. For any referenced issues, please also retrieve their titles and descriptions
|
|
69
|
+
|
|
70
|
+
This is for implementing the issue, so completeness is crucial.
|
|
71
|
+
\`\`\`
|
|
72
|
+
|
|
73
|
+
## Step 2: Analyze AI Solvability
|
|
74
|
+
After receiving the ticket information, analyze whether this ticket can be implemented by you. Consider:
|
|
75
|
+
|
|
76
|
+
### Criteria for Implementable Tickets:
|
|
77
|
+
- **Clear requirements**: The ticket clearly describes what needs to be done
|
|
78
|
+
- **Defined scope**: The scope of changes is well-defined and bounded
|
|
79
|
+
- **Technical feasibility**: The task involves code changes that can be reasoned about
|
|
80
|
+
- **Sufficient context**: Enough information is provided to understand the problem and solution
|
|
81
|
+
- **Reproducible**: For bugs, there's enough information to understand and reproduce the issue
|
|
82
|
+
|
|
83
|
+
### Criteria for Non-Implementable Tickets:
|
|
84
|
+
- **Ambiguous requirements**: The ticket is vague or open to multiple interpretations
|
|
85
|
+
- **Missing context**: Critical information is missing (e.g., environment details, reproduction steps)
|
|
86
|
+
- **External dependencies**: Requires access to external systems, credentials, or human interaction
|
|
87
|
+
- **Design decisions needed**: Requires architectural decisions that need human judgment
|
|
88
|
+
- **Insufficient information**: Cannot determine what success looks like
|
|
89
|
+
|
|
90
|
+
## Step 3: Respond Based on Analysis
|
|
91
|
+
|
|
92
|
+
### If the ticket CANNOT be implemented:
|
|
93
|
+
Provide a clear explanation:
|
|
94
|
+
1. **Reason**: Explain specifically why this ticket cannot be implemented by AI
|
|
95
|
+
2. **Missing Information**: List what information is missing or unclear
|
|
96
|
+
3. **Questions for Clarification**: Ask specific questions that, if answered, might make the ticket implementable
|
|
97
|
+
|
|
98
|
+
Example response format:
|
|
99
|
+
\`\`\`
|
|
100
|
+
## Analysis Result: Cannot Be Implemented
|
|
101
|
+
|
|
102
|
+
### Reason
|
|
103
|
+
[Explain why]
|
|
104
|
+
|
|
105
|
+
### Missing Information
|
|
106
|
+
- [Item 1]
|
|
107
|
+
- [Item 2]
|
|
108
|
+
|
|
109
|
+
### Questions for Clarification
|
|
110
|
+
1. [Question 1]
|
|
111
|
+
2. [Question 2]
|
|
112
|
+
|
|
113
|
+
Please provide the missing information and I will proceed with the implementation.
|
|
114
|
+
\`\`\`
|
|
115
|
+
|
|
116
|
+
### If the ticket CAN be implemented:
|
|
117
|
+
Proceed with the implementation:
|
|
118
|
+
|
|
119
|
+
1. **Briefly summarize** what the ticket requests and your implementation approach
|
|
120
|
+
2. **Explore the codebase** to understand the existing code structure and find relevant files
|
|
121
|
+
3. **Implement the solution** by making the necessary code changes using your file modification tools
|
|
122
|
+
4. **Explain your changes** as you make them
|
|
123
|
+
5. **Consider edge cases** and handle them appropriately
|
|
124
|
+
6. **Suggest testing steps** the user should perform to verify the implementation
|
|
125
|
+
|
|
126
|
+
Example response format:
|
|
127
|
+
\`\`\`
|
|
128
|
+
## Analysis Result: Can Be Implemented
|
|
129
|
+
|
|
130
|
+
### Summary
|
|
131
|
+
[Brief summary of the ticket and your approach]
|
|
132
|
+
|
|
133
|
+
### Implementation
|
|
134
|
+
[Proceed to explore the codebase and implement the changes, explaining as you go]
|
|
135
|
+
\`\`\`
|
|
136
|
+
|
|
137
|
+
## Important Guidelines for Implementation
|
|
138
|
+
- Always explore the codebase first to understand the existing patterns and conventions
|
|
139
|
+
- Follow the existing code style and patterns in the project
|
|
140
|
+
- Make incremental changes and explain each step
|
|
141
|
+
- If you encounter unexpected issues during implementation, explain them and ask for guidance
|
|
142
|
+
- After implementation, summarize what was changed and suggest how to test the changes
|
|
143
|
+
|
|
144
|
+
Remember: If at any point during implementation you realize you need more information or the task is more complex than initially assessed, stop and ask for clarification rather
|
|
145
|
+
than making assumptions.`;
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
exports.FixGitHubTicketCommandContribution = FixGitHubTicketCommandContribution;
|
|
149
|
+
tslib_1.__decorate([
|
|
150
|
+
(0, inversify_1.inject)(common_1.PromptService),
|
|
151
|
+
tslib_1.__metadata("design:type", Object)
|
|
152
|
+
], FixGitHubTicketCommandContribution.prototype, "promptService", void 0);
|
|
153
|
+
exports.FixGitHubTicketCommandContribution = FixGitHubTicketCommandContribution = tslib_1.__decorate([
|
|
154
|
+
(0, inversify_1.injectable)()
|
|
155
|
+
], FixGitHubTicketCommandContribution);
|
|
156
|
+
//# sourceMappingURL=implement-gh-ticket-command-contribution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"implement-gh-ticket-command-contribution.js","sourceRoot":"","sources":["../../src/browser/implement-gh-ticket-command-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;;;;AAGhF,4DAAkE;AAClE,sDAA0D;AAC1D,sCAAkC;AAClC,4FAAgG;AAChG,2DAAwD;AAGjD,IAAM,kCAAkC,GAAxC,MAAM,kCAAkC;IAK3C,OAAO;QACH,IAAI,CAAC,8BAA8B,EAAE,CAAC;IAC1C,CAAC;IAES,8BAA8B;QACpC,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAEpD,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC;YACxC,EAAE,EAAE,eAAe;YACnB,QAAQ,EAAE,eAAe;YACzB,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,eAAe;YAC5B,kBAAkB,EAAE,UAAG,CAAC,QAAQ,CAC5B,6CAA6C,EAC7C,oDAAoD,CACvD;YACD,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAC7B,8CAA8C,EAC9C,iBAAiB,CACpB;YACD,aAAa,EAAE,CAAC,OAAO,CAAC;SAC3B,CAAC,CAAC;IACP,CAAC;IAES,oBAAoB;QAC1B,OAAO;;;;;;;;;YASH,oDAA4B;;iBAEvB,qCAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA4FT,CAAC;IACtB,CAAC;CACJ,CAAA;AAvIY,gFAAkC;AAGxB;IADlB,IAAA,kBAAM,EAAC,sBAAa,CAAC;;yEAC0B;6CAHvC,kCAAkC;IAD9C,IAAA,sBAAU,GAAE;GACA,kCAAkC,CAuI9C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/ai-ide",
|
|
3
|
-
"version": "1.67.0-next.
|
|
3
|
+
"version": "1.67.0-next.86+03f92ff1d",
|
|
4
4
|
"description": "AI IDE Agents Extension",
|
|
5
5
|
"license": "EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -15,23 +15,23 @@
|
|
|
15
15
|
"theia-extension"
|
|
16
16
|
],
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@theia/ai-chat": "1.67.0-next.
|
|
19
|
-
"@theia/ai-chat-ui": "1.67.0-next.
|
|
20
|
-
"@theia/ai-core": "1.67.0-next.
|
|
21
|
-
"@theia/ai-mcp": "1.67.0-next.
|
|
22
|
-
"@theia/core": "1.67.0-next.
|
|
23
|
-
"@theia/debug": "1.67.0-next.
|
|
24
|
-
"@theia/editor": "1.67.0-next.
|
|
25
|
-
"@theia/filesystem": "1.67.0-next.
|
|
26
|
-
"@theia/markers": "1.67.0-next.
|
|
27
|
-
"@theia/monaco": "1.67.0-next.
|
|
28
|
-
"@theia/navigator": "1.67.0-next.
|
|
29
|
-
"@theia/preferences": "1.67.0-next.
|
|
30
|
-
"@theia/scm": "1.67.0-next.
|
|
31
|
-
"@theia/search-in-workspace": "1.67.0-next.
|
|
32
|
-
"@theia/task": "1.67.0-next.
|
|
33
|
-
"@theia/terminal": "1.67.0-next.
|
|
34
|
-
"@theia/workspace": "1.67.0-next.
|
|
18
|
+
"@theia/ai-chat": "1.67.0-next.86+03f92ff1d",
|
|
19
|
+
"@theia/ai-chat-ui": "1.67.0-next.86+03f92ff1d",
|
|
20
|
+
"@theia/ai-core": "1.67.0-next.86+03f92ff1d",
|
|
21
|
+
"@theia/ai-mcp": "1.67.0-next.86+03f92ff1d",
|
|
22
|
+
"@theia/core": "1.67.0-next.86+03f92ff1d",
|
|
23
|
+
"@theia/debug": "1.67.0-next.86+03f92ff1d",
|
|
24
|
+
"@theia/editor": "1.67.0-next.86+03f92ff1d",
|
|
25
|
+
"@theia/filesystem": "1.67.0-next.86+03f92ff1d",
|
|
26
|
+
"@theia/markers": "1.67.0-next.86+03f92ff1d",
|
|
27
|
+
"@theia/monaco": "1.67.0-next.86+03f92ff1d",
|
|
28
|
+
"@theia/navigator": "1.67.0-next.86+03f92ff1d",
|
|
29
|
+
"@theia/preferences": "1.67.0-next.86+03f92ff1d",
|
|
30
|
+
"@theia/scm": "1.67.0-next.86+03f92ff1d",
|
|
31
|
+
"@theia/search-in-workspace": "1.67.0-next.86+03f92ff1d",
|
|
32
|
+
"@theia/task": "1.67.0-next.86+03f92ff1d",
|
|
33
|
+
"@theia/terminal": "1.67.0-next.86+03f92ff1d",
|
|
34
|
+
"@theia/workspace": "1.67.0-next.86+03f92ff1d",
|
|
35
35
|
"date-fns": "^4.1.0",
|
|
36
36
|
"ignore": "^6.0.0",
|
|
37
37
|
"js-yaml": "^4.1.0",
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
"access": "public"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@theia/cli": "1.67.0-next.
|
|
47
|
-
"@theia/test": "1.67.0-next.
|
|
46
|
+
"@theia/cli": "1.67.0-next.86+03f92ff1d",
|
|
47
|
+
"@theia/test": "1.67.0-next.86+03f92ff1d"
|
|
48
48
|
},
|
|
49
49
|
"theiaExtensions": [
|
|
50
50
|
{
|
|
@@ -68,5 +68,5 @@
|
|
|
68
68
|
"nyc": {
|
|
69
69
|
"extends": "../../configs/nyc.json"
|
|
70
70
|
},
|
|
71
|
-
"gitHead": "
|
|
71
|
+
"gitHead": "03f92ff1d97dcb199de39b48e60a53535de22808"
|
|
72
72
|
}
|