@theia/ai-chat 1.58.2 → 1.59.0-next.62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/lib/browser/ai-chat-frontend-module.d.ts.map +1 -1
  2. package/lib/browser/ai-chat-frontend-module.js +10 -13
  3. package/lib/browser/ai-chat-frontend-module.js.map +1 -1
  4. package/lib/browser/ai-chat-preferences.d.ts +1 -0
  5. package/lib/browser/ai-chat-preferences.d.ts.map +1 -1
  6. package/lib/browser/ai-chat-preferences.js +12 -3
  7. package/lib/browser/ai-chat-preferences.js.map +1 -1
  8. package/lib/browser/change-set-file-element.d.ts +24 -6
  9. package/lib/browser/change-set-file-element.d.ts.map +1 -1
  10. package/lib/browser/change-set-file-element.js +105 -15
  11. package/lib/browser/change-set-file-element.js.map +1 -1
  12. package/lib/browser/change-set-file-resource.d.ts +40 -8
  13. package/lib/browser/change-set-file-resource.d.ts.map +1 -1
  14. package/lib/browser/change-set-file-resource.js +123 -37
  15. package/lib/browser/change-set-file-resource.js.map +1 -1
  16. package/lib/browser/change-set-file-service.d.ts +9 -3
  17. package/lib/browser/change-set-file-service.d.ts.map +1 -1
  18. package/lib/browser/change-set-file-service.js +35 -13
  19. package/lib/browser/change-set-file-service.js.map +1 -1
  20. package/lib/browser/context-file-variable-label-provider.d.ts +14 -0
  21. package/lib/browser/context-file-variable-label-provider.d.ts.map +1 -0
  22. package/lib/browser/context-file-variable-label-provider.js +63 -0
  23. package/lib/browser/context-file-variable-label-provider.js.map +1 -0
  24. package/lib/browser/context-variable-label-provider.d.ts +9 -0
  25. package/lib/browser/context-variable-label-provider.d.ts.map +1 -0
  26. package/lib/browser/context-variable-label-provider.js +55 -0
  27. package/lib/browser/context-variable-label-provider.js.map +1 -0
  28. package/lib/browser/file-chat-variable-contribution.d.ts +18 -0
  29. package/lib/browser/file-chat-variable-contribution.d.ts.map +1 -0
  30. package/lib/browser/file-chat-variable-contribution.js +135 -0
  31. package/lib/browser/file-chat-variable-contribution.js.map +1 -0
  32. package/lib/browser/frontend-chat-service.d.ts +10 -3
  33. package/lib/browser/frontend-chat-service.d.ts.map +1 -1
  34. package/lib/browser/frontend-chat-service.js +39 -19
  35. package/lib/browser/frontend-chat-service.js.map +1 -1
  36. package/lib/common/chat-agents.d.ts +47 -24
  37. package/lib/common/chat-agents.d.ts.map +1 -1
  38. package/lib/common/chat-agents.js +50 -19
  39. package/lib/common/chat-agents.js.map +1 -1
  40. package/lib/common/chat-history-entry.js +1 -1
  41. package/lib/common/chat-history-entry.js.map +1 -1
  42. package/lib/common/chat-model.d.ts +58 -35
  43. package/lib/common/chat-model.d.ts.map +1 -1
  44. package/lib/common/chat-model.js +96 -53
  45. package/lib/common/chat-model.js.map +1 -1
  46. package/lib/common/chat-service.d.ts +32 -12
  47. package/lib/common/chat-service.d.ts.map +1 -1
  48. package/lib/common/chat-service.js +77 -19
  49. package/lib/common/chat-service.js.map +1 -1
  50. package/lib/common/chat-tool-request-service.d.ts +5 -5
  51. package/lib/common/chat-tool-request-service.d.ts.map +1 -1
  52. package/lib/common/chat-tool-request-service.js.map +1 -1
  53. package/lib/common/custom-chat-agent.d.ts +7 -10
  54. package/lib/common/custom-chat-agent.d.ts.map +1 -1
  55. package/lib/common/custom-chat-agent.js +7 -11
  56. package/lib/common/custom-chat-agent.js.map +1 -1
  57. package/lib/common/index.d.ts +0 -3
  58. package/lib/common/index.d.ts.map +1 -1
  59. package/lib/common/index.js +0 -3
  60. package/lib/common/index.js.map +1 -1
  61. package/lib/common/parse-contents.d.ts +2 -2
  62. package/lib/common/parse-contents.d.ts.map +1 -1
  63. package/lib/common/parse-contents.js.map +1 -1
  64. package/lib/common/parse-contents.spec.d.ts.map +1 -1
  65. package/lib/common/parse-contents.spec.js.map +1 -1
  66. package/lib/common/response-content-matcher.d.ts +3 -3
  67. package/lib/common/response-content-matcher.d.ts.map +1 -1
  68. package/lib/common/response-content-matcher.js.map +1 -1
  69. package/package.json +12 -10
  70. package/src/browser/ai-chat-frontend-module.ts +14 -18
  71. package/src/browser/ai-chat-preferences.ts +13 -2
  72. package/src/browser/change-set-file-element.ts +99 -20
  73. package/src/browser/change-set-file-resource.ts +125 -39
  74. package/src/browser/change-set-file-service.ts +38 -16
  75. package/src/browser/context-file-variable-label-provider.ts +62 -0
  76. package/src/browser/context-variable-label-provider.ts +56 -0
  77. package/src/browser/file-chat-variable-contribution.ts +143 -0
  78. package/src/browser/frontend-chat-service.ts +40 -26
  79. package/src/common/chat-agents.ts +72 -27
  80. package/src/common/chat-history-entry.ts +1 -1
  81. package/src/common/chat-model.ts +138 -74
  82. package/src/common/chat-service.ts +96 -23
  83. package/src/common/chat-tool-request-service.ts +5 -5
  84. package/src/common/custom-chat-agent.ts +8 -20
  85. package/src/common/index.ts +0 -3
  86. package/src/common/parse-contents.spec.ts +2 -2
  87. package/src/common/parse-contents.ts +2 -2
  88. package/src/common/response-content-matcher.ts +3 -3
  89. package/lib/common/command-chat-agents.d.ts +0 -33
  90. package/lib/common/command-chat-agents.d.ts.map +0 -1
  91. package/lib/common/command-chat-agents.js +0 -329
  92. package/lib/common/command-chat-agents.js.map +0 -1
  93. package/lib/common/orchestrator-chat-agent.d.ts +0 -22
  94. package/lib/common/orchestrator-chat-agent.d.ts.map +0 -1
  95. package/lib/common/orchestrator-chat-agent.js +0 -167
  96. package/lib/common/orchestrator-chat-agent.js.map +0 -1
  97. package/lib/common/universal-chat-agent.d.ts +0 -16
  98. package/lib/common/universal-chat-agent.d.ts.map +0 -1
  99. package/lib/common/universal-chat-agent.js +0 -109
  100. package/lib/common/universal-chat-agent.js.map +0 -1
  101. package/src/common/command-chat-agents.ts +0 -354
  102. package/src/common/orchestrator-chat-agent.ts +0 -179
  103. package/src/common/universal-chat-agent.ts +0 -117
