@ainetwork/adk 0.0.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 +299 -0
- package/dist/cjs/ainagent.d.ts +15 -0
- package/dist/cjs/ainagent.d.ts.map +1 -0
- package/dist/cjs/ainagent.js +68 -0
- package/dist/cjs/ainagent.js.map +1 -0
- package/dist/cjs/app.d.ts +102 -0
- package/dist/cjs/app.d.ts.map +1 -0
- package/dist/cjs/app.js +170 -0
- package/dist/cjs/app.js.map +1 -0
- package/dist/cjs/controllers/a2a.controller.d.ts +14 -0
- package/dist/cjs/controllers/a2a.controller.d.ts.map +1 -0
- package/dist/cjs/controllers/a2a.controller.js +98 -0
- package/dist/cjs/controllers/a2a.controller.js.map +1 -0
- package/dist/cjs/controllers/api/model.api.controller.d.ts +8 -0
- package/dist/cjs/controllers/api/model.api.controller.d.ts.map +1 -0
- package/dist/cjs/controllers/api/model.api.controller.js +19 -0
- package/dist/cjs/controllers/api/model.api.controller.js.map +1 -0
- package/dist/cjs/controllers/api/session.api.controller.d.ts +8 -0
- package/dist/cjs/controllers/api/session.api.controller.d.ts.map +1 -0
- package/dist/cjs/controllers/api/session.api.controller.js +21 -0
- package/dist/cjs/controllers/api/session.api.controller.js.map +1 -0
- package/dist/cjs/controllers/query.controller.d.ts +8 -0
- package/dist/cjs/controllers/query.controller.d.ts.map +1 -0
- package/dist/cjs/controllers/query.controller.js +20 -0
- package/dist/cjs/controllers/query.controller.js.map +1 -0
- package/dist/cjs/intent/analyzer.d.ts +24 -0
- package/dist/cjs/intent/analyzer.d.ts.map +1 -0
- package/dist/cjs/intent/analyzer.js +154 -0
- package/dist/cjs/intent/analyzer.js.map +1 -0
- package/dist/cjs/intent/modules/a2a/index.d.ts +12 -0
- package/dist/cjs/intent/modules/a2a/index.d.ts.map +1 -0
- package/dist/cjs/intent/modules/a2a/index.js +136 -0
- package/dist/cjs/intent/modules/a2a/index.js.map +1 -0
- package/dist/cjs/intent/modules/a2a/tool.d.ts +8 -0
- package/dist/cjs/intent/modules/a2a/tool.d.ts.map +1 -0
- package/dist/cjs/intent/modules/a2a/tool.js +14 -0
- package/dist/cjs/intent/modules/a2a/tool.js.map +1 -0
- package/dist/cjs/intent/modules/common/tool.d.ts +10 -0
- package/dist/cjs/intent/modules/common/tool.d.ts.map +1 -0
- package/dist/cjs/intent/modules/common/tool.js +18 -0
- package/dist/cjs/intent/modules/common/tool.js.map +1 -0
- package/dist/cjs/intent/modules/common/types.d.ts +5 -0
- package/dist/cjs/intent/modules/common/types.d.ts.map +1 -0
- package/dist/cjs/intent/modules/common/types.js +9 -0
- package/dist/cjs/intent/modules/common/types.js.map +1 -0
- package/dist/cjs/intent/modules/fol/client/folClient.d.ts +31 -0
- package/dist/cjs/intent/modules/fol/client/folClient.d.ts.map +1 -0
- package/dist/cjs/intent/modules/fol/client/folClient.js +185 -0
- package/dist/cjs/intent/modules/fol/client/folClient.js.map +1 -0
- package/dist/cjs/intent/modules/fol/index.d.ts +4 -0
- package/dist/cjs/intent/modules/fol/index.d.ts.map +1 -0
- package/dist/cjs/intent/modules/fol/index.js +14 -0
- package/dist/cjs/intent/modules/fol/index.js.map +1 -0
- package/dist/cjs/intent/modules/fol/store/base.d.ts +9 -0
- package/dist/cjs/intent/modules/fol/store/base.d.ts.map +1 -0
- package/dist/cjs/intent/modules/fol/store/base.js +7 -0
- package/dist/cjs/intent/modules/fol/store/base.js.map +1 -0
- package/dist/cjs/intent/modules/fol/store/index.d.ts +5 -0
- package/dist/cjs/intent/modules/fol/store/index.d.ts.map +1 -0
- package/dist/cjs/intent/modules/fol/store/index.js +12 -0
- package/dist/cjs/intent/modules/fol/store/index.js.map +1 -0
- package/dist/cjs/intent/modules/fol/store/local.d.ts +25 -0
- package/dist/cjs/intent/modules/fol/store/local.d.ts.map +1 -0
- package/dist/cjs/intent/modules/fol/store/local.js +221 -0
- package/dist/cjs/intent/modules/fol/store/local.js.map +1 -0
- package/dist/cjs/intent/modules/fol/store/mongo.d.ts +4 -0
- package/dist/cjs/intent/modules/fol/store/mongo.d.ts.map +1 -0
- package/dist/cjs/intent/modules/fol/store/mongo.js +9 -0
- package/dist/cjs/intent/modules/fol/store/mongo.js.map +1 -0
- package/dist/cjs/intent/modules/fol/store/postgresql.d.ts +4 -0
- package/dist/cjs/intent/modules/fol/store/postgresql.d.ts.map +1 -0
- package/dist/cjs/intent/modules/fol/store/postgresql.js +9 -0
- package/dist/cjs/intent/modules/fol/store/postgresql.js.map +1 -0
- package/dist/cjs/intent/modules/fol/types/index.d.ts +43 -0
- package/dist/cjs/intent/modules/fol/types/index.d.ts.map +1 -0
- package/dist/cjs/intent/modules/fol/types/index.js +3 -0
- package/dist/cjs/intent/modules/fol/types/index.js.map +1 -0
- package/dist/cjs/intent/modules/mcp/index.d.ts +12 -0
- package/dist/cjs/intent/modules/mcp/index.d.ts.map +1 -0
- package/dist/cjs/intent/modules/mcp/index.js +65 -0
- package/dist/cjs/intent/modules/mcp/index.js.map +1 -0
- package/dist/cjs/intent/modules/mcp/tool.d.ts +8 -0
- package/dist/cjs/intent/modules/mcp/tool.d.ts.map +1 -0
- package/dist/cjs/intent/modules/mcp/tool.js +15 -0
- package/dist/cjs/intent/modules/mcp/tool.js.map +1 -0
- package/dist/cjs/middleware/auth/base.d.ts +5 -0
- package/dist/cjs/middleware/auth/base.d.ts.map +1 -0
- package/dist/cjs/middleware/auth/base.js +13 -0
- package/dist/cjs/middleware/auth/base.js.map +1 -0
- package/dist/cjs/middlewares/auth/base.d.ts +5 -0
- package/dist/cjs/middlewares/auth/base.d.ts.map +1 -0
- package/dist/cjs/middlewares/auth/base.js +13 -0
- package/dist/cjs/middlewares/auth/base.js.map +1 -0
- package/dist/cjs/middlewares/error.middleware.d.ts +6 -0
- package/dist/cjs/middlewares/error.middleware.d.ts.map +1 -0
- package/dist/cjs/middlewares/error.middleware.js +17 -0
- package/dist/cjs/middlewares/error.middleware.js.map +1 -0
- package/dist/cjs/models/BaseModel.d.ts +25 -0
- package/dist/cjs/models/BaseModel.d.ts.map +1 -0
- package/dist/cjs/models/BaseModel.js +7 -0
- package/dist/cjs/models/BaseModel.js.map +1 -0
- package/dist/cjs/models/base.d.ts +24 -0
- package/dist/cjs/models/base.d.ts.map +1 -0
- package/dist/cjs/models/base.js +7 -0
- package/dist/cjs/models/base.js.map +1 -0
- package/dist/cjs/models/gemini.d.ts +16 -0
- package/dist/cjs/models/gemini.d.ts.map +1 -0
- package/dist/cjs/models/gemini.js +107 -0
- package/dist/cjs/models/gemini.js.map +1 -0
- package/dist/cjs/models/openai.d.ts +16 -0
- package/dist/cjs/models/openai.d.ts.map +1 -0
- package/dist/cjs/models/openai.js +113 -0
- package/dist/cjs/models/openai.js.map +1 -0
- package/dist/cjs/modules/a2a/a2a.module.d.ts +71 -0
- package/dist/cjs/modules/a2a/a2a.module.d.ts.map +1 -0
- package/dist/cjs/modules/a2a/a2a.module.js +195 -0
- package/dist/cjs/modules/a2a/a2a.module.js.map +1 -0
- package/dist/cjs/modules/a2a/a2a.tool.d.ts +13 -0
- package/dist/cjs/modules/a2a/a2a.tool.d.ts.map +1 -0
- package/dist/cjs/modules/a2a/a2a.tool.js +21 -0
- package/dist/cjs/modules/a2a/a2a.tool.js.map +1 -0
- package/dist/cjs/modules/fol/fol.module.d.ts +31 -0
- package/dist/cjs/modules/fol/fol.module.d.ts.map +1 -0
- package/dist/cjs/modules/fol/fol.module.js +180 -0
- package/dist/cjs/modules/fol/fol.module.js.map +1 -0
- package/dist/cjs/modules/fol/store/base.d.ts +9 -0
- package/dist/cjs/modules/fol/store/base.d.ts.map +1 -0
- package/dist/cjs/modules/fol/store/base.js +7 -0
- package/dist/cjs/modules/fol/store/base.js.map +1 -0
- package/dist/cjs/modules/fol/store/index.d.ts +3 -0
- package/dist/cjs/modules/fol/store/index.d.ts.map +1 -0
- package/dist/cjs/modules/fol/store/index.js +8 -0
- package/dist/cjs/modules/fol/store/index.js.map +1 -0
- package/dist/cjs/modules/fol/store/local.d.ts +25 -0
- package/dist/cjs/modules/fol/store/local.d.ts.map +1 -0
- package/dist/cjs/modules/fol/store/local.js +221 -0
- package/dist/cjs/modules/fol/store/local.js.map +1 -0
- package/dist/cjs/modules/index.d.ts +6 -0
- package/dist/cjs/modules/index.d.ts.map +1 -0
- package/dist/cjs/modules/index.js +14 -0
- package/dist/cjs/modules/index.js.map +1 -0
- package/dist/cjs/modules/mcp/mcp.module.d.ts +65 -0
- package/dist/cjs/modules/mcp/mcp.module.d.ts.map +1 -0
- package/dist/cjs/modules/mcp/mcp.module.js +118 -0
- package/dist/cjs/modules/mcp/mcp.module.js.map +1 -0
- package/dist/cjs/modules/mcp/mcp.tool.d.ts +13 -0
- package/dist/cjs/modules/mcp/mcp.tool.d.ts.map +1 -0
- package/dist/cjs/modules/mcp/mcp.tool.js +22 -0
- package/dist/cjs/modules/mcp/mcp.tool.js.map +1 -0
- package/dist/cjs/modules/memory/inmemory.d.ts +14 -0
- package/dist/cjs/modules/memory/inmemory.d.ts.map +1 -0
- package/dist/cjs/modules/memory/inmemory.js +27 -0
- package/dist/cjs/modules/memory/inmemory.js.map +1 -0
- package/dist/cjs/modules/memory/memory.module.d.ts +65 -0
- package/dist/cjs/modules/memory/memory.module.d.ts.map +1 -0
- package/dist/cjs/modules/memory/memory.module.js +50 -0
- package/dist/cjs/modules/memory/memory.module.js.map +1 -0
- package/dist/cjs/modules/models/gemini.d.ts +16 -0
- package/dist/cjs/modules/models/gemini.d.ts.map +1 -0
- package/dist/cjs/modules/models/gemini.js +108 -0
- package/dist/cjs/modules/models/gemini.js.map +1 -0
- package/dist/cjs/modules/models/model.module.d.ts +102 -0
- package/dist/cjs/modules/models/model.module.d.ts.map +1 -0
- package/dist/cjs/modules/models/model.module.js +80 -0
- package/dist/cjs/modules/models/model.module.js.map +1 -0
- package/dist/cjs/modules/models/openai.d.ts +16 -0
- package/dist/cjs/modules/models/openai.d.ts.map +1 -0
- package/dist/cjs/modules/models/openai.js +114 -0
- package/dist/cjs/modules/models/openai.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/router/a2a/executor.d.ts +11 -0
- package/dist/cjs/router/a2a/executor.d.ts.map +1 -0
- package/dist/cjs/router/a2a/executor.js +96 -0
- package/dist/cjs/router/a2a/executor.js.map +1 -0
- package/dist/cjs/router/a2a/requestHandler.d.ts +9 -0
- package/dist/cjs/router/a2a/requestHandler.d.ts.map +1 -0
- package/dist/cjs/router/a2a/requestHandler.js +20 -0
- package/dist/cjs/router/a2a/requestHandler.js.map +1 -0
- package/dist/cjs/router/a2a/router.d.ts +12 -0
- package/dist/cjs/router/a2a/router.d.ts.map +1 -0
- package/dist/cjs/router/a2a/router.js +99 -0
- package/dist/cjs/router/a2a/router.js.map +1 -0
- package/dist/cjs/routes/a2a.routes.d.ts +12 -0
- package/dist/cjs/routes/a2a.routes.d.ts.map +1 -0
- package/dist/cjs/routes/a2a.routes.js +29 -0
- package/dist/cjs/routes/a2a.routes.js.map +1 -0
- package/dist/cjs/routes/api/models.routes.d.ts +4 -0
- package/dist/cjs/routes/api/models.routes.d.ts.map +1 -0
- package/dist/cjs/routes/api/models.routes.js +14 -0
- package/dist/cjs/routes/api/models.routes.js.map +1 -0
- package/dist/cjs/routes/api/sessions.routes.d.ts +4 -0
- package/dist/cjs/routes/api/sessions.routes.d.ts.map +1 -0
- package/dist/cjs/routes/api/sessions.routes.js +14 -0
- package/dist/cjs/routes/api/sessions.routes.js.map +1 -0
- package/dist/cjs/routes/api.routes.d.ts +4 -0
- package/dist/cjs/routes/api.routes.d.ts.map +1 -0
- package/dist/cjs/routes/api.routes.js +16 -0
- package/dist/cjs/routes/api.routes.js.map +1 -0
- package/dist/cjs/routes/index.d.ts +5 -0
- package/dist/cjs/routes/index.d.ts.map +1 -0
- package/dist/cjs/routes/index.js +10 -0
- package/dist/cjs/routes/index.js.map +1 -0
- package/dist/cjs/routes/query.routes.d.ts +4 -0
- package/dist/cjs/routes/query.routes.d.ts.map +1 -0
- package/dist/cjs/routes/query.routes.js +15 -0
- package/dist/cjs/routes/query.routes.js.map +1 -0
- package/dist/cjs/services/a2a.service.d.ts +15 -0
- package/dist/cjs/services/a2a.service.d.ts.map +1 -0
- package/dist/cjs/services/a2a.service.js +93 -0
- package/dist/cjs/services/a2a.service.js.map +1 -0
- package/dist/cjs/services/query.service.d.ts +57 -0
- package/dist/cjs/services/query.service.d.ts.map +1 -0
- package/dist/cjs/services/query.service.js +158 -0
- package/dist/cjs/services/query.service.js.map +1 -0
- package/dist/cjs/session/BaseSession.d.ts +21 -0
- package/dist/cjs/session/BaseSession.d.ts.map +1 -0
- package/dist/cjs/session/BaseSession.js +13 -0
- package/dist/cjs/session/BaseSession.js.map +1 -0
- package/dist/cjs/types/fol.d.ts +38 -0
- package/dist/cjs/types/fol.d.ts.map +1 -0
- package/dist/cjs/types/fol.js +3 -0
- package/dist/cjs/types/fol.js.map +1 -0
- package/dist/cjs/types/index.d.ts +44 -0
- package/dist/cjs/types/index.d.ts.map +1 -0
- package/dist/cjs/types/index.js +3 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/mcp.d.ts +5 -0
- package/dist/cjs/types/mcp.d.ts.map +1 -0
- package/dist/cjs/types/mcp.js +3 -0
- package/dist/cjs/types/mcp.js.map +1 -0
- package/dist/cjs/types/memory.d.ts +73 -0
- package/dist/cjs/types/memory.d.ts.map +1 -0
- package/dist/cjs/types/memory.js +16 -0
- package/dist/cjs/types/memory.js.map +1 -0
- package/dist/cjs/types/tool.d.ts +87 -0
- package/dist/cjs/types/tool.d.ts.map +1 -0
- package/dist/cjs/types/tool.js +14 -0
- package/dist/cjs/types/tool.js.map +1 -0
- package/dist/cjs/utils/logger.d.ts +13 -0
- package/dist/cjs/utils/logger.d.ts.map +1 -0
- package/dist/cjs/utils/logger.js +39 -0
- package/dist/cjs/utils/logger.js.map +1 -0
- package/dist/esm/ainagent.d.ts +15 -0
- package/dist/esm/ainagent.d.ts.map +1 -0
- package/dist/esm/ainagent.js +61 -0
- package/dist/esm/ainagent.js.map +1 -0
- package/dist/esm/app.d.ts +102 -0
- package/dist/esm/app.d.ts.map +1 -0
- package/dist/esm/app.js +163 -0
- package/dist/esm/app.js.map +1 -0
- package/dist/esm/controllers/a2a.controller.d.ts +14 -0
- package/dist/esm/controllers/a2a.controller.d.ts.map +1 -0
- package/dist/esm/controllers/a2a.controller.js +94 -0
- package/dist/esm/controllers/a2a.controller.js.map +1 -0
- package/dist/esm/controllers/api/model.api.controller.d.ts +8 -0
- package/dist/esm/controllers/api/model.api.controller.d.ts.map +1 -0
- package/dist/esm/controllers/api/model.api.controller.js +15 -0
- package/dist/esm/controllers/api/model.api.controller.js.map +1 -0
- package/dist/esm/controllers/api/session.api.controller.d.ts +8 -0
- package/dist/esm/controllers/api/session.api.controller.d.ts.map +1 -0
- package/dist/esm/controllers/api/session.api.controller.js +17 -0
- package/dist/esm/controllers/api/session.api.controller.js.map +1 -0
- package/dist/esm/controllers/query.controller.d.ts +8 -0
- package/dist/esm/controllers/query.controller.d.ts.map +1 -0
- package/dist/esm/controllers/query.controller.js +16 -0
- package/dist/esm/controllers/query.controller.js.map +1 -0
- package/dist/esm/intent/analyzer.d.ts +24 -0
- package/dist/esm/intent/analyzer.d.ts.map +1 -0
- package/dist/esm/intent/analyzer.js +150 -0
- package/dist/esm/intent/analyzer.js.map +1 -0
- package/dist/esm/intent/modules/a2a/index.d.ts +12 -0
- package/dist/esm/intent/modules/a2a/index.d.ts.map +1 -0
- package/dist/esm/intent/modules/a2a/index.js +132 -0
- package/dist/esm/intent/modules/a2a/index.js.map +1 -0
- package/dist/esm/intent/modules/a2a/tool.d.ts +8 -0
- package/dist/esm/intent/modules/a2a/tool.d.ts.map +1 -0
- package/dist/esm/intent/modules/a2a/tool.js +10 -0
- package/dist/esm/intent/modules/a2a/tool.js.map +1 -0
- package/dist/esm/intent/modules/common/tool.d.ts +10 -0
- package/dist/esm/intent/modules/common/tool.d.ts.map +1 -0
- package/dist/esm/intent/modules/common/tool.js +14 -0
- package/dist/esm/intent/modules/common/tool.js.map +1 -0
- package/dist/esm/intent/modules/common/types.d.ts +5 -0
- package/dist/esm/intent/modules/common/types.d.ts.map +1 -0
- package/dist/esm/intent/modules/common/types.js +6 -0
- package/dist/esm/intent/modules/common/types.js.map +1 -0
- package/dist/esm/intent/modules/fol/client/folClient.d.ts +31 -0
- package/dist/esm/intent/modules/fol/client/folClient.d.ts.map +1 -0
- package/dist/esm/intent/modules/fol/client/folClient.js +178 -0
- package/dist/esm/intent/modules/fol/client/folClient.js.map +1 -0
- package/dist/esm/intent/modules/fol/index.d.ts +4 -0
- package/dist/esm/intent/modules/fol/index.d.ts.map +1 -0
- package/dist/esm/intent/modules/fol/index.js +6 -0
- package/dist/esm/intent/modules/fol/index.js.map +1 -0
- package/dist/esm/intent/modules/fol/store/base.d.ts +9 -0
- package/dist/esm/intent/modules/fol/store/base.d.ts.map +1 -0
- package/dist/esm/intent/modules/fol/store/base.js +3 -0
- package/dist/esm/intent/modules/fol/store/base.js.map +1 -0
- package/dist/esm/intent/modules/fol/store/index.d.ts +5 -0
- package/dist/esm/intent/modules/fol/store/index.d.ts.map +1 -0
- package/dist/esm/intent/modules/fol/store/index.js +5 -0
- package/dist/esm/intent/modules/fol/store/index.js.map +1 -0
- package/dist/esm/intent/modules/fol/store/local.d.ts +25 -0
- package/dist/esm/intent/modules/fol/store/local.d.ts.map +1 -0
- package/dist/esm/intent/modules/fol/store/local.js +214 -0
- package/dist/esm/intent/modules/fol/store/local.js.map +1 -0
- package/dist/esm/intent/modules/fol/store/mongo.d.ts +4 -0
- package/dist/esm/intent/modules/fol/store/mongo.d.ts.map +1 -0
- package/dist/esm/intent/modules/fol/store/mongo.js +5 -0
- package/dist/esm/intent/modules/fol/store/mongo.js.map +1 -0
- package/dist/esm/intent/modules/fol/store/postgresql.d.ts +4 -0
- package/dist/esm/intent/modules/fol/store/postgresql.d.ts.map +1 -0
- package/dist/esm/intent/modules/fol/store/postgresql.js +5 -0
- package/dist/esm/intent/modules/fol/store/postgresql.js.map +1 -0
- package/dist/esm/intent/modules/fol/types/index.d.ts +43 -0
- package/dist/esm/intent/modules/fol/types/index.d.ts.map +1 -0
- package/dist/esm/intent/modules/fol/types/index.js +2 -0
- package/dist/esm/intent/modules/fol/types/index.js.map +1 -0
- package/dist/esm/intent/modules/mcp/index.d.ts +12 -0
- package/dist/esm/intent/modules/mcp/index.d.ts.map +1 -0
- package/dist/esm/intent/modules/mcp/index.js +61 -0
- package/dist/esm/intent/modules/mcp/index.js.map +1 -0
- package/dist/esm/intent/modules/mcp/tool.d.ts +8 -0
- package/dist/esm/intent/modules/mcp/tool.d.ts.map +1 -0
- package/dist/esm/intent/modules/mcp/tool.js +11 -0
- package/dist/esm/intent/modules/mcp/tool.js.map +1 -0
- package/dist/esm/middleware/auth/base.d.ts +5 -0
- package/dist/esm/middleware/auth/base.d.ts.map +1 -0
- package/dist/esm/middleware/auth/base.js +9 -0
- package/dist/esm/middleware/auth/base.js.map +1 -0
- package/dist/esm/middlewares/auth/base.d.ts +5 -0
- package/dist/esm/middlewares/auth/base.d.ts.map +1 -0
- package/dist/esm/middlewares/auth/base.js +9 -0
- package/dist/esm/middlewares/auth/base.js.map +1 -0
- package/dist/esm/middlewares/error.middleware.d.ts +6 -0
- package/dist/esm/middlewares/error.middleware.d.ts.map +1 -0
- package/dist/esm/middlewares/error.middleware.js +13 -0
- package/dist/esm/middlewares/error.middleware.js.map +1 -0
- package/dist/esm/models/BaseModel.d.ts +25 -0
- package/dist/esm/models/BaseModel.d.ts.map +1 -0
- package/dist/esm/models/BaseModel.js +3 -0
- package/dist/esm/models/BaseModel.js.map +1 -0
- package/dist/esm/models/base.d.ts +24 -0
- package/dist/esm/models/base.d.ts.map +1 -0
- package/dist/esm/models/base.js +3 -0
- package/dist/esm/models/base.js.map +1 -0
- package/dist/esm/models/gemini.d.ts +16 -0
- package/dist/esm/models/gemini.d.ts.map +1 -0
- package/dist/esm/models/gemini.js +104 -0
- package/dist/esm/models/gemini.js.map +1 -0
- package/dist/esm/models/openai.d.ts +16 -0
- package/dist/esm/models/openai.d.ts.map +1 -0
- package/dist/esm/models/openai.js +110 -0
- package/dist/esm/models/openai.js.map +1 -0
- package/dist/esm/modules/a2a/a2a.module.d.ts +71 -0
- package/dist/esm/modules/a2a/a2a.module.d.ts.map +1 -0
- package/dist/esm/modules/a2a/a2a.module.js +191 -0
- package/dist/esm/modules/a2a/a2a.module.js.map +1 -0
- package/dist/esm/modules/a2a/a2a.tool.d.ts +13 -0
- package/dist/esm/modules/a2a/a2a.tool.d.ts.map +1 -0
- package/dist/esm/modules/a2a/a2a.tool.js +17 -0
- package/dist/esm/modules/a2a/a2a.tool.js.map +1 -0
- package/dist/esm/modules/fol/fol.module.d.ts +31 -0
- package/dist/esm/modules/fol/fol.module.d.ts.map +1 -0
- package/dist/esm/modules/fol/fol.module.js +176 -0
- package/dist/esm/modules/fol/fol.module.js.map +1 -0
- package/dist/esm/modules/fol/store/base.d.ts +9 -0
- package/dist/esm/modules/fol/store/base.d.ts.map +1 -0
- package/dist/esm/modules/fol/store/base.js +3 -0
- package/dist/esm/modules/fol/store/base.js.map +1 -0
- package/dist/esm/modules/fol/store/index.d.ts +3 -0
- package/dist/esm/modules/fol/store/index.d.ts.map +1 -0
- package/dist/esm/modules/fol/store/index.js +3 -0
- package/dist/esm/modules/fol/store/index.js.map +1 -0
- package/dist/esm/modules/fol/store/local.d.ts +25 -0
- package/dist/esm/modules/fol/store/local.d.ts.map +1 -0
- package/dist/esm/modules/fol/store/local.js +214 -0
- package/dist/esm/modules/fol/store/local.js.map +1 -0
- package/dist/esm/modules/index.d.ts +6 -0
- package/dist/esm/modules/index.d.ts.map +1 -0
- package/dist/esm/modules/index.js +6 -0
- package/dist/esm/modules/index.js.map +1 -0
- package/dist/esm/modules/mcp/mcp.module.d.ts +65 -0
- package/dist/esm/modules/mcp/mcp.module.d.ts.map +1 -0
- package/dist/esm/modules/mcp/mcp.module.js +114 -0
- package/dist/esm/modules/mcp/mcp.module.js.map +1 -0
- package/dist/esm/modules/mcp/mcp.tool.d.ts +13 -0
- package/dist/esm/modules/mcp/mcp.tool.d.ts.map +1 -0
- package/dist/esm/modules/mcp/mcp.tool.js +18 -0
- package/dist/esm/modules/mcp/mcp.tool.js.map +1 -0
- package/dist/esm/modules/memory/inmemory.d.ts +14 -0
- package/dist/esm/modules/memory/inmemory.d.ts.map +1 -0
- package/dist/esm/modules/memory/inmemory.js +23 -0
- package/dist/esm/modules/memory/inmemory.js.map +1 -0
- package/dist/esm/modules/memory/memory.module.d.ts +65 -0
- package/dist/esm/modules/memory/memory.module.d.ts.map +1 -0
- package/dist/esm/modules/memory/memory.module.js +45 -0
- package/dist/esm/modules/memory/memory.module.js.map +1 -0
- package/dist/esm/modules/models/gemini.d.ts +16 -0
- package/dist/esm/modules/models/gemini.d.ts.map +1 -0
- package/dist/esm/modules/models/gemini.js +104 -0
- package/dist/esm/modules/models/gemini.js.map +1 -0
- package/dist/esm/modules/models/model.module.d.ts +102 -0
- package/dist/esm/modules/models/model.module.d.ts.map +1 -0
- package/dist/esm/modules/models/model.module.js +75 -0
- package/dist/esm/modules/models/model.module.js.map +1 -0
- package/dist/esm/modules/models/openai.d.ts +16 -0
- package/dist/esm/modules/models/openai.d.ts.map +1 -0
- package/dist/esm/modules/models/openai.js +110 -0
- package/dist/esm/modules/models/openai.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/router/a2a/executor.d.ts +11 -0
- package/dist/esm/router/a2a/executor.d.ts.map +1 -0
- package/dist/esm/router/a2a/executor.js +92 -0
- package/dist/esm/router/a2a/executor.js.map +1 -0
- package/dist/esm/router/a2a/requestHandler.d.ts +9 -0
- package/dist/esm/router/a2a/requestHandler.d.ts.map +1 -0
- package/dist/esm/router/a2a/requestHandler.js +16 -0
- package/dist/esm/router/a2a/requestHandler.js.map +1 -0
- package/dist/esm/router/a2a/router.d.ts +12 -0
- package/dist/esm/router/a2a/router.d.ts.map +1 -0
- package/dist/esm/router/a2a/router.js +95 -0
- package/dist/esm/router/a2a/router.js.map +1 -0
- package/dist/esm/routes/a2a.routes.d.ts +12 -0
- package/dist/esm/routes/a2a.routes.d.ts.map +1 -0
- package/dist/esm/routes/a2a.routes.js +25 -0
- package/dist/esm/routes/a2a.routes.js.map +1 -0
- package/dist/esm/routes/api/models.routes.d.ts +4 -0
- package/dist/esm/routes/api/models.routes.d.ts.map +1 -0
- package/dist/esm/routes/api/models.routes.js +10 -0
- package/dist/esm/routes/api/models.routes.js.map +1 -0
- package/dist/esm/routes/api/sessions.routes.d.ts +4 -0
- package/dist/esm/routes/api/sessions.routes.d.ts.map +1 -0
- package/dist/esm/routes/api/sessions.routes.js +10 -0
- package/dist/esm/routes/api/sessions.routes.js.map +1 -0
- package/dist/esm/routes/api.routes.d.ts +4 -0
- package/dist/esm/routes/api.routes.d.ts.map +1 -0
- package/dist/esm/routes/api.routes.js +12 -0
- package/dist/esm/routes/api.routes.js.map +1 -0
- package/dist/esm/routes/index.d.ts +5 -0
- package/dist/esm/routes/index.d.ts.map +1 -0
- package/dist/esm/routes/index.js +5 -0
- package/dist/esm/routes/index.js.map +1 -0
- package/dist/esm/routes/query.routes.d.ts +4 -0
- package/dist/esm/routes/query.routes.d.ts.map +1 -0
- package/dist/esm/routes/query.routes.js +11 -0
- package/dist/esm/routes/query.routes.js.map +1 -0
- package/dist/esm/services/a2a.service.d.ts +15 -0
- package/dist/esm/services/a2a.service.d.ts.map +1 -0
- package/dist/esm/services/a2a.service.js +89 -0
- package/dist/esm/services/a2a.service.js.map +1 -0
- package/dist/esm/services/query.service.d.ts +57 -0
- package/dist/esm/services/query.service.d.ts.map +1 -0
- package/dist/esm/services/query.service.js +154 -0
- package/dist/esm/services/query.service.js.map +1 -0
- package/dist/esm/session/BaseSession.d.ts +21 -0
- package/dist/esm/session/BaseSession.d.ts.map +1 -0
- package/dist/esm/session/BaseSession.js +9 -0
- package/dist/esm/session/BaseSession.js.map +1 -0
- package/dist/esm/types/fol.d.ts +38 -0
- package/dist/esm/types/fol.d.ts.map +1 -0
- package/dist/esm/types/fol.js +2 -0
- package/dist/esm/types/fol.js.map +1 -0
- package/dist/esm/types/index.d.ts +44 -0
- package/dist/esm/types/index.d.ts.map +1 -0
- package/dist/esm/types/index.js +2 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/mcp.d.ts +5 -0
- package/dist/esm/types/mcp.d.ts.map +1 -0
- package/dist/esm/types/mcp.js +2 -0
- package/dist/esm/types/mcp.js.map +1 -0
- package/dist/esm/types/memory.d.ts +73 -0
- package/dist/esm/types/memory.d.ts.map +1 -0
- package/dist/esm/types/memory.js +13 -0
- package/dist/esm/types/memory.js.map +1 -0
- package/dist/esm/types/tool.d.ts +87 -0
- package/dist/esm/types/tool.d.ts.map +1 -0
- package/dist/esm/types/tool.js +11 -0
- package/dist/esm/types/tool.js.map +1 -0
- package/dist/esm/utils/logger.d.ts +13 -0
- package/dist/esm/utils/logger.d.ts.map +1 -0
- package/dist/esm/utils/logger.js +32 -0
- package/dist/esm/utils/logger.js.map +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AINAgentExecutor = void 0;
|
|
4
|
+
const uuid_1 = require("uuid");
|
|
5
|
+
const logger_js_1 = require("../../utils/logger.js");
|
|
6
|
+
class AINAgentExecutor {
|
|
7
|
+
constructor(intentAnalyzer) {
|
|
8
|
+
this.canceledTasks = new Set();
|
|
9
|
+
this.cancelTask = async (taskId, _eventBus) => {
|
|
10
|
+
this.canceledTasks.add(taskId);
|
|
11
|
+
};
|
|
12
|
+
this.createTaskStatusUpdateEvent = (taskId, contextId, state, message) => {
|
|
13
|
+
return {
|
|
14
|
+
kind: "status-update",
|
|
15
|
+
taskId: taskId,
|
|
16
|
+
contextId: contextId,
|
|
17
|
+
status: {
|
|
18
|
+
state: state,
|
|
19
|
+
message: message
|
|
20
|
+
? {
|
|
21
|
+
kind: "message",
|
|
22
|
+
role: "agent",
|
|
23
|
+
messageId: (0, uuid_1.v4)(),
|
|
24
|
+
parts: [{ kind: "text", text: message }],
|
|
25
|
+
taskId: taskId,
|
|
26
|
+
contextId: contextId,
|
|
27
|
+
}
|
|
28
|
+
: undefined,
|
|
29
|
+
timestamp: new Date().toISOString(),
|
|
30
|
+
},
|
|
31
|
+
final: state !== "working",
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
this.intentAnalyzer = intentAnalyzer;
|
|
35
|
+
}
|
|
36
|
+
async execute(requestContext, eventBus) {
|
|
37
|
+
const userMessage = requestContext.userMessage;
|
|
38
|
+
const existingTask = requestContext.task;
|
|
39
|
+
const taskId = existingTask?.id || (0, uuid_1.v4)();
|
|
40
|
+
const contextId = userMessage.contextId || existingTask?.contextId || (0, uuid_1.v4)();
|
|
41
|
+
// 1. Publish initial Task event if it's a new task
|
|
42
|
+
if (!existingTask) {
|
|
43
|
+
const initialTask = {
|
|
44
|
+
kind: "task",
|
|
45
|
+
id: taskId,
|
|
46
|
+
contextId: contextId,
|
|
47
|
+
status: {
|
|
48
|
+
state: "submitted",
|
|
49
|
+
timestamp: new Date().toISOString(),
|
|
50
|
+
},
|
|
51
|
+
history: [userMessage],
|
|
52
|
+
metadata: userMessage.metadata,
|
|
53
|
+
artifacts: [],
|
|
54
|
+
};
|
|
55
|
+
eventBus.publish(initialTask);
|
|
56
|
+
}
|
|
57
|
+
// 2. Publish "working" status update
|
|
58
|
+
const workingStatusUpdate = this.createTaskStatusUpdateEvent(taskId, contextId, "working");
|
|
59
|
+
eventBus.publish(workingStatusUpdate);
|
|
60
|
+
// 3. Prepare message for intent analyzer
|
|
61
|
+
// TODO: Multi-modal (part.kind === 'file' || part.kind === 'data')
|
|
62
|
+
// TODO: Context history management
|
|
63
|
+
// TODO: anything else?
|
|
64
|
+
const message = userMessage.parts
|
|
65
|
+
.filter((part) => part.kind === "text")
|
|
66
|
+
.map((part) => part.text)
|
|
67
|
+
.join("\n");
|
|
68
|
+
if (message.length === 0) {
|
|
69
|
+
logger_js_1.loggers.server.warn(`Empty message received for task ${taskId}.`);
|
|
70
|
+
const failureUpdate = this.createTaskStatusUpdateEvent(taskId, contextId, "failed", "No message found to process.");
|
|
71
|
+
eventBus.publish(failureUpdate);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
// 4. Handle query using intent analyzer
|
|
75
|
+
try {
|
|
76
|
+
const response = await this.intentAnalyzer.handleQuery(message);
|
|
77
|
+
if (this.canceledTasks.has(taskId)) {
|
|
78
|
+
logger_js_1.loggers.server.info(`Task ${taskId} was canceled.`);
|
|
79
|
+
const canceledUpdate = this.createTaskStatusUpdateEvent(taskId, contextId, "canceled");
|
|
80
|
+
eventBus.publish(canceledUpdate);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const finalUpdate = this.createTaskStatusUpdateEvent(taskId, contextId, "completed", response.content);
|
|
84
|
+
eventBus.publish(finalUpdate);
|
|
85
|
+
logger_js_1.loggers.server.info(`Task ${taskId} completed successfully.`);
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
logger_js_1.loggers.server.error(`Error processing task ${taskId}:`, error);
|
|
89
|
+
const errorUpdate = this.createTaskStatusUpdateEvent(taskId, contextId, "failed", `Agent error: ${error.message}`);
|
|
90
|
+
eventBus.publish(errorUpdate);
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.AINAgentExecutor = AINAgentExecutor;
|
|
96
|
+
//# sourceMappingURL=executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/router/a2a/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AgentCard, AgentExecutor, ExecutionEventBusManager, TaskStore } from "@a2a-js/sdk";
|
|
2
|
+
import { DefaultRequestHandler } from "@a2a-js/sdk";
|
|
3
|
+
export declare class AINRequestHandler extends DefaultRequestHandler {
|
|
4
|
+
private ainAgentCard;
|
|
5
|
+
constructor(card: AgentCard, taskStore: TaskStore, executor: AgentExecutor, eventBusManager?: ExecutionEventBusManager);
|
|
6
|
+
getAgentCard(): Promise<AgentCard>;
|
|
7
|
+
updateAgentCard(): Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=requestHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requestHandler.d.ts","sourceRoot":"","sources":["../../../../src/router/a2a/requestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,SAAS,EACT,aAAa,EACb,wBAAwB,EACxB,SAAS,EACT,MAAM,aAAa,CAAC;AACrB,OAAO,EAEN,qBAAqB,EACrB,MAAM,aAAa,CAAC;AAErB,qBAAa,iBAAkB,SAAQ,qBAAqB;IAC3D,OAAO,CAAC,YAAY,CAAY;gBAG/B,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,aAAa,EACvB,eAAe,GAAE,wBAAgE;IAM5E,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAIlC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAKtC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AINRequestHandler = void 0;
|
|
4
|
+
const sdk_1 = require("@a2a-js/sdk");
|
|
5
|
+
class AINRequestHandler extends sdk_1.DefaultRequestHandler {
|
|
6
|
+
constructor(card, taskStore, executor, eventBusManager = new sdk_1.DefaultExecutionEventBusManager()) {
|
|
7
|
+
super(card, taskStore, executor, eventBusManager);
|
|
8
|
+
this.ainAgentCard = card;
|
|
9
|
+
}
|
|
10
|
+
async getAgentCard() {
|
|
11
|
+
return this.ainAgentCard;
|
|
12
|
+
}
|
|
13
|
+
async updateAgentCard() {
|
|
14
|
+
const newAgentCard = await super.getAgentCard();
|
|
15
|
+
// TODO: Update skills using mcp tools
|
|
16
|
+
this.ainAgentCard = newAgentCard;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.AINRequestHandler = AINRequestHandler;
|
|
20
|
+
//# sourceMappingURL=requestHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requestHandler.js","sourceRoot":"","sources":["../../../../src/router/a2a/requestHandler.ts"],"names":[],"mappings":";;;AAMA,qCAGqB;AAErB,MAAa,iBAAkB,SAAQ,2BAAqB;IAG3D,YACC,IAAe,EACf,SAAoB,EACpB,QAAuB,EACvB,kBAA4C,IAAI,qCAA+B,EAAE;QAEjF,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,YAAY;QACjB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,eAAe;QACpB,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;QAChD,sCAAsC;QACtC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IAClC,CAAC;CACD;AAtBD,8CAsBC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AgentCard } from "@a2a-js/sdk";
|
|
2
|
+
import type { Application } from "express";
|
|
3
|
+
import type { IntentAnalyzer } from "../../intent/analyzer.js";
|
|
4
|
+
export declare class A2ARouter {
|
|
5
|
+
private taskStore;
|
|
6
|
+
private agentExecutor;
|
|
7
|
+
private requestHandler;
|
|
8
|
+
private jsonRpcTransportHandler;
|
|
9
|
+
constructor(intentAnalyzer: IntentAnalyzer, card: AgentCard);
|
|
10
|
+
setupRoutes(app: Application): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../src/router/a2a/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAU7C,OAAO,KAAK,EAAE,WAAW,EAAqB,MAAM,SAAS,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK3D,qBAAa,SAAS;IACrB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,uBAAuB,CAA0B;gBAE7C,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS;IAapD,WAAW,CAAC,GAAG,EAAE,WAAW;CAgGnC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.A2ARouter = void 0;
|
|
4
|
+
const sdk_1 = require("@a2a-js/sdk");
|
|
5
|
+
const logger_js_1 = require("../../utils/logger.js");
|
|
6
|
+
const executor_js_1 = require("./executor.js");
|
|
7
|
+
const requestHandler_js_1 = require("./requestHandler.js");
|
|
8
|
+
class A2ARouter {
|
|
9
|
+
constructor(intentAnalyzer, card) {
|
|
10
|
+
this.taskStore = new sdk_1.InMemoryTaskStore();
|
|
11
|
+
this.agentExecutor = new executor_js_1.AINAgentExecutor(intentAnalyzer);
|
|
12
|
+
this.requestHandler = new requestHandler_js_1.AINRequestHandler(card, this.taskStore, this.agentExecutor);
|
|
13
|
+
this.jsonRpcTransportHandler = new sdk_1.JsonRpcTransportHandler(this.requestHandler);
|
|
14
|
+
}
|
|
15
|
+
setupRoutes(app) {
|
|
16
|
+
app.get("/agent-card", async (_, res) => {
|
|
17
|
+
const agentCard = await this.requestHandler.getAgentCard();
|
|
18
|
+
res.json(agentCard);
|
|
19
|
+
});
|
|
20
|
+
app.get("/.well-known/agent.json", async (_, res) => {
|
|
21
|
+
const agentCard = await this.requestHandler.getAgentCard();
|
|
22
|
+
res.json(agentCard);
|
|
23
|
+
});
|
|
24
|
+
app.post("/a2a", async (req, res) => {
|
|
25
|
+
try {
|
|
26
|
+
const rpcResponseOrStream = await this.jsonRpcTransportHandler?.handle(req.body);
|
|
27
|
+
// Check if it's an AsyncGenerator (stream)
|
|
28
|
+
if (typeof rpcResponseOrStream?.[Symbol.asyncIterator] ===
|
|
29
|
+
"function") {
|
|
30
|
+
const stream = rpcResponseOrStream;
|
|
31
|
+
res.setHeader("Content-Type", "text/event-stream");
|
|
32
|
+
res.setHeader("Cache-Control", "no-cache");
|
|
33
|
+
res.setHeader("Connection", "keep-alive");
|
|
34
|
+
res.flushHeaders();
|
|
35
|
+
try {
|
|
36
|
+
for await (const event of stream) {
|
|
37
|
+
// Each event from the stream is already a JSONRPCResult
|
|
38
|
+
res.write(`id: ${Date.now()}\n`);
|
|
39
|
+
res.write(`data: ${JSON.stringify(event)}\n\n`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
catch (streamError) {
|
|
43
|
+
logger_js_1.loggers.server.error(`Error during SSE streaming (request ${req.body?.id}):`, streamError);
|
|
44
|
+
// If the stream itself throws an error, send a final JSONRPCErrorResponse
|
|
45
|
+
const a2aError = streamError instanceof sdk_1.A2AError
|
|
46
|
+
? streamError
|
|
47
|
+
: sdk_1.A2AError.internalError("Streaming error");
|
|
48
|
+
const errorResponse = {
|
|
49
|
+
jsonrpc: "2.0",
|
|
50
|
+
id: req.body?.id || null, // Use original request ID if available
|
|
51
|
+
error: a2aError.toJSONRPCError(),
|
|
52
|
+
};
|
|
53
|
+
if (!res.headersSent) {
|
|
54
|
+
// Should not happen if flushHeaders worked
|
|
55
|
+
res.status(500).json(errorResponse); // Should be JSON, not SSE here
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
// Try to send as last SSE event if possible, though client might have disconnected
|
|
59
|
+
res.write(`id: ${Date.now()}\n`);
|
|
60
|
+
res.write("event: error\n"); // Custom event type for client-side handling
|
|
61
|
+
res.write(`data: ${JSON.stringify(errorResponse)}\n\n`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
finally {
|
|
65
|
+
if (!res.writableEnded) {
|
|
66
|
+
res.end();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
// Single JSON-RPC response
|
|
72
|
+
const rpcResponse = rpcResponseOrStream;
|
|
73
|
+
res.status(200).json(rpcResponse);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
// Catch errors from jsonRpcTransportHandler.handle itself (e.g., initial parse error)
|
|
78
|
+
logger_js_1.loggers.server.error("Unhandled error in AINAgent A2A POST handler:", error);
|
|
79
|
+
const a2aError = error instanceof sdk_1.A2AError
|
|
80
|
+
? error
|
|
81
|
+
: sdk_1.A2AError.internalError("General processing error");
|
|
82
|
+
const errorResponse = {
|
|
83
|
+
jsonrpc: "2.0",
|
|
84
|
+
id: req.body?.id || null,
|
|
85
|
+
error: a2aError.toJSONRPCError(),
|
|
86
|
+
};
|
|
87
|
+
if (!res.headersSent) {
|
|
88
|
+
res.status(500).json(errorResponse);
|
|
89
|
+
}
|
|
90
|
+
else if (!res.writableEnded) {
|
|
91
|
+
// If headers sent (likely during a stream attempt that failed early), try to end gracefully
|
|
92
|
+
res.end();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.A2ARouter = A2ARouter;
|
|
99
|
+
//# sourceMappingURL=router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../src/router/a2a/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Router } from "express";
|
|
2
|
+
import type { AINAgent } from "../app.js";
|
|
3
|
+
/**
|
|
4
|
+
* Creates and configures the A2A router.
|
|
5
|
+
* This function is a "composition root" for the A2A feature,
|
|
6
|
+
* creating and injecting all necessary dependencies.
|
|
7
|
+
* @param intentAnalyzer The core intent analyzer.
|
|
8
|
+
* @param agentCard The agent's card.
|
|
9
|
+
* @returns An Express Router instance.
|
|
10
|
+
*/
|
|
11
|
+
export declare const createA2ARouter: (agent: AINAgent) => Router;
|
|
12
|
+
//# sourceMappingURL=a2a.routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a2a.routes.d.ts","sourceRoot":"","sources":["../../../src/routes/a2a.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAKzC;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,QAAQ,KAAG,MAuBjD,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createA2ARouter = void 0;
|
|
4
|
+
const sdk_1 = require("@a2a-js/sdk");
|
|
5
|
+
const express_1 = require("express");
|
|
6
|
+
const query_service_js_1 = require("../services/query.service.js");
|
|
7
|
+
const a2a_controller_js_1 = require("../controllers/a2a.controller.js");
|
|
8
|
+
const a2a_service_js_1 = require("../services/a2a.service.js");
|
|
9
|
+
/**
|
|
10
|
+
* Creates and configures the A2A router.
|
|
11
|
+
* This function is a "composition root" for the A2A feature,
|
|
12
|
+
* creating and injecting all necessary dependencies.
|
|
13
|
+
* @param intentAnalyzer The core intent analyzer.
|
|
14
|
+
* @param agentCard The agent's card.
|
|
15
|
+
* @returns An Express Router instance.
|
|
16
|
+
*/
|
|
17
|
+
const createA2ARouter = (agent) => {
|
|
18
|
+
const router = (0, express_1.Router)();
|
|
19
|
+
// 1. Create dependencies for the A2A feature
|
|
20
|
+
const taskStore = new sdk_1.InMemoryTaskStore();
|
|
21
|
+
const queryService = new query_service_js_1.QueryService(agent.modelModule, agent.a2aModule, agent.mcpModule, agent.memoryModule, agent.manifest.prompts);
|
|
22
|
+
const a2aService = new a2a_service_js_1.A2AService(queryService);
|
|
23
|
+
const a2aController = new a2a_controller_js_1.A2AController(a2aService, taskStore, agent.generateAgentCard);
|
|
24
|
+
// 2. Define the route
|
|
25
|
+
router.post("/a2a", a2aController.handleA2ARequest);
|
|
26
|
+
return router;
|
|
27
|
+
};
|
|
28
|
+
exports.createA2ARouter = createA2ARouter;
|
|
29
|
+
//# sourceMappingURL=a2a.routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a2a.routes.js","sourceRoot":"","sources":["../../../src/routes/a2a.routes.ts"],"names":[],"mappings":";;;AAAA,qCAAgD;AAChD,qCAAiC;AAEjC,kEAA2D;AAC3D,wEAAiE;AACjE,+DAAwD;AAExD;;;;;;;GAOG;AACI,MAAM,eAAe,GAAG,CAAC,KAAe,EAAU,EAAE;IAC1D,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IAExB,6CAA6C;IAC7C,MAAM,SAAS,GAAG,IAAI,uBAAiB,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAG,IAAI,+BAAY,CACpC,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,QAAQ,CAAC,OAAO,CACtB,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,2BAAU,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,IAAI,iCAAa,CACtC,UAAU,EACV,SAAS,EACT,KAAK,CAAC,iBAAiB,CACvB,CAAC;IAEF,sBAAsB;IACtB,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAEpD,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAvBW,QAAA,eAAe,mBAuB1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.routes.d.ts","sourceRoot":"","sources":["../../../../src/routes/api/models.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,eAAO,MAAM,oBAAoB,GAAI,aAAa,WAAW,KAAG,MAQ/D,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createModelApiRouter = void 0;
|
|
4
|
+
const express_1 = require("express");
|
|
5
|
+
const model_api_controller_js_1 = require("../../controllers/api/model.api.controller.js");
|
|
6
|
+
const createModelApiRouter = (modelModule) => {
|
|
7
|
+
const router = (0, express_1.Router)();
|
|
8
|
+
const modelApiController = new model_api_controller_js_1.ModelApiController(modelModule);
|
|
9
|
+
// APIs (prefix: /api/models)
|
|
10
|
+
router.get("/", modelApiController.handleModelList);
|
|
11
|
+
return router;
|
|
12
|
+
};
|
|
13
|
+
exports.createModelApiRouter = createModelApiRouter;
|
|
14
|
+
//# sourceMappingURL=models.routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.routes.js","sourceRoot":"","sources":["../../../../src/routes/api/models.routes.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AACjC,uFAA+E;AAGxE,MAAM,oBAAoB,GAAG,CAAC,WAAwB,EAAU,EAAE;IACxE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IACxB,MAAM,kBAAkB,GAAG,IAAI,4CAAkB,CAAC,WAAW,CAAC,CAAC;IAE/D,6BAA6B;IAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAEpD,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AARW,QAAA,oBAAoB,wBAQ/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.routes.d.ts","sourceRoot":"","sources":["../../../../src/routes/api/sessions.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,eAAO,MAAM,sBAAsB,GAAI,cAAc,YAAY,KAAG,MAQnE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSessionApiRouter = void 0;
|
|
4
|
+
const express_1 = require("express");
|
|
5
|
+
const session_api_controller_js_1 = require("../../controllers/api/session.api.controller.js");
|
|
6
|
+
const createSessionApiRouter = (memoryModule) => {
|
|
7
|
+
const router = (0, express_1.Router)();
|
|
8
|
+
const sessionApiController = new session_api_controller_js_1.SessionApiController(memoryModule);
|
|
9
|
+
// APIs (prefix: /api/sessions)
|
|
10
|
+
router.get("/:id", sessionApiController.handleSessionHistory);
|
|
11
|
+
return router;
|
|
12
|
+
};
|
|
13
|
+
exports.createSessionApiRouter = createSessionApiRouter;
|
|
14
|
+
//# sourceMappingURL=sessions.routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.routes.js","sourceRoot":"","sources":["../../../../src/routes/api/sessions.routes.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AACjC,2FAAmF;AAG5E,MAAM,sBAAsB,GAAG,CAAC,YAA0B,EAAU,EAAE;IAC5E,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IACxB,MAAM,oBAAoB,GAAG,IAAI,gDAAoB,CAAC,YAAY,CAAC,CAAC;IAEpE,+BAA+B;IAC/B,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;IAE9D,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AARW,QAAA,sBAAsB,0BAQjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.routes.d.ts","sourceRoot":"","sources":["../../../src/routes/api.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAKzC,eAAO,MAAM,eAAe,GAAI,OAAO,QAAQ,KAAG,MASjD,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createApiRouter = void 0;
|
|
4
|
+
const express_1 = require("express");
|
|
5
|
+
const models_routes_js_1 = require("./api/models.routes.js");
|
|
6
|
+
const sessions_routes_js_1 = require("./api/sessions.routes.js");
|
|
7
|
+
const createApiRouter = (agent) => {
|
|
8
|
+
const router = (0, express_1.Router)();
|
|
9
|
+
router.use("/api/models", (0, models_routes_js_1.createModelApiRouter)(agent.modelModule));
|
|
10
|
+
if (agent.memoryModule) {
|
|
11
|
+
router.use("/api/sessions", (0, sessions_routes_js_1.createSessionApiRouter)(agent.memoryModule));
|
|
12
|
+
}
|
|
13
|
+
return router;
|
|
14
|
+
};
|
|
15
|
+
exports.createApiRouter = createApiRouter;
|
|
16
|
+
//# sourceMappingURL=api.routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.routes.js","sourceRoot":"","sources":["../../../src/routes/api.routes.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AAGjC,6DAA8D;AAC9D,iEAAkE;AAE3D,MAAM,eAAe,GAAG,CAAC,KAAe,EAAU,EAAE;IAC1D,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IAExB,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,IAAA,uCAAoB,EAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IACnE,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,IAAA,2CAAsB,EAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AATW,QAAA,eAAe,mBAS1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createQueryRouter = exports.createApiRouter = exports.createA2ARouter = void 0;
|
|
4
|
+
const a2a_routes_js_1 = require("./a2a.routes.js");
|
|
5
|
+
Object.defineProperty(exports, "createA2ARouter", { enumerable: true, get: function () { return a2a_routes_js_1.createA2ARouter; } });
|
|
6
|
+
const api_routes_js_1 = require("./api.routes.js");
|
|
7
|
+
Object.defineProperty(exports, "createApiRouter", { enumerable: true, get: function () { return api_routes_js_1.createApiRouter; } });
|
|
8
|
+
const query_routes_js_1 = require("./query.routes.js");
|
|
9
|
+
Object.defineProperty(exports, "createQueryRouter", { enumerable: true, get: function () { return query_routes_js_1.createQueryRouter; } });
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/index.ts"],"names":[],"mappings":";;;AAAA,mDAAkD;AAIzC,gGAJA,+BAAe,OAIA;AAHxB,mDAAkD;AAGxB,gGAHjB,+BAAe,OAGiB;AAFzC,uDAAsD;AAEX,kGAFlC,mCAAiB,OAEkC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.routes.d.ts","sourceRoot":"","sources":["../../../src/routes/query.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAIzC,eAAO,MAAM,iBAAiB,GAAI,OAAO,QAAQ,KAAG,MAcnD,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createQueryRouter = void 0;
|
|
4
|
+
const express_1 = require("express");
|
|
5
|
+
const query_controller_js_1 = require("../controllers/query.controller.js");
|
|
6
|
+
const query_service_js_1 = require("../services/query.service.js");
|
|
7
|
+
const createQueryRouter = (agent) => {
|
|
8
|
+
const router = (0, express_1.Router)();
|
|
9
|
+
const queryService = new query_service_js_1.QueryService(agent.modelModule, agent.a2aModule, agent.mcpModule, agent.memoryModule, agent.manifest.prompts);
|
|
10
|
+
const queryController = new query_controller_js_1.QueryController(queryService);
|
|
11
|
+
router.post("/query", queryController.handleQueryRequest);
|
|
12
|
+
return router;
|
|
13
|
+
};
|
|
14
|
+
exports.createQueryRouter = createQueryRouter;
|
|
15
|
+
//# sourceMappingURL=query.routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.routes.js","sourceRoot":"","sources":["../../../src/routes/query.routes.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AAEjC,2EAAoE;AACpE,kEAA2D;AAEpD,MAAM,iBAAiB,GAAG,CAAC,KAAe,EAAU,EAAE;IAC5D,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IAExB,MAAM,YAAY,GAAG,IAAI,+BAAY,CACpC,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,QAAQ,CAAC,OAAO,CACtB,CAAC;IACF,MAAM,eAAe,GAAG,IAAI,qCAAe,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAE1D,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAdW,QAAA,iBAAiB,qBAc5B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { AgentExecutor, ExecutionEventBus, RequestContext } from "@a2a-js/sdk";
|
|
2
|
+
import type { QueryService } from "./query.service.js";
|
|
3
|
+
/**
|
|
4
|
+
* Implements the AgentExecutor interface from the a2a-js-sdk.
|
|
5
|
+
* This service is responsible for the core business logic of executing an A2A task.
|
|
6
|
+
*/
|
|
7
|
+
export declare class A2AService implements AgentExecutor {
|
|
8
|
+
private queryService;
|
|
9
|
+
private canceledTasks;
|
|
10
|
+
constructor(queryService: QueryService);
|
|
11
|
+
cancelTask: (taskId: string, _eventBus: ExecutionEventBus) => Promise<void>;
|
|
12
|
+
private createTaskStatusUpdateEvent;
|
|
13
|
+
execute(requestContext: RequestContext, eventBus: ExecutionEventBus): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=a2a.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a2a.service.d.ts","sourceRoot":"","sources":["../../../src/services/a2a.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,aAAa,EACb,iBAAiB,EACjB,cAAc,EAEd,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;GAGG;AACH,qBAAa,UAAW,YAAW,aAAa;IAC/C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,aAAa,CAAkC;gBAE3C,YAAY,EAAE,YAAY;IAI/B,UAAU,GAChB,QAAQ,MAAM,EACd,WAAW,iBAAiB,KAC1B,OAAO,CAAC,IAAI,CAAC,CAEd;IAEF,OAAO,CAAC,2BAA2B,CA0BjC;IAEI,OAAO,CACZ,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC;CAiFhB"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.A2AService = void 0;
|
|
4
|
+
const node_crypto_1 = require("node:crypto");
|
|
5
|
+
const logger_js_1 = require("../utils/logger.js");
|
|
6
|
+
/**
|
|
7
|
+
* Implements the AgentExecutor interface from the a2a-js-sdk.
|
|
8
|
+
* This service is responsible for the core business logic of executing an A2A task.
|
|
9
|
+
*/
|
|
10
|
+
class A2AService {
|
|
11
|
+
constructor(queryService) {
|
|
12
|
+
this.canceledTasks = new Set();
|
|
13
|
+
this.cancelTask = async (taskId, _eventBus) => {
|
|
14
|
+
this.canceledTasks.add(taskId);
|
|
15
|
+
};
|
|
16
|
+
this.createTaskStatusUpdateEvent = (taskId, contextId, state, message) => {
|
|
17
|
+
return {
|
|
18
|
+
kind: "status-update",
|
|
19
|
+
taskId: taskId,
|
|
20
|
+
contextId: contextId,
|
|
21
|
+
status: {
|
|
22
|
+
state: state,
|
|
23
|
+
message: message
|
|
24
|
+
? {
|
|
25
|
+
kind: "message",
|
|
26
|
+
role: "agent",
|
|
27
|
+
messageId: (0, node_crypto_1.randomUUID)(),
|
|
28
|
+
parts: [{ kind: "text", text: message }],
|
|
29
|
+
taskId: taskId,
|
|
30
|
+
contextId: contextId,
|
|
31
|
+
}
|
|
32
|
+
: undefined,
|
|
33
|
+
timestamp: new Date().toISOString(),
|
|
34
|
+
},
|
|
35
|
+
final: state !== "working",
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
this.queryService = queryService;
|
|
39
|
+
}
|
|
40
|
+
async execute(requestContext, eventBus) {
|
|
41
|
+
const userMessage = requestContext.userMessage;
|
|
42
|
+
const { sessionId } = userMessage.metadata;
|
|
43
|
+
const existingTask = requestContext.task;
|
|
44
|
+
const taskId = existingTask?.id || (0, node_crypto_1.randomUUID)();
|
|
45
|
+
const contextId = userMessage.contextId || existingTask?.contextId || (0, node_crypto_1.randomUUID)();
|
|
46
|
+
if (!existingTask) {
|
|
47
|
+
const initialTask = {
|
|
48
|
+
kind: "task",
|
|
49
|
+
id: taskId,
|
|
50
|
+
contextId: contextId,
|
|
51
|
+
status: {
|
|
52
|
+
state: "submitted",
|
|
53
|
+
timestamp: new Date().toISOString(),
|
|
54
|
+
},
|
|
55
|
+
history: [userMessage],
|
|
56
|
+
metadata: userMessage.metadata,
|
|
57
|
+
artifacts: [],
|
|
58
|
+
};
|
|
59
|
+
eventBus.publish(initialTask);
|
|
60
|
+
}
|
|
61
|
+
const workingStatusUpdate = this.createTaskStatusUpdateEvent(taskId, contextId, "working");
|
|
62
|
+
eventBus.publish(workingStatusUpdate);
|
|
63
|
+
const message = userMessage.parts
|
|
64
|
+
.filter((part) => part.kind === "text")
|
|
65
|
+
.map((part) => part.text)
|
|
66
|
+
.join("\n");
|
|
67
|
+
if (message.length === 0) {
|
|
68
|
+
logger_js_1.loggers.server.warn(`Empty message received for task ${taskId}.`);
|
|
69
|
+
const failureUpdate = this.createTaskStatusUpdateEvent(taskId, contextId, "failed", "No message found to process.");
|
|
70
|
+
eventBus.publish(failureUpdate);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
try {
|
|
74
|
+
const response = await this.queryService.handleQuery(message, sessionId);
|
|
75
|
+
if (this.canceledTasks.has(taskId)) {
|
|
76
|
+
logger_js_1.loggers.server.info(`Task ${taskId} was canceled.`);
|
|
77
|
+
const canceledUpdate = this.createTaskStatusUpdateEvent(taskId, contextId, "canceled");
|
|
78
|
+
eventBus.publish(canceledUpdate);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const finalUpdate = this.createTaskStatusUpdateEvent(taskId, contextId, "completed", response.content);
|
|
82
|
+
eventBus.publish(finalUpdate);
|
|
83
|
+
logger_js_1.loggers.server.info(`Task ${taskId} completed successfully.`);
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
logger_js_1.loggers.server.error(`Error processing task ${taskId}:`, error);
|
|
87
|
+
const errorUpdate = this.createTaskStatusUpdateEvent(taskId, contextId, "failed", `Agent error: ${error.message}`);
|
|
88
|
+
eventBus.publish(errorUpdate);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.A2AService = A2AService;
|
|
93
|
+
//# sourceMappingURL=a2a.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a2a.service.js","sourceRoot":"","sources":["../../../src/services/a2a.service.ts"],"names":[],"mappings":"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"}
|