@hailer/mcp 1.1.14 → 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 (713) hide show
  1. package/.claude/CLAUDE.md +370 -0
  2. package/.claude/agents/agent-ada-skill-builder.md +94 -0
  3. package/.claude/agents/agent-alejandro-function-fields.md +342 -0
  4. package/.claude/agents/agent-bjorn-config-audit.md +103 -0
  5. package/.claude/agents/agent-builder-agent-creator.md +130 -0
  6. package/.claude/agents/agent-code-simplifier.md +53 -0
  7. package/.claude/agents/agent-dmitri-activity-crud.md +159 -0
  8. package/.claude/agents/agent-giuseppe-app-builder.md +208 -0
  9. package/.claude/agents/agent-gunther-mcp-tools.md +39 -0
  10. package/.claude/agents/agent-helga-workflow-config.md +204 -0
  11. package/.claude/agents/agent-igor-activity-mover-automation.md +125 -0
  12. package/.claude/agents/agent-ingrid-doc-templates.md +261 -0
  13. package/.claude/agents/agent-ivan-monolith.md +154 -0
  14. package/.claude/agents/agent-kenji-data-reader.md +86 -0
  15. package/.claude/agents/agent-lars-code-inspector.md +102 -0
  16. package/.claude/agents/agent-marco-mockup-builder.md +110 -0
  17. package/.claude/agents/agent-marcus-api-documenter.md +323 -0
  18. package/.claude/agents/agent-marketplace-publisher.md +280 -0
  19. package/.claude/agents/agent-marketplace-reviewer.md +309 -0
  20. package/.claude/agents/agent-permissions-handler.md +208 -0
  21. package/.claude/agents/agent-simple-writer.md +48 -0
  22. package/.claude/agents/agent-svetlana-code-review.md +171 -0
  23. package/.claude/agents/agent-tanya-test-runner.md +333 -0
  24. package/.claude/agents/agent-ui-designer.md +100 -0
  25. package/.claude/agents/agent-viktor-sql-insights.md +212 -0
  26. package/.claude/agents/agent-web-search.md +55 -0
  27. package/.claude/agents/agent-yevgeni-discussions.md +45 -0
  28. package/.claude/agents/agent-zara-zapier.md +159 -0
  29. package/.claude/agents/ragnar.md +68 -0
  30. package/.claude/commands/app-squad.md +135 -0
  31. package/.claude/commands/audit-squad.md +158 -0
  32. package/.claude/commands/autoplan.md +563 -0
  33. package/.claude/commands/cleanup-squad.md +98 -0
  34. package/.claude/commands/config-squad.md +106 -0
  35. package/.claude/commands/crud-squad.md +87 -0
  36. package/.claude/commands/data-squad.md +97 -0
  37. package/.claude/commands/debug-squad.md +303 -0
  38. package/.claude/commands/doc-squad.md +65 -0
  39. package/.claude/commands/handoff.md +137 -0
  40. package/.claude/commands/health.md +49 -0
  41. package/.claude/commands/help.md +29 -0
  42. package/.claude/commands/help:agents.md +151 -0
  43. package/.claude/commands/help:commands.md +78 -0
  44. package/.claude/commands/help:faq.md +79 -0
  45. package/.claude/commands/help:plugins.md +50 -0
  46. package/.claude/commands/help:skills.md +93 -0
  47. package/.claude/commands/help:tools.md +75 -0
  48. package/.claude/commands/hotfix-squad.md +112 -0
  49. package/.claude/commands/integration-squad.md +82 -0
  50. package/.claude/commands/janitor-squad.md +167 -0
  51. package/.claude/commands/learn-auto.md +120 -0
  52. package/.claude/commands/learn.md +120 -0
  53. package/.claude/commands/mcp-list.md +27 -0
  54. package/.claude/commands/onboard-squad.md +140 -0
  55. package/.claude/commands/plan-workspace.md +732 -0
  56. package/.claude/commands/prd.md +130 -0
  57. package/.claude/commands/project-status.md +82 -0
  58. package/.claude/commands/publish.md +138 -0
  59. package/.claude/commands/recap.md +69 -0
  60. package/.claude/commands/restore.md +64 -0
  61. package/.claude/commands/review-squad.md +152 -0
  62. package/.claude/commands/save.md +24 -0
  63. package/.claude/commands/stats.md +19 -0
  64. package/.claude/commands/swarm.md +210 -0
  65. package/.claude/commands/tool-builder.md +39 -0
  66. package/.claude/commands/ws-pull.md +44 -0
  67. package/.claude/skills/SDK-activity-patterns/SKILL.md +428 -0
  68. package/.claude/skills/SDK-document-templates/SKILL.md +1033 -0
  69. package/.claude/skills/SDK-function-fields/SKILL.md +542 -0
  70. package/.claude/skills/SDK-generate-skill/SKILL.md +92 -0
  71. package/.claude/skills/SDK-init-skill/SKILL.md +127 -0
  72. package/.claude/skills/SDK-insight-queries/SKILL.md +787 -0
  73. package/.claude/skills/SDK-ws-config-skill/SKILL.md +1139 -0
  74. package/.claude/skills/agent-structure/SKILL.md +98 -0
  75. package/.claude/skills/api-documentation-patterns/SKILL.md +474 -0
  76. package/.claude/skills/chrome-mcp-reference/SKILL.md +370 -0
  77. package/.claude/skills/delegation-routing/SKILL.md +202 -0
  78. package/.claude/skills/frontend-design/SKILL.md +254 -0
  79. package/.claude/skills/hailer-activity-mover/SKILL.md +213 -0
  80. package/.claude/skills/hailer-api-client/SKILL.md +518 -0
  81. package/.claude/skills/hailer-app-builder/SKILL.md +1440 -0
  82. package/.claude/skills/hailer-apps-pictures/SKILL.md +269 -0
  83. package/.claude/skills/hailer-design-system/SKILL.md +231 -0
  84. package/.claude/skills/hailer-monolith-automations/SKILL.md +686 -0
  85. package/.claude/skills/hailer-permissions-system/SKILL.md +121 -0
  86. package/.claude/skills/hailer-project-protocol/SKILL.md +488 -0
  87. package/.claude/skills/hailer-rest-api/SKILL.md +61 -0
  88. package/.claude/skills/hailer-rest-api/hailer-activities.md +184 -0
  89. package/.claude/skills/hailer-rest-api/hailer-admin.md +473 -0
  90. package/.claude/skills/hailer-rest-api/hailer-calendar.md +256 -0
  91. package/.claude/skills/hailer-rest-api/hailer-feed.md +249 -0
  92. package/.claude/skills/hailer-rest-api/hailer-insights.md +195 -0
  93. package/.claude/skills/hailer-rest-api/hailer-messaging.md +276 -0
  94. package/.claude/skills/hailer-rest-api/hailer-workflows.md +283 -0
  95. package/.claude/skills/insight-join-patterns/SKILL.md +174 -0
  96. package/.claude/skills/integration-patterns/SKILL.md +421 -0
  97. package/.claude/skills/json-only-output/SKILL.md +72 -0
  98. package/.claude/skills/lsp-setup/SKILL.md +160 -0
  99. package/.claude/skills/mcp-direct-tools/SKILL.md +153 -0
  100. package/.claude/skills/optional-parameters/SKILL.md +72 -0
  101. package/.claude/skills/publish-hailer-app/SKILL.md +221 -0
  102. package/.claude/skills/testing-patterns/SKILL.md +630 -0
  103. package/.claude/skills/tool-builder/SKILL.md +250 -0
  104. package/.claude/skills/tool-parameter-usage/SKILL.md +126 -0
  105. package/.claude/skills/tool-response-verification/SKILL.md +92 -0
  106. package/.claude/skills/zapier-hailer-patterns/SKILL.md +581 -0
  107. package/.opencode/agent/agent-ada-skill-builder.md +35 -0
  108. package/.opencode/agent/agent-alejandro-function-fields.md +39 -0
  109. package/.opencode/agent/agent-bjorn-config-audit.md +36 -0
  110. package/.opencode/agent/agent-builder-agent-creator.md +39 -0
  111. package/.opencode/agent/agent-code-simplifier.md +31 -0
  112. package/.opencode/agent/agent-dmitri-activity-crud.md +40 -0
  113. package/.opencode/agent/agent-giuseppe-app-builder.md +37 -0
  114. package/.opencode/agent/agent-gunther-mcp-tools.md +39 -0
  115. package/.opencode/agent/agent-helga-workflow-config.md +204 -0
  116. package/.opencode/agent/agent-igor-activity-mover-automation.md +46 -0
  117. package/.opencode/agent/agent-ingrid-doc-templates.md +39 -0
  118. package/.opencode/agent/agent-ivan-monolith.md +46 -0
  119. package/.opencode/agent/agent-kenji-data-reader.md +53 -0
  120. package/.opencode/agent/agent-lars-code-inspector.md +28 -0
  121. package/.opencode/agent/agent-marco-mockup-builder.md +42 -0
  122. package/.opencode/agent/agent-marcus-api-documenter.md +53 -0
  123. package/.opencode/agent/agent-marketplace-publisher.md +44 -0
  124. package/.opencode/agent/agent-marketplace-reviewer.md +42 -0
  125. package/.opencode/agent/agent-permissions-handler.md +50 -0
  126. package/.opencode/agent/agent-simple-writer.md +45 -0
  127. package/.opencode/agent/agent-svetlana-code-review.md +39 -0
  128. package/.opencode/agent/agent-tanya-test-runner.md +57 -0
  129. package/.opencode/agent/agent-ui-designer.md +56 -0
  130. package/.opencode/agent/agent-viktor-sql-insights.md +34 -0
  131. package/.opencode/agent/agent-web-search.md +42 -0
  132. package/.opencode/agent/agent-yevgeni-discussions.md +37 -0
  133. package/.opencode/agent/agent-zara-zapier.md +53 -0
  134. package/.opencode/commands/app-squad.md +135 -0
  135. package/.opencode/commands/audit-squad.md +158 -0
  136. package/.opencode/commands/autoplan.md +563 -0
  137. package/.opencode/commands/cleanup-squad.md +98 -0
  138. package/.opencode/commands/config-squad.md +106 -0
  139. package/.opencode/commands/crud-squad.md +87 -0
  140. package/.opencode/commands/data-squad.md +97 -0
  141. package/.opencode/commands/debug-squad.md +303 -0
  142. package/.opencode/commands/doc-squad.md +65 -0
  143. package/.opencode/commands/handoff.md +137 -0
  144. package/.opencode/commands/health.md +49 -0
  145. package/.opencode/commands/help-agents.md +151 -0
  146. package/.opencode/commands/help-commands.md +32 -0
  147. package/.opencode/commands/help-faq.md +29 -0
  148. package/.opencode/commands/help-plugins.md +28 -0
  149. package/.opencode/commands/help-skills.md +7 -0
  150. package/.opencode/commands/help-tools.md +40 -0
  151. package/.opencode/commands/help.md +28 -0
  152. package/.opencode/commands/hotfix-squad.md +112 -0
  153. package/.opencode/commands/integration-squad.md +82 -0
  154. package/.opencode/commands/janitor-squad.md +167 -0
  155. package/.opencode/commands/learn-auto.md +120 -0
  156. package/.opencode/commands/learn.md +120 -0
  157. package/.opencode/commands/mcp-list.md +27 -0
  158. package/.opencode/commands/onboard-squad.md +140 -0
  159. package/.opencode/commands/plan-workspace.md +732 -0
  160. package/.opencode/commands/prd.md +131 -0
  161. package/.opencode/commands/project-status.md +82 -0
  162. package/.opencode/commands/publish.md +138 -0
  163. package/.opencode/commands/recap.md +69 -0
  164. package/.opencode/commands/restore.md +64 -0
  165. package/.opencode/commands/review-squad.md +152 -0
  166. package/.opencode/commands/save.md +24 -0
  167. package/.opencode/commands/stats.md +19 -0
  168. package/.opencode/commands/swarm.md +210 -0
  169. package/.opencode/commands/tool-builder.md +39 -0
  170. package/.opencode/commands/ws-pull.md +44 -0
  171. package/.opencode/opencode.json +21 -0
  172. package/dist/agents/bot-manager.d.ts +48 -0
  173. package/dist/agents/bot-manager.d.ts.map +1 -0
  174. package/dist/agents/bot-manager.js +254 -0
  175. package/dist/agents/bot-manager.js.map +1 -0
  176. package/dist/agents/bug-fixer/ai.d.ts +80 -0
  177. package/dist/agents/bug-fixer/ai.d.ts.map +1 -0
  178. package/dist/agents/bug-fixer/ai.js +466 -0
  179. package/dist/agents/bug-fixer/ai.js.map +1 -0
  180. package/dist/agents/bug-fixer/bot.d.ts +92 -0
  181. package/dist/agents/bug-fixer/bot.d.ts.map +1 -0
  182. package/dist/agents/bug-fixer/bot.js +687 -0
  183. package/dist/agents/bug-fixer/bot.js.map +1 -0
  184. package/dist/agents/bug-fixer/config.d.ts +21 -0
  185. package/dist/agents/bug-fixer/config.d.ts.map +1 -0
  186. package/dist/agents/bug-fixer/config.js +218 -0
  187. package/dist/agents/bug-fixer/config.js.map +1 -0
  188. package/dist/agents/bug-fixer/files.d.ts +67 -0
  189. package/dist/agents/bug-fixer/files.d.ts.map +1 -0
  190. package/dist/agents/bug-fixer/files.js +386 -0
  191. package/dist/agents/bug-fixer/files.js.map +1 -0
  192. package/dist/agents/bug-fixer/git.d.ts +48 -0
  193. package/dist/agents/bug-fixer/git.d.ts.map +1 -0
  194. package/dist/agents/bug-fixer/git.js +298 -0
  195. package/dist/agents/bug-fixer/git.js.map +1 -0
  196. package/dist/agents/bug-fixer/index.d.ts +103 -0
  197. package/dist/agents/bug-fixer/index.d.ts.map +1 -0
  198. package/dist/agents/bug-fixer/index.js +262 -0
  199. package/dist/agents/bug-fixer/index.js.map +1 -0
  200. package/dist/agents/bug-fixer/lsp.d.ts +113 -0
  201. package/dist/agents/bug-fixer/lsp.d.ts.map +1 -0
  202. package/dist/agents/bug-fixer/lsp.js +485 -0
  203. package/dist/agents/bug-fixer/lsp.js.map +1 -0
  204. package/dist/agents/bug-fixer/monitor.d.ts +123 -0
  205. package/dist/agents/bug-fixer/monitor.d.ts.map +1 -0
  206. package/dist/agents/bug-fixer/monitor.js +629 -0
  207. package/dist/agents/bug-fixer/monitor.js.map +1 -0
  208. package/dist/agents/bug-fixer/prompt.d.ts +5 -0
  209. package/dist/agents/bug-fixer/prompt.d.ts.map +1 -0
  210. package/dist/agents/bug-fixer/prompt.js +94 -0
  211. package/dist/agents/bug-fixer/prompt.js.map +1 -0
  212. package/dist/agents/bug-fixer/registries/pending-classification.d.ts +28 -0
  213. package/dist/agents/bug-fixer/registries/pending-classification.d.ts.map +1 -0
  214. package/dist/agents/bug-fixer/registries/pending-classification.js +50 -0
  215. package/dist/agents/bug-fixer/registries/pending-classification.js.map +1 -0
  216. package/dist/agents/bug-fixer/registries/pending-fix.d.ts +33 -0
  217. package/dist/agents/bug-fixer/registries/pending-fix.d.ts.map +1 -0
  218. package/dist/agents/bug-fixer/registries/pending-fix.js +64 -0
  219. package/dist/agents/bug-fixer/registries/pending-fix.js.map +1 -0
  220. package/dist/agents/bug-fixer/registries/pending.d.ts +27 -0
  221. package/dist/agents/bug-fixer/registries/pending.d.ts.map +1 -0
  222. package/dist/agents/bug-fixer/registries/pending.js +49 -0
  223. package/dist/agents/bug-fixer/registries/pending.js.map +1 -0
  224. package/dist/agents/bug-fixer/specialist-daemon.d.ts +88 -0
  225. package/dist/agents/bug-fixer/specialist-daemon.d.ts.map +1 -0
  226. package/dist/agents/bug-fixer/specialist-daemon.js +431 -0
  227. package/dist/agents/bug-fixer/specialist-daemon.js.map +1 -0
  228. package/dist/agents/bug-fixer/specialist.d.ts +47 -0
  229. package/dist/agents/bug-fixer/specialist.d.ts.map +1 -0
  230. package/dist/agents/bug-fixer/specialist.js +327 -0
  231. package/dist/agents/bug-fixer/specialist.js.map +1 -0
  232. package/dist/agents/bug-fixer/types.d.ts +123 -0
  233. package/dist/agents/bug-fixer/types.d.ts.map +1 -0
  234. package/dist/agents/bug-fixer/types.js +9 -0
  235. package/dist/agents/bug-fixer/types.js.map +1 -0
  236. package/dist/agents/factory.d.ts +172 -0
  237. package/dist/agents/factory.d.ts.map +1 -0
  238. package/dist/agents/factory.js +706 -0
  239. package/dist/agents/factory.js.map +1 -0
  240. package/dist/agents/hailer-expert/index.d.ts +8 -0
  241. package/dist/agents/hailer-expert/index.d.ts.map +1 -0
  242. package/dist/agents/hailer-expert/index.js +14 -0
  243. package/dist/agents/hailer-expert/index.js.map +1 -0
  244. package/dist/agents/hal/daemon.d.ts +174 -0
  245. package/dist/agents/hal/daemon.d.ts.map +1 -0
  246. package/dist/agents/hal/daemon.js +1385 -0
  247. package/dist/agents/hal/daemon.js.map +1 -0
  248. package/dist/agents/hal/definitions.d.ts +42 -0
  249. package/dist/agents/hal/definitions.d.ts.map +1 -0
  250. package/dist/agents/hal/definitions.js +300 -0
  251. package/dist/agents/hal/definitions.js.map +1 -0
  252. package/dist/agents/hal/index.d.ts +3 -0
  253. package/dist/agents/hal/index.d.ts.map +1 -0
  254. package/dist/agents/hal/index.js +8 -0
  255. package/dist/agents/hal/index.js.map +1 -0
  256. package/dist/agents/index.d.ts +18 -0
  257. package/dist/agents/index.d.ts.map +1 -0
  258. package/dist/agents/index.js +48 -0
  259. package/dist/agents/index.js.map +1 -0
  260. package/dist/agents/shared/base.d.ts +253 -0
  261. package/dist/agents/shared/base.d.ts.map +1 -0
  262. package/dist/agents/shared/base.js +1122 -0
  263. package/dist/agents/shared/base.js.map +1 -0
  264. package/dist/agents/shared/schemas/action-schema.d.ts +62 -0
  265. package/dist/agents/shared/schemas/action-schema.d.ts.map +1 -0
  266. package/dist/agents/shared/schemas/action-schema.js +483 -0
  267. package/dist/agents/shared/schemas/action-schema.js.map +1 -0
  268. package/dist/agents/shared/services/agent-registry.d.ts +108 -0
  269. package/dist/agents/shared/services/agent-registry.d.ts.map +1 -0
  270. package/dist/agents/shared/services/agent-registry.js +469 -0
  271. package/dist/agents/shared/services/agent-registry.js.map +1 -0
  272. package/dist/agents/shared/services/conversation-manager.d.ts +57 -0
  273. package/dist/agents/shared/services/conversation-manager.d.ts.map +1 -0
  274. package/dist/agents/shared/services/conversation-manager.js +168 -0
  275. package/dist/agents/shared/services/conversation-manager.js.map +1 -0
  276. package/dist/agents/shared/services/mcp-client.d.ts +56 -0
  277. package/dist/agents/shared/services/mcp-client.d.ts.map +1 -0
  278. package/dist/agents/shared/services/mcp-client.js +124 -0
  279. package/dist/agents/shared/services/mcp-client.js.map +1 -0
  280. package/dist/agents/shared/services/message-classifier.d.ts +37 -0
  281. package/dist/agents/shared/services/message-classifier.d.ts.map +1 -0
  282. package/dist/agents/shared/services/message-classifier.js +203 -0
  283. package/dist/agents/shared/services/message-classifier.js.map +1 -0
  284. package/dist/agents/shared/services/message-formatter.d.ts +89 -0
  285. package/dist/agents/shared/services/message-formatter.d.ts.map +1 -0
  286. package/dist/agents/shared/services/message-formatter.js +390 -0
  287. package/dist/agents/shared/services/message-formatter.js.map +1 -0
  288. package/dist/agents/shared/services/session-logger.d.ts +162 -0
  289. package/dist/agents/shared/services/session-logger.d.ts.map +1 -0
  290. package/dist/agents/shared/services/session-logger.js +724 -0
  291. package/dist/agents/shared/services/session-logger.js.map +1 -0
  292. package/dist/agents/shared/services/structured-output-executor.d.ts +88 -0
  293. package/dist/agents/shared/services/structured-output-executor.d.ts.map +1 -0
  294. package/dist/agents/shared/services/structured-output-executor.js +296 -0
  295. package/dist/agents/shared/services/structured-output-executor.js.map +1 -0
  296. package/dist/agents/shared/services/token-billing.d.ts +72 -0
  297. package/dist/agents/shared/services/token-billing.d.ts.map +1 -0
  298. package/dist/agents/shared/services/token-billing.js +198 -0
  299. package/dist/agents/shared/services/token-billing.js.map +1 -0
  300. package/dist/agents/shared/services/tool-executor.d.ts +43 -0
  301. package/dist/agents/shared/services/tool-executor.d.ts.map +1 -0
  302. package/dist/agents/shared/services/tool-executor.js +175 -0
  303. package/dist/agents/shared/services/tool-executor.js.map +1 -0
  304. package/dist/agents/shared/services/typing-indicator.d.ts +24 -0
  305. package/dist/agents/shared/services/typing-indicator.d.ts.map +1 -0
  306. package/dist/agents/shared/services/typing-indicator.js +54 -0
  307. package/dist/agents/shared/services/typing-indicator.js.map +1 -0
  308. package/dist/agents/shared/services/workspace-schema-cache.d.ts +122 -0
  309. package/dist/agents/shared/services/workspace-schema-cache.d.ts.map +1 -0
  310. package/dist/agents/shared/services/workspace-schema-cache.js +507 -0
  311. package/dist/agents/shared/services/workspace-schema-cache.js.map +1 -0
  312. package/dist/agents/shared/specialist.d.ts +91 -0
  313. package/dist/agents/shared/specialist.d.ts.map +1 -0
  314. package/dist/agents/shared/specialist.js +399 -0
  315. package/dist/agents/shared/specialist.js.map +1 -0
  316. package/dist/agents/shared/tool-schema-loader.d.ts +65 -0
  317. package/dist/agents/shared/tool-schema-loader.d.ts.map +1 -0
  318. package/dist/agents/shared/tool-schema-loader.js +238 -0
  319. package/dist/agents/shared/tool-schema-loader.js.map +1 -0
  320. package/dist/agents/shared/types.d.ts +190 -0
  321. package/dist/agents/shared/types.d.ts.map +1 -0
  322. package/dist/agents/shared/types.js +13 -0
  323. package/dist/agents/shared/types.js.map +1 -0
  324. package/dist/app.d.ts.map +1 -0
  325. package/dist/app.js.map +1 -0
  326. package/dist/bot/bot-config.d.ts.map +1 -0
  327. package/dist/bot/bot-config.js.map +1 -0
  328. package/dist/bot/bot-manager.d.ts.map +1 -0
  329. package/dist/bot/bot-manager.js.map +1 -0
  330. package/dist/bot/bot.d.ts.map +1 -0
  331. package/dist/bot/bot.js.map +1 -0
  332. package/dist/bot/operation-logger.d.ts.map +1 -0
  333. package/dist/bot/operation-logger.js.map +1 -0
  334. package/dist/bot/services/__tests__/permission-guard.test.d.ts +2 -0
  335. package/dist/bot/services/__tests__/permission-guard.test.d.ts.map +1 -0
  336. package/dist/bot/services/__tests__/permission-guard.test.js +357 -0
  337. package/dist/bot/services/__tests__/permission-guard.test.js.map +1 -0
  338. package/dist/bot/services/conversation-manager.d.ts.map +1 -0
  339. package/dist/bot/services/conversation-manager.js.map +1 -0
  340. package/dist/bot/services/index.d.ts.map +1 -0
  341. package/dist/bot/services/index.js.map +1 -0
  342. package/dist/bot/services/message-classifier.d.ts.map +1 -0
  343. package/dist/bot/services/message-classifier.js.map +1 -0
  344. package/dist/bot/services/message-formatter.d.ts.map +1 -0
  345. package/dist/bot/services/message-formatter.js.map +1 -0
  346. package/dist/bot/services/permission-guard.d.ts.map +1 -0
  347. package/dist/bot/services/permission-guard.js.map +1 -0
  348. package/dist/bot/services/session-logger.d.ts.map +1 -0
  349. package/dist/bot/services/session-logger.js.map +1 -0
  350. package/dist/bot/services/token-billing.d.ts.map +1 -0
  351. package/dist/bot/services/token-billing.js.map +1 -0
  352. package/dist/bot/services/types.d.ts.map +1 -0
  353. package/dist/bot/services/types.js.map +1 -0
  354. package/dist/bot/services/typing-indicator.d.ts.map +1 -0
  355. package/dist/bot/services/typing-indicator.js.map +1 -0
  356. package/dist/bot/services/workspace-schema-cache.d.ts.map +1 -0
  357. package/dist/bot/services/workspace-schema-cache.js.map +1 -0
  358. package/dist/bot/tool-executor.d.ts.map +1 -0
  359. package/dist/bot/tool-executor.js.map +1 -0
  360. package/dist/bot/workspace-overview.d.ts.map +1 -0
  361. package/dist/bot/workspace-overview.js.map +1 -0
  362. package/dist/bot-config/constants.d.ts +42 -0
  363. package/dist/bot-config/constants.d.ts.map +1 -0
  364. package/dist/bot-config/constants.js +118 -0
  365. package/dist/bot-config/constants.js.map +1 -0
  366. package/dist/bot-config/context.d.ts +157 -0
  367. package/dist/bot-config/context.d.ts.map +1 -0
  368. package/dist/bot-config/context.js +475 -0
  369. package/dist/bot-config/context.js.map +1 -0
  370. package/dist/bot-config/index.d.ts +21 -0
  371. package/dist/bot-config/index.d.ts.map +1 -0
  372. package/dist/bot-config/index.js +104 -0
  373. package/dist/bot-config/index.js.map +1 -0
  374. package/dist/bot-config/loader.d.ts +28 -0
  375. package/dist/bot-config/loader.d.ts.map +1 -0
  376. package/dist/bot-config/loader.js +194 -0
  377. package/dist/bot-config/loader.js.map +1 -0
  378. package/dist/bot-config/persistence.d.ts +68 -0
  379. package/dist/bot-config/persistence.d.ts.map +1 -0
  380. package/dist/bot-config/persistence.js +261 -0
  381. package/dist/bot-config/persistence.js.map +1 -0
  382. package/dist/bot-config/state.d.ts +56 -0
  383. package/dist/bot-config/state.d.ts.map +1 -0
  384. package/dist/bot-config/state.js +197 -0
  385. package/dist/bot-config/state.js.map +1 -0
  386. package/dist/bot-config/tools.d.ts +28 -0
  387. package/dist/bot-config/tools.d.ts.map +1 -0
  388. package/dist/bot-config/tools.js +279 -0
  389. package/dist/bot-config/tools.js.map +1 -0
  390. package/dist/bot-config/types.d.ts +45 -0
  391. package/dist/bot-config/types.d.ts.map +1 -0
  392. package/dist/bot-config/types.js +9 -0
  393. package/dist/bot-config/types.js.map +1 -0
  394. package/dist/bot-config/webhooks.d.ts +27 -0
  395. package/dist/bot-config/webhooks.d.ts.map +1 -0
  396. package/dist/bot-config/webhooks.js +212 -0
  397. package/dist/bot-config/webhooks.js.map +1 -0
  398. package/dist/cli.d.ts.map +1 -0
  399. package/dist/cli.js.map +1 -0
  400. package/dist/client/agents/base.d.ts +207 -0
  401. package/dist/client/agents/base.d.ts.map +1 -0
  402. package/dist/client/agents/base.js +744 -0
  403. package/dist/client/agents/base.js.map +1 -0
  404. package/dist/client/agents/definitions.d.ts +53 -0
  405. package/dist/client/agents/definitions.d.ts.map +1 -0
  406. package/dist/client/agents/definitions.js +263 -0
  407. package/dist/client/agents/definitions.js.map +1 -0
  408. package/dist/client/agents/orchestrator.d.ts +141 -0
  409. package/dist/client/agents/orchestrator.d.ts.map +1 -0
  410. package/dist/client/agents/orchestrator.js +1062 -0
  411. package/dist/client/agents/orchestrator.js.map +1 -0
  412. package/dist/client/agents/specialist.d.ts +86 -0
  413. package/dist/client/agents/specialist.d.ts.map +1 -0
  414. package/dist/client/agents/specialist.js +340 -0
  415. package/dist/client/agents/specialist.js.map +1 -0
  416. package/dist/client/bot-entrypoint.d.ts +7 -0
  417. package/dist/client/bot-entrypoint.d.ts.map +1 -0
  418. package/dist/client/bot-entrypoint.js +103 -0
  419. package/dist/client/bot-entrypoint.js.map +1 -0
  420. package/dist/client/bot-manager.d.ts +44 -0
  421. package/dist/client/bot-manager.d.ts.map +1 -0
  422. package/dist/client/bot-manager.js +173 -0
  423. package/dist/client/bot-manager.js.map +1 -0
  424. package/dist/client/bot-runner.d.ts +35 -0
  425. package/dist/client/bot-runner.d.ts.map +1 -0
  426. package/dist/client/bot-runner.js +188 -0
  427. package/dist/client/bot-runner.js.map +1 -0
  428. package/dist/client/chat-agent-daemon.d.ts +464 -0
  429. package/dist/client/chat-agent-daemon.d.ts.map +1 -0
  430. package/dist/client/chat-agent-daemon.js +1774 -0
  431. package/dist/client/chat-agent-daemon.js.map +1 -0
  432. package/dist/client/daemon-factory.d.ts +106 -0
  433. package/dist/client/daemon-factory.d.ts.map +1 -0
  434. package/dist/client/daemon-factory.js +301 -0
  435. package/dist/client/daemon-factory.js.map +1 -0
  436. package/dist/client/factory.d.ts +111 -0
  437. package/dist/client/factory.d.ts.map +1 -0
  438. package/dist/client/factory.js +314 -0
  439. package/dist/client/factory.js.map +1 -0
  440. package/dist/client/index.d.ts +17 -0
  441. package/dist/client/index.d.ts.map +1 -0
  442. package/dist/client/index.js +38 -0
  443. package/dist/client/index.js.map +1 -0
  444. package/dist/client/multi-bot-manager.d.ts +42 -0
  445. package/dist/client/multi-bot-manager.d.ts.map +1 -0
  446. package/dist/client/multi-bot-manager.js +161 -0
  447. package/dist/client/multi-bot-manager.js.map +1 -0
  448. package/dist/client/orchestrator-daemon.d.ts +87 -0
  449. package/dist/client/orchestrator-daemon.d.ts.map +1 -0
  450. package/dist/client/orchestrator-daemon.js +444 -0
  451. package/dist/client/orchestrator-daemon.js.map +1 -0
  452. package/dist/client/server.d.ts +8 -0
  453. package/dist/client/server.d.ts.map +1 -0
  454. package/dist/client/server.js +251 -0
  455. package/dist/client/server.js.map +1 -0
  456. package/dist/client/services/agent-registry.d.ts +108 -0
  457. package/dist/client/services/agent-registry.d.ts.map +1 -0
  458. package/dist/client/services/agent-registry.js +630 -0
  459. package/dist/client/services/agent-registry.js.map +1 -0
  460. package/dist/client/services/conversation-manager.d.ts +50 -0
  461. package/dist/client/services/conversation-manager.d.ts.map +1 -0
  462. package/dist/client/services/conversation-manager.js +136 -0
  463. package/dist/client/services/conversation-manager.js.map +1 -0
  464. package/dist/client/services/mcp-client.d.ts +48 -0
  465. package/dist/client/services/mcp-client.d.ts.map +1 -0
  466. package/dist/client/services/mcp-client.js +105 -0
  467. package/dist/client/services/mcp-client.js.map +1 -0
  468. package/dist/client/services/message-classifier.d.ts +37 -0
  469. package/dist/client/services/message-classifier.d.ts.map +1 -0
  470. package/dist/client/services/message-classifier.js +187 -0
  471. package/dist/client/services/message-classifier.js.map +1 -0
  472. package/dist/client/services/message-formatter.d.ts +84 -0
  473. package/dist/client/services/message-formatter.d.ts.map +1 -0
  474. package/dist/client/services/message-formatter.js +353 -0
  475. package/dist/client/services/message-formatter.js.map +1 -0
  476. package/dist/client/services/session-logger.d.ts +106 -0
  477. package/dist/client/services/session-logger.d.ts.map +1 -0
  478. package/dist/client/services/session-logger.js +446 -0
  479. package/dist/client/services/session-logger.js.map +1 -0
  480. package/dist/client/services/tool-executor.d.ts +41 -0
  481. package/dist/client/services/tool-executor.d.ts.map +1 -0
  482. package/dist/client/services/tool-executor.js +169 -0
  483. package/dist/client/services/tool-executor.js.map +1 -0
  484. package/dist/client/services/workspace-schema-cache.d.ts +149 -0
  485. package/dist/client/services/workspace-schema-cache.d.ts.map +1 -0
  486. package/dist/client/services/workspace-schema-cache.js +732 -0
  487. package/dist/client/services/workspace-schema-cache.js.map +1 -0
  488. package/dist/client/specialist-daemon.d.ts +77 -0
  489. package/dist/client/specialist-daemon.d.ts.map +1 -0
  490. package/dist/client/specialist-daemon.js +197 -0
  491. package/dist/client/specialist-daemon.js.map +1 -0
  492. package/dist/client/specialists.d.ts +53 -0
  493. package/dist/client/specialists.d.ts.map +1 -0
  494. package/dist/client/specialists.js +178 -0
  495. package/dist/client/specialists.js.map +1 -0
  496. package/dist/client/tool-schema-loader.d.ts +62 -0
  497. package/dist/client/tool-schema-loader.d.ts.map +1 -0
  498. package/dist/client/tool-schema-loader.js +232 -0
  499. package/dist/client/tool-schema-loader.js.map +1 -0
  500. package/dist/client/types.d.ts +327 -0
  501. package/dist/client/types.d.ts.map +1 -0
  502. package/dist/client/types.js +121 -0
  503. package/dist/client/types.js.map +1 -0
  504. package/dist/commands/seed-config.d.ts +9 -0
  505. package/dist/commands/seed-config.d.ts.map +1 -0
  506. package/dist/commands/seed-config.js +392 -0
  507. package/dist/commands/seed-config.js.map +1 -0
  508. package/dist/commands/setup.d.ts +11 -0
  509. package/dist/commands/setup.d.ts.map +1 -0
  510. package/dist/commands/setup.js +320 -0
  511. package/dist/commands/setup.js.map +1 -0
  512. package/dist/config.d.ts.map +1 -0
  513. package/dist/config.js.map +1 -0
  514. package/dist/core.d.ts.map +1 -0
  515. package/dist/core.js.map +1 -0
  516. package/dist/lib/discussion-lock.d.ts.map +1 -0
  517. package/dist/lib/discussion-lock.js.map +1 -0
  518. package/dist/lib/logger.d.ts.map +1 -0
  519. package/dist/lib/logger.js.map +1 -0
  520. package/dist/lib/request-logger.d.ts.map +1 -0
  521. package/dist/lib/request-logger.js.map +1 -0
  522. package/dist/mcp/UserContextCache.d.ts.map +1 -0
  523. package/dist/mcp/UserContextCache.js.map +1 -0
  524. package/dist/mcp/auth.d.ts.map +1 -0
  525. package/dist/mcp/auth.js.map +1 -0
  526. package/dist/mcp/hailer-clients.d.ts.map +1 -0
  527. package/dist/mcp/hailer-clients.js.map +1 -0
  528. package/dist/mcp/session-store.d.ts.map +1 -0
  529. package/dist/mcp/session-store.js.map +1 -0
  530. package/dist/mcp/signal-handler.d.ts.map +1 -0
  531. package/dist/mcp/signal-handler.js.map +1 -0
  532. package/dist/mcp/tool-registry.d.ts.map +1 -0
  533. package/dist/mcp/tool-registry.js.map +1 -0
  534. package/dist/mcp/tools/__tests__/discussion-forward.test.d.ts +2 -0
  535. package/dist/mcp/tools/__tests__/discussion-forward.test.d.ts.map +1 -0
  536. package/dist/mcp/tools/__tests__/discussion-forward.test.js +218 -0
  537. package/dist/mcp/tools/__tests__/discussion-forward.test.js.map +1 -0
  538. package/dist/mcp/tools/activity.d.ts.map +1 -0
  539. package/dist/mcp/tools/activity.js.map +1 -0
  540. package/dist/mcp/tools/app-core.d.ts.map +1 -0
  541. package/dist/mcp/tools/app-core.js.map +1 -0
  542. package/dist/mcp/tools/app-marketplace.d.ts.map +1 -0
  543. package/dist/mcp/tools/app-marketplace.js.map +1 -0
  544. package/dist/mcp/tools/app-member.d.ts.map +1 -0
  545. package/dist/mcp/tools/app-member.js.map +1 -0
  546. package/dist/mcp/tools/app-scaffold.d.ts.map +1 -0
  547. package/dist/mcp/tools/app-scaffold.js.map +1 -0
  548. package/dist/mcp/tools/app.d.ts.map +1 -0
  549. package/dist/mcp/tools/app.js.map +1 -0
  550. package/dist/mcp/tools/bot-config/constants.d.ts.map +1 -0
  551. package/dist/mcp/tools/bot-config/constants.js.map +1 -0
  552. package/dist/mcp/tools/bot-config/core.d.ts.map +1 -0
  553. package/dist/mcp/tools/bot-config/core.js.map +1 -0
  554. package/dist/mcp/tools/bot-config/index.d.ts.map +1 -0
  555. package/dist/mcp/tools/bot-config/index.js.map +1 -0
  556. package/dist/mcp/tools/bot-config/tools.d.ts.map +1 -0
  557. package/dist/mcp/tools/bot-config/tools.js.map +1 -0
  558. package/dist/mcp/tools/bot-config/types.d.ts.map +1 -0
  559. package/dist/mcp/tools/bot-config/types.js.map +1 -0
  560. package/dist/mcp/tools/bug-fixer-tools.d.ts.map +1 -0
  561. package/dist/mcp/tools/bug-fixer-tools.js.map +1 -0
  562. package/dist/mcp/tools/company.d.ts.map +1 -0
  563. package/dist/mcp/tools/company.js.map +1 -0
  564. package/dist/mcp/tools/discussion.d.ts.map +1 -0
  565. package/dist/mcp/tools/discussion.js.map +1 -0
  566. package/dist/mcp/tools/document.d.ts.map +1 -0
  567. package/dist/mcp/tools/document.js.map +1 -0
  568. package/dist/mcp/tools/file.d.ts.map +1 -0
  569. package/dist/mcp/tools/file.js.map +1 -0
  570. package/dist/mcp/tools/insight.d.ts.map +1 -0
  571. package/dist/mcp/tools/insight.js.map +1 -0
  572. package/dist/mcp/tools/investigate.d.ts.map +1 -0
  573. package/dist/mcp/tools/investigate.js.map +1 -0
  574. package/dist/mcp/tools/user.d.ts.map +1 -0
  575. package/dist/mcp/tools/user.js.map +1 -0
  576. package/dist/mcp/tools/workflow-permissions.d.ts.map +1 -0
  577. package/dist/mcp/tools/workflow-permissions.js.map +1 -0
  578. package/dist/mcp/tools/workflow.d.ts.map +1 -0
  579. package/dist/mcp/tools/workflow.js.map +1 -0
  580. package/dist/mcp/utils/api-errors.d.ts.map +1 -0
  581. package/dist/mcp/utils/api-errors.js.map +1 -0
  582. package/dist/mcp/utils/data-transformers.d.ts.map +1 -0
  583. package/dist/mcp/utils/data-transformers.js.map +1 -0
  584. package/dist/mcp/utils/file-upload.d.ts.map +1 -0
  585. package/dist/mcp/utils/file-upload.js.map +1 -0
  586. package/dist/mcp/utils/hailer-api-client.d.ts.map +1 -0
  587. package/dist/mcp/utils/hailer-api-client.js.map +1 -0
  588. package/dist/mcp/utils/index.d.ts.map +1 -0
  589. package/dist/mcp/utils/index.js.map +1 -0
  590. package/dist/mcp/utils/logger.d.ts.map +1 -0
  591. package/dist/mcp/utils/logger.js.map +1 -0
  592. package/dist/mcp/utils/pagination.d.ts.map +1 -0
  593. package/dist/mcp/utils/pagination.js.map +1 -0
  594. package/dist/mcp/utils/response-builder.d.ts.map +1 -0
  595. package/dist/mcp/utils/response-builder.js.map +1 -0
  596. package/dist/mcp/utils/role-utils.d.ts.map +1 -0
  597. package/dist/mcp/utils/role-utils.js.map +1 -0
  598. package/dist/mcp/utils/tool-helpers.d.ts.map +1 -0
  599. package/dist/mcp/utils/tool-helpers.js.map +1 -0
  600. package/dist/mcp/utils/types.d.ts.map +1 -0
  601. package/dist/mcp/utils/types.js.map +1 -0
  602. package/dist/mcp/webhook-handler.d.ts.map +1 -0
  603. package/dist/mcp/webhook-handler.js.map +1 -0
  604. package/dist/mcp/workspace-cache.d.ts.map +1 -0
  605. package/dist/mcp/workspace-cache.js.map +1 -0
  606. package/dist/mcp-server.d.ts.map +1 -0
  607. package/dist/mcp-server.js.map +1 -0
  608. package/dist/modules/bug-reports/bug-config.d.ts +25 -0
  609. package/dist/modules/bug-reports/bug-config.d.ts.map +1 -0
  610. package/dist/modules/bug-reports/bug-config.js +187 -0
  611. package/dist/modules/bug-reports/bug-config.js.map +1 -0
  612. package/dist/modules/bug-reports/bug-monitor.d.ts +108 -0
  613. package/dist/modules/bug-reports/bug-monitor.d.ts.map +1 -0
  614. package/dist/modules/bug-reports/bug-monitor.js +510 -0
  615. package/dist/modules/bug-reports/bug-monitor.js.map +1 -0
  616. package/dist/modules/bug-reports/giuseppe-agent.d.ts +58 -0
  617. package/dist/modules/bug-reports/giuseppe-agent.d.ts.map +1 -0
  618. package/dist/modules/bug-reports/giuseppe-agent.js +467 -0
  619. package/dist/modules/bug-reports/giuseppe-agent.js.map +1 -0
  620. package/dist/modules/bug-reports/giuseppe-ai.d.ts +83 -0
  621. package/dist/modules/bug-reports/giuseppe-ai.d.ts.map +1 -0
  622. package/dist/modules/bug-reports/giuseppe-ai.js +466 -0
  623. package/dist/modules/bug-reports/giuseppe-ai.js.map +1 -0
  624. package/dist/modules/bug-reports/giuseppe-bot.d.ts +110 -0
  625. package/dist/modules/bug-reports/giuseppe-bot.d.ts.map +1 -0
  626. package/dist/modules/bug-reports/giuseppe-bot.js +804 -0
  627. package/dist/modules/bug-reports/giuseppe-bot.js.map +1 -0
  628. package/dist/modules/bug-reports/giuseppe-daemon.d.ts +80 -0
  629. package/dist/modules/bug-reports/giuseppe-daemon.d.ts.map +1 -0
  630. package/dist/modules/bug-reports/giuseppe-daemon.js +617 -0
  631. package/dist/modules/bug-reports/giuseppe-daemon.js.map +1 -0
  632. package/dist/modules/bug-reports/giuseppe-files.d.ts +64 -0
  633. package/dist/modules/bug-reports/giuseppe-files.d.ts.map +1 -0
  634. package/dist/modules/bug-reports/giuseppe-files.js +375 -0
  635. package/dist/modules/bug-reports/giuseppe-files.js.map +1 -0
  636. package/dist/modules/bug-reports/giuseppe-git.d.ts +48 -0
  637. package/dist/modules/bug-reports/giuseppe-git.d.ts.map +1 -0
  638. package/dist/modules/bug-reports/giuseppe-git.js +298 -0
  639. package/dist/modules/bug-reports/giuseppe-git.js.map +1 -0
  640. package/dist/modules/bug-reports/giuseppe-lsp.d.ts +113 -0
  641. package/dist/modules/bug-reports/giuseppe-lsp.d.ts.map +1 -0
  642. package/dist/modules/bug-reports/giuseppe-lsp.js +485 -0
  643. package/dist/modules/bug-reports/giuseppe-lsp.js.map +1 -0
  644. package/dist/modules/bug-reports/giuseppe-prompt.d.ts +5 -0
  645. package/dist/modules/bug-reports/giuseppe-prompt.d.ts.map +1 -0
  646. package/dist/modules/bug-reports/giuseppe-prompt.js +94 -0
  647. package/dist/modules/bug-reports/giuseppe-prompt.js.map +1 -0
  648. package/dist/modules/bug-reports/index.d.ts +77 -0
  649. package/dist/modules/bug-reports/index.d.ts.map +1 -0
  650. package/dist/modules/bug-reports/index.js +215 -0
  651. package/dist/modules/bug-reports/index.js.map +1 -0
  652. package/dist/modules/bug-reports/pending-classification-registry.d.ts +28 -0
  653. package/dist/modules/bug-reports/pending-classification-registry.d.ts.map +1 -0
  654. package/dist/modules/bug-reports/pending-classification-registry.js +50 -0
  655. package/dist/modules/bug-reports/pending-classification-registry.js.map +1 -0
  656. package/dist/modules/bug-reports/pending-fix-registry.d.ts +30 -0
  657. package/dist/modules/bug-reports/pending-fix-registry.d.ts.map +1 -0
  658. package/dist/modules/bug-reports/pending-fix-registry.js +42 -0
  659. package/dist/modules/bug-reports/pending-fix-registry.js.map +1 -0
  660. package/dist/modules/bug-reports/pending-registry.d.ts +27 -0
  661. package/dist/modules/bug-reports/pending-registry.d.ts.map +1 -0
  662. package/dist/modules/bug-reports/pending-registry.js +49 -0
  663. package/dist/modules/bug-reports/pending-registry.js.map +1 -0
  664. package/dist/modules/bug-reports/types.d.ts +123 -0
  665. package/dist/modules/bug-reports/types.d.ts.map +1 -0
  666. package/dist/modules/bug-reports/types.js +9 -0
  667. package/dist/modules/bug-reports/types.js.map +1 -0
  668. package/dist/plugins/bug-fixer/index.d.ts.map +1 -0
  669. package/dist/plugins/bug-fixer/index.js.map +1 -0
  670. package/dist/plugins/bug-fixer/tools.d.ts.map +1 -0
  671. package/dist/plugins/bug-fixer/tools.js.map +1 -0
  672. package/dist/plugins/vipunen/__tests__/tools.test.d.ts +10 -0
  673. package/dist/plugins/vipunen/__tests__/tools.test.d.ts.map +1 -0
  674. package/dist/plugins/vipunen/__tests__/tools.test.js +646 -0
  675. package/dist/plugins/vipunen/__tests__/tools.test.js.map +1 -0
  676. package/dist/plugins/vipunen/client.d.ts.map +1 -0
  677. package/dist/plugins/vipunen/client.js.map +1 -0
  678. package/dist/plugins/vipunen/index.d.ts.map +1 -0
  679. package/dist/plugins/vipunen/index.js.map +1 -0
  680. package/dist/plugins/vipunen/tools.d.ts.map +1 -0
  681. package/dist/plugins/vipunen/tools.js.map +1 -0
  682. package/dist/routes/agents.d.ts +44 -0
  683. package/dist/routes/agents.d.ts.map +1 -0
  684. package/dist/routes/agents.js +311 -0
  685. package/dist/routes/agents.js.map +1 -0
  686. package/dist/services/agent-credential-store.d.ts +73 -0
  687. package/dist/services/agent-credential-store.d.ts.map +1 -0
  688. package/dist/services/agent-credential-store.js +212 -0
  689. package/dist/services/agent-credential-store.js.map +1 -0
  690. package/dist/stdio-server.d.ts.map +1 -0
  691. package/dist/stdio-server.js.map +1 -0
  692. package/dist/workspace/context.d.ts +148 -0
  693. package/dist/workspace/context.d.ts.map +1 -0
  694. package/dist/workspace/context.js +339 -0
  695. package/dist/workspace/context.js.map +1 -0
  696. package/dist/workspace/credentials.d.ts +55 -0
  697. package/dist/workspace/credentials.d.ts.map +1 -0
  698. package/dist/workspace/credentials.js +239 -0
  699. package/dist/workspace/credentials.js.map +1 -0
  700. package/dist/workspace/index.d.ts +21 -0
  701. package/dist/workspace/index.d.ts.map +1 -0
  702. package/dist/workspace/index.js +45 -0
  703. package/dist/workspace/index.js.map +1 -0
  704. package/dist/workspace/loader.d.ts +27 -0
  705. package/dist/workspace/loader.d.ts.map +1 -0
  706. package/dist/workspace/loader.js +222 -0
  707. package/dist/workspace/loader.js.map +1 -0
  708. package/dist/workspace/schema.d.ts +37 -0
  709. package/dist/workspace/schema.d.ts.map +1 -0
  710. package/dist/workspace/schema.js +192 -0
  711. package/dist/workspace/schema.js.map +1 -0
  712. package/package.json +13 -1
  713. package/test-billing-server.js +0 -136