@@ -15,58 +15,144 @@
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.ChangeSetFileResourceResolver = exports.createChangeSetFileUri = exports.CHANGE_SET_FILE_RESOURCE_SCHEME = void 0;
18
+ exports.ChangeSetFileResourceResolver = exports.DisposableRefCounter = exports.DisposableMutableResource = exports.UpdatableReferenceResource = exports.createChangeSetFileUri = exports.CHANGE_SET_FILE_RESOURCE_SCHEME = void 0;
19
19
  const tslib_1 = require("tslib");
20
20
  const core_1 = require("@theia/core");
21
21
  const inversify_1 = require("@theia/core/shared/inversify");
22
- const common_1 = require("../common");
23
- const change_set_file_element_1 = require("./change-set-file-element");
24
22
  exports.CHANGE_SET_FILE_RESOURCE_SCHEME = 'changeset-file';
25
- const QUERY = 'uri=';
26
23
  function createChangeSetFileUri(chatSessionId, elementUri) {
27
- return new core_1.URI(exports.CHANGE_SET_FILE_RESOURCE_SCHEME + '://' + chatSessionId + '/' + elementUri.path).withQuery(QUERY + encodeURIComponent(elementUri.path.toString()));
24
+ return elementUri.withScheme(exports.CHANGE_SET_FILE_RESOURCE_SCHEME).withAuthority(chatSessionId);
28
25
  }
