@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.
Files changed (398) hide show
  1. package/README-SDK.md +148 -0
  2. package/dist/ai/agents/domain-identifier.agent.d.ts +34 -0
  3. package/dist/ai/agents/domain-identifier.agent.d.ts.map +1 -0
  4. package/dist/ai/agents/domain-identifier.agent.js +176 -0
  5. package/dist/ai/agents/domain-identifier.agent.js.map +1 -0
  6. package/dist/ai/agents/dynamic-agent.d.ts +105 -0
  7. package/dist/ai/agents/dynamic-agent.d.ts.map +1 -0
  8. package/dist/ai/agents/dynamic-agent.js +505 -0
  9. package/dist/ai/agents/dynamic-agent.js.map +1 -0
  10. package/dist/ai/agents/executor.agent.d.ts +25 -0
  11. package/dist/ai/agents/executor.agent.d.ts.map +1 -0
  12. package/dist/ai/agents/executor.agent.js +44 -0
  13. package/dist/ai/agents/executor.agent.js.map +1 -0
  14. package/dist/ai/agents/index.d.ts +17 -0
  15. package/dist/ai/agents/index.d.ts.map +1 -0
  16. package/dist/ai/agents/index.js +29 -0
  17. package/dist/ai/agents/index.js.map +1 -0
  18. package/dist/ai/agents/knowledge.agent.d.ts +25 -0
  19. package/dist/ai/agents/knowledge.agent.d.ts.map +1 -0
  20. package/dist/ai/agents/knowledge.agent.js +42 -0
  21. package/dist/ai/agents/knowledge.agent.js.map +1 -0
  22. package/dist/ai/agents/learning.agent.d.ts +63 -0
  23. package/dist/ai/agents/learning.agent.d.ts.map +1 -0
  24. package/dist/ai/agents/learning.agent.js +288 -0
  25. package/dist/ai/agents/learning.agent.js.map +1 -0
  26. package/dist/ai/agents/orchestrator.agent.d.ts +26 -0
  27. package/dist/ai/agents/orchestrator.agent.d.ts.map +1 -0
  28. package/dist/ai/agents/orchestrator.agent.js +42 -0
  29. package/dist/ai/agents/orchestrator.agent.js.map +1 -0
  30. package/dist/ai/agents/planner.agent.d.ts +25 -0
  31. package/dist/ai/agents/planner.agent.d.ts.map +1 -0
  32. package/dist/ai/agents/planner.agent.js +36 -0
  33. package/dist/ai/agents/planner.agent.js.map +1 -0
  34. package/dist/ai/agents/response-parser.d.ts +23 -0
  35. package/dist/ai/agents/response-parser.d.ts.map +1 -0
  36. package/dist/ai/agents/response-parser.js +313 -0
  37. package/dist/ai/agents/response-parser.js.map +1 -0
  38. package/dist/ai/agents/summarizer.agent.d.ts +38 -0
  39. package/dist/ai/agents/summarizer.agent.d.ts.map +1 -0
  40. package/dist/ai/agents/summarizer.agent.js +245 -0
  41. package/dist/ai/agents/summarizer.agent.js.map +1 -0
  42. package/dist/ai/instructions/domain-identifier.instructions.d.ts +10 -0
  43. package/dist/ai/instructions/domain-identifier.instructions.d.ts.map +1 -0
  44. package/dist/ai/instructions/domain-identifier.instructions.js +63 -0
  45. package/dist/ai/instructions/domain-identifier.instructions.js.map +1 -0
  46. package/dist/ai/instructions/executor.instructions.d.ts +11 -0
  47. package/dist/ai/instructions/executor.instructions.d.ts.map +1 -0
  48. package/dist/ai/instructions/executor.instructions.js +218 -0
  49. package/dist/ai/instructions/executor.instructions.js.map +1 -0
  50. package/dist/ai/instructions/knowledge.instructions.d.ts +11 -0
  51. package/dist/ai/instructions/knowledge.instructions.d.ts.map +1 -0
  52. package/dist/ai/instructions/knowledge.instructions.js +145 -0
  53. package/dist/ai/instructions/knowledge.instructions.js.map +1 -0
  54. package/dist/ai/instructions/learning.instructions.d.ts +11 -0
  55. package/dist/ai/instructions/learning.instructions.d.ts.map +1 -0
  56. package/dist/ai/instructions/learning.instructions.js +226 -0
  57. package/dist/ai/instructions/learning.instructions.js.map +1 -0
  58. package/dist/ai/instructions/orchestrator.instructions.d.ts +11 -0
  59. package/dist/ai/instructions/orchestrator.instructions.d.ts.map +1 -0
  60. package/dist/ai/instructions/orchestrator.instructions.js +148 -0
  61. package/dist/ai/instructions/orchestrator.instructions.js.map +1 -0
  62. package/dist/ai/instructions/planner.instructions.d.ts +12 -0
  63. package/dist/ai/instructions/planner.instructions.d.ts.map +1 -0
  64. package/dist/ai/instructions/planner.instructions.js +129 -0
  65. package/dist/ai/instructions/planner.instructions.js.map +1 -0
  66. package/dist/ai/instructions/summarizer.instructions.d.ts +11 -0
  67. package/dist/ai/instructions/summarizer.instructions.d.ts.map +1 -0
  68. package/dist/ai/instructions/summarizer.instructions.js +84 -0
  69. package/dist/ai/instructions/summarizer.instructions.js.map +1 -0
  70. package/dist/ai/learning/execution-learner.d.ts +79 -0
  71. package/dist/ai/learning/execution-learner.d.ts.map +1 -0
  72. package/dist/ai/learning/execution-learner.js +536 -0
  73. package/dist/ai/learning/execution-learner.js.map +1 -0
  74. package/dist/ai/response_handlers/base-handler.d.ts +73 -0
  75. package/dist/ai/response_handlers/base-handler.d.ts.map +1 -0
  76. package/dist/ai/response_handlers/base-handler.js +153 -0
  77. package/dist/ai/response_handlers/base-handler.js.map +1 -0
  78. package/dist/ai/response_handlers/direct-response-handler.d.ts +18 -0
  79. package/dist/ai/response_handlers/direct-response-handler.d.ts.map +1 -0
  80. package/dist/ai/response_handlers/direct-response-handler.js +86 -0
  81. package/dist/ai/response_handlers/direct-response-handler.js.map +1 -0
  82. package/dist/ai/response_handlers/error-handler.d.ts +13 -0
  83. package/dist/ai/response_handlers/error-handler.d.ts.map +1 -0
  84. package/dist/ai/response_handlers/error-handler.js +72 -0
  85. package/dist/ai/response_handlers/error-handler.js.map +1 -0
  86. package/dist/ai/response_handlers/handler-registry.d.ts +51 -0
  87. package/dist/ai/response_handlers/handler-registry.d.ts.map +1 -0
  88. package/dist/ai/response_handlers/handler-registry.js +268 -0
  89. package/dist/ai/response_handlers/handler-registry.js.map +1 -0
  90. package/dist/ai/response_handlers/index.d.ts +16 -0
  91. package/dist/ai/response_handlers/index.d.ts.map +1 -0
  92. package/dist/ai/response_handlers/index.js +29 -0
  93. package/dist/ai/response_handlers/index.js.map +1 -0
  94. package/dist/ai/response_handlers/message-handler.d.ts +23 -0
  95. package/dist/ai/response_handlers/message-handler.d.ts.map +1 -0
  96. package/dist/ai/response_handlers/message-handler.js +193 -0
  97. package/dist/ai/response_handlers/message-handler.js.map +1 -0
  98. package/dist/ai/response_handlers/plan-ready-handler.d.ts +26 -0
  99. package/dist/ai/response_handlers/plan-ready-handler.d.ts.map +1 -0
  100. package/dist/ai/response_handlers/plan-ready-handler.js +394 -0
  101. package/dist/ai/response_handlers/plan-ready-handler.js.map +1 -0
  102. package/dist/ai/response_handlers/request-input-handler.d.ts +14 -0
  103. package/dist/ai/response_handlers/request-input-handler.d.ts.map +1 -0
  104. package/dist/ai/response_handlers/request-input-handler.js +87 -0
  105. package/dist/ai/response_handlers/request-input-handler.js.map +1 -0
  106. package/dist/ai/response_handlers/request-plan-handler.d.ts +18 -0
  107. package/dist/ai/response_handlers/request-plan-handler.d.ts.map +1 -0
  108. package/dist/ai/response_handlers/request-plan-handler.js +143 -0
  109. package/dist/ai/response_handlers/request-plan-handler.js.map +1 -0
  110. package/dist/ai/response_handlers/step-complete-handler.d.ts +22 -0
  111. package/dist/ai/response_handlers/step-complete-handler.d.ts.map +1 -0
  112. package/dist/ai/response_handlers/step-complete-handler.js +307 -0
  113. package/dist/ai/response_handlers/step-complete-handler.js.map +1 -0
  114. package/dist/ai/response_handlers/unknown-handler.d.ts +12 -0
  115. package/dist/ai/response_handlers/unknown-handler.d.ts.map +1 -0
  116. package/dist/ai/response_handlers/unknown-handler.js +27 -0
  117. package/dist/ai/response_handlers/unknown-handler.js.map +1 -0
  118. package/dist/ai/response_handlers/user-input-handler.d.ts +20 -0
  119. package/dist/ai/response_handlers/user-input-handler.d.ts.map +1 -0
  120. package/dist/ai/response_handlers/user-input-handler.js +69 -0
  121. package/dist/ai/response_handlers/user-input-handler.js.map +1 -0
  122. package/dist/ai/tools/log-step.d.ts +29 -0
  123. package/dist/ai/tools/log-step.d.ts.map +1 -0
  124. package/dist/ai/tools/log-step.js +47 -0
  125. package/dist/ai/tools/log-step.js.map +1 -0
  126. package/dist/app.d.ts +15 -0
  127. package/dist/app.d.ts.map +1 -0
  128. package/dist/app.js +223 -0
  129. package/dist/app.js.map +1 -0
  130. package/dist/config/environment/local.d.ts +12 -0
  131. package/dist/config/environment/local.d.ts.map +1 -0
  132. package/dist/config/environment/local.js +124 -0
  133. package/dist/config/environment/local.js.map +1 -0
  134. package/dist/config/environment/production.d.ts +7 -0
  135. package/dist/config/environment/production.d.ts.map +1 -0
  136. package/dist/config/environment/production.js +105 -0
  137. package/dist/config/environment/production.js.map +1 -0
  138. package/dist/config/environment/test.d.ts +7 -0
  139. package/dist/config/environment/test.d.ts.map +1 -0
  140. package/dist/config/environment/test.js +97 -0
  141. package/dist/config/environment/test.js.map +1 -0
  142. package/dist/config/index.d.ts +219 -0
  143. package/dist/config/index.d.ts.map +1 -0
  144. package/dist/config/index.js +360 -0
  145. package/dist/config/index.js.map +1 -0
  146. package/dist/controllers/agent_request.controller.d.ts +43 -0
  147. package/dist/controllers/agent_request.controller.d.ts.map +1 -0
  148. package/dist/controllers/agent_request.controller.js +141 -0
  149. package/dist/controllers/agent_request.controller.js.map +1 -0
  150. package/dist/controllers/base.controller.d.ts +208 -0
  151. package/dist/controllers/base.controller.d.ts.map +1 -0
  152. package/dist/controllers/base.controller.js +378 -0
  153. package/dist/controllers/base.controller.js.map +1 -0
  154. package/dist/controllers/conversations.controller.d.ts +31 -0
  155. package/dist/controllers/conversations.controller.d.ts.map +1 -0
  156. package/dist/controllers/conversations.controller.js +138 -0
  157. package/dist/controllers/conversations.controller.js.map +1 -0
  158. package/dist/controllers/knowledge.controller.d.ts +63 -0
  159. package/dist/controllers/knowledge.controller.d.ts.map +1 -0
  160. package/dist/controllers/knowledge.controller.js +311 -0
  161. package/dist/controllers/knowledge.controller.js.map +1 -0
  162. package/dist/controllers/mcp.controller.d.ts +25 -0
  163. package/dist/controllers/mcp.controller.d.ts.map +1 -0
  164. package/dist/controllers/mcp.controller.js +93 -0
  165. package/dist/controllers/mcp.controller.js.map +1 -0
  166. package/dist/index.d.ts +12 -0
  167. package/dist/index.d.ts.map +1 -0
  168. package/dist/index.js +25 -0
  169. package/dist/index.js.map +1 -0
  170. package/dist/lib/app-constants.d.ts +231 -0
  171. package/dist/lib/app-constants.d.ts.map +1 -0
  172. package/dist/lib/app-constants.js +240 -0
  173. package/dist/lib/app-constants.js.map +1 -0
  174. package/dist/lib/controller-utils.d.ts +48 -0
  175. package/dist/lib/controller-utils.d.ts.map +1 -0
  176. package/dist/lib/controller-utils.js +70 -0
  177. package/dist/lib/controller-utils.js.map +1 -0
  178. package/dist/lib/exceptions/app-exceptions.d.ts +158 -0
  179. package/dist/lib/exceptions/app-exceptions.d.ts.map +1 -0
  180. package/dist/lib/exceptions/app-exceptions.js +287 -0
  181. package/dist/lib/exceptions/app-exceptions.js.map +1 -0
  182. package/dist/lib/middleware/upload.middleware.d.ts +13 -0
  183. package/dist/lib/middleware/upload.middleware.d.ts.map +1 -0
  184. package/dist/lib/middleware/upload.middleware.js +35 -0
  185. package/dist/lib/middleware/upload.middleware.js.map +1 -0
  186. package/dist/lib/middleware/validation.middleware.d.ts +29 -0
  187. package/dist/lib/middleware/validation.middleware.d.ts.map +1 -0
  188. package/dist/lib/middleware/validation.middleware.js +219 -0
  189. package/dist/lib/middleware/validation.middleware.js.map +1 -0
  190. package/dist/lib/model/validation-schema/submit-message.schema.d.ts +3 -0
  191. package/dist/lib/model/validation-schema/submit-message.schema.d.ts.map +1 -0
  192. package/dist/lib/model/validation-schema/submit-message.schema.js +40 -0
  193. package/dist/lib/model/validation-schema/submit-message.schema.js.map +1 -0
  194. package/dist/lib/model/validation-schema/update-knowledge.schema.d.ts +3 -0
  195. package/dist/lib/model/validation-schema/update-knowledge.schema.d.ts.map +1 -0
  196. package/dist/lib/model/validation-schema/update-knowledge.schema.js +35 -0
  197. package/dist/lib/model/validation-schema/update-knowledge.schema.js.map +1 -0
  198. package/dist/lib/open-ai-event-processor.d.ts +101 -0
  199. package/dist/lib/open-ai-event-processor.d.ts.map +1 -0
  200. package/dist/lib/open-ai-event-processor.js +426 -0
  201. package/dist/lib/open-ai-event-processor.js.map +1 -0
  202. package/dist/lib/schemas/ai-responses.schema.d.ts +617 -0
  203. package/dist/lib/schemas/ai-responses.schema.d.ts.map +1 -0
  204. package/dist/lib/schemas/ai-responses.schema.js +377 -0
  205. package/dist/lib/schemas/ai-responses.schema.js.map +1 -0
  206. package/dist/lib/schemas/common.schemas.d.ts +84 -0
  207. package/dist/lib/schemas/common.schemas.d.ts.map +1 -0
  208. package/dist/lib/schemas/common.schemas.js +87 -0
  209. package/dist/lib/schemas/common.schemas.js.map +1 -0
  210. package/dist/lib/schemas/conversation.schema.d.ts +28 -0
  211. package/dist/lib/schemas/conversation.schema.d.ts.map +1 -0
  212. package/dist/lib/schemas/conversation.schema.js +31 -0
  213. package/dist/lib/schemas/conversation.schema.js.map +1 -0
  214. package/dist/lib/schemas/http-client.schema.d.ts +39 -0
  215. package/dist/lib/schemas/http-client.schema.d.ts.map +1 -0
  216. package/dist/lib/schemas/http-client.schema.js +36 -0
  217. package/dist/lib/schemas/http-client.schema.js.map +1 -0
  218. package/dist/lib/schemas/index.d.ts +95 -0
  219. package/dist/lib/schemas/index.d.ts.map +1 -0
  220. package/dist/lib/schemas/index.js +32 -0
  221. package/dist/lib/schemas/index.js.map +1 -0
  222. package/dist/lib/schemas/knowledge.schema.d.ts +145 -0
  223. package/dist/lib/schemas/knowledge.schema.d.ts.map +1 -0
  224. package/dist/lib/schemas/knowledge.schema.js +81 -0
  225. package/dist/lib/schemas/knowledge.schema.js.map +1 -0
  226. package/dist/lib/schemas/orchestration.schema.d.ts +168 -0
  227. package/dist/lib/schemas/orchestration.schema.d.ts.map +1 -0
  228. package/dist/lib/schemas/orchestration.schema.js +133 -0
  229. package/dist/lib/schemas/orchestration.schema.js.map +1 -0
  230. package/dist/lib/schemas/plan.schema.d.ts +103 -0
  231. package/dist/lib/schemas/plan.schema.d.ts.map +1 -0
  232. package/dist/lib/schemas/plan.schema.js +58 -0
  233. package/dist/lib/schemas/plan.schema.js.map +1 -0
  234. package/dist/lib/sequelize-service.d.ts +23 -0
  235. package/dist/lib/sequelize-service.d.ts.map +1 -0
  236. package/dist/lib/sequelize-service.js +446 -0
  237. package/dist/lib/sequelize-service.js.map +1 -0
  238. package/dist/lib/source-hash.d.ts +39 -0
  239. package/dist/lib/source-hash.d.ts.map +1 -0
  240. package/dist/lib/source-hash.js +56 -0
  241. package/dist/lib/source-hash.js.map +1 -0
  242. package/dist/lib/stable-stringify.d.ts +32 -0
  243. package/dist/lib/stable-stringify.d.ts.map +1 -0
  244. package/dist/lib/stable-stringify.js +72 -0
  245. package/dist/lib/stable-stringify.js.map +1 -0
  246. package/dist/lib/streaming-utils.d.ts +60 -0
  247. package/dist/lib/streaming-utils.d.ts.map +1 -0
  248. package/dist/lib/streaming-utils.js +190 -0
  249. package/dist/lib/streaming-utils.js.map +1 -0
  250. package/dist/lib/utils/conversation-builder.d.ts +36 -0
  251. package/dist/lib/utils/conversation-builder.d.ts.map +1 -0
  252. package/dist/lib/utils/conversation-builder.js +132 -0
  253. package/dist/lib/utils/conversation-builder.js.map +1 -0
  254. package/dist/lib/utils/domain-matcher.d.ts +25 -0
  255. package/dist/lib/utils/domain-matcher.d.ts.map +1 -0
  256. package/dist/lib/utils/domain-matcher.js +42 -0
  257. package/dist/lib/utils/domain-matcher.js.map +1 -0
  258. package/dist/lib/utils/file-util.d.ts +157 -0
  259. package/dist/lib/utils/file-util.d.ts.map +1 -0
  260. package/dist/lib/utils/file-util.js +373 -0
  261. package/dist/lib/utils/file-util.js.map +1 -0
  262. package/dist/lib/utils/html-summarizer.d.ts +27 -0
  263. package/dist/lib/utils/html-summarizer.d.ts.map +1 -0
  264. package/dist/lib/utils/html-summarizer.js +189 -0
  265. package/dist/lib/utils/html-summarizer.js.map +1 -0
  266. package/dist/lib/utils/http-client.d.ts +108 -0
  267. package/dist/lib/utils/http-client.d.ts.map +1 -0
  268. package/dist/lib/utils/http-client.js +298 -0
  269. package/dist/lib/utils/http-client.js.map +1 -0
  270. package/dist/lib/utils/index.d.ts +12 -0
  271. package/dist/lib/utils/index.d.ts.map +1 -0
  272. package/dist/lib/utils/index.js +28 -0
  273. package/dist/lib/utils/index.js.map +1 -0
  274. package/dist/lib/utils/logger.d.ts +30 -0
  275. package/dist/lib/utils/logger.d.ts.map +1 -0
  276. package/dist/lib/utils/logger.js +88 -0
  277. package/dist/lib/utils/logger.js.map +1 -0
  278. package/dist/lib/utils/mcp-utils.d.ts +208 -0
  279. package/dist/lib/utils/mcp-utils.d.ts.map +1 -0
  280. package/dist/lib/utils/mcp-utils.js +451 -0
  281. package/dist/lib/utils/mcp-utils.js.map +1 -0
  282. package/dist/lib/utils/sequelize-service.d.ts +153 -0
  283. package/dist/lib/utils/sequelize-service.d.ts.map +1 -0
  284. package/dist/lib/utils/sequelize-service.js +339 -0
  285. package/dist/lib/utils/sequelize-service.js.map +1 -0
  286. package/dist/lib/utils/tool-call-extractor.d.ts +36 -0
  287. package/dist/lib/utils/tool-call-extractor.d.ts.map +1 -0
  288. package/dist/lib/utils/tool-call-extractor.js +121 -0
  289. package/dist/lib/utils/tool-call-extractor.js.map +1 -0
  290. package/dist/lib/utils/zod-to-json-schema.d.ts +17 -0
  291. package/dist/lib/utils/zod-to-json-schema.d.ts.map +1 -0
  292. package/dist/lib/utils/zod-to-json-schema.js +53 -0
  293. package/dist/lib/utils/zod-to-json-schema.js.map +1 -0
  294. package/dist/models/AgentRequest.d.ts +33 -0
  295. package/dist/models/AgentRequest.d.ts.map +1 -0
  296. package/dist/models/AgentRequest.js +49 -0
  297. package/dist/models/AgentRequest.js.map +1 -0
  298. package/dist/models/AgentRun.d.ts +44 -0
  299. package/dist/models/AgentRun.d.ts.map +1 -0
  300. package/dist/models/AgentRun.js +53 -0
  301. package/dist/models/AgentRun.js.map +1 -0
  302. package/dist/models/AuditLog.d.ts +37 -0
  303. package/dist/models/AuditLog.d.ts.map +1 -0
  304. package/dist/models/AuditLog.js +46 -0
  305. package/dist/models/AuditLog.js.map +1 -0
  306. package/dist/models/Conversation.d.ts +39 -0
  307. package/dist/models/Conversation.d.ts.map +1 -0
  308. package/dist/models/Conversation.js +49 -0
  309. package/dist/models/Conversation.js.map +1 -0
  310. package/dist/models/Embedding.d.ts +56 -0
  311. package/dist/models/Embedding.d.ts.map +1 -0
  312. package/dist/models/Embedding.js +36 -0
  313. package/dist/models/Embedding.js.map +1 -0
  314. package/dist/models/ExecutionPattern.d.ts +57 -0
  315. package/dist/models/ExecutionPattern.d.ts.map +1 -0
  316. package/dist/models/ExecutionPattern.js +61 -0
  317. package/dist/models/ExecutionPattern.js.map +1 -0
  318. package/dist/models/Knowledge.d.ts +49 -0
  319. package/dist/models/Knowledge.d.ts.map +1 -0
  320. package/dist/models/Knowledge.js +67 -0
  321. package/dist/models/Knowledge.js.map +1 -0
  322. package/dist/models/KnowledgeRevision.d.ts +35 -0
  323. package/dist/models/KnowledgeRevision.d.ts.map +1 -0
  324. package/dist/models/KnowledgeRevision.js +51 -0
  325. package/dist/models/KnowledgeRevision.js.map +1 -0
  326. package/dist/models/Plan.d.ts +34 -0
  327. package/dist/models/Plan.d.ts.map +1 -0
  328. package/dist/models/Plan.js +43 -0
  329. package/dist/models/Plan.js.map +1 -0
  330. package/dist/models/PlanStep.d.ts +56 -0
  331. package/dist/models/PlanStep.d.ts.map +1 -0
  332. package/dist/models/PlanStep.js +65 -0
  333. package/dist/models/PlanStep.js.map +1 -0
  334. package/dist/models/SourceData.d.ts +39 -0
  335. package/dist/models/SourceData.d.ts.map +1 -0
  336. package/dist/models/SourceData.js +18 -0
  337. package/dist/models/SourceData.js.map +1 -0
  338. package/dist/models/index.d.ts +36 -0
  339. package/dist/models/index.d.ts.map +1 -0
  340. package/dist/models/index.js +179 -0
  341. package/dist/models/index.js.map +1 -0
  342. package/dist/routes/agent.routes.d.ts +13 -0
  343. package/dist/routes/agent.routes.d.ts.map +1 -0
  344. package/dist/routes/agent.routes.js +27 -0
  345. package/dist/routes/agent.routes.js.map +1 -0
  346. package/dist/routes/agent_request.routes.d.ts +13 -0
  347. package/dist/routes/agent_request.routes.d.ts.map +1 -0
  348. package/dist/routes/agent_request.routes.js +65 -0
  349. package/dist/routes/agent_request.routes.js.map +1 -0
  350. package/dist/routes/knowledge.routes.d.ts +13 -0
  351. package/dist/routes/knowledge.routes.d.ts.map +1 -0
  352. package/dist/routes/knowledge.routes.js +91 -0
  353. package/dist/routes/knowledge.routes.js.map +1 -0
  354. package/dist/routes/mcp.routes.d.ts +14 -0
  355. package/dist/routes/mcp.routes.d.ts.map +1 -0
  356. package/dist/routes/mcp.routes.js +27 -0
  357. package/dist/routes/mcp.routes.js.map +1 -0
  358. package/dist/sdk/index.d.ts +13 -0
  359. package/dist/sdk/index.d.ts.map +1 -0
  360. package/dist/sdk/index.js +35 -0
  361. package/dist/sdk/index.js.map +1 -0
  362. package/dist/sdk/savant.sdk.d.ts +53 -0
  363. package/dist/sdk/savant.sdk.d.ts.map +1 -0
  364. package/dist/sdk/savant.sdk.js +120 -0
  365. package/dist/sdk/savant.sdk.js.map +1 -0
  366. package/dist/services/agent-request-service.d.ts +104 -0
  367. package/dist/services/agent-request-service.d.ts.map +1 -0
  368. package/dist/services/agent-request-service.js +319 -0
  369. package/dist/services/agent-request-service.js.map +1 -0
  370. package/dist/services/audit_log.service.d.ts +104 -0
  371. package/dist/services/audit_log.service.d.ts.map +1 -0
  372. package/dist/services/audit_log.service.js +339 -0
  373. package/dist/services/audit_log.service.js.map +1 -0
  374. package/dist/services/conversation.service.d.ts +90 -0
  375. package/dist/services/conversation.service.d.ts.map +1 -0
  376. package/dist/services/conversation.service.js +552 -0
  377. package/dist/services/conversation.service.js.map +1 -0
  378. package/dist/services/domain.service.d.ts +58 -0
  379. package/dist/services/domain.service.d.ts.map +1 -0
  380. package/dist/services/domain.service.js +244 -0
  381. package/dist/services/domain.service.js.map +1 -0
  382. package/dist/services/embedding.service.d.ts +132 -0
  383. package/dist/services/embedding.service.d.ts.map +1 -0
  384. package/dist/services/embedding.service.js +587 -0
  385. package/dist/services/embedding.service.js.map +1 -0
  386. package/dist/services/file_upload.service.d.ts +50 -0
  387. package/dist/services/file_upload.service.d.ts.map +1 -0
  388. package/dist/services/file_upload.service.js +172 -0
  389. package/dist/services/file_upload.service.js.map +1 -0
  390. package/dist/services/knowledge.service.d.ts +200 -0
  391. package/dist/services/knowledge.service.d.ts.map +1 -0
  392. package/dist/services/knowledge.service.js +784 -0
  393. package/dist/services/knowledge.service.js.map +1 -0
  394. package/dist/types/responses-api.types.d.ts +181 -0
  395. package/dist/types/responses-api.types.d.ts.map +1 -0
  396. package/dist/types/responses-api.types.js +12 -0
  397. package/dist/types/responses-api.types.js.map +1 -0
  398. package/package.json +145 -0