@@ -0,0 +1,210 @@
1
+ ---
2
+ description: Orchestrator-driven parallel swarm for large-scale tasks
3
+ argument-hint: "description of what to do across many items"
4
+ allowed-tools: Task, Bash, Read, Glob
5
+ ---
6
+
7
+ # Swarm
8
+
9
+ Orchestrator-driven parallel execution: analyze the task, discover work items, pick agents, split into chunks, dispatch workers, aggregate results.
10
+
11
+ **Goal:** $ARGUMENTS
12
+
13
+ ## Protocol
14
+
15
+ ### Step 1: Analyze the Task
16
+
17
+ Read `$ARGUMENTS` and determine:
18
+
19
+ - **What needs to be done?** (review, edit, check, migrate, update, clean up)
20
+ - **What are the work items?** (files, activities, workflows, agents, skills, configs)
21
+ - **What scope?** (explicit path/glob from user, or infer from task description)
22
+
23
+ If the scope is unclear, use Glob or Bash to discover items:
24
+
25
+ ```
26
+ # Files
27
+ Glob("src/**/*.ts")
28
+ Glob(".claude/agents/*.md")
29
+ Glob("workspace/*/fields.ts")
30
+
31
+ # Activities (use Kenji to count/list)
32
+ Task(subagent_type="agent-kenji-data-reader", prompt="Count and list activity IDs for [workflow]")
33
+ ```
34
+
35
+ If fewer than 5 items are discovered, **abort swarm** and suggest running a regular squad or single agent instead. Swarm is for scale.
36
+
37
+ ### Step 2: Pick Agent(s)
38
+
39
+ Based on the task type, select the right agent(s):
40
+
41
+ | Task Type | Agent | Examples |
42
+ |-----------|-------|---------|
43
+ | Code review, security audit | **Svetlana** | "review for bugs", "security check", "find vulnerabilities" |
44
+ | Dead code, unused imports, type errors | **Lars** | "find dead code", "check types", "unused imports" |
45
+ | Small edits, string replacements, rule additions | **Simple Writer** | "add header to each file", "replace X with Y", "update rule" |
46
+ | Code cleanup, simplification | **Code Simplifier** | "clean up", "simplify", "refactor for clarity" |
47
+ | Config audit, structure validation | **Bjorn** | "check config", "validate structure", "audit settings" |
48
+ | Data state checks, field validation | **Kenji** | "check all activities", "verify field values", "find missing data" |
49
+ | Query patterns, data analysis | **Viktor** | "analyze patterns", "find anomalies across workflows" |
50
+ | Activity updates, bulk mutations | **Dmitri** | "update all activities", "move to phase", "set field values" |
51
+
52
+ **Multi-agent swarms:** If the task spans multiple domains, assign different agent types to different items. For example, "clean up the project" might use Lars for `.ts` files, Bjorn for config files, and Code Simplifier for app components.
53
+
54
+ ### Step 3: Calculate Workers
55
+
56
+ ```
57
+ items_count = total discovered items
58
+ items_per_worker = 10 (default)
59
+ max_workers = 5
60
+
61
+ worker_count = min(ceil(items_count / items_per_worker), max_workers)
62
+ ```
63
+
64
+ Split items into `worker_count` chunks. Try to keep chunks roughly equal size.
65
+
66
+ For multi-agent swarms, group items by agent type first, then chunk within each type.
67
+
68
+ ### Step 4: Dispatch Workers
69
+
70
+ Launch all workers in parallel using multiple Task tool calls in a single message. All workers run in background (`run_in_background: true`).
71
+
72
+ Each worker gets:
73
+
74
+ ```
75
+ Task(subagent_type="[selected-agent]",
76
+ run_in_background: true,
77
+ prompt="SWARM WORKER [N] of [TOTAL]
78
+
79
+ TASK: [User's description from $ARGUMENTS]
80
+
81
+ YOUR ITEMS ([count]):
82
+ - [item 1]
83
+ - [item 2]
84
+ - [item 3]
85
+ ...
86
+
87
+ Process each item and report results in this format:
88
+
89
+ RESULTS:
90
+ - [item]: [status] - [details]
91
+ - [item]: [status] - [details]
92
+
93
+ SUMMARY:
94
+ - Processed: [count]
95
+ - Passed: [count]
96
+ - Issues found: [count]
97
+ - Failed: [count]")
98
+ ```
99
+
100
+ Tell the user:
101
+ ```
102
+ Launched [worker_count] workers across [items_count] items.
103
+ Running in background - what else do you want to work on?
104
+ ```
105
+
106
+ ### Step 5: Collect Results
107
+
108
+ When workers complete (check via Read on output files or TaskOutput), aggregate all results.
109
+
110
+ If any worker failed or timed out:
111
+ - Report which items were in the failed worker's batch
112
+ - Offer to retry just those items
113
+
114
+ ### Step 6: Report
115
+
116
+ ```markdown
117
+ ## Swarm Report
118
+
119
+ ### Task
120
+ [User's description]
121
+
122
+ ### Execution
123
+ - **Items:** [total count]
124
+ - **Workers:** [worker count] x [agent type(s)]
125
+ - **Duration:** [time from dispatch to last worker completion]
126
+
127
+ ---
128
+
129
+ ### Results by Worker
130
+
131
+ #### Worker 1 ([agent type]) - [X items]
132
+ - [item]: [status] - [details]
133
+ - [item]: [status] - [details]
134
+ ...
135
+
136
+ #### Worker 2 ([agent type]) - [X items]
137
+ ...
138
+
139
+ ---
140
+
141
+ ### Aggregate Summary
142
+
143
+ | Status | Count |
144
+ |--------|-------|
145
+ | Passed / Clean | X |
146
+ | Issues Found | X |
147
+ | Failed / Error | X |
148
+
149
+ ### Issues Found
150
+ [Grouped and deduplicated list of all issues across all workers]
151
+
152
+ 1. **[item]**: [issue description]
153
+ 2. **[item]**: [issue description]
154
+ ...
155
+
156
+ ### Failed Items
157
+ [If any workers failed, list their items for retry]
158
+
159
+ ### Next Steps
160
+ - [Suggested follow-up based on results]
161
+ - [If issues found: suggest /hotfix-squad or Simple Writer to fix]
162
+ - [If edits made: suggest /review-squad to verify]
163
+ ```
164
+
165
+ ## Options
166
+
167
+ | Flag | Effect |
168
+ |------|--------|
169
+ | `--workers=N` | Override worker count (default: auto-calculated, max 5) |
170
+ | `--dry-run` | Show what would be dispatched without actually running |
171
+ | `--no-bg` | Run workers in foreground (wait for all to complete) |
172
+
173
+ ## Examples
174
+
175
+ ```
176
+ # Review all source files for security
177
+ /swarm "review all TypeScript files in src/ for security vulnerabilities"
178
+ → Discovers 47 .ts files, spawns 5 Svetlana workers
179
+
180
+ # Bulk edit agent files
181
+ /swarm "add a '## Version History' section to every agent file"
182
+ → Discovers 27 agent .md files, spawns 3 Simple Writer workers
183
+
184
+ # Validate workspace configs
185
+ /swarm "check all workflow field definitions for missing descriptions"
186
+ → Discovers 12 fields.ts files, spawns 2 Kenji workers
187
+
188
+ # Multi-agent cleanup
189
+ /swarm "clean up the entire apps/ directory"
190
+ → Discovers 34 files: 20 .tsx → Code Simplifier, 8 .ts → Lars, 6 configs → Bjorn
191
+ → Spawns 5 workers across 3 agent types
192
+
193
+ # Data validation
194
+ /swarm "verify all Customer activities have a valid email field"
195
+ → Kenji counts 200 customers, spawns 5 Kenji workers (40 each)
196
+
197
+ # Dry run to preview
198
+ /swarm "update all skills to use consistent headers" --dry-run
199
+ → Shows: "Would dispatch 4 Simple Writer workers across 32 skill files"
200
+ ```
201
+
202
+ ## Notes
203
+
204
+ - Minimum 5 items to trigger swarm (below that, use a regular agent)
205
+ - Default max 5 workers to avoid overwhelming the system
206
+ - Workers run in background by default so user can keep working
207
+ - Multi-agent swarms naturally emerge from the orchestrator's routing logic
208
+ - For write operations (Dmitri, Simple Writer), consider running --dry-run first
209
+ - Swarm vs Squad: Swarm is raw parallel execution without quality gates. Workers operate independently. Squads have convergence, synthesis, and loops. Use swarm for bulk independent items, squads for coordinated workflows.
210
+ - Swarm + squad can combine: `/swarm "review src/"` finds issues, then user can run `/hotfix-squad` on results. This is a manual handoff - user confirms.
@@ -0,0 +1,39 @@
1
+ ---
2
+ description: Activate tool-builder mode to implement a new MCP tool
3
+ ---
4
+
5
+ # Tool Builder Mode
6
+
7
+ Loading `tool-builder` skill for MCP tool patterns...
8
+
9
+ **What tool should I build?**
10
+
11
+ Please provide:
12
+
13
+ - **Tool Name**: `tool_name` (snake_case)
14
+ - **Purpose**: What does it do?
15
+ - **API Endpoint**: `v3.endpoint.method`
16
+ - **Request Format**: `[arg1, arg2]`
17
+ - **Response Format**: What the API returns
18
+ - **Target File**: Which file in `src/mcp/tools/`?
19
+ - **Tool Group**: READ | WRITE | PLAYGROUND
20
+
21
+ ---
22
+
23
+ **Example:**
24
+ ```
25
+ Tool Name: list_insights
26
+ Purpose: List all insights in workspace
27
+ API Endpoint: v3.insight.list
28
+ Request: [workspaceId]
29
+ Response: { insights: [{_id, name, query, sources}] }
30
+ Target File: insight.ts
31
+ Tool Group: PLAYGROUND
32
+ ```
33
+
34
+ I'll:
35
+ 1. Load tool-builder skill
36
+ 2. Read existing patterns in target file
37
+ 3. Implement the tool
38
+ 4. Register in src/app.ts
39
+ 5. Report what was created
@@ -0,0 +1,44 @@
1
+ ---
2
+ description: Pull workspace configuration from Hailer (READ-ONLY)
3
+ ---
4
+
5
+ Pull the current workspace configuration from Hailer and save it locally.
6
+
7
+ **What this does:**
8
+ - Downloads workflows, insights, teams, groups, and phases from Hailer workspace
9
+ - Saves configuration as JSON files to the `WORKSPACE_CONFIG_PATH` directory
10
+ - READ-ONLY operation - does not modify anything on Hailer
11
+ - Safe to run anytime
12
+
13
+ **Requirements:**
14
+ - Must have `WORKSPACE_CONFIG_PATH` set in `.env.local`
15
+ - Hailer credentials must be configured
16
+
17
+ **Instructions for Claude:**
18
+
19
+ 1. Read `.env.local` file to get `WORKSPACE_CONFIG_PATH`
20
+ 2. Run: `cd "$WORKSPACE_CONFIG_PATH" && npm run pull`
21
+ 3. **AUTOMATICALLY read the generated files to load context:**
22
+ - Read `workspace/enums.ts` (complete file - contains ALL field and phase IDs)
23
+ - List `workspace/` directory to see all workflow folders
24
+ - Read 1-2 example workflow configs (main.ts, fields.ts, phases.ts) to understand structure
25
+ 4. Provide summary of what workflows were pulled and confirm context is loaded
26
+
27
+ **What gets downloaded:**
28
+ - `workspace/enums.ts` - Type-safe field and phase ID enums for ALL workflows
29
+ - `workspace/workflows.ts` - Main workflows export
30
+ - `workspace/insights.ts` - SQL insight definitions
31
+ - `workspace/teams.ts` - Team structures
32
+ - `workspace/groups.ts` - User groups
33
+ - `workspace/<workflow_name>/` - Individual workflow configs (main.ts, fields.ts, phases.ts)
34
+
35
+ **Why automatic reading matters:**
36
+ - Loads all field/phase IDs into conversation context immediately
37
+ - Enables local-first strategy without manual file reads
38
+ - Saves 75% of API calls and hundreds of tokens on subsequent operations
39
+ - You'll know the workspace structure instantly
40
+
41
+ **Common use cases:**
42
+ - Backup current workspace configuration
43
+ - Review workflow structures locally
44
+ - Prepare for making configuration changes
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "https://opencode.ai/config.json",
3
+ "permission": {
4
+ "bash": {
5
+ "*": "ask",
6
+ "rm -rf *": "deny",
7
+ "rm -r *": "deny"
8
+ },
9
+ "doom_loop": "ask",
10
+ "read": {
11
+ "*": "allow",
12
+ "*.env": "deny",
13
+ "*.env.*": "deny",
14
+ "*.env.example": "allow"
15
+ },
16
+ "edit": "ask",
17
+ "external_directory": "ask",
18
+ "webfetch": "ask",
19
+ "websearch": "ask"
20
+ }
21
+ }
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-manager.js","sourceRoot":"","sources":["../../src/agents/bot-manager.ts"],"names":[],"mappings":"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"}