29
26
  exports.createChangeSetFileUri = createChangeSetFileUri;
30
- /**
31
- * A file resource within a chat's change set can be resolved with the following URI:
32
- * changeset-file:/<chat-session-id>?uri=<element-uri-without-scheme>
33
- */
27
+ class UpdatableReferenceResource extends core_1.ReferenceMutableResource {
28
+ static acquire(resource) {
29
+ DisposableRefCounter.acquire(resource.reference);
30
+ return resource;
31
+ }
32
+ constructor(reference) {
33
+ super(reference);
34
+ this.reference = reference;
35
+ }
36
+ update(options) {
37
+ this.reference.object.update(options);
38
+ }
39
+ get readOnly() {
40
+ return this.reference.object.readOnly;
41
+ }
42
+ get initiallyDirty() {
43
+ return this.reference.object.initiallyDirty;
44
+ }
45
+ get autosaveable() {
46
+ return this.reference.object.autosaveable;
47
+ }
48
+ }
49
+ exports.UpdatableReferenceResource = UpdatableReferenceResource;
50
+ class DisposableMutableResource extends core_1.MutableResource {
51
+ constructor(uri, options) {
52
+ var _a;
53
+ super(uri);
54
+ this.options = options;
55
+ this.onSave = options === null || options === void 0 ? void 0 : options.onSave;
56
+ this.contents = (_a = options === null || options === void 0 ? void 0 : options.contents) !== null && _a !== void 0 ? _a : '';
57
+ }
58
+ get readOnly() {
59
+ var _a;
60
+ return ((_a = this.options) === null || _a === void 0 ? void 0 : _a.readOnly) || !this.onSave;
61
+ }
62
+ get autosaveable() {
63
+ var _a;
64
+ return ((_a = this.options) === null || _a === void 0 ? void 0 : _a.autosaveable) !== false;
65
+ }
66
+ get initiallyDirty() {
67
+ var _a;
68
+ return !!((_a = this.options) === null || _a === void 0 ? void 0 : _a.initiallyDirty);
69
+ }
70
+ async saveContents(contents) {
71
+ var _a;
72
+ if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.onSave) {
73
+ await this.options.onSave(contents);
74
+ this.update({ contents });
75
+ }
76
+ }
77
+ update(options) {
78
+ if (options.contents !== undefined && options.contents !== this.contents) {
79
+ this.contents = options.contents;
80
+ this.fireDidChangeContents();
81
+ }
82
+ if ('onSave' in options && options.onSave !== this.onSave) {
83
+ this.onSave = options.onSave;
84
+ }
85
+ }
86
+ dispose() {
87
+ this.onDidChangeContentsEmitter.dispose();
88
+ }
89
+ }
90
+ exports.DisposableMutableResource = DisposableMutableResource;
91
+ class DisposableRefCounter {
92
+ static acquire(item) {
93
+ item.refs++;
94
+ return item;
95
+ }
96
+ static create(value, onDispose) {
97
+ return this.acquire(new this(value, onDispose));
98
+ }
99
+ constructor(value, onDispose) {
100
+ this.onDispose = onDispose;
101
+ this.refs = 0;
102
+ this.object = value;
103
+ }
104
+ dispose() {
105
+ this.refs--;
106
+ if (this.refs === 0) {
107
+ this.onDispose();
108
+ }
109
+ }
110
+ }
111
+ exports.DisposableRefCounter = DisposableRefCounter;
34
112
  let ChangeSetFileResourceResolver = class ChangeSetFileResourceResolver {
35
- async resolve(uri) {
36
- if (uri.scheme !== exports.CHANGE_SET_FILE_RESOURCE_SCHEME) {
37
- throw new Error('The given uri is not a change set file uri: ' + uri);
113
+ constructor() {
114
+ this.cache = new Map();
115
+ }
116
+ add(uri, options) {
117
+ const key = uri.toString();
118
+ if (this.cache.has(key)) {
119
+ throw new Error(`Resource ${key} already exists.`);
38
120
  }
39
- const chatSessionId = uri.authority;
40
- const session = this.chatService.getSession(chatSessionId);
41
- if (!session) {
42
- throw new Error('Chat session not found: ' + chatSessionId);
121
+ const underlyingResource = new DisposableMutableResource(uri, options);
122
+ const ref = DisposableRefCounter.create(underlyingResource, () => {
123
+ underlyingResource.dispose();
124
+ this.cache.delete(key);
125
+ });
126
+ const refResource = new UpdatableReferenceResource(ref);
127
+ this.cache.set(key, refResource);
128
+ return refResource;
129
+ }
130
+ tryGet(uri) {
131
+ try {
132
+ return this.resolve(uri);
43
133
  }
44
- const changeSet = session.model.changeSet;
45
- if (!changeSet) {
46
- throw new Error('Chat session has no change set: ' + chatSessionId);
134
+ catch {
135
+ return undefined;
47
136
  }
48
- const fileUri = decodeURIComponent(uri.query.toString().replace(QUERY, ''));
49
- const element = changeSet.getElements().find(e => e.uri.path.toString() === fileUri);
50
- if (!(element instanceof change_set_file_element_1.ChangeSetFileElement)) {
51
- throw new Error('Change set element not found: ' + fileUri);
137
+ }
138
+ update(uri, contents) {
139
+ const key = uri.toString();
140
+ const resource = this.cache.get(key);
141
+ if (!resource) {
142
+ throw new Error(`No resource for ${key}.`);
143
+ }
144
+ resource.update({ contents });
145
+ }
146
+ resolve(uri) {
147
+ const key = uri.toString();
148
+ const ref = this.cache.get(key);
149
+ if (!ref) {
150
+ throw new Error(`No resource for ${key}.`);
52
151
  }
53
- return {
54
- uri,
55
- readOnly: false,
56
- initiallyDirty: true,
57
- readContents: async () => { var _a; return (_a = element.targetState) !== null && _a !== void 0 ? _a : ''; },
58
- saveContents: async (content, options) => {
59
- element.accept(content);
60
- },
61
- dispose: () => { }
62
- };
152
+ return UpdatableReferenceResource.acquire(ref);
63
153
  }
64
154
  };
65
155
  exports.ChangeSetFileResourceResolver = ChangeSetFileResourceResolver;
66
- tslib_1.__decorate([
67
- (0, inversify_1.inject)(common_1.ChatService),
68
- tslib_1.__metadata("design:type", Object)
69
- ], ChangeSetFileResourceResolver.prototype, "chatService", void 0);
70
156
  exports.ChangeSetFileResourceResolver = ChangeSetFileResourceResolver = tslib_1.__decorate([
71
157
  (0, inversify_1.injectable)()
72
158
  ], ChangeSetFileResourceResolver);
@@ -1 +1 @@
1
- {"version":3,"file":"change-set-file-resource.js","sourceRoot":"","sources":["../../src/browser/change-set-file-resource.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,sCAAmF;AACnF,4DAAkE;AAClE,sCAAwC;AACxC,uEAAiE;AAEpD,QAAA,+BAA+B,GAAG,gBAAgB,CAAC;AAChE,MAAM,KAAK,GAAG,MAAM,CAAC;AAErB,SAAgB,sBAAsB,CAAC,aAAqB,EAAE,UAAe;IACzE,OAAO,IAAI,UAAG,CAAC,uCAA+B,GAAG,KAAK,GAAG,aAAa,GAAG,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AACtK,CAAC;AAFD,wDAEC;AAED;;;GAGG;AAEI,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IAKtC,KAAK,CAAC,OAAO,CAAC,GAAQ;QAClB,IAAI,GAAG,CAAC,MAAM,KAAK,uCAA+B,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,GAAG,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,aAAa,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;QAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,aAAa,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC;QACrF,IAAI,CAAC,CAAC,OAAO,YAAY,8CAAoB,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,OAAO,CAAC,CAAC;QAChE,CAAC;QAED,OAAO;YACH,GAAG;YACH,QAAQ,EAAE,KAAK;YACf,cAAc,EAAE,IAAI;YACpB,YAAY,EAAE,KAAK,IAAI,EAAE,WAAC,OAAA,MAAA,OAAO,CAAC,WAAW,mCAAI,EAAE,CAAA,EAAA;YACnD,YAAY,EAAE,KAAK,EAAE,OAAe,EAAE,OAA6B,EAAiB,EAAE;gBAClF,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;YACD,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC;SACrB,CAAC;IACN,CAAC;CAEJ,CAAA;AAvCY,sEAA6B;AAGnB;IADlB,IAAA,kBAAM,EAAC,oBAAW,CAAC;;kEACwB;wCAHnC,6BAA6B;IADzC,IAAA,sBAAU,GAAE;GACA,6BAA6B,CAuCzC"}
1
+ {"version":3,"file":"change-set-file-resource.js","sourceRoot":"","sources":["../../src/browser/change-set-file-resource.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ILogger, URI } from '@theia/core';
2
- import { LabelProvider, OpenerService } from '@theia/core/lib/browser';
2
+ import { ApplicationShell, LabelProvider, OpenerService } from '@theia/core/lib/browser';
3
3
  import { EditorManager } from '@theia/editor/lib/browser';
4
4
  import { FileService } from '@theia/filesystem/lib/browser/file-service';
5
5
  import { MonacoWorkspace } from '@theia/monaco/lib/browser/monaco-workspace';
@@ -11,6 +11,7 @@ export declare class ChangeSetFileService {
11
11
  protected readonly labelProvider: LabelProvider;
12
12
  protected readonly openerService: OpenerService;
13
13
  protected readonly editorManager: EditorManager;
14
+ protected readonly shell: ApplicationShell;
14
15
  protected readonly monacoWorkspace: MonacoWorkspace;
15
16
  protected readonly fileService: FileService;
16
17
  read(uri: URI): Promise<string | undefined>;
@@ -19,8 +20,13 @@ export declare class ChangeSetFileService {
19
20
  getAdditionalInfo(uri: URI): string | undefined;
20
21
  open(element: ChangeSetFileElement): Promise<void>;
21
22
  openDiff(originalUri: URI, suggestedUri: URI): Promise<void>;
23
+ protected getDiffUri(originalUri: URI, suggestedUri: URI): URI;
22
24
  delete(uri: URI): Promise<void>;
23
- write(uri: URI, targetState: string): Promise<void>;
24
- protected doWrite(uri: URI, text: string): Promise<void>;
25
+ /** Returns true if there was a document available to save for the specified URI. */
26
+ trySave(suggestedUri: URI): Promise<boolean>;
27
+ writeFrom(from: URI, to: URI, fallbackContent: string): Promise<void>;
28
+ write(uri: URI, text: string): Promise<void>;
29
+ closeDiffsForSession(sessionId: string, except?: URI[]): void;
30
+ closeDiff(uri: URI): void;
25
31
  }
26
32
  //# sourceMappingURL=change-set-file-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"change-set-file-service.d.ts","sourceRoot":"","sources":["../../src/browser/change-set-file-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAmB,GAAG,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAY,aAAa,EAAE,aAAa,EAAQ,MAAM,yBAAyB,CAAC;AAEvF,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,qBACa,oBAAoB;IAE7B,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAGnC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAG/C,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGhD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGhD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGhD,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAGpD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAEtC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAiBjD,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM;IAIzB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IAIrC,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IAYzC,IAAI,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWlD,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5D,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/B,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAQzC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAYjE"}
1
+ {"version":3,"file":"change-set-file-service.d.ts","sourceRoot":"","sources":["../../src/browser/change-set-file-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAY,aAAa,EAAqB,aAAa,EAAQ,MAAM,yBAAyB,CAAC;AAE5H,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,qBACa,oBAAoB;IAE7B,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAGnC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAG/C,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGhD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGhD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGhD,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IAG3C,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAGpD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAEtC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAiBjD,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM;IAIzB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IAIrC,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IAYzC,IAAI,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWlD,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlE,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,GAAG,GAAG;IAMxD,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrC,oFAAoF;IAC9E,OAAO,CAAC,YAAY,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAU5C,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlD,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;IAQ7D,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;CAI5B"}
@@ -70,39 +70,57 @@ let ChangeSetFileService = class ChangeSetFileService {
70
70
  });
71
71
  }
72
72
  async openDiff(originalUri, suggestedUri) {
73
- const exists = await this.fileService.exists(originalUri);
74
- const openedUri = exists ? originalUri : originalUri.withScheme(core_1.UNTITLED_SCHEME);
75
- // Currently we don't have a great way to show the suggestions in a diff editor with accept/reject buttons
76
- // So we just use plain diffs with the suggestions as original and the current state as modified, so users can apply changes in their current state
77
- // But this leads to wrong colors and wrong label (revert change instead of accept change)
78
- const diffUri = browser_1.DiffUris.encode(openedUri, suggestedUri, `AI Changes: ${this.labelProvider.getName(originalUri)}`);
73
+ const diffUri = this.getDiffUri(originalUri, suggestedUri);
79
74
  (0, browser_1.open)(this.openerService, diffUri);
80
75
  }
76
+ getDiffUri(originalUri, suggestedUri) {
77
+ return browser_1.DiffUris.encode(originalUri, suggestedUri, `AI Changes: ${this.labelProvider.getName(originalUri)}`);
78
+ }
81
79
  async delete(uri) {
82
80
  const exists = await this.fileService.exists(uri);
83
81
  if (exists) {
84
82
  await this.fileService.delete(uri);
85
83
  }
86
84
  }
87
- async write(uri, targetState) {
88
- const exists = await this.fileService.exists(uri);
89
- if (!exists) {
90
- await this.fileService.create(uri, targetState);
85
+ /** Returns true if there was a document available to save for the specified URI. */
86
+ async trySave(suggestedUri) {
87
+ const openModel = this.monacoWorkspace.getTextDocument(suggestedUri.toString());
88
+ if (openModel) {
89
+ await openModel.save();
90
+ return true;
91
+ }
92
+ else {
93
+ return false;
91
94
  }
92
- await this.doWrite(uri, targetState);
93
95
  }
94
- async doWrite(uri, text) {
96
+ async writeFrom(from, to, fallbackContent) {
97
+ var _a, _b;
98
+ const authoritativeContent = (_b = (_a = this.monacoWorkspace.getTextDocument(from.toString())) === null || _a === void 0 ? void 0 : _a.getText()) !== null && _b !== void 0 ? _b : fallbackContent;
99
+ await this.write(to, authoritativeContent);
100
+ }
101
+ async write(uri, text) {
95
102
  const document = this.monacoWorkspace.getTextDocument(uri.toString());
96
103
  if (document) {
97
104
  await this.monacoWorkspace.applyBackgroundEdit(document, [{
98
105
  range: document.textEditorModel.getFullModelRange(),
99
106
  text
100
- }], (editor, wasDirty) => editor === undefined || !wasDirty);
107
+ }], () => true);
101
108
  }
102
109
  else {
103
110
  await this.fileService.write(uri, text);
104
111
  }
105
112
  }
113
+ closeDiffsForSession(sessionId, except) {
114
+ const openEditors = this.shell.widgets.filter(widget => {
115
+ const uri = browser_1.NavigatableWidget.getUri(widget);
116
+ return uri && uri.authority === sessionId && !(except === null || except === void 0 ? void 0 : except.some(candidate => candidate.path.toString() === uri.path.toString()));
117
+ });
118
+ openEditors.forEach(editor => editor.close());
119
+ }
120
+ closeDiff(uri) {
121
+ const openEditors = this.shell.widgets.filter(widget => { var _a; return (_a = browser_1.NavigatableWidget.getUri(widget)) === null || _a === void 0 ? void 0 : _a.isEqual(uri); });
122
+ openEditors.forEach(editor => editor.close());
123
+ }
106
124
  };
107
125
  exports.ChangeSetFileService = ChangeSetFileService;
108
126
  tslib_1.__decorate([
@@ -125,6 +143,10 @@ tslib_1.__decorate([
125
143
  (0, inversify_1.inject)(browser_2.EditorManager),
126
144
  tslib_1.__metadata("design:type", browser_2.EditorManager)
127
145
  ], ChangeSetFileService.prototype, "editorManager", void 0);
146
+ tslib_1.__decorate([
147
+ (0, inversify_1.inject)(browser_1.ApplicationShell),
148
+ tslib_1.__metadata("design:type", browser_1.ApplicationShell)
149
+ ], ChangeSetFileService.prototype, "shell", void 0);
128
150
  tslib_1.__decorate([
129
151
  (0, inversify_1.inject)(monaco_workspace_1.MonacoWorkspace),
130
152
  tslib_1.__metadata("design:type", monaco_workspace_1.MonacoWorkspace)
@@ -1 +1 @@
1
- {"version":3,"file":"change-set-file-service.js","sourceRoot":"","sources":["../../src/browser/change-set-file-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"change-set-file-service.js","sourceRoot":"","sources":["../../src/browser/change-set-file-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { URI } from '@theia/core';
2
+ import { LabelProvider, LabelProviderContribution } from '@theia/core/lib/browser';
3
+ import { ChangeSetFileService } from './change-set-file-service';
4
+ export declare class ContextFileVariableLabelProvider implements LabelProviderContribution {
5
+ protected readonly labelProvider: LabelProvider;
6
+ protected readonly changeSetFileService: ChangeSetFileService;
7
+ canHandle(element: object): number;
8
+ getIcon(element: object): string | undefined;
9
+ getName(element: object): string | undefined;
10
+ getLongName(element: object): string | undefined;
11
+ getDetails(element: object): string | undefined;
12
+ protected getUri(element: object): URI | undefined;
13
+ }
14
+ //# sourceMappingURL=context-file-variable-label-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-file-variable-label-provider.d.ts","sourceRoot":"","sources":["../../src/browser/context-file-variable-label-provider.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,qBACa,gCAAiC,YAAW,yBAAyB;IAG9E,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGhD,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAE9D,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAOlC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI5C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI5C,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIhD,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI/C,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;CAOrD"}
@@ -0,0 +1,63 @@
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.ContextFileVariableLabelProvider = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const ai_core_1 = require("@theia/ai-core");
21
+ const core_1 = require("@theia/core");
22
+ const inversify_1 = require("@theia/core/shared/inversify");
23
+ const browser_1 = require("@theia/core/lib/browser");
24
+ const change_set_file_service_1 = require("./change-set-file-service");
25
+ let ContextFileVariableLabelProvider = class ContextFileVariableLabelProvider {
26
+ canHandle(element) {
27
+ if (ai_core_1.AIVariableResolutionRequest.is(element) && element.variable.name === 'file') {
28
+ return 10;
29
+ }
30
+ return -1;
31
+ }
32
+ getIcon(element) {
33
+ return this.labelProvider.getIcon(this.getUri(element));
34
+ }
35
+ getName(element) {
36
+ return this.labelProvider.getName(this.getUri(element));
37
+ }
38
+ getLongName(element) {
39
+ return this.labelProvider.getLongName(this.getUri(element));
40
+ }
41
+ getDetails(element) {
42
+ return this.changeSetFileService.getAdditionalInfo(this.getUri(element));
43
+ }
44
+ getUri(element) {
45
+ if (!ai_core_1.AIVariableResolutionRequest.is(element)) {
46
+ return undefined;
47
+ }
48
+ return new core_1.URI(element.arg);
49
+ }
50
+ };
51
+ exports.ContextFileVariableLabelProvider = ContextFileVariableLabelProvider;
52
+ tslib_1.__decorate([
53
+ (0, inversify_1.inject)(browser_1.LabelProvider),
54
+ tslib_1.__metadata("design:type", browser_1.LabelProvider)
55
+ ], ContextFileVariableLabelProvider.prototype, "labelProvider", void 0);
56
+ tslib_1.__decorate([
57
+ (0, inversify_1.inject)(change_set_file_service_1.ChangeSetFileService),
58
+ tslib_1.__metadata("design:type", change_set_file_service_1.ChangeSetFileService)
59
+ ], ContextFileVariableLabelProvider.prototype, "changeSetFileService", void 0);
60
+ exports.ContextFileVariableLabelProvider = ContextFileVariableLabelProvider = tslib_1.__decorate([
61
+ (0, inversify_1.injectable)()
62
+ ], ContextFileVariableLabelProvider);
63
+ //# sourceMappingURL=context-file-variable-label-provider.js.map
@@ -0,0 +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,oBAAoB,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAE,CAAC,CAAC;IAC9E,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"}
@@ -0,0 +1,9 @@
1
+ import { LabelProviderContribution } from '@theia/core/lib/browser';
2
+ export declare class ContextVariableLabelProvider implements LabelProviderContribution {
3
+ canHandle(element: object): number;
4
+ getIcon(element: object): string | undefined;
5
+ getName(element: object): string | undefined;
6
+ getLongName(element: object): string | undefined;
7
+ getDetails(element: object): string | undefined;
8
+ }
9
+ //# sourceMappingURL=context-variable-label-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-variable-label-provider.d.ts","sourceRoot":"","sources":["../../src/browser/context-variable-label-provider.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAGpE,qBACa,4BAA6B,YAAW,yBAAyB;IAE1E,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAOlC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI5C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAO5C,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAOhD,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAOlD"}
@@ -0,0 +1,55 @@
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.ContextVariableLabelProvider = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const ai_core_1 = require("@theia/ai-core");
21
+ const inversify_1 = require("@theia/core/shared/inversify");
22
+ let ContextVariableLabelProvider = class ContextVariableLabelProvider {
23
+ canHandle(element) {
24
+ if (ai_core_1.AIVariableResolutionRequest.is(element)) {
25
+ return 1;
26
+ }
27
+ return -1;
28
+ }
29
+ getIcon(element) {
30
+ return 'codicon codicon-variable';
31
+ }
32
+ getName(element) {
33
+ if (!ai_core_1.AIVariableResolutionRequest.is(element)) {
34
+ return undefined;
35
+ }
36
+ return element.variable.name;
37
+ }
38
+ getLongName(element) {
39
+ if (!ai_core_1.AIVariableResolutionRequest.is(element)) {
40
+ return undefined;
41
+ }
42
+ return element.variable.name + (element.arg ? ':' + element.arg : '');
43
+ }
44
+ getDetails(element) {
45
+ if (!ai_core_1.AIVariableResolutionRequest.is(element)) {
46
+ return undefined;
47
+ }
48
+ return element.arg;
49
+ }
50
+ };
51
+ exports.ContextVariableLabelProvider = ContextVariableLabelProvider;
52
+ exports.ContextVariableLabelProvider = ContextVariableLabelProvider = tslib_1.__decorate([
53
+ (0, inversify_1.injectable)()
54
+ ], ContextVariableLabelProvider);
55
+ //# sourceMappingURL=context-variable-label-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-variable-label-provider.js","sourceRoot":"","sources":["../../src/browser/context-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;AAE7D,4DAA0D;AAGnD,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IAErC,SAAS,CAAC,OAAe;QACrB,IAAI,qCAA2B,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,CAAC;QACb,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IAED,OAAO,CAAC,OAAe;QACnB,OAAO,0BAA0B,CAAC;IACtC,CAAC;IAED,OAAO,CAAC,OAAe;QACnB,IAAI,CAAC,qCAA2B,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,WAAW,CAAC,OAAe;QACvB,IAAI,CAAC,qCAA2B,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,UAAU,CAAC,OAAe;QACtB,IAAI,CAAC,qCAA2B,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC;IACvB,CAAC;CAEJ,CAAA;AAlCY,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,sBAAU,GAAE;GACA,4BAA4B,CAkCxC"}
@@ -0,0 +1,18 @@
1
+ import { AIVariableContext } from '@theia/ai-core';
2
+ import { AIVariableDropResult, FrontendVariableContribution, FrontendVariableService } from '@theia/ai-core/lib/browser';
3
+ import { QuickInputService } from '@theia/core';
4
+ import * as monaco from '@theia/monaco-editor-core';
5
+ import { QuickFileSelectService } from '@theia/file-search/lib/browser/quick-file-select-service';
6
+ import { WorkspaceService } from '@theia/workspace/lib/browser';
7
+ import { FileService } from '@theia/filesystem/lib/browser/file-service';
8
+ export declare class FileChatVariableContribution implements FrontendVariableContribution {
9
+ protected readonly fileService: FileService;
10
+ protected readonly wsService: WorkspaceService;
11
+ protected readonly quickInputService: QuickInputService;
12
+ protected readonly quickFileSelectService: QuickFileSelectService;
13
+ registerVariables(service: FrontendVariableService): void;
14
+ protected triggerArgumentPicker(): Promise<string | undefined>;
15
+ protected provideArgumentCompletionItems(model: monaco.editor.ITextModel, position: monaco.Position): Promise<monaco.languages.CompletionItem[] | undefined>;
16
+ protected handleDrop(event: DragEvent, _: AIVariableContext): Promise<AIVariableDropResult | undefined>;
17
+ }
18
+ //# sourceMappingURL=file-chat-variable-contribution.d.ts.map
@@ -0,0 +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,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAEzH,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;AAEzE,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,GAC1B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,GAAG,SAAS,CAAC;cAqCzC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;CAiChH"}