@hailer/mcp 1.2.0 → 2.0.0-beta.1

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 (764) hide show
  1. package/.claude/agents/agent-hailer-helper.md +118 -0
  2. package/.claude/commands/app-squad.md +16 -110
  3. package/.claude/commands/debug-squad.md +13 -290
  4. package/.claude/commands/publish.md +2 -2
  5. package/.claude/commands/review-squad.md +17 -139
  6. package/.claude/skills/create-and-publish-app/SKILL.md +102 -83
  7. package/.claude/skills/hailer-app-builder/SKILL.md +2 -2
  8. package/.claude/skills/hailer-ui-guide/SKILL.md +265 -0
  9. package/.env.example +50 -1
  10. package/CLAUDE.md +136 -10
  11. package/dist/app.d.ts.map +1 -1
  12. package/dist/app.js +3 -0
  13. package/dist/app.js.map +1 -1
  14. package/dist/bot/bot-manager.d.ts +9 -6
  15. package/dist/bot/bot-manager.d.ts.map +1 -1
  16. package/dist/bot/bot-manager.js +142 -31
  17. package/dist/bot/bot-manager.js.map +1 -1
  18. package/dist/bot/bot.d.ts +59 -16
  19. package/dist/bot/bot.d.ts.map +1 -1
  20. package/dist/bot/bot.js +889 -142
  21. package/dist/bot/bot.js.map +1 -1
  22. package/dist/bot/operation-logger.d.ts.map +1 -1
  23. package/dist/bot/operation-logger.js +24 -12
  24. package/dist/bot/operation-logger.js.map +1 -1
  25. package/dist/bot/services/bot-permissions.d.ts +2 -2
  26. package/dist/bot/services/bot-permissions.d.ts.map +1 -1
  27. package/dist/bot/services/bot-permissions.js +28 -9
  28. package/dist/bot/services/bot-permissions.js.map +1 -1
  29. package/dist/bot/services/conversation-manager.d.ts +23 -23
  30. package/dist/bot/services/conversation-manager.d.ts.map +1 -1
  31. package/dist/bot/services/conversation-manager.js +52 -49
  32. package/dist/bot/services/conversation-manager.js.map +1 -1
  33. package/dist/bot/services/helper-prompt.d.ts +8 -0
  34. package/dist/bot/services/helper-prompt.d.ts.map +1 -0
  35. package/dist/bot/services/helper-prompt.js +177 -0
  36. package/dist/bot/services/helper-prompt.js.map +1 -0
  37. package/dist/bot/services/message-classifier.d.ts +16 -16
  38. package/dist/bot/services/message-classifier.d.ts.map +1 -1
  39. package/dist/bot/services/message-classifier.js +55 -49
  40. package/dist/bot/services/message-classifier.js.map +1 -1
  41. package/dist/bot/services/message-formatter.d.ts +38 -38
  42. package/dist/bot/services/message-formatter.d.ts.map +1 -1
  43. package/dist/bot/services/message-formatter.js +81 -74
  44. package/dist/bot/services/message-formatter.js.map +1 -1
  45. package/dist/bot/services/permission-guard.d.ts.map +1 -1
  46. package/dist/bot/services/permission-guard.js +20 -10
  47. package/dist/bot/services/permission-guard.js.map +1 -1
  48. package/dist/bot/services/signal-router.d.ts.map +1 -1
  49. package/dist/bot/services/signal-router.js +11 -6
  50. package/dist/bot/services/signal-router.js.map +1 -1
  51. package/dist/bot/services/system-prompt.d.ts +14 -0
  52. package/dist/bot/services/system-prompt.d.ts.map +1 -1
  53. package/dist/bot/services/system-prompt.js +179 -4
  54. package/dist/bot/services/system-prompt.js.map +1 -1
  55. package/dist/bot/services/token-billing.d.ts +23 -23
  56. package/dist/bot/services/token-billing.d.ts.map +1 -1
  57. package/dist/bot/services/token-billing.js +51 -36
  58. package/dist/bot/services/token-billing.js.map +1 -1
  59. package/dist/bot/services/types.d.ts +3 -1
  60. package/dist/bot/services/types.d.ts.map +1 -1
  61. package/dist/bot/services/typing-indicator.d.ts +8 -8
  62. package/dist/bot/services/typing-indicator.d.ts.map +1 -1
  63. package/dist/bot/services/typing-indicator.js +12 -10
  64. package/dist/bot/services/typing-indicator.js.map +1 -1
  65. package/dist/bot/services/workspace-refresh.d.ts +3 -3
  66. package/dist/bot/services/workspace-refresh.d.ts.map +1 -1
  67. package/dist/bot/services/workspace-refresh.js +23 -13
  68. package/dist/bot/services/workspace-refresh.js.map +1 -1
  69. package/dist/bot/tool-executor.d.ts +10 -6
  70. package/dist/bot/tool-executor.d.ts.map +1 -1
  71. package/dist/bot/tool-executor.js +12 -6
  72. package/dist/bot/tool-executor.js.map +1 -1
  73. package/dist/bot/workspace-overview.d.ts.map +1 -1
  74. package/dist/bot/workspace-overview.js +6 -3
  75. package/dist/bot/workspace-overview.js.map +1 -1
  76. package/dist/bot-config/activity-error.d.ts +47 -0
  77. package/dist/bot-config/activity-error.d.ts.map +1 -0
  78. package/dist/bot-config/activity-error.js +67 -0
  79. package/dist/bot-config/activity-error.js.map +1 -0
  80. package/dist/bot-config/context.d.ts +4 -4
  81. package/dist/bot-config/context.d.ts.map +1 -1
  82. package/dist/bot-config/context.js +18 -14
  83. package/dist/bot-config/context.js.map +1 -1
  84. package/dist/bot-config/events.d.ts +45 -0
  85. package/dist/bot-config/events.d.ts.map +1 -0
  86. package/dist/bot-config/events.js +51 -0
  87. package/dist/bot-config/events.js.map +1 -0
  88. package/dist/bot-config/index.d.ts +3 -0
  89. package/dist/bot-config/index.d.ts.map +1 -1
  90. package/dist/bot-config/index.js +8 -1
  91. package/dist/bot-config/index.js.map +1 -1
  92. package/dist/bot-config/loader.d.ts +3 -0
  93. package/dist/bot-config/loader.d.ts.map +1 -1
  94. package/dist/bot-config/loader.js +45 -20
  95. package/dist/bot-config/loader.js.map +1 -1
  96. package/dist/bot-config/persistence.js.map +1 -1
  97. package/dist/bot-config/reconciler.d.ts +11 -0
  98. package/dist/bot-config/reconciler.d.ts.map +1 -0
  99. package/dist/bot-config/reconciler.js +121 -0
  100. package/dist/bot-config/reconciler.js.map +1 -0
  101. package/dist/bot-config/state.d.ts.map +1 -1
  102. package/dist/bot-config/state.js.map +1 -1
  103. package/dist/bot-config/types.d.ts +32 -0
  104. package/dist/bot-config/types.d.ts.map +1 -1
  105. package/dist/bot-config/webhooks.d.ts.map +1 -1
  106. package/dist/bot-config/webhooks.js.map +1 -1
  107. package/dist/bot-config/workflow-installer.d.ts +37 -0
  108. package/dist/bot-config/workflow-installer.d.ts.map +1 -0
  109. package/dist/bot-config/workflow-installer.js +346 -0
  110. package/dist/bot-config/workflow-installer.js.map +1 -0
  111. package/dist/cli.d.ts.map +1 -1
  112. package/dist/cli.js +12 -0
  113. package/dist/cli.js.map +1 -1
  114. package/dist/config.d.ts +23 -19
  115. package/dist/config.d.ts.map +1 -1
  116. package/dist/config.js +65 -27
  117. package/dist/config.js.map +1 -1
  118. package/dist/core.d.ts +6 -4
  119. package/dist/core.d.ts.map +1 -1
  120. package/dist/core.js +11 -16
  121. package/dist/core.js.map +1 -1
  122. package/dist/lib/logger.d.ts.map +1 -1
  123. package/dist/lib/logger.js +7 -4
  124. package/dist/lib/logger.js.map +1 -1
  125. package/dist/lib/request-logger.d.ts +19 -19
  126. package/dist/lib/request-logger.d.ts.map +1 -1
  127. package/dist/lib/request-logger.js +19 -19
  128. package/dist/lib/request-logger.js.map +1 -1
  129. package/dist/mcp/UserContextCache.d.ts +28 -22
  130. package/dist/mcp/UserContextCache.d.ts.map +1 -1
  131. package/dist/mcp/UserContextCache.js +23 -23
  132. package/dist/mcp/UserContextCache.js.map +1 -1
  133. package/dist/mcp/auth.js.map +1 -1
  134. package/dist/mcp/hailer-clients.d.ts +5 -4
  135. package/dist/mcp/hailer-clients.d.ts.map +1 -1
  136. package/dist/mcp/hailer-clients.js +61 -27
  137. package/dist/mcp/hailer-clients.js.map +1 -1
  138. package/dist/mcp/hailer-rpc.d.ts +40 -0
  139. package/dist/mcp/hailer-rpc.d.ts.map +1 -0
  140. package/dist/mcp/hailer-rpc.js +43 -0
  141. package/dist/mcp/hailer-rpc.js.map +1 -0
  142. package/dist/mcp/session-store.d.ts +16 -16
  143. package/dist/mcp/session-store.d.ts.map +1 -1
  144. package/dist/mcp/session-store.js +16 -16
  145. package/dist/mcp/session-store.js.map +1 -1
  146. package/dist/mcp/tool-profiles.d.ts +69 -0
  147. package/dist/mcp/tool-profiles.d.ts.map +1 -0
  148. package/dist/mcp/tool-profiles.js +176 -0
  149. package/dist/mcp/tool-profiles.js.map +1 -0
  150. package/dist/mcp/tool-registry.d.ts +16 -0
  151. package/dist/mcp/tool-registry.d.ts.map +1 -1
  152. package/dist/mcp/tool-registry.js +91 -39
  153. package/dist/mcp/tool-registry.js.map +1 -1
  154. package/dist/mcp/tools/activity.d.ts.map +1 -1
  155. package/dist/mcp/tools/activity.js +398 -198
  156. package/dist/mcp/tools/activity.js.map +1 -1
  157. package/dist/mcp/tools/aliases.d.ts +11 -0
  158. package/dist/mcp/tools/aliases.d.ts.map +1 -0
  159. package/dist/mcp/tools/aliases.js +176 -0
  160. package/dist/mcp/tools/aliases.js.map +1 -0
  161. package/dist/mcp/tools/app-core.d.ts +6 -8
  162. package/dist/mcp/tools/app-core.d.ts.map +1 -1
  163. package/dist/mcp/tools/app-core.js +355 -254
  164. package/dist/mcp/tools/app-core.js.map +1 -1
  165. package/dist/mcp/tools/app-marketplace.d.ts +8 -16
  166. package/dist/mcp/tools/app-marketplace.d.ts.map +1 -1
  167. package/dist/mcp/tools/app-marketplace.js +604 -930
  168. package/dist/mcp/tools/app-marketplace.js.map +1 -1
  169. package/dist/mcp/tools/app.d.ts +4 -7
  170. package/dist/mcp/tools/app.d.ts.map +1 -1
  171. package/dist/mcp/tools/app.js +4 -7
  172. package/dist/mcp/tools/app.js.map +1 -1
  173. package/dist/mcp/tools/bot-self.d.ts +21 -0
  174. package/dist/mcp/tools/bot-self.d.ts.map +1 -0
  175. package/dist/mcp/tools/bot-self.js +174 -0
  176. package/dist/mcp/tools/bot-self.js.map +1 -0
  177. package/dist/mcp/tools/calendar.d.ts +21 -0
  178. package/dist/mcp/tools/calendar.d.ts.map +1 -0
  179. package/dist/mcp/tools/calendar.js +741 -0
  180. package/dist/mcp/tools/calendar.js.map +1 -0
  181. package/dist/mcp/tools/company.d.ts.map +1 -1
  182. package/dist/mcp/tools/company.js +2 -1
  183. package/dist/mcp/tools/company.js.map +1 -1
  184. package/dist/mcp/tools/date.js.map +1 -1
  185. package/dist/mcp/tools/discussion.d.ts +23 -3
  186. package/dist/mcp/tools/discussion.d.ts.map +1 -1
  187. package/dist/mcp/tools/discussion.js +417 -534
  188. package/dist/mcp/tools/discussion.js.map +1 -1
  189. package/dist/mcp/tools/file.d.ts.map +1 -1
  190. package/dist/mcp/tools/file.js +18 -16
  191. package/dist/mcp/tools/file.js.map +1 -1
  192. package/dist/mcp/tools/index.js +4 -4
  193. package/dist/mcp/tools/index.js.map +1 -1
  194. package/dist/mcp/tools/insight.d.ts +7 -5
  195. package/dist/mcp/tools/insight.d.ts.map +1 -1
  196. package/dist/mcp/tools/insight.js +419 -477
  197. package/dist/mcp/tools/insight.js.map +1 -1
  198. package/dist/mcp/tools/user.d.ts.map +1 -1
  199. package/dist/mcp/tools/user.js +15 -13
  200. package/dist/mcp/tools/user.js.map +1 -1
  201. package/dist/mcp/tools/workflow-permissions.d.ts +2 -4
  202. package/dist/mcp/tools/workflow-permissions.d.ts.map +1 -1
  203. package/dist/mcp/tools/workflow-permissions.js +88 -97
  204. package/dist/mcp/tools/workflow-permissions.js.map +1 -1
  205. package/dist/mcp/tools/workflow.d.ts +2 -7
  206. package/dist/mcp/tools/workflow.d.ts.map +1 -1
  207. package/dist/mcp/tools/workflow.js +817 -850
  208. package/dist/mcp/tools/workflow.js.map +1 -1
  209. package/dist/mcp/utils/api-errors.d.ts.map +1 -1
  210. package/dist/mcp/utils/api-errors.js +2 -2
  211. package/dist/mcp/utils/api-errors.js.map +1 -1
  212. package/dist/mcp/utils/data-transformers.d.ts.map +1 -1
  213. package/dist/mcp/utils/data-transformers.js +8 -4
  214. package/dist/mcp/utils/data-transformers.js.map +1 -1
  215. package/dist/mcp/utils/file-upload.d.ts.map +1 -1
  216. package/dist/mcp/utils/file-upload.js +1 -1
  217. package/dist/mcp/utils/file-upload.js.map +1 -1
  218. package/dist/mcp/utils/hailer-api-client.d.ts +81 -81
  219. package/dist/mcp/utils/hailer-api-client.d.ts.map +1 -1
  220. package/dist/mcp/utils/hailer-api-client.js +103 -101
  221. package/dist/mcp/utils/hailer-api-client.js.map +1 -1
  222. package/dist/mcp/utils/index.d.ts.map +1 -1
  223. package/dist/mcp/utils/index.js.map +1 -1
  224. package/dist/mcp/utils/logger.d.ts.map +1 -1
  225. package/dist/mcp/utils/logger.js.map +1 -1
  226. package/dist/mcp/utils/response-builder.d.ts.map +1 -1
  227. package/dist/mcp/utils/response-builder.js +8 -4
  228. package/dist/mcp/utils/response-builder.js.map +1 -1
  229. package/dist/mcp/utils/role-utils.d.ts.map +1 -1
  230. package/dist/mcp/utils/role-utils.js +6 -3
  231. package/dist/mcp/utils/role-utils.js.map +1 -1
  232. package/dist/mcp/utils/tool-helpers.d.ts.map +1 -1
  233. package/dist/mcp/utils/tool-helpers.js +2 -2
  234. package/dist/mcp/utils/tool-helpers.js.map +1 -1
  235. package/dist/mcp/utils/types.d.ts +1 -1
  236. package/dist/mcp/utils/types.d.ts.map +1 -1
  237. package/dist/mcp/utils/types.js.map +1 -1
  238. package/dist/mcp/webhook-handler.d.ts +43 -8
  239. package/dist/mcp/webhook-handler.d.ts.map +1 -1
  240. package/dist/mcp/webhook-handler.js +861 -116
  241. package/dist/mcp/webhook-handler.js.map +1 -1
  242. package/dist/mcp/workspace-admin-store.d.ts +49 -0
  243. package/dist/mcp/workspace-admin-store.d.ts.map +1 -0
  244. package/dist/mcp/workspace-admin-store.js +168 -0
  245. package/dist/mcp/workspace-admin-store.js.map +1 -0
  246. package/dist/mcp/workspace-cache.d.ts +2 -2
  247. package/dist/mcp/workspace-cache.d.ts.map +1 -1
  248. package/dist/mcp/workspace-cache.js +9 -5
  249. package/dist/mcp/workspace-cache.js.map +1 -1
  250. package/dist/mcp-server.d.ts +26 -11
  251. package/dist/mcp-server.d.ts.map +1 -1
  252. package/dist/mcp-server.js +360 -36
  253. package/dist/mcp-server.js.map +1 -1
  254. package/dist/plugins/vipunen/client.d.ts +41 -41
  255. package/dist/plugins/vipunen/client.d.ts.map +1 -1
  256. package/dist/plugins/vipunen/client.js +53 -48
  257. package/dist/plugins/vipunen/client.js.map +1 -1
  258. package/dist/plugins/vipunen/index.js.map +1 -1
  259. package/dist/plugins/vipunen/tools.d.ts.map +1 -1
  260. package/dist/plugins/vipunen/tools.js +6 -3
  261. package/dist/plugins/vipunen/tools.js.map +1 -1
  262. package/dist/public-chat/graduate.d.ts +29 -0
  263. package/dist/public-chat/graduate.d.ts.map +1 -0
  264. package/dist/public-chat/graduate.js +593 -0
  265. package/dist/public-chat/graduate.js.map +1 -0
  266. package/dist/public-chat/handler.d.ts +12 -0
  267. package/dist/public-chat/handler.d.ts.map +1 -0
  268. package/dist/public-chat/handler.js +179 -0
  269. package/dist/public-chat/handler.js.map +1 -0
  270. package/dist/public-chat/index.d.ts +16 -0
  271. package/dist/public-chat/index.d.ts.map +1 -0
  272. package/dist/public-chat/index.js +74 -0
  273. package/dist/public-chat/index.js.map +1 -0
  274. package/dist/public-chat/knowledge.d.ts +3 -0
  275. package/dist/public-chat/knowledge.d.ts.map +1 -0
  276. package/dist/public-chat/knowledge.js +1339 -0
  277. package/dist/public-chat/knowledge.js.map +1 -0
  278. package/dist/public-chat/rate-limit.d.ts +16 -0
  279. package/dist/public-chat/rate-limit.d.ts.map +1 -0
  280. package/dist/public-chat/rate-limit.js +51 -0
  281. package/dist/public-chat/rate-limit.js.map +1 -0
  282. package/dist/public-chat/session-store.d.ts +41 -0
  283. package/dist/public-chat/session-store.d.ts.map +1 -0
  284. package/dist/public-chat/session-store.js +95 -0
  285. package/dist/public-chat/session-store.js.map +1 -0
  286. package/dist/public-chat/studio-prewarm.d.ts +61 -0
  287. package/dist/public-chat/studio-prewarm.d.ts.map +1 -0
  288. package/dist/public-chat/studio-prewarm.js +162 -0
  289. package/dist/public-chat/studio-prewarm.js.map +1 -0
  290. package/dist/public-chat/system-prompt.d.ts +22 -0
  291. package/dist/public-chat/system-prompt.d.ts.map +1 -0
  292. package/dist/public-chat/system-prompt.js +428 -0
  293. package/dist/public-chat/system-prompt.js.map +1 -0
  294. package/package.json +14 -6
  295. package/scripts/build-public-chat-knowledge.py +101 -0
  296. package/scripts/probe-mcp-pricing.ts +52 -0
  297. package/scripts/smoke-public-chat-live.ts +148 -0
  298. package/scripts/smoke-public-chat.ts +110 -0
  299. package/.claude/CLAUDE.md +0 -126
  300. package/.claude/commands/audit-squad.md +0 -158
  301. package/.claude/commands/cleanup-squad.md +0 -98
  302. package/.claude/commands/config-squad.md +0 -106
  303. package/.claude/commands/crud-squad.md +0 -87
  304. package/.claude/commands/data-squad.md +0 -97
  305. package/.claude/commands/doc-squad.md +0 -65
  306. package/.claude/commands/help.md +0 -29
  307. package/.claude/commands/help:agents.md +0 -182
  308. package/.claude/commands/help:commands.md +0 -78
  309. package/.claude/commands/help:faq.md +0 -79
  310. package/.claude/commands/help:plugins.md +0 -50
  311. package/.claude/commands/help:skills.md +0 -87
  312. package/.claude/commands/help:tools.md +0 -75
  313. package/.claude/commands/hotfix-squad.md +0 -112
  314. package/.claude/commands/integration-squad.md +0 -82
  315. package/.claude/commands/janitor-squad.md +0 -167
  316. package/.claude/commands/onboard-squad.md +0 -130
  317. package/.claude/commands/swarm.md +0 -210
  318. package/.claude/commands/tool-builder.md +0 -39
  319. package/.claude/skills/publish-hailer-app/SKILL.md +0 -280
  320. package/dist/CLAUDE.md +0 -370
  321. package/dist/agents/bot-manager.d.ts +0 -48
  322. package/dist/agents/bot-manager.d.ts.map +0 -1
  323. package/dist/agents/bot-manager.js +0 -254
  324. package/dist/agents/bot-manager.js.map +0 -1
  325. package/dist/agents/bug-fixer/ai.d.ts +0 -80
  326. package/dist/agents/bug-fixer/ai.d.ts.map +0 -1
  327. package/dist/agents/bug-fixer/ai.js +0 -466
  328. package/dist/agents/bug-fixer/ai.js.map +0 -1
  329. package/dist/agents/bug-fixer/bot.d.ts +0 -92
  330. package/dist/agents/bug-fixer/bot.d.ts.map +0 -1
  331. package/dist/agents/bug-fixer/bot.js +0 -687
  332. package/dist/agents/bug-fixer/bot.js.map +0 -1
  333. package/dist/agents/bug-fixer/config.d.ts +0 -21
  334. package/dist/agents/bug-fixer/config.d.ts.map +0 -1
  335. package/dist/agents/bug-fixer/config.js +0 -218
  336. package/dist/agents/bug-fixer/config.js.map +0 -1
  337. package/dist/agents/bug-fixer/files.d.ts +0 -67
  338. package/dist/agents/bug-fixer/files.d.ts.map +0 -1
  339. package/dist/agents/bug-fixer/files.js +0 -386
  340. package/dist/agents/bug-fixer/files.js.map +0 -1
  341. package/dist/agents/bug-fixer/git.d.ts +0 -48
  342. package/dist/agents/bug-fixer/git.d.ts.map +0 -1
  343. package/dist/agents/bug-fixer/git.js +0 -298
  344. package/dist/agents/bug-fixer/git.js.map +0 -1
  345. package/dist/agents/bug-fixer/index.d.ts +0 -103
  346. package/dist/agents/bug-fixer/index.d.ts.map +0 -1
  347. package/dist/agents/bug-fixer/index.js +0 -262
  348. package/dist/agents/bug-fixer/index.js.map +0 -1
  349. package/dist/agents/bug-fixer/lsp.d.ts +0 -113
  350. package/dist/agents/bug-fixer/lsp.d.ts.map +0 -1
  351. package/dist/agents/bug-fixer/lsp.js +0 -485
  352. package/dist/agents/bug-fixer/lsp.js.map +0 -1
  353. package/dist/agents/bug-fixer/monitor.d.ts +0 -123
  354. package/dist/agents/bug-fixer/monitor.d.ts.map +0 -1
  355. package/dist/agents/bug-fixer/monitor.js +0 -629
  356. package/dist/agents/bug-fixer/monitor.js.map +0 -1
  357. package/dist/agents/bug-fixer/prompt.d.ts +0 -5
  358. package/dist/agents/bug-fixer/prompt.d.ts.map +0 -1
  359. package/dist/agents/bug-fixer/prompt.js +0 -94
  360. package/dist/agents/bug-fixer/prompt.js.map +0 -1
  361. package/dist/agents/bug-fixer/registries/pending-classification.d.ts +0 -28
  362. package/dist/agents/bug-fixer/registries/pending-classification.d.ts.map +0 -1
  363. package/dist/agents/bug-fixer/registries/pending-classification.js +0 -50
  364. package/dist/agents/bug-fixer/registries/pending-classification.js.map +0 -1
  365. package/dist/agents/bug-fixer/registries/pending-fix.d.ts +0 -33
  366. package/dist/agents/bug-fixer/registries/pending-fix.d.ts.map +0 -1
  367. package/dist/agents/bug-fixer/registries/pending-fix.js +0 -64
  368. package/dist/agents/bug-fixer/registries/pending-fix.js.map +0 -1
  369. package/dist/agents/bug-fixer/registries/pending.d.ts +0 -27
  370. package/dist/agents/bug-fixer/registries/pending.d.ts.map +0 -1
  371. package/dist/agents/bug-fixer/registries/pending.js +0 -49
  372. package/dist/agents/bug-fixer/registries/pending.js.map +0 -1
  373. package/dist/agents/bug-fixer/specialist-daemon.d.ts +0 -88
  374. package/dist/agents/bug-fixer/specialist-daemon.d.ts.map +0 -1
  375. package/dist/agents/bug-fixer/specialist-daemon.js +0 -431
  376. package/dist/agents/bug-fixer/specialist-daemon.js.map +0 -1
  377. package/dist/agents/bug-fixer/specialist.d.ts +0 -47
  378. package/dist/agents/bug-fixer/specialist.d.ts.map +0 -1
  379. package/dist/agents/bug-fixer/specialist.js +0 -327
  380. package/dist/agents/bug-fixer/specialist.js.map +0 -1
  381. package/dist/agents/bug-fixer/types.d.ts +0 -123
  382. package/dist/agents/bug-fixer/types.d.ts.map +0 -1
  383. package/dist/agents/bug-fixer/types.js +0 -9
  384. package/dist/agents/bug-fixer/types.js.map +0 -1
  385. package/dist/agents/factory.d.ts +0 -172
  386. package/dist/agents/factory.d.ts.map +0 -1
  387. package/dist/agents/factory.js +0 -706
  388. package/dist/agents/factory.js.map +0 -1
  389. package/dist/agents/hailer-expert/index.d.ts +0 -8
  390. package/dist/agents/hailer-expert/index.d.ts.map +0 -1
  391. package/dist/agents/hailer-expert/index.js +0 -14
  392. package/dist/agents/hailer-expert/index.js.map +0 -1
  393. package/dist/agents/hal/daemon.d.ts +0 -174
  394. package/dist/agents/hal/daemon.d.ts.map +0 -1
  395. package/dist/agents/hal/daemon.js +0 -1385
  396. package/dist/agents/hal/daemon.js.map +0 -1
  397. package/dist/agents/hal/definitions.d.ts +0 -42
  398. package/dist/agents/hal/definitions.d.ts.map +0 -1
  399. package/dist/agents/hal/definitions.js +0 -300
  400. package/dist/agents/hal/definitions.js.map +0 -1
  401. package/dist/agents/hal/index.d.ts +0 -3
  402. package/dist/agents/hal/index.d.ts.map +0 -1
  403. package/dist/agents/hal/index.js +0 -8
  404. package/dist/agents/hal/index.js.map +0 -1
  405. package/dist/agents/index.d.ts +0 -18
  406. package/dist/agents/index.d.ts.map +0 -1
  407. package/dist/agents/index.js +0 -48
  408. package/dist/agents/index.js.map +0 -1
  409. package/dist/agents/shared/base.d.ts +0 -253
  410. package/dist/agents/shared/base.d.ts.map +0 -1
  411. package/dist/agents/shared/base.js +0 -1122
  412. package/dist/agents/shared/base.js.map +0 -1
  413. package/dist/agents/shared/schemas/action-schema.d.ts +0 -62
  414. package/dist/agents/shared/schemas/action-schema.d.ts.map +0 -1
  415. package/dist/agents/shared/schemas/action-schema.js +0 -483
  416. package/dist/agents/shared/schemas/action-schema.js.map +0 -1
  417. package/dist/agents/shared/services/agent-registry.d.ts +0 -108
  418. package/dist/agents/shared/services/agent-registry.d.ts.map +0 -1
  419. package/dist/agents/shared/services/agent-registry.js +0 -469
  420. package/dist/agents/shared/services/agent-registry.js.map +0 -1
  421. package/dist/agents/shared/services/conversation-manager.d.ts +0 -57
  422. package/dist/agents/shared/services/conversation-manager.d.ts.map +0 -1
  423. package/dist/agents/shared/services/conversation-manager.js +0 -168
  424. package/dist/agents/shared/services/conversation-manager.js.map +0 -1
  425. package/dist/agents/shared/services/mcp-client.d.ts +0 -56
  426. package/dist/agents/shared/services/mcp-client.d.ts.map +0 -1
  427. package/dist/agents/shared/services/mcp-client.js +0 -124
  428. package/dist/agents/shared/services/mcp-client.js.map +0 -1
  429. package/dist/agents/shared/services/message-classifier.d.ts +0 -37
  430. package/dist/agents/shared/services/message-classifier.d.ts.map +0 -1
  431. package/dist/agents/shared/services/message-classifier.js +0 -203
  432. package/dist/agents/shared/services/message-classifier.js.map +0 -1
  433. package/dist/agents/shared/services/message-formatter.d.ts +0 -89
  434. package/dist/agents/shared/services/message-formatter.d.ts.map +0 -1
  435. package/dist/agents/shared/services/message-formatter.js +0 -390
  436. package/dist/agents/shared/services/message-formatter.js.map +0 -1
  437. package/dist/agents/shared/services/session-logger.d.ts +0 -162
  438. package/dist/agents/shared/services/session-logger.d.ts.map +0 -1
  439. package/dist/agents/shared/services/session-logger.js +0 -724
  440. package/dist/agents/shared/services/session-logger.js.map +0 -1
  441. package/dist/agents/shared/services/structured-output-executor.d.ts +0 -88
  442. package/dist/agents/shared/services/structured-output-executor.d.ts.map +0 -1
  443. package/dist/agents/shared/services/structured-output-executor.js +0 -296
  444. package/dist/agents/shared/services/structured-output-executor.js.map +0 -1
  445. package/dist/agents/shared/services/token-billing.d.ts +0 -72
  446. package/dist/agents/shared/services/token-billing.d.ts.map +0 -1
  447. package/dist/agents/shared/services/token-billing.js +0 -198
  448. package/dist/agents/shared/services/token-billing.js.map +0 -1
  449. package/dist/agents/shared/services/tool-executor.d.ts +0 -43
  450. package/dist/agents/shared/services/tool-executor.d.ts.map +0 -1
  451. package/dist/agents/shared/services/tool-executor.js +0 -175
  452. package/dist/agents/shared/services/tool-executor.js.map +0 -1
  453. package/dist/agents/shared/services/typing-indicator.d.ts +0 -24
  454. package/dist/agents/shared/services/typing-indicator.d.ts.map +0 -1
  455. package/dist/agents/shared/services/typing-indicator.js +0 -54
  456. package/dist/agents/shared/services/typing-indicator.js.map +0 -1
  457. package/dist/agents/shared/services/workspace-schema-cache.d.ts +0 -122
  458. package/dist/agents/shared/services/workspace-schema-cache.d.ts.map +0 -1
  459. package/dist/agents/shared/services/workspace-schema-cache.js +0 -507
  460. package/dist/agents/shared/services/workspace-schema-cache.js.map +0 -1
  461. package/dist/agents/shared/specialist.d.ts +0 -91
  462. package/dist/agents/shared/specialist.d.ts.map +0 -1
  463. package/dist/agents/shared/specialist.js +0 -399
  464. package/dist/agents/shared/specialist.js.map +0 -1
  465. package/dist/agents/shared/tool-schema-loader.d.ts +0 -65
  466. package/dist/agents/shared/tool-schema-loader.d.ts.map +0 -1
  467. package/dist/agents/shared/tool-schema-loader.js +0 -238
  468. package/dist/agents/shared/tool-schema-loader.js.map +0 -1
  469. package/dist/agents/shared/types.d.ts +0 -190
  470. package/dist/agents/shared/types.d.ts.map +0 -1
  471. package/dist/agents/shared/types.js +0 -13
  472. package/dist/agents/shared/types.js.map +0 -1
  473. package/dist/bot/bot-config.d.ts +0 -37
  474. package/dist/bot/bot-config.d.ts.map +0 -1
  475. package/dist/bot/bot-config.js +0 -219
  476. package/dist/bot/bot-config.js.map +0 -1
  477. package/dist/bot/services/__tests__/permission-guard.test.d.ts +0 -2
  478. package/dist/bot/services/__tests__/permission-guard.test.d.ts.map +0 -1
  479. package/dist/bot/services/__tests__/permission-guard.test.js +0 -357
  480. package/dist/bot/services/__tests__/permission-guard.test.js.map +0 -1
  481. package/dist/bot/services/session-logger.d.ts +0 -162
  482. package/dist/bot/services/session-logger.d.ts.map +0 -1
  483. package/dist/bot/services/session-logger.js +0 -724
  484. package/dist/bot/services/session-logger.js.map +0 -1
  485. package/dist/bot/services/workspace-schema-cache.d.ts +0 -122
  486. package/dist/bot/services/workspace-schema-cache.d.ts.map +0 -1
  487. package/dist/bot/services/workspace-schema-cache.js +0 -506
  488. package/dist/bot/services/workspace-schema-cache.js.map +0 -1
  489. package/dist/bot-config/tools.d.ts +0 -28
  490. package/dist/bot-config/tools.d.ts.map +0 -1
  491. package/dist/bot-config/tools.js +0 -279
  492. package/dist/bot-config/tools.js.map +0 -1
  493. package/dist/client/agents/base.d.ts +0 -207
  494. package/dist/client/agents/base.d.ts.map +0 -1
  495. package/dist/client/agents/base.js +0 -744
  496. package/dist/client/agents/base.js.map +0 -1
  497. package/dist/client/agents/definitions.d.ts +0 -53
  498. package/dist/client/agents/definitions.d.ts.map +0 -1
  499. package/dist/client/agents/definitions.js +0 -263
  500. package/dist/client/agents/definitions.js.map +0 -1
  501. package/dist/client/agents/orchestrator.d.ts +0 -141
  502. package/dist/client/agents/orchestrator.d.ts.map +0 -1
  503. package/dist/client/agents/orchestrator.js +0 -1062
  504. package/dist/client/agents/orchestrator.js.map +0 -1
  505. package/dist/client/agents/specialist.d.ts +0 -86
  506. package/dist/client/agents/specialist.d.ts.map +0 -1
  507. package/dist/client/agents/specialist.js +0 -340
  508. package/dist/client/agents/specialist.js.map +0 -1
  509. package/dist/client/bot-entrypoint.d.ts +0 -7
  510. package/dist/client/bot-entrypoint.d.ts.map +0 -1
  511. package/dist/client/bot-entrypoint.js +0 -103
  512. package/dist/client/bot-entrypoint.js.map +0 -1
  513. package/dist/client/bot-manager.d.ts +0 -44
  514. package/dist/client/bot-manager.d.ts.map +0 -1
  515. package/dist/client/bot-manager.js +0 -173
  516. package/dist/client/bot-manager.js.map +0 -1
  517. package/dist/client/bot-runner.d.ts +0 -35
  518. package/dist/client/bot-runner.d.ts.map +0 -1
  519. package/dist/client/bot-runner.js +0 -188
  520. package/dist/client/bot-runner.js.map +0 -1
  521. package/dist/client/chat-agent-daemon.d.ts +0 -464
  522. package/dist/client/chat-agent-daemon.d.ts.map +0 -1
  523. package/dist/client/chat-agent-daemon.js +0 -1774
  524. package/dist/client/chat-agent-daemon.js.map +0 -1
  525. package/dist/client/daemon-factory.d.ts +0 -106
  526. package/dist/client/daemon-factory.d.ts.map +0 -1
  527. package/dist/client/daemon-factory.js +0 -301
  528. package/dist/client/daemon-factory.js.map +0 -1
  529. package/dist/client/factory.d.ts +0 -111
  530. package/dist/client/factory.d.ts.map +0 -1
  531. package/dist/client/factory.js +0 -314
  532. package/dist/client/factory.js.map +0 -1
  533. package/dist/client/index.d.ts +0 -17
  534. package/dist/client/index.d.ts.map +0 -1
  535. package/dist/client/index.js +0 -38
  536. package/dist/client/index.js.map +0 -1
  537. package/dist/client/multi-bot-manager.d.ts +0 -42
  538. package/dist/client/multi-bot-manager.d.ts.map +0 -1
  539. package/dist/client/multi-bot-manager.js +0 -161
  540. package/dist/client/multi-bot-manager.js.map +0 -1
  541. package/dist/client/orchestrator-daemon.d.ts +0 -87
  542. package/dist/client/orchestrator-daemon.d.ts.map +0 -1
  543. package/dist/client/orchestrator-daemon.js +0 -444
  544. package/dist/client/orchestrator-daemon.js.map +0 -1
  545. package/dist/client/server.d.ts +0 -8
  546. package/dist/client/server.d.ts.map +0 -1
  547. package/dist/client/server.js +0 -251
  548. package/dist/client/server.js.map +0 -1
  549. package/dist/client/services/agent-registry.d.ts +0 -108
  550. package/dist/client/services/agent-registry.d.ts.map +0 -1
  551. package/dist/client/services/agent-registry.js +0 -630
  552. package/dist/client/services/agent-registry.js.map +0 -1
  553. package/dist/client/services/conversation-manager.d.ts +0 -50
  554. package/dist/client/services/conversation-manager.d.ts.map +0 -1
  555. package/dist/client/services/conversation-manager.js +0 -136
  556. package/dist/client/services/conversation-manager.js.map +0 -1
  557. package/dist/client/services/mcp-client.d.ts +0 -48
  558. package/dist/client/services/mcp-client.d.ts.map +0 -1
  559. package/dist/client/services/mcp-client.js +0 -105
  560. package/dist/client/services/mcp-client.js.map +0 -1
  561. package/dist/client/services/message-classifier.d.ts +0 -37
  562. package/dist/client/services/message-classifier.d.ts.map +0 -1
  563. package/dist/client/services/message-classifier.js +0 -187
  564. package/dist/client/services/message-classifier.js.map +0 -1
  565. package/dist/client/services/message-formatter.d.ts +0 -84
  566. package/dist/client/services/message-formatter.d.ts.map +0 -1
  567. package/dist/client/services/message-formatter.js +0 -353
  568. package/dist/client/services/message-formatter.js.map +0 -1
  569. package/dist/client/services/session-logger.d.ts +0 -106
  570. package/dist/client/services/session-logger.d.ts.map +0 -1
  571. package/dist/client/services/session-logger.js +0 -446
  572. package/dist/client/services/session-logger.js.map +0 -1
  573. package/dist/client/services/tool-executor.d.ts +0 -41
  574. package/dist/client/services/tool-executor.d.ts.map +0 -1
  575. package/dist/client/services/tool-executor.js +0 -169
  576. package/dist/client/services/tool-executor.js.map +0 -1
  577. package/dist/client/services/workspace-schema-cache.d.ts +0 -149
  578. package/dist/client/services/workspace-schema-cache.d.ts.map +0 -1
  579. package/dist/client/services/workspace-schema-cache.js +0 -732
  580. package/dist/client/services/workspace-schema-cache.js.map +0 -1
  581. package/dist/client/specialist-daemon.d.ts +0 -77
  582. package/dist/client/specialist-daemon.d.ts.map +0 -1
  583. package/dist/client/specialist-daemon.js +0 -197
  584. package/dist/client/specialist-daemon.js.map +0 -1
  585. package/dist/client/specialists.d.ts +0 -53
  586. package/dist/client/specialists.d.ts.map +0 -1
  587. package/dist/client/specialists.js +0 -178
  588. package/dist/client/specialists.js.map +0 -1
  589. package/dist/client/tool-schema-loader.d.ts +0 -62
  590. package/dist/client/tool-schema-loader.d.ts.map +0 -1
  591. package/dist/client/tool-schema-loader.js +0 -232
  592. package/dist/client/tool-schema-loader.js.map +0 -1
  593. package/dist/client/types.d.ts +0 -327
  594. package/dist/client/types.d.ts.map +0 -1
  595. package/dist/client/types.js +0 -121
  596. package/dist/client/types.js.map +0 -1
  597. package/dist/commands/seed-config.d.ts +0 -9
  598. package/dist/commands/seed-config.d.ts.map +0 -1
  599. package/dist/commands/seed-config.js +0 -377
  600. package/dist/commands/seed-config.js.map +0 -1
  601. package/dist/commands/setup.d.ts +0 -11
  602. package/dist/commands/setup.d.ts.map +0 -1
  603. package/dist/commands/setup.js +0 -320
  604. package/dist/commands/setup.js.map +0 -1
  605. package/dist/lib/discussion-lock.d.ts +0 -42
  606. package/dist/lib/discussion-lock.d.ts.map +0 -1
  607. package/dist/lib/discussion-lock.js +0 -110
  608. package/dist/lib/discussion-lock.js.map +0 -1
  609. package/dist/mcp/signal-handler.d.ts +0 -82
  610. package/dist/mcp/signal-handler.d.ts.map +0 -1
  611. package/dist/mcp/signal-handler.js +0 -406
  612. package/dist/mcp/signal-handler.js.map +0 -1
  613. package/dist/mcp/tools/__tests__/discussion-forward.test.d.ts +0 -2
  614. package/dist/mcp/tools/__tests__/discussion-forward.test.d.ts.map +0 -1
  615. package/dist/mcp/tools/__tests__/discussion-forward.test.js +0 -218
  616. package/dist/mcp/tools/__tests__/discussion-forward.test.js.map +0 -1
  617. package/dist/mcp/tools/app-member.d.ts +0 -14
  618. package/dist/mcp/tools/app-member.d.ts.map +0 -1
  619. package/dist/mcp/tools/app-member.js +0 -195
  620. package/dist/mcp/tools/app-member.js.map +0 -1
  621. package/dist/mcp/tools/app-scaffold.d.ts +0 -14
  622. package/dist/mcp/tools/app-scaffold.d.ts.map +0 -1
  623. package/dist/mcp/tools/app-scaffold.js +0 -581
  624. package/dist/mcp/tools/app-scaffold.js.map +0 -1
  625. package/dist/mcp/tools/bot-config/constants.d.ts +0 -23
  626. package/dist/mcp/tools/bot-config/constants.d.ts.map +0 -1
  627. package/dist/mcp/tools/bot-config/constants.js +0 -94
  628. package/dist/mcp/tools/bot-config/constants.js.map +0 -1
  629. package/dist/mcp/tools/bot-config/core.d.ts +0 -253
  630. package/dist/mcp/tools/bot-config/core.d.ts.map +0 -1
  631. package/dist/mcp/tools/bot-config/core.js +0 -2456
  632. package/dist/mcp/tools/bot-config/core.js.map +0 -1
  633. package/dist/mcp/tools/bot-config/index.d.ts +0 -10
  634. package/dist/mcp/tools/bot-config/index.d.ts.map +0 -1
  635. package/dist/mcp/tools/bot-config/index.js +0 -59
  636. package/dist/mcp/tools/bot-config/index.js.map +0 -1
  637. package/dist/mcp/tools/bot-config/tools.d.ts +0 -7
  638. package/dist/mcp/tools/bot-config/tools.d.ts.map +0 -1
  639. package/dist/mcp/tools/bot-config/tools.js +0 -15
  640. package/dist/mcp/tools/bot-config/tools.js.map +0 -1
  641. package/dist/mcp/tools/bot-config/types.d.ts +0 -50
  642. package/dist/mcp/tools/bot-config/types.d.ts.map +0 -1
  643. package/dist/mcp/tools/bot-config/types.js +0 -6
  644. package/dist/mcp/tools/bot-config/types.js.map +0 -1
  645. package/dist/mcp/tools/bug-fixer-tools.d.ts +0 -45
  646. package/dist/mcp/tools/bug-fixer-tools.d.ts.map +0 -1
  647. package/dist/mcp/tools/bug-fixer-tools.js +0 -1096
  648. package/dist/mcp/tools/bug-fixer-tools.js.map +0 -1
  649. package/dist/mcp/tools/document.d.ts +0 -11
  650. package/dist/mcp/tools/document.d.ts.map +0 -1
  651. package/dist/mcp/tools/document.js +0 -741
  652. package/dist/mcp/tools/document.js.map +0 -1
  653. package/dist/mcp/tools/investigate.d.ts +0 -9
  654. package/dist/mcp/tools/investigate.d.ts.map +0 -1
  655. package/dist/mcp/tools/investigate.js +0 -254
  656. package/dist/mcp/tools/investigate.js.map +0 -1
  657. package/dist/mcp/utils/pagination.d.ts +0 -40
  658. package/dist/mcp/utils/pagination.d.ts.map +0 -1
  659. package/dist/mcp/utils/pagination.js +0 -55
  660. package/dist/mcp/utils/pagination.js.map +0 -1
  661. package/dist/modules/bug-reports/bug-config.d.ts +0 -25
  662. package/dist/modules/bug-reports/bug-config.d.ts.map +0 -1
  663. package/dist/modules/bug-reports/bug-config.js +0 -187
  664. package/dist/modules/bug-reports/bug-config.js.map +0 -1
  665. package/dist/modules/bug-reports/bug-monitor.d.ts +0 -108
  666. package/dist/modules/bug-reports/bug-monitor.d.ts.map +0 -1
  667. package/dist/modules/bug-reports/bug-monitor.js +0 -510
  668. package/dist/modules/bug-reports/bug-monitor.js.map +0 -1
  669. package/dist/modules/bug-reports/giuseppe-agent.d.ts +0 -58
  670. package/dist/modules/bug-reports/giuseppe-agent.d.ts.map +0 -1
  671. package/dist/modules/bug-reports/giuseppe-agent.js +0 -467
  672. package/dist/modules/bug-reports/giuseppe-agent.js.map +0 -1
  673. package/dist/modules/bug-reports/giuseppe-ai.d.ts +0 -83
  674. package/dist/modules/bug-reports/giuseppe-ai.d.ts.map +0 -1
  675. package/dist/modules/bug-reports/giuseppe-ai.js +0 -466
  676. package/dist/modules/bug-reports/giuseppe-ai.js.map +0 -1
  677. package/dist/modules/bug-reports/giuseppe-bot.d.ts +0 -110
  678. package/dist/modules/bug-reports/giuseppe-bot.d.ts.map +0 -1
  679. package/dist/modules/bug-reports/giuseppe-bot.js +0 -804
  680. package/dist/modules/bug-reports/giuseppe-bot.js.map +0 -1
  681. package/dist/modules/bug-reports/giuseppe-daemon.d.ts +0 -80
  682. package/dist/modules/bug-reports/giuseppe-daemon.d.ts.map +0 -1
  683. package/dist/modules/bug-reports/giuseppe-daemon.js +0 -617
  684. package/dist/modules/bug-reports/giuseppe-daemon.js.map +0 -1
  685. package/dist/modules/bug-reports/giuseppe-files.d.ts +0 -64
  686. package/dist/modules/bug-reports/giuseppe-files.d.ts.map +0 -1
  687. package/dist/modules/bug-reports/giuseppe-files.js +0 -375
  688. package/dist/modules/bug-reports/giuseppe-files.js.map +0 -1
  689. package/dist/modules/bug-reports/giuseppe-git.d.ts +0 -48
  690. package/dist/modules/bug-reports/giuseppe-git.d.ts.map +0 -1
  691. package/dist/modules/bug-reports/giuseppe-git.js +0 -298
  692. package/dist/modules/bug-reports/giuseppe-git.js.map +0 -1
  693. package/dist/modules/bug-reports/giuseppe-lsp.d.ts +0 -113
  694. package/dist/modules/bug-reports/giuseppe-lsp.d.ts.map +0 -1
  695. package/dist/modules/bug-reports/giuseppe-lsp.js +0 -485
  696. package/dist/modules/bug-reports/giuseppe-lsp.js.map +0 -1
  697. package/dist/modules/bug-reports/giuseppe-prompt.d.ts +0 -5
  698. package/dist/modules/bug-reports/giuseppe-prompt.d.ts.map +0 -1
  699. package/dist/modules/bug-reports/giuseppe-prompt.js +0 -94
  700. package/dist/modules/bug-reports/giuseppe-prompt.js.map +0 -1
  701. package/dist/modules/bug-reports/index.d.ts +0 -77
  702. package/dist/modules/bug-reports/index.d.ts.map +0 -1
  703. package/dist/modules/bug-reports/index.js +0 -215
  704. package/dist/modules/bug-reports/index.js.map +0 -1
  705. package/dist/modules/bug-reports/pending-classification-registry.d.ts +0 -28
  706. package/dist/modules/bug-reports/pending-classification-registry.d.ts.map +0 -1
  707. package/dist/modules/bug-reports/pending-classification-registry.js +0 -50
  708. package/dist/modules/bug-reports/pending-classification-registry.js.map +0 -1
  709. package/dist/modules/bug-reports/pending-fix-registry.d.ts +0 -30
  710. package/dist/modules/bug-reports/pending-fix-registry.d.ts.map +0 -1
  711. package/dist/modules/bug-reports/pending-fix-registry.js +0 -42
  712. package/dist/modules/bug-reports/pending-fix-registry.js.map +0 -1
  713. package/dist/modules/bug-reports/pending-registry.d.ts +0 -27
  714. package/dist/modules/bug-reports/pending-registry.d.ts.map +0 -1
  715. package/dist/modules/bug-reports/pending-registry.js +0 -49
  716. package/dist/modules/bug-reports/pending-registry.js.map +0 -1
  717. package/dist/modules/bug-reports/types.d.ts +0 -123
  718. package/dist/modules/bug-reports/types.d.ts.map +0 -1
  719. package/dist/modules/bug-reports/types.js +0 -9
  720. package/dist/modules/bug-reports/types.js.map +0 -1
  721. package/dist/plugins/bug-fixer/index.d.ts +0 -2
  722. package/dist/plugins/bug-fixer/index.d.ts.map +0 -1
  723. package/dist/plugins/bug-fixer/index.js +0 -18
  724. package/dist/plugins/bug-fixer/index.js.map +0 -1
  725. package/dist/plugins/bug-fixer/tools.d.ts +0 -45
  726. package/dist/plugins/bug-fixer/tools.d.ts.map +0 -1
  727. package/dist/plugins/bug-fixer/tools.js +0 -1096
  728. package/dist/plugins/bug-fixer/tools.js.map +0 -1
  729. package/dist/plugins/vipunen/__tests__/tools.test.d.ts +0 -10
  730. package/dist/plugins/vipunen/__tests__/tools.test.d.ts.map +0 -1
  731. package/dist/plugins/vipunen/__tests__/tools.test.js +0 -646
  732. package/dist/plugins/vipunen/__tests__/tools.test.js.map +0 -1
  733. package/dist/routes/agents.d.ts +0 -44
  734. package/dist/routes/agents.d.ts.map +0 -1
  735. package/dist/routes/agents.js +0 -311
  736. package/dist/routes/agents.js.map +0 -1
  737. package/dist/services/agent-credential-store.d.ts +0 -73
  738. package/dist/services/agent-credential-store.d.ts.map +0 -1
  739. package/dist/services/agent-credential-store.js +0 -212
  740. package/dist/services/agent-credential-store.js.map +0 -1
  741. package/dist/stdio-server.d.ts +0 -14
  742. package/dist/stdio-server.d.ts.map +0 -1
  743. package/dist/stdio-server.js +0 -101
  744. package/dist/stdio-server.js.map +0 -1
  745. package/dist/workspace/context.d.ts +0 -148
  746. package/dist/workspace/context.d.ts.map +0 -1
  747. package/dist/workspace/context.js +0 -339
  748. package/dist/workspace/context.js.map +0 -1
  749. package/dist/workspace/credentials.d.ts +0 -55
  750. package/dist/workspace/credentials.d.ts.map +0 -1
  751. package/dist/workspace/credentials.js +0 -239
  752. package/dist/workspace/credentials.js.map +0 -1
  753. package/dist/workspace/index.d.ts +0 -21
  754. package/dist/workspace/index.d.ts.map +0 -1
  755. package/dist/workspace/index.js +0 -45
  756. package/dist/workspace/index.js.map +0 -1
  757. package/dist/workspace/loader.d.ts +0 -27
  758. package/dist/workspace/loader.d.ts.map +0 -1
  759. package/dist/workspace/loader.js +0 -222
  760. package/dist/workspace/loader.js.map +0 -1
  761. package/dist/workspace/schema.d.ts +0 -37
  762. package/dist/workspace/schema.d.ts.map +0 -1
  763. package/dist/workspace/schema.js +0 -192
  764. package/dist/workspace/schema.js.map +0 -1
