@hailer/mcp 0.1.16 → 0.2.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 (202) hide show
  1. package/dist/app.js +24 -20
  2. package/dist/core.d.ts +33 -9
  3. package/dist/core.js +279 -147
  4. package/dist/mcp/UserContextCache.js +18 -0
  5. package/dist/mcp/hailer-clients.d.ts +9 -1
  6. package/dist/mcp/hailer-clients.js +13 -3
  7. package/dist/mcp/signal-handler.js +1 -1
  8. package/dist/mcp/tool-registry.d.ts +3 -1
  9. package/dist/mcp/tool-registry.js +4 -1
  10. package/dist/mcp/tools/activity.js +43 -34
  11. package/dist/mcp/tools/bot-config/constants.d.ts +23 -0
  12. package/dist/mcp/tools/bot-config/constants.js +94 -0
  13. package/dist/mcp/tools/{bot-config.d.ts → bot-config/core.d.ts} +6 -6
  14. package/dist/mcp/tools/{bot-config.js → bot-config/core.js} +15 -15
  15. package/dist/mcp/tools/bot-config/index.d.ts +10 -0
  16. package/dist/mcp/tools/bot-config/index.js +59 -0
  17. package/dist/mcp/tools/bot-config/tools.d.ts +7 -0
  18. package/dist/mcp/tools/bot-config/tools.js +15 -0
  19. package/dist/mcp/tools/bot-config/types.d.ts +50 -0
  20. package/dist/mcp/tools/bot-config/types.js +6 -0
  21. package/dist/mcp/tools/bug-fixer-tools.d.ts +21 -0
  22. package/dist/mcp/tools/{giuseppe-tools.js → bug-fixer-tools.js} +61 -61
  23. package/dist/mcp/tools/user.js +10 -29
  24. package/dist/mcp/tools/workflow.js +36 -2
  25. package/dist/mcp/utils/data-transformers.d.ts +0 -8
  26. package/dist/mcp/utils/data-transformers.js +0 -28
  27. package/dist/mcp/utils/index.d.ts +4 -1
  28. package/dist/mcp/utils/index.js +17 -3
  29. package/dist/mcp/utils/pagination.d.ts +40 -0
  30. package/dist/mcp/utils/pagination.js +55 -0
  31. package/dist/mcp/utils/response-builder.d.ts +53 -0
  32. package/dist/mcp/utils/response-builder.js +110 -0
  33. package/dist/mcp/utils/tool-helpers.d.ts +0 -8
  34. package/dist/mcp/utils/tool-helpers.js +0 -24
  35. package/dist/mcp/utils/types.d.ts +1 -33
  36. package/dist/mcp/webhook-handler.d.ts +2 -2
  37. package/dist/mcp/webhook-handler.js +5 -3
  38. package/dist/mcp-server.d.ts +2 -2
  39. package/dist/mcp-server.js +167 -140
  40. package/package.json +1 -1
  41. package/REFACTOR_STATUS.md +0 -127
  42. package/dist/agents/bot-manager.d.ts +0 -48
  43. package/dist/agents/bot-manager.js +0 -254
  44. package/dist/agents/factory.d.ts +0 -150
  45. package/dist/agents/factory.js +0 -650
  46. package/dist/agents/giuseppe/ai.d.ts +0 -83
  47. package/dist/agents/giuseppe/ai.js +0 -466
  48. package/dist/agents/giuseppe/bot.d.ts +0 -110
  49. package/dist/agents/giuseppe/bot.js +0 -780
  50. package/dist/agents/giuseppe/config.d.ts +0 -25
  51. package/dist/agents/giuseppe/config.js +0 -227
  52. package/dist/agents/giuseppe/files.d.ts +0 -52
  53. package/dist/agents/giuseppe/files.js +0 -338
  54. package/dist/agents/giuseppe/git.d.ts +0 -48
  55. package/dist/agents/giuseppe/git.js +0 -298
  56. package/dist/agents/giuseppe/index.d.ts +0 -97
  57. package/dist/agents/giuseppe/index.js +0 -258
  58. package/dist/agents/giuseppe/lsp.d.ts +0 -113
  59. package/dist/agents/giuseppe/lsp.js +0 -485
  60. package/dist/agents/giuseppe/monitor.d.ts +0 -118
  61. package/dist/agents/giuseppe/monitor.js +0 -621
  62. package/dist/agents/giuseppe/prompt.d.ts +0 -5
  63. package/dist/agents/giuseppe/prompt.js +0 -94
  64. package/dist/agents/giuseppe/registries/pending-classification.d.ts +0 -28
  65. package/dist/agents/giuseppe/registries/pending-classification.js +0 -50
  66. package/dist/agents/giuseppe/registries/pending-fix.d.ts +0 -30
  67. package/dist/agents/giuseppe/registries/pending-fix.js +0 -42
  68. package/dist/agents/giuseppe/registries/pending.d.ts +0 -27
  69. package/dist/agents/giuseppe/registries/pending.js +0 -49
  70. package/dist/agents/giuseppe/specialist.d.ts +0 -47
  71. package/dist/agents/giuseppe/specialist.js +0 -237
  72. package/dist/agents/giuseppe/types.d.ts +0 -123
  73. package/dist/agents/giuseppe/types.js +0 -9
  74. package/dist/agents/hailer-expert/index.d.ts +0 -8
  75. package/dist/agents/hailer-expert/index.js +0 -14
  76. package/dist/agents/hal/daemon.d.ts +0 -142
  77. package/dist/agents/hal/daemon.js +0 -1103
  78. package/dist/agents/hal/definitions.d.ts +0 -55
  79. package/dist/agents/hal/definitions.js +0 -263
  80. package/dist/agents/hal/index.d.ts +0 -3
  81. package/dist/agents/hal/index.js +0 -8
  82. package/dist/agents/index.d.ts +0 -18
  83. package/dist/agents/index.js +0 -48
  84. package/dist/agents/shared/base.d.ts +0 -216
  85. package/dist/agents/shared/base.js +0 -846
  86. package/dist/agents/shared/services/agent-registry.d.ts +0 -107
  87. package/dist/agents/shared/services/agent-registry.js +0 -629
  88. package/dist/agents/shared/services/conversation-manager.d.ts +0 -50
  89. package/dist/agents/shared/services/conversation-manager.js +0 -136
  90. package/dist/agents/shared/services/mcp-client.d.ts +0 -56
  91. package/dist/agents/shared/services/mcp-client.js +0 -124
  92. package/dist/agents/shared/services/message-classifier.d.ts +0 -37
  93. package/dist/agents/shared/services/message-classifier.js +0 -187
  94. package/dist/agents/shared/services/message-formatter.d.ts +0 -89
  95. package/dist/agents/shared/services/message-formatter.js +0 -371
  96. package/dist/agents/shared/services/session-logger.d.ts +0 -106
  97. package/dist/agents/shared/services/session-logger.js +0 -446
  98. package/dist/agents/shared/services/tool-executor.d.ts +0 -41
  99. package/dist/agents/shared/services/tool-executor.js +0 -169
  100. package/dist/agents/shared/services/workspace-schema-cache.d.ts +0 -125
  101. package/dist/agents/shared/services/workspace-schema-cache.js +0 -578
  102. package/dist/agents/shared/specialist.d.ts +0 -91
  103. package/dist/agents/shared/specialist.js +0 -399
  104. package/dist/agents/shared/tool-schema-loader.d.ts +0 -62
  105. package/dist/agents/shared/tool-schema-loader.js +0 -232
  106. package/dist/agents/shared/types.d.ts +0 -327
  107. package/dist/agents/shared/types.js +0 -121
  108. package/dist/client/agents/base.d.ts +0 -207
  109. package/dist/client/agents/base.js +0 -744
  110. package/dist/client/agents/definitions.d.ts +0 -53
  111. package/dist/client/agents/definitions.js +0 -263
  112. package/dist/client/agents/orchestrator.d.ts +0 -141
  113. package/dist/client/agents/orchestrator.js +0 -1062
  114. package/dist/client/agents/specialist.d.ts +0 -86
  115. package/dist/client/agents/specialist.js +0 -340
  116. package/dist/client/bot-entrypoint.d.ts +0 -7
  117. package/dist/client/bot-entrypoint.js +0 -103
  118. package/dist/client/bot-manager.d.ts +0 -44
  119. package/dist/client/bot-manager.js +0 -173
  120. package/dist/client/bot-runner.d.ts +0 -35
  121. package/dist/client/bot-runner.js +0 -188
  122. package/dist/client/chat-agent-daemon.d.ts +0 -464
  123. package/dist/client/chat-agent-daemon.js +0 -1774
  124. package/dist/client/daemon-factory.d.ts +0 -106
  125. package/dist/client/daemon-factory.js +0 -301
  126. package/dist/client/factory.d.ts +0 -111
  127. package/dist/client/factory.js +0 -314
  128. package/dist/client/index.d.ts +0 -17
  129. package/dist/client/index.js +0 -38
  130. package/dist/client/multi-bot-manager.d.ts +0 -42
  131. package/dist/client/multi-bot-manager.js +0 -161
  132. package/dist/client/orchestrator-daemon.d.ts +0 -87
  133. package/dist/client/orchestrator-daemon.js +0 -444
  134. package/dist/client/server.d.ts +0 -8
  135. package/dist/client/server.js +0 -251
  136. package/dist/client/services/agent-registry.d.ts +0 -108
  137. package/dist/client/services/agent-registry.js +0 -630
  138. package/dist/client/services/conversation-manager.d.ts +0 -50
  139. package/dist/client/services/conversation-manager.js +0 -136
  140. package/dist/client/services/mcp-client.d.ts +0 -48
  141. package/dist/client/services/mcp-client.js +0 -105
  142. package/dist/client/services/message-classifier.d.ts +0 -37
  143. package/dist/client/services/message-classifier.js +0 -187
  144. package/dist/client/services/message-formatter.d.ts +0 -84
  145. package/dist/client/services/message-formatter.js +0 -353
  146. package/dist/client/services/session-logger.d.ts +0 -106
  147. package/dist/client/services/session-logger.js +0 -446
  148. package/dist/client/services/tool-executor.d.ts +0 -41
  149. package/dist/client/services/tool-executor.js +0 -169
  150. package/dist/client/services/workspace-schema-cache.d.ts +0 -149
  151. package/dist/client/services/workspace-schema-cache.js +0 -732
  152. package/dist/client/specialist-daemon.d.ts +0 -77
  153. package/dist/client/specialist-daemon.js +0 -197
  154. package/dist/client/specialists.d.ts +0 -53
  155. package/dist/client/specialists.js +0 -178
  156. package/dist/client/tool-schema-loader.d.ts +0 -62
  157. package/dist/client/tool-schema-loader.js +0 -232
  158. package/dist/client/types.d.ts +0 -327
  159. package/dist/client/types.js +0 -121
  160. package/dist/commands/seed-config.d.ts +0 -9
  161. package/dist/commands/seed-config.js +0 -372
  162. package/dist/lib/context-manager.d.ts +0 -111
  163. package/dist/lib/context-manager.js +0 -431
  164. package/dist/lib/prompt-length-manager.d.ts +0 -81
  165. package/dist/lib/prompt-length-manager.js +0 -457
  166. package/dist/mcp/tools/giuseppe-tools.d.ts +0 -21
  167. package/dist/modules/bug-reports/bug-config.d.ts +0 -25
  168. package/dist/modules/bug-reports/bug-config.js +0 -187
  169. package/dist/modules/bug-reports/bug-monitor.d.ts +0 -108
  170. package/dist/modules/bug-reports/bug-monitor.js +0 -510
  171. package/dist/modules/bug-reports/giuseppe-agent.d.ts +0 -58
  172. package/dist/modules/bug-reports/giuseppe-agent.js +0 -467
  173. package/dist/modules/bug-reports/giuseppe-ai.d.ts +0 -83
  174. package/dist/modules/bug-reports/giuseppe-ai.js +0 -466
  175. package/dist/modules/bug-reports/giuseppe-bot.d.ts +0 -110
  176. package/dist/modules/bug-reports/giuseppe-bot.js +0 -804
  177. package/dist/modules/bug-reports/giuseppe-daemon.d.ts +0 -80
  178. package/dist/modules/bug-reports/giuseppe-daemon.js +0 -617
  179. package/dist/modules/bug-reports/giuseppe-files.d.ts +0 -64
  180. package/dist/modules/bug-reports/giuseppe-files.js +0 -375
  181. package/dist/modules/bug-reports/giuseppe-git.d.ts +0 -48
  182. package/dist/modules/bug-reports/giuseppe-git.js +0 -298
  183. package/dist/modules/bug-reports/giuseppe-lsp.d.ts +0 -113
  184. package/dist/modules/bug-reports/giuseppe-lsp.js +0 -485
  185. package/dist/modules/bug-reports/giuseppe-prompt.d.ts +0 -5
  186. package/dist/modules/bug-reports/giuseppe-prompt.js +0 -94
  187. package/dist/modules/bug-reports/index.d.ts +0 -77
  188. package/dist/modules/bug-reports/index.js +0 -215
  189. package/dist/modules/bug-reports/pending-classification-registry.d.ts +0 -28
  190. package/dist/modules/bug-reports/pending-classification-registry.js +0 -50
  191. package/dist/modules/bug-reports/pending-fix-registry.d.ts +0 -30
  192. package/dist/modules/bug-reports/pending-fix-registry.js +0 -42
  193. package/dist/modules/bug-reports/pending-registry.d.ts +0 -27
  194. package/dist/modules/bug-reports/pending-registry.js +0 -49
  195. package/dist/modules/bug-reports/types.d.ts +0 -123
  196. package/dist/modules/bug-reports/types.js +0 -9
  197. package/dist/routes/agents.d.ts +0 -44
  198. package/dist/routes/agents.js +0 -311
  199. package/dist/services/agent-credential-store.d.ts +0 -73
  200. package/dist/services/agent-credential-store.js +0 -212
  201. package/dist/services/bug-monitor.d.ts +0 -23
  202. package/dist/services/bug-monitor.js +0 -275
