@hailer/mcp 1.2.1 → 1.3.9

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 (774) hide show
  1. package/.claude/agents/agent-hailer-helper.md +118 -0
  2. package/.claude/commands/debug-squad.md +13 -290
  3. package/.claude/commands/publish.md +2 -2
  4. package/.claude/commands/review-squad.md +17 -139
  5. package/.claude/skills/create-and-publish-app/SKILL.md +133 -143
  6. package/.claude/skills/hailer-app-builder/SKILL.md +29 -2
  7. package/.claude/skills/hailer-ui-guide/SKILL.md +265 -0
  8. package/.env.example +50 -1
  9. package/CLAUDE.md +141 -10
  10. package/dist/app-prep.d.ts +27 -0
  11. package/dist/app-prep.d.ts.map +1 -0
  12. package/dist/app-prep.js +94 -0
  13. package/dist/app-prep.js.map +1 -0
  14. package/dist/app.d.ts.map +1 -1
  15. package/dist/app.js +3 -0
  16. package/dist/app.js.map +1 -1
  17. package/dist/bot/bot-manager.d.ts +9 -6
  18. package/dist/bot/bot-manager.d.ts.map +1 -1
  19. package/dist/bot/bot-manager.js +142 -31
  20. package/dist/bot/bot-manager.js.map +1 -1
  21. package/dist/bot/bot.d.ts +61 -16
  22. package/dist/bot/bot.d.ts.map +1 -1
  23. package/dist/bot/bot.js +927 -151
  24. package/dist/bot/bot.js.map +1 -1
  25. package/dist/bot/operation-logger.d.ts.map +1 -1
  26. package/dist/bot/operation-logger.js +24 -12
  27. package/dist/bot/operation-logger.js.map +1 -1
  28. package/dist/bot/services/bot-permissions.d.ts +37 -5
  29. package/dist/bot/services/bot-permissions.d.ts.map +1 -1
  30. package/dist/bot/services/bot-permissions.js +159 -35
  31. package/dist/bot/services/bot-permissions.js.map +1 -1
  32. package/dist/bot/services/conversation-manager.d.ts +23 -23
  33. package/dist/bot/services/conversation-manager.d.ts.map +1 -1
  34. package/dist/bot/services/conversation-manager.js +52 -49
  35. package/dist/bot/services/conversation-manager.js.map +1 -1
  36. package/dist/bot/services/helper-prompt.d.ts +8 -0
  37. package/dist/bot/services/helper-prompt.d.ts.map +1 -0
  38. package/dist/bot/services/helper-prompt.js +177 -0
  39. package/dist/bot/services/helper-prompt.js.map +1 -0
  40. package/dist/bot/services/message-classifier.d.ts +16 -16
  41. package/dist/bot/services/message-classifier.d.ts.map +1 -1
  42. package/dist/bot/services/message-classifier.js +55 -49
  43. package/dist/bot/services/message-classifier.js.map +1 -1
  44. package/dist/bot/services/message-formatter.d.ts +47 -38
  45. package/dist/bot/services/message-formatter.d.ts.map +1 -1
  46. package/dist/bot/services/message-formatter.js +99 -80
  47. package/dist/bot/services/message-formatter.js.map +1 -1
  48. package/dist/bot/services/permission-guard.d.ts.map +1 -1
  49. package/dist/bot/services/permission-guard.js +20 -10
  50. package/dist/bot/services/permission-guard.js.map +1 -1
  51. package/dist/bot/services/signal-router.d.ts.map +1 -1
  52. package/dist/bot/services/signal-router.js +11 -6
  53. package/dist/bot/services/signal-router.js.map +1 -1
  54. package/dist/bot/services/system-prompt.d.ts +14 -0
  55. package/dist/bot/services/system-prompt.d.ts.map +1 -1
  56. package/dist/bot/services/system-prompt.js +181 -4
  57. package/dist/bot/services/system-prompt.js.map +1 -1
  58. package/dist/bot/services/token-billing.d.ts +23 -23
  59. package/dist/bot/services/token-billing.d.ts.map +1 -1
  60. package/dist/bot/services/token-billing.js +51 -36
  61. package/dist/bot/services/token-billing.js.map +1 -1
  62. package/dist/bot/services/types.d.ts +3 -1
  63. package/dist/bot/services/types.d.ts.map +1 -1
  64. package/dist/bot/services/typing-indicator.d.ts +8 -8
  65. package/dist/bot/services/typing-indicator.d.ts.map +1 -1
  66. package/dist/bot/services/typing-indicator.js +12 -10
  67. package/dist/bot/services/typing-indicator.js.map +1 -1
  68. package/dist/bot/services/workspace-refresh.d.ts +3 -3
  69. package/dist/bot/services/workspace-refresh.d.ts.map +1 -1
  70. package/dist/bot/services/workspace-refresh.js +23 -13
  71. package/dist/bot/services/workspace-refresh.js.map +1 -1
  72. package/dist/bot/tool-executor.d.ts +10 -6
  73. package/dist/bot/tool-executor.d.ts.map +1 -1
  74. package/dist/bot/tool-executor.js +12 -6
  75. package/dist/bot/tool-executor.js.map +1 -1
  76. package/dist/bot/workspace-overview.d.ts.map +1 -1
  77. package/dist/bot/workspace-overview.js +6 -3
  78. package/dist/bot/workspace-overview.js.map +1 -1
  79. package/dist/bot-config/activity-error.d.ts +47 -0
  80. package/dist/bot-config/activity-error.d.ts.map +1 -0
  81. package/dist/bot-config/activity-error.js +67 -0
  82. package/dist/bot-config/activity-error.js.map +1 -0
  83. package/dist/bot-config/context.d.ts +4 -4
  84. package/dist/bot-config/context.d.ts.map +1 -1
  85. package/dist/bot-config/context.js +18 -14
  86. package/dist/bot-config/context.js.map +1 -1
  87. package/dist/bot-config/events.d.ts +45 -0
  88. package/dist/bot-config/events.d.ts.map +1 -0
  89. package/dist/bot-config/events.js +51 -0
  90. package/dist/bot-config/events.js.map +1 -0
  91. package/dist/bot-config/index.d.ts +3 -0
  92. package/dist/bot-config/index.d.ts.map +1 -1
  93. package/dist/bot-config/index.js +8 -1
  94. package/dist/bot-config/index.js.map +1 -1
  95. package/dist/bot-config/loader.d.ts +3 -0
  96. package/dist/bot-config/loader.d.ts.map +1 -1
  97. package/dist/bot-config/loader.js +45 -20
  98. package/dist/bot-config/loader.js.map +1 -1
  99. package/dist/bot-config/persistence.js.map +1 -1
  100. package/dist/bot-config/reconciler.d.ts +11 -0
  101. package/dist/bot-config/reconciler.d.ts.map +1 -0
  102. package/dist/bot-config/reconciler.js +121 -0
  103. package/dist/bot-config/reconciler.js.map +1 -0
  104. package/dist/bot-config/state.d.ts.map +1 -1
  105. package/dist/bot-config/state.js.map +1 -1
  106. package/dist/bot-config/types.d.ts +32 -0
  107. package/dist/bot-config/types.d.ts.map +1 -1
  108. package/dist/bot-config/webhooks.d.ts.map +1 -1
  109. package/dist/bot-config/webhooks.js.map +1 -1
  110. package/dist/bot-config/workflow-installer.d.ts +37 -0
  111. package/dist/bot-config/workflow-installer.d.ts.map +1 -0
  112. package/dist/bot-config/workflow-installer.js +346 -0
  113. package/dist/bot-config/workflow-installer.js.map +1 -0
  114. package/dist/cli.d.ts +4 -1
  115. package/dist/cli.d.ts.map +1 -1
  116. package/dist/cli.js +92 -11
  117. package/dist/cli.js.map +1 -1
  118. package/dist/config.d.ts +23 -19
  119. package/dist/config.d.ts.map +1 -1
  120. package/dist/config.js +65 -27
  121. package/dist/config.js.map +1 -1
  122. package/dist/core.d.ts +6 -4
  123. package/dist/core.d.ts.map +1 -1
  124. package/dist/core.js +11 -16
  125. package/dist/core.js.map +1 -1
  126. package/dist/lib/logger.d.ts.map +1 -1
  127. package/dist/lib/logger.js +7 -4
  128. package/dist/lib/logger.js.map +1 -1
  129. package/dist/lib/request-logger.d.ts +19 -19
  130. package/dist/lib/request-logger.d.ts.map +1 -1
  131. package/dist/lib/request-logger.js +19 -19
  132. package/dist/lib/request-logger.js.map +1 -1
  133. package/dist/mcp/UserContextCache.d.ts +28 -22
  134. package/dist/mcp/UserContextCache.d.ts.map +1 -1
  135. package/dist/mcp/UserContextCache.js +23 -23
  136. package/dist/mcp/UserContextCache.js.map +1 -1
  137. package/dist/mcp/auth.js.map +1 -1
  138. package/dist/mcp/hailer-clients.d.ts +5 -4
  139. package/dist/mcp/hailer-clients.d.ts.map +1 -1
  140. package/dist/mcp/hailer-clients.js +83 -34
  141. package/dist/mcp/hailer-clients.js.map +1 -1
  142. package/dist/mcp/hailer-rpc.d.ts +40 -0
  143. package/dist/mcp/hailer-rpc.d.ts.map +1 -0
  144. package/dist/mcp/hailer-rpc.js +43 -0
  145. package/dist/mcp/hailer-rpc.js.map +1 -0
  146. package/dist/mcp/publish-auth-injector.d.ts +22 -0
  147. package/dist/mcp/publish-auth-injector.d.ts.map +1 -0
  148. package/dist/mcp/publish-auth-injector.js +100 -0
  149. package/dist/mcp/publish-auth-injector.js.map +1 -0
  150. package/dist/mcp/session-store.d.ts +16 -16
  151. package/dist/mcp/session-store.d.ts.map +1 -1
  152. package/dist/mcp/session-store.js +16 -16
  153. package/dist/mcp/session-store.js.map +1 -1
  154. package/dist/mcp/tool-profiles.d.ts +69 -0
  155. package/dist/mcp/tool-profiles.d.ts.map +1 -0
  156. package/dist/mcp/tool-profiles.js +176 -0
  157. package/dist/mcp/tool-profiles.js.map +1 -0
  158. package/dist/mcp/tool-registry.d.ts +16 -0
  159. package/dist/mcp/tool-registry.d.ts.map +1 -1
  160. package/dist/mcp/tool-registry.js +91 -39
  161. package/dist/mcp/tool-registry.js.map +1 -1
  162. package/dist/mcp/tools/activity.d.ts +2 -0
  163. package/dist/mcp/tools/activity.d.ts.map +1 -1
  164. package/dist/mcp/tools/activity.js +575 -218
  165. package/dist/mcp/tools/activity.js.map +1 -1
  166. package/dist/mcp/tools/aliases.d.ts +11 -0
  167. package/dist/mcp/tools/aliases.d.ts.map +1 -0
  168. package/dist/mcp/tools/aliases.js +182 -0
  169. package/dist/mcp/tools/aliases.js.map +1 -0
  170. package/dist/mcp/tools/app-core.d.ts +6 -8
  171. package/dist/mcp/tools/app-core.d.ts.map +1 -1
  172. package/dist/mcp/tools/app-core.js +355 -254
  173. package/dist/mcp/tools/app-core.js.map +1 -1
  174. package/dist/mcp/tools/app-marketplace.d.ts +8 -16
  175. package/dist/mcp/tools/app-marketplace.d.ts.map +1 -1
  176. package/dist/mcp/tools/app-marketplace.js +604 -932
  177. package/dist/mcp/tools/app-marketplace.js.map +1 -1
  178. package/dist/mcp/tools/app.d.ts +4 -7
  179. package/dist/mcp/tools/app.d.ts.map +1 -1
  180. package/dist/mcp/tools/app.js +4 -7
  181. package/dist/mcp/tools/app.js.map +1 -1
  182. package/dist/mcp/tools/bot-self.d.ts +21 -0
  183. package/dist/mcp/tools/bot-self.d.ts.map +1 -0
  184. package/dist/mcp/tools/bot-self.js +174 -0
  185. package/dist/mcp/tools/bot-self.js.map +1 -0
  186. package/dist/mcp/tools/calendar.d.ts +21 -0
  187. package/dist/mcp/tools/calendar.d.ts.map +1 -0
  188. package/dist/mcp/tools/calendar.js +741 -0
  189. package/dist/mcp/tools/calendar.js.map +1 -0
  190. package/dist/mcp/tools/company.d.ts.map +1 -1
  191. package/dist/mcp/tools/company.js +2 -1
  192. package/dist/mcp/tools/company.js.map +1 -1
  193. package/dist/mcp/tools/date.js.map +1 -1
  194. package/dist/mcp/tools/discussion.d.ts +29 -3
  195. package/dist/mcp/tools/discussion.d.ts.map +1 -1
  196. package/dist/mcp/tools/discussion.js +419 -534
  197. package/dist/mcp/tools/discussion.js.map +1 -1
  198. package/dist/mcp/tools/file.d.ts.map +1 -1
  199. package/dist/mcp/tools/file.js +18 -16
  200. package/dist/mcp/tools/file.js.map +1 -1
  201. package/dist/mcp/tools/index.js +4 -4
  202. package/dist/mcp/tools/index.js.map +1 -1
  203. package/dist/mcp/tools/insight.d.ts +24 -5
  204. package/dist/mcp/tools/insight.d.ts.map +1 -1
  205. package/dist/mcp/tools/insight.js +513 -480
  206. package/dist/mcp/tools/insight.js.map +1 -1
  207. package/dist/mcp/tools/user.d.ts.map +1 -1
  208. package/dist/mcp/tools/user.js +15 -13
  209. package/dist/mcp/tools/user.js.map +1 -1
  210. package/dist/mcp/tools/workflow-permissions.d.ts +2 -4
  211. package/dist/mcp/tools/workflow-permissions.d.ts.map +1 -1
  212. package/dist/mcp/tools/workflow-permissions.js +88 -97
  213. package/dist/mcp/tools/workflow-permissions.js.map +1 -1
  214. package/dist/mcp/tools/workflow.d.ts +9 -7
  215. package/dist/mcp/tools/workflow.d.ts.map +1 -1
  216. package/dist/mcp/tools/workflow.js +852 -860
  217. package/dist/mcp/tools/workflow.js.map +1 -1
  218. package/dist/mcp/utils/api-errors.d.ts.map +1 -1
  219. package/dist/mcp/utils/api-errors.js +2 -2
  220. package/dist/mcp/utils/api-errors.js.map +1 -1
  221. package/dist/mcp/utils/data-transformers.d.ts +0 -3
  222. package/dist/mcp/utils/data-transformers.d.ts.map +1 -1
  223. package/dist/mcp/utils/data-transformers.js +32 -5
  224. package/dist/mcp/utils/data-transformers.js.map +1 -1
  225. package/dist/mcp/utils/file-upload.d.ts.map +1 -1
  226. package/dist/mcp/utils/file-upload.js +1 -1
  227. package/dist/mcp/utils/file-upload.js.map +1 -1
  228. package/dist/mcp/utils/hailer-api-client.d.ts +81 -81
  229. package/dist/mcp/utils/hailer-api-client.d.ts.map +1 -1
  230. package/dist/mcp/utils/hailer-api-client.js +113 -103
  231. package/dist/mcp/utils/hailer-api-client.js.map +1 -1
  232. package/dist/mcp/utils/index.d.ts.map +1 -1
  233. package/dist/mcp/utils/index.js.map +1 -1
  234. package/dist/mcp/utils/logger.d.ts.map +1 -1
  235. package/dist/mcp/utils/logger.js.map +1 -1
  236. package/dist/mcp/utils/response-builder.d.ts.map +1 -1
  237. package/dist/mcp/utils/response-builder.js +8 -4
  238. package/dist/mcp/utils/response-builder.js.map +1 -1
  239. package/dist/mcp/utils/role-utils.d.ts.map +1 -1
  240. package/dist/mcp/utils/role-utils.js +6 -3
  241. package/dist/mcp/utils/role-utils.js.map +1 -1
  242. package/dist/mcp/utils/tool-helpers.d.ts.map +1 -1
  243. package/dist/mcp/utils/tool-helpers.js +2 -2
  244. package/dist/mcp/utils/tool-helpers.js.map +1 -1
  245. package/dist/mcp/utils/types.d.ts +2 -1
  246. package/dist/mcp/utils/types.d.ts.map +1 -1
  247. package/dist/mcp/utils/types.js.map +1 -1
  248. package/dist/mcp/webhook-handler.d.ts +43 -8
  249. package/dist/mcp/webhook-handler.d.ts.map +1 -1
  250. package/dist/mcp/webhook-handler.js +861 -116
  251. package/dist/mcp/webhook-handler.js.map +1 -1
  252. package/dist/mcp/workspace-admin-store.d.ts +49 -0
  253. package/dist/mcp/workspace-admin-store.d.ts.map +1 -0
  254. package/dist/mcp/workspace-admin-store.js +168 -0
  255. package/dist/mcp/workspace-admin-store.js.map +1 -0
  256. package/dist/mcp/workspace-cache.d.ts +2 -2
  257. package/dist/mcp/workspace-cache.d.ts.map +1 -1
  258. package/dist/mcp/workspace-cache.js +9 -5
  259. package/dist/mcp/workspace-cache.js.map +1 -1
  260. package/dist/mcp-server.d.ts +26 -11
  261. package/dist/mcp-server.d.ts.map +1 -1
  262. package/dist/mcp-server.js +367 -48
  263. package/dist/mcp-server.js.map +1 -1
  264. package/dist/plugins/vipunen/client.d.ts +41 -41
  265. package/dist/plugins/vipunen/client.d.ts.map +1 -1
  266. package/dist/plugins/vipunen/client.js +53 -48
  267. package/dist/plugins/vipunen/client.js.map +1 -1
  268. package/dist/plugins/vipunen/index.js.map +1 -1
  269. package/dist/plugins/vipunen/tools.d.ts.map +1 -1
  270. package/dist/plugins/vipunen/tools.js +6 -3
  271. package/dist/plugins/vipunen/tools.js.map +1 -1
  272. package/dist/public-chat/graduate.d.ts +29 -0
  273. package/dist/public-chat/graduate.d.ts.map +1 -0
  274. package/dist/public-chat/graduate.js +593 -0
  275. package/dist/public-chat/graduate.js.map +1 -0
  276. package/dist/public-chat/handler.d.ts +12 -0
  277. package/dist/public-chat/handler.d.ts.map +1 -0
  278. package/dist/public-chat/handler.js +183 -0
  279. package/dist/public-chat/handler.js.map +1 -0
  280. package/dist/public-chat/index.d.ts +16 -0
  281. package/dist/public-chat/index.d.ts.map +1 -0
  282. package/dist/public-chat/index.js +74 -0
  283. package/dist/public-chat/index.js.map +1 -0
  284. package/dist/public-chat/knowledge.d.ts +3 -0
  285. package/dist/public-chat/knowledge.d.ts.map +1 -0
  286. package/dist/public-chat/knowledge.js +1340 -0
  287. package/dist/public-chat/knowledge.js.map +1 -0
  288. package/dist/public-chat/rate-limit.d.ts +16 -0
  289. package/dist/public-chat/rate-limit.d.ts.map +1 -0
  290. package/dist/public-chat/rate-limit.js +51 -0
  291. package/dist/public-chat/rate-limit.js.map +1 -0
  292. package/dist/public-chat/session-store.d.ts +41 -0
  293. package/dist/public-chat/session-store.d.ts.map +1 -0
  294. package/dist/public-chat/session-store.js +95 -0
  295. package/dist/public-chat/session-store.js.map +1 -0
  296. package/dist/public-chat/studio-prewarm.d.ts +61 -0
  297. package/dist/public-chat/studio-prewarm.d.ts.map +1 -0
  298. package/dist/public-chat/studio-prewarm.js +162 -0
  299. package/dist/public-chat/studio-prewarm.js.map +1 -0
  300. package/dist/public-chat/system-prompt.d.ts +22 -0
  301. package/dist/public-chat/system-prompt.d.ts.map +1 -0
  302. package/dist/public-chat/system-prompt.js +435 -0
  303. package/dist/public-chat/system-prompt.js.map +1 -0
  304. package/package.json +15 -7
  305. package/scripts/build-public-chat-knowledge.py +101 -0
  306. package/scripts/smoke-public-chat-live.ts +148 -0
  307. package/scripts/smoke-public-chat.ts +110 -0
  308. package/.claude/CLAUDE.md +0 -126
  309. package/.claude/commands/app-squad.md +0 -131
  310. package/.claude/commands/audit-squad.md +0 -158
  311. package/.claude/commands/cleanup-squad.md +0 -98
  312. package/.claude/commands/config-squad.md +0 -106
  313. package/.claude/commands/crud-squad.md +0 -87
  314. package/.claude/commands/data-squad.md +0 -97
  315. package/.claude/commands/doc-squad.md +0 -65
  316. package/.claude/commands/help.md +0 -29
  317. package/.claude/commands/help:agents.md +0 -182
  318. package/.claude/commands/help:commands.md +0 -78
  319. package/.claude/commands/help:faq.md +0 -79
  320. package/.claude/commands/help:plugins.md +0 -50
  321. package/.claude/commands/help:skills.md +0 -87
  322. package/.claude/commands/help:tools.md +0 -75
  323. package/.claude/commands/hotfix-squad.md +0 -112
  324. package/.claude/commands/integration-squad.md +0 -82
  325. package/.claude/commands/janitor-squad.md +0 -167
  326. package/.claude/commands/onboard-squad.md +0 -130
  327. package/.claude/commands/swarm.md +0 -210
  328. package/.claude/commands/tool-builder.md +0 -39
  329. package/.claude/skills/publish-hailer-app/SKILL.md +0 -280
  330. package/dist/CLAUDE.md +0 -370
  331. package/dist/agents/bot-manager.d.ts +0 -48
  332. package/dist/agents/bot-manager.d.ts.map +0 -1
  333. package/dist/agents/bot-manager.js +0 -254
  334. package/dist/agents/bot-manager.js.map +0 -1
  335. package/dist/agents/bug-fixer/ai.d.ts +0 -80
  336. package/dist/agents/bug-fixer/ai.d.ts.map +0 -1
  337. package/dist/agents/bug-fixer/ai.js +0 -466
  338. package/dist/agents/bug-fixer/ai.js.map +0 -1
  339. package/dist/agents/bug-fixer/bot.d.ts +0 -92
  340. package/dist/agents/bug-fixer/bot.d.ts.map +0 -1
  341. package/dist/agents/bug-fixer/bot.js +0 -687
  342. package/dist/agents/bug-fixer/bot.js.map +0 -1
  343. package/dist/agents/bug-fixer/config.d.ts +0 -21
  344. package/dist/agents/bug-fixer/config.d.ts.map +0 -1
  345. package/dist/agents/bug-fixer/config.js +0 -218
  346. package/dist/agents/bug-fixer/config.js.map +0 -1
  347. package/dist/agents/bug-fixer/files.d.ts +0 -67
  348. package/dist/agents/bug-fixer/files.d.ts.map +0 -1
  349. package/dist/agents/bug-fixer/files.js +0 -386
  350. package/dist/agents/bug-fixer/files.js.map +0 -1
  351. package/dist/agents/bug-fixer/git.d.ts +0 -48
  352. package/dist/agents/bug-fixer/git.d.ts.map +0 -1
  353. package/dist/agents/bug-fixer/git.js +0 -298
  354. package/dist/agents/bug-fixer/git.js.map +0 -1
  355. package/dist/agents/bug-fixer/index.d.ts +0 -103
  356. package/dist/agents/bug-fixer/index.d.ts.map +0 -1
  357. package/dist/agents/bug-fixer/index.js +0 -262
  358. package/dist/agents/bug-fixer/index.js.map +0 -1
  359. package/dist/agents/bug-fixer/lsp.d.ts +0 -113
  360. package/dist/agents/bug-fixer/lsp.d.ts.map +0 -1
  361. package/dist/agents/bug-fixer/lsp.js +0 -485
  362. package/dist/agents/bug-fixer/lsp.js.map +0 -1
  363. package/dist/agents/bug-fixer/monitor.d.ts +0 -123
  364. package/dist/agents/bug-fixer/monitor.d.ts.map +0 -1
  365. package/dist/agents/bug-fixer/monitor.js +0 -629
  366. package/dist/agents/bug-fixer/monitor.js.map +0 -1
  367. package/dist/agents/bug-fixer/prompt.d.ts +0 -5
  368. package/dist/agents/bug-fixer/prompt.d.ts.map +0 -1
  369. package/dist/agents/bug-fixer/prompt.js +0 -94
  370. package/dist/agents/bug-fixer/prompt.js.map +0 -1
  371. package/dist/agents/bug-fixer/registries/pending-classification.d.ts +0 -28
  372. package/dist/agents/bug-fixer/registries/pending-classification.d.ts.map +0 -1
  373. package/dist/agents/bug-fixer/registries/pending-classification.js +0 -50
  374. package/dist/agents/bug-fixer/registries/pending-classification.js.map +0 -1
  375. package/dist/agents/bug-fixer/registries/pending-fix.d.ts +0 -33
  376. package/dist/agents/bug-fixer/registries/pending-fix.d.ts.map +0 -1
  377. package/dist/agents/bug-fixer/registries/pending-fix.js +0 -64
  378. package/dist/agents/bug-fixer/registries/pending-fix.js.map +0 -1
  379. package/dist/agents/bug-fixer/registries/pending.d.ts +0 -27
  380. package/dist/agents/bug-fixer/registries/pending.d.ts.map +0 -1
  381. package/dist/agents/bug-fixer/registries/pending.js +0 -49
  382. package/dist/agents/bug-fixer/registries/pending.js.map +0 -1
  383. package/dist/agents/bug-fixer/specialist-daemon.d.ts +0 -88
  384. package/dist/agents/bug-fixer/specialist-daemon.d.ts.map +0 -1
  385. package/dist/agents/bug-fixer/specialist-daemon.js +0 -431
  386. package/dist/agents/bug-fixer/specialist-daemon.js.map +0 -1
  387. package/dist/agents/bug-fixer/specialist.d.ts +0 -47
  388. package/dist/agents/bug-fixer/specialist.d.ts.map +0 -1
  389. package/dist/agents/bug-fixer/specialist.js +0 -327
  390. package/dist/agents/bug-fixer/specialist.js.map +0 -1
  391. package/dist/agents/bug-fixer/types.d.ts +0 -123
  392. package/dist/agents/bug-fixer/types.d.ts.map +0 -1
  393. package/dist/agents/bug-fixer/types.js +0 -9
  394. package/dist/agents/bug-fixer/types.js.map +0 -1
  395. package/dist/agents/factory.d.ts +0 -172
  396. package/dist/agents/factory.d.ts.map +0 -1
  397. package/dist/agents/factory.js +0 -706
  398. package/dist/agents/factory.js.map +0 -1
  399. package/dist/agents/hailer-expert/index.d.ts +0 -8
  400. package/dist/agents/hailer-expert/index.d.ts.map +0 -1
  401. package/dist/agents/hailer-expert/index.js +0 -14
  402. package/dist/agents/hailer-expert/index.js.map +0 -1
  403. package/dist/agents/hal/daemon.d.ts +0 -174
  404. package/dist/agents/hal/daemon.d.ts.map +0 -1
  405. package/dist/agents/hal/daemon.js +0 -1385
  406. package/dist/agents/hal/daemon.js.map +0 -1
  407. package/dist/agents/hal/definitions.d.ts +0 -42
  408. package/dist/agents/hal/definitions.d.ts.map +0 -1
  409. package/dist/agents/hal/definitions.js +0 -300
  410. package/dist/agents/hal/definitions.js.map +0 -1
  411. package/dist/agents/hal/index.d.ts +0 -3
  412. package/dist/agents/hal/index.d.ts.map +0 -1
  413. package/dist/agents/hal/index.js +0 -8
  414. package/dist/agents/hal/index.js.map +0 -1
  415. package/dist/agents/index.d.ts +0 -18
  416. package/dist/agents/index.d.ts.map +0 -1
  417. package/dist/agents/index.js +0 -48
  418. package/dist/agents/index.js.map +0 -1
  419. package/dist/agents/shared/base.d.ts +0 -253
  420. package/dist/agents/shared/base.d.ts.map +0 -1
  421. package/dist/agents/shared/base.js +0 -1122
  422. package/dist/agents/shared/base.js.map +0 -1
  423. package/dist/agents/shared/schemas/action-schema.d.ts +0 -62
  424. package/dist/agents/shared/schemas/action-schema.d.ts.map +0 -1
  425. package/dist/agents/shared/schemas/action-schema.js +0 -483
  426. package/dist/agents/shared/schemas/action-schema.js.map +0 -1
  427. package/dist/agents/shared/services/agent-registry.d.ts +0 -108
  428. package/dist/agents/shared/services/agent-registry.d.ts.map +0 -1
  429. package/dist/agents/shared/services/agent-registry.js +0 -469
  430. package/dist/agents/shared/services/agent-registry.js.map +0 -1
  431. package/dist/agents/shared/services/conversation-manager.d.ts +0 -57
  432. package/dist/agents/shared/services/conversation-manager.d.ts.map +0 -1
  433. package/dist/agents/shared/services/conversation-manager.js +0 -168
  434. package/dist/agents/shared/services/conversation-manager.js.map +0 -1
  435. package/dist/agents/shared/services/mcp-client.d.ts +0 -56
  436. package/dist/agents/shared/services/mcp-client.d.ts.map +0 -1
  437. package/dist/agents/shared/services/mcp-client.js +0 -124
  438. package/dist/agents/shared/services/mcp-client.js.map +0 -1
  439. package/dist/agents/shared/services/message-classifier.d.ts +0 -37
  440. package/dist/agents/shared/services/message-classifier.d.ts.map +0 -1
  441. package/dist/agents/shared/services/message-classifier.js +0 -203
  442. package/dist/agents/shared/services/message-classifier.js.map +0 -1
  443. package/dist/agents/shared/services/message-formatter.d.ts +0 -89
  444. package/dist/agents/shared/services/message-formatter.d.ts.map +0 -1
  445. package/dist/agents/shared/services/message-formatter.js +0 -390
  446. package/dist/agents/shared/services/message-formatter.js.map +0 -1
  447. package/dist/agents/shared/services/session-logger.d.ts +0 -162
  448. package/dist/agents/shared/services/session-logger.d.ts.map +0 -1
  449. package/dist/agents/shared/services/session-logger.js +0 -724
  450. package/dist/agents/shared/services/session-logger.js.map +0 -1
  451. package/dist/agents/shared/services/structured-output-executor.d.ts +0 -88
  452. package/dist/agents/shared/services/structured-output-executor.d.ts.map +0 -1
  453. package/dist/agents/shared/services/structured-output-executor.js +0 -296
  454. package/dist/agents/shared/services/structured-output-executor.js.map +0 -1
  455. package/dist/agents/shared/services/token-billing.d.ts +0 -72
  456. package/dist/agents/shared/services/token-billing.d.ts.map +0 -1
  457. package/dist/agents/shared/services/token-billing.js +0 -198
  458. package/dist/agents/shared/services/token-billing.js.map +0 -1
  459. package/dist/agents/shared/services/tool-executor.d.ts +0 -43
  460. package/dist/agents/shared/services/tool-executor.d.ts.map +0 -1
  461. package/dist/agents/shared/services/tool-executor.js +0 -175
  462. package/dist/agents/shared/services/tool-executor.js.map +0 -1
  463. package/dist/agents/shared/services/typing-indicator.d.ts +0 -24
  464. package/dist/agents/shared/services/typing-indicator.d.ts.map +0 -1
  465. package/dist/agents/shared/services/typing-indicator.js +0 -54
  466. package/dist/agents/shared/services/typing-indicator.js.map +0 -1
  467. package/dist/agents/shared/services/workspace-schema-cache.d.ts +0 -122
  468. package/dist/agents/shared/services/workspace-schema-cache.d.ts.map +0 -1
  469. package/dist/agents/shared/services/workspace-schema-cache.js +0 -507
  470. package/dist/agents/shared/services/workspace-schema-cache.js.map +0 -1
  471. package/dist/agents/shared/specialist.d.ts +0 -91
  472. package/dist/agents/shared/specialist.d.ts.map +0 -1
  473. package/dist/agents/shared/specialist.js +0 -399
  474. package/dist/agents/shared/specialist.js.map +0 -1
  475. package/dist/agents/shared/tool-schema-loader.d.ts +0 -65
  476. package/dist/agents/shared/tool-schema-loader.d.ts.map +0 -1
  477. package/dist/agents/shared/tool-schema-loader.js +0 -238
  478. package/dist/agents/shared/tool-schema-loader.js.map +0 -1
  479. package/dist/agents/shared/types.d.ts +0 -190
  480. package/dist/agents/shared/types.d.ts.map +0 -1
  481. package/dist/agents/shared/types.js +0 -13
  482. package/dist/agents/shared/types.js.map +0 -1
  483. package/dist/bot/bot-config.d.ts +0 -37
  484. package/dist/bot/bot-config.d.ts.map +0 -1
  485. package/dist/bot/bot-config.js +0 -219
  486. package/dist/bot/bot-config.js.map +0 -1
  487. package/dist/bot/services/__tests__/permission-guard.test.d.ts +0 -2
  488. package/dist/bot/services/__tests__/permission-guard.test.d.ts.map +0 -1
  489. package/dist/bot/services/__tests__/permission-guard.test.js +0 -357
  490. package/dist/bot/services/__tests__/permission-guard.test.js.map +0 -1
  491. package/dist/bot/services/session-logger.d.ts +0 -162
  492. package/dist/bot/services/session-logger.d.ts.map +0 -1
  493. package/dist/bot/services/session-logger.js +0 -724
  494. package/dist/bot/services/session-logger.js.map +0 -1
  495. package/dist/bot/services/workspace-schema-cache.d.ts +0 -122
  496. package/dist/bot/services/workspace-schema-cache.d.ts.map +0 -1
  497. package/dist/bot/services/workspace-schema-cache.js +0 -506
  498. package/dist/bot/services/workspace-schema-cache.js.map +0 -1
  499. package/dist/bot-config/tools.d.ts +0 -28
  500. package/dist/bot-config/tools.d.ts.map +0 -1
  501. package/dist/bot-config/tools.js +0 -279
  502. package/dist/bot-config/tools.js.map +0 -1
  503. package/dist/client/agents/base.d.ts +0 -207
  504. package/dist/client/agents/base.d.ts.map +0 -1
  505. package/dist/client/agents/base.js +0 -744
  506. package/dist/client/agents/base.js.map +0 -1
  507. package/dist/client/agents/definitions.d.ts +0 -53
  508. package/dist/client/agents/definitions.d.ts.map +0 -1
  509. package/dist/client/agents/definitions.js +0 -263
  510. package/dist/client/agents/definitions.js.map +0 -1
  511. package/dist/client/agents/orchestrator.d.ts +0 -141
  512. package/dist/client/agents/orchestrator.d.ts.map +0 -1
  513. package/dist/client/agents/orchestrator.js +0 -1062
  514. package/dist/client/agents/orchestrator.js.map +0 -1
  515. package/dist/client/agents/specialist.d.ts +0 -86
  516. package/dist/client/agents/specialist.d.ts.map +0 -1
  517. package/dist/client/agents/specialist.js +0 -340
  518. package/dist/client/agents/specialist.js.map +0 -1
  519. package/dist/client/bot-entrypoint.d.ts +0 -7
  520. package/dist/client/bot-entrypoint.d.ts.map +0 -1
  521. package/dist/client/bot-entrypoint.js +0 -103
  522. package/dist/client/bot-entrypoint.js.map +0 -1
  523. package/dist/client/bot-manager.d.ts +0 -44
  524. package/dist/client/bot-manager.d.ts.map +0 -1
  525. package/dist/client/bot-manager.js +0 -173
  526. package/dist/client/bot-manager.js.map +0 -1
  527. package/dist/client/bot-runner.d.ts +0 -35
  528. package/dist/client/bot-runner.d.ts.map +0 -1
  529. package/dist/client/bot-runner.js +0 -188
  530. package/dist/client/bot-runner.js.map +0 -1
  531. package/dist/client/chat-agent-daemon.d.ts +0 -464
  532. package/dist/client/chat-agent-daemon.d.ts.map +0 -1
  533. package/dist/client/chat-agent-daemon.js +0 -1774
  534. package/dist/client/chat-agent-daemon.js.map +0 -1
  535. package/dist/client/daemon-factory.d.ts +0 -106
  536. package/dist/client/daemon-factory.d.ts.map +0 -1
  537. package/dist/client/daemon-factory.js +0 -301
  538. package/dist/client/daemon-factory.js.map +0 -1
  539. package/dist/client/factory.d.ts +0 -111
  540. package/dist/client/factory.d.ts.map +0 -1
  541. package/dist/client/factory.js +0 -314
  542. package/dist/client/factory.js.map +0 -1
  543. package/dist/client/index.d.ts +0 -17
  544. package/dist/client/index.d.ts.map +0 -1
  545. package/dist/client/index.js +0 -38
  546. package/dist/client/index.js.map +0 -1
  547. package/dist/client/multi-bot-manager.d.ts +0 -42
  548. package/dist/client/multi-bot-manager.d.ts.map +0 -1
  549. package/dist/client/multi-bot-manager.js +0 -161
  550. package/dist/client/multi-bot-manager.js.map +0 -1
  551. package/dist/client/orchestrator-daemon.d.ts +0 -87
  552. package/dist/client/orchestrator-daemon.d.ts.map +0 -1
  553. package/dist/client/orchestrator-daemon.js +0 -444
  554. package/dist/client/orchestrator-daemon.js.map +0 -1
  555. package/dist/client/server.d.ts +0 -8
  556. package/dist/client/server.d.ts.map +0 -1
  557. package/dist/client/server.js +0 -251
  558. package/dist/client/server.js.map +0 -1
  559. package/dist/client/services/agent-registry.d.ts +0 -108
  560. package/dist/client/services/agent-registry.d.ts.map +0 -1
  561. package/dist/client/services/agent-registry.js +0 -630
  562. package/dist/client/services/agent-registry.js.map +0 -1
  563. package/dist/client/services/conversation-manager.d.ts +0 -50
  564. package/dist/client/services/conversation-manager.d.ts.map +0 -1
  565. package/dist/client/services/conversation-manager.js +0 -136
  566. package/dist/client/services/conversation-manager.js.map +0 -1
  567. package/dist/client/services/mcp-client.d.ts +0 -48
  568. package/dist/client/services/mcp-client.d.ts.map +0 -1
  569. package/dist/client/services/mcp-client.js +0 -105
  570. package/dist/client/services/mcp-client.js.map +0 -1
  571. package/dist/client/services/message-classifier.d.ts +0 -37
  572. package/dist/client/services/message-classifier.d.ts.map +0 -1
  573. package/dist/client/services/message-classifier.js +0 -187
  574. package/dist/client/services/message-classifier.js.map +0 -1
  575. package/dist/client/services/message-formatter.d.ts +0 -84
  576. package/dist/client/services/message-formatter.d.ts.map +0 -1
  577. package/dist/client/services/message-formatter.js +0 -353
  578. package/dist/client/services/message-formatter.js.map +0 -1
  579. package/dist/client/services/session-logger.d.ts +0 -106
  580. package/dist/client/services/session-logger.d.ts.map +0 -1
  581. package/dist/client/services/session-logger.js +0 -446
  582. package/dist/client/services/session-logger.js.map +0 -1
  583. package/dist/client/services/tool-executor.d.ts +0 -41
  584. package/dist/client/services/tool-executor.d.ts.map +0 -1
  585. package/dist/client/services/tool-executor.js +0 -169
  586. package/dist/client/services/tool-executor.js.map +0 -1
  587. package/dist/client/services/workspace-schema-cache.d.ts +0 -149
  588. package/dist/client/services/workspace-schema-cache.d.ts.map +0 -1
  589. package/dist/client/services/workspace-schema-cache.js +0 -732
  590. package/dist/client/services/workspace-schema-cache.js.map +0 -1
  591. package/dist/client/specialist-daemon.d.ts +0 -77
  592. package/dist/client/specialist-daemon.d.ts.map +0 -1
  593. package/dist/client/specialist-daemon.js +0 -197
  594. package/dist/client/specialist-daemon.js.map +0 -1
  595. package/dist/client/specialists.d.ts +0 -53
  596. package/dist/client/specialists.d.ts.map +0 -1
  597. package/dist/client/specialists.js +0 -178
  598. package/dist/client/specialists.js.map +0 -1
  599. package/dist/client/tool-schema-loader.d.ts +0 -62
  600. package/dist/client/tool-schema-loader.d.ts.map +0 -1
  601. package/dist/client/tool-schema-loader.js +0 -232
  602. package/dist/client/tool-schema-loader.js.map +0 -1
  603. package/dist/client/types.d.ts +0 -327
  604. package/dist/client/types.d.ts.map +0 -1
  605. package/dist/client/types.js +0 -121
  606. package/dist/client/types.js.map +0 -1
  607. package/dist/commands/seed-config.d.ts +0 -9
  608. package/dist/commands/seed-config.d.ts.map +0 -1
  609. package/dist/commands/seed-config.js +0 -377
  610. package/dist/commands/seed-config.js.map +0 -1
  611. package/dist/commands/setup.d.ts +0 -11
  612. package/dist/commands/setup.d.ts.map +0 -1
  613. package/dist/commands/setup.js +0 -320
  614. package/dist/commands/setup.js.map +0 -1
  615. package/dist/lib/discussion-lock.d.ts +0 -42
  616. package/dist/lib/discussion-lock.d.ts.map +0 -1
  617. package/dist/lib/discussion-lock.js +0 -110
  618. package/dist/lib/discussion-lock.js.map +0 -1
  619. package/dist/mcp/signal-handler.d.ts +0 -82
  620. package/dist/mcp/signal-handler.d.ts.map +0 -1
  621. package/dist/mcp/signal-handler.js +0 -406
  622. package/dist/mcp/signal-handler.js.map +0 -1
  623. package/dist/mcp/tools/__tests__/discussion-forward.test.d.ts +0 -2
  624. package/dist/mcp/tools/__tests__/discussion-forward.test.d.ts.map +0 -1
  625. package/dist/mcp/tools/__tests__/discussion-forward.test.js +0 -218
  626. package/dist/mcp/tools/__tests__/discussion-forward.test.js.map +0 -1
  627. package/dist/mcp/tools/app-member.d.ts +0 -14
  628. package/dist/mcp/tools/app-member.d.ts.map +0 -1
  629. package/dist/mcp/tools/app-member.js +0 -195
  630. package/dist/mcp/tools/app-member.js.map +0 -1
  631. package/dist/mcp/tools/app-scaffold.d.ts +0 -14
  632. package/dist/mcp/tools/app-scaffold.d.ts.map +0 -1
  633. package/dist/mcp/tools/app-scaffold.js +0 -581
  634. package/dist/mcp/tools/app-scaffold.js.map +0 -1
  635. package/dist/mcp/tools/bot-config/constants.d.ts +0 -23
  636. package/dist/mcp/tools/bot-config/constants.d.ts.map +0 -1
  637. package/dist/mcp/tools/bot-config/constants.js +0 -94
  638. package/dist/mcp/tools/bot-config/constants.js.map +0 -1
  639. package/dist/mcp/tools/bot-config/core.d.ts +0 -253
  640. package/dist/mcp/tools/bot-config/core.d.ts.map +0 -1
  641. package/dist/mcp/tools/bot-config/core.js +0 -2456
  642. package/dist/mcp/tools/bot-config/core.js.map +0 -1
  643. package/dist/mcp/tools/bot-config/index.d.ts +0 -10
  644. package/dist/mcp/tools/bot-config/index.d.ts.map +0 -1
  645. package/dist/mcp/tools/bot-config/index.js +0 -59
  646. package/dist/mcp/tools/bot-config/index.js.map +0 -1
  647. package/dist/mcp/tools/bot-config/tools.d.ts +0 -7
  648. package/dist/mcp/tools/bot-config/tools.d.ts.map +0 -1
  649. package/dist/mcp/tools/bot-config/tools.js +0 -15
  650. package/dist/mcp/tools/bot-config/tools.js.map +0 -1
  651. package/dist/mcp/tools/bot-config/types.d.ts +0 -50
  652. package/dist/mcp/tools/bot-config/types.d.ts.map +0 -1
  653. package/dist/mcp/tools/bot-config/types.js +0 -6
  654. package/dist/mcp/tools/bot-config/types.js.map +0 -1
  655. package/dist/mcp/tools/bug-fixer-tools.d.ts +0 -45
  656. package/dist/mcp/tools/bug-fixer-tools.d.ts.map +0 -1
  657. package/dist/mcp/tools/bug-fixer-tools.js +0 -1096
  658. package/dist/mcp/tools/bug-fixer-tools.js.map +0 -1
  659. package/dist/mcp/tools/document.d.ts +0 -11
  660. package/dist/mcp/tools/document.d.ts.map +0 -1
  661. package/dist/mcp/tools/document.js +0 -741
  662. package/dist/mcp/tools/document.js.map +0 -1
  663. package/dist/mcp/tools/investigate.d.ts +0 -9
  664. package/dist/mcp/tools/investigate.d.ts.map +0 -1
  665. package/dist/mcp/tools/investigate.js +0 -254
  666. package/dist/mcp/tools/investigate.js.map +0 -1
  667. package/dist/mcp/utils/pagination.d.ts +0 -40
  668. package/dist/mcp/utils/pagination.d.ts.map +0 -1
  669. package/dist/mcp/utils/pagination.js +0 -55
  670. package/dist/mcp/utils/pagination.js.map +0 -1
  671. package/dist/modules/bug-reports/bug-config.d.ts +0 -25
  672. package/dist/modules/bug-reports/bug-config.d.ts.map +0 -1
  673. package/dist/modules/bug-reports/bug-config.js +0 -187
  674. package/dist/modules/bug-reports/bug-config.js.map +0 -1
  675. package/dist/modules/bug-reports/bug-monitor.d.ts +0 -108
  676. package/dist/modules/bug-reports/bug-monitor.d.ts.map +0 -1
  677. package/dist/modules/bug-reports/bug-monitor.js +0 -510
  678. package/dist/modules/bug-reports/bug-monitor.js.map +0 -1
  679. package/dist/modules/bug-reports/giuseppe-agent.d.ts +0 -58
  680. package/dist/modules/bug-reports/giuseppe-agent.d.ts.map +0 -1
  681. package/dist/modules/bug-reports/giuseppe-agent.js +0 -467
  682. package/dist/modules/bug-reports/giuseppe-agent.js.map +0 -1
  683. package/dist/modules/bug-reports/giuseppe-ai.d.ts +0 -83
  684. package/dist/modules/bug-reports/giuseppe-ai.d.ts.map +0 -1
  685. package/dist/modules/bug-reports/giuseppe-ai.js +0 -466
  686. package/dist/modules/bug-reports/giuseppe-ai.js.map +0 -1
  687. package/dist/modules/bug-reports/giuseppe-bot.d.ts +0 -110
  688. package/dist/modules/bug-reports/giuseppe-bot.d.ts.map +0 -1
  689. package/dist/modules/bug-reports/giuseppe-bot.js +0 -804
  690. package/dist/modules/bug-reports/giuseppe-bot.js.map +0 -1
  691. package/dist/modules/bug-reports/giuseppe-daemon.d.ts +0 -80
  692. package/dist/modules/bug-reports/giuseppe-daemon.d.ts.map +0 -1
  693. package/dist/modules/bug-reports/giuseppe-daemon.js +0 -617
  694. package/dist/modules/bug-reports/giuseppe-daemon.js.map +0 -1
  695. package/dist/modules/bug-reports/giuseppe-files.d.ts +0 -64
  696. package/dist/modules/bug-reports/giuseppe-files.d.ts.map +0 -1
  697. package/dist/modules/bug-reports/giuseppe-files.js +0 -375
  698. package/dist/modules/bug-reports/giuseppe-files.js.map +0 -1
  699. package/dist/modules/bug-reports/giuseppe-git.d.ts +0 -48
  700. package/dist/modules/bug-reports/giuseppe-git.d.ts.map +0 -1
  701. package/dist/modules/bug-reports/giuseppe-git.js +0 -298
  702. package/dist/modules/bug-reports/giuseppe-git.js.map +0 -1
  703. package/dist/modules/bug-reports/giuseppe-lsp.d.ts +0 -113
  704. package/dist/modules/bug-reports/giuseppe-lsp.d.ts.map +0 -1
  705. package/dist/modules/bug-reports/giuseppe-lsp.js +0 -485
  706. package/dist/modules/bug-reports/giuseppe-lsp.js.map +0 -1
  707. package/dist/modules/bug-reports/giuseppe-prompt.d.ts +0 -5
  708. package/dist/modules/bug-reports/giuseppe-prompt.d.ts.map +0 -1
  709. package/dist/modules/bug-reports/giuseppe-prompt.js +0 -94
  710. package/dist/modules/bug-reports/giuseppe-prompt.js.map +0 -1
  711. package/dist/modules/bug-reports/index.d.ts +0 -77
  712. package/dist/modules/bug-reports/index.d.ts.map +0 -1
  713. package/dist/modules/bug-reports/index.js +0 -215
  714. package/dist/modules/bug-reports/index.js.map +0 -1
  715. package/dist/modules/bug-reports/pending-classification-registry.d.ts +0 -28
  716. package/dist/modules/bug-reports/pending-classification-registry.d.ts.map +0 -1
  717. package/dist/modules/bug-reports/pending-classification-registry.js +0 -50
  718. package/dist/modules/bug-reports/pending-classification-registry.js.map +0 -1
  719. package/dist/modules/bug-reports/pending-fix-registry.d.ts +0 -30
  720. package/dist/modules/bug-reports/pending-fix-registry.d.ts.map +0 -1
  721. package/dist/modules/bug-reports/pending-fix-registry.js +0 -42
  722. package/dist/modules/bug-reports/pending-fix-registry.js.map +0 -1
  723. package/dist/modules/bug-reports/pending-registry.d.ts +0 -27
  724. package/dist/modules/bug-reports/pending-registry.d.ts.map +0 -1
  725. package/dist/modules/bug-reports/pending-registry.js +0 -49
  726. package/dist/modules/bug-reports/pending-registry.js.map +0 -1
  727. package/dist/modules/bug-reports/types.d.ts +0 -123
  728. package/dist/modules/bug-reports/types.d.ts.map +0 -1
  729. package/dist/modules/bug-reports/types.js +0 -9
  730. package/dist/modules/bug-reports/types.js.map +0 -1
  731. package/dist/plugins/bug-fixer/index.d.ts +0 -2
  732. package/dist/plugins/bug-fixer/index.d.ts.map +0 -1
  733. package/dist/plugins/bug-fixer/index.js +0 -18
  734. package/dist/plugins/bug-fixer/index.js.map +0 -1
  735. package/dist/plugins/bug-fixer/tools.d.ts +0 -45
  736. package/dist/plugins/bug-fixer/tools.d.ts.map +0 -1
  737. package/dist/plugins/bug-fixer/tools.js +0 -1096
  738. package/dist/plugins/bug-fixer/tools.js.map +0 -1
  739. package/dist/plugins/vipunen/__tests__/tools.test.d.ts +0 -10
  740. package/dist/plugins/vipunen/__tests__/tools.test.d.ts.map +0 -1
  741. package/dist/plugins/vipunen/__tests__/tools.test.js +0 -646
  742. package/dist/plugins/vipunen/__tests__/tools.test.js.map +0 -1
  743. package/dist/routes/agents.d.ts +0 -44
  744. package/dist/routes/agents.d.ts.map +0 -1
  745. package/dist/routes/agents.js +0 -311
  746. package/dist/routes/agents.js.map +0 -1
  747. package/dist/services/agent-credential-store.d.ts +0 -73
  748. package/dist/services/agent-credential-store.d.ts.map +0 -1
  749. package/dist/services/agent-credential-store.js +0 -212
  750. package/dist/services/agent-credential-store.js.map +0 -1
  751. package/dist/stdio-server.d.ts +0 -14
  752. package/dist/stdio-server.d.ts.map +0 -1
  753. package/dist/stdio-server.js +0 -101
  754. package/dist/stdio-server.js.map +0 -1
  755. package/dist/workspace/context.d.ts +0 -148
  756. package/dist/workspace/context.d.ts.map +0 -1
  757. package/dist/workspace/context.js +0 -339
  758. package/dist/workspace/context.js.map +0 -1
  759. package/dist/workspace/credentials.d.ts +0 -55
  760. package/dist/workspace/credentials.d.ts.map +0 -1
  761. package/dist/workspace/credentials.js +0 -239
  762. package/dist/workspace/credentials.js.map +0 -1
  763. package/dist/workspace/index.d.ts +0 -21
  764. package/dist/workspace/index.d.ts.map +0 -1
  765. package/dist/workspace/index.js +0 -45
  766. package/dist/workspace/index.js.map +0 -1
  767. package/dist/workspace/loader.d.ts +0 -27
  768. package/dist/workspace/loader.d.ts.map +0 -1
  769. package/dist/workspace/loader.js +0 -222
  770. package/dist/workspace/loader.js.map +0 -1
  771. package/dist/workspace/schema.d.ts +0 -37
  772. package/dist/workspace/schema.d.ts.map +0 -1
  773. package/dist/workspace/schema.js +0 -192
  774. package/dist/workspace/schema.js.map +0 -1
