@ainetwork/adk 0.0.2 → 0.1.1
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/README.md +9 -39
- package/dist/cjs/chunk-5VIAH4HE.cjs +34 -0
- package/dist/cjs/chunk-5VIAH4HE.cjs.map +1 -0
- package/dist/cjs/chunk-6YJFC7BY.cjs +22 -0
- package/dist/cjs/chunk-6YJFC7BY.cjs.map +1 -0
- package/dist/cjs/chunk-7BZO57TG.cjs +111 -0
- package/dist/cjs/chunk-7BZO57TG.cjs.map +1 -0
- package/dist/cjs/chunk-AHMW3HCU.cjs +168 -0
- package/dist/cjs/chunk-AHMW3HCU.cjs.map +1 -0
- package/dist/cjs/chunk-CR53JLN7.cjs +37 -0
- package/dist/cjs/chunk-CR53JLN7.cjs.map +1 -0
- package/dist/cjs/chunk-D525HP3R.cjs +17 -0
- package/dist/cjs/chunk-D525HP3R.cjs.map +1 -0
- package/dist/cjs/chunk-DOFTYGJR.cjs +21 -0
- package/dist/cjs/chunk-DOFTYGJR.cjs.map +1 -0
- package/dist/cjs/chunk-DX2JH3FJ.cjs +13 -0
- package/dist/cjs/chunk-DX2JH3FJ.cjs.map +1 -0
- package/dist/cjs/chunk-DYRSSHDI.cjs +22 -0
- package/dist/cjs/chunk-DYRSSHDI.cjs.map +1 -0
- package/dist/cjs/chunk-E433ONEN.cjs +26 -0
- package/dist/cjs/chunk-E433ONEN.cjs.map +1 -0
- package/dist/cjs/chunk-EL3TFOO4.cjs +8 -0
- package/dist/cjs/chunk-EL3TFOO4.cjs.map +1 -0
- package/dist/cjs/chunk-F7I4G6JG.cjs +26 -0
- package/dist/cjs/chunk-F7I4G6JG.cjs.map +1 -0
- package/dist/cjs/chunk-ILGIEJCX.cjs +111 -0
- package/dist/cjs/chunk-ILGIEJCX.cjs.map +1 -0
- package/dist/cjs/chunk-JTAXZJQ2.cjs +40 -0
- package/dist/cjs/chunk-JTAXZJQ2.cjs.map +1 -0
- package/dist/cjs/chunk-KOQCHAYO.cjs +8 -0
- package/dist/cjs/chunk-KOQCHAYO.cjs.map +1 -0
- package/dist/cjs/chunk-LISZOU2X.cjs +20 -0
- package/dist/cjs/chunk-LISZOU2X.cjs.map +1 -0
- package/dist/cjs/chunk-LPXYZH22.cjs +11 -0
- package/dist/cjs/chunk-LPXYZH22.cjs.map +1 -0
- package/dist/cjs/chunk-MPIGSL72.cjs +42 -0
- package/dist/cjs/chunk-MPIGSL72.cjs.map +1 -0
- package/dist/cjs/chunk-MWX4THZT.cjs +100 -0
- package/dist/cjs/chunk-MWX4THZT.cjs.map +1 -0
- package/dist/cjs/chunk-N7NGEMKL.cjs +17 -0
- package/dist/cjs/chunk-N7NGEMKL.cjs.map +1 -0
- package/dist/cjs/chunk-QWASSVCU.cjs +52 -0
- package/dist/cjs/chunk-QWASSVCU.cjs.map +1 -0
- package/dist/cjs/chunk-SSSDO7PA.cjs +1 -0
- package/dist/cjs/chunk-SSSDO7PA.cjs.map +1 -0
- package/dist/cjs/chunk-V5RSN2DY.cjs +20 -0
- package/dist/cjs/chunk-V5RSN2DY.cjs.map +1 -0
- package/dist/cjs/chunk-VNM6OHT3.cjs +27 -0
- package/dist/cjs/chunk-VNM6OHT3.cjs.map +1 -0
- package/dist/cjs/chunk-WTT6FJEA.cjs +8 -0
- package/dist/cjs/chunk-WTT6FJEA.cjs.map +1 -0
- package/dist/cjs/chunk-YRNIZTPF.cjs +34 -0
- package/dist/cjs/chunk-YRNIZTPF.cjs.map +1 -0
- package/dist/cjs/chunk-ZMYG5HDT.cjs +171 -0
- package/dist/cjs/chunk-ZMYG5HDT.cjs.map +1 -0
- package/dist/cjs/controllers/a2a.controller.cjs +8 -0
- package/dist/cjs/controllers/a2a.controller.cjs.map +1 -0
- package/dist/cjs/controllers/api/model.api.controller.cjs +7 -0
- package/dist/cjs/controllers/api/model.api.controller.cjs.map +1 -0
- package/dist/cjs/controllers/api/session.api.controller.cjs +8 -0
- package/dist/cjs/controllers/api/session.api.controller.cjs.map +1 -0
- package/dist/cjs/controllers/index.cjs +21 -0
- package/dist/cjs/controllers/index.cjs.map +1 -0
- package/dist/cjs/controllers/query.controller.cjs +7 -0
- package/dist/cjs/controllers/query.controller.cjs.map +1 -0
- package/dist/cjs/index.cjs +728 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/middlewares/auth.middleware.cjs +8 -0
- package/dist/cjs/middlewares/auth.middleware.cjs.map +1 -0
- package/dist/cjs/middlewares/error.middleware.cjs +8 -0
- package/dist/cjs/middlewares/error.middleware.cjs.map +1 -0
- package/dist/cjs/modules/a2a/a2a.module.cjs +10 -0
- package/dist/cjs/modules/a2a/a2a.module.cjs.map +1 -0
- package/dist/cjs/modules/a2a/a2a.tool.cjs +8 -0
- package/dist/cjs/modules/a2a/a2a.tool.cjs.map +1 -0
- package/dist/cjs/modules/auth/base.auth.cjs +7 -0
- package/dist/cjs/modules/auth/base.auth.cjs.map +1 -0
- package/dist/cjs/modules/index.cjs +36 -0
- package/dist/cjs/modules/index.cjs.map +1 -0
- package/dist/cjs/modules/mcp/mcp.module.cjs +10 -0
- package/dist/cjs/modules/mcp/mcp.module.cjs.map +1 -0
- package/dist/cjs/modules/mcp/mcp.tool.cjs +8 -0
- package/dist/cjs/modules/mcp/mcp.tool.cjs.map +1 -0
- package/dist/cjs/modules/memory/base.memory.cjs +7 -0
- package/dist/cjs/modules/memory/base.memory.cjs.map +1 -0
- package/dist/cjs/modules/memory/memory.module.cjs +8 -0
- package/dist/cjs/modules/memory/memory.module.cjs.map +1 -0
- package/dist/cjs/modules/models/base.model.cjs +7 -0
- package/dist/cjs/modules/models/base.model.cjs.map +1 -0
- package/dist/cjs/modules/models/model.module.cjs +7 -0
- package/dist/cjs/modules/models/model.module.cjs.map +1 -0
- package/dist/cjs/routes/a2a.routes.cjs +13 -0
- package/dist/cjs/routes/a2a.routes.cjs.map +1 -0
- package/dist/cjs/routes/api/models.routes.cjs +8 -0
- package/dist/cjs/routes/api/models.routes.cjs.map +1 -0
- package/dist/cjs/routes/api/sessions.routes.cjs +9 -0
- package/dist/cjs/routes/api/sessions.routes.cjs.map +1 -0
- package/dist/cjs/routes/api.routes.cjs +12 -0
- package/dist/cjs/routes/api.routes.cjs.map +1 -0
- package/dist/cjs/routes/index.cjs +34 -0
- package/dist/cjs/routes/index.cjs.map +1 -0
- package/dist/cjs/routes/query.routes.cjs +12 -0
- package/dist/cjs/routes/query.routes.cjs.map +1 -0
- package/dist/cjs/services/a2a.service.cjs +8 -0
- package/dist/cjs/services/a2a.service.cjs.map +1 -0
- package/dist/cjs/services/index.cjs +14 -0
- package/dist/cjs/services/index.cjs.map +1 -0
- package/dist/cjs/services/query.service.cjs +10 -0
- package/dist/cjs/services/query.service.cjs.map +1 -0
- package/dist/cjs/types/agent.cjs +7 -0
- package/dist/cjs/types/agent.cjs.map +1 -0
- package/dist/cjs/types/mcp.cjs +1 -0
- package/dist/cjs/types/mcp.cjs.map +1 -0
- package/dist/cjs/types/memory.cjs +9 -0
- package/dist/cjs/types/memory.cjs.map +1 -0
- package/dist/cjs/types/tool.cjs +7 -0
- package/dist/cjs/types/tool.cjs.map +1 -0
- package/dist/cjs/utils/logger.cjs +11 -0
- package/dist/cjs/utils/logger.cjs.map +1 -0
- package/dist/esm/chunk-2Z7GJVJJ.js +17 -0
- package/dist/esm/chunk-2Z7GJVJJ.js.map +1 -0
- package/dist/esm/chunk-3LLHEUY2.js +26 -0
- package/dist/esm/chunk-3LLHEUY2.js.map +1 -0
- package/dist/esm/chunk-635VQ4CH.js +42 -0
- package/dist/esm/chunk-635VQ4CH.js.map +1 -0
- package/dist/esm/chunk-64GEXWSE.js +40 -0
- package/dist/esm/chunk-64GEXWSE.js.map +1 -0
- package/dist/esm/chunk-AQ5YZERE.js +111 -0
- package/dist/esm/chunk-AQ5YZERE.js.map +1 -0
- package/dist/esm/chunk-BTZVK3EA.js +100 -0
- package/dist/esm/chunk-BTZVK3EA.js.map +1 -0
- package/dist/esm/chunk-CH4XHVJY.js +37 -0
- package/dist/esm/chunk-CH4XHVJY.js.map +1 -0
- package/dist/esm/chunk-CQ6GXYN2.js +27 -0
- package/dist/esm/chunk-CQ6GXYN2.js.map +1 -0
- package/dist/esm/chunk-DGH3GB5I.js +26 -0
- package/dist/esm/chunk-DGH3GB5I.js.map +1 -0
- package/dist/esm/chunk-EODMRV4H.js +111 -0
- package/dist/esm/chunk-EODMRV4H.js.map +1 -0
- package/dist/esm/chunk-FI2UQLVC.js +11 -0
- package/dist/esm/chunk-FI2UQLVC.js.map +1 -0
- package/dist/esm/chunk-FL3JRQM4.js +13 -0
- package/dist/esm/chunk-FL3JRQM4.js.map +1 -0
- package/dist/esm/chunk-GZFRRFOE.js +8 -0
- package/dist/esm/chunk-GZFRRFOE.js.map +1 -0
- package/dist/esm/chunk-ILFWNK3W.js +22 -0
- package/dist/esm/chunk-ILFWNK3W.js.map +1 -0
- package/dist/esm/chunk-KJ4MVCYE.js +8 -0
- package/dist/esm/chunk-KJ4MVCYE.js.map +1 -0
- package/dist/esm/chunk-KUMCCCED.js +8 -0
- package/dist/esm/chunk-KUMCCCED.js.map +1 -0
- package/dist/esm/chunk-M4HGSCXF.js +17 -0
- package/dist/esm/chunk-M4HGSCXF.js.map +1 -0
- package/dist/esm/chunk-PHKK5NHK.js +52 -0
- package/dist/esm/chunk-PHKK5NHK.js.map +1 -0
- package/dist/esm/chunk-SQWZXP4P.js +168 -0
- package/dist/esm/chunk-SQWZXP4P.js.map +1 -0
- package/dist/esm/chunk-TMHRCGTE.js +20 -0
- package/dist/esm/chunk-TMHRCGTE.js.map +1 -0
- package/dist/esm/chunk-UA44VKFE.js +20 -0
- package/dist/esm/chunk-UA44VKFE.js.map +1 -0
- package/dist/esm/chunk-UZQZXNND.js +22 -0
- package/dist/esm/chunk-UZQZXNND.js.map +1 -0
- package/dist/esm/chunk-WZBXLGQK.js +171 -0
- package/dist/esm/chunk-WZBXLGQK.js.map +1 -0
- package/dist/esm/chunk-X47DAWPH.js +34 -0
- package/dist/esm/chunk-X47DAWPH.js.map +1 -0
- package/dist/esm/chunk-XOMQNCCR.js +21 -0
- package/dist/esm/chunk-XOMQNCCR.js.map +1 -0
- package/dist/esm/chunk-XPJK5O3I.js +34 -0
- package/dist/esm/chunk-XPJK5O3I.js.map +1 -0
- package/dist/esm/chunk-XYCWK2ZM.js +1 -0
- package/dist/esm/chunk-XYCWK2ZM.js.map +1 -0
- package/dist/esm/controllers/a2a.controller.d.ts +25 -6
- package/dist/esm/controllers/a2a.controller.js +7 -93
- package/dist/esm/controllers/a2a.controller.js.map +1 -1
- package/dist/esm/controllers/api/model.api.controller.d.ts +12 -4
- package/dist/esm/controllers/api/model.api.controller.js +6 -14
- package/dist/esm/controllers/api/model.api.controller.js.map +1 -1
- package/dist/esm/controllers/api/session.api.controller.d.ts +8 -4
- package/dist/esm/controllers/api/session.api.controller.js +7 -22
- package/dist/esm/controllers/api/session.api.controller.js.map +1 -1
- package/dist/esm/controllers/index.d.ts +25 -5
- package/dist/esm/controllers/index.js +20 -4
- package/dist/esm/controllers/index.js.map +1 -1
- package/dist/esm/controllers/query.controller.d.ts +23 -4
- package/dist/esm/controllers/query.controller.js +6 -15
- package/dist/esm/controllers/query.controller.js.map +1 -1
- package/dist/{cjs/app.d.ts → esm/index.d.ts} +23 -10
- package/dist/esm/index.js +728 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/middlewares/auth.middleware.d.ts +10 -0
- package/dist/esm/middlewares/auth.middleware.js +8 -0
- package/dist/esm/middlewares/auth.middleware.js.map +1 -0
- package/dist/esm/middlewares/error.middleware.d.ts +7 -4
- package/dist/esm/middlewares/error.middleware.js +6 -11
- package/dist/esm/middlewares/error.middleware.js.map +1 -1
- package/dist/esm/modules/a2a/a2a.module.d.ts +9 -4
- package/dist/esm/modules/a2a/a2a.module.js +9 -190
- package/dist/esm/modules/a2a/a2a.module.js.map +1 -1
- package/dist/esm/modules/a2a/a2a.tool.d.ts +8 -5
- package/dist/esm/modules/a2a/a2a.tool.js +7 -16
- package/dist/esm/modules/a2a/a2a.tool.js.map +1 -1
- package/dist/esm/modules/auth/base.auth.d.ts +7 -0
- package/dist/esm/modules/auth/base.auth.js +7 -0
- package/dist/esm/modules/auth/base.auth.js.map +1 -0
- package/dist/esm/modules/index.d.ts +17 -6
- package/dist/esm/modules/index.js +35 -5
- package/dist/esm/modules/index.js.map +1 -1
- package/dist/esm/modules/mcp/mcp.module.d.ts +11 -4
- package/dist/esm/modules/mcp/mcp.module.js +9 -113
- package/dist/esm/modules/mcp/mcp.module.js.map +1 -1
- package/dist/esm/modules/mcp/mcp.tool.d.ts +8 -4
- package/dist/esm/modules/mcp/mcp.tool.js +7 -17
- package/dist/esm/modules/mcp/mcp.tool.js.map +1 -1
- package/dist/esm/modules/memory/base.memory.d.ts +5 -3
- package/dist/esm/modules/memory/base.memory.js +6 -9
- package/dist/esm/modules/memory/base.memory.js.map +1 -1
- package/dist/esm/modules/memory/memory.module.d.ts +6 -4
- package/dist/esm/modules/memory/memory.module.js +7 -43
- package/dist/esm/modules/memory/memory.module.js.map +1 -1
- package/dist/esm/modules/models/base.model.d.ts +9 -4
- package/dist/esm/modules/models/base.model.js +6 -12
- package/dist/esm/modules/models/base.model.js.map +1 -1
- package/dist/esm/modules/models/model.module.d.ts +10 -3
- package/dist/esm/modules/models/model.module.js +6 -62
- package/dist/esm/modules/models/model.module.js.map +1 -1
- package/dist/esm/routes/a2a.routes.d.ts +24 -4
- package/dist/esm/routes/a2a.routes.js +11 -23
- package/dist/esm/routes/a2a.routes.js.map +1 -1
- package/dist/esm/routes/api/models.routes.d.ts +12 -4
- package/dist/esm/routes/api/models.routes.js +6 -8
- package/dist/esm/routes/api/models.routes.js.map +1 -1
- package/dist/esm/routes/api/sessions.routes.d.ts +8 -4
- package/dist/esm/routes/api/sessions.routes.js +7 -8
- package/dist/esm/routes/api/sessions.routes.js.map +1 -1
- package/dist/esm/routes/api.routes.d.ts +24 -4
- package/dist/esm/routes/api.routes.js +10 -10
- package/dist/esm/routes/api.routes.js.map +1 -1
- package/dist/esm/routes/index.d.ts +25 -5
- package/dist/esm/routes/index.js +33 -4
- package/dist/esm/routes/index.js.map +1 -1
- package/dist/esm/routes/query.routes.d.ts +24 -4
- package/dist/esm/routes/query.routes.js +10 -9
- package/dist/esm/routes/query.routes.js.map +1 -1
- package/dist/esm/services/a2a.service.d.ts +23 -4
- package/dist/esm/services/a2a.service.js +7 -88
- package/dist/esm/services/a2a.service.js.map +1 -1
- package/dist/esm/services/index.d.ts +20 -3
- package/dist/esm/services/index.js +13 -2
- package/dist/esm/services/index.js.map +1 -1
- package/dist/esm/services/query.service.d.ts +21 -4
- package/dist/esm/services/query.service.js +9 -157
- package/dist/esm/services/query.service.js.map +1 -1
- package/dist/esm/types/{index.d.ts → agent.d.ts} +7 -5
- package/dist/esm/types/agent.js +7 -0
- package/dist/esm/types/agent.js.map +1 -0
- package/dist/esm/types/mcp.d.ts +5 -3
- package/dist/esm/types/mcp.js +0 -1
- package/dist/esm/types/mcp.js.map +1 -1
- package/dist/esm/types/memory.d.ts +7 -6
- package/dist/esm/types/memory.js +8 -19
- package/dist/esm/types/memory.js.map +1 -1
- package/dist/esm/types/tool.d.ts +12 -10
- package/dist/esm/types/tool.js +6 -10
- package/dist/esm/types/tool.js.map +1 -1
- package/dist/esm/utils/logger.d.ts +7 -5
- package/dist/esm/utils/logger.js +9 -30
- package/dist/esm/utils/logger.js.map +1 -1
- package/package.json +32 -13
- package/dist/cjs/app.d.ts.map +0 -1
- package/dist/cjs/app.js +0 -170
- package/dist/cjs/app.js.map +0 -1
- package/dist/cjs/controllers/a2a.controller.d.ts +0 -15
- package/dist/cjs/controllers/a2a.controller.d.ts.map +0 -1
- package/dist/cjs/controllers/a2a.controller.js +0 -98
- package/dist/cjs/controllers/a2a.controller.js.map +0 -1
- package/dist/cjs/controllers/api/model.api.controller.d.ts +0 -8
- package/dist/cjs/controllers/api/model.api.controller.d.ts.map +0 -1
- package/dist/cjs/controllers/api/model.api.controller.js +0 -19
- package/dist/cjs/controllers/api/model.api.controller.js.map +0 -1
- package/dist/cjs/controllers/api/session.api.controller.d.ts +0 -8
- package/dist/cjs/controllers/api/session.api.controller.d.ts.map +0 -1
- package/dist/cjs/controllers/api/session.api.controller.js +0 -27
- package/dist/cjs/controllers/api/session.api.controller.js.map +0 -1
- package/dist/cjs/controllers/index.d.ts +0 -5
- package/dist/cjs/controllers/index.d.ts.map +0 -1
- package/dist/cjs/controllers/index.js +0 -12
- package/dist/cjs/controllers/index.js.map +0 -1
- package/dist/cjs/controllers/query.controller.d.ts +0 -8
- package/dist/cjs/controllers/query.controller.d.ts.map +0 -1
- package/dist/cjs/controllers/query.controller.js +0 -20
- package/dist/cjs/controllers/query.controller.js.map +0 -1
- package/dist/cjs/middlewares/auth/base.d.ts +0 -5
- package/dist/cjs/middlewares/auth/base.d.ts.map +0 -1
- package/dist/cjs/middlewares/auth/base.js +0 -13
- package/dist/cjs/middlewares/auth/base.js.map +0 -1
- package/dist/cjs/middlewares/base.auth.middleware.d.ts +0 -5
- package/dist/cjs/middlewares/base.auth.middleware.d.ts.map +0 -1
- package/dist/cjs/middlewares/base.auth.middleware.js +0 -13
- package/dist/cjs/middlewares/base.auth.middleware.js.map +0 -1
- package/dist/cjs/middlewares/error.middleware.d.ts +0 -4
- package/dist/cjs/middlewares/error.middleware.d.ts.map +0 -1
- package/dist/cjs/middlewares/error.middleware.js +0 -17
- package/dist/cjs/middlewares/error.middleware.js.map +0 -1
- package/dist/cjs/modules/a2a/a2a.module.d.ts +0 -71
- package/dist/cjs/modules/a2a/a2a.module.d.ts.map +0 -1
- package/dist/cjs/modules/a2a/a2a.module.js +0 -195
- package/dist/cjs/modules/a2a/a2a.module.js.map +0 -1
- package/dist/cjs/modules/a2a/a2a.tool.d.ts +0 -14
- package/dist/cjs/modules/a2a/a2a.tool.d.ts.map +0 -1
- package/dist/cjs/modules/a2a/a2a.tool.js +0 -21
- package/dist/cjs/modules/a2a/a2a.tool.js.map +0 -1
- package/dist/cjs/modules/fol/fol.module.d.ts +0 -31
- package/dist/cjs/modules/fol/fol.module.d.ts.map +0 -1
- package/dist/cjs/modules/fol/fol.module.js +0 -184
- package/dist/cjs/modules/fol/fol.module.js.map +0 -1
- package/dist/cjs/modules/fol/store/base.d.ts +0 -9
- package/dist/cjs/modules/fol/store/base.d.ts.map +0 -1
- package/dist/cjs/modules/fol/store/base.js +0 -7
- package/dist/cjs/modules/fol/store/base.js.map +0 -1
- package/dist/cjs/modules/fol/store/index.d.ts +0 -3
- package/dist/cjs/modules/fol/store/index.d.ts.map +0 -1
- package/dist/cjs/modules/fol/store/index.js +0 -8
- package/dist/cjs/modules/fol/store/index.js.map +0 -1
- package/dist/cjs/modules/fol/store/local.d.ts +0 -25
- package/dist/cjs/modules/fol/store/local.d.ts.map +0 -1
- package/dist/cjs/modules/fol/store/local.js +0 -221
- package/dist/cjs/modules/fol/store/local.js.map +0 -1
- package/dist/cjs/modules/index.d.ts +0 -6
- package/dist/cjs/modules/index.d.ts.map +0 -1
- package/dist/cjs/modules/index.js +0 -14
- package/dist/cjs/modules/index.js.map +0 -1
- package/dist/cjs/modules/mcp/mcp.module.d.ts +0 -65
- package/dist/cjs/modules/mcp/mcp.module.d.ts.map +0 -1
- package/dist/cjs/modules/mcp/mcp.module.js +0 -118
- package/dist/cjs/modules/mcp/mcp.module.js.map +0 -1
- package/dist/cjs/modules/mcp/mcp.tool.d.ts +0 -13
- package/dist/cjs/modules/mcp/mcp.tool.d.ts.map +0 -1
- package/dist/cjs/modules/mcp/mcp.tool.js +0 -22
- package/dist/cjs/modules/mcp/mcp.tool.js.map +0 -1
- package/dist/cjs/modules/memory/base/index.d.ts +0 -33
- package/dist/cjs/modules/memory/base/index.d.ts.map +0 -1
- package/dist/cjs/modules/memory/base/index.js +0 -14
- package/dist/cjs/modules/memory/base/index.js.map +0 -1
- package/dist/cjs/modules/memory/base.memory.d.ts +0 -33
- package/dist/cjs/modules/memory/base.memory.d.ts.map +0 -1
- package/dist/cjs/modules/memory/base.memory.js +0 -14
- package/dist/cjs/modules/memory/base.memory.js.map +0 -1
- package/dist/cjs/modules/memory/memory.module.d.ts +0 -35
- package/dist/cjs/modules/memory/memory.module.d.ts.map +0 -1
- package/dist/cjs/modules/memory/memory.module.js +0 -48
- package/dist/cjs/modules/memory/memory.module.js.map +0 -1
- package/dist/cjs/modules/memory/providers/inmemory.d.ts +0 -14
- package/dist/cjs/modules/memory/providers/inmemory.d.ts.map +0 -1
- package/dist/cjs/modules/memory/providers/inmemory.js +0 -27
- package/dist/cjs/modules/memory/providers/inmemory.js.map +0 -1
- package/dist/cjs/modules/memory/providers/mongodb/index.d.ts +0 -12
- package/dist/cjs/modules/memory/providers/mongodb/index.d.ts.map +0 -1
- package/dist/cjs/modules/memory/providers/mongodb/index.js +0 -91
- package/dist/cjs/modules/memory/providers/mongodb/index.js.map +0 -1
- package/dist/cjs/modules/memory/providers/mongodb/models/chats.model.d.ts +0 -26
- package/dist/cjs/modules/memory/providers/mongodb/models/chats.model.d.ts.map +0 -1
- package/dist/cjs/modules/memory/providers/mongodb/models/chats.model.js +0 -79
- package/dist/cjs/modules/memory/providers/mongodb/models/chats.model.js.map +0 -1
- package/dist/cjs/modules/memory/providers/mongodb/models/intentTriggeringInfos.model.d.ts +0 -27
- package/dist/cjs/modules/memory/providers/mongodb/models/intentTriggeringInfos.model.d.ts.map +0 -1
- package/dist/cjs/modules/memory/providers/mongodb/models/intentTriggeringInfos.model.js +0 -59
- package/dist/cjs/modules/memory/providers/mongodb/models/intentTriggeringInfos.model.js.map +0 -1
- package/dist/cjs/modules/models/base/index.d.ts +0 -57
- package/dist/cjs/modules/models/base/index.d.ts.map +0 -1
- package/dist/cjs/modules/models/base/index.js +0 -17
- package/dist/cjs/modules/models/base/index.js.map +0 -1
- package/dist/cjs/modules/models/base.model.d.ts +0 -57
- package/dist/cjs/modules/models/base.model.d.ts.map +0 -1
- package/dist/cjs/modules/models/base.model.js +0 -17
- package/dist/cjs/modules/models/base.model.js.map +0 -1
- package/dist/cjs/modules/models/model.module.d.ts +0 -33
- package/dist/cjs/modules/models/model.module.d.ts.map +0 -1
- package/dist/cjs/modules/models/model.module.js +0 -67
- package/dist/cjs/modules/models/model.module.js.map +0 -1
- package/dist/cjs/modules/models/providers/gemini.d.ts +0 -20
- package/dist/cjs/modules/models/providers/gemini.d.ts.map +0 -1
- package/dist/cjs/modules/models/providers/gemini.js +0 -111
- package/dist/cjs/modules/models/providers/gemini.js.map +0 -1
- package/dist/cjs/modules/models/providers/openai.d.ts +0 -20
- package/dist/cjs/modules/models/providers/openai.d.ts.map +0 -1
- package/dist/cjs/modules/models/providers/openai.js +0 -117
- package/dist/cjs/modules/models/providers/openai.js.map +0 -1
- package/dist/cjs/package.json +0 -1
- package/dist/cjs/routes/a2a.routes.d.ts +0 -12
- package/dist/cjs/routes/a2a.routes.d.ts.map +0 -1
- package/dist/cjs/routes/a2a.routes.js +0 -29
- package/dist/cjs/routes/a2a.routes.js.map +0 -1
- package/dist/cjs/routes/api/models.routes.d.ts +0 -4
- package/dist/cjs/routes/api/models.routes.d.ts.map +0 -1
- package/dist/cjs/routes/api/models.routes.js +0 -14
- package/dist/cjs/routes/api/models.routes.js.map +0 -1
- package/dist/cjs/routes/api/sessions.routes.d.ts +0 -4
- package/dist/cjs/routes/api/sessions.routes.d.ts.map +0 -1
- package/dist/cjs/routes/api/sessions.routes.js +0 -14
- package/dist/cjs/routes/api/sessions.routes.js.map +0 -1
- package/dist/cjs/routes/api.routes.d.ts +0 -4
- package/dist/cjs/routes/api.routes.d.ts.map +0 -1
- package/dist/cjs/routes/api.routes.js +0 -16
- package/dist/cjs/routes/api.routes.js.map +0 -1
- package/dist/cjs/routes/index.d.ts +0 -5
- package/dist/cjs/routes/index.d.ts.map +0 -1
- package/dist/cjs/routes/index.js +0 -10
- package/dist/cjs/routes/index.js.map +0 -1
- package/dist/cjs/routes/query.routes.d.ts +0 -4
- package/dist/cjs/routes/query.routes.d.ts.map +0 -1
- package/dist/cjs/routes/query.routes.js +0 -15
- package/dist/cjs/routes/query.routes.js.map +0 -1
- package/dist/cjs/services/a2a.service.d.ts +0 -15
- package/dist/cjs/services/a2a.service.d.ts.map +0 -1
- package/dist/cjs/services/a2a.service.js +0 -93
- package/dist/cjs/services/a2a.service.js.map +0 -1
- package/dist/cjs/services/index.d.ts +0 -3
- package/dist/cjs/services/index.d.ts.map +0 -1
- package/dist/cjs/services/index.js +0 -8
- package/dist/cjs/services/index.js.map +0 -1
- package/dist/cjs/services/query.service.d.ts +0 -57
- package/dist/cjs/services/query.service.d.ts.map +0 -1
- package/dist/cjs/services/query.service.js +0 -162
- package/dist/cjs/services/query.service.js.map +0 -1
- package/dist/cjs/types/fol.d.ts +0 -38
- package/dist/cjs/types/fol.d.ts.map +0 -1
- package/dist/cjs/types/fol.js +0 -3
- package/dist/cjs/types/fol.js.map +0 -1
- package/dist/cjs/types/index.d.ts +0 -49
- package/dist/cjs/types/index.d.ts.map +0 -1
- package/dist/cjs/types/index.js +0 -11
- package/dist/cjs/types/index.js.map +0 -1
- package/dist/cjs/types/mcp.d.ts +0 -5
- package/dist/cjs/types/mcp.d.ts.map +0 -1
- package/dist/cjs/types/mcp.js +0 -3
- package/dist/cjs/types/mcp.js.map +0 -1
- package/dist/cjs/types/memory.d.ts +0 -79
- package/dist/cjs/types/memory.d.ts.map +0 -1
- package/dist/cjs/types/memory.js +0 -23
- package/dist/cjs/types/memory.js.map +0 -1
- package/dist/cjs/types/tool.d.ts +0 -88
- package/dist/cjs/types/tool.d.ts.map +0 -1
- package/dist/cjs/types/tool.js +0 -14
- package/dist/cjs/types/tool.js.map +0 -1
- package/dist/cjs/utils/logger.d.ts +0 -13
- package/dist/cjs/utils/logger.d.ts.map +0 -1
- package/dist/cjs/utils/logger.js +0 -39
- package/dist/cjs/utils/logger.js.map +0 -1
- package/dist/esm/app.d.ts +0 -102
- package/dist/esm/app.d.ts.map +0 -1
- package/dist/esm/app.js +0 -163
- package/dist/esm/app.js.map +0 -1
- package/dist/esm/controllers/a2a.controller.d.ts.map +0 -1
- package/dist/esm/controllers/api/model.api.controller.d.ts.map +0 -1
- package/dist/esm/controllers/api/session.api.controller.d.ts.map +0 -1
- package/dist/esm/controllers/index.d.ts.map +0 -1
- package/dist/esm/controllers/query.controller.d.ts.map +0 -1
- package/dist/esm/middlewares/auth/base.d.ts +0 -5
- package/dist/esm/middlewares/auth/base.d.ts.map +0 -1
- package/dist/esm/middlewares/auth/base.js +0 -9
- package/dist/esm/middlewares/auth/base.js.map +0 -1
- package/dist/esm/middlewares/base.auth.middleward.d.ts +0 -5
- package/dist/esm/middlewares/base.auth.middleward.d.ts.map +0 -1
- package/dist/esm/middlewares/base.auth.middleward.js +0 -9
- package/dist/esm/middlewares/base.auth.middleward.js.map +0 -1
- package/dist/esm/middlewares/base.auth.middleware.d.ts +0 -5
- package/dist/esm/middlewares/base.auth.middleware.d.ts.map +0 -1
- package/dist/esm/middlewares/base.auth.middleware.js +0 -9
- package/dist/esm/middlewares/base.auth.middleware.js.map +0 -1
- package/dist/esm/middlewares/error.middleware.d.ts.map +0 -1
- package/dist/esm/modules/a2a/a2a.module.d.ts.map +0 -1
- package/dist/esm/modules/a2a/a2a.tool.d.ts.map +0 -1
- package/dist/esm/modules/fol/fol.module.d.ts +0 -31
- package/dist/esm/modules/fol/fol.module.d.ts.map +0 -1
- package/dist/esm/modules/fol/fol.module.js +0 -180
- package/dist/esm/modules/fol/fol.module.js.map +0 -1
- package/dist/esm/modules/fol/store/base.d.ts +0 -9
- package/dist/esm/modules/fol/store/base.d.ts.map +0 -1
- package/dist/esm/modules/fol/store/base.js +0 -3
- package/dist/esm/modules/fol/store/base.js.map +0 -1
- package/dist/esm/modules/fol/store/index.d.ts +0 -3
- package/dist/esm/modules/fol/store/index.d.ts.map +0 -1
- package/dist/esm/modules/fol/store/index.js +0 -3
- package/dist/esm/modules/fol/store/index.js.map +0 -1
- package/dist/esm/modules/fol/store/local.d.ts +0 -25
- package/dist/esm/modules/fol/store/local.d.ts.map +0 -1
- package/dist/esm/modules/fol/store/local.js +0 -214
- package/dist/esm/modules/fol/store/local.js.map +0 -1
- package/dist/esm/modules/index.d.ts.map +0 -1
- package/dist/esm/modules/mcp/mcp.module.d.ts.map +0 -1
- package/dist/esm/modules/mcp/mcp.tool.d.ts.map +0 -1
- package/dist/esm/modules/memory/base/index.d.ts +0 -33
- package/dist/esm/modules/memory/base/index.d.ts.map +0 -1
- package/dist/esm/modules/memory/base/index.js +0 -10
- package/dist/esm/modules/memory/base/index.js.map +0 -1
- package/dist/esm/modules/memory/base.memory.d.ts.map +0 -1
- package/dist/esm/modules/memory/memory.module.d.ts.map +0 -1
- package/dist/esm/modules/memory/providers/inmemory.d.ts +0 -14
- package/dist/esm/modules/memory/providers/inmemory.d.ts.map +0 -1
- package/dist/esm/modules/memory/providers/inmemory.js +0 -23
- package/dist/esm/modules/memory/providers/inmemory.js.map +0 -1
- package/dist/esm/modules/memory/providers/mongodb/index.d.ts +0 -12
- package/dist/esm/modules/memory/providers/mongodb/index.d.ts.map +0 -1
- package/dist/esm/modules/memory/providers/mongodb/index.js +0 -84
- package/dist/esm/modules/memory/providers/mongodb/index.js.map +0 -1
- package/dist/esm/modules/memory/providers/mongodb/models/chats.model.d.ts +0 -26
- package/dist/esm/modules/memory/providers/mongodb/models/chats.model.d.ts.map +0 -1
- package/dist/esm/modules/memory/providers/mongodb/models/chats.model.js +0 -43
- package/dist/esm/modules/memory/providers/mongodb/models/chats.model.js.map +0 -1
- package/dist/esm/modules/memory/providers/mongodb/models/intentTriggeringInfos.model.d.ts +0 -27
- package/dist/esm/modules/memory/providers/mongodb/models/intentTriggeringInfos.model.d.ts.map +0 -1
- package/dist/esm/modules/memory/providers/mongodb/models/intentTriggeringInfos.model.js +0 -23
- package/dist/esm/modules/memory/providers/mongodb/models/intentTriggeringInfos.model.js.map +0 -1
- package/dist/esm/modules/models/base/index.d.ts +0 -57
- package/dist/esm/modules/models/base/index.d.ts.map +0 -1
- package/dist/esm/modules/models/base/index.js +0 -13
- package/dist/esm/modules/models/base/index.js.map +0 -1
- package/dist/esm/modules/models/base.model.d.ts.map +0 -1
- package/dist/esm/modules/models/model.module.d.ts.map +0 -1
- package/dist/esm/modules/models/providers/gemini.d.ts +0 -20
- package/dist/esm/modules/models/providers/gemini.d.ts.map +0 -1
- package/dist/esm/modules/models/providers/gemini.js +0 -107
- package/dist/esm/modules/models/providers/gemini.js.map +0 -1
- package/dist/esm/modules/models/providers/openai.d.ts +0 -20
- package/dist/esm/modules/models/providers/openai.d.ts.map +0 -1
- package/dist/esm/modules/models/providers/openai.js +0 -113
- package/dist/esm/modules/models/providers/openai.js.map +0 -1
- package/dist/esm/package.json +0 -1
- package/dist/esm/routes/a2a.routes.d.ts.map +0 -1
- package/dist/esm/routes/api/models.routes.d.ts.map +0 -1
- package/dist/esm/routes/api/sessions.routes.d.ts.map +0 -1
- package/dist/esm/routes/api.routes.d.ts.map +0 -1
- package/dist/esm/routes/index.d.ts.map +0 -1
- package/dist/esm/routes/query.routes.d.ts.map +0 -1
- package/dist/esm/services/a2a.service.d.ts.map +0 -1
- package/dist/esm/services/index.d.ts.map +0 -1
- package/dist/esm/services/query.service.d.ts.map +0 -1
- package/dist/esm/types/fol.d.ts +0 -38
- package/dist/esm/types/fol.d.ts.map +0 -1
- package/dist/esm/types/fol.js +0 -2
- package/dist/esm/types/fol.js.map +0 -1
- package/dist/esm/types/index.d.ts.map +0 -1
- package/dist/esm/types/index.js +0 -7
- package/dist/esm/types/index.js.map +0 -1
- package/dist/esm/types/mcp.d.ts.map +0 -1
- package/dist/esm/types/memory.d.ts.map +0 -1
- package/dist/esm/types/tool.d.ts.map +0 -1
- package/dist/esm/utils/logger.d.ts.map +0 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AinHttpError
|
|
3
|
+
} from "./chunk-FL3JRQM4.js";
|
|
4
|
+
|
|
5
|
+
// src/middlewares/auth.middleware.ts
|
|
6
|
+
import { StatusCodes } from "http-status-codes";
|
|
7
|
+
var AuthMiddleware = class {
|
|
8
|
+
auth;
|
|
9
|
+
constructor(auth) {
|
|
10
|
+
this.auth = auth;
|
|
11
|
+
}
|
|
12
|
+
middleware() {
|
|
13
|
+
return async (req, res, next) => {
|
|
14
|
+
try {
|
|
15
|
+
const isAuthenticated = await this.auth.authenticate(req, res);
|
|
16
|
+
if (isAuthenticated) {
|
|
17
|
+
next();
|
|
18
|
+
} else {
|
|
19
|
+
const error = new AinHttpError(
|
|
20
|
+
StatusCodes.UNAUTHORIZED,
|
|
21
|
+
"Unauthorized"
|
|
22
|
+
);
|
|
23
|
+
throw error;
|
|
24
|
+
}
|
|
25
|
+
} catch (e) {
|
|
26
|
+
if (!e.status) {
|
|
27
|
+
const error = new AinHttpError(
|
|
28
|
+
StatusCodes.INTERNAL_SERVER_ERROR,
|
|
29
|
+
`Authentication error: ${JSON.stringify(e)}`
|
|
30
|
+
);
|
|
31
|
+
throw error;
|
|
32
|
+
}
|
|
33
|
+
throw e;
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export {
|
|
40
|
+
AuthMiddleware
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=chunk-635VQ4CH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/middlewares/auth.middleware.ts"],"sourcesContent":["import type { NextFunction, Request, RequestHandler, Response } from \"express\";\nimport { StatusCodes } from \"http-status-codes\";\nimport type { BaseAuth } from \"@/modules/auth/base.auth\";\nimport { AinHttpError } from \"@/types/agent\";\n\nexport class AuthMiddleware {\n\tprivate auth: BaseAuth;\n\tconstructor(auth: BaseAuth) {\n\t\tthis.auth = auth;\n\t}\n\n\tpublic middleware(): RequestHandler {\n\t\treturn async (req: Request, res: Response, next: NextFunction) => {\n\t\t\ttry {\n\t\t\t\tconst isAuthenticated = await this.auth.authenticate(req, res);\n\t\t\t\tif (isAuthenticated) {\n\t\t\t\t\tnext();\n\t\t\t\t} else {\n\t\t\t\t\tconst error: AinHttpError = new AinHttpError(\n\t\t\t\t\t\tStatusCodes.UNAUTHORIZED,\n\t\t\t\t\t\t\"Unauthorized\",\n\t\t\t\t\t);\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t} catch (e: any) {\n\t\t\t\tif (!e.status) {\n\t\t\t\t\tconst error: AinHttpError = new AinHttpError(\n\t\t\t\t\t\tStatusCodes.INTERNAL_SERVER_ERROR,\n\t\t\t\t\t\t`Authentication error: ${JSON.stringify(e)}`,\n\t\t\t\t\t);\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t};\n\t}\n}\n"],"mappings":";;;;;AACA,SAAS,mBAAmB;AAIrB,IAAM,iBAAN,MAAqB;AAAA,EACnB;AAAA,EACR,YAAY,MAAgB;AAC3B,SAAK,OAAO;AAAA,EACb;AAAA,EAEO,aAA6B;AACnC,WAAO,OAAO,KAAc,KAAe,SAAuB;AACjE,UAAI;AACH,cAAM,kBAAkB,MAAM,KAAK,KAAK,aAAa,KAAK,GAAG;AAC7D,YAAI,iBAAiB;AACpB,eAAK;AAAA,QACN,OAAO;AACN,gBAAM,QAAsB,IAAI;AAAA,YAC/B,YAAY;AAAA,YACZ;AAAA,UACD;AACA,gBAAM;AAAA,QACP;AAAA,MACD,SAAS,GAAQ;AAChB,YAAI,CAAC,EAAE,QAAQ;AACd,gBAAM,QAAsB,IAAI;AAAA,YAC/B,YAAY;AAAA,YACZ,yBAAyB,KAAK,UAAU,CAAC,CAAC;AAAA,UAC3C;AACA,gBAAM;AAAA,QACP;AACA,cAAM;AAAA,MACP;AAAA,IACD;AAAA,EACD;AACD;","names":[]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// src/utils/logger.ts
|
|
2
|
+
import winston from "winston";
|
|
3
|
+
var { combine, timestamp, printf, colorize, errors } = winston.format;
|
|
4
|
+
var createLogger = (service) => {
|
|
5
|
+
const logger2 = winston.createLogger({
|
|
6
|
+
level: (process.env.LOG_LEVEL || "info").toLowerCase(),
|
|
7
|
+
format: combine(
|
|
8
|
+
errors({ stack: true }),
|
|
9
|
+
colorize(),
|
|
10
|
+
timestamp({ format: "HH:mm:ss" }),
|
|
11
|
+
printf(({ level, message, timestamp: timestamp2, service: service2, stack, ...meta }) => {
|
|
12
|
+
const metaStr = Object.keys(meta).length ? ` | ${JSON.stringify(meta)}` : "";
|
|
13
|
+
const errorStack = stack ? `
|
|
14
|
+
${stack}` : "";
|
|
15
|
+
return `${timestamp2} [${service2}] ${level}: ${message}${metaStr}${errorStack}`;
|
|
16
|
+
})
|
|
17
|
+
),
|
|
18
|
+
defaultMeta: { service },
|
|
19
|
+
transports: [new winston.transports.Console()]
|
|
20
|
+
});
|
|
21
|
+
return logger2;
|
|
22
|
+
};
|
|
23
|
+
var logger = createLogger("ain-adk");
|
|
24
|
+
var getLogger = (service) => createLogger(service);
|
|
25
|
+
var loggers = {
|
|
26
|
+
agent: getLogger("AINAgent"),
|
|
27
|
+
intent: getLogger("Intent"),
|
|
28
|
+
mcp: getLogger("MCPModule"),
|
|
29
|
+
a2a: getLogger("A2AModule"),
|
|
30
|
+
model: getLogger("Model"),
|
|
31
|
+
server: getLogger("A2AServer"),
|
|
32
|
+
fol: getLogger("FOL")
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export {
|
|
36
|
+
logger,
|
|
37
|
+
getLogger,
|
|
38
|
+
loggers
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=chunk-64GEXWSE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/logger.ts"],"sourcesContent":["import winston from \"winston\";\n\nconst { combine, timestamp, printf, colorize, errors } = winston.format;\n\nconst createLogger = (service: string) => {\n\tconst logger = winston.createLogger({\n\t\tlevel: (process.env.LOG_LEVEL || \"info\").toLowerCase(),\n\t\tformat: combine(\n\t\t\terrors({ stack: true }),\n\t\t\tcolorize(),\n\t\t\ttimestamp({ format: \"HH:mm:ss\" }),\n\t\t\tprintf(({ level, message, timestamp, service, stack, ...meta }) => {\n\t\t\t\tconst metaStr = Object.keys(meta).length\n\t\t\t\t\t? ` | ${JSON.stringify(meta)}`\n\t\t\t\t\t: \"\";\n\t\t\t\tconst errorStack = stack ? `\\n${stack}` : \"\";\n\t\t\t\treturn `${timestamp} [${service}] ${level}: ${message}${metaStr}${errorStack}`;\n\t\t\t}),\n\t\t),\n\t\tdefaultMeta: { service },\n\t\ttransports: [new winston.transports.Console()],\n\t});\n\n\treturn logger;\n};\n\n// Default logger instance\nexport const logger = createLogger(\"ain-adk\");\n\n// Factory function for creating service-specific loggers\nexport const getLogger = (service: string) => createLogger(service);\n\n// Convenience methods for different components\nexport const loggers = {\n\tagent: getLogger(\"AINAgent\"),\n\tintent: getLogger(\"Intent\"),\n\tmcp: getLogger(\"MCPModule\"),\n\ta2a: getLogger(\"A2AModule\"),\n\tmodel: getLogger(\"Model\"),\n\tserver: getLogger(\"A2AServer\"),\n\tfol: getLogger(\"FOL\"),\n} as const;\n"],"mappings":";AAAA,OAAO,aAAa;AAEpB,IAAM,EAAE,SAAS,WAAW,QAAQ,UAAU,OAAO,IAAI,QAAQ;AAEjE,IAAM,eAAe,CAAC,YAAoB;AACzC,QAAMA,UAAS,QAAQ,aAAa;AAAA,IACnC,QAAQ,QAAQ,IAAI,aAAa,QAAQ,YAAY;AAAA,IACrD,QAAQ;AAAA,MACP,OAAO,EAAE,OAAO,KAAK,CAAC;AAAA,MACtB,SAAS;AAAA,MACT,UAAU,EAAE,QAAQ,WAAW,CAAC;AAAA,MAChC,OAAO,CAAC,EAAE,OAAO,SAAS,WAAAC,YAAW,SAAAC,UAAS,OAAO,GAAG,KAAK,MAAM;AAClE,cAAM,UAAU,OAAO,KAAK,IAAI,EAAE,SAC/B,MAAM,KAAK,UAAU,IAAI,CAAC,KAC1B;AACH,cAAM,aAAa,QAAQ;AAAA,EAAK,KAAK,KAAK;AAC1C,eAAO,GAAGD,UAAS,KAAKC,QAAO,KAAK,KAAK,KAAK,OAAO,GAAG,OAAO,GAAG,UAAU;AAAA,MAC7E,CAAC;AAAA,IACF;AAAA,IACA,aAAa,EAAE,QAAQ;AAAA,IACvB,YAAY,CAAC,IAAI,QAAQ,WAAW,QAAQ,CAAC;AAAA,EAC9C,CAAC;AAED,SAAOF;AACR;AAGO,IAAM,SAAS,aAAa,SAAS;AAGrC,IAAM,YAAY,CAAC,YAAoB,aAAa,OAAO;AAG3D,IAAM,UAAU;AAAA,EACtB,OAAO,UAAU,UAAU;AAAA,EAC3B,QAAQ,UAAU,QAAQ;AAAA,EAC1B,KAAK,UAAU,WAAW;AAAA,EAC1B,KAAK,UAAU,WAAW;AAAA,EAC1B,OAAO,UAAU,OAAO;AAAA,EACxB,QAAQ,UAAU,WAAW;AAAA,EAC7B,KAAK,UAAU,KAAK;AACrB;","names":["logger","timestamp","service"]}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import {
|
|
2
|
+
loggers
|
|
3
|
+
} from "./chunk-64GEXWSE.js";
|
|
4
|
+
|
|
5
|
+
// src/services/a2a.service.ts
|
|
6
|
+
import { randomUUID } from "crypto";
|
|
7
|
+
var A2AService = class {
|
|
8
|
+
queryService;
|
|
9
|
+
canceledTasks = /* @__PURE__ */ new Set();
|
|
10
|
+
constructor(queryService) {
|
|
11
|
+
this.queryService = queryService;
|
|
12
|
+
}
|
|
13
|
+
cancelTask = async (taskId, _eventBus) => {
|
|
14
|
+
this.canceledTasks.add(taskId);
|
|
15
|
+
};
|
|
16
|
+
createTaskStatusUpdateEvent = (taskId, contextId, state, message) => {
|
|
17
|
+
return {
|
|
18
|
+
kind: "status-update",
|
|
19
|
+
taskId,
|
|
20
|
+
contextId,
|
|
21
|
+
status: {
|
|
22
|
+
state,
|
|
23
|
+
message: message ? {
|
|
24
|
+
kind: "message",
|
|
25
|
+
role: "agent",
|
|
26
|
+
messageId: randomUUID(),
|
|
27
|
+
parts: [{ kind: "text", text: message }],
|
|
28
|
+
taskId,
|
|
29
|
+
contextId
|
|
30
|
+
} : void 0,
|
|
31
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
32
|
+
},
|
|
33
|
+
final: state !== "working"
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
async execute(requestContext, eventBus) {
|
|
37
|
+
const userMessage = requestContext.userMessage;
|
|
38
|
+
const { sessionId } = userMessage.metadata;
|
|
39
|
+
const existingTask = requestContext.task;
|
|
40
|
+
const taskId = existingTask?.id || randomUUID();
|
|
41
|
+
const contextId = userMessage.contextId || existingTask?.contextId || randomUUID();
|
|
42
|
+
if (!existingTask) {
|
|
43
|
+
const initialTask = {
|
|
44
|
+
kind: "task",
|
|
45
|
+
id: taskId,
|
|
46
|
+
contextId,
|
|
47
|
+
status: {
|
|
48
|
+
state: "submitted",
|
|
49
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
50
|
+
},
|
|
51
|
+
history: [userMessage],
|
|
52
|
+
metadata: userMessage.metadata,
|
|
53
|
+
artifacts: []
|
|
54
|
+
};
|
|
55
|
+
eventBus.publish(initialTask);
|
|
56
|
+
}
|
|
57
|
+
const workingStatusUpdate = this.createTaskStatusUpdateEvent(
|
|
58
|
+
taskId,
|
|
59
|
+
contextId,
|
|
60
|
+
"working"
|
|
61
|
+
);
|
|
62
|
+
eventBus.publish(workingStatusUpdate);
|
|
63
|
+
const message = userMessage.parts.filter((part) => part.kind === "text").map((part) => part.text).join("\n");
|
|
64
|
+
if (message.length === 0) {
|
|
65
|
+
loggers.server.warn(`Empty message received for task ${taskId}.`);
|
|
66
|
+
const failureUpdate = this.createTaskStatusUpdateEvent(
|
|
67
|
+
taskId,
|
|
68
|
+
contextId,
|
|
69
|
+
"failed",
|
|
70
|
+
"No message found to process."
|
|
71
|
+
);
|
|
72
|
+
eventBus.publish(failureUpdate);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
try {
|
|
76
|
+
const response = await this.queryService.handleQuery(message, sessionId);
|
|
77
|
+
if (this.canceledTasks.has(taskId)) {
|
|
78
|
+
loggers.server.info(`Task ${taskId} was canceled.`);
|
|
79
|
+
const canceledUpdate = this.createTaskStatusUpdateEvent(
|
|
80
|
+
taskId,
|
|
81
|
+
contextId,
|
|
82
|
+
"canceled"
|
|
83
|
+
);
|
|
84
|
+
eventBus.publish(canceledUpdate);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const finalUpdate = this.createTaskStatusUpdateEvent(
|
|
88
|
+
taskId,
|
|
89
|
+
contextId,
|
|
90
|
+
"completed",
|
|
91
|
+
response.content
|
|
92
|
+
);
|
|
93
|
+
eventBus.publish(finalUpdate);
|
|
94
|
+
loggers.server.info(`Task ${taskId} completed successfully.`);
|
|
95
|
+
} catch (error) {
|
|
96
|
+
loggers.server.error(`Error processing task ${taskId}:`, error);
|
|
97
|
+
const errorUpdate = this.createTaskStatusUpdateEvent(
|
|
98
|
+
taskId,
|
|
99
|
+
contextId,
|
|
100
|
+
"failed",
|
|
101
|
+
`Agent error: ${error.message}`
|
|
102
|
+
);
|
|
103
|
+
eventBus.publish(errorUpdate);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
export {
|
|
109
|
+
A2AService
|
|
110
|
+
};
|
|
111
|
+
//# sourceMappingURL=chunk-AQ5YZERE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/services/a2a.service.ts"],"sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport type { Task, TaskStatusUpdateEvent } from \"@a2a-js/sdk\";\nimport type {\n\tAgentExecutor,\n\tExecutionEventBus,\n\tRequestContext,\n} from \"@a2a-js/sdk/server\";\nimport { loggers } from \"@/utils/logger.js\";\nimport type { QueryService } from \"./query.service.js\";\n\n/**\n * Implements the AgentExecutor interface from the a2a-js-sdk.\n * This service is responsible for the core business logic of executing an A2A task.\n */\nexport class A2AService implements AgentExecutor {\n\tprivate queryService: QueryService;\n\tprivate canceledTasks: Set<string> = new Set<string>();\n\n\tconstructor(queryService: QueryService) {\n\t\tthis.queryService = queryService;\n\t}\n\n\tpublic cancelTask = async (\n\t\ttaskId: string,\n\t\t_eventBus: ExecutionEventBus,\n\t): Promise<void> => {\n\t\tthis.canceledTasks.add(taskId);\n\t};\n\n\tprivate createTaskStatusUpdateEvent = (\n\t\ttaskId: string,\n\t\tcontextId: string,\n\t\tstate: \"working\" | \"failed\" | \"canceled\" | \"completed\",\n\t\tmessage?: string,\n\t): TaskStatusUpdateEvent => {\n\t\treturn {\n\t\t\tkind: \"status-update\",\n\t\t\ttaskId: taskId,\n\t\t\tcontextId: contextId,\n\t\t\tstatus: {\n\t\t\t\tstate: state,\n\t\t\t\tmessage: message\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tkind: \"message\",\n\t\t\t\t\t\t\trole: \"agent\",\n\t\t\t\t\t\t\tmessageId: randomUUID(),\n\t\t\t\t\t\t\tparts: [{ kind: \"text\", text: message }],\n\t\t\t\t\t\t\ttaskId: taskId,\n\t\t\t\t\t\t\tcontextId: contextId,\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t\ttimestamp: new Date().toISOString(),\n\t\t\t},\n\t\t\tfinal: state !== \"working\",\n\t\t};\n\t};\n\n\tasync execute(\n\t\trequestContext: RequestContext,\n\t\teventBus: ExecutionEventBus,\n\t): Promise<void> {\n\t\tconst userMessage = requestContext.userMessage;\n\t\tconst { sessionId } = userMessage.metadata as { sessionId: string };\n\t\tconst existingTask = requestContext.task;\n\n\t\tconst taskId = existingTask?.id || randomUUID();\n\t\tconst contextId =\n\t\t\tuserMessage.contextId || existingTask?.contextId || randomUUID();\n\n\t\tif (!existingTask) {\n\t\t\tconst initialTask: Task = {\n\t\t\t\tkind: \"task\",\n\t\t\t\tid: taskId,\n\t\t\t\tcontextId: contextId,\n\t\t\t\tstatus: {\n\t\t\t\t\tstate: \"submitted\",\n\t\t\t\t\ttimestamp: new Date().toISOString(),\n\t\t\t\t},\n\t\t\t\thistory: [userMessage],\n\t\t\t\tmetadata: userMessage.metadata,\n\t\t\t\tartifacts: [],\n\t\t\t};\n\t\t\teventBus.publish(initialTask);\n\t\t}\n\n\t\tconst workingStatusUpdate = this.createTaskStatusUpdateEvent(\n\t\t\ttaskId,\n\t\t\tcontextId,\n\t\t\t\"working\",\n\t\t);\n\t\teventBus.publish(workingStatusUpdate);\n\n\t\tconst message: string = userMessage.parts\n\t\t\t.filter((part) => part.kind === \"text\")\n\t\t\t.map((part) => part.text)\n\t\t\t.join(\"\\n\");\n\t\tif (message.length === 0) {\n\t\t\tloggers.server.warn(`Empty message received for task ${taskId}.`);\n\t\t\tconst failureUpdate = this.createTaskStatusUpdateEvent(\n\t\t\t\ttaskId,\n\t\t\t\tcontextId,\n\t\t\t\t\"failed\",\n\t\t\t\t\"No message found to process.\",\n\t\t\t);\n\t\t\teventBus.publish(failureUpdate);\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tconst response = await this.queryService.handleQuery(message, sessionId);\n\n\t\t\tif (this.canceledTasks.has(taskId)) {\n\t\t\t\tloggers.server.info(`Task ${taskId} was canceled.`);\n\t\t\t\tconst canceledUpdate = this.createTaskStatusUpdateEvent(\n\t\t\t\t\ttaskId,\n\t\t\t\t\tcontextId,\n\t\t\t\t\t\"canceled\",\n\t\t\t\t);\n\t\t\t\teventBus.publish(canceledUpdate);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst finalUpdate = this.createTaskStatusUpdateEvent(\n\t\t\t\ttaskId,\n\t\t\t\tcontextId,\n\t\t\t\t\"completed\",\n\t\t\t\tresponse.content,\n\t\t\t);\n\t\t\teventBus.publish(finalUpdate);\n\t\t\tloggers.server.info(`Task ${taskId} completed successfully.`);\n\t\t} catch (error: any) {\n\t\t\tloggers.server.error(`Error processing task ${taskId}:`, error);\n\t\t\tconst errorUpdate = this.createTaskStatusUpdateEvent(\n\t\t\t\ttaskId,\n\t\t\t\tcontextId,\n\t\t\t\t\"failed\",\n\t\t\t\t`Agent error: ${error.message}`,\n\t\t\t);\n\t\t\teventBus.publish(errorUpdate);\n\t\t}\n\t}\n}\n"],"mappings":";;;;;AAAA,SAAS,kBAAkB;AAcpB,IAAM,aAAN,MAA0C;AAAA,EACxC;AAAA,EACA,gBAA6B,oBAAI,IAAY;AAAA,EAErD,YAAY,cAA4B;AACvC,SAAK,eAAe;AAAA,EACrB;AAAA,EAEO,aAAa,OACnB,QACA,cACmB;AACnB,SAAK,cAAc,IAAI,MAAM;AAAA,EAC9B;AAAA,EAEQ,8BAA8B,CACrC,QACA,WACA,OACA,YAC2B;AAC3B,WAAO;AAAA,MACN,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,QACP;AAAA,QACA,SAAS,UACN;AAAA,UACA,MAAM;AAAA,UACN,MAAM;AAAA,UACN,WAAW,WAAW;AAAA,UACtB,OAAO,CAAC,EAAE,MAAM,QAAQ,MAAM,QAAQ,CAAC;AAAA,UACvC;AAAA,UACA;AAAA,QACD,IACC;AAAA,QACH,YAAW,oBAAI,KAAK,GAAE,YAAY;AAAA,MACnC;AAAA,MACA,OAAO,UAAU;AAAA,IAClB;AAAA,EACD;AAAA,EAEA,MAAM,QACL,gBACA,UACgB;AAChB,UAAM,cAAc,eAAe;AACnC,UAAM,EAAE,UAAU,IAAI,YAAY;AAClC,UAAM,eAAe,eAAe;AAEpC,UAAM,SAAS,cAAc,MAAM,WAAW;AAC9C,UAAM,YACL,YAAY,aAAa,cAAc,aAAa,WAAW;AAEhE,QAAI,CAAC,cAAc;AAClB,YAAM,cAAoB;AAAA,QACzB,MAAM;AAAA,QACN,IAAI;AAAA,QACJ;AAAA,QACA,QAAQ;AAAA,UACP,OAAO;AAAA,UACP,YAAW,oBAAI,KAAK,GAAE,YAAY;AAAA,QACnC;AAAA,QACA,SAAS,CAAC,WAAW;AAAA,QACrB,UAAU,YAAY;AAAA,QACtB,WAAW,CAAC;AAAA,MACb;AACA,eAAS,QAAQ,WAAW;AAAA,IAC7B;AAEA,UAAM,sBAAsB,KAAK;AAAA,MAChC;AAAA,MACA;AAAA,MACA;AAAA,IACD;AACA,aAAS,QAAQ,mBAAmB;AAEpC,UAAM,UAAkB,YAAY,MAClC,OAAO,CAAC,SAAS,KAAK,SAAS,MAAM,EACrC,IAAI,CAAC,SAAS,KAAK,IAAI,EACvB,KAAK,IAAI;AACX,QAAI,QAAQ,WAAW,GAAG;AACzB,cAAQ,OAAO,KAAK,mCAAmC,MAAM,GAAG;AAChE,YAAM,gBAAgB,KAAK;AAAA,QAC1B;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AACA,eAAS,QAAQ,aAAa;AAC9B;AAAA,IACD;AAEA,QAAI;AACH,YAAM,WAAW,MAAM,KAAK,aAAa,YAAY,SAAS,SAAS;AAEvE,UAAI,KAAK,cAAc,IAAI,MAAM,GAAG;AACnC,gBAAQ,OAAO,KAAK,QAAQ,MAAM,gBAAgB;AAClD,cAAM,iBAAiB,KAAK;AAAA,UAC3B;AAAA,UACA;AAAA,UACA;AAAA,QACD;AACA,iBAAS,QAAQ,cAAc;AAC/B;AAAA,MACD;AAEA,YAAM,cAAc,KAAK;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS;AAAA,MACV;AACA,eAAS,QAAQ,WAAW;AAC5B,cAAQ,OAAO,KAAK,QAAQ,MAAM,0BAA0B;AAAA,IAC7D,SAAS,OAAY;AACpB,cAAQ,OAAO,MAAM,yBAAyB,MAAM,KAAK,KAAK;AAC9D,YAAM,cAAc,KAAK;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,QACA,gBAAgB,MAAM,OAAO;AAAA,MAC9B;AACA,eAAS,QAAQ,WAAW;AAAA,IAC7B;AAAA,EACD;AACD;","names":[]}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import {
|
|
2
|
+
MCPTool
|
|
3
|
+
} from "./chunk-3LLHEUY2.js";
|
|
4
|
+
import {
|
|
5
|
+
loggers
|
|
6
|
+
} from "./chunk-64GEXWSE.js";
|
|
7
|
+
|
|
8
|
+
// src/modules/mcp/mcp.module.ts
|
|
9
|
+
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
10
|
+
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
|
|
11
|
+
var MCPModule = class {
|
|
12
|
+
/** Map of MCP server names to their client instances */
|
|
13
|
+
mcpMap = /* @__PURE__ */ new Map();
|
|
14
|
+
/** Map of MCP server names to their transport instances */
|
|
15
|
+
transportMap = /* @__PURE__ */ new Map();
|
|
16
|
+
/** Array of all discovered tools from connected MCP servers */
|
|
17
|
+
tools = [];
|
|
18
|
+
/**
|
|
19
|
+
* Connects to MCP servers based on the provided configuration.
|
|
20
|
+
*
|
|
21
|
+
* For each server in the config, establishes a connection, discovers
|
|
22
|
+
* available tools, and adds them to the module's tool collection.
|
|
23
|
+
* Skips servers that are already connected.
|
|
24
|
+
*
|
|
25
|
+
* @param mcpConfig - Configuration object mapping server names to connection details
|
|
26
|
+
* @throws Error if connection to any MCP server fails
|
|
27
|
+
*/
|
|
28
|
+
async addMCPConfig(mcpConfig) {
|
|
29
|
+
try {
|
|
30
|
+
for (const [name, conf] of Object.entries(mcpConfig)) {
|
|
31
|
+
if (this.mcpMap.get(name) && this.transportMap.get(name)) continue;
|
|
32
|
+
const transport = new StdioClientTransport(conf);
|
|
33
|
+
this.transportMap.set(name, transport);
|
|
34
|
+
const mcp = new Client({ name: "mcp-client-cli", version: "1.0.0" });
|
|
35
|
+
await mcp.connect(transport);
|
|
36
|
+
this.mcpMap.set(name, mcp);
|
|
37
|
+
const toolsResult = await mcp.listTools();
|
|
38
|
+
this.tools.push(
|
|
39
|
+
...toolsResult.tools.map((tool) => {
|
|
40
|
+
return new MCPTool(name, tool);
|
|
41
|
+
})
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
loggers.mcp.info("Connected to MCP server with tools:", {
|
|
45
|
+
tools: this.tools.map((tool) => tool.id)
|
|
46
|
+
});
|
|
47
|
+
} catch (error) {
|
|
48
|
+
loggers.mcp.error("Failed to connect to MCP server:", { error });
|
|
49
|
+
throw error;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Returns all available tools from connected MCP servers.
|
|
54
|
+
*
|
|
55
|
+
* @returns Array of MCPTool instances representing available tools
|
|
56
|
+
*/
|
|
57
|
+
getTools() {
|
|
58
|
+
return this.tools;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Executes a tool on its corresponding MCP server.
|
|
62
|
+
*
|
|
63
|
+
* @param tool - The MCPTool instance to execute
|
|
64
|
+
* @param _args - Arguments to pass to the tool
|
|
65
|
+
* @returns Promise resolving to the tool's execution result
|
|
66
|
+
* @throws Error if the MCP server for the tool is not found
|
|
67
|
+
*/
|
|
68
|
+
async useTool(tool, _args) {
|
|
69
|
+
const { serverName, mcpTool } = tool;
|
|
70
|
+
const toolName = mcpTool.name;
|
|
71
|
+
const mcp = this.mcpMap.get(serverName);
|
|
72
|
+
if (!mcp) {
|
|
73
|
+
throw new Error(`Invalid MCP Tool ${serverName}-${mcpTool.name}`);
|
|
74
|
+
}
|
|
75
|
+
const result = await mcp.callTool({
|
|
76
|
+
name: toolName,
|
|
77
|
+
arguments: _args
|
|
78
|
+
});
|
|
79
|
+
const toolResult = `[Bot Called Tool ${toolName} with args ${JSON.stringify(_args)}]
|
|
80
|
+
` + JSON.stringify(result.content, null, 2);
|
|
81
|
+
loggers.mcp.debug("MCP useTool result:", toolResult);
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Closes all MCP client connections.
|
|
86
|
+
*
|
|
87
|
+
* Should be called when shutting down the application to ensure
|
|
88
|
+
* all MCP connections are properly closed.
|
|
89
|
+
*/
|
|
90
|
+
async cleanup() {
|
|
91
|
+
this.mcpMap.forEach((mcp) => {
|
|
92
|
+
mcp.close();
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export {
|
|
98
|
+
MCPModule
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=chunk-BTZVK3EA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/modules/mcp/mcp.module.ts"],"sourcesContent":["import { Client } from \"@modelcontextprotocol/sdk/client/index.js\";\nimport { StdioClientTransport } from \"@modelcontextprotocol/sdk/client/stdio.js\";\nimport type { MCPConfig } from \"@/types/mcp.js\";\nimport { loggers } from \"@/utils/logger.js\";\nimport { MCPTool } from \"./mcp.tool.js\";\n\n/**\n * Module for managing Model Context Protocol (MCP) server connections.\n *\n * This module handles the lifecycle of MCP client connections, discovers\n * available tools from connected servers, and provides an interface for\n * executing those tools. Multiple MCP servers can be connected simultaneously.\n *\n * @example\n * ```typescript\n * const mcpModule = new MCPModule();\n * await mcpModule.addMCPConfig({\n * \"filesystem\": {\n * command: \"npx\",\n * args: [\"@modelcontextprotocol/server-filesystem\", \"/path/to/files\"]\n * }\n * });\n *\n * const tools = mcpModule.getTools();\n * const result = await mcpModule.useTool(tools[0], { path: \"/example.txt\" });\n * ```\n */\nexport class MCPModule {\n\t/** Map of MCP server names to their client instances */\n\tprivate mcpMap: Map<string, Client> = new Map();\n\t/** Map of MCP server names to their transport instances */\n\tprivate transportMap: Map<string, StdioClientTransport> = new Map();\n\t/** Array of all discovered tools from connected MCP servers */\n\tprivate tools: MCPTool[] = [];\n\n\t/**\n\t * Connects to MCP servers based on the provided configuration.\n\t *\n\t * For each server in the config, establishes a connection, discovers\n\t * available tools, and adds them to the module's tool collection.\n\t * Skips servers that are already connected.\n\t *\n\t * @param mcpConfig - Configuration object mapping server names to connection details\n\t * @throws Error if connection to any MCP server fails\n\t */\n\tasync addMCPConfig(mcpConfig: MCPConfig) {\n\t\ttry {\n\t\t\tfor (const [name, conf] of Object.entries(mcpConfig)) {\n\t\t\t\t// FIXME(yoojin): Need strict duplication check.\n\t\t\t\tif (this.mcpMap.get(name) && this.transportMap.get(name)) continue; // Duplicated mcp: skip\n\n\t\t\t\tconst transport = new StdioClientTransport(conf);\n\t\t\t\tthis.transportMap.set(name, transport);\n\t\t\t\tconst mcp = new Client({ name: \"mcp-client-cli\", version: \"1.0.0\" });\n\t\t\t\tawait mcp.connect(transport);\n\t\t\t\tthis.mcpMap.set(name, mcp);\n\n\t\t\t\tconst toolsResult = await mcp.listTools();\n\t\t\t\tthis.tools.push(\n\t\t\t\t\t...toolsResult.tools.map((tool) => {\n\t\t\t\t\t\treturn new MCPTool(name, tool);\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\t\t\tloggers.mcp.info(\"Connected to MCP server with tools:\", {\n\t\t\t\ttools: this.tools.map((tool) => tool.id),\n\t\t\t});\n\t\t} catch (error: unknown) {\n\t\t\tloggers.mcp.error(\"Failed to connect to MCP server:\", { error });\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\t/**\n\t * Returns all available tools from connected MCP servers.\n\t *\n\t * @returns Array of MCPTool instances representing available tools\n\t */\n\tgetTools() {\n\t\treturn this.tools;\n\t}\n\n\t/**\n\t * Executes a tool on its corresponding MCP server.\n\t *\n\t * @param tool - The MCPTool instance to execute\n\t * @param _args - Arguments to pass to the tool\n\t * @returns Promise resolving to the tool's execution result\n\t * @throws Error if the MCP server for the tool is not found\n\t */\n\tasync useTool(tool: MCPTool, _args?: any): Promise<any> {\n\t\tconst { serverName, mcpTool } = tool;\n\t\tconst toolName = mcpTool.name;\n\t\tconst mcp = this.mcpMap.get(serverName);\n\n\t\tif (!mcp) {\n\t\t\tthrow new Error(`Invalid MCP Tool ${serverName}-${mcpTool.name}`);\n\t\t}\n\n\t\tconst result = await mcp.callTool({\n\t\t\tname: toolName,\n\t\t\targuments: _args,\n\t\t});\n\t\tconst toolResult =\n\t\t\t`[Bot Called Tool ${toolName} with args ${JSON.stringify(_args)}]\\n` +\n\t\t\tJSON.stringify(result.content, null, 2);\n\n\t\tloggers.mcp.debug(\"MCP useTool result:\", toolResult);\n\t\treturn result;\n\t}\n\n\t/**\n\t * Closes all MCP client connections.\n\t *\n\t * Should be called when shutting down the application to ensure\n\t * all MCP connections are properly closed.\n\t */\n\tasync cleanup() {\n\t\tthis.mcpMap.forEach((mcp: Client) => {\n\t\t\tmcp.close();\n\t\t});\n\t}\n}\n"],"mappings":";;;;;;;;AAAA,SAAS,cAAc;AACvB,SAAS,4BAA4B;AA0B9B,IAAM,YAAN,MAAgB;AAAA;AAAA,EAEd,SAA8B,oBAAI,IAAI;AAAA;AAAA,EAEtC,eAAkD,oBAAI,IAAI;AAAA;AAAA,EAE1D,QAAmB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY5B,MAAM,aAAa,WAAsB;AACxC,QAAI;AACH,iBAAW,CAAC,MAAM,IAAI,KAAK,OAAO,QAAQ,SAAS,GAAG;AAErD,YAAI,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK,aAAa,IAAI,IAAI,EAAG;AAE1D,cAAM,YAAY,IAAI,qBAAqB,IAAI;AAC/C,aAAK,aAAa,IAAI,MAAM,SAAS;AACrC,cAAM,MAAM,IAAI,OAAO,EAAE,MAAM,kBAAkB,SAAS,QAAQ,CAAC;AACnE,cAAM,IAAI,QAAQ,SAAS;AAC3B,aAAK,OAAO,IAAI,MAAM,GAAG;AAEzB,cAAM,cAAc,MAAM,IAAI,UAAU;AACxC,aAAK,MAAM;AAAA,UACV,GAAG,YAAY,MAAM,IAAI,CAAC,SAAS;AAClC,mBAAO,IAAI,QAAQ,MAAM,IAAI;AAAA,UAC9B,CAAC;AAAA,QACF;AAAA,MACD;AACA,cAAQ,IAAI,KAAK,uCAAuC;AAAA,QACvD,OAAO,KAAK,MAAM,IAAI,CAAC,SAAS,KAAK,EAAE;AAAA,MACxC,CAAC;AAAA,IACF,SAAS,OAAgB;AACxB,cAAQ,IAAI,MAAM,oCAAoC,EAAE,MAAM,CAAC;AAC/D,YAAM;AAAA,IACP;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,WAAW;AACV,WAAO,KAAK;AAAA,EACb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,QAAQ,MAAe,OAA2B;AACvD,UAAM,EAAE,YAAY,QAAQ,IAAI;AAChC,UAAM,WAAW,QAAQ;AACzB,UAAM,MAAM,KAAK,OAAO,IAAI,UAAU;AAEtC,QAAI,CAAC,KAAK;AACT,YAAM,IAAI,MAAM,oBAAoB,UAAU,IAAI,QAAQ,IAAI,EAAE;AAAA,IACjE;AAEA,UAAM,SAAS,MAAM,IAAI,SAAS;AAAA,MACjC,MAAM;AAAA,MACN,WAAW;AAAA,IACZ,CAAC;AACD,UAAM,aACL,oBAAoB,QAAQ,cAAc,KAAK,UAAU,KAAK,CAAC;AAAA,IAC/D,KAAK,UAAU,OAAO,SAAS,MAAM,CAAC;AAEvC,YAAQ,IAAI,MAAM,uBAAuB,UAAU;AACnD,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,UAAU;AACf,SAAK,OAAO,QAAQ,CAAC,QAAgB;AACpC,UAAI,MAAM;AAAA,IACX,CAAC;AAAA,EACF;AACD;","names":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import {
|
|
2
|
+
A2AService
|
|
3
|
+
} from "./chunk-AQ5YZERE.js";
|
|
4
|
+
import {
|
|
5
|
+
QueryService
|
|
6
|
+
} from "./chunk-WZBXLGQK.js";
|
|
7
|
+
import {
|
|
8
|
+
A2AController
|
|
9
|
+
} from "./chunk-EODMRV4H.js";
|
|
10
|
+
|
|
11
|
+
// src/routes/a2a.routes.ts
|
|
12
|
+
import { InMemoryTaskStore } from "@a2a-js/sdk/server";
|
|
13
|
+
import { Router } from "express";
|
|
14
|
+
var createA2ARouter = (agent) => {
|
|
15
|
+
const router = Router();
|
|
16
|
+
const taskStore = new InMemoryTaskStore();
|
|
17
|
+
const queryService = new QueryService(
|
|
18
|
+
agent.modelModule,
|
|
19
|
+
agent.a2aModule,
|
|
20
|
+
agent.mcpModule,
|
|
21
|
+
agent.memoryModule,
|
|
22
|
+
agent.manifest.prompts
|
|
23
|
+
);
|
|
24
|
+
const a2aService = new A2AService(queryService);
|
|
25
|
+
const a2aController = new A2AController(
|
|
26
|
+
a2aService,
|
|
27
|
+
taskStore,
|
|
28
|
+
agent.generateAgentCard
|
|
29
|
+
);
|
|
30
|
+
router.post("/a2a", a2aController.handleA2ARequest);
|
|
31
|
+
return router;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export {
|
|
35
|
+
createA2ARouter
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=chunk-CH4XHVJY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/routes/a2a.routes.ts"],"sourcesContent":["import { InMemoryTaskStore } from \"@a2a-js/sdk/server\";\nimport { Router } from \"express\";\nimport type { AINAgent } from \"@/index.js\";\nimport { QueryService } from \"@/services/query.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 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\tconst a2aService = new A2AService(queryService);\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(\"/a2a\", a2aController.handleA2ARequest);\n\n\treturn router;\n};\n"],"mappings":";;;;;;;;;;;AAAA,SAAS,yBAAyB;AAClC,SAAS,cAAc;AAchB,IAAM,kBAAkB,CAAC,UAA4B;AAC3D,QAAM,SAAS,OAAO;AAGtB,QAAM,YAAY,IAAI,kBAAkB;AACxC,QAAM,eAAe,IAAI;AAAA,IACxB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM,SAAS;AAAA,EAChB;AACA,QAAM,aAAa,IAAI,WAAW,YAAY;AAC9C,QAAM,gBAAgB,IAAI;AAAA,IACzB;AAAA,IACA;AAAA,IACA,MAAM;AAAA,EACP;AAGA,SAAO,KAAK,QAAQ,cAAc,gBAAgB;AAElD,SAAO;AACR;","names":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import {
|
|
2
|
+
QueryController
|
|
3
|
+
} from "./chunk-XOMQNCCR.js";
|
|
4
|
+
import {
|
|
5
|
+
QueryService
|
|
6
|
+
} from "./chunk-WZBXLGQK.js";
|
|
7
|
+
|
|
8
|
+
// src/routes/query.routes.ts
|
|
9
|
+
import { Router } from "express";
|
|
10
|
+
var createQueryRouter = (agent) => {
|
|
11
|
+
const router = Router();
|
|
12
|
+
const queryService = new QueryService(
|
|
13
|
+
agent.modelModule,
|
|
14
|
+
agent.a2aModule,
|
|
15
|
+
agent.mcpModule,
|
|
16
|
+
agent.memoryModule,
|
|
17
|
+
agent.manifest.prompts
|
|
18
|
+
);
|
|
19
|
+
const queryController = new QueryController(queryService);
|
|
20
|
+
router.post("/query", queryController.handleQueryRequest);
|
|
21
|
+
return router;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export {
|
|
25
|
+
createQueryRouter
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=chunk-CQ6GXYN2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/routes/query.routes.ts"],"sourcesContent":["import { Router } from \"express\";\nimport { QueryController } from \"@/controllers/query.controller.js\";\nimport type { AINAgent } from \"@/index.js\";\nimport { QueryService } from \"@/services/query.service.js\";\n\nexport const createQueryRouter = (agent: AINAgent): 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\tconst queryController = new QueryController(queryService);\n\trouter.post(\"/query\", queryController.handleQueryRequest);\n\n\treturn router;\n};\n"],"mappings":";;;;;;;;AAAA,SAAS,cAAc;AAKhB,IAAM,oBAAoB,CAAC,UAA4B;AAC7D,QAAM,SAAS,OAAO;AAEtB,QAAM,eAAe,IAAI;AAAA,IACxB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM,SAAS;AAAA,EAChB;AACA,QAAM,kBAAkB,IAAI,gBAAgB,YAAY;AACxD,SAAO,KAAK,UAAU,gBAAgB,kBAAkB;AAExD,SAAO;AACR;","names":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// src/modules/a2a/a2a.tool.ts
|
|
2
|
+
var A2ATool = class {
|
|
3
|
+
id;
|
|
4
|
+
protocol;
|
|
5
|
+
enabled;
|
|
6
|
+
client;
|
|
7
|
+
card;
|
|
8
|
+
constructor(name, client, card) {
|
|
9
|
+
this.id = name;
|
|
10
|
+
this.protocol = "A2A" /* A2A */;
|
|
11
|
+
this.enabled = true;
|
|
12
|
+
this.client = client;
|
|
13
|
+
this.card = card;
|
|
14
|
+
}
|
|
15
|
+
enable() {
|
|
16
|
+
this.enabled = true;
|
|
17
|
+
}
|
|
18
|
+
disable() {
|
|
19
|
+
this.enabled = false;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export {
|
|
24
|
+
A2ATool
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=chunk-DGH3GB5I.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/modules/a2a/a2a.tool.ts"],"sourcesContent":["import type { AgentCard } from \"@a2a-js/sdk\";\nimport type { A2AClient } from \"@a2a-js/sdk/client\";\nimport { type IA2ATool, TOOL_PROTOCOL_TYPE } from \"@/types/tool.js\";\n\nexport class A2ATool implements IA2ATool {\n\tpublic id: string;\n\tpublic protocol: TOOL_PROTOCOL_TYPE;\n\tpublic enabled: boolean;\n\tpublic client: A2AClient;\n\tpublic card: AgentCard;\n\n\tconstructor(name: string, client: A2AClient, card: AgentCard) {\n\t\tthis.id = name;\n\t\tthis.protocol = TOOL_PROTOCOL_TYPE.A2A;\n\t\tthis.enabled = true;\n\t\tthis.client = client;\n\t\tthis.card = card;\n\t}\n\n\tpublic enable(): void {\n\t\tthis.enabled = true;\n\t}\n\n\tpublic disable(): void {\n\t\tthis.enabled = false;\n\t}\n}\n"],"mappings":";AAIO,IAAM,UAAN,MAAkC;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEP,YAAY,MAAc,QAAmB,MAAiB;AAC7D,SAAK,KAAK;AACV,SAAK;AACL,SAAK,UAAU;AACf,SAAK,SAAS;AACd,SAAK,OAAO;AAAA,EACb;AAAA,EAEO,SAAe;AACrB,SAAK,UAAU;AAAA,EAChB;AAAA,EAEO,UAAgB;AACtB,SAAK,UAAU;AAAA,EAChB;AACD;","names":[]}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import {
|
|
2
|
+
loggers
|
|
3
|
+
} from "./chunk-64GEXWSE.js";
|
|
4
|
+
|
|
5
|
+
// src/controllers/a2a.controller.ts
|
|
6
|
+
import {
|
|
7
|
+
A2AError,
|
|
8
|
+
DefaultExecutionEventBusManager,
|
|
9
|
+
DefaultRequestHandler,
|
|
10
|
+
JsonRpcTransportHandler
|
|
11
|
+
} from "@a2a-js/sdk/server";
|
|
12
|
+
var AINRequestHandler = class extends DefaultRequestHandler {
|
|
13
|
+
cardGenerator;
|
|
14
|
+
constructor(cardGenerator, taskStore, executor, eventBusManager = new DefaultExecutionEventBusManager()) {
|
|
15
|
+
const card = cardGenerator();
|
|
16
|
+
super(card, taskStore, executor, eventBusManager);
|
|
17
|
+
this.cardGenerator = cardGenerator;
|
|
18
|
+
}
|
|
19
|
+
async getAgentCard() {
|
|
20
|
+
return this.cardGenerator();
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
var A2AController = class {
|
|
24
|
+
jsonRpcTransportHandler;
|
|
25
|
+
constructor(a2aService, taskStore, cardGenerator) {
|
|
26
|
+
const requestHandler = new AINRequestHandler(
|
|
27
|
+
cardGenerator,
|
|
28
|
+
taskStore,
|
|
29
|
+
a2aService
|
|
30
|
+
// Injecting the service here as the executor
|
|
31
|
+
);
|
|
32
|
+
this.jsonRpcTransportHandler = new JsonRpcTransportHandler(requestHandler);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Handles the POST /a2a request.
|
|
36
|
+
*/
|
|
37
|
+
handleA2ARequest = async (req, res) => {
|
|
38
|
+
try {
|
|
39
|
+
const rpcResponseOrStream = await this.jsonRpcTransportHandler.handle(
|
|
40
|
+
req.body
|
|
41
|
+
);
|
|
42
|
+
if (typeof rpcResponseOrStream?.[Symbol.asyncIterator] === "function") {
|
|
43
|
+
const stream = rpcResponseOrStream;
|
|
44
|
+
this.streamSse(req, res, stream);
|
|
45
|
+
} else {
|
|
46
|
+
const rpcResponse = rpcResponseOrStream;
|
|
47
|
+
res.status(200).json(rpcResponse);
|
|
48
|
+
}
|
|
49
|
+
} catch (error) {
|
|
50
|
+
this.handleError(req, res, error);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
async streamSse(req, res, stream) {
|
|
54
|
+
res.setHeader("Content-Type", "text/event-stream");
|
|
55
|
+
res.setHeader("Cache-Control", "no-cache");
|
|
56
|
+
res.setHeader("Connection", "keep-alive");
|
|
57
|
+
res.flushHeaders();
|
|
58
|
+
try {
|
|
59
|
+
for await (const event of stream) {
|
|
60
|
+
res.write(`id: ${Date.now()}
|
|
61
|
+
`);
|
|
62
|
+
res.write(`data: ${JSON.stringify(event)}
|
|
63
|
+
|
|
64
|
+
`);
|
|
65
|
+
}
|
|
66
|
+
} catch (streamError) {
|
|
67
|
+
loggers.server.error(
|
|
68
|
+
`Error during SSE streaming (request ${req.body?.id}):`,
|
|
69
|
+
streamError
|
|
70
|
+
);
|
|
71
|
+
const a2aError = streamError instanceof A2AError ? streamError : A2AError.internalError("Streaming error");
|
|
72
|
+
const errorResponse = {
|
|
73
|
+
jsonrpc: "2.0",
|
|
74
|
+
id: req.body?.id || null,
|
|
75
|
+
error: a2aError.toJSONRPCError()
|
|
76
|
+
};
|
|
77
|
+
res.write(`id: ${Date.now()}
|
|
78
|
+
`);
|
|
79
|
+
res.write("event: error\n");
|
|
80
|
+
res.write(`data: ${JSON.stringify(errorResponse)}
|
|
81
|
+
|
|
82
|
+
`);
|
|
83
|
+
} finally {
|
|
84
|
+
if (!res.writableEnded) {
|
|
85
|
+
res.end();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
handleError(req, res, error) {
|
|
90
|
+
loggers.server.error(
|
|
91
|
+
"Unhandled error in AINAgent A2A POST handler:",
|
|
92
|
+
error
|
|
93
|
+
);
|
|
94
|
+
const a2aError = error instanceof A2AError ? error : A2AError.internalError("General processing error");
|
|
95
|
+
const errorResponse = {
|
|
96
|
+
jsonrpc: "2.0",
|
|
97
|
+
id: req.body?.id || null,
|
|
98
|
+
error: a2aError.toJSONRPCError()
|
|
99
|
+
};
|
|
100
|
+
if (!res.headersSent) {
|
|
101
|
+
res.status(500).json(errorResponse);
|
|
102
|
+
} else if (!res.writableEnded) {
|
|
103
|
+
res.end();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
export {
|
|
109
|
+
A2AController
|
|
110
|
+
};
|
|
111
|
+
//# sourceMappingURL=chunk-EODMRV4H.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/controllers/a2a.controller.ts"],"sourcesContent":["import type {\n\tA2AResponse,\n\tAgentCard,\n\tJSONRPCErrorResponse,\n\tJSONRPCSuccessResponse,\n} from \"@a2a-js/sdk\";\nimport type {\n\tAgentExecutor,\n\tExecutionEventBusManager,\n\tTaskStore,\n} from \"@a2a-js/sdk/server\";\nimport {\n\tA2AError,\n\tDefaultExecutionEventBusManager,\n\tDefaultRequestHandler,\n\tJsonRpcTransportHandler,\n} from \"@a2a-js/sdk/server\";\nimport type { Request, Response } from \"express\";\nimport type { A2AService } from \"@/services/a2a.service.js\";\nimport { loggers } from \"@/utils/logger.js\";\n\n/**\n * Handles the transport layer for A2A communication.\n * It orchestrates the A2A-JS SDK components and manages the HTTP request/response lifecycle.\n */\n\nclass AINRequestHandler extends DefaultRequestHandler {\n\tprivate cardGenerator: () => AgentCard;\n\n\tconstructor(\n\t\tcardGenerator: () => AgentCard,\n\t\ttaskStore: TaskStore,\n\t\texecutor: AgentExecutor,\n\t\teventBusManager: ExecutionEventBusManager = new DefaultExecutionEventBusManager(),\n\t) {\n\t\tconst card = cardGenerator();\n\t\tsuper(card, taskStore, executor, eventBusManager);\n\t\tthis.cardGenerator = cardGenerator;\n\t}\n\n\tasync getAgentCard(): Promise<AgentCard> {\n\t\treturn this.cardGenerator();\n\t}\n}\n\nexport class A2AController {\n\tprivate jsonRpcTransportHandler: JsonRpcTransportHandler;\n\n\tconstructor(\n\t\ta2aService: A2AService,\n\t\ttaskStore: TaskStore,\n\t\tcardGenerator: () => AgentCard,\n\t) {\n\t\t// The controller is responsible for setting up the SDK components.\n\t\tconst requestHandler = new AINRequestHandler(\n\t\t\tcardGenerator,\n\t\t\ttaskStore,\n\t\t\ta2aService, // Injecting the service here as the executor\n\t\t);\n\t\tthis.jsonRpcTransportHandler = new JsonRpcTransportHandler(requestHandler);\n\t}\n\n\t/**\n\t * Handles the POST /a2a request.\n\t */\n\tpublic handleA2ARequest = async (req: Request, res: Response) => {\n\t\ttry {\n\t\t\tconst rpcResponseOrStream = await this.jsonRpcTransportHandler.handle(\n\t\t\t\treq.body,\n\t\t\t);\n\n\t\t\t// Handle streaming responses (AsyncGenerator)\n\t\t\tif (\n\t\t\t\ttypeof (rpcResponseOrStream as any)?.[Symbol.asyncIterator] ===\n\t\t\t\t\"function\"\n\t\t\t) {\n\t\t\t\tconst stream = rpcResponseOrStream as AsyncGenerator<\n\t\t\t\t\tJSONRPCSuccessResponse,\n\t\t\t\t\tvoid,\n\t\t\t\t\tundefined\n\t\t\t\t>;\n\t\t\t\tthis.streamSse(req, res, stream);\n\t\t\t} else {\n\t\t\t\t// Handle single JSON-RPC response\n\t\t\t\tconst rpcResponse = rpcResponseOrStream as A2AResponse;\n\t\t\t\tres.status(200).json(rpcResponse);\n\t\t\t}\n\t\t} catch (error: unknown) {\n\t\t\tthis.handleError(req, res, error);\n\t\t}\n\t};\n\n\tprivate async streamSse(\n\t\treq: Request,\n\t\tres: Response,\n\t\tstream: AsyncGenerator<JSONRPCSuccessResponse, void, undefined>,\n\t) {\n\t\tres.setHeader(\"Content-Type\", \"text/event-stream\");\n\t\tres.setHeader(\"Cache-Control\", \"no-cache\");\n\t\tres.setHeader(\"Connection\", \"keep-alive\");\n\t\tres.flushHeaders();\n\n\t\ttry {\n\t\t\tfor await (const event of stream) {\n\t\t\t\tres.write(`id: ${Date.now()}\\n`);\n\t\t\t\tres.write(`data: ${JSON.stringify(event)}\\n\\n`);\n\t\t\t}\n\t\t} catch (streamError: unknown) {\n\t\t\tloggers.server.error(\n\t\t\t\t`Error during SSE streaming (request ${req.body?.id}):`,\n\t\t\t\tstreamError,\n\t\t\t);\n\t\t\tconst a2aError =\n\t\t\t\tstreamError instanceof A2AError\n\t\t\t\t\t? streamError\n\t\t\t\t\t: A2AError.internalError(\"Streaming error\");\n\t\t\tconst errorResponse: JSONRPCErrorResponse = {\n\t\t\t\tjsonrpc: \"2.0\",\n\t\t\t\tid: req.body?.id || null,\n\t\t\t\terror: a2aError.toJSONRPCError(),\n\t\t\t};\n\t\t\tres.write(`id: ${Date.now()}\\n`);\n\t\t\tres.write(\"event: error\\n\");\n\t\t\tres.write(`data: ${JSON.stringify(errorResponse)}\\n\\n`);\n\t\t} finally {\n\t\t\tif (!res.writableEnded) {\n\t\t\t\tres.end();\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate handleError(req: Request, res: Response, error: unknown) {\n\t\tloggers.server.error(\n\t\t\t\"Unhandled error in AINAgent A2A POST handler:\",\n\t\t\terror,\n\t\t);\n\t\tconst a2aError =\n\t\t\terror instanceof A2AError\n\t\t\t\t? error\n\t\t\t\t: A2AError.internalError(\"General processing error\");\n\t\tconst errorResponse: JSONRPCErrorResponse = {\n\t\t\tjsonrpc: \"2.0\",\n\t\t\tid: req.body?.id || null,\n\t\t\terror: a2aError.toJSONRPCError(),\n\t\t};\n\t\tif (!res.headersSent) {\n\t\t\tres.status(500).json(errorResponse);\n\t\t} else if (!res.writableEnded) {\n\t\t\tres.end();\n\t\t}\n\t}\n}\n"],"mappings":";;;;;AAWA;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAUP,IAAM,oBAAN,cAAgC,sBAAsB;AAAA,EAC7C;AAAA,EAER,YACC,eACA,WACA,UACA,kBAA4C,IAAI,gCAAgC,GAC/E;AACD,UAAM,OAAO,cAAc;AAC3B,UAAM,MAAM,WAAW,UAAU,eAAe;AAChD,SAAK,gBAAgB;AAAA,EACtB;AAAA,EAEA,MAAM,eAAmC;AACxC,WAAO,KAAK,cAAc;AAAA,EAC3B;AACD;AAEO,IAAM,gBAAN,MAAoB;AAAA,EAClB;AAAA,EAER,YACC,YACA,WACA,eACC;AAED,UAAM,iBAAiB,IAAI;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA;AAAA,IACD;AACA,SAAK,0BAA0B,IAAI,wBAAwB,cAAc;AAAA,EAC1E;AAAA;AAAA;AAAA;AAAA,EAKO,mBAAmB,OAAO,KAAc,QAAkB;AAChE,QAAI;AACH,YAAM,sBAAsB,MAAM,KAAK,wBAAwB;AAAA,QAC9D,IAAI;AAAA,MACL;AAGA,UACC,OAAQ,sBAA8B,OAAO,aAAa,MAC1D,YACC;AACD,cAAM,SAAS;AAKf,aAAK,UAAU,KAAK,KAAK,MAAM;AAAA,MAChC,OAAO;AAEN,cAAM,cAAc;AACpB,YAAI,OAAO,GAAG,EAAE,KAAK,WAAW;AAAA,MACjC;AAAA,IACD,SAAS,OAAgB;AACxB,WAAK,YAAY,KAAK,KAAK,KAAK;AAAA,IACjC;AAAA,EACD;AAAA,EAEA,MAAc,UACb,KACA,KACA,QACC;AACD,QAAI,UAAU,gBAAgB,mBAAmB;AACjD,QAAI,UAAU,iBAAiB,UAAU;AACzC,QAAI,UAAU,cAAc,YAAY;AACxC,QAAI,aAAa;AAEjB,QAAI;AACH,uBAAiB,SAAS,QAAQ;AACjC,YAAI,MAAM,OAAO,KAAK,IAAI,CAAC;AAAA,CAAI;AAC/B,YAAI,MAAM,SAAS,KAAK,UAAU,KAAK,CAAC;AAAA;AAAA,CAAM;AAAA,MAC/C;AAAA,IACD,SAAS,aAAsB;AAC9B,cAAQ,OAAO;AAAA,QACd,uCAAuC,IAAI,MAAM,EAAE;AAAA,QACnD;AAAA,MACD;AACA,YAAM,WACL,uBAAuB,WACpB,cACA,SAAS,cAAc,iBAAiB;AAC5C,YAAM,gBAAsC;AAAA,QAC3C,SAAS;AAAA,QACT,IAAI,IAAI,MAAM,MAAM;AAAA,QACpB,OAAO,SAAS,eAAe;AAAA,MAChC;AACA,UAAI,MAAM,OAAO,KAAK,IAAI,CAAC;AAAA,CAAI;AAC/B,UAAI,MAAM,gBAAgB;AAC1B,UAAI,MAAM,SAAS,KAAK,UAAU,aAAa,CAAC;AAAA;AAAA,CAAM;AAAA,IACvD,UAAE;AACD,UAAI,CAAC,IAAI,eAAe;AACvB,YAAI,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAAA,EAEQ,YAAY,KAAc,KAAe,OAAgB;AAChE,YAAQ,OAAO;AAAA,MACd;AAAA,MACA;AAAA,IACD;AACA,UAAM,WACL,iBAAiB,WACd,QACA,SAAS,cAAc,0BAA0B;AACrD,UAAM,gBAAsC;AAAA,MAC3C,SAAS;AAAA,MACT,IAAI,IAAI,MAAM,MAAM;AAAA,MACpB,OAAO,SAAS,eAAe;AAAA,IAChC;AACA,QAAI,CAAC,IAAI,aAAa;AACrB,UAAI,OAAO,GAAG,EAAE,KAAK,aAAa;AAAA,IACnC,WAAW,CAAC,IAAI,eAAe;AAC9B,UAAI,IAAI;AAAA,IACT;AAAA,EACD;AACD;","names":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// src/types/tool.ts
|
|
2
|
+
var TOOL_PROTOCOL_TYPE = /* @__PURE__ */ ((TOOL_PROTOCOL_TYPE2) => {
|
|
3
|
+
TOOL_PROTOCOL_TYPE2["A2A"] = "A2A";
|
|
4
|
+
TOOL_PROTOCOL_TYPE2["MCP"] = "MCP";
|
|
5
|
+
return TOOL_PROTOCOL_TYPE2;
|
|
6
|
+
})(TOOL_PROTOCOL_TYPE || {});
|
|
7
|
+
|
|
8
|
+
export {
|
|
9
|
+
TOOL_PROTOCOL_TYPE
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=chunk-FI2UQLVC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types/tool.ts"],"sourcesContent":["import type { AgentCard } from \"@a2a-js/sdk\";\nimport type { A2AClient } from \"@a2a-js/sdk/client\";\nimport type { Tool } from \"@modelcontextprotocol/sdk/types.js\";\n\n/**\n * Supported tool protocol types in the AIN-ADK framework.\n */\nexport enum TOOL_PROTOCOL_TYPE {\n\t/** Agent-to-Agent protocol */\n\tA2A = \"A2A\",\n\t/** Model Context Protocol */\n\tMCP = \"MCP\",\n}\n\n/**\n * Represents a tool invocation request.\n */\nexport type ToolCall = {\n\t/** Name of the tool to invoke */\n\tname: string;\n\t/** Arguments to pass to the tool */\n\targuments?: Record<string, unknown>;\n};\n\n/**\n * Response from a model fetch operation.\n *\n * Contains either content (text response) or tool calls (function invocations),\n * or both in the case of mixed responses.\n */\nexport type FetchResponse = {\n\t/** Text content response from the model */\n\tcontent?: string;\n\t/** Array of tool calls requested by the model */\n\ttoolCalls?: ToolCall[];\n};\n\n/**\n * MCP-specific tool implementation.\n *\n * Wraps an MCP tool with additional metadata and functionality\n * required for integration with the AIN-ADK framework.\n */\nexport interface IMCPTool extends IAgentTool {\n\t/** The underlying MCP tool definition */\n\tmcpTool: Tool;\n\t/** Name of the MCP server providing this tool */\n\tserverName: string;\n}\n\n/**\n * A2A-specific tool implementation.\n *\n * Represents a tool provided by another agent through the A2A protocol,\n * including the client connection and agent metadata.\n */\nexport interface IA2ATool extends IAgentTool {\n\t/** A2A client instance for communication with the remote agent */\n\tclient: A2AClient;\n\t/** Agent card containing metadata about the remote agent */\n\tcard: AgentCard;\n}\n\n/**\n * Base interface for all tools in the AIN-ADK framework.\n *\n * Provides a protocol-agnostic interface for tool management,\n * allowing tools from different sources (MCP, A2A) to be used\n * interchangeably throughout the system.\n *\n * @example\n * ```typescript\n * const tool: IAgentTool = {\n * id: \"search-tool\",\n * protocol: TOOL_PROTOCOL_TYPE.MCP,\n * enabled: true,\n * enable: () => { this.enabled = true; },\n * disable: () => { this.enabled = false; }\n * };\n * ```\n */\nexport interface IAgentTool {\n\t/** Unique identifier for the tool */\n\tid: string;\n\t/** Protocol type (MCP or A2A) */\n\tprotocol: TOOL_PROTOCOL_TYPE;\n\t/** Whether the tool is currently enabled for use */\n\tenabled: boolean;\n\t/** Enables the tool for use */\n\tenable: () => void;\n\t/** Disables the tool from being used */\n\tdisable: () => void;\n}\n"],"mappings":";AAOO,IAAK,qBAAL,kBAAKA,wBAAL;AAEN,EAAAA,oBAAA,SAAM;AAEN,EAAAA,oBAAA,SAAM;AAJK,SAAAA;AAAA,GAAA;","names":["TOOL_PROTOCOL_TYPE"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types/agent.ts"],"sourcesContent":["import type { StatusCodes } from \"http-status-codes\";\n\n/**\n * Custom prompts configuration for the agent.\n *\n * Allows customization of agent behavior through system and agent-level prompts.\n */\nexport type AinAgentPrompts = {\n\t/** Agent-level prompt that defines the agent's personality and behavior */\n\tagent?: string;\n\t/** System-level prompt that provides context and instructions */\n\tsystem?: string;\n};\n\n/**\n * Agent manifest containing essential metadata and configuration.\n *\n * The manifest defines the agent's identity, version, and optional configuration\n * such as the public URL for A2A protocol support and custom prompts.\n *\n * @example\n * ```typescript\n * const manifest: AinAgentManifest = {\n * name: \"CustomerSupportAgent\",\n * description: \"AI agent for handling customer support queries\",\n * version: \"1.0.0\",\n * url: \"https://api.example.com/agent\",\n * prompts: {\n * system: \"You are a helpful customer support assistant.\",\n * agent: \"Always be polite and provide detailed solutions.\"\n * }\n * };\n * ```\n */\nexport type AinAgentManifest = {\n\t/** Unique name identifier for the agent */\n\tname: string;\n\t/** Human-readable description of the agent's purpose and capabilities */\n\tdescription: string;\n\t/** Semantic version of the agent (e.g., \"1.0.0\") */\n\tversion: string;\n\t/** Optional public URL for A2A protocol discovery and communication */\n\turl?: string;\n\t/** Optional custom prompts to configure agent behavior */\n\tprompts?: AinAgentPrompts;\n};\n\nexport class AinHttpError extends Error {\n\tpublic status?: StatusCodes;\n\n\tconstructor(status: StatusCodes, message: string) {\n\t\tsuper(message);\n\t\tthis.status = status;\n\t}\n}\n"],"mappings":";AA+CO,IAAM,eAAN,cAA2B,MAAM;AAAA,EAChC;AAAA,EAEP,YAAY,QAAqB,SAAiB;AACjD,UAAM,OAAO;AACb,SAAK,SAAS;AAAA,EACf;AACD;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/modules/models/base.model.ts"],"sourcesContent":["import type { SessionObject } from \"@/types/memory.js\";\nimport type { FetchResponse, IAgentTool } from \"@/types/tool.js\";\n\n/**\n * Abstract base class for AI model implementations.\n *\n * Provides a common interface for different AI model providers (OpenAI, Gemini, etc.)\n * to integrate with the AIN-ADK framework. Each model implementation must handle\n * message formatting, tool conversion, and API communication.\n *\n * @typeParam MessageType - The message format used by the specific model API\n * @typeParam FunctionType - The function/tool format used by the specific model API\n */\nexport abstract class BaseModel<MessageType, FunctionType> {\n\t/**\n\t * Generates an array of messages from session history and current query.\n\t *\n\t * @param sessionHistory - Previous conversation history\n\t * @param query - Current user query\n\t * @param systemPrompt - Optional system prompt to set context\n\t * @returns Array of messages formatted for the specific model API\n\t */\n\tabstract generateMessages(params: {\n\t\tquery: string;\n\t\tsessionHistory?: SessionObject;\n\t\tsystemPrompt?: string;\n\t}): MessageType[];\n\n\t/**\n\t * Appends a new message to the existing message array.\n\t *\n\t * @param messages - Existing message array to expand\n\t * @param message - New message content to append\n\t */\n\tabstract appendMessages(messages: MessageType[], message: string): void;\n\n\t/**\n\t * Converts protocol-agnostic tools to model-specific function format.\n\t *\n\t * @param tools - Array of agent tools from MCP or A2A sources\n\t * @returns Array of functions in the format required by the model API\n\t */\n\tabstract convertToolsToFunctions(tools: IAgentTool[]): FunctionType[];\n\n\t/**\n\t * Fetches a response from the model API without tool support.\n\t *\n\t * @param messages - Array of messages to send to the model\n\t * @returns Promise resolving to the model's response\n\t */\n\tabstract fetch(messages: MessageType[]): Promise<FetchResponse>;\n\n\t/**\n\t * Fetches a response from the model API with tool/function support.\n\t *\n\t * @param messages - Array of messages to send to the model\n\t * @param functions - Array of available functions/tools the model can call\n\t * @returns Promise resolving to the model's response, possibly including tool calls\n\t */\n\tabstract fetchWithContextMessage(\n\t\tmessages: MessageType[],\n\t\tfunctions: FunctionType[],\n\t): Promise<FetchResponse>;\n}\n"],"mappings":";AAaO,IAAe,YAAf,MAAoD;AAkD3D;","names":[]}
|