@ainetwork/adk 0.2.4 → 0.2.6

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 (76) hide show
  1. package/dist/cjs/chunk-2L5KFFHV.cjs +37 -0
  2. package/dist/cjs/chunk-2L5KFFHV.cjs.map +1 -0
  3. package/dist/cjs/chunk-3M5DZAJA.cjs +257 -0
  4. package/dist/cjs/chunk-3M5DZAJA.cjs.map +1 -0
  5. package/dist/cjs/chunk-5JGNWLHJ.cjs +37 -0
  6. package/dist/cjs/chunk-5JGNWLHJ.cjs.map +1 -0
  7. package/dist/cjs/chunk-6CDGUUXE.cjs +338 -0
  8. package/dist/cjs/chunk-6CDGUUXE.cjs.map +1 -0
  9. package/dist/cjs/chunk-6KB562A7.cjs +43 -0
  10. package/dist/cjs/chunk-6KB562A7.cjs.map +1 -0
  11. package/dist/cjs/chunk-6KXMM7GP.cjs +257 -0
  12. package/dist/cjs/chunk-6KXMM7GP.cjs.map +1 -0
  13. package/dist/cjs/chunk-7UGA4QRJ.cjs +249 -0
  14. package/dist/cjs/chunk-7UGA4QRJ.cjs.map +1 -0
  15. package/dist/cjs/chunk-BDQDZXZI.cjs +137 -0
  16. package/dist/cjs/chunk-BDQDZXZI.cjs.map +1 -0
  17. package/dist/cjs/chunk-DEKRDA6Q.cjs +337 -0
  18. package/dist/cjs/chunk-DEKRDA6Q.cjs.map +1 -0
  19. package/dist/cjs/chunk-EHULB7WG.cjs +249 -0
  20. package/dist/cjs/chunk-EHULB7WG.cjs.map +1 -0
  21. package/dist/cjs/chunk-HQ4X5TPN.cjs +337 -0
  22. package/dist/cjs/chunk-HQ4X5TPN.cjs.map +1 -0
  23. package/dist/cjs/chunk-KFIYXWPY.cjs +37 -0
  24. package/dist/cjs/chunk-KFIYXWPY.cjs.map +1 -0
  25. package/dist/cjs/chunk-OOSQKNH2.cjs +43 -0
  26. package/dist/cjs/chunk-OOSQKNH2.cjs.map +1 -0
  27. package/dist/cjs/chunk-QTUDQSRL.cjs +37 -0
  28. package/dist/cjs/chunk-QTUDQSRL.cjs.map +1 -0
  29. package/dist/cjs/chunk-T7XSNWFJ.cjs +43 -0
  30. package/dist/cjs/chunk-T7XSNWFJ.cjs.map +1 -0
  31. package/dist/cjs/chunk-VFM2JQLG.cjs +43 -0
  32. package/dist/cjs/chunk-VFM2JQLG.cjs.map +1 -0
  33. package/dist/cjs/chunk-XEE7ORJX.cjs +43 -0
  34. package/dist/cjs/chunk-XEE7ORJX.cjs.map +1 -0
  35. package/dist/cjs/chunk-YTAWBEPQ.cjs +337 -0
  36. package/dist/cjs/chunk-YTAWBEPQ.cjs.map +1 -0
  37. package/dist/cjs/controllers/index.cjs +5 -5
  38. package/dist/cjs/controllers/index.cjs.map +1 -1
  39. package/dist/cjs/index.cjs +17 -17
  40. package/dist/cjs/index.cjs.map +1 -1
  41. package/dist/cjs/modules/index.cjs +8 -8
  42. package/dist/cjs/modules/index.cjs.map +1 -1
  43. package/dist/cjs/routes/a2a.routes.cjs +6 -6
  44. package/dist/cjs/routes/index.cjs +15 -15
  45. package/dist/cjs/routes/index.cjs.map +1 -1
  46. package/dist/cjs/routes/query.routes.cjs +5 -5
  47. package/dist/cjs/services/a2a.service.cjs +2 -2
  48. package/dist/cjs/services/index.cjs +5 -5
  49. package/dist/cjs/services/query-stream.service.cjs +3 -3
  50. package/dist/cjs/services/query.service.cjs +3 -2
  51. package/dist/cjs/services/query.service.cjs.map +1 -1
  52. package/dist/esm/{chunk-KDVMHOLB.js → chunk-2EVONQZ4.js} +16 -8
  53. package/dist/esm/chunk-2EVONQZ4.js.map +1 -0
  54. package/dist/esm/{chunk-PUUZRUE6.js → chunk-DM6UZSRU.js} +3 -2
  55. package/dist/esm/chunk-DM6UZSRU.js.map +1 -0
  56. package/dist/esm/{chunk-IR72X2HF.js → chunk-JUJSFXBX.js} +10 -9
  57. package/dist/esm/chunk-JUJSFXBX.js.map +1 -0
  58. package/dist/esm/{chunk-S7Z2QSFJ.js → chunk-R44LLFOD.js} +3 -3
  59. package/dist/esm/{chunk-WYORY4PO.js → chunk-WP276EXC.js} +3 -3
  60. package/dist/esm/index.js +6 -6
  61. package/dist/esm/index.js.map +1 -1
  62. package/dist/esm/routes/a2a.routes.js +3 -3
  63. package/dist/esm/routes/index.js +5 -5
  64. package/dist/esm/routes/query.routes.js +3 -3
  65. package/dist/esm/services/a2a.service.js +1 -1
  66. package/dist/esm/services/index.js +3 -3
  67. package/dist/esm/services/query-stream.service.d.ts +1 -1
  68. package/dist/esm/services/query-stream.service.js +1 -1
  69. package/dist/esm/services/query.service.d.ts +1 -1
  70. package/dist/esm/services/query.service.js +2 -1
  71. package/package.json +1 -1
  72. package/dist/esm/chunk-IR72X2HF.js.map +0 -1
  73. package/dist/esm/chunk-KDVMHOLB.js.map +0 -1
  74. package/dist/esm/chunk-PUUZRUE6.js.map +0 -1
  75. /package/dist/esm/{chunk-S7Z2QSFJ.js.map → chunk-R44LLFOD.js.map} +0 -0
  76. /package/dist/esm/{chunk-WYORY4PO.js.map → chunk-WP276EXC.js.map} +0 -0
