@theia/ai-chat 1.74.0-next.9 → 1.74.1

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 (102) hide show
  1. package/lib/browser/agent-delegation-tool.js +6 -7
  2. package/lib/browser/agent-delegation-tool.js.map +1 -1
  3. package/lib/browser/agent-delegation-tool.spec.js +13 -0
  4. package/lib/browser/agent-delegation-tool.spec.js.map +1 -1
  5. package/lib/browser/chat-request-command-resolution.spec.d.ts +2 -0
  6. package/lib/browser/chat-request-command-resolution.spec.d.ts.map +1 -0
  7. package/lib/browser/chat-request-command-resolution.spec.js +94 -0
  8. package/lib/browser/chat-request-command-resolution.spec.js.map +1 -0
  9. package/lib/browser/chat-session-store-impl.d.ts.map +1 -1
  10. package/lib/browser/chat-session-store-impl.js +2 -0
  11. package/lib/browser/chat-session-store-impl.js.map +1 -1
  12. package/lib/browser/chat-session-store-impl.spec.js +51 -2
  13. package/lib/browser/chat-session-store-impl.spec.js.map +1 -1
  14. package/lib/browser/chat-tool-preference-bindings.d.ts +18 -8
  15. package/lib/browser/chat-tool-preference-bindings.d.ts.map +1 -1
  16. package/lib/browser/chat-tool-preference-bindings.js +27 -28
  17. package/lib/browser/chat-tool-preference-bindings.js.map +1 -1
  18. package/lib/browser/chat-tool-preference-bindings.spec.js +43 -46
  19. package/lib/browser/chat-tool-preference-bindings.spec.js.map +1 -1
  20. package/lib/common/chat-agents.d.ts +8 -0
  21. package/lib/common/chat-agents.d.ts.map +1 -1
  22. package/lib/common/chat-agents.js +35 -1
  23. package/lib/common/chat-agents.js.map +1 -1
  24. package/lib/common/chat-agents.spec.js +94 -0
  25. package/lib/common/chat-agents.spec.js.map +1 -1
  26. package/lib/common/chat-auto-save.spec.js +13 -0
  27. package/lib/common/chat-auto-save.spec.js.map +1 -1
  28. package/lib/common/chat-content-deserializer.d.ts.map +1 -1
  29. package/lib/common/chat-content-deserializer.js +4 -0
  30. package/lib/common/chat-content-deserializer.js.map +1 -1
  31. package/lib/common/chat-model-serialization.d.ts +12 -1
  32. package/lib/common/chat-model-serialization.d.ts.map +1 -1
  33. package/lib/common/chat-model-serialization.js.map +1 -1
  34. package/lib/common/chat-model-serialization.spec.js +29 -0
  35. package/lib/common/chat-model-serialization.spec.js.map +1 -1
  36. package/lib/common/chat-model.d.ts +105 -2
  37. package/lib/common/chat-model.d.ts.map +1 -1
  38. package/lib/common/chat-model.js +159 -3
  39. package/lib/common/chat-model.js.map +1 -1
  40. package/lib/common/chat-model.spec.d.ts +2 -0
  41. package/lib/common/chat-model.spec.d.ts.map +1 -0
  42. package/lib/common/chat-model.spec.js +42 -0
  43. package/lib/common/chat-model.spec.js.map +1 -0
  44. package/lib/common/chat-request-parser.d.ts +9 -1
  45. package/lib/common/chat-request-parser.d.ts.map +1 -1
  46. package/lib/common/chat-request-parser.js +54 -3
  47. package/lib/common/chat-request-parser.js.map +1 -1
  48. package/lib/common/chat-request-parser.spec.js +333 -0
  49. package/lib/common/chat-request-parser.spec.js.map +1 -1
  50. package/lib/common/chat-response-model.spec.js +31 -0
  51. package/lib/common/chat-response-model.spec.js.map +1 -1
  52. package/lib/common/chat-service-deletion.spec.js +43 -0
  53. package/lib/common/chat-service-deletion.spec.js.map +1 -1
  54. package/lib/common/chat-service-pinned-agent.spec.js +52 -2
  55. package/lib/common/chat-service-pinned-agent.spec.js.map +1 -1
  56. package/lib/common/chat-service-session-events.spec.d.ts +2 -0
  57. package/lib/common/chat-service-session-events.spec.d.ts.map +1 -0
  58. package/lib/common/chat-service-session-events.spec.js +130 -0
  59. package/lib/common/chat-service-session-events.spec.js.map +1 -0
  60. package/lib/common/chat-service.d.ts +3 -0
  61. package/lib/common/chat-service.d.ts.map +1 -1
  62. package/lib/common/chat-service.js +60 -6
  63. package/lib/common/chat-service.js.map +1 -1
  64. package/lib/common/chat-service.spec.d.ts +2 -0
  65. package/lib/common/chat-service.spec.d.ts.map +1 -0
  66. package/lib/common/chat-service.spec.js +177 -0
  67. package/lib/common/chat-service.spec.js.map +1 -0
  68. package/lib/common/chat-session-status.spec.d.ts +2 -0
  69. package/lib/common/chat-session-status.spec.d.ts.map +1 -0
  70. package/lib/common/chat-session-status.spec.js +213 -0
  71. package/lib/common/chat-session-status.spec.js.map +1 -0
  72. package/lib/common/chat-session-store.d.ts +8 -0
  73. package/lib/common/chat-session-store.d.ts.map +1 -1
  74. package/lib/common/tool-call-response-content.spec.js +36 -0
  75. package/lib/common/tool-call-response-content.spec.js.map +1 -1
  76. package/package.json +11 -11
  77. package/src/browser/agent-delegation-tool.spec.ts +16 -0
  78. package/src/browser/agent-delegation-tool.ts +7 -7
  79. package/src/browser/chat-request-command-resolution.spec.ts +117 -0
  80. package/src/browser/chat-session-store-impl.spec.ts +62 -2
  81. package/src/browser/chat-session-store-impl.ts +2 -0
  82. package/src/browser/chat-tool-preference-bindings.spec.ts +43 -48
  83. package/src/browser/chat-tool-preference-bindings.ts +42 -30
  84. package/src/common/chat-agents.spec.ts +112 -2
  85. package/src/common/chat-agents.ts +44 -1
  86. package/src/common/chat-auto-save.spec.ts +18 -1
  87. package/src/common/chat-content-deserializer.ts +11 -0
  88. package/src/common/chat-model-serialization.spec.ts +38 -0
  89. package/src/common/chat-model-serialization.ts +12 -1
  90. package/src/common/chat-model.spec.ts +42 -0
  91. package/src/common/chat-model.ts +241 -3
  92. package/src/common/chat-request-parser.spec.ts +401 -1
  93. package/src/common/chat-request-parser.ts +60 -5
  94. package/src/common/chat-response-model.spec.ts +41 -1
  95. package/src/common/chat-service-deletion.spec.ts +52 -0
  96. package/src/common/chat-service-pinned-agent.spec.ts +58 -2
  97. package/src/common/chat-service-session-events.spec.ts +161 -0
  98. package/src/common/chat-service.spec.ts +211 -0
  99. package/src/common/chat-service.ts +64 -8
  100. package/src/common/chat-session-status.spec.ts +280 -0
  101. package/src/common/chat-session-store.ts +8 -0
  102. package/src/common/tool-call-response-content.spec.ts +42 -0
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 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
+ const chai_1 = require("chai");
19
+ const chat_model_1 = require("./chat-model");
20
+ const parsed_chat_request_1 = require("./parsed-chat-request");
21
+ describe('ChatSessionStatus', () => {
22
+ function parsedRequest(text = 'hello') {
23
+ return {
24
+ request: { text },
25
+ parts: [new parsed_chat_request_1.ParsedChatRequestTextPart({ start: 0, endExclusive: text.length }, text)],
26
+ toolRequests: new Map(),
27
+ variables: []
28
+ };
29
+ }
30
+ function trackStatusChanges(model) {
31
+ const statuses = [];
32
+ model.onDidChange(event => {
33
+ if (chat_model_1.ChatChangeEvent.isStatusChangedEvent(event)) {
34
+ statuses.push(event.status);
35
+ }
36
+ });
37
+ return statuses;
38
+ }
39
+ /** Simulates the tool request service's confirmation flow up to the point where the user must decide. */
40
+ function requestConfirmation(request, toolCall) {
41
+ toolCall.requestUserConfirmation();
42
+ request.response.fireInteractionNeeded(toolCall);
43
+ request.response.waitForInput();
44
+ }
45
+ describe('fromRequest', () => {
46
+ it('should be idle without a request', () => {
47
+ (0, chai_1.expect)(chat_model_1.ChatSessionStatus.fromRequest(undefined)).to.equal('idle');
48
+ });
49
+ });
50
+ describe('isInProgress', () => {
51
+ it('should be true for all non-terminal statuses', () => {
52
+ (0, chai_1.expect)(chat_model_1.ChatSessionStatus.isInProgress('running')).to.be.true;
53
+ (0, chai_1.expect)(chat_model_1.ChatSessionStatus.isInProgress('awaitingApproval')).to.be.true;
54
+ (0, chai_1.expect)(chat_model_1.ChatSessionStatus.isInProgress('awaitingToolCall')).to.be.true;
55
+ (0, chai_1.expect)(chat_model_1.ChatSessionStatus.isInProgress('awaitingInput')).to.be.true;
56
+ (0, chai_1.expect)(chat_model_1.ChatSessionStatus.isInProgress('idle')).to.be.false;
57
+ (0, chai_1.expect)(chat_model_1.ChatSessionStatus.isInProgress('failed')).to.be.false;
58
+ });
59
+ });
60
+ describe('requiresUserAction', () => {
61
+ it('should be true only when blocked on the user', () => {
62
+ (0, chai_1.expect)(chat_model_1.ChatSessionStatus.requiresUserAction('awaitingApproval')).to.be.true;
63
+ (0, chai_1.expect)(chat_model_1.ChatSessionStatus.requiresUserAction('awaitingInput')).to.be.true;
64
+ (0, chai_1.expect)(chat_model_1.ChatSessionStatus.requiresUserAction('running')).to.be.false;
65
+ (0, chai_1.expect)(chat_model_1.ChatSessionStatus.requiresUserAction('awaitingToolCall')).to.be.false;
66
+ (0, chai_1.expect)(chat_model_1.ChatSessionStatus.requiresUserAction('idle')).to.be.false;
67
+ (0, chai_1.expect)(chat_model_1.ChatSessionStatus.requiresUserAction('failed')).to.be.false;
68
+ });
69
+ });
70
+ describe('MutableChatModel.status', () => {
71
+ it('should be idle for an empty session', () => {
72
+ const model = new chat_model_1.MutableChatModel();
73
+ (0, chai_1.expect)(model.status).to.equal('idle');
74
+ });
75
+ it('should be running while a request is in progress', () => {
76
+ const model = new chat_model_1.MutableChatModel();
77
+ model.addRequest(parsedRequest());
78
+ (0, chai_1.expect)(model.status).to.equal('running');
79
+ });
80
+ it('should fire a statusChanged event with the model already updated', () => {
81
+ const model = new chat_model_1.MutableChatModel();
82
+ let statusInEvent;
83
+ let statusOnModel;
84
+ model.onDidChange(event => {
85
+ if (chat_model_1.ChatChangeEvent.isStatusChangedEvent(event)) {
86
+ statusInEvent = event.status;
87
+ statusOnModel = model.status;
88
+ }
89
+ });
90
+ model.addRequest(parsedRequest());
91
+ (0, chai_1.expect)(statusInEvent).to.equal('running');
92
+ (0, chai_1.expect)(statusOnModel).to.equal('running');
93
+ });
94
+ it('should not fire statusChanged for changes that keep the status', () => {
95
+ const model = new chat_model_1.MutableChatModel();
96
+ const request = model.addRequest(parsedRequest());
97
+ const statuses = trackStatusChanges(model);
98
+ request.response.response.addContent(new chat_model_1.TextChatResponseContentImpl('first'));
99
+ request.response.response.addContent(new chat_model_1.TextChatResponseContentImpl('second'));
100
+ (0, chai_1.expect)(model.status).to.equal('running');
101
+ (0, chai_1.expect)(statuses).to.deep.equal([]);
102
+ });
103
+ it('should return to idle when the last request completes', () => {
104
+ const model = new chat_model_1.MutableChatModel();
105
+ const request = model.addRequest(parsedRequest());
106
+ const statuses = trackStatusChanges(model);
107
+ request.response.complete();
108
+ (0, chai_1.expect)(model.status).to.equal('idle');
109
+ (0, chai_1.expect)(statuses).to.deep.equal(['idle']);
110
+ });
111
+ it('should be idle when the last request was canceled', () => {
112
+ const model = new chat_model_1.MutableChatModel();
113
+ const request = model.addRequest(parsedRequest());
114
+ request.response.cancel();
115
+ (0, chai_1.expect)(model.status).to.equal('idle');
116
+ });
117
+ it('should be failed when the last request ended in an error', () => {
118
+ const model = new chat_model_1.MutableChatModel();
119
+ const request = model.addRequest(parsedRequest());
120
+ request.response.error(new Error('boom'));
121
+ (0, chai_1.expect)(model.status).to.equal('failed');
122
+ });
123
+ it('should be running again when a new request is added after a failure', () => {
124
+ const model = new chat_model_1.MutableChatModel();
125
+ const failed = model.addRequest(parsedRequest());
126
+ failed.response.error(new Error('boom'));
127
+ model.addRequest(parsedRequest('try again'));
128
+ (0, chai_1.expect)(model.status).to.equal('running');
129
+ });
130
+ it('should be awaitingToolCall while a tool call is executing', () => {
131
+ const model = new chat_model_1.MutableChatModel();
132
+ const request = model.addRequest(parsedRequest());
133
+ const toolCall = new chat_model_1.ToolCallChatResponseContentImpl('tool-1', 'myTool', '{}', false);
134
+ request.response.response.addContent(toolCall);
135
+ (0, chai_1.expect)(model.status).to.equal('awaitingToolCall');
136
+ toolCall.complete('done');
137
+ (0, chai_1.expect)(model.status).to.equal('running');
138
+ });
139
+ it('should be awaitingApproval while a tool call waits for user confirmation', () => {
140
+ const model = new chat_model_1.MutableChatModel();
141
+ const request = model.addRequest(parsedRequest());
142
+ const toolCall = new chat_model_1.ToolCallChatResponseContentImpl('tool-1', 'myTool', '{}', false);
143
+ request.response.response.addContent(toolCall);
144
+ requestConfirmation(request, toolCall);
145
+ (0, chai_1.expect)(model.status).to.equal('awaitingApproval');
146
+ });
147
+ it('should move to awaitingToolCall when the user approves the tool call', () => {
148
+ const model = new chat_model_1.MutableChatModel();
149
+ const request = model.addRequest(parsedRequest());
150
+ const toolCall = new chat_model_1.ToolCallChatResponseContentImpl('tool-1', 'myTool', '{}', false);
151
+ request.response.response.addContent(toolCall);
152
+ requestConfirmation(request, toolCall);
153
+ toolCall.confirm();
154
+ request.response.stopWaitingForInput();
155
+ (0, chai_1.expect)(model.status).to.equal('awaitingToolCall');
156
+ });
157
+ it('should move back to running when the user denies the tool call', () => {
158
+ const model = new chat_model_1.MutableChatModel();
159
+ const request = model.addRequest(parsedRequest());
160
+ const toolCall = new chat_model_1.ToolCallChatResponseContentImpl('tool-1', 'myTool', '{}', false);
161
+ request.response.response.addContent(toolCall);
162
+ requestConfirmation(request, toolCall);
163
+ toolCall.deny('not allowed');
164
+ request.response.stopWaitingForInput();
165
+ (0, chai_1.expect)(model.status).to.equal('running');
166
+ });
167
+ it('should be awaitingInput while a structured question is unanswered', () => {
168
+ const model = new chat_model_1.MutableChatModel();
169
+ const request = model.addRequest(parsedRequest());
170
+ const question = new chat_model_1.QuestionResponseContentImpl('Proceed?', [{ text: 'Yes' }, { text: 'No' }], request, () => { });
171
+ request.response.response.addContent(question);
172
+ (0, chai_1.expect)(model.status).to.equal('awaitingInput');
173
+ question.selectedOption = { text: 'Yes' };
174
+ (0, chai_1.expect)(model.status).to.equal('running');
175
+ });
176
+ it('should be awaitingInput while waiting for input without a question part', () => {
177
+ // E.g. the user-interaction tool keeps its tool call unfinished while the
178
+ // user completes a wizard; only the waiting-for-input flag is set.
179
+ const model = new chat_model_1.MutableChatModel();
180
+ const request = model.addRequest(parsedRequest());
181
+ const toolCall = new chat_model_1.ToolCallChatResponseContentImpl('tool-1', 'userInteraction', '{}', false);
182
+ request.response.response.addContent(toolCall);
183
+ request.response.waitForInput();
184
+ (0, chai_1.expect)(model.status).to.equal('awaitingInput');
185
+ request.response.stopWaitingForInput();
186
+ (0, chai_1.expect)(model.status).to.equal('awaitingToolCall');
187
+ });
188
+ it('should prefer awaitingApproval over awaitingInput', () => {
189
+ const model = new chat_model_1.MutableChatModel();
190
+ const request = model.addRequest(parsedRequest());
191
+ const question = new chat_model_1.QuestionResponseContentImpl('Proceed?', [{ text: 'Yes' }], request, () => { });
192
+ request.response.response.addContent(question);
193
+ const toolCall = new chat_model_1.ToolCallChatResponseContentImpl('tool-1', 'myTool', '{}', false);
194
+ request.response.response.addContent(toolCall);
195
+ requestConfirmation(request, toolCall);
196
+ (0, chai_1.expect)(model.status).to.equal('awaitingApproval');
197
+ });
198
+ it('should record the full transition sequence of a confirmed tool call', () => {
199
+ const model = new chat_model_1.MutableChatModel();
200
+ const statuses = trackStatusChanges(model);
201
+ const request = model.addRequest(parsedRequest());
202
+ const toolCall = new chat_model_1.ToolCallChatResponseContentImpl('tool-1', 'myTool', '{}', false);
203
+ request.response.response.addContent(toolCall);
204
+ requestConfirmation(request, toolCall);
205
+ toolCall.confirm();
206
+ request.response.stopWaitingForInput();
207
+ toolCall.complete('done');
208
+ request.response.complete();
209
+ (0, chai_1.expect)(statuses).to.deep.equal(['running', 'awaitingToolCall', 'awaitingApproval', 'awaitingToolCall', 'running', 'idle']);
210
+ });
211
+ });
212
+ });
213
+ //# sourceMappingURL=chat-session-status.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-session-status.spec.js","sourceRoot":"","sources":["../../src/common/chat-session-status.spec.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,10 @@ export interface ChatModelWithMetadata {
10
10
  lastInteraction?: number;
