@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,394 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Plan Ready Handler
4
+ *
5
+ * Handles PLAN_READY message_type from AgentResponse.
6
+ * Saves plan to database and continues to executor.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.PlanReadyHandler = void 0;
10
+ const base_handler_1 = require("./base-handler");
11
+ const models_1 = require("../../models");
12
+ const uuid_1 = require("uuid");
13
+ class PlanReadyHandler extends base_handler_1.BaseHandler {
14
+ can_handle(message_type, output_type, result) {
15
+ // Primary check: message_type matches
16
+ if (message_type === 'PLAN_READY') {
17
+ return true;
18
+ }
19
+ return false;
20
+ }
21
+ async handle(input, context) {
22
+ this.logger.info('Plan ready handler received result');
23
+ // Parse AgentResponse from output_text
24
+ if (!input.content) {
25
+ this.logger.warn('⚠️ No output_text in response');
26
+ return {
27
+ success: false,
28
+ result: [],
29
+ should_continue: false
30
+ };
31
+ }
32
+ // Use base handler extraction method to handle markdown, escape sequences, etc.
33
+ // This is similar to StepCompleteHandler - handles non-JSON output robustly
34
+ const extracted = this.extract_agent_response(input.content);
35
+ if (!extracted) {
36
+ this.logger.error('❌ Failed to extract AgentResponse from output_text', {
37
+ output_text_preview: input.content.substring(0, 200)
38
+ });
39
+ }
40
+ this.logger.info('Plan ready handler extracted plan', JSON.stringify(extracted, null, 2));
41
+ const planner_response = extracted;
42
+ const plan = planner_response.plan;
43
+ if (!plan || plan.length === 0) {
44
+ this.logger.warn('⚠️ PLAN_READY but no plan in response');
45
+ return {
46
+ success: false,
47
+ result: [],
48
+ should_continue: false
49
+ };
50
+ }
51
+ // extract the conversation_id from the context
52
+ const conversation_id = context.conversation_id;
53
+ if (!conversation_id) {
54
+ this.logger.error('❌ conversation_id not provided in context');
55
+ return {
56
+ success: false,
57
+ result: [],
58
+ should_continue: false
59
+ };
60
+ }
61
+ const conversation = await models_1.ConversationModel.findByPk(conversation_id);
62
+ if (!conversation) {
63
+ this.logger.error('❌ conversation not found');
64
+ return {
65
+ success: false,
66
+ result: [],
67
+ should_continue: false
68
+ };
69
+ }
70
+ // Parse context from database (it's stored as JSON string)
71
+ let db_context = {};
72
+ if (conversation.context) {
73
+ try {
74
+ db_context = JSON.parse(conversation.context);
75
+ }
76
+ catch (e) {
77
+ this.logger.warn('⚠️ Failed to parse conversation context from database', { error: e });
78
+ db_context = {};
79
+ }
80
+ }
81
+ context = { ...context, ...db_context };
82
+ this.logger.info(`✅ Plan ready with ${plan.length} steps - saving to database`);
83
+ // Save plan to database
84
+ let plan_id;
85
+ try {
86
+ // Check if there's an existing ACTIVE plan - if so, append steps to it
87
+ const existing_plan = await models_1.PlanModel.findOne({
88
+ where: { conversation_id: conversation_id, status: 'ACTIVE' },
89
+ order: [['created_at', 'DESC']]
90
+ });
91
+ if (existing_plan) {
92
+ // Append steps to existing plan
93
+ plan_id = existing_plan.id;
94
+ await this.append_steps_to_plan(planner_response, plan_id);
95
+ this.logger.info(`✅ Appended ${plan.length} steps to existing plan: ${plan_id}`);
96
+ }
97
+ else {
98
+ // Create new plan
99
+ plan_id = await this.create_plan(planner_response, conversation_id);
100
+ }
101
+ // Update context with the plan_id (after creating or appending)
102
+ const conversation = await models_1.ConversationModel.findByPk(conversation_id);
103
+ if (conversation) {
104
+ let existing_context = {};
105
+ if (conversation.context) {
106
+ try {
107
+ existing_context = JSON.parse(conversation.context);
108
+ }
109
+ catch (e) {
110
+ this.logger.warn('⚠️ Failed to parse existing context, starting fresh');
111
+ }
112
+ }
113
+ const updated_context = { ...existing_context, plan_id: plan_id };
114
+ conversation.context = JSON.stringify(updated_context);
115
+ await conversation.save();
116
+ this.logger.info(`✅ Updated conversation context with plan_id: ${plan_id}`);
117
+ }
118
+ // Reload all steps from database to ensure we have the latest state
119
+ const all_steps_reload = await models_1.PlanStepModel.findAll({
120
+ where: { plan_id: plan_id },
121
+ order: [['step_index', 'ASC']]
122
+ });
123
+ this.logger.info(`🔍 Reloaded plan ${plan_id} with ${all_steps_reload.length} total steps`, {
124
+ steps: all_steps_reload.map(s => ({ step_index: s.step_index, status: s.status, id: s.id }))
125
+ });
126
+ // All steps are created with status: "PENDING" above
127
+ // Get the step with the smallest index that is PENDING
128
+ const next_step = await models_1.PlanStepModel.findOne({
129
+ where: {
130
+ plan_id: plan_id,
131
+ status: 'PENDING'
132
+ },
133
+ order: [['step_index', 'ASC']]
134
+ });
135
+ if (next_step) {
136
+ await next_step.update({
137
+ status: 'IN_PROGRESS',
138
+ started_at: new Date(),
139
+ updated_at: new Date()
140
+ });
141
+ this.logger.info(`✅ Marked step ${next_step.step_index} as IN_PROGRESS (smallest pending index)`);
142
+ }
143
+ this.logger.info(`✅ Plan saved to database: ${plan_id} with ${plan.length} steps`);
144
+ }
145
+ catch (error) {
146
+ this.logger.error('❌ Failed to save plan to database', { error });
147
+ return {
148
+ success: false,
149
+ result: [],
150
+ should_continue: false
151
+ };
152
+ }
153
+ // Append context to conversation history so agent can see plan info
154
+ // Get the step that was marked as IN_PROGRESS (smallest pending index)
155
+ const in_progress_step = await models_1.PlanStepModel.findOne({
156
+ where: {
157
+ plan_id: plan_id,
158
+ status: 'IN_PROGRESS'
159
+ },
160
+ order: [['step_index', 'ASC']]
161
+ });
162
+ let c = {
163
+ conversation_id: context.conversation_id,
164
+ plan_id: plan_id,
165
+ };
166
+ if (planner_response.context) {
167
+ c = { ...c, ...planner_response.context };
168
+ }
169
+ if (!in_progress_step) {
170
+ this.logger.warn('⚠️ No in_progress_step found, cannot create handler context');
171
+ return {
172
+ success: false,
173
+ result: [],
174
+ should_continue: false
175
+ };
176
+ }
177
+ // Load the plan with all its steps
178
+ const plan_model = await models_1.PlanModel.findByPk(plan_id);
179
+ if (!plan_model) {
180
+ this.logger.error('❌ Plan not found after creation');
181
+ return {
182
+ success: false,
183
+ result: [],
184
+ should_continue: false
185
+ };
186
+ }
187
+ const all_steps = await models_1.PlanStepModel.findAll({
188
+ where: { plan_id: plan_id },
189
+ order: [['step_index', 'ASC']]
190
+ });
191
+ const plan_with_steps = {
192
+ ...plan_model.to_shared_type(),
193
+ steps: all_steps.map(step => step.to_shared_type())
194
+ };
195
+ context.plan = plan_with_steps;
196
+ // Create clean context for the message - only include relevant fields, exclude internal fields
197
+ const clean_context = {
198
+ conversation_id: context.conversation_id,
199
+ plan_id: plan_id
200
+ };
201
+ // Include planner response context if available
202
+ if (planner_response.context) {
203
+ Object.assign(clean_context, planner_response.context);
204
+ }
205
+ // --- Multi-Step Knowledge Fetching ---
206
+ // Query knowledge base for ALL steps in the plan to provide complete context to the executor.
207
+ let knowledge_base_text = '';
208
+ if (context.embedding_service) {
209
+ const all_knowledge_results = [];
210
+ for (const step of all_steps) {
211
+ if (step.description) {
212
+ try {
213
+ this.logger.info(`🔍 Querying knowledge base for step ${step.step_index}: ${step.description}`);
214
+ const results = await context.embedding_service.search_embeddings(step.description, undefined, // knowledge_id - search all
215
+ 5, // limit per step to keep the prompt concise
216
+ undefined, // model - use default
217
+ undefined, // type - search all types
218
+ undefined // domain - search all domains
219
+ );
220
+ if (results.length > 0) {
221
+ all_knowledge_results.push({ step_index: step.step_index, description: step.description, results });
222
+ this.logger.info(`✅ Found ${results.length} knowledge base results for step ${step.step_index}`);
223
+ }
224
+ }
225
+ catch (error) {
226
+ this.logger.warn(`⚠️ Failed to query knowledge base for step ${step.step_index}`, { error });
227
+ }
228
+ }
229
+ }
230
+ if (all_knowledge_results.length > 0) {
231
+ knowledge_base_text = `\n\n## Knowledge Base Learnings (for the entire plan):\n`;
232
+ knowledge_base_text += all_knowledge_results.map(step_knowledge => `### For Step ${step_knowledge.step_index}: "${step_knowledge.description}"\n` +
233
+ step_knowledge.results.map((result, idx) => `${idx + 1}. ${result.text} (score: ${result.score.toFixed(3)})`).join('\n')).join('\n\n');
234
+ }
235
+ }
236
+ // End of multi-step knowledge fetching
237
+ // Format JSON for inclusion in message (using markdown code blocks to avoid escaping issues)
238
+ const context_json = JSON.stringify(clean_context, null, 2);
239
+ // Format plan JSON - only include essential plan info, not the full database object
240
+ const plan_summary = {
241
+ id: plan_with_steps.id,
242
+ intent: plan_with_steps.intent,
243
+ status: plan_with_steps.status,
244
+ steps: plan_with_steps.steps.map((step) => ({
245
+ id: step.id,
246
+ step_index: step.step_index,
247
+ description: step.description,
248
+ operation: step.operation,
249
+ status: step.status
250
+ }))
251
+ };
252
+ const plan_json = JSON.stringify(plan_summary, null, 2);
253
+ this.streaming_utils.write('status', { message: 'Plan ready - continuing to executor...' });
254
+ this.streaming_utils.write('plan', { plan: extracted.plan });
255
+ return {
256
+ success: true,
257
+ result: [
258
+ {
259
+ role: 'user',
260
+ content: `Execute the plan starting from the current IN_PROGRESS step. Continue executing subsequent steps until you encounter an error, need user input, or the plan is complete.
261
+
262
+ The full plan and relevant knowledge are provided in the context below. Use this context for parameters and guidance. If a step is unsuccessful, stop and report the failure.
263
+ ${knowledge_base_text}
264
+ ## Context:
265
+ \`\`\`json
266
+ ${context_json}
267
+ \`\`\`
268
+
269
+
270
+ `
271
+ }
272
+ ],
273
+ should_continue: true,
274
+ context: context,
275
+ message_type: 'STEP_READY' // Route to executor to execute next step
276
+ };
277
+ }
278
+ /**
279
+ * Create plan in database from planner response
280
+ * @param planner_response - The planner response containing plan data
281
+ * @param conversation_id - The conversation ID to associate the plan with
282
+ * @returns The plan_id of the created plan
283
+ */
284
+ async create_plan(planner_response, conversation_id) {
285
+ const plan = planner_response.plan;
286
+ if (!plan || plan.length === 0) {
287
+ throw new Error('Plan is empty or undefined');
288
+ }
289
+ const plan_id = `plan_${(0, uuid_1.v4)()}`;
290
+ const plan_data = models_1.PlanModel.from_shared_type({
291
+ id: plan_id,
292
+ conversation_id: conversation_id,
293
+ intent: planner_response.intent,
294
+ message: planner_response.message,
295
+ status: "ACTIVE",
296
+ created_at: new Date().toISOString(),
297
+ updated_at: new Date().toISOString(),
298
+ }); // Type assertion needed due to Partial return type
299
+ await models_1.PlanModel.create(plan_data);
300
+ // Save all steps to database
301
+ const step_promises = plan.map((step, index) => {
302
+ // Always generate a unique UUID for step ID to avoid conflicts
303
+ // step.id from plan is just a plan-local identifier, not a database ID
304
+ const step_id = `step_${(0, uuid_1.v4)()}`;
305
+ // Convert params to JSON string if it's an object/array
306
+ // The database expects params to be a string (JSON string)
307
+ const params_string = typeof step.params === 'string'
308
+ ? step.params
309
+ : JSON.stringify(step.params || {});
310
+ const step_data = models_1.PlanStepModel.from_shared_type({
311
+ id: step_id,
312
+ plan_id: plan_id,
313
+ parent_step_id: undefined, // Top-level steps have no parent
314
+ description: step.description,
315
+ tool: step.tool || null,
316
+ operation: step.operation,
317
+ params: params_string,
318
+ depends_on: step.depends_on || [],
319
+ success_check: step.success_check,
320
+ suggestions_on_failure: step.suggestions_on_failure || [],
321
+ status: "PENDING",
322
+ step_index: index,
323
+ result: undefined,
324
+ error: undefined,
325
+ started_at: undefined,
326
+ completed_at: undefined,
327
+ created_at: new Date().toISOString(),
328
+ updated_at: new Date().toISOString(),
329
+ }); // Type assertion needed due to Partial return type
330
+ return models_1.PlanStepModel.create(step_data);
331
+ });
332
+ await Promise.all(step_promises);
333
+ this.logger.info(`✅ Plan created in database: ${plan_id} with ${plan.length} steps`);
334
+ return plan_id;
335
+ }
336
+ /**
337
+ * Append steps to an existing plan
338
+ * @param planner_response - The planner response containing new steps
339
+ * @param plan_id - The existing plan ID to append steps to
340
+ */
341
+ async append_steps_to_plan(planner_response, plan_id) {
342
+ const plan = planner_response.plan;
343
+ if (!plan || plan.length === 0) {
344
+ throw new Error('Plan is empty or undefined');
345
+ }
346
+ // Update plan status to ACTIVE when appending new steps
347
+ const plan_model = await models_1.PlanModel.findByPk(plan_id);
348
+ if (plan_model) {
349
+ await plan_model.update({ status: 'ACTIVE', updated_at: new Date() });
350
+ this.logger.info(`✅ Updated plan ${plan_id} status to ACTIVE`);
351
+ }
352
+ // Get the current highest step_index to continue from
353
+ const existing_steps = await models_1.PlanStepModel.findAll({
354
+ where: { plan_id: plan_id },
355
+ order: [['step_index', 'DESC']],
356
+ limit: 1
357
+ });
358
+ const start_index = existing_steps.length > 0 ? existing_steps[0].step_index + 1 : 0;
359
+ // Save all new steps to database
360
+ const step_promises = plan.map((step, index) => {
361
+ const step_id = `step_${(0, uuid_1.v4)()}`;
362
+ const step_index = start_index + index;
363
+ // Convert params to JSON string if it's an object/array
364
+ const params_string = typeof step.params === 'string'
365
+ ? step.params
366
+ : JSON.stringify(step.params || {});
367
+ const step_data = models_1.PlanStepModel.from_shared_type({
368
+ id: step_id,
369
+ plan_id: plan_id,
370
+ parent_step_id: undefined, // Top-level steps have no parent
371
+ description: step.description,
372
+ tool: step.tool || null,
373
+ operation: step.operation,
374
+ params: params_string,
375
+ depends_on: step.depends_on || [],
376
+ success_check: step.success_check,
377
+ suggestions_on_failure: step.suggestions_on_failure || [],
378
+ status: "PENDING",
379
+ step_index: step_index,
380
+ result: undefined,
381
+ error: undefined,
382
+ started_at: undefined,
383
+ completed_at: undefined,
384
+ created_at: new Date().toISOString(),
385
+ updated_at: new Date().toISOString(),
386
+ });
387
+ return models_1.PlanStepModel.create(step_data);
388
+ });
389
+ await Promise.all(step_promises);
390
+ this.logger.info(`✅ Appended ${plan.length} steps to plan: ${plan_id} (starting from index ${start_index})`);
391
+ }
392
+ }
393
+ exports.PlanReadyHandler = PlanReadyHandler;
394
+ //# sourceMappingURL=plan-ready-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-ready-handler.js","sourceRoot":"","sources":["../../../src/ai/response_handlers/plan-ready-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @fileoverview Request Input Handler
3
+ *
4
+ * Handles REQUEST_INPUT message_type from AgentResponse.
5
+ * This is a terminal response type that breaks the execution loop
6
+ * and sends the input request to the client.
7
+ */
8
+ import { BaseHandler, HandlerContext, HandlerResult } from "./base-handler";
9
+ import { ChatMessage } from "../../lib/schemas";
10
+ export declare class RequestInputHandler extends BaseHandler {
11
+ can_handle(message_type: string | null, output_type: string, result: ChatMessage): boolean;
12
+ handle(result: ChatMessage, context: HandlerContext): Promise<HandlerResult>;
13
+ }
14
+ //# sourceMappingURL=request-input-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-input-handler.d.ts","sourceRoot":"","sources":["../../../src/ai/response_handlers/request-input-handler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAiB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE/D,qBAAa,mBAAoB,SAAQ,WAAW;IAChD,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO;IAIpF,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CAmFrF"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Request Input Handler
4
+ *
5
+ * Handles REQUEST_INPUT message_type from AgentResponse.
6
+ * This is a terminal response type that breaks the execution loop
7
+ * and sends the input request to the client.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.RequestInputHandler = void 0;
11
+ const base_handler_1 = require("./base-handler");
12
+ class RequestInputHandler extends base_handler_1.BaseHandler {
13
+ can_handle(message_type, output_type, result) {
14
+ return message_type === 'REQUEST_INPUT';
15
+ }
16
+ async handle(result, context) {
17
+ this.logger.info('Request input handler received result');
18
+ // Parse AgentResponse from text property (for GenerateContentResponse) or content (for ChatMessage)
19
+ let agent_response;
20
+ let content_str;
21
+ // It's a ChatMessage - extract from content
22
+ let content = result.content;
23
+ content_str = typeof content === 'string' ? content : JSON.stringify(content);
24
+ if (!content_str) {
25
+ this.logger.warn('⚠️ No text content in response');
26
+ return {
27
+ success: false,
28
+ result: [],
29
+ should_continue: false
30
+ };
31
+ }
32
+ // Use base handler extraction method to handle markdown, escape sequences, etc.
33
+ const extracted = this.extract_agent_response(content_str);
34
+ if (!extracted) {
35
+ this.logger.error('❌ Failed to extract AgentResponse from output_text');
36
+ return {
37
+ success: false,
38
+ result: [],
39
+ should_continue: false
40
+ };
41
+ }
42
+ agent_response = extracted;
43
+ content = agent_response.content || {};
44
+ const requested_inputs = content.requested_inputs || [];
45
+ // Try to extract step_id from executor context or step_result if available
46
+ const step_id = content.context?.step_id ||
47
+ content.step_result?.step_id ||
48
+ content.blocked_step ||
49
+ null;
50
+ if (requested_inputs.length === 0) {
51
+ this.logger.warn('⚠️ REQUEST_INPUT but no requested_inputs in content');
52
+ }
53
+ else {
54
+ this.logger.info(`✅ Request input received - requesting ${requested_inputs.length} field(s) from user`);
55
+ this.logger.info(`Requested fields: ${requested_inputs.map((input) => input.field || input.label).join(', ')}`);
56
+ }
57
+ // Stream the request input to the client
58
+ if (this.streaming_utils) {
59
+ this.streaming_utils.write('request_input', {
60
+ requested_inputs: requested_inputs,
61
+ message: content.message || agent_response.message || 'Please provide the following information:',
62
+ step_id: step_id || undefined,
63
+ });
64
+ }
65
+ // Append Gemini response to conversation history with role and parts
66
+ let updated_history = this.append_gemini_response_to_history([], result, agent_response);
67
+ // Append context to conversation history
68
+ const handler_context = {
69
+ request_input: {
70
+ requested_inputs: requested_inputs,
71
+ message: content.message || agent_response.message,
72
+ step_id: step_id || undefined,
73
+ }
74
+ };
75
+ updated_history = this.append_context_to_history(updated_history, handler_context);
76
+ // REQUEST_INPUT is terminal - break the loop and wait for user input
77
+ return {
78
+ success: true,
79
+ result: updated_history,
80
+ should_continue: false,
81
+ context: handler_context,
82
+ message_type: 'REQUEST_INPUT' // Terminal state
83
+ };
84
+ }
85
+ }
86
+ exports.RequestInputHandler = RequestInputHandler;
87
+ //# sourceMappingURL=request-input-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-input-handler.js","sourceRoot":"","sources":["../../../src/ai/response_handlers/request-input-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @fileoverview Request Plan Handler
3
+ *
4
+ * Handles REQUEST_PLAN message_type from AgentResponse.
5
+ * Agent is requesting a plan from the planner.
6
+ */
7
+ import { BaseHandler, HandlerContext, HandlerResult } from "./base-handler";
8
+ import { ChatMessage } from "../../lib/schemas";
9
+ export declare class RequestPlanHandler extends BaseHandler {
10
+ can_handle(message_type: string | null, output_type: string, input: ChatMessage): boolean;
11
+ handle(input: ChatMessage, context: HandlerContext): Promise<HandlerResult>;
12
+ /**
13
+ * Prepare input for PlannerAgent
14
+ * Formats the message for plan creation
15
+ */
16
+ prepare_input(last_message: ChatMessage): ChatMessage[];
17
+ }
18
+ //# sourceMappingURL=request-plan-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-plan-handler.d.ts","sourceRoot":"","sources":["../../../src/ai/response_handlers/request-plan-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAiB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAG/D,qBAAa,kBAAmB,SAAQ,WAAW;IAE/C,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO;IAInF,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAuHjF;;;OAGG;IACH,aAAa,CAAC,YAAY,EAAE,WAAW,GAAG,WAAW,EAAE;CAuB1D"}