@@ -0,0 +1,505 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Dynamic Agent - Chat Completions Implementation
4
+ *
5
+ * This module provides a streamlined agent implementation using OpenAI chat completions
6
+ * instead of the agent framework for faster execution without handoffs.
7
+ *
8
+ * Key Features:
9
+ * - Direct OpenAI chat completions API usage
10
+ * - MCP server str
11
+ * - Streaming support
12
+ * - Retry mechanisms
13
+ * - Type-safe agent responses
14
+ *
15
+ * @author MeasureOne
16
+ * @version 2.0.0
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.DynamicAgent = exports.DEFAULT_AGENT_OPTIONS = void 0;
20
+ const genai_1 = require("@google/genai");
21
+ const zod_to_json_schema_1 = require("../../lib/utils/zod-to-json-schema");
22
+ const logger_1 = require("../../lib/utils/logger");
23
+ const mcp_utils_1 = require("../../lib/utils/mcp-utils");
24
+ const conversation_builder_1 = require("../../lib/utils/conversation-builder");
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
+ exports.DEFAULT_AGENT_OPTIONS = {
35
+ max_attempts: 10, // Retry up to 10 times if entire execution throws exception
36
+ retry_delay_ms: 1000, // 1 second
37
+ streaming: true, // Enable streaming output by default
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
+ class DynamicAgent {
44
+ /**
45
+ * Creates a new dynamic agent instance.
46
+ *
47
+ * @param client - Google Gemini client instance
48
+ * @param mcp_servers - Array of MCP server instances
49
+ * @param agent_name - Name of the agent for identification
50
+ * @param instructions - Agent instructions for behavior
51
+ * @param tools - Array of tools available to the agent
52
+ * @param model - Model to use (e.g., "gemini-2.5-flash", "gemini-2.5-flash")
53
+ * @param response_schema - Optional Zod schema for structured response validation
54
+ * @param conversation_summary - Optional LLM-generated summary of conversation messages
55
+ * @param context_summary - Optional LLM-generated summary of execution context
56
+ * @param recent_messages - Optional recent messages for immediate context (last 3 messages)
57
+ * @param current_context - Optional current context object (plan_id, current_step, tool_results, etc.)
58
+ */
59
+ constructor(client, mcp_servers = [], agent_name, instructions, tools = [], model = "gemini-2.5-flash", response_schema, conversation_summary, context_summary, recent_messages, current_context, history_strategy = 'SUMMARY' // Default to the optimized summary strategy
60
+ ) {
61
+ this.client = client;
62
+ this.mcp_servers = mcp_servers;
63
+ this.name = agent_name;
64
+ this.instructions = instructions.trim();
65
+ this.model = model;
66
+ this.system_prompt = instructions.trim();
67
+ this.response_schema = response_schema;
68
+ // Initialize properties
69
+ this.debug_logged = false;
70
+ this.verbose_reasoning = true;
71
+ this.logger = (0, logger_1.create_default_logger)(`dynamic-agent:${agent_name}`);
72
+ let condensed_history;
73
+ switch (history_strategy) {
74
+ case 'FULL':
75
+ this.logger.info('Using FULL conversation history strategy.');
76
+ condensed_history = recent_messages || []; // Assuming recent_messages would contain the full history in this case
77
+ break;
78
+ case 'RECENT_ONLY':
79
+ this.logger.info('Using RECENT_ONLY conversation history strategy.');
80
+ condensed_history = recent_messages?.slice(-10) || []; // Example: last 10 messages
81
+ break;
82
+ case 'SUMMARY':
83
+ default:
84
+ this.logger.info('Using SUMMARY (default) conversation history strategy.');
85
+ // Build condensed conversation from summaries and recent messages
86
+ condensed_history = (0, conversation_builder_1.build_condensed_conversation)(conversation_summary, context_summary, recent_messages || [], current_context);
87
+ break;
88
+ }
89
+ // Create chat instance if we have any history
90
+ if (condensed_history.length > 0) {
91
+ // Convert ChatMessage[] to Content[] format
92
+ const ai_history = condensed_history.map((msg) => {
93
+ const role = msg.role === 'model' ? 'model' : 'user';
94
+ const content_text = typeof msg.content === 'string' ? msg.content : JSON.stringify(msg.content);
95
+ return { role: role, parts: [{ text: content_text }] };
96
+ });
97
+ this.chat_instance = this.client.chats.create({ model: this.model, history: ai_history });
98
+ this.logger.info(`✅ Created chat instance with condensed history: ${condensed_history.length} messages (summary-based)`);
99
+ }
100
+ if (mcp_servers.length == 0) {
101
+ this.logger.warn(`⚠️ No MCP servers available for ${agent_name}`);
102
+ }
103
+ // MCP tools are now provided directly via mcpToTool in call_gemini_once
104
+ // No need to cache tools anymore
105
+ }
106
+ /**
107
+ * Executes the agent with a single attempt using Google Gemini Chat API.
108
+ *
109
+ * @param input - Input data for the agent (conversation history)
110
+ * @param streaming - Whether to use streaming output
111
+ * @param streaming_utils - Optional callback function for streaming chunks
112
+ * @returns Promise<GenerateContentResponse> - Gemini SDK response (contains AgentResponse in text property)
113
+ */
114
+ async execute_single_attempt(input, streaming = true, streaming_utils) {
115
+ let ai_response = null;
116
+ try {
117
+ // Convert Zod schema to JSON Schema for Gemini
118
+ let response_schema = null;
119
+ if (this.response_schema) {
120
+ response_schema = (0, zod_to_json_schema_1.convertZodToJsonSchema)(this.response_schema, `${this.name.toLowerCase()}_response`);
121
+ }
122
+ this.logger.info(`🚀 Starting ${this.name}`, { model: this.model || "gemini-2.5-flash", structured: !!response_schema });
123
+ if (input.length === 0) {
124
+ throw new Error("No input messages provided");
125
+ }
126
+ // Extract the last message as the new message to send to Gemini
127
+ const new_message = input[input.length - 1];
128
+ // If chat_instance exists (created with summaries), use it directly - history is already in chat_instance
129
+ // Otherwise, use the rest of the conversation as history (backward compatibility)
130
+ const conversation_history = this.chat_instance ? [] : input.slice(0, -1);
131
+ // Call Gemini Chat API
132
+ // Note: If chat_instance exists, it already contains condensed history from summaries
133
+ // We only pass the new message, and chat_instance provides the history
134
+ ai_response = await this.call_gemini_once(this.client, {
135
+ model: this.model || "gemini-2.5-flash", instructions: this.system_prompt, history: conversation_history,
136
+ new_message: new_message, tool_choice: "auto", streaming: streaming, streaming_utils: streaming_utils,
137
+ response_schema: response_schema, mcp_servers: this.mcp_servers, chat: this.chat_instance
138
+ });
139
+ this.logger.info(`🔍 AI response:`, { response: ai_response });
140
+ // Check if text contains an ERROR message_type
141
+ if (ai_response.text) {
142
+ try {
143
+ const parsed_output = JSON.parse(ai_response.text);
144
+ if (parsed_output.message_type === "ERROR") {
145
+ throw new Error(parsed_output.error_message || parsed_output.error || "Error in agent response");
146
+ }
147
+ }
148
+ catch (parse_error) {
149
+ // If it's already an Error from message_type check, re-throw it
150
+ if (parse_error instanceof Error && parse_error.message.includes("Error in agent response")) {
151
+ throw parse_error;
152
+ }
153
+ // Otherwise, it's a JSON parse error - log and continue
154
+ this.logger.warn("Error parsing the response: " + (parse_error.message || String(parse_error)));
155
+ }
156
+ }
157
+ return ai_response;
158
+ }
159
+ catch (error) {
160
+ this.logger.error(`[ERROR] AI API execution failed for ${this.name}`, { error: error instanceof Error ? error.stack : error });
161
+ // Re-throw the error since GenerateContentResponse doesn't support error wrapping
162
+ throw error;
163
+ }
164
+ }
165
+ /**
166
+ * Executes the agent with retry mechanism for improved reliability.
167
+ * SIMPLIFIED: Just retries on exceptions, returns raw Gemini Response.
168
+ * All response handling is done by the service layer.
169
+ *
170
+ * @param input - Input data for the agent (conversation history)
171
+ * @param options - Execution options
172
+ * @param streaming_utils - Optional callback function for streaming chunks
173
+ * @returns Promise<GenerateContentResponse> - Raw AI Response (contains AgentResponse in output_text)
174
+ */
175
+ async execute_with_retries(input, options, streaming_utils) {
176
+ const opts = { ...exports.DEFAULT_AGENT_OPTIONS, ...options };
177
+ const max_attempts = opts.max_attempts || exports.DEFAULT_AGENT_OPTIONS.max_attempts;
178
+ const streaming = opts.streaming || exports.DEFAULT_AGENT_OPTIONS.streaming;
179
+ // Simple retry loop - just retry on exceptions
180
+ for (let i = 0; i < max_attempts; i++) {
181
+ try {
182
+ this.logger.info(`Attempt ${i + 1}/${max_attempts} - Starting agent ${this.name} execution...`);
183
+ const result = await this.execute_single_attempt(input, streaming, streaming_utils);
184
+ // Check if response text contains an error message_type
185
+ if (result.text) {
186
+ try {
187
+ const parsed = JSON.parse(result.text);
188
+ if (parsed.message_type === "ERROR") {
189
+ // Add error to input for next attempt
190
+ input.push({
191
+ role: 'model',
192
+ content: `Error: ${parsed.error_message || parsed.error || "Unknown error"}`
193
+ });
194
+ continue;
195
+ }
196
+ }
197
+ catch (e) {
198
+ // Not JSON or no error - continue normally
199
+ }
200
+ }
201
+ return result; // Return raw Response - service will handle it
202
+ }
203
+ catch (error) {
204
+ this.logger.warn(`❌ Agent execution attempt ${i + 1} failed:`, error instanceof Error ? error.message : String(error));
205
+ // If this is the last attempt, throw the error
206
+ if (i === max_attempts - 1) {
207
+ throw error;
208
+ }
209
+ // Add error to input for next attempt
210
+ input.push({
211
+ role: 'user',
212
+ content: JSON.stringify({ error_message: error instanceof Error ? error.message : "Unknown error", error_stack: error instanceof Error ? error.stack : "Unknown stack" })
213
+ });
214
+ // Wait before retrying
215
+ await this.delay(opts.retry_delay_ms || 1000);
216
+ continue; //ideally not required, since it is the end of the loop. But this is a safety measure.
217
+ }
218
+ }
219
+ throw new Error("Agent execution failed after all retry attempts");
220
+ }
221
+ /**
222
+ * Utility method to create a delay.
223
+ *
224
+ * @param ms - Delay duration in milliseconds
225
+ */
226
+ delay(ms) {
227
+ return new Promise((resolve) => setTimeout(resolve, ms));
228
+ }
229
+ /**
230
+ * Gets the MCP servers used by this agent.
231
+ *
232
+ * @returns Array of MCP servers
233
+ */
234
+ get_mcp_servers() {
235
+ return this.mcp_servers;
236
+ }
237
+ async call_gemini_once(client, options) {
238
+ const { model = 'gemini-2.5-flash', instructions, history, new_message, tools = [], tool_choice = 'auto', streaming = false, streaming_utils, response_schema, mcp_servers = [], chat } = options;
239
+ // Helper function to convert ChatMessage to Content
240
+ // AI always responds in JSON using the response schema, so we simplify content conversion
241
+ const convert_to_content = (item) => {
242
+ const role = item.role === 'model' ? 'model' : 'user';
243
+ // Convert content to text - always stringify if object, otherwise use as string
244
+ const content_text = typeof item.content === 'string'
245
+ ? item.content
246
+ : JSON.stringify(item.content);
247
+ return {
248
+ role: role,
249
+ parts: [{ text: content_text }]
250
+ };
251
+ };
252
+ // Convert history to Content format
253
+ const ai_history = history.map(convert_to_content);
254
+ // Convert new message for sendMessage
255
+ // sendMessage can accept: string, parts array, or Content object
256
+ // Simplest: pass the text content directly as a string
257
+ const message_content = typeof new_message.content === 'string'
258
+ ? new_message.content
259
+ : JSON.stringify(new_message.content);
260
+ // Build tools array
261
+ const ai_tools = [];
262
+ // Add regular tools (convert to Gemini FunctionDeclaration format)
263
+ for (const tool of tools) {
264
+ if (tool.functionDeclarations) {
265
+ ai_tools.push({
266
+ functionDeclarations: tool.functionDeclarations.map((declaration) => ({
267
+ name: declaration.name,
268
+ description: declaration.description || '',
269
+ parametersJsonSchema: declaration.parametersJsonSchema || {}
270
+ }))
271
+ });
272
+ }
273
+ }
274
+ // Add MCP tools using mcpToTool from Gemini SDK
275
+ // Gemini internally supports MCP calls - we should use the CallableTool directly
276
+ // NOT convert it to function declarations, as that causes incompatibility
277
+ let mcp_callable_tool = null;
278
+ if (mcp_servers.length > 0) {
279
+ try {
280
+ // Get connected MCP servers (these are Client instances from MCP SDK)
281
+ const mcp_manager = mcp_utils_1.MCPServerManager.get_instance();
282
+ const connected_servers = mcp_manager.get_connected_servers();
283
+ this.logger.info(`🔍 Using mcpToTool with ${connected_servers.size} MCP clients`);
284
+ // Get all Client instances as an array
285
+ const mcp_clients = Array.from(connected_servers.values());
286
+ if (mcp_clients.length > 0) {
287
+ // Use mcpToTool to create a callable tool from MCP clients
288
+ // mcpToTool accepts Client instances and returns a CallableTool
289
+ // The CallableTool automatically handles schema conversion AND tool execution
290
+ // Spread the clients array as individual arguments
291
+ mcp_callable_tool = (0, genai_1.mcpToTool)(...mcp_clients);
292
+ this.logger.info(`✅ Created MCP CallableTool - Gemini will handle MCP calls directly`);
293
+ }
294
+ else {
295
+ this.logger.warn(`⚠️ No MCP clients available despite mcp_servers.length > 0`);
296
+ }
297
+ }
298
+ catch (error) {
299
+ this.logger.error(`❌ Failed to load MCP tools using mcpToTool:`, error instanceof Error ? error.stack : String(error));
300
+ }
301
+ }
302
+ else {
303
+ this.logger.info(`ℹ️ No MCP servers provided (mcp_servers.length = 0)`);
304
+ }
305
+ // Build config
306
+ const config = {
307
+ temperature: 0.1, maxOutputTokens: 128000, systemInstruction: instructions
308
+ };
309
+ // Add structured output schema if provided
310
+ if (response_schema) {
311
+ // The schema should already be inlined by convertZodToJsonSchema
312
+ // But we still need to clean it for Gemini compatibility
313
+ let processed_schema = response_schema;
314
+ // Clean schema for Gemini compatibility - remove unsupported fields
315
+ const clean_schema_for_gemini = (obj) => {
316
+ if (!obj || typeof obj !== 'object')
317
+ return obj;
318
+ if (Array.isArray(obj)) {
319
+ return obj.map(clean_schema_for_gemini);
320
+ }
321
+ // Handle anyOf/oneOf structures first (before processing properties)
322
+ // For nullable arrays like plan: z.array(...).nullable(), simplify to just array
323
+ if (obj.anyOf && Array.isArray(obj.anyOf)) {
324
+ // If anyOf has [array, null], prefer the array type (remove null option)
325
+ // This is because Gemini has trouble with nullable arrays - it interprets them as array of nulls
326
+ const array_option = obj.anyOf.find((opt) => opt.type === 'array');
327
+ const null_option = obj.anyOf.find((opt) => opt.type === 'null');
328
+ if (array_option && null_option && obj.anyOf.length === 2) {
329
+ // For nullable arrays, just use the array type
330
+ // The default value will handle the null case
331
+ return clean_schema_for_gemini({ ...array_option, default: obj.default });
332
+ }
333
+ else {
334
+ // For other anyOf structures, process each option
335
+ return { ...obj, anyOf: obj.anyOf.map((option) => clean_schema_for_gemini(option)) };
336
+ }
337
+ }
338
+ if (obj.oneOf && Array.isArray(obj.oneOf)) {
339
+ return { ...obj, oneOf: obj.oneOf.map((option) => clean_schema_for_gemini(option)) };
340
+ }
341
+ const result = {};
342
+ let has_const = false;
343
+ let const_value = null;
344
+ for (const [key, value] of Object.entries(obj)) {
345
+ // Remove $schema field (not supported by Gemini)
346
+ if (key === '$schema') {
347
+ continue;
348
+ }
349
+ // Remove $ref if it somehow still exists (shouldn't happen with $refStrategy: 'root')
350
+ if (key === '$ref') {
351
+ this.logger.warn(`⚠️ Found unresolved $ref after conversion, removing: ${value}`);
352
+ continue;
353
+ }
354
+ // Remove definitions - they should already be inlined
355
+ if (key === 'definitions') {
356
+ continue;
357
+ }
358
+ // Track 'const' to convert to 'enum' later (preserve other properties)
359
+ if (key === 'const') {
360
+ has_const = true;
361
+ const_value = value;
362
+ continue;
363
+ }
364
+ // Recursively clean nested objects
365
+ if (value && typeof value === 'object') {
366
+ result[key] = clean_schema_for_gemini(value);
367
+ }
368
+ else {
369
+ result[key] = value;
370
+ }
371
+ }
372
+ // Convert 'const' to 'enum' with single value (Gemini doesn't support 'const')
373
+ // Only add enum if const was present and enum doesn't already exist
374
+ if (has_const && !result.enum) {
375
+ result.enum = [const_value];
376
+ }
377
+ // Fix empty object properties - Gemini requires non-empty properties for object types
378
+ // If type="object" and no properties, remove type and use additionalProperties only
379
+ if (result.type === 'object') {
380
+ // Properties are already cleaned recursively above, so just check if empty
381
+ if (!result.properties || Object.keys(result.properties).length === 0) {
382
+ // Remove type: "object" when we have no properties - Gemini doesn't allow type="object" without properties
383
+ delete result.type;
384
+ delete result.properties;
385
+ result.additionalProperties = true;
386
+ }
387
+ }
388
+ // Fix array items that are objects with empty properties
389
+ // This must be done AFTER recursive cleaning to catch all nested cases
390
+ if (result.type === 'array' && result.items) {
391
+ // Recursively check and fix items (could be nested anyOf/oneOf structures)
392
+ const fix_items = (items) => {
393
+ if (!items || typeof items !== 'object')
394
+ return items;
395
+ // If items is an anyOf/oneOf, process each option
396
+ if (items.anyOf && Array.isArray(items.anyOf)) {
397
+ return {
398
+ ...items,
399
+ anyOf: items.anyOf.map((option) => fix_items(option))
400
+ };
401
+ }
402
+ if (items.oneOf && Array.isArray(items.oneOf)) {
403
+ return {
404
+ ...items,
405
+ oneOf: items.oneOf.map((option) => fix_items(option))
406
+ };
407
+ }
408
+ // If items is an object type with empty properties, fix it
409
+ // Gemini requires: if type="object", properties must be non-empty OR type must be removed
410
+ if (items.type === 'object') {
411
+ if (!items.properties || Object.keys(items.properties).length === 0) {
412
+ const fixed = { ...items };
413
+ delete fixed.type;
414
+ delete fixed.properties;
415
+ fixed.additionalProperties = true;
416
+ return fixed;
417
+ }
418
+ }
419
+ return items;
420
+ };
421
+ result.items = fix_items(result.items);
422
+ }
423
+ return result;
424
+ };
425
+ const cleaned_schema = clean_schema_for_gemini(processed_schema);
426
+ // Debug: Check for empty properties in requested_inputs.items
427
+ if (cleaned_schema.properties?.content?.properties?.requested_inputs) {
428
+ const requested_inputs = cleaned_schema.properties.content.properties.requested_inputs;
429
+ if (requested_inputs.items) {
430
+ // Final fix: Ensure items.properties is not empty
431
+ // Gemini requires: if type="object", properties must be non-empty OR type must be removed
432
+ if (requested_inputs.items.type === 'object' && (!requested_inputs.items.properties || Object.keys(requested_inputs.items.properties).length === 0)) {
433
+ this.logger.warn(`⚠️ Fixing empty properties in requested_inputs.items`);
434
+ // Remove type: "object" when we have no properties - just use additionalProperties
435
+ delete requested_inputs.items.type;
436
+ delete requested_inputs.items.properties;
437
+ requested_inputs.items.additionalProperties = true;
438
+ }
439
+ }
440
+ }
441
+ // IMPORTANT: When using mcpToTool (function calling), we CANNOT use responseSchema
442
+ // Gemini API does not support structured JSON output when function calling is enabled
443
+ // So we only set responseSchema if we're NOT using mcpToTool
444
+ if (!mcp_callable_tool) {
445
+ config.responseSchema = cleaned_schema;
446
+ config.responseMimeType = 'application/json';
447
+ this.logger.info(`📋 Added response schema for structured output (mcpToTool not in use)`);
448
+ }
449
+ else {
450
+ this.logger.warn(`⚠️ Skipping response schema - incompatible with mcpToTool (function calling). Agent will return natural text.`);
451
+ }
452
+ }
453
+ // Add tools if available - allow automatic function calling
454
+ // IMPORTANT: Cannot mix CallableTools (MCP) with FunctionDeclarations
455
+ // IMPORTANT: Cannot use responseSchema with function calling (mcpToTool)
456
+ // If we have MCP callable tool, use ONLY that (Gemini handles MCP calls internally)
457
+ // If we have regular tools, use ONLY those (as FunctionDeclarations)
458
+ if (mcp_callable_tool) {
459
+ // Use ONLY the MCP callable tool - Gemini internally supports MCP calls
460
+ // Do NOT mix with regular FunctionDeclarations as that causes incompatibility
461
+ // Do NOT use responseSchema - it's incompatible with function calling
462
+ config.tools = [mcp_callable_tool];
463
+ config.toolConfig = { functionCallingConfig: { mode: tool_choice === 'auto' ? genai_1.FunctionCallingConfigMode.AUTO : tool_choice === 'none' ? genai_1.FunctionCallingConfigMode.NONE : genai_1.FunctionCallingConfigMode.ANY } };
464
+ this.logger.info(`🔧 Added MCP CallableTool only - AI will handle MCP calls directly (${ai_tools.length} regular tools skipped, responseSchema disabled due to incompatibility)`);
465
+ }
466
+ else if (ai_tools.length > 0) {
467
+ // No MCP tools - use regular FunctionDeclarations
468
+ config.tools = ai_tools;
469
+ config.toolConfig = { functionCallingConfig: { mode: tool_choice === 'auto' ? genai_1.FunctionCallingConfigMode.AUTO : tool_choice === 'none' ? genai_1.FunctionCallingConfigMode.NONE : genai_1.FunctionCallingConfigMode.ANY } };
470
+ this.logger.info(`🔧 Added ${ai_tools.length} tool(s) to config with automatic function calling enabled`);
471
+ }
472
+ else {
473
+ this.logger.info(`ℹ️ No tools added to config (ai_tools.length = 0, mcp_callable_tool = null)`);
474
+ }
475
+ // Use provided chat instance (rehydrated from conversation service)
476
+ // OR create a new chat instance if none is provided (for standalone agents like SummarizerAgent)
477
+ let chat_instance = chat;
478
+ if (!chat_instance) {
479
+ // Create a new chat instance for standalone agents
480
+ // This allows agents like SummarizerAgent to work independently
481
+ // Note: chats.create only accepts model and history, config is passed to sendMessage
482
+ chat_instance = client.chats.create({
483
+ model: model,
484
+ history: ai_history
485
+ });
486
+ this.logger.info(`✅ Created new chat instance for standalone agent (history: ${ai_history.length} messages)`);
487
+ }
488
+ // Note: Chat config (tools, response schema) is set when creating the chat
489
+ // If agents need different configs, the chat should be created/recreated with the appropriate config
490
+ // For now, we use the chat as-is - config should be set at creation time in conversation.service
491
+ // sendMessage expects an object with 'message' property and optional 'config'
492
+ // When using mcpToTool, the CallableTool should handle automatic execution
493
+ // But we need to pass it correctly - the callable tool should be in the tools array
494
+ // However, chat.sendMessage may need the callable tool to be passed differently
495
+ // For now, we'll use the tool definitions and handle function calls manually
496
+ // The mcp_callable_tool is stored but not used yet - we'll handle function calls via FunctionCallHandler
497
+ const response = await chat_instance.sendMessage({ message: message_content, config: config });
498
+ // Return the Gemini SDK response directly
499
+ // The response.text contains the AgentResponse JSON
500
+ // Note: Function calls are handled by the AI provider (Gemini) internally when using mcpToTool
501
+ return response;
502
+ }
503
+ }
504
+ exports.DynamicAgent = DynamicAgent;
505
+ //# sourceMappingURL=dynamic-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-agent.js","sourceRoot":"","sources":["../../../src/ai/agents/dynamic-agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @fileoverview Executor Agent
3
+ *
4
+ * Executes plans step-by-step using MCP tools for web automation,
5
+ * data extraction, and user interactions.
6
+ *
7
+ * @author MeasureOne
8
+ * @version 1.0.0
9
+ */
10
+ import { GoogleGenAI } from "@google/genai";
11
+ import { DynamicAgent } from "./dynamic-agent";
12
+ import { ChatMessage } from "../../lib/schemas";
13
+ /**
14
+ * Executor Agent - Executes plans step-by-step using MCP tools
15
+ *
16
+ * Responsibilities:
17
+ * - Execute validated plans in strict order
18
+ * - Use appropriate MCP tools for each operation type
19
+ * - Handle missing inputs and errors gracefully
20
+ * - Report progress and results clearly
21
+ */
22
+ export declare class ExecutorAgent extends DynamicAgent {
23
+ constructor(gemini_client: GoogleGenAI, mcp_servers?: any[], model?: string, conversation_summary?: string | null, context_summary?: string | null, recent_messages?: ChatMessage[], current_context?: any);
24
+ }
25
+ //# sourceMappingURL=executor.agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.agent.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/executor.agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD;;;;;;;;GAQG;AACH,qBAAa,aAAc,SAAQ,YAAY;gBAEvC,aAAa,EAAE,WAAW,EAC1B,WAAW,GAAE,GAAG,EAAO,EACvB,KAAK,GAAE,MAA2B,EAClC,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;CA0B5B"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Executor Agent
4
+ *
5
+ * Executes plans step-by-step using MCP tools for web automation,
6
+ * data extraction, and user interactions.
7
+ *
8
+ * @author MeasureOne
9
+ * @version 1.0.0
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ExecutorAgent = void 0;
13
+ const dynamic_agent_1 = require("./dynamic-agent");
14
+ const executor_instructions_1 = require("../instructions/executor.instructions");
15
+ const schemas_1 = require("../../lib/schemas/");
16
+ const logger_1 = require("../../lib/utils/logger");
17
+ const logger = (0, logger_1.create_default_logger)("executor-agent");
18
+ /**
19
+ * Executor Agent - Executes plans step-by-step using MCP tools
20
+ *
21
+ * Responsibilities:
22
+ * - Execute validated plans in strict order
23
+ * - Use appropriate MCP tools for each operation type
24
+ * - Handle missing inputs and errors gracefully
25
+ * - Report progress and results clearly
26
+ */
27
+ class ExecutorAgent extends dynamic_agent_1.DynamicAgent {
28
+ constructor(gemini_client, mcp_servers = [], model = "gemini-2.5-flash", conversation_summary, context_summary, recent_messages, current_context) {
29
+ // ExecutorAgent SEES available tools but does NOT execute them
30
+ // It returns TOOL_CALL_READY via structured outputs, and the service executes tools
31
+ super(gemini_client, mcp_servers, // Pass MCP servers so agent can see available tools
32
+ "ExecutorAgent", executor_instructions_1.EXECUTOR_INSTRUCTIONS, [], // No hardcoded tools - dynamically loaded from MCP servers
33
+ model, schemas_1.ExecutorResponseSchema, // Pass the Zod schema for structured validation
34
+ conversation_summary, context_summary, recent_messages, current_context);
35
+ logger.info("ExecutorAgent initialized with structured schema (sees tools, service executes)", {
36
+ model,
37
+ mcp_servers_count: mcp_servers.length,
38
+ service_will_execute: true,
39
+ has_schema: true
40
+ });
41
+ }
42
+ }
43
+ exports.ExecutorAgent = ExecutorAgent;
44
+ //# sourceMappingURL=executor.agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.agent.js","sourceRoot":"","sources":["../../../src/ai/agents/executor.agent.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAGH,mDAA+C;AAC/C,iFAA8E;AAC9E,gDAA4D;AAC5D,mDAA+D;AAG/D,MAAM,MAAM,GAAG,IAAA,8BAAqB,EAAC,gBAAgB,CAAC,CAAC;AAEvD;;;;;;;;GAQG;AACH,MAAa,aAAc,SAAQ,4BAAY;IAC3C,YACI,aAA0B,EAC1B,cAAqB,EAAE,EACvB,QAAgB,kBAAkB,EAClC,oBAAoC,EACpC,eAA+B,EAC/B,eAA+B,EAC/B,eAAqB;QAErB,+DAA+D;QAC/D,oFAAoF;QACpF,KAAK,CACD,aAAa,EACb,WAAW,EAAE,oDAAoD;QACjE,eAAe,EACf,6CAAqB,EACrB,EAAE,EAAE,2DAA2D;QAC/D,KAAK,EACL,gCAA6B,EAAE,gDAAgD;QAC/E,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,eAAe,CAClB,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,iFAAiF,EAAE;YAC3F,KAAK;YACL,iBAAiB,EAAE,WAAW,CAAC,MAAM;YACrC,oBAAoB,EAAE,IAAI;YAC1B,UAAU,EAAE,IAAI;SACnB,CAAC,CAAC;IACP,CAAC;CAEJ;AAlCD,sCAkCC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @fileoverview Agent exports - Centralized agent management
3
+ *
4
+ * This module provides centralized access to all specialized agents
5
+ * in the savant-orchestration system.
6
+ *
7
+ * @author MeasureOne
8
+ * @version 2.0.0
9
+ */
10
+ export { DynamicAgent } from './dynamic-agent';
11
+ export { OrchestratorAgent } from './orchestrator.agent';
12
+ export { PlannerAgent } from './planner.agent';
13
+ export { ExecutorAgent } from './executor.agent';
14
+ export { KnowledgeAgent } from './knowledge.agent';
15
+ export { LearningAgent } from './learning.agent';
16
+ export { DomainIdentifierAgent } from './domain-identifier.agent';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC"}