@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,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Stable JSON Stringify Utility
|
|
4
|
+
*
|
|
5
|
+
* Provides deterministic JSON stringification by sorting object keys recursively.
|
|
6
|
+
* This ensures that objects with the same content but different key ordering
|
|
7
|
+
* produce identical string representations.
|
|
8
|
+
*
|
|
9
|
+
* @author MeasureOne, Inc.
|
|
10
|
+
* @version 1.0.0
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.stable_stringify = stable_stringify;
|
|
14
|
+
exports.is_valid_json = is_valid_json;
|
|
15
|
+
exports.safe_json_parse = safe_json_parse;
|
|
16
|
+
/**
|
|
17
|
+
* Recursively sorts object keys to ensure deterministic stringification
|
|
18
|
+
*/
|
|
19
|
+
function sort_object_keys(obj) {
|
|
20
|
+
if (obj === null || typeof obj !== "object") {
|
|
21
|
+
return obj;
|
|
22
|
+
}
|
|
23
|
+
if (Array.isArray(obj)) {
|
|
24
|
+
return obj.map(sort_object_keys);
|
|
25
|
+
}
|
|
26
|
+
const sorted_obj = {};
|
|
27
|
+
const keys = Object.keys(obj).sort();
|
|
28
|
+
for (const key of keys) {
|
|
29
|
+
sorted_obj[key] = sort_object_keys(obj[key]);
|
|
30
|
+
}
|
|
31
|
+
return sorted_obj;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Creates a stable, deterministic JSON string representation of any value
|
|
35
|
+
*
|
|
36
|
+
* @param value - The value to stringify
|
|
37
|
+
* @returns Stable JSON string with sorted keys
|
|
38
|
+
*/
|
|
39
|
+
function stable_stringify(value) {
|
|
40
|
+
const sorted_value = sort_object_keys(value);
|
|
41
|
+
return JSON.stringify(sorted_value);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Validates that a string is valid JSON and can be parsed
|
|
45
|
+
*
|
|
46
|
+
* @param json_string - The JSON string to validate
|
|
47
|
+
* @returns True if valid JSON, false otherwise
|
|
48
|
+
*/
|
|
49
|
+
function is_valid_json(json_string) {
|
|
50
|
+
try {
|
|
51
|
+
JSON.parse(json_string);
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Safely parses JSON with error handling
|
|
60
|
+
*
|
|
61
|
+
* @param json_string - The JSON string to parse
|
|
62
|
+
* @returns Parsed object or null if invalid
|
|
63
|
+
*/
|
|
64
|
+
function safe_json_parse(json_string) {
|
|
65
|
+
try {
|
|
66
|
+
return JSON.parse(json_string);
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=stable-stringify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stable-stringify.js","sourceRoot":"","sources":["../../src/lib/stable-stringify.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AA8BH,4CAGC;AAQD,sCAOC;AAQD,0CAMC;AA5DD;;GAEG;AACH,SAAS,gBAAgB,CAAC,GAAQ;IAChC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,UAAU,GAAwB,EAAE,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAErC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,UAAU,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,KAAU;IACzC,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,WAAmB;IAC/C,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,WAAmB;IACjD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Streaming Utilities Class
|
|
3
|
+
*
|
|
4
|
+
* Encapsulates all streaming logic in a single class that handles JSONL (NDJSON) streaming.
|
|
5
|
+
* The complex event processing logic is handled by OpenAIEventProcessor.
|
|
6
|
+
*
|
|
7
|
+
* @author MeasureOne, Inc.
|
|
8
|
+
* @version 1.0.0
|
|
9
|
+
*/
|
|
10
|
+
import { Response } from "express";
|
|
11
|
+
/**
|
|
12
|
+
* Streaming utilities class that encapsulates all streaming logic
|
|
13
|
+
*/
|
|
14
|
+
export declare class StreamingUtils {
|
|
15
|
+
private res;
|
|
16
|
+
private req;
|
|
17
|
+
private safe_write;
|
|
18
|
+
private cleanup;
|
|
19
|
+
private heartbeat?;
|
|
20
|
+
private closed;
|
|
21
|
+
constructor(res: Response, req: any);
|
|
22
|
+
/**
|
|
23
|
+
* Write an event to the stream
|
|
24
|
+
*/
|
|
25
|
+
write(event_name: string, payload: any): void;
|
|
26
|
+
/**
|
|
27
|
+
* Clean up the streaming connection
|
|
28
|
+
*/
|
|
29
|
+
cleanup_connection(): void;
|
|
30
|
+
/**
|
|
31
|
+
* Sets up JSONL (NDJSON) headers for streaming responses
|
|
32
|
+
*/
|
|
33
|
+
private setup_stream_headers;
|
|
34
|
+
/**
|
|
35
|
+
* Sets up request timeout for streaming connections
|
|
36
|
+
*/
|
|
37
|
+
private setup_stream_timeout;
|
|
38
|
+
/**
|
|
39
|
+
* Creates a safe JSONL writer (one JSON object per line) for streaming.
|
|
40
|
+
* Shape: { type: string, data: any }
|
|
41
|
+
*/
|
|
42
|
+
private create_safe_write;
|
|
43
|
+
/**
|
|
44
|
+
* Creates a heartbeat interval for keeping streaming connections alive
|
|
45
|
+
*/
|
|
46
|
+
private create_heartbeat;
|
|
47
|
+
/**
|
|
48
|
+
* Creates a cleanup function for streaming connections
|
|
49
|
+
*/
|
|
50
|
+
private create_cleanup_function;
|
|
51
|
+
/**
|
|
52
|
+
* Priming write to defeat intermediary buffering and force early flushes
|
|
53
|
+
*/
|
|
54
|
+
private prime_stream;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Handles streaming error responses for JSONL transport
|
|
58
|
+
*/
|
|
59
|
+
export declare function handle_stream_error(res: Response, error: Error): void;
|
|
60
|
+
//# sourceMappingURL=streaming-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming-utils.d.ts","sourceRoot":"","sources":["../../src/lib/streaming-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKnC;;GAEG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,UAAU,CAA4C;IAC9D,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,SAAS,CAAC,CAAiB;IACnC,OAAO,CAAC,MAAM,CAAS;gBAEX,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG;IAsBnC;;OAEG;IACI,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI;IAIpD;;OAEG;IACI,kBAAkB,IAAI,IAAI;IAIjC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAyB5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;;WAGO;IACP,OAAO,CAAC,iBAAiB;IAwBzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAMxB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAS/B;;OAEG;IACH,OAAO,CAAC,YAAY;CAiBvB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAqBrE"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Streaming Utilities Class
|
|
4
|
+
*
|
|
5
|
+
* Encapsulates all streaming logic in a single class that handles JSONL (NDJSON) streaming.
|
|
6
|
+
* The complex event processing logic is handled by OpenAIEventProcessor.
|
|
7
|
+
*
|
|
8
|
+
* @author MeasureOne, Inc.
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.StreamingUtils = void 0;
|
|
13
|
+
exports.handle_stream_error = handle_stream_error;
|
|
14
|
+
const logger_1 = require("./utils/logger");
|
|
15
|
+
const logger = (0, logger_1.create_compact_logger)("streaming-utils");
|
|
16
|
+
/**
|
|
17
|
+
* Streaming utilities class that encapsulates all streaming logic
|
|
18
|
+
*/
|
|
19
|
+
class StreamingUtils {
|
|
20
|
+
constructor(res, req) {
|
|
21
|
+
this.closed = false;
|
|
22
|
+
this.res = res;
|
|
23
|
+
this.req = req;
|
|
24
|
+
// Set up streaming infrastructure
|
|
25
|
+
this.setup_stream_headers();
|
|
26
|
+
this.setup_stream_timeout();
|
|
27
|
+
this.prime_stream();
|
|
28
|
+
// Create safe write function
|
|
29
|
+
this.safe_write = this.create_safe_write();
|
|
30
|
+
// Create heartbeat
|
|
31
|
+
this.heartbeat = this.create_heartbeat();
|
|
32
|
+
// Create cleanup function
|
|
33
|
+
this.cleanup = this.create_cleanup_function();
|
|
34
|
+
// Add initial status
|
|
35
|
+
this.safe_write('status', { message: 'processing…' });
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Write an event to the stream
|
|
39
|
+
*/
|
|
40
|
+
write(event_name, payload) {
|
|
41
|
+
this.safe_write(event_name, payload);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Clean up the streaming connection
|
|
45
|
+
*/
|
|
46
|
+
cleanup_connection() {
|
|
47
|
+
this.cleanup();
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Sets up JSONL (NDJSON) headers for streaming responses
|
|
51
|
+
*/
|
|
52
|
+
setup_stream_headers() {
|
|
53
|
+
if (this.res.headersSent)
|
|
54
|
+
return; // idempotent guard
|
|
55
|
+
// Prefer setHeader for idempotency; set status then flush
|
|
56
|
+
this.res.statusCode = 200;
|
|
57
|
+
this.res.setHeader("Content-Type", "application/x-ndjson");
|
|
58
|
+
this.res.setHeader("Cache-Control", "no-cache, no-transform");
|
|
59
|
+
this.res.setHeader("Connection", "keep-alive");
|
|
60
|
+
this.res.setHeader("Access-Control-Allow-Origin", "*");
|
|
61
|
+
this.res.setHeader("Access-Control-Allow-Headers", "Cache-Control, Last-Event-ID, Content-Type, Authorization");
|
|
62
|
+
this.res.setHeader("X-Accel-Buffering", "no");
|
|
63
|
+
this.res.setHeader("X-Content-Type-Options", "nosniff");
|
|
64
|
+
this.res.setHeader("Vary", "Accept");
|
|
65
|
+
// Best-effort signal to disable compression middlewares on this route
|
|
66
|
+
// @ts-ignore
|
|
67
|
+
if (typeof this.res.set === 'function') {
|
|
68
|
+
// Express-style set
|
|
69
|
+
// @ts-ignore
|
|
70
|
+
this.res.set('Content-Encoding', 'identity');
|
|
71
|
+
}
|
|
72
|
+
// @ts-ignore
|
|
73
|
+
this.res.flushHeaders?.();
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Sets up request timeout for streaming connections
|
|
77
|
+
*/
|
|
78
|
+
setup_stream_timeout() {
|
|
79
|
+
// Never timeout streaming
|
|
80
|
+
// @ts-ignore
|
|
81
|
+
this.req.setTimeout?.(0);
|
|
82
|
+
// Improve streaming behavior at the TCP level
|
|
83
|
+
try {
|
|
84
|
+
this.req.socket?.setNoDelay?.(true);
|
|
85
|
+
this.req.socket?.setKeepAlive?.(true, 1000);
|
|
86
|
+
}
|
|
87
|
+
catch { /* ignore */ }
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Creates a safe JSONL writer (one JSON object per line) for streaming.
|
|
91
|
+
* Shape: { type: string, data: any }
|
|
92
|
+
*/
|
|
93
|
+
create_safe_write() {
|
|
94
|
+
return (eventName, payload) => {
|
|
95
|
+
if (this.closed || this.res.writableEnded)
|
|
96
|
+
return;
|
|
97
|
+
try {
|
|
98
|
+
const frame = JSON.stringify({ type: eventName, data: payload }) + "\n";
|
|
99
|
+
this.res.write(frame);
|
|
100
|
+
// Flush immediately when supported (avoids buffering)
|
|
101
|
+
// @ts-ignore
|
|
102
|
+
if (typeof this.res.flush === 'function') {
|
|
103
|
+
// @ts-ignore
|
|
104
|
+
this.res.flush();
|
|
105
|
+
}
|
|
106
|
+
// Stop heartbeat and cleanup when "end" event is written
|
|
107
|
+
if (eventName === 'end') {
|
|
108
|
+
this.cleanup_connection();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
catch (e) {
|
|
112
|
+
logger.warn("JSONL write failed; closing connection", e);
|
|
113
|
+
this.cleanup_connection();
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Creates a heartbeat interval for keeping streaming connections alive
|
|
119
|
+
*/
|
|
120
|
+
create_heartbeat() {
|
|
121
|
+
return setInterval(() => {
|
|
122
|
+
this.safe_write('heartbeat', { t: Date.now() });
|
|
123
|
+
}, 15000);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Creates a cleanup function for streaming connections
|
|
127
|
+
*/
|
|
128
|
+
create_cleanup_function() {
|
|
129
|
+
return () => {
|
|
130
|
+
if (this.closed)
|
|
131
|
+
return;
|
|
132
|
+
this.closed = true;
|
|
133
|
+
if (this.heartbeat)
|
|
134
|
+
clearInterval(this.heartbeat);
|
|
135
|
+
if (!this.res.writableEnded)
|
|
136
|
+
this.res.end();
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Priming write to defeat intermediary buffering and force early flushes
|
|
141
|
+
*/
|
|
142
|
+
prime_stream() {
|
|
143
|
+
// Some proxies begin sending only after a certain byte threshold.
|
|
144
|
+
// Send a padding line plus a connect status frame immediately.
|
|
145
|
+
try {
|
|
146
|
+
const pad = ' '.repeat(2048) + '\n';
|
|
147
|
+
// @ts-ignore
|
|
148
|
+
if (!this.res.headersSent)
|
|
149
|
+
this.res.flushHeaders?.();
|
|
150
|
+
this.res.write(pad);
|
|
151
|
+
const hello = JSON.stringify({ type: 'status', data: { message: 'connected' } }) + '\n';
|
|
152
|
+
this.res.write(hello);
|
|
153
|
+
// @ts-ignore
|
|
154
|
+
if (typeof this.res.flush === 'function') {
|
|
155
|
+
// @ts-ignore
|
|
156
|
+
this.res.flush();
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
catch { /* ignore */ }
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
exports.StreamingUtils = StreamingUtils;
|
|
163
|
+
/**
|
|
164
|
+
* Handles streaming error responses for JSONL transport
|
|
165
|
+
*/
|
|
166
|
+
function handle_stream_error(res, error) {
|
|
167
|
+
try {
|
|
168
|
+
if (!res.headersSent) {
|
|
169
|
+
res.statusCode = 200;
|
|
170
|
+
res.setHeader("Content-Type", "application/x-ndjson");
|
|
171
|
+
res.setHeader("Cache-Control", "no-cache, no-transform");
|
|
172
|
+
res.setHeader("Connection", "keep-alive");
|
|
173
|
+
res.setHeader("Access-Control-Allow-Origin", "*");
|
|
174
|
+
res.setHeader("Access-Control-Allow-Headers", "Cache-Control, Last-Event-ID, Content-Type, Authorization");
|
|
175
|
+
res.setHeader("X-Accel-Buffering", "no");
|
|
176
|
+
res.setHeader("X-Content-Type-Options", "nosniff");
|
|
177
|
+
res.setHeader("Vary", "Accept");
|
|
178
|
+
}
|
|
179
|
+
const line = JSON.stringify({ type: 'error', data: { message: error.message } }) + "\n";
|
|
180
|
+
// Write best-effort; ignore if socket already closed
|
|
181
|
+
if (!res.writableEnded) {
|
|
182
|
+
res.write(line);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
finally {
|
|
186
|
+
if (!res.writableEnded)
|
|
187
|
+
res.end();
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=streaming-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming-utils.js","sourceRoot":"","sources":["../../src/lib/streaming-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Conversation Builder
|
|
3
|
+
*
|
|
4
|
+
* Utility for building condensed conversation history from summaries and recent messages.
|
|
5
|
+
* Used to reduce token usage while maintaining context.
|
|
6
|
+
*
|
|
7
|
+
* @author MeasureOne
|
|
8
|
+
* @version 1.0.0
|
|
9
|
+
*/
|
|
10
|
+
import { ChatMessage } from "../schemas";
|
|
11
|
+
/**
|
|
12
|
+
* Build condensed conversation history from summaries and recent messages
|
|
13
|
+
*
|
|
14
|
+
* Structure:
|
|
15
|
+
* 1. Conversation summary (if available) - represents older history
|
|
16
|
+
* 2. Context summary (if available) - represents execution state
|
|
17
|
+
* 3. Last N recent messages (for immediate context)
|
|
18
|
+
* 4. Current context message (if provided)
|
|
19
|
+
*
|
|
20
|
+
* @param conversation_summary - LLM-generated summary of conversation messages
|
|
21
|
+
* @param context_summary - LLM-generated summary of execution context
|
|
22
|
+
* @param recent_messages - Last N messages for immediate context (default: last 3)
|
|
23
|
+
* @param current_context - Current context object (plan_id, current_step, tool_results, etc.)
|
|
24
|
+
* @returns Condensed conversation history as ChatMessage[]
|
|
25
|
+
*/
|
|
26
|
+
export declare function build_condensed_conversation(conversation_summary?: string | null, context_summary?: string | null, recent_messages?: ChatMessage[], current_context?: any): ChatMessage[];
|
|
27
|
+
/**
|
|
28
|
+
* Fallback: Build conversation from full message history if summaries are not available
|
|
29
|
+
* Used for backward compatibility when summaries haven't been generated yet
|
|
30
|
+
*
|
|
31
|
+
* @param all_messages - Full conversation message history
|
|
32
|
+
* @param current_context - Current context object
|
|
33
|
+
* @returns Full conversation history with context
|
|
34
|
+
*/
|
|
35
|
+
export declare function build_full_conversation(all_messages: ChatMessage[], current_context?: any): ChatMessage[];
|
|
36
|
+
//# sourceMappingURL=conversation-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-builder.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/conversation-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAKzC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CACxC,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,EACpC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,EAC/B,eAAe,GAAE,WAAW,EAAO,EACnC,eAAe,CAAC,EAAE,GAAG,GACtB,WAAW,EAAE,CAiEf;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACnC,YAAY,EAAE,WAAW,EAAE,EAC3B,eAAe,CAAC,EAAE,GAAG,GACtB,WAAW,EAAE,CAmCf"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Conversation Builder
|
|
4
|
+
*
|
|
5
|
+
* Utility for building condensed conversation history from summaries and recent messages.
|
|
6
|
+
* Used to reduce token usage while maintaining context.
|
|
7
|
+
*
|
|
8
|
+
* @author MeasureOne
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.build_condensed_conversation = build_condensed_conversation;
|
|
13
|
+
exports.build_full_conversation = build_full_conversation;
|
|
14
|
+
const logger_1 = require("./logger");
|
|
15
|
+
const logger = (0, logger_1.create_default_logger)("conversation-builder");
|
|
16
|
+
/**
|
|
17
|
+
* Build condensed conversation history from summaries and recent messages
|
|
18
|
+
*
|
|
19
|
+
* Structure:
|
|
20
|
+
* 1. Conversation summary (if available) - represents older history
|
|
21
|
+
* 2. Context summary (if available) - represents execution state
|
|
22
|
+
* 3. Last N recent messages (for immediate context)
|
|
23
|
+
* 4. Current context message (if provided)
|
|
24
|
+
*
|
|
25
|
+
* @param conversation_summary - LLM-generated summary of conversation messages
|
|
26
|
+
* @param context_summary - LLM-generated summary of execution context
|
|
27
|
+
* @param recent_messages - Last N messages for immediate context (default: last 3)
|
|
28
|
+
* @param current_context - Current context object (plan_id, current_step, tool_results, etc.)
|
|
29
|
+
* @returns Condensed conversation history as ChatMessage[]
|
|
30
|
+
*/
|
|
31
|
+
function build_condensed_conversation(conversation_summary, context_summary, recent_messages = [], current_context) {
|
|
32
|
+
const condensed = [];
|
|
33
|
+
// 1. Add conversation summary if available (represents older history)
|
|
34
|
+
// Format as plain text so the agent can understand it
|
|
35
|
+
if (conversation_summary && typeof conversation_summary === 'string' && conversation_summary.trim().length > 0) {
|
|
36
|
+
condensed.push({
|
|
37
|
+
role: 'user',
|
|
38
|
+
content: `[Conversation Summary]\n${conversation_summary}`
|
|
39
|
+
});
|
|
40
|
+
logger.debug('Added conversation summary to condensed conversation');
|
|
41
|
+
}
|
|
42
|
+
// 2. Add context summary if available (represents execution state)
|
|
43
|
+
// Format as plain text so the agent can understand it
|
|
44
|
+
if (context_summary && typeof context_summary === 'string' && context_summary.trim().length > 0) {
|
|
45
|
+
condensed.push({
|
|
46
|
+
role: 'user',
|
|
47
|
+
content: `[Context Summary]\n${context_summary}`
|
|
48
|
+
});
|
|
49
|
+
logger.debug('Added context summary to condensed conversation');
|
|
50
|
+
}
|
|
51
|
+
// 3. Add recent messages for immediate context (keep last 3 by default)
|
|
52
|
+
const messages_to_include = recent_messages.slice(-3);
|
|
53
|
+
if (messages_to_include.length > 0) {
|
|
54
|
+
condensed.push(...messages_to_include);
|
|
55
|
+
logger.debug(`Added ${messages_to_include.length} recent messages to condensed conversation`);
|
|
56
|
+
}
|
|
57
|
+
// 4. Add current context if provided
|
|
58
|
+
// Format as plain text so the agent can understand it
|
|
59
|
+
if (current_context && Object.keys(current_context).length > 0) {
|
|
60
|
+
// Format context as readable text, excluding sensitive information
|
|
61
|
+
const context_text = Object.entries(current_context)
|
|
62
|
+
.filter(([key]) => !['streaming_utils', 'socket'].includes(key)) // Exclude non-serializable objects
|
|
63
|
+
.map(([key, value]) => {
|
|
64
|
+
// Format value as readable text
|
|
65
|
+
if (typeof value === 'object' && value !== null) {
|
|
66
|
+
try {
|
|
67
|
+
return `${key}: ${JSON.stringify(value, null, 2)}`;
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return `${key}: [object]`;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return `${key}: ${value}`;
|
|
74
|
+
})
|
|
75
|
+
.join('\n');
|
|
76
|
+
condensed.push({
|
|
77
|
+
role: 'user',
|
|
78
|
+
content: `[Current Context]\n${context_text}`
|
|
79
|
+
});
|
|
80
|
+
logger.debug('Added current context to condensed conversation');
|
|
81
|
+
}
|
|
82
|
+
logger.info('Built condensed conversation', {
|
|
83
|
+
has_conversation_summary: !!conversation_summary,
|
|
84
|
+
has_context_summary: !!context_summary,
|
|
85
|
+
recent_messages_count: messages_to_include.length,
|
|
86
|
+
has_current_context: !!current_context,
|
|
87
|
+
total_messages: condensed.length
|
|
88
|
+
});
|
|
89
|
+
return condensed;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Fallback: Build conversation from full message history if summaries are not available
|
|
93
|
+
* Used for backward compatibility when summaries haven't been generated yet
|
|
94
|
+
*
|
|
95
|
+
* @param all_messages - Full conversation message history
|
|
96
|
+
* @param current_context - Current context object
|
|
97
|
+
* @returns Full conversation history with context
|
|
98
|
+
*/
|
|
99
|
+
function build_full_conversation(all_messages, current_context) {
|
|
100
|
+
const conversation = [...all_messages];
|
|
101
|
+
// Add current context if provided
|
|
102
|
+
// Format as plain text so the agent can understand it
|
|
103
|
+
if (current_context && Object.keys(current_context).length > 0) {
|
|
104
|
+
// Format context as readable text, excluding sensitive information
|
|
105
|
+
const context_text = Object.entries(current_context)
|
|
106
|
+
.filter(([key]) => !['streaming_utils', 'socket'].includes(key)) // Exclude non-serializable objects
|
|
107
|
+
.map(([key, value]) => {
|
|
108
|
+
// Format value as readable text
|
|
109
|
+
if (typeof value === 'object' && value !== null) {
|
|
110
|
+
try {
|
|
111
|
+
return `${key}: ${JSON.stringify(value, null, 2)}`;
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
return `${key}: [object]`;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return `${key}: ${value}`;
|
|
118
|
+
})
|
|
119
|
+
.join('\n');
|
|
120
|
+
conversation.push({
|
|
121
|
+
role: 'user',
|
|
122
|
+
content: `[Current Context]\n${context_text}`
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
logger.info('Built full conversation (fallback - no summaries available)', {
|
|
126
|
+
message_count: all_messages.length,
|
|
127
|
+
has_current_context: !!current_context,
|
|
128
|
+
total_messages: conversation.length
|
|
129
|
+
});
|
|
130
|
+
return conversation;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=conversation-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-builder.js","sourceRoot":"","sources":["../../../src/lib/utils/conversation-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Domain Matcher Utility
|
|
3
|
+
*
|
|
4
|
+
* Utility functions for domain matching and validation.
|
|
5
|
+
* Provides case-insensitive domain matching.
|
|
6
|
+
*
|
|
7
|
+
* @author MeasureOne
|
|
8
|
+
* @version 1.0.0
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Check if a domain exists in available_domains (case-insensitive)
|
|
12
|
+
* @param domain - The domain to check
|
|
13
|
+
* @param available_domains - Array of available domains
|
|
14
|
+
* @returns true if domain matches (case-insensitive), false otherwise
|
|
15
|
+
*/
|
|
16
|
+
export declare function is_domain_in_list(domain: string | null, available_domains: string[]): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Find the matching domain from available_domains (case-insensitive)
|
|
19
|
+
* Returns the original case from available_domains if found
|
|
20
|
+
* @param domain - The domain to find
|
|
21
|
+
* @param available_domains - Array of available domains
|
|
22
|
+
* @returns The matching domain with original case, or null if not found
|
|
23
|
+
*/
|
|
24
|
+
export declare function find_matching_domain(domain: string | null, available_domains: string[]): string | null;
|
|
25
|
+
//# sourceMappingURL=domain-matcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-matcher.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/domain-matcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,OAAO,CAO7F;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAQtG"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Domain Matcher Utility
|
|
4
|
+
*
|
|
5
|
+
* Utility functions for domain matching and validation.
|
|
6
|
+
* Provides case-insensitive domain matching.
|
|
7
|
+
*
|
|
8
|
+
* @author MeasureOne
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.is_domain_in_list = is_domain_in_list;
|
|
13
|
+
exports.find_matching_domain = find_matching_domain;
|
|
14
|
+
/**
|
|
15
|
+
* Check if a domain exists in available_domains (case-insensitive)
|
|
16
|
+
* @param domain - The domain to check
|
|
17
|
+
* @param available_domains - Array of available domains
|
|
18
|
+
* @returns true if domain matches (case-insensitive), false otherwise
|
|
19
|
+
*/
|
|
20
|
+
function is_domain_in_list(domain, available_domains) {
|
|
21
|
+
if (!domain || !Array.isArray(available_domains) || available_domains.length === 0) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
const normalized_domain = domain.trim().toLowerCase();
|
|
25
|
+
return available_domains.some(available => available.trim().toLowerCase() === normalized_domain);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Find the matching domain from available_domains (case-insensitive)
|
|
29
|
+
* Returns the original case from available_domains if found
|
|
30
|
+
* @param domain - The domain to find
|
|
31
|
+
* @param available_domains - Array of available domains
|
|
32
|
+
* @returns The matching domain with original case, or null if not found
|
|
33
|
+
*/
|
|
34
|
+
function find_matching_domain(domain, available_domains) {
|
|
35
|
+
if (!domain || !Array.isArray(available_domains) || available_domains.length === 0) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
const normalized_domain = domain.trim().toLowerCase();
|
|
39
|
+
const match = available_domains.find(available => available.trim().toLowerCase() === normalized_domain);
|
|
40
|
+
return match || null;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=domain-matcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-matcher.js","sourceRoot":"","sources":["../../../src/lib/utils/domain-matcher.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAQH,8CAOC;AASD,oDAQC;AA9BD;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,MAAqB,EAAE,iBAA2B;IAChF,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjF,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACtD,OAAO,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,iBAAiB,CAAC,CAAC;AACrG,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAC,MAAqB,EAAE,iBAA2B;IACnF,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACtD,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,iBAAiB,CAAC,CAAC;IACxG,OAAO,KAAK,IAAI,IAAI,CAAC;AACzB,CAAC"}
|