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