11
11
  /** Whether the last request ended with an error. */
12
12
  hasError?: boolean;
13
+ /** ID of the root session in the delegation chain. */
14
+ rootSessionId?: string;
15
+ /** ID of the immediate parent session that delegated this one. */
16
+ parentSessionId?: string;
13
17
  }
14
18
  export interface ChatSessionStore {
15
19
  /**
@@ -54,5 +58,9 @@ export interface ChatSessionMetadata {
54
58
  pinnedAgentId?: string;
55
59
  /** Whether the last request ended with an error. */
56
60
  hasError?: boolean;
61
+ /** ID of the root session in the delegation chain. */
62
+ rootSessionId?: string;
63
+ /** ID of the immediate parent session that delegated this one. */
64
+ parentSessionId?: string;
57
65
  }
58
66
  //# sourceMappingURL=chat-session-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-session-store.d.ts","sourceRoot":"","sources":["../../src/common/chat-session-store.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,eAAO,MAAM,gBAAgB,eAA6B,CAAC;AAE3D,MAAM,WAAW,qBAAqB;IAClC,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2GAA2G;IAC3G,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC7B;;;;OAIG;IACH,aAAa,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,SAAS,GAAG,qBAAqB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;IACxE;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD;;OAEG;IACH,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC;;;OAGG;IACH,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7C;;;;OAIG;IACH,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,gBAAgB;IAC7B,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,uFAAuF;IACvF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB"}