@@ -1,744 +0,0 @@
1
- "use strict";
2
- /**
3
- * Chat Agent Daemon
4
- *
5
- * A persistent LLM conversation that monitors all workspace chats.
6
- * The LLM maintains context across messages and decides what to respond to.
7
- *
8
- * Architecture:
9
- * - One daemon per bot client
10
- * - Subscribes to ALL messenger.new signals (not filtered)
11
- * - LLM sees every message with priority markers
12
- * - LLM decides: RESPOND / IGNORE / ACTION
13
- */
14
- var __importDefault = (this && this.__importDefault) || function (mod) {
15
- return (mod && mod.__esModule) ? mod : { "default": mod };
16
- };
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.ChatAgentDaemon = void 0;
19
- const sdk_1 = __importDefault(require("@anthropic-ai/sdk"));
20
- const logger_1 = require("../../lib/logger");
21
- const tool_schema_loader_1 = require("../tool-schema-loader");
22
- const tool_registry_1 = require("../../mcp/tool-registry");
23
- const agent_registry_1 = require("../services/agent-registry");
24
- const conversation_manager_1 = require("../services/conversation-manager");
25
- const mcp_client_1 = require("../services/mcp-client");
26
- const message_formatter_1 = require("../services/message-formatter");
27
- const message_classifier_1 = require("../services/message-classifier");
28
- const session_logger_1 = require("../services/session-logger");
29
- const tool_executor_1 = require("../services/tool-executor");
30
- const workspace_schema_cache_1 = require("../services/workspace-schema-cache");
31
- class ChatAgentDaemon {
32
- logger;
33
- client;
34
- botClient;
35
- config;
36
- toolSchemaLoader = new tool_schema_loader_1.ToolSchemaLoader();
37
- // Processing state
38
- isProcessing = false;
39
- messageQueue = [];
40
- processedMessageIds = new Set();
41
- // Typing indicator state
42
- typingInterval = null;
43
- typingDiscussionId = null;
44
- static TYPING_REFRESH_MS = 3000; // Refresh typing every 3 seconds
45
- // Tool schemas (loaded once)
46
- toolIndex = [];
47
- minimalTools = [];
48
- // ===== SERVICES =====
49
- /** Message classifier - handles message extraction and priority classification */
50
- messageClassifier = null;
51
- /** Conversation manager - handles per-discussion context and LRU cache */
52
- conversationManager = null;
53
- /** MCP client service - handles tool schema loading and execution */
54
- mcpClient = null;
55
- /** Tool executor - handles tool execution and write tracking */
56
- toolExecutor = null;
57
- /** Agent registration service - handles Agent Directory, Position, Team, etc. */
58
- registryService = null;
59
- /** Message formatting service - handles tag resolution and formatting */
60
- messageFormatter = null;
61
- /** Session logging service - handles activity session tracking */
62
- sessionLogger = null;
63
- /** Workspace schema cache - dynamic workflow/field ID lookup */
64
- schemaCache = null;
65
- /** Current discussion context for tracking */
66
- currentDiscussionId = null;
67
- currentLinkedActivityId = null;
68
- constructor(config) {
69
- this.config = config;
70
- this.botClient = config.botClient;
71
- this.logger = (0, logger_1.createLogger)({
72
- component: "ChatAgentDaemon",
73
- botId: config.botClient.userId
74
- });
75
- this.client = new sdk_1.default({
76
- apiKey: config.anthropicApiKey,
77
- });
78
- }
79
- /**
80
- * Initialize the daemon - load tools and subscribe to signals
81
- */
82
- async initialize() {
83
- this.logger.info("Initializing Chat Agent Daemon", {
84
- botId: this.botClient.userId,
85
- email: this.botClient.config.email,
86
- });
87
- // Load tool index once
88
- const allowedGroups = [tool_registry_1.ToolGroup.READ, tool_registry_1.ToolGroup.WRITE];
89
- let tools = await this.toolSchemaLoader.loadToolIndex({
90
- mcpServerUrl: this.config.mcpServerUrl,
91
- mcpServerApiKey: this.botClient.config.mcpServerApiKey,
92
- allowedGroups,
93
- });
94
- // Filter by whitelist if agent specifies one
95
- const whitelist = this.getToolWhitelist();
96
- if (whitelist) {
97
- tools = tools.filter((t) => whitelist.includes(t.name));
98
- this.logger.debug("Tools filtered by whitelist", {
99
- total: tools.length,
100
- whitelist: whitelist.length
101
- });
102
- }
103
- this.toolIndex = tools;
104
- this.minimalTools = this.toolSchemaLoader.toMinimalToolDefinitions(this.toolIndex);
105
- this.logger.debug("Tools loaded", { toolCount: this.toolIndex.length });
106
- // Initialize MCP client service (must be first - other services depend on it)
107
- this.mcpClient = new mcp_client_1.McpClientService(this.config.mcpServerUrl, this.botClient.config.mcpServerApiKey, this.logger);
108
- // Get workspace ID early - needed for schema cache and registration
109
- const workspaceId = this.botClient.workspaceCache?.currentWorkspace?._id || "";
110
- // Initialize workspace schema cache FIRST (discovers workflows dynamically)
111
- // This MUST happen before agent registration so we have dynamic workflow IDs
112
- this.schemaCache = new workspace_schema_cache_1.WorkspaceSchemaCacheService(this.logger, this.mcpClient.callMcpTool.bind(this.mcpClient));
113
- // Initialize schema for current workspace (may install template if missing)
114
- if (workspaceId) {
115
- await this.schemaCache.initializeForWorkspace(workspaceId);
116
- }
117
- // Initialize conversation manager
118
- this.conversationManager = new conversation_manager_1.ConversationManager(100, // maxConversations
119
- this.config.maxContextMessages || 50, this.client, this.logger);
120
- // Initialize tool executor
121
- this.toolExecutor = new tool_executor_1.ToolExecutor(this.mcpClient, this.logger);
122
- // Initialize message classifier
123
- this.messageClassifier = new message_classifier_1.MessageClassifier(this.botClient.userId, this.botClient, this.logger);
124
- // Create agent registry service WITH schema cache for dynamic ID lookup
125
- this.registryService = new agent_registry_1.AgentRegistryService(this.schemaCache, this.logger, this.mcpClient.callMcpTool.bind(this.mcpClient), this.getDefaultTeamId.bind(this));
126
- // Initialize message formatter service
127
- this.messageFormatter = new message_formatter_1.MessageFormatterService(this.botClient, this.logger, this.mcpClient.callMcpTool.bind(this.mcpClient));
128
- // Build agent info from config and abstract methods
129
- const { firstName, lastName } = this.getAgentName();
130
- const agentInfo = {
131
- firstName,
132
- lastName,
133
- description: this.getAgentDescription(),
134
- email: this.botClient.config.email,
135
- userId: this.botClient.userId,
136
- };
137
- // Try to load from cache first (workspace-scoped, 1 API call to verify)
138
- const cacheLoaded = await this.registryService.loadFromCache(this.botClient.userId, workspaceId);
139
- if (!cacheLoaded) {
140
- // Cache miss or invalid - do full registration using dynamic schema lookup
141
- this.logger.info("Starting full agent registration", { workspaceId });
142
- await this.registryService.registerAllAgentData(agentInfo, this.getPositionDetails(), this.config.mcpServerUrl, this.toolIndex, workspaceId);
143
- }
144
- // Subscribe to ALL messenger.new signals (no filtering)
145
- this.botClient.signalHandler.subscribe(`daemon-${this.botClient.userId}`, ["messenger.new"], this.handleSignal.bind(this));
146
- // Initialize session logger service (after registration so we have agentDirectoryId)
147
- this.sessionLogger = new session_logger_1.SessionLoggerService(this.registryService?.getAgentDirectoryId() ?? null, this.logger, this.mcpClient.callMcpTool.bind(this.mcpClient), this.getDefaultTeamId.bind(this));
148
- // Pass Anthropic client for conversation summary generation
149
- this.sessionLogger.setAnthropicClient(this.client);
150
- // Pass schema cache for dynamic workflow ID lookup
151
- if (workspaceId && this.schemaCache) {
152
- this.sessionLogger.setSchemaCache(this.schemaCache, workspaceId);
153
- }
154
- // Start idle session check timer (every 30 seconds)
155
- this.sessionLogger.startIdleCheckTimer(30_000);
156
- this.logger.info("Chat Agent Daemon initialized and listening", {
157
- workspaceId,
158
- agentDirectoryId: this.registryService.getAgentDirectoryId(),
159
- positionId: this.registryService.getPositionId(),
160
- teamId: this.registryService.getTeamId(),
161
- });
162
- }
163
- /**
164
- * Extract and classify incoming message from signal
165
- * Can be overridden in subclasses to customize filtering
166
- */
167
- async extractIncomingMessage(signal) {
168
- return this.messageClassifier.extractIncomingMessage(signal);
169
- }
170
- /**
171
- * Handle incoming signal from Hailer
172
- */
173
- async handleSignal(signal) {
174
- try {
175
- const message = await this.extractIncomingMessage(signal);
176
- if (!message)
177
- return;
178
- // Dedupe
179
- if (this.processedMessageIds.has(message.id)) {
180
- return;
181
- }
182
- this.processedMessageIds.add(message.id);
183
- // Clean up old IDs (keep last 500)
184
- if (this.processedMessageIds.size > 500) {
185
- const ids = Array.from(this.processedMessageIds);
186
- this.processedMessageIds = new Set(ids.slice(-250));
187
- }
188
- this.logger.info("Incoming message", {
189
- from: message.senderName,
190
- discussion: message.discussionId,
191
- priority: message.priority,
192
- reason: message.priorityReason,
193
- preview: message.content.substring(0, 50),
194
- });
195
- // Queue the message
196
- this.messageQueue.push(message);
197
- // Process if not already processing
198
- if (!this.isProcessing) {
199
- await this.processQueue();
200
- }
201
- }
202
- catch (error) {
203
- this.logger.error("Failed to handle signal", error);
204
- }
205
- }
206
- /**
207
- * Process queued messages through the LLM
208
- * Note: Uses flag-first pattern to prevent race conditions
209
- */
210
- async processQueue() {
211
- // Set flag FIRST to prevent race condition (multiple async calls)
212
- if (this.isProcessing)
213
- return;
214
- this.isProcessing = true;
215
- // Now check queue (after claiming the lock)
216
- if (this.messageQueue.length === 0) {
217
- this.isProcessing = false;
218
- return;
219
- }
220
- try {
221
- // Sort by priority (high first) then by timestamp
222
- this.messageQueue.sort((a, b) => {
223
- const priorityOrder = { high: 0, normal: 1, low: 2 };
224
- if (priorityOrder[a.priority] !== priorityOrder[b.priority]) {
225
- return priorityOrder[a.priority] - priorityOrder[b.priority];
226
- }
227
- return a.timestamp - b.timestamp;
228
- });
229
- // Process one message at a time for now
230
- while (this.messageQueue.length > 0) {
231
- const message = this.messageQueue.shift();
232
- await this.processMessage(message);
233
- }
234
- }
235
- finally {
236
- this.isProcessing = false;
237
- }
238
- }
239
- /**
240
- * Process a single message through the persistent LLM conversation
241
- */
242
- async processMessage(message) {
243
- const startTime = Date.now();
244
- // Update current context for session tracking
245
- this.currentDiscussionId = message.discussionId;
246
- this.currentLinkedActivityId = message.linkedActivityId || null;
247
- // Multi-tenant: Initialize schema cache for this workspace on-demand
248
- // Each workspace has its own workflow IDs - must be cached before processing
249
- if (this.schemaCache && message.workspaceId) {
250
- const schemas = this.schemaCache.getSchemas(message.workspaceId);
251
- if (!schemas?.initialized) {
252
- this.logger.info("Initializing schema cache for workspace", { workspaceId: message.workspaceId });
253
- await this.schemaCache.initializeForWorkspace(message.workspaceId);
254
- // Update session logger with workspace-specific schema
255
- if (this.sessionLogger) {
256
- this.sessionLogger.setSchemaCache(this.schemaCache, message.workspaceId);
257
- }
258
- }
259
- }
260
- // Start typing indicator with auto-refresh
261
- this.startTypingIndicator(message.discussionId);
262
- // Get or create activity session
263
- const session = this.sessionLogger.getOrCreateActivitySession(message);
264
- session.lastActivityTime = Date.now();
265
- session.metrics.messagesProcessed++;
266
- // Add user message to conversation log (compact version)
267
- const userSnippet = message.content.length > 100
268
- ? message.content.substring(0, 100) + "..."
269
- : message.content;
270
- session.conversation.push(`${message.senderName}: ${userSnippet}`);
271
- // Format incoming message for LLM
272
- const incomingContent = this.formatIncomingMessage(message);
273
- // Get conversation for THIS discussion (isolated context)
274
- const conversation = this.conversationManager.getConversation(message.discussionId);
275
- // Load memory from Hailer if this is a new conversation for an activity
276
- if (conversation.length === 0 && message.linkedActivityId) {
277
- await this.injectMemoryForActivity(conversation, message.linkedActivityId, message.workspaceId);
278
- }
279
- // Append to conversation
280
- conversation.push({
281
- role: "user",
282
- content: incomingContent,
283
- });
284
- // Check context size and summarize if needed
285
- await this.conversationManager.manageContextSize(message.discussionId);
286
- try {
287
- // Call LLM with this discussion's conversation
288
- const response = await this.client.messages.create({
289
- model: this.config.model || "claude-haiku-4-5-20251001",
290
- max_tokens: 2000,
291
- system: this.getSystemPrompt(),
292
- messages: conversation,
293
- tools: this.getTools(),
294
- });
295
- // Track token usage in the activity session
296
- if (response.usage) {
297
- session.metrics.inputTokens += response.usage.input_tokens;
298
- session.metrics.outputTokens += response.usage.output_tokens;
299
- }
300
- // Handle response
301
- await this.handleLlmResponse(response, message);
302
- const duration = Date.now() - startTime;
303
- this.logger.info("Message processed", {
304
- discussion: message.discussionId,
305
- duration,
306
- stopReason: response.stop_reason,
307
- sessionActivity: session.activityName,
308
- });
309
- // Update last activity time (idle checker will flush when needed)
310
- session.lastActivityTime = Date.now();
311
- }
312
- catch (error) {
313
- this.logger.error("LLM processing failed", error);
314
- // Stop typing indicator on error
315
- this.stopTypingIndicator();
316
- // On error, remove the message from conversation to avoid poisoning context
317
- if (conversation.length > 0) {
318
- conversation.pop();
319
- }
320
- }
321
- }
322
- /**
323
- * Format incoming message for LLM consumption
324
- */
325
- formatIncomingMessage(message) {
326
- const priorityTag = message.priority === "high" ? " priority=\"high\"" : "";
327
- const reasonAttr = message.priority === "high" ? ` reason="${message.priorityReason}"` : "";
328
- const activityAttr = message.linkedActivityId ? ` activity_id="${message.linkedActivityId}"` : "";
329
- return `<incoming discussion="${message.discussionId}"${activityAttr} from="${message.senderName}" user_id="${message.senderId}" timestamp="${new Date(message.timestamp).toISOString()}"${priorityTag}${reasonAttr}>
330
- ${message.content}
331
- </incoming>`;
332
- }
333
- /**
334
- * Load and inject memory for an activity into conversation context
335
- * Called when entering a new discussion that's linked to an activity
336
- */
337
- async injectMemoryForActivity(conversation, activityId, workspaceId) {
338
- try {
339
- const memoryEntries = await this.sessionLogger.loadMemoryForActivity(activityId, workspaceId, 5);
340
- if (memoryEntries.length > 0) {
341
- const memoryContext = this.sessionLogger.formatMemoryForContext(memoryEntries);
342
- // Inject memory as a system-like user message at the start
343
- conversation.push({
344
- role: "user",
345
- content: memoryContext,
346
- });
347
- // Add acknowledgment to keep conversation valid (assistant must respond)
348
- conversation.push({
349
- role: "assistant",
350
- content: "I've loaded context from previous interactions with this activity. I'll use this to provide better continuity.",
351
- });
352
- this.logger.info("Injected memory into conversation", {
353
- activityId,
354
- memoryCount: memoryEntries.length,
355
- });
356
- }
357
- }
358
- catch (error) {
359
- this.logger.warn("Failed to inject memory", {
360
- activityId,
361
- error: error instanceof Error ? error.message : String(error),
362
- });
363
- // Continue without memory - not critical
364
- }
365
- }
366
- /**
367
- * Execute tool calls and continue the conversation
368
- * Simple passthrough - just execute tools and return results to LLM
369
- */
370
- async executeToolsAndContinue(toolUseBlocks, originalMessage) {
371
- // Get current activity session
372
- const sessionKey = this.currentLinkedActivityId || this.currentDiscussionId || "default";
373
- const session = this.sessionLogger.getSession(sessionKey);
374
- // Store the user's request that triggered these tool calls (for context)
375
- if (session && !session.triggerRequest) {
376
- session.triggerRequest = originalMessage.content.substring(0, 500);
377
- session.requestedBy = originalMessage.senderName;
378
- session.requestedById = originalMessage.senderId;
379
- }
380
- // Execute tools using the tool executor service
381
- const toolResults = await this.toolExecutor.executeTools(toolUseBlocks, {
382
- session,
383
- preprocessToolInput: this.preprocessToolInput.bind(this),
384
- });
385
- // Get conversation for this discussion
386
- const conversation = this.conversationManager.getConversation(originalMessage.discussionId);
387
- // Add tool results to conversation
388
- conversation.push({
389
- role: "user",
390
- content: toolResults,
391
- });
392
- // Continue with LLM
393
- const response = await this.client.messages.create({
394
- model: this.config.model || "claude-haiku-4-5-20251001",
395
- max_tokens: 2000,
396
- system: this.getSystemPrompt(),
397
- messages: conversation,
398
- tools: this.getTools(),
399
- });
400
- // Track token usage in session
401
- if (session && response.usage) {
402
- session.metrics.inputTokens += response.usage.input_tokens;
403
- session.metrics.outputTokens += response.usage.output_tokens;
404
- session.lastActivityTime = Date.now();
405
- }
406
- // Recursively handle (might need more tools or finally respond)
407
- await this.handleLlmResponse(response, originalMessage);
408
- }
409
- /**
410
- * Handle LLM response
411
- * Override in subclasses to customize response handling
412
- */
413
- async handleLlmResponse(response, originalMessage) {
414
- // Get conversation for this discussion
415
- const conversation = this.conversationManager.getConversation(originalMessage.discussionId);
416
- // Add assistant response to conversation
417
- // Cast response content to MessageParam content type (ContentBlock[] → ContentBlockParam[])
418
- conversation.push({
419
- role: "assistant",
420
- content: response.content,
421
- });
422
- // Check for tool calls
423
- const toolUseBlocks = response.content.filter((block) => block.type === "tool_use");
424
- if (toolUseBlocks.length > 0) {
425
- // Execute tools and continue conversation
426
- await this.executeToolsAndContinue(toolUseBlocks, originalMessage);
427
- return;
428
- }
429
- // Check for text response
430
- const textBlocks = response.content.filter((block) => block.type === "text");
431
- if (textBlocks.length > 0) {
432
- const responseText = textBlocks.map(b => b.text).join("\n").trim();
433
- // Log metadata only - avoid logging user content (PII risk)
434
- this.logger.info("LLM response received", {
435
- discussion: originalMessage.discussionId,
436
- priority: originalMessage.priority,
437
- responseLength: responseText.length,
438
- hasIgnoreTag: responseText.includes("<ignore"),
439
- hasRespondTag: responseText.includes("<respond"),
440
- });
441
- // Check for IGNORE decision
442
- if (responseText.includes("<decision>IGNORE</decision>") ||
443
- responseText.includes("<ignore")) {
444
- this.logger.debug("LLM decided to ignore message - removing from context", {
445
- discussion: originalMessage.discussionId,
446
- });
447
- // Stop typing indicator
448
- this.stopTypingIndicator();
449
- // Remove both the assistant's ignore response AND the original incoming message
450
- // to keep the context clean from irrelevant chatter
451
- conversation.pop(); // Remove assistant response we just added
452
- conversation.pop(); // Remove the incoming message
453
- return;
454
- }
455
- // Check for explicit response directive
456
- const responseMatch = responseText.match(/<respond discussion="([^"]+)">([\s\S]*?)<\/respond>/);
457
- if (responseMatch) {
458
- const targetDiscussion = responseMatch[1];
459
- const content = responseMatch[2].trim();
460
- await this.postResponse(targetDiscussion, content);
461
- return;
462
- }
463
- // For high priority messages, always send substantive responses
464
- if (originalMessage.priority === "high" && responseText &&
465
- !responseText.includes("<thinking>") &&
466
- !responseText.startsWith("I'll") &&
467
- responseText.length > 10) {
468
- await this.postResponse(originalMessage.discussionId, responseText);
469
- return;
470
- }
471
- // For normal priority, ONLY respond if LLM used explicit <respond> tag
472
- // This was already handled above - if we reach here, don't post
473
- // (LLM should use <respond> or <ignore> for normal priority messages)
474
- if (originalMessage.priority === "normal") {
475
- this.logger.debug("Normal priority without <respond> tag - removing from context", {
476
- discussion: originalMessage.discussionId,
477
- responsePreview: responseText.substring(0, 100),
478
- });
479
- // Stop typing indicator
480
- this.stopTypingIndicator();
481
- // Remove from context - we didn't respond so don't need this in history
482
- conversation.pop(); // Remove assistant response
483
- conversation.pop(); // Remove incoming message
484
- }
485
- }
486
- }
487
- /**
488
- * Start typing indicator with auto-refresh interval
489
- * Keeps refreshing every 3 seconds until stopTypingIndicator is called
490
- */
491
- startTypingIndicator(discussionId) {
492
- // Stop any existing typing interval
493
- this.stopTypingIndicator();
494
- this.typingDiscussionId = discussionId;
495
- // Send initial typing signal
496
- this.sendTypingSignal(discussionId, true);
497
- // Set up interval to refresh typing (prevents server-side timeout)
498
- this.typingInterval = setInterval(() => {
499
- if (this.typingDiscussionId) {
500
- this.sendTypingSignal(this.typingDiscussionId, true);
501
- }
502
- }, ChatAgentDaemon.TYPING_REFRESH_MS);
503
- }
504
- /**
505
- * Stop typing indicator and clear refresh interval
506
- */
507
- stopTypingIndicator() {
508
- if (this.typingInterval) {
509
- clearInterval(this.typingInterval);
510
- this.typingInterval = null;
511
- }
512
- if (this.typingDiscussionId) {
513
- this.sendTypingSignal(this.typingDiscussionId, false);
514
- this.typingDiscussionId = null;
515
- }
516
- }
517
- /**
518
- * Send typing signal to Hailer API
519
- * API: messenger.set_discussion_typing_state(discussionId, typingState)
520
- */
521
- sendTypingSignal(discussionId, isTyping) {
522
- this.botClient.client.socket.request("messenger.set_discussion_typing_state", [
523
- discussionId,
524
- isTyping
525
- ]).catch((error) => {
526
- // Silently ignore - typing indicator is not critical
527
- this.logger.debug("Typing indicator failed", { discussionId, isTyping, error: error?.message });
528
- });
529
- }
530
- /**
531
- * Post a response to a discussion
532
- * Automatically converts @mentions and #activity tags to Hailer tags
533
- * Includes links metadata required for tags to work
534
- */
535
- async postResponse(discussionId, content) {
536
- // Stop typing indicator before posting
537
- this.stopTypingIndicator();
538
- try {
539
- // Resolve tags that need API lookup
540
- let formattedContent = await this.messageFormatter.resolveUserTags(content); // @userId → [hailerTag|Name](id)
541
- formattedContent = await this.messageFormatter.resolveActivityTags(formattedContent); // #activityId → [hailerTag|Name](id)
542
- formattedContent = await this.messageFormatter.resolveHailerUrls(formattedContent); // URLs → [hailerTag|Name](id)
543
- // Then convert any remaining @mentions from cache (fallback)
544
- formattedContent = this.messageFormatter.convertMentionsToTags(formattedContent);
545
- // Remove redundant "(Name)" after tags - LLM sometimes adds these
546
- formattedContent = formattedContent.replace(/(\[hailerTag\|[^\]]+\]\([a-f0-9]{24}\)\uFEFF?)\s*\([^)]+\)/gi, '$1');
547
- // Extract link metadata for any tags in the content
548
- const links = this.messageFormatter.extractTagLinks(formattedContent);
549
- // Build message object with links if we have any
550
- const messageData = {
551
- msg: formattedContent
552
- };
553
- if (links.length > 0) {
554
- messageData.links = links;
555
- }
556
- await this.botClient.client.socket.request("messenger.send", [
557
- messageData,
558
- discussionId,
559
- ]);
560
- // Track response in activity session
561
- const sessionKey = this.currentLinkedActivityId || this.currentDiscussionId || "default";
562
- const session = this.sessionLogger.getSession(sessionKey);
563
- if (session) {
564
- session.metrics.responsesPosted++;
565
- session.actions.push(`Responded in discussion`);
566
- session.lastActivityTime = Date.now();
567
- // Add bot response to conversation log (compact version)
568
- const botSnippet = content.length > 100 ? content.substring(0, 100) + "..." : content;
569
- session.conversation.push(`Bot: ${botSnippet}`);
570
- }
571
- this.logger.info("Response posted", {
572
- discussion: discussionId,
573
- length: formattedContent.length,
574
- hadTags: formattedContent !== content,
575
- linkCount: links.length,
576
- });
577
- }
578
- catch (error) {
579
- this.logger.error("Failed to post response", error);
580
- }
581
- }
582
- /**
583
- * Get the system prompt for the daemon
584
- * MUST be overridden in subclasses
585
- */
586
- getSystemPrompt() {
587
- throw new Error("getSystemPrompt() must be implemented by subclass");
588
- }
589
- /**
590
- * Get tools for LLM calls
591
- * Override in subclass to add custom tools (like trigger_giuseppe_retry)
592
- */
593
- getTools() {
594
- return this.minimalTools;
595
- }
596
- /**
597
- * Get tool whitelist for this agent
598
- * Override in subclass to limit which tools are available
599
- * Return null for all tools, or array of tool names
600
- */
601
- getToolWhitelist() {
602
- return null; // Default: all tools
603
- }
604
- /**
605
- * Preprocess tool input before execution
606
- * Override in subclass to inject context (e.g., sourceActivityId)
607
- * @param toolName - Name of the tool being called
608
- * @param input - Original tool input from LLM
609
- * @returns Processed input (may be modified)
610
- */
611
- preprocessToolInput(toolName, input) {
612
- return input; // Default: no preprocessing
613
- }
614
- /**
615
- * Call MCP tool (delegates to McpClientService)
616
- * Protected for subclass access
617
- */
618
- async callMcpTool(name, args) {
619
- return this.mcpClient.callMcpTool(name, args);
620
- }
621
- /**
622
- * Stop the daemon
623
- * Flushes all pending activity sessions before stopping
624
- */
625
- async stop() {
626
- // Stop idle check timer and flush all pending sessions
627
- this.sessionLogger?.stopIdleCheckTimer();
628
- await this.sessionLogger?.flushAllSessions();
629
- this.botClient.signalHandler.unsubscribe(`daemon-${this.botClient.userId}`);
630
- this.logger.info("Chat Agent Daemon stopped", {
631
- agentDirectoryId: this.registryService?.getAgentDirectoryId(),
632
- activeSessions: this.sessionLogger?.getActiveSessions().size ?? 0,
633
- });
634
- }
635
- /**
636
- * Get current conversation state (for debugging)
637
- */
638
- getConversationState() {
639
- // Get current discussion's conversation
640
- const currentConversation = this.currentDiscussionId
641
- ? this.conversationManager.getConversation(this.currentDiscussionId)
642
- : [];
643
- // Get last 5 messages with preview
644
- const lastMessages = currentConversation.slice(-5).map(msg => {
645
- let preview = "";
646
- if (typeof msg.content === "string") {
647
- preview = msg.content.substring(0, 100);
648
- }
649
- else if (Array.isArray(msg.content)) {
650
- const textBlock = msg.content.find((b) => b.type === "text");
651
- preview = textBlock?.text?.substring(0, 100) || "[tool call/result]";
652
- }
653
- return {
654
- role: msg.role,
655
- preview: preview + (preview.length >= 100 ? "..." : ""),
656
- };
657
- });
658
- const state = this.conversationManager.getState(this.currentDiscussionId ?? undefined);
659
- return {
660
- discussionCount: state.discussionCount,
661
- currentDiscussion: this.currentDiscussionId,
662
- currentMessageCount: currentConversation.length,
663
- queueLength: this.messageQueue.length,
664
- lastMessages,
665
- isProcessing: this.isProcessing,
666
- };
667
- }
668
- /**
669
- * Get full conversation for a specific discussion (for debugging)
670
- */
671
- getFullConversation(discussionId) {
672
- const targetDiscussion = discussionId || this.currentDiscussionId;
673
- if (!targetDiscussion)
674
- return [];
675
- return [...this.conversationManager.getFullConversation(targetDiscussion)];
676
- }
677
- // ===== AGENT REGISTRY & SESSION LOGGING METHODS =====
678
- /**
679
- * Get agent's display name (override in subclass for custom names)
680
- * Default implementation uses the actual Hailer user name from BotClient
681
- */
682
- getAgentName() {
683
- // Use actual Hailer user name from BotClient (populated from workspace cache)
684
- return {
685
- firstName: this.botClient.firstName,
686
- lastName: this.botClient.lastName,
687
- };
688
- }
689
- /**
690
- * Get agent's description/system prompt (override in subclass)
691
- */
692
- getAgentDescription() {
693
- return "Chat Agent Daemon - handles general workspace conversations";
694
- }
695
- /**
696
- * Get default team ID from workspace cache
697
- * Returns the first available team, or undefined if no teams exist
698
- *
699
- * Teams structure in init is: { teams: { workspaceId: { teamId: teamData, ... } } }
700
- */
701
- getDefaultTeamId() {
702
- const rawInit = this.botClient.workspaceCache?.rawInit;
703
- if (!rawInit?.teams) {
704
- this.logger.debug("No teams in workspace cache");
705
- return undefined;
706
- }
707
- // Teams are nested under workspace ID
708
- // Structure: { workspaceId: { teamId1: {...}, teamId2: {...} } }
709
- const workspaceTeams = Object.values(rawInit.teams)[0];
710
- if (!workspaceTeams || typeof workspaceTeams !== 'object') {
711
- this.logger.debug("No workspace teams found");
712
- return undefined;
713
- }
714
- const teamIds = Object.keys(workspaceTeams);
715
- if (teamIds.length === 0) {
716
- this.logger.debug("No teams available in workspace");
717
- return undefined;
718
- }
719
- const defaultTeamId = teamIds[0];
720
- const teamName = workspaceTeams[defaultTeamId]?.name || 'unknown';
721
- this.logger.debug("Using default team", { teamId: defaultTeamId, teamName, teamCount: teamIds.length });
722
- return defaultTeamId;
723
- }
724
- /**
725
- * Get agent's Position details (override in subclass for custom positions)
726
- */
727
- getPositionDetails() {
728
- return {
729
- name: "Chat Agent",
730
- purpose: "General workspace assistant that monitors discussions and responds to user queries.",
731
- personaTone: "Professional, helpful, and concise. Responds directly without unnecessary filler.",
732
- coreCapabilities: "- Monitor workspace discussions\n- Answer questions about workflows and activities\n- Execute MCP tools to read/write data\n- Tag users and link activities",
733
- boundaries: "- Never fabricate data - always use tools\n- Don't respond to off-topic messages\n- Don't share sensitive credentials",
734
- };
735
- }
736
- /**
737
- * Get agent directory ID
738
- */
739
- getAgentDirectoryId() {
740
- return this.registryService?.getAgentDirectoryId() || null;
741
- }
742
- }
743
- exports.ChatAgentDaemon = ChatAgentDaemon;
744
- //# sourceMappingURL=base.js.map