@hailer/mcp 1.1.12 → 1.1.14

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 (269) hide show
  1. package/CHANGELOG.md +0 -7
  2. package/{.claude → dist}/CLAUDE.md +2 -2
  3. package/dist/app.js +18 -5
  4. package/dist/bot/bot-config.d.ts +10 -1
  5. package/dist/bot/bot-config.js +64 -3
  6. package/dist/bot/bot-manager.d.ts +2 -0
  7. package/dist/bot/bot-manager.js +9 -2
  8. package/dist/bot/bot.d.ts +33 -0
  9. package/dist/bot/bot.js +461 -160
  10. package/dist/bot/services/message-classifier.js +17 -0
  11. package/dist/bot/services/permission-guard.d.ts +52 -0
  12. package/dist/bot/services/permission-guard.js +149 -0
  13. package/dist/bot/services/types.d.ts +5 -0
  14. package/dist/bot/services/typing-indicator.d.ts +6 -1
  15. package/dist/bot/services/typing-indicator.js +19 -3
  16. package/dist/cli.js +0 -0
  17. package/dist/config.d.ts +6 -1
  18. package/dist/config.js +43 -0
  19. package/dist/core.js +3 -6
  20. package/dist/lib/discussion-lock.d.ts +42 -0
  21. package/dist/lib/discussion-lock.js +110 -0
  22. package/dist/mcp/UserContextCache.d.ts +5 -0
  23. package/dist/mcp/UserContextCache.js +51 -19
  24. package/dist/mcp/hailer-clients.d.ts +19 -1
  25. package/dist/mcp/hailer-clients.js +158 -24
  26. package/dist/mcp/session-store.d.ts +68 -0
  27. package/dist/mcp/session-store.js +169 -0
  28. package/dist/mcp/signal-handler.js +2 -0
  29. package/dist/mcp/tool-registry.d.ts +17 -4
  30. package/dist/mcp/tool-registry.js +37 -7
  31. package/dist/mcp/tools/activity.js +99 -7
  32. package/dist/mcp/tools/app-scaffold.js +304 -336
  33. package/dist/mcp/tools/bot-config/constants.d.ts +23 -0
  34. package/dist/mcp/tools/bot-config/constants.js +94 -0
  35. package/dist/mcp/tools/bot-config/core.d.ts +253 -0
  36. package/dist/mcp/tools/bot-config/core.js +2456 -0
  37. package/dist/mcp/tools/bot-config/index.d.ts +10 -0
  38. package/dist/mcp/tools/bot-config/index.js +59 -0
  39. package/dist/mcp/tools/bot-config/tools.d.ts +7 -0
  40. package/dist/mcp/tools/bot-config/tools.js +15 -0
  41. package/dist/mcp/tools/bot-config/types.d.ts +50 -0
  42. package/dist/mcp/tools/bot-config/types.js +6 -0
  43. package/dist/mcp/tools/bug-fixer-tools.d.ts +45 -0
  44. package/dist/mcp/tools/bug-fixer-tools.js +1096 -0
  45. package/dist/mcp/tools/company.d.ts +9 -0
  46. package/dist/mcp/tools/company.js +88 -0
  47. package/dist/mcp/tools/discussion.js +68 -0
  48. package/dist/mcp/tools/document.d.ts +11 -0
  49. package/dist/mcp/tools/document.js +741 -0
  50. package/dist/mcp/tools/investigate.d.ts +9 -0
  51. package/dist/mcp/tools/investigate.js +254 -0
  52. package/dist/mcp/tools/workflow-permissions.d.ts +15 -0
  53. package/dist/mcp/tools/workflow-permissions.js +204 -0
  54. package/dist/mcp/tools/workflow.js +57 -18
  55. package/dist/mcp/utils/index.d.ts +2 -0
  56. package/dist/mcp/utils/index.js +12 -1
  57. package/dist/mcp/utils/role-utils.d.ts +74 -0
  58. package/dist/mcp/utils/role-utils.js +151 -0
  59. package/dist/mcp/utils/types.d.ts +43 -1
  60. package/dist/mcp/utils/types.js +14 -0
  61. package/dist/mcp/webhook-handler.d.ts +4 -0
  62. package/dist/mcp/webhook-handler.js +8 -0
  63. package/dist/mcp-server.d.ts +23 -2
  64. package/dist/mcp-server.js +639 -127
  65. package/dist/plugins/vipunen/client.d.ts +150 -0
  66. package/dist/plugins/vipunen/client.js +535 -0
  67. package/dist/plugins/vipunen/config/schema-config.json +19 -0
  68. package/dist/plugins/vipunen/config/schema-doc.json +22 -0
  69. package/dist/plugins/vipunen/index.d.ts +41 -0
  70. package/dist/plugins/vipunen/index.js +88 -0
  71. package/dist/plugins/vipunen/tools.d.ts +26 -0
  72. package/dist/plugins/vipunen/tools.js +501 -0
  73. package/dist/stdio-server.d.ts +14 -0
  74. package/dist/stdio-server.js +101 -0
  75. package/package.json +2 -1
  76. package/.claude/agents/agent-ada-skill-builder.md +0 -94
  77. package/.claude/agents/agent-alejandro-function-fields.md +0 -342
  78. package/.claude/agents/agent-bjorn-config-audit.md +0 -103
  79. package/.claude/agents/agent-builder-agent-creator.md +0 -130
  80. package/.claude/agents/agent-code-simplifier.md +0 -53
  81. package/.claude/agents/agent-dmitri-activity-crud.md +0 -159
  82. package/.claude/agents/agent-giuseppe-app-builder.md +0 -247
  83. package/.claude/agents/agent-gunther-mcp-tools.md +0 -39
  84. package/.claude/agents/agent-helga-workflow-config.md +0 -204
  85. package/.claude/agents/agent-igor-activity-mover-automation.md +0 -125
  86. package/.claude/agents/agent-ingrid-doc-templates.md +0 -261
  87. package/.claude/agents/agent-ivan-monolith.md +0 -154
  88. package/.claude/agents/agent-kenji-data-reader.md +0 -86
  89. package/.claude/agents/agent-lars-code-inspector.md +0 -102
  90. package/.claude/agents/agent-marco-mockup-builder.md +0 -110
  91. package/.claude/agents/agent-marcus-api-documenter.md +0 -323
  92. package/.claude/agents/agent-marketplace-publisher.md +0 -280
  93. package/.claude/agents/agent-marketplace-reviewer.md +0 -309
  94. package/.claude/agents/agent-permissions-handler.md +0 -208
  95. package/.claude/agents/agent-simple-writer.md +0 -48
  96. package/.claude/agents/agent-svetlana-code-review.md +0 -171
  97. package/.claude/agents/agent-tanya-test-runner.md +0 -333
  98. package/.claude/agents/agent-ui-designer.md +0 -100
  99. package/.claude/agents/agent-viktor-sql-insights.md +0 -212
  100. package/.claude/agents/agent-web-search.md +0 -55
  101. package/.claude/agents/agent-yevgeni-discussions.md +0 -45
  102. package/.claude/agents/agent-zara-zapier.md +0 -159
  103. package/.claude/commands/app-squad.md +0 -135
  104. package/.claude/commands/audit-squad.md +0 -158
  105. package/.claude/commands/autoplan.md +0 -563
  106. package/.claude/commands/cleanup-squad.md +0 -98
  107. package/.claude/commands/config-squad.md +0 -106
  108. package/.claude/commands/crud-squad.md +0 -87
  109. package/.claude/commands/data-squad.md +0 -97
  110. package/.claude/commands/debug-squad.md +0 -303
  111. package/.claude/commands/doc-squad.md +0 -65
  112. package/.claude/commands/handoff.md +0 -137
  113. package/.claude/commands/health.md +0 -49
  114. package/.claude/commands/help.md +0 -29
  115. package/.claude/commands/help:agents.md +0 -151
  116. package/.claude/commands/help:commands.md +0 -78
  117. package/.claude/commands/help:faq.md +0 -79
  118. package/.claude/commands/help:plugins.md +0 -50
  119. package/.claude/commands/help:skills.md +0 -93
  120. package/.claude/commands/help:tools.md +0 -75
  121. package/.claude/commands/hotfix-squad.md +0 -112
  122. package/.claude/commands/integration-squad.md +0 -82
  123. package/.claude/commands/janitor-squad.md +0 -167
  124. package/.claude/commands/learn-auto.md +0 -120
  125. package/.claude/commands/learn.md +0 -120
  126. package/.claude/commands/mcp-list.md +0 -27
  127. package/.claude/commands/onboard-squad.md +0 -140
  128. package/.claude/commands/plan-workspace.md +0 -732
  129. package/.claude/commands/prd.md +0 -130
  130. package/.claude/commands/project-status.md +0 -82
  131. package/.claude/commands/publish.md +0 -138
  132. package/.claude/commands/recap.md +0 -69
  133. package/.claude/commands/restore.md +0 -64
  134. package/.claude/commands/review-squad.md +0 -152
  135. package/.claude/commands/save.md +0 -24
  136. package/.claude/commands/stats.md +0 -19
  137. package/.claude/commands/swarm.md +0 -210
  138. package/.claude/commands/tool-builder.md +0 -39
  139. package/.claude/commands/ws-pull.md +0 -44
  140. package/.claude/hooks/_shared-memory.cjs +0 -305
  141. package/.claude/hooks/_utils.cjs +0 -108
  142. package/.claude/hooks/agent-failure-detector.cjs +0 -383
  143. package/.claude/hooks/agent-usage-logger.cjs +0 -204
  144. package/.claude/hooks/app-edit-guard.cjs +0 -494
  145. package/.claude/hooks/auto-learn.cjs +0 -304
  146. package/.claude/hooks/bash-guard.cjs +0 -272
  147. package/.claude/hooks/builder-mode-manager.cjs +0 -354
  148. package/.claude/hooks/bulk-activity-guard.cjs +0 -271
  149. package/.claude/hooks/context-watchdog.cjs +0 -230
  150. package/.claude/hooks/delegation-reminder.cjs +0 -465
  151. package/.claude/hooks/design-system-lint.cjs +0 -271
  152. package/.claude/hooks/post-scaffold-hook.cjs +0 -181
  153. package/.claude/hooks/prompt-guard.cjs +0 -354
  154. package/.claude/hooks/publish-template-guard.cjs +0 -147
  155. package/.claude/hooks/session-start.cjs +0 -35
  156. package/.claude/hooks/shared-memory-writer.cjs +0 -147
  157. package/.claude/hooks/skill-injector.cjs +0 -140
  158. package/.claude/hooks/skill-usage-logger.cjs +0 -258
  159. package/.claude/hooks/src-edit-guard.cjs +0 -240
  160. package/.claude/hooks/sync-marketplace-agents.cjs +0 -346
  161. package/.claude/settings.json +0 -257
  162. package/.claude/skills/SDK-activity-patterns/SKILL.md +0 -428
  163. package/.claude/skills/SDK-document-templates/SKILL.md +0 -1033
  164. package/.claude/skills/SDK-function-fields/SKILL.md +0 -542
  165. package/.claude/skills/SDK-generate-skill/SKILL.md +0 -92
  166. package/.claude/skills/SDK-init-skill/SKILL.md +0 -127
  167. package/.claude/skills/SDK-insight-queries/SKILL.md +0 -787
  168. package/.claude/skills/SDK-ws-config-skill/SKILL.md +0 -1139
  169. package/.claude/skills/agent-structure/SKILL.md +0 -98
  170. package/.claude/skills/api-documentation-patterns/SKILL.md +0 -474
  171. package/.claude/skills/chrome-mcp-reference/SKILL.md +0 -370
  172. package/.claude/skills/delegation-routing/SKILL.md +0 -202
  173. package/.claude/skills/frontend-design/SKILL.md +0 -254
  174. package/.claude/skills/hailer-activity-mover/SKILL.md +0 -213
  175. package/.claude/skills/hailer-api-client/SKILL.md +0 -518
  176. package/.claude/skills/hailer-app-builder/SKILL.md +0 -1434
  177. package/.claude/skills/hailer-apps-pictures/SKILL.md +0 -269
  178. package/.claude/skills/hailer-design-system/SKILL.md +0 -235
  179. package/.claude/skills/hailer-monolith-automations/SKILL.md +0 -686
  180. package/.claude/skills/hailer-permissions-system/SKILL.md +0 -121
  181. package/.claude/skills/hailer-project-protocol/SKILL.md +0 -488
  182. package/.claude/skills/hailer-rest-api/SKILL.md +0 -61
  183. package/.claude/skills/hailer-rest-api/hailer-activities.md +0 -184
  184. package/.claude/skills/hailer-rest-api/hailer-admin.md +0 -473
  185. package/.claude/skills/hailer-rest-api/hailer-calendar.md +0 -256
  186. package/.claude/skills/hailer-rest-api/hailer-feed.md +0 -249
  187. package/.claude/skills/hailer-rest-api/hailer-insights.md +0 -195
  188. package/.claude/skills/hailer-rest-api/hailer-messaging.md +0 -276
  189. package/.claude/skills/hailer-rest-api/hailer-workflows.md +0 -283
  190. package/.claude/skills/insight-join-patterns/SKILL.md +0 -174
  191. package/.claude/skills/integration-patterns/SKILL.md +0 -421
  192. package/.claude/skills/json-only-output/SKILL.md +0 -72
  193. package/.claude/skills/lsp-setup/SKILL.md +0 -160
  194. package/.claude/skills/mcp-direct-tools/SKILL.md +0 -153
  195. package/.claude/skills/optional-parameters/SKILL.md +0 -72
  196. package/.claude/skills/publish-hailer-app/SKILL.md +0 -244
  197. package/.claude/skills/testing-patterns/SKILL.md +0 -630
  198. package/.claude/skills/tool-builder/SKILL.md +0 -250
  199. package/.claude/skills/tool-parameter-usage/SKILL.md +0 -126
  200. package/.claude/skills/tool-response-verification/SKILL.md +0 -92
  201. package/.claude/skills/zapier-hailer-patterns/SKILL.md +0 -581
  202. package/.mcp.json +0 -13
  203. package/.opencode/agent/agent-ada-skill-builder.md +0 -35
  204. package/.opencode/agent/agent-alejandro-function-fields.md +0 -39
  205. package/.opencode/agent/agent-bjorn-config-audit.md +0 -36
  206. package/.opencode/agent/agent-builder-agent-creator.md +0 -39
  207. package/.opencode/agent/agent-code-simplifier.md +0 -31
  208. package/.opencode/agent/agent-dmitri-activity-crud.md +0 -40
  209. package/.opencode/agent/agent-giuseppe-app-builder.md +0 -37
  210. package/.opencode/agent/agent-gunther-mcp-tools.md +0 -39
  211. package/.opencode/agent/agent-helga-workflow-config.md +0 -203
  212. package/.opencode/agent/agent-igor-activity-mover-automation.md +0 -46
  213. package/.opencode/agent/agent-ingrid-doc-templates.md +0 -39
  214. package/.opencode/agent/agent-ivan-monolith.md +0 -46
  215. package/.opencode/agent/agent-kenji-data-reader.md +0 -53
  216. package/.opencode/agent/agent-lars-code-inspector.md +0 -28
  217. package/.opencode/agent/agent-marco-mockup-builder.md +0 -42
  218. package/.opencode/agent/agent-marcus-api-documenter.md +0 -53
  219. package/.opencode/agent/agent-marketplace-publisher.md +0 -44
  220. package/.opencode/agent/agent-marketplace-reviewer.md +0 -42
  221. package/.opencode/agent/agent-permissions-handler.md +0 -50
  222. package/.opencode/agent/agent-simple-writer.md +0 -45
  223. package/.opencode/agent/agent-svetlana-code-review.md +0 -39
  224. package/.opencode/agent/agent-tanya-test-runner.md +0 -57
  225. package/.opencode/agent/agent-ui-designer.md +0 -56
  226. package/.opencode/agent/agent-viktor-sql-insights.md +0 -34
  227. package/.opencode/agent/agent-web-search.md +0 -42
  228. package/.opencode/agent/agent-yevgeni-discussions.md +0 -37
  229. package/.opencode/agent/agent-zara-zapier.md +0 -53
  230. package/.opencode/commands/app-squad.md +0 -135
  231. package/.opencode/commands/audit-squad.md +0 -158
  232. package/.opencode/commands/autoplan.md +0 -563
  233. package/.opencode/commands/cleanup-squad.md +0 -98
  234. package/.opencode/commands/config-squad.md +0 -106
  235. package/.opencode/commands/crud-squad.md +0 -87
  236. package/.opencode/commands/data-squad.md +0 -97
  237. package/.opencode/commands/debug-squad.md +0 -303
  238. package/.opencode/commands/doc-squad.md +0 -65
  239. package/.opencode/commands/handoff.md +0 -137
  240. package/.opencode/commands/health.md +0 -49
  241. package/.opencode/commands/help-agents.md +0 -151
  242. package/.opencode/commands/help-commands.md +0 -32
  243. package/.opencode/commands/help-faq.md +0 -29
  244. package/.opencode/commands/help-plugins.md +0 -28
  245. package/.opencode/commands/help-skills.md +0 -7
  246. package/.opencode/commands/help-tools.md +0 -40
  247. package/.opencode/commands/help.md +0 -28
  248. package/.opencode/commands/hotfix-squad.md +0 -112
  249. package/.opencode/commands/integration-squad.md +0 -82
  250. package/.opencode/commands/janitor-squad.md +0 -167
  251. package/.opencode/commands/learn-auto.md +0 -120
  252. package/.opencode/commands/learn.md +0 -120
  253. package/.opencode/commands/mcp-list.md +0 -27
  254. package/.opencode/commands/onboard-squad.md +0 -140
  255. package/.opencode/commands/plan-workspace.md +0 -732
  256. package/.opencode/commands/prd.md +0 -131
  257. package/.opencode/commands/project-status.md +0 -82
  258. package/.opencode/commands/publish.md +0 -138
  259. package/.opencode/commands/recap.md +0 -69
  260. package/.opencode/commands/restore.md +0 -64
  261. package/.opencode/commands/review-squad.md +0 -152
  262. package/.opencode/commands/save.md +0 -24
  263. package/.opencode/commands/stats.md +0 -19
  264. package/.opencode/commands/swarm.md +0 -210
  265. package/.opencode/commands/tool-builder.md +0 -39
  266. package/.opencode/commands/ws-pull.md +0 -44
  267. package/.opencode/opencode.json +0 -28
  268. package/SESSION-HANDOFF.md +0 -68
  269. package/inbox/2026-03-04-bot-config-patterns.md +0 -24
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Company Tools
3
+ *
4
+ * Tools for managing workspace-level company settings in Hailer:
5
+ * - Set user role (owner, admin, guest, inviter, feedAdmin, customRole)
6
+ */
7
+ import { Tool } from '../tool-registry';
8
+ export declare const setUserRoleTool: Tool;
9
+ //# sourceMappingURL=company.d.ts.map
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ /**
3
+ * Company Tools
4
+ *
5
+ * Tools for managing workspace-level company settings in Hailer:
6
+ * - Set user role (owner, admin, guest, inviter, feedAdmin, customRole)
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.setUserRoleTool = void 0;
10
+ const zod_1 = require("zod");
11
+ const tool_registry_1 = require("../tool-registry");
12
+ const index_1 = require("../utils/index");
13
+ const tool_helpers_1 = require("../utils/tool-helpers");
14
+ const request_logger_1 = require("../../lib/request-logger");
15
+ const logger = (0, index_1.createLogger)({ component: 'company-tools' });
16
+ // ============================================================================
17
+ // TOOL 1: SET USER ROLE
18
+ // ============================================================================
19
+ const roleSections = ['owner', 'admin', 'guest', 'inviter', 'feedAdmin', 'customRole'];
20
+ const setUserRoleDescription = `Set a user's role in the workspace.
21
+
22
+ Sections:
23
+ - owner: Transfer/revoke workspace ownership (owner only)
24
+ - admin: Grant/revoke admin role (value: true/false)
25
+ - guest: Grant/revoke guest role (value: true/false)
26
+ - inviter: Grant/revoke inviter role (value: true/false)
27
+ - feedAdmin: Grant/revoke feed admin role (value: true/false)
28
+ - customRole: Assign/remove a custom role (value: customRole ID string)
29
+
30
+ Required permissions:
31
+ - owner: only the workspace owner can change
32
+ - admin/guest/feedAdmin: must be admin
33
+ - customRole: must be admin or owner`;
34
+ exports.setUserRoleTool = {
35
+ name: 'set_user_role',
36
+ group: tool_registry_1.ToolGroup.WRITE,
37
+ description: setUserRoleDescription,
38
+ schema: zod_1.z.object({
39
+ section: zod_1.z
40
+ .enum(roleSections)
41
+ .describe('Which role to change: owner, admin, guest, inviter, feedAdmin, or customRole'),
42
+ uid: zod_1.z
43
+ .string()
44
+ .describe('Target user ID'),
45
+ value: zod_1.z
46
+ .union([zod_1.z.coerce.boolean(), zod_1.z.string()])
47
+ .describe('true/false to grant/revoke the role, or a custom role ID string for customRole section'),
48
+ workspaceId: zod_1.z
49
+ .string()
50
+ .optional()
51
+ .describe('Workspace ID. Defaults to the current session workspace.'),
52
+ }),
53
+ async execute(args, context) {
54
+ logger.debug('Setting user role', {
55
+ section: args.section,
56
+ uid: args.uid,
57
+ value: args.value,
58
+ apiKey: context.apiKey.substring(0, 8) + '...',
59
+ });
60
+ try {
61
+ const workspaceId = (0, tool_helpers_1.getResolvedWorkspaceId)(args, context);
62
+ const payload = {
63
+ section: args.section,
64
+ uid: args.uid,
65
+ value: args.value,
66
+ };
67
+ if (workspaceId) {
68
+ payload.workspaceId = workspaceId;
69
+ }
70
+ const result = await context.hailer.request('company.set_user_data', [payload]);
71
+ return (0, index_1.textResponse)(JSON.stringify({
72
+ success: true,
73
+ section: args.section,
74
+ uid: args.uid,
75
+ value: args.value,
76
+ workspaceId,
77
+ result,
78
+ }, null, 2));
79
+ }
80
+ catch (error) {
81
+ if (!request_logger_1.RequestLogger.getCurrent())
82
+ logger.error('Error setting user role', error);
83
+ const msg = error?.msg || error?.message || (0, index_1.getErrorMessage)(error);
84
+ return (0, index_1.errorResponse)(`Error setting user role: ${msg}`);
85
+ }
86
+ },
87
+ };
88
+ //# sourceMappingURL=company.js.map
@@ -304,6 +304,32 @@ exports.fetchDiscussionMessagesTool = {
304
304
  const messageCount = messages.length;
305
305
  const userMessages = messages.filter((m) => m.type === "user");
306
306
  const recentMessage = messages[0];
307
+ function extractForwardedMessage(fwd, depth = 0) {
308
+ if (depth > 10)
309
+ return null;
310
+ const fwdUserInfo = (0, workspace_cache_1.getUserById)(context.workspaceCache, fwd.uid);
311
+ let fwdUsername = `User ${fwd.uid}`;
312
+ if (fwdUserInfo) {
313
+ const fullName = `${fwdUserInfo.firstname || ''} ${fwdUserInfo.lastname || ''}`.trim();
314
+ fwdUsername = fullName || fwdUserInfo.fullName || `User ${fwd.uid}`;
315
+ }
316
+ const extracted = {
317
+ _id: fwd._id,
318
+ uid: fwd.uid,
319
+ username: fwdUsername,
320
+ created: new Date(fwd.created).toLocaleString(),
321
+ msg: fwd.msg || '',
322
+ type: fwd.type
323
+ };
324
+ if (fwd.forwardMessageId)
325
+ extracted.forwardMessageId = fwd.forwardMessageId;
326
+ if (fwd.forwardMessage) {
327
+ const nested = extractForwardedMessage(fwd.forwardMessage, depth + 1);
328
+ if (nested)
329
+ extracted.forwardMessage = nested;
330
+ }
331
+ return extracted;
332
+ }
307
333
  const optimizedMessages = messages.map((msg) => {
308
334
  let cleanMsg = msg.msg || '';
309
335
  if (cleanMsg) {
@@ -333,6 +359,14 @@ exports.fetchDiscussionMessagesTool = {
333
359
  if (msg.replyTo) {
334
360
  optimizedMsg.replyTo = msg.replyTo;
335
361
  }
362
+ if (msg.forwardMessageId) {
363
+ optimizedMsg.forwardMessageId = msg.forwardMessageId;
364
+ }
365
+ if (msg.forwardMessage) {
366
+ const forwarded = extractForwardedMessage(msg.forwardMessage, 0);
367
+ if (forwarded)
368
+ optimizedMsg.forwardMessage = forwarded;
369
+ }
336
370
  return optimizedMsg;
337
371
  });
338
372
  const optimizedResult = {
@@ -434,6 +468,32 @@ exports.fetchPreviousDiscussionMessagesTool = {
434
468
  const messageCount = messages.length;
435
469
  const userMessages = messages.filter((m) => m.type === "user");
436
470
  const oldestMessage = messages.length > 0 ? messages[messages.length - 1] : null;
471
+ function extractForwardedMessage(fwd, depth = 0) {
472
+ if (depth > 10)
473
+ return null;
474
+ const fwdUserInfo = (0, workspace_cache_1.getUserById)(context.workspaceCache, fwd.uid);
475
+ let fwdUsername = `User ${fwd.uid}`;
476
+ if (fwdUserInfo) {
477
+ const fullName = `${fwdUserInfo.firstname || ''} ${fwdUserInfo.lastname || ''}`.trim();
478
+ fwdUsername = fullName || fwdUserInfo.fullName || `User ${fwd.uid}`;
479
+ }
480
+ const extracted = {
481
+ _id: fwd._id,
482
+ uid: fwd.uid,
483
+ username: fwdUsername,
484
+ created: new Date(fwd.created).toLocaleString(),
485
+ msg: fwd.msg || '',
486
+ type: fwd.type
487
+ };
488
+ if (fwd.forwardMessageId)
489
+ extracted.forwardMessageId = fwd.forwardMessageId;
490
+ if (fwd.forwardMessage) {
491
+ const nested = extractForwardedMessage(fwd.forwardMessage, depth + 1);
492
+ if (nested)
493
+ extracted.forwardMessage = nested;
494
+ }
495
+ return extracted;
496
+ }
437
497
  const optimizedMessages = messages.map((msg) => {
438
498
  let cleanMsg = msg.msg || '';
439
499
  if (cleanMsg) {
@@ -456,6 +516,14 @@ exports.fetchPreviousDiscussionMessagesTool = {
456
516
  if (msg.replyTo) {
457
517
  optimizedMsg.replyTo = msg.replyTo;
458
518
  }
519
+ if (msg.forwardMessageId) {
520
+ optimizedMsg.forwardMessageId = msg.forwardMessageId;
521
+ }
522
+ if (msg.forwardMessage) {
523
+ const forwarded = extractForwardedMessage(msg.forwardMessage, 0);
524
+ if (forwarded)
525
+ optimizedMsg.forwardMessage = forwarded;
526
+ }
459
527
  return optimizedMsg;
460
528
  });
461
529
  const optimizedResult = {
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Document Tools - PDF/CSV Generation
3
+ *
4
+ * Tools for generating documents from templates:
5
+ * - List document templates (READ)
6
+ * - Generate PDF documents from activities (WRITE)
7
+ */
8
+ import { Tool } from '../tool-registry';
9
+ export declare const listDocumentTemplatesTool: Tool;
10
+ export declare const generateDocumentTool: Tool;
11
+ //# sourceMappingURL=document.d.ts.map