@iqai/adk-cli 0.2.8 → 0.3.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/CHANGELOG.md +20 -0
- package/README.md +1 -0
- package/dist/app.module.d.ts +3 -0
- package/dist/app.module.d.ts.map +1 -0
- package/dist/app.module.js +24 -0
- package/dist/app.module.js.map +1 -0
- package/dist/cli/cli.module.d.ts +3 -0
- package/dist/cli/cli.module.d.ts.map +1 -0
- package/dist/cli/cli.module.js +25 -0
- package/dist/cli/cli.module.js.map +1 -0
- package/dist/cli/new.command.d.ts +10 -0
- package/dist/cli/new.command.d.ts.map +1 -0
- package/dist/cli/new.command.js +273 -0
- package/dist/cli/new.command.js.map +1 -0
- package/dist/cli/run.command.d.ts +20 -0
- package/dist/cli/run.command.d.ts.map +1 -0
- package/dist/cli/run.command.js +342 -0
- package/dist/cli/run.command.js.map +1 -0
- package/dist/cli/serve.command.d.ts +20 -0
- package/dist/cli/serve.command.d.ts.map +1 -0
- package/dist/cli/serve.command.js +137 -0
- package/dist/cli/serve.command.js.map +1 -0
- package/dist/cli/web.command.d.ts +20 -0
- package/dist/cli/web.command.d.ts.map +1 -0
- package/dist/cli/web.command.js +146 -0
- package/dist/cli/web.command.js.map +1 -0
- package/dist/common/tokens.d.ts +5 -0
- package/dist/common/tokens.d.ts.map +1 -0
- package/dist/common/tokens.js +8 -0
- package/dist/common/tokens.js.map +1 -0
- package/dist/common/types.d.ts +91 -0
- package/dist/common/types.d.ts.map +1 -0
- package/dist/common/types.js +3 -0
- package/dist/common/types.js.map +1 -0
- package/dist/http/bootstrap.d.ts +17 -0
- package/dist/http/bootstrap.d.ts.map +1 -0
- package/dist/http/bootstrap.js +221 -0
- package/dist/http/bootstrap.js.map +1 -0
- package/dist/http/config/config.module.d.ts +6 -0
- package/dist/http/config/config.module.d.ts.map +1 -0
- package/dist/http/config/config.module.js +32 -0
- package/dist/http/config/config.module.js.map +1 -0
- package/dist/http/discovery/agents.controller.d.ts +13 -0
- package/dist/http/discovery/agents.controller.d.ts.map +1 -0
- package/dist/http/discovery/agents.controller.js +73 -0
- package/dist/http/discovery/agents.controller.js.map +1 -0
- package/dist/http/discovery/discovery.module.d.ts +3 -0
- package/dist/http/discovery/discovery.module.d.ts.map +1 -0
- package/dist/http/discovery/discovery.module.js +22 -0
- package/dist/http/discovery/discovery.module.js.map +1 -0
- package/dist/http/dto/api.dto.d.ts +70 -0
- package/dist/http/dto/api.dto.d.ts.map +1 -0
- package/dist/http/dto/api.dto.js +268 -0
- package/dist/http/dto/api.dto.js.map +1 -0
- package/dist/http/events/events.controller.d.ts +8 -0
- package/dist/http/events/events.controller.d.ts.map +1 -0
- package/dist/http/events/events.controller.js +55 -0
- package/dist/http/events/events.controller.js.map +1 -0
- package/dist/http/events/events.module.d.ts +3 -0
- package/dist/http/events/events.module.d.ts.map +1 -0
- package/dist/http/events/events.module.js +25 -0
- package/dist/http/events/events.module.js.map +1 -0
- package/dist/http/events/events.service.d.ts +8 -0
- package/dist/http/events/events.service.d.ts.map +1 -0
- package/dist/http/events/events.service.js +37 -0
- package/dist/http/events/events.service.js.map +1 -0
- package/dist/http/health/health.controller.d.ts +6 -0
- package/dist/http/health/health.controller.d.ts.map +1 -0
- package/dist/http/health/health.controller.js +37 -0
- package/dist/http/health/health.controller.js.map +1 -0
- package/dist/http/health/health.module.d.ts +3 -0
- package/dist/http/health/health.module.d.ts.map +1 -0
- package/dist/http/health/health.module.js +20 -0
- package/dist/http/health/health.module.js.map +1 -0
- package/dist/http/http.module.d.ts +6 -0
- package/dist/http/http.module.d.ts.map +1 -0
- package/dist/http/http.module.js +43 -0
- package/dist/http/http.module.js.map +1 -0
- package/dist/http/messaging/messaging.controller.d.ts +9 -0
- package/dist/http/messaging/messaging.controller.d.ts.map +1 -0
- package/dist/http/messaging/messaging.controller.js +83 -0
- package/dist/http/messaging/messaging.controller.js.map +1 -0
- package/dist/http/messaging/messaging.module.d.ts +3 -0
- package/dist/http/messaging/messaging.module.d.ts.map +1 -0
- package/dist/http/messaging/messaging.module.js +25 -0
- package/dist/http/messaging/messaging.module.js.map +1 -0
- package/dist/http/messaging/messaging.service.d.ts +11 -0
- package/dist/http/messaging/messaging.service.d.ts.map +1 -0
- package/dist/http/messaging/messaging.service.js +48 -0
- package/dist/http/messaging/messaging.service.js.map +1 -0
- package/dist/http/providers/agent-loader.service.d.ts +49 -0
- package/dist/http/providers/agent-loader.service.d.ts.map +1 -0
- package/dist/http/providers/agent-loader.service.js +416 -0
- package/dist/http/providers/agent-loader.service.js.map +1 -0
- package/dist/http/providers/agent-manager.service.d.ts +24 -0
- package/dist/http/providers/agent-manager.service.d.ts.map +1 -0
- package/dist/http/providers/agent-manager.service.js +222 -0
- package/dist/http/providers/agent-manager.service.js.map +1 -0
- package/dist/http/providers/agent-scanner.service.d.ts +9 -0
- package/dist/http/providers/agent-scanner.service.d.ts.map +1 -0
- package/dist/http/providers/agent-scanner.service.js +108 -0
- package/dist/http/providers/agent-scanner.service.js.map +1 -0
- package/dist/http/providers/providers.module.d.ts +3 -0
- package/dist/http/providers/providers.module.d.ts.map +1 -0
- package/dist/http/providers/providers.module.js +47 -0
- package/dist/http/providers/providers.module.js.map +1 -0
- package/dist/http/reload/hot-reload.service.d.ts +16 -0
- package/dist/http/reload/hot-reload.service.d.ts.map +1 -0
- package/dist/http/reload/hot-reload.service.js +79 -0
- package/dist/http/reload/hot-reload.service.js.map +1 -0
- package/dist/http/reload/reload.controller.d.ts +14 -0
- package/dist/http/reload/reload.controller.d.ts.map +1 -0
- package/dist/http/reload/reload.controller.js +50 -0
- package/dist/http/reload/reload.controller.js.map +1 -0
- package/dist/http/reload/reload.module.d.ts +3 -0
- package/dist/http/reload/reload.module.d.ts.map +1 -0
- package/dist/http/reload/reload.module.js +23 -0
- package/dist/http/reload/reload.module.js.map +1 -0
- package/dist/http/runtime-config.d.ts +22 -0
- package/dist/http/runtime-config.d.ts.map +1 -0
- package/dist/http/runtime-config.js +5 -0
- package/dist/http/runtime-config.js.map +1 -0
- package/dist/http/sessions/sessions.controller.d.ts +11 -0
- package/dist/http/sessions/sessions.controller.d.ts.map +1 -0
- package/dist/http/sessions/sessions.controller.js +116 -0
- package/dist/http/sessions/sessions.controller.js.map +1 -0
- package/dist/http/sessions/sessions.module.d.ts +3 -0
- package/dist/http/sessions/sessions.module.d.ts.map +1 -0
- package/dist/http/sessions/sessions.module.js +25 -0
- package/dist/http/sessions/sessions.module.js.map +1 -0
- package/dist/http/sessions/sessions.service.d.ts +54 -0
- package/dist/http/sessions/sessions.service.d.ts.map +1 -0
- package/dist/http/sessions/sessions.service.js +353 -0
- package/dist/http/sessions/sessions.service.js.map +1 -0
- package/dist/http/state/state.controller.d.ts +9 -0
- package/dist/http/state/state.controller.d.ts.map +1 -0
- package/dist/http/state/state.controller.js +76 -0
- package/dist/http/state/state.controller.js.map +1 -0
- package/dist/http/state/state.module.d.ts +3 -0
- package/dist/http/state/state.module.d.ts.map +1 -0
- package/dist/http/state/state.module.js +25 -0
- package/dist/http/state/state.module.js.map +1 -0
- package/dist/http/state/state.service.d.ts +9 -0
- package/dist/http/state/state.service.d.ts.map +1 -0
- package/dist/http/state/state.service.js +55 -0
- package/dist/http/state/state.service.js.map +1 -0
- package/dist/main.d.ts +3 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +25 -0
- package/dist/main.js.map +1 -0
- package/package.json +18 -12
- package/dist/index.d.mts +0 -2
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -1187
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -1171
- package/dist/index.mjs.map +0 -1
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface RuntimeConfig {
|
|
2
|
+
host: string;
|
|
3
|
+
port: number;
|
|
4
|
+
agentsDir: string;
|
|
5
|
+
quiet: boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Enable file watching for hot reload behaviors.
|
|
8
|
+
* Defaults to true in non-production NODE_ENV when not provided.
|
|
9
|
+
*/
|
|
10
|
+
hotReload?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Optional additional globs/paths to watch. If not provided, agentsDir is watched.
|
|
13
|
+
*/
|
|
14
|
+
watchPaths?: string[];
|
|
15
|
+
/**
|
|
16
|
+
* Enable OpenAPI (Swagger) docs generation & UI at /docs and JSON at /openapi.json.
|
|
17
|
+
* Defaults to true in non-production when not provided. Disable explicitly in prod if needed.
|
|
18
|
+
*/
|
|
19
|
+
swagger?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare const RUNTIME_CONFIG = "RUNTIME_CONFIG";
|
|
22
|
+
//# sourceMappingURL=runtime-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-config.d.ts","sourceRoot":"","sources":["../../src/http/runtime-config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-config.js","sourceRoot":"","sources":["../../src/http/runtime-config.ts"],"names":[],"mappings":";;;AAqBa,QAAA,cAAc,GAAG,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CreateSessionRequest, SessionsResponse } from "../../common/types";
|
|
2
|
+
import { SessionsService } from "./sessions.service";
|
|
3
|
+
export declare class SessionsController {
|
|
4
|
+
private readonly sessions;
|
|
5
|
+
constructor(sessions: SessionsService);
|
|
6
|
+
listSessions(id: string): Promise<SessionsResponse>;
|
|
7
|
+
createSession(id: string, request: CreateSessionRequest): Promise<any>;
|
|
8
|
+
deleteSession(id: string, sessionId: string): Promise<any>;
|
|
9
|
+
switchSession(id: string, sessionId: string): Promise<any>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=sessions.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.controller.d.ts","sourceRoot":"","sources":["../../../src/http/sessions/sessions.controller.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAM5E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,qBAEa,kBAAkB;IAG7B,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,eAAe;IAcrC,YAAY,CAAc,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoBhE,aAAa,CACL,EAAE,EAAE,MAAM,EACf,OAAO,EAAE,oBAAoB;IAchC,aAAa,CACL,EAAE,EAAE,MAAM,EACH,SAAS,EAAE,MAAM;IAehC,aAAa,CACL,EAAE,EAAE,MAAM,EACH,SAAS,EAAE,MAAM;CAKtC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.SessionsController = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
18
|
+
const api_dto_1 = require("../dto/api.dto");
|
|
19
|
+
const sessions_service_1 = require("./sessions.service");
|
|
20
|
+
let SessionsController = class SessionsController {
|
|
21
|
+
sessions;
|
|
22
|
+
constructor(sessions) {
|
|
23
|
+
this.sessions = sessions;
|
|
24
|
+
}
|
|
25
|
+
async listSessions(id) {
|
|
26
|
+
const agentPath = decodeURIComponent(id);
|
|
27
|
+
return this.sessions.listSessions(agentPath);
|
|
28
|
+
}
|
|
29
|
+
async createSession(id, request) {
|
|
30
|
+
const agentPath = decodeURIComponent(id);
|
|
31
|
+
return this.sessions.createSession(agentPath, request);
|
|
32
|
+
}
|
|
33
|
+
async deleteSession(id, sessionId) {
|
|
34
|
+
const agentPath = decodeURIComponent(id);
|
|
35
|
+
return this.sessions.deleteSession(agentPath, sessionId);
|
|
36
|
+
}
|
|
37
|
+
async switchSession(id, sessionId) {
|
|
38
|
+
const agentPath = decodeURIComponent(id);
|
|
39
|
+
return this.sessions.switchSession(agentPath, sessionId);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
exports.SessionsController = SessionsController;
|
|
43
|
+
__decorate([
|
|
44
|
+
(0, common_1.Get)(),
|
|
45
|
+
(0, swagger_1.ApiOperation)({
|
|
46
|
+
summary: "List sessions for an agent",
|
|
47
|
+
description: "Returns all active sessions for the specified agent including metadata.",
|
|
48
|
+
}),
|
|
49
|
+
(0, swagger_1.ApiParam)({
|
|
50
|
+
name: "id",
|
|
51
|
+
description: "URL-encoded absolute agent path or identifier",
|
|
52
|
+
}),
|
|
53
|
+
(0, swagger_1.ApiOkResponse)({ type: api_dto_1.SessionsResponseDto }),
|
|
54
|
+
__param(0, (0, common_1.Param)("id")),
|
|
55
|
+
__metadata("design:type", Function),
|
|
56
|
+
__metadata("design:paramtypes", [String]),
|
|
57
|
+
__metadata("design:returntype", Promise)
|
|
58
|
+
], SessionsController.prototype, "listSessions", null);
|
|
59
|
+
__decorate([
|
|
60
|
+
(0, common_1.Post)(),
|
|
61
|
+
(0, swagger_1.ApiOperation)({
|
|
62
|
+
summary: "Create a new session",
|
|
63
|
+
description: "Creates a session for the agent. Optional state and custom sessionId may be provided.",
|
|
64
|
+
}),
|
|
65
|
+
(0, swagger_1.ApiParam)({
|
|
66
|
+
name: "id",
|
|
67
|
+
description: "URL-encoded absolute agent path or identifier",
|
|
68
|
+
}),
|
|
69
|
+
(0, swagger_1.ApiBody)({
|
|
70
|
+
description: "Initial session creation payload with optional state",
|
|
71
|
+
schema: { example: { state: { foo: "bar" }, sessionId: "custom-id-123" } },
|
|
72
|
+
}),
|
|
73
|
+
(0, swagger_1.ApiOkResponse)({ type: api_dto_1.SessionResponseDto }),
|
|
74
|
+
__param(0, (0, common_1.Param)("id")),
|
|
75
|
+
__param(1, (0, common_1.Body)()),
|
|
76
|
+
__metadata("design:type", Function),
|
|
77
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
78
|
+
__metadata("design:returntype", Promise)
|
|
79
|
+
], SessionsController.prototype, "createSession", null);
|
|
80
|
+
__decorate([
|
|
81
|
+
(0, common_1.Delete)(":sessionId"),
|
|
82
|
+
(0, swagger_1.ApiOperation)({
|
|
83
|
+
summary: "Delete a session",
|
|
84
|
+
description: "Stops and removes the session if it exists.",
|
|
85
|
+
}),
|
|
86
|
+
(0, swagger_1.ApiParam)({ name: "id", description: "Agent identifier" }),
|
|
87
|
+
(0, swagger_1.ApiParam)({ name: "sessionId", description: "Session to delete" }),
|
|
88
|
+
(0, swagger_1.ApiOkResponse)({ type: api_dto_1.SuccessResponseDto }),
|
|
89
|
+
__param(0, (0, common_1.Param)("id")),
|
|
90
|
+
__param(1, (0, common_1.Param)("sessionId")),
|
|
91
|
+
__metadata("design:type", Function),
|
|
92
|
+
__metadata("design:paramtypes", [String, String]),
|
|
93
|
+
__metadata("design:returntype", Promise)
|
|
94
|
+
], SessionsController.prototype, "deleteSession", null);
|
|
95
|
+
__decorate([
|
|
96
|
+
(0, common_1.Post)(":sessionId/switch"),
|
|
97
|
+
(0, swagger_1.ApiOperation)({
|
|
98
|
+
summary: "Switch active session",
|
|
99
|
+
description: "Marks the specified session as active (implementation specific).",
|
|
100
|
+
}),
|
|
101
|
+
(0, swagger_1.ApiParam)({ name: "id", description: "Agent identifier" }),
|
|
102
|
+
(0, swagger_1.ApiParam)({ name: "sessionId", description: "Session to switch to" }),
|
|
103
|
+
(0, swagger_1.ApiOkResponse)({ type: api_dto_1.SuccessResponseDto }),
|
|
104
|
+
__param(0, (0, common_1.Param)("id")),
|
|
105
|
+
__param(1, (0, common_1.Param)("sessionId")),
|
|
106
|
+
__metadata("design:type", Function),
|
|
107
|
+
__metadata("design:paramtypes", [String, String]),
|
|
108
|
+
__metadata("design:returntype", Promise)
|
|
109
|
+
], SessionsController.prototype, "switchSession", null);
|
|
110
|
+
exports.SessionsController = SessionsController = __decorate([
|
|
111
|
+
(0, swagger_1.ApiTags)("sessions"),
|
|
112
|
+
(0, common_1.Controller)("api/agents/:id/sessions"),
|
|
113
|
+
__param(0, (0, common_1.Inject)(sessions_service_1.SessionsService)),
|
|
114
|
+
__metadata("design:paramtypes", [sessions_service_1.SessionsService])
|
|
115
|
+
], SessionsController);
|
|
116
|
+
//# sourceMappingURL=sessions.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.controller.js","sourceRoot":"","sources":["../../../src/http/sessions/sessions.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.module.d.ts","sourceRoot":"","sources":["../../../src/http/sessions/sessions.module.ts"],"names":[],"mappings":"AAKA,qBAMa,cAAc;CAAG"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.SessionsModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const providers_module_1 = require("../providers/providers.module");
|
|
12
|
+
const sessions_controller_1 = require("./sessions.controller");
|
|
13
|
+
const sessions_service_1 = require("./sessions.service");
|
|
14
|
+
let SessionsModule = class SessionsModule {
|
|
15
|
+
};
|
|
16
|
+
exports.SessionsModule = SessionsModule;
|
|
17
|
+
exports.SessionsModule = SessionsModule = __decorate([
|
|
18
|
+
(0, common_1.Module)({
|
|
19
|
+
imports: [providers_module_1.ProvidersModule],
|
|
20
|
+
providers: [sessions_service_1.SessionsService],
|
|
21
|
+
controllers: [sessions_controller_1.SessionsController],
|
|
22
|
+
exports: [sessions_service_1.SessionsService],
|
|
23
|
+
})
|
|
24
|
+
], SessionsModule);
|
|
25
|
+
//# sourceMappingURL=sessions.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.module.js","sourceRoot":"","sources":["../../../src/http/sessions/sessions.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,oEAAgE;AAChE,+DAA2D;AAC3D,yDAAqD;AAQ9C,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,wCAAc;yBAAd,cAAc;IAN1B,IAAA,eAAM,EAAC;QACP,OAAO,EAAE,CAAC,kCAAe,CAAC;QAC1B,SAAS,EAAE,CAAC,kCAAe,CAAC;QAC5B,WAAW,EAAE,CAAC,wCAAkB,CAAC;QACjC,OAAO,EAAE,CAAC,kCAAe,CAAC;KAC1B,CAAC;GACW,cAAc,CAAG"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { InMemorySessionService } from "@iqai/adk";
|
|
2
|
+
import type { CreateSessionRequest, EventsResponse, LoadedAgent, SessionResponse, SessionsResponse, StateResponse } from "../../common/types";
|
|
3
|
+
import { AgentManager } from "../providers/agent-manager.service";
|
|
4
|
+
export declare class SessionsService {
|
|
5
|
+
private readonly agentManager;
|
|
6
|
+
private readonly sessionService;
|
|
7
|
+
private readonly quiet;
|
|
8
|
+
private logger;
|
|
9
|
+
constructor(agentManager: AgentManager, sessionService: InMemorySessionService, quiet: boolean);
|
|
10
|
+
ensureAgentLoaded(agentPath: string): Promise<LoadedAgent | null>;
|
|
11
|
+
listSessions(agentPath: string): Promise<SessionsResponse>;
|
|
12
|
+
createSession(agentPath: string, request: CreateSessionRequest): Promise<any>;
|
|
13
|
+
deleteSession(agentPath: string, sessionId: string): Promise<any>;
|
|
14
|
+
switchSession(agentPath: string, sessionId: string): Promise<any>;
|
|
15
|
+
getSessionMessages(loadedAgent: LoadedAgent): Promise<{
|
|
16
|
+
id: number;
|
|
17
|
+
type: "user" | "assistant";
|
|
18
|
+
content: string;
|
|
19
|
+
timestamp: string;
|
|
20
|
+
}[]>;
|
|
21
|
+
/**
|
|
22
|
+
* Get all sessions for a loaded agent
|
|
23
|
+
*/
|
|
24
|
+
getAgentSessions(loadedAgent: LoadedAgent): Promise<SessionsResponse>;
|
|
25
|
+
/**
|
|
26
|
+
* Create a new session for a loaded agent
|
|
27
|
+
*/
|
|
28
|
+
createAgentSession(loadedAgent: LoadedAgent, request?: CreateSessionRequest): Promise<SessionResponse>;
|
|
29
|
+
/**
|
|
30
|
+
* Delete a session for a loaded agent
|
|
31
|
+
*/
|
|
32
|
+
deleteAgentSession(loadedAgent: LoadedAgent, sessionId: string): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Get events for a specific session
|
|
35
|
+
*/
|
|
36
|
+
getSessionEvents(loadedAgent: LoadedAgent, sessionId: string): Promise<EventsResponse>;
|
|
37
|
+
/**
|
|
38
|
+
* Switch the loaded agent to use a different session
|
|
39
|
+
*/
|
|
40
|
+
switchAgentSession(loadedAgent: LoadedAgent, sessionId: string): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Get state for specific session
|
|
43
|
+
*/
|
|
44
|
+
getSessionState(loadedAgent: LoadedAgent, sessionId: string): Promise<StateResponse>;
|
|
45
|
+
/**
|
|
46
|
+
* Update session state
|
|
47
|
+
*/
|
|
48
|
+
updateSessionState(loadedAgent: LoadedAgent, sessionId: string, path: string, value: any): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Helper method to set nested values using dot notation
|
|
51
|
+
*/
|
|
52
|
+
private setNestedValue;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=sessions.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.service.d.ts","sourceRoot":"","sources":["../../../src/http/sessions/sessions.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAG1D,OAAO,KAAK,EACX,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,qBACa,eAAe;IAIJ,OAAO,CAAC,QAAQ,CAAC,YAAY;IAEnD,OAAO,CAAC,QAAQ,CAAC,cAAc;IACT,OAAO,CAAC,QAAQ,CAAC,KAAK;IAN7C,OAAO,CAAC,MAAM,CAAS;gBAGiB,YAAY,EAAE,YAAY,EAEhD,cAAc,EAAE,sBAAsB,EAChB,KAAK,EAAE,OAAO;IAMzC,iBAAiB,CAC7B,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAcxB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAQ1D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB;IAQ9D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IASlD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAWlD,kBAAkB,CAAC,WAAW,EAAE,WAAW;;;;;;IAwCjD;;OAEG;IACG,gBAAgB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoD3E;;OAEG;IACG,kBAAkB,CACvB,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,oBAAoB,GAC5B,OAAO,CAAC,eAAe,CAAC;IA2C3B;;OAEG;IACG,kBAAkB,CACvB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAahB;;OAEG;IACG,gBAAgB,CACrB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC;IAkD1B;;OAEG;IACG,kBAAkB,CACvB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAqBhB;;OAEG;IACG,eAAe,CACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,CAAC;IA4EzB;;OAEG;IACG,kBAAkB,CACvB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,GAAG,GACR,OAAO,CAAC,IAAI,CAAC;IAiChB;;OAEG;IACH,OAAO,CAAC,cAAc;CAmBtB"}
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.SessionsService = void 0;
|
|
16
|
+
const node_util_1 = require("node:util");
|
|
17
|
+
const adk_1 = require("@iqai/adk");
|
|
18
|
+
const common_1 = require("@nestjs/common");
|
|
19
|
+
const tokens_1 = require("../../common/tokens");
|
|
20
|
+
const agent_manager_service_1 = require("../providers/agent-manager.service");
|
|
21
|
+
let SessionsService = class SessionsService {
|
|
22
|
+
agentManager;
|
|
23
|
+
sessionService;
|
|
24
|
+
quiet;
|
|
25
|
+
logger;
|
|
26
|
+
constructor(agentManager, sessionService, quiet) {
|
|
27
|
+
this.agentManager = agentManager;
|
|
28
|
+
this.sessionService = sessionService;
|
|
29
|
+
this.quiet = quiet;
|
|
30
|
+
this.logger = new common_1.Logger("sessions-service");
|
|
31
|
+
}
|
|
32
|
+
// Centralized agent loader for reuse across modules
|
|
33
|
+
async ensureAgentLoaded(agentPath) {
|
|
34
|
+
if (!this.agentManager.getLoadedAgents().has(agentPath)) {
|
|
35
|
+
try {
|
|
36
|
+
await this.agentManager.startAgent(agentPath);
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const loaded = this.agentManager.getLoadedAgents().get(agentPath);
|
|
43
|
+
return loaded ?? null;
|
|
44
|
+
}
|
|
45
|
+
// ----- Public API used by controllers (compat with previous shape) -----
|
|
46
|
+
async listSessions(agentPath) {
|
|
47
|
+
const loaded = await this.ensureAgentLoaded(agentPath);
|
|
48
|
+
if (!loaded) {
|
|
49
|
+
return { sessions: [] };
|
|
50
|
+
}
|
|
51
|
+
return this.getAgentSessions(loaded);
|
|
52
|
+
}
|
|
53
|
+
async createSession(agentPath, request) {
|
|
54
|
+
const loaded = await this.ensureAgentLoaded(agentPath);
|
|
55
|
+
if (!loaded) {
|
|
56
|
+
return { error: "Failed to load agent" };
|
|
57
|
+
}
|
|
58
|
+
return this.createAgentSession(loaded, request);
|
|
59
|
+
}
|
|
60
|
+
async deleteSession(agentPath, sessionId) {
|
|
61
|
+
const loaded = await this.ensureAgentLoaded(agentPath);
|
|
62
|
+
if (!loaded) {
|
|
63
|
+
return { error: "Failed to load agent" };
|
|
64
|
+
}
|
|
65
|
+
await this.deleteAgentSession(loaded, sessionId);
|
|
66
|
+
return { success: true };
|
|
67
|
+
}
|
|
68
|
+
async switchSession(agentPath, sessionId) {
|
|
69
|
+
const loaded = await this.ensureAgentLoaded(agentPath);
|
|
70
|
+
if (!loaded) {
|
|
71
|
+
return { error: "Failed to load agent" };
|
|
72
|
+
}
|
|
73
|
+
await this.switchAgentSession(loaded, sessionId);
|
|
74
|
+
return { success: true };
|
|
75
|
+
}
|
|
76
|
+
// ----- Inlined former SessionManager functionality -----
|
|
77
|
+
async getSessionMessages(loadedAgent) {
|
|
78
|
+
try {
|
|
79
|
+
// Get session from session service
|
|
80
|
+
const session = await this.sessionService.getSession(loadedAgent.appName, loadedAgent.userId, loadedAgent.sessionId);
|
|
81
|
+
if (!session || !session.events) {
|
|
82
|
+
return [];
|
|
83
|
+
}
|
|
84
|
+
// Convert session events to message format
|
|
85
|
+
// See TODO notes in previous implementation regarding tool call representation.
|
|
86
|
+
const messages = session.events.map((event, index) => ({
|
|
87
|
+
id: index + 1,
|
|
88
|
+
type: event.author === "user" ? "user" : "assistant",
|
|
89
|
+
content: event.content?.parts
|
|
90
|
+
?.map((part) => typeof part === "object" && "text" in part
|
|
91
|
+
? part.text
|
|
92
|
+
: "")
|
|
93
|
+
.join("") || "",
|
|
94
|
+
timestamp: new Date(event.timestamp || Date.now()).toISOString(),
|
|
95
|
+
}));
|
|
96
|
+
return messages;
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
this.logger.error("Error fetching messages:", error instanceof Error ? error.message : String(error));
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get all sessions for a loaded agent
|
|
105
|
+
*/
|
|
106
|
+
async getAgentSessions(loadedAgent) {
|
|
107
|
+
try {
|
|
108
|
+
this.logger.log((0, node_util_1.format)("Listing sessions for: %s %s", loadedAgent.appName, loadedAgent.userId));
|
|
109
|
+
const listResponse = await this.sessionService.listSessions(loadedAgent.appName, loadedAgent.userId);
|
|
110
|
+
this.logger.log((0, node_util_1.format)("Raw sessions from service: %d", listResponse.sessions.length));
|
|
111
|
+
const sessions = [];
|
|
112
|
+
for (const s of listResponse.sessions) {
|
|
113
|
+
// Ensure we load the full session to get the latest event list
|
|
114
|
+
let fullSession;
|
|
115
|
+
try {
|
|
116
|
+
fullSession = await this.sessionService.getSession(loadedAgent.appName, loadedAgent.userId, s.id);
|
|
117
|
+
}
|
|
118
|
+
catch (e) {
|
|
119
|
+
fullSession = s;
|
|
120
|
+
}
|
|
121
|
+
sessions.push({
|
|
122
|
+
id: s.id,
|
|
123
|
+
appName: s.appName,
|
|
124
|
+
userId: s.userId,
|
|
125
|
+
state: s.state,
|
|
126
|
+
eventCount: Array.isArray(fullSession?.events)
|
|
127
|
+
? fullSession.events.length
|
|
128
|
+
: 0,
|
|
129
|
+
lastUpdateTime: s.lastUpdateTime,
|
|
130
|
+
createdAt: s.lastUpdateTime,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
this.logger.log((0, node_util_1.format)("Processed sessions: %d", sessions.length));
|
|
134
|
+
return { sessions };
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
this.logger.error("Error fetching sessions: %o", error);
|
|
138
|
+
return { sessions: [] };
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Create a new session for a loaded agent
|
|
143
|
+
*/
|
|
144
|
+
async createAgentSession(loadedAgent, request) {
|
|
145
|
+
try {
|
|
146
|
+
this.logger.log((0, node_util_1.format)("Creating agent session: %o", {
|
|
147
|
+
appName: loadedAgent.appName,
|
|
148
|
+
userId: loadedAgent.userId,
|
|
149
|
+
hasState: !!request?.state,
|
|
150
|
+
stateKeys: request?.state ? Object.keys(request.state) : [],
|
|
151
|
+
sessionId: request?.sessionId,
|
|
152
|
+
}));
|
|
153
|
+
const newSession = await this.sessionService.createSession(loadedAgent.appName, loadedAgent.userId, request?.state, request?.sessionId);
|
|
154
|
+
this.logger.log((0, node_util_1.format)("Session created with state: %o", {
|
|
155
|
+
sessionId: newSession.id,
|
|
156
|
+
hasState: !!newSession.state,
|
|
157
|
+
stateKeys: newSession.state ? Object.keys(newSession.state) : [],
|
|
158
|
+
stateContent: newSession.state,
|
|
159
|
+
}));
|
|
160
|
+
return {
|
|
161
|
+
id: newSession.id,
|
|
162
|
+
appName: newSession.appName,
|
|
163
|
+
userId: newSession.userId,
|
|
164
|
+
state: newSession.state,
|
|
165
|
+
eventCount: newSession.events.length,
|
|
166
|
+
lastUpdateTime: newSession.lastUpdateTime,
|
|
167
|
+
createdAt: newSession.lastUpdateTime,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
this.logger.error("Error creating session: %o", error);
|
|
172
|
+
throw error;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Delete a session for a loaded agent
|
|
177
|
+
*/
|
|
178
|
+
async deleteAgentSession(loadedAgent, sessionId) {
|
|
179
|
+
try {
|
|
180
|
+
await this.sessionService.deleteSession(loadedAgent.appName, loadedAgent.userId, sessionId);
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
this.logger.error("Error deleting session: %o", error);
|
|
184
|
+
throw error;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Get events for a specific session
|
|
189
|
+
*/
|
|
190
|
+
async getSessionEvents(loadedAgent, sessionId) {
|
|
191
|
+
try {
|
|
192
|
+
const session = await this.sessionService.getSession(loadedAgent.appName, loadedAgent.userId, sessionId);
|
|
193
|
+
if (!session || !session.events) {
|
|
194
|
+
return { events: [], totalCount: 0 };
|
|
195
|
+
}
|
|
196
|
+
const events = session.events.map((event) => {
|
|
197
|
+
// Handle both Event class instances and plain objects
|
|
198
|
+
const isEventInstance = typeof event.getFunctionCalls === "function";
|
|
199
|
+
return {
|
|
200
|
+
id: event.id,
|
|
201
|
+
author: event.author,
|
|
202
|
+
timestamp: event.timestamp,
|
|
203
|
+
content: event.content,
|
|
204
|
+
actions: event.actions,
|
|
205
|
+
functionCalls: isEventInstance
|
|
206
|
+
? event.getFunctionCalls()
|
|
207
|
+
: event.content?.parts?.filter((part) => part.functionCall) ||
|
|
208
|
+
[],
|
|
209
|
+
functionResponses: isEventInstance
|
|
210
|
+
? event.getFunctionResponses()
|
|
211
|
+
: event.content?.parts?.filter((part) => part.functionResponse) || [],
|
|
212
|
+
branch: event.branch,
|
|
213
|
+
isFinalResponse: isEventInstance
|
|
214
|
+
? event.isFinalResponse()
|
|
215
|
+
: !event.content?.parts?.some((part) => part.functionCall) &&
|
|
216
|
+
!event.partial,
|
|
217
|
+
};
|
|
218
|
+
});
|
|
219
|
+
return {
|
|
220
|
+
events,
|
|
221
|
+
totalCount: events.length,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
catch (error) {
|
|
225
|
+
this.logger.error("Error fetching session events: %o", error);
|
|
226
|
+
return { events: [], totalCount: 0 };
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Switch the loaded agent to use a different session
|
|
231
|
+
*/
|
|
232
|
+
async switchAgentSession(loadedAgent, sessionId) {
|
|
233
|
+
try {
|
|
234
|
+
// Verify the session exists
|
|
235
|
+
const session = await this.sessionService.getSession(loadedAgent.appName, loadedAgent.userId, sessionId);
|
|
236
|
+
if (!session) {
|
|
237
|
+
throw new Error(`Session ${sessionId} not found`);
|
|
238
|
+
}
|
|
239
|
+
// Update the loaded agent's session ID
|
|
240
|
+
loadedAgent.sessionId = sessionId;
|
|
241
|
+
}
|
|
242
|
+
catch (error) {
|
|
243
|
+
this.logger.error("Error switching session: %o", error);
|
|
244
|
+
throw error;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Get state for specific session
|
|
249
|
+
*/
|
|
250
|
+
async getSessionState(loadedAgent, sessionId) {
|
|
251
|
+
try {
|
|
252
|
+
this.logger.log((0, node_util_1.format)("Getting session state: %s", sessionId));
|
|
253
|
+
const session = await this.sessionService.getSession(loadedAgent.appName, loadedAgent.userId, sessionId);
|
|
254
|
+
if (!session) {
|
|
255
|
+
throw new Error("Session not found");
|
|
256
|
+
}
|
|
257
|
+
const agentState = {};
|
|
258
|
+
const userState = {};
|
|
259
|
+
const sessionState = session.state || {};
|
|
260
|
+
this.logger.log((0, node_util_1.format)("Session state retrieved: %o", {
|
|
261
|
+
sessionId,
|
|
262
|
+
hasSessionState: !!session.state,
|
|
263
|
+
sessionStateKeys: Object.keys(sessionState),
|
|
264
|
+
sessionStateContent: sessionState,
|
|
265
|
+
sessionLastUpdateTime: session.lastUpdateTime,
|
|
266
|
+
}));
|
|
267
|
+
const allKeys = { ...agentState, ...userState, ...sessionState };
|
|
268
|
+
const totalKeys = Object.keys(allKeys).length;
|
|
269
|
+
const sizeBytes = JSON.stringify(allKeys).length;
|
|
270
|
+
const response = {
|
|
271
|
+
agentState,
|
|
272
|
+
userState,
|
|
273
|
+
sessionState,
|
|
274
|
+
metadata: {
|
|
275
|
+
lastUpdated: session.lastUpdateTime,
|
|
276
|
+
changeCount: 0,
|
|
277
|
+
totalKeys,
|
|
278
|
+
sizeBytes,
|
|
279
|
+
},
|
|
280
|
+
};
|
|
281
|
+
this.logger.log((0, node_util_1.format)("Returning state response: %o", {
|
|
282
|
+
hasAgentState: !!response.agentState &&
|
|
283
|
+
Object.keys(response.agentState).length > 0,
|
|
284
|
+
hasUserState: !!response.userState && Object.keys(response.userState).length > 0,
|
|
285
|
+
hasSessionState: !!response.sessionState &&
|
|
286
|
+
Object.keys(response.sessionState).length > 0,
|
|
287
|
+
sessionStateKeys: Object.keys(response.sessionState),
|
|
288
|
+
totalKeys: response.metadata.totalKeys,
|
|
289
|
+
}));
|
|
290
|
+
return response;
|
|
291
|
+
}
|
|
292
|
+
catch (error) {
|
|
293
|
+
this.logger.error("Error getting session state: %o", error);
|
|
294
|
+
return {
|
|
295
|
+
agentState: {},
|
|
296
|
+
userState: {},
|
|
297
|
+
sessionState: {},
|
|
298
|
+
metadata: {
|
|
299
|
+
lastUpdated: Date.now() / 1000,
|
|
300
|
+
changeCount: 0,
|
|
301
|
+
totalKeys: 0,
|
|
302
|
+
sizeBytes: 0,
|
|
303
|
+
},
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Update session state
|
|
309
|
+
*/
|
|
310
|
+
async updateSessionState(loadedAgent, sessionId, path, value) {
|
|
311
|
+
try {
|
|
312
|
+
this.logger.log((0, node_util_1.format)("Updating session state: %s %s = %o", sessionId, path, value));
|
|
313
|
+
const session = await this.sessionService.getSession(loadedAgent.appName, loadedAgent.userId, sessionId);
|
|
314
|
+
if (!session) {
|
|
315
|
+
throw new Error("Session not found");
|
|
316
|
+
}
|
|
317
|
+
const updatedState = { ...session.state };
|
|
318
|
+
this.setNestedValue(updatedState, path, value);
|
|
319
|
+
await this.sessionService.createSession(loadedAgent.appName, loadedAgent.userId, updatedState, sessionId);
|
|
320
|
+
this.logger.log("Session state updated successfully");
|
|
321
|
+
}
|
|
322
|
+
catch (error) {
|
|
323
|
+
this.logger.error("Error updating session state: %o", error);
|
|
324
|
+
throw error;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Helper method to set nested values using dot notation
|
|
329
|
+
*/
|
|
330
|
+
setNestedValue(obj, path, value) {
|
|
331
|
+
const keys = path.split(".");
|
|
332
|
+
const lastKey = keys.pop();
|
|
333
|
+
const target = keys.reduce((current, key) => {
|
|
334
|
+
if (!(key in current) ||
|
|
335
|
+
typeof current[key] !== "object" ||
|
|
336
|
+
current[key] === null) {
|
|
337
|
+
current[key] = {};
|
|
338
|
+
}
|
|
339
|
+
return current[key];
|
|
340
|
+
}, obj);
|
|
341
|
+
target[lastKey] = value;
|
|
342
|
+
}
|
|
343
|
+
};
|
|
344
|
+
exports.SessionsService = SessionsService;
|
|
345
|
+
exports.SessionsService = SessionsService = __decorate([
|
|
346
|
+
(0, common_1.Injectable)(),
|
|
347
|
+
__param(0, (0, common_1.Inject)(agent_manager_service_1.AgentManager)),
|
|
348
|
+
__param(1, (0, common_1.Inject)(adk_1.InMemorySessionService)),
|
|
349
|
+
__param(2, (0, common_1.Inject)(tokens_1.TOKENS.QUIET)),
|
|
350
|
+
__metadata("design:paramtypes", [agent_manager_service_1.AgentManager,
|
|
351
|
+
adk_1.InMemorySessionService, Boolean])
|
|
352
|
+
], SessionsService);
|
|
353
|
+
//# sourceMappingURL=sessions.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.service.js","sourceRoot":"","sources":["../../../src/http/sessions/sessions.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAAmC;AACnC,mCAA0D;AAC1D,2CAA4D;AAC5D,gDAA6C;AAS7C,8EAAkE;AAG3D,IAAM,eAAe,GAArB,MAAM,eAAe;IAIa;IAEtB;IACsB;IANhC,MAAM,CAAS;IAEvB,YACwC,YAA0B,EAEhD,cAAsC,EAChB,KAAc;QAHd,iBAAY,GAAZ,YAAY,CAAc;QAEhD,mBAAc,GAAd,cAAc,CAAwB;QAChB,UAAK,GAAL,KAAK,CAAS;QAErD,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,kBAAkB,CAAC,CAAC;IAC9C,CAAC;IAED,oDAAoD;IAC7C,KAAK,CAAC,iBAAiB,CAC7B,SAAiB;QAEjB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC;gBACJ,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC/C,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAClE,OAAO,MAAM,IAAI,IAAI,CAAC;IACvB,CAAC;IAED,0EAA0E;IAE1E,KAAK,CAAC,YAAY,CAAC,SAAiB;QACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,OAA6B;QACnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,EAAE,KAAK,EAAE,sBAAsB,EAAS,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,SAAiB;QACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,EAAE,KAAK,EAAE,sBAAsB,EAAS,CAAC;QACjD,CAAC;QACD,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACjD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,SAAiB;QACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,EAAE,KAAK,EAAE,sBAAsB,EAAS,CAAC;QACjD,CAAC;QACD,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACjD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,0DAA0D;IAE1D,KAAK,CAAC,kBAAkB,CAAC,WAAwB;QAChD,IAAI,CAAC;YACJ,mCAAmC;YACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CACnD,WAAW,CAAC,OAAO,EACnB,WAAW,CAAC,MAAM,EAClB,WAAW,CAAC,SAAS,CACrB,CAAC;YAEF,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjC,OAAO,EAAE,CAAC;YACX,CAAC;YAED,2CAA2C;YAC3C,gFAAgF;YAChF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAY,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC;gBACrE,EAAE,EAAE,KAAK,GAAG,CAAC;gBACb,IAAI,EACH,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAE,MAAgB,CAAC,CAAC,CAAE,WAAqB;gBACrE,OAAO,EACN,KAAK,CAAC,OAAO,EAAE,KAAK;oBACnB,EAAE,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CACnB,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAI,IAAI;oBACzC,CAAC,CAAE,IAAY,CAAC,IAAI;oBACpB,CAAC,CAAC,EAAE,CACL;qBACA,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;gBACjB,SAAS,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE;aAChE,CAAC,CAAC,CAAC;YAEJ,OAAO,QAAQ,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAChB,0BAA0B,EAC1B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACtD,CAAC;YACF,OAAO,EAAE,CAAC;QACX,CAAC;IACF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,WAAwB;QAC9C,IAAI,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,GAAG,CACd,IAAA,kBAAM,EACL,6BAA6B,EAC7B,WAAW,CAAC,OAAO,EACnB,WAAW,CAAC,MAAM,CAClB,CACD,CAAC;YACF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAC1D,WAAW,CAAC,OAAO,EACnB,WAAW,CAAC,MAAM,CAClB,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,GAAG,CACd,IAAA,kBAAM,EAAC,+BAA+B,EAAE,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CACrE,CAAC;YAEF,MAAM,QAAQ,GAAsB,EAAE,CAAC;YACvC,KAAK,MAAM,CAAC,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;gBACvC,+DAA+D;gBAC/D,IAAI,WAAgB,CAAC;gBACrB,IAAI,CAAC;oBACJ,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CACjD,WAAW,CAAC,OAAO,EACnB,WAAW,CAAC,MAAM,EAClB,CAAC,CAAC,EAAE,CACJ,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACZ,WAAW,GAAG,CAAC,CAAC;gBACjB,CAAC;gBAED,QAAQ,CAAC,IAAI,CAAC;oBACb,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC;wBAC7C,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM;wBAC3B,CAAC,CAAC,CAAC;oBACJ,cAAc,EAAE,CAAC,CAAC,cAAc;oBAChC,SAAS,EAAE,CAAC,CAAC,cAAc;iBAC3B,CAAC,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAA,kBAAM,EAAC,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YACnE,OAAO,EAAE,QAAQ,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACxD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACzB,CAAC;IACF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CACvB,WAAwB,EACxB,OAA8B;QAE9B,IAAI,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,GAAG,CACd,IAAA,kBAAM,EAAC,4BAA4B,EAAE;gBACpC,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK;gBAC1B,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC3D,SAAS,EAAE,OAAO,EAAE,SAAS;aAC7B,CAAC,CACF,CAAC;YAEF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACzD,WAAW,CAAC,OAAO,EACnB,WAAW,CAAC,MAAM,EAClB,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,SAAS,CAClB,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CACd,IAAA,kBAAM,EAAC,gCAAgC,EAAE;gBACxC,SAAS,EAAE,UAAU,CAAC,EAAE;gBACxB,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK;gBAC5B,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;gBAChE,YAAY,EAAE,UAAU,CAAC,KAAK;aAC9B,CAAC,CACF,CAAC;YAEF,OAAO;gBACN,EAAE,EAAE,UAAU,CAAC,EAAE;gBACjB,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM;gBACpC,cAAc,EAAE,UAAU,CAAC,cAAc;gBACzC,SAAS,EAAE,UAAU,CAAC,cAAc;aACpC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YACvD,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CACvB,WAAwB,EACxB,SAAiB;QAEjB,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACtC,WAAW,CAAC,OAAO,EACnB,WAAW,CAAC,MAAM,EAClB,SAAS,CACT,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YACvD,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CACrB,WAAwB,EACxB,SAAiB;QAEjB,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CACnD,WAAW,CAAC,OAAO,EACnB,WAAW,CAAC,MAAM,EAClB,SAAS,CACT,CAAC;YAEF,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;YACtC,CAAC;YAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE;gBAChD,sDAAsD;gBACtD,MAAM,eAAe,GACpB,OAAQ,KAAa,CAAC,gBAAgB,KAAK,UAAU,CAAC;gBAEvD,OAAO;oBACN,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,aAAa,EAAE,eAAe;wBAC7B,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE;wBAC1B,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;4BAC/D,EAAE;oBACJ,iBAAiB,EAAE,eAAe;wBACjC,CAAC,CAAC,KAAK,CAAC,oBAAoB,EAAE;wBAC9B,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAC5B,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CACpC,IAAI,EAAE;oBACT,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,eAAe,EAAE,eAAe;wBAC/B,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE;wBACzB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;4BAC9D,CAAC,KAAK,CAAC,OAAO;iBAChB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,OAAO;gBACN,MAAM;gBACN,UAAU,EAAE,MAAM,CAAC,MAAM;aACzB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;YAC9D,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;QACtC,CAAC;IACF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CACvB,WAAwB,EACxB,SAAiB;QAEjB,IAAI,CAAC;YACJ,4BAA4B;YAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CACnD,WAAW,CAAC,OAAO,EACnB,WAAW,CAAC,MAAM,EAClB,SAAS,CACT,CAAC;YAEF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,WAAW,SAAS,YAAY,CAAC,CAAC;YACnD,CAAC;YAED,uCAAuC;YACtC,WAAmB,CAAC,SAAS,GAAG,SAAS,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACxD,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACpB,WAAwB,EACxB,SAAiB;QAEjB,IAAI,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAA,kBAAM,EAAC,2BAA2B,EAAE,SAAS,CAAC,CAAC,CAAC;YAEhE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CACnD,WAAW,CAAC,OAAO,EACnB,WAAW,CAAC,MAAM,EAClB,SAAS,CACT,CAAC;YAEF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACtC,CAAC;YAED,MAAM,UAAU,GAAwB,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAwB,EAAE,CAAC;YAC1C,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;YAEzC,IAAI,CAAC,MAAM,CAAC,GAAG,CACd,IAAA,kBAAM,EAAC,6BAA6B,EAAE;gBACrC,SAAS;gBACT,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK;gBAChC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;gBAC3C,mBAAmB,EAAE,YAAY;gBACjC,qBAAqB,EAAE,OAAO,CAAC,cAAc;aAC7C,CAAC,CACF,CAAC;YAEF,MAAM,OAAO,GAAG,EAAE,GAAG,UAAU,EAAE,GAAG,SAAS,EAAE,GAAG,YAAY,EAAE,CAAC;YACjE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YAEjD,MAAM,QAAQ,GAAG;gBAChB,UAAU;gBACV,SAAS;gBACT,YAAY;gBACZ,QAAQ,EAAE;oBACT,WAAW,EAAE,OAAO,CAAC,cAAc;oBACnC,WAAW,EAAE,CAAC;oBACd,SAAS;oBACT,SAAS;iBACT;aACD,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CACd,IAAA,kBAAM,EAAC,8BAA8B,EAAE;gBACtC,aAAa,EACZ,CAAC,CAAC,QAAQ,CAAC,UAAU;oBACrB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC;gBAC5C,YAAY,EACX,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC;gBACnE,eAAe,EACd,CAAC,CAAC,QAAQ,CAAC,YAAY;oBACvB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC;gBAC9C,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;gBACpD,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS;aACtC,CAAC,CACF,CAAC;YAEF,OAAO,QAAQ,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YAC5D,OAAO;gBACN,UAAU,EAAE,EAAE;gBACd,SAAS,EAAE,EAAE;gBACb,YAAY,EAAE,EAAE;gBAChB,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;oBAC9B,WAAW,EAAE,CAAC;oBACd,SAAS,EAAE,CAAC;oBACZ,SAAS,EAAE,CAAC;iBACZ;aACD,CAAC;QACH,CAAC;IACF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CACvB,WAAwB,EACxB,SAAiB,EACjB,IAAY,EACZ,KAAU;QAEV,IAAI,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,GAAG,CACd,IAAA,kBAAM,EAAC,oCAAoC,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CACpE,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CACnD,WAAW,CAAC,OAAO,EACnB,WAAW,CAAC,MAAM,EAClB,SAAS,CACT,CAAC;YAEF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACtC,CAAC;YAED,MAAM,YAAY,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;YAC1C,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAE/C,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACtC,WAAW,CAAC,OAAO,EACnB,WAAW,CAAC,MAAM,EAClB,YAAY,EACZ,SAAS,CACT,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;YAC7D,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;IAED;;OAEG;IACK,cAAc,CACrB,GAAwB,EACxB,IAAY,EACZ,KAAc;QAEd,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAG,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;YAC3C,IACC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC;gBACjB,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ;gBAChC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EACpB,CAAC;gBACD,OAAe,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAC5B,CAAC;YACD,OAAQ,OAAe,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC,EAAE,GAAU,CAAC,CAAC;QACd,MAAc,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;IAClC,CAAC;CACD,CAAA;AAxcY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;IAKV,WAAA,IAAA,eAAM,EAAC,oCAAY,CAAC,CAAA;IACpB,WAAA,IAAA,eAAM,EAAC,4BAAsB,CAAC,CAAA;IAE9B,WAAA,IAAA,eAAM,EAAC,eAAM,CAAC,KAAK,CAAC,CAAA;qCAHgC,oCAAY;QAEhC,4BAAsB;GAN5C,eAAe,CAwc3B"}
|