@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,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const openai_1 = require("openai");
|
|
4
|
+
const types_js_1 = require("../intent/modules/common/types.js");
|
|
5
|
+
const BaseSession_js_1 = require("../session/BaseSession.js");
|
|
6
|
+
const BaseModel_js_1 = require("./BaseModel.js");
|
|
7
|
+
class AzureOpenAI extends BaseModel_js_1.BaseModel {
|
|
8
|
+
constructor(baseUrl, apiKey, apiVersion, modelName) {
|
|
9
|
+
super();
|
|
10
|
+
this.client = new openai_1.AzureOpenAI({
|
|
11
|
+
baseURL: baseUrl,
|
|
12
|
+
apiKey: apiKey,
|
|
13
|
+
apiVersion: apiVersion,
|
|
14
|
+
});
|
|
15
|
+
this.modelName = modelName;
|
|
16
|
+
}
|
|
17
|
+
getMessageRole(role) {
|
|
18
|
+
switch (role) {
|
|
19
|
+
case BaseSession_js_1.ChatRole.USER:
|
|
20
|
+
return "user";
|
|
21
|
+
case BaseSession_js_1.ChatRole.MODEL:
|
|
22
|
+
case BaseSession_js_1.ChatRole.SYSTEM:
|
|
23
|
+
return "system";
|
|
24
|
+
default:
|
|
25
|
+
return "system"; /*FIXME*/
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
generateMessages(sessionHistory, query, systemPrompt) {
|
|
29
|
+
const messages = !systemPrompt
|
|
30
|
+
? []
|
|
31
|
+
: [{ role: "system", content: systemPrompt.trim() }];
|
|
32
|
+
const sessionContent = Object.keys(sessionHistory).map((messageId) => {
|
|
33
|
+
const message = sessionHistory[messageId];
|
|
34
|
+
return {
|
|
35
|
+
role: this.getMessageRole(message.role),
|
|
36
|
+
content: message.content.parts[0],
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
const userContent = { role: "user", content: query };
|
|
40
|
+
return messages.concat(sessionContent).concat(userContent);
|
|
41
|
+
}
|
|
42
|
+
expandMessages(messages, message) {
|
|
43
|
+
messages.push({
|
|
44
|
+
role: "user",
|
|
45
|
+
content: message,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
async fetch(messages) {
|
|
49
|
+
const response = await this.client.chat.completions.create({
|
|
50
|
+
model: this.modelName,
|
|
51
|
+
messages,
|
|
52
|
+
});
|
|
53
|
+
return {
|
|
54
|
+
content: response.choices[0].message.content || undefined,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
async fetchWithContextMessage(messages, functions) {
|
|
58
|
+
if (functions.length > 0) {
|
|
59
|
+
const response = await this.client.chat.completions.create({
|
|
60
|
+
model: this.modelName,
|
|
61
|
+
messages,
|
|
62
|
+
tools: functions,
|
|
63
|
+
tool_choice: "auto",
|
|
64
|
+
});
|
|
65
|
+
const { content, tool_calls } = response.choices[0].message;
|
|
66
|
+
const toolCalls = tool_calls?.map((value) => {
|
|
67
|
+
return {
|
|
68
|
+
name: value.function.name,
|
|
69
|
+
// FIXME: value.function.arguments could not be a valid JSON
|
|
70
|
+
arguments: JSON.parse(value.function.arguments),
|
|
71
|
+
};
|
|
72
|
+
});
|
|
73
|
+
return {
|
|
74
|
+
content: content || undefined,
|
|
75
|
+
toolCalls,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
return await this.fetch(messages);
|
|
79
|
+
}
|
|
80
|
+
convertToolsToFunctions(tools) {
|
|
81
|
+
const functions = [];
|
|
82
|
+
for (const tool of tools) {
|
|
83
|
+
if (!tool.enabled) {
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
if (tool.protocol === types_js_1.PROTOCOL_TYPE.MCP) {
|
|
87
|
+
const { mcpTool, id } = tool;
|
|
88
|
+
functions.push({
|
|
89
|
+
type: "function",
|
|
90
|
+
function: {
|
|
91
|
+
name: id,
|
|
92
|
+
description: mcpTool.description,
|
|
93
|
+
parameters: mcpTool.inputSchema,
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
// PROTOCOL_TYPE.A2A
|
|
99
|
+
const { id, card } = tool;
|
|
100
|
+
functions.push({
|
|
101
|
+
type: "function",
|
|
102
|
+
function: {
|
|
103
|
+
name: id,
|
|
104
|
+
description: card.description,
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return functions;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
exports.default = AzureOpenAI;
|
|
113
|
+
//# sourceMappingURL=openai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/models/openai.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { type Message } from "@a2a-js/sdk";
|
|
2
|
+
import { A2ATool } from "./a2a.tool.js";
|
|
3
|
+
/**
|
|
4
|
+
* Module for managing Agent-to-Agent (A2A) protocol connections.
|
|
5
|
+
*
|
|
6
|
+
* This module handles connections to other A2A-compatible agents, manages
|
|
7
|
+
* conversation sessions, and provides an interface for inter-agent communication.
|
|
8
|
+
* Supports multi-turn conversations with task and context tracking.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const a2aModule = new A2AModule();
|
|
13
|
+
* await a2aModule.addA2APeerServer("https://api.example.com/agent");
|
|
14
|
+
*
|
|
15
|
+
* const tools = await a2aModule.getTools();
|
|
16
|
+
* const message = a2aModule.getMessagePayload("Hello", "session-123");
|
|
17
|
+
* const response = await a2aModule.useTool(tools[0], message, "session-123");
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare class A2AModule {
|
|
21
|
+
/** Map of A2A server URLs to their corresponding tool instances */
|
|
22
|
+
private a2aPeerServers;
|
|
23
|
+
/** Map of session IDs to their A2A session state */
|
|
24
|
+
private a2aSessions;
|
|
25
|
+
/**
|
|
26
|
+
* Registers a new A2A peer server URL for connection.
|
|
27
|
+
*
|
|
28
|
+
* @param url - The URL of the A2A-compatible agent to connect to
|
|
29
|
+
*/
|
|
30
|
+
addA2APeerServer(url: string): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Retrieves tools from all registered A2A peer servers.
|
|
33
|
+
*
|
|
34
|
+
* Attempts to connect to each registered server, fetch their agent cards,
|
|
35
|
+
* and create tool instances. Disables tools for unreachable servers.
|
|
36
|
+
*
|
|
37
|
+
* @returns Promise resolving to array of available A2A tools
|
|
38
|
+
*/
|
|
39
|
+
getTools(): Promise<A2ATool[]>;
|
|
40
|
+
/**
|
|
41
|
+
* Gets or creates an A2A session for the given session ID.
|
|
42
|
+
*
|
|
43
|
+
* @param sessionId - The session identifier
|
|
44
|
+
* @returns A2ASession object with task and context IDs
|
|
45
|
+
*/
|
|
46
|
+
private getA2ASessionWithId;
|
|
47
|
+
/**
|
|
48
|
+
* Constructs a message payload for A2A communication.
|
|
49
|
+
*
|
|
50
|
+
* Includes session context (task ID and context ID) if available
|
|
51
|
+
* for maintaining conversation continuity.
|
|
52
|
+
*
|
|
53
|
+
* @param query - The message content to send
|
|
54
|
+
* @param sessionId - The session identifier
|
|
55
|
+
* @returns Formatted Message object for A2A protocol
|
|
56
|
+
*/
|
|
57
|
+
getMessagePayload(query: string, sessionId: string): Message;
|
|
58
|
+
/**
|
|
59
|
+
* Executes an A2A tool by sending a message to the remote agent.
|
|
60
|
+
*
|
|
61
|
+
* Handles streaming responses, maintains session state, and extracts
|
|
62
|
+
* text content from various event types in the response stream.
|
|
63
|
+
*
|
|
64
|
+
* @param tool - The A2ATool instance to use
|
|
65
|
+
* @param messagePayload - The message to send to the agent
|
|
66
|
+
* @param sessionId - The session identifier for context tracking
|
|
67
|
+
* @returns Promise resolving to array of text responses from the agent
|
|
68
|
+
*/
|
|
69
|
+
useTool(tool: A2ATool, messagePayload: Message, sessionId: string): Promise<string[]>;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=a2a.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a2a.module.d.ts","sourceRoot":"","sources":["../../../../src/modules/a2a/a2a.module.ts"],"names":[],"mappings":"AACA,OAAO,EAGN,KAAK,OAAO,EAKZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAYxC;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,SAAS;IACrB,mEAAmE;IACnE,OAAO,CAAC,cAAc,CAA0C;IAChE,oDAAoD;IACpD,OAAO,CAAC,WAAW,CAAsC;IAEzD;;;;OAIG;IACU,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD;;;;;;;OAOG;IACU,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAyB3C;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB,CAUzB;IAEF;;;;;;;;;OASG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IA2BnE;;;;;;;;;;OAUG;IACU,OAAO,CACnB,IAAI,EAAE,OAAO,EACb,cAAc,EAAE,OAAO,EACvB,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,EAAE,CAAC;CA2DpB"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.A2AModule = void 0;
|
|
4
|
+
const node_crypto_1 = require("node:crypto");
|
|
5
|
+
const sdk_1 = require("@a2a-js/sdk");
|
|
6
|
+
const logger_js_1 = require("../../utils/logger.js");
|
|
7
|
+
const a2a_tool_js_1 = require("./a2a.tool.js");
|
|
8
|
+
/**
|
|
9
|
+
* Module for managing Agent-to-Agent (A2A) protocol connections.
|
|
10
|
+
*
|
|
11
|
+
* This module handles connections to other A2A-compatible agents, manages
|
|
12
|
+
* conversation sessions, and provides an interface for inter-agent communication.
|
|
13
|
+
* Supports multi-turn conversations with task and context tracking.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const a2aModule = new A2AModule();
|
|
18
|
+
* await a2aModule.addA2APeerServer("https://api.example.com/agent");
|
|
19
|
+
*
|
|
20
|
+
* const tools = await a2aModule.getTools();
|
|
21
|
+
* const message = a2aModule.getMessagePayload("Hello", "session-123");
|
|
22
|
+
* const response = await a2aModule.useTool(tools[0], message, "session-123");
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
class A2AModule {
|
|
26
|
+
constructor() {
|
|
27
|
+
/** Map of A2A server URLs to their corresponding tool instances */
|
|
28
|
+
this.a2aPeerServers = new Map();
|
|
29
|
+
/** Map of session IDs to their A2A session state */
|
|
30
|
+
this.a2aSessions = new Map();
|
|
31
|
+
/**
|
|
32
|
+
* Gets or creates an A2A session for the given session ID.
|
|
33
|
+
*
|
|
34
|
+
* @param sessionId - The session identifier
|
|
35
|
+
* @returns A2ASession object with task and context IDs
|
|
36
|
+
*/
|
|
37
|
+
this.getA2ASessionWithId = (sessionId) => {
|
|
38
|
+
const a2aSession = this.a2aSessions.get(sessionId) ?? {
|
|
39
|
+
taskId: undefined,
|
|
40
|
+
contextId: undefined,
|
|
41
|
+
};
|
|
42
|
+
if (!this.a2aSessions.has(sessionId)) {
|
|
43
|
+
this.a2aSessions.set(sessionId, a2aSession);
|
|
44
|
+
}
|
|
45
|
+
return a2aSession;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Registers a new A2A peer server URL for connection.
|
|
50
|
+
*
|
|
51
|
+
* @param url - The URL of the A2A-compatible agent to connect to
|
|
52
|
+
*/
|
|
53
|
+
async addA2APeerServer(url) {
|
|
54
|
+
this.a2aPeerServers.set(url, null);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Retrieves tools from all registered A2A peer servers.
|
|
58
|
+
*
|
|
59
|
+
* Attempts to connect to each registered server, fetch their agent cards,
|
|
60
|
+
* and create tool instances. Disables tools for unreachable servers.
|
|
61
|
+
*
|
|
62
|
+
* @returns Promise resolving to array of available A2A tools
|
|
63
|
+
*/
|
|
64
|
+
async getTools() {
|
|
65
|
+
const tools = [];
|
|
66
|
+
for (const url of [...this.a2aPeerServers.keys()]) {
|
|
67
|
+
const tool = this.a2aPeerServers.get(url);
|
|
68
|
+
if (!tool || !tool.enabled) {
|
|
69
|
+
try {
|
|
70
|
+
const client = new sdk_1.A2AClient(url);
|
|
71
|
+
const card = await client.getAgentCard();
|
|
72
|
+
const toolName = card.name.replaceAll(" ", "-");
|
|
73
|
+
const a2aTool = new a2a_tool_js_1.A2ATool(toolName, client, card);
|
|
74
|
+
tools.push(a2aTool);
|
|
75
|
+
}
|
|
76
|
+
catch (_error) {
|
|
77
|
+
// Agent not responded
|
|
78
|
+
if (tool) {
|
|
79
|
+
tool.disable();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
tools.push(tool);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return tools;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Constructs a message payload for A2A communication.
|
|
91
|
+
*
|
|
92
|
+
* Includes session context (task ID and context ID) if available
|
|
93
|
+
* for maintaining conversation continuity.
|
|
94
|
+
*
|
|
95
|
+
* @param query - The message content to send
|
|
96
|
+
* @param sessionId - The session identifier
|
|
97
|
+
* @returns Formatted Message object for A2A protocol
|
|
98
|
+
*/
|
|
99
|
+
getMessagePayload(query, sessionId) {
|
|
100
|
+
const messagePayload = {
|
|
101
|
+
messageId: (0, node_crypto_1.randomUUID)(),
|
|
102
|
+
kind: "message",
|
|
103
|
+
role: "user", // FIXME: it could be 'agent'
|
|
104
|
+
metadata: {
|
|
105
|
+
sessionId,
|
|
106
|
+
},
|
|
107
|
+
parts: [
|
|
108
|
+
{
|
|
109
|
+
kind: "text",
|
|
110
|
+
text: query,
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
};
|
|
114
|
+
const a2aSession = this.getA2ASessionWithId(sessionId);
|
|
115
|
+
if (a2aSession.taskId) {
|
|
116
|
+
messagePayload.taskId = a2aSession.taskId;
|
|
117
|
+
}
|
|
118
|
+
if (a2aSession.contextId) {
|
|
119
|
+
messagePayload.contextId = a2aSession.contextId;
|
|
120
|
+
}
|
|
121
|
+
return messagePayload;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Executes an A2A tool by sending a message to the remote agent.
|
|
125
|
+
*
|
|
126
|
+
* Handles streaming responses, maintains session state, and extracts
|
|
127
|
+
* text content from various event types in the response stream.
|
|
128
|
+
*
|
|
129
|
+
* @param tool - The A2ATool instance to use
|
|
130
|
+
* @param messagePayload - The message to send to the agent
|
|
131
|
+
* @param sessionId - The session identifier for context tracking
|
|
132
|
+
* @returns Promise resolving to array of text responses from the agent
|
|
133
|
+
*/
|
|
134
|
+
async useTool(tool, messagePayload, sessionId) {
|
|
135
|
+
const finalText = [];
|
|
136
|
+
const client = tool.client;
|
|
137
|
+
const params = {
|
|
138
|
+
message: messagePayload,
|
|
139
|
+
};
|
|
140
|
+
const a2aSession = this.getA2ASessionWithId(sessionId);
|
|
141
|
+
try {
|
|
142
|
+
const stream = client.sendMessageStream(params);
|
|
143
|
+
for await (const event of stream) {
|
|
144
|
+
if (event.kind === "status-update") {
|
|
145
|
+
const typedEvent = event;
|
|
146
|
+
if (typedEvent.final &&
|
|
147
|
+
typedEvent.status.state !== "input-required") {
|
|
148
|
+
a2aSession.taskId = undefined;
|
|
149
|
+
}
|
|
150
|
+
// TODO: handle 'file', 'data' parts
|
|
151
|
+
const texts = typedEvent.status.message?.parts
|
|
152
|
+
.filter((part) => part.kind === "text")
|
|
153
|
+
.map((part) => part.text)
|
|
154
|
+
.join("\n");
|
|
155
|
+
if (texts) {
|
|
156
|
+
finalText.push(texts);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
else if (event.kind === "message") {
|
|
160
|
+
// FIXME: handling text in 'message'?
|
|
161
|
+
const msg = event;
|
|
162
|
+
if (msg.taskId && msg.taskId !== a2aSession.taskId) {
|
|
163
|
+
a2aSession.taskId = msg.taskId;
|
|
164
|
+
}
|
|
165
|
+
if (msg.contextId && msg.contextId !== a2aSession.contextId) {
|
|
166
|
+
a2aSession.contextId = msg.contextId;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
else if (event.kind === "task") {
|
|
170
|
+
// FIXME: handling text in 'task'?
|
|
171
|
+
const task = event;
|
|
172
|
+
if (task.id !== a2aSession.taskId) {
|
|
173
|
+
a2aSession.taskId = task.id;
|
|
174
|
+
}
|
|
175
|
+
if (task.contextId && task.contextId !== a2aSession.contextId) {
|
|
176
|
+
a2aSession.contextId = task.contextId;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
logger_js_1.loggers.a2a.warn("Received unknown event structure from stream:", {
|
|
181
|
+
event,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
logger_js_1.loggers.a2a.error("Error communicating with agent:", { error });
|
|
188
|
+
tool.disable();
|
|
189
|
+
// TODO: add failed & disabled text for next inference?
|
|
190
|
+
}
|
|
191
|
+
return finalText;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
exports.A2AModule = A2AModule;
|
|
195
|
+
//# sourceMappingURL=a2a.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a2a.module.js","sourceRoot":"","sources":["../../../../src/modules/a2a/a2a.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { A2AClient, AgentCard } from "@a2a-js/sdk";
|
|
2
|
+
import { type IA2ATool, TOOL_PROTOCOL_TYPE } from "../../types/tool.js";
|
|
3
|
+
export declare class A2ATool implements IA2ATool {
|
|
4
|
+
id: string;
|
|
5
|
+
protocol: TOOL_PROTOCOL_TYPE;
|
|
6
|
+
enabled: boolean;
|
|
7
|
+
client: A2AClient;
|
|
8
|
+
card: AgentCard;
|
|
9
|
+
constructor(name: string, client: A2AClient, card: AgentCard);
|
|
10
|
+
enable(): void;
|
|
11
|
+
disable(): void;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=a2a.tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a2a.tool.d.ts","sourceRoot":"","sources":["../../../../src/modules/a2a/a2a.tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,KAAK,QAAQ,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEpE,qBAAa,OAAQ,YAAW,QAAQ;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;gBAEX,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAQrD,MAAM,IAAI,IAAI;IAId,OAAO,IAAI,IAAI;CAGtB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.A2ATool = void 0;
|
|
4
|
+
const tool_js_1 = require("../../types/tool.js");
|
|
5
|
+
class A2ATool {
|
|
6
|
+
constructor(name, client, card) {
|
|
7
|
+
this.id = name;
|
|
8
|
+
this.protocol = tool_js_1.TOOL_PROTOCOL_TYPE.A2A;
|
|
9
|
+
this.enabled = true;
|
|
10
|
+
this.client = client;
|
|
11
|
+
this.card = card;
|
|
12
|
+
}
|
|
13
|
+
enable() {
|
|
14
|
+
this.enabled = true;
|
|
15
|
+
}
|
|
16
|
+
disable() {
|
|
17
|
+
this.enabled = false;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.A2ATool = A2ATool;
|
|
21
|
+
//# sourceMappingURL=a2a.tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a2a.tool.js","sourceRoot":"","sources":["../../../../src/modules/a2a/a2a.tool.ts"],"names":[],"mappings":";;;AACA,6CAAoE;AAEpE,MAAa,OAAO;IAOnB,YAAY,IAAY,EAAE,MAAiB,EAAE,IAAe;QAC3D,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,4BAAkB,CAAC,GAAG,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAEM,MAAM;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,CAAC;IAEM,OAAO;QACb,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,CAAC;CACD;AAtBD,0BAsBC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { BaseModel } from "../../modules/models/model.module.js";
|
|
2
|
+
import type { Facts } from "../../types/fol.js";
|
|
3
|
+
import type { FOLStore } from "./store/index.js";
|
|
4
|
+
export declare class FOLModule {
|
|
5
|
+
private model;
|
|
6
|
+
private folStore;
|
|
7
|
+
constructor(model: BaseModel<unknown, unknown>, folStore: FOLStore);
|
|
8
|
+
/**
|
|
9
|
+
* 자연어로 정보를 넣어주면 FOL 형식으로 바꿔서 Store에 저장하기
|
|
10
|
+
*/
|
|
11
|
+
updateFacts(intent: string, text: string): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* 특정 intent에 대한 Facts 조회
|
|
14
|
+
*/
|
|
15
|
+
retrieveFacts(intent: string): Promise<Facts | null>;
|
|
16
|
+
/**
|
|
17
|
+
* 모든 Facts 목록 조회
|
|
18
|
+
*/
|
|
19
|
+
getFactsList(): Promise<Facts[]>;
|
|
20
|
+
/**
|
|
21
|
+
* Intent별 Facts 맵 조회
|
|
22
|
+
*/
|
|
23
|
+
getFactsMap(): Promise<{
|
|
24
|
+
[intent: string]: Facts;
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* FOL 기반 데이터 조회 및 추론
|
|
28
|
+
*/
|
|
29
|
+
queryFacts(intent: string, query: string): Promise<string>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=fol.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fol.module.d.ts","sourceRoot":"","sources":["../../../../src/modules/fol/fol.module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBAAa,SAAS;IACrB,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,QAAQ,CAAW;gBAEf,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,QAAQ;IAKlE;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0G9D;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAS1D;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAUtC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAA;KAAE,CAAC;IASzD;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA2ChE"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FOLModule = void 0;
|
|
4
|
+
const logger_js_1 = require("../../utils/logger.js");
|
|
5
|
+
class FOLModule {
|
|
6
|
+
constructor(model, folStore) {
|
|
7
|
+
this.model = model;
|
|
8
|
+
this.folStore = folStore;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* 자연어로 정보를 넣어주면 FOL 형식으로 바꿔서 Store에 저장하기
|
|
12
|
+
*/
|
|
13
|
+
async updateFacts(intent, text) {
|
|
14
|
+
try {
|
|
15
|
+
// 기존 Facts 가져오기
|
|
16
|
+
const existingFacts = (await this.folStore.retrieveFacts(intent)) || {
|
|
17
|
+
constants: [],
|
|
18
|
+
predicates: [],
|
|
19
|
+
facts: [],
|
|
20
|
+
};
|
|
21
|
+
// 기존 데이터를 문자열로 변환 (AI 프롬프트용)
|
|
22
|
+
const existingConstantsStr = existingFacts.constants
|
|
23
|
+
.map((c) => `${c.name}: ${c.description}`)
|
|
24
|
+
.join(", ");
|
|
25
|
+
const existingPredicatesStr = existingFacts.predicates
|
|
26
|
+
.map((p) => `${p.name}: ${p.description}`)
|
|
27
|
+
.join(", ");
|
|
28
|
+
const existingFactsStr = existingFacts.facts
|
|
29
|
+
.map((f) => `${f.name}: ${f.description}`)
|
|
30
|
+
.join(", ");
|
|
31
|
+
// 자연어를 FOL로 변환하는 프롬프트
|
|
32
|
+
const prompt = `
|
|
33
|
+
다음 자연어 텍스트를 First-Order Logic (FOL) 형식으로 변환해주세요.
|
|
34
|
+
|
|
35
|
+
입력 텍스트: "${text}"
|
|
36
|
+
|
|
37
|
+
기존 Constants: ${existingConstantsStr}
|
|
38
|
+
기존 Predicates: ${existingPredicatesStr}
|
|
39
|
+
기존 Facts: ${existingFactsStr}
|
|
40
|
+
|
|
41
|
+
다음 JSON 형식으로 응답해주세요:
|
|
42
|
+
{
|
|
43
|
+
"constants": [
|
|
44
|
+
{"name": "constant_name", "description": "상수에 대한 설명"}
|
|
45
|
+
],
|
|
46
|
+
"predicates": [
|
|
47
|
+
{"name": "Predicate(x)", "description": "술어에 대한 설명"}
|
|
48
|
+
],
|
|
49
|
+
"facts": [
|
|
50
|
+
{"name": "Fact(constant)", "description": "사실에 대한 설명"}
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
FOL 규칙:
|
|
55
|
+
- Constants는 소문자로 시작 (예: john, mary, book1)
|
|
56
|
+
- Predicates는 대문자로 시작하고 변수 포함 (예: Person(x), Likes(x,y))
|
|
57
|
+
- Facts는 구체적인 사실 (예: Person(john), Likes(mary, book1))
|
|
58
|
+
- 각 항목에는 의미있는 설명을 포함해주세요
|
|
59
|
+
- 기존 정보와 중복되지 않도록 주의`;
|
|
60
|
+
const messages = this.model.generateMessages({ chats: {} }, prompt);
|
|
61
|
+
const response = await this.model.fetch(messages);
|
|
62
|
+
logger_js_1.loggers.fol.debug(response);
|
|
63
|
+
// AI 응답에서 텍스트 추출 (응답이 객체인 경우 content 프로퍼티 사용)
|
|
64
|
+
const responseText = response.content || "";
|
|
65
|
+
// AI 응답에서 JSON 추출
|
|
66
|
+
const jsonMatch = responseText?.match(/\{[\s\S]*\}/);
|
|
67
|
+
if (!jsonMatch) {
|
|
68
|
+
throw new Error("AI 응답에서 유효한 JSON을 찾을 수 없습니다");
|
|
69
|
+
}
|
|
70
|
+
const newFolData = JSON.parse(jsonMatch[0]);
|
|
71
|
+
// 기존 데이터와 병합 (중복 제거 - name 기준)
|
|
72
|
+
const mergeData = (existing, newItems) => {
|
|
73
|
+
const merged = new Map();
|
|
74
|
+
existing.forEach(({ name, description }) => {
|
|
75
|
+
merged.set(name, description);
|
|
76
|
+
});
|
|
77
|
+
newItems.forEach(({ name, description }) => {
|
|
78
|
+
merged.set(name, description);
|
|
79
|
+
});
|
|
80
|
+
return Array.from(merged.entries()).map(([name, description]) => ({
|
|
81
|
+
name,
|
|
82
|
+
description,
|
|
83
|
+
}));
|
|
84
|
+
};
|
|
85
|
+
const updatedFacts = {
|
|
86
|
+
constants: mergeData(existingFacts.constants, newFolData.constants || []),
|
|
87
|
+
predicates: mergeData(existingFacts.predicates, newFolData.predicates || []),
|
|
88
|
+
facts: mergeData(existingFacts.facts, newFolData.facts || []),
|
|
89
|
+
};
|
|
90
|
+
// Store에 저장
|
|
91
|
+
await this.folStore.saveFacts(intent, updatedFacts);
|
|
92
|
+
logger_js_1.loggers.fol.info(`FOL data updated (intent: ${intent})`);
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
logger_js_1.loggers.fol.error("updateFacts execution error:", { error });
|
|
96
|
+
throw error;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* 특정 intent에 대한 Facts 조회
|
|
101
|
+
*/
|
|
102
|
+
async retrieveFacts(intent) {
|
|
103
|
+
try {
|
|
104
|
+
return await this.folStore.retrieveFacts(intent);
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
logger_js_1.loggers.fol.error("retrieveFacts execution error: ", { error });
|
|
108
|
+
throw error;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* 모든 Facts 목록 조회
|
|
113
|
+
*/
|
|
114
|
+
async getFactsList() {
|
|
115
|
+
try {
|
|
116
|
+
const allFacts = await this.folStore.getAllFacts();
|
|
117
|
+
return Object.values(allFacts);
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
logger_js_1.loggers.fol.error("getFactsList execution error:", { error });
|
|
121
|
+
throw error;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Intent별 Facts 맵 조회
|
|
126
|
+
*/
|
|
127
|
+
async getFactsMap() {
|
|
128
|
+
try {
|
|
129
|
+
return await this.folStore.getAllFacts();
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
logger_js_1.loggers.fol.error("getFactsMap execution error:", { error });
|
|
133
|
+
throw error;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* FOL 기반 데이터 조회 및 추론
|
|
138
|
+
*/
|
|
139
|
+
async queryFacts(intent, query) {
|
|
140
|
+
try {
|
|
141
|
+
const facts = await this.retrieveFacts(intent);
|
|
142
|
+
if (!facts) {
|
|
143
|
+
return `Intent '${intent}'에 대한 Facts가 없습니다.`;
|
|
144
|
+
}
|
|
145
|
+
// 데이터를 문자열로 변환 (AI 프롬프트용)
|
|
146
|
+
const constantsStr = facts.constants
|
|
147
|
+
.map((c) => `${c.name}: ${c.description}`)
|
|
148
|
+
.join(", ");
|
|
149
|
+
const predicatesStr = facts.predicates
|
|
150
|
+
.map((p) => `${p.name}: ${p.description}`)
|
|
151
|
+
.join(", ");
|
|
152
|
+
const factsStr = facts.facts
|
|
153
|
+
.map((f) => `${f.name}: ${f.description}`)
|
|
154
|
+
.join(", ");
|
|
155
|
+
// FOL 데이터와 쿼리를 기반으로 AI 추론 수행
|
|
156
|
+
const prompt = `
|
|
157
|
+
다음 First-Order Logic (FOL) 데이터를 기반으로 질문에 답해주세요.
|
|
158
|
+
|
|
159
|
+
Constants: ${constantsStr}
|
|
160
|
+
Predicates: ${predicatesStr}
|
|
161
|
+
Facts: ${factsStr}
|
|
162
|
+
|
|
163
|
+
질문: ${query}
|
|
164
|
+
|
|
165
|
+
위의 FOL 데이터를 논리적으로 분석하여 질문에 대한 답변을 제공해주세요.
|
|
166
|
+
각 항목은 "이름: 설명" 형태로 구성되어 있습니다.`;
|
|
167
|
+
const messages = this.model.generateMessages({ chats: {} }, prompt);
|
|
168
|
+
const response = await this.model.fetch(messages);
|
|
169
|
+
// AI 응답에서 텍스트 추출 (응답이 객체인 경우 content 프로퍼티 사용)
|
|
170
|
+
const responseText = response.content || "";
|
|
171
|
+
return responseText;
|
|
172
|
+
}
|
|
173
|
+
catch (error) {
|
|
174
|
+
logger_js_1.loggers.fol.error("queryFacts execution error:", { error });
|
|
175
|
+
throw error;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
exports.FOLModule = FOLModule;
|
|
180
|
+
//# sourceMappingURL=fol.module.js.map
|