@@ -1,724 +0,0 @@
1
- "use strict";
2
- /**
3
- * Session Logger Service
4
- *
5
- * Manages per-activity session tracking and logging to Hailer workflows:
6
- * - Tracks metrics (tokens, tool calls, messages)
7
- * - Logs completed sessions to SESSION_LOG workflow
8
- * - Manages idle session detection and flushing
9
- */
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.SessionLoggerService = void 0;
12
- const types_1 = require("../../shared/types");
13
- class SessionLoggerService {
14
- agentDirectoryId;
15
- logger;
16
- callMcpTool;
17
- getDefaultTeamId;
18
- activitySessions = new Map();
19
- lastGlobalLogId = null;
20
- idleCheckTimer = null;
21
- anthropicClient = null;
22
- schemaCache = null;
23
- _currentWorkspaceId = null;
24
- constructor(agentDirectoryId, logger, callMcpTool, getDefaultTeamId) {
25
- this.agentDirectoryId = agentDirectoryId;
26
- this.logger = logger;
27
- this.callMcpTool = callMcpTool;
28
- this.getDefaultTeamId = getDefaultTeamId;
29
- }
30
- /**
31
- * Set the workspace schema cache for dynamic ID lookup
32
- */
33
- setSchemaCache(cache, workspaceId) {
34
- this.schemaCache = cache;
35
- this._currentWorkspaceId = workspaceId;
36
- }
37
- /**
38
- * Get Session Log schema from cache for a specific workspace
39
- */
40
- getSessionLogSchema(workspaceId) {
41
- if (!this.schemaCache || !workspaceId) {
42
- return null;
43
- }
44
- return this.schemaCache.getSessionLogSchema(workspaceId) || null;
45
- }
46
- /**
47
- * Set Anthropic client for generating summaries
48
- */
49
- setAnthropicClient(client) {
50
- this.anthropicClient = client;
51
- }
52
- /**
53
- * Get or create an activity session for tracking
54
- * Multi-tenant: workspaceId is required for proper schema lookup
55
- */
56
- getOrCreateActivitySession(message) {
57
- // Use linked activity ID as key, fallback to discussion ID
58
- const sessionKey = message.linkedActivityId || message.discussionId;
59
- let session = this.activitySessions.get(sessionKey);
60
- if (!session) {
61
- session = {
62
- activityId: message.linkedActivityId || "",
63
- activityName: message.linkedActivityName || `Discussion ${message.discussionId.substring(0, 8)}`,
64
- discussionId: message.discussionId,
65
- workspaceId: message.workspaceId, // Multi-tenant: store workspace for this session
66
- startTime: Date.now(),
67
- lastActivityTime: Date.now(),
68
- metrics: {
69
- inputTokens: 0,
70
- outputTokens: 0,
71
- cacheCreationTokens: 0,
72
- cacheReadTokens: 0,
73
- toolCalls: 0,
74
- writeOperations: 0,
75
- messagesProcessed: 0,
76
- responsesPosted: 0,
77
- apiCalls: 0,
78
- },
79
- actions: [],
80
- previousLogId: this.lastGlobalLogId,
81
- conversation: [],
82
- writeDetails: [],
83
- triggerRequest: null,
84
- requestedBy: null,
85
- requestedById: null,
86
- };
87
- this.activitySessions.set(sessionKey, session);
88
- this.logger.debug("Created new activity session", {
89
- sessionKey,
90
- workspaceId: message.workspaceId,
91
- activityName: session.activityName,
92
- });
93
- }
94
- return session;
95
- }
96
- /**
97
- * Get session by key
98
- */
99
- getSession(key) {
100
- return this.activitySessions.get(key);
101
- }
102
- /**
103
- * Get all active sessions
104
- */
105
- getActiveSessions() {
106
- return new Map(this.activitySessions);
107
- }
108
- /**
109
- * Check for idle sessions and flush them
110
- * Called periodically by timer
111
- */
112
- async checkAndFlushIdleSessions() {
113
- const now = Date.now();
114
- const sessionsToFlush = [];
115
- for (const [key, session] of this.activitySessions) {
116
- const idleTime = now - session.lastActivityTime;
117
- if (idleTime >= types_1.SESSION_IDLE_TIMEOUT) {
118
- sessionsToFlush.push(key);
119
- }
120
- }
121
- for (const key of sessionsToFlush) {
122
- const session = this.activitySessions.get(key);
123
- if (session) {
124
- await this.flushActivitySession(key, session);
125
- this.activitySessions.delete(key);
126
- }
127
- }
128
- if (sessionsToFlush.length > 0) {
129
- this.logger.debug("Flushed idle sessions", { count: sessionsToFlush.length });
130
- }
131
- }
132
- /**
133
- * Flush a single activity session to the session log
134
- * Set DISABLE_SESSION_LOG=true to skip persistence (saves 20+ tokens per session)
135
- */
136
- async flushActivitySession(_key, session) {
137
- // Check if session logging is disabled via env var
138
- if (process.env.DISABLE_SESSION_LOG === 'true') {
139
- this.logger.debug("Skipping session log - disabled via DISABLE_SESSION_LOG", {
140
- activity: session.activityName,
141
- metrics: session.metrics,
142
- });
143
- return;
144
- }
145
- // Only log if API calls were made (skip sessions with no activity)
146
- if (session.metrics.apiCalls === 0) {
147
- this.logger.debug("Skipping session log - no API calls", {
148
- activity: session.activityName,
149
- });
150
- return;
151
- }
152
- // Get dynamic schema for this session's workspace
153
- const schema = this.getSessionLogSchema(session.workspaceId);
154
- if (!schema) {
155
- this.logger.debug("Skipping session log - no Session Log workflow in workspace", {
156
- workspaceId: session.workspaceId,
157
- });
158
- return;
159
- }
160
- if (!this.agentDirectoryId) {
161
- this.logger.debug("Skipping session log - no agent directory ID");
162
- return;
163
- }
164
- try {
165
- // Build descriptive session name from first write operation
166
- let sessionName;
167
- if (session.writeDetails.length > 0) {
168
- sessionName = session.writeDetails[0].what;
169
- }
170
- else {
171
- sessionName = session.activityName || `Session ${new Date().toISOString()}`;
172
- }
173
- // Generate session metadata (headline, topics, entities, outcome, summary)
174
- const metadata = await this.generateSessionMetadata(session);
175
- const summary = await this.buildActivitySessionSummary(session, metadata);
176
- // Calculate total tokens and cost
177
- const { inputTokens, outputTokens, cacheCreationTokens, cacheReadTokens } = session.metrics;
178
- const totalTokens = inputTokens + outputTokens + cacheCreationTokens + cacheReadTokens;
179
- const cost = this.calculateCost(inputTokens, outputTokens, cacheCreationTokens, cacheReadTokens);
180
- // Get field IDs from schema (use our standard keys that were mapped)
181
- const contextSummaryFieldId = schema.fields["contextSummary"] || schema.fields["Context summary"];
182
- const madeByFieldId = schema.fields["madeBy"] || schema.fields["Log entry made by"];
183
- const costFieldId = schema.fields["cost"] || schema.fields["Tokens Used"];
184
- const previousLogFieldId = schema.fields["previousLog"] || schema.fields["Previus log entry"];
185
- const linkedWorkFieldId = schema.fields["linkedWork"] || schema.fields["Most relevant link to work"];
186
- // New billing field IDs (looked up by key from schema)
187
- const uncachedTokensFieldId = schema.fields["uncachedTokens"];
188
- const cachedTokensFieldId = schema.fields["cachedTokens"];
189
- const outputTokensFieldId = schema.fields["outputTokens"];
190
- const cacheHitRateFieldId = schema.fields["cacheHitRate"];
191
- const costUsdFieldId = schema.fields["costUsd"];
192
- const apiCallsFieldId = schema.fields["apiCalls"];
193
- const durationSecFieldId = schema.fields["durationSec"];
194
- const writeOperationsFieldId = schema.fields["writeOperations"];
195
- // Memory metadata field IDs (for smart retrieval)
196
- const headlineFieldId = schema.fields["headline"];
197
- const topicsFieldId = schema.fields["topics"];
198
- const entitiesFieldId = schema.fields["entities"];
199
- const outcomeFieldId = schema.fields["outcome"];
200
- const discussionIdFieldId = schema.fields["discussionId"];
201
- // Calculate metrics
202
- const sessionDuration = Math.round((Date.now() - session.startTime) / 1000);
203
- const cacheHitPct = totalTokens > 0
204
- ? Math.round((cacheReadTokens / (inputTokens + cacheCreationTokens + cacheReadTokens)) * 100)
205
- : 0;
206
- // Build fields
207
- const fields = {};
208
- // Context summary (just the conversation summary, not stats)
209
- if (contextSummaryFieldId) {
210
- fields[contextSummaryFieldId] = summary;
211
- }
212
- if (madeByFieldId && this.agentDirectoryId) {
213
- fields[madeByFieldId] = this.agentDirectoryId;
214
- }
215
- if (costFieldId) {
216
- fields[costFieldId] = totalTokens;
217
- }
218
- // Billing fields (separate columns for reporting) - only if fields exist in schema
219
- if (uncachedTokensFieldId) {
220
- fields[uncachedTokensFieldId] = inputTokens + cacheCreationTokens; // tokens charged at full/125% rate
221
- }
222
- if (cachedTokensFieldId) {
223
- fields[cachedTokensFieldId] = cacheReadTokens;
224
- }
225
- if (outputTokensFieldId) {
226
- fields[outputTokensFieldId] = outputTokens;
227
- }
228
- if (cacheHitRateFieldId) {
229
- fields[cacheHitRateFieldId] = cacheHitPct;
230
- }
231
- if (costUsdFieldId) {
232
- fields[costUsdFieldId] = parseFloat(cost.toFixed(6)); // Store as number for aggregation
233
- }
234
- if (apiCallsFieldId) {
235
- fields[apiCallsFieldId] = session.metrics.apiCalls;
236
- }
237
- if (durationSecFieldId) {
238
- fields[durationSecFieldId] = sessionDuration;
239
- }
240
- if (writeOperationsFieldId) {
241
- fields[writeOperationsFieldId] = session.metrics.writeOperations;
242
- }
243
- // Chain to previous log
244
- if (session.previousLogId && previousLogFieldId) {
245
- fields[previousLogFieldId] = session.previousLogId;
246
- }
247
- // Link to activity being worked on
248
- if (session.activityId && linkedWorkFieldId) {
249
- fields[linkedWorkFieldId] = session.activityId;
250
- }
251
- // Memory metadata fields (for smart retrieval)
252
- if (metadata) {
253
- if (headlineFieldId && metadata.headline) {
254
- fields[headlineFieldId] = metadata.headline;
255
- }
256
- if (topicsFieldId && metadata.topics) {
257
- fields[topicsFieldId] = metadata.topics;
258
- }
259
- if (entitiesFieldId && metadata.entities) {
260
- fields[entitiesFieldId] = metadata.entities;
261
- }
262
- if (outcomeFieldId && metadata.outcome) {
263
- fields[outcomeFieldId] = metadata.outcome;
264
- }
265
- }
266
- // Store discussionId for filtering/retrieval
267
- if (discussionIdFieldId && session.discussionId) {
268
- fields[discussionIdFieldId] = session.discussionId;
269
- }
270
- // Get phase ID (try "active" first, then first available)
271
- const phaseId = schema.phases["active"] || Object.values(schema.phases)[0];
272
- const createParams = {
273
- workflowId: schema.workflowId,
274
- name: sessionName,
275
- phaseId,
276
- fields,
277
- };
278
- const wsTeamId = this.getDefaultTeamId();
279
- if (wsTeamId) {
280
- createParams.teamId = wsTeamId;
281
- }
282
- const result = await this.callMcpTool("create_activity", createParams);
283
- // Extract created ID for chaining
284
- const resultText = result?.content?.[0]?.text;
285
- if (resultText) {
286
- const idMatch = resultText.match(/"_id":\s*"([a-f0-9]{24})"/i) ||
287
- resultText.match(/`([a-f0-9]{24})`/);
288
- if (idMatch) {
289
- this.lastGlobalLogId = idMatch[1];
290
- }
291
- }
292
- const durationSec = Math.round((Date.now() - session.startTime) / 1000);
293
- const cacheHitRate = totalTokens > 0
294
- ? Math.round((cacheReadTokens / (inputTokens + cacheCreationTokens + cacheReadTokens)) * 100)
295
- : 0;
296
- this.logger.info("Activity session logged", {
297
- activity: session.activityName,
298
- durationSec,
299
- messages: session.metrics.messagesProcessed,
300
- toolCalls: session.metrics.toolCalls,
301
- tokens: totalTokens,
302
- cacheHitRate: `${cacheHitRate}%`,
303
- costUsd: `$${cost.toFixed(4)}`,
304
- });
305
- }
306
- catch (error) {
307
- this.logger.warn("Failed to flush activity session", {
308
- activity: session.activityName,
309
- error: error instanceof Error ? error.message : String(error),
310
- });
311
- }
312
- }
313
- /**
314
- * Flush all active sessions (called on shutdown)
315
- */
316
- async flushAllSessions() {
317
- for (const [key, session] of this.activitySessions) {
318
- await this.flushActivitySession(key, session);
319
- }
320
- this.activitySessions.clear();
321
- }
322
- /**
323
- * Build summary for an activity session
324
- * Uses pre-generated metadata if available
325
- */
326
- async buildActivitySessionSummary(session, metadata) {
327
- const lines = [];
328
- // Who requested this
329
- if (session.requestedBy) {
330
- lines.push(`**Requested by:** ${session.requestedBy}`);
331
- }
332
- // What they asked for
333
- if (session.triggerRequest) {
334
- lines.push(`**Request:** "${session.triggerRequest}"`);
335
- }
336
- // What was changed (write operations only)
337
- if (session.writeDetails.length > 0) {
338
- lines.push("");
339
- lines.push(`**Changes made:**`);
340
- for (const detail of session.writeDetails) {
341
- lines.push(`- ${detail.what}`);
342
- }
343
- }
344
- // Use metadata summary if available, otherwise generate one
345
- const conversationSummary = metadata?.summary || await this.generateConversationSummary(session);
346
- if (conversationSummary) {
347
- lines.push("");
348
- lines.push(`**Conversation:** ${conversationSummary}`);
349
- }
350
- // Stats are now in separate fields, so just return the context summary
351
- return lines.join("\n");
352
- }
353
- /**
354
- * Calculate cost in USD based on Haiku 4.5 pricing
355
- * - Input (uncached): $0.80 / 1M tokens
356
- * - Output: $4.00 / 1M tokens
357
- * - Cache creation: $1.00 / 1M tokens (125% of input)
358
- * - Cache read: $0.08 / 1M tokens (10% of input)
359
- */
360
- calculateCost(inputTokens, outputTokens, cacheCreationTokens, cacheReadTokens) {
361
- const inputCost = (inputTokens / 1_000_000) * 0.80;
362
- const outputCost = (outputTokens / 1_000_000) * 4.00;
363
- const cacheCreationCost = (cacheCreationTokens / 1_000_000) * 1.00;
364
- const cacheReadCost = (cacheReadTokens / 1_000_000) * 0.08;
365
- return inputCost + outputCost + cacheCreationCost + cacheReadCost;
366
- }
367
- /**
368
- * Start periodic idle session checking
369
- */
370
- startIdleCheckTimer(intervalMs = 30_000) {
371
- if (this.idleCheckTimer) {
372
- clearInterval(this.idleCheckTimer);
373
- }
374
- this.idleCheckTimer = setInterval(() => {
375
- this.checkAndFlushIdleSessions().catch(err => {
376
- this.logger.warn("Error checking idle sessions", { error: err });
377
- });
378
- }, intervalMs);
379
- }
380
- /**
381
- * Stop idle check timer
382
- */
383
- stopIdleCheckTimer() {
384
- if (this.idleCheckTimer) {
385
- clearInterval(this.idleCheckTimer);
386
- this.idleCheckTimer = null;
387
- }
388
- }
389
- // ===== MEMORY SYSTEM =====
390
- /**
391
- * Sanitize string to remove invalid Unicode surrogate pairs
392
- * These can cause JSON parsing errors in the Anthropic API
393
- */
394
- sanitizeString(str) {
395
- // Remove unpaired surrogates (invalid Unicode)
396
- // eslint-disable-next-line no-control-regex
397
- return str.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g, '');
398
- }
399
- /**
400
- * Generate conversation summary AND metadata for memory retrieval
401
- * Returns structured data for smart session recall
402
- */
403
- async generateSessionMetadata(session) {
404
- if (!this.anthropicClient || session.conversation.length === 0) {
405
- return null;
406
- }
407
- try {
408
- // Sanitize conversation to remove invalid Unicode that causes JSON parsing errors
409
- const sanitizedConversation = session.conversation
410
- .map(msg => this.sanitizeString(msg))
411
- .join("\n");
412
- const response = await this.anthropicClient.messages.create({
413
- model: "claude-haiku-4-5-20251001",
414
- max_tokens: 600,
415
- messages: [
416
- {
417
- role: "user",
418
- content: `Analyze this conversation and extract memory metadata. Return JSON only, no other text.
419
-
420
- Conversation:
421
- ${sanitizedConversation}
422
-
423
- Return this exact JSON structure:
424
- {
425
- "headline": "1-sentence summary, max 50 chars",
426
- "topics": "comma-separated tags like: workflow, bug, insight, app, setup, question, config, data, report",
427
- "entities": "specific names mentioned: workflow names, app names, user names",
428
- "outcome": "one of: resolved, pending, escalated, info",
429
- "summary": "2-3 sentence summary of what was discussed and accomplished"
430
- }
431
-
432
- JSON:`,
433
- },
434
- ],
435
- });
436
- const textBlock = response.content.find((b) => b.type === "text");
437
- if (!textBlock?.text) {
438
- return null;
439
- }
440
- // Parse JSON response
441
- const jsonMatch = textBlock.text.match(/\{[\s\S]*\}/);
442
- if (!jsonMatch) {
443
- this.logger.warn("Failed to parse session metadata JSON", { response: textBlock.text.substring(0, 200) });
444
- return null;
445
- }
446
- const metadata = JSON.parse(jsonMatch[0]);
447
- // Validate and truncate
448
- return {
449
- headline: (metadata.headline || "").substring(0, 60),
450
- topics: (metadata.topics || "").substring(0, 200),
451
- entities: (metadata.entities || "").substring(0, 200),
452
- outcome: ["resolved", "pending", "escalated", "info"].includes(metadata.outcome)
453
- ? metadata.outcome
454
- : "info",
455
- summary: (metadata.summary || "").substring(0, 1000),
456
- };
457
- }
458
- catch (error) {
459
- this.logger.warn("Failed to generate session metadata", {
460
- error: error instanceof Error ? error.message : String(error),
461
- });
462
- return null;
463
- }
464
- }
465
- /**
466
- * Generate a conversation summary using LLM (legacy, uses new method internally)
467
- */
468
- async generateConversationSummary(session) {
469
- const metadata = await this.generateSessionMetadata(session);
470
- return metadata?.summary || null;
471
- }
472
- /**
473
- * Load memory entries for an activity from SESSION_LOG
474
- * Returns past conversation summaries for context injection
475
- *
476
- * NOTE: ActivityLink fields store objects {_id, name}, so we fetch recent
477
- * session logs and filter client-side by checking the nested _id.
478
- */
479
- async loadMemoryForActivity(activityId, workspaceId, limit = 5) {
480
- if (!activityId || !workspaceId) {
481
- return [];
482
- }
483
- // Get dynamic schema for this workspace
484
- const schema = this.getSessionLogSchema(workspaceId);
485
- if (!schema) {
486
- this.logger.debug("Cannot load memory - no Session Log workflow in workspace", { workspaceId });
487
- return [];
488
- }
489
- // Get field IDs from schema
490
- const contextSummaryFieldId = schema.fields["contextSummary"] || schema.fields["Context summary"];
491
- const linkedWorkFieldId = schema.fields["linkedWork"] || schema.fields["Most relevant link to work"];
492
- const phaseId = schema.phases["active"] || Object.values(schema.phases)[0];
493
- if (!contextSummaryFieldId || !linkedWorkFieldId || !phaseId) {
494
- this.logger.debug("Cannot load memory - missing required fields in schema");
495
- return [];
496
- }
497
- try {
498
- // Query SESSION_LOG for recent sessions (fetch more to filter client-side)
499
- // ActivityLink filters don't work with simple equals, so we filter after
500
- const result = await this.callMcpTool("list_activities", {
501
- workflowId: schema.workflowId,
502
- phaseId,
503
- fields: [contextSummaryFieldId, linkedWorkFieldId],
504
- limit: 50, // Fetch more, filter client-side
505
- sortBy: "created",
506
- sortOrder: "desc",
507
- });
508
- const resultText = result?.content?.[0]?.text;
509
- if (!resultText) {
510
- return [];
511
- }
512
- // Parse the response to extract memory entries
513
- const entries = [];
514
- // Try to parse as JSON array
515
- try {
516
- const parsed = JSON.parse(resultText);
517
- const activities = parsed.activities || parsed.data || parsed;
518
- if (Array.isArray(activities)) {
519
- for (const activity of activities) {
520
- // Get linkedWork field - it's an ActivityLink with nested {_id, name}
521
- const linkedWorkField = activity.fields?.[linkedWorkFieldId];
522
- const linkedWorkId = linkedWorkField?.value?._id || linkedWorkField?._id;
523
- // Filter: only include entries linked to our target activity
524
- if (linkedWorkId !== activityId) {
525
- continue;
526
- }
527
- // Get context summary
528
- const summaryField = activity.fields?.[contextSummaryFieldId];
529
- const summary = summaryField?.value || summaryField;
530
- if (summary) {
531
- // Extract conversation summary section if present
532
- const conversationMatch = summary.match(/\*\*Conversation:\*\*\s*([\s\S]*?)(?=\n\n\*\*|---\n|$)/);
533
- const memorySummary = conversationMatch?.[1]?.trim() || summary;
534
- entries.push({
535
- sessionId: activity._id,
536
- timestamp: activity.created || Date.now(),
537
- summary: memorySummary,
538
- linkedActivityId: activityId,
539
- });
540
- // Stop once we have enough
541
- if (entries.length >= limit) {
542
- break;
543
- }
544
- }
545
- }
546
- }
547
- }
548
- catch {
549
- // Not JSON, try regex extraction (fallback)
550
- this.logger.debug("Failed to parse as JSON, using regex fallback");
551
- }
552
- this.logger.debug("Loaded memory entries", {
553
- activityId,
554
- count: entries.length,
555
- });
556
- return entries;
557
- }
558
- catch (error) {
559
- this.logger.warn("Failed to load memory for activity", {
560
- activityId,
561
- error: error instanceof Error ? error.message : String(error),
562
- });
563
- return [];
564
- }
565
- }
566
- /**
567
- * Format memory entries for injection into conversation context
568
- */
569
- formatMemoryForContext(entries) {
570
- if (entries.length === 0) {
571
- return "";
572
- }
573
- const lines = ["<previous_memory>", "Past interactions with this activity:"];
574
- for (const entry of entries) {
575
- const date = new Date(entry.timestamp).toLocaleDateString();
576
- lines.push(`- [${date}] ${entry.summary}`);
577
- }
578
- lines.push("</previous_memory>");
579
- return lines.join("\n");
580
- }
581
- /**
582
- * Load memory headlines for a discussion (for smart context injection)
583
- * Returns lightweight headlines instead of full summaries
584
- *
585
- * @param discussionId - Discussion to load memory for
586
- * @param workspaceId - Workspace context
587
- * @param options - Search options
588
- */
589
- async loadMemoryForDiscussion(discussionId, workspaceId, options = {}) {
590
- const { limit = 3, keywords, maxAgeDays = 7 } = options;
591
- if (!discussionId || !workspaceId) {
592
- return [];
593
- }
594
- const schema = this.getSessionLogSchema(workspaceId);
595
- if (!schema) {
596
- this.logger.debug("Cannot load memory - no Session Log workflow", { workspaceId });
597
- return [];
598
- }
599
- // Get field IDs
600
- const headlineFieldId = schema.fields["headline"];
601
- const topicsFieldId = schema.fields["topics"];
602
- const outcomeFieldId = schema.fields["outcome"];
603
- const discussionIdFieldId = schema.fields["discussionId"];
604
- const phaseId = schema.phases["active"] || Object.values(schema.phases)[0];
605
- if (!headlineFieldId || !discussionIdFieldId || !phaseId) {
606
- this.logger.debug("Cannot load memory - missing required fields (headline, discussionId)");
607
- return [];
608
- }
609
- try {
610
- // Build query params
611
- const queryParams = {
612
- workflowId: schema.workflowId,
613
- phaseId,
614
- fields: [headlineFieldId, topicsFieldId, outcomeFieldId, discussionIdFieldId].filter(Boolean),
615
- limit: 20, // Fetch more to filter client-side
616
- sortBy: "created",
617
- sortOrder: "desc",
618
- };
619
- // Add keyword search if provided
620
- if (keywords && topicsFieldId) {
621
- queryParams.search = keywords;
622
- }
623
- const result = await this.callMcpTool("list_activities", queryParams);
624
- const resultText = result?.content?.[0]?.text;
625
- if (!resultText) {
626
- return [];
627
- }
628
- const entries = [];
629
- const maxAgeMs = maxAgeDays * 24 * 60 * 60 * 1000;
630
- const cutoffTime = Date.now() - maxAgeMs;
631
- try {
632
- // Extract JSON from response
633
- const jsonMatch = resultText.match(/\[[\s\S]*\]/);
634
- if (!jsonMatch) {
635
- return [];
636
- }
637
- const activities = JSON.parse(jsonMatch[0]);
638
- for (const activity of activities) {
639
- // Filter by discussionId
640
- const actDiscussionId = activity.fieldsAndValues?.find((f) => f.fieldId === discussionIdFieldId)?.value || activity.fields?.[discussionIdFieldId]?.value;
641
- if (actDiscussionId !== discussionId) {
642
- continue;
643
- }
644
- // Filter by age
645
- const created = activity.created || Date.now();
646
- if (created < cutoffTime) {
647
- continue;
648
- }
649
- // Extract fields
650
- const headline = activity.fieldsAndValues?.find((f) => f.fieldId === headlineFieldId)?.value || activity.fields?.[headlineFieldId]?.value || "";
651
- const topics = activity.fieldsAndValues?.find((f) => f.fieldId === topicsFieldId)?.value || activity.fields?.[topicsFieldId]?.value || "";
652
- const outcome = activity.fieldsAndValues?.find((f) => f.fieldId === outcomeFieldId)?.value || activity.fields?.[outcomeFieldId]?.value || "info";
653
- if (headline) {
654
- entries.push({
655
- sessionId: activity._id,
656
- timestamp: created,
657
- headline,
658
- topics,
659
- outcome,
660
- });
661
- }
662
- if (entries.length >= limit) {
663
- break;
664
- }
665
- }
666
- }
667
- catch (parseError) {
668
- this.logger.debug("Failed to parse memory response", { error: parseError });
669
- }
670
- this.logger.debug("Loaded memory headlines", {
671
- discussionId: discussionId.substring(0, 8),
672
- count: entries.length,
673
- });
674
- return entries;
675
- }
676
- catch (error) {
677
- this.logger.warn("Failed to load memory for discussion", {
678
- discussionId: discussionId.substring(0, 8),
679
- error: error instanceof Error ? error.message : String(error),
680
- });
681
- return [];
682
- }
683
- }
684
- /**
685
- * Format memory headlines for context injection (lightweight)
686
- * Returns ~50 tokens for 3 entries
687
- */
688
- formatHeadlinesForContext(entries) {
689
- if (entries.length === 0) {
690
- return "";
691
- }
692
- const lines = ["[Recent context from this conversation]"];
693
- for (const entry of entries) {
694
- const ago = this.formatTimeAgo(entry.timestamp);
695
- const status = entry.outcome !== "info" ? ` (${entry.outcome})` : "";
696
- lines.push(`• ${ago}: ${entry.headline}${status}`);
697
- }
698
- return lines.join("\n");
699
- }
700
- /**
701
- * Format timestamp as relative time (e.g., "2h ago", "yesterday")
702
- */
703
- formatTimeAgo(timestamp) {
704
- const now = Date.now();
705
- const diffMs = now - timestamp;
706
- const diffMins = Math.floor(diffMs / 60000);
707
- const diffHours = Math.floor(diffMs / 3600000);
708
- const diffDays = Math.floor(diffMs / 86400000);
709
- if (diffMins < 60) {
710
- return `${diffMins}m ago`;
711
- }
712
- else if (diffHours < 24) {
713
- return `${diffHours}h ago`;
714
- }
715
- else if (diffDays === 1) {
716
- return "yesterday";
717
- }
718
- else {
719
- return `${diffDays}d ago`;
720
- }
721
- }
722
- }
723
- exports.SessionLoggerService = SessionLoggerService;
724
- //# sourceMappingURL=session-logger.js.map