@hailer/mcp 1.1.15 → 1.1.16

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 (544) hide show
  1. package/dist/agents/bot-manager.d.ts +48 -0
  2. package/dist/agents/bot-manager.d.ts.map +1 -0
  3. package/dist/agents/bot-manager.js +254 -0
  4. package/dist/agents/bot-manager.js.map +1 -0
  5. package/dist/agents/bug-fixer/ai.d.ts +80 -0
  6. package/dist/agents/bug-fixer/ai.d.ts.map +1 -0
  7. package/dist/agents/bug-fixer/ai.js +466 -0
  8. package/dist/agents/bug-fixer/ai.js.map +1 -0
  9. package/dist/agents/bug-fixer/bot.d.ts +92 -0
  10. package/dist/agents/bug-fixer/bot.d.ts.map +1 -0
  11. package/dist/agents/bug-fixer/bot.js +687 -0
  12. package/dist/agents/bug-fixer/bot.js.map +1 -0
  13. package/dist/agents/bug-fixer/config.d.ts +21 -0
  14. package/dist/agents/bug-fixer/config.d.ts.map +1 -0
  15. package/dist/agents/bug-fixer/config.js +218 -0
  16. package/dist/agents/bug-fixer/config.js.map +1 -0
  17. package/dist/agents/bug-fixer/files.d.ts +67 -0
  18. package/dist/agents/bug-fixer/files.d.ts.map +1 -0
  19. package/dist/agents/bug-fixer/files.js +386 -0
  20. package/dist/agents/bug-fixer/files.js.map +1 -0
  21. package/dist/agents/bug-fixer/git.d.ts +48 -0
  22. package/dist/agents/bug-fixer/git.d.ts.map +1 -0
  23. package/dist/agents/bug-fixer/git.js +298 -0
  24. package/dist/agents/bug-fixer/git.js.map +1 -0
  25. package/dist/agents/bug-fixer/index.d.ts +103 -0
  26. package/dist/agents/bug-fixer/index.d.ts.map +1 -0
  27. package/dist/agents/bug-fixer/index.js +262 -0
  28. package/dist/agents/bug-fixer/index.js.map +1 -0
  29. package/dist/agents/bug-fixer/lsp.d.ts +113 -0
  30. package/dist/agents/bug-fixer/lsp.d.ts.map +1 -0
  31. package/dist/agents/bug-fixer/lsp.js +485 -0
  32. package/dist/agents/bug-fixer/lsp.js.map +1 -0
  33. package/dist/agents/bug-fixer/monitor.d.ts +123 -0
  34. package/dist/agents/bug-fixer/monitor.d.ts.map +1 -0
  35. package/dist/agents/bug-fixer/monitor.js +629 -0
  36. package/dist/agents/bug-fixer/monitor.js.map +1 -0
  37. package/dist/agents/bug-fixer/prompt.d.ts +5 -0
  38. package/dist/agents/bug-fixer/prompt.d.ts.map +1 -0
  39. package/dist/agents/bug-fixer/prompt.js +94 -0
  40. package/dist/agents/bug-fixer/prompt.js.map +1 -0
  41. package/dist/agents/bug-fixer/registries/pending-classification.d.ts +28 -0
  42. package/dist/agents/bug-fixer/registries/pending-classification.d.ts.map +1 -0
  43. package/dist/agents/bug-fixer/registries/pending-classification.js +50 -0
  44. package/dist/agents/bug-fixer/registries/pending-classification.js.map +1 -0
  45. package/dist/agents/bug-fixer/registries/pending-fix.d.ts +33 -0
  46. package/dist/agents/bug-fixer/registries/pending-fix.d.ts.map +1 -0
  47. package/dist/agents/bug-fixer/registries/pending-fix.js +64 -0
  48. package/dist/agents/bug-fixer/registries/pending-fix.js.map +1 -0
  49. package/dist/agents/bug-fixer/registries/pending.d.ts +27 -0
  50. package/dist/agents/bug-fixer/registries/pending.d.ts.map +1 -0
  51. package/dist/agents/bug-fixer/registries/pending.js +49 -0
  52. package/dist/agents/bug-fixer/registries/pending.js.map +1 -0
  53. package/dist/agents/bug-fixer/specialist-daemon.d.ts +88 -0
  54. package/dist/agents/bug-fixer/specialist-daemon.d.ts.map +1 -0
  55. package/dist/agents/bug-fixer/specialist-daemon.js +431 -0
  56. package/dist/agents/bug-fixer/specialist-daemon.js.map +1 -0
  57. package/dist/agents/bug-fixer/specialist.d.ts +47 -0
  58. package/dist/agents/bug-fixer/specialist.d.ts.map +1 -0
  59. package/dist/agents/bug-fixer/specialist.js +327 -0
  60. package/dist/agents/bug-fixer/specialist.js.map +1 -0
  61. package/dist/agents/bug-fixer/types.d.ts +123 -0
  62. package/dist/agents/bug-fixer/types.d.ts.map +1 -0
  63. package/dist/agents/bug-fixer/types.js +9 -0
  64. package/dist/agents/bug-fixer/types.js.map +1 -0
  65. package/dist/agents/factory.d.ts +172 -0
  66. package/dist/agents/factory.d.ts.map +1 -0
  67. package/dist/agents/factory.js +706 -0
  68. package/dist/agents/factory.js.map +1 -0
  69. package/dist/agents/hailer-expert/index.d.ts +8 -0
  70. package/dist/agents/hailer-expert/index.d.ts.map +1 -0
  71. package/dist/agents/hailer-expert/index.js +14 -0
  72. package/dist/agents/hailer-expert/index.js.map +1 -0
  73. package/dist/agents/hal/daemon.d.ts +174 -0
  74. package/dist/agents/hal/daemon.d.ts.map +1 -0
  75. package/dist/agents/hal/daemon.js +1385 -0
  76. package/dist/agents/hal/daemon.js.map +1 -0
  77. package/dist/agents/hal/definitions.d.ts +42 -0
  78. package/dist/agents/hal/definitions.d.ts.map +1 -0
  79. package/dist/agents/hal/definitions.js +300 -0
  80. package/dist/agents/hal/definitions.js.map +1 -0
  81. package/dist/agents/hal/index.d.ts +3 -0
  82. package/dist/agents/hal/index.d.ts.map +1 -0
  83. package/dist/agents/hal/index.js +8 -0
  84. package/dist/agents/hal/index.js.map +1 -0
  85. package/dist/agents/index.d.ts +18 -0
  86. package/dist/agents/index.d.ts.map +1 -0
  87. package/dist/agents/index.js +48 -0
  88. package/dist/agents/index.js.map +1 -0
  89. package/dist/agents/shared/base.d.ts +253 -0
  90. package/dist/agents/shared/base.d.ts.map +1 -0
  91. package/dist/agents/shared/base.js +1122 -0
  92. package/dist/agents/shared/base.js.map +1 -0
  93. package/dist/agents/shared/schemas/action-schema.d.ts +62 -0
  94. package/dist/agents/shared/schemas/action-schema.d.ts.map +1 -0
  95. package/dist/agents/shared/schemas/action-schema.js +483 -0
  96. package/dist/agents/shared/schemas/action-schema.js.map +1 -0
  97. package/dist/agents/shared/services/agent-registry.d.ts +108 -0
  98. package/dist/agents/shared/services/agent-registry.d.ts.map +1 -0
  99. package/dist/agents/shared/services/agent-registry.js +469 -0
  100. package/dist/agents/shared/services/agent-registry.js.map +1 -0
  101. package/dist/agents/shared/services/conversation-manager.d.ts +57 -0
  102. package/dist/agents/shared/services/conversation-manager.d.ts.map +1 -0
  103. package/dist/agents/shared/services/conversation-manager.js +168 -0
  104. package/dist/agents/shared/services/conversation-manager.js.map +1 -0
  105. package/dist/agents/shared/services/mcp-client.d.ts +56 -0
  106. package/dist/agents/shared/services/mcp-client.d.ts.map +1 -0
  107. package/dist/agents/shared/services/mcp-client.js +124 -0
  108. package/dist/agents/shared/services/mcp-client.js.map +1 -0
  109. package/dist/agents/shared/services/message-classifier.d.ts +37 -0
  110. package/dist/agents/shared/services/message-classifier.d.ts.map +1 -0
  111. package/dist/agents/shared/services/message-classifier.js +203 -0
  112. package/dist/agents/shared/services/message-classifier.js.map +1 -0
  113. package/dist/agents/shared/services/message-formatter.d.ts +89 -0
  114. package/dist/agents/shared/services/message-formatter.d.ts.map +1 -0
  115. package/dist/agents/shared/services/message-formatter.js +390 -0
  116. package/dist/agents/shared/services/message-formatter.js.map +1 -0
  117. package/dist/agents/shared/services/session-logger.d.ts +162 -0
  118. package/dist/agents/shared/services/session-logger.d.ts.map +1 -0
  119. package/dist/agents/shared/services/session-logger.js +724 -0
  120. package/dist/agents/shared/services/session-logger.js.map +1 -0
  121. package/dist/agents/shared/services/structured-output-executor.d.ts +88 -0
  122. package/dist/agents/shared/services/structured-output-executor.d.ts.map +1 -0
  123. package/dist/agents/shared/services/structured-output-executor.js +296 -0
  124. package/dist/agents/shared/services/structured-output-executor.js.map +1 -0
  125. package/dist/agents/shared/services/token-billing.d.ts +72 -0
  126. package/dist/agents/shared/services/token-billing.d.ts.map +1 -0
  127. package/dist/agents/shared/services/token-billing.js +198 -0
  128. package/dist/agents/shared/services/token-billing.js.map +1 -0
  129. package/dist/agents/shared/services/tool-executor.d.ts +43 -0
  130. package/dist/agents/shared/services/tool-executor.d.ts.map +1 -0
  131. package/dist/agents/shared/services/tool-executor.js +175 -0
  132. package/dist/agents/shared/services/tool-executor.js.map +1 -0
  133. package/dist/agents/shared/services/typing-indicator.d.ts +24 -0
  134. package/dist/agents/shared/services/typing-indicator.d.ts.map +1 -0
  135. package/dist/agents/shared/services/typing-indicator.js +54 -0
  136. package/dist/agents/shared/services/typing-indicator.js.map +1 -0
  137. package/dist/agents/shared/services/workspace-schema-cache.d.ts +122 -0
  138. package/dist/agents/shared/services/workspace-schema-cache.d.ts.map +1 -0
  139. package/dist/agents/shared/services/workspace-schema-cache.js +507 -0
  140. package/dist/agents/shared/services/workspace-schema-cache.js.map +1 -0
  141. package/dist/agents/shared/specialist.d.ts +91 -0
  142. package/dist/agents/shared/specialist.d.ts.map +1 -0
  143. package/dist/agents/shared/specialist.js +399 -0
  144. package/dist/agents/shared/specialist.js.map +1 -0
  145. package/dist/agents/shared/tool-schema-loader.d.ts +65 -0
  146. package/dist/agents/shared/tool-schema-loader.d.ts.map +1 -0
  147. package/dist/agents/shared/tool-schema-loader.js +238 -0
  148. package/dist/agents/shared/tool-schema-loader.js.map +1 -0
  149. package/dist/agents/shared/types.d.ts +190 -0
  150. package/dist/agents/shared/types.d.ts.map +1 -0
  151. package/dist/agents/shared/types.js +13 -0
  152. package/dist/agents/shared/types.js.map +1 -0
  153. package/dist/app.d.ts.map +1 -0
  154. package/dist/app.js.map +1 -0
  155. package/dist/bot/bot-config.d.ts.map +1 -0
  156. package/dist/bot/bot-config.js.map +1 -0
  157. package/dist/bot/bot-manager.d.ts.map +1 -0
  158. package/dist/bot/bot-manager.js.map +1 -0
  159. package/dist/bot/bot.d.ts.map +1 -0
  160. package/dist/bot/bot.js.map +1 -0
  161. package/dist/bot/operation-logger.d.ts.map +1 -0
  162. package/dist/bot/operation-logger.js.map +1 -0
  163. package/dist/bot/services/__tests__/permission-guard.test.d.ts +2 -0
  164. package/dist/bot/services/__tests__/permission-guard.test.d.ts.map +1 -0
  165. package/dist/bot/services/__tests__/permission-guard.test.js +357 -0
  166. package/dist/bot/services/__tests__/permission-guard.test.js.map +1 -0
  167. package/dist/bot/services/conversation-manager.d.ts.map +1 -0
  168. package/dist/bot/services/conversation-manager.js.map +1 -0
  169. package/dist/bot/services/index.d.ts.map +1 -0
  170. package/dist/bot/services/index.js.map +1 -0
  171. package/dist/bot/services/message-classifier.d.ts.map +1 -0
  172. package/dist/bot/services/message-classifier.js.map +1 -0
  173. package/dist/bot/services/message-formatter.d.ts.map +1 -0
  174. package/dist/bot/services/message-formatter.js.map +1 -0
  175. package/dist/bot/services/permission-guard.d.ts.map +1 -0
  176. package/dist/bot/services/permission-guard.js.map +1 -0
  177. package/dist/bot/services/session-logger.d.ts.map +1 -0
  178. package/dist/bot/services/session-logger.js.map +1 -0
  179. package/dist/bot/services/token-billing.d.ts.map +1 -0
  180. package/dist/bot/services/token-billing.js.map +1 -0
  181. package/dist/bot/services/types.d.ts.map +1 -0
  182. package/dist/bot/services/types.js.map +1 -0
  183. package/dist/bot/services/typing-indicator.d.ts.map +1 -0
  184. package/dist/bot/services/typing-indicator.js.map +1 -0
  185. package/dist/bot/services/workspace-schema-cache.d.ts.map +1 -0
  186. package/dist/bot/services/workspace-schema-cache.js.map +1 -0
  187. package/dist/bot/tool-executor.d.ts.map +1 -0
  188. package/dist/bot/tool-executor.js.map +1 -0
  189. package/dist/bot/workspace-overview.d.ts.map +1 -0
  190. package/dist/bot/workspace-overview.js.map +1 -0
  191. package/dist/bot-config/constants.d.ts +42 -0
  192. package/dist/bot-config/constants.d.ts.map +1 -0
  193. package/dist/bot-config/constants.js +118 -0
  194. package/dist/bot-config/constants.js.map +1 -0
  195. package/dist/bot-config/context.d.ts +157 -0
  196. package/dist/bot-config/context.d.ts.map +1 -0
  197. package/dist/bot-config/context.js +475 -0
  198. package/dist/bot-config/context.js.map +1 -0
  199. package/dist/bot-config/index.d.ts +21 -0
  200. package/dist/bot-config/index.d.ts.map +1 -0
  201. package/dist/bot-config/index.js +104 -0
  202. package/dist/bot-config/index.js.map +1 -0
  203. package/dist/bot-config/loader.d.ts +28 -0
  204. package/dist/bot-config/loader.d.ts.map +1 -0
  205. package/dist/bot-config/loader.js +194 -0
  206. package/dist/bot-config/loader.js.map +1 -0
  207. package/dist/bot-config/persistence.d.ts +68 -0
  208. package/dist/bot-config/persistence.d.ts.map +1 -0
  209. package/dist/bot-config/persistence.js +261 -0
  210. package/dist/bot-config/persistence.js.map +1 -0
  211. package/dist/bot-config/state.d.ts +56 -0
  212. package/dist/bot-config/state.d.ts.map +1 -0
  213. package/dist/bot-config/state.js +197 -0
  214. package/dist/bot-config/state.js.map +1 -0
  215. package/dist/bot-config/tools.d.ts +28 -0
  216. package/dist/bot-config/tools.d.ts.map +1 -0
  217. package/dist/bot-config/tools.js +279 -0
  218. package/dist/bot-config/tools.js.map +1 -0
  219. package/dist/bot-config/types.d.ts +45 -0
  220. package/dist/bot-config/types.d.ts.map +1 -0
  221. package/dist/bot-config/types.js +9 -0
  222. package/dist/bot-config/types.js.map +1 -0
  223. package/dist/bot-config/webhooks.d.ts +27 -0
  224. package/dist/bot-config/webhooks.d.ts.map +1 -0
  225. package/dist/bot-config/webhooks.js +212 -0
  226. package/dist/bot-config/webhooks.js.map +1 -0
  227. package/dist/cli.d.ts.map +1 -0
  228. package/dist/cli.js.map +1 -0
  229. package/dist/client/agents/base.d.ts +207 -0
  230. package/dist/client/agents/base.d.ts.map +1 -0
  231. package/dist/client/agents/base.js +744 -0
  232. package/dist/client/agents/base.js.map +1 -0
  233. package/dist/client/agents/definitions.d.ts +53 -0
  234. package/dist/client/agents/definitions.d.ts.map +1 -0
  235. package/dist/client/agents/definitions.js +263 -0
  236. package/dist/client/agents/definitions.js.map +1 -0
  237. package/dist/client/agents/orchestrator.d.ts +141 -0
  238. package/dist/client/agents/orchestrator.d.ts.map +1 -0
  239. package/dist/client/agents/orchestrator.js +1062 -0
  240. package/dist/client/agents/orchestrator.js.map +1 -0
  241. package/dist/client/agents/specialist.d.ts +86 -0
  242. package/dist/client/agents/specialist.d.ts.map +1 -0
  243. package/dist/client/agents/specialist.js +340 -0
  244. package/dist/client/agents/specialist.js.map +1 -0
  245. package/dist/client/bot-entrypoint.d.ts +7 -0
  246. package/dist/client/bot-entrypoint.d.ts.map +1 -0
  247. package/dist/client/bot-entrypoint.js +103 -0
  248. package/dist/client/bot-entrypoint.js.map +1 -0
  249. package/dist/client/bot-manager.d.ts +44 -0
  250. package/dist/client/bot-manager.d.ts.map +1 -0
  251. package/dist/client/bot-manager.js +173 -0
  252. package/dist/client/bot-manager.js.map +1 -0
  253. package/dist/client/bot-runner.d.ts +35 -0
  254. package/dist/client/bot-runner.d.ts.map +1 -0
  255. package/dist/client/bot-runner.js +188 -0
  256. package/dist/client/bot-runner.js.map +1 -0
  257. package/dist/client/chat-agent-daemon.d.ts +464 -0
  258. package/dist/client/chat-agent-daemon.d.ts.map +1 -0
  259. package/dist/client/chat-agent-daemon.js +1774 -0
  260. package/dist/client/chat-agent-daemon.js.map +1 -0
  261. package/dist/client/daemon-factory.d.ts +106 -0
  262. package/dist/client/daemon-factory.d.ts.map +1 -0
  263. package/dist/client/daemon-factory.js +301 -0
  264. package/dist/client/daemon-factory.js.map +1 -0
  265. package/dist/client/factory.d.ts +111 -0
  266. package/dist/client/factory.d.ts.map +1 -0
  267. package/dist/client/factory.js +314 -0
  268. package/dist/client/factory.js.map +1 -0
  269. package/dist/client/index.d.ts +17 -0
  270. package/dist/client/index.d.ts.map +1 -0
  271. package/dist/client/index.js +38 -0
  272. package/dist/client/index.js.map +1 -0
  273. package/dist/client/multi-bot-manager.d.ts +42 -0
  274. package/dist/client/multi-bot-manager.d.ts.map +1 -0
  275. package/dist/client/multi-bot-manager.js +161 -0
  276. package/dist/client/multi-bot-manager.js.map +1 -0
  277. package/dist/client/orchestrator-daemon.d.ts +87 -0
  278. package/dist/client/orchestrator-daemon.d.ts.map +1 -0
  279. package/dist/client/orchestrator-daemon.js +444 -0
  280. package/dist/client/orchestrator-daemon.js.map +1 -0
  281. package/dist/client/server.d.ts +8 -0
  282. package/dist/client/server.d.ts.map +1 -0
  283. package/dist/client/server.js +251 -0
  284. package/dist/client/server.js.map +1 -0
  285. package/dist/client/services/agent-registry.d.ts +108 -0
  286. package/dist/client/services/agent-registry.d.ts.map +1 -0
  287. package/dist/client/services/agent-registry.js +630 -0
  288. package/dist/client/services/agent-registry.js.map +1 -0
  289. package/dist/client/services/conversation-manager.d.ts +50 -0
  290. package/dist/client/services/conversation-manager.d.ts.map +1 -0
  291. package/dist/client/services/conversation-manager.js +136 -0
  292. package/dist/client/services/conversation-manager.js.map +1 -0
  293. package/dist/client/services/mcp-client.d.ts +48 -0
  294. package/dist/client/services/mcp-client.d.ts.map +1 -0
  295. package/dist/client/services/mcp-client.js +105 -0
  296. package/dist/client/services/mcp-client.js.map +1 -0
  297. package/dist/client/services/message-classifier.d.ts +37 -0
  298. package/dist/client/services/message-classifier.d.ts.map +1 -0
  299. package/dist/client/services/message-classifier.js +187 -0
  300. package/dist/client/services/message-classifier.js.map +1 -0
  301. package/dist/client/services/message-formatter.d.ts +84 -0
  302. package/dist/client/services/message-formatter.d.ts.map +1 -0
  303. package/dist/client/services/message-formatter.js +353 -0
  304. package/dist/client/services/message-formatter.js.map +1 -0
  305. package/dist/client/services/session-logger.d.ts +106 -0
  306. package/dist/client/services/session-logger.d.ts.map +1 -0
  307. package/dist/client/services/session-logger.js +446 -0
  308. package/dist/client/services/session-logger.js.map +1 -0
  309. package/dist/client/services/tool-executor.d.ts +41 -0
  310. package/dist/client/services/tool-executor.d.ts.map +1 -0
  311. package/dist/client/services/tool-executor.js +169 -0
  312. package/dist/client/services/tool-executor.js.map +1 -0
  313. package/dist/client/services/workspace-schema-cache.d.ts +149 -0
  314. package/dist/client/services/workspace-schema-cache.d.ts.map +1 -0
  315. package/dist/client/services/workspace-schema-cache.js +732 -0
  316. package/dist/client/services/workspace-schema-cache.js.map +1 -0
  317. package/dist/client/specialist-daemon.d.ts +77 -0
  318. package/dist/client/specialist-daemon.d.ts.map +1 -0
  319. package/dist/client/specialist-daemon.js +197 -0
  320. package/dist/client/specialist-daemon.js.map +1 -0
  321. package/dist/client/specialists.d.ts +53 -0
  322. package/dist/client/specialists.d.ts.map +1 -0
  323. package/dist/client/specialists.js +178 -0
  324. package/dist/client/specialists.js.map +1 -0
  325. package/dist/client/tool-schema-loader.d.ts +62 -0
  326. package/dist/client/tool-schema-loader.d.ts.map +1 -0
  327. package/dist/client/tool-schema-loader.js +232 -0
  328. package/dist/client/tool-schema-loader.js.map +1 -0
  329. package/dist/client/types.d.ts +327 -0
  330. package/dist/client/types.d.ts.map +1 -0
  331. package/dist/client/types.js +121 -0
  332. package/dist/client/types.js.map +1 -0
  333. package/dist/commands/seed-config.d.ts +9 -0
  334. package/dist/commands/seed-config.d.ts.map +1 -0
  335. package/dist/commands/seed-config.js +392 -0
  336. package/dist/commands/seed-config.js.map +1 -0
  337. package/dist/commands/setup.d.ts +11 -0
  338. package/dist/commands/setup.d.ts.map +1 -0
  339. package/dist/commands/setup.js +320 -0
  340. package/dist/commands/setup.js.map +1 -0
  341. package/dist/config.d.ts.map +1 -0
  342. package/dist/config.js.map +1 -0
  343. package/dist/core.d.ts.map +1 -0
  344. package/dist/core.js.map +1 -0
  345. package/dist/lib/discussion-lock.d.ts.map +1 -0
  346. package/dist/lib/discussion-lock.js.map +1 -0
  347. package/dist/lib/logger.d.ts.map +1 -0
  348. package/dist/lib/logger.js.map +1 -0
  349. package/dist/lib/request-logger.d.ts.map +1 -0
  350. package/dist/lib/request-logger.js.map +1 -0
  351. package/dist/mcp/UserContextCache.d.ts.map +1 -0
  352. package/dist/mcp/UserContextCache.js.map +1 -0
  353. package/dist/mcp/auth.d.ts.map +1 -0
  354. package/dist/mcp/auth.js.map +1 -0
  355. package/dist/mcp/hailer-clients.d.ts.map +1 -0
  356. package/dist/mcp/hailer-clients.js.map +1 -0
  357. package/dist/mcp/session-store.d.ts.map +1 -0
  358. package/dist/mcp/session-store.js.map +1 -0
  359. package/dist/mcp/signal-handler.d.ts.map +1 -0
  360. package/dist/mcp/signal-handler.js.map +1 -0
  361. package/dist/mcp/tool-registry.d.ts.map +1 -0
  362. package/dist/mcp/tool-registry.js.map +1 -0
  363. package/dist/mcp/tools/__tests__/discussion-forward.test.d.ts +2 -0
  364. package/dist/mcp/tools/__tests__/discussion-forward.test.d.ts.map +1 -0
  365. package/dist/mcp/tools/__tests__/discussion-forward.test.js +218 -0
  366. package/dist/mcp/tools/__tests__/discussion-forward.test.js.map +1 -0
  367. package/dist/mcp/tools/activity.d.ts.map +1 -0
  368. package/dist/mcp/tools/activity.js.map +1 -0
  369. package/dist/mcp/tools/app-core.d.ts.map +1 -0
  370. package/dist/mcp/tools/app-core.js.map +1 -0
  371. package/dist/mcp/tools/app-marketplace.d.ts.map +1 -0
  372. package/dist/mcp/tools/app-marketplace.js.map +1 -0
  373. package/dist/mcp/tools/app-member.d.ts.map +1 -0
  374. package/dist/mcp/tools/app-member.js.map +1 -0
  375. package/dist/mcp/tools/app-scaffold.d.ts.map +1 -0
  376. package/dist/mcp/tools/app-scaffold.js.map +1 -0
  377. package/dist/mcp/tools/app.d.ts.map +1 -0
  378. package/dist/mcp/tools/app.js.map +1 -0
  379. package/dist/mcp/tools/bot-config/constants.d.ts.map +1 -0
  380. package/dist/mcp/tools/bot-config/constants.js.map +1 -0
  381. package/dist/mcp/tools/bot-config/core.d.ts.map +1 -0
  382. package/dist/mcp/tools/bot-config/core.js.map +1 -0
  383. package/dist/mcp/tools/bot-config/index.d.ts.map +1 -0
  384. package/dist/mcp/tools/bot-config/index.js.map +1 -0
  385. package/dist/mcp/tools/bot-config/tools.d.ts.map +1 -0
  386. package/dist/mcp/tools/bot-config/tools.js.map +1 -0
  387. package/dist/mcp/tools/bot-config/types.d.ts.map +1 -0
  388. package/dist/mcp/tools/bot-config/types.js.map +1 -0
  389. package/dist/mcp/tools/bug-fixer-tools.d.ts.map +1 -0
  390. package/dist/mcp/tools/bug-fixer-tools.js.map +1 -0
  391. package/dist/mcp/tools/company.d.ts.map +1 -0
  392. package/dist/mcp/tools/company.js.map +1 -0
  393. package/dist/mcp/tools/discussion.d.ts.map +1 -0
  394. package/dist/mcp/tools/discussion.js.map +1 -0
  395. package/dist/mcp/tools/document.d.ts.map +1 -0
  396. package/dist/mcp/tools/document.js.map +1 -0
  397. package/dist/mcp/tools/file.d.ts.map +1 -0
  398. package/dist/mcp/tools/file.js.map +1 -0
  399. package/dist/mcp/tools/insight.d.ts.map +1 -0
  400. package/dist/mcp/tools/insight.js.map +1 -0
  401. package/dist/mcp/tools/investigate.d.ts.map +1 -0
  402. package/dist/mcp/tools/investigate.js.map +1 -0
  403. package/dist/mcp/tools/user.d.ts.map +1 -0
  404. package/dist/mcp/tools/user.js.map +1 -0
  405. package/dist/mcp/tools/workflow-permissions.d.ts.map +1 -0
  406. package/dist/mcp/tools/workflow-permissions.js.map +1 -0
  407. package/dist/mcp/tools/workflow.d.ts.map +1 -0
  408. package/dist/mcp/tools/workflow.js.map +1 -0
  409. package/dist/mcp/utils/api-errors.d.ts.map +1 -0
  410. package/dist/mcp/utils/api-errors.js.map +1 -0
  411. package/dist/mcp/utils/data-transformers.d.ts.map +1 -0
  412. package/dist/mcp/utils/data-transformers.js.map +1 -0
  413. package/dist/mcp/utils/file-upload.d.ts.map +1 -0
  414. package/dist/mcp/utils/file-upload.js.map +1 -0
  415. package/dist/mcp/utils/hailer-api-client.d.ts.map +1 -0
  416. package/dist/mcp/utils/hailer-api-client.js.map +1 -0
  417. package/dist/mcp/utils/index.d.ts.map +1 -0
  418. package/dist/mcp/utils/index.js.map +1 -0
  419. package/dist/mcp/utils/logger.d.ts.map +1 -0
  420. package/dist/mcp/utils/logger.js.map +1 -0
  421. package/dist/mcp/utils/pagination.d.ts.map +1 -0
  422. package/dist/mcp/utils/pagination.js.map +1 -0
  423. package/dist/mcp/utils/response-builder.d.ts.map +1 -0
  424. package/dist/mcp/utils/response-builder.js.map +1 -0
  425. package/dist/mcp/utils/role-utils.d.ts.map +1 -0
  426. package/dist/mcp/utils/role-utils.js.map +1 -0
  427. package/dist/mcp/utils/tool-helpers.d.ts.map +1 -0
  428. package/dist/mcp/utils/tool-helpers.js.map +1 -0
  429. package/dist/mcp/utils/types.d.ts.map +1 -0
  430. package/dist/mcp/utils/types.js.map +1 -0
  431. package/dist/mcp/webhook-handler.d.ts.map +1 -0
  432. package/dist/mcp/webhook-handler.js.map +1 -0
  433. package/dist/mcp/workspace-cache.d.ts.map +1 -0
  434. package/dist/mcp/workspace-cache.js.map +1 -0
  435. package/dist/mcp-server.d.ts.map +1 -0
  436. package/dist/mcp-server.js.map +1 -0
  437. package/dist/modules/bug-reports/bug-config.d.ts +25 -0
  438. package/dist/modules/bug-reports/bug-config.d.ts.map +1 -0
  439. package/dist/modules/bug-reports/bug-config.js +187 -0
  440. package/dist/modules/bug-reports/bug-config.js.map +1 -0
  441. package/dist/modules/bug-reports/bug-monitor.d.ts +108 -0
  442. package/dist/modules/bug-reports/bug-monitor.d.ts.map +1 -0
  443. package/dist/modules/bug-reports/bug-monitor.js +510 -0
  444. package/dist/modules/bug-reports/bug-monitor.js.map +1 -0
  445. package/dist/modules/bug-reports/giuseppe-agent.d.ts +58 -0
  446. package/dist/modules/bug-reports/giuseppe-agent.d.ts.map +1 -0
  447. package/dist/modules/bug-reports/giuseppe-agent.js +467 -0
  448. package/dist/modules/bug-reports/giuseppe-agent.js.map +1 -0
  449. package/dist/modules/bug-reports/giuseppe-ai.d.ts +83 -0
  450. package/dist/modules/bug-reports/giuseppe-ai.d.ts.map +1 -0
  451. package/dist/modules/bug-reports/giuseppe-ai.js +466 -0
  452. package/dist/modules/bug-reports/giuseppe-ai.js.map +1 -0
  453. package/dist/modules/bug-reports/giuseppe-bot.d.ts +110 -0
  454. package/dist/modules/bug-reports/giuseppe-bot.d.ts.map +1 -0
  455. package/dist/modules/bug-reports/giuseppe-bot.js +804 -0
  456. package/dist/modules/bug-reports/giuseppe-bot.js.map +1 -0
  457. package/dist/modules/bug-reports/giuseppe-daemon.d.ts +80 -0
  458. package/dist/modules/bug-reports/giuseppe-daemon.d.ts.map +1 -0
  459. package/dist/modules/bug-reports/giuseppe-daemon.js +617 -0
  460. package/dist/modules/bug-reports/giuseppe-daemon.js.map +1 -0
  461. package/dist/modules/bug-reports/giuseppe-files.d.ts +64 -0
  462. package/dist/modules/bug-reports/giuseppe-files.d.ts.map +1 -0
  463. package/dist/modules/bug-reports/giuseppe-files.js +375 -0
  464. package/dist/modules/bug-reports/giuseppe-files.js.map +1 -0
  465. package/dist/modules/bug-reports/giuseppe-git.d.ts +48 -0
  466. package/dist/modules/bug-reports/giuseppe-git.d.ts.map +1 -0
  467. package/dist/modules/bug-reports/giuseppe-git.js +298 -0
  468. package/dist/modules/bug-reports/giuseppe-git.js.map +1 -0
  469. package/dist/modules/bug-reports/giuseppe-lsp.d.ts +113 -0
  470. package/dist/modules/bug-reports/giuseppe-lsp.d.ts.map +1 -0
  471. package/dist/modules/bug-reports/giuseppe-lsp.js +485 -0
  472. package/dist/modules/bug-reports/giuseppe-lsp.js.map +1 -0
  473. package/dist/modules/bug-reports/giuseppe-prompt.d.ts +5 -0
  474. package/dist/modules/bug-reports/giuseppe-prompt.d.ts.map +1 -0
  475. package/dist/modules/bug-reports/giuseppe-prompt.js +94 -0
  476. package/dist/modules/bug-reports/giuseppe-prompt.js.map +1 -0
  477. package/dist/modules/bug-reports/index.d.ts +77 -0
  478. package/dist/modules/bug-reports/index.d.ts.map +1 -0
  479. package/dist/modules/bug-reports/index.js +215 -0
  480. package/dist/modules/bug-reports/index.js.map +1 -0
  481. package/dist/modules/bug-reports/pending-classification-registry.d.ts +28 -0
  482. package/dist/modules/bug-reports/pending-classification-registry.d.ts.map +1 -0
  483. package/dist/modules/bug-reports/pending-classification-registry.js +50 -0
  484. package/dist/modules/bug-reports/pending-classification-registry.js.map +1 -0
  485. package/dist/modules/bug-reports/pending-fix-registry.d.ts +30 -0
  486. package/dist/modules/bug-reports/pending-fix-registry.d.ts.map +1 -0
  487. package/dist/modules/bug-reports/pending-fix-registry.js +42 -0
  488. package/dist/modules/bug-reports/pending-fix-registry.js.map +1 -0
  489. package/dist/modules/bug-reports/pending-registry.d.ts +27 -0
  490. package/dist/modules/bug-reports/pending-registry.d.ts.map +1 -0
  491. package/dist/modules/bug-reports/pending-registry.js +49 -0
  492. package/dist/modules/bug-reports/pending-registry.js.map +1 -0
  493. package/dist/modules/bug-reports/types.d.ts +123 -0
  494. package/dist/modules/bug-reports/types.d.ts.map +1 -0
  495. package/dist/modules/bug-reports/types.js +9 -0
  496. package/dist/modules/bug-reports/types.js.map +1 -0
  497. package/dist/plugins/bug-fixer/index.d.ts.map +1 -0
  498. package/dist/plugins/bug-fixer/index.js.map +1 -0
  499. package/dist/plugins/bug-fixer/tools.d.ts.map +1 -0
  500. package/dist/plugins/bug-fixer/tools.js.map +1 -0
  501. package/dist/plugins/vipunen/__tests__/tools.test.d.ts +10 -0
  502. package/dist/plugins/vipunen/__tests__/tools.test.d.ts.map +1 -0
  503. package/dist/plugins/vipunen/__tests__/tools.test.js +646 -0
  504. package/dist/plugins/vipunen/__tests__/tools.test.js.map +1 -0
  505. package/dist/plugins/vipunen/client.d.ts.map +1 -0
  506. package/dist/plugins/vipunen/client.js.map +1 -0
  507. package/dist/plugins/vipunen/index.d.ts.map +1 -0
  508. package/dist/plugins/vipunen/index.js.map +1 -0
  509. package/dist/plugins/vipunen/tools.d.ts.map +1 -0
  510. package/dist/plugins/vipunen/tools.js.map +1 -0
  511. package/dist/routes/agents.d.ts +44 -0
  512. package/dist/routes/agents.d.ts.map +1 -0
  513. package/dist/routes/agents.js +311 -0
  514. package/dist/routes/agents.js.map +1 -0
  515. package/dist/services/agent-credential-store.d.ts +73 -0
  516. package/dist/services/agent-credential-store.d.ts.map +1 -0
  517. package/dist/services/agent-credential-store.js +212 -0
  518. package/dist/services/agent-credential-store.js.map +1 -0
  519. package/dist/stdio-server.d.ts.map +1 -0
  520. package/dist/stdio-server.js.map +1 -0
  521. package/dist/workspace/context.d.ts +148 -0
  522. package/dist/workspace/context.d.ts.map +1 -0
  523. package/dist/workspace/context.js +339 -0
  524. package/dist/workspace/context.js.map +1 -0
  525. package/dist/workspace/credentials.d.ts +55 -0
  526. package/dist/workspace/credentials.d.ts.map +1 -0
  527. package/dist/workspace/credentials.js +239 -0
  528. package/dist/workspace/credentials.js.map +1 -0
  529. package/dist/workspace/index.d.ts +21 -0
  530. package/dist/workspace/index.d.ts.map +1 -0
  531. package/dist/workspace/index.js +45 -0
  532. package/dist/workspace/index.js.map +1 -0
  533. package/dist/workspace/loader.d.ts +27 -0
  534. package/dist/workspace/loader.d.ts.map +1 -0
  535. package/dist/workspace/loader.js +222 -0
  536. package/dist/workspace/loader.js.map +1 -0
  537. package/dist/workspace/schema.d.ts +37 -0
  538. package/dist/workspace/schema.d.ts.map +1 -0
  539. package/dist/workspace/schema.js +192 -0
  540. package/dist/workspace/schema.js.map +1 -0
  541. package/package.json +13 -1
  542. package/.claude/.context-watchdog.json +0 -1
  543. package/.claude/.session-checked +0 -1
  544. package/test-billing-server.js +0 -136
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Agent Registry Service
3
+ *
4
+ * Handles registration of agents in Hailer workspace workflows:
5
+ * - Agent Directory: Main registry of all bots
6
+ * - Positions: Job descriptions/roles
7
+ * - Teams: Groups of agents
8
+ * - Tool Registry: MCP server configurations
9
+ * - MCP Config: Per-agent MCP configuration
10
+ *
11
+ * WORKSPACE ISOLATION: Uses WorkspaceSchemaCacheService for dynamic ID lookup.
12
+ * Never relies on hardcoded IDs - each workspace has its own workflow IDs.
13
+ */
14
+ import { Logger } from "../../../lib/logger";
15
+ import { McpToolCallback } from "../../shared/types";
16
+ import { ToolIndexEntry } from "../tool-schema-loader";
17
+ import { WorkspaceSchemaCacheService } from "./workspace-schema-cache";
18
+ export interface AgentInfo {
19
+ firstName: string;
20
+ lastName: string;
21
+ description: string;
22
+ email: string;
23
+ userId: string;
24
+ }
25
+ export interface PositionDetails {
26
+ name: string;
27
+ purpose: string;
28
+ personaTone: string;
29
+ coreCapabilities: string;
30
+ boundaries: string;
31
+ }
32
+ export declare class AgentRegistryService {
33
+ private schemaCache;
34
+ private logger;
35
+ private callMcpTool;
36
+ private getDefaultTeamId;
37
+ private agentDirectoryId;
38
+ private positionId;
39
+ private teamId;
40
+ private toolRegistryId;
41
+ private mcpConfigId;
42
+ constructor(schemaCache: WorkspaceSchemaCacheService, logger: Logger, callMcpTool: McpToolCallback, getDefaultTeamId: () => string | undefined);
43
+ /**
44
+ * Get agent directory ID
45
+ */
46
+ getAgentDirectoryId(): string | null;
47
+ /**
48
+ * Get position ID
49
+ */
50
+ getPositionId(): string | null;
51
+ /**
52
+ * Get team ID
53
+ */
54
+ getTeamId(): string | null;
55
+ /**
56
+ * Register all agent data across all workflows
57
+ * Uses schemaCache for dynamic workflow ID lookup
58
+ */
59
+ registerAllAgentData(agentInfo: AgentInfo, positionDetails: PositionDetails, mcpServerUrl: string, toolIndex: ToolIndexEntry[], workspaceId: string): Promise<void>;
60
+ /**
61
+ * Register this agent in the Agent Directory
62
+ * Uses dynamic schema lookup for workflow/field IDs
63
+ */
64
+ private registerAgentInDirectory;
65
+ /**
66
+ * Find phase ID by trying multiple names (case insensitive, partial match)
67
+ */
68
+ private findPhaseId;
69
+ /**
70
+ * Common find-or-create pattern used by registration methods
71
+ * Searches for existing activity, creates if not found
72
+ */
73
+ private findOrCreateActivity;
74
+ /**
75
+ * Find existing agent entry by hailerProfile (userId) - most reliable method
76
+ */
77
+ private findAgentByUserId;
78
+ /**
79
+ * Parse first activity from list_activities response
80
+ */
81
+ private parseFirstActivity;
82
+ /**
83
+ * Register/find shared Team for AI agents
84
+ */
85
+ private registerTeam;
86
+ /**
87
+ * Register MCP server in Tool Registry (per-agent)
88
+ */
89
+ private registerToolRegistry;
90
+ /**
91
+ * Register Position for this agent
92
+ */
93
+ private registerPosition;
94
+ /**
95
+ * Register MCP Config for this agent
96
+ */
97
+ private registerMcpConfig;
98
+ /**
99
+ * Link Agent Directory entry to Position and Team
100
+ */
101
+ private linkAgentToPositionAndTeam;
102
+ /**
103
+ * Extract activity ID from MCP tool response text
104
+ * Looks for JSON block with created_ids or falls back to regex patterns
105
+ */
106
+ private extractActivityId;
107
+ }
108
+ //# sourceMappingURL=agent-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-registry.d.ts","sourceRoot":"","sources":["../../../../src/agents/shared/services/agent-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAkB,MAAM,0BAA0B,CAAC;AA0BvF,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,oBAAoB;IAQ7B,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,gBAAgB;IAV1B,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,WAAW,CAAuB;gBAGhC,WAAW,EAAE,2BAA2B,EACxC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,eAAe,EAC5B,gBAAgB,EAAE,MAAM,MAAM,GAAG,SAAS;IAGpD;;OAEG;IACI,mBAAmB,IAAI,MAAM,GAAG,IAAI;IAI3C;;OAEG;IACI,aAAa,IAAI,MAAM,GAAG,IAAI;IAIrC;;OAEG;IACI,SAAS,IAAI,MAAM,GAAG,IAAI;IAIjC;;;OAGG;IACU,oBAAoB,CAC/B,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,cAAc,EAAE,EAC3B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IA+ChB;;;OAGG;YACW,wBAAwB;IAqCtC;;OAEG;IACH,OAAO,CAAC,WAAW;IAiBnB;;;OAGG;YACW,oBAAoB;IA0ClC;;OAEG;YACW,iBAAiB;IA0C/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAuB1B;;OAEG;YACW,YAAY;IA4B1B;;OAEG;YACW,oBAAoB;IA+BlC;;OAEG;YACW,gBAAgB;IAmC9B;;OAEG;YACW,iBAAiB;IAiD/B;;OAEG;YACW,0BAA0B;IA0CxC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;CAiB1B"}
@@ -0,0 +1,469 @@
1
+ "use strict";
2
+ /**
3
+ * Agent Registry Service
4
+ *
5
+ * Handles registration of agents in Hailer workspace workflows:
6
+ * - Agent Directory: Main registry of all bots
7
+ * - Positions: Job descriptions/roles
8
+ * - Teams: Groups of agents
9
+ * - Tool Registry: MCP server configurations
10
+ * - MCP Config: Per-agent MCP configuration
11
+ *
12
+ * WORKSPACE ISOLATION: Uses WorkspaceSchemaCacheService for dynamic ID lookup.
13
+ * Never relies on hardcoded IDs - each workspace has its own workflow IDs.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.AgentRegistryService = void 0;
17
+ const config_1 = require("../../../config");
18
+ /**
19
+ * Field key variants for multi-locale support
20
+ * Maps logical field name to possible keys in different templates/locales
21
+ */
22
+ const FIELD_KEYS = {
23
+ firstName: ["firstName"],
24
+ lastName: ["lastName"],
25
+ description: ["description"],
26
+ email: ["agentEmailInHailer", "email"],
27
+ hailerProfile: ["hailerProfile"],
28
+ startDate: ["startDate"],
29
+ };
30
+ /**
31
+ * Find field ID by trying multiple key variants
32
+ */
33
+ function findFieldId(fields, keys) {
34
+ for (const key of keys) {
35
+ if (fields[key])
36
+ return fields[key];
37
+ }
38
+ return undefined;
39
+ }
40
+ class AgentRegistryService {
41
+ schemaCache;
42
+ logger;
43
+ callMcpTool;
44
+ getDefaultTeamId;
45
+ agentDirectoryId = null;
46
+ positionId = null;
47
+ teamId = null;
48
+ toolRegistryId = null;
49
+ mcpConfigId = null;
50
+ constructor(schemaCache, logger, callMcpTool, getDefaultTeamId) {
51
+ this.schemaCache = schemaCache;
52
+ this.logger = logger;
53
+ this.callMcpTool = callMcpTool;
54
+ this.getDefaultTeamId = getDefaultTeamId;
55
+ }
56
+ /**
57
+ * Get agent directory ID
58
+ */
59
+ getAgentDirectoryId() {
60
+ return this.agentDirectoryId;
61
+ }
62
+ /**
63
+ * Get position ID
64
+ */
65
+ getPositionId() {
66
+ return this.positionId;
67
+ }
68
+ /**
69
+ * Get team ID
70
+ */
71
+ getTeamId() {
72
+ return this.teamId;
73
+ }
74
+ /**
75
+ * Register all agent data across all workflows
76
+ * Uses schemaCache for dynamic workflow ID lookup
77
+ */
78
+ async registerAllAgentData(agentInfo, positionDetails, mcpServerUrl, toolIndex, workspaceId) {
79
+ this.logger.info("Starting full agent registration", { workspaceId });
80
+ // Verify schema cache has required workflows
81
+ const agentDirSchema = this.schemaCache.getAgentDirectorySchema(workspaceId);
82
+ if (!agentDirSchema) {
83
+ this.logger.warn("Agent Directory workflow not found in workspace - skipping registration", { workspaceId });
84
+ return;
85
+ }
86
+ try {
87
+ // 1. Register in Agent Directory first (required for other links)
88
+ await this.registerAgentInDirectory(agentInfo, workspaceId);
89
+ // 2. Create/find shared Team for AI agents
90
+ await this.registerTeam(workspaceId);
91
+ // 3. Register MCP server in Tool Registry (per-agent)
92
+ const agentName = `${agentInfo.firstName} ${agentInfo.lastName}`;
93
+ await this.registerToolRegistry(mcpServerUrl, toolIndex, workspaceId, agentName);
94
+ // 4. Create Position for this agent
95
+ await this.registerPosition(positionDetails, workspaceId);
96
+ // 5. Create MCP Config for this agent
97
+ await this.registerMcpConfig(agentInfo, workspaceId);
98
+ // 6. Update Agent Directory with Position and Team links
99
+ await this.linkAgentToPositionAndTeam(workspaceId);
100
+ this.logger.info("Full agent registration completed", {
101
+ workspaceId,
102
+ agentDirectoryId: this.agentDirectoryId,
103
+ positionId: this.positionId,
104
+ teamId: this.teamId,
105
+ toolRegistryId: this.toolRegistryId,
106
+ mcpConfigId: this.mcpConfigId,
107
+ });
108
+ }
109
+ catch (error) {
110
+ this.logger.warn("Agent registration incomplete", {
111
+ error: error instanceof Error ? error.message : String(error),
112
+ workspaceId,
113
+ agentDirectoryId: this.agentDirectoryId,
114
+ });
115
+ }
116
+ }
117
+ /**
118
+ * Register this agent in the Agent Directory
119
+ * Uses dynamic schema lookup for workflow/field IDs
120
+ */
121
+ async registerAgentInDirectory(agentInfo, workspaceId) {
122
+ const schema = this.schemaCache.getAgentDirectorySchema(workspaceId);
123
+ if (!schema) {
124
+ this.logger.debug("Skipping agent directory registration - no schema");
125
+ return;
126
+ }
127
+ this.logger.info("Registering agent in directory", {
128
+ email: (0, config_1.maskEmail)(agentInfo.email),
129
+ userId: agentInfo.userId,
130
+ workflowId: schema.workflowId,
131
+ });
132
+ try {
133
+ // Find existing agent by hailerProfile (userId)
134
+ // NOTE: Agents must be created via AI Hub - no auto-creation on startup
135
+ const existingAgent = await this.findAgentByUserId(agentInfo.userId, schema);
136
+ if (existingAgent) {
137
+ this.agentDirectoryId = existingAgent._id;
138
+ this.logger.info("Found existing agent in directory", {
139
+ agentDirectoryId: this.agentDirectoryId,
140
+ name: existingAgent.name,
141
+ });
142
+ }
143
+ else {
144
+ this.logger.info("Agent not found in directory - create via AI Hub app", {
145
+ userId: agentInfo.userId,
146
+ email: (0, config_1.maskEmail)(agentInfo.email),
147
+ });
148
+ }
149
+ }
150
+ catch (error) {
151
+ this.logger.warn("Failed to find agent in directory", {
152
+ error: error instanceof Error ? error.message : String(error),
153
+ });
154
+ }
155
+ }
156
+ /**
157
+ * Find phase ID by trying multiple names (case insensitive, partial match)
158
+ */
159
+ findPhaseId(phases, preferredNames) {
160
+ // Normalize phase keys for lookup
161
+ const normalizedPhases = Object.entries(phases).map(([name, id]) => ({
162
+ name: name.toLowerCase(),
163
+ id,
164
+ }));
165
+ // Try each preferred name in order
166
+ for (const preferred of preferredNames) {
167
+ const match = normalizedPhases.find(p => p.name.includes(preferred.toLowerCase()));
168
+ if (match)
169
+ return match.id;
170
+ }
171
+ // Fallback to first phase
172
+ return Object.values(phases)[0];
173
+ }
174
+ /**
175
+ * Common find-or-create pattern used by registration methods
176
+ * Searches for existing activity, creates if not found
177
+ */
178
+ async findOrCreateActivity(schema, activityName, fields, preferredPhases, searchField) {
179
+ const phaseId = this.findPhaseId(schema.phases, preferredPhases);
180
+ const wsTeamId = this.getDefaultTeamId();
181
+ try {
182
+ // Search for existing
183
+ const result = await this.callMcpTool("list_activities", {
184
+ workflowId: schema.workflowId,
185
+ phaseId,
186
+ fields: searchField ? [searchField] : [],
187
+ search: activityName,
188
+ limit: 1,
189
+ });
190
+ const existingId = this.extractActivityId(result?.content?.[0]?.text);
191
+ if (existingId) {
192
+ return existingId;
193
+ }
194
+ // Create new
195
+ const createParams = {
196
+ workflowId: schema.workflowId,
197
+ name: activityName,
198
+ phaseId,
199
+ fields,
200
+ };
201
+ if (wsTeamId)
202
+ createParams.teamId = wsTeamId;
203
+ const createResult = await this.callMcpTool("create_activity", createParams);
204
+ return this.extractActivityId(createResult?.content?.[0]?.text);
205
+ }
206
+ catch (error) {
207
+ this.logger.warn("findOrCreateActivity failed", { activityName, error });
208
+ return null;
209
+ }
210
+ }
211
+ /**
212
+ * Find existing agent entry by hailerProfile (userId) - most reliable method
213
+ */
214
+ async findAgentByUserId(userId, schema) {
215
+ const hailerProfileFieldId = findFieldId(schema.fields, FIELD_KEYS.hailerProfile);
216
+ if (!hailerProfileFieldId) {
217
+ this.logger.debug("No hailerProfile field in Agent Directory schema");
218
+ return null;
219
+ }
220
+ // Search across all phases (agent might be in any phase)
221
+ const phasesToSearch = Object.values(schema.phases);
222
+ for (const phaseId of phasesToSearch) {
223
+ try {
224
+ const result = await this.callMcpTool("list_activities", {
225
+ workflowId: schema.workflowId,
226
+ phaseId,
227
+ fields: [hailerProfileFieldId],
228
+ filters: {
229
+ [hailerProfileFieldId]: {
230
+ operator: "equals",
231
+ value: userId,
232
+ },
233
+ },
234
+ limit: 1,
235
+ });
236
+ const resultText = result?.content?.[0]?.text;
237
+ if (resultText) {
238
+ const activity = this.parseFirstActivity(resultText);
239
+ if (activity) {
240
+ this.logger.debug("Found agent by userId", { phaseId, activityId: activity._id });
241
+ return activity;
242
+ }
243
+ }
244
+ }
245
+ catch (error) {
246
+ this.logger.debug("Error searching phase for agent", { phaseId, error });
247
+ }
248
+ }
249
+ return null;
250
+ }
251
+ /**
252
+ * Parse first activity from list_activities response
253
+ */
254
+ parseFirstActivity(text) {
255
+ try {
256
+ // Try JSON parse first
257
+ const jsonMatch = text.match(/```json\s*([\s\S]*?)\s*```/) ||
258
+ text.match(/\[[\s\S]*?\]/);
259
+ if (jsonMatch) {
260
+ const jsonStr = jsonMatch[1] || jsonMatch[0];
261
+ const activities = JSON.parse(jsonStr);
262
+ if (Array.isArray(activities) && activities.length > 0) {
263
+ return activities[0];
264
+ }
265
+ }
266
+ }
267
+ catch {
268
+ // Regex fallback
269
+ const idMatch = text.match(/"_id":\s*"([a-f0-9]{24})"/i);
270
+ const nameMatch = text.match(/"name":\s*"([^"]+)"/i);
271
+ if (idMatch) {
272
+ return { _id: idMatch[1], name: nameMatch?.[1] || "Unknown" };
273
+ }
274
+ }
275
+ return null;
276
+ }
277
+ /**
278
+ * Register/find shared Team for AI agents
279
+ */
280
+ async registerTeam(workspaceId) {
281
+ const schema = this.schemaCache.getTeamsSchema(workspaceId);
282
+ if (!schema) {
283
+ this.logger.debug("Teams workflow not found - skipping team registration");
284
+ return;
285
+ }
286
+ const teamName = "AI Agents";
287
+ const infoFieldId = schema.fields["teamInfo"] || schema.fields["info"] || schema.fields["Tiimi-info"];
288
+ const fields = {};
289
+ if (infoFieldId) {
290
+ fields[infoFieldId] = "Team of AI agent bots that assist with workspace operations.";
291
+ }
292
+ this.teamId = await this.findOrCreateActivity(schema, teamName, fields, ["tiimit", "teams", "active"], infoFieldId);
293
+ if (this.teamId) {
294
+ this.logger.info("Team registered", { teamId: this.teamId });
295
+ }
296
+ }
297
+ /**
298
+ * Register MCP server in Tool Registry (per-agent)
299
+ */
300
+ async registerToolRegistry(mcpServerUrl, toolIndex, workspaceId, agentName) {
301
+ const schema = this.schemaCache.getToolRegistrySchema(workspaceId);
302
+ if (!schema) {
303
+ this.logger.debug("Tool Registry workflow not found - skipping");
304
+ return;
305
+ }
306
+ const serverName = `MCP Tools - ${agentName}`;
307
+ const baseUrlFieldId = schema.fields["mcpBaseUrl"] || schema.fields["baseUrl"] || schema.fields["mcp_base_url"];
308
+ const protocolFieldId = schema.fields["protocolVersion"] || schema.fields["protocol_version"];
309
+ const toolRegistryFieldId = schema.fields["toolRegistry"] || schema.fields["tool_registry"];
310
+ const toolNames = toolIndex.map((t) => t.name).join(", ");
311
+ const fields = {};
312
+ if (baseUrlFieldId)
313
+ fields[baseUrlFieldId] = mcpServerUrl;
314
+ if (protocolFieldId)
315
+ fields[protocolFieldId] = "2024-11-05";
316
+ if (toolRegistryFieldId)
317
+ fields[toolRegistryFieldId] = `Available tools (${toolIndex.length}):\n${toolNames}`;
318
+ this.toolRegistryId = await this.findOrCreateActivity(schema, serverName, fields, ["active", "new phase"], baseUrlFieldId);
319
+ if (this.toolRegistryId) {
320
+ this.logger.info("Tool Registry registered", { toolRegistryId: this.toolRegistryId });
321
+ }
322
+ }
323
+ /**
324
+ * Register Position for this agent
325
+ */
326
+ async registerPosition(details, workspaceId) {
327
+ const schema = this.schemaCache.getPositionsSchema(workspaceId);
328
+ if (!schema) {
329
+ this.logger.debug("Positions workflow not found - skipping");
330
+ return;
331
+ }
332
+ const purposeFieldId = schema.fields["purpose"] || schema.fields["Purpose"];
333
+ const personaFieldId = schema.fields["personaTone"] || schema.fields["Persona & Tone"];
334
+ const capabilitiesFieldId = schema.fields["coreCapabilities"] || schema.fields["Core Capabilities"];
335
+ const boundariesFieldId = schema.fields["boundaries"] || schema.fields["Boundaries & Restrictions"];
336
+ const multiAllowedFieldId = schema.fields["multipleAllowed"] || schema.fields[">1 allowed in role"];
337
+ const agentCountFieldId = schema.fields["numberOfAgents"] || schema.fields["Number of agents in position"];
338
+ const fields = {};
339
+ if (purposeFieldId)
340
+ fields[purposeFieldId] = details.purpose;
341
+ if (personaFieldId)
342
+ fields[personaFieldId] = details.personaTone;
343
+ if (capabilitiesFieldId)
344
+ fields[capabilitiesFieldId] = details.coreCapabilities;
345
+ if (boundariesFieldId)
346
+ fields[boundariesFieldId] = details.boundaries;
347
+ if (multiAllowedFieldId)
348
+ fields[multiAllowedFieldId] = "Yes";
349
+ if (agentCountFieldId)
350
+ fields[agentCountFieldId] = 1;
351
+ this.positionId = await this.findOrCreateActivity(schema, details.name, fields, ["positiot", "positions", "active"], purposeFieldId);
352
+ if (this.positionId) {
353
+ this.logger.info("Position registered", { positionId: this.positionId });
354
+ }
355
+ }
356
+ /**
357
+ * Register MCP Config for this agent
358
+ */
359
+ async registerMcpConfig(agentInfo, workspaceId) {
360
+ if (!this.agentDirectoryId) {
361
+ this.logger.debug("Skipping MCP config - no agent directory ID");
362
+ return;
363
+ }
364
+ const schema = this.schemaCache.getMcpConfigSchema(workspaceId);
365
+ if (!schema) {
366
+ this.logger.debug("MCP Config workflow not found - skipping");
367
+ return;
368
+ }
369
+ const configName = `${agentInfo.firstName} ${agentInfo.lastName} Config`;
370
+ const agentNameFieldId = schema.fields["agentName"] || schema.fields["agent_name"];
371
+ const agentIdFieldId = schema.fields["agentId"] || schema.fields["Agent_ID"];
372
+ const workspaceIdFieldId = schema.fields["workspaceId"] || schema.fields["workspace_id"];
373
+ const permissionsFieldId = schema.fields["permissions"] || schema.fields["Permissions"];
374
+ const permCreateFieldId = schema.fields["permissionCreate"] || schema.fields["Create"];
375
+ const permReadFieldId = schema.fields["permissionRead"] || schema.fields["Read"];
376
+ const permUpdateFieldId = schema.fields["permissionUpdate"] || schema.fields["Update"];
377
+ const permDeleteFieldId = schema.fields["permissionDelete"] || schema.fields["Delete"];
378
+ const accessToFieldId = schema.fields["accessTo"] || schema.fields["Access to"];
379
+ const fields = {};
380
+ if (agentNameFieldId)
381
+ fields[agentNameFieldId] = this.agentDirectoryId;
382
+ if (agentIdFieldId)
383
+ fields[agentIdFieldId] = agentInfo.userId;
384
+ if (workspaceIdFieldId)
385
+ fields[workspaceIdFieldId] = workspaceId;
386
+ if (permissionsFieldId)
387
+ fields[permissionsFieldId] = "read, write";
388
+ if (permCreateFieldId)
389
+ fields[permCreateFieldId] = 1;
390
+ if (permReadFieldId)
391
+ fields[permReadFieldId] = 1;
392
+ if (permUpdateFieldId)
393
+ fields[permUpdateFieldId] = 1;
394
+ if (permDeleteFieldId)
395
+ fields[permDeleteFieldId] = 0;
396
+ if (this.toolRegistryId && accessToFieldId) {
397
+ fields[accessToFieldId] = this.toolRegistryId;
398
+ }
399
+ this.mcpConfigId = await this.findOrCreateActivity(schema, configName, fields, ["active", "new phase"], agentIdFieldId);
400
+ if (this.mcpConfigId) {
401
+ this.logger.info("MCP Config registered", { mcpConfigId: this.mcpConfigId });
402
+ }
403
+ }
404
+ /**
405
+ * Link Agent Directory entry to Position and Team
406
+ */
407
+ async linkAgentToPositionAndTeam(workspaceId) {
408
+ if (!this.agentDirectoryId) {
409
+ this.logger.debug("Skipping agent linking - no agent directory ID");
410
+ return;
411
+ }
412
+ const schema = this.schemaCache.getAgentDirectorySchema(workspaceId);
413
+ if (!schema)
414
+ return;
415
+ // Get field IDs with fallbacks
416
+ const positionFieldId = schema.fields["position"] || schema.fields["Työpositio"];
417
+ const teamFieldId = schema.fields["team"] || schema.fields["Tiimi"];
418
+ const updates = {};
419
+ if (this.positionId && positionFieldId) {
420
+ updates[positionFieldId] = this.positionId;
421
+ }
422
+ if (this.teamId && teamFieldId) {
423
+ updates[teamFieldId] = this.teamId;
424
+ }
425
+ if (Object.keys(updates).length === 0) {
426
+ this.logger.debug("No links to update");
427
+ return;
428
+ }
429
+ try {
430
+ await this.callMcpTool("update_activity", {
431
+ activityId: this.agentDirectoryId,
432
+ fields: updates,
433
+ });
434
+ this.logger.info("Linked agent to Position and Team", {
435
+ agentDirectoryId: this.agentDirectoryId,
436
+ positionId: this.positionId,
437
+ teamId: this.teamId,
438
+ });
439
+ }
440
+ catch (error) {
441
+ this.logger.warn("Failed to link agent to Position/Team", { error });
442
+ }
443
+ }
444
+ /**
445
+ * Extract activity ID from MCP tool response text
446
+ * Looks for JSON block with created_ids or falls back to regex patterns
447
+ */
448
+ extractActivityId(text) {
449
+ if (!text)
450
+ return null;
451
+ // Primary: Parse JSON block from create_activity response
452
+ try {
453
+ const jsonMatch = text.match(/```json\s*([\s\S]*?)\s*```/);
454
+ if (jsonMatch) {
455
+ const data = JSON.parse(jsonMatch[1]);
456
+ if (data.created_ids?.[0])
457
+ return data.created_ids[0];
458
+ if (data._id)
459
+ return data._id;
460
+ }
461
+ }
462
+ catch { /* ignore parse errors */ }
463
+ // Fallback: Look for any 24-char hex ID
464
+ const idMatch = text.match(/[a-f0-9]{24}/i);
465
+ return idMatch ? idMatch[0] : null;
466
+ }
467
+ }
468
+ exports.AgentRegistryService = AgentRegistryService;
469
+ //# sourceMappingURL=agent-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-registry.js","sourceRoot":"","sources":["../../../../src/agents/shared/services/agent-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Conversation Manager Service
3
+ *
4
+ * Manages per-discussion conversation state:
5
+ * - LRU cache of conversation histories
6
+ * - Context size management with summarization
7
+ * - Conversation state access
8
+ */
9
+ import Anthropic from "@anthropic-ai/sdk";
10
+ import { Logger } from "../../../lib/logger";
11
+ /** Conversation message using Anthropic's MessageParam type */
12
+ export type ConversationMessage = Anthropic.MessageParam;
13
+ export declare class ConversationManager {
14
+ private maxConversations;
15
+ private maxContextMessages;
16
+ private anthropicClient;
17
+ private logger;
18
+ private conversationsByDiscussion;
19
+ constructor(maxConversations: number, maxContextMessages: number, anthropicClient: Anthropic, logger: Logger);
20
+ /**
21
+ * Get or create conversation history for a specific discussion
22
+ * Each discussion has its own isolated context to prevent bloat
23
+ * Uses LRU eviction when map exceeds maxConversations
24
+ */
25
+ getConversation(discussionId: string): ConversationMessage[];
26
+ /**
27
+ * Add a message to a conversation
28
+ */
29
+ addMessage(discussionId: string, message: ConversationMessage): void;
30
+ /**
31
+ * Manage conversation context size - truncate if too large
32
+ * Uses simple truncation instead of LLM summarization to save ~1000 tokens per overflow
33
+ */
34
+ manageContextSize(discussionId: string): void;
35
+ /**
36
+ * Get conversation state for debugging
37
+ */
38
+ getState(currentDiscussionId?: string): {
39
+ discussionCount: number;
40
+ currentMessageCount: number;
41
+ };
42
+ /**
43
+ * Get full conversation for a discussion (for debugging)
44
+ */
45
+ getFullConversation(discussionId?: string): ConversationMessage[];
46
+ /**
47
+ * Clear all conversations
48
+ */
49
+ clear(): void;
50
+ /**
51
+ * Prepare conversation for API call with Anthropic prompt caching
52
+ * Adds cache_control to the last assistant message to cache conversation history
53
+ * Returns a COPY - does not modify the original conversation
54
+ */
55
+ prepareForCaching(conversation: ConversationMessage[]): ConversationMessage[];
56
+ }
57
+ //# sourceMappingURL=conversation-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-manager.d.ts","sourceRoot":"","sources":["../../../../src/agents/shared/services/conversation-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,+DAA+D;AAC/D,MAAM,MAAM,mBAAmB,GAAG,SAAS,CAAC,YAAY,CAAC;AAEzD,qBAAa,mBAAmB;IAI5B,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,MAAM;IANhB,OAAO,CAAC,yBAAyB,CAAiD;gBAGxE,gBAAgB,EAAE,MAAM,EACxB,kBAAkB,EAAE,MAAM,EAC1B,eAAe,EAAE,SAAS,EAC1B,MAAM,EAAE,MAAM;IAGxB;;;;OAIG;IACI,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,mBAAmB,EAAE;IA0BnE;;OAEG;IACI,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAK3E;;;OAGG;IACI,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAuBpD;;OAEG;IACI,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG;QAC7C,eAAe,EAAE,MAAM,CAAC;QACxB,mBAAmB,EAAE,MAAM,CAAC;KAC7B;IAUD;;OAEG;IACI,mBAAmB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,mBAAmB,EAAE;IASxE;;OAEG;IACI,KAAK,IAAI,IAAI;IAIpB;;;;OAIG;IACI,iBAAiB,CAAC,YAAY,EAAE,mBAAmB,EAAE,GAAG,mBAAmB,EAAE;CA2DrF"}