1
+ {"version":3,"file":"chat-session-store.d.ts","sourceRoot":"","sources":["../../src/common/chat-session-store.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,eAAO,MAAM,gBAAgB,eAA6B,CAAC;AAE3D,MAAM,WAAW,qBAAqB;IAClC,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2GAA2G;IAC3G,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC7B;;;;OAIG;IACH,aAAa,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,SAAS,GAAG,qBAAqB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;IACxE;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD;;OAEG;IACH,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC;;;OAGG;IACH,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7C;;;;OAIG;IACH,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,gBAAgB;IAC7B,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,uFAAuF;IACvF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B"}
@@ -174,6 +174,42 @@ describe('ToolCallChatResponseContent - confirmation state transitions', () => {
174
174
  (0, chai_1.expect)(result).to.be.false;
175
175
  (0, chai_1.expect)(content.result).to.deep.equal({ denied: true, reason: undefined });
176
176
  });
177
+ describe('isAwaitingUserConfirmation', () => {
178
+ it('should be false initially', () => {
179
+ const content = createToolCallContent();
180
+ (0, chai_1.expect)(content.isAwaitingUserConfirmation).to.be.false;
181
+ });
182
+ it('should be true after requestUserConfirmation()', () => {
183
+ const content = createToolCallContent();
184
+ content.requestUserConfirmation();
185
+ (0, chai_1.expect)(content.isAwaitingUserConfirmation).to.be.true;
186
+ });
187
+ it('should be false after the user confirms', () => {
188
+ const content = createToolCallContent();
189
+ content.requestUserConfirmation();
190
+ content.confirm();
191
+ (0, chai_1.expect)(content.isAwaitingUserConfirmation).to.be.false;
192
+ });
193
+ it('should be false after the user denies', () => {
194
+ const content = createToolCallContent();
195
+ content.requestUserConfirmation();
196
+ content.deny('rejected');
197
+ (0, chai_1.expect)(content.isAwaitingUserConfirmation).to.be.false;
198
+ });
199
+ it('should be false after the confirmation is canceled', () => {
200
+ const content = createToolCallContent();
201
+ content.confirmed.catch(() => undefined);
202
+ content.requestUserConfirmation();
203
+ content.cancelConfirmation(new Error('request canceled'));
204
+ (0, chai_1.expect)(content.isAwaitingUserConfirmation).to.be.false;
205
+ });
206
+ it('should be false once the tool call is finished', () => {
207
+ const content = createToolCallContent();
208
+ content.requestUserConfirmation();
209
+ content.complete('result');
210
+ (0, chai_1.expect)(content.isAwaitingUserConfirmation).to.be.false;
211
+ });
212
+ });
177
213
  });
