@theia/ai-chat 1.60.2 → 1.61.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.
- package/lib/browser/ai-chat-frontend-contribution.d.ts +11 -0
- package/lib/browser/ai-chat-frontend-contribution.d.ts.map +1 -0
- package/lib/browser/ai-chat-frontend-contribution.js +56 -0
- package/lib/browser/ai-chat-frontend-contribution.js.map +1 -0
- package/lib/browser/ai-chat-frontend-module.d.ts.map +1 -1
- package/lib/browser/ai-chat-frontend-module.js +21 -3
- package/lib/browser/ai-chat-frontend-module.js.map +1 -1
- package/lib/browser/change-set-decorator-service.d.ts +24 -0
- package/lib/browser/change-set-decorator-service.d.ts.map +1 -0
- package/lib/browser/change-set-decorator-service.js +66 -0
- package/lib/browser/change-set-decorator-service.js.map +1 -0
- package/lib/browser/change-set-file-element.d.ts +7 -4
- package/lib/browser/change-set-file-element.d.ts.map +1 -1
- package/lib/browser/change-set-file-element.js +20 -12
- package/lib/browser/change-set-file-element.js.map +1 -1
- package/lib/browser/change-set-file-resource.d.ts +1 -42
- package/lib/browser/change-set-file-resource.d.ts.map +1 -1
- package/lib/browser/change-set-file-resource.js +1 -136
- package/lib/browser/change-set-file-resource.js.map +1 -1
- package/lib/browser/change-set-variable.d.ts.map +1 -1
- package/lib/browser/change-set-variable.js +13 -4
- package/lib/browser/change-set-variable.js.map +1 -1
- package/lib/browser/context-file-variable-label-provider.js +1 -1
- package/lib/browser/context-file-variable-label-provider.js.map +1 -1
- package/lib/browser/file-chat-variable-contribution.d.ts.map +1 -1
- package/lib/browser/file-chat-variable-contribution.js +29 -27
- package/lib/browser/file-chat-variable-contribution.js.map +1 -1
- package/lib/browser/task-context-service.d.ts +40 -0
- package/lib/browser/task-context-service.d.ts.map +1 -0
- package/lib/browser/task-context-service.js +148 -0
- package/lib/browser/task-context-service.js.map +1 -0
- package/lib/browser/task-context-storage-service.d.ts +18 -0
- package/lib/browser/task-context-storage-service.d.ts.map +1 -0
- package/lib/browser/task-context-storage-service.js +77 -0
- package/lib/browser/task-context-storage-service.js.map +1 -0
- package/lib/browser/task-context-variable-contribution.d.ts +20 -0
- package/lib/browser/task-context-variable-contribution.d.ts.map +1 -0
- package/lib/browser/task-context-variable-contribution.js +101 -0
- package/lib/browser/task-context-variable-contribution.js.map +1 -0
- package/lib/browser/task-context-variable-label-provider.d.ts +21 -0
- package/lib/browser/task-context-variable-label-provider.d.ts.map +1 -0
- package/lib/browser/task-context-variable-label-provider.js +83 -0
- package/lib/browser/task-context-variable-label-provider.js.map +1 -0
- package/lib/browser/task-context-variable.d.ts +3 -0
- package/lib/browser/task-context-variable.d.ts.map +1 -0
- package/lib/browser/task-context-variable.js +29 -0
- package/lib/browser/task-context-variable.js.map +1 -0
- package/lib/common/chat-agents.d.ts +2 -1
- package/lib/common/chat-agents.d.ts.map +1 -1
- package/lib/common/chat-agents.js +32 -20
- package/lib/common/chat-agents.js.map +1 -1
- package/lib/common/chat-model.d.ts +191 -8
- package/lib/common/chat-model.d.ts.map +1 -1
- package/lib/common/chat-model.js +369 -12
- package/lib/common/chat-model.js.map +1 -1
- package/lib/common/chat-request-parser.d.ts +1 -1
- package/lib/common/chat-request-parser.d.ts.map +1 -1
- package/lib/common/chat-request-parser.js +1 -1
- package/lib/common/chat-request-parser.js.map +1 -1
- package/lib/common/chat-service.d.ts +2 -0
- package/lib/common/chat-service.d.ts.map +1 -1
- package/lib/common/chat-service.js +18 -25
- package/lib/common/chat-service.js.map +1 -1
- package/lib/common/chat-session-naming-service.d.ts.map +1 -1
- package/lib/common/chat-session-naming-service.js +9 -11
- package/lib/common/chat-session-naming-service.js.map +1 -1
- package/lib/common/chat-session-summary-agent-prompt.d.ts +5 -0
- package/lib/common/chat-session-summary-agent-prompt.d.ts.map +1 -0
- package/lib/common/chat-session-summary-agent-prompt.js +30 -0
- package/lib/common/chat-session-summary-agent-prompt.js.map +1 -0
- package/lib/common/chat-session-summary-agent.d.ts +17 -0
- package/lib/common/chat-session-summary-agent.d.ts.map +1 -0
- package/lib/common/chat-session-summary-agent.js +48 -0
- package/lib/common/chat-session-summary-agent.js.map +1 -0
- package/lib/common/context-summary-variable.js +1 -1
- package/lib/common/context-summary-variable.js.map +1 -1
- package/lib/common/parse-contents-with-incomplete-parts.spec.d.ts +2 -0
- package/lib/common/parse-contents-with-incomplete-parts.spec.d.ts.map +1 -0
- package/lib/common/parse-contents-with-incomplete-parts.spec.js +103 -0
- package/lib/common/parse-contents-with-incomplete-parts.spec.js.map +1 -0
- package/lib/common/parse-contents.d.ts +1 -0
- package/lib/common/parse-contents.d.ts.map +1 -1
- package/lib/common/parse-contents.js +45 -5
- package/lib/common/parse-contents.js.map +1 -1
- package/lib/common/parse-contents.spec.d.ts +1 -0
- package/lib/common/parse-contents.spec.d.ts.map +1 -1
- package/lib/common/parse-contents.spec.js +25 -13
- package/lib/common/parse-contents.spec.js.map +1 -1
- package/lib/common/response-content-matcher.d.ts +6 -0
- package/lib/common/response-content-matcher.d.ts.map +1 -1
- package/lib/common/response-content-matcher.js +14 -3
- package/lib/common/response-content-matcher.js.map +1 -1
- package/package.json +11 -11
- package/src/browser/ai-chat-frontend-contribution.ts +49 -0
- package/src/browser/ai-chat-frontend-module.ts +25 -4
- package/src/browser/change-set-decorator-service.ts +72 -0
- package/src/browser/change-set-file-element.ts +18 -13
- package/src/browser/change-set-file-resource.ts +1 -138
- package/src/browser/change-set-variable.ts +14 -6
- package/src/browser/context-file-variable-label-provider.ts +1 -1
- package/src/browser/file-chat-variable-contribution.ts +26 -29
- package/src/browser/task-context-service.ts +144 -0
- package/src/browser/task-context-storage-service.ts +75 -0
- package/src/browser/task-context-variable-contribution.ts +93 -0
- package/src/browser/task-context-variable-label-provider.ts +67 -0
- package/src/browser/task-context-variable.ts +28 -0
- package/src/common/chat-agents.ts +38 -22
- package/src/common/chat-model.ts +566 -17
- package/src/common/chat-request-parser.ts +2 -2
- package/src/common/chat-service.ts +17 -26
- package/src/common/chat-session-naming-service.ts +13 -15
- package/src/common/chat-session-summary-agent-prompt.ts +28 -0
- package/src/common/chat-session-summary-agent.ts +42 -0
- package/src/common/context-summary-variable.ts +1 -1
- package/src/common/parse-contents-with-incomplete-parts.spec.ts +114 -0
- package/src/common/parse-contents.spec.ts +24 -12
- package/src/common/parse-contents.ts +52 -6
- package/src/common/response-content-matcher.ts +21 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-set-variable.d.ts","sourceRoot":"","sources":["../../src/browser/change-set-variable.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,YAAY,EAAO,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC/K,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,eAAO,MAAM,2BAA2B,EAAE,UAKzC,CAAC;AAEF,qBACa,6BAA8B,YAAW,sBAAsB,EAAE,kBAAkB;IAE5F,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAEtD,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAInD,UAAU,CAAC,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,iBAAiB,GAAG,YAAY,CAAC,MAAM,CAAC;IAI5F,OAAO,CAAC,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"change-set-variable.d.ts","sourceRoot":"","sources":["../../src/browser/change-set-variable.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,YAAY,EAAO,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC/K,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,eAAO,MAAM,2BAA2B,EAAE,UAKzC,CAAC;AAEF,qBACa,6BAA8B,YAAW,sBAAsB,EAAE,kBAAkB;IAE5F,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAEtD,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAInD,UAAU,CAAC,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,iBAAiB,GAAG,YAAY,CAAC,MAAM,CAAC;IAI5F,OAAO,CAAC,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;CAmB3H"}
|
|
@@ -22,9 +22,9 @@ const inversify_1 = require("@theia/core/shared/inversify");
|
|
|
22
22
|
const browser_1 = require("@theia/workspace/lib/browser");
|
|
23
23
|
const common_1 = require("../common");
|
|
24
24
|
exports.CHANGE_SET_SUMMARY_VARIABLE = {
|
|
25
|
-
id:
|
|
25
|
+
id: common_1.CHANGE_SET_SUMMARY_VARIABLE_ID,
|
|
26
26
|
description: core_1.nls.localize('theia/ai/core/changeSetSummaryVariable/description', 'Provides a summary of the files in a change set and their contents.'),
|
|
27
|
-
name:
|
|
27
|
+
name: common_1.CHANGE_SET_SUMMARY_VARIABLE_ID,
|
|
28
28
|
};
|
|
29
29
|
let ChangeSetVariableContribution = class ChangeSetVariableContribution {
|
|
30
30
|
registerVariables(service) {
|
|
@@ -35,13 +35,22 @@ let ChangeSetVariableContribution = class ChangeSetVariableContribution {
|
|
|
35
35
|
}
|
|
36
36
|
async resolve(request, context) {
|
|
37
37
|
var _a;
|
|
38
|
-
if (!common_1.ChatSessionContext.is(context) || request.variable.name !== exports.CHANGE_SET_SUMMARY_VARIABLE.name
|
|
38
|
+
if (!common_1.ChatSessionContext.is(context) || request.variable.name !== exports.CHANGE_SET_SUMMARY_VARIABLE.name) {
|
|
39
39
|
return undefined;
|
|
40
40
|
}
|
|
41
|
+
if (!((_a = context.model.changeSet) === null || _a === void 0 ? void 0 : _a.getElements().length)) {
|
|
42
|
+
return {
|
|
43
|
+
variable: exports.CHANGE_SET_SUMMARY_VARIABLE,
|
|
44
|
+
value: ''
|
|
45
|
+
};
|
|
46
|
+
}
|
|
41
47
|
const entries = await Promise.all(context.model.changeSet.getElements().map(async (element) => `- file: ${await this.workspaceService.getWorkspaceRelativePath(element.uri)}, status: ${element.state}`));
|
|
42
48
|
return {
|
|
43
49
|
variable: exports.CHANGE_SET_SUMMARY_VARIABLE,
|
|
44
|
-
value:
|
|
50
|
+
value: `## Previously Proposed Changes
|
|
51
|
+
You have previously proposed changes for the following files. Some suggestions may have been accepted by the user, while others may still be pending.
|
|
52
|
+
${entries.join('\n')}
|
|
53
|
+
`
|
|
45
54
|
};
|
|
46
55
|
}
|
|
47
56
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-set-variable.js","sourceRoot":"","sources":["../../src/browser/change-set-variable.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,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,sCAAgD;AAChD,4DAAkE;AAElE,0DAAgE;AAChE,sCAA+
|
|
1
|
+
{"version":3,"file":"change-set-variable.js","sourceRoot":"","sources":["../../src/browser/change-set-variable.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,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,sCAAgD;AAChD,4DAAkE;AAElE,0DAAgE;AAChE,sCAA+E;AAElE,QAAA,2BAA2B,GAAe;IACnD,EAAE,EAAE,uCAA8B;IAClC,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,oDAAoD,EAAE,qEAAqE,CAAC;IAEtJ,IAAI,EAAE,uCAA8B;CACvC,CAAC;AAGK,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IAItC,iBAAiB,CAAC,OAA0B;QACxC,OAAO,CAAC,gBAAgB,CAAC,mCAA2B,EAAE,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,UAAU,CAAC,OAAoC,EAAE,OAA0B;QACvE,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,mCAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAoC,EAAE,OAA0B;;QAC1E,IAAI,CAAC,2BAAkB,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,mCAA2B,CAAC,IAAI,EAAE,CAAC;YAAC,OAAO,SAAS,CAAC;QAAC,CAAC;QACxH,IAAI,CAAC,CAAA,MAAA,OAAO,CAAC,KAAK,CAAC,SAAS,0CAAE,WAAW,GAAG,MAAM,CAAA,EAAE,CAAC;YACjD,OAAO;gBACH,QAAQ,EAAE,mCAA2B;gBACrC,KAAK,EAAE,EAAE;aACZ,CAAC;QACN,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE,CAAC,WAAW,MAAM,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,CAAC,KAAK,EAAE,CAAC,CACvK,CAAC;QACF,OAAO;YACH,QAAQ,EAAE,mCAA2B;YACrC,KAAK,EAAE;;EAEjB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;CACnB;SACQ,CAAC;IACN,CAAC;CACJ,CAAA;AA/BY,sEAA6B;AAEnB;IADlB,IAAA,kBAAM,EAAC,0BAAgB,CAAC;sCACY,0BAAgB;uEAAC;wCAF7C,6BAA6B;IADzC,IAAA,sBAAU,GAAE;GACA,6BAA6B,CA+BzC"}
|
|
@@ -39,7 +39,7 @@ let ContextFileVariableLabelProvider = class ContextFileVariableLabelProvider {
|
|
|
39
39
|
return this.labelProvider.getLongName(this.getUri(element));
|
|
40
40
|
}
|
|
41
41
|
getDetails(element) {
|
|
42
|
-
return this.
|
|
42
|
+
return this.labelProvider.getDetails(this.getUri(element));
|
|
43
43
|
}
|
|
44
44
|
getUri(element) {
|
|
45
45
|
if (!ai_core_1.AIVariableResolutionRequest.is(element)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-file-variable-label-provider.js","sourceRoot":"","sources":["../../src/browser/context-file-variable-label-provider.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,4CAA6D;AAC7D,sCAAkC;AAClC,4DAAkE;AAClE,qDAAmF;AACnF,uEAAiE;AAG1D,IAAM,gCAAgC,GAAtC,MAAM,gCAAgC;IAQzC,SAAS,CAAC,OAAe;QACrB,IAAI,qCAA2B,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC9E,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IAED,OAAO,CAAC,OAAe;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAE,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,CAAC,OAAe;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAE,CAAC,CAAC;IAC7D,CAAC;IAED,WAAW,CAAC,OAAe;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAE,CAAC,CAAC;IACjE,CAAC;IAED,UAAU,CAAC,OAAe;QACtB,OAAO,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"context-file-variable-label-provider.js","sourceRoot":"","sources":["../../src/browser/context-file-variable-label-provider.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,4CAA6D;AAC7D,sCAAkC;AAClC,4DAAkE;AAClE,qDAAmF;AACnF,uEAAiE;AAG1D,IAAM,gCAAgC,GAAtC,MAAM,gCAAgC;IAQzC,SAAS,CAAC,OAAe;QACrB,IAAI,qCAA2B,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC9E,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IAED,OAAO,CAAC,OAAe;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAE,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,CAAC,OAAe;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAE,CAAC,CAAC;IAC7D,CAAC;IAED,WAAW,CAAC,OAAe;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAE,CAAC,CAAC;IACjE,CAAC;IAED,UAAU,CAAC,OAAe;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAE,CAAC,CAAC;IAChE,CAAC;IAES,MAAM,CAAC,OAAe;QAC5B,IAAI,CAAC,qCAA2B,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,UAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;CAEJ,CAAA;AAtCY,4EAAgC;AAGtB;IADlB,IAAA,kBAAM,EAAC,uBAAa,CAAC;sCACY,uBAAa;uEAAC;AAG7B;IADlB,IAAA,kBAAM,EAAC,8CAAoB,CAAC;sCACY,8CAAoB;8EAAC;2CANrD,gCAAgC;IAD5C,IAAA,sBAAU,GAAE;GACA,gCAAgC,CAsC5C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-chat-variable-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/file-chat-variable-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,iBAAiB,EAA2C,MAAM,gBAAgB,CAAC;AAC5F,OAAO,
|
|
1
|
+
{"version":3,"file":"file-chat-variable-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/file-chat-variable-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,iBAAiB,EAA2C,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAA+B,oBAAoB,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAEtJ,OAAO,EAAqB,iBAAiB,EAAO,MAAM,aAAa,CAAC;AAExE,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAqB,sBAAsB,EAAE,MAAM,0DAA0D,CAAC;AACrH,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AAGzE,qBACa,4BAA6B,YAAW,4BAA4B;IAE7E,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAG5C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAG/C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAElE,iBAAiB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI;cAMzC,qBAAqB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;cAuBpD,8BAA8B,CAC1C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,GAAG,SAAS,CAAC;cAkCzC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;CAiChH"}
|
|
@@ -18,13 +18,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
exports.FileChatVariableContribution = void 0;
|
|
19
19
|
const tslib_1 = require("tslib");
|
|
20
20
|
const ai_core_1 = require("@theia/ai-core");
|
|
21
|
+
const browser_1 = require("@theia/ai-core/lib/browser");
|
|
21
22
|
const file_variable_contribution_1 = require("@theia/ai-core/lib/browser/file-variable-contribution");
|
|
22
23
|
const core_1 = require("@theia/core");
|
|
23
24
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
24
25
|
const monaco = require("@theia/monaco-editor-core");
|
|
25
26
|
const quick_file_select_service_1 = require("@theia/file-search/lib/browser/quick-file-select-service");
|
|
26
|
-
const
|
|
27
|
+
const browser_2 = require("@theia/workspace/lib/browser");
|
|
27
28
|
const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
|
|
29
|
+
const ai_chat_frontend_contribution_1 = require("./ai-chat-frontend-contribution");
|
|
28
30
|
let FileChatVariableContribution = class FileChatVariableContribution {
|
|
29
31
|
registerVariables(service) {
|
|
30
32
|
service.registerArgumentPicker(file_variable_contribution_1.FILE_VARIABLE, this.triggerArgumentPicker.bind(this));
|
|
@@ -51,35 +53,35 @@ let FileChatVariableContribution = class FileChatVariableContribution {
|
|
|
51
53
|
});
|
|
52
54
|
}
|
|
53
55
|
async provideArgumentCompletionItems(model, position, matchString) {
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
// check if there is a variable trigger and no space typed between the variable trigger and the cursor
|
|
57
|
-
if (indexOfVariableTrigger === -1 || lineContent.substring(indexOfVariableTrigger).includes(' ')) {
|
|
56
|
+
const context = browser_1.AIVariableCompletionContext.get(file_variable_contribution_1.FILE_VARIABLE.name, model, position, matchString);
|
|
57
|
+
if (!context) {
|
|
58
58
|
return undefined;
|
|
59
59
|
}
|
|
60
|
-
|
|
61
|
-
const
|
|
62
|
-
const triggerCharIndex = Math.max(indexOfVariableTrigger, indexOfVariableArgSeparator);
|
|
63
|
-
const typedWord = lineContent.substring(triggerCharIndex + 1, position.column - 1);
|
|
64
|
-
const range = new monaco.Range(position.lineNumber, triggerCharIndex + 2, position.lineNumber, position.column);
|
|
65
|
-
const picks = await this.quickFileSelectService.getPicks(typedWord, core_1.CancellationToken.None);
|
|
66
|
-
const matchVariableChar = lineContent[triggerCharIndex] === (matchString ? matchString : ai_core_1.PromptText.VARIABLE_CHAR);
|
|
67
|
-
const prefix = matchVariableChar ? file_variable_contribution_1.FILE_VARIABLE.name + ai_core_1.PromptText.VARIABLE_SEPARATOR_CHAR : '';
|
|
60
|
+
const { userInput, range, prefix } = context;
|
|
61
|
+
const picks = await this.quickFileSelectService.getPicks(userInput, core_1.CancellationToken.None);
|
|
68
62
|
return Promise.all(picks
|
|
69
63
|
.filter(quick_file_select_service_1.FileQuickPickItem.is)
|
|
70
64
|
// only show files with highlights, if the user started typing to filter down the results
|
|
71
|
-
.filter(p => { var _a; return !
|
|
72
|
-
.map(async (pick, index) =>
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
65
|
+
.filter(p => { var _a; return !userInput || ((_a = p.highlights) === null || _a === void 0 ? void 0 : _a.label); })
|
|
66
|
+
.map(async (pick, index) => {
|
|
67
|
+
const relativePath = await this.wsService.getWorkspaceRelativePath(pick.uri);
|
|
68
|
+
return {
|
|
69
|
+
label: pick.label,
|
|
70
|
+
kind: monaco.languages.CompletionItemKind.File,
|
|
71
|
+
range,
|
|
72
|
+
insertText: `${prefix}${relativePath}`,
|
|
73
|
+
detail: await this.wsService.getWorkspaceRelativePath(pick.uri.parent),
|
|
74
|
+
// don't let monaco filter the items, as we only return picks that are filtered
|
|
75
|
+
filterText: userInput,
|
|
76
|
+
// keep the order of the items, but move them to the end of the list
|
|
77
|
+
sortText: `ZZ${index.toString().padStart(4, '0')}_${pick.label}`,
|
|
78
|
+
command: {
|
|
79
|
+
title: ai_chat_frontend_contribution_1.VARIABLE_ADD_CONTEXT_COMMAND.label,
|
|
80
|
+
id: ai_chat_frontend_contribution_1.VARIABLE_ADD_CONTEXT_COMMAND.id,
|
|
81
|
+
arguments: [file_variable_contribution_1.FILE_VARIABLE.name, relativePath]
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}));
|
|
83
85
|
}
|
|
84
86
|
async handleDrop(event, _) {
|
|
85
87
|
var _a;
|
|
@@ -119,8 +121,8 @@ tslib_1.__decorate([
|
|
|
119
121
|
tslib_1.__metadata("design:type", file_service_1.FileService)
|
|
120
122
|
], FileChatVariableContribution.prototype, "fileService", void 0);
|
|
121
123
|
tslib_1.__decorate([
|
|
122
|
-
(0, inversify_1.inject)(
|
|
123
|
-
tslib_1.__metadata("design:type",
|
|
124
|
+
(0, inversify_1.inject)(browser_2.WorkspaceService),
|
|
125
|
+
tslib_1.__metadata("design:type", browser_2.WorkspaceService)
|
|
124
126
|
], FileChatVariableContribution.prototype, "wsService", void 0);
|
|
125
127
|
tslib_1.__decorate([
|
|
126
128
|
(0, inversify_1.inject)(core_1.QuickInputService),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-chat-variable-contribution.js","sourceRoot":"","sources":["../../src/browser/file-chat-variable-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,4CAA4F;
|
|
1
|
+
{"version":3,"file":"file-chat-variable-contribution.js","sourceRoot":"","sources":["../../src/browser/file-chat-variable-contribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { MaybePromise, ProgressService, URI, Event } from '@theia/core';
|
|
2
|
+
import { ChatAgent, ChatService, ChatSession } from '../common';
|
|
3
|
+
import { AgentService, PromptService } from '@theia/ai-core';
|
|
4
|
+
export interface SummaryMetadata {
|
|
5
|
+
label: string;
|
|
6
|
+
uri?: URI;
|
|
7
|
+
sessionId?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface Summary extends SummaryMetadata {
|
|
10
|
+
summary: string;
|
|
11
|
+
id: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const TaskContextStorageService: unique symbol;
|
|
14
|
+
export interface TaskContextStorageService {
|
|
15
|
+
onDidChange: Event<void>;
|
|
16
|
+
store(summary: Summary): MaybePromise<void>;
|
|
17
|
+
getAll(): Summary[];
|
|
18
|
+
get(identifier: string): Summary | undefined;
|
|
19
|
+
delete(identifier: string): MaybePromise<boolean>;
|
|
20
|
+
open(identifier: string): Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
export declare class TaskContextService {
|
|
23
|
+
protected pendingSummaries: Map<string, Promise<Summary>>;
|
|
24
|
+
protected readonly chatService: ChatService;
|
|
25
|
+
protected readonly agentService: AgentService;
|
|
26
|
+
protected readonly promptService: PromptService;
|
|
27
|
+
protected readonly storageService: TaskContextStorageService;
|
|
28
|
+
protected readonly progressService: ProgressService;
|
|
29
|
+
get onDidChange(): Event<void>;
|
|
30
|
+
getAll(): Array<Summary>;
|
|
31
|
+
getSummary(sessionIdOrFilePath: string): Promise<string>;
|
|
32
|
+
/** Returns an ID that can be used to refer to the summary in the future. */
|
|
33
|
+
summarize(session: ChatSession, promptId?: string, agent?: ChatAgent): Promise<string>;
|
|
34
|
+
protected getLlmSummary(session: ChatSession, promptId?: string, agent?: ChatAgent): Promise<string>;
|
|
35
|
+
hasSummary(chatSession: ChatSession): boolean;
|
|
36
|
+
protected getSummaryForSession(chatSession: ChatSession): Summary | undefined;
|
|
37
|
+
getLabel(id: string): string | undefined;
|
|
38
|
+
open(id: string): Promise<void>;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=task-context-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-context-service.d.ts","sourceRoot":"","sources":["../../src/browser/task-context-service.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,EAAgB,KAAK,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,SAAS,EAAqB,WAAW,EAAE,WAAW,EAAwE,MAAM,WAAW,CAAC;AAGzJ,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG7D,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,OAAQ,SAAQ,eAAe;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,yBAAyB,eAAsC,CAAC;AAC7E,MAAM,WAAW,yBAAyB;IACtC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,IAAI,OAAO,EAAE,CAAC;IACpB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IAC7C,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C;AAED,qBACa,kBAAkB;IAE3B,SAAS,CAAC,gBAAgB,gCAAuC;IAE5C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAC3C,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAC7C,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC;IACvE,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAE7E,IAAI,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC,CAE7B;IAED,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC;IAIlB,UAAU,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAc9D,4EAA4E;IACtE,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;cA2B5E,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,GAAE,MAAuC,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAsB1I,UAAU,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO;IAI7C,SAAS,CAAC,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,GAAG,SAAS;IAI7E,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIxC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGlC"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2025 EclipseSource GmbH and others.
|
|
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.TaskContextService = exports.TaskContextStorageService = void 0;
|
|
19
|
+
const tslib_1 = require("tslib");
|
|
20
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
|
+
const core_1 = require("@theia/core");
|
|
22
|
+
const common_1 = require("../common");
|
|
23
|
+
const chat_session_summary_agent_1 = require("../common/chat-session-summary-agent");
|
|
24
|
+
const promise_util_1 = require("@theia/core/lib/common/promise-util");
|
|
25
|
+
const ai_core_1 = require("@theia/ai-core");
|
|
26
|
+
const chat_session_summary_agent_prompt_1 = require("../common/chat-session-summary-agent-prompt");
|
|
27
|
+
exports.TaskContextStorageService = Symbol('TextContextStorageService');
|
|
28
|
+
let TaskContextService = class TaskContextService {
|
|
29
|
+
constructor() {
|
|
30
|
+
this.pendingSummaries = new Map();
|
|
31
|
+
}
|
|
32
|
+
get onDidChange() {
|
|
33
|
+
return this.storageService.onDidChange;
|
|
34
|
+
}
|
|
35
|
+
getAll() {
|
|
36
|
+
return this.storageService.getAll();
|
|
37
|
+
}
|
|
38
|
+
async getSummary(sessionIdOrFilePath) {
|
|
39
|
+
const existing = this.storageService.get(sessionIdOrFilePath);
|
|
40
|
+
if (existing) {
|
|
41
|
+
return existing.summary;
|
|
42
|
+
}
|
|
43
|
+
const pending = this.pendingSummaries.get(sessionIdOrFilePath);
|
|
44
|
+
if (pending) {
|
|
45
|
+
return pending.then(({ summary }) => summary);
|
|
46
|
+
}
|
|
47
|
+
const session = this.chatService.getSession(sessionIdOrFilePath);
|
|
48
|
+
if (session) {
|
|
49
|
+
return this.summarize(session);
|
|
50
|
+
}
|
|
51
|
+
throw new Error('Unable to resolve summary request.');
|
|
52
|
+
}
|
|
53
|
+
/** Returns an ID that can be used to refer to the summary in the future. */
|
|
54
|
+
async summarize(session, promptId, agent) {
|
|
55
|
+
const pending = this.pendingSummaries.get(session.id);
|
|
56
|
+
if (pending) {
|
|
57
|
+
return pending.then(({ id }) => id);
|
|
58
|
+
}
|
|
59
|
+
const existing = this.getSummaryForSession(session);
|
|
60
|
+
if (existing) {
|
|
61
|
+
return existing.id;
|
|
62
|
+
}
|
|
63
|
+
const summaryId = (0, core_1.generateUuid)();
|
|
64
|
+
const summaryDeferred = new promise_util_1.Deferred();
|
|
65
|
+
const progress = await this.progressService.showProgress({ text: `Summarize: ${session.title || session.id}`, options: { location: 'ai-chat' } });
|
|
66
|
+
this.pendingSummaries.set(session.id, summaryDeferred.promise);
|
|
67
|
+
try {
|
|
68
|
+
const newSummary = {
|
|
69
|
+
summary: await this.getLlmSummary(session, promptId, agent),
|
|
70
|
+
label: session.title || session.id,
|
|
71
|
+
sessionId: session.id,
|
|
72
|
+
id: summaryId
|
|
73
|
+
};
|
|
74
|
+
await this.storageService.store(newSummary);
|
|
75
|
+
return summaryId;
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
summaryDeferred.reject(err);
|
|
79
|
+
throw err;
|
|
80
|
+
}
|
|
81
|
+
finally {
|
|
82
|
+
progress.cancel();
|
|
83
|
+
this.pendingSummaries.delete(session.id);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
async getLlmSummary(session, promptId = chat_session_summary_agent_prompt_1.CHAT_SESSION_SUMMARY_PROMPT.id, agent) {
|
|
87
|
+
var _a, _b;
|
|
88
|
+
agent = agent || this.agentService.getAgents().find((candidate) => 'invoke' in candidate
|
|
89
|
+
&& typeof candidate.invoke === 'function'
|
|
90
|
+
&& candidate.id === chat_session_summary_agent_1.ChatSessionSummaryAgent.ID);
|
|
91
|
+
if (!agent) {
|
|
92
|
+
throw new Error('Unable to identify agent for summary.');
|
|
93
|
+
}
|
|
94
|
+
const model = new common_1.MutableChatModel(common_1.ChatAgentLocation.Panel);
|
|
95
|
+
const prompt = await this.promptService.getPrompt(promptId || chat_session_summary_agent_prompt_1.CHAT_SESSION_SUMMARY_PROMPT.id, undefined, { model: session.model });
|
|
96
|
+
if (!prompt) {
|
|
97
|
+
return '';
|
|
98
|
+
}
|
|
99
|
+
const messages = session.model.getRequests().filter((candidate) => candidate instanceof common_1.MutableChatRequestModel);
|
|
100
|
+
messages.forEach(message => model['_hierarchy'].append(message));
|
|
101
|
+
const summaryRequest = model.addRequest({
|
|
102
|
+
variables: (_a = prompt.variables) !== null && _a !== void 0 ? _a : [],
|
|
103
|
+
request: { text: prompt.text },
|
|
104
|
+
parts: [new common_1.ParsedChatRequestTextPart({ start: 0, endExclusive: prompt.text.length }, prompt.text)],
|
|
105
|
+
toolRequests: (_b = prompt.functionDescriptions) !== null && _b !== void 0 ? _b : new Map()
|
|
106
|
+
}, agent.id);
|
|
107
|
+
await agent.invoke(summaryRequest);
|
|
108
|
+
return summaryRequest.response.response.asDisplayString();
|
|
109
|
+
}
|
|
110
|
+
hasSummary(chatSession) {
|
|
111
|
+
return !!this.getSummaryForSession(chatSession);
|
|
112
|
+
}
|
|
113
|
+
getSummaryForSession(chatSession) {
|
|
114
|
+
return this.storageService.getAll().find(candidate => candidate.sessionId === chatSession.id);
|
|
115
|
+
}
|
|
116
|
+
getLabel(id) {
|
|
117
|
+
var _a;
|
|
118
|
+
return (_a = this.storageService.get(id)) === null || _a === void 0 ? void 0 : _a.label;
|
|
119
|
+
}
|
|
120
|
+
open(id) {
|
|
121
|
+
return this.storageService.open(id);
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
exports.TaskContextService = TaskContextService;
|
|
125
|
+
tslib_1.__decorate([
|
|
126
|
+
(0, inversify_1.inject)(common_1.ChatService),
|
|
127
|
+
tslib_1.__metadata("design:type", Object)
|
|
128
|
+
], TaskContextService.prototype, "chatService", void 0);
|
|
129
|
+
tslib_1.__decorate([
|
|
130
|
+
(0, inversify_1.inject)(ai_core_1.AgentService),
|
|
131
|
+
tslib_1.__metadata("design:type", Object)
|
|
132
|
+
], TaskContextService.prototype, "agentService", void 0);
|
|
133
|
+
tslib_1.__decorate([
|
|
134
|
+
(0, inversify_1.inject)(ai_core_1.PromptService),
|
|
135
|
+
tslib_1.__metadata("design:type", Object)
|
|
136
|
+
], TaskContextService.prototype, "promptService", void 0);
|
|
137
|
+
tslib_1.__decorate([
|
|
138
|
+
(0, inversify_1.inject)(exports.TaskContextStorageService),
|
|
139
|
+
tslib_1.__metadata("design:type", Object)
|
|
140
|
+
], TaskContextService.prototype, "storageService", void 0);
|
|
141
|
+
tslib_1.__decorate([
|
|
142
|
+
(0, inversify_1.inject)(core_1.ProgressService),
|
|
143
|
+
tslib_1.__metadata("design:type", core_1.ProgressService)
|
|
144
|
+
], TaskContextService.prototype, "progressService", void 0);
|
|
145
|
+
exports.TaskContextService = TaskContextService = tslib_1.__decorate([
|
|
146
|
+
(0, inversify_1.injectable)()
|
|
147
|
+
], TaskContextService);
|
|
148
|
+
//# sourceMappingURL=task-context-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-context-service.js","sourceRoot":"","sources":["../../src/browser/task-context-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,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,4DAAkE;AAClE,sCAAsF;AACtF,sCAAyJ;AACzJ,qFAA+E;AAC/E,sEAA+D;AAC/D,4CAA6D;AAC7D,mGAA0F;AAa7E,QAAA,yBAAyB,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAWtE,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAAxB;QAEO,qBAAgB,GAAG,IAAI,GAAG,EAA4B,CAAC;IA+FrE,CAAC;IAvFG,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;IAC3C,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,mBAA2B;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC9D,IAAI,QAAQ,EAAE,CAAC;YAAC,OAAO,QAAQ,CAAC,OAAO,CAAC;QAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC/D,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;QACjE,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC1D,CAAC;IAED,4EAA4E;IAC5E,KAAK,CAAC,SAAS,CAAC,OAAoB,EAAE,QAAiB,EAAE,KAAiB;QACtE,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACtD,IAAI,OAAO,EAAE,CAAC;YAAC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,QAAQ,EAAE,CAAC;YAAC,OAAO,QAAQ,CAAC,EAAE,CAAC;QAAC,CAAC;QACrC,MAAM,SAAS,GAAG,IAAA,mBAAY,GAAE,CAAC;QACjC,MAAM,eAAe,GAAG,IAAI,uBAAQ,EAAW,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,cAAc,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAClJ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC;YACD,MAAM,UAAU,GAAY;gBACxB,OAAO,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC;gBAC3D,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,EAAE;gBAClC,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,EAAE,EAAE,SAAS;aAChB,CAAC;YACF,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC5C,OAAO,SAAS,CAAC;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,GAAG,CAAC;QACd,CAAC;gBAAS,CAAC;YACP,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC;IAES,KAAK,CAAC,aAAa,CAAC,OAAoB,EAAE,WAAmB,+DAA2B,CAAC,EAAE,EAAE,KAAiB;;QACpH,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,IAAI,CAAY,CAAC,SAAS,EAA0B,EAAE,CACjG,QAAQ,IAAI,SAAS;eAClB,OAAO,SAAS,CAAC,MAAM,KAAK,UAAU;eACtC,SAAS,CAAC,EAAE,KAAK,oDAAuB,CAAC,EAAE,CACjD,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAAC,CAAC;QACzE,MAAM,KAAK,GAAG,IAAI,yBAAgB,CAAC,0BAAiB,CAAC,KAAK,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,IAAI,+DAA2B,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACnI,IAAI,CAAC,MAAM,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAAC,CAAC;QAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,EAAwC,EAAE,CAAC,SAAS,YAAY,gCAAuB,CAAC,CAAC;QACvJ,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACjE,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC;YACpC,SAAS,EAAE,MAAA,MAAM,CAAC,SAAS,mCAAI,EAAE;YACjC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;YAC9B,KAAK,EAAE,CAAC,IAAI,kCAAyB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACnG,YAAY,EAAE,MAAA,MAAM,CAAC,oBAAoB,mCAAI,IAAI,GAAG,EAAE;SACzD,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QACb,MAAM,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACnC,OAAO,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;IAC9D,CAAC;IAED,UAAU,CAAC,WAAwB;QAC/B,OAAO,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC;IAES,oBAAoB,CAAC,WAAwB;QACnD,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,KAAK,WAAW,CAAC,EAAE,CAAC,CAAC;IAClG,CAAC;IAED,QAAQ,CAAC,EAAU;;QACf,OAAO,MAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,0CAAE,KAAK,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,EAAU;QACX,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;CACJ,CAAA;AAjGY,gDAAkB;AAIa;IAAvC,IAAA,kBAAM,EAAC,oBAAW,CAAC;;uDAA6C;AACxB;IAAxC,IAAA,kBAAM,EAAC,sBAAY,CAAC;;wDAA+C;AAC1B;IAAzC,IAAA,kBAAM,EAAC,uBAAa,CAAC;;yDAAiD;AACjB;IAArD,IAAA,kBAAM,EAAC,iCAAyB,CAAC;;0DAA8D;AACpD;IAA3C,IAAA,kBAAM,EAAC,sBAAe,CAAC;sCAAqC,sBAAe;2DAAC;6BARpE,kBAAkB;IAD9B,IAAA,sBAAU,GAAE;GACA,kBAAkB,CAiG9B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Summary, TaskContextStorageService } from './task-context-service';
|
|
2
|
+
import { Emitter } from '@theia/core';
|
|
3
|
+
import { AIVariableResourceResolver } from '@theia/ai-core';
|
|
4
|
+
import { OpenerService } from '@theia/core/lib/browser';
|
|
5
|
+
export declare class InMemoryTaskContextStorage implements TaskContextStorageService {
|
|
6
|
+
protected summaries: Map<string, Summary>;
|
|
7
|
+
protected readonly onDidChangeEmitter: Emitter<void>;
|
|
8
|
+
readonly onDidChange: import("@theia/core").Event<void>;
|
|
9
|
+
protected readonly variableResourceResolver: AIVariableResourceResolver;
|
|
10
|
+
protected readonly openerService: OpenerService;
|
|
11
|
+
store(summary: Summary): void;
|
|
12
|
+
getAll(): Summary[];
|
|
13
|
+
get(identifier: string): Summary | undefined;
|
|
14
|
+
delete(identifier: string): boolean;
|
|
15
|
+
clear(): void;
|
|
16
|
+
open(identifier: string): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=task-context-storage-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-context-storage-service.d.ts","sourceRoot":"","sources":["../../src/browser/task-context-storage-service.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAQ,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBACa,0BAA2B,YAAW,yBAAyB;IACxE,SAAS,CAAC,SAAS,uBAA8B;IAEjD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,gBAAuB;IAC5D,QAAQ,CAAC,WAAW,oCAAiC;IAGrD,SAAS,CAAC,QAAQ,CAAC,wBAAwB,EAAE,0BAA0B,CAAC;IAGxE,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAEhD,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAK7B,MAAM,IAAI,OAAO,EAAE;IAInB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI5C,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAQnC,KAAK,IAAI,IAAI;IAOP,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAUhD"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2025 EclipseSource GmbH and others.
|
|
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.InMemoryTaskContextStorage = void 0;
|
|
19
|
+
const tslib_1 = require("tslib");
|
|
20
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
|
+
const core_1 = require("@theia/core");
|
|
22
|
+
const ai_core_1 = require("@theia/ai-core");
|
|
23
|
+
const task_context_variable_1 = require("./task-context-variable");
|
|
24
|
+
const browser_1 = require("@theia/core/lib/browser");
|
|
25
|
+
let InMemoryTaskContextStorage = class InMemoryTaskContextStorage {
|
|
26
|
+
constructor() {
|
|
27
|
+
this.summaries = new Map();
|
|
28
|
+
this.onDidChangeEmitter = new core_1.Emitter();
|
|
29
|
+
this.onDidChange = this.onDidChangeEmitter.event;
|
|
30
|
+
}
|
|
31
|
+
store(summary) {
|
|
32
|
+
this.summaries.set(summary.id, summary);
|
|
33
|
+
this.onDidChangeEmitter.fire();
|
|
34
|
+
}
|
|
35
|
+
getAll() {
|
|
36
|
+
return Array.from(this.summaries.values());
|
|
37
|
+
}
|
|
38
|
+
get(identifier) {
|
|
39
|
+
return this.summaries.get(identifier);
|
|
40
|
+
}
|
|
41
|
+
delete(identifier) {
|
|
42
|
+
const didDelete = this.summaries.delete(identifier);
|
|
43
|
+
if (didDelete) {
|
|
44
|
+
this.onDidChangeEmitter.fire();
|
|
45
|
+
}
|
|
46
|
+
return didDelete;
|
|
47
|
+
}
|
|
48
|
+
clear() {
|
|
49
|
+
if (this.summaries.size) {
|
|
50
|
+
this.summaries.clear();
|
|
51
|
+
this.onDidChangeEmitter.fire();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async open(identifier) {
|
|
55
|
+
const summary = this.get(identifier);
|
|
56
|
+
if (!summary) {
|
|
57
|
+
throw new Error('Unable to upon requested task context: none found.');
|
|
58
|
+
}
|
|
59
|
+
const resource = this.variableResourceResolver.getOrCreate({ variable: task_context_variable_1.TASK_CONTEXT_VARIABLE, arg: identifier }, {}, summary.summary);
|
|
60
|
+
resource.update({ onSave: async (content) => { summary.summary = content; }, readOnly: false });
|
|
61
|
+
await (0, browser_1.open)(this.openerService, resource.uri);
|
|
62
|
+
resource.dispose();
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
exports.InMemoryTaskContextStorage = InMemoryTaskContextStorage;
|
|
66
|
+
tslib_1.__decorate([
|
|
67
|
+
(0, inversify_1.inject)(ai_core_1.AIVariableResourceResolver),
|
|
68
|
+
tslib_1.__metadata("design:type", ai_core_1.AIVariableResourceResolver)
|
|
69
|
+
], InMemoryTaskContextStorage.prototype, "variableResourceResolver", void 0);
|
|
70
|
+
tslib_1.__decorate([
|
|
71
|
+
(0, inversify_1.inject)(browser_1.OpenerService),
|
|
72
|
+
tslib_1.__metadata("design:type", Object)
|
|
73
|
+
], InMemoryTaskContextStorage.prototype, "openerService", void 0);
|
|
74
|
+
exports.InMemoryTaskContextStorage = InMemoryTaskContextStorage = tslib_1.__decorate([
|
|
75
|
+
(0, inversify_1.injectable)()
|
|
76
|
+
], InMemoryTaskContextStorage);
|
|
77
|
+
//# sourceMappingURL=task-context-storage-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-context-storage-service.js","sourceRoot":"","sources":["../../src/browser/task-context-storage-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,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,4DAAkE;AAElE,sCAAsC;AACtC,4CAA4D;AAC5D,mEAAgE;AAChE,qDAA8D;AAGvD,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAAhC;QACO,cAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;QAE9B,uBAAkB,GAAG,IAAI,cAAO,EAAQ,CAAC;QACnD,gBAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;IA8CzD,CAAC;IAtCG,KAAK,CAAC,OAAgB;QAClB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;IAED,MAAM;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,GAAG,CAAC,UAAkB;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,UAAkB;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,KAAK;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;QACnC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,UAAkB;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,6CAAqB,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACtI,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAC,OAAO,EAAC,EAAE,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9F,MAAM,IAAA,cAAI,EAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC7C,QAAQ,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;CACJ,CAAA;AAlDY,gEAA0B;AAOhB;IADlB,IAAA,kBAAM,EAAC,oCAA0B,CAAC;sCACU,oCAA0B;4EAAC;AAGrD;IADlB,IAAA,kBAAM,EAAC,uBAAa,CAAC;;iEAC0B;qCAVvC,0BAA0B;IADtC,IAAA,sBAAU,GAAE;GACA,0BAA0B,CAkDtC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { AIVariableContext, AIVariableOpener, AIVariableResolutionRequest, AIVariableResolver, ResolvedAIContextVariable } from '@theia/ai-core';
|
|
2
|
+
import { FrontendVariableContribution, FrontendVariableService } from '@theia/ai-core/lib/browser';
|
|
3
|
+
import { MaybePromise, QuickInputService, QuickPickItem } from '@theia/core';
|
|
4
|
+
import { ChatService } from '../common';
|
|
5
|
+
import * as monaco from '@theia/monaco-editor-core';
|
|
6
|
+
import { TaskContextService } from './task-context-service';
|
|
7
|
+
export declare class TaskContextVariableContribution implements FrontendVariableContribution, AIVariableResolver, AIVariableOpener {
|
|
8
|
+
protected readonly quickInputService: QuickInputService;
|
|
9
|
+
protected readonly chatService: ChatService;
|
|
10
|
+
protected readonly taskContextService: TaskContextService;
|
|
11
|
+
registerVariables(service: FrontendVariableService): void;
|
|
12
|
+
protected pickSession(): Promise<string | undefined>;
|
|
13
|
+
protected provideCompletionItems(model: monaco.editor.ITextModel, position: monaco.Position, matchString?: string): Promise<monaco.languages.CompletionItem[] | undefined>;
|
|
14
|
+
protected getItems(): QuickPickItem[];
|
|
15
|
+
canResolve(request: AIVariableResolutionRequest, context: AIVariableContext): MaybePromise<number>;
|
|
16
|
+
resolve(request: AIVariableResolutionRequest, _context: AIVariableContext): Promise<ResolvedAIContextVariable | undefined>;
|
|
17
|
+
canOpen(request: AIVariableResolutionRequest, context: AIVariableContext): MaybePromise<number>;
|
|
18
|
+
open(request: AIVariableResolutionRequest, _context: AIVariableContext): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=task-context-variable-contribution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-context-variable-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/task-context-variable-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AACjJ,OAAO,EAA+B,4BAA4B,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAChI,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAI5D,qBACa,+BAAgC,YAAW,4BAA4B,EAAE,kBAAkB,EAAE,gBAAgB;IAC3F,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9D,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IACrC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAEtF,iBAAiB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI;cAOzC,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;cAM1C,sBAAsB,CAClC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,GAAG,SAAS,CAAC;IAmBzD,SAAS,CAAC,QAAQ,IAAI,aAAa,EAAE;IAMrC,UAAU,CAAC,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,iBAAiB,GAAG,YAAY,CAAC,MAAM,CAAC;IAI5F,OAAO,CAAC,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;IAMhI,OAAO,CAAC,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,iBAAiB,GAAG,YAAY,CAAC,MAAM,CAAC;IAIzF,IAAI,CAAC,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CAI/F"}
|