@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
package/README-SDK.md
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Savant Orchestration SDK
|
|
2
|
+
|
|
3
|
+
This package provides the Savant SDK for integrating with the Savant Orchestration service.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @measureoneinc/savant
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
### Import the SDK
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import { SavantSDK } from '@measureoneinc/savant';
|
|
17
|
+
// or
|
|
18
|
+
import { SavantSDK } from '@measureoneinc/savant/sdk';
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Import Types
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
import type {
|
|
25
|
+
ChatMessage,
|
|
26
|
+
Conversation,
|
|
27
|
+
Knowledge,
|
|
28
|
+
AgentRequest,
|
|
29
|
+
PlanDB,
|
|
30
|
+
PlanStepDB,
|
|
31
|
+
// ... and all other types
|
|
32
|
+
} from '@measureoneinc/savant';
|
|
33
|
+
// or
|
|
34
|
+
import type { ChatMessage, Conversation } from '@measureoneinc/savant/types';
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Basic Example
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
import { SavantSDK, StreamingUtils } from 'savant-orchestration-service';
|
|
41
|
+
import type { ChatMessage, Conversation } from 'savant-orchestration-service';
|
|
42
|
+
import { Request, Response } from 'express';
|
|
43
|
+
|
|
44
|
+
const sdk = new SavantSDK();
|
|
45
|
+
|
|
46
|
+
// Submit a message to a conversation
|
|
47
|
+
async function submitMessage(
|
|
48
|
+
req: Request,
|
|
49
|
+
res: Response,
|
|
50
|
+
conversation_id: string,
|
|
51
|
+
message: ChatMessage
|
|
52
|
+
) {
|
|
53
|
+
const streaming_utils = new StreamingUtils(res, req);
|
|
54
|
+
|
|
55
|
+
await sdk.submit_message(
|
|
56
|
+
{
|
|
57
|
+
agent_request_id: 'your-agent-request-id',
|
|
58
|
+
conversation_id,
|
|
59
|
+
message,
|
|
60
|
+
},
|
|
61
|
+
streaming_utils
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Upload a file
|
|
66
|
+
async function uploadFile(file: Express.Multer.File) {
|
|
67
|
+
const result = await sdk.upload_file(
|
|
68
|
+
file,
|
|
69
|
+
'your-application-id',
|
|
70
|
+
'your-requester-id'
|
|
71
|
+
);
|
|
72
|
+
return result.file_id;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Create knowledge from files
|
|
76
|
+
async function createKnowledge(fileIds: string[]) {
|
|
77
|
+
const result = await sdk.create_knowledge_from_files({
|
|
78
|
+
application_id: 'your-application-id',
|
|
79
|
+
requester_id: 'your-requester-id',
|
|
80
|
+
source_data: fileIds.map(id => ({ id })),
|
|
81
|
+
});
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Available Types
|
|
87
|
+
|
|
88
|
+
All types are exported from the main package or from `@measureoneinc/savant/types`:
|
|
89
|
+
|
|
90
|
+
- `ChatMessage` - Chat message structure
|
|
91
|
+
- `Conversation` - Conversation data structure
|
|
92
|
+
- `Knowledge` - Knowledge entry structure
|
|
93
|
+
- `AgentRequest` - Agent request structure
|
|
94
|
+
- `PlanDB`, `PlanStepDB` - Plan database types
|
|
95
|
+
- `AgentResponse`, `PlannerResponse`, `ExecutorResponse` - Agent response types
|
|
96
|
+
- And many more...
|
|
97
|
+
|
|
98
|
+
See `src/lib/schemas/index.ts` for the complete list of exported types.
|
|
99
|
+
|
|
100
|
+
## SDK Methods
|
|
101
|
+
|
|
102
|
+
### `submit_message(params, streaming_utils)`
|
|
103
|
+
|
|
104
|
+
Submits a message to a conversation and streams the response.
|
|
105
|
+
|
|
106
|
+
**Parameters:**
|
|
107
|
+
- `params`: Object containing:
|
|
108
|
+
- `agent_request_id`: string
|
|
109
|
+
- `conversation_id`: string
|
|
110
|
+
- `message`: ChatMessage
|
|
111
|
+
- `step_id?`: string (optional)
|
|
112
|
+
- `streaming_utils`: StreamingUtils instance
|
|
113
|
+
|
|
114
|
+
**Returns:** Promise<void>
|
|
115
|
+
|
|
116
|
+
### `upload_file(file, application_id, requester_id)`
|
|
117
|
+
|
|
118
|
+
Uploads a file and returns its ID.
|
|
119
|
+
|
|
120
|
+
**Parameters:**
|
|
121
|
+
- `file`: Express.Multer.File
|
|
122
|
+
- `application_id`: string
|
|
123
|
+
- `requester_id`: string
|
|
124
|
+
|
|
125
|
+
**Returns:** Promise<{ file_id: string }>
|
|
126
|
+
|
|
127
|
+
### `create_knowledge_from_files(params)`
|
|
128
|
+
|
|
129
|
+
Creates a new knowledge entry from a set of file IDs.
|
|
130
|
+
|
|
131
|
+
**Parameters:**
|
|
132
|
+
- `params`: Object containing:
|
|
133
|
+
- `application_id`: string
|
|
134
|
+
- `requester_id`: string
|
|
135
|
+
- `source_data`: Array<{ id: string }>
|
|
136
|
+
- `metadata?`: any (optional)
|
|
137
|
+
- `delivery_details?`: any (optional)
|
|
138
|
+
|
|
139
|
+
**Returns:** Promise<{ id: string; embeddings_created: number }>
|
|
140
|
+
|
|
141
|
+
## TypeScript Support
|
|
142
|
+
|
|
143
|
+
This package includes full TypeScript type definitions. All types are exported and can be imported as shown above.
|
|
144
|
+
|
|
145
|
+
## License
|
|
146
|
+
|
|
147
|
+
MIT
|
|
148
|
+
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Domain Identifier Agent
|
|
3
|
+
*
|
|
4
|
+
* Agent for identifying domain from seed content using AI.
|
|
5
|
+
* Extends DynamicAgent for consistency with other AI interactions.
|
|
6
|
+
*
|
|
7
|
+
* @author MeasureOne
|
|
8
|
+
* @version 1.0.0
|
|
9
|
+
*/
|
|
10
|
+
import { GoogleGenAI } from "@google/genai";
|
|
11
|
+
import { DynamicAgent } from "./dynamic-agent";
|
|
12
|
+
/**
|
|
13
|
+
* Domain Identifier Agent - Identifies domain from seed content
|
|
14
|
+
*
|
|
15
|
+
* Responsibilities:
|
|
16
|
+
* - Analyze seed content and identify the most appropriate domain
|
|
17
|
+
* - Return domain name or null if cannot identify
|
|
18
|
+
* - Maintain consistency with other agent-based AI interactions
|
|
19
|
+
*/
|
|
20
|
+
export declare class DomainIdentifierAgent extends DynamicAgent {
|
|
21
|
+
constructor(gemini_client: GoogleGenAI, model?: string);
|
|
22
|
+
/**
|
|
23
|
+
* Identify domain from seed content
|
|
24
|
+
*
|
|
25
|
+
* @param content - The seed content to analyze
|
|
26
|
+
* @returns Promise resolving to identified domain string or null if identification fails
|
|
27
|
+
*/
|
|
28
|
+
identify_domain(content: string): Promise<string | null>;
|
|
29
|
+
/**
|
|
30
|
+
* Extract structured response from agent execution result
|
|
31
|
+
*/
|
|
32
|
+
private extract_structured_response;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=domain-identifier.agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-identifier.agent.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/domain-identifier.agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAe/C;;;;;;;GAOG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;gBAE/C,aAAa,EAAE,WAAW,EAC1B,KAAK,GAAE,MAA2B;IAsBtC;;;;;OAKG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA4G9D;;OAEG;IACH,OAAO,CAAC,2BAA2B;CAkCtC"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Domain Identifier Agent
|
|
4
|
+
*
|
|
5
|
+
* Agent for identifying domain from seed content using AI.
|
|
6
|
+
* Extends DynamicAgent for consistency with other AI interactions.
|
|
7
|
+
*
|
|
8
|
+
* @author MeasureOne
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.DomainIdentifierAgent = void 0;
|
|
13
|
+
const dynamic_agent_1 = require("./dynamic-agent");
|
|
14
|
+
const domain_identifier_instructions_1 = require("../instructions/domain-identifier.instructions");
|
|
15
|
+
const logger_1 = require("../../lib/utils/logger");
|
|
16
|
+
const schemas_1 = require("../../lib/schemas");
|
|
17
|
+
const response_parser_1 = require("./response-parser");
|
|
18
|
+
const zod_to_json_schema_1 = require("../../lib/utils/zod-to-json-schema");
|
|
19
|
+
const logger = (0, logger_1.create_default_logger)("domain-identifier-agent");
|
|
20
|
+
/**
|
|
21
|
+
* Domain Identifier Agent - Identifies domain from seed content
|
|
22
|
+
*
|
|
23
|
+
* Responsibilities:
|
|
24
|
+
* - Analyze seed content and identify the most appropriate domain
|
|
25
|
+
* - Return domain name or null if cannot identify
|
|
26
|
+
* - Maintain consistency with other agent-based AI interactions
|
|
27
|
+
*/
|
|
28
|
+
class DomainIdentifierAgent extends dynamic_agent_1.DynamicAgent {
|
|
29
|
+
constructor(gemini_client, model = "gemini-2.5-flash") {
|
|
30
|
+
super(gemini_client, [], // No MCP servers needed
|
|
31
|
+
"DomainIdentifierAgent", domain_identifier_instructions_1.DOMAIN_IDENTIFIER_INSTRUCTIONS, [], // No tools needed
|
|
32
|
+
model, schemas_1.DomainIdentifierResponseSchema, // Pass the Zod schema for structured validation
|
|
33
|
+
undefined, // No conversation summary needed
|
|
34
|
+
undefined, // No context summary needed
|
|
35
|
+
[], // No recent messages needed
|
|
36
|
+
undefined // No current context needed
|
|
37
|
+
);
|
|
38
|
+
logger.info("DomainIdentifierAgent initialized", {
|
|
39
|
+
model,
|
|
40
|
+
has_schema: true
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Identify domain from seed content
|
|
45
|
+
*
|
|
46
|
+
* @param content - The seed content to analyze
|
|
47
|
+
* @returns Promise resolving to identified domain string or null if identification fails
|
|
48
|
+
*/
|
|
49
|
+
async identify_domain(content) {
|
|
50
|
+
try {
|
|
51
|
+
if (!content || content.trim().length === 0) {
|
|
52
|
+
logger.warn('Empty content provided for domain identification');
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
logger.debug('Identifying domain from content', {
|
|
56
|
+
content_length: content.length,
|
|
57
|
+
content_preview: content.substring(0, 200)
|
|
58
|
+
});
|
|
59
|
+
// Extract first 2000 characters for domain identification (title and initial content are most important)
|
|
60
|
+
const content_preview = content.length > 2000
|
|
61
|
+
? content.substring(0, 2000) + '\n\n[... content truncated for domain identification ...]'
|
|
62
|
+
: content;
|
|
63
|
+
// Create a simple conversation with the content
|
|
64
|
+
const conversation = [
|
|
65
|
+
{
|
|
66
|
+
role: 'user',
|
|
67
|
+
content: `Analyze the following seed content and identify the domain type. Pay special attention to:
|
|
68
|
+
1. The title and headers (they often contain explicit domain indicators)
|
|
69
|
+
2. The primary operations described
|
|
70
|
+
3. The tools and methods mentioned
|
|
71
|
+
|
|
72
|
+
Content to analyze:
|
|
73
|
+
${content_preview}`
|
|
74
|
+
}
|
|
75
|
+
];
|
|
76
|
+
// Create chat instance for this one-off call (DomainIdentifierAgent doesn't use conversation service)
|
|
77
|
+
// Convert ConversationItem[] to Content[] format for chat instance
|
|
78
|
+
const ai_history = conversation.map((msg) => {
|
|
79
|
+
const role = msg.role === 'model' ? 'model' : 'user';
|
|
80
|
+
const content_text = typeof msg.content === 'string' ? msg.content : JSON.stringify(msg.content);
|
|
81
|
+
return { role: role, parts: [{ text: content_text }] };
|
|
82
|
+
});
|
|
83
|
+
// Create chat instance with the conversation
|
|
84
|
+
// Note: We need to set up the response schema in the chat config
|
|
85
|
+
const response_schema = this.response_schema
|
|
86
|
+
? (0, zod_to_json_schema_1.convertZodToJsonSchema)(this.response_schema, "domain_identifier_response")
|
|
87
|
+
: undefined;
|
|
88
|
+
this.chat_instance = this.client.chats.create({
|
|
89
|
+
model: this.model,
|
|
90
|
+
history: ai_history,
|
|
91
|
+
config: {
|
|
92
|
+
systemInstruction: this.system_prompt,
|
|
93
|
+
...(response_schema && {
|
|
94
|
+
responseSchema: response_schema,
|
|
95
|
+
responseMimeType: 'application/json'
|
|
96
|
+
})
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
logger.debug('Created chat instance for domain identification', {
|
|
100
|
+
history_length: ai_history.length,
|
|
101
|
+
has_schema: !!response_schema
|
|
102
|
+
});
|
|
103
|
+
// Execute the agent using execute_single_attempt
|
|
104
|
+
const result = await this.execute_single_attempt(conversation, false);
|
|
105
|
+
logger.debug('Domain agent execution completed', {
|
|
106
|
+
has_result: !!result,
|
|
107
|
+
has_text: !!result?.text,
|
|
108
|
+
text_preview: result?.text?.substring(0, 200)
|
|
109
|
+
});
|
|
110
|
+
// Extract structured response from result
|
|
111
|
+
const response = this.extract_structured_response(result);
|
|
112
|
+
if (!response) {
|
|
113
|
+
logger.warn('No structured response from domain identifier agent', {
|
|
114
|
+
result_text_preview: result?.text?.substring(0, 300)
|
|
115
|
+
});
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
const domain_response = response;
|
|
119
|
+
const domain = domain_response.domain;
|
|
120
|
+
if (!domain || domain === 'null' || domain.trim().length === 0) {
|
|
121
|
+
logger.info('Domain identifier returned null', { response: domain_response });
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
// Clean up domain name (remove punctuation, normalize)
|
|
125
|
+
const clean_domain = domain.trim().toLowerCase().replace(/[^\w-]/g, '');
|
|
126
|
+
if (!clean_domain || clean_domain.length === 0) {
|
|
127
|
+
logger.warn('Could not extract valid domain from response', { domain_response });
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
logger.info('Domain identified', { domain: clean_domain, original_response: domain });
|
|
131
|
+
return clean_domain;
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
logger.error('Failed to identify domain from content via AI agent', {
|
|
135
|
+
error: error instanceof Error ? error.message : String(error),
|
|
136
|
+
error_stack: error instanceof Error ? error.stack : undefined
|
|
137
|
+
});
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Extract structured response from agent execution result
|
|
143
|
+
*/
|
|
144
|
+
extract_structured_response(result) {
|
|
145
|
+
try {
|
|
146
|
+
// DynamicAgent returns GenerateContentResponse with structured output in text property
|
|
147
|
+
if (!result?.text) {
|
|
148
|
+
logger.warn('No text in agent response', { result });
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
const text = result.text;
|
|
152
|
+
logger.debug('Extracting structured response from text', {
|
|
153
|
+
text_length: text.length,
|
|
154
|
+
text_preview: text.substring(0, 200)
|
|
155
|
+
});
|
|
156
|
+
// Use parse_agent_response utility which handles markdown code blocks and edge cases
|
|
157
|
+
const parsed = (0, response_parser_1.parse_agent_response)(text);
|
|
158
|
+
// Validate against schema
|
|
159
|
+
const validated = schemas_1.DomainIdentifierResponseSchema.parse(parsed);
|
|
160
|
+
logger.debug('Successfully extracted and validated domain response', {
|
|
161
|
+
domain: validated.domain,
|
|
162
|
+
agent_kind: validated.agent_kind
|
|
163
|
+
});
|
|
164
|
+
return validated;
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
logger.error('Failed to extract structured response', {
|
|
168
|
+
error: error instanceof Error ? error.message : String(error),
|
|
169
|
+
result_preview: result?.text?.substring(0, 200)
|
|
170
|
+
});
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
exports.DomainIdentifierAgent = DomainIdentifierAgent;
|
|
176
|
+
//# sourceMappingURL=domain-identifier.agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-identifier.agent.js","sourceRoot":"","sources":["../../../src/ai/agents/domain-identifier.agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Dynamic Agent - Chat Completions Implementation
|
|
3
|
+
*
|
|
4
|
+
* This module provides a streamlined agent implementation using OpenAI chat completions
|
|
5
|
+
* instead of the agent framework for faster execution without handoffs.
|
|
6
|
+
*
|
|
7
|
+
* Key Features:
|
|
8
|
+
* - Direct OpenAI chat completions API usage
|
|
9
|
+
* - MCP server str
|
|
10
|
+
* - Streaming support
|
|
11
|
+
* - Retry mechanisms
|
|
12
|
+
* - Type-safe agent responses
|
|
13
|
+
*
|
|
14
|
+
* @author MeasureOne
|
|
15
|
+
* @version 2.0.0
|
|
16
|
+
*/
|
|
17
|
+
import { GoogleGenAI, GenerateContentResponse } from "@google/genai";
|
|
18
|
+
import { AgentResponse } from "../../lib/schemas";
|
|
19
|
+
import { z } from "zod";
|
|
20
|
+
import { ChatMessage } from "../../lib/schemas";
|
|
21
|
+
import { Logger } from "../../lib/utils/logger";
|
|
22
|
+
import { StreamingUtils } from "../../lib/streaming-utils";
|
|
23
|
+
import { CallGeminiOnceOptions, HistoryStrategy } from "../../lib/schemas/ai-responses.schema";
|
|
24
|
+
export type CallGeminiOnceResult = GenerateContentResponse;
|
|
25
|
+
/**
|
|
26
|
+
* Default execution options for agents.
|
|
27
|
+
*
|
|
28
|
+
* max_attempts: Number of times to retry if ENTIRE execution crashes (catastrophic failures)
|
|
29
|
+
* retry_delay_ms: Delay between retry attempts
|
|
30
|
+
* streaming: Enable real-time NDJSON streaming
|
|
31
|
+
*
|
|
32
|
+
* Note: max_iterations (inside execute_single_attempt) controls the OpenAI tool calling loop
|
|
33
|
+
*/
|
|
34
|
+
export declare const DEFAULT_AGENT_OPTIONS: {
|
|
35
|
+
max_attempts: number;
|
|
36
|
+
retry_delay_ms: number;
|
|
37
|
+
streaming: boolean;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Dynamic Agent class - streamlined implementation using Google Gemini Chat API.
|
|
41
|
+
* Provides common functionality and execution patterns without agent framework overhead.
|
|
42
|
+
*/
|
|
43
|
+
export declare class DynamicAgent {
|
|
44
|
+
protected client: GoogleGenAI;
|
|
45
|
+
protected mcp_servers: any[];
|
|
46
|
+
private debug_logged;
|
|
47
|
+
protected verbose_reasoning: boolean;
|
|
48
|
+
protected logger: Logger;
|
|
49
|
+
protected response_schema?: z.ZodType<AgentResponse>;
|
|
50
|
+
name: string;
|
|
51
|
+
instructions: string;
|
|
52
|
+
model: string;
|
|
53
|
+
protected system_prompt: string;
|
|
54
|
+
protected chat_instance: any;
|
|
55
|
+
/**
|
|
56
|
+
* Creates a new dynamic agent instance.
|
|
57
|
+
*
|
|
58
|
+
* @param client - Google Gemini client instance
|
|
59
|
+
* @param mcp_servers - Array of MCP server instances
|
|
60
|
+
* @param agent_name - Name of the agent for identification
|
|
61
|
+
* @param instructions - Agent instructions for behavior
|
|
62
|
+
* @param tools - Array of tools available to the agent
|
|
63
|
+
* @param model - Model to use (e.g., "gemini-2.5-flash", "gemini-2.5-flash")
|
|
64
|
+
* @param response_schema - Optional Zod schema for structured response validation
|
|
65
|
+
* @param conversation_summary - Optional LLM-generated summary of conversation messages
|
|
66
|
+
* @param context_summary - Optional LLM-generated summary of execution context
|
|
67
|
+
* @param recent_messages - Optional recent messages for immediate context (last 3 messages)
|
|
68
|
+
* @param current_context - Optional current context object (plan_id, current_step, tool_results, etc.)
|
|
69
|
+
*/
|
|
70
|
+
constructor(client: GoogleGenAI, mcp_servers: any[] | undefined, agent_name: string, instructions: string, tools?: any[], model?: string, response_schema?: z.ZodType<AgentResponse>, conversation_summary?: string | null, context_summary?: string | null, recent_messages?: ChatMessage[], current_context?: any, history_strategy?: HistoryStrategy);
|
|
71
|
+
/**
|
|
72
|
+
* Executes the agent with a single attempt using Google Gemini Chat API.
|
|
73
|
+
*
|
|
74
|
+
* @param input - Input data for the agent (conversation history)
|
|
75
|
+
* @param streaming - Whether to use streaming output
|
|
76
|
+
* @param streaming_utils - Optional callback function for streaming chunks
|
|
77
|
+
* @returns Promise<GenerateContentResponse> - Gemini SDK response (contains AgentResponse in text property)
|
|
78
|
+
*/
|
|
79
|
+
execute_single_attempt(input: ChatMessage[], streaming?: boolean, streaming_utils?: StreamingUtils): Promise<GenerateContentResponse>;
|
|
80
|
+
/**
|
|
81
|
+
* Executes the agent with retry mechanism for improved reliability.
|
|
82
|
+
* SIMPLIFIED: Just retries on exceptions, returns raw Gemini Response.
|
|
83
|
+
* All response handling is done by the service layer.
|
|
84
|
+
*
|
|
85
|
+
* @param input - Input data for the agent (conversation history)
|
|
86
|
+
* @param options - Execution options
|
|
87
|
+
* @param streaming_utils - Optional callback function for streaming chunks
|
|
88
|
+
* @returns Promise<GenerateContentResponse> - Raw AI Response (contains AgentResponse in output_text)
|
|
89
|
+
*/
|
|
90
|
+
execute_with_retries(input: ChatMessage[], options: {}, streaming_utils?: StreamingUtils): Promise<GenerateContentResponse>;
|
|
91
|
+
/**
|
|
92
|
+
* Utility method to create a delay.
|
|
93
|
+
*
|
|
94
|
+
* @param ms - Delay duration in milliseconds
|
|
95
|
+
*/
|
|
96
|
+
private delay;
|
|
97
|
+
/**
|
|
98
|
+
* Gets the MCP servers used by this agent.
|
|
99
|
+
*
|
|
100
|
+
* @returns Array of MCP servers
|
|
101
|
+
*/
|
|
102
|
+
get_mcp_servers(): any[];
|
|
103
|
+
call_gemini_once(client: GoogleGenAI, options: CallGeminiOnceOptions): Promise<CallGeminiOnceResult>;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=dynamic-agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic-agent.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/dynamic-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,WAAW,EAAmD,uBAAuB,EAAkD,MAAM,eAAe,CAAC;AACtK,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAmB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAShD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAO3D,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAO/F,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAI3D;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAIrG,CAAC;AAEF;;;GAGG;AACH,qBAAa,YAAY;IACxB,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAS,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,YAAY,CAAU;IAC9B,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC;IAGrC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAG9C,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC;IAG7B;;;;;;;;;;;;;;OAcG;gBAEF,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,GAAG,EAAE,YAAK,EACvB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,GAAG,EAAO,EACjB,KAAK,GAAE,MAA2B,EAClC,eAAe,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAC1C,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,EACpC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,EAC/B,eAAe,CAAC,EAAE,WAAW,EAAE,EAC/B,eAAe,CAAC,EAAE,GAAG,EACrB,gBAAgB,GAAE,eAA2B;IA0E9C;;;;;;;OAOG;IACU,sBAAsB,CAClC,KAAK,EAAE,WAAW,EAAE,EACpB,SAAS,GAAE,OAAc,EACzB,eAAe,CAAC,EAAE,cAAc,GAC9B,OAAO,CAAC,uBAAuB,CAAC;IAmEnC;;;;;;;;;OASG;IACU,oBAAoB,CAChC,KAAK,EAAE,WAAW,EAAE,EACpB,OAAO,EAAE,EAAE,EACX,eAAe,CAAC,EAAE,cAAc,GAC9B,OAAO,CAAC,uBAAuB,CAAC;IAuDnC;;;;OAIG;IACH,OAAO,CAAC,KAAK;IAIb;;;;OAIG;IACI,eAAe,IAAI,GAAG,EAAE;IAUzB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAgT1G"}
|