@measureoneinc/savant 1.0.0
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-SDK.md +148 -0
- package/dist/ai/agents/domain-identifier.agent.d.ts +34 -0
- package/dist/ai/agents/domain-identifier.agent.d.ts.map +1 -0
- package/dist/ai/agents/domain-identifier.agent.js +176 -0
- package/dist/ai/agents/domain-identifier.agent.js.map +1 -0
- package/dist/ai/agents/dynamic-agent.d.ts +105 -0
- package/dist/ai/agents/dynamic-agent.d.ts.map +1 -0
- package/dist/ai/agents/dynamic-agent.js +505 -0
- package/dist/ai/agents/dynamic-agent.js.map +1 -0
- package/dist/ai/agents/executor.agent.d.ts +25 -0
- package/dist/ai/agents/executor.agent.d.ts.map +1 -0
- package/dist/ai/agents/executor.agent.js +44 -0
- package/dist/ai/agents/executor.agent.js.map +1 -0
- package/dist/ai/agents/index.d.ts +17 -0
- package/dist/ai/agents/index.d.ts.map +1 -0
- package/dist/ai/agents/index.js +29 -0
- package/dist/ai/agents/index.js.map +1 -0
- package/dist/ai/agents/knowledge.agent.d.ts +25 -0
- package/dist/ai/agents/knowledge.agent.d.ts.map +1 -0
- package/dist/ai/agents/knowledge.agent.js +42 -0
- package/dist/ai/agents/knowledge.agent.js.map +1 -0
- package/dist/ai/agents/learning.agent.d.ts +63 -0
- package/dist/ai/agents/learning.agent.d.ts.map +1 -0
- package/dist/ai/agents/learning.agent.js +288 -0
- package/dist/ai/agents/learning.agent.js.map +1 -0
- package/dist/ai/agents/orchestrator.agent.d.ts +26 -0
- package/dist/ai/agents/orchestrator.agent.d.ts.map +1 -0
- package/dist/ai/agents/orchestrator.agent.js +42 -0
- package/dist/ai/agents/orchestrator.agent.js.map +1 -0
- package/dist/ai/agents/planner.agent.d.ts +25 -0
- package/dist/ai/agents/planner.agent.d.ts.map +1 -0
- package/dist/ai/agents/planner.agent.js +36 -0
- package/dist/ai/agents/planner.agent.js.map +1 -0
- package/dist/ai/agents/response-parser.d.ts +23 -0
- package/dist/ai/agents/response-parser.d.ts.map +1 -0
- package/dist/ai/agents/response-parser.js +313 -0
- package/dist/ai/agents/response-parser.js.map +1 -0
- package/dist/ai/agents/summarizer.agent.d.ts +38 -0
- package/dist/ai/agents/summarizer.agent.d.ts.map +1 -0
- package/dist/ai/agents/summarizer.agent.js +245 -0
- package/dist/ai/agents/summarizer.agent.js.map +1 -0
- package/dist/ai/instructions/domain-identifier.instructions.d.ts +10 -0
- package/dist/ai/instructions/domain-identifier.instructions.d.ts.map +1 -0
- package/dist/ai/instructions/domain-identifier.instructions.js +63 -0
- package/dist/ai/instructions/domain-identifier.instructions.js.map +1 -0
- package/dist/ai/instructions/executor.instructions.d.ts +11 -0
- package/dist/ai/instructions/executor.instructions.d.ts.map +1 -0
- package/dist/ai/instructions/executor.instructions.js +218 -0
- package/dist/ai/instructions/executor.instructions.js.map +1 -0
- package/dist/ai/instructions/knowledge.instructions.d.ts +11 -0
- package/dist/ai/instructions/knowledge.instructions.d.ts.map +1 -0
- package/dist/ai/instructions/knowledge.instructions.js +145 -0
- package/dist/ai/instructions/knowledge.instructions.js.map +1 -0
- package/dist/ai/instructions/learning.instructions.d.ts +11 -0
- package/dist/ai/instructions/learning.instructions.d.ts.map +1 -0
- package/dist/ai/instructions/learning.instructions.js +226 -0
- package/dist/ai/instructions/learning.instructions.js.map +1 -0
- package/dist/ai/instructions/orchestrator.instructions.d.ts +11 -0
- package/dist/ai/instructions/orchestrator.instructions.d.ts.map +1 -0
- package/dist/ai/instructions/orchestrator.instructions.js +148 -0
- package/dist/ai/instructions/orchestrator.instructions.js.map +1 -0
- package/dist/ai/instructions/planner.instructions.d.ts +12 -0
- package/dist/ai/instructions/planner.instructions.d.ts.map +1 -0
- package/dist/ai/instructions/planner.instructions.js +129 -0
- package/dist/ai/instructions/planner.instructions.js.map +1 -0
- package/dist/ai/instructions/summarizer.instructions.d.ts +11 -0
- package/dist/ai/instructions/summarizer.instructions.d.ts.map +1 -0
- package/dist/ai/instructions/summarizer.instructions.js +84 -0
- package/dist/ai/instructions/summarizer.instructions.js.map +1 -0
- package/dist/ai/learning/execution-learner.d.ts +79 -0
- package/dist/ai/learning/execution-learner.d.ts.map +1 -0
- package/dist/ai/learning/execution-learner.js +536 -0
- package/dist/ai/learning/execution-learner.js.map +1 -0
- package/dist/ai/response_handlers/base-handler.d.ts +73 -0
- package/dist/ai/response_handlers/base-handler.d.ts.map +1 -0
- package/dist/ai/response_handlers/base-handler.js +153 -0
- package/dist/ai/response_handlers/base-handler.js.map +1 -0
- package/dist/ai/response_handlers/direct-response-handler.d.ts +18 -0
- package/dist/ai/response_handlers/direct-response-handler.d.ts.map +1 -0
- package/dist/ai/response_handlers/direct-response-handler.js +86 -0
- package/dist/ai/response_handlers/direct-response-handler.js.map +1 -0
- package/dist/ai/response_handlers/error-handler.d.ts +13 -0
- package/dist/ai/response_handlers/error-handler.d.ts.map +1 -0
- package/dist/ai/response_handlers/error-handler.js +72 -0
- package/dist/ai/response_handlers/error-handler.js.map +1 -0
- package/dist/ai/response_handlers/handler-registry.d.ts +51 -0
- package/dist/ai/response_handlers/handler-registry.d.ts.map +1 -0
- package/dist/ai/response_handlers/handler-registry.js +268 -0
- package/dist/ai/response_handlers/handler-registry.js.map +1 -0
- package/dist/ai/response_handlers/index.d.ts +16 -0
- package/dist/ai/response_handlers/index.d.ts.map +1 -0
- package/dist/ai/response_handlers/index.js +29 -0
- package/dist/ai/response_handlers/index.js.map +1 -0
- package/dist/ai/response_handlers/message-handler.d.ts +23 -0
- package/dist/ai/response_handlers/message-handler.d.ts.map +1 -0
- package/dist/ai/response_handlers/message-handler.js +193 -0
- package/dist/ai/response_handlers/message-handler.js.map +1 -0
- package/dist/ai/response_handlers/plan-ready-handler.d.ts +26 -0
- package/dist/ai/response_handlers/plan-ready-handler.d.ts.map +1 -0
- package/dist/ai/response_handlers/plan-ready-handler.js +394 -0
- package/dist/ai/response_handlers/plan-ready-handler.js.map +1 -0
- package/dist/ai/response_handlers/request-input-handler.d.ts +14 -0
- package/dist/ai/response_handlers/request-input-handler.d.ts.map +1 -0
- package/dist/ai/response_handlers/request-input-handler.js +87 -0
- package/dist/ai/response_handlers/request-input-handler.js.map +1 -0
- package/dist/ai/response_handlers/request-plan-handler.d.ts +18 -0
- package/dist/ai/response_handlers/request-plan-handler.d.ts.map +1 -0
- package/dist/ai/response_handlers/request-plan-handler.js +143 -0
- package/dist/ai/response_handlers/request-plan-handler.js.map +1 -0
- package/dist/ai/response_handlers/step-complete-handler.d.ts +22 -0
- package/dist/ai/response_handlers/step-complete-handler.d.ts.map +1 -0
- package/dist/ai/response_handlers/step-complete-handler.js +307 -0
- package/dist/ai/response_handlers/step-complete-handler.js.map +1 -0
- package/dist/ai/response_handlers/unknown-handler.d.ts +12 -0
- package/dist/ai/response_handlers/unknown-handler.d.ts.map +1 -0
- package/dist/ai/response_handlers/unknown-handler.js +27 -0
- package/dist/ai/response_handlers/unknown-handler.js.map +1 -0
- package/dist/ai/response_handlers/user-input-handler.d.ts +20 -0
- package/dist/ai/response_handlers/user-input-handler.d.ts.map +1 -0
- package/dist/ai/response_handlers/user-input-handler.js +69 -0
- package/dist/ai/response_handlers/user-input-handler.js.map +1 -0
- package/dist/ai/tools/log-step.d.ts +29 -0
- package/dist/ai/tools/log-step.d.ts.map +1 -0
- package/dist/ai/tools/log-step.js +47 -0
- package/dist/ai/tools/log-step.js.map +1 -0
- package/dist/app.d.ts +15 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +223 -0
- package/dist/app.js.map +1 -0
- package/dist/config/environment/local.d.ts +12 -0
- package/dist/config/environment/local.d.ts.map +1 -0
- package/dist/config/environment/local.js +124 -0
- package/dist/config/environment/local.js.map +1 -0
- package/dist/config/environment/production.d.ts +7 -0
- package/dist/config/environment/production.d.ts.map +1 -0
- package/dist/config/environment/production.js +105 -0
- package/dist/config/environment/production.js.map +1 -0
- package/dist/config/environment/test.d.ts +7 -0
- package/dist/config/environment/test.d.ts.map +1 -0
- package/dist/config/environment/test.js +97 -0
- package/dist/config/environment/test.js.map +1 -0
- package/dist/config/index.d.ts +219 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +360 -0
- package/dist/config/index.js.map +1 -0
- package/dist/controllers/agent_request.controller.d.ts +43 -0
- package/dist/controllers/agent_request.controller.d.ts.map +1 -0
- package/dist/controllers/agent_request.controller.js +141 -0
- package/dist/controllers/agent_request.controller.js.map +1 -0
- package/dist/controllers/base.controller.d.ts +208 -0
- package/dist/controllers/base.controller.d.ts.map +1 -0
- package/dist/controllers/base.controller.js +378 -0
- package/dist/controllers/base.controller.js.map +1 -0
- package/dist/controllers/conversations.controller.d.ts +31 -0
- package/dist/controllers/conversations.controller.d.ts.map +1 -0
- package/dist/controllers/conversations.controller.js +138 -0
- package/dist/controllers/conversations.controller.js.map +1 -0
- package/dist/controllers/knowledge.controller.d.ts +63 -0
- package/dist/controllers/knowledge.controller.d.ts.map +1 -0
- package/dist/controllers/knowledge.controller.js +311 -0
- package/dist/controllers/knowledge.controller.js.map +1 -0
- package/dist/controllers/mcp.controller.d.ts +25 -0
- package/dist/controllers/mcp.controller.d.ts.map +1 -0
- package/dist/controllers/mcp.controller.js +93 -0
- package/dist/controllers/mcp.controller.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/app-constants.d.ts +231 -0
- package/dist/lib/app-constants.d.ts.map +1 -0
- package/dist/lib/app-constants.js +240 -0
- package/dist/lib/app-constants.js.map +1 -0
- package/dist/lib/controller-utils.d.ts +48 -0
- package/dist/lib/controller-utils.d.ts.map +1 -0
- package/dist/lib/controller-utils.js +70 -0
- package/dist/lib/controller-utils.js.map +1 -0
- package/dist/lib/exceptions/app-exceptions.d.ts +158 -0
- package/dist/lib/exceptions/app-exceptions.d.ts.map +1 -0
- package/dist/lib/exceptions/app-exceptions.js +287 -0
- package/dist/lib/exceptions/app-exceptions.js.map +1 -0
- package/dist/lib/middleware/upload.middleware.d.ts +13 -0
- package/dist/lib/middleware/upload.middleware.d.ts.map +1 -0
- package/dist/lib/middleware/upload.middleware.js +35 -0
- package/dist/lib/middleware/upload.middleware.js.map +1 -0
- package/dist/lib/middleware/validation.middleware.d.ts +29 -0
- package/dist/lib/middleware/validation.middleware.d.ts.map +1 -0
- package/dist/lib/middleware/validation.middleware.js +219 -0
- package/dist/lib/middleware/validation.middleware.js.map +1 -0
- package/dist/lib/model/validation-schema/submit-message.schema.d.ts +3 -0
- package/dist/lib/model/validation-schema/submit-message.schema.d.ts.map +1 -0
- package/dist/lib/model/validation-schema/submit-message.schema.js +40 -0
- package/dist/lib/model/validation-schema/submit-message.schema.js.map +1 -0
- package/dist/lib/model/validation-schema/update-knowledge.schema.d.ts +3 -0
- package/dist/lib/model/validation-schema/update-knowledge.schema.d.ts.map +1 -0
- package/dist/lib/model/validation-schema/update-knowledge.schema.js +35 -0
- package/dist/lib/model/validation-schema/update-knowledge.schema.js.map +1 -0
- package/dist/lib/open-ai-event-processor.d.ts +101 -0
- package/dist/lib/open-ai-event-processor.d.ts.map +1 -0
- package/dist/lib/open-ai-event-processor.js +426 -0
- package/dist/lib/open-ai-event-processor.js.map +1 -0
- package/dist/lib/schemas/ai-responses.schema.d.ts +617 -0
- package/dist/lib/schemas/ai-responses.schema.d.ts.map +1 -0
- package/dist/lib/schemas/ai-responses.schema.js +377 -0
- package/dist/lib/schemas/ai-responses.schema.js.map +1 -0
- package/dist/lib/schemas/common.schemas.d.ts +84 -0
- package/dist/lib/schemas/common.schemas.d.ts.map +1 -0
- package/dist/lib/schemas/common.schemas.js +87 -0
- package/dist/lib/schemas/common.schemas.js.map +1 -0
- package/dist/lib/schemas/conversation.schema.d.ts +28 -0
- package/dist/lib/schemas/conversation.schema.d.ts.map +1 -0
- package/dist/lib/schemas/conversation.schema.js +31 -0
- package/dist/lib/schemas/conversation.schema.js.map +1 -0
- package/dist/lib/schemas/http-client.schema.d.ts +39 -0
- package/dist/lib/schemas/http-client.schema.d.ts.map +1 -0
- package/dist/lib/schemas/http-client.schema.js +36 -0
- package/dist/lib/schemas/http-client.schema.js.map +1 -0
- package/dist/lib/schemas/index.d.ts +95 -0
- package/dist/lib/schemas/index.d.ts.map +1 -0
- package/dist/lib/schemas/index.js +32 -0
- package/dist/lib/schemas/index.js.map +1 -0
- package/dist/lib/schemas/knowledge.schema.d.ts +145 -0
- package/dist/lib/schemas/knowledge.schema.d.ts.map +1 -0
- package/dist/lib/schemas/knowledge.schema.js +81 -0
- package/dist/lib/schemas/knowledge.schema.js.map +1 -0
- package/dist/lib/schemas/orchestration.schema.d.ts +168 -0
- package/dist/lib/schemas/orchestration.schema.d.ts.map +1 -0
- package/dist/lib/schemas/orchestration.schema.js +133 -0
- package/dist/lib/schemas/orchestration.schema.js.map +1 -0
- package/dist/lib/schemas/plan.schema.d.ts +103 -0
- package/dist/lib/schemas/plan.schema.d.ts.map +1 -0
- package/dist/lib/schemas/plan.schema.js +58 -0
- package/dist/lib/schemas/plan.schema.js.map +1 -0
- package/dist/lib/sequelize-service.d.ts +23 -0
- package/dist/lib/sequelize-service.d.ts.map +1 -0
- package/dist/lib/sequelize-service.js +446 -0
- package/dist/lib/sequelize-service.js.map +1 -0
- package/dist/lib/source-hash.d.ts +39 -0
- package/dist/lib/source-hash.d.ts.map +1 -0
- package/dist/lib/source-hash.js +56 -0
- package/dist/lib/source-hash.js.map +1 -0
- package/dist/lib/stable-stringify.d.ts +32 -0
- package/dist/lib/stable-stringify.d.ts.map +1 -0
- package/dist/lib/stable-stringify.js +72 -0
- package/dist/lib/stable-stringify.js.map +1 -0
- package/dist/lib/streaming-utils.d.ts +60 -0
- package/dist/lib/streaming-utils.d.ts.map +1 -0
- package/dist/lib/streaming-utils.js +190 -0
- package/dist/lib/streaming-utils.js.map +1 -0
- package/dist/lib/utils/conversation-builder.d.ts +36 -0
- package/dist/lib/utils/conversation-builder.d.ts.map +1 -0
- package/dist/lib/utils/conversation-builder.js +132 -0
- package/dist/lib/utils/conversation-builder.js.map +1 -0
- package/dist/lib/utils/domain-matcher.d.ts +25 -0
- package/dist/lib/utils/domain-matcher.d.ts.map +1 -0
- package/dist/lib/utils/domain-matcher.js +42 -0
- package/dist/lib/utils/domain-matcher.js.map +1 -0
- package/dist/lib/utils/file-util.d.ts +157 -0
- package/dist/lib/utils/file-util.d.ts.map +1 -0
- package/dist/lib/utils/file-util.js +373 -0
- package/dist/lib/utils/file-util.js.map +1 -0
- package/dist/lib/utils/html-summarizer.d.ts +27 -0
- package/dist/lib/utils/html-summarizer.d.ts.map +1 -0
- package/dist/lib/utils/html-summarizer.js +189 -0
- package/dist/lib/utils/html-summarizer.js.map +1 -0
- package/dist/lib/utils/http-client.d.ts +108 -0
- package/dist/lib/utils/http-client.d.ts.map +1 -0
- package/dist/lib/utils/http-client.js +298 -0
- package/dist/lib/utils/http-client.js.map +1 -0
- package/dist/lib/utils/index.d.ts +12 -0
- package/dist/lib/utils/index.d.ts.map +1 -0
- package/dist/lib/utils/index.js +28 -0
- package/dist/lib/utils/index.js.map +1 -0
- package/dist/lib/utils/logger.d.ts +30 -0
- package/dist/lib/utils/logger.d.ts.map +1 -0
- package/dist/lib/utils/logger.js +88 -0
- package/dist/lib/utils/logger.js.map +1 -0
- package/dist/lib/utils/mcp-utils.d.ts +208 -0
- package/dist/lib/utils/mcp-utils.d.ts.map +1 -0
- package/dist/lib/utils/mcp-utils.js +451 -0
- package/dist/lib/utils/mcp-utils.js.map +1 -0
- package/dist/lib/utils/sequelize-service.d.ts +153 -0
- package/dist/lib/utils/sequelize-service.d.ts.map +1 -0
- package/dist/lib/utils/sequelize-service.js +339 -0
- package/dist/lib/utils/sequelize-service.js.map +1 -0
- package/dist/lib/utils/tool-call-extractor.d.ts +36 -0
- package/dist/lib/utils/tool-call-extractor.d.ts.map +1 -0
- package/dist/lib/utils/tool-call-extractor.js +121 -0
- package/dist/lib/utils/tool-call-extractor.js.map +1 -0
- package/dist/lib/utils/zod-to-json-schema.d.ts +17 -0
- package/dist/lib/utils/zod-to-json-schema.d.ts.map +1 -0
- package/dist/lib/utils/zod-to-json-schema.js +53 -0
- package/dist/lib/utils/zod-to-json-schema.js.map +1 -0
- package/dist/models/AgentRequest.d.ts +33 -0
- package/dist/models/AgentRequest.d.ts.map +1 -0
- package/dist/models/AgentRequest.js +49 -0
- package/dist/models/AgentRequest.js.map +1 -0
- package/dist/models/AgentRun.d.ts +44 -0
- package/dist/models/AgentRun.d.ts.map +1 -0
- package/dist/models/AgentRun.js +53 -0
- package/dist/models/AgentRun.js.map +1 -0
- package/dist/models/AuditLog.d.ts +37 -0
- package/dist/models/AuditLog.d.ts.map +1 -0
- package/dist/models/AuditLog.js +46 -0
- package/dist/models/AuditLog.js.map +1 -0
- package/dist/models/Conversation.d.ts +39 -0
- package/dist/models/Conversation.d.ts.map +1 -0
- package/dist/models/Conversation.js +49 -0
- package/dist/models/Conversation.js.map +1 -0
- package/dist/models/Embedding.d.ts +56 -0
- package/dist/models/Embedding.d.ts.map +1 -0
- package/dist/models/Embedding.js +36 -0
- package/dist/models/Embedding.js.map +1 -0
- package/dist/models/ExecutionPattern.d.ts +57 -0
- package/dist/models/ExecutionPattern.d.ts.map +1 -0
- package/dist/models/ExecutionPattern.js +61 -0
- package/dist/models/ExecutionPattern.js.map +1 -0
- package/dist/models/Knowledge.d.ts +49 -0
- package/dist/models/Knowledge.d.ts.map +1 -0
- package/dist/models/Knowledge.js +67 -0
- package/dist/models/Knowledge.js.map +1 -0
- package/dist/models/KnowledgeRevision.d.ts +35 -0
- package/dist/models/KnowledgeRevision.d.ts.map +1 -0
- package/dist/models/KnowledgeRevision.js +51 -0
- package/dist/models/KnowledgeRevision.js.map +1 -0
- package/dist/models/Plan.d.ts +34 -0
- package/dist/models/Plan.d.ts.map +1 -0
- package/dist/models/Plan.js +43 -0
- package/dist/models/Plan.js.map +1 -0
- package/dist/models/PlanStep.d.ts +56 -0
- package/dist/models/PlanStep.d.ts.map +1 -0
- package/dist/models/PlanStep.js +65 -0
- package/dist/models/PlanStep.js.map +1 -0
- package/dist/models/SourceData.d.ts +39 -0
- package/dist/models/SourceData.d.ts.map +1 -0
- package/dist/models/SourceData.js +18 -0
- package/dist/models/SourceData.js.map +1 -0
- package/dist/models/index.d.ts +36 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +179 -0
- package/dist/models/index.js.map +1 -0
- package/dist/routes/agent.routes.d.ts +13 -0
- package/dist/routes/agent.routes.d.ts.map +1 -0
- package/dist/routes/agent.routes.js +27 -0
- package/dist/routes/agent.routes.js.map +1 -0
- package/dist/routes/agent_request.routes.d.ts +13 -0
- package/dist/routes/agent_request.routes.d.ts.map +1 -0
- package/dist/routes/agent_request.routes.js +65 -0
- package/dist/routes/agent_request.routes.js.map +1 -0
- package/dist/routes/knowledge.routes.d.ts +13 -0
- package/dist/routes/knowledge.routes.d.ts.map +1 -0
- package/dist/routes/knowledge.routes.js +91 -0
- package/dist/routes/knowledge.routes.js.map +1 -0
- package/dist/routes/mcp.routes.d.ts +14 -0
- package/dist/routes/mcp.routes.d.ts.map +1 -0
- package/dist/routes/mcp.routes.js +27 -0
- package/dist/routes/mcp.routes.js.map +1 -0
- package/dist/sdk/index.d.ts +13 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +35 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/sdk/savant.sdk.d.ts +53 -0
- package/dist/sdk/savant.sdk.d.ts.map +1 -0
- package/dist/sdk/savant.sdk.js +120 -0
- package/dist/sdk/savant.sdk.js.map +1 -0
- package/dist/services/agent-request-service.d.ts +104 -0
- package/dist/services/agent-request-service.d.ts.map +1 -0
- package/dist/services/agent-request-service.js +319 -0
- package/dist/services/agent-request-service.js.map +1 -0
- package/dist/services/audit_log.service.d.ts +104 -0
- package/dist/services/audit_log.service.d.ts.map +1 -0
- package/dist/services/audit_log.service.js +339 -0
- package/dist/services/audit_log.service.js.map +1 -0
- package/dist/services/conversation.service.d.ts +90 -0
- package/dist/services/conversation.service.d.ts.map +1 -0
- package/dist/services/conversation.service.js +552 -0
- package/dist/services/conversation.service.js.map +1 -0
- package/dist/services/domain.service.d.ts +58 -0
- package/dist/services/domain.service.d.ts.map +1 -0
- package/dist/services/domain.service.js +244 -0
- package/dist/services/domain.service.js.map +1 -0
- package/dist/services/embedding.service.d.ts +132 -0
- package/dist/services/embedding.service.d.ts.map +1 -0
- package/dist/services/embedding.service.js +587 -0
- package/dist/services/embedding.service.js.map +1 -0
- package/dist/services/file_upload.service.d.ts +50 -0
- package/dist/services/file_upload.service.d.ts.map +1 -0
- package/dist/services/file_upload.service.js +172 -0
- package/dist/services/file_upload.service.js.map +1 -0
- package/dist/services/knowledge.service.d.ts +200 -0
- package/dist/services/knowledge.service.d.ts.map +1 -0
- package/dist/services/knowledge.service.js +784 -0
- package/dist/services/knowledge.service.js.map +1 -0
- package/dist/types/responses-api.types.d.ts +181 -0
- package/dist/types/responses-api.types.d.ts.map +1 -0
- package/dist/types/responses-api.types.js +12 -0
- package/dist/types/responses-api.types.js.map +1 -0
- package/package.json +145 -0
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview MCP (Model Context Protocol) Utilities
|
|
4
|
+
*
|
|
5
|
+
* Utility functions for managing MCP servers, including creation, connection,
|
|
6
|
+
* and lifecycle management. This centralizes MCP server operations across the application.
|
|
7
|
+
*
|
|
8
|
+
* @author MeasureOne, Inc.
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MCPServerManager = void 0;
|
|
13
|
+
exports.create_and_connect_mcp_servers = create_and_connect_mcp_servers;
|
|
14
|
+
exports.create_and_connect_mcp_servers_array = create_and_connect_mcp_servers_array;
|
|
15
|
+
exports.get_mcp_server_manager = get_mcp_server_manager;
|
|
16
|
+
exports.get_mcp_servers_by_name_pattern = get_mcp_servers_by_name_pattern;
|
|
17
|
+
exports.get_mcp_server_by_name = get_mcp_server_by_name;
|
|
18
|
+
exports.get_all_mcp_tools = get_all_mcp_tools;
|
|
19
|
+
const logger_1 = require("./logger");
|
|
20
|
+
const index_js_1 = require("@modelcontextprotocol/sdk/client/index.js");
|
|
21
|
+
const stdio_js_1 = require("@modelcontextprotocol/sdk/client/stdio.js");
|
|
22
|
+
const logger = (0, logger_1.create_compact_logger)('mcp-utils');
|
|
23
|
+
/**
|
|
24
|
+
* MCP Server Manager - Handles creation, connection, and lifecycle of MCP servers
|
|
25
|
+
*/
|
|
26
|
+
class MCPServerManager {
|
|
27
|
+
constructor() {
|
|
28
|
+
this.connected_servers = new Map();
|
|
29
|
+
this.cached_tools = [];
|
|
30
|
+
this.initialization_promise = null;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get singleton instance of MCP Server Manager
|
|
34
|
+
*/
|
|
35
|
+
static get_instance() {
|
|
36
|
+
if (!MCPServerManager.instance) {
|
|
37
|
+
MCPServerManager.instance = new MCPServerManager();
|
|
38
|
+
}
|
|
39
|
+
return MCPServerManager.instance;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get all available MCP tools from all connected servers (static method)
|
|
43
|
+
*
|
|
44
|
+
* @param configs - Array of MCP server configurations
|
|
45
|
+
* @returns Promise<MCPToolEntry[]> - Array of all available tools
|
|
46
|
+
*/
|
|
47
|
+
static async get_all_mcp_tools(configs) {
|
|
48
|
+
const manager = MCPServerManager.get_instance();
|
|
49
|
+
// Ensure servers are initialized
|
|
50
|
+
await manager.create_and_connect_servers(configs);
|
|
51
|
+
// Return cached tools
|
|
52
|
+
return manager.cached_tools;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Create and connect MCP servers from configurations
|
|
56
|
+
*
|
|
57
|
+
* @param configs - Array of MCP server configurations
|
|
58
|
+
* @returns Promise<Map<string, Client>> - Map of connected MCP servers by name
|
|
59
|
+
*/
|
|
60
|
+
static async create_and_connect_mcp_servers(configs) {
|
|
61
|
+
const manager = MCPServerManager.get_instance();
|
|
62
|
+
return await manager.create_and_connect_servers(configs);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Create and connect MCP servers (instance method)
|
|
66
|
+
*
|
|
67
|
+
* @param configs - Array of MCP server configurations
|
|
68
|
+
* @returns Promise<Map<string, Client>> - Map of connected MCP servers by name
|
|
69
|
+
*/
|
|
70
|
+
async create_and_connect_servers(configs) {
|
|
71
|
+
if (this.initialization_promise) {
|
|
72
|
+
await this.initialization_promise;
|
|
73
|
+
return this.connected_servers;
|
|
74
|
+
}
|
|
75
|
+
this.initialization_promise = this._initialize_servers(configs);
|
|
76
|
+
await this.initialization_promise;
|
|
77
|
+
return this.connected_servers;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Internal method to initialize servers
|
|
81
|
+
* Only initializes stdio servers. HTTP servers are handled via server_url in tool definitions.
|
|
82
|
+
*
|
|
83
|
+
* @param configs - Array of MCP server configurations
|
|
84
|
+
*/
|
|
85
|
+
async _initialize_servers(configs) {
|
|
86
|
+
logger.info(`🔌 Processing ${configs.length} MCP server configurations`);
|
|
87
|
+
const servers = new Map();
|
|
88
|
+
const http_servers = [];
|
|
89
|
+
for (const config of configs) {
|
|
90
|
+
// Check for HTTP mode - check both transport_mode and server_url
|
|
91
|
+
const transport_mode = config.transport_mode;
|
|
92
|
+
const server_url = config.server_url;
|
|
93
|
+
const is_http_mode = transport_mode === 'http' || !!server_url;
|
|
94
|
+
if (is_http_mode) {
|
|
95
|
+
// HTTP mode: skip stdio connection, server will be accessed via URL
|
|
96
|
+
logger.info(`🌐 MCP server ${config.name} configured for HTTP mode at ${server_url || 'unknown URL'}`);
|
|
97
|
+
http_servers.push(config.name);
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
// Stdio mode: create and connect server using MCP SDK
|
|
101
|
+
try {
|
|
102
|
+
if (!config.command || !config.args || !config.cwd) {
|
|
103
|
+
logger.warn(`⚠️ Skipping MCP server ${config.name}: missing required stdio configuration (command, args, cwd)`);
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
logger.info(`🔌 Creating stdio MCP server: ${config.name}`);
|
|
107
|
+
// Create StdioClientTransport with server parameters
|
|
108
|
+
const transport = new stdio_js_1.StdioClientTransport({
|
|
109
|
+
command: config.command,
|
|
110
|
+
args: config.args,
|
|
111
|
+
env: config.env
|
|
112
|
+
});
|
|
113
|
+
// Create MCP Client
|
|
114
|
+
const client = new index_js_1.Client({
|
|
115
|
+
name: `savant-${config.name}`,
|
|
116
|
+
version: '1.0.0'
|
|
117
|
+
});
|
|
118
|
+
// Connect the client to the server
|
|
119
|
+
await client.connect(transport);
|
|
120
|
+
logger.info(`🔌 MCP server ${config.name} connected successfully`);
|
|
121
|
+
servers.set(config.name, client);
|
|
122
|
+
logger.info(`✅ MCP server ${config.name} created and connected successfully`);
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
logger.error(`Failed to create/connect MCP server ${config.name}: Server not found or connection failed`);
|
|
126
|
+
// Clean up any servers that were successfully created before this failure
|
|
127
|
+
if (servers.size > 0) {
|
|
128
|
+
logger.info(`Cleaning up ${servers.size} successfully created servers before exit`);
|
|
129
|
+
for (const [name, client] of servers) {
|
|
130
|
+
try {
|
|
131
|
+
await client.close();
|
|
132
|
+
logger.info(`Cleaned up server: ${name}`);
|
|
133
|
+
}
|
|
134
|
+
catch (cleanup_error) {
|
|
135
|
+
// Silent cleanup - don't log cleanup errors
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
throw new Error(`MCP server ${config.name} initialization failed`);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
this.connected_servers = servers;
|
|
143
|
+
logger.info(`✅ MCP servers initialization completed: ${servers.size} stdio servers ready, ${http_servers.length} HTTP servers configured`);
|
|
144
|
+
// Cache tools from stdio servers only (HTTP servers are accessed directly)
|
|
145
|
+
if (servers.size > 0) {
|
|
146
|
+
await this._cache_all_tools();
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Get currently connected MCP servers
|
|
151
|
+
*
|
|
152
|
+
* @returns Map<string, Client> - Map of connected MCP servers by name
|
|
153
|
+
*/
|
|
154
|
+
get_connected_servers() {
|
|
155
|
+
return new Map(this.connected_servers);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Get all connected MCP servers as an array
|
|
159
|
+
*
|
|
160
|
+
* @returns Client[] - Array of connected MCP servers
|
|
161
|
+
*/
|
|
162
|
+
get_connected_servers_array() {
|
|
163
|
+
return Array.from(this.connected_servers.values());
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Get all connected MCP servers with their names
|
|
167
|
+
*
|
|
168
|
+
* @returns Array<{name: string, server: Client}> - Array of connected MCP servers with names
|
|
169
|
+
*/
|
|
170
|
+
get_connected_servers_with_names() {
|
|
171
|
+
return Array.from(this.connected_servers.entries()).map(([name, server]) => ({ name, server }));
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Get MCP server by exact name
|
|
175
|
+
*
|
|
176
|
+
* @param name - Exact name of the MCP server
|
|
177
|
+
* @returns Client | undefined - The MCP server or undefined if not found
|
|
178
|
+
*/
|
|
179
|
+
get_server_by_name(name) {
|
|
180
|
+
return this.connected_servers.get(name);
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Get MCP servers by name pattern
|
|
184
|
+
*
|
|
185
|
+
* @param name_pattern - Name pattern to filter by (e.g., 'embeddings', 'puppeteer')
|
|
186
|
+
* @returns Client[] - Filtered array of MCP servers
|
|
187
|
+
*/
|
|
188
|
+
get_servers_by_name_pattern(name_pattern) {
|
|
189
|
+
const servers = [];
|
|
190
|
+
for (const [name, server] of this.connected_servers) {
|
|
191
|
+
if (name.includes(name_pattern)) {
|
|
192
|
+
servers.push(server);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return servers;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Get MCP servers by name pattern as a Map
|
|
199
|
+
*
|
|
200
|
+
* @param name_pattern - Name pattern to filter by (e.g., 'embeddings', 'puppeteer')
|
|
201
|
+
* @returns Map<string, Client> - Filtered map of MCP servers
|
|
202
|
+
*/
|
|
203
|
+
get_servers_by_name_pattern_map(name_pattern) {
|
|
204
|
+
const filtered_servers = new Map();
|
|
205
|
+
for (const [name, server] of this.connected_servers) {
|
|
206
|
+
if (name.includes(name_pattern)) {
|
|
207
|
+
filtered_servers.set(name, server);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return filtered_servers;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Disconnect all MCP servers
|
|
214
|
+
*/
|
|
215
|
+
async disconnect_all_servers() {
|
|
216
|
+
try {
|
|
217
|
+
logger.info(`🔌 Disconnecting ${this.connected_servers.size} MCP servers`);
|
|
218
|
+
for (const [name, client] of this.connected_servers) {
|
|
219
|
+
try {
|
|
220
|
+
await client.close();
|
|
221
|
+
logger.info(`🔌 MCP server ${name} - cleanup completed`);
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
logger.error(`❌ Error during MCP server ${name} cleanup:`, error instanceof Error ? error : new Error(String(error)));
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
this.connected_servers = new Map();
|
|
228
|
+
this.initialization_promise = null;
|
|
229
|
+
logger.info(`✅ All MCP servers disconnected`);
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
logger.error('❌ Failed to disconnect MCP servers:', error instanceof Error ? error : new Error(String(error)));
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Check if MCP servers are initialized
|
|
237
|
+
*
|
|
238
|
+
* @returns boolean - True if servers are initialized
|
|
239
|
+
*/
|
|
240
|
+
is_initialized() {
|
|
241
|
+
return this.connected_servers.size > 0;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Get server count
|
|
245
|
+
*
|
|
246
|
+
* @returns number - Number of connected servers
|
|
247
|
+
*/
|
|
248
|
+
get_server_count() {
|
|
249
|
+
return this.connected_servers.size;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Get all server names
|
|
253
|
+
*
|
|
254
|
+
* @returns string[] - Array of server names
|
|
255
|
+
*/
|
|
256
|
+
get_server_names() {
|
|
257
|
+
return Array.from(this.connected_servers.keys());
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Get all cached MCP tools
|
|
261
|
+
*
|
|
262
|
+
* @returns MCPToolEntry[] - Array of cached tools
|
|
263
|
+
*/
|
|
264
|
+
get_cached_tools() {
|
|
265
|
+
return [...this.cached_tools];
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Get cached tools filtered by server name
|
|
269
|
+
*
|
|
270
|
+
* @param server_name - Optional server name to filter by
|
|
271
|
+
* @returns MCPToolEntry[] - Array of filtered tools
|
|
272
|
+
*/
|
|
273
|
+
get_cached_tools_by_server(server_name) {
|
|
274
|
+
if (!server_name) {
|
|
275
|
+
return this.get_cached_tools();
|
|
276
|
+
}
|
|
277
|
+
return this.cached_tools.filter(tool => tool.server.includes(server_name));
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Refresh the tools cache by re-fetching tools from all connected servers
|
|
281
|
+
*
|
|
282
|
+
* @returns Promise<void>
|
|
283
|
+
*/
|
|
284
|
+
async refresh_tools_cache() {
|
|
285
|
+
logger.info(`🔄 Refreshing tools cache from ${this.connected_servers.size} MCP servers`);
|
|
286
|
+
await this._cache_all_tools();
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Internal method to cache all tools from connected servers
|
|
290
|
+
*/
|
|
291
|
+
async _cache_all_tools() {
|
|
292
|
+
logger.info(`🔧 Caching tools from ${this.connected_servers.size} MCP servers`);
|
|
293
|
+
this.cached_tools = [];
|
|
294
|
+
for (const [server_name, client] of this.connected_servers) {
|
|
295
|
+
try {
|
|
296
|
+
logger.info(`🔧 Getting tools from MCP server: ${server_name}`);
|
|
297
|
+
// Make the native MCP tools/list call
|
|
298
|
+
const tools_response = await client.listTools();
|
|
299
|
+
// Handle different response formats
|
|
300
|
+
let tools_array = [];
|
|
301
|
+
if (tools_response && Array.isArray(tools_response)) {
|
|
302
|
+
// Direct array response
|
|
303
|
+
tools_array = tools_response;
|
|
304
|
+
}
|
|
305
|
+
else if (tools_response && typeof tools_response === 'object' && tools_response.tools && Array.isArray(tools_response.tools)) {
|
|
306
|
+
// Response with tools property
|
|
307
|
+
tools_array = tools_response.tools;
|
|
308
|
+
}
|
|
309
|
+
else if (tools_response && typeof tools_response === 'object' && 'result' in tools_response && Array.isArray(tools_response.result)) {
|
|
310
|
+
// Response with result property
|
|
311
|
+
tools_array = tools_response.result;
|
|
312
|
+
}
|
|
313
|
+
if (tools_array.length > 0) {
|
|
314
|
+
logger.info(`🔧 Found ${tools_array.length} tools in server ${server_name}`);
|
|
315
|
+
for (const tool of tools_array) {
|
|
316
|
+
// Format the tool information
|
|
317
|
+
const formatted_tool = {
|
|
318
|
+
server: server_name,
|
|
319
|
+
name: tool.name,
|
|
320
|
+
description: tool.description || '',
|
|
321
|
+
inputSchema: tool.inputSchema,
|
|
322
|
+
parameters: this._extract_parameters_from_schema(tool.inputSchema),
|
|
323
|
+
tags: this._extract_tags_from_tool(tool)
|
|
324
|
+
};
|
|
325
|
+
this.cached_tools.push(formatted_tool);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
else {
|
|
329
|
+
logger.warn(`🔧 No tools found in server ${server_name}`, {
|
|
330
|
+
tools_response_type: typeof tools_response,
|
|
331
|
+
tools_response_value: tools_response
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
catch (error) {
|
|
336
|
+
logger.warn(`🔧 Failed to get tools from MCP server ${server_name}:`, error instanceof Error ? error.message : String(error));
|
|
337
|
+
// Continue with other servers
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
logger.info(`🔧 Cached ${this.cached_tools.length} tools from ${this.connected_servers.size} MCP servers`);
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Extract parameters from MCP tool input schema
|
|
344
|
+
*/
|
|
345
|
+
_extract_parameters_from_schema(inputSchema) {
|
|
346
|
+
if (!inputSchema || !inputSchema.properties) {
|
|
347
|
+
return {};
|
|
348
|
+
}
|
|
349
|
+
const parameters = {};
|
|
350
|
+
const properties = inputSchema.properties;
|
|
351
|
+
const required = inputSchema.required || [];
|
|
352
|
+
for (const [paramName, paramSchema] of Object.entries(properties)) {
|
|
353
|
+
parameters[paramName] = {
|
|
354
|
+
type: paramSchema.type || 'string',
|
|
355
|
+
required: required.includes(paramName),
|
|
356
|
+
description: paramSchema.description || '',
|
|
357
|
+
...paramSchema
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
return parameters;
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Extract tags from tool information
|
|
364
|
+
*/
|
|
365
|
+
_extract_tags_from_tool(tool) {
|
|
366
|
+
const tags = [];
|
|
367
|
+
// Add server-based tags
|
|
368
|
+
if (tool.name?.includes('puppeteer'))
|
|
369
|
+
tags.push('puppeteer', 'browser', 'automation');
|
|
370
|
+
if (tool.name?.includes('embeddings'))
|
|
371
|
+
tags.push('embeddings', 'knowledge', 'search');
|
|
372
|
+
if (tool.name?.includes('parser'))
|
|
373
|
+
tags.push('parser', 'extraction');
|
|
374
|
+
// Add operation-based tags
|
|
375
|
+
if (tool.name?.includes('navigate'))
|
|
376
|
+
tags.push('navigation');
|
|
377
|
+
if (tool.name?.includes('click'))
|
|
378
|
+
tags.push('interaction');
|
|
379
|
+
if (tool.name?.includes('extract'))
|
|
380
|
+
tags.push('extraction');
|
|
381
|
+
if (tool.name?.includes('launch'))
|
|
382
|
+
tags.push('initialization');
|
|
383
|
+
return [...new Set(tags)]; // Remove duplicates
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
exports.MCPServerManager = MCPServerManager;
|
|
387
|
+
/**
|
|
388
|
+
* Convenience function to create and connect MCP servers
|
|
389
|
+
*
|
|
390
|
+
* @param configs - Array of MCP server configurations
|
|
391
|
+
* @returns Promise<Map<string, Client>> - Map of connected MCP servers by name
|
|
392
|
+
*/
|
|
393
|
+
async function create_and_connect_mcp_servers(configs) {
|
|
394
|
+
return await MCPServerManager.create_and_connect_mcp_servers(configs);
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* Convenience function to create and connect MCP servers as an array
|
|
398
|
+
*
|
|
399
|
+
* @param configs - Array of MCP server configurations
|
|
400
|
+
* @returns Promise<Client[]> - Array of connected MCP servers
|
|
401
|
+
*/
|
|
402
|
+
async function create_and_connect_mcp_servers_array(configs) {
|
|
403
|
+
const serversMap = await MCPServerManager.create_and_connect_mcp_servers(configs);
|
|
404
|
+
return Array.from(serversMap.values());
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Get the MCP server manager instance
|
|
408
|
+
*
|
|
409
|
+
* @returns MCPServerManager - Singleton instance
|
|
410
|
+
*/
|
|
411
|
+
function get_mcp_server_manager() {
|
|
412
|
+
return MCPServerManager.get_instance();
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* Convenience function to get MCP servers by name pattern
|
|
416
|
+
*
|
|
417
|
+
* @param name_pattern - Name pattern to filter by (e.g., 'embeddings', 'puppeteer')
|
|
418
|
+
* @returns Promise<Client[]> - Array of filtered MCP servers
|
|
419
|
+
*/
|
|
420
|
+
async function get_mcp_servers_by_name_pattern(name_pattern) {
|
|
421
|
+
const manager = MCPServerManager.get_instance();
|
|
422
|
+
if (!manager.is_initialized()) {
|
|
423
|
+
// Initialize with empty configs if not already initialized
|
|
424
|
+
await manager.create_and_connect_servers([]);
|
|
425
|
+
}
|
|
426
|
+
return manager.get_servers_by_name_pattern(name_pattern);
|
|
427
|
+
}
|
|
428
|
+
/**
|
|
429
|
+
* Convenience function to get a specific MCP server by name
|
|
430
|
+
*
|
|
431
|
+
* @param name - Exact name of the MCP server
|
|
432
|
+
* @returns Promise<Client | undefined> - The MCP server or undefined if not found
|
|
433
|
+
*/
|
|
434
|
+
async function get_mcp_server_by_name(name) {
|
|
435
|
+
const manager = MCPServerManager.get_instance();
|
|
436
|
+
if (!manager.is_initialized()) {
|
|
437
|
+
// Initialize with empty configs if not already initialized
|
|
438
|
+
await manager.create_and_connect_servers([]);
|
|
439
|
+
}
|
|
440
|
+
return manager.get_server_by_name(name);
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* Convenience function to get all MCP tools from all servers
|
|
444
|
+
*
|
|
445
|
+
* @param configs - Array of MCP server configurations
|
|
446
|
+
* @returns Promise<MCPToolEntry[]> - Array of all available tools
|
|
447
|
+
*/
|
|
448
|
+
async function get_all_mcp_tools(configs) {
|
|
449
|
+
return await MCPServerManager.get_all_mcp_tools(configs);
|
|
450
|
+
}
|
|
451
|
+
//# sourceMappingURL=mcp-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-utils.js","sourceRoot":"","sources":["../../../src/lib/utils/mcp-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Shared Sequelize Service and Configuration
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive Sequelize ORM service with configuration management,
|
|
5
|
+
* connection pooling, performance monitoring, and singleton pattern.
|
|
6
|
+
* This service can be used across all microservices for consistent database access.
|
|
7
|
+
*
|
|
8
|
+
* @author MeasureOne, Inc.
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
*/
|
|
11
|
+
import { Sequelize, Transaction } from "sequelize";
|
|
12
|
+
/**
|
|
13
|
+
* Database configuration interface for Sequelize
|
|
14
|
+
*/
|
|
15
|
+
export interface SequelizeDatabaseConfig {
|
|
16
|
+
url: string;
|
|
17
|
+
provider: "sqlite" | "postgresql" | "mysql";
|
|
18
|
+
log_queries: boolean;
|
|
19
|
+
connection_timeout: number;
|
|
20
|
+
query_timeout: number;
|
|
21
|
+
pool: {
|
|
22
|
+
max: number;
|
|
23
|
+
min: number;
|
|
24
|
+
acquire: number;
|
|
25
|
+
idle: number;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Sequelize service configuration options
|
|
30
|
+
*/
|
|
31
|
+
export interface SequelizeServiceOptions {
|
|
32
|
+
database_config: SequelizeDatabaseConfig;
|
|
33
|
+
setup_associations?: () => void;
|
|
34
|
+
enable_performance_monitoring?: boolean;
|
|
35
|
+
slow_query_threshold_ms?: number;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Database health check result
|
|
39
|
+
*/
|
|
40
|
+
export interface DatabaseHealthResult {
|
|
41
|
+
status: "healthy" | "unhealthy";
|
|
42
|
+
timestamp: string;
|
|
43
|
+
details?: {
|
|
44
|
+
response_time_ms?: number;
|
|
45
|
+
dialect?: string;
|
|
46
|
+
database_name?: string;
|
|
47
|
+
error?: string;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Query statistics interface
|
|
52
|
+
*/
|
|
53
|
+
export interface QueryStats {
|
|
54
|
+
dialect: string;
|
|
55
|
+
database_name: string;
|
|
56
|
+
is_connected: boolean;
|
|
57
|
+
total_queries?: number;
|
|
58
|
+
slow_queries?: number;
|
|
59
|
+
average_response_time?: number;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Shared Sequelize Service for all microservices
|
|
63
|
+
*/
|
|
64
|
+
export declare class SequelizeService {
|
|
65
|
+
private static instances;
|
|
66
|
+
private sequelize;
|
|
67
|
+
private is_connected;
|
|
68
|
+
private service_name;
|
|
69
|
+
private options;
|
|
70
|
+
private query_stats;
|
|
71
|
+
private constructor();
|
|
72
|
+
/**
|
|
73
|
+
* Get singleton instance of SequelizeService for a specific service
|
|
74
|
+
*/
|
|
75
|
+
static get_instance(service_name: string, options: SequelizeServiceOptions): SequelizeService;
|
|
76
|
+
/**
|
|
77
|
+
* Get Sequelize instance
|
|
78
|
+
*/
|
|
79
|
+
get client(): Sequelize;
|
|
80
|
+
/**
|
|
81
|
+
* Check if database is connected
|
|
82
|
+
*/
|
|
83
|
+
get connected(): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Get service name
|
|
86
|
+
*/
|
|
87
|
+
get name(): string;
|
|
88
|
+
/**
|
|
89
|
+
* Create Sequelize instance with comprehensive configuration
|
|
90
|
+
*/
|
|
91
|
+
private create_sequelize_instance;
|
|
92
|
+
/**
|
|
93
|
+
* Setup performance monitoring hooks
|
|
94
|
+
*/
|
|
95
|
+
private setup_performance_monitoring;
|
|
96
|
+
/**
|
|
97
|
+
* Setup event handlers for database connection
|
|
98
|
+
*/
|
|
99
|
+
private setup_event_handlers;
|
|
100
|
+
/**
|
|
101
|
+
* Connect to database
|
|
102
|
+
*/
|
|
103
|
+
connect(): Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* Disconnect from database
|
|
106
|
+
*/
|
|
107
|
+
disconnect(): Promise<void>;
|
|
108
|
+
/**
|
|
109
|
+
* Check database health
|
|
110
|
+
*/
|
|
111
|
+
health_check(): Promise<DatabaseHealthResult>;
|
|
112
|
+
/**
|
|
113
|
+
* Execute database transaction
|
|
114
|
+
*/
|
|
115
|
+
transaction<T>(callback: (transaction: Transaction) => Promise<T>): Promise<T>;
|
|
116
|
+
/**
|
|
117
|
+
* Execute raw SQL query with logging
|
|
118
|
+
*/
|
|
119
|
+
query(sql: string, options?: any): Promise<any>;
|
|
120
|
+
/**
|
|
121
|
+
* Get query statistics
|
|
122
|
+
*/
|
|
123
|
+
get_query_stats(): QueryStats;
|
|
124
|
+
/**
|
|
125
|
+
* Setup model associations (call this after models are initialized)
|
|
126
|
+
*/
|
|
127
|
+
setup_model_associations(): void;
|
|
128
|
+
/**
|
|
129
|
+
* Sync database schema (for development)
|
|
130
|
+
*/
|
|
131
|
+
sync_schema(options?: any): Promise<void>;
|
|
132
|
+
/**
|
|
133
|
+
* Drop all tables (for testing)
|
|
134
|
+
*/
|
|
135
|
+
drop_all_tables(): Promise<void>;
|
|
136
|
+
/**
|
|
137
|
+
* Get all active instances (for monitoring)
|
|
138
|
+
*/
|
|
139
|
+
static get_all_instances(): Map<string, SequelizeService>;
|
|
140
|
+
/**
|
|
141
|
+
* Close all instances (for cleanup)
|
|
142
|
+
*/
|
|
143
|
+
static close_all_instances(): Promise<void>;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Default database configuration factory
|
|
147
|
+
*/
|
|
148
|
+
export declare function create_default_database_config(url: string, provider?: "sqlite" | "postgresql" | "mysql", log_queries?: boolean): SequelizeDatabaseConfig;
|
|
149
|
+
/**
|
|
150
|
+
* Create Sequelize service with default configuration
|
|
151
|
+
*/
|
|
152
|
+
export declare function create_sequelize_service(service_name: string, database_url: string, options?: Partial<SequelizeServiceOptions>): SequelizeService;
|
|
153
|
+
//# sourceMappingURL=sequelize-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequelize-service.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/sequelize-service.ts"],"names":[],"mappings":"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"}
|