@theia/ai-chat 1.76.0-next.16 → 1.76.0-next.23
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/agent-delegation-tool.d.ts +6 -0
- package/lib/browser/agent-delegation-tool.d.ts.map +1 -1
- package/lib/browser/agent-delegation-tool.js +171 -92
- package/lib/browser/agent-delegation-tool.js.map +1 -1
- package/lib/browser/agent-delegation-tool.spec.js +170 -7
- package/lib/browser/agent-delegation-tool.spec.js.map +1 -1
- package/package.json +9 -9
- package/src/browser/agent-delegation-tool.spec.ts +237 -7
- package/src/browser/agent-delegation-tool.ts +191 -109
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-delegation-tool.spec.js","sourceRoot":"","sources":["../../src/browser/agent-delegation-tool.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-delegation-tool.spec.js","sourceRoot":"","sources":["../../src/browser/agent-delegation-tool.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/ai-chat",
|
|
3
|
-
"version": "1.76.0-next.
|
|
3
|
+
"version": "1.76.0-next.23+0b5a5f271",
|
|
4
4
|
"description": "Theia - AI Chat Extension",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/ai-core": "1.76.0-next.
|
|
7
|
-
"@theia/core": "1.76.0-next.
|
|
8
|
-
"@theia/editor": "1.76.0-next.
|
|
9
|
-
"@theia/file-search": "1.76.0-next.
|
|
10
|
-
"@theia/filesystem": "1.76.0-next.
|
|
11
|
-
"@theia/monaco": "1.76.0-next.
|
|
6
|
+
"@theia/ai-core": "1.76.0-next.23+0b5a5f271",
|
|
7
|
+
"@theia/core": "1.76.0-next.23+0b5a5f271",
|
|
8
|
+
"@theia/editor": "1.76.0-next.23+0b5a5f271",
|
|
9
|
+
"@theia/file-search": "1.76.0-next.23+0b5a5f271",
|
|
10
|
+
"@theia/filesystem": "1.76.0-next.23+0b5a5f271",
|
|
11
|
+
"@theia/monaco": "1.76.0-next.23+0b5a5f271",
|
|
12
12
|
"@theia/monaco-editor-core": "1.108.201",
|
|
13
|
-
"@theia/workspace": "1.76.0-next.
|
|
13
|
+
"@theia/workspace": "1.76.0-next.23+0b5a5f271",
|
|
14
14
|
"js-yaml": "^4.3.1",
|
|
15
15
|
"tslib": "^2.8.1"
|
|
16
16
|
},
|
|
@@ -54,5 +54,5 @@
|
|
|
54
54
|
"nyc": {
|
|
55
55
|
"extends": "../../configs/nyc.json"
|
|
56
56
|
},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "0b5a5f27164581ca47b8d7c08eaf690ac23d932f"
|
|
58
58
|
}
|
|
@@ -43,19 +43,32 @@ disableJSDOM();
|
|
|
43
43
|
|
|
44
44
|
// --- Factory ---
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
interface StubLogger {
|
|
47
|
+
error: sinon.SinonStub;
|
|
48
|
+
warn: sinon.SinonStub;
|
|
49
|
+
info: sinon.SinonStub;
|
|
50
|
+
debug: sinon.SinonStub;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function makeStubLogger(): StubLogger {
|
|
54
|
+
return { error: sinon.stub(), warn: sinon.stub(), info: sinon.stub(), debug: sinon.stub() };
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function makeAgentDelegationTool(chatAgentService: ChatAgentService, chatService: ChatService, logger: StubLogger = makeStubLogger()): AgentDelegationTool {
|
|
47
58
|
const tool = new AgentDelegationTool();
|
|
48
59
|
Object.defineProperty(tool, 'getChatAgentService', { value: () => chatAgentService });
|
|
49
60
|
Object.defineProperty(tool, 'getChatService', { value: () => chatService });
|
|
61
|
+
Object.defineProperty(tool, 'logger', { value: logger });
|
|
50
62
|
return tool;
|
|
51
63
|
}
|
|
52
64
|
|
|
53
65
|
// --- Helper factories ---
|
|
54
66
|
|
|
55
|
-
function makeContextManager(): { addVariables: sinon.SinonStub; getVariables: sinon.SinonStub } {
|
|
67
|
+
function makeContextManager(): { addVariables: sinon.SinonStub; getVariables: sinon.SinonStub; deleteVariables: sinon.SinonStub } {
|
|
56
68
|
return {
|
|
57
69
|
addVariables: sinon.stub(),
|
|
58
|
-
getVariables: sinon.stub().returns([])
|
|
70
|
+
getVariables: sinon.stub().returns([]),
|
|
71
|
+
deleteVariables: sinon.stub()
|
|
59
72
|
};
|
|
60
73
|
}
|
|
61
74
|
|
|
@@ -119,6 +132,37 @@ function makeChatContext(): {
|
|
|
119
132
|
};
|
|
120
133
|
}
|
|
121
134
|
|
|
135
|
+
/** A session previously delegated by the calling session (see {@link makeParentSession}). */
|
|
136
|
+
function makeExistingSession(contextManager = makeContextManager()): {
|
|
137
|
+
id: string;
|
|
138
|
+
pinnedAgent: { id: string; name: string } | undefined;
|
|
139
|
+
rootSessionId: string;
|
|
140
|
+
parentSessionId: string | undefined;
|
|
141
|
+
model: {
|
|
142
|
+
status: string;
|
|
143
|
+
context: ReturnType<typeof makeContextManager>;
|
|
144
|
+
changeSet: ReturnType<typeof makeChangeSet>;
|
|
145
|
+
onDidChange: sinon.SinonStub;
|
|
146
|
+
rootSessionId: string;
|
|
147
|
+
parentSessionId: string;
|
|
148
|
+
};
|
|
149
|
+
} {
|
|
150
|
+
return {
|
|
151
|
+
id: 'existing-session-id',
|
|
152
|
+
pinnedAgent: { id: 'test-agent', name: 'Test Agent' },
|
|
153
|
+
rootSessionId: 'original-root-id',
|
|
154
|
+
parentSessionId: 'parent-session-id',
|
|
155
|
+
model: {
|
|
156
|
+
status: 'idle',
|
|
157
|
+
context: contextManager,
|
|
158
|
+
changeSet: makeChangeSet(),
|
|
159
|
+
onDidChange: sinon.stub().returns({ dispose: sinon.stub() }),
|
|
160
|
+
rootSessionId: 'original-root-id',
|
|
161
|
+
parentSessionId: 'parent-session-id'
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
|
|
122
166
|
type SessionEvent = ActiveSessionChangedEvent | SessionCreatedEvent | SessionDeletedEvent | SessionRenamedEvent;
|
|
123
167
|
|
|
124
168
|
function makeChatService(newSession: ReturnType<typeof makeNewSession>, responseContent?: ChatResponseContent[]): ChatService {
|
|
@@ -213,7 +257,7 @@ describe('AgentDelegationTool', () => {
|
|
|
213
257
|
const argString = JSON.stringify({ agentId: 'test-agent', prompt: 'do something' });
|
|
214
258
|
const result = await tool.getTool().handler(argString, ctx);
|
|
215
259
|
|
|
216
|
-
expect(result).to.equal('final answer');
|
|
260
|
+
expect(result).to.equal('final answer\n\n[delegation sessionId: new-session-id]');
|
|
217
261
|
expect(result).to.not.include('thinking');
|
|
218
262
|
});
|
|
219
263
|
|
|
@@ -230,10 +274,10 @@ describe('AgentDelegationTool', () => {
|
|
|
230
274
|
const argString = JSON.stringify({ agentId: 'test-agent', prompt: 'do something' });
|
|
231
275
|
const result = await tool.getTool().handler(argString, ctx);
|
|
232
276
|
|
|
233
|
-
expect(result).to.equal('final answer');
|
|
277
|
+
expect(result).to.equal('final answer\n\n[delegation sessionId: new-session-id]');
|
|
234
278
|
});
|
|
235
279
|
|
|
236
|
-
it('returns
|
|
280
|
+
it('returns only the session id marker when all content is thinking', async () => {
|
|
237
281
|
const thinkingContent = new ThinkingChatResponseContentImpl('internal', 'sig');
|
|
238
282
|
|
|
239
283
|
const newSession = makeNewSession();
|
|
@@ -245,7 +289,193 @@ describe('AgentDelegationTool', () => {
|
|
|
245
289
|
const argString = JSON.stringify({ agentId: 'test-agent', prompt: 'do something' });
|
|
246
290
|
const result = await tool.getTool().handler(argString, ctx);
|
|
247
291
|
|
|
248
|
-
expect(result).to.equal('');
|
|
292
|
+
expect(result).to.equal('[delegation sessionId: new-session-id]');
|
|
293
|
+
});
|
|
294
|
+
});
|
|
295
|
+
|
|
296
|
+
describe('delegateToAgent() — delegation session id in result', () => {
|
|
297
|
+
it('appends the delegation session id to the tool result', async () => {
|
|
298
|
+
const newSession = makeNewSession();
|
|
299
|
+
const agentService = makeChatAgentService();
|
|
300
|
+
const chatService = makeChatService(newSession);
|
|
301
|
+
const tool = makeAgentDelegationTool(agentService, chatService);
|
|
302
|
+
const ctx = makeChatContext();
|
|
303
|
+
|
|
304
|
+
const argString = JSON.stringify({ agentId: 'test-agent', prompt: 'do something' });
|
|
305
|
+
const result = await tool.getTool().handler(argString, ctx);
|
|
306
|
+
|
|
307
|
+
expect(result).to.equal('agent response\n\n[delegation sessionId: new-session-id]');
|
|
308
|
+
});
|
|
309
|
+
});
|
|
310
|
+
|
|
311
|
+
describe('delegateToAgent() — sessionId parameter (resume)', () => {
|
|
312
|
+
let contextManager: ReturnType<typeof makeContextManager>;
|
|
313
|
+
let existingSession: ReturnType<typeof makeExistingSession>;
|
|
314
|
+
let chatService: ChatService;
|
|
315
|
+
let tool: AgentDelegationTool;
|
|
316
|
+
let logger: StubLogger;
|
|
317
|
+
let ctx: ReturnType<typeof makeChatContext>;
|
|
318
|
+
|
|
319
|
+
beforeEach(() => {
|
|
320
|
+
contextManager = makeContextManager();
|
|
321
|
+
existingSession = makeExistingSession(contextManager);
|
|
322
|
+
const newSession = makeNewSession();
|
|
323
|
+
const agentService = makeChatAgentService();
|
|
324
|
+
chatService = makeChatService(newSession);
|
|
325
|
+
(chatService.getSession as sinon.SinonStub).withArgs('existing-session-id').returns(existingSession);
|
|
326
|
+
(chatService.getOrRestoreSession as sinon.SinonStub).withArgs('existing-session-id').resolves(existingSession);
|
|
327
|
+
logger = makeStubLogger();
|
|
328
|
+
tool = makeAgentDelegationTool(agentService, chatService, logger);
|
|
329
|
+
ctx = makeChatContext();
|
|
330
|
+
});
|
|
331
|
+
|
|
332
|
+
it('sends the follow-up request into the existing session instead of creating a new one', async () => {
|
|
333
|
+
const argString = JSON.stringify({ agentId: 'test-agent', prompt: 'fix the findings', sessionId: 'existing-session-id' });
|
|
334
|
+
|
|
335
|
+
const result = await tool.getTool().handler(argString, ctx);
|
|
336
|
+
|
|
337
|
+
expect((chatService.createSession as sinon.SinonStub).called).to.be.false;
|
|
338
|
+
const sendRequest = chatService.sendRequest as sinon.SinonStub;
|
|
339
|
+
expect(sendRequest.calledOnce).to.be.true;
|
|
340
|
+
expect(sendRequest.firstCall.args[0]).to.equal('existing-session-id');
|
|
341
|
+
expect(result).to.equal('agent response\n\n[delegation sessionId: existing-session-id]');
|
|
342
|
+
});
|
|
343
|
+
|
|
344
|
+
it('re-establishes event bubbling from the resumed session to the parent', async () => {
|
|
345
|
+
const argString = JSON.stringify({ agentId: 'test-agent', prompt: 'fix the findings', sessionId: 'existing-session-id' });
|
|
346
|
+
|
|
347
|
+
await tool.getTool().handler(argString, ctx);
|
|
348
|
+
|
|
349
|
+
expect(existingSession.model.onDidChange.calledOnce).to.be.true;
|
|
350
|
+
expect(existingSession.model.changeSet.onDidChange.calledOnce).to.be.true;
|
|
351
|
+
});
|
|
352
|
+
|
|
353
|
+
it('does not modify rootSessionId or parentSessionId of the resumed session', async () => {
|
|
354
|
+
const argString = JSON.stringify({ agentId: 'test-agent', prompt: 'fix the findings', sessionId: 'existing-session-id' });
|
|
355
|
+
|
|
356
|
+
await tool.getTool().handler(argString, ctx);
|
|
357
|
+
|
|
358
|
+
expect(existingSession.rootSessionId).to.equal('original-root-id');
|
|
359
|
+
expect(existingSession.parentSessionId).to.equal('parent-session-id');
|
|
360
|
+
expect(existingSession.model.rootSessionId).to.equal('original-root-id');
|
|
361
|
+
expect(existingSession.model.parentSessionId).to.equal('parent-session-id');
|
|
362
|
+
});
|
|
363
|
+
|
|
364
|
+
it('adds the task context variable to the resumed session when taskContextId is provided', async () => {
|
|
365
|
+
const argString = JSON.stringify({
|
|
366
|
+
agentId: 'test-agent', prompt: 'fix the findings', sessionId: 'existing-session-id', taskContextId: 'follow-up-ctx-id'
|
|
367
|
+
});
|
|
368
|
+
|
|
369
|
+
await tool.getTool().handler(argString, ctx);
|
|
370
|
+
|
|
371
|
+
expect(contextManager.addVariables.calledOnce).to.be.true;
|
|
372
|
+
const callArg: AIVariableResolutionRequest = contextManager.addVariables.firstCall.args[0];
|
|
373
|
+
expect(callArg.variable).to.equal(TASK_CONTEXT_VARIABLE);
|
|
374
|
+
expect(callArg.arg).to.equal('follow-up-ctx-id');
|
|
375
|
+
});
|
|
376
|
+
|
|
377
|
+
it('restores a delegation session that is persisted but no longer in memory', async () => {
|
|
378
|
+
// e.g. after a page reload: the orchestrator history still carries the session id, but only storage has the session
|
|
379
|
+
(chatService.getSession as sinon.SinonStub).withArgs('existing-session-id').returns(undefined);
|
|
380
|
+
const argString = JSON.stringify({ agentId: 'test-agent', prompt: 'fix the findings', sessionId: 'existing-session-id' });
|
|
381
|
+
|
|
382
|
+
const result = await tool.getTool().handler(argString, ctx);
|
|
383
|
+
|
|
384
|
+
const sendRequest = chatService.sendRequest as sinon.SinonStub;
|
|
385
|
+
expect(sendRequest.calledOnce).to.be.true;
|
|
386
|
+
expect(sendRequest.firstCall.args[0]).to.equal('existing-session-id');
|
|
387
|
+
expect(result).to.equal('agent response\n\n[delegation sessionId: existing-session-id]');
|
|
388
|
+
});
|
|
389
|
+
|
|
390
|
+
it('replaces a previous task context when a different taskContextId is provided', async () => {
|
|
391
|
+
contextManager.getVariables.returns([{ variable: TASK_CONTEXT_VARIABLE, arg: 'stale-ctx-id' }]);
|
|
392
|
+
const argString = JSON.stringify({
|
|
393
|
+
agentId: 'test-agent', prompt: 'fix the findings', sessionId: 'existing-session-id', taskContextId: 'new-ctx-id'
|
|
394
|
+
});
|
|
395
|
+
|
|
396
|
+
await tool.getTool().handler(argString, ctx);
|
|
397
|
+
|
|
398
|
+
expect(contextManager.deleteVariables.calledOnceWithExactly(0)).to.be.true;
|
|
399
|
+
const callArg: AIVariableResolutionRequest = contextManager.addVariables.firstCall.args[0];
|
|
400
|
+
expect(callArg.arg).to.equal('new-ctx-id');
|
|
401
|
+
});
|
|
402
|
+
|
|
403
|
+
it('keeps the existing task context when the same taskContextId is provided again', async () => {
|
|
404
|
+
contextManager.getVariables.returns([{ variable: TASK_CONTEXT_VARIABLE, arg: 'same-ctx-id' }]);
|
|
405
|
+
const argString = JSON.stringify({
|
|
406
|
+
agentId: 'test-agent', prompt: 'fix the findings', sessionId: 'existing-session-id', taskContextId: 'same-ctx-id'
|
|
407
|
+
});
|
|
408
|
+
|
|
409
|
+
await tool.getTool().handler(argString, ctx);
|
|
410
|
+
|
|
411
|
+
expect(contextManager.deleteVariables.called).to.be.false;
|
|
412
|
+
});
|
|
413
|
+
|
|
414
|
+
it('disposes the event bubbling when the delegated request fails', async () => {
|
|
415
|
+
(chatService.sendRequest as sinon.SinonStub).rejects(new Error('provider unavailable'));
|
|
416
|
+
const argString = JSON.stringify({ agentId: 'test-agent', prompt: 'fix the findings', sessionId: 'existing-session-id' });
|
|
417
|
+
|
|
418
|
+
await tool.getTool().handler(argString, ctx);
|
|
419
|
+
|
|
420
|
+
expect(existingSession.model.onDidChange.firstCall.returnValue.dispose.called).to.be.true;
|
|
421
|
+
expect(existingSession.model.changeSet.onDidChange.firstCall.returnValue.dispose.called).to.be.true;
|
|
422
|
+
});
|
|
423
|
+
|
|
424
|
+
it('returns an error when the session was delegated by a different session', async () => {
|
|
425
|
+
existingSession.parentSessionId = 'someone-elses-session-id';
|
|
426
|
+
const argString = JSON.stringify({ agentId: 'test-agent', prompt: 'fix the findings', sessionId: 'existing-session-id' });
|
|
427
|
+
|
|
428
|
+
const result = await tool.getTool().handler(argString, ctx);
|
|
429
|
+
|
|
430
|
+
expect(result).to.include('was not delegated by this session');
|
|
431
|
+
expect((chatService.sendRequest as sinon.SinonStub).called).to.be.false;
|
|
432
|
+
});
|
|
433
|
+
|
|
434
|
+
it('returns an error when the session is not a delegated session at all', async () => {
|
|
435
|
+
// e.g. the id of a normal top-level user chat
|
|
436
|
+
existingSession.parentSessionId = undefined;
|
|
437
|
+
const argString = JSON.stringify({ agentId: 'test-agent', prompt: 'fix the findings', sessionId: 'existing-session-id' });
|
|
438
|
+
|
|
439
|
+
const result = await tool.getTool().handler(argString, ctx);
|
|
440
|
+
|
|
441
|
+
expect(result).to.include('was not delegated by this session');
|
|
442
|
+
expect((chatService.sendRequest as sinon.SinonStub).called).to.be.false;
|
|
443
|
+
});
|
|
444
|
+
|
|
445
|
+
it('returns an error when the sessionId is unknown', async () => {
|
|
446
|
+
const argString = JSON.stringify({ agentId: 'test-agent', prompt: 'fix the findings', sessionId: 'unknown-session-id' });
|
|
447
|
+
|
|
448
|
+
const result = await tool.getTool().handler(argString, ctx);
|
|
449
|
+
|
|
450
|
+
expect(result).to.include('not found');
|
|
451
|
+
expect((chatService.sendRequest as sinon.SinonStub).called).to.be.false;
|
|
452
|
+
expect((chatService.createSession as sinon.SinonStub).called).to.be.false;
|
|
453
|
+
expect(logger.warn.calledOnce).to.be.true;
|
|
454
|
+
expect(logger.error.called).to.be.false;
|
|
455
|
+
});
|
|
456
|
+
|
|
457
|
+
it('returns an error when the resumed session is still processing a request', async () => {
|
|
458
|
+
existingSession.model.status = 'running';
|
|
459
|
+
const argString = JSON.stringify({ agentId: 'test-agent', prompt: 'fix the findings', sessionId: 'existing-session-id' });
|
|
460
|
+
|
|
461
|
+
const result = await tool.getTool().handler(argString, ctx);
|
|
462
|
+
|
|
463
|
+
expect(result).to.include('still processing');
|
|
464
|
+
expect((chatService.sendRequest as sinon.SinonStub).called).to.be.false;
|
|
465
|
+
expect(logger.warn.calledOnce).to.be.true;
|
|
466
|
+
expect(logger.error.called).to.be.false;
|
|
467
|
+
});
|
|
468
|
+
|
|
469
|
+
it('returns an error when agentId does not match the pinned agent of the session', async () => {
|
|
470
|
+
existingSession.pinnedAgent = { id: 'other-agent', name: 'Other Agent' };
|
|
471
|
+
const argString = JSON.stringify({ agentId: 'test-agent', prompt: 'fix the findings', sessionId: 'existing-session-id' });
|
|
472
|
+
|
|
473
|
+
const result = await tool.getTool().handler(argString, ctx);
|
|
474
|
+
|
|
475
|
+
expect(result).to.include("belongs to agent 'other-agent'");
|
|
476
|
+
expect((chatService.sendRequest as sinon.SinonStub).called).to.be.false;
|
|
477
|
+
expect(logger.error.calledOnce).to.be.true;
|
|
478
|
+
expect(logger.warn.called).to.be.false;
|
|
249
479
|
});
|
|
250
480
|
});
|
|
251
481
|
|