@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,378 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Base Controller Class - Shared across MeasureOne Services
4
+ *
5
+ * Parent Controller class to be extended by all controllers to use common controller methods.
6
+ * Provides standardized error handling, response formatting, and API response management.
7
+ *
8
+ * @author MeasureOne, Inc.
9
+ * @version 1.0.0
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.BaseController = void 0;
13
+ const app_constants_1 = require("../lib/app-constants");
14
+ const app_exceptions_1 = require("../lib/exceptions/app-exceptions");
15
+ const logger_1 = require("../lib/utils/logger");
16
+ /**
17
+ * Base Controller Class
18
+ *
19
+ * Provides common controller functionality including error handling,
20
+ * response formatting, and standardized API responses.
21
+ */
22
+ class BaseController {
23
+ constructor(service_name = 'BaseService', version = '1.0.0') {
24
+ this.service_name = service_name;
25
+ this.version = version;
26
+ this.logger = (0, logger_1.create_default_logger)(service_name, version);
27
+ }
28
+ /**
29
+ * Helper function to be used as controller route catch blocks.
30
+ * Performs an instanceof check to see if error is of type BaseAppException.
31
+ * If matched, sends HTTP response with information contained in error object.
32
+ * If not found, calls next and lets error proceed to next middleware.
33
+ *
34
+ * @param err - Error object to handle
35
+ * @param res - Express HTTP response object
36
+ * @param next - Express next callback function
37
+ */
38
+ handle_error_response(err, res, next) {
39
+ if (err instanceof app_exceptions_1.BaseAppException) {
40
+ const response_obj = {
41
+ success: false,
42
+ message: err.message,
43
+ data: null,
44
+ timestamp: new Date().toISOString(),
45
+ version: this.version,
46
+ error: {
47
+ code: err.error_code,
48
+ message: err.message,
49
+ details: err.details,
50
+ timestamp: new Date().toISOString(),
51
+ service: this.service_name
52
+ }
53
+ };
54
+ return res.status(err.http_status).json(response_obj);
55
+ }
56
+ // If not of type BaseAppException, pass error to next middleware
57
+ next(err);
58
+ }
59
+ /**
60
+ * Create a standardized success response
61
+ *
62
+ * @param res - Express response object
63
+ * @param data - Data to include in response
64
+ * @param message - Success message (optional)
65
+ * @param status - HTTP status code (default: 200)
66
+ * @returns HTTP response
67
+ */
68
+ static send_success_response(res, data, message, status = app_constants_1.HTTP_STATUS.OK) {
69
+ const response_obj = {
70
+ success: true,
71
+ message: message || 'Request completed successfully',
72
+ data: data || null,
73
+ timestamp: new Date().toISOString(),
74
+ version: '1.0.0'
75
+ };
76
+ return res.status(status).json(response_obj);
77
+ }
78
+ /**
79
+ * Instance method for success response
80
+ */
81
+ send_success_response(res, data, message, status = app_constants_1.HTTP_STATUS.OK) {
82
+ return BaseController.send_success_response(res, data, message, status);
83
+ }
84
+ /**
85
+ * Create a standardized error response
86
+ *
87
+ * @param res - Express response object
88
+ * @param error - Error object or message
89
+ * @param status - HTTP status code (default: 500)
90
+ * @returns HTTP response
91
+ */
92
+ static send_error_response(res, error, status = app_constants_1.HTTP_STATUS.INTERNAL_SERVER_ERROR) {
93
+ let error_code = app_constants_1.ERROR_CODES.INTERNAL_ERROR;
94
+ let error_message = 'Internal server error occurred';
95
+ let error_status = status;
96
+ let error_details = {};
97
+ if (error instanceof app_exceptions_1.BaseAppException) {
98
+ error_code = error.error_code;
99
+ error_message = error.message;
100
+ error_status = error.http_status;
101
+ error_details = error.details;
102
+ }
103
+ else if (error instanceof Error) {
104
+ error_message = error.message;
105
+ }
106
+ else if (typeof error === 'string') {
107
+ error_message = error;
108
+ }
109
+ const error_info = {
110
+ success: false,
111
+ error: {
112
+ code: error_code,
113
+ message: error_message,
114
+ details: error_details,
115
+ timestamp: new Date().toISOString(),
116
+ service: 'MeasureOne'
117
+ },
118
+ message: error_message,
119
+ timestamp: new Date().toISOString(),
120
+ version: '1.0.0'
121
+ };
122
+ const response_obj = {
123
+ success: false,
124
+ message: error_message,
125
+ data: null,
126
+ timestamp: new Date().toISOString(),
127
+ version: '1.0.0',
128
+ error: error_info.error
129
+ };
130
+ return res.status(error_status).json(response_obj);
131
+ }
132
+ /**
133
+ * Instance method for error response
134
+ */
135
+ send_error_response(res, error, status = app_constants_1.HTTP_STATUS.INTERNAL_SERVER_ERROR) {
136
+ return BaseController.send_error_response(res, error, status);
137
+ }
138
+ /**
139
+ * Create a validation error response
140
+ *
141
+ * @param res - Express response object
142
+ * @param validation_errors - Array of validation error messages
143
+ * @returns HTTP response
144
+ */
145
+ static send_validation_error_response(res, validation_errors) {
146
+ const error_info = {
147
+ success: false,
148
+ error: {
149
+ code: app_constants_1.ERROR_CODES.VALIDATION_FAILED,
150
+ message: 'Request validation failed',
151
+ details: { validation_errors },
152
+ timestamp: new Date().toISOString(),
153
+ service: 'MeasureOne'
154
+ },
155
+ message: 'Request validation failed',
156
+ timestamp: new Date().toISOString(),
157
+ version: '1.0.0'
158
+ };
159
+ const response_obj = {
160
+ success: false,
161
+ message: 'Request validation failed',
162
+ data: null,
163
+ timestamp: new Date().toISOString(),
164
+ version: '1.0.0',
165
+ error: error_info.error
166
+ };
167
+ return res.status(app_constants_1.HTTP_STATUS.BAD_REQUEST).json(response_obj);
168
+ }
169
+ /**
170
+ * Instance method for validation error response
171
+ */
172
+ send_validation_error_response(res, validation_errors) {
173
+ return BaseController.send_validation_error_response(res, validation_errors);
174
+ }
175
+ /**
176
+ * Create a paginated response
177
+ *
178
+ * @param res - Express response object
179
+ * @param data - Array of data items
180
+ * @param pagination - Pagination information
181
+ * @param message - Success message (optional)
182
+ * @returns HTTP response
183
+ */
184
+ static send_paginated_response(res, data, pagination, message) {
185
+ const response_obj = {
186
+ success: true,
187
+ message: message || 'Request completed successfully',
188
+ data,
189
+ timestamp: new Date().toISOString(),
190
+ version: '1.0.0',
191
+ pagination
192
+ };
193
+ return res.status(app_constants_1.HTTP_STATUS.OK).json(response_obj);
194
+ }
195
+ /**
196
+ * Instance method for paginated response
197
+ */
198
+ send_paginated_response(res, data, pagination, message) {
199
+ return BaseController.send_paginated_response(res, data, pagination, message);
200
+ }
201
+ /**
202
+ * Execute an operation with automatic error handling
203
+ *
204
+ * @param res - Express response object
205
+ * @param operation - Async operation to execute
206
+ * @param success_message - Message for successful response
207
+ * @param success_status - HTTP status for successful response
208
+ */
209
+ async execute_with_error_handling(res, operation, success_message, success_status = app_constants_1.HTTP_STATUS.OK) {
210
+ try {
211
+ const result = await operation();
212
+ this.send_success_response(res, result, success_message, success_status);
213
+ }
214
+ catch (error) {
215
+ if (error instanceof app_exceptions_1.BaseAppException) {
216
+ this.send_error_response(res, error);
217
+ }
218
+ else if (error instanceof Error) {
219
+ this.send_error_response(res, error, app_constants_1.HTTP_STATUS.INTERNAL_SERVER_ERROR);
220
+ }
221
+ else {
222
+ this.send_error_response(res, 'An unexpected error occurred', app_constants_1.HTTP_STATUS.INTERNAL_SERVER_ERROR);
223
+ }
224
+ }
225
+ }
226
+ /**
227
+ * Validate request body exists and is not empty
228
+ *
229
+ * @param req - Express request object
230
+ * @throws ValidationException if body is missing or empty
231
+ */
232
+ validate_request_body(req) {
233
+ if (!req.body || Object.keys(req.body).length === 0) {
234
+ throw new app_exceptions_1.ValidationException('Request body is required', {
235
+ field: 'body',
236
+ received: req.body
237
+ });
238
+ }
239
+ }
240
+ /**
241
+ * Extract pagination parameters from request
242
+ *
243
+ * @param req - Express request object
244
+ * @returns Pagination parameters with defaults
245
+ */
246
+ extract_pagination_params(req) {
247
+ const page = Math.max(1, parseInt(req.query['page']) || 1);
248
+ const limit = Math.min(1000, Math.max(1, parseInt(req.query['limit']) || 50));
249
+ const offset = (page - 1) * limit;
250
+ return { page, limit, offset };
251
+ }
252
+ /**
253
+ * Extract sorting parameters from request
254
+ *
255
+ * @param req - Express request object
256
+ * @param allowed_fields - Array of allowed sort fields
257
+ * @returns Sorting parameters
258
+ */
259
+ extract_sorting_params(req, allowed_fields = []) {
260
+ const sort_by = req.query['sort_by'];
261
+ const sort_order = req.query['sort_order']?.toLowerCase() === 'desc' ? 'desc' : 'asc';
262
+ if (sort_by && allowed_fields.length > 0 && !allowed_fields.includes(sort_by)) {
263
+ throw new app_exceptions_1.ValidationException(`Invalid sort field: ${sort_by}`, {
264
+ field: 'sort_by',
265
+ allowed_values: allowed_fields,
266
+ received: sort_by
267
+ });
268
+ }
269
+ return { sort_by, sort_order };
270
+ }
271
+ /**
272
+ * Calculate pagination metadata
273
+ *
274
+ * @param total - Total number of items
275
+ * @param page - Current page number
276
+ * @param limit - Items per page
277
+ * @returns Pagination metadata
278
+ */
279
+ calculate_pagination_metadata(total, page, limit) {
280
+ const total_pages = Math.ceil(total / limit);
281
+ const has_next = page < total_pages;
282
+ const has_prev = page > 1;
283
+ const offset = (page - 1) * limit;
284
+ return {
285
+ page,
286
+ limit,
287
+ offset,
288
+ total,
289
+ total_pages,
290
+ has_next,
291
+ has_prev
292
+ };
293
+ }
294
+ // ============================================================================
295
+ // LOGGING METHODS
296
+ // ============================================================================
297
+ /**
298
+ * Log incoming request details
299
+ *
300
+ * @param req - Express request object
301
+ * @param method_name - Name of the controller method being called
302
+ */
303
+ log_request(req, method_name) {
304
+ this.logger.info(`${method_name} - Request received`, {
305
+ method: req.method,
306
+ url: req.url,
307
+ user_agent: req.get('User-Agent'),
308
+ ip: req.ip,
309
+ body_size: req.body ? JSON.stringify(req.body).length : 0,
310
+ query_params: Object.keys(req.query).length > 0 ? req.query : undefined,
311
+ headers: {
312
+ content_type: req.get('Content-Type'),
313
+ authorization: req.get('Authorization') ? '[REDACTED]' : undefined
314
+ }
315
+ });
316
+ }
317
+ /**
318
+ * Log request and response details
319
+ *
320
+ * @param req - Express request object
321
+ * @param res - Express response object
322
+ * @param method_name - Name of the controller method being called
323
+ */
324
+ log_request_response(req, res, method_name) {
325
+ const start_time = Date.now();
326
+ const logger = this.logger;
327
+ // Log request
328
+ this.log_request(req, method_name);
329
+ // Hook into response finish event to log response
330
+ const original_send = res.send;
331
+ res.send = function (body) {
332
+ const end_time = Date.now();
333
+ const duration = end_time - start_time;
334
+ // Log response details
335
+ logger.info(`${method_name} - Response sent`, {
336
+ status_code: res.statusCode,
337
+ duration_ms: duration,
338
+ response_size: body ? JSON.stringify(body).length : 0,
339
+ headers: {
340
+ content_type: res.get('Content-Type')
341
+ }
342
+ });
343
+ return original_send.call(this, body);
344
+ };
345
+ }
346
+ /**
347
+ * Log error details
348
+ *
349
+ * @param error - Error object
350
+ * @param method_name - Name of the controller method where error occurred
351
+ * @param req - Express request object (optional)
352
+ */
353
+ log_error(error, method_name, req) {
354
+ const error_details = {
355
+ method: method_name,
356
+ error_message: error instanceof Error ? error.message : String(error),
357
+ error_type: error.constructor.name,
358
+ stack: error instanceof Error ? error.stack : undefined
359
+ };
360
+ if (req) {
361
+ error_details.request = {
362
+ method: req.method,
363
+ url: req.url,
364
+ ip: req.ip,
365
+ user_agent: req.get('User-Agent')
366
+ };
367
+ }
368
+ if (error instanceof app_exceptions_1.BaseAppException) {
369
+ error_details.error_code = error.error_code;
370
+ error_details.http_status = error.http_status;
371
+ error_details.details = error.details;
372
+ }
373
+ this.logger.error(`${method_name} - Error occurred`, error_details);
374
+ }
375
+ }
376
+ exports.BaseController = BaseController;
377
+ exports.default = BaseController;
378
+ //# sourceMappingURL=base.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.controller.js","sourceRoot":"","sources":["../../src/controllers/base.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @fileoverview Agent Controller
3
+ *
4
+ * Controller for handling agent request operations.
5
+ * Follows pixie validation pattern.
6
+ *
7
+ * @author MeasureOne, Inc.
8
+ * @version 1.0.0
9
+ */
10
+ import { Request, Response, NextFunction } from "express";
11
+ import { BaseController } from "./base.controller";
12
+ export declare class ConversationController extends BaseController {
13
+ private conversation_service;
14
+ private sdk;
15
+ constructor();
16
+ /**
17
+ * Submit a message to a conversation. Loads conversation history from database and appends new message
18
+ * Always uses streaming response (NDJSON format)
19
+ * Follows pixie validation pattern
20
+ */
21
+ submit_message(req: Request, res: Response, next: NextFunction): Promise<void>;
22
+ /**
23
+ * Validate submit message request data
24
+ * Checks that agent_request_id, conversation_id exist in DB
25
+ * Validates conversation belongs to agent_request
26
+ * If step_id is provided, validates it exists in DB
27
+ * Returns validation result with error message if validation fails
28
+ */
29
+ private validate_incoming_message;
30
+ }
31
+ //# sourceMappingURL=conversations.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversations.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/conversations.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AASnD,qBAAa,sBAAuB,SAAQ,cAAc;IACtD,OAAO,CAAC,oBAAoB,CAAsB;IAClD,OAAO,CAAC,GAAG,CAAY;;IAQvB;;;;OAIG;IACG,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA4DpF;;;;;;OAMG;YACW,yBAAyB;CAiE1C"}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Agent Controller
4
+ *
5
+ * Controller for handling agent request operations.
6
+ * Follows pixie validation pattern.
7
+ *
8
+ * @author MeasureOne, Inc.
9
+ * @version 1.0.0
10
+ */
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ConversationController = void 0;
16
+ const express_validator_1 = require("express-validator");
17
+ const base_controller_1 = require("./base.controller");
18
+ const logger_1 = require("../lib/utils/logger");
19
+ const conversation_service_1 = __importDefault(require("../services/conversation.service"));
20
+ const streaming_utils_1 = require("../lib/streaming-utils");
21
+ const controller_utils_1 = require("../lib/controller-utils");
22
+ const savant_sdk_1 = require("../sdk/savant.sdk");
23
+ const logger = (0, logger_1.create_compact_logger)("agents:conversation-controller");
24
+ class ConversationController extends base_controller_1.BaseController {
25
+ constructor() {
26
+ super();
27
+ this.conversation_service = new conversation_service_1.default();
28
+ this.sdk = new savant_sdk_1.SavantSDK();
29
+ }
30
+ /**
31
+ * Submit a message to a conversation. Loads conversation history from database and appends new message
32
+ * Always uses streaming response (NDJSON format)
33
+ * Follows pixie validation pattern
34
+ */
35
+ async submit_message(req, res, next) {
36
+ try {
37
+ // Check if there's any validation error (pixie pattern)
38
+ let err = (0, express_validator_1.validationResult)(req);
39
+ if (!err.isEmpty()) {
40
+ return (0, controller_utils_1.handle_error_response)((0, controller_utils_1.get_error)("general", "badRequest", undefined, err.array()), res, next);
41
+ }
42
+ this.logger.info('Submitting message to conversation', { request: req.body });
43
+ // Request body uses conversation_id (maps to Conversation.id) and message (singular)
44
+ // We adapt it to Conversation structure for type safety
45
+ const { agent_request_id, conversation_id, message, step_id } = req.body;
46
+ // Validate request data (agent_request_id, conversation_id, step_id)
47
+ const validation_result = await this.validate_incoming_message({
48
+ agent_request_id,
49
+ conversation_id,
50
+ step_id
51
+ });
52
+ if (!validation_result.isValid) {
53
+ // Return error response in pixie format
54
+ return (0, controller_utils_1.handle_error_response)((0, controller_utils_1.get_error)("general", "badRequest", validation_result.errorMessage, validation_result.errorDetails), res, next);
55
+ }
56
+ // Always use streaming for submit_message endpoint
57
+ const streaming_utils = new streaming_utils_1.StreamingUtils(res, req);
58
+ // Pass the conversation data to the service
59
+ // Service will load full conversation history from database and append the new message
60
+ await this.sdk.submit_message({
61
+ agent_request_id,
62
+ conversation_id,
63
+ message,
64
+ step_id,
65
+ }, streaming_utils);
66
+ // The service will emit 'final_response' and then 'end'. Cleanup happens in the callback.
67
+ }
68
+ catch (error) {
69
+ // Handle streaming errors
70
+ (0, streaming_utils_1.handle_stream_error)(res, error);
71
+ }
72
+ }
73
+ /**
74
+ * Validate submit message request data
75
+ * Checks that agent_request_id, conversation_id exist in DB
76
+ * Validates conversation belongs to agent_request
77
+ * If step_id is provided, validates it exists in DB
78
+ * Returns validation result with error message if validation fails
79
+ */
80
+ async validate_incoming_message(data) {
81
+ this.logger.info('🔍 Validating submit message data', {
82
+ agent_request_id: data.agent_request_id,
83
+ conversation_id: data.conversation_id,
84
+ step_id: data.step_id
85
+ });
86
+ // Validate that agent_request_id exists in DB
87
+ const agent_request = await this.conversation_service.find_agent_request(data.agent_request_id);
88
+ if (!agent_request) {
89
+ this.logger.warn('❌ Agent request not found', { agent_request_id: data.agent_request_id });
90
+ return {
91
+ isValid: false,
92
+ errorMessage: `Agent request not found: ${data.agent_request_id}`,
93
+ errorDetails: { agent_request_id: data.agent_request_id, field: 'agent_request_id' }
94
+ };
95
+ }
96
+ // Validate that conversation_id exists in DB
97
+ const conversation = await this.conversation_service.find_conversation(data.conversation_id);
98
+ if (!conversation) {
99
+ this.logger.warn('❌ Conversation not found', { conversation_id: data.conversation_id });
100
+ return {
101
+ isValid: false,
102
+ errorMessage: `Conversation not found: ${data.conversation_id}`,
103
+ errorDetails: { conversation_id: data.conversation_id, field: 'conversation_id' }
104
+ };
105
+ }
106
+ // Validate that conversation belongs to the agent_request
107
+ if (conversation.agent_request_id !== data.agent_request_id) {
108
+ this.logger.warn('❌ Conversation does not belong to agent request', {
109
+ conversation_id: data.conversation_id,
110
+ agent_request_id: data.agent_request_id
111
+ });
112
+ return {
113
+ isValid: false,
114
+ errorMessage: `Conversation ${data.conversation_id} does not belong to agent request ${data.agent_request_id}`,
115
+ errorDetails: {
116
+ conversation_id: data.conversation_id,
117
+ agent_request_id: data.agent_request_id,
118
+ field: 'conversation_id'
119
+ }
120
+ };
121
+ }
122
+ // If step_id is provided, validate that it exists in DB
123
+ if (data.step_id) {
124
+ const plan_step = await this.conversation_service.find_plan_step(data.step_id);
125
+ if (!plan_step) {
126
+ this.logger.warn('❌ Plan step not found', { step_id: data.step_id });
127
+ return {
128
+ isValid: false,
129
+ errorMessage: `Plan step not found: ${data.step_id}`,
130
+ errorDetails: { step_id: data.step_id, field: 'step_id' }
131
+ };
132
+ }
133
+ }
134
+ return { isValid: true };
135
+ }
136
+ }
137
+ exports.ConversationController = ConversationController;
138
+ //# sourceMappingURL=conversations.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversations.controller.js","sourceRoot":"","sources":["../../src/controllers/conversations.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @fileoverview Knowledge Controller
3
+ *
4
+ * Controller for handling Knowledge HTTP requests.
5
+ * Extends BaseController from shared-utils for consistent API patterns.
6
+ *
7
+ * @author MeasureOne, Inc.
8
+ * @version 1.0.0
9
+ */
10
+ import { Request, Response, NextFunction } from "express";
11
+ import { BaseController } from "./base.controller";
12
+ export declare class KnowledgeController extends BaseController {
13
+ private knowledge_service;
14
+ private file_upload_service;
15
+ private embedding_service;
16
+ private audit_log_service;
17
+ private sdk;
18
+ constructor();
19
+ /**
20
+ * Upload file and return file_id
21
+ * POST /knowledge/upload
22
+ */
23
+ upload_file(req: Request, res: Response): Promise<void>;
24
+ /**
25
+ * Create a new knowledge
26
+ * POST /v3/knowledge/new
27
+ *
28
+ * Now accepts source_data with array of file IDs:
29
+ * { source_data: [{ id: "file_id_1" }, { id: "file_id_2" }] }
30
+ *
31
+ * IMPORTANT: Domain is NEVER accepted from request body.
32
+ * Domain is ALWAYS identified using AI (DomainIdentifierService) from the seed content.
33
+ */
34
+ create_knowledge(req: Request, res: Response): Promise<void>;
35
+ /**
36
+ * Get knowledge by ID
37
+ * POST /v3/knowledge/get_by_id
38
+ */
39
+ get_knowledge_by_id(req: Request, res: Response): Promise<void>;
40
+ /**
41
+ * Set content for knowledge
42
+ * POST /v3/knowledge/set_content
43
+ */
44
+ set_content(req: Request, res: Response): Promise<void>;
45
+ /**
46
+ * List knowledge
47
+ * POST /v3/knowledge/list
48
+ */
49
+ list_knowledge(req: Request, res: Response): Promise<void>;
50
+ /**
51
+ * Update knowledge with revision tracking
52
+ * POST /knowledge/update
53
+ * Follows pixie validation pattern
54
+ */
55
+ update_knowledge(req: Request, res: Response, next: NextFunction): Promise<void>;
56
+ /**
57
+ * Search embeddings by query text
58
+ * POST /knowledge/search
59
+ * POST /embeddings/search (alias for MCP server compatibility)
60
+ */
61
+ search_knowledge(req: Request, res: Response): Promise<void>;
62
+ }
63
+ //# sourceMappingURL=knowledge.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/knowledge.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAYnD,qBAAa,mBAAoB,SAAQ,cAAc;IACrD,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,mBAAmB,CAAoB;IAC/C,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,iBAAiB,CAAkB;IAE3C,OAAO,CAAC,GAAG,CAAY;;IAevB;;;OAGG;IACG,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC7D;;;;;;;;;OASG;IACG,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA+ClE;;;OAGG;IACG,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBrE;;;OAGG;IACG,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B7D;;;OAGG;IACG,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAqChE;;;;OAIG;IACG,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAuHtF;;;;UAIM;IACA,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAoCnE"}