@hailer/mcp 1.2.0 → 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 +148 -81
  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
@@ -0,0 +1,593 @@
1
+ "use strict";
2
+ /**
3
+ * Public chat graduation handler.
4
+ *
5
+ * Endpoint that runs at the tail of the demo-chat → workspace flow. The
6
+ * frontend opens Hailer's `/authorize/user-api-key` popup with this
7
+ * endpoint as `redirectUri`. Hailer POSTs the user's freshly-minted
8
+ * apiKey back to us as form-encoded body; we use it to:
9
+ *
10
+ * 1. Resolve the user's workspace and persist admin credentials so the
11
+ * bot webhook handler can authenticate later activity events.
12
+ * 2. Install the Agent Directory workflow if the (brand-new) workspace
13
+ * doesn't have one.
14
+ * 3. Create a bot activity directly in the Deployed phase. The phase
15
+ * webhook (configured during install) fires back to our own server,
16
+ * which auto-provisions the bot's Hailer user.
17
+ * 4. Poll the activity until `hailerProfile` is set — i.e., the bot
18
+ * account exists and BotManager can pick it up.
19
+ * 5. Redirect the popup to Hailer's `/authorize/complete` page so the
20
+ * surrounding frontend logic knows we're done.
21
+ *
22
+ * No idempotent re-claim (each authorize creates a fresh bot). If
23
+ * STUDIO_URL is set, the background task additionally pre-warms a
24
+ * Studio session for the new user so they have a ready coding session
25
+ * waiting on their first visit.
26
+ */
27
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
28
+ if (k2 === undefined) k2 = k;
29
+ var desc = Object.getOwnPropertyDescriptor(m, k);
30
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
31
+ desc = { enumerable: true, get: function() { return m[k]; } };
32
+ }
33
+ Object.defineProperty(o, k2, desc);
34
+ }) : (function(o, m, k, k2) {
35
+ if (k2 === undefined) k2 = k;
36
+ o[k2] = m[k];
37
+ }));
38
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
39
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
40
+ }) : function(o, v) {
41
+ o["default"] = v;
42
+ });
43
+ var __importStar = (this && this.__importStar) || (function () {
44
+ var ownKeys = function(o) {
45
+ ownKeys = Object.getOwnPropertyNames || function (o) {
46
+ var ar = [];
47
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
48
+ return ar;
49
+ };
50
+ return ownKeys(o);
51
+ };
52
+ return function (mod) {
53
+ if (mod && mod.__esModule) return mod;
54
+ var result = {};
55
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
56
+ __setModuleDefault(result, mod);
57
+ return result;
58
+ };
59
+ })();
60
+ Object.defineProperty(exports, "__esModule", { value: true });
61
+ exports.PUBLIC_CHAT_AUTHORIZE_ROUTE = void 0;
62
+ exports.createPublicChatAuthorizeHandler = createPublicChatAuthorizeHandler;
63
+ const crypto = __importStar(require("crypto"));
64
+ const logger_1 = require("../lib/logger");
65
+ const config_1 = require("../config");
66
+ const hailer_clients_1 = require("../mcp/hailer-clients");
67
+ const hailer_rpc_1 = require("../mcp/hailer-rpc");
68
+ const workspace_admin_store_1 = require("../mcp/workspace-admin-store");
69
+ const workflow_installer_1 = require("../bot-config/workflow-installer");
70
+ const webhook_handler_1 = require("../mcp/webhook-handler");
71
+ const session_store_1 = require("./session-store");
72
+ const studio_prewarm_1 = require("./studio-prewarm");
73
+ const logger = (0, logger_1.createLogger)({ component: 'public-chat-graduate' });
74
+ exports.PUBLIC_CHAT_AUTHORIZE_ROUTE = '/api/public-chat/authorize';
75
+ const UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
76
+ /**
77
+ * Resolve the Hailer frontend origin to redirect the popup back to. The
78
+ * Hailer authorize page POSTs to us with its own Origin/Referer header
79
+ * (e.g. https://app.k8s.hailer.com), and the redirect must land on that
80
+ * same origin or the popup will hit a Hailer instance the user is not
81
+ * signed into — which bounces them to the default landing page (e.g.
82
+ * activities tab) instead of running /authorize/complete's window.close.
83
+ *
84
+ * Browsers send the literal four-character string `null` as the Origin
85
+ * header for tainted-origin requests — cross-origin form POSTs that
86
+ * cross schemes (e.g. https://localhost:9443 → http://localhost:3030)
87
+ * fall into this. Treat that as "no origin" and continue to referer/env,
88
+ * otherwise the redirect Location becomes `null/#/authorize/complete?…`
89
+ * which browsers resolve *relative* to the current URL.
90
+ *
91
+ * Falls back to environment.HAILER_APP_URL when no usable header is set.
92
+ */
93
+ function isValidAbsoluteHttpUrl(value) {
94
+ try {
95
+ const parsed = new URL(value);
96
+ return parsed.protocol === 'http:' || parsed.protocol === 'https:';
97
+ }
98
+ catch {
99
+ return false;
100
+ }
101
+ }
102
+ function resolveHailerOrigin(req) {
103
+ const origin = typeof req.headers.origin === 'string' ? req.headers.origin.trim() : '';
104
+ if (origin && origin !== 'null' && isValidAbsoluteHttpUrl(origin)) {
105
+ return origin.replace(/\/+$/, '');
106
+ }
107
+ const referer = typeof req.headers.referer === 'string' ? req.headers.referer : '';
108
+ if (referer) {
109
+ try {
110
+ const parsed = new URL(referer);
111
+ if (parsed.protocol === 'http:' || parsed.protocol === 'https:') {
112
+ return `${parsed.protocol}//${parsed.host}`;
113
+ }
114
+ }
115
+ catch {
116
+ // Fall through to env default.
117
+ }
118
+ }
119
+ if (!isValidAbsoluteHttpUrl(config_1.environment.HAILER_APP_URL)) {
120
+ // Should be unreachable — config.ts validates HAILER_APP_URL via
121
+ // z.string().url() — but surface it loudly if a future config
122
+ // change ever ships an unvalidated value.
123
+ logger.error('HAILER_APP_URL is not a usable absolute HTTP(S) URL', undefined, {
124
+ hailerAppUrl: config_1.environment.HAILER_APP_URL,
125
+ origin,
126
+ referer,
127
+ });
128
+ }
129
+ logger.debug('resolveHailerOrigin falling back to HAILER_APP_URL', {
130
+ origin: origin || '(unset)',
131
+ referer: referer || '(unset)',
132
+ fallback: config_1.environment.HAILER_APP_URL,
133
+ });
134
+ return config_1.environment.HAILER_APP_URL.replace(/\/+$/, '');
135
+ }
136
+ function completeUrl(hailerOrigin, status, message, extras) {
137
+ const params = new URLSearchParams({ status });
138
+ if (message) {
139
+ params.set('message', message);
140
+ }
141
+ if (extras) {
142
+ for (const [key, value] of Object.entries(extras)) {
143
+ if (value !== undefined && value !== '') {
144
+ params.set(key, value);
145
+ }
146
+ }
147
+ }
148
+ return `${hailerOrigin}/#/authorize/complete?${params.toString()}`;
149
+ }
150
+ /**
151
+ * Variant of completeUrl for the "signed up but not yet verified" branch.
152
+ * Echoes sessionId back so the demo page can key its localStorage flag to
153
+ * the same chat conversation when the user later clicks "I've verified —
154
+ * finish setup". Reason is enumerable so the frontend can branch on it
155
+ * (today: 'email-not-verified').
156
+ */
157
+ function pendingUrl(hailerOrigin, sessionId, reason) {
158
+ const params = new URLSearchParams({
159
+ status: 'pending',
160
+ reason,
161
+ sessionId,
162
+ });
163
+ return `${hailerOrigin}/#/authorize/complete?${params.toString()}`;
164
+ }
165
+ /**
166
+ * Read `user.emailVerified` from v2.core.init. Hailer's admin-side RPCs
167
+ * (e.g. v3.user.register for the bot account) reject unverified users
168
+ * with `403 "Validate your email."`, so if we ran the graduation chain
169
+ * before verification it would leave an orphan workspace with no bot,
170
+ * no discussion, and no recovery path.
171
+ *
172
+ * Returns:
173
+ * - { verified: true } → continue with graduation
174
+ * - { verified: false } → redirect popup to status=pending
175
+ * - { error } → upstream RPC error; surface as status=error
176
+ *
177
+ * Treats anything other than literal `true` (missing, false, null, or
178
+ * a non-boolean) as unverified — better to ask the user to verify one
179
+ * extra time than to silently produce a half-broken workspace.
180
+ */
181
+ async function isEmailVerified(client) {
182
+ try {
183
+ const init = await client.socket.request(hailer_rpc_1.HailerRpc.Core.init, [['user']]);
184
+ const verified = init?.user?.emailVerified === true;
185
+ logger.debug('isEmailVerified', {
186
+ verified,
187
+ userId: init?.user?._id,
188
+ rawEmailVerified: init?.user?.emailVerified,
189
+ });
190
+ return { verified };
191
+ }
192
+ catch (err) {
193
+ const message = err instanceof Error ? err.message : String(err);
194
+ return { error: `Could not read user.emailVerified: ${message}` };
195
+ }
196
+ }
197
+ function generateBotEmail(workspaceId) {
198
+ const wsPrefix = workspaceId.toLowerCase().replace(/[^a-z0-9]/g, '').slice(0, 8);
199
+ const suffix = crypto.randomBytes(3).toString('hex');
200
+ return `bot-${wsPrefix || 'ws'}-${suffix}@hailer.com`;
201
+ }
202
+ async function resolveWorkspaceAndTeam(client) {
203
+ const init = await client.socket.request(hailer_rpc_1.HailerRpc.Core.init, [['network', 'teams']]);
204
+ const workspaceId = init?.network?._id;
205
+ if (!workspaceId) {
206
+ return { error: 'Could not resolve workspaceId from API key' };
207
+ }
208
+ const teamIds = init?.teams ? Object.keys(init.teams) : [];
209
+ if (teamIds.length === 0) {
210
+ return { error: 'Workspace has no teams — cannot place bot activity' };
211
+ }
212
+ return { workspaceId, teamId: teamIds[0] };
213
+ }
214
+ // Slide ids the demo deck currently knows about. Anything outside this set
215
+ // arriving via the URL is ignored — keeps unknown ids from leaking into the
216
+ // bot's intro prompt.
217
+ const KNOWN_SLIDE_IDS = new Set([
218
+ 'title', 'what', 'problem', 'core-label', 'workspaces', 'workflows',
219
+ 'activities', 'discussions', 'build-label', 'apps-studio', 'sdk',
220
+ 'sdk-code', 'mcp', 'insights', 'closer',
221
+ ]);
222
+ /**
223
+ * Pull the public-chat demo turns for `sessionId` and serialize them into
224
+ * the shape `bot.ts:parseSeedTurns` expects. Two output shapes:
225
+ * - bare JSON array of turns (no viewed slides) — backwards-compatible.
226
+ * - JSON object `{ turns, viewedSlides }` (when the visitor opened slides).
227
+ *
228
+ * Returns `undefined` when there's nothing meaningful to forward.
229
+ */
230
+ function buildSeedContext(sessionId, viewedSlides = []) {
231
+ const turns = session_store_1.publicChatSessionStore.get(sessionId);
232
+ const filteredSlides = viewedSlides.filter((id) => KNOWN_SLIDE_IDS.has(id));
233
+ if ((!turns || turns.length === 0) && filteredSlides.length === 0) {
234
+ return undefined;
235
+ }
236
+ const turnPayload = (turns || []).map((turn) => ({ role: turn.role, content: turn.content }));
237
+ if (filteredSlides.length === 0) {
238
+ // Preserve the original bare-array shape so older bots still parse it.
239
+ return JSON.stringify(turnPayload);
240
+ }
241
+ return JSON.stringify({ turns: turnPayload, viewedSlides: filteredSlides });
242
+ }
243
+ /** Best-effort turn count for log output — tolerates both seedContext shapes. */
244
+ function countSeedTurnsForLog(seedContext) {
245
+ if (!seedContext)
246
+ return 0;
247
+ try {
248
+ const parsed = JSON.parse(seedContext);
249
+ if (Array.isArray(parsed))
250
+ return parsed.length;
251
+ if (parsed && typeof parsed === 'object' && Array.isArray(parsed.turns)) {
252
+ return (parsed.turns).length;
253
+ }
254
+ }
255
+ catch {
256
+ // ignored — log 0
257
+ }
258
+ return 0;
259
+ }
260
+ async function createBotActivity(client, workspaceId, teamId, workflowId, deployedPhaseId, seedContext) {
261
+ const email = generateBotEmail(workspaceId);
262
+ const schemaConfig = JSON.stringify({
263
+ workflowId,
264
+ deployedPhaseId,
265
+ responseMode: 'always',
266
+ // Provision the bot's Hailer account as a workspace admin. The
267
+ // graduation flow drops a brand-new visitor into a workspace
268
+ // where this bot is effectively their starter assistant — it
269
+ // needs admin to install workflows, invite collaborators, and
270
+ // configure the workspace on their behalf.
271
+ memberRole: 'admin',
272
+ // Run as the Hailer Helper persona: UI guidance (highlights,
273
+ // navigation links), plain-language concept explanations, and the
274
+ // opt-in onboarding tour. The graduation seedContext keeps it
275
+ // anchored on what the visitor came to build — buildSystemPrompt
276
+ // sees both helperMode and the seed and steers the Helper persona
277
+ // to continue that intent rather than run the from-zero tour.
278
+ helperMode: true,
279
+ });
280
+ const fields = {
281
+ firstName: 'Hailer',
282
+ lastName: 'Helper',
283
+ agentEmailInHailer: email,
284
+ password: `pending-${crypto.randomBytes(8).toString('hex')}`,
285
+ botType: 'specialist',
286
+ schemaConfig,
287
+ accessLevel: 'all',
288
+ ...(seedContext ? { seedContext } : {}),
289
+ };
290
+ const activity = {
291
+ name: 'Hailer Helper',
292
+ teamId,
293
+ phaseId: deployedPhaseId,
294
+ fields,
295
+ };
296
+ try {
297
+ const result = await client.socket.request('v3.activity.createMany', [
298
+ workflowId,
299
+ [activity],
300
+ { returnDocument: true },
301
+ ]);
302
+ const activityId = Array.isArray(result) && result[0]?._id ? result[0]._id : undefined;
303
+ if (!activityId) {
304
+ return { error: 'Activity create returned no _id' };
305
+ }
306
+ return { activityId, activityName: activity.name, fields };
307
+ }
308
+ catch (err) {
309
+ const msg = err instanceof Error ? err.message : JSON.stringify(err);
310
+ return { error: `Failed to create bot activity: ${msg}` };
311
+ }
312
+ }
313
+ /**
314
+ * Locally invoke the bot-config webhook handler with a payload synthesized
315
+ * from the just-created activity. Hailer's phase webhook *should* fire on
316
+ * `webhookAdded:true`, but in local dev clusters (and possibly older
317
+ * Hailer versions in general) `v3.activity.createMany` doesn't trigger
318
+ * delivery — so the bot never provisions and the user lands in a silent
319
+ * workspace.
320
+ *
321
+ * The handler is just a function with no implicit HTTP dependency, and
322
+ * its first action is to probe the activity by ID to detect already-
323
+ * provisioned bots — so calling it inline is safe even if Hailer later
324
+ * delivers the real webhook (second call is a no-op).
325
+ *
326
+ * Field IDs are synthetic — `getFieldValue` matches by `.key`, not by
327
+ * `.id`, so the placeholders never get dereferenced. We pass the same
328
+ * `key` value as `id` so any future logging that surfaces `id` is
329
+ * still informative.
330
+ */
331
+ async function provisionBotInline(params) {
332
+ const payload = {
333
+ _id: params.activityId,
334
+ name: params.activityName,
335
+ process: params.workflowId,
336
+ cid: params.workspaceId,
337
+ currentPhase: params.deployedPhaseId,
338
+ uid: params.userId ?? '',
339
+ created: Date.now(),
340
+ updated: Date.now(),
341
+ fields: Object.entries(params.fields).map(([key, value]) => ({
342
+ id: key,
343
+ key,
344
+ type: 'text',
345
+ value,
346
+ })),
347
+ };
348
+ try {
349
+ const result = await (0, webhook_handler_1.handleBotConfigWebhook)(payload);
350
+ if (result.success) {
351
+ logger.info('Graduation (bg): bot provisioned via inline webhook handler', {
352
+ activityId: params.activityId,
353
+ workspaceId: params.workspaceId,
354
+ action: result.action,
355
+ botType: result.botType,
356
+ botUserId: result.userId,
357
+ });
358
+ return { botUserId: result.userId || undefined };
359
+ }
360
+ logger.warn('Graduation (bg): inline webhook handler returned non-success', {
361
+ activityId: params.activityId,
362
+ workspaceId: params.workspaceId,
363
+ action: result.action,
364
+ error: result.error,
365
+ });
366
+ }
367
+ catch (err) {
368
+ const message = err instanceof Error ? err.message : String(err);
369
+ logger.error('Graduation (bg): inline webhook handler threw', err, {
370
+ activityId: params.activityId,
371
+ workspaceId: params.workspaceId,
372
+ errorMessage: message,
373
+ });
374
+ }
375
+ return {};
376
+ }
377
+ async function runGraduationBackground(params) {
378
+ const { sessionId, workspaceId, workflowId, deployedPhaseId, activityId, activityName, fields, apiKey, userId, viewedSlides, } = params;
379
+ try {
380
+ // Provision the bot first so we know its Hailer user id before
381
+ // building the Studio brief — the brief tells the Studio builder to
382
+ // message the Helper bot (by that id) once it's done, asking it to
383
+ // offer the visitor a tour. We drive provisioning ourselves instead
384
+ // of waiting for Hailer's phase webhook: local Hailer clusters don't
385
+ // reliably fire webhookAdded on v3.activity.createMany, which leaves
386
+ // the user in a silent workspace. handleBotConfigWebhook is idempotent
387
+ // (probes for an already-provisioned bot before registering), so if
388
+ // Hailer does later deliver the real webhook it's a no-op.
389
+ //
390
+ // This runs a couple of seconds before the Studio session kicks off
391
+ // (vs. the other way around previously) — acceptable, since the
392
+ // Studio one-shot build then runs server-side for minutes.
393
+ const { botUserId } = await provisionBotInline({
394
+ workspaceId, workflowId, deployedPhaseId,
395
+ activityId, activityName, fields, userId,
396
+ });
397
+ // Build the brief from the demo conversation; pair the autonomous-
398
+ // builder persona with it only when we actually have something to
399
+ // build. When the bot provisioned successfully, hand its user id and
400
+ // activity id to the brief so the builder can locate the bot's
401
+ // discussion and post the post-build tour handoff.
402
+ const turns = session_store_1.publicChatSessionStore.get(sessionId) ?? [];
403
+ const initialPrompt = (0, studio_prewarm_1.buildStudioInitialPrompt)(turns.map(turn => ({ role: turn.role, content: turn.content })), viewedSlides, { helperBotUserId: botUserId, helperBotActivityId: activityId });
404
+ await (0, studio_prewarm_1.createStudioSession)({
405
+ apiKey,
406
+ workspaceId,
407
+ systemMessage: initialPrompt ? studio_prewarm_1.STUDIO_BUILDER_SYSTEM_MESSAGE : undefined,
408
+ initialPrompt,
409
+ });
410
+ }
411
+ catch (err) {
412
+ logger.error('Graduation (bg): unexpected failure', { sessionId, workspaceId, err });
413
+ }
414
+ }
415
+ /**
416
+ * Validate the freshly-minted user API key against Hailer's REST API.
417
+ * Hailer's `v3.user.apikey.create` returns synchronously but the key can
418
+ * take a few hundred ms to become usable on the API node we hit — retry
419
+ * a couple of times before giving up. On final failure, log the full
420
+ * downstream error and a sanitized version goes back to the popup so
421
+ * the user (and the dev tailing logs) can see *why*.
422
+ */
423
+ const VALIDATE_RETRY_BACKOFFS_MS = [0, 250, 600];
424
+ async function validateApiKeyWithRetry(apiKey) {
425
+ const apiKeyPrefix = apiKey.slice(0, 16);
426
+ const matchesUserApiKeyPrefix = apiKey.startsWith('userapikey_');
427
+ let lastErr;
428
+ for (let attempt = 0; attempt < VALIDATE_RETRY_BACKOFFS_MS.length; attempt++) {
429
+ const delayMs = VALIDATE_RETRY_BACKOFFS_MS[attempt];
430
+ if (delayMs > 0) {
431
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
432
+ }
433
+ try {
434
+ const client = await (0, hailer_clients_1.createHailerClientByApiKey)(apiKey);
435
+ if (attempt > 0) {
436
+ logger.info('Graduation: API key accepted after retry', {
437
+ attempt: attempt + 1,
438
+ apiKeyPrefix,
439
+ });
440
+ }
441
+ return client;
442
+ }
443
+ catch (err) {
444
+ lastErr = err;
445
+ const message = err instanceof Error ? err.message : String(err);
446
+ logger.warn('Graduation: API key validation attempt failed', {
447
+ attempt: attempt + 1,
448
+ totalAttempts: VALIDATE_RETRY_BACKOFFS_MS.length,
449
+ apiKeyPrefix,
450
+ matchesUserApiKeyPrefix,
451
+ botApiBaseUrl: config_1.environment.BOT_API_BASE_URL,
452
+ errorMessage: message,
453
+ });
454
+ }
455
+ }
456
+ // All retries exhausted. Log once at error with stack, return a
457
+ // user-facing string that includes the downstream error message so
458
+ // the popup is actionable instead of just "API key validation failed".
459
+ const downstreamMessage = lastErr instanceof Error ? lastErr.message : String(lastErr);
460
+ logger.error('Graduation: API key rejected after retries', lastErr, {
461
+ apiKeyPrefix,
462
+ matchesUserApiKeyPrefix,
463
+ botApiBaseUrl: config_1.environment.BOT_API_BASE_URL,
464
+ attempts: VALIDATE_RETRY_BACKOFFS_MS.length,
465
+ });
466
+ // Truncate to keep the popup URL sane; full error is in server logs.
467
+ const truncated = downstreamMessage.length > 240
468
+ ? `${downstreamMessage.slice(0, 240)}…`
469
+ : downstreamMessage;
470
+ return { error: `API key validation failed: ${truncated}` };
471
+ }
472
+ function createPublicChatAuthorizeHandler() {
473
+ return async (req, res) => {
474
+ const hailerOrigin = resolveHailerOrigin(req);
475
+ const sessionId = typeof req.query.sessionId === 'string' ? req.query.sessionId : '';
476
+ const apiKey = typeof req.body?.apiKey === 'string' ? req.body.apiKey : '';
477
+ // Optional comma-separated list of overview-slide ids the visitor
478
+ // opened during the demo. Whitelisted in buildSeedContext.
479
+ const viewedSlides = typeof req.query.viewedSlides === 'string' && req.query.viewedSlides.length > 0
480
+ ? req.query.viewedSlides.split(',').map((s) => s.trim()).filter(Boolean)
481
+ : [];
482
+ if (!UUID_REGEX.test(sessionId)) {
483
+ res.redirect(303, completeUrl(hailerOrigin, 'error', 'Missing or invalid sessionId'));
484
+ return;
485
+ }
486
+ if (!apiKey) {
487
+ res.redirect(303, completeUrl(hailerOrigin, 'error', 'Missing apiKey'));
488
+ return;
489
+ }
490
+ logger.info('Public-chat graduation started', { sessionId, hailerOrigin });
491
+ const client = await validateApiKeyWithRetry(apiKey);
492
+ if ('error' in client) {
493
+ res.redirect(303, completeUrl(hailerOrigin, 'error', client.error));
494
+ return;
495
+ }
496
+ // Gate everything that calls admin-style Hailer RPCs (workflow
497
+ // install, v3.user.register for the bot, etc.) on the visitor
498
+ // having verified their email — Hailer rejects those with
499
+ // 403 "Validate your email." otherwise. We skip the whole chain
500
+ // here so no orphan workflow/activity is created; the frontend
501
+ // shows a "check your inbox" banner and the user re-triggers
502
+ // this endpoint once verified.
503
+ const verifyCheck = await isEmailVerified(client);
504
+ if ('error' in verifyCheck) {
505
+ logger.warn('Public-chat graduation: email-verified check failed', {
506
+ sessionId, error: verifyCheck.error,
507
+ });
508
+ res.redirect(303, completeUrl(hailerOrigin, 'error', verifyCheck.error));
509
+ return;
510
+ }
511
+ if (!verifyCheck.verified) {
512
+ logger.info('Public-chat graduation: email-not-verified, returning pending', {
513
+ sessionId, hailerOrigin,
514
+ });
515
+ res.redirect(303, pendingUrl(hailerOrigin, sessionId, 'email-not-verified'));
516
+ return;
517
+ }
518
+ logger.info('Public-chat graduation: starting workflow install', {
519
+ sessionId, hailerOrigin,
520
+ });
521
+ const wsResult = await resolveWorkspaceAndTeam(client);
522
+ if ('error' in wsResult) {
523
+ res.redirect(303, completeUrl(hailerOrigin, 'error', wsResult.error));
524
+ return;
525
+ }
526
+ const { workspaceId, teamId } = wsResult;
527
+ let userId;
528
+ try {
529
+ const identity = await (0, workspace_admin_store_1.resolveAdminIdentity)(client);
530
+ userId = identity.uid;
531
+ if (identity.uid) {
532
+ (0, workspace_admin_store_1.persistAdminCredentials)(workspaceId, apiKey, identity);
533
+ }
534
+ }
535
+ catch (err) {
536
+ logger.warn('Graduation: persistAdminCredentials failed (continuing)', { err });
537
+ }
538
+ // Workflow install + activity create run synchronously so the
539
+ // success redirect can carry the bot's discussion ID forward.
540
+ // Combined they take ~1s on local Hailer (see install logs),
541
+ // which is barely perceptible on top of the popup's existing
542
+ // ~0.5s authorize spinner. Provisioning the bot's Hailer account
543
+ // and posting the self-intro is the slow part (~2s) — that stays
544
+ // background so the popup closes promptly.
545
+ const install = await (0, workflow_installer_1.ensureAgentDirectoryWorkflow)(client, workspaceId);
546
+ if (!install.success || !install.workflowId || !install.deployedPhaseId) {
547
+ logger.error('Graduation: workflow install failed', {
548
+ sessionId, workspaceId, error: install.error,
549
+ });
550
+ res.redirect(303, completeUrl(hailerOrigin, 'error', install.error || 'Workflow install failed'));
551
+ return;
552
+ }
553
+ const seedContext = buildSeedContext(sessionId, viewedSlides);
554
+ const created = await createBotActivity(client, workspaceId, teamId, install.workflowId, install.deployedPhaseId, seedContext);
555
+ if ('error' in created) {
556
+ logger.error('Graduation: activity create failed', {
557
+ sessionId, workspaceId, error: created.error,
558
+ });
559
+ res.redirect(303, completeUrl(hailerOrigin, 'error', created.error));
560
+ return;
561
+ }
562
+ logger.info('Graduation: activity created (sync)', {
563
+ sessionId, workspaceId,
564
+ workflowId: install.workflowId,
565
+ activityId: created.activityId,
566
+ installedNew: !install.alreadyExisted,
567
+ seedTurns: countSeedTurnsForLog(seedContext),
568
+ viewedSlides: viewedSlides.length,
569
+ });
570
+ // The frontend lands the visitor in the Studio app (created in the
571
+ // background task below), so we only need workspaceId for its
572
+ // switchNetwork hop. botActivityId is carried forward for debugging /
573
+ // a future deep-link; no discussion id is resolved — the bot lives in
574
+ // messenger but is no longer the landing destination.
575
+ res.redirect(303, completeUrl(hailerOrigin, 'success', undefined, {
576
+ workspaceId,
577
+ botActivityId: created.activityId,
578
+ }));
579
+ void runGraduationBackground({
580
+ sessionId,
581
+ workspaceId,
582
+ workflowId: install.workflowId,
583
+ deployedPhaseId: install.deployedPhaseId,
584
+ activityId: created.activityId,
585
+ activityName: created.activityName,
586
+ fields: created.fields,
587
+ apiKey,
588
+ userId,
589
+ viewedSlides,
590
+ });
591
+ };
592
+ }
593
+ //# sourceMappingURL=graduate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graduate.js","sourceRoot":"","sources":["../../src/public-chat/graduate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Express handler for POST /api/public-chat.
3
+ *
4
+ * Anonymous endpoint (no Hailer auth). The handler:
5
+ * 1. Rate-limits by client IP.
6
+ * 2. Validates the request payload (turns + new user message).
7
+ * 3. Calls Claude Haiku 4.5 with a cached system prompt.
8
+ * 4. Streams text deltas back to the client as Server-Sent Events.
9
+ */
10
+ import express from 'express';
11
+ export declare function createPublicChatHandler(anthropicApiKey: string): express.RequestHandler;
12
+ //# sourceMappingURL=handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/public-chat/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AA2C9B,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CA6IvF"}