@iqai/adk-cli 0.2.9 → 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.
Files changed (156) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/app.module.d.ts +3 -0
  3. package/dist/app.module.d.ts.map +1 -0
  4. package/dist/app.module.js +24 -0
  5. package/dist/app.module.js.map +1 -0
  6. package/dist/cli/cli.module.d.ts +3 -0
  7. package/dist/cli/cli.module.d.ts.map +1 -0
  8. package/dist/cli/cli.module.js +25 -0
  9. package/dist/cli/cli.module.js.map +1 -0
  10. package/dist/cli/new.command.d.ts +10 -0
  11. package/dist/cli/new.command.d.ts.map +1 -0
  12. package/dist/cli/new.command.js +273 -0
  13. package/dist/cli/new.command.js.map +1 -0
  14. package/dist/cli/run.command.d.ts +20 -0
  15. package/dist/cli/run.command.d.ts.map +1 -0
  16. package/dist/cli/run.command.js +342 -0
  17. package/dist/cli/run.command.js.map +1 -0
  18. package/dist/cli/serve.command.d.ts +20 -0
  19. package/dist/cli/serve.command.d.ts.map +1 -0
  20. package/dist/cli/serve.command.js +137 -0
  21. package/dist/cli/serve.command.js.map +1 -0
  22. package/dist/cli/web.command.d.ts +20 -0
  23. package/dist/cli/web.command.d.ts.map +1 -0
  24. package/dist/cli/web.command.js +146 -0
  25. package/dist/cli/web.command.js.map +1 -0
  26. package/dist/common/tokens.d.ts +5 -0
  27. package/dist/common/tokens.d.ts.map +1 -0
  28. package/dist/common/tokens.js +8 -0
  29. package/dist/common/tokens.js.map +1 -0
  30. package/dist/common/types.d.ts +91 -0
  31. package/dist/common/types.d.ts.map +1 -0
  32. package/dist/common/types.js +3 -0
  33. package/dist/common/types.js.map +1 -0
  34. package/dist/http/bootstrap.d.ts +17 -0
  35. package/dist/http/bootstrap.d.ts.map +1 -0
  36. package/dist/http/bootstrap.js +221 -0
  37. package/dist/http/bootstrap.js.map +1 -0
  38. package/dist/http/config/config.module.d.ts +6 -0
  39. package/dist/http/config/config.module.d.ts.map +1 -0
  40. package/dist/http/config/config.module.js +32 -0
  41. package/dist/http/config/config.module.js.map +1 -0
  42. package/dist/http/discovery/agents.controller.d.ts +13 -0
  43. package/dist/http/discovery/agents.controller.d.ts.map +1 -0
  44. package/dist/http/discovery/agents.controller.js +73 -0
  45. package/dist/http/discovery/agents.controller.js.map +1 -0
  46. package/dist/http/discovery/discovery.module.d.ts +3 -0
  47. package/dist/http/discovery/discovery.module.d.ts.map +1 -0
  48. package/dist/http/discovery/discovery.module.js +22 -0
  49. package/dist/http/discovery/discovery.module.js.map +1 -0
  50. package/dist/http/dto/api.dto.d.ts +70 -0
  51. package/dist/http/dto/api.dto.d.ts.map +1 -0
  52. package/dist/http/dto/api.dto.js +268 -0
  53. package/dist/http/dto/api.dto.js.map +1 -0
  54. package/dist/http/events/events.controller.d.ts +8 -0
  55. package/dist/http/events/events.controller.d.ts.map +1 -0
  56. package/dist/http/events/events.controller.js +55 -0
  57. package/dist/http/events/events.controller.js.map +1 -0
  58. package/dist/http/events/events.module.d.ts +3 -0
  59. package/dist/http/events/events.module.d.ts.map +1 -0
  60. package/dist/http/events/events.module.js +25 -0
  61. package/dist/http/events/events.module.js.map +1 -0
  62. package/dist/http/events/events.service.d.ts +8 -0
  63. package/dist/http/events/events.service.d.ts.map +1 -0
  64. package/dist/http/events/events.service.js +37 -0
  65. package/dist/http/events/events.service.js.map +1 -0
  66. package/dist/http/health/health.controller.d.ts +6 -0
  67. package/dist/http/health/health.controller.d.ts.map +1 -0
  68. package/dist/http/health/health.controller.js +37 -0
  69. package/dist/http/health/health.controller.js.map +1 -0
  70. package/dist/http/health/health.module.d.ts +3 -0
  71. package/dist/http/health/health.module.d.ts.map +1 -0
  72. package/dist/http/health/health.module.js +20 -0
  73. package/dist/http/health/health.module.js.map +1 -0
  74. package/dist/http/http.module.d.ts +6 -0
  75. package/dist/http/http.module.d.ts.map +1 -0
  76. package/dist/http/http.module.js +43 -0
  77. package/dist/http/http.module.js.map +1 -0
  78. package/dist/http/messaging/messaging.controller.d.ts +9 -0
  79. package/dist/http/messaging/messaging.controller.d.ts.map +1 -0
  80. package/dist/http/messaging/messaging.controller.js +83 -0
  81. package/dist/http/messaging/messaging.controller.js.map +1 -0
  82. package/dist/http/messaging/messaging.module.d.ts +3 -0
  83. package/dist/http/messaging/messaging.module.d.ts.map +1 -0
  84. package/dist/http/messaging/messaging.module.js +25 -0
  85. package/dist/http/messaging/messaging.module.js.map +1 -0
  86. package/dist/http/messaging/messaging.service.d.ts +11 -0
  87. package/dist/http/messaging/messaging.service.d.ts.map +1 -0
  88. package/dist/http/messaging/messaging.service.js +48 -0
  89. package/dist/http/messaging/messaging.service.js.map +1 -0
  90. package/dist/http/providers/agent-loader.service.d.ts +49 -0
  91. package/dist/http/providers/agent-loader.service.d.ts.map +1 -0
  92. package/dist/http/providers/agent-loader.service.js +416 -0
  93. package/dist/http/providers/agent-loader.service.js.map +1 -0
  94. package/dist/http/providers/agent-manager.service.d.ts +24 -0
  95. package/dist/http/providers/agent-manager.service.d.ts.map +1 -0
  96. package/dist/http/providers/agent-manager.service.js +222 -0
  97. package/dist/http/providers/agent-manager.service.js.map +1 -0
  98. package/dist/http/providers/agent-scanner.service.d.ts +9 -0
  99. package/dist/http/providers/agent-scanner.service.d.ts.map +1 -0
  100. package/dist/http/providers/agent-scanner.service.js +108 -0
  101. package/dist/http/providers/agent-scanner.service.js.map +1 -0
  102. package/dist/http/providers/providers.module.d.ts +3 -0
  103. package/dist/http/providers/providers.module.d.ts.map +1 -0
  104. package/dist/http/providers/providers.module.js +47 -0
  105. package/dist/http/providers/providers.module.js.map +1 -0
  106. package/dist/http/reload/hot-reload.service.d.ts +16 -0
  107. package/dist/http/reload/hot-reload.service.d.ts.map +1 -0
  108. package/dist/http/reload/hot-reload.service.js +79 -0
  109. package/dist/http/reload/hot-reload.service.js.map +1 -0
  110. package/dist/http/reload/reload.controller.d.ts +14 -0
  111. package/dist/http/reload/reload.controller.d.ts.map +1 -0
  112. package/dist/http/reload/reload.controller.js +50 -0
  113. package/dist/http/reload/reload.controller.js.map +1 -0
  114. package/dist/http/reload/reload.module.d.ts +3 -0
  115. package/dist/http/reload/reload.module.d.ts.map +1 -0
  116. package/dist/http/reload/reload.module.js +23 -0
  117. package/dist/http/reload/reload.module.js.map +1 -0
  118. package/dist/http/runtime-config.d.ts +22 -0
  119. package/dist/http/runtime-config.d.ts.map +1 -0
  120. package/dist/http/runtime-config.js +5 -0
  121. package/dist/http/runtime-config.js.map +1 -0
  122. package/dist/http/sessions/sessions.controller.d.ts +11 -0
  123. package/dist/http/sessions/sessions.controller.d.ts.map +1 -0
  124. package/dist/http/sessions/sessions.controller.js +116 -0
  125. package/dist/http/sessions/sessions.controller.js.map +1 -0
  126. package/dist/http/sessions/sessions.module.d.ts +3 -0
  127. package/dist/http/sessions/sessions.module.d.ts.map +1 -0
  128. package/dist/http/sessions/sessions.module.js +25 -0
  129. package/dist/http/sessions/sessions.module.js.map +1 -0
  130. package/dist/http/sessions/sessions.service.d.ts +54 -0
  131. package/dist/http/sessions/sessions.service.d.ts.map +1 -0
  132. package/dist/http/sessions/sessions.service.js +353 -0
  133. package/dist/http/sessions/sessions.service.js.map +1 -0
  134. package/dist/http/state/state.controller.d.ts +9 -0
  135. package/dist/http/state/state.controller.d.ts.map +1 -0
  136. package/dist/http/state/state.controller.js +76 -0
  137. package/dist/http/state/state.controller.js.map +1 -0
  138. package/dist/http/state/state.module.d.ts +3 -0
  139. package/dist/http/state/state.module.d.ts.map +1 -0
  140. package/dist/http/state/state.module.js +25 -0
  141. package/dist/http/state/state.module.js.map +1 -0
  142. package/dist/http/state/state.service.d.ts +9 -0
  143. package/dist/http/state/state.service.d.ts.map +1 -0
  144. package/dist/http/state/state.service.js +55 -0
  145. package/dist/http/state/state.service.js.map +1 -0
  146. package/dist/main.d.ts +3 -0
  147. package/dist/main.d.ts.map +1 -0
  148. package/dist/main.js +25 -0
  149. package/dist/main.js.map +1 -0
  150. package/package.json +18 -12
  151. package/dist/index.d.mts +0 -2
  152. package/dist/index.d.ts +0 -2
  153. package/dist/index.js +0 -1239
  154. package/dist/index.js.map +0 -1
  155. package/dist/index.mjs +0 -1223
  156. 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,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RUNTIME_CONFIG = void 0;
4
+ exports.RUNTIME_CONFIG = "RUNTIME_CONFIG";
5
+ //# sourceMappingURL=runtime-config.js.map
@@ -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,3 @@
1
+ export declare class SessionsModule {
2
+ }
3
+ //# sourceMappingURL=sessions.module.d.ts.map
@@ -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":"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"}