@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,29 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Agent exports - Centralized agent management
4
+ *
5
+ * This module provides centralized access to all specialized agents
6
+ * in the savant-orchestration system.
7
+ *
8
+ * @author MeasureOne
9
+ * @version 2.0.0
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DomainIdentifierAgent = exports.LearningAgent = exports.KnowledgeAgent = exports.ExecutorAgent = exports.PlannerAgent = exports.OrchestratorAgent = exports.DynamicAgent = void 0;
13
+ // Re-export the base DynamicAgent for direct use
14
+ var dynamic_agent_1 = require("./dynamic-agent");
15
+ Object.defineProperty(exports, "DynamicAgent", { enumerable: true, get: function () { return dynamic_agent_1.DynamicAgent; } });
16
+ // Export the four role agents
17
+ var orchestrator_agent_1 = require("./orchestrator.agent");
18
+ Object.defineProperty(exports, "OrchestratorAgent", { enumerable: true, get: function () { return orchestrator_agent_1.OrchestratorAgent; } });
19
+ var planner_agent_1 = require("./planner.agent");
20
+ Object.defineProperty(exports, "PlannerAgent", { enumerable: true, get: function () { return planner_agent_1.PlannerAgent; } });
21
+ var executor_agent_1 = require("./executor.agent");
22
+ Object.defineProperty(exports, "ExecutorAgent", { enumerable: true, get: function () { return executor_agent_1.ExecutorAgent; } });
23
+ var knowledge_agent_1 = require("./knowledge.agent");
24
+ Object.defineProperty(exports, "KnowledgeAgent", { enumerable: true, get: function () { return knowledge_agent_1.KnowledgeAgent; } });
25
+ var learning_agent_1 = require("./learning.agent");
26
+ Object.defineProperty(exports, "LearningAgent", { enumerable: true, get: function () { return learning_agent_1.LearningAgent; } });
27
+ var domain_identifier_agent_1 = require("./domain-identifier.agent");
28
+ Object.defineProperty(exports, "DomainIdentifierAgent", { enumerable: true, get: function () { return domain_identifier_agent_1.DomainIdentifierAgent; } });
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ai/agents/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,iDAAiD;AACjD,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAErB,8BAA8B;AAC9B,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA;AAC1B,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,qEAAkE;AAAzD,gIAAA,qBAAqB,OAAA"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @fileoverview Knowledge Agent
3
+ *
4
+ * Provides RAG/Q&A responses using the knowledge base.
5
+ * Pure knowledge retrieval and synthesis with proper citations.
6
+ *
7
+ * @author MeasureOne
8
+ * @version 1.0.0
9
+ */
10
+ import { GoogleGenAI } from "@google/genai";
11
+ import { DynamicAgent } from "./dynamic-agent";
12
+ import { ChatMessage } from "../../lib/schemas/";
13
+ /**
14
+ * Knowledge Agent - Provides RAG/Q&A responses using knowledge base
15
+ *
16
+ * Responsibilities:
17
+ * - Answer questions using knowledge base MCP tools
18
+ * - Provide accurate, well-cited responses
19
+ * - Synthesize information from multiple sources
20
+ * - Never execute tools beyond knowledge base operations
21
+ */
22
+ export declare class KnowledgeAgent extends DynamicAgent {
23
+ constructor(gemini_client: GoogleGenAI, mcp_servers?: any[], model?: string, conversation_summary?: string | null, context_summary?: string | null, recent_messages?: ChatMessage[], current_context?: any);
24
+ }
25
+ //# sourceMappingURL=knowledge.agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.agent.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/knowledge.agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAA8C,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAI7F;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,YAAY;gBAExC,aAAa,EAAE,WAAW,EAC1B,WAAW,GAAE,GAAG,EAAO,EACvB,KAAK,GAAE,MAA2B,EAClC,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,EACpC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,EAC/B,eAAe,CAAC,EAAE,WAAW,EAAE,EAC/B,eAAe,CAAC,EAAE,GAAG;CAyB5B"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Knowledge Agent
4
+ *
5
+ * Provides RAG/Q&A responses using the knowledge base.
6
+ * Pure knowledge retrieval and synthesis with proper citations.
7
+ *
8
+ * @author MeasureOne
9
+ * @version 1.0.0
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.KnowledgeAgent = void 0;
13
+ const dynamic_agent_1 = require("./dynamic-agent");
14
+ const knowledge_instructions_1 = require("../instructions/knowledge.instructions");
15
+ const logger_1 = require("../../lib/utils/logger");
16
+ const schemas_1 = require("../../lib/schemas/");
17
+ const logger = (0, logger_1.create_default_logger)("knowledge-agent");
18
+ /**
19
+ * Knowledge Agent - Provides RAG/Q&A responses using knowledge base
20
+ *
21
+ * Responsibilities:
22
+ * - Answer questions using knowledge base MCP tools
23
+ * - Provide accurate, well-cited responses
24
+ * - Synthesize information from multiple sources
25
+ * - Never execute tools beyond knowledge base operations
26
+ */
27
+ class KnowledgeAgent extends dynamic_agent_1.DynamicAgent {
28
+ constructor(gemini_client, mcp_servers = [], model = "gemini-2.5-flash", conversation_summary, context_summary, recent_messages, current_context) {
29
+ // Let DynamicAgent automatically load tools from MCP servers
30
+ super(gemini_client, mcp_servers, "KnowledgeAgent", knowledge_instructions_1.KNOWLEDGE_INSTRUCTIONS, [], // No hardcoded tools - use MCP tools dynamically
31
+ model, schemas_1.KnowledgeResponseSchema, // Pass the Zod schema for structured validation
32
+ conversation_summary, context_summary, recent_messages, current_context);
33
+ logger.info("KnowledgeAgent initialized with structured schema", {
34
+ model,
35
+ mcp_servers_count: mcp_servers.length,
36
+ mcp_server_names: mcp_servers.map(s => s.name || 'unnamed'),
37
+ has_schema: true
38
+ });
39
+ }
40
+ }
41
+ exports.KnowledgeAgent = KnowledgeAgent;
42
+ //# sourceMappingURL=knowledge.agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.agent.js","sourceRoot":"","sources":["../../../src/ai/agents/knowledge.agent.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAGH,mDAA+C;AAC/C,mFAAgF;AAChF,mDAA+D;AAC/D,gDAA6F;AAE7F,MAAM,MAAM,GAAG,IAAA,8BAAqB,EAAC,iBAAiB,CAAC,CAAC;AAExD;;;;;;;;GAQG;AACH,MAAa,cAAe,SAAQ,4BAAY;IAC5C,YACI,aAA0B,EAC1B,cAAqB,EAAE,EACvB,QAAgB,kBAAkB,EAClC,oBAAoC,EACpC,eAA+B,EAC/B,eAA+B,EAC/B,eAAqB;QAErB,6DAA6D;QAC7D,KAAK,CACD,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,+CAAsB,EACtB,EAAE,EAAE,iDAAiD;QACrD,KAAK,EACL,iCAA8B,EAAE,gDAAgD;QAChF,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,eAAe,CAClB,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,mDAAmD,EAAE;YAC7D,KAAK;YACL,iBAAiB,EAAE,WAAW,CAAC,MAAM;YACrC,gBAAgB,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC;YAC3D,UAAU,EAAE,IAAI;SACnB,CAAC,CAAC;IACP,CAAC;CAEJ;AAjCD,wCAiCC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @fileoverview Learning Agent
3
+ *
4
+ * Extracts learnings from execution data using LLM.
5
+ * Compares new execution data with existing learnings to determine if revisions are needed.
6
+ * Converts raw execution data into searchable knowledge for the knowledge base.
7
+ *
8
+ * @author MeasureOne
9
+ * @version 1.0.0
10
+ */
11
+ import { GoogleGenAI } from "@google/genai";
12
+ import { DynamicAgent } from "./dynamic-agent";
13
+ import { z } from "zod";
14
+ import { EmbeddingService } from "../../services/embedding.service";
15
+ /**
16
+ * Schema for learning extraction - returns null if no new learning
17
+ * The learning field should be natural language text matching the knowledge base format:
18
+ *
19
+ * Website: [domain]
20
+ * Navigation:
21
+ * - How to navigate: [natural language description]
22
+ * - Start URL: [url]
23
+ * - End URL: [url]
24
+ * - Actions taken: [natural language description]
25
+ * - What works: [success patterns in natural language]
26
+ * - What doesn't work: [failure patterns in natural language]
27
+ * Authentication:
28
+ * [Similar natural language structure]
29
+ * Post-Authentication:
30
+ * [Similar natural language structure]
31
+ */
32
+ declare const LearningExtractionSchema: z.ZodObject<{
33
+ learning: z.ZodNullable<z.ZodString>;
34
+ }, z.core.$strip>;
35
+ export type LearningExtraction = z.infer<typeof LearningExtractionSchema>;
36
+ /**
37
+ * Learning Agent - Extracts learnings from execution data
38
+ */
39
+ export declare class LearningAgent extends DynamicAgent {
40
+ private embedding_service;
41
+ constructor(gemini_client: GoogleGenAI, mcp_servers?: any[], model?: string, embedding_service?: EmbeddingService);
42
+ /**
43
+ * Extract learning from execution data and existing learning chunks
44
+ * Returns null if there's no difference between existing learning and current execution
45
+ * Returns new summarized learning if there's a difference
46
+ *
47
+ * @param execution_data - Raw execution data containing context, agent_response, tool_results, etc.
48
+ * @param existing_learning_text - Combined text from all chunks of existing learning embeddings (if any)
49
+ */
50
+ extract_learning(execution_data: any, existing_learning_text: string | null): Promise<string | null>;
51
+ /**
52
+ * Sanitize PII from learning text
53
+ * Removes email addresses, phone numbers, and other sensitive patterns
54
+ * Handles both JSON structures and plain text
55
+ */
56
+ private sanitize_pii;
57
+ /**
58
+ * Recursively sanitize JSON object to remove PII
59
+ */
60
+ private sanitize_json_object;
61
+ }
62
+ export {};
63
+ //# sourceMappingURL=learning.agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learning.agent.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/learning.agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAKpE;;;;;;;;;;;;;;;;GAgBG;AACH,QAAA,MAAM,wBAAwB;;iBAW5B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC3C,OAAO,CAAC,iBAAiB,CAAmB;gBAGxC,aAAa,EAAE,WAAW,EAC1B,WAAW,GAAE,GAAG,EAAO,EACvB,KAAK,GAAE,MAA2B,EAClC,iBAAiB,CAAC,EAAE,gBAAgB;IA6BxC;;;;;;;OAOG;IACG,gBAAgB,CAClB,cAAc,EAAE,GAAG,EACnB,sBAAsB,EAAE,MAAM,GAAG,IAAI,GACtC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAuHzB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAkEpB;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAwC3B"}
@@ -0,0 +1,288 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Learning Agent
4
+ *
5
+ * Extracts learnings from execution data using LLM.
6
+ * Compares new execution data with existing learnings to determine if revisions are needed.
7
+ * Converts raw execution data into searchable knowledge for the knowledge base.
8
+ *
9
+ * @author MeasureOne
10
+ * @version 1.0.0
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.LearningAgent = void 0;
14
+ const dynamic_agent_1 = require("./dynamic-agent");
15
+ const learning_instructions_1 = require("../instructions/learning.instructions");
16
+ const logger_1 = require("../../lib/utils/logger");
17
+ const zod_1 = require("zod");
18
+ const embedding_service_1 = require("../../services/embedding.service");
19
+ const logger = (0, logger_1.create_default_logger)("learning-agent");
20
+ /**
21
+ * Schema for learning extraction - returns null if no new learning
22
+ * The learning field should be natural language text matching the knowledge base format:
23
+ *
24
+ * Website: [domain]
25
+ * Navigation:
26
+ * - How to navigate: [natural language description]
27
+ * - Start URL: [url]
28
+ * - End URL: [url]
29
+ * - Actions taken: [natural language description]
30
+ * - What works: [success patterns in natural language]
31
+ * - What doesn't work: [failure patterns in natural language]
32
+ * Authentication:
33
+ * [Similar natural language structure]
34
+ * Post-Authentication:
35
+ * [Similar natural language structure]
36
+ */
37
+ const LearningExtractionSchema = zod_1.z.object({
38
+ learning: zod_1.z.string().nullable().describe("New learning in natural language format combining existing learning and current execution context. " +
39
+ "Must follow the natural language format specified in the navigation knowledge base. " +
40
+ "Write as if explaining to someone how to use the website. " +
41
+ "Include website/domain, navigation patterns, authentication methods, selectors, and what works/doesn't work. " +
42
+ "Use natural language that matches how users would ask questions. " +
43
+ "CRITICAL: MUST NOT include any sensitive information: no usernames, passwords, credentials, PII (names, emails, phone numbers, SSN, account numbers, addresses, DOB), or actual user input values. " +
44
+ "Only include patterns, selectors, URLs (sanitized), and structural information. " +
45
+ "Return null if there is no difference between existing learning and current execution."),
46
+ });
47
+ /**
48
+ * Learning Agent - Extracts learnings from execution data
49
+ */
50
+ class LearningAgent extends dynamic_agent_1.DynamicAgent {
51
+ constructor(gemini_client, mcp_servers = [], model = "gemini-2.5-flash", embedding_service) {
52
+ // Convert MCP Client[] to any[] for DynamicAgent
53
+ const mcp_servers_array = Array.isArray(mcp_servers) ? mcp_servers : [];
54
+ super(gemini_client, mcp_servers_array, "LearningAgent", learning_instructions_1.LEARNING_INSTRUCTIONS, [], // No hardcoded tools - use MCP tools dynamically
55
+ model, LearningExtractionSchema, // Pass the Zod schema for structured validation
56
+ undefined, // No conversation summary for learning agent
57
+ undefined, // No context summary for learning agent
58
+ undefined, // No recent messages for learning agent
59
+ undefined // No current context for learning agent
60
+ );
61
+ this.embedding_service = embedding_service || new embedding_service_1.EmbeddingService();
62
+ logger.info("LearningAgent initialized", {
63
+ model,
64
+ has_schema: true,
65
+ has_embedding_service: true,
66
+ mcp_servers_count: mcp_servers_array.length
67
+ });
68
+ }
69
+ /**
70
+ * Extract learning from execution data and existing learning chunks
71
+ * Returns null if there's no difference between existing learning and current execution
72
+ * Returns new summarized learning if there's a difference
73
+ *
74
+ * @param execution_data - Raw execution data containing context, agent_response, tool_results, etc.
75
+ * @param existing_learning_text - Combined text from all chunks of existing learning embeddings (if any)
76
+ */
77
+ async extract_learning(execution_data, existing_learning_text) {
78
+ try {
79
+ logger.info("Extracting learning from execution data", {
80
+ has_existing_learning: !!existing_learning_text,
81
+ existing_learning_length: existing_learning_text?.length || 0,
82
+ mcp_servers_count: this.mcp_servers.length
83
+ });
84
+ // Build the user message with execution data
85
+ const user_content = {
86
+ execution_data: execution_data,
87
+ existing_learning: existing_learning_text || null,
88
+ task: "Compare existing learning with current execution. If there's a meaningful difference, return a new summarized learning that combines both. If no meaningful difference, return null."
89
+ };
90
+ const user_message = {
91
+ role: 'user',
92
+ content: JSON.stringify(user_content, null, 2)
93
+ };
94
+ // Use execute_with_retries for consistency with other agents
95
+ const response = await this.execute_with_retries([user_message], {
96
+ streaming: false // Learning extraction doesn't need streaming
97
+ });
98
+ // Parse the response
99
+ // When MCP tools are used, responseSchema is disabled, so response.text might be null
100
+ // Try to extract text from response.text first, then from candidates if needed
101
+ let content = null;
102
+ if (response.text) {
103
+ content = response.text;
104
+ }
105
+ else if (response.candidates && response.candidates.length > 0) {
106
+ // Extract text from candidates if response.text is null
107
+ const candidate = response.candidates[0];
108
+ if (candidate.content && candidate.content.parts) {
109
+ const text_parts = candidate.content.parts
110
+ .filter((part) => part.text)
111
+ .map((part) => part.text);
112
+ if (text_parts.length > 0) {
113
+ content = text_parts.join('\n');
114
+ }
115
+ }
116
+ }
117
+ if (!content || content.trim().length === 0) {
118
+ logger.warn("LearningAgent returned no text content, checking if function calls were made", {
119
+ has_function_calls: !!(response.automaticFunctionCallingHistory && response.automaticFunctionCallingHistory.length > 0)
120
+ });
121
+ // If only function calls were made and no text was returned, return null (no learning to extract)
122
+ if (response.automaticFunctionCallingHistory && response.automaticFunctionCallingHistory.length > 0) {
123
+ logger.info("LearningAgent made function calls but returned no text - returning null");
124
+ return null;
125
+ }
126
+ throw new Error("LearningAgent returned no content");
127
+ }
128
+ let parsed_content;
129
+ if (typeof content === 'string') {
130
+ // Try to parse JSON from response
131
+ try {
132
+ // First try direct JSON parse
133
+ parsed_content = JSON.parse(content);
134
+ }
135
+ catch (parse_error) {
136
+ // If that fails, try to extract JSON from markdown code blocks
137
+ const json_match = content.match(/```(?:json)?\s*\n?([\s\S]*?)\n?```/);
138
+ if (json_match) {
139
+ parsed_content = JSON.parse(json_match[1].trim());
140
+ }
141
+ else {
142
+ // Try to find JSON object in the text
143
+ const json_object_match = content.match(/\{[\s\S]*"learning"[\s\S]*\}/);
144
+ if (json_object_match) {
145
+ parsed_content = JSON.parse(json_object_match[0]);
146
+ }
147
+ else {
148
+ // If no JSON found, the response might be natural language learning text
149
+ // Return it directly as the learning (since we're using natural language format)
150
+ logger.info("LearningAgent returned natural language text (no JSON), using as learning directly");
151
+ return this.sanitize_pii(content.trim());
152
+ }
153
+ }
154
+ }
155
+ }
156
+ else if (typeof content === 'object' && content !== null) {
157
+ parsed_content = content;
158
+ }
159
+ else {
160
+ throw new Error(`LearningAgent returned unexpected content type: ${typeof content}`);
161
+ }
162
+ // Validate against schema - handle case where parsed_content might be null
163
+ if (!parsed_content || (typeof parsed_content === 'object' && Object.keys(parsed_content).length === 0)) {
164
+ logger.warn("LearningAgent returned empty or null parsed content");
165
+ return null;
166
+ }
167
+ const extraction = LearningExtractionSchema.parse(parsed_content);
168
+ // Post-process to sanitize any PII that might have slipped through
169
+ let sanitized_learning = extraction.learning;
170
+ if (sanitized_learning) {
171
+ sanitized_learning = this.sanitize_pii(sanitized_learning);
172
+ }
173
+ logger.info("Learning extraction completed", {
174
+ has_learning: sanitized_learning !== null,
175
+ learning_length: sanitized_learning?.length || 0
176
+ });
177
+ return sanitized_learning;
178
+ }
179
+ catch (error) {
180
+ logger.error("Failed to extract learning", {
181
+ error: error instanceof Error ? error.message : String(error)
182
+ });
183
+ throw error;
184
+ }
185
+ }
186
+ /**
187
+ * Sanitize PII from learning text
188
+ * Removes email addresses, phone numbers, and other sensitive patterns
189
+ * Handles both JSON structures and plain text
190
+ */
191
+ sanitize_pii(learning_text) {
192
+ let sanitized = learning_text;
193
+ // First, try to parse as JSON and sanitize the structure
194
+ try {
195
+ const parsed = JSON.parse(sanitized);
196
+ const sanitized_obj = this.sanitize_json_object(parsed);
197
+ sanitized = JSON.stringify(sanitized_obj);
198
+ }
199
+ catch {
200
+ // Not JSON, sanitize as plain text
201
+ }
202
+ // Remove email addresses (pattern: text@domain.com) - catch any that slipped through
203
+ sanitized = sanitized.replace(/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g, '[email_removed]');
204
+ // Remove phone numbers (various formats)
205
+ sanitized = sanitized.replace(/\b\d{3}[-.]?\d{3}[-.]?\d{4}\b/g, '[phone_removed]');
206
+ sanitized = sanitized.replace(/\b\(\d{3}\)\s?\d{3}[-.]?\d{4}\b/g, '[phone_removed]');
207
+ // Remove SSN patterns (XXX-XX-XXXX)
208
+ sanitized = sanitized.replace(/\b\d{3}-\d{2}-\d{4}\b/g, '[ssn_removed]');
209
+ // Remove patterns like "EmailAddress": "value" or "email": "value" in text
210
+ sanitized = sanitized.replace(/["']?(?:EmailAddress|email|Email|emailAddress|email_address)["']?\s*[:=]\s*["']?[^"',}\]]+["']?/gi, (match) => {
211
+ const key_match = match.match(/["']?([^"':=]+)["']?\s*[:=]/i);
212
+ if (key_match) {
213
+ return `"${key_match[1]}": "[removed]"`;
214
+ }
215
+ return match.replace(/[:=]\s*["']?[^"',}\]]+["']?/i, ': "[removed]"');
216
+ });
217
+ // Remove patterns like "Password": "value" or "password": "value"
218
+ sanitized = sanitized.replace(/["']?(?:Password|password|PasswordValue|password_value)["']?\s*[:=]\s*["']?[^"',}\]]+["']?/gi, (match) => {
219
+ const key_match = match.match(/["']?([^"':=]+)["']?\s*[:=]/i);
220
+ if (key_match) {
221
+ return `"${key_match[1]}": "[removed]"`;
222
+ }
223
+ return match.replace(/[:=]\s*["']?[^"',}\]]+["']?/i, ': "[removed]"');
224
+ });
225
+ // Remove patterns like "Username": "value" or "username": "value"
226
+ sanitized = sanitized.replace(/["']?(?:Username|username|UserName|user_name)["']?\s*[:=]\s*["']?[^"',}\]]+["']?/gi, (match) => {
227
+ const key_match = match.match(/["']?([^"':=]+)["']?\s*[:=]/i);
228
+ if (key_match) {
229
+ return `"${key_match[1]}": "[removed]"`;
230
+ }
231
+ return match.replace(/[:=]\s*["']?[^"',}\]]+["']?/i, ': "[removed]"');
232
+ });
233
+ // Remove account numbers (long numeric strings)
234
+ sanitized = sanitized.replace(/\b\d{10,}\b/g, '[account_number_removed]');
235
+ // Log if any sanitization occurred
236
+ if (sanitized !== learning_text) {
237
+ logger.warn("PII sanitization applied to learning", {
238
+ original_length: learning_text.length,
239
+ sanitized_length: sanitized.length
240
+ });
241
+ }
242
+ return sanitized;
243
+ }
244
+ /**
245
+ * Recursively sanitize JSON object to remove PII
246
+ */
247
+ sanitize_json_object(obj) {
248
+ if (obj === null || obj === undefined) {
249
+ return obj;
250
+ }
251
+ if (Array.isArray(obj)) {
252
+ return obj.map(item => this.sanitize_json_object(item));
253
+ }
254
+ if (typeof obj === 'object') {
255
+ const sanitized = {};
256
+ for (const [key, value] of Object.entries(obj)) {
257
+ const lower_key = key.toLowerCase();
258
+ // Check if key indicates sensitive data
259
+ if (lower_key.includes('email') ||
260
+ lower_key.includes('password') ||
261
+ lower_key.includes('username') ||
262
+ lower_key.includes('phone') ||
263
+ lower_key.includes('ssn') ||
264
+ lower_key.includes('account') ||
265
+ lower_key.includes('pii')) {
266
+ // Remove the value
267
+ sanitized[key] = '[removed]';
268
+ }
269
+ else if (typeof value === 'string') {
270
+ // Check if value looks like an email
271
+ if (/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/.test(value)) {
272
+ sanitized[key] = '[email_removed]';
273
+ }
274
+ else {
275
+ sanitized[key] = this.sanitize_json_object(value);
276
+ }
277
+ }
278
+ else {
279
+ sanitized[key] = this.sanitize_json_object(value);
280
+ }
281
+ }
282
+ return sanitized;
283
+ }
284
+ return obj;
285
+ }
286
+ }
287
+ exports.LearningAgent = LearningAgent;
288
+ //# sourceMappingURL=learning.agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learning.agent.js","sourceRoot":"","sources":["../../../src/ai/agents/learning.agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @fileoverview Orchestrator Agent
3
+ *
4
+ * The main entry point agent that classifies incoming requests and routes them
5
+ * to appropriate specialized agents. Handles greetings, clarifications, and
6
+ * initial request routing.
7
+ *
8
+ * @author MeasureOne
9
+ * @version 1.0.0
10
+ */
11
+ import { GoogleGenAI } from "@google/genai";
12
+ import { DynamicAgent } from "./dynamic-agent";
13
+ import { ChatMessage } from "../../lib/schemas";
14
+ /**
15
+ * Orchestrator Agent - Main entry point for all user requests
16
+ *
17
+ * Classifies incoming requests and routes them to appropriate specialized agents:
18
+ * - greeting_or_smalltalk: Simple greetings, casual conversation
19
+ * - clarification_needed: When more information is needed from the user
20
+ * - task_request: Complex tasks requiring planning and execution
21
+ * - knowledge_question: Questions that can be answered from the knowledge base
22
+ */
23
+ export declare class OrchestratorAgent extends DynamicAgent {
24
+ constructor(gemini_client: GoogleGenAI, mcp_servers?: any[], model?: string, conversation_summary?: string | null, context_summary?: string | null, recent_messages?: ChatMessage[], current_context?: any);
25
+ }
26
+ //# sourceMappingURL=orchestrator.agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.agent.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/orchestrator.agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAuC,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKrF;;;;;;;;GAQG;AACH,qBAAa,iBAAkB,SAAQ,YAAY;gBAE3C,aAAa,EAAE,WAAW,EAC1B,WAAW,GAAE,GAAG,EAAO,EACvB,KAAK,GAAE,MAA2B,EAClC,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,EACpC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,EAC/B,eAAe,CAAC,EAAE,WAAW,EAAE,EAC/B,eAAe,CAAC,EAAE,GAAG;CAwB5B"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Orchestrator Agent
4
+ *
5
+ * The main entry point agent that classifies incoming requests and routes them
6
+ * to appropriate specialized agents. Handles greetings, clarifications, and
7
+ * initial request routing.
8
+ *
9
+ * @author MeasureOne
10
+ * @version 1.0.0
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.OrchestratorAgent = void 0;
14
+ const dynamic_agent_1 = require("./dynamic-agent");
15
+ const orchestrator_instructions_1 = require("../instructions/orchestrator.instructions");
16
+ const logger_1 = require("../../lib/utils/logger");
17
+ const schemas_1 = require("../../lib/schemas");
18
+ const logger = (0, logger_1.create_default_logger)("orchestrator-agent");
19
+ /**
20
+ * Orchestrator Agent - Main entry point for all user requests
21
+ *
22
+ * Classifies incoming requests and routes them to appropriate specialized agents:
23
+ * - greeting_or_smalltalk: Simple greetings, casual conversation
24
+ * - clarification_needed: When more information is needed from the user
25
+ * - task_request: Complex tasks requiring planning and execution
26
+ * - knowledge_question: Questions that can be answered from the knowledge base
27
+ */
28
+ class OrchestratorAgent extends dynamic_agent_1.DynamicAgent {
29
+ constructor(gemini_client, mcp_servers = [], model = "gemini-2.5-flash", conversation_summary, context_summary, recent_messages, current_context) {
30
+ super(gemini_client, mcp_servers, "OrchestratorAgent", orchestrator_instructions_1.ORCHESTRATOR_INSTRUCTIONS, [], // No tools - pure routing agent
31
+ model, schemas_1.OrchestratorResponseSchema, // Pass the Zod schema for structured validation
32
+ conversation_summary, context_summary, recent_messages, current_context);
33
+ logger.info("OrchestratorAgent initialized with structured schema", {
34
+ model,
35
+ mcp_servers_count: mcp_servers.length,
36
+ tools_count: 0,
37
+ has_schema: true
38
+ });
39
+ }
40
+ }
41
+ exports.OrchestratorAgent = OrchestratorAgent;
42
+ //# sourceMappingURL=orchestrator.agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.agent.js","sourceRoot":"","sources":["../../../src/ai/agents/orchestrator.agent.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAGH,mDAA+C;AAC/C,yFAAsF;AACtF,mDAA+D;AAE/D,+CAAqF;AAErF,MAAM,MAAM,GAAG,IAAA,8BAAqB,EAAC,oBAAoB,CAAC,CAAC;AAE3D;;;;;;;;GAQG;AACH,MAAa,iBAAkB,SAAQ,4BAAY;IAC/C,YACI,aAA0B,EAC1B,cAAqB,EAAE,EACvB,QAAgB,kBAAkB,EAClC,oBAAoC,EACpC,eAA+B,EAC/B,eAA+B,EAC/B,eAAqB;QAErB,KAAK,CACD,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,qDAAyB,EACzB,EAAE,EAAE,gCAAgC;QACpC,KAAK,EACL,oCAAiC,EAAE,gDAAgD;QACnF,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,eAAe,CAClB,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,sDAAsD,EAAE;YAChE,KAAK;YACL,iBAAiB,EAAE,WAAW,CAAC,MAAM;YACrC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,IAAI;SACnB,CAAC,CAAC;IACP,CAAC;CAEJ;AAhCD,8CAgCC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @fileoverview Planner Agent
3
+ *
4
+ * Creates detailed execution plans for complex tasks using knowledge base
5
+ * to understand domains and create structured, executable plans.
6
+ *
7
+ * @author MeasureOne
8
+ * @version 1.0.0
9
+ */
10
+ import { GoogleGenAI } from "@google/genai";
11
+ import { DynamicAgent } from "./dynamic-agent";
12
+ import { ChatMessage } from "../../lib/schemas";
13
+ /**
14
+ * Planner Agent - Creates detailed execution plans for complex tasks
15
+ *
16
+ * Responsibilities:
17
+ * 1. Resolve domain via Knowledge MCP (domain cards)
18
+ * 2. Produce multi-step plans with dependencies
19
+ * 3. Never invent site-specific selectors/URLs - use discovery steps
20
+ * 4. Include citations from knowledge base
21
+ */
22
+ export declare class PlannerAgent extends DynamicAgent {
23
+ constructor(gemini_client: GoogleGenAI, mcp_servers?: any[], model?: string, conversation_summary?: string | null, context_summary?: string | null, recent_messages?: ChatMessage[], current_context?: any);
24
+ }
25
+ //# sourceMappingURL=planner.agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planner.agent.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/planner.agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD;;;;;;;;GAQG;AACH,qBAAa,YAAa,SAAQ,YAAY;gBAEtC,aAAa,EAAE,WAAW,EAC1B,WAAW,GAAE,GAAG,EAAO,EACvB,KAAK,GAAE,MAA2B,EAClC,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,EACpC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,EAC/B,eAAe,CAAC,EAAE,WAAW,EAAE,EAC/B,eAAe,CAAC,EAAE,GAAG;CAoB5B"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Planner Agent
4
+ *
5
+ * Creates detailed execution plans for complex tasks using knowledge base
6
+ * to understand domains and create structured, executable plans.
7
+ *
8
+ * @author MeasureOne
9
+ * @version 1.0.0
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PlannerAgent = void 0;
13
+ const dynamic_agent_1 = require("./dynamic-agent");
14
+ const planner_instructions_1 = require("../instructions/planner.instructions");
15
+ const schemas_1 = require("../../lib/schemas");
16
+ const logger_1 = require("../../lib/utils/logger");
17
+ const logger = (0, logger_1.create_default_logger)("planner-agent");
18
+ /**
19
+ * Planner Agent - Creates detailed execution plans for complex tasks
20
+ *
21
+ * Responsibilities:
22
+ * 1. Resolve domain via Knowledge MCP (domain cards)
23
+ * 2. Produce multi-step plans with dependencies
24
+ * 3. Never invent site-specific selectors/URLs - use discovery steps
25
+ * 4. Include citations from knowledge base
26
+ */
27
+ class PlannerAgent extends dynamic_agent_1.DynamicAgent {
28
+ constructor(gemini_client, mcp_servers = [], model = "gemini-2.5-flash", conversation_summary, context_summary, recent_messages, current_context) {
29
+ // Let DynamicAgent automatically load tools from MCP servers
30
+ super(gemini_client, mcp_servers, "PlannerAgent", planner_instructions_1.PLANNER_INSTRUCTIONS, [], // No hardcoded tools - use MCP tools dynamically
31
+ model, schemas_1.PlannerResponseSchema, // Pass the Zod schema for structured validation
32
+ conversation_summary, context_summary, recent_messages, current_context);
33
+ }
34
+ }
35
+ exports.PlannerAgent = PlannerAgent;
36
+ //# sourceMappingURL=planner.agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planner.agent.js","sourceRoot":"","sources":["../../../src/ai/agents/planner.agent.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAGH,mDAA+C;AAC/C,+EAA4E;AAC5E,+CAA0D;AAC1D,mDAA+D;AAG/D,MAAM,MAAM,GAAG,IAAA,8BAAqB,EAAC,eAAe,CAAC,CAAC;AAEtD;;;;;;;;GAQG;AACH,MAAa,YAAa,SAAQ,4BAAY;IAC1C,YACI,aAA0B,EAC1B,cAAqB,EAAE,EACvB,QAAgB,kBAAkB,EAClC,oBAAoC,EACpC,eAA+B,EAC/B,eAA+B,EAC/B,eAAqB;QAErB,6DAA6D;QAC7D,KAAK,CACD,aAAa,EACb,WAAW,EACX,cAAc,EACd,2CAAoB,EACpB,EAAE,EAAE,iDAAiD;QACrD,KAAK,EACL,+BAA4B,EAAE,gDAAgD;QAC9E,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,eAAe,CAClB,CAAC;IAGN,CAAC;CAEJ;AA5BD,oCA4BC"}