@@ -0,0 +1,37 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkOKRBMMK2cjs = require('./chunk-OKRBMMK2.cjs');
4
+
5
+
6
+ var _chunkDEKRDA6Qcjs = require('./chunk-DEKRDA6Q.cjs');
7
+
8
+
9
+ var _chunkICFTUZP5cjs = require('./chunk-ICFTUZP5.cjs');
10
+
11
+ // src/routes/a2a.routes.ts
12
+ var _server = require('@a2a-js/sdk/server');
13
+ var _express = require('express');
14
+ var createA2ARouter = (agent) => {
15
+ const router = _express.Router.call(void 0, );
16
+ const taskStore = new (0, _server.InMemoryTaskStore)();
17
+ const queryStreamService = new (0, _chunkDEKRDA6Qcjs.QueryStreamService)(
18
+ agent.modelModule,
19
+ agent.a2aModule,
20
+ agent.mcpModule,
21
+ agent.memoryModule,
22
+ agent.manifest.prompts
23
+ );
24
+ const a2aService = new (0, _chunkOKRBMMK2cjs.A2AService)(queryStreamService);
25
+ const a2aController = new (0, _chunkICFTUZP5cjs.A2AController)(
26
+ a2aService,
27
+ taskStore,
28
+ agent.generateAgentCard
29
+ );
30
+ router.post("/", a2aController.handleA2ARequest);
31
+ return router;
32
+ };
33
+
34
+
35
+
36
+ exports.createA2ARouter = createA2ARouter;
37
+ //# sourceMappingURL=chunk-KFIYXWPY.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-KFIYXWPY.cjs","../../src/routes/a2a.routes.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACVA,4CAAkC;AAClC,kCAAuB;AAchB,IAAM,gBAAA,EAAkB,CAAC,KAAA,EAAA,GAA4B;AAC3D,EAAA,MAAM,OAAA,EAAS,6BAAA,CAAO;AAGtB,EAAA,MAAM,UAAA,EAAY,IAAI,8BAAA,CAAkB,CAAA;AACxC,EAAA,MAAM,mBAAA,EAAqB,IAAI,yCAAA;AAAA,IAC9B,KAAA,CAAM,WAAA;AAAA,IACN,KAAA,CAAM,SAAA;AAAA,IACN,KAAA,CAAM,SAAA;AAAA,IACN,KAAA,CAAM,YAAA;AAAA,IACN,KAAA,CAAM,QAAA,CAAS;AAAA,EAChB,CAAA;AACA,EAAA,MAAM,WAAA,EAAa,IAAI,iCAAA,CAAW,kBAAkB,CAAA;AACpD,EAAA,MAAM,cAAA,EAAgB,IAAI,oCAAA;AAAA,IACzB,UAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA,CAAM;AAAA,EACP,CAAA;AAGA,EAAA,MAAA,CAAO,IAAA,CAAK,GAAA,EAAK,aAAA,CAAc,gBAAgB,CAAA;AAE/C,EAAA,OAAO,MAAA;AACR,CAAA;ADNA;AACA;AACE;AACF,0CAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-KFIYXWPY.cjs","sourcesContent":[null,"import { InMemoryTaskStore } from \"@a2a-js/sdk/server\";\nimport { Router } from \"express\";\nimport type { AINAgent } from \"@/index.js\";\nimport { QueryStreamService } from \"@/services/query-stream.service.js\";\nimport { A2AController } from \"../controllers/a2a.controller.js\";\nimport { A2AService } from \"../services/a2a.service.js\";\n\n/**\n * Creates and configures the A2A router.\n * This function is a \"composition root\" for the A2A feature,\n * creating and injecting all necessary dependencies.\n * @param intentAnalyzer The core intent analyzer.\n * @param agentCard The agent's card.\n * @returns An Express Router instance.\n */\nexport const createA2ARouter = (agent: AINAgent): Router => {\n\tconst router = Router();\n\n\t// 1. Create dependencies for the A2A feature\n\tconst taskStore = new InMemoryTaskStore();\n\tconst queryStreamService = new QueryStreamService(\n\t\tagent.modelModule,\n\t\tagent.a2aModule,\n\t\tagent.mcpModule,\n\t\tagent.memoryModule,\n\t\tagent.manifest.prompts,\n\t);\n\tconst a2aService = new A2AService(queryStreamService);\n\tconst a2aController = new A2AController(\n\t\ta2aService,\n\t\ttaskStore,\n\t\tagent.generateAgentCard,\n\t);\n\n\t// 2. Define the route\n\trouter.post(\"/\", a2aController.handleA2ARequest);\n\n\treturn router;\n};\n"]}
@@ -0,0 +1,43 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunk6KXMM7GPcjs = require('./chunk-6KXMM7GP.cjs');
4
+
5
+
6
+ var _chunkVLMHDHXTcjs = require('./chunk-VLMHDHXT.cjs');
7
+
8
+
9
+ var _chunk6CDGUUXEcjs = require('./chunk-6CDGUUXE.cjs');
10
+
11
+ // src/routes/query.routes.ts
12
+ var _express = require('express');
13
+ var createQueryRouter = (agent, allowStream = false) => {
14
+ const router = _express.Router.call(void 0, );
15
+ const queryService = new (0, _chunk6KXMM7GPcjs.QueryService)(
16
+ agent.modelModule,
17
+ agent.a2aModule,
18
+ agent.mcpModule,
19
+ agent.memoryModule,
20
+ agent.manifest.prompts
21
+ );
22
+ let queryStreamService;
23
+ if (allowStream) {
24
+ queryStreamService = new (0, _chunk6CDGUUXEcjs.QueryStreamService)(
25
+ agent.modelModule,
26
+ agent.a2aModule,
27
+ agent.mcpModule,
28
+ agent.memoryModule,
29
+ agent.manifest.prompts
30
+ );
31
+ }
32
+ const queryController = new (0, _chunkVLMHDHXTcjs.QueryController)(queryService, queryStreamService);
33
+ router.post("/", queryController.handleQueryRequest);
34
+ if (allowStream) {
35
+ router.post("/stream", queryController.handleQueryStreamRequest);
36
+ }
37
+ return router;
38
+ };
39
+
40
+
41
+
42
+ exports.createQueryRouter = createQueryRouter;
43
+ //# sourceMappingURL=chunk-OOSQKNH2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-OOSQKNH2.cjs","../../src/routes/query.routes.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACVA,kCAAuB;AAMhB,IAAM,kBAAA,EAAoB,CAChC,KAAA,EACA,YAAA,EAAc,KAAA,EAAA,GACF;AACZ,EAAA,MAAM,OAAA,EAAS,6BAAA,CAAO;AAEtB,EAAA,MAAM,aAAA,EAAe,IAAI,mCAAA;AAAA,IACxB,KAAA,CAAM,WAAA;AAAA,IACN,KAAA,CAAM,SAAA;AAAA,IACN,KAAA,CAAM,SAAA;AAAA,IACN,KAAA,CAAM,YAAA;AAAA,IACN,KAAA,CAAM,QAAA,CAAS;AAAA,EAChB,CAAA;AAEA,EAAA,IAAI,kBAAA;AAEJ,EAAA,GAAA,CAAI,WAAA,EAAa;AAChB,IAAA,mBAAA,EAAqB,IAAI,yCAAA;AAAA,MACxB,KAAA,CAAM,WAAA;AAAA,MACN,KAAA,CAAM,SAAA;AAAA,MACN,KAAA,CAAM,SAAA;AAAA,MACN,KAAA,CAAM,YAAA;AAAA,MACN,KAAA,CAAM,QAAA,CAAS;AAAA,IAChB,CAAA;AAAA,EACD;AAEA,EAAA,MAAM,gBAAA,EAAkB,IAAI,sCAAA,CAAgB,YAAA,EAAc,kBAAkB,CAAA;AAC5E,EAAA,MAAA,CAAO,IAAA,CAAK,GAAA,EAAK,eAAA,CAAgB,kBAAkB,CAAA;AAEnD,EAAA,GAAA,CAAI,WAAA,EAAa;AAChB,IAAA,MAAA,CAAO,IAAA,CAAK,SAAA,EAAW,eAAA,CAAgB,wBAAwB,CAAA;AAAA,EAChE;AAEA,EAAA,OAAO,MAAA;AACR,CAAA;ADFA;AACA;AACE;AACF,8CAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-OOSQKNH2.cjs","sourcesContent":[null,"import { Router } from \"express\";\nimport { QueryController } from \"@/controllers/query.controller.js\";\nimport type { AINAgent } from \"@/index.js\";\nimport { QueryService } from \"@/services/query.service.js\";\nimport { QueryStreamService } from \"@/services/query-stream.service.js\";\n\nexport const createQueryRouter = (\n\tagent: AINAgent,\n\tallowStream = false,\n): Router => {\n\tconst router = Router();\n\n\tconst queryService = new QueryService(\n\t\tagent.modelModule,\n\t\tagent.a2aModule,\n\t\tagent.mcpModule,\n\t\tagent.memoryModule,\n\t\tagent.manifest.prompts,\n\t);\n\n\tlet queryStreamService: QueryStreamService | undefined;\n\n\tif (allowStream) {\n\t\tqueryStreamService = new QueryStreamService(\n\t\t\tagent.modelModule,\n\t\t\tagent.a2aModule,\n\t\t\tagent.mcpModule,\n\t\t\tagent.memoryModule,\n\t\t\tagent.manifest.prompts,\n\t\t);\n\t}\n\n\tconst queryController = new QueryController(queryService, queryStreamService);\n\trouter.post(\"/\", queryController.handleQueryRequest);\n\n\tif (allowStream) {\n\t\trouter.post(\"/stream\", queryController.handleQueryStreamRequest);\n\t}\n\n\treturn router;\n};\n"]}
@@ -0,0 +1,37 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkBDQDZXZIcjs = require('./chunk-BDQDZXZI.cjs');
4
+
5
+
6
+ var _chunk6CDGUUXEcjs = require('./chunk-6CDGUUXE.cjs');
7
+
8
+
9
+ var _chunkICFTUZP5cjs = require('./chunk-ICFTUZP5.cjs');
10
+
11
+ // src/routes/a2a.routes.ts
12
+ var _server = require('@a2a-js/sdk/server');
13
+ var _express = require('express');
14
+ var createA2ARouter = (agent) => {
15
+ const router = _express.Router.call(void 0, );
16
+ const taskStore = new (0, _server.InMemoryTaskStore)();
17
+ const queryStreamService = new (0, _chunk6CDGUUXEcjs.QueryStreamService)(
18
+ agent.modelModule,
19
+ agent.a2aModule,
20
+ agent.mcpModule,
21
+ agent.memoryModule,
22
+ agent.manifest.prompts
23
+ );
24
+ const a2aService = new (0, _chunkBDQDZXZIcjs.A2AService)(queryStreamService);
25
+ const a2aController = new (0, _chunkICFTUZP5cjs.A2AController)(
26
+ a2aService,
27
+ taskStore,
28
+ agent.generateAgentCard
29
+ );
30
+ router.post("/", a2aController.handleA2ARequest);
31
+ return router;
32
+ };
33
+
34
+
35
+
36
+ exports.createA2ARouter = createA2ARouter;
37
+ //# sourceMappingURL=chunk-QTUDQSRL.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-QTUDQSRL.cjs","../../src/routes/a2a.routes.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACVA,4CAAkC;AAClC,kCAAuB;AAchB,IAAM,gBAAA,EAAkB,CAAC,KAAA,EAAA,GAA4B;AAC3D,EAAA,MAAM,OAAA,EAAS,6BAAA,CAAO;AAGtB,EAAA,MAAM,UAAA,EAAY,IAAI,8BAAA,CAAkB,CAAA;AACxC,EAAA,MAAM,mBAAA,EAAqB,IAAI,yCAAA;AAAA,IAC9B,KAAA,CAAM,WAAA;AAAA,IACN,KAAA,CAAM,SAAA;AAAA,IACN,KAAA,CAAM,SAAA;AAAA,IACN,KAAA,CAAM,YAAA;AAAA,IACN,KAAA,CAAM,QAAA,CAAS;AAAA,EAChB,CAAA;AACA,EAAA,MAAM,WAAA,EAAa,IAAI,iCAAA,CAAW,kBAAkB,CAAA;AACpD,EAAA,MAAM,cAAA,EAAgB,IAAI,oCAAA;AAAA,IACzB,UAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA,CAAM;AAAA,EACP,CAAA;AAGA,EAAA,MAAA,CAAO,IAAA,CAAK,GAAA,EAAK,aAAA,CAAc,gBAAgB,CAAA;AAE/C,EAAA,OAAO,MAAA;AACR,CAAA;ADNA;AACA;AACE;AACF,0CAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-QTUDQSRL.cjs","sourcesContent":[null,"import { InMemoryTaskStore } from \"@a2a-js/sdk/server\";\nimport { Router } from \"express\";\nimport type { AINAgent } from \"@/index.js\";\nimport { QueryStreamService } from \"@/services/query-stream.service.js\";\nimport { A2AController } from \"../controllers/a2a.controller.js\";\nimport { A2AService } from \"../services/a2a.service.js\";\n\n/**\n * Creates and configures the A2A router.\n * This function is a \"composition root\" for the A2A feature,\n * creating and injecting all necessary dependencies.\n * @param intentAnalyzer The core intent analyzer.\n * @param agentCard The agent's card.\n * @returns An Express Router instance.\n */\nexport const createA2ARouter = (agent: AINAgent): Router => {\n\tconst router = Router();\n\n\t// 1. Create dependencies for the A2A feature\n\tconst taskStore = new InMemoryTaskStore();\n\tconst queryStreamService = new QueryStreamService(\n\t\tagent.modelModule,\n\t\tagent.a2aModule,\n\t\tagent.mcpModule,\n\t\tagent.memoryModule,\n\t\tagent.manifest.prompts,\n\t);\n\tconst a2aService = new A2AService(queryStreamService);\n\tconst a2aController = new A2AController(\n\t\ta2aService,\n\t\ttaskStore,\n\t\tagent.generateAgentCard,\n\t);\n\n\t// 2. Define the route\n\trouter.post(\"/\", a2aController.handleA2ARequest);\n\n\treturn router;\n};\n"]}
@@ -0,0 +1,43 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunk7UGA4QRJcjs = require('./chunk-7UGA4QRJ.cjs');
4
+
5
+
6
+ var _chunkVLMHDHXTcjs = require('./chunk-VLMHDHXT.cjs');
7
+
8
+
9
+ var _chunkDEKRDA6Qcjs = require('./chunk-DEKRDA6Q.cjs');
10
+
11
+ // src/routes/query.routes.ts
12
+ var _express = require('express');
13
+ var createQueryRouter = (agent, allowStream = false) => {
14
+ const router = _express.Router.call(void 0, );
15
+ const queryService = new (0, _chunk7UGA4QRJcjs.QueryService)(
16
+ agent.modelModule,
17
+ agent.a2aModule,
18
+ agent.mcpModule,
19
+ agent.memoryModule,
20
+ agent.manifest.prompts
21
+ );
22
+ let queryStreamService;
23
+ if (allowStream) {
24
+ queryStreamService = new (0, _chunkDEKRDA6Qcjs.QueryStreamService)(
25
+ agent.modelModule,
26
+ agent.a2aModule,
27
+ agent.mcpModule,
28
+ agent.memoryModule,
29
+ agent.manifest.prompts
30
+ );
31
+ }
32
+ const queryController = new (0, _chunkVLMHDHXTcjs.QueryController)(queryService, queryStreamService);
33
+ router.post("/", queryController.handleQueryRequest);
34
+ if (allowStream) {
35
+ router.post("/stream", queryController.handleQueryStreamRequest);
36
+ }
37
+ return router;
38
+ };
39
+
40
+
41
+
42
+ exports.createQueryRouter = createQueryRouter;
43
+ //# sourceMappingURL=chunk-T7XSNWFJ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-T7XSNWFJ.cjs","../../src/routes/query.routes.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACVA,kCAAuB;AAMhB,IAAM,kBAAA,EAAoB,CAChC,KAAA,EACA,YAAA,EAAc,KAAA,EAAA,GACF;AACZ,EAAA,MAAM,OAAA,EAAS,6BAAA,CAAO;AAEtB,EAAA,MAAM,aAAA,EAAe,IAAI,mCAAA;AAAA,IACxB,KAAA,CAAM,WAAA;AAAA,IACN,KAAA,CAAM,SAAA;AAAA,IACN,KAAA,CAAM,SAAA;AAAA,IACN,KAAA,CAAM,YAAA;AAAA,IACN,KAAA,CAAM,QAAA,CAAS;AAAA,EAChB,CAAA;AAEA,EAAA,IAAI,kBAAA;AAEJ,EAAA,GAAA,CAAI,WAAA,EAAa;AAChB,IAAA,mBAAA,EAAqB,IAAI,yCAAA;AAAA,MACxB,KAAA,CAAM,WAAA;AAAA,MACN,KAAA,CAAM,SAAA;AAAA,MACN,KAAA,CAAM,SAAA;AAAA,MACN,KAAA,CAAM,YAAA;AAAA,MACN,KAAA,CAAM,QAAA,CAAS;AAAA,IAChB,CAAA;AAAA,EACD;AAEA,EAAA,MAAM,gBAAA,EAAkB,IAAI,sCAAA,CAAgB,YAAA,EAAc,kBAAkB,CAAA;AAC5E,EAAA,MAAA,CAAO,IAAA,CAAK,GAAA,EAAK,eAAA,CAAgB,kBAAkB,CAAA;AAEnD,EAAA,GAAA,CAAI,WAAA,EAAa;AAChB,IAAA,MAAA,CAAO,IAAA,CAAK,SAAA,EAAW,eAAA,CAAgB,wBAAwB,CAAA;AAAA,EAChE;AAEA,EAAA,OAAO,MAAA;AACR,CAAA;ADFA;AACA;AACE;AACF,8CAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-T7XSNWFJ.cjs","sourcesContent":[null,"import { Router } from \"express\";\nimport { QueryController } from \"@/controllers/query.controller.js\";\nimport type { AINAgent } from \"@/index.js\";\nimport { QueryService } from \"@/services/query.service.js\";\nimport { QueryStreamService } from \"@/services/query-stream.service.js\";\n\nexport const createQueryRouter = (\n\tagent: AINAgent,\n\tallowStream = false,\n): Router => {\n\tconst router = Router();\n\n\tconst queryService = new QueryService(\n\t\tagent.modelModule,\n\t\tagent.a2aModule,\n\t\tagent.mcpModule,\n\t\tagent.memoryModule,\n\t\tagent.manifest.prompts,\n\t);\n\n\tlet queryStreamService: QueryStreamService | undefined;\n\n\tif (allowStream) {\n\t\tqueryStreamService = new QueryStreamService(\n\t\t\tagent.modelModule,\n\t\t\tagent.a2aModule,\n\t\t\tagent.mcpModule,\n\t\t\tagent.memoryModule,\n\t\t\tagent.manifest.prompts,\n\t\t);\n\t}\n\n\tconst queryController = new QueryController(queryService, queryStreamService);\n\trouter.post(\"/\", queryController.handleQueryRequest);\n\n\tif (allowStream) {\n\t\trouter.post(\"/stream\", queryController.handleQueryStreamRequest);\n\t}\n\n\treturn router;\n};\n"]}
@@ -0,0 +1,43 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkEHULB7WGcjs = require('./chunk-EHULB7WG.cjs');
4
+
5
+
6
+ var _chunkYTAWBEPQcjs = require('./chunk-YTAWBEPQ.cjs');
7
+
8
+
9
+ var _chunkVLMHDHXTcjs = require('./chunk-VLMHDHXT.cjs');
10
+
11
+ // src/routes/query.routes.ts
12
+ var _express = require('express');
13
+ var createQueryRouter = (agent, allowStream = false) => {
14
+ const router = _express.Router.call(void 0, );
15
+ const queryService = new (0, _chunkEHULB7WGcjs.QueryService)(
16
+ agent.modelModule,
17
+ agent.a2aModule,
18
+ agent.mcpModule,
19
+ agent.memoryModule,
20
+ agent.manifest.prompts
21
+ );
22
+ let queryStreamService;
23
+ if (allowStream) {
24
+ queryStreamService = new (0, _chunkYTAWBEPQcjs.QueryStreamService)(
25
+ agent.modelModule,
26
+ agent.a2aModule,
27
+ agent.mcpModule,
28
+ agent.memoryModule,
29
+ agent.manifest.prompts
30
+ );
31
+ }
32
+ const queryController = new (0, _chunkVLMHDHXTcjs.QueryController)(queryService, queryStreamService);
33
+ router.post("/", queryController.handleQueryRequest);
34
+ if (allowStream) {
35
+ router.post("/stream", queryController.handleQueryStreamRequest);
36
+ }
37
+ return router;
38
+ };
39
+
40
+
41
+
42
+ exports.createQueryRouter = createQueryRouter;
43
+ //# sourceMappingURL=chunk-VFM2JQLG.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-VFM2JQLG.cjs","../../src/routes/query.routes.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACVA,kCAAuB;AAMhB,IAAM,kBAAA,EAAoB,CAChC,KAAA,EACA,YAAA,EAAc,KAAA,EAAA,GACF;AACZ,EAAA,MAAM,OAAA,EAAS,6BAAA,CAAO;AAEtB,EAAA,MAAM,aAAA,EAAe,IAAI,mCAAA;AAAA,IACxB,KAAA,CAAM,WAAA;AAAA,IACN,KAAA,CAAM,SAAA;AAAA,IACN,KAAA,CAAM,SAAA;AAAA,IACN,KAAA,CAAM,YAAA;AAAA,IACN,KAAA,CAAM,QAAA,CAAS;AAAA,EAChB,CAAA;AAEA,EAAA,IAAI,kBAAA;AAEJ,EAAA,GAAA,CAAI,WAAA,EAAa;AAChB,IAAA,mBAAA,EAAqB,IAAI,yCAAA;AAAA,MACxB,KAAA,CAAM,WAAA;AAAA,MACN,KAAA,CAAM,SAAA;AAAA,MACN,KAAA,CAAM,SAAA;AAAA,MACN,KAAA,CAAM,YAAA;AAAA,MACN,KAAA,CAAM,QAAA,CAAS;AAAA,IAChB,CAAA;AAAA,EACD;AAEA,EAAA,MAAM,gBAAA,EAAkB,IAAI,sCAAA,CAAgB,YAAA,EAAc,kBAAkB,CAAA;AAC5E,EAAA,MAAA,CAAO,IAAA,CAAK,GAAA,EAAK,eAAA,CAAgB,kBAAkB,CAAA;AAEnD,EAAA,GAAA,CAAI,WAAA,EAAa;AAChB,IAAA,MAAA,CAAO,IAAA,CAAK,SAAA,EAAW,eAAA,CAAgB,wBAAwB,CAAA;AAAA,EAChE;AAEA,EAAA,OAAO,MAAA;AACR,CAAA;ADFA;AACA;AACE;AACF,8CAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-VFM2JQLG.cjs","sourcesContent":[null,"import { Router } from \"express\";\nimport { QueryController } from \"@/controllers/query.controller.js\";\nimport type { AINAgent } from \"@/index.js\";\nimport { QueryService } from \"@/services/query.service.js\";\nimport { QueryStreamService } from \"@/services/query-stream.service.js\";\n\nexport const createQueryRouter = (\n\tagent: AINAgent,\n\tallowStream = false,\n): Router => {\n\tconst router = Router();\n\n\tconst queryService = new QueryService(\n\t\tagent.modelModule,\n\t\tagent.a2aModule,\n\t\tagent.mcpModule,\n\t\tagent.memoryModule,\n\t\tagent.manifest.prompts,\n\t);\n\n\tlet queryStreamService: QueryStreamService | undefined;\n\n\tif (allowStream) {\n\t\tqueryStreamService = new QueryStreamService(\n\t\t\tagent.modelModule,\n\t\t\tagent.a2aModule,\n\t\t\tagent.mcpModule,\n\t\t\tagent.memoryModule,\n\t\t\tagent.manifest.prompts,\n\t\t);\n\t}\n\n\tconst queryController = new QueryController(queryService, queryStreamService);\n\trouter.post(\"/\", queryController.handleQueryRequest);\n\n\tif (allowStream) {\n\t\trouter.post(\"/stream\", queryController.handleQueryStreamRequest);\n\t}\n\n\treturn router;\n};\n"]}
@@ -0,0 +1,43 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunk3M5DZAJAcjs = require('./chunk-3M5DZAJA.cjs');
4
+
5
+
6
+ var _chunkVLMHDHXTcjs = require('./chunk-VLMHDHXT.cjs');
7
+
8
+
9
+ var _chunk6CDGUUXEcjs = require('./chunk-6CDGUUXE.cjs');
10
+
11
+ // src/routes/query.routes.ts
12
+ var _express = require('express');
13
+ var createQueryRouter = (agent, allowStream = false) => {
14
+ const router = _express.Router.call(void 0, );
15
+ const queryService = new (0, _chunk3M5DZAJAcjs.QueryService)(
16
+ agent.modelModule,
17
+ agent.a2aModule,
18
+ agent.mcpModule,
19
+ agent.memoryModule,
20
+ agent.manifest.prompts
21
+ );
22
+ let queryStreamService;
23
+ if (allowStream) {
24
+ queryStreamService = new (0, _chunk6CDGUUXEcjs.QueryStreamService)(
25
+ agent.modelModule,
26
+ agent.a2aModule,
27
+ agent.mcpModule,
28
+ agent.memoryModule,
29
+ agent.manifest.prompts
30
+ );
31
+ }
32
+ const queryController = new (0, _chunkVLMHDHXTcjs.QueryController)(queryService, queryStreamService);
33
+ router.post("/", queryController.handleQueryRequest);
34
+ if (allowStream) {
35
+ router.post("/stream", queryController.handleQueryStreamRequest);
36
+ }
37
+ return router;
38
+ };
39
+
40
+
41
+
42
+ exports.createQueryRouter = createQueryRouter;
43
+ //# sourceMappingURL=chunk-XEE7ORJX.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-XEE7ORJX.cjs","../../src/routes/query.routes.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACVA,kCAAuB;AAMhB,IAAM,kBAAA,EAAoB,CAChC,KAAA,EACA,YAAA,EAAc,KAAA,EAAA,GACF;AACZ,EAAA,MAAM,OAAA,EAAS,6BAAA,CAAO;AAEtB,EAAA,MAAM,aAAA,EAAe,IAAI,mCAAA;AAAA,IACxB,KAAA,CAAM,WAAA;AAAA,IACN,KAAA,CAAM,SAAA;AAAA,IACN,KAAA,CAAM,SAAA;AAAA,IACN,KAAA,CAAM,YAAA;AAAA,IACN,KAAA,CAAM,QAAA,CAAS;AAAA,EAChB,CAAA;AAEA,EAAA,IAAI,kBAAA;AAEJ,EAAA,GAAA,CAAI,WAAA,EAAa;AAChB,IAAA,mBAAA,EAAqB,IAAI,yCAAA;AAAA,MACxB,KAAA,CAAM,WAAA;AAAA,MACN,KAAA,CAAM,SAAA;AAAA,MACN,KAAA,CAAM,SAAA;AAAA,MACN,KAAA,CAAM,YAAA;AAAA,MACN,KAAA,CAAM,QAAA,CAAS;AAAA,IAChB,CAAA;AAAA,EACD;AAEA,EAAA,MAAM,gBAAA,EAAkB,IAAI,sCAAA,CAAgB,YAAA,EAAc,kBAAkB,CAAA;AAC5E,EAAA,MAAA,CAAO,IAAA,CAAK,GAAA,EAAK,eAAA,CAAgB,kBAAkB,CAAA;AAEnD,EAAA,GAAA,CAAI,WAAA,EAAa;AAChB,IAAA,MAAA,CAAO,IAAA,CAAK,SAAA,EAAW,eAAA,CAAgB,wBAAwB,CAAA;AAAA,EAChE;AAEA,EAAA,OAAO,MAAA;AACR,CAAA;ADFA;AACA;AACE;AACF,8CAAC","file":"/Users/shyun/comcom/ain-agent/ain-adk/dist/cjs/chunk-XEE7ORJX.cjs","sourcesContent":[null,"import { Router } from \"express\";\nimport { QueryController } from \"@/controllers/query.controller.js\";\nimport type { AINAgent } from \"@/index.js\";\nimport { QueryService } from \"@/services/query.service.js\";\nimport { QueryStreamService } from \"@/services/query-stream.service.js\";\n\nexport const createQueryRouter = (\n\tagent: AINAgent,\n\tallowStream = false,\n): Router => {\n\tconst router = Router();\n\n\tconst queryService = new QueryService(\n\t\tagent.modelModule,\n\t\tagent.a2aModule,\n\t\tagent.mcpModule,\n\t\tagent.memoryModule,\n\t\tagent.manifest.prompts,\n\t);\n\n\tlet queryStreamService: QueryStreamService | undefined;\n\n\tif (allowStream) {\n\t\tqueryStreamService = new QueryStreamService(\n\t\t\tagent.modelModule,\n\t\t\tagent.a2aModule,\n\t\t\tagent.mcpModule,\n\t\t\tagent.memoryModule,\n\t\t\tagent.manifest.prompts,\n\t\t);\n\t}\n\n\tconst queryController = new QueryController(queryService, queryStreamService);\n\trouter.post(\"/\", queryController.handleQueryRequest);\n\n\tif (allowStream) {\n\t\trouter.post(\"/stream\", queryController.handleQueryStreamRequest);\n\t}\n\n\treturn router;\n};\n"]}
@@ -0,0 +1,337 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+ var _chunkQHQLU7BIcjs = require('./chunk-QHQLU7BI.cjs');
4
+
5
+
6
+ var _chunk466ED5WNcjs = require('./chunk-466ED5WN.cjs');
7
+
8
+ // src/services/query-stream.service.ts
9
+ var _crypto = require('crypto');
10
+ var _httpstatuscodes = require('http-status-codes');
11
+ var QueryStreamService = class {
12
+
13
+
14
+
15
+
16
+
17
+ constructor(modelModule, a2aModule, mcpModule, memoryModule, prompts) {
18
+ this.modelModule = modelModule;
19
+ this.a2aModule = a2aModule;
20
+ this.mcpModule = mcpModule;
21
+ this.memoryModule = memoryModule;
22
+ this.prompts = prompts;
23
+ }
24
+ /**
25
+ * Detects the intent from context.
26
+ *
27
+ * @param query - The user's input query
28
+ * @param thread - The thread history
29
+ * @returns The detected intent
30
+ */
31
+ async intentTriggering(query, thread) {
32
+ const modelInstance = this.modelModule.getModel();
33
+ const intentMemory = _optionalChain([this, 'access', _ => _.memoryModule, 'optionalAccess', _2 => _2.getIntentMemory, 'call', _3 => _3()]);
34
+ if (!intentMemory) {
35
+ return void 0;
36
+ }
37
+ const intents = await intentMemory.listIntents();
38
+ if (intents.length === 0) {
39
+ _chunk466ED5WNcjs.loggers.intentStream.warn("No intent found");
40
+ return void 0;
41
+ }
42
+ const intentList = intents.map((intent2) => `- ${intent2.name}: ${intent2.description}`).join("\n");
43
+ const threadMessages = !thread ? "" : thread.messages.sort((a, b) => a.timestamp - b.timestamp).map((message) => {
44
+ const role = message.role === "USER" ? "User" : message.role === "MODEL" ? "Assistant" : "System";
45
+ const content = Array.isArray(message.content.parts) ? message.content.parts.join(" ") : String(message.content.parts);
46
+ return `${role}: """${content}"""`;
47
+ }).join("\n");
48
+ const systemPrompt = `You are an expert in accurately identifying user intentions.
49
+
50
+ Available intent list:
51
+ ${intentList}
52
+
53
+ Please select and answer only from the above intent list.
54
+ Please return only the exact intent name without any additional explanations or text.`;
55
+ const userMessage = `The following is the conversation history with the user:
56
+
57
+ ${threadMessages}
58
+
59
+ Last user question: "${query}"
60
+
61
+ Based on the above conversation history, please determine what the intention of the last user question is.
62
+ Please select and answer the most appropriate intent name from the available intent list.`;
63
+ const messages = modelInstance.generateMessages({
64
+ query: userMessage,
65
+ systemPrompt
66
+ });
67
+ const response = await modelInstance.fetch(messages);
68
+ if (!response.content) {
69
+ throw new Error("No intent detected");
70
+ }
71
+ const intentName = response.content.trim();
72
+ const intent = await intentMemory.getIntentByName(intentName);
73
+ if (!intent) {
74
+ throw new Error(`No intent found: ${intentName}`);
75
+ }
76
+ return intent;
77
+ }
78
+ /**
79
+ * Fulfills the detected intent by generating a streaming response.
80
+ *
81
+ * Manages the complete inference loop including:
82
+ * - Loading prompts and conversation history
83
+ * - Collecting available tools from modules
84
+ * - Executing model inference with tool support
85
+ * - Processing tool calls iteratively until completion
86
+ * - Streaming results as Server-Sent Events
87
+ *
88
+ * @param query - The user's input query
89
+ * @param threadId - Thread identifier for context
90
+ * @param thread - Previous conversation history
91
+ * @param intent - Optional detected intent with custom prompt
92
+ * @returns AsyncGenerator yielding StreamEvent objects
93
+ */
94
+ async *intentFulfilling(query, threadId, thread, intent) {
95
+ const systemPrompt = `
96
+ Today is ${(/* @__PURE__ */ new Date()).toLocaleDateString()}.
97
+
98
+ ${_optionalChain([this, 'access', _4 => _4.prompts, 'optionalAccess', _5 => _5.agent]) || ""}
99
+
100
+ ${_optionalChain([this, 'access', _6 => _6.prompts, 'optionalAccess', _7 => _7.system]) || ""}
101
+
102
+ ${_optionalChain([intent, 'optionalAccess', _8 => _8.prompt]) || ""}
103
+ `.trim();
104
+ const modelInstance = this.modelModule.getModel();
105
+ const messages = modelInstance.generateMessages({
106
+ query,
107
+ thread,
108
+ systemPrompt: systemPrompt.trim()
109
+ });
110
+ const tools = [];
111
+ this.mcpModule && tools.push(...this.mcpModule.getTools());
112
+ this.a2aModule && tools.push(...await this.a2aModule.getTools());
113
+ const functions = modelInstance.convertToolsToFunctions(tools);
114
+ const processList = [];
115
+ while (true) {
116
+ const responseStream = await modelInstance.fetchStreamWithContextMessage(
117
+ messages,
118
+ functions
119
+ );
120
+ const assembledToolCalls = [];
121
+ _chunk466ED5WNcjs.loggers.intentStream.debug("messages", { messages });
122
+ for await (const chunk of responseStream) {
123
+ const delta = chunk.delta;
124
+ if (_optionalChain([delta, 'optionalAccess', _9 => _9.tool_calls])) {
125
+ for (const { index, id, function: func } of delta.tool_calls) {
126
+ assembledToolCalls[index] ??= {
127
+ id: "",
128
+ type: "function",
129
+ function: { name: "", arguments: "" }
130
+ };
131
+ if (id) assembledToolCalls[index].id = id;
132
+ if (_optionalChain([func, 'optionalAccess', _10 => _10.name])) assembledToolCalls[index].function.name = func.name;
133
+ if (_optionalChain([func, 'optionalAccess', _11 => _11.arguments]))
134
+ assembledToolCalls[index].function.arguments += func.arguments;
135
+ }
136
+ } else if (_optionalChain([chunk, 'access', _12 => _12.delta, 'optionalAccess', _13 => _13.content])) {
137
+ yield {
138
+ event: "text_chunk",
139
+ data: { delta: chunk.delta.content }
140
+ };
141
+ }
142
+ }
143
+ _chunk466ED5WNcjs.loggers.intentStream.debug("assembledToolCalls", {
144
+ assembledToolCalls
145
+ });
146
+ if (assembledToolCalls.length > 0) {
147
+ for (const toolCall of assembledToolCalls) {
148
+ const toolCallId = _crypto.randomUUID.call(void 0, );
149
+ const toolName = toolCall.function.name;
150
+ const selectedTool = tools.filter((tool) => tool.id === toolName)[0];
151
+ let toolResult = "";
152
+ if (this.mcpModule && selectedTool.protocol === "MCP" /* MCP */) {
153
+ const toolArgs = JSON.parse(toolCall.function.arguments);
154
+ yield {
155
+ event: "tool_start",
156
+ data: {
157
+ toolCallId,
158
+ protocol: "MCP" /* MCP */,
159
+ toolName,
160
+ toolArgs
161
+ }
162
+ };
163
+ _chunk466ED5WNcjs.loggers.intent.debug("MCP tool call", { toolName, toolArgs });
164
+ toolResult = await this.mcpModule.useTool(
165
+ selectedTool,
166
+ toolArgs
167
+ );
168
+ } else if (this.a2aModule && selectedTool.protocol === "A2A" /* A2A */) {
169
+ yield {
170
+ event: "tool_start",
171
+ data: {
172
+ toolCallId,
173
+ protocol: "A2A" /* A2A */,
174
+ toolName,
175
+ toolArgs: null
176
+ }
177
+ };
178
+ _chunk466ED5WNcjs.loggers.intent.debug("A2A tool call", { toolName });
179
+ toolResult = await this.a2aModule.useTool(
180
+ selectedTool,
181
+ query,
182
+ threadId
183
+ );
184
+ } else {
185
+ _chunk466ED5WNcjs.loggers.intent.warn(
186
+ `Unrecognized tool type: ${selectedTool.protocol}`
187
+ );
188
+ continue;
189
+ }
190
+ yield {
191
+ event: "tool_output",
192
+ data: {
193
+ toolCallId,
194
+ protocol: selectedTool.protocol,
195
+ toolName,
196
+ result: toolResult
197
+ }
198
+ };
199
+ _chunk466ED5WNcjs.loggers.intent.debug("toolResult", { toolResult });
200
+ processList.push(toolResult);
201
+ modelInstance.appendMessages(messages, toolResult);
202
+ }
203
+ } else {
204
+ break;
205
+ }
206
+ }
207
+ }
208
+ /**
209
+ * Generates a title for the conversation based on the query.
210
+ *
211
+ * @param query - The user's input query
212
+ * @returns Promise resolving to a generated title
213
+ */
214
+ async generateTitle(query) {
215
+ const DEFAULT_TITLE = "New Chat";
216
+ try {
217
+ const modelInstance = this.modelModule.getModel();
218
+ const messages = modelInstance.generateMessages({
219
+ query,
220
+ systemPrompt: `You are a helpful assistant that generates titles for conversations.
221
+ Please analyze the user's query and create a concise title that accurately reflects the conversation's core topic.
222
+ The title must be no more than 5 words long.
223
+ Respond with only the title. Do not include any punctuation or extra explanations.`
224
+ });
225
+ const response = await modelInstance.fetch(messages);
226
+ return response.content || DEFAULT_TITLE;
227
+ } catch (error) {
228
+ _chunk466ED5WNcjs.loggers.intentStream.error("Error generating title", {
229
+ error,
230
+ query
231
+ });
232
+ return DEFAULT_TITLE;
233
+ }
234
+ }
235
+ /**
236
+ * Main entry point for processing streaming user queries.
237
+ *
238
+ * Handles the complete query lifecycle:
239
+ * 1. Loads or creates thread from memory
240
+ * 2. Detects intent from the query
241
+ * 3. Fulfills the intent with streaming AI response
242
+ * 4. Updates conversation history in real-time
243
+ *
244
+ * @param threadMetadata - Metadata containing type, userId, and optional threadId
245
+ * @param threadMetadata.type - The type of thread (e.g., chat, workflow)
246
+ * @param threadMetadata.userId - The user's unique identifier
247
+ * @param threadMetadata.threadId - Optional thread identifier
248
+ * @param query - The user's input query
249
+ * @returns AsyncGenerator yielding StreamEvent objects for SSE
250
+ */
251
+ async *handleQueryStream(threadMetadata, query) {
252
+ const { type, userId } = threadMetadata;
253
+ const queryStartAt = Date.now();
254
+ const threadMemory = _optionalChain([this, 'access', _14 => _14.memoryModule, 'optionalAccess', _15 => _15.getThreadMemory, 'call', _16 => _16()]);
255
+ let threadId = threadMetadata.threadId;
256
+ let thread;
257
+ if (threadId) {
258
+ thread = await _optionalChain([threadMemory, 'optionalAccess', _17 => _17.getThread, 'call', _18 => _18(userId, threadId)]);
259
+ if (!thread) {
260
+ throw new (0, _chunkQHQLU7BIcjs.AinHttpError)(_httpstatuscodes.StatusCodes.NOT_FOUND, "Thread not found");
261
+ }
262
+ } else {
263
+ threadId = _crypto.randomUUID.call(void 0, );
264
+ const title = await this.generateTitle(query);
265
+ const metadata = await _optionalChain([threadMemory, 'optionalAccess', _19 => _19.createThread, 'call', _20 => _20(type, userId, threadId, title)]) || {
266
+ type,
267
+ threadId,
268
+ title,
269
+ updatedAt: Date.now()
270
+ };
271
+ _chunk466ED5WNcjs.loggers.intentStream.info("Create new thread", { metadata });
272
+ yield { event: "thread_id", data: metadata };
273
+ }
274
+ await _optionalChain([threadMemory, 'optionalAccess', _21 => _21.addMessagesToThread, 'call', _22 => _22(userId, threadId, [
275
+ {
276
+ messageId: _crypto.randomUUID.call(void 0, ),
277
+ role: "USER" /* USER */,
278
+ timestamp: queryStartAt,
279
+ content: { type: "text", parts: [query] }
280
+ }
281
+ ])]);
282
+ const intent = await this.intentTriggering(query, thread);
283
+ const stream = this.intentFulfilling(query, threadId, thread, intent);
284
+ let finalResponseText = "";
285
+ for await (const event of stream) {
286
+ if (event.event === "text_chunk" && event.data.delta) {
287
+ _chunk466ED5WNcjs.loggers.intentStream.debug("text_chunk", { event });
288
+ finalResponseText += event.data.delta;
289
+ } else if (event.event === "tool_start") {
290
+ await _optionalChain([threadMemory, 'optionalAccess', _23 => _23.addMessagesToThread, 'call', _24 => _24(userId, threadId, [
291
+ {
292
+ messageId: _crypto.randomUUID.call(void 0, ),
293
+ role: "MODEL" /* MODEL */,
294
+ timestamp: Date.now(),
295
+ content: {
296
+ type: "text",
297
+ parts: [JSON.stringify(event.data.toolArgs)]
298
+ },
299
+ metadata: {
300
+ toolCallId: event.data.toolCallId,
301
+ toolName: event.data.toolName,
302
+ protocol: event.data.protocol
303
+ }
304
+ }
305
+ ])]);
306
+ } else if (event.event === "tool_output") {
307
+ await _optionalChain([threadMemory, 'optionalAccess', _25 => _25.addMessagesToThread, 'call', _26 => _26(userId, threadId, [
308
+ {
309
+ messageId: _crypto.randomUUID.call(void 0, ),
310
+ role: "MODEL" /* MODEL */,
311
+ timestamp: Date.now(),
312
+ content: { type: "text", parts: [event.data.result] },
313
+ metadata: {
314
+ toolCallId: event.data.toolCallId,
315
+ toolName: event.data.toolName,
316
+ protocol: event.data.protocol
317
+ }
318
+ }
319
+ ])]);
320
+ }
321
+ yield event;
322
+ }
323
+ await _optionalChain([threadMemory, 'optionalAccess', _27 => _27.addMessagesToThread, 'call', _28 => _28(userId, threadId, [
324
+ {
325
+ messageId: _crypto.randomUUID.call(void 0, ),
326
+ role: "MODEL" /* MODEL */,
327
+ timestamp: Date.now(),
328
+ content: { type: "text", parts: [finalResponseText] }
329
+ }
330
+ ])]);
331
+ }
332
+ };
333
+
334
+
335
+
336
+ exports.QueryStreamService = QueryStreamService;
337
+ //# sourceMappingURL=chunk-YTAWBEPQ.cjs.map