@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 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.module.d.ts","sourceRoot":"","sources":["../../../../src/modules/mcp/mcp.module.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,SAAS;IACrB,wDAAwD;IACxD,OAAO,CAAC,MAAM,CAAkC;IAChD,2DAA2D;IAC3D,OAAO,CAAC,YAAY,CAAgD;IACpE,+DAA+D;IAC/D,OAAO,CAAC,KAAK,CAAiB;IAE9B;;;;;;;;;OASG;IACG,YAAY,CAAC,SAAS,EAAE,SAAS;IA4BvC;;;;OAIG;IACH,QAAQ;IAIR;;;;;;;OAOG;IACG,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAqBvD;;;;;OAKG;IACG,OAAO;CAKb"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
2
|
+
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
|
|
3
|
+
import { loggers } from "../../utils/logger.js";
|
|
4
|
+
import { MCPTool } from "./mcp.tool.js";
|
|
5
|
+
/**
|
|
6
|
+
* Module for managing Model Context Protocol (MCP) server connections.
|
|
7
|
+
*
|
|
8
|
+
* This module handles the lifecycle of MCP client connections, discovers
|
|
9
|
+
* available tools from connected servers, and provides an interface for
|
|
10
|
+
* executing those tools. Multiple MCP servers can be connected simultaneously.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const mcpModule = new MCPModule();
|
|
15
|
+
* await mcpModule.addMCPConfig({
|
|
16
|
+
* "filesystem": {
|
|
17
|
+
* command: "npx",
|
|
18
|
+
* args: ["@modelcontextprotocol/server-filesystem", "/path/to/files"]
|
|
19
|
+
* }
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* const tools = mcpModule.getTools();
|
|
23
|
+
* const result = await mcpModule.useTool(tools[0], { path: "/example.txt" });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export class MCPModule {
|
|
27
|
+
constructor() {
|
|
28
|
+
/** Map of MCP server names to their client instances */
|
|
29
|
+
this.mcpMap = new Map();
|
|
30
|
+
/** Map of MCP server names to their transport instances */
|
|
31
|
+
this.transportMap = new Map();
|
|
32
|
+
/** Array of all discovered tools from connected MCP servers */
|
|
33
|
+
this.tools = [];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Connects to MCP servers based on the provided configuration.
|
|
37
|
+
*
|
|
38
|
+
* For each server in the config, establishes a connection, discovers
|
|
39
|
+
* available tools, and adds them to the module's tool collection.
|
|
40
|
+
* Skips servers that are already connected.
|
|
41
|
+
*
|
|
42
|
+
* @param mcpConfig - Configuration object mapping server names to connection details
|
|
43
|
+
* @throws Error if connection to any MCP server fails
|
|
44
|
+
*/
|
|
45
|
+
async addMCPConfig(mcpConfig) {
|
|
46
|
+
try {
|
|
47
|
+
for (const [name, conf] of Object.entries(mcpConfig)) {
|
|
48
|
+
// FIXME(yoojin): Need strict duplication check.
|
|
49
|
+
if (this.mcpMap.get(name) && this.transportMap.get(name))
|
|
50
|
+
continue; // Duplicated mcp: skip
|
|
51
|
+
const transport = new StdioClientTransport(conf);
|
|
52
|
+
this.transportMap.set(name, transport);
|
|
53
|
+
const mcp = new Client({ name: "mcp-client-cli", version: "1.0.0" });
|
|
54
|
+
await mcp.connect(transport);
|
|
55
|
+
this.mcpMap.set(name, mcp);
|
|
56
|
+
const toolsResult = await mcp.listTools();
|
|
57
|
+
this.tools.push(...toolsResult.tools.map((tool) => {
|
|
58
|
+
return new MCPTool(name, tool);
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
loggers.mcp.info("Connected to MCP server with tools:", {
|
|
62
|
+
tools: this.tools.map((tool) => tool.id),
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
loggers.mcp.error("Failed to connect to MCP server:", { error });
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Returns all available tools from connected MCP servers.
|
|
72
|
+
*
|
|
73
|
+
* @returns Array of MCPTool instances representing available tools
|
|
74
|
+
*/
|
|
75
|
+
getTools() {
|
|
76
|
+
return this.tools;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Executes a tool on its corresponding MCP server.
|
|
80
|
+
*
|
|
81
|
+
* @param tool - The MCPTool instance to execute
|
|
82
|
+
* @param _args - Arguments to pass to the tool
|
|
83
|
+
* @returns Promise resolving to the tool's execution result
|
|
84
|
+
* @throws Error if the MCP server for the tool is not found
|
|
85
|
+
*/
|
|
86
|
+
async useTool(tool, _args) {
|
|
87
|
+
const { serverName, mcpTool } = tool;
|
|
88
|
+
const toolName = mcpTool.name;
|
|
89
|
+
const mcp = this.mcpMap.get(serverName);
|
|
90
|
+
if (!mcp) {
|
|
91
|
+
throw new Error(`Invalid MCP Tool ${serverName}-${mcpTool.name}`);
|
|
92
|
+
}
|
|
93
|
+
const result = await mcp.callTool({
|
|
94
|
+
name: toolName,
|
|
95
|
+
arguments: _args,
|
|
96
|
+
});
|
|
97
|
+
const toolResult = `[Bot Called Tool ${toolName} with args ${JSON.stringify(_args)}]\n` +
|
|
98
|
+
JSON.stringify(result.content, null, 2);
|
|
99
|
+
loggers.mcp.debug("MCP useTool result:", toolResult);
|
|
100
|
+
return result;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Closes all MCP client connections.
|
|
104
|
+
*
|
|
105
|
+
* Should be called when shutting down the application to ensure
|
|
106
|
+
* all MCP connections are properly closed.
|
|
107
|
+
*/
|
|
108
|
+
async cleanup() {
|
|
109
|
+
this.mcpMap.forEach((mcp) => {
|
|
110
|
+
mcp.close();
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=mcp.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.module.js","sourceRoot":"","sources":["../../../../src/modules/mcp/mcp.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
import { type IMCPTool, TOOL_PROTOCOL_TYPE } from "../../types/tool.js";
|
|
3
|
+
export declare class MCPTool implements IMCPTool {
|
|
4
|
+
id: string;
|
|
5
|
+
protocol: TOOL_PROTOCOL_TYPE;
|
|
6
|
+
enabled: boolean;
|
|
7
|
+
mcpTool: Tool;
|
|
8
|
+
serverName: string;
|
|
9
|
+
constructor(serverName: string, tool: Tool);
|
|
10
|
+
enable(): void;
|
|
11
|
+
disable(): void;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=mcp.tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.tool.d.ts","sourceRoot":"","sources":["../../../../src/modules/mcp/mcp.tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,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,OAAO,EAAE,IAAI,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;gBAEd,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI;IASnC,MAAM,IAAI,IAAI;IAId,OAAO,IAAI,IAAI;CAGtB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { TOOL_PROTOCOL_TYPE } from "../../types/tool.js";
|
|
2
|
+
export class MCPTool {
|
|
3
|
+
constructor(serverName, tool) {
|
|
4
|
+
this.id = `${serverName}_${tool.name}`;
|
|
5
|
+
this.protocol = TOOL_PROTOCOL_TYPE.MCP;
|
|
6
|
+
this.enabled = true;
|
|
7
|
+
// NOTE(yoojin): MCP Server name. ex) notionApi
|
|
8
|
+
this.serverName = serverName;
|
|
9
|
+
this.mcpTool = tool;
|
|
10
|
+
}
|
|
11
|
+
enable() {
|
|
12
|
+
this.enabled = true;
|
|
13
|
+
}
|
|
14
|
+
disable() {
|
|
15
|
+
this.enabled = false;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=mcp.tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.tool.js","sourceRoot":"","sources":["../../../../src/modules/mcp/mcp.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEpE,MAAM,OAAO,OAAO;IAOnB,YAAY,UAAkB,EAAE,IAAU;QACzC,IAAI,CAAC,EAAE,GAAG,GAAG,UAAU,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,+CAA+C;QAC/C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,CAAC;IAEM,MAAM;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,CAAC;IAEM,OAAO;QACb,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,CAAC;CACD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/*******************************************
|
|
2
|
+
* WARNING: FOR TESTING PURPOSES ONLY *
|
|
3
|
+
* DO NOT USE IN PRODUCTION *
|
|
4
|
+
*******************************************/
|
|
5
|
+
import type { ChatObject, SessionObject } from "../../types/memory.js";
|
|
6
|
+
import { BaseMemory } from "./memory.module.js";
|
|
7
|
+
export declare class InMemoryMemory extends BaseMemory {
|
|
8
|
+
sessionHistory: Map<string, SessionObject>;
|
|
9
|
+
constructor();
|
|
10
|
+
getSessionHistory(sessionId: string): Promise<SessionObject>;
|
|
11
|
+
updateSessionHistory(sessionId: string, chat: ChatObject): Promise<void>;
|
|
12
|
+
storeQueryAndIntent(query: string, intent: string, sessionId: string): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=inmemory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inmemory.d.ts","sourceRoot":"","sources":["../../../../src/modules/memory/inmemory.ts"],"names":[],"mappings":"AAAA;;;6CAG6C;AAG7C,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,qBAAa,cAAe,SAAQ,UAAU;IACtC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;;IAOrC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAI5D,oBAAoB,CAChC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,UAAU,GACd,OAAO,CAAC,IAAI,CAAC;IAOH,mBAAmB,CAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM;CAElB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*******************************************
|
|
2
|
+
* WARNING: FOR TESTING PURPOSES ONLY *
|
|
3
|
+
* DO NOT USE IN PRODUCTION *
|
|
4
|
+
*******************************************/
|
|
5
|
+
import { randomUUID } from "node:crypto";
|
|
6
|
+
import { BaseMemory } from "./memory.module.js";
|
|
7
|
+
export class InMemoryMemory extends BaseMemory {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.sessionHistory = new Map();
|
|
11
|
+
}
|
|
12
|
+
async getSessionHistory(sessionId) {
|
|
13
|
+
return this.sessionHistory.get(sessionId) || { chats: {} };
|
|
14
|
+
}
|
|
15
|
+
async updateSessionHistory(sessionId, chat) {
|
|
16
|
+
const newChatId = randomUUID();
|
|
17
|
+
const history = await this.getSessionHistory(sessionId);
|
|
18
|
+
history.chats[newChatId] = chat;
|
|
19
|
+
this.sessionHistory.set(sessionId, history);
|
|
20
|
+
}
|
|
21
|
+
async storeQueryAndIntent(query, intent, sessionId) { }
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=inmemory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inmemory.js","sourceRoot":"","sources":["../../../../src/modules/memory/inmemory.ts"],"names":[],"mappings":"AAAA;;;6CAG6C;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,OAAO,cAAe,SAAQ,UAAU;IAG7C;QACC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAyB,CAAC;IACxD,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QAC/C,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC5D,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAChC,SAAiB,EACjB,IAAgB;QAEhB,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACxD,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAC/B,KAAa,EACb,MAAc,EACd,SAAiB,IACf,CAAC;CACJ"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { ChatObject, SessionObject } from "../../types/memory.js";
|
|
2
|
+
/**
|
|
3
|
+
* Abstract base class for memory storage implementations.
|
|
4
|
+
*
|
|
5
|
+
* Provides an interface for storing and retrieving conversation history
|
|
6
|
+
* and query-intent pairs. Implementations can use various backends
|
|
7
|
+
* such as in-memory storage, databases, or file systems.
|
|
8
|
+
*/
|
|
9
|
+
export declare abstract class BaseMemory {
|
|
10
|
+
/**
|
|
11
|
+
* Retrieves the conversation history for a specific session.
|
|
12
|
+
*
|
|
13
|
+
* @param sessionId - Unique identifier for the session
|
|
14
|
+
* @returns Promise resolving to the session's conversation history
|
|
15
|
+
*/
|
|
16
|
+
abstract getSessionHistory(sessionId: string): Promise<SessionObject>;
|
|
17
|
+
/**
|
|
18
|
+
* Adds a new chat message to the session history.
|
|
19
|
+
*
|
|
20
|
+
* @param sessionId - Unique identifier for the session
|
|
21
|
+
* @param chat - The chat object to add to the history
|
|
22
|
+
*/
|
|
23
|
+
abstract updateSessionHistory(sessionId: string, chat: ChatObject): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Stores a query-intent pair for analysis or training purposes.
|
|
26
|
+
*
|
|
27
|
+
* @param query - The user's input query
|
|
28
|
+
* @param intent - The detected intent for the query
|
|
29
|
+
* @param sessionId - Unique identifier for the session
|
|
30
|
+
*/
|
|
31
|
+
abstract storeQueryAndIntent(query: string, intent: string, sessionId: string): Promise<void>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Module wrapper for memory storage implementations.
|
|
35
|
+
*
|
|
36
|
+
* Provides a consistent interface for accessing memory storage
|
|
37
|
+
* functionality throughout the application. Currently supports
|
|
38
|
+
* a single memory implementation but designed for future extensibility.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const inMemoryStorage = new InMemoryStorage();
|
|
43
|
+
* const memoryModule = new MemoryModule(inMemoryStorage);
|
|
44
|
+
*
|
|
45
|
+
* const memory = memoryModule.getMemory();
|
|
46
|
+
* await memory.updateSessionHistory("session-123", chatMessage);
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare class MemoryModule {
|
|
50
|
+
/** The memory storage implementation */
|
|
51
|
+
private memory;
|
|
52
|
+
/**
|
|
53
|
+
* Creates a new MemoryModule with the specified storage implementation.
|
|
54
|
+
*
|
|
55
|
+
* @param memory - The memory storage implementation to use
|
|
56
|
+
*/
|
|
57
|
+
constructor(memory: BaseMemory);
|
|
58
|
+
/**
|
|
59
|
+
* Returns the current memory storage implementation.
|
|
60
|
+
*
|
|
61
|
+
* @returns The active memory storage instance
|
|
62
|
+
*/
|
|
63
|
+
getMemory(): BaseMemory;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=memory.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.module.d.ts","sourceRoot":"","sources":["../../../../src/modules/memory/memory.module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;;;;GAMG;AACH,8BAAsB,UAAU;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IACrE;;;;;OAKG;IACH,QAAQ,CAAC,oBAAoB,CAC5B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,UAAU,GACd,OAAO,CAAC,IAAI,CAAC;IAChB;;;;;;OAMG;IACH,QAAQ,CAAC,mBAAmB,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;CAChB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,YAAY;IACxB,wCAAwC;IACxC,OAAO,CAAC,MAAM,CAAa;IAE3B;;;;OAIG;gBACS,MAAM,EAAE,UAAU;IAI9B;;;;OAIG;IACI,SAAS;CAIhB"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract base class for memory storage implementations.
|
|
3
|
+
*
|
|
4
|
+
* Provides an interface for storing and retrieving conversation history
|
|
5
|
+
* and query-intent pairs. Implementations can use various backends
|
|
6
|
+
* such as in-memory storage, databases, or file systems.
|
|
7
|
+
*/
|
|
8
|
+
export class BaseMemory {
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Module wrapper for memory storage implementations.
|
|
12
|
+
*
|
|
13
|
+
* Provides a consistent interface for accessing memory storage
|
|
14
|
+
* functionality throughout the application. Currently supports
|
|
15
|
+
* a single memory implementation but designed for future extensibility.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const inMemoryStorage = new InMemoryStorage();
|
|
20
|
+
* const memoryModule = new MemoryModule(inMemoryStorage);
|
|
21
|
+
*
|
|
22
|
+
* const memory = memoryModule.getMemory();
|
|
23
|
+
* await memory.updateSessionHistory("session-123", chatMessage);
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export class MemoryModule {
|
|
27
|
+
/**
|
|
28
|
+
* Creates a new MemoryModule with the specified storage implementation.
|
|
29
|
+
*
|
|
30
|
+
* @param memory - The memory storage implementation to use
|
|
31
|
+
*/
|
|
32
|
+
constructor(memory) {
|
|
33
|
+
this.memory = memory;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Returns the current memory storage implementation.
|
|
37
|
+
*
|
|
38
|
+
* @returns The active memory storage instance
|
|
39
|
+
*/
|
|
40
|
+
getMemory() {
|
|
41
|
+
// TODO: Support multi-memory for each type of memory?
|
|
42
|
+
return this.memory;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=memory.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.module.js","sourceRoot":"","sources":["../../../../src/modules/memory/memory.module.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,OAAgB,UAAU;CA8B/B;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,YAAY;IAIxB;;;;OAIG;IACH,YAAY,MAAkB;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACI,SAAS;QACf,sDAAsD;QACtD,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;CACD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type Content, type FunctionDeclaration } from "@google/genai";
|
|
2
|
+
import { type SessionObject } from "../../types/memory.js";
|
|
3
|
+
import type { FetchResponse, IAgentTool } from "../../types/tool.js";
|
|
4
|
+
import { BaseModel } from "./model.module.js";
|
|
5
|
+
export declare class GeminiModel extends BaseModel<Content, FunctionDeclaration> {
|
|
6
|
+
private client;
|
|
7
|
+
private modelName;
|
|
8
|
+
constructor(apiKey: string, modelName: string);
|
|
9
|
+
private getMessageRole;
|
|
10
|
+
generateMessages(sessionHistory: SessionObject, query: string, systemPrompt?: string): Content[];
|
|
11
|
+
appendMessages(messages: Content[], message: string): void;
|
|
12
|
+
fetch(messages: Content[]): Promise<FetchResponse>;
|
|
13
|
+
fetchWithContextMessage(messages: Content[], functions: FunctionDeclaration[]): Promise<FetchResponse>;
|
|
14
|
+
convertToolsToFunctions(tools: IAgentTool[]): FunctionDeclaration[];
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=gemini.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../../src/modules/models/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,OAAO,EAEZ,KAAK,mBAAmB,EAExB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EACX,aAAa,EAEb,UAAU,EAGV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,qBAAa,WAAY,SAAQ,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACvE,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAM7C,OAAO,CAAC,cAAc;IAYtB,gBAAgB,CACf,cAAc,EAAE,aAAa,EAC7B,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,MAAM,GACnB,OAAO,EAAE;IAkBZ,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAOpD,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IASlD,uBAAuB,CAC5B,QAAQ,EAAE,OAAO,EAAE,EACnB,SAAS,EAAE,mBAAmB,EAAE,GAC9B,OAAO,CAAC,aAAa,CAAC;IAiCzB,uBAAuB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,mBAAmB,EAAE;CAwBnE"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { GoogleGenAI, } from "@google/genai";
|
|
2
|
+
import { ChatRole } from "../../types/memory.js";
|
|
3
|
+
import { TOOL_PROTOCOL_TYPE } from "../../types/tool.js";
|
|
4
|
+
import { BaseModel } from "./model.module.js";
|
|
5
|
+
export class GeminiModel extends BaseModel {
|
|
6
|
+
constructor(apiKey, modelName) {
|
|
7
|
+
super();
|
|
8
|
+
this.client = new GoogleGenAI({ apiKey });
|
|
9
|
+
this.modelName = modelName;
|
|
10
|
+
}
|
|
11
|
+
getMessageRole(role) {
|
|
12
|
+
switch (role) {
|
|
13
|
+
case ChatRole.USER:
|
|
14
|
+
return "user";
|
|
15
|
+
case ChatRole.MODEL:
|
|
16
|
+
case ChatRole.SYSTEM:
|
|
17
|
+
return "model";
|
|
18
|
+
default:
|
|
19
|
+
return "model"; /*FIXME*/
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
generateMessages(sessionHistory, query, systemPrompt) {
|
|
23
|
+
const messages = !systemPrompt
|
|
24
|
+
? []
|
|
25
|
+
: [{ role: "model", parts: [{ text: systemPrompt.trim() }] }];
|
|
26
|
+
const sessionContent = Object.keys(sessionHistory.chats).map((chatId) => {
|
|
27
|
+
const chat = sessionHistory.chats[chatId];
|
|
28
|
+
// TODO: check message.content.type
|
|
29
|
+
return {
|
|
30
|
+
role: this.getMessageRole(chat.role),
|
|
31
|
+
parts: [{ text: chat.content.parts[0] }],
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
const userContent = { role: "user", parts: [{ text: query }] };
|
|
35
|
+
return messages.concat(sessionContent).concat(userContent);
|
|
36
|
+
}
|
|
37
|
+
appendMessages(messages, message) {
|
|
38
|
+
messages.push({
|
|
39
|
+
role: "user",
|
|
40
|
+
parts: [{ text: message }],
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
async fetch(messages) {
|
|
44
|
+
const response = await this.client.models.generateContent({
|
|
45
|
+
model: this.modelName,
|
|
46
|
+
contents: messages,
|
|
47
|
+
});
|
|
48
|
+
return { content: response.text };
|
|
49
|
+
}
|
|
50
|
+
async fetchWithContextMessage(messages, functions) {
|
|
51
|
+
if (functions.length > 0) {
|
|
52
|
+
const response = await this.client.models.generateContent({
|
|
53
|
+
model: this.modelName,
|
|
54
|
+
contents: messages,
|
|
55
|
+
config: {
|
|
56
|
+
tools: [{ functionDeclarations: functions }],
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
const { text, functionCalls } = response;
|
|
60
|
+
const hasName = (value) => {
|
|
61
|
+
return value.name !== undefined;
|
|
62
|
+
};
|
|
63
|
+
const toolCalls = functionCalls
|
|
64
|
+
?.filter(hasName)
|
|
65
|
+
.map((value) => {
|
|
66
|
+
return {
|
|
67
|
+
name: value.name,
|
|
68
|
+
arguments: value.args,
|
|
69
|
+
};
|
|
70
|
+
});
|
|
71
|
+
return {
|
|
72
|
+
content: text,
|
|
73
|
+
toolCalls,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
return await this.fetch(messages);
|
|
77
|
+
}
|
|
78
|
+
convertToolsToFunctions(tools) {
|
|
79
|
+
const functions = [];
|
|
80
|
+
for (const tool of tools) {
|
|
81
|
+
if (!tool.enabled) {
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
if (tool.protocol === TOOL_PROTOCOL_TYPE.MCP) {
|
|
85
|
+
const { mcpTool, id } = tool;
|
|
86
|
+
functions.push({
|
|
87
|
+
name: id,
|
|
88
|
+
description: mcpTool.description,
|
|
89
|
+
parametersJsonSchema: mcpTool.inputSchema,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
// PROTOCOL_TYPE.A2A
|
|
94
|
+
const { id, card } = tool;
|
|
95
|
+
functions.push({
|
|
96
|
+
name: id,
|
|
97
|
+
description: card.description,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return functions;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=gemini.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../../src/modules/models/gemini.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import type { SessionObject } from "../../types/memory.js";
|
|
2
|
+
import type { FetchResponse, IAgentTool } from "../../types/tool.js";
|
|
3
|
+
/**
|
|
4
|
+
* Abstract base class for AI model implementations.
|
|
5
|
+
*
|
|
6
|
+
* Provides a common interface for different AI model providers (OpenAI, Gemini, etc.)
|
|
7
|
+
* to integrate with the AIN-ADK framework. Each model implementation must handle
|
|
8
|
+
* message formatting, tool conversion, and API communication.
|
|
9
|
+
*
|
|
10
|
+
* @typeParam MessageType - The message format used by the specific model API
|
|
11
|
+
* @typeParam FunctionType - The function/tool format used by the specific model API
|
|
12
|
+
*/
|
|
13
|
+
export declare abstract class BaseModel<MessageType, FunctionType> {
|
|
14
|
+
/**
|
|
15
|
+
* Generates an array of messages from session history and current query.
|
|
16
|
+
*
|
|
17
|
+
* @param sessionHistory - Previous conversation history
|
|
18
|
+
* @param query - Current user query
|
|
19
|
+
* @param systemPrompt - Optional system prompt to set context
|
|
20
|
+
* @returns Array of messages formatted for the specific model API
|
|
21
|
+
*/
|
|
22
|
+
abstract generateMessages(sessionHistory: SessionObject, query: string, systemPrompt?: string): MessageType[];
|
|
23
|
+
/**
|
|
24
|
+
* Appends a new message to the existing message array.
|
|
25
|
+
*
|
|
26
|
+
* @param messages - Existing message array to expand
|
|
27
|
+
* @param message - New message content to append
|
|
28
|
+
*/
|
|
29
|
+
abstract appendMessages(messages: MessageType[], message: string): void;
|
|
30
|
+
/**
|
|
31
|
+
* Converts protocol-agnostic tools to model-specific function format.
|
|
32
|
+
*
|
|
33
|
+
* @param tools - Array of agent tools from MCP or A2A sources
|
|
34
|
+
* @returns Array of functions in the format required by the model API
|
|
35
|
+
*/
|
|
36
|
+
abstract convertToolsToFunctions(tools: IAgentTool[]): FunctionType[];
|
|
37
|
+
/**
|
|
38
|
+
* Fetches a response from the model API without tool support.
|
|
39
|
+
*
|
|
40
|
+
* @param messages - Array of messages to send to the model
|
|
41
|
+
* @returns Promise resolving to the model's response
|
|
42
|
+
*/
|
|
43
|
+
abstract fetch(messages: MessageType[]): Promise<FetchResponse>;
|
|
44
|
+
/**
|
|
45
|
+
* Fetches a response from the model API with tool/function support.
|
|
46
|
+
*
|
|
47
|
+
* @param messages - Array of messages to send to the model
|
|
48
|
+
* @param functions - Array of available functions/tools the model can call
|
|
49
|
+
* @returns Promise resolving to the model's response, possibly including tool calls
|
|
50
|
+
*/
|
|
51
|
+
abstract fetchWithContextMessage(messages: MessageType[], functions: FunctionType[]): Promise<FetchResponse>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Module for managing multiple AI model implementations.
|
|
55
|
+
*
|
|
56
|
+
* Allows registration of multiple models and provides a unified interface
|
|
57
|
+
* for accessing them. Supports setting a default model for convenience.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* const modelModule = new ModelModule();
|
|
62
|
+
* modelModule.addModel("gpt-4", new OpenAIModel("gpt-4"), true);
|
|
63
|
+
* modelModule.addModel("gemini", new GeminiModel("gemini-pro"));
|
|
64
|
+
*
|
|
65
|
+
* const defaultModel = modelModule.getModel();
|
|
66
|
+
* const specificModel = modelModule.getModel("gemini");
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export declare class ModelModule {
|
|
70
|
+
/** Registry of available models indexed by name */
|
|
71
|
+
private models;
|
|
72
|
+
/** Name of the default model to use when none specified */
|
|
73
|
+
private defaultModelName?;
|
|
74
|
+
/**
|
|
75
|
+
* Registers a new model with the module.
|
|
76
|
+
*
|
|
77
|
+
* @param name - Unique identifier for the model
|
|
78
|
+
* @param model - Model instance implementing BaseModel
|
|
79
|
+
* @param isDefault - Whether to set this as the default model
|
|
80
|
+
*/
|
|
81
|
+
addModel(name: string, model: BaseModel<unknown, unknown>, isDefault?: boolean): void;
|
|
82
|
+
/**
|
|
83
|
+
* Retrieves a model by name or returns the default model.
|
|
84
|
+
*
|
|
85
|
+
* @param name - Optional model name to retrieve
|
|
86
|
+
* @returns The requested model or default model if name not provided
|
|
87
|
+
* @throws Error if no default model is set and name is not provided
|
|
88
|
+
*/
|
|
89
|
+
getModel(name?: string): BaseModel<unknown, unknown>;
|
|
90
|
+
/**
|
|
91
|
+
* Returns information about all registered models.
|
|
92
|
+
*
|
|
93
|
+
* @returns Object containing all models and the default model name
|
|
94
|
+
*/
|
|
95
|
+
getModelList(): {
|
|
96
|
+
models: {
|
|
97
|
+
[name: string]: BaseModel<unknown, unknown>;
|
|
98
|
+
};
|
|
99
|
+
defaultModelName: string | undefined;
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=model.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.module.d.ts","sourceRoot":"","sources":["../../../../src/modules/models/model.module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEjE;;;;;;;;;GASG;AACH,8BAAsB,SAAS,CAAC,WAAW,EAAE,YAAY;IACxD;;;;;;;OAOG;IACH,QAAQ,CAAC,gBAAgB,CACxB,cAAc,EAAE,aAAa,EAC7B,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,MAAM,GACnB,WAAW,EAAE;IAEhB;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAEvE;;;;;OAKG;IACH,QAAQ,CAAC,uBAAuB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE;IAErE;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAE/D;;;;;;OAMG;IACH,QAAQ,CAAC,uBAAuB,CAC/B,QAAQ,EAAE,WAAW,EAAE,EACvB,SAAS,EAAE,YAAY,EAAE,GACvB,OAAO,CAAC,aAAa,CAAC;CACzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,WAAW;IACvB,mDAAmD;IACnD,OAAO,CAAC,MAAM,CAAuD;IACrE,2DAA2D;IAC3D,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAElC;;;;;;OAMG;IACI,QAAQ,CACd,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,EAClC,SAAS,CAAC,EAAE,OAAO;IAQpB;;;;;;OAMG;IACI,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAW3D;;;;OAIG;IACI,YAAY;;;;;;CAMnB"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract base class for AI model implementations.
|
|
3
|
+
*
|
|
4
|
+
* Provides a common interface for different AI model providers (OpenAI, Gemini, etc.)
|
|
5
|
+
* to integrate with the AIN-ADK framework. Each model implementation must handle
|
|
6
|
+
* message formatting, tool conversion, and API communication.
|
|
7
|
+
*
|
|
8
|
+
* @typeParam MessageType - The message format used by the specific model API
|
|
9
|
+
* @typeParam FunctionType - The function/tool format used by the specific model API
|
|
10
|
+
*/
|
|
11
|
+
export class BaseModel {
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Module for managing multiple AI model implementations.
|
|
15
|
+
*
|
|
16
|
+
* Allows registration of multiple models and provides a unified interface
|
|
17
|
+
* for accessing them. Supports setting a default model for convenience.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const modelModule = new ModelModule();
|
|
22
|
+
* modelModule.addModel("gpt-4", new OpenAIModel("gpt-4"), true);
|
|
23
|
+
* modelModule.addModel("gemini", new GeminiModel("gemini-pro"));
|
|
24
|
+
*
|
|
25
|
+
* const defaultModel = modelModule.getModel();
|
|
26
|
+
* const specificModel = modelModule.getModel("gemini");
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export class ModelModule {
|
|
30
|
+
constructor() {
|
|
31
|
+
/** Registry of available models indexed by name */
|
|
32
|
+
this.models = {};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Registers a new model with the module.
|
|
36
|
+
*
|
|
37
|
+
* @param name - Unique identifier for the model
|
|
38
|
+
* @param model - Model instance implementing BaseModel
|
|
39
|
+
* @param isDefault - Whether to set this as the default model
|
|
40
|
+
*/
|
|
41
|
+
addModel(name, model, isDefault) {
|
|
42
|
+
this.models[name] = model;
|
|
43
|
+
if (isDefault || !this.defaultModelName) {
|
|
44
|
+
this.defaultModelName = name;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Retrieves a model by name or returns the default model.
|
|
49
|
+
*
|
|
50
|
+
* @param name - Optional model name to retrieve
|
|
51
|
+
* @returns The requested model or default model if name not provided
|
|
52
|
+
* @throws Error if no default model is set and name is not provided
|
|
53
|
+
*/
|
|
54
|
+
getModel(name) {
|
|
55
|
+
if (!this.defaultModelName) {
|
|
56
|
+
throw Error("No default model");
|
|
57
|
+
}
|
|
58
|
+
if (!name || !this.models[name]) {
|
|
59
|
+
return this.models[this.defaultModelName];
|
|
60
|
+
}
|
|
61
|
+
return this.models[name];
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Returns information about all registered models.
|
|
65
|
+
*
|
|
66
|
+
* @returns Object containing all models and the default model name
|
|
67
|
+
*/
|
|
68
|
+
getModelList() {
|
|
69
|
+
return {
|
|
70
|
+
models: this.models,
|
|
71
|
+
defaultModelName: this.defaultModelName,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=model.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.module.js","sourceRoot":"","sources":["../../../../src/modules/models/model.module.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,MAAM,OAAgB,SAAS;CAkD9B;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,WAAW;IAAxB;QACC,mDAAmD;QAC3C,WAAM,GAAoD,EAAE,CAAC;IAmDtE,CAAC;IA/CA;;;;;;OAMG;IACI,QAAQ,CACd,IAAY,EACZ,KAAkC,EAClC,SAAmB;QAEnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC1B,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC9B,CAAC;IACF,CAAC;IAED;;;;;;OAMG;IACI,QAAQ,CAAC,IAAa;QAC5B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC5B,MAAM,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACI,YAAY;QAClB,OAAO;YACN,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;SACvC,CAAC;IACH,CAAC;CACD"}
|