@theia/ai-history 1.55.0-next.37 → 1.55.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/common/communication-recording-service.d.ts +1 -0
- package/lib/common/communication-recording-service.d.ts.map +1 -1
- package/lib/common/communication-recording-service.js +3 -0
- package/lib/common/communication-recording-service.js.map +1 -1
- package/lib/common/communication-recording-service.spec.js +22 -0
- package/lib/common/communication-recording-service.spec.js.map +1 -1
- package/package.json +8 -8
- package/src/common/communication-recording-service.spec.ts +25 -0
- package/src/common/communication-recording-service.ts +8 -0
|
@@ -10,6 +10,7 @@ export declare class DefaultCommunicationRecordingService implements Communicati
|
|
|
10
10
|
readonly onStructuralChange: Event<void>;
|
|
11
11
|
protected history: Map<string, CommunicationHistory>;
|
|
12
12
|
getHistory(agentId: string): CommunicationHistory;
|
|
13
|
+
getSessionHistory(sessionId: string): CommunicationHistory;
|
|
13
14
|
recordRequest(requestEntry: CommunicationHistoryEntry): void;
|
|
14
15
|
recordResponse(responseEntry: CommunicationHistoryEntry): void;
|
|
15
16
|
clearHistory(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"communication-recording-service.d.ts","sourceRoot":"","sources":["../../src/common/communication-recording-service.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AACvK,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtD,qBACa,oCAAqC,YAAW,6BAA6B;IAGtF,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAE1B,SAAS,CAAC,yBAAyB,qCAA4C;IAC/E,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAwC;IAErG,SAAS,CAAC,0BAA0B,sCAA6C;IACjF,QAAQ,CAAC,mBAAmB,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAyC;IAExG,SAAS,CAAC,yBAAyB,gBAAuB;IAC1D,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAwC;IAEhF,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAa;IAEjE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB;IAIjD,aAAa,CAAC,YAAY,EAAE,yBAAyB,GAAG,IAAI;IAU5D,cAAc,CAAC,aAAa,EAAE,yBAAyB,GAAG,IAAI;IAgB9D,YAAY,IAAI,IAAI;CAIvB"}
|
|
1
|
+
{"version":3,"file":"communication-recording-service.d.ts","sourceRoot":"","sources":["../../src/common/communication-recording-service.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AACvK,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtD,qBACa,oCAAqC,YAAW,6BAA6B;IAGtF,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAE1B,SAAS,CAAC,yBAAyB,qCAA4C;IAC/E,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAwC;IAErG,SAAS,CAAC,0BAA0B,sCAA6C;IACjF,QAAQ,CAAC,mBAAmB,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAyC;IAExG,SAAS,CAAC,yBAAyB,gBAAuB;IAC1D,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAwC;IAEhF,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAa;IAEjE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB;IAIjD,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,oBAAoB;IAQ1D,aAAa,CAAC,YAAY,EAAE,yBAAyB,GAAG,IAAI;IAU5D,cAAc,CAAC,aAAa,EAAE,yBAAyB,GAAG,IAAI;IAgB9D,YAAY,IAAI,IAAI;CAIvB"}
|
|
@@ -17,6 +17,9 @@ let DefaultCommunicationRecordingService = class DefaultCommunicationRecordingSe
|
|
|
17
17
|
getHistory(agentId) {
|
|
18
18
|
return this.history.get(agentId) || [];
|
|
19
19
|
}
|
|
20
|
+
getSessionHistory(sessionId) {
|
|
21
|
+
return Array.from(this.history.values()).reduce((acc, current) => acc.concat(current.filter(entry => entry.sessionId === sessionId)), []);
|
|
22
|
+
}
|
|
20
23
|
recordRequest(requestEntry) {
|
|
21
24
|
var _a;
|
|
22
25
|
this.logger.debug('Recording request:', requestEntry.request);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"communication-recording-service.js","sourceRoot":"","sources":["../../src/common/communication-recording-service.ts"],"names":[],"mappings":";;;;AAgBA,sCAAsD;AACtD,4DAAyE;AAGlE,IAAM,oCAAoC,GAA1C,MAAM,oCAAoC;IAA1C;QAKO,8BAAyB,GAAG,IAAI,cAAO,EAA6B,CAAC;QACtE,uBAAkB,GAAqC,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;QAE3F,+BAA0B,GAAG,IAAI,cAAO,EAA8B,CAAC;QACxE,wBAAmB,GAAsC,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC;QAE9F,8BAAyB,GAAG,IAAI,cAAO,EAAQ,CAAC;QACjD,uBAAkB,GAAgB,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;QAEtE,YAAO,GAAsC,IAAI,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"communication-recording-service.js","sourceRoot":"","sources":["../../src/common/communication-recording-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,5 +15,27 @@ describe('DefaultCommunicationRecordingService', () => {
|
|
|
15
15
|
(0, chai_1.expect)(history2[0].request).to.eq('dummy request');
|
|
16
16
|
(0, chai_1.expect)(history2[0].response).to.eq('dummy response');
|
|
17
17
|
});
|
|
18
|
+
it('returns session history', () => {
|
|
19
|
+
const service = new communication_recording_service_1.DefaultCommunicationRecordingService();
|
|
20
|
+
service.logger = new mock_logger_1.MockLogger();
|
|
21
|
+
// some requests and responses for session 1
|
|
22
|
+
service.recordRequest({ agentId: 'agent', requestId: '1', sessionId: '1', timestamp: 100, request: 'session 1 request 1' });
|
|
23
|
+
service.recordResponse({ agentId: 'agent', requestId: '1', sessionId: '1', timestamp: 200, response: 'session 1 response 1' });
|
|
24
|
+
service.recordRequest({ agentId: 'agent2', requestId: '2', sessionId: '1', timestamp: 100, request: 'session 1 request 2' });
|
|
25
|
+
service.recordResponse({ agentId: 'agent2', requestId: '2', sessionId: '1', timestamp: 200, response: 'session 1 response 2' });
|
|
26
|
+
// some requests and responses for session 2
|
|
27
|
+
service.recordRequest({ agentId: 'agent', requestId: '3', sessionId: '2', timestamp: 100, request: 'different session request' });
|
|
28
|
+
service.recordResponse({ agentId: 'agent', requestId: '3', sessionId: '2', timestamp: 200, response: 'different session request' });
|
|
29
|
+
const history1 = service.getSessionHistory('1');
|
|
30
|
+
(0, chai_1.expect)(history1.length).to.eq(2);
|
|
31
|
+
(0, chai_1.expect)(history1[0].request).to.eq('session 1 request 1');
|
|
32
|
+
(0, chai_1.expect)(history1[0].response).to.eq('session 1 response 1');
|
|
33
|
+
(0, chai_1.expect)(history1[1].request).to.eq('session 1 request 2');
|
|
34
|
+
(0, chai_1.expect)(history1[1].response).to.eq('session 1 response 2');
|
|
35
|
+
const history2 = service.getSessionHistory('2');
|
|
36
|
+
(0, chai_1.expect)(history2.length).to.eq(1);
|
|
37
|
+
(0, chai_1.expect)(history2[0].request).to.eq('different session request');
|
|
38
|
+
(0, chai_1.expect)(history2[0].response).to.eq('different session request');
|
|
39
|
+
});
|
|
18
40
|
});
|
|
19
41
|
//# sourceMappingURL=communication-recording-service.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"communication-recording-service.spec.js","sourceRoot":"","sources":["../../src/common/communication-recording-service.spec.ts"],"names":[],"mappings":";;AAgBA,yEAAqE;AACrE,uFAAyF;AACzF,+BAA8B;AAE9B,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;IAElD,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACvB,MAAM,OAAO,GAAG,IAAI,sEAAoC,EAAE,CAAC;QAC1D,OAA0C,CAAC,MAAM,GAAG,IAAI,wBAAU,EAAE,CAAC;QACtE,OAAO,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;QAEtH,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;QAEnD,OAAO,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACzH,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;QACnD,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AAEP,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"communication-recording-service.spec.js","sourceRoot":"","sources":["../../src/common/communication-recording-service.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/ai-history",
|
|
3
|
-
"version": "1.55.0
|
|
3
|
+
"version": "1.55.0",
|
|
4
4
|
"description": "Theia - AI communication history",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/ai-core": "1.55.0
|
|
7
|
-
"@theia/core": "1.55.0
|
|
8
|
-
"@theia/filesystem": "1.55.0
|
|
9
|
-
"@theia/output": "1.55.0
|
|
10
|
-
"@theia/workspace": "1.55.0
|
|
6
|
+
"@theia/ai-core": "1.55.0",
|
|
7
|
+
"@theia/core": "1.55.0",
|
|
8
|
+
"@theia/filesystem": "1.55.0",
|
|
9
|
+
"@theia/output": "1.55.0",
|
|
10
|
+
"@theia/workspace": "1.55.0",
|
|
11
11
|
"minimatch": "^5.1.0",
|
|
12
12
|
"tslib": "^2.6.2"
|
|
13
13
|
},
|
|
@@ -45,10 +45,10 @@
|
|
|
45
45
|
"watch": "theiaext watch"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@theia/ext-scripts": "1.
|
|
48
|
+
"@theia/ext-scripts": "1.55.0"
|
|
49
49
|
},
|
|
50
50
|
"nyc": {
|
|
51
51
|
"extends": "../../configs/nyc.json"
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "0e7a523b8e798679d2e098709c63bd7060e54c8a"
|
|
54
54
|
}
|
|
@@ -34,4 +34,29 @@ describe('DefaultCommunicationRecordingService', () => {
|
|
|
34
34
|
expect(history2[0].response).to.eq('dummy response');
|
|
35
35
|
});
|
|
36
36
|
|
|
37
|
+
it('returns session history', () => {
|
|
38
|
+
const service = new DefaultCommunicationRecordingService();
|
|
39
|
+
(service as unknown as { logger: ILogger }).logger = new MockLogger();
|
|
40
|
+
// some requests and responses for session 1
|
|
41
|
+
service.recordRequest({ agentId: 'agent', requestId: '1', sessionId: '1', timestamp: 100, request: 'session 1 request 1' });
|
|
42
|
+
service.recordResponse({ agentId: 'agent', requestId: '1', sessionId: '1', timestamp: 200, response: 'session 1 response 1' });
|
|
43
|
+
service.recordRequest({ agentId: 'agent2', requestId: '2', sessionId: '1', timestamp: 100, request: 'session 1 request 2' });
|
|
44
|
+
service.recordResponse({ agentId: 'agent2', requestId: '2', sessionId: '1', timestamp: 200, response: 'session 1 response 2' });
|
|
45
|
+
// some requests and responses for session 2
|
|
46
|
+
service.recordRequest({ agentId: 'agent', requestId: '3', sessionId: '2', timestamp: 100, request: 'different session request' });
|
|
47
|
+
service.recordResponse({ agentId: 'agent', requestId: '3', sessionId: '2', timestamp: 200, response: 'different session request' });
|
|
48
|
+
|
|
49
|
+
const history1 = service.getSessionHistory('1');
|
|
50
|
+
expect(history1.length).to.eq(2);
|
|
51
|
+
expect(history1[0].request).to.eq('session 1 request 1');
|
|
52
|
+
expect(history1[0].response).to.eq('session 1 response 1');
|
|
53
|
+
expect(history1[1].request).to.eq('session 1 request 2');
|
|
54
|
+
expect(history1[1].response).to.eq('session 1 response 2');
|
|
55
|
+
|
|
56
|
+
const history2 = service.getSessionHistory('2');
|
|
57
|
+
expect(history2.length).to.eq(1);
|
|
58
|
+
expect(history2[0].request).to.eq('different session request');
|
|
59
|
+
expect(history2[0].response).to.eq('different session request');
|
|
60
|
+
});
|
|
61
|
+
|
|
37
62
|
});
|
|
@@ -38,6 +38,14 @@ export class DefaultCommunicationRecordingService implements CommunicationRecord
|
|
|
38
38
|
return this.history.get(agentId) || [];
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
+
getSessionHistory(sessionId: string): CommunicationHistory {
|
|
42
|
+
return Array.from(
|
|
43
|
+
this.history.values()
|
|
44
|
+
).reduce((acc, current) =>
|
|
45
|
+
acc.concat(current.filter(entry => entry.sessionId === sessionId)), []
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
|
|
41
49
|
recordRequest(requestEntry: CommunicationHistoryEntry): void {
|
|
42
50
|
this.logger.debug('Recording request:', requestEntry.request);
|
|
43
51
|
if (this.history.has(requestEntry.agentId)) {
|