178
214
  describe('Tool Confirmation Timeout', () => {
179
215
  let clock;
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call-response-content.spec.js","sourceRoot":"","sources":["../../src/common/tool-call-response-content.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-call-response-content.spec.js","sourceRoot":"","sources":["../../src/common/tool-call-response-content.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@theia/ai-chat",
3
- "version": "1.74.0-next.9+f24bc8b12",
3
+ "version": "1.74.1",
4
4
  "description": "Theia - AI Chat Extension",
5
5
  "dependencies": {
6
- "@theia/ai-core": "1.74.0-next.9+f24bc8b12",
7
- "@theia/core": "1.74.0-next.9+f24bc8b12",
8
- "@theia/editor": "1.74.0-next.9+f24bc8b12",
9
- "@theia/file-search": "1.74.0-next.9+f24bc8b12",
10
- "@theia/filesystem": "1.74.0-next.9+f24bc8b12",
11
- "@theia/monaco": "1.74.0-next.9+f24bc8b12",
6
+ "@theia/ai-core": "1.74.1",
7
+ "@theia/core": "1.74.1",
8
+ "@theia/editor": "1.74.1",
9
+ "@theia/file-search": "1.74.1",
10
+ "@theia/filesystem": "1.74.1",
11
+ "@theia/monaco": "1.74.1",
12
12
  "@theia/monaco-editor-core": "1.108.201",
13
- "@theia/workspace": "1.74.0-next.9+f24bc8b12",
14
- "js-yaml": "^4.2.0",
13
+ "@theia/workspace": "1.74.1",
14
+ "js-yaml": "^4.3.0",
15
15
  "tslib": "^2.8.1"
16
16
  },
17
17
  "publishConfig": {
@@ -49,10 +49,10 @@
49
49
  "watch": "theiaext watch"
50
50
  },
51
51
  "devDependencies": {
52
- "@theia/ext-scripts": "1.73.0"
52
+ "@theia/ext-scripts": "1.74.1"
53
53
  },
54
54
  "nyc": {
55
55
  "extends": "../../configs/nyc.json"
56
56
  },
57
- "gitHead": "f24bc8b12e11ee4b054527565df3648c363b7f86"
57
+ "gitHead": "eb2ffacbac2d76cfb8c0d2dd682d340db746a1b2"
58
58
  }
@@ -248,4 +248,20 @@ describe('AgentDelegationTool', () => {
248
248
  expect(result).to.equal('');
249
249
  });
250
250
  });
