@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,339 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Shared Sequelize Service and Configuration
4
+ *
5
+ * Comprehensive Sequelize ORM service with configuration management,
6
+ * connection pooling, performance monitoring, and singleton pattern.
7
+ * This service can be used across all microservices for consistent database access.
8
+ *
9
+ * @author MeasureOne, Inc.
10
+ * @version 1.0.0
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.SequelizeService = void 0;
14
+ exports.create_default_database_config = create_default_database_config;
15
+ exports.create_sequelize_service = create_sequelize_service;
16
+ const sequelize_1 = require("sequelize");
17
+ const logger_1 = require("./logger");
18
+ const logger = (0, logger_1.create_default_logger)("sequelize-service");
19
+ /**
20
+ * Shared Sequelize Service for all microservices
21
+ */
22
+ class SequelizeService {
23
+ constructor(service_name, options) {
24
+ this.is_connected = false;
25
+ this.query_stats = {
26
+ total_queries: 0,
27
+ slow_queries: 0,
28
+ total_response_time: 0,
29
+ };
30
+ this.service_name = service_name;
31
+ this.options = options;
32
+ this.sequelize = this.create_sequelize_instance();
33
+ this.setup_event_handlers();
34
+ this.setup_performance_monitoring();
35
+ }
36
+ /**
37
+ * Get singleton instance of SequelizeService for a specific service
38
+ */
39
+ static get_instance(service_name, options) {
40
+ if (!SequelizeService.instances.has(service_name)) {
41
+ SequelizeService.instances.set(service_name, new SequelizeService(service_name, options));
42
+ }
43
+ return SequelizeService.instances.get(service_name);
44
+ }
45
+ /**
46
+ * Get Sequelize instance
47
+ */
48
+ get client() {
49
+ return this.sequelize;
50
+ }
51
+ /**
52
+ * Check if database is connected
53
+ */
54
+ get connected() {
55
+ return this.is_connected;
56
+ }
57
+ /**
58
+ * Get service name
59
+ */
60
+ get name() {
61
+ return this.service_name;
62
+ }
63
+ /**
64
+ * Create Sequelize instance with comprehensive configuration
65
+ */
66
+ create_sequelize_instance() {
67
+ const config = this.options.database_config;
68
+ // Parse database URL to extract connection details
69
+ const is_sqlite = config.url.startsWith("file:") || config.url.endsWith(".db");
70
+ let sequelize_options;
71
+ if (is_sqlite) {
72
+ // SQLite configuration
73
+ const db_path = config.url.replace("file:", "");
74
+ sequelize_options = {
75
+ dialect: "sqlite",
76
+ storage: db_path,
77
+ logging: config.log_queries
78
+ ? (sql, timing) => {
79
+ logger.info(`[${this.service_name}] [SQL] ${sql}${timing ? ` (${timing}ms)` : ""}`);
80
+ }
81
+ : false,
82
+ pool: config.pool,
83
+ define: {
84
+ timestamps: true,
85
+ underscored: true, // Use snake_case for timestamps
86
+ freezeTableName: true,
87
+ paranoid: true, // Enable soft deletes
88
+ },
89
+ // SQLite specific options
90
+ dialectOptions: {
91
+ // Enable foreign key constraints
92
+ foreignKeys: "ON",
93
+ },
94
+ };
95
+ }
96
+ else {
97
+ // PostgreSQL/MySQL configuration
98
+ const url = new URL(config.url);
99
+ sequelize_options = {
100
+ dialect: config.provider,
101
+ host: url.hostname,
102
+ port: parseInt(url.port) || (config.provider === "postgresql" ? 5432 : 3306),
103
+ database: url.pathname.slice(1),
104
+ username: url.username,
105
+ password: url.password,
106
+ logging: config.log_queries
107
+ ? (sql, timing) => {
108
+ logger.info(`[${this.service_name}] [SQL] ${sql}${timing ? ` (${timing}ms)` : ""}`);
109
+ }
110
+ : false,
111
+ pool: config.pool,
112
+ define: {
113
+ timestamps: true,
114
+ underscored: true, // Use snake_case for timestamps
115
+ freezeTableName: true,
116
+ paranoid: true, // Enable soft deletes
117
+ },
118
+ };
119
+ }
120
+ return new sequelize_1.Sequelize(sequelize_options);
121
+ }
122
+ /**
123
+ * Setup performance monitoring hooks
124
+ */
125
+ setup_performance_monitoring() {
126
+ if (!this.options.enable_performance_monitoring)
127
+ return;
128
+ const slow_query_threshold = this.options.slow_query_threshold_ms || 1000;
129
+ this.sequelize.addHook("beforeQuery", (options) => {
130
+ options.start_time = Date.now();
131
+ });
132
+ this.sequelize.addHook("afterQuery", (options) => {
133
+ const duration = Date.now() - (options.start_time || 0);
134
+ this.query_stats.total_queries++;
135
+ this.query_stats.total_response_time += duration;
136
+ if (duration > slow_query_threshold) {
137
+ this.query_stats.slow_queries++;
138
+ logger.warn(`[${this.service_name}] [SLOW QUERY] ${options.sql} (${duration}ms)`);
139
+ }
140
+ });
141
+ }
142
+ /**
143
+ * Setup event handlers for database connection
144
+ */
145
+ setup_event_handlers() {
146
+ // Handle process termination
147
+ process.on("SIGINT", () => this.disconnect());
148
+ process.on("SIGTERM", () => this.disconnect());
149
+ process.on("beforeExit", () => this.disconnect());
150
+ }
151
+ /**
152
+ * Connect to database
153
+ */
154
+ async connect() {
155
+ try {
156
+ await this.sequelize.authenticate();
157
+ // Setup model associations if provided
158
+ // Note: This should be called after models are initialized with the Sequelize instance
159
+ if (this.options.setup_associations) {
160
+ // Don't call setup_associations here as models may not be initialized yet
161
+ // The app should call this after models are properly initialized
162
+ // We'll just store the function for later use
163
+ this.setup_associations = this.options.setup_associations;
164
+ }
165
+ this.is_connected = true;
166
+ logger.info(`[${this.service_name}] Database connected successfully`);
167
+ }
168
+ catch (error) {
169
+ this.is_connected = false;
170
+ logger.error(`[${this.service_name}] Failed to connect to database:`, error);
171
+ throw error;
172
+ }
173
+ }
174
+ /**
175
+ * Disconnect from database
176
+ */
177
+ async disconnect() {
178
+ try {
179
+ await this.sequelize.close();
180
+ this.is_connected = false;
181
+ logger.info(`[${this.service_name}] Database disconnected successfully`);
182
+ }
183
+ catch (error) {
184
+ logger.error(`[${this.service_name}] Error disconnecting from database:`, error);
185
+ throw error;
186
+ }
187
+ }
188
+ /**
189
+ * Check database health
190
+ */
191
+ async health_check() {
192
+ try {
193
+ const start_time = Date.now();
194
+ await this.sequelize.query("SELECT 1");
195
+ const response_time = Date.now() - start_time;
196
+ return {
197
+ status: "healthy",
198
+ timestamp: new Date().toISOString(),
199
+ details: {
200
+ response_time_ms: response_time,
201
+ dialect: this.sequelize.getDialect(),
202
+ database_name: this.sequelize.getDatabaseName(),
203
+ },
204
+ };
205
+ }
206
+ catch (error) {
207
+ logger.error(`[${this.service_name}] Database health check failed:`, error);
208
+ return {
209
+ status: "unhealthy",
210
+ timestamp: new Date().toISOString(),
211
+ details: {
212
+ error: error.message,
213
+ dialect: this.sequelize.getDialect(),
214
+ },
215
+ };
216
+ }
217
+ }
218
+ /**
219
+ * Execute database transaction
220
+ */
221
+ async transaction(callback) {
222
+ return this.sequelize.transaction(callback);
223
+ }
224
+ /**
225
+ * Execute raw SQL query with logging
226
+ */
227
+ async query(sql, options) {
228
+ const start_time = Date.now();
229
+ try {
230
+ const result = await this.sequelize.query(sql, options);
231
+ const duration = Date.now() - start_time;
232
+ if (duration > (this.options.slow_query_threshold_ms || 1000)) {
233
+ logger.warn(`[${this.service_name}] [SLOW QUERY] ${sql} (${duration}ms)`);
234
+ }
235
+ return result;
236
+ }
237
+ catch (error) {
238
+ const duration = Date.now() - start_time;
239
+ logger.error(`[${this.service_name}] [QUERY ERROR] ${sql} (${duration}ms)`, error);
240
+ throw error;
241
+ }
242
+ }
243
+ /**
244
+ * Get query statistics
245
+ */
246
+ get_query_stats() {
247
+ const average_response_time = this.query_stats.total_queries > 0 ? this.query_stats.total_response_time / this.query_stats.total_queries : 0;
248
+ return {
249
+ dialect: this.sequelize.getDialect(),
250
+ database_name: this.sequelize.getDatabaseName(),
251
+ is_connected: this.is_connected,
252
+ total_queries: this.query_stats.total_queries,
253
+ slow_queries: this.query_stats.slow_queries,
254
+ average_response_time: Math.round(average_response_time),
255
+ };
256
+ }
257
+ /**
258
+ * Setup model associations (call this after models are initialized)
259
+ */
260
+ setup_model_associations() {
261
+ if (this.setup_associations) {
262
+ this.setup_associations();
263
+ }
264
+ }
265
+ /**
266
+ * Sync database schema (for development)
267
+ */
268
+ async sync_schema(options) {
269
+ try {
270
+ await this.sequelize.sync(options);
271
+ logger.info(`[${this.service_name}] Database schema synchronized successfully`);
272
+ }
273
+ catch (error) {
274
+ logger.error(`[${this.service_name}] Failed to sync database schema:`, error);
275
+ throw error;
276
+ }
277
+ }
278
+ /**
279
+ * Drop all tables (for testing)
280
+ */
281
+ async drop_all_tables() {
282
+ try {
283
+ await this.sequelize.dropAllSchemas({ logging: false });
284
+ logger.info(`[${this.service_name}] All database tables dropped successfully`);
285
+ }
286
+ catch (error) {
287
+ logger.error(`[${this.service_name}] Failed to drop database tables:`, error);
288
+ throw error;
289
+ }
290
+ }
291
+ /**
292
+ * Get all active instances (for monitoring)
293
+ */
294
+ static get_all_instances() {
295
+ return new Map(SequelizeService.instances);
296
+ }
297
+ /**
298
+ * Close all instances (for cleanup)
299
+ */
300
+ static async close_all_instances() {
301
+ const promises = Array.from(SequelizeService.instances.values()).map((instance) => instance.disconnect());
302
+ await Promise.all(promises);
303
+ SequelizeService.instances.clear();
304
+ }
305
+ }
306
+ exports.SequelizeService = SequelizeService;
307
+ SequelizeService.instances = new Map();
308
+ /**
309
+ * Default database configuration factory
310
+ */
311
+ function create_default_database_config(url, provider = "sqlite", log_queries = false) {
312
+ return {
313
+ url,
314
+ provider,
315
+ log_queries,
316
+ connection_timeout: 30000,
317
+ query_timeout: 10000,
318
+ pool: {
319
+ max: 10,
320
+ min: 0,
321
+ acquire: 30000,
322
+ idle: 10000,
323
+ },
324
+ };
325
+ }
326
+ /**
327
+ * Create Sequelize service with default configuration
328
+ */
329
+ function create_sequelize_service(service_name, database_url, options = {}) {
330
+ const default_config = create_default_database_config(database_url);
331
+ const service_options = {
332
+ database_config: default_config,
333
+ enable_performance_monitoring: true,
334
+ slow_query_threshold_ms: 1000,
335
+ ...options,
336
+ };
337
+ return SequelizeService.get_instance(service_name, service_options);
338
+ }
339
+ //# sourceMappingURL=sequelize-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequelize-service.js","sourceRoot":"","sources":["../../../src/lib/utils/sequelize-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @fileoverview Tool Call Extractor
3
+ *
4
+ * Extracts tool call results from GenerateContentResponse.automaticFunctionCallingHistory
5
+ * Matches function calls with their responses and formats them for context storage.
6
+ *
7
+ * @author MeasureOne, Inc.
8
+ * @version 1.0.0
9
+ */
10
+ import type { GenerateContentResponse } from "@google/genai";
11
+ /**
12
+ * Tool result entry extracted from automaticFunctionCallingHistory
13
+ */
14
+ export interface ExtractedToolResult {
15
+ call_id: string;
16
+ tool_name: string;
17
+ result: any;
18
+ execution_time_ms: number;
19
+ success: boolean;
20
+ error?: {
21
+ message: string;
22
+ type?: string;
23
+ };
24
+ }
25
+ /**
26
+ * Extract tool call results from GenerateContentResponse.automaticFunctionCallingHistory
27
+ *
28
+ * The history alternates between function calls and their responses:
29
+ * - functionCall: Contains the tool name and arguments
30
+ * - functionResponse: Contains the tool result
31
+ *
32
+ * @param response - GenerateContentResponse from Gemini API
33
+ * @returns Array of extracted tool results
34
+ */
35
+ export declare function extract_tool_results_from_history(response: GenerateContentResponse): ExtractedToolResult[];
36
+ //# sourceMappingURL=tool-call-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-call-extractor.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/tool-call-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAiB,MAAM,eAAe,CAAC;AAK5E;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,GAAG,CAAC;IACZ,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,CAChD,QAAQ,EAAE,uBAAuB,GAC/B,mBAAmB,EAAE,CA+GvB"}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Tool Call Extractor
4
+ *
5
+ * Extracts tool call results from GenerateContentResponse.automaticFunctionCallingHistory
6
+ * Matches function calls with their responses and formats them for context storage.
7
+ *
8
+ * @author MeasureOne, Inc.
9
+ * @version 1.0.0
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.extract_tool_results_from_history = extract_tool_results_from_history;
13
+ const logger_1 = require("./logger");
14
+ const logger = (0, logger_1.create_compact_logger)('tool-call-extractor');
15
+ /**
16
+ * Extract tool call results from GenerateContentResponse.automaticFunctionCallingHistory
17
+ *
18
+ * The history alternates between function calls and their responses:
19
+ * - functionCall: Contains the tool name and arguments
20
+ * - functionResponse: Contains the tool result
21
+ *
22
+ * @param response - GenerateContentResponse from Gemini API
23
+ * @returns Array of extracted tool results
24
+ */
25
+ function extract_tool_results_from_history(response) {
26
+ const results = [];
27
+ if (!response.automaticFunctionCallingHistory || response.automaticFunctionCallingHistory.length === 0) {
28
+ logger.debug('No automaticFunctionCallingHistory found in response');
29
+ return results;
30
+ }
31
+ const history = response.automaticFunctionCallingHistory;
32
+ logger.debug(`Extracting tool results from ${history.length} history entries`);
33
+ // Track function calls and match them with responses
34
+ const pending_calls = new Map();
35
+ for (let i = 0; i < history.length; i++) {
36
+ const content = history[i];
37
+ if (!content.parts || content.parts.length === 0) {
38
+ continue;
39
+ }
40
+ for (const part of content.parts) {
41
+ // Check for function call (request)
42
+ if (part.functionCall) {
43
+ const call = part.functionCall;
44
+ const call_id = call.id || `call_${i}_${Date.now()}`;
45
+ const tool_name = call.name || 'unknown';
46
+ const args = call.args || {};
47
+ pending_calls.set(call_id, {
48
+ name: tool_name,
49
+ args: args,
50
+ timestamp: Date.now()
51
+ });
52
+ logger.debug(`Found function call: ${tool_name} (id: ${call_id})`);
53
+ }
54
+ // Check for function response (result)
55
+ if (part.functionResponse) {
56
+ const response_data = part.functionResponse;
57
+ const tool_name = response_data.name || 'unknown';
58
+ const response_result = response_data.response || {};
59
+ const response_id = response_data.id; // FunctionResponse may have id
60
+ // Try to match by id first, then by name
61
+ let matched_call = null;
62
+ let call_id = response_id;
63
+ if (response_id && pending_calls.has(response_id)) {
64
+ matched_call = pending_calls.get(response_id);
65
+ pending_calls.delete(response_id);
66
+ }
67
+ else {
68
+ // Match by name (find the most recent pending call with matching name)
69
+ for (const [id, call] of pending_calls.entries()) {
70
+ if (call.name === tool_name) {
71
+ matched_call = call;
72
+ call_id = id;
73
+ pending_calls.delete(id);
74
+ break;
75
+ }
76
+ }
77
+ }
78
+ if (matched_call) {
79
+ const execution_time_ms = Date.now() - matched_call.timestamp;
80
+ // Determine success based on response structure
81
+ // If response has an error field, it's a failure
82
+ const has_error = response_result && (response_result.error ||
83
+ response_result.error_message ||
84
+ response_result.success === false);
85
+ const tool_result = {
86
+ call_id: call_id, // Store the call ID
87
+ tool_name: tool_name,
88
+ result: response_result,
89
+ execution_time_ms: execution_time_ms,
90
+ success: !has_error,
91
+ error: has_error ? {
92
+ message: response_result.error_message || response_result.error || 'Unknown error',
93
+ type: 'execution_error'
94
+ } : undefined
95
+ };
96
+ results.push(tool_result);
97
+ logger.debug(`Extracted tool result: ${tool_name} (id: ${call_id}, ${execution_time_ms}ms, success: ${!has_error})`);
98
+ }
99
+ else {
100
+ logger.warn(`Could not match function response for ${tool_name} - no pending call found`);
101
+ // Still add the result even if we can't match the call
102
+ const fallback_id = `fallback_${i}_${Date.now()}`;
103
+ results.push({
104
+ call_id: fallback_id,
105
+ tool_name: tool_name,
106
+ result: response_result,
107
+ execution_time_ms: 0, // Unknown execution time
108
+ success: true, // Assume success if we can't determine
109
+ });
110
+ }
111
+ }
112
+ }
113
+ }
114
+ // Log any unmatched calls
115
+ if (pending_calls.size > 0) {
116
+ logger.warn(`Found ${pending_calls.size} unmatched function call(s): ${Array.from(pending_calls.values()).map(c => c.name).join(', ')}`);
117
+ }
118
+ logger.info(`Extracted ${results.length} tool result(s) from automaticFunctionCallingHistory`);
119
+ return results;
120
+ }
121
+ //# sourceMappingURL=tool-call-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-call-extractor.js","sourceRoot":"","sources":["../../../src/lib/utils/tool-call-extractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @fileoverview Zod to JSON Schema Converter
3
+ *
4
+ * Uses native Zod v4 z.toJSONSchema() for converting Zod schemas
5
+ * to JSON Schema format for use with Gemini API.
6
+ *
7
+ * Reference: https://zod.dev/json-schema
8
+ */
9
+ import { z } from "zod";
10
+ /**
11
+ * Convert a Zod schema to JSON Schema format for Gemini API
12
+ * @param schema - Zod schema to convert
13
+ * @param name - Optional name for the schema (unused with native method)
14
+ * @returns JSON Schema object compatible with Gemini API
15
+ */
16
+ export declare function convertZodToJsonSchema(schema: z.ZodTypeAny, name?: string): any;
17
+ //# sourceMappingURL=zod-to-json-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod-to-json-schema.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/zod-to-json-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,GAAG,CA+B/E"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Zod to JSON Schema Converter
4
+ *
5
+ * Uses native Zod v4 z.toJSONSchema() for converting Zod schemas
6
+ * to JSON Schema format for use with Gemini API.
7
+ *
8
+ * Reference: https://zod.dev/json-schema
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.convertZodToJsonSchema = convertZodToJsonSchema;
12
+ const zod_1 = require("zod");
13
+ /**
14
+ * Convert a Zod schema to JSON Schema format for Gemini API
15
+ * @param schema - Zod schema to convert
16
+ * @param name - Optional name for the schema (unused with native method)
17
+ * @returns JSON Schema object compatible with Gemini API
18
+ */
19
+ function convertZodToJsonSchema(schema, name) {
20
+ // Use native Zod v4 toJSONSchema method
21
+ // Reference: https://zod.dev/json-schema
22
+ const json_schema = zod_1.z.toJSONSchema(schema, {
23
+ target: 'draft-07', // JSON Schema Draft 7
24
+ reused: 'inline', // Inline reused schemas (no $defs)
25
+ cycles: 'ref', // Handle cycles with $ref (shouldn't occur in our schemas)
26
+ unrepresentable: 'throw', // Throw error for unrepresentable types
27
+ });
28
+ // Clean up for Gemini API compatibility
29
+ // Gemini doesn't accept certain fields: $schema, $defs, definitions, additionalProperties
30
+ const clean_for_gemini = (obj) => {
31
+ if (!obj || typeof obj !== 'object')
32
+ return obj;
33
+ if (Array.isArray(obj))
34
+ return obj.map(clean_for_gemini);
35
+ const result = {};
36
+ for (const [key, value] of Object.entries(obj)) {
37
+ // Skip fields Gemini doesn't accept
38
+ if (key === '$schema')
39
+ continue;
40
+ if (key === '$defs')
41
+ continue;
42
+ if (key === 'definitions')
43
+ continue;
44
+ if (key === 'additionalProperties')
45
+ continue; // ← Gemini rejects this field
46
+ // Recursively clean nested objects
47
+ result[key] = (value && typeof value === 'object') ? clean_for_gemini(value) : value;
48
+ }
49
+ return result;
50
+ };
51
+ return clean_for_gemini(json_schema);
52
+ }
53
+ //# sourceMappingURL=zod-to-json-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod-to-json-schema.js","sourceRoot":"","sources":["../../../src/lib/utils/zod-to-json-schema.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAUH,wDA+BC;AAvCD,6BAAwB;AAExB;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,MAAoB,EAAE,IAAa;IACzE,wCAAwC;IACxC,yCAAyC;IACzC,MAAM,WAAW,GAAG,OAAC,CAAC,YAAY,CAAC,MAAM,EAAE;QAC1C,MAAM,EAAE,UAAU,EAAS,sBAAsB;QACjD,MAAM,EAAE,QAAQ,EAAY,mCAAmC;QAC/D,MAAM,EAAE,KAAK,EAAe,2DAA2D;QACvF,eAAe,EAAE,OAAO,EAAI,wCAAwC;KACpE,CAAC,CAAC;IAEH,wCAAwC;IACxC,0FAA0F;IAC1F,MAAM,gBAAgB,GAAG,CAAC,GAAQ,EAAO,EAAE;QAC1C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC;QAChD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAEzD,MAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,oCAAoC;YACpC,IAAI,GAAG,KAAK,SAAS;gBAAE,SAAS;YAChC,IAAI,GAAG,KAAK,OAAO;gBAAE,SAAS;YAC9B,IAAI,GAAG,KAAK,aAAa;gBAAE,SAAS;YACpC,IAAI,GAAG,KAAK,sBAAsB;gBAAE,SAAS,CAAE,8BAA8B;YAE7E,mCAAmC;YACnC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACtF,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC,CAAC;IAEF,OAAO,gBAAgB,CAAC,WAAW,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @fileoverview AgentRequest Sequelize Model
3
+ *
4
+ * Sequelize model definition for AgentRequest based on shared types.
5
+ * Provides database mapping for agent request entities with comprehensive logging.
6
+ *
7
+ * @author MeasureOne, Inc.
8
+ * @version 1.0.0
9
+ */
10
+ import { Model, Optional } from "sequelize";
11
+ import { AgentRequest } from "../lib/schemas";
12
+ interface AgentRequestAttributes {
13
+ id: string;
14
+ application_id: string;
15
+ type: "CHAT" | "TASK" | "ANALYSIS" | "PROCESSING";
16
+ policy?: string;
17
+ created_at: Date;
18
+ updated_at: Date;
19
+ }
20
+ interface AgentRequestCreationAttributes extends Optional<AgentRequestAttributes, "id" | "created_at" | "updated_at"> {
21
+ }
22
+ export declare class AgentRequestModel extends Model<AgentRequestAttributes, AgentRequestCreationAttributes> implements AgentRequestAttributes {
23
+ id: string;
24
+ application_id: string;
25
+ type: "CHAT" | "TASK" | "ANALYSIS" | "PROCESSING";
26
+ policy?: string;
27
+ created_at: Date;
28
+ updated_at: Date;
29
+ to_shared_type(): AgentRequest;
30
+ static from_shared_type(agent_request: any): Partial<AgentRequestAttributes>;
31
+ }
32
+ export default AgentRequestModel;
33
+ //# sourceMappingURL=AgentRequest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentRequest.d.ts","sourceRoot":"","sources":["../../src/models/AgentRequest.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAa,KAAK,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAK9C,UAAU,sBAAsB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,YAAY,CAAC;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;CAClB;AAGD,UAAU,8BAA+B,SAAQ,QAAQ,CAAC,sBAAsB,EAAE,IAAI,GAAG,YAAY,GAAG,YAAY,CAAC;CAAI;AAGzH,qBAAa,iBACX,SAAQ,KAAK,CAAC,sBAAsB,EAAE,8BAA8B,CACpE,YAAW,sBAAsB;IAC1B,EAAE,EAAG,MAAM,CAAC;IACZ,cAAc,EAAG,MAAM,CAAC;IACxB,IAAI,EAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,YAAY,CAAC;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAG,IAAI,CAAC;IAClB,UAAU,EAAG,IAAI,CAAC;IAGlB,cAAc,IAAI,YAAY;WAoBvB,gBAAgB,CAAC,aAAa,EAAE,GAAG,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAQpF;AAKD,eAAe,iBAAiB,CAAC"}