@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,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Base Handler for Response Output Types
|
|
4
|
+
*
|
|
5
|
+
* Base interface and abstract class for handling different response output types
|
|
6
|
+
* from the OpenAI Responses API.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.BaseHandler = void 0;
|
|
10
|
+
const logger_1 = require("../../lib/utils/logger");
|
|
11
|
+
class BaseHandler {
|
|
12
|
+
constructor(streaming_utils) {
|
|
13
|
+
// Initialize logger with the class name
|
|
14
|
+
this.logger = (0, logger_1.create_compact_logger)(this.constructor.name);
|
|
15
|
+
this.streaming_utils = streaming_utils;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Extract and parse AgentResponse from content
|
|
19
|
+
* Handles both string and object content, with JSON extraction from text
|
|
20
|
+
* @param content - Content from ChatMessage (can be string or object)
|
|
21
|
+
* @returns Parsed AgentResponse or null if parsing fails
|
|
22
|
+
*/
|
|
23
|
+
extract_agent_response(content) {
|
|
24
|
+
if (!content) {
|
|
25
|
+
this.logger.warn('⚠️ No content provided');
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
// If content is already an object, check if it's an AgentResponse
|
|
29
|
+
if (typeof content === 'object' && content !== null) {
|
|
30
|
+
// Check if it has message_type (indicating it's an AgentResponse)
|
|
31
|
+
if (content.message_type) {
|
|
32
|
+
this.logger.debug('✅ Content is already an AgentResponse object');
|
|
33
|
+
return content;
|
|
34
|
+
}
|
|
35
|
+
// If it's an object but not AgentResponse, try to stringify and parse
|
|
36
|
+
try {
|
|
37
|
+
const content_str = JSON.stringify(content);
|
|
38
|
+
return this.parse_content_string(content_str);
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
this.logger.warn('⚠️ Failed to stringify content object', {
|
|
42
|
+
error: e instanceof Error ? e.message : String(e)
|
|
43
|
+
});
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// If content is a string, parse it
|
|
48
|
+
if (typeof content === 'string') {
|
|
49
|
+
return this.parse_content_string(content);
|
|
50
|
+
}
|
|
51
|
+
this.logger.warn('⚠️ Content is neither string nor object');
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Parse content string to extract AgentResponse
|
|
56
|
+
* Handles markdown wrappers, invalid escape sequences, and JSON extraction
|
|
57
|
+
*/
|
|
58
|
+
parse_content_string(content_str) {
|
|
59
|
+
if (!content_str || content_str.trim().length === 0) {
|
|
60
|
+
this.logger.warn('⚠️ Empty content string');
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
this.logger.debug(`🔍 Attempting to extract AgentResponse from content (length: ${content_str.length})`);
|
|
64
|
+
// First, try direct JSON parse
|
|
65
|
+
try {
|
|
66
|
+
const agent_response = JSON.parse(content_str);
|
|
67
|
+
this.logger.debug('✅ Parsed as pure JSON');
|
|
68
|
+
return agent_response;
|
|
69
|
+
}
|
|
70
|
+
catch (e) {
|
|
71
|
+
this.logger.debug(`⚠️ Direct JSON parse failed, applying extraction logic`);
|
|
72
|
+
}
|
|
73
|
+
// Clean the text
|
|
74
|
+
let trimmed = content_str.trim();
|
|
75
|
+
// Strip markdown code blocks
|
|
76
|
+
const markdown_match = trimmed.match(/```(?:json)?\s*\n?([\s\S]*?)\n?```/);
|
|
77
|
+
if (markdown_match) {
|
|
78
|
+
trimmed = markdown_match[1].trim();
|
|
79
|
+
this.logger.debug('✂️ Stripped markdown wrapper');
|
|
80
|
+
}
|
|
81
|
+
// Fix invalid \' escape sequences (Gemini sometimes outputs these)
|
|
82
|
+
if (trimmed.includes("\\'")) {
|
|
83
|
+
trimmed = trimmed.replace(/\\'/g, "'");
|
|
84
|
+
this.logger.debug('🔧 Fixed invalid \' escape sequences');
|
|
85
|
+
}
|
|
86
|
+
// Extract JSON from text
|
|
87
|
+
const first_brace = trimmed.indexOf('{');
|
|
88
|
+
const last_brace = trimmed.lastIndexOf('}');
|
|
89
|
+
if (first_brace !== -1 && last_brace !== -1 && last_brace > first_brace) {
|
|
90
|
+
const json_str = trimmed.substring(first_brace, last_brace + 1);
|
|
91
|
+
try {
|
|
92
|
+
const parsed = JSON.parse(json_str);
|
|
93
|
+
this.logger.debug('✅ Successfully extracted and parsed JSON');
|
|
94
|
+
return parsed;
|
|
95
|
+
}
|
|
96
|
+
catch (e) {
|
|
97
|
+
this.logger.error(`❌ Failed to parse extracted JSON: ${e instanceof Error ? e.message : String(e)}`);
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
this.logger.error('❌ Could not extract JSON from content');
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Append Gemini response to conversation history
|
|
106
|
+
* Formats the response as a ChatMessage with role 'model' and content as JSON string
|
|
107
|
+
* @param history - Current conversation history
|
|
108
|
+
* @param result - GenerateContentResponse or ChatMessage from Gemini
|
|
109
|
+
* @param agent_response - Optional parsed AgentResponse to include
|
|
110
|
+
* @returns Updated conversation history
|
|
111
|
+
*/
|
|
112
|
+
append_gemini_response_to_history(history, result, agent_response) {
|
|
113
|
+
const updated_history = [...history];
|
|
114
|
+
// If agent_response is provided, use it; otherwise extract from result
|
|
115
|
+
if (agent_response) {
|
|
116
|
+
updated_history.push({
|
|
117
|
+
role: 'model',
|
|
118
|
+
content: JSON.stringify(agent_response)
|
|
119
|
+
});
|
|
120
|
+
return updated_history;
|
|
121
|
+
}
|
|
122
|
+
if ('text' in result) {
|
|
123
|
+
// GenerateContentResponse
|
|
124
|
+
updated_history.push({
|
|
125
|
+
role: 'model',
|
|
126
|
+
content: result.text || ''
|
|
127
|
+
});
|
|
128
|
+
return updated_history;
|
|
129
|
+
}
|
|
130
|
+
// ChatMessage - already formatted as a ChatMessage object
|
|
131
|
+
updated_history.push(result);
|
|
132
|
+
return updated_history;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Append context to conversation history as a special context message
|
|
136
|
+
* @param history - Current conversation history
|
|
137
|
+
* @param context - Context object to append
|
|
138
|
+
* @returns Updated conversation history
|
|
139
|
+
*/
|
|
140
|
+
append_context_to_history(history, context) {
|
|
141
|
+
const updated_history = [...history];
|
|
142
|
+
updated_history.push({
|
|
143
|
+
role: 'user',
|
|
144
|
+
content: {
|
|
145
|
+
type: 'context',
|
|
146
|
+
context: context
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
return updated_history;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
exports.BaseHandler = BaseHandler;
|
|
153
|
+
//# sourceMappingURL=base-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-handler.js","sourceRoot":"","sources":["../../../src/ai/response_handlers/base-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Direct Response Handler
|
|
3
|
+
*
|
|
4
|
+
* Handles DIRECT_RESPONSE message_type from AgentResponse.
|
|
5
|
+
* This is a terminal response type that breaks the execution loop.
|
|
6
|
+
*/
|
|
7
|
+
import { BaseHandler, HandlerContext, HandlerResult } from "./base-handler";
|
|
8
|
+
import { ChatMessage } from "../../lib/schemas";
|
|
9
|
+
export declare class DirectResponseHandler extends BaseHandler {
|
|
10
|
+
can_handle(message_type: string | null, output_type: string, input: ChatMessage): boolean;
|
|
11
|
+
handle(input: ChatMessage, context: HandlerContext): Promise<HandlerResult>;
|
|
12
|
+
/**
|
|
13
|
+
* Prepare input for OrchestratorAgent
|
|
14
|
+
* Formats the message for orchestrator routing
|
|
15
|
+
*/
|
|
16
|
+
prepare_input(last_message: ChatMessage): ChatMessage[];
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=direct-response-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"direct-response-handler.d.ts","sourceRoot":"","sources":["../../../src/ai/response_handlers/direct-response-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAiB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE/D,qBAAa,qBAAsB,SAAQ,WAAW;IAClD,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO;IAQnF,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAkDjF;;;OAGG;IACH,aAAa,CAAC,YAAY,EAAE,WAAW,GAAG,WAAW,EAAE;CAuB1D"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Direct Response Handler
|
|
4
|
+
*
|
|
5
|
+
* Handles DIRECT_RESPONSE message_type from AgentResponse.
|
|
6
|
+
* This is a terminal response type that breaks the execution loop.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.DirectResponseHandler = void 0;
|
|
10
|
+
const base_handler_1 = require("./base-handler");
|
|
11
|
+
class DirectResponseHandler extends base_handler_1.BaseHandler {
|
|
12
|
+
can_handle(message_type, output_type, input) {
|
|
13
|
+
// first extract the message into an object
|
|
14
|
+
return input.role === 'model' && message_type === 'DIRECT_RESPONSE';
|
|
15
|
+
}
|
|
16
|
+
async handle(input, context) {
|
|
17
|
+
this.logger.info('Direct response handler received result');
|
|
18
|
+
const result = this.extract_agent_response(input.content);
|
|
19
|
+
if (!result) {
|
|
20
|
+
this.logger.warn('⚠️ No AgentResponse in response');
|
|
21
|
+
return {
|
|
22
|
+
success: false,
|
|
23
|
+
result: [],
|
|
24
|
+
should_continue: false
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
const message_type = result.message_type;
|
|
28
|
+
if (!message_type) {
|
|
29
|
+
this.logger.warn('⚠️ No message_type in response');
|
|
30
|
+
return {
|
|
31
|
+
success: false,
|
|
32
|
+
result: [],
|
|
33
|
+
should_continue: false
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
// Extract domain from orchestrator response (for logging)
|
|
37
|
+
const extracted_domain = result?.domain || result?.content?.domain || null;
|
|
38
|
+
const available_domains = context?.available_domains || [];
|
|
39
|
+
// Log domain identification result from orchestrator
|
|
40
|
+
this.logger.info('🎯 DirectResponseHandler - Orchestrator domain identification', {
|
|
41
|
+
identified_domain: extracted_domain || 'null',
|
|
42
|
+
message_type: message_type,
|
|
43
|
+
available_domains: available_domains,
|
|
44
|
+
agent_kind: result?.agent_kind
|
|
45
|
+
});
|
|
46
|
+
this.logger.info(`✅ Direct response received - breaking execution loop`);
|
|
47
|
+
// send the message to the user as a direct response through the streaming utils
|
|
48
|
+
this.streaming_utils.write('direct_response', {
|
|
49
|
+
message: input.content
|
|
50
|
+
});
|
|
51
|
+
return {
|
|
52
|
+
success: true,
|
|
53
|
+
result: [],
|
|
54
|
+
should_continue: false,
|
|
55
|
+
context: {},
|
|
56
|
+
message_type: message_type
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Prepare input for OrchestratorAgent
|
|
61
|
+
* Formats the message for orchestrator routing
|
|
62
|
+
*/
|
|
63
|
+
prepare_input(last_message) {
|
|
64
|
+
if (!last_message) {
|
|
65
|
+
return [{
|
|
66
|
+
role: 'user',
|
|
67
|
+
content: 'Please help me with this task'
|
|
68
|
+
}];
|
|
69
|
+
}
|
|
70
|
+
// Extract the user's message
|
|
71
|
+
let user_message = '';
|
|
72
|
+
if (typeof last_message.content === 'string') {
|
|
73
|
+
user_message = last_message.content;
|
|
74
|
+
}
|
|
75
|
+
else if (last_message.content && typeof last_message.content === 'object') {
|
|
76
|
+
user_message = last_message.content.message || last_message.content.text || JSON.stringify(last_message.content);
|
|
77
|
+
}
|
|
78
|
+
const formatted_message = user_message || 'Please help me with this task';
|
|
79
|
+
return [{
|
|
80
|
+
role: 'user',
|
|
81
|
+
content: formatted_message
|
|
82
|
+
}];
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.DirectResponseHandler = DirectResponseHandler;
|
|
86
|
+
//# sourceMappingURL=direct-response-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"direct-response-handler.js","sourceRoot":"","sources":["../../../src/ai/response_handlers/direct-response-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Error Handler
|
|
3
|
+
*
|
|
4
|
+
* Handles error output types by returning error responses.
|
|
5
|
+
*/
|
|
6
|
+
import type { GenerateContentResponse } from "@google/genai";
|
|
7
|
+
import { BaseHandler, HandlerContext, HandlerResult } from "./base-handler";
|
|
8
|
+
import { ChatMessage } from "../../lib/schemas";
|
|
9
|
+
export declare class ErrorHandler extends BaseHandler {
|
|
10
|
+
can_handle(message_type: string | null, output_type: string, input: ChatMessage): boolean;
|
|
11
|
+
handle(result: GenerateContentResponse | ChatMessage, context: HandlerContext): Promise<HandlerResult>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=error-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../../src/ai/response_handlers/error-handler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAiB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE/D,qBAAa,YAAa,SAAQ,WAAW;IAC5C,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO;IAKnF,MAAM,CAAC,MAAM,EAAE,uBAAuB,GAAG,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CA6D5G"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Error Handler
|
|
4
|
+
*
|
|
5
|
+
* Handles error output types by returning error responses.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.ErrorHandler = void 0;
|
|
9
|
+
const base_handler_1 = require("./base-handler");
|
|
10
|
+
class ErrorHandler extends base_handler_1.BaseHandler {
|
|
11
|
+
can_handle(message_type, output_type, input) {
|
|
12
|
+
// Check message_type first, then output_type
|
|
13
|
+
return message_type === 'ERROR' || output_type === 'error';
|
|
14
|
+
}
|
|
15
|
+
async handle(result, context) {
|
|
16
|
+
// Extract error message from GenerateContentResponse or ChatMessage
|
|
17
|
+
let error_message;
|
|
18
|
+
let content_str;
|
|
19
|
+
if ('text' in result) {
|
|
20
|
+
// It's a GenerateContentResponse
|
|
21
|
+
error_message = result.error?.message ||
|
|
22
|
+
(result.candidates && result.candidates.length === 0 ? 'No candidates in response' : 'Unknown error');
|
|
23
|
+
content_str = result.text;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
// It's a ChatMessage
|
|
27
|
+
error_message = 'Error in response';
|
|
28
|
+
const content = result.content;
|
|
29
|
+
content_str = typeof content === 'string' ? content : content.text || JSON.stringify(content);
|
|
30
|
+
}
|
|
31
|
+
this.logger.warn(`⚠️ Error in response: ${error_message}`);
|
|
32
|
+
// Try to parse AgentResponse from text if available
|
|
33
|
+
let updated_history = [];
|
|
34
|
+
if (content_str) {
|
|
35
|
+
// Use base handler extraction method to handle markdown, escape sequences, etc.
|
|
36
|
+
const agent_response = this.extract_agent_response(content_str);
|
|
37
|
+
if (agent_response) {
|
|
38
|
+
updated_history = this.append_gemini_response_to_history([], result, agent_response);
|
|
39
|
+
}
|
|
40
|
+
// If extraction fails, just use current history
|
|
41
|
+
}
|
|
42
|
+
// Check if we should retry (if we haven't exceeded max attempts)
|
|
43
|
+
const should_retry = context.attempt_number < context.max_attempts;
|
|
44
|
+
const handler_context = {
|
|
45
|
+
error: error_message,
|
|
46
|
+
error_details: result.error
|
|
47
|
+
};
|
|
48
|
+
if (should_retry) {
|
|
49
|
+
this.logger.info(`🔄 Retrying after error (attempt ${context.attempt_number + 1}/{(context as { attempt_number: number; max_attempts: number }).max_attempts})`);
|
|
50
|
+
const retry_context = { ...handler_context, retrying: true };
|
|
51
|
+
const history_with_context = this.append_context_to_history(updated_history, retry_context);
|
|
52
|
+
return {
|
|
53
|
+
success: false,
|
|
54
|
+
result: history_with_context,
|
|
55
|
+
should_continue: true,
|
|
56
|
+
context: retry_context,
|
|
57
|
+
message_type: null // Retry with same agent
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
// Max attempts reached - return error
|
|
61
|
+
const history_with_context = this.append_context_to_history(updated_history, handler_context);
|
|
62
|
+
return {
|
|
63
|
+
success: false,
|
|
64
|
+
result: history_with_context,
|
|
65
|
+
should_continue: false,
|
|
66
|
+
context: handler_context,
|
|
67
|
+
message_type: 'ERROR' // Terminal error state
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.ErrorHandler = ErrorHandler;
|
|
72
|
+
//# sourceMappingURL=error-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../../src/ai/response_handlers/error-handler.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAGH,iDAA4E;AAG5E,MAAa,YAAa,SAAQ,0BAAW;IAC5C,UAAU,CAAC,YAA2B,EAAE,WAAmB,EAAE,KAAkB;QAC9E,6CAA6C;QAC7C,OAAO,YAAY,KAAK,OAAO,IAAI,WAAW,KAAK,OAAO,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAA6C,EAAE,OAAuB;QAClF,oEAAoE;QACpE,IAAI,aAAqB,CAAC;QAC1B,IAAI,WAA+B,CAAC;QAEpC,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;YACtB,iCAAiC;YACjC,aAAa,GAAI,MAAc,CAAC,KAAK,EAAE,OAAO;gBAC7C,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YACvG,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;QAC3B,CAAC;aAAM,CAAC;YACP,qBAAqB;YACrB,aAAa,GAAG,mBAAmB,CAAC;YACpC,MAAM,OAAO,GAAI,MAAsB,CAAC,OAAO,CAAC;YAChD,WAAW,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,OAAe,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACxG,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,aAAa,EAAE,CAAC,CAAC;QAE3D,oDAAoD;QACpD,IAAI,eAAe,GAAkB,EAAmB,CAAC;QACzD,IAAI,WAAW,EAAE,CAAC;YACjB,gFAAgF;YAChF,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;YAChE,IAAI,cAAc,EAAE,CAAC;gBACpB,eAAe,GAAG,IAAI,CAAC,iCAAiC,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;YACtF,CAAC;YACD,gDAAgD;QACjD,CAAC;QAED,iEAAiE;QACjE,MAAM,YAAY,GAAI,OAA4D,CAAC,cAAc,GAAI,OAA4D,CAAC,YAAY,CAAC;QAE/K,MAAM,eAAe,GAAG;YACvB,KAAK,EAAE,aAAa;YACpB,aAAa,EAAG,MAAc,CAAC,KAAK;SACpC,CAAC;QAEF,IAAI,YAAY,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAqC,OAA4D,CAAC,cAAc,GAAG,CAAC,gFAAgF,CAAC,CAAC;YACvN,MAAM,aAAa,GAAG,EAAE,GAAG,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC7D,MAAM,oBAAoB,GAAG,IAAI,CAAC,yBAAyB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;YAC5F,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,oBAAoB;gBAC5B,eAAe,EAAE,IAAI;gBACrB,OAAO,EAAE,aAAa;gBACtB,YAAY,EAAE,IAAI,CAAC,wBAAwB;aAC3C,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,MAAM,oBAAoB,GAAG,IAAI,CAAC,yBAAyB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;QAC9F,OAAO;YACN,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,oBAAoB;YAC5B,eAAe,EAAE,KAAK;YACtB,OAAO,EAAE,eAAe;YACxB,YAAY,EAAE,OAAO,CAAC,uBAAuB;SAC7C,CAAC;IACH,CAAC;CACD;AAnED,oCAmEC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Response Handler Registry
|
|
3
|
+
*
|
|
4
|
+
* Registry for managing and selecting appropriate handlers.
|
|
5
|
+
* Routes by message_type (from AgentResponse) first, then falls back to output_type (from OpenAI Response).
|
|
6
|
+
*/
|
|
7
|
+
import { BaseHandler, HandlerContext, HandlerResult } from "./base-handler";
|
|
8
|
+
import type { ChatMessage } from "../../lib/schemas";
|
|
9
|
+
import { Logger } from "../../lib/utils/logger";
|
|
10
|
+
import { StreamingUtils } from "../../lib/streaming-utils";
|
|
11
|
+
export declare class HandlerRegistry {
|
|
12
|
+
private logger;
|
|
13
|
+
private streaming_utils;
|
|
14
|
+
private message_type_handlers;
|
|
15
|
+
private output_type_handlers;
|
|
16
|
+
private user_input_handler;
|
|
17
|
+
constructor(logger: Logger, streaming_utils: StreamingUtils);
|
|
18
|
+
/**
|
|
19
|
+
* Get handler for preparing input based on message_type
|
|
20
|
+
* This is used to format input before calling an agent
|
|
21
|
+
*/
|
|
22
|
+
get_handler_for_prepare_input(message_type: string | null): BaseHandler | null;
|
|
23
|
+
/**
|
|
24
|
+
* Extract message_type from ChatMessage content
|
|
25
|
+
* Handles both string content and object content
|
|
26
|
+
*/
|
|
27
|
+
private extract_message_type_from_content;
|
|
28
|
+
/**
|
|
29
|
+
* Extract output_type from ChatMessage content
|
|
30
|
+
* For model messages, we infer output_type from the content structure
|
|
31
|
+
*/
|
|
32
|
+
private extract_output_type_from_content;
|
|
33
|
+
/**
|
|
34
|
+
* Extract JSON object from text that may contain natural language or markdown code blocks
|
|
35
|
+
* Looks for JSON objects in the text (starting with { and ending with })
|
|
36
|
+
* PUBLIC so handlers can use this for parsing raw output_text
|
|
37
|
+
*/
|
|
38
|
+
extract_json_from_text(text: string): string | null;
|
|
39
|
+
/**
|
|
40
|
+
* Find and return the appropriate handler for the given ChatMessage
|
|
41
|
+
* Uses heuristics-based classification:
|
|
42
|
+
* - If message.role == 'user', returns UserInputHandler
|
|
43
|
+
* - Otherwise, parses content to extract message_type/output_type and finds appropriate handler
|
|
44
|
+
*/
|
|
45
|
+
find_handler(message: ChatMessage): BaseHandler | null;
|
|
46
|
+
/**
|
|
47
|
+
* Handle the response using the appropriate handler
|
|
48
|
+
*/
|
|
49
|
+
handle_response(message: ChatMessage, context: HandlerContext): Promise<HandlerResult>;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=handler-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler-registry.d.ts","sourceRoot":"","sources":["../../../src/ai/response_handlers/handler-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAUrD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,qBAAa,eAAe;IAKZ,OAAO,CAAC,MAAM;IAAU,OAAO,CAAC,eAAe;IAJ3D,OAAO,CAAC,qBAAqB,CAAqB;IAClD,OAAO,CAAC,oBAAoB,CAAqB;IACjD,OAAO,CAAC,kBAAkB,CAAmB;gBAEzB,MAAM,EAAE,MAAM,EAAU,eAAe,EAAE,cAAc;IAiB3E;;;OAGG;IACH,6BAA6B,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI;IAyB9E;;;OAGG;IACH,OAAO,CAAC,iCAAiC;IAqDzC;;;OAGG;IACH,OAAO,CAAC,gCAAgC;IAoBxC;;;;OAIG;IACI,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAuE1D;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI;IA6CtD;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CAc/F"}
|