251
+
252
+ describe('delegateToAgent() — session persistence', () => {
253
+ it('does not delete the delegated session after completion', async () => {
254
+ const newSession = makeNewSession();
255
+ const agentService = makeChatAgentService();
256
+ const chatService = makeChatService(newSession);
257
+ const tool = makeAgentDelegationTool(agentService, chatService);
258
+ const ctx = makeChatContext();
259
+
260
+ const argString = JSON.stringify({ agentId: 'test-agent', prompt: 'do something' });
261
+ await tool.getTool().handler(argString, ctx);
262
+
263
+ // deleteSession should never have been called for the delegated session
264
+ expect((chatService.deleteSession as sinon.SinonStub).called).to.be.false;
265
+ });
266
+ });
251
267
  });
@@ -124,8 +124,6 @@ export class AgentDelegationTool implements ToolProvider {
124
124
  let newSession;
125
125
  let childModelDisposable: Disposable | undefined;
126
126
  try {
127
- // FIXME: this creates a new conversation visible in the UI (Panel), which we don't want
128
- // It is not possible to start a session without specifying a location (default=Panel)
129
127
  const chatService = this.getChatService();
130
128
 
131
129
  // Store the current active session to restore it after delegation
@@ -143,6 +141,12 @@ export class AgentDelegationTool implements ToolProvider {
143
141
  newSession.rootSessionId = rootId;
144
142
  newSession.model.rootSessionId = rootId;
145
143
 
144
+ // Track the immediate parent (the delegating session) so the UI can render the full
145
+ // delegation hierarchy, not just a flat list under the root.
146
+ const parentId = ctx.request.session.id;
147
+ newSession.parentSessionId = parentId;
148
+ newSession.model.parentSessionId = parentId;
149
+
146
150
  if (taskContextId) {
147
151
  newSession.model.context.addVariables({
148
152
  variable: TASK_CONTEXT_VARIABLE,
@@ -222,12 +226,8 @@ export class AgentDelegationTool implements ToolProvider {
222
226
  .filter((text): text is string => text !== undefined && text !== '')
223
227
  .join('\n\n');
224
228
 
225
- // Clean up the session and parent-child link after completion
229
+ // Clean up the parent-child link after completion (event bubbling is no longer needed)
226
230
  childModelDisposable?.dispose();
227
- const chatService = this.getChatService();
228
- chatService.deleteSession(newSession.id).catch(error => {
229
- this.logger.error('Failed to delete delegated session', error);
230
- });
231
231
 
232
232
  // Return the raw text to the top-level Agent, as a tool result
233
233
  return stringResult;
@@ -0,0 +1,117 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2026 EclipseSource and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { enableJSDOM } from '@theia/core/lib/browser/test/jsdom';
18
+
19
+ let disableJSDOM = enableJSDOM();
20
+
21
+ import 'reflect-metadata';
22
+
23
+ import { expect } from 'chai';
24
+ import * as sinon from 'sinon';
25
+ import { CommandService, ILogger, Logger } from '@theia/core';
26
+ import { MockLogger } from '@theia/core/lib/common/test/mock-logger';
27
+ import { DefaultAIVariableService, PromptService, PromptServiceImpl, ToolInvocationRegistryImpl } from '@theia/ai-core';
28
+ import { PromptVariableContribution } from '@theia/ai-core/lib/browser/prompt-variable-contribution';
29
+ import { ChatAgentServiceImpl } from '../common/chat-agent-service';
30
+ import { ChatAgentLocation } from '../common/chat-agents';
31
+ import { ChatRequestParserImpl } from '../common/chat-request-parser';
32
+
33
+ disableJSDOM();
34
+
35
+ /**
36
+ * End-to-end coverage for slash commands: a request is parsed into parts and those parts are
37
+ * resolved by the real prompt variable resolver, so that the text finally sent to the language
38
+ * model is asserted rather than just the intermediate `#prompt:command|args` representation.
39
+ */
40
+ describe('slash command parsing and resolution', () => {
41
+ before(() => disableJSDOM = enableJSDOM());
42
+ after(() => disableJSDOM());
43
+
44
+ let promptService: PromptService;
45
+ let parser: ChatRequestParserImpl;
46
+
47
+ beforeEach(() => {
48
+ promptService = new PromptServiceImpl();
49
+ promptService.addBuiltInPromptFragment({
50
+ id: 'command-hello',
51
+ template: 'Greet $ARGUMENTS warmly.',
52
+ isCommand: true,
53
+ commandName: 'hello'
54
+ });
55
+
56
+ const variableService = new DefaultAIVariableService({ getContributions: () => [] });
57
+ (variableService as unknown as Record<string, unknown>)['logger'] = new MockLogger();
58
+
59
+ const promptVariableContribution = new PromptVariableContribution();
60
+ (promptVariableContribution as unknown as Record<string, unknown>)['promptService'] = promptService;
61
+ (promptVariableContribution as unknown as Record<string, unknown>)['logger'] = new MockLogger();
62
+ (promptVariableContribution as unknown as Record<string, unknown>)['commandService'] = {} as CommandService;
63
+ promptVariableContribution.registerVariables(variableService);
64
+
65
+ parser = new ChatRequestParserImpl(
66
+ sinon.createStubInstance(ChatAgentServiceImpl),
67
+ variableService,
68
+ sinon.createStubInstance(ToolInvocationRegistryImpl),
69
+ sinon.createStubInstance(Logger) as ILogger
70
+ );
71
+ (parser as unknown as { promptService: PromptService }).promptService = promptService;
72
+ });
73
+
74
+ /** The text that is finally sent to the language model. */
75
+ const resolve = async (text: string): Promise<string> => {
76
+ const parsed = await parser.parseChatRequest({ text }, ChatAgentLocation.Panel, { variables: [] });
77
+ return parsed.parts.map(part => part.promptText).join('');
78
+ };
79
+
80
+ it('resolves a single command with an argument', async () => {
81
+ expect(await resolve('/hello Klaus')).to.equal('Greet Klaus warmly.');
82
+ });
83
+
84
+ it('resolves the same command twice on one line, keeping the arguments apart', async () => {
85
+ expect(await resolve('/hello Klaus /hello Maria')).to.equal('Greet Klaus warmly. Greet Maria warmly.');
86
+ });
87
+
88
+ it('resolves the same command on two lines, preserving the line break', async () => {
89
+ expect(await resolve('/hello Klaus\n/hello Maria')).to.equal('Greet Klaus warmly.\nGreet Maria warmly.');
90
+ });
91
+
92
+ it('resolves a command repeated three times', async () => {
93
+ expect(await resolve('/hello Klaus /hello Maria /hello Bob')).to.equal('Greet Klaus warmly. Greet Maria warmly. Greet Bob warmly.');
94
+ });
95
+
96
+ it('does not let a command consume the next line', async () => {
97
+ expect(await resolve('/hello Klaus\nand please be brief')).to.equal('Greet Klaus warmly.\nand please be brief');
98
+ });
99
+
100
+ it('keeps surrounding text around a command', async () => {
101
+ expect(await resolve('please /hello Klaus now')).to.equal('please Greet Klaus now warmly.');
102
+ });
103
+
104
+ it('does not resolve a path as a command and keeps the message intact', async () => {
105
+ const text = 'please look at /home/user/notes.txt and fix the bug';
106
+ expect(await resolve(text)).to.equal(text);
107
+ });
108
+
109
+ it('does not resolve an unknown command and keeps the message intact', async () => {
110
+ const text = '/goodbye Klaus';
111
+ expect(await resolve(text)).to.equal(text);
112
+ });
113
+
114
+ it('uses a path argument of a known command without dropping it', async () => {
115
+ expect(await resolve('/hello /home/user/notes.txt')).to.equal('Greet /home/user/notes.txt warmly.');
116
+ });
117
+ });