@@ -1,207 +0,0 @@
1
- /**
2
- * Chat Agent Daemon
3
- *
4
- * A persistent LLM conversation that monitors all workspace chats.
5
- * The LLM maintains context across messages and decides what to respond to.
6
- *
7
- * Architecture:
8
- * - One daemon per bot client
9
- * - Subscribes to ALL messenger.new signals (not filtered)
10
- * - LLM sees every message with priority markers
11
- * - LLM decides: RESPOND / IGNORE / ACTION
12
- */
13
- import Anthropic from "@anthropic-ai/sdk";
14
- import { BotClient } from "../bot-manager";
15
- import { HailerSignal } from "../../mcp/signal-handler";
16
- import { Logger } from "../../lib/logger";
17
- import { ToolSchemaLoader, ToolIndexEntry } from "../tool-schema-loader";
18
- import { ToolInput, McpToolResult } from "../types";
19
- import { AgentRegistryService } from "../services/agent-registry";
20
- import { ConversationManager, ConversationMessage } from "../services/conversation-manager";
21
- import { McpClientService } from "../services/mcp-client";
22
- import { MessageFormatterService } from "../services/message-formatter";
23
- import { MessageClassifier } from "../services/message-classifier";
24
- import { SessionLoggerService } from "../services/session-logger";
25
- import { ToolExecutor } from "../services/tool-executor";
26
- import { WorkspaceSchemaCacheService } from "../services/workspace-schema-cache";
27
- import { SessionMetrics, ActivitySession, MessagePriority, IncomingMessage, ConversationState } from "../types";
28
- export type { IncomingMessage, MessagePriority, SessionMetrics, ActivitySession };
29
- export interface ChatAgentDaemonConfig {
30
- botClient: BotClient;
31
- mcpServerUrl: string;
32
- anthropicApiKey: string;
33
- model?: string;
34
- maxContextMessages?: number;
35
- }
36
- export declare class ChatAgentDaemon {
37
- protected logger: Logger;
38
- protected client: Anthropic;
39
- protected botClient: BotClient;
40
- protected config: ChatAgentDaemonConfig;
41
- protected toolSchemaLoader: ToolSchemaLoader;
42
- protected isProcessing: boolean;
43
- protected messageQueue: IncomingMessage[];
44
- protected processedMessageIds: Set<string>;
45
- private typingInterval;
46
- private typingDiscussionId;
47
- private static TYPING_REFRESH_MS;
48
- protected toolIndex: ToolIndexEntry[];
49
- protected minimalTools: Anthropic.Tool[];
50
- /** Message classifier - handles message extraction and priority classification */
51
- protected messageClassifier: MessageClassifier | null;
52
- /** Conversation manager - handles per-discussion context and LRU cache */
53
- protected conversationManager: ConversationManager | null;
54
- /** MCP client service - handles tool schema loading and execution */
55
- protected mcpClient: McpClientService | null;
56
- /** Tool executor - handles tool execution and write tracking */
57
- protected toolExecutor: ToolExecutor | null;
58
- /** Agent registration service - handles Agent Directory, Position, Team, etc. */
59
- protected registryService: AgentRegistryService | null;
60
- /** Message formatting service - handles tag resolution and formatting */
61
- protected messageFormatter: MessageFormatterService | null;
62
- /** Session logging service - handles activity session tracking */
63
- protected sessionLogger: SessionLoggerService | null;
64
- /** Workspace schema cache - dynamic workflow/field ID lookup */
65
- protected schemaCache: WorkspaceSchemaCacheService | null;
66
- /** Current discussion context for tracking */
67
- protected currentDiscussionId: string | null;
68
- protected currentLinkedActivityId: string | null;
69
- constructor(config: ChatAgentDaemonConfig);
70
- /**
71
- * Initialize the daemon - load tools and subscribe to signals
72
- */
73
- initialize(): Promise<void>;
74
- /**
75
- * Extract and classify incoming message from signal
76
- * Can be overridden in subclasses to customize filtering
77
- */
78
- protected extractIncomingMessage(signal: HailerSignal): Promise<IncomingMessage | null>;
79
- /**
80
- * Handle incoming signal from Hailer
81
- */
82
- private handleSignal;
83
- /**
84
- * Process queued messages through the LLM
85
- * Note: Uses flag-first pattern to prevent race conditions
86
- */
87
- private processQueue;
88
- /**
89
- * Process a single message through the persistent LLM conversation
90
- */
91
- private processMessage;
92
- /**
93
- * Format incoming message for LLM consumption
94
- */
95
- private formatIncomingMessage;
96
- /**
97
- * Load and inject memory for an activity into conversation context
98
- * Called when entering a new discussion that's linked to an activity
99
- */
100
- private injectMemoryForActivity;
101
- /**
102
- * Execute tool calls and continue the conversation
103
- * Simple passthrough - just execute tools and return results to LLM
104
- */
105
- protected executeToolsAndContinue(toolUseBlocks: Anthropic.ToolUseBlock[], originalMessage: IncomingMessage): Promise<void>;
106
- /**
107
- * Handle LLM response
108
- * Override in subclasses to customize response handling
109
- */
110
- protected handleLlmResponse(response: Anthropic.Message, originalMessage: IncomingMessage): Promise<void>;
111
- /**
112
- * Start typing indicator with auto-refresh interval
113
- * Keeps refreshing every 3 seconds until stopTypingIndicator is called
114
- */
115
- protected startTypingIndicator(discussionId: string): void;
116
- /**
117
- * Stop typing indicator and clear refresh interval
118
- */
119
- protected stopTypingIndicator(): void;
120
- /**
121
- * Send typing signal to Hailer API
122
- * API: messenger.set_discussion_typing_state(discussionId, typingState)
123
- */
124
- private sendTypingSignal;
125
- /**
126
- * Post a response to a discussion
127
- * Automatically converts @mentions and #activity tags to Hailer tags
128
- * Includes links metadata required for tags to work
129
- */
130
- protected postResponse(discussionId: string, content: string): Promise<void>;
131
- /**
132
- * Get the system prompt for the daemon
133
- * MUST be overridden in subclasses
134
- */
135
- protected getSystemPrompt(): string;
136
- /**
137
- * Get tools for LLM calls
138
- * Override in subclass to add custom tools (like trigger_giuseppe_retry)
139
- */
140
- protected getTools(): Anthropic.Tool[];
141
- /**
142
- * Get tool whitelist for this agent
143
- * Override in subclass to limit which tools are available
144
- * Return null for all tools, or array of tool names
145
- */
146
- protected getToolWhitelist(): string[] | null;
147
- /**
148
- * Preprocess tool input before execution
149
- * Override in subclass to inject context (e.g., sourceActivityId)
150
- * @param toolName - Name of the tool being called
151
- * @param input - Original tool input from LLM
152
- * @returns Processed input (may be modified)
153
- */
154
- protected preprocessToolInput(toolName: string, input: ToolInput): ToolInput;
155
- /**
156
- * Call MCP tool (delegates to McpClientService)
157
- * Protected for subclass access
158
- */
159
- protected callMcpTool(name: string, args: ToolInput): Promise<McpToolResult>;
160
- /**
161
- * Stop the daemon
162
- * Flushes all pending activity sessions before stopping
163
- */
164
- stop(): Promise<void>;
165
- /**
166
- * Get current conversation state (for debugging)
167
- */
168
- getConversationState(): ConversationState;
169
- /**
170
- * Get full conversation for a specific discussion (for debugging)
171
- */
172
- getFullConversation(discussionId?: string): ConversationMessage[];
173
- /**
174
- * Get agent's display name (override in subclass for custom names)
175
- * Default implementation uses the actual Hailer user name from BotClient
176
- */
177
- protected getAgentName(): {
178
- firstName: string;
179
- lastName: string;
180
- };
181
- /**
182
- * Get agent's description/system prompt (override in subclass)
183
- */
184
- protected getAgentDescription(): string;
185
- /**
186
- * Get default team ID from workspace cache
187
- * Returns the first available team, or undefined if no teams exist
188
- *
189
- * Teams structure in init is: { teams: { workspaceId: { teamId: teamData, ... } } }
190
- */
191
- protected getDefaultTeamId(): string | undefined;
192
- /**
193
- * Get agent's Position details (override in subclass for custom positions)
194
- */
195
- protected getPositionDetails(): {
196
- name: string;
197
- purpose: string;
198
- personaTone: string;
199
- coreCapabilities: string;
200
- boundaries: string;
201
- };
202
- /**
203
- * Get agent directory ID
204
- */
205
- getAgentDirectoryId(): string | null;
206
- }
207
- //# sourceMappingURL=base.d.ts.map