@hailer/mcp 1.1.15 → 1.1.17-beta.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 (768) hide show
  1. package/.claude/CLAUDE.md +117 -320
  2. package/.claude/commands/app-squad.md +86 -90
  3. package/.claude/commands/audit-squad.md +19 -19
  4. package/.claude/commands/autoplan.md +3 -3
  5. package/.claude/commands/cleanup-squad.md +16 -16
  6. package/.claude/commands/config-squad.md +30 -30
  7. package/.claude/commands/crud-squad.md +23 -23
  8. package/.claude/commands/data-squad.md +21 -21
  9. package/.claude/commands/debug-squad.md +44 -44
  10. package/.claude/commands/doc-squad.md +16 -16
  11. package/.claude/commands/help:agents.md +130 -99
  12. package/.claude/commands/help:commands.md +15 -15
  13. package/.claude/commands/help:faq.md +17 -17
  14. package/.claude/commands/help:plugins.md +1 -1
  15. package/.claude/commands/help:skills.md +18 -24
  16. package/.claude/commands/hotfix-squad.md +22 -22
  17. package/.claude/commands/integration-squad.md +22 -22
  18. package/.claude/commands/janitor-squad.md +31 -31
  19. package/.claude/commands/learn-auto.md +5 -5
  20. package/.claude/commands/learn.md +12 -20
  21. package/.claude/commands/onboard-squad.md +39 -49
  22. package/.claude/commands/plan-workspace.md +2 -2
  23. package/.claude/commands/publish.md +32 -37
  24. package/.claude/commands/review-squad.md +27 -27
  25. package/.claude/commands/stats.md +26 -12
  26. package/.claude/commands/swarm.md +25 -25
  27. package/.claude/skills/chrome-mcp-reference/SKILL.md +5 -0
  28. package/.claude/skills/hailer-api-client/SKILL.md +55 -16
  29. package/.claude/skills/hailer-app-builder/SKILL.md +4 -270
  30. package/.claude/skills/hailer-apps-pictures/SKILL.md +3 -3
  31. package/.claude/skills/hailer-design-system/SKILL.md +96 -4
  32. package/.claude/skills/hailer-monolith-automations/SKILL.md +138 -116
  33. package/.claude/skills/hailer-permissions-system/SKILL.md +6 -9
  34. package/.claude/skills/hailer-project-protocol/SKILL.md +20 -110
  35. package/.claude/skills/integration-patterns/SKILL.md +6 -6
  36. package/.claude/skills/lsp-setup/SKILL.md +8 -9
  37. package/.claude/skills/sdk-activity-patterns/SKILL.md +238 -0
  38. package/.claude/skills/{SDK-document-templates → sdk-document-templates}/SKILL.md +13 -340
  39. package/.claude/skills/{SDK-function-fields → sdk-function-fields}/SKILL.md +8 -40
  40. package/.claude/skills/{SDK-insight-queries → sdk-insight-queries}/SKILL.md +114 -392
  41. package/.claude/skills/{SDK-ws-config-skill → sdk-ws-config-skill}/SKILL.md +79 -310
  42. package/.claude/skills/zapier-hailer-patterns/SKILL.md +84 -361
  43. package/.opencode/package-lock.json +117 -0
  44. package/CLAUDE.md +5 -358
  45. package/dist/agents/bot-manager.d.ts +48 -0
  46. package/dist/agents/bot-manager.d.ts.map +1 -0
  47. package/dist/agents/bot-manager.js +254 -0
  48. package/dist/agents/bot-manager.js.map +1 -0
  49. package/dist/agents/bug-fixer/ai.d.ts +80 -0
  50. package/dist/agents/bug-fixer/ai.d.ts.map +1 -0
  51. package/dist/agents/bug-fixer/ai.js +466 -0
  52. package/dist/agents/bug-fixer/ai.js.map +1 -0
  53. package/dist/agents/bug-fixer/bot.d.ts +92 -0
  54. package/dist/agents/bug-fixer/bot.d.ts.map +1 -0
  55. package/dist/agents/bug-fixer/bot.js +687 -0
  56. package/dist/agents/bug-fixer/bot.js.map +1 -0
  57. package/dist/agents/bug-fixer/config.d.ts +21 -0
  58. package/dist/agents/bug-fixer/config.d.ts.map +1 -0
  59. package/dist/agents/bug-fixer/config.js +218 -0
  60. package/dist/agents/bug-fixer/config.js.map +1 -0
  61. package/dist/agents/bug-fixer/files.d.ts +67 -0
  62. package/dist/agents/bug-fixer/files.d.ts.map +1 -0
  63. package/dist/agents/bug-fixer/files.js +386 -0
  64. package/dist/agents/bug-fixer/files.js.map +1 -0
  65. package/dist/agents/bug-fixer/git.d.ts +48 -0
  66. package/dist/agents/bug-fixer/git.d.ts.map +1 -0
  67. package/dist/agents/bug-fixer/git.js +298 -0
  68. package/dist/agents/bug-fixer/git.js.map +1 -0
  69. package/dist/agents/bug-fixer/index.d.ts +103 -0
  70. package/dist/agents/bug-fixer/index.d.ts.map +1 -0
  71. package/dist/agents/bug-fixer/index.js +262 -0
  72. package/dist/agents/bug-fixer/index.js.map +1 -0
  73. package/dist/agents/bug-fixer/lsp.d.ts +113 -0
  74. package/dist/agents/bug-fixer/lsp.d.ts.map +1 -0
  75. package/dist/agents/bug-fixer/lsp.js +485 -0
  76. package/dist/agents/bug-fixer/lsp.js.map +1 -0
  77. package/dist/agents/bug-fixer/monitor.d.ts +123 -0
  78. package/dist/agents/bug-fixer/monitor.d.ts.map +1 -0
  79. package/dist/agents/bug-fixer/monitor.js +629 -0
  80. package/dist/agents/bug-fixer/monitor.js.map +1 -0
  81. package/dist/agents/bug-fixer/prompt.d.ts +5 -0
  82. package/dist/agents/bug-fixer/prompt.d.ts.map +1 -0
  83. package/dist/agents/bug-fixer/prompt.js +94 -0
  84. package/dist/agents/bug-fixer/prompt.js.map +1 -0
  85. package/dist/agents/bug-fixer/registries/pending-classification.d.ts +28 -0
  86. package/dist/agents/bug-fixer/registries/pending-classification.d.ts.map +1 -0
  87. package/dist/agents/bug-fixer/registries/pending-classification.js +50 -0
  88. package/dist/agents/bug-fixer/registries/pending-classification.js.map +1 -0
  89. package/dist/agents/bug-fixer/registries/pending-fix.d.ts +33 -0
  90. package/dist/agents/bug-fixer/registries/pending-fix.d.ts.map +1 -0
  91. package/dist/agents/bug-fixer/registries/pending-fix.js +64 -0
  92. package/dist/agents/bug-fixer/registries/pending-fix.js.map +1 -0
  93. package/dist/agents/bug-fixer/registries/pending.d.ts +27 -0
  94. package/dist/agents/bug-fixer/registries/pending.d.ts.map +1 -0
  95. package/dist/agents/bug-fixer/registries/pending.js +49 -0
  96. package/dist/agents/bug-fixer/registries/pending.js.map +1 -0
  97. package/dist/agents/bug-fixer/specialist-daemon.d.ts +88 -0
  98. package/dist/agents/bug-fixer/specialist-daemon.d.ts.map +1 -0
  99. package/dist/agents/bug-fixer/specialist-daemon.js +431 -0
  100. package/dist/agents/bug-fixer/specialist-daemon.js.map +1 -0
  101. package/dist/agents/bug-fixer/specialist.d.ts +47 -0
  102. package/dist/agents/bug-fixer/specialist.d.ts.map +1 -0
  103. package/dist/agents/bug-fixer/specialist.js +327 -0
  104. package/dist/agents/bug-fixer/specialist.js.map +1 -0
  105. package/dist/agents/bug-fixer/types.d.ts +123 -0
  106. package/dist/agents/bug-fixer/types.d.ts.map +1 -0
  107. package/dist/agents/bug-fixer/types.js +9 -0
  108. package/dist/agents/bug-fixer/types.js.map +1 -0
  109. package/dist/agents/factory.d.ts +172 -0
  110. package/dist/agents/factory.d.ts.map +1 -0
  111. package/dist/agents/factory.js +706 -0
  112. package/dist/agents/factory.js.map +1 -0
  113. package/dist/agents/hailer-expert/index.d.ts +8 -0
  114. package/dist/agents/hailer-expert/index.d.ts.map +1 -0
  115. package/dist/agents/hailer-expert/index.js +14 -0
  116. package/dist/agents/hailer-expert/index.js.map +1 -0
  117. package/dist/agents/hal/daemon.d.ts +174 -0
  118. package/dist/agents/hal/daemon.d.ts.map +1 -0
  119. package/dist/agents/hal/daemon.js +1385 -0
  120. package/dist/agents/hal/daemon.js.map +1 -0
  121. package/dist/agents/hal/definitions.d.ts +42 -0
  122. package/dist/agents/hal/definitions.d.ts.map +1 -0
  123. package/dist/agents/hal/definitions.js +300 -0
  124. package/dist/agents/hal/definitions.js.map +1 -0
  125. package/dist/agents/hal/index.d.ts +3 -0
  126. package/dist/agents/hal/index.d.ts.map +1 -0
  127. package/dist/agents/hal/index.js +8 -0
  128. package/dist/agents/hal/index.js.map +1 -0
  129. package/dist/agents/index.d.ts +18 -0
  130. package/dist/agents/index.d.ts.map +1 -0
  131. package/dist/agents/index.js +48 -0
  132. package/dist/agents/index.js.map +1 -0
  133. package/dist/agents/shared/base.d.ts +253 -0
  134. package/dist/agents/shared/base.d.ts.map +1 -0
  135. package/dist/agents/shared/base.js +1122 -0
  136. package/dist/agents/shared/base.js.map +1 -0
  137. package/dist/agents/shared/schemas/action-schema.d.ts +62 -0
  138. package/dist/agents/shared/schemas/action-schema.d.ts.map +1 -0
  139. package/dist/agents/shared/schemas/action-schema.js +483 -0
  140. package/dist/agents/shared/schemas/action-schema.js.map +1 -0
  141. package/dist/agents/shared/services/agent-registry.d.ts +108 -0
  142. package/dist/agents/shared/services/agent-registry.d.ts.map +1 -0
  143. package/dist/agents/shared/services/agent-registry.js +469 -0
  144. package/dist/agents/shared/services/agent-registry.js.map +1 -0
  145. package/dist/agents/shared/services/conversation-manager.d.ts +57 -0
  146. package/dist/agents/shared/services/conversation-manager.d.ts.map +1 -0
  147. package/dist/agents/shared/services/conversation-manager.js +168 -0
  148. package/dist/agents/shared/services/conversation-manager.js.map +1 -0
  149. package/dist/agents/shared/services/mcp-client.d.ts +56 -0
  150. package/dist/agents/shared/services/mcp-client.d.ts.map +1 -0
  151. package/dist/agents/shared/services/mcp-client.js +124 -0
  152. package/dist/agents/shared/services/mcp-client.js.map +1 -0
  153. package/dist/agents/shared/services/message-classifier.d.ts +37 -0
  154. package/dist/agents/shared/services/message-classifier.d.ts.map +1 -0
  155. package/dist/agents/shared/services/message-classifier.js +203 -0
  156. package/dist/agents/shared/services/message-classifier.js.map +1 -0
  157. package/dist/agents/shared/services/message-formatter.d.ts +89 -0
  158. package/dist/agents/shared/services/message-formatter.d.ts.map +1 -0
  159. package/dist/agents/shared/services/message-formatter.js +390 -0
  160. package/dist/agents/shared/services/message-formatter.js.map +1 -0
  161. package/dist/agents/shared/services/session-logger.d.ts +162 -0
  162. package/dist/agents/shared/services/session-logger.d.ts.map +1 -0
  163. package/dist/agents/shared/services/session-logger.js +724 -0
  164. package/dist/agents/shared/services/session-logger.js.map +1 -0
  165. package/dist/agents/shared/services/structured-output-executor.d.ts +88 -0
  166. package/dist/agents/shared/services/structured-output-executor.d.ts.map +1 -0
  167. package/dist/agents/shared/services/structured-output-executor.js +296 -0
  168. package/dist/agents/shared/services/structured-output-executor.js.map +1 -0
  169. package/dist/agents/shared/services/token-billing.d.ts +72 -0
  170. package/dist/agents/shared/services/token-billing.d.ts.map +1 -0
  171. package/dist/agents/shared/services/token-billing.js +198 -0
  172. package/dist/agents/shared/services/token-billing.js.map +1 -0
  173. package/dist/agents/shared/services/tool-executor.d.ts +43 -0
  174. package/dist/agents/shared/services/tool-executor.d.ts.map +1 -0
  175. package/dist/agents/shared/services/tool-executor.js +175 -0
  176. package/dist/agents/shared/services/tool-executor.js.map +1 -0
  177. package/dist/agents/shared/services/typing-indicator.d.ts +24 -0
  178. package/dist/agents/shared/services/typing-indicator.d.ts.map +1 -0
  179. package/dist/agents/shared/services/typing-indicator.js +54 -0
  180. package/dist/agents/shared/services/typing-indicator.js.map +1 -0
  181. package/dist/agents/shared/services/workspace-schema-cache.d.ts +122 -0
  182. package/dist/agents/shared/services/workspace-schema-cache.d.ts.map +1 -0
  183. package/dist/agents/shared/services/workspace-schema-cache.js +507 -0
  184. package/dist/agents/shared/services/workspace-schema-cache.js.map +1 -0
  185. package/dist/agents/shared/specialist.d.ts +91 -0
  186. package/dist/agents/shared/specialist.d.ts.map +1 -0
  187. package/dist/agents/shared/specialist.js +399 -0
  188. package/dist/agents/shared/specialist.js.map +1 -0
  189. package/dist/agents/shared/tool-schema-loader.d.ts +65 -0
  190. package/dist/agents/shared/tool-schema-loader.d.ts.map +1 -0
  191. package/dist/agents/shared/tool-schema-loader.js +238 -0
  192. package/dist/agents/shared/tool-schema-loader.js.map +1 -0
  193. package/dist/agents/shared/types.d.ts +190 -0
  194. package/dist/agents/shared/types.d.ts.map +1 -0
  195. package/dist/agents/shared/types.js +13 -0
  196. package/dist/agents/shared/types.js.map +1 -0
  197. package/dist/app.d.ts.map +1 -0
  198. package/dist/app.js +10 -127
  199. package/dist/app.js.map +1 -0
  200. package/dist/bot/bot-config.d.ts.map +1 -0
  201. package/dist/bot/bot-config.js.map +1 -0
  202. package/dist/bot/bot-manager.d.ts +3 -14
  203. package/dist/bot/bot-manager.d.ts.map +1 -0
  204. package/dist/bot/bot-manager.js +13 -4
  205. package/dist/bot/bot-manager.js.map +1 -0
  206. package/dist/bot/bot.d.ts +23 -102
  207. package/dist/bot/bot.d.ts.map +1 -0
  208. package/dist/bot/bot.js +356 -1212
  209. package/dist/bot/bot.js.map +1 -0
  210. package/dist/bot/operation-logger.d.ts.map +1 -0
  211. package/dist/bot/operation-logger.js.map +1 -0
  212. package/dist/bot/services/__tests__/permission-guard.test.d.ts +2 -0
  213. package/dist/bot/services/__tests__/permission-guard.test.d.ts.map +1 -0
  214. package/dist/bot/services/__tests__/permission-guard.test.js +357 -0
  215. package/dist/bot/services/__tests__/permission-guard.test.js.map +1 -0
  216. package/dist/bot/services/bot-permissions.d.ts +50 -0
  217. package/dist/bot/services/bot-permissions.d.ts.map +1 -0
  218. package/dist/bot/services/bot-permissions.js +198 -0
  219. package/dist/bot/services/bot-permissions.js.map +1 -0
  220. package/dist/bot/services/conversation-manager.d.ts.map +1 -0
  221. package/dist/bot/services/conversation-manager.js.map +1 -0
  222. package/dist/bot/services/index.d.ts +4 -2
  223. package/dist/bot/services/index.d.ts.map +1 -0
  224. package/dist/bot/services/index.js +10 -5
  225. package/dist/bot/services/index.js.map +1 -0
  226. package/dist/bot/services/message-classifier.d.ts +1 -1
  227. package/dist/bot/services/message-classifier.d.ts.map +1 -0
  228. package/dist/bot/services/message-classifier.js.map +1 -0
  229. package/dist/bot/services/message-formatter.d.ts.map +1 -0
  230. package/dist/bot/services/message-formatter.js.map +1 -0
  231. package/dist/bot/services/permission-guard.d.ts.map +1 -0
  232. package/dist/bot/services/permission-guard.js.map +1 -0
  233. package/dist/bot/services/session-logger.d.ts.map +1 -0
  234. package/dist/bot/services/session-logger.js.map +1 -0
  235. package/dist/bot/services/signal-router.d.ts +32 -0
  236. package/dist/bot/services/signal-router.d.ts.map +1 -0
  237. package/dist/bot/services/signal-router.js +132 -0
  238. package/dist/bot/services/signal-router.js.map +1 -0
  239. package/dist/bot/services/system-prompt.d.ts +12 -0
  240. package/dist/bot/services/system-prompt.d.ts.map +1 -0
  241. package/dist/bot/services/system-prompt.js +93 -0
  242. package/dist/bot/services/system-prompt.js.map +1 -0
  243. package/dist/bot/services/token-billing.d.ts.map +1 -0
  244. package/dist/bot/services/token-billing.js.map +1 -0
  245. package/dist/bot/services/types.d.ts +7 -34
  246. package/dist/bot/services/types.d.ts.map +1 -0
  247. package/dist/bot/services/types.js +0 -3
  248. package/dist/bot/services/types.js.map +1 -0
  249. package/dist/bot/services/typing-indicator.d.ts.map +1 -0
  250. package/dist/bot/services/typing-indicator.js.map +1 -0
  251. package/dist/bot/services/workspace-refresh.d.ts +47 -0
  252. package/dist/bot/services/workspace-refresh.d.ts.map +1 -0
  253. package/dist/bot/services/workspace-refresh.js +154 -0
  254. package/dist/bot/services/workspace-refresh.js.map +1 -0
  255. package/dist/bot/services/workspace-schema-cache.d.ts.map +1 -0
  256. package/dist/bot/services/workspace-schema-cache.js.map +1 -0
  257. package/dist/bot/tool-executor.d.ts.map +1 -0
  258. package/dist/bot/tool-executor.js.map +1 -0
  259. package/dist/bot/workspace-overview.d.ts.map +1 -0
  260. package/dist/bot/workspace-overview.js.map +1 -0
  261. package/dist/bot-config/constants.d.ts +6 -0
  262. package/dist/bot-config/constants.d.ts.map +1 -0
  263. package/dist/bot-config/constants.js +43 -0
  264. package/dist/bot-config/constants.js.map +1 -0
  265. package/dist/bot-config/context.d.ts +117 -0
  266. package/dist/bot-config/context.d.ts.map +1 -0
  267. package/dist/bot-config/context.js +354 -0
  268. package/dist/bot-config/context.js.map +1 -0
  269. package/dist/bot-config/index.d.ts +12 -0
  270. package/dist/bot-config/index.d.ts.map +1 -0
  271. package/dist/bot-config/index.js +29 -0
  272. package/dist/bot-config/index.js.map +1 -0
  273. package/dist/bot-config/loader.d.ts +40 -0
  274. package/dist/bot-config/loader.d.ts.map +1 -0
  275. package/dist/bot-config/loader.js +285 -0
  276. package/dist/bot-config/loader.js.map +1 -0
  277. package/dist/bot-config/persistence.d.ts +17 -0
  278. package/dist/bot-config/persistence.d.ts.map +1 -0
  279. package/dist/bot-config/persistence.js +51 -0
  280. package/dist/bot-config/persistence.js.map +1 -0
  281. package/dist/bot-config/state.d.ts +15 -0
  282. package/dist/bot-config/state.d.ts.map +1 -0
  283. package/dist/bot-config/state.js +46 -0
  284. package/dist/bot-config/state.js.map +1 -0
  285. package/dist/bot-config/tools.d.ts +28 -0
  286. package/dist/bot-config/tools.d.ts.map +1 -0
  287. package/dist/bot-config/tools.js +279 -0
  288. package/dist/bot-config/tools.js.map +1 -0
  289. package/dist/bot-config/types.d.ts +52 -0
  290. package/dist/bot-config/types.d.ts.map +1 -0
  291. package/dist/bot-config/types.js +6 -0
  292. package/dist/bot-config/types.js.map +1 -0
  293. package/dist/bot-config/webhooks.d.ts +23 -0
  294. package/dist/bot-config/webhooks.d.ts.map +1 -0
  295. package/dist/bot-config/webhooks.js +199 -0
  296. package/dist/bot-config/webhooks.js.map +1 -0
  297. package/dist/cli.d.ts.map +1 -0
  298. package/dist/cli.js.map +1 -0
  299. package/dist/client/agents/base.d.ts +207 -0
  300. package/dist/client/agents/base.d.ts.map +1 -0
  301. package/dist/client/agents/base.js +744 -0
  302. package/dist/client/agents/base.js.map +1 -0
  303. package/dist/client/agents/definitions.d.ts +53 -0
  304. package/dist/client/agents/definitions.d.ts.map +1 -0
  305. package/dist/client/agents/definitions.js +263 -0
  306. package/dist/client/agents/definitions.js.map +1 -0
  307. package/dist/client/agents/orchestrator.d.ts +141 -0
  308. package/dist/client/agents/orchestrator.d.ts.map +1 -0
  309. package/dist/client/agents/orchestrator.js +1062 -0
  310. package/dist/client/agents/orchestrator.js.map +1 -0
  311. package/dist/client/agents/specialist.d.ts +86 -0
  312. package/dist/client/agents/specialist.d.ts.map +1 -0
  313. package/dist/client/agents/specialist.js +340 -0
  314. package/dist/client/agents/specialist.js.map +1 -0
  315. package/dist/client/bot-entrypoint.d.ts +7 -0
  316. package/dist/client/bot-entrypoint.d.ts.map +1 -0
  317. package/dist/client/bot-entrypoint.js +103 -0
  318. package/dist/client/bot-entrypoint.js.map +1 -0
  319. package/dist/client/bot-manager.d.ts +44 -0
  320. package/dist/client/bot-manager.d.ts.map +1 -0
  321. package/dist/client/bot-manager.js +173 -0
  322. package/dist/client/bot-manager.js.map +1 -0
  323. package/dist/client/bot-runner.d.ts +35 -0
  324. package/dist/client/bot-runner.d.ts.map +1 -0
  325. package/dist/client/bot-runner.js +188 -0
  326. package/dist/client/bot-runner.js.map +1 -0
  327. package/dist/client/chat-agent-daemon.d.ts +464 -0
  328. package/dist/client/chat-agent-daemon.d.ts.map +1 -0
  329. package/dist/client/chat-agent-daemon.js +1774 -0
  330. package/dist/client/chat-agent-daemon.js.map +1 -0
  331. package/dist/client/daemon-factory.d.ts +106 -0
  332. package/dist/client/daemon-factory.d.ts.map +1 -0
  333. package/dist/client/daemon-factory.js +301 -0
  334. package/dist/client/daemon-factory.js.map +1 -0
  335. package/dist/client/factory.d.ts +111 -0
  336. package/dist/client/factory.d.ts.map +1 -0
  337. package/dist/client/factory.js +314 -0
  338. package/dist/client/factory.js.map +1 -0
  339. package/dist/client/index.d.ts +17 -0
  340. package/dist/client/index.d.ts.map +1 -0
  341. package/dist/client/index.js +38 -0
  342. package/dist/client/index.js.map +1 -0
  343. package/dist/client/multi-bot-manager.d.ts +42 -0
  344. package/dist/client/multi-bot-manager.d.ts.map +1 -0
  345. package/dist/client/multi-bot-manager.js +161 -0
  346. package/dist/client/multi-bot-manager.js.map +1 -0
  347. package/dist/client/orchestrator-daemon.d.ts +87 -0
  348. package/dist/client/orchestrator-daemon.d.ts.map +1 -0
  349. package/dist/client/orchestrator-daemon.js +444 -0
  350. package/dist/client/orchestrator-daemon.js.map +1 -0
  351. package/dist/client/server.d.ts +8 -0
  352. package/dist/client/server.d.ts.map +1 -0
  353. package/dist/client/server.js +251 -0
  354. package/dist/client/server.js.map +1 -0
  355. package/dist/client/services/agent-registry.d.ts +108 -0
  356. package/dist/client/services/agent-registry.d.ts.map +1 -0
  357. package/dist/client/services/agent-registry.js +630 -0
  358. package/dist/client/services/agent-registry.js.map +1 -0
  359. package/dist/client/services/conversation-manager.d.ts +50 -0
  360. package/dist/client/services/conversation-manager.d.ts.map +1 -0
  361. package/dist/client/services/conversation-manager.js +136 -0
  362. package/dist/client/services/conversation-manager.js.map +1 -0
  363. package/dist/client/services/mcp-client.d.ts +48 -0
  364. package/dist/client/services/mcp-client.d.ts.map +1 -0
  365. package/dist/client/services/mcp-client.js +105 -0
  366. package/dist/client/services/mcp-client.js.map +1 -0
  367. package/dist/client/services/message-classifier.d.ts +37 -0
  368. package/dist/client/services/message-classifier.d.ts.map +1 -0
  369. package/dist/client/services/message-classifier.js +187 -0
  370. package/dist/client/services/message-classifier.js.map +1 -0
  371. package/dist/client/services/message-formatter.d.ts +84 -0
  372. package/dist/client/services/message-formatter.d.ts.map +1 -0
  373. package/dist/client/services/message-formatter.js +353 -0
  374. package/dist/client/services/message-formatter.js.map +1 -0
  375. package/dist/client/services/session-logger.d.ts +106 -0
  376. package/dist/client/services/session-logger.d.ts.map +1 -0
  377. package/dist/client/services/session-logger.js +446 -0
  378. package/dist/client/services/session-logger.js.map +1 -0
  379. package/dist/client/services/tool-executor.d.ts +41 -0
  380. package/dist/client/services/tool-executor.d.ts.map +1 -0
  381. package/dist/client/services/tool-executor.js +169 -0
  382. package/dist/client/services/tool-executor.js.map +1 -0
  383. package/dist/client/services/workspace-schema-cache.d.ts +149 -0
  384. package/dist/client/services/workspace-schema-cache.d.ts.map +1 -0
  385. package/dist/client/services/workspace-schema-cache.js +732 -0
  386. package/dist/client/services/workspace-schema-cache.js.map +1 -0
  387. package/dist/client/specialist-daemon.d.ts +77 -0
  388. package/dist/client/specialist-daemon.d.ts.map +1 -0
  389. package/dist/client/specialist-daemon.js +197 -0
  390. package/dist/client/specialist-daemon.js.map +1 -0
  391. package/dist/client/specialists.d.ts +53 -0
  392. package/dist/client/specialists.d.ts.map +1 -0
  393. package/dist/client/specialists.js +178 -0
  394. package/dist/client/specialists.js.map +1 -0
  395. package/dist/client/tool-schema-loader.d.ts +62 -0
  396. package/dist/client/tool-schema-loader.d.ts.map +1 -0
  397. package/dist/client/tool-schema-loader.js +232 -0
  398. package/dist/client/tool-schema-loader.js.map +1 -0
  399. package/dist/client/types.d.ts +327 -0
  400. package/dist/client/types.d.ts.map +1 -0
  401. package/dist/client/types.js +121 -0
  402. package/dist/client/types.js.map +1 -0
  403. package/dist/commands/seed-config.d.ts +9 -0
  404. package/dist/commands/seed-config.d.ts.map +1 -0
  405. package/dist/commands/seed-config.js +377 -0
  406. package/dist/commands/seed-config.js.map +1 -0
  407. package/dist/commands/setup.d.ts +11 -0
  408. package/dist/commands/setup.d.ts.map +1 -0
  409. package/dist/commands/setup.js +320 -0
  410. package/dist/commands/setup.js.map +1 -0
  411. package/dist/config.d.ts +0 -9
  412. package/dist/config.d.ts.map +1 -0
  413. package/dist/config.js +0 -15
  414. package/dist/config.js.map +1 -0
  415. package/dist/core.d.ts.map +1 -0
  416. package/dist/core.js.map +1 -0
  417. package/dist/lib/discussion-lock.d.ts.map +1 -0
  418. package/dist/lib/discussion-lock.js.map +1 -0
  419. package/dist/lib/logger.d.ts.map +1 -0
  420. package/dist/lib/logger.js.map +1 -0
  421. package/dist/lib/request-logger.d.ts.map +1 -0
  422. package/dist/lib/request-logger.js.map +1 -0
  423. package/dist/mcp/UserContextCache.d.ts.map +1 -0
  424. package/dist/mcp/UserContextCache.js.map +1 -0
  425. package/dist/mcp/auth.d.ts.map +1 -0
  426. package/dist/mcp/auth.js.map +1 -0
  427. package/dist/mcp/hailer-clients.d.ts.map +1 -0
  428. package/dist/mcp/hailer-clients.js +2 -2
  429. package/dist/mcp/hailer-clients.js.map +1 -0
  430. package/dist/mcp/session-store.d.ts.map +1 -0
  431. package/dist/mcp/session-store.js.map +1 -0
  432. package/dist/mcp/signal-handler.d.ts.map +1 -0
  433. package/dist/mcp/signal-handler.js.map +1 -0
  434. package/dist/mcp/tool-registry.d.ts +10 -115
  435. package/dist/mcp/tool-registry.d.ts.map +1 -0
  436. package/dist/mcp/tool-registry.js +39 -363
  437. package/dist/mcp/tool-registry.js.map +1 -0
  438. package/dist/mcp/tools/__tests__/discussion-forward.test.d.ts +2 -0
  439. package/dist/mcp/tools/__tests__/discussion-forward.test.d.ts.map +1 -0
  440. package/dist/mcp/tools/__tests__/discussion-forward.test.js +218 -0
  441. package/dist/mcp/tools/__tests__/discussion-forward.test.js.map +1 -0
  442. package/dist/mcp/tools/activity.d.ts +3 -0
  443. package/dist/mcp/tools/activity.d.ts.map +1 -0
  444. package/dist/mcp/tools/activity.js +8 -1
  445. package/dist/mcp/tools/activity.js.map +1 -0
  446. package/dist/mcp/tools/app-core.d.ts +3 -0
  447. package/dist/mcp/tools/app-core.d.ts.map +1 -0
  448. package/dist/mcp/tools/app-core.js +9 -2
  449. package/dist/mcp/tools/app-core.js.map +1 -0
  450. package/dist/mcp/tools/app-marketplace.d.ts +3 -0
  451. package/dist/mcp/tools/app-marketplace.d.ts.map +1 -0
  452. package/dist/mcp/tools/app-marketplace.js +13 -1
  453. package/dist/mcp/tools/app-marketplace.js.map +1 -0
  454. package/dist/mcp/tools/app-member.d.ts +3 -0
  455. package/dist/mcp/tools/app-member.d.ts.map +1 -0
  456. package/dist/mcp/tools/app-member.js +6 -1
  457. package/dist/mcp/tools/app-member.js.map +1 -0
  458. package/dist/mcp/tools/app-scaffold.d.ts +3 -0
  459. package/dist/mcp/tools/app-scaffold.d.ts.map +1 -0
  460. package/dist/mcp/tools/app-scaffold.js +15 -11
  461. package/dist/mcp/tools/app-scaffold.js.map +1 -0
  462. package/dist/mcp/tools/app.d.ts.map +1 -0
  463. package/dist/mcp/tools/app.js.map +1 -0
  464. package/dist/mcp/tools/bot-config/constants.d.ts.map +1 -0
  465. package/dist/mcp/tools/bot-config/constants.js.map +1 -0
  466. package/dist/mcp/tools/bot-config/core.d.ts.map +1 -0
  467. package/dist/mcp/tools/bot-config/core.js.map +1 -0
  468. package/dist/mcp/tools/bot-config/index.d.ts.map +1 -0
  469. package/dist/mcp/tools/bot-config/index.js.map +1 -0
  470. package/dist/mcp/tools/bot-config/tools.d.ts.map +1 -0
  471. package/dist/mcp/tools/bot-config/tools.js.map +1 -0
  472. package/dist/mcp/tools/bot-config/types.d.ts.map +1 -0
  473. package/dist/mcp/tools/bot-config/types.js.map +1 -0
  474. package/dist/mcp/tools/bug-fixer-tools.d.ts.map +1 -0
  475. package/dist/mcp/tools/bug-fixer-tools.js.map +1 -0
  476. package/dist/mcp/tools/company.d.ts +3 -0
  477. package/dist/mcp/tools/company.d.ts.map +1 -0
  478. package/dist/mcp/tools/company.js +5 -1
  479. package/dist/mcp/tools/company.js.map +1 -0
  480. package/dist/mcp/tools/discussion.d.ts +3 -0
  481. package/dist/mcp/tools/discussion.d.ts.map +1 -0
  482. package/dist/mcp/tools/discussion.js +13 -2
  483. package/dist/mcp/tools/discussion.js.map +1 -0
  484. package/dist/mcp/tools/document.d.ts.map +1 -0
  485. package/dist/mcp/tools/document.js.map +1 -0
  486. package/dist/mcp/tools/file.d.ts +3 -0
  487. package/dist/mcp/tools/file.d.ts.map +1 -0
  488. package/dist/mcp/tools/file.js +6 -1
  489. package/dist/mcp/tools/file.js.map +1 -0
  490. package/dist/mcp/tools/index.d.ts +7 -0
  491. package/dist/mcp/tools/index.d.ts.map +1 -0
  492. package/dist/mcp/tools/index.js +34 -0
  493. package/dist/mcp/tools/index.js.map +1 -0
  494. package/dist/mcp/tools/insight.d.ts +3 -0
  495. package/dist/mcp/tools/insight.d.ts.map +1 -0
  496. package/dist/mcp/tools/insight.js +18 -8
  497. package/dist/mcp/tools/insight.js.map +1 -0
  498. package/dist/mcp/tools/investigate.d.ts.map +1 -0
  499. package/dist/mcp/tools/investigate.js.map +1 -0
  500. package/dist/mcp/tools/user.d.ts +3 -0
  501. package/dist/mcp/tools/user.d.ts.map +1 -0
  502. package/dist/mcp/tools/user.js +6 -1
  503. package/dist/mcp/tools/user.js.map +1 -0
  504. package/dist/mcp/tools/workflow-permissions.d.ts +3 -0
  505. package/dist/mcp/tools/workflow-permissions.d.ts.map +1 -0
  506. package/dist/mcp/tools/workflow-permissions.js +8 -1
  507. package/dist/mcp/tools/workflow-permissions.js.map +1 -0
  508. package/dist/mcp/tools/workflow.d.ts +3 -0
  509. package/dist/mcp/tools/workflow.d.ts.map +1 -0
  510. package/dist/mcp/tools/workflow.js +29 -28
  511. package/dist/mcp/tools/workflow.js.map +1 -0
  512. package/dist/mcp/utils/api-errors.d.ts.map +1 -0
  513. package/dist/mcp/utils/api-errors.js.map +1 -0
  514. package/dist/mcp/utils/data-transformers.d.ts.map +1 -0
  515. package/dist/mcp/utils/data-transformers.js.map +1 -0
  516. package/dist/mcp/utils/file-upload.d.ts.map +1 -0
  517. package/dist/mcp/utils/file-upload.js.map +1 -0
  518. package/dist/mcp/utils/hailer-api-client.d.ts.map +1 -0
  519. package/dist/mcp/utils/hailer-api-client.js.map +1 -0
  520. package/dist/mcp/utils/index.d.ts +4 -11
  521. package/dist/mcp/utils/index.d.ts.map +1 -0
  522. package/dist/mcp/utils/index.js +5 -36
  523. package/dist/mcp/utils/index.js.map +1 -0
  524. package/dist/mcp/utils/logger.d.ts.map +1 -0
  525. package/dist/mcp/utils/logger.js.map +1 -0
  526. package/dist/mcp/utils/pagination.d.ts.map +1 -0
  527. package/dist/mcp/utils/pagination.js.map +1 -0
  528. package/dist/mcp/utils/response-builder.d.ts.map +1 -0
  529. package/dist/mcp/utils/response-builder.js.map +1 -0
  530. package/dist/mcp/utils/role-utils.d.ts +0 -32
  531. package/dist/mcp/utils/role-utils.d.ts.map +1 -0
  532. package/dist/mcp/utils/role-utils.js +0 -73
  533. package/dist/mcp/utils/role-utils.js.map +1 -0
  534. package/dist/mcp/utils/tool-helpers.d.ts +0 -25
  535. package/dist/mcp/utils/tool-helpers.d.ts.map +1 -0
  536. package/dist/mcp/utils/tool-helpers.js +0 -34
  537. package/dist/mcp/utils/tool-helpers.js.map +1 -0
  538. package/dist/mcp/utils/types.d.ts.map +1 -0
  539. package/dist/mcp/utils/types.js.map +1 -0
  540. package/dist/mcp/webhook-handler.d.ts +4 -34
  541. package/dist/mcp/webhook-handler.d.ts.map +1 -0
  542. package/dist/mcp/webhook-handler.js +57 -74
  543. package/dist/mcp/webhook-handler.js.map +1 -0
  544. package/dist/mcp/workspace-cache.d.ts.map +1 -0
  545. package/dist/mcp/workspace-cache.js.map +1 -0
  546. package/dist/mcp-server.d.ts.map +1 -0
  547. package/dist/mcp-server.js +3 -78
  548. package/dist/mcp-server.js.map +1 -0
  549. package/dist/modules/bug-reports/bug-config.d.ts +25 -0
  550. package/dist/modules/bug-reports/bug-config.d.ts.map +1 -0
  551. package/dist/modules/bug-reports/bug-config.js +187 -0
  552. package/dist/modules/bug-reports/bug-config.js.map +1 -0
  553. package/dist/modules/bug-reports/bug-monitor.d.ts +108 -0
  554. package/dist/modules/bug-reports/bug-monitor.d.ts.map +1 -0
  555. package/dist/modules/bug-reports/bug-monitor.js +510 -0
  556. package/dist/modules/bug-reports/bug-monitor.js.map +1 -0
  557. package/dist/modules/bug-reports/giuseppe-agent.d.ts +58 -0
  558. package/dist/modules/bug-reports/giuseppe-agent.d.ts.map +1 -0
  559. package/dist/modules/bug-reports/giuseppe-agent.js +467 -0
  560. package/dist/modules/bug-reports/giuseppe-agent.js.map +1 -0
  561. package/dist/modules/bug-reports/giuseppe-ai.d.ts +83 -0
  562. package/dist/modules/bug-reports/giuseppe-ai.d.ts.map +1 -0
  563. package/dist/modules/bug-reports/giuseppe-ai.js +466 -0
  564. package/dist/modules/bug-reports/giuseppe-ai.js.map +1 -0
  565. package/dist/modules/bug-reports/giuseppe-bot.d.ts +110 -0
  566. package/dist/modules/bug-reports/giuseppe-bot.d.ts.map +1 -0
  567. package/dist/modules/bug-reports/giuseppe-bot.js +804 -0
  568. package/dist/modules/bug-reports/giuseppe-bot.js.map +1 -0
  569. package/dist/modules/bug-reports/giuseppe-daemon.d.ts +80 -0
  570. package/dist/modules/bug-reports/giuseppe-daemon.d.ts.map +1 -0
  571. package/dist/modules/bug-reports/giuseppe-daemon.js +617 -0
  572. package/dist/modules/bug-reports/giuseppe-daemon.js.map +1 -0
  573. package/dist/modules/bug-reports/giuseppe-files.d.ts +64 -0
  574. package/dist/modules/bug-reports/giuseppe-files.d.ts.map +1 -0
  575. package/dist/modules/bug-reports/giuseppe-files.js +375 -0
  576. package/dist/modules/bug-reports/giuseppe-files.js.map +1 -0
  577. package/dist/modules/bug-reports/giuseppe-git.d.ts +48 -0
  578. package/dist/modules/bug-reports/giuseppe-git.d.ts.map +1 -0
  579. package/dist/modules/bug-reports/giuseppe-git.js +298 -0
  580. package/dist/modules/bug-reports/giuseppe-git.js.map +1 -0
  581. package/dist/modules/bug-reports/giuseppe-lsp.d.ts +113 -0
  582. package/dist/modules/bug-reports/giuseppe-lsp.d.ts.map +1 -0
  583. package/dist/modules/bug-reports/giuseppe-lsp.js +485 -0
  584. package/dist/modules/bug-reports/giuseppe-lsp.js.map +1 -0
  585. package/dist/modules/bug-reports/giuseppe-prompt.d.ts +5 -0
  586. package/dist/modules/bug-reports/giuseppe-prompt.d.ts.map +1 -0
  587. package/dist/modules/bug-reports/giuseppe-prompt.js +94 -0
  588. package/dist/modules/bug-reports/giuseppe-prompt.js.map +1 -0
  589. package/dist/modules/bug-reports/index.d.ts +77 -0
  590. package/dist/modules/bug-reports/index.d.ts.map +1 -0
  591. package/dist/modules/bug-reports/index.js +215 -0
  592. package/dist/modules/bug-reports/index.js.map +1 -0
  593. package/dist/modules/bug-reports/pending-classification-registry.d.ts +28 -0
  594. package/dist/modules/bug-reports/pending-classification-registry.d.ts.map +1 -0
  595. package/dist/modules/bug-reports/pending-classification-registry.js +50 -0
  596. package/dist/modules/bug-reports/pending-classification-registry.js.map +1 -0
  597. package/dist/modules/bug-reports/pending-fix-registry.d.ts +30 -0
  598. package/dist/modules/bug-reports/pending-fix-registry.d.ts.map +1 -0
  599. package/dist/modules/bug-reports/pending-fix-registry.js +42 -0
  600. package/dist/modules/bug-reports/pending-fix-registry.js.map +1 -0
  601. package/dist/modules/bug-reports/pending-registry.d.ts +27 -0
  602. package/dist/modules/bug-reports/pending-registry.d.ts.map +1 -0
  603. package/dist/modules/bug-reports/pending-registry.js +49 -0
  604. package/dist/modules/bug-reports/pending-registry.js.map +1 -0
  605. package/dist/modules/bug-reports/types.d.ts +123 -0
  606. package/dist/modules/bug-reports/types.d.ts.map +1 -0
  607. package/dist/modules/bug-reports/types.js +9 -0
  608. package/dist/modules/bug-reports/types.js.map +1 -0
  609. package/dist/plugins/bug-fixer/index.d.ts.map +1 -0
  610. package/dist/plugins/bug-fixer/index.js.map +1 -0
  611. package/dist/plugins/bug-fixer/tools.d.ts.map +1 -0
  612. package/dist/plugins/bug-fixer/tools.js.map +1 -0
  613. package/dist/plugins/vipunen/__tests__/tools.test.d.ts +10 -0
  614. package/dist/plugins/vipunen/__tests__/tools.test.d.ts.map +1 -0
  615. package/dist/plugins/vipunen/__tests__/tools.test.js +646 -0
  616. package/dist/plugins/vipunen/__tests__/tools.test.js.map +1 -0
  617. package/dist/plugins/vipunen/client.d.ts.map +1 -0
  618. package/dist/plugins/vipunen/client.js.map +1 -0
  619. package/dist/plugins/vipunen/index.d.ts.map +1 -0
  620. package/dist/plugins/vipunen/index.js.map +1 -0
  621. package/dist/plugins/vipunen/tools.d.ts.map +1 -0
  622. package/dist/plugins/vipunen/tools.js.map +1 -0
  623. package/dist/routes/agents.d.ts +44 -0
  624. package/dist/routes/agents.d.ts.map +1 -0
  625. package/dist/routes/agents.js +311 -0
  626. package/dist/routes/agents.js.map +1 -0
  627. package/dist/services/agent-credential-store.d.ts +73 -0
  628. package/dist/services/agent-credential-store.d.ts.map +1 -0
  629. package/dist/services/agent-credential-store.js +212 -0
  630. package/dist/services/agent-credential-store.js.map +1 -0
  631. package/dist/stdio-server.d.ts.map +1 -0
  632. package/dist/stdio-server.js.map +1 -0
  633. package/dist/workspace/context.d.ts +148 -0
  634. package/dist/workspace/context.d.ts.map +1 -0
  635. package/dist/workspace/context.js +339 -0
  636. package/dist/workspace/context.js.map +1 -0
  637. package/dist/workspace/credentials.d.ts +55 -0
  638. package/dist/workspace/credentials.d.ts.map +1 -0
  639. package/dist/workspace/credentials.js +239 -0
  640. package/dist/workspace/credentials.js.map +1 -0
  641. package/dist/workspace/index.d.ts +21 -0
  642. package/dist/workspace/index.d.ts.map +1 -0
  643. package/dist/workspace/index.js +45 -0
  644. package/dist/workspace/index.js.map +1 -0
  645. package/dist/workspace/loader.d.ts +27 -0
  646. package/dist/workspace/loader.d.ts.map +1 -0
  647. package/dist/workspace/loader.js +222 -0
  648. package/dist/workspace/loader.js.map +1 -0
  649. package/dist/workspace/schema.d.ts +37 -0
  650. package/dist/workspace/schema.d.ts.map +1 -0
  651. package/dist/workspace/schema.js +192 -0
  652. package/dist/workspace/schema.js.map +1 -0
  653. package/package.json +13 -2
  654. package/.claude/.context-watchdog.json +0 -1
  655. package/.claude/.session-checked +0 -1
  656. package/.claude/agents/agent-ada-skill-builder.md +0 -94
  657. package/.claude/agents/agent-alejandro-function-fields.md +0 -342
  658. package/.claude/agents/agent-bjorn-config-audit.md +0 -103
  659. package/.claude/agents/agent-builder-agent-creator.md +0 -130
  660. package/.claude/agents/agent-code-simplifier.md +0 -53
  661. package/.claude/agents/agent-dmitri-activity-crud.md +0 -159
  662. package/.claude/agents/agent-giuseppe-app-builder.md +0 -208
  663. package/.claude/agents/agent-gunther-mcp-tools.md +0 -39
  664. package/.claude/agents/agent-helga-workflow-config.md +0 -204
  665. package/.claude/agents/agent-igor-activity-mover-automation.md +0 -125
  666. package/.claude/agents/agent-ingrid-doc-templates.md +0 -261
  667. package/.claude/agents/agent-ivan-monolith.md +0 -154
  668. package/.claude/agents/agent-kenji-data-reader.md +0 -86
  669. package/.claude/agents/agent-lars-code-inspector.md +0 -102
  670. package/.claude/agents/agent-marco-mockup-builder.md +0 -110
  671. package/.claude/agents/agent-marcus-api-documenter.md +0 -323
  672. package/.claude/agents/agent-marketplace-publisher.md +0 -280
  673. package/.claude/agents/agent-marketplace-reviewer.md +0 -309
  674. package/.claude/agents/agent-permissions-handler.md +0 -208
  675. package/.claude/agents/agent-simple-writer.md +0 -48
  676. package/.claude/agents/agent-svetlana-code-review.md +0 -171
  677. package/.claude/agents/agent-tanya-test-runner.md +0 -333
  678. package/.claude/agents/agent-ui-designer.md +0 -100
  679. package/.claude/agents/agent-viktor-sql-insights.md +0 -212
  680. package/.claude/agents/agent-web-search.md +0 -55
  681. package/.claude/agents/agent-yevgeni-discussions.md +0 -45
  682. package/.claude/agents/agent-zara-zapier.md +0 -159
  683. package/.claude/skills/SDK-activity-patterns/SKILL.md +0 -428
  684. package/.claude/skills/SDK-generate-skill/SKILL.md +0 -92
  685. package/.claude/skills/SDK-init-skill/SKILL.md +0 -127
  686. package/.claude/skills/agent-structure/SKILL.md +0 -98
  687. package/.claude/skills/delegation-routing/SKILL.md +0 -202
  688. package/.claude/skills/frontend-design/SKILL.md +0 -254
  689. package/.claude/skills/hailer-activity-mover/SKILL.md +0 -213
  690. package/.claude/skills/hailer-rest-api/SKILL.md +0 -61
  691. package/.claude/skills/hailer-rest-api/hailer-activities.md +0 -184
  692. package/.claude/skills/hailer-rest-api/hailer-admin.md +0 -473
  693. package/.claude/skills/hailer-rest-api/hailer-calendar.md +0 -256
  694. package/.claude/skills/hailer-rest-api/hailer-feed.md +0 -249
  695. package/.claude/skills/hailer-rest-api/hailer-insights.md +0 -195
  696. package/.claude/skills/hailer-rest-api/hailer-messaging.md +0 -276
  697. package/.claude/skills/hailer-rest-api/hailer-workflows.md +0 -283
  698. package/.claude/skills/insight-join-patterns/SKILL.md +0 -174
  699. package/.claude/skills/json-only-output/SKILL.md +0 -72
  700. package/.claude/skills/mcp-direct-tools/SKILL.md +0 -153
  701. package/.claude/skills/optional-parameters/SKILL.md +0 -72
  702. package/.claude/skills/tool-parameter-usage/SKILL.md +0 -126
  703. package/.claude/skills/tool-response-verification/SKILL.md +0 -92
  704. package/.opencode/agent/agent-ada-skill-builder.md +0 -35
  705. package/.opencode/agent/agent-alejandro-function-fields.md +0 -39
  706. package/.opencode/agent/agent-bjorn-config-audit.md +0 -36
  707. package/.opencode/agent/agent-builder-agent-creator.md +0 -39
  708. package/.opencode/agent/agent-code-simplifier.md +0 -31
  709. package/.opencode/agent/agent-dmitri-activity-crud.md +0 -40
  710. package/.opencode/agent/agent-giuseppe-app-builder.md +0 -37
  711. package/.opencode/agent/agent-gunther-mcp-tools.md +0 -39
  712. package/.opencode/agent/agent-helga-workflow-config.md +0 -204
  713. package/.opencode/agent/agent-igor-activity-mover-automation.md +0 -46
  714. package/.opencode/agent/agent-ingrid-doc-templates.md +0 -39
  715. package/.opencode/agent/agent-ivan-monolith.md +0 -46
  716. package/.opencode/agent/agent-kenji-data-reader.md +0 -53
  717. package/.opencode/agent/agent-lars-code-inspector.md +0 -28
  718. package/.opencode/agent/agent-marco-mockup-builder.md +0 -42
  719. package/.opencode/agent/agent-marcus-api-documenter.md +0 -53
  720. package/.opencode/agent/agent-marketplace-publisher.md +0 -44
  721. package/.opencode/agent/agent-marketplace-reviewer.md +0 -42
  722. package/.opencode/agent/agent-permissions-handler.md +0 -50
  723. package/.opencode/agent/agent-simple-writer.md +0 -45
  724. package/.opencode/agent/agent-svetlana-code-review.md +0 -39
  725. package/.opencode/agent/agent-tanya-test-runner.md +0 -57
  726. package/.opencode/agent/agent-ui-designer.md +0 -56
  727. package/.opencode/agent/agent-viktor-sql-insights.md +0 -34
  728. package/.opencode/agent/agent-web-search.md +0 -42
  729. package/.opencode/agent/agent-yevgeni-discussions.md +0 -37
  730. package/.opencode/agent/agent-zara-zapier.md +0 -53
  731. package/.opencode/commands/app-squad.md +0 -135
  732. package/.opencode/commands/audit-squad.md +0 -158
  733. package/.opencode/commands/autoplan.md +0 -563
  734. package/.opencode/commands/cleanup-squad.md +0 -98
  735. package/.opencode/commands/config-squad.md +0 -106
  736. package/.opencode/commands/crud-squad.md +0 -87
  737. package/.opencode/commands/data-squad.md +0 -97
  738. package/.opencode/commands/debug-squad.md +0 -303
  739. package/.opencode/commands/doc-squad.md +0 -65
  740. package/.opencode/commands/handoff.md +0 -137
  741. package/.opencode/commands/health.md +0 -49
  742. package/.opencode/commands/help-agents.md +0 -151
  743. package/.opencode/commands/help-commands.md +0 -32
  744. package/.opencode/commands/help-faq.md +0 -29
  745. package/.opencode/commands/help-plugins.md +0 -28
  746. package/.opencode/commands/help-skills.md +0 -7
  747. package/.opencode/commands/help-tools.md +0 -40
  748. package/.opencode/commands/help.md +0 -28
  749. package/.opencode/commands/hotfix-squad.md +0 -112
  750. package/.opencode/commands/integration-squad.md +0 -82
  751. package/.opencode/commands/janitor-squad.md +0 -167
  752. package/.opencode/commands/learn-auto.md +0 -120
  753. package/.opencode/commands/learn.md +0 -120
  754. package/.opencode/commands/mcp-list.md +0 -27
  755. package/.opencode/commands/onboard-squad.md +0 -140
  756. package/.opencode/commands/plan-workspace.md +0 -732
  757. package/.opencode/commands/prd.md +0 -131
  758. package/.opencode/commands/project-status.md +0 -82
  759. package/.opencode/commands/publish.md +0 -138
  760. package/.opencode/commands/recap.md +0 -69
  761. package/.opencode/commands/restore.md +0 -64
  762. package/.opencode/commands/review-squad.md +0 -152
  763. package/.opencode/commands/save.md +0 -24
  764. package/.opencode/commands/stats.md +0 -19
  765. package/.opencode/commands/swarm.md +0 -210
  766. package/.opencode/commands/tool-builder.md +0 -39
  767. package/.opencode/commands/ws-pull.md +0 -44
  768. package/test-billing-server.js +0 -136
package/CLAUDE.md CHANGED
@@ -1,9 +1,8 @@
1
- # Hailer SDK
1
+ # Hailer MCP Server
2
2
 
3
3
  MCP tools for Hailer workspaces: workflows, activities, insights, and apps.
4
4
 
5
- <quick-start>
6
- ## Quick Start (New Project Setup)
5
+ ## Quick Start
7
6
 
8
7
  ```bash
9
8
  npm init @hailer/sdk # Scaffold project with workspace/ config
@@ -11,360 +10,8 @@ npm run pull # Pull latest workflow schemas from Hailer
11
10
  npm run generate # Generate TypeScript types
12
11
  ```
13
12
 
14
- Then ask Claude Code to build features. It delegates to specialized agents automatically.
15
- Run `/help` for an overview, or `/help:agents`, `/help:skills`, `/help:commands` for details.
16
- </quick-start>
13
+ Then ask Claude Code to build features. Load relevant skills for domain context.
17
14
 
18
- ---
15
+ ## Project-Level Instructions
19
16
 
20
- <identity>
21
- You are the orchestrator. You delegate tasks to specialized agents, run commands from their responses, and summarize results for users.
22
-
23
- Always delegate - agents have optimized tools and context for their domains.
24
- </identity>
25
-
26
- <orchestrator-rules>
27
- DO DIRECTLY: Answer from context, summarize agent results, run push/sync commands
28
- DELEGATE TO AGENTS: Everything else. No exceptions.
29
-
30
- **FEATURE REQUESTS:** Before implementing, ask "Want me to create a PRD first?" Only skip if user declines or already used `/prd`/`/autoplan`.
31
-
32
- **NEVER USE BUILT-IN AGENTS:** Do not spawn Plan, Explore, general-purpose, or Bash subagents. These are Claude Code built-ins that lack specialized skills and tools. Instead:
33
- - Give the executing agent a prompt that includes research + planning + execution
34
- - Agents have the Skill tool — they can load patterns themselves
35
- - E.g., instead of "Plan agent researches templates → Ingrid implements", just tell Ingrid: "Load SDK-document-templates skill, plan the template structure, then build it"
36
-
37
- **ANTI-PATTERNS (never do these):**
38
- - "Let me use Plan agent to research first..." → Include research in the agent's prompt
39
- - "I'll use Explore to find the code..." → Use Glob/Grep directly, or include in agent prompt
40
- - "I'll just quickly read this file..." → Delegate to the appropriate agent
41
- - "Let me check this one field..." → Delegate to Kenji
42
- - "I can create this simple activity..." → Delegate to Dmitri
43
- - "This is a small change..." → Delegate to the appropriate agent
44
- - "User gave detailed plan, so I'll skip PRD..." → Still ask about PRD
45
-
46
- **CRITICAL ROUTING RULE — Kenji vs Giuseppe:**
47
- - **Kenji** = Hailer workspace data ONLY (workspace/ files, MCP API queries, field IDs, schemas)
48
- - **Giuseppe** = App source code (apps/, src/, .tsx/.ts files, API call bugs, UI fixes, debugging)
49
- - NEVER send app source code tasks to Kenji. He reads workspace/ config, not app code.
50
- - For app bugs/fixes: Giuseppe (complex) or Simple Writer (simple string/ID fixes)
51
-
52
- **MULTI-AGENT WORK:** Prefer squads over manual agent chaining. If a task needs 2+ agents in sequence (e.g., Helga → Alejandro → Viktor), check if a squad already does it (`/help:commands`). For large-scale repetitive work across many items, use `/swarm` instead of looping agents yourself.
53
-
54
- Agents return JSON. You interpret it for the user.
55
- </orchestrator-rules>
56
-
57
- <delegation-blocks>
58
- ## When Hook Blocks You
59
-
60
- Hooks enforce delegation by blocking certain direct tool calls. When blocked:
61
-
62
- **1. Default: Delegate (recommended)**
63
- The block message shows the suggested agent. Use it:
64
- ```
65
- Task(subagent_type="agent-kenji-data-reader", prompt='{"task":"..."}')
66
- ```
67
-
68
- **2. Override: Ask user permission first**
69
- If context suggests user wants direct action, ask:
70
- ```
71
- AskUserQuestion:
72
- question: "Hook wants me to delegate reading workspace/fields.ts to Kenji. Read directly instead?"
73
- options:
74
- - "Delegate to Kenji (recommended)"
75
- - "Read directly this once"
76
- ```
77
-
78
- **3. If user approves direct action:**
79
- 1. Run the bypass command shown in block message (writes one-time bypass file)
80
- 2. Retry the original tool call
81
- 3. Bypass auto-deletes after one use
82
-
83
- **CRITICAL: NEVER bypass without explicitly asking user.**
84
-
85
- **Blocked tools:**
86
- - `Read` on `workspace/` → Kenji
87
- - `Glob`/`Grep` code searches → include in appropriate agent's prompt
88
- - `mcp__hailer__*` tools → appropriate agent (Kenji, Dmitri, Viktor, etc.)
89
- </delegation-blocks>
90
-
91
- <agent-routing>
92
- ## Quick Routing
93
-
94
- | Category | Agent |
95
- |----------|-------|
96
- | Read workspace/ data, schemas, IDs | **Kenji** |
97
- | Read/fix/debug app or integration source code | **Giuseppe** or **Simple Writer** |
98
- | Write activities | **Dmitri** |
99
- | Workflows, fields, phases | **Helga** |
100
- | Calculated fields + name functions | **Alejandro** |
101
- | SQL insights | **Viktor** |
102
- | Build apps, fix app bugs, debug API calls | **Giuseppe** |
103
- | App UI/UX design specs | **UI Designer** |
104
- | Demo/mockup apps (no Hailer connection) | **Marco** |
105
- | Document templates (PDF/CSV) | **Ingrid** |
106
- | Activity movers (phase cascades) | **Igor** |
107
- | Monolith automations (webhooks, scheduled jobs) | **Ivan** |
108
- | Zapier integrations | **Zara** |
109
- | Tests (vitest, playwright, build checks) | **Tanya** |
110
- | Code review (bugs, security, best practices) | **Svetlana** |
111
- | LSP inspection (dead code, unused imports) | **Lars** |
112
- | Basic edits (ID swaps, string replacements) | **Simple Writer** |
113
- | Code simplification and cleanup | **Code Simplifier** |
114
- | API endpoint documentation | **Marcus** |
115
- | MCP tool development | **Gunther** |
116
- | Discussions (read, post, membership) | **Yevgeni** |
117
- | App permissions (grant/revoke access) | **Permissions Handler** |
118
- | Skill creation and agent updates | **Ada** |
119
- | New agent creation | **Builder** |
120
- | Marketplace publishing | **Marketplace Publisher** |
121
- | Marketplace PR review | **Marketplace Reviewer** |
122
- | Web research | **Web Search** |
123
- | Config audit (CLAUDE.md, hooks, agents) | **Bjorn** |
124
-
125
- Ambiguous routing? Load `delegation-routing` skill or run `/help:agents`.
126
- </agent-routing>
127
-
128
- <skill-system>
129
- ## Skill System
130
-
131
- Skills are reusable knowledge files (`.claude/skills/<name>/SKILL.md`) that give agents domain-specific patterns, API references, and code templates. They keep agent definitions lean while providing deep expertise on demand.
132
-
133
- **Two types of skill loading:**
134
-
135
- **1. Auto-injected (no action needed):** Agents declare core skills in their frontmatter `skills:` field. The `SubagentStart` hook (`skill-injector.cjs`) reads the list, loads each `SKILL.md` from `.claude/skills/<name>/`, and injects it as `additionalContext` when the agent spawns.
136
-
137
- **2. On-demand (include in prompt):** For specialized tasks, tell the agent to load an extra skill via Skill tool. Only 6 agents have the Skill tool: Giuseppe, Helga, Viktor, Alejandro, Ingrid, Ada.
138
-
139
- | Agent | Task pattern | Add to prompt |
140
- |-------|-------------|---------------|
141
- | **Giuseppe** | Images, pictures, photos | `Load the hailer-apps-pictures skill.` |
142
- | **Giuseppe** | Publishing, deploy to prod | `Load the publish-hailer-app skill.` |
143
- | **Giuseppe** | REST API, direct HTTP calls | `Load the hailer-rest-api skill.` |
144
- | **Viktor** | JOIN, cross-workflow, linked data | `Load the insight-join-patterns skill.` |
145
- | **Viktor** | Field config, phases, workspace | `Load the SDK-ws-config-skill skill.` |
146
- | **Alejandro** | Field config, phases, workspace | `Load the SDK-ws-config-skill skill.` |
147
- | **Ingrid** | Field config, phases, workspace | `Load the SDK-ws-config-skill skill.` |
148
-
149
- **Adding core skills to an agent:**
150
- ```yaml
151
- # In .claude/agents/agent-name.md frontmatter
152
- skills:
153
- - SDK-ws-config-skill
154
- - SDK-generate-skill
155
- ```
156
- </skill-system>
157
-
158
- <task-usage>
159
- ## Task Usage
160
-
161
- **Rule: 2+ agents or 3+ steps = create tasks.** Mark in_progress before starting, completed when done.
162
-
163
- Examples that need tasks:
164
- - "Apply these 4 learnings" → 4 tasks
165
- - "Run review squad" → 1 task per agent + 1 for fixes
166
- - "Build feature from PRD" → task per implementation step
167
-
168
- Skip tasks for: single-agent dispatch, quick lookups, simple edits
169
- </task-usage>
170
-
171
- <background-agents>
172
- ## Background Execution
173
-
174
- All agents support `run_in_background: true`. Use it proactively for tasks that take a while (full test suites, multi-file reviews, deep research, app scaffolding). Tell the user "Running X in background" and keep working. Check results via `Read` on the `output_file` path or `TaskOutput(task_id, block=false)`. Multiple agents can run in background simultaneously.
175
- </background-agents>
176
-
177
- <error-detection-skills>
178
- ## Error Detection Skills
179
-
180
- Load these skills when you detect common agent failure patterns:
181
-
182
- | Trigger | Load Skill |
183
- |---------|------------|
184
- | MCP validation fails ("Required" errors, empty receivedArgs) | `tool-parameter-usage` |
185
- | Agent returns success but tool actually failed | `tool-response-verification` |
186
- | Empty array/string errors in optional parameters | `optional-parameters` |
187
- | Agent outputs prose after JSON closing brace | `json-only-output` |
188
-
189
- These help you detect and correct issues before reporting to user.
190
- </error-detection-skills>
191
-
192
- <push-commands>
193
- When agents return `"status": "ready_to_push"`:
194
- ```json
195
- { "status": "ready_to_push", "commands": ["npm run fields-push"], "summary": "..." }
196
- ```
197
-
198
- YOU run these commands via Bash tool. This triggers safety hooks.
199
- Do NOT ask user to run them manually.
200
- </push-commands>
201
-
202
- <needs-confirmation>
203
- When agents return `"status": "needs_confirmation"`:
204
- 1. AskUserQuestion to confirm
205
- 2. If yes: run the `safe_command` from result
206
- 3. If no: report cancellation
207
- </needs-confirmation>
208
-
209
- ---
210
-
211
- <local-first>
212
- **Why local-first?** Workspace files are instant, free, and contain all structural data (IDs, field types, phases). API calls are slow, rate-limited, and only needed for live activity data. Always check workspace/ BEFORE API calls.
213
-
214
- ```
215
- workspace/
216
- ├── workflows.ts, enums.ts, teams.ts, groups.ts
217
- └── [Workflow]_[id]/
218
- ├── fields.ts
219
- └── phases.ts
220
- ```
221
-
222
- LOCAL: Workflow/field/phase IDs, field types, labels, options
223
- API: Activity data, counts, discussion messages
224
-
225
- REFRESH: `npm run pull`
226
- </local-first>
227
-
228
- <hooks>
229
- ## Hooks
230
-
231
- 26 CJS hooks in `.claude/hooks/` wired via `settings.json`. Each receives JSON on stdin, returns `{"decision": "allow"}` or `{"decision": "block", "message": "..."}` on stdout.
232
-
233
- Key events: `SessionStart` (auto-loads context), `PreToolUse` (guards + delegation enforcement), `PostToolUse` (linting, logging, failure detection), `SubagentStart` (skill injection).
234
-
235
- **If hooks break after `npm install`:** Check `.claude/settings.json` paths, test with `node .claude/hooks/<script>.cjs --help`, or run `/clear-defaults`.
236
-
237
- PROTECTED (hooks confirm): npm run push, *-push, *-sync | SAFE: npm run pull, npm run generate
238
- </hooks>
239
-
240
- <app-development>
241
- ## App Development Rules
242
-
243
- **Default: Local development.** Scaffold creates a dev app at `http://localhost:3000` automatically. Run `npm run dev` and test inside Hailer iframe.
244
-
245
- **Publishing: Only when user explicitly asks.** Tell Giuseppe to load the `publish-hailer-app` skill. It handles manifest validation, `publish_hailer_app` upload, and `update_app` to switch URL to production.
246
-
247
- **Builder mode for Giuseppe:** The `app-edit-guard` hook blocks file edits in `apps/` unless builder mode is active. Before spawning Giuseppe directly, run:
248
- ```bash
249
- node .claude/hooks/app-edit-guard.cjs --agent-on
250
- ```
251
- After Giuseppe completes:
252
- ```bash
253
- node .claude/hooks/app-edit-guard.cjs --agent-off
254
- ```
255
- The `/app-squad` command handles this automatically.
256
- </app-development>
257
-
258
- ---
259
-
260
- <session-protocol>
261
- ## Session Protocol
262
-
263
- ### Starting a Session
264
- SessionStart hook auto-loads SESSION-HANDOFF.md + DEVELOPMENT.md into context.
265
- 1. Review auto-loaded context, update handoff (remove completed items)
266
- 2. If handoff has "Pending Tasks" → recreate with `TaskCreate`
267
- 3. If no DEVELOPMENT.md → offer to create one
268
- 4. Briefly confirm current state before diving in
269
-
270
- ### During a Session
271
- - **Feature request:** Ask "Want me to create a PRD?" even if user provides detailed plan. Only skip if user explicitly declines or already used `/prd`/`/autoplan`.
272
- - **Tasks:** 2+ agents or 3+ steps = create tasks. Mark in_progress before starting, completed when done. If it won't be done this session, put it in DEVELOPMENT.md backlog.
273
- - **Learnings:** Use `/learn <cat> <desc>` to capture gotchas and patterns.
274
-
275
- ### Ending a Session
276
- - **Completion:** Update DEVELOPMENT.md + PRD status. Offer code-simplifier after features.
277
- - **Context full:** Update handoff, tell user to run `/handoff`.
278
- - **When to update DEVELOPMENT.md:** After features/milestones, architecture decisions, or discovering technical constraints.
279
-
280
- ### Planning Workflow
281
- 1. **Big picture → DEVELOPMENT.md** — Purpose, stack, roadmap linking to PRDs
282
- 2. **Feature details → PRDs** (`docs/prd-*.md`) — One per feature, links back to roadmap
283
- 3. **Implementation → Pick a PRD and build** — Use `/yolo` for autonomous execution
284
-
285
- **Quick start:** `/autoplan "description"` creates DEVELOPMENT.md + PRDs automatically.
286
- </session-protocol>
287
-
288
- <file-templates>
289
- ## Documentation Hierarchy
290
-
291
- | File | Purpose |
292
- |------|---------|
293
- | **DEVELOPMENT.md** | Project status, backlog, tech stack, roadmap |
294
- | **docs/prd-*.md** | Feature requirements and implementation steps |
295
- | **SESSION-HANDOFF.md** | Current work, next steps, key context |
296
-
297
- **DEVELOPMENT.md** has sections: What This Project Does, Roadmap (linking PRDs), Current Status, Known Issues, Technical Decisions.
298
- **SESSION-HANDOFF.md** has sections: Current Work, Next Steps, Context.
299
- </file-templates>
300
-
301
- <customization>
302
- **Creating agents:** Load `agent-structure` skill for template.
303
- **Modify:** Edit `.claude/agents/*.md`
304
- **Disable:** Move to `docs/agents/`
305
- </customization>
306
-
307
- <config-source>
308
- ## Config Source
309
-
310
- Agents, skills, hooks, and commands are in `.claude/` (project-local).
311
- Update from config repo: `cd ~/hailer-claude-config && git pull`, then copy to project.
312
- Learnings: `~/hailer-claude-config/inbox/`
313
- </config-source>
314
-
315
- <commands>
316
- ## Commands
317
-
318
- **Syntax:** `/command <param>` (angle brackets = required). `/help:topic` (colon = subtopic).
319
-
320
- **Essential:** `/save`, `/handoff`, `/prd`, `/autoplan`, `/yolo`, `/ws-pull`, `/learn`
321
-
322
- **Squads** (multi-agent workflows):
323
-
324
- | Squad | Agents | Use for |
325
- |-------|--------|---------|
326
- | `/app-squad` | Kenji → Designer → Giuseppe → Tanya | Build apps end-to-end |
327
- | `/review-squad` | Svetlana + Lars + Tanya | Code review with auto-fix |
328
- | `/config-squad` | Helga → Alejandro → Viktor | Workflow + fields + insights |
329
- | `/hotfix-squad` | Tanya → Simple Writer → Svetlana | Quick bug fixes |
330
- | `/debug-squad` | Kenji + Viktor + Svetlana + Tanya | Parallel investigation |
331
- | `/swarm <desc>` | Auto-selected | Large-scale parallel work |
332
-
333
- More squads + full command list: `/help:commands`
334
- </commands>
335
-
336
- <directory>
337
- ## Project Structure
338
-
339
- ```
340
- workspace/ # Hailer config - check FIRST for IDs
341
- apps/ # Frontend apps
342
- integrations/ # Backend services
343
- .claude/ # Agents, hooks, skills, commands (project-local)
344
- DEVELOPMENT.md # Project status
345
- ```
346
- </directory>
347
-
348
- <sdk-gotchas>
349
- ## Hailer SDK Quick Reference
350
-
351
- Common pitfalls that cause debugging loops - check these FIRST:
352
-
353
- | Gotcha | Correct | Wrong |
354
- |--------|---------|-------|
355
- | Activity field updates | `{type: "string", value: "x"}` wrapper | Raw value `"x"` |
356
- | `linkedfrom` in isolated-vm | Does NOT work - use ActivityLink field instead | Trying cross-link resolution |
357
- | Code in isolated-vm | Plain JavaScript only | TypeScript syntax (`as`, type annotations) |
358
- | Phase transitions | Exact string: `"Uudet"` → `"Tehty"` | Guessed names |
359
- | Field IDs | Read from workspace/ files | Guessing from labels |
360
- | Dropdown values | `{data: [{value, label}]}` | `{options: [...]}` |
361
- | ActivityLink format | Plain string array of workflow IDs | Nested objects |
362
-
363
- **Rule:** When touching Hailer fields, ALWAYS read workspace/ first via Kenji. Never guess IDs or formats.
364
- </sdk-gotchas>
365
-
366
- <bulk-operations>
367
- ## Bulk Tasks
368
-
369
- For repetitive edits, use `/swarm` or headless mode (`claude -p "..." --allowedTools "Edit,Read,Grep,Glob"`). Act first — grep to find instances, then edit immediately.
370
- </bulk-operations>
17
+ See `.claude/CLAUDE.md` for full project configuration — skills, hooks, commands, gotchas.
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Multi-Bot Client Manager
3
+ * Manages multiple bot clients, each with their own Hailer connection
4
+ */
5
+ import { HailerClient } from "../mcp/hailer-clients";
6
+ import { SignalHandler } from "../mcp/signal-handler";
7
+ import { BotClientConfig } from "./shared/types";
8
+ import { WorkspaceCache } from "../mcp/workspace-cache";
9
+ export interface BotClient {
10
+ userId: string;
11
+ firstName: string;
12
+ lastName: string;
13
+ config: BotClientConfig;
14
+ client: HailerClient;
15
+ signalHandler: SignalHandler;
16
+ workspaceCache?: WorkspaceCache;
17
+ }
18
+ export declare class MultiBotManager {
19
+ private botConfigs;
20
+ private botClients;
21
+ constructor(botConfigs: BotClientConfig[]);
22
+ initializeAllHailerClientsFromConfig(): Promise<void>;
23
+ getBotClient(userId: string): BotClient | undefined;
24
+ getAllBotClients(): BotClient[];
25
+ getBotIds(): string[];
26
+ private userNameCache;
27
+ private static USER_CACHE_TTL;
28
+ /**
29
+ * Look up a user's full name by their user ID
30
+ * Uses workspace cache first, then falls back to socket API call
31
+ */
32
+ getUserName(userId: string): string | undefined;
33
+ /**
34
+ * Initialize a single bot client from credentials
35
+ * Used for dynamic bot creation from AI Hub
36
+ */
37
+ initializeBotClient(email: string, password: string, apiKey: string): Promise<string>;
38
+ /**
39
+ * Remove and disconnect a bot client
40
+ */
41
+ removeBotClient(userId: string): Promise<void>;
42
+ /**
43
+ * Get bot client by bot ID (hal, giuseppe, hailerExpert, vastuullisuus)
44
+ */
45
+ getBotClientByBotId(botId: string): BotClient | undefined;
46
+ shutdown(): Promise<void>;
47
+ }
48
+ //# sourceMappingURL=bot-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-manager.d.ts","sourceRoot":"","sources":["../../src/agents/bot-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,YAAY,EAIb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAqC,MAAM,wBAAwB,CAAC;AAQ3F,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,YAAY,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,qBAAa,eAAe;IAGd,OAAO,CAAC,UAAU;IAF9B,OAAO,CAAC,UAAU,CAAqC;gBAEnC,UAAU,EAAE,eAAe,EAAE;IAMpC,oCAAoC,IAAI,OAAO,CAAC,IAAI,CAAC;IAyF3D,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAQnD,gBAAgB,IAAI,SAAS,EAAE;IAI/B,SAAS,IAAI,MAAM,EAAE;IAK5B,OAAO,CAAC,aAAa,CAA+D;IACpF,OAAO,CAAC,MAAM,CAAC,cAAc,CAAiB;IAE9C;;;OAGG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAoBtD;;;OAGG;IACU,mBAAmB,CAC9B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC;IA+ElB;;OAEG;IACU,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3D;;OAEG;IACI,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAMnD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAgBvC"}
@@ -0,0 +1,254 @@
1
+ "use strict";
2
+ /**
3
+ * Multi-Bot Client Manager
4
+ * Manages multiple bot clients, each with their own Hailer connection
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.MultiBotManager = void 0;
8
+ const hailer_clients_1 = require("../mcp/hailer-clients");
9
+ const signal_handler_1 = require("../mcp/signal-handler");
10
+ const workspace_cache_1 = require("../mcp/workspace-cache");
11
+ const config_1 = require("../config");
12
+ const bot_config_1 = require("../bot-config");
13
+ const logger_1 = require("../lib/logger");
14
+ const logger = (0, logger_1.createLogger)({ component: 'bot-manager' });
15
+ class MultiBotManager {
16
+ botConfigs;
17
+ botClients = new Map();
18
+ constructor(botConfigs) {
19
+ this.botConfigs = botConfigs;
20
+ }
21
+ // for client we may put initializeAllConfigClients method to do it at once
22
+ // in case we only use MCP Server:
23
+ // for MCP Server it may just get a specific client and this class initialize it specifically and even kill it later if not needed
24
+ async initializeAllHailerClientsFromConfig() {
25
+ logger.info('Initializing bot clients', { count: this.botConfigs.length });
26
+ const appConfig = (0, config_1.createApplicationConfig)();
27
+ for (const config of this.botConfigs) {
28
+ try {
29
+ // Use shared connection pool via API key lookup
30
+ const client = await (0, hailer_clients_1.createHailerClientByApiKey)(config.mcpServerApiKey);
31
+ // Get user ID automatically from authenticated session
32
+ const userId = await (0, hailer_clients_1.getCurrentUserId)(client);
33
+ // Fetch init data to get workspace cache with user names and teams
34
+ let workspaceCache;
35
+ try {
36
+ const init = await client.socket.request('v2.core.init', [['users', 'network', 'networks', 'teams']]);
37
+ workspaceCache = (0, workspace_cache_1.createWorkspaceCache)(init, appConfig.mcpConfig);
38
+ const teamCount = Object.keys(init.teams || {}).length;
39
+ logger.info('Loaded workspace cache', { userCount: workspaceCache.users.length, teamCount });
40
+ }
41
+ catch (initError) {
42
+ logger.warn('Could not load workspace cache', { email: (0, config_1.maskEmail)(config.email), error: String(initError) });
43
+ }
44
+ const signalHandler = signal_handler_1.SignalHandler.getOrCreate(client, workspaceCache);
45
+ // Look up user's name from workspace cache
46
+ let firstName = 'Bot';
47
+ let lastName = '';
48
+ if (workspaceCache) {
49
+ const userInfo = workspaceCache.usersById[userId];
50
+ if (userInfo) {
51
+ firstName = userInfo.firstname || 'Bot';
52
+ lastName = userInfo.lastname || '';
53
+ }
54
+ }
55
+ // Check if we have a display name from Agent Directory and update Hailer profile
56
+ const localCreds = (0, bot_config_1.getLocalBotCredentials)(userId);
57
+ if (localCreds?.displayName) {
58
+ const currentFullName = `${firstName} ${lastName}`.trim();
59
+ if (currentFullName !== localCreds.displayName) {
60
+ try {
61
+ // Parse display name into first/last
62
+ const parts = localCreds.displayName.trim().split(/\s+/);
63
+ const newFirstName = parts[0] || localCreds.displayName;
64
+ const newLastName = parts.slice(1).join(' ') || '';
65
+ // Update Hailer profile via API
66
+ await client.socket.request('user.set_user_info', ['firstname', [newFirstName]]);
67
+ if (newLastName) {
68
+ await client.socket.request('user.set_user_info', ['lastname', [newLastName]]);
69
+ }
70
+ firstName = newFirstName;
71
+ lastName = newLastName;
72
+ logger.info('Updated bot display name', { from: currentFullName, to: localCreds.displayName });
73
+ }
74
+ catch (nameError) {
75
+ logger.warn('Could not update bot display name', { error: String(nameError) });
76
+ }
77
+ }
78
+ }
79
+ const botClient = {
80
+ userId,
81
+ firstName,
82
+ lastName,
83
+ config,
84
+ client,
85
+ signalHandler,
86
+ workspaceCache,
87
+ };
88
+ this.botClients.set(userId, botClient);
89
+ logger.info('Bot client initialized', {
90
+ email: (0, config_1.maskEmail)(config.email),
91
+ userId,
92
+ apiKey: (0, config_1.maskSensitiveData)(config.mcpServerApiKey),
93
+ });
94
+ }
95
+ catch (error) {
96
+ logger.error('Failed to initialize bot client', error, {
97
+ email: (0, config_1.maskEmail)(config.email),
98
+ });
99
+ // Continue with other bots even if one fails
100
+ }
101
+ }
102
+ logger.info('Bot clients initialization complete', { count: this.botClients.size });
103
+ }
104
+ getBotClient(userId) {
105
+ const botClient = this.botClients.get(userId);
106
+ if (!botClient) {
107
+ logger.warn('No bot client found', { userId });
108
+ }
109
+ return botClient;
110
+ }
111
+ getAllBotClients() {
112
+ return Array.from(this.botClients.values());
113
+ }
114
+ getBotIds() {
115
+ return Array.from(this.botClients.keys());
116
+ }
117
+ // Simple in-memory cache for user lookups (refreshed on demand)
118
+ userNameCache = new Map();
119
+ static USER_CACHE_TTL = 5 * 60 * 1000; // 5 minutes
120
+ /**
121
+ * Look up a user's full name by their user ID
122
+ * Uses workspace cache first, then falls back to socket API call
123
+ */
124
+ getUserName(userId) {
125
+ // Check in-memory cache first (for API-fetched users)
126
+ const cached = this.userNameCache.get(userId);
127
+ if (cached && Date.now() - cached.fetchedAt < MultiBotManager.USER_CACHE_TTL) {
128
+ return cached.name;
129
+ }
130
+ // Try each bot client's workspace cache until we find the user
131
+ for (const botClient of this.botClients.values()) {
132
+ if (botClient.workspaceCache) {
133
+ const user = (0, workspace_cache_1.getUserById)(botClient.workspaceCache, userId);
134
+ if (user) {
135
+ const fullName = `${user.firstname || ''} ${user.lastname || ''}`.trim();
136
+ return fullName || user.fullName || undefined;
137
+ }
138
+ }
139
+ }
140
+ return undefined;
141
+ }
142
+ /**
143
+ * Initialize a single bot client from credentials
144
+ * Used for dynamic bot creation from AI Hub
145
+ */
146
+ async initializeBotClient(email, password, apiKey) {
147
+ const appConfig = (0, config_1.createApplicationConfig)();
148
+ // Check if bot with this email already exists
149
+ const existingBot = Array.from(this.botClients.values())
150
+ .find(bc => bc.config.email === email);
151
+ if (existingBot) {
152
+ logger.info('Bot client already exists', { email: (0, config_1.maskEmail)(email) });
153
+ return existingBot.userId;
154
+ }
155
+ const config = {
156
+ email,
157
+ password,
158
+ apiBaseUrl: appConfig.botApiBaseUrl,
159
+ mcpServerApiKey: apiKey,
160
+ };
161
+ try {
162
+ const client = await (0, hailer_clients_1.createHailerClientByApiKey)(apiKey);
163
+ const userId = await (0, hailer_clients_1.getCurrentUserId)(client);
164
+ let workspaceCache;
165
+ let workspaceId;
166
+ try {
167
+ const init = await client.socket.request('v2.core.init', [['users', 'network', 'networks', 'teams']]);
168
+ workspaceCache = (0, workspace_cache_1.createWorkspaceCache)(init, appConfig.mcpConfig);
169
+ workspaceId = init?.network?._id;
170
+ }
171
+ catch (initError) {
172
+ logger.warn('Could not load workspace cache', { email: (0, config_1.maskEmail)(email), error: String(initError) });
173
+ }
174
+ const signalHandler = signal_handler_1.SignalHandler.getOrCreate(client, workspaceCache);
175
+ // Initialize workspace schema for this bot's workspace (discover Agent Directory)
176
+ if (workspaceId) {
177
+ try {
178
+ const hailerApiClient = { getClient: () => client, fetchInit: (modules) => client.socket.request('v2.core.init', [modules]), listWorkflows: async () => {
179
+ const init = await client.socket.request('v2.core.init', [['processes']]);
180
+ return Object.values(init?.processes || {});
181
+ } };
182
+ await (0, bot_config_1.initWorkspaceSchema)(hailerApiClient, workspaceId);
183
+ logger.info('Workspace schema initialized', { email: (0, config_1.maskEmail)(email), workspaceId });
184
+ }
185
+ catch (schemaError) {
186
+ logger.warn('Could not initialize workspace schema', { email: (0, config_1.maskEmail)(email), error: String(schemaError) });
187
+ }
188
+ }
189
+ let firstName = 'Bot';
190
+ let lastName = '';
191
+ if (workspaceCache) {
192
+ const userInfo = workspaceCache.usersById[userId];
193
+ if (userInfo) {
194
+ firstName = userInfo.firstname || 'Bot';
195
+ lastName = userInfo.lastname || '';
196
+ }
197
+ }
198
+ const botClient = {
199
+ userId,
200
+ firstName,
201
+ lastName,
202
+ config,
203
+ client,
204
+ signalHandler,
205
+ workspaceCache,
206
+ };
207
+ this.botClients.set(userId, botClient);
208
+ logger.info('Bot client initialized', { email: (0, config_1.maskEmail)(email), userId });
209
+ return userId;
210
+ }
211
+ catch (error) {
212
+ logger.error('Failed to initialize bot client', error, { email: (0, config_1.maskEmail)(email) });
213
+ throw error;
214
+ }
215
+ }
216
+ /**
217
+ * Remove and disconnect a bot client
218
+ */
219
+ async removeBotClient(userId) {
220
+ const botClient = this.botClients.get(userId);
221
+ if (!botClient) {
222
+ logger.warn('Bot client not found for removal', { userId });
223
+ return;
224
+ }
225
+ (0, hailer_clients_1.disconnectHailerClientByApiKey)(botClient.config.mcpServerApiKey);
226
+ this.botClients.delete(userId);
227
+ logger.info('Bot client removed', { userId });
228
+ }
229
+ /**
230
+ * Get bot client by bot ID (hal, giuseppe, hailerExpert, vastuullisuus)
231
+ */
232
+ getBotClientByBotId(botId) {
233
+ // Match by email containing the bot ID
234
+ return Array.from(this.botClients.values())
235
+ .find(bc => bc.config.email.toLowerCase().includes(botId.toLowerCase()));
236
+ }
237
+ async shutdown() {
238
+ logger.info('Shutting down all bot clients', { count: this.botClients.size });
239
+ for (const [userId, botClient] of this.botClients) {
240
+ try {
241
+ // Properly disconnect from shared connection pool
242
+ (0, hailer_clients_1.disconnectHailerClientByApiKey)(botClient.config.mcpServerApiKey);
243
+ logger.info('Bot client shut down', { userId, apiKey: (0, config_1.maskSensitiveData)(botClient.config.mcpServerApiKey) });
244
+ }
245
+ catch (error) {
246
+ logger.error('Error shutting down bot client', error, { userId });
247
+ }
248
+ }
249
+ this.botClients.clear();
250
+ logger.info('All bot clients shut down');
251
+ }
252
+ }
253
+ exports.MultiBotManager = MultiBotManager;
254
+ //# sourceMappingURL=bot-manager.js.map