@hailer/mcp 1.1.15 → 1.1.16
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.
- package/dist/agents/bot-manager.d.ts +48 -0
- package/dist/agents/bot-manager.d.ts.map +1 -0
- package/dist/agents/bot-manager.js +254 -0
- package/dist/agents/bot-manager.js.map +1 -0
- package/dist/agents/bug-fixer/ai.d.ts +80 -0
- package/dist/agents/bug-fixer/ai.d.ts.map +1 -0
- package/dist/agents/bug-fixer/ai.js +466 -0
- package/dist/agents/bug-fixer/ai.js.map +1 -0
- package/dist/agents/bug-fixer/bot.d.ts +92 -0
- package/dist/agents/bug-fixer/bot.d.ts.map +1 -0
- package/dist/agents/bug-fixer/bot.js +687 -0
- package/dist/agents/bug-fixer/bot.js.map +1 -0
- package/dist/agents/bug-fixer/config.d.ts +21 -0
- package/dist/agents/bug-fixer/config.d.ts.map +1 -0
- package/dist/agents/bug-fixer/config.js +218 -0
- package/dist/agents/bug-fixer/config.js.map +1 -0
- package/dist/agents/bug-fixer/files.d.ts +67 -0
- package/dist/agents/bug-fixer/files.d.ts.map +1 -0
- package/dist/agents/bug-fixer/files.js +386 -0
- package/dist/agents/bug-fixer/files.js.map +1 -0
- package/dist/agents/bug-fixer/git.d.ts +48 -0
- package/dist/agents/bug-fixer/git.d.ts.map +1 -0
- package/dist/agents/bug-fixer/git.js +298 -0
- package/dist/agents/bug-fixer/git.js.map +1 -0
- package/dist/agents/bug-fixer/index.d.ts +103 -0
- package/dist/agents/bug-fixer/index.d.ts.map +1 -0
- package/dist/agents/bug-fixer/index.js +262 -0
- package/dist/agents/bug-fixer/index.js.map +1 -0
- package/dist/agents/bug-fixer/lsp.d.ts +113 -0
- package/dist/agents/bug-fixer/lsp.d.ts.map +1 -0
- package/dist/agents/bug-fixer/lsp.js +485 -0
- package/dist/agents/bug-fixer/lsp.js.map +1 -0
- package/dist/agents/bug-fixer/monitor.d.ts +123 -0
- package/dist/agents/bug-fixer/monitor.d.ts.map +1 -0
- package/dist/agents/bug-fixer/monitor.js +629 -0
- package/dist/agents/bug-fixer/monitor.js.map +1 -0
- package/dist/agents/bug-fixer/prompt.d.ts +5 -0
- package/dist/agents/bug-fixer/prompt.d.ts.map +1 -0
- package/dist/agents/bug-fixer/prompt.js +94 -0
- package/dist/agents/bug-fixer/prompt.js.map +1 -0
- package/dist/agents/bug-fixer/registries/pending-classification.d.ts +28 -0
- package/dist/agents/bug-fixer/registries/pending-classification.d.ts.map +1 -0
- package/dist/agents/bug-fixer/registries/pending-classification.js +50 -0
- package/dist/agents/bug-fixer/registries/pending-classification.js.map +1 -0
- package/dist/agents/bug-fixer/registries/pending-fix.d.ts +33 -0
- package/dist/agents/bug-fixer/registries/pending-fix.d.ts.map +1 -0
- package/dist/agents/bug-fixer/registries/pending-fix.js +64 -0
- package/dist/agents/bug-fixer/registries/pending-fix.js.map +1 -0
- package/dist/agents/bug-fixer/registries/pending.d.ts +27 -0
- package/dist/agents/bug-fixer/registries/pending.d.ts.map +1 -0
- package/dist/agents/bug-fixer/registries/pending.js +49 -0
- package/dist/agents/bug-fixer/registries/pending.js.map +1 -0
- package/dist/agents/bug-fixer/specialist-daemon.d.ts +88 -0
- package/dist/agents/bug-fixer/specialist-daemon.d.ts.map +1 -0
- package/dist/agents/bug-fixer/specialist-daemon.js +431 -0
- package/dist/agents/bug-fixer/specialist-daemon.js.map +1 -0
- package/dist/agents/bug-fixer/specialist.d.ts +47 -0
- package/dist/agents/bug-fixer/specialist.d.ts.map +1 -0
- package/dist/agents/bug-fixer/specialist.js +327 -0
- package/dist/agents/bug-fixer/specialist.js.map +1 -0
- package/dist/agents/bug-fixer/types.d.ts +123 -0
- package/dist/agents/bug-fixer/types.d.ts.map +1 -0
- package/dist/agents/bug-fixer/types.js +9 -0
- package/dist/agents/bug-fixer/types.js.map +1 -0
- package/dist/agents/factory.d.ts +172 -0
- package/dist/agents/factory.d.ts.map +1 -0
- package/dist/agents/factory.js +706 -0
- package/dist/agents/factory.js.map +1 -0
- package/dist/agents/hailer-expert/index.d.ts +8 -0
- package/dist/agents/hailer-expert/index.d.ts.map +1 -0
- package/dist/agents/hailer-expert/index.js +14 -0
- package/dist/agents/hailer-expert/index.js.map +1 -0
- package/dist/agents/hal/daemon.d.ts +174 -0
- package/dist/agents/hal/daemon.d.ts.map +1 -0
- package/dist/agents/hal/daemon.js +1385 -0
- package/dist/agents/hal/daemon.js.map +1 -0
- package/dist/agents/hal/definitions.d.ts +42 -0
- package/dist/agents/hal/definitions.d.ts.map +1 -0
- package/dist/agents/hal/definitions.js +300 -0
- package/dist/agents/hal/definitions.js.map +1 -0
- package/dist/agents/hal/index.d.ts +3 -0
- package/dist/agents/hal/index.d.ts.map +1 -0
- package/dist/agents/hal/index.js +8 -0
- package/dist/agents/hal/index.js.map +1 -0
- package/dist/agents/index.d.ts +18 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +48 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/shared/base.d.ts +253 -0
- package/dist/agents/shared/base.d.ts.map +1 -0
- package/dist/agents/shared/base.js +1122 -0
- package/dist/agents/shared/base.js.map +1 -0
- package/dist/agents/shared/schemas/action-schema.d.ts +62 -0
- package/dist/agents/shared/schemas/action-schema.d.ts.map +1 -0
- package/dist/agents/shared/schemas/action-schema.js +483 -0
- package/dist/agents/shared/schemas/action-schema.js.map +1 -0
- package/dist/agents/shared/services/agent-registry.d.ts +108 -0
- package/dist/agents/shared/services/agent-registry.d.ts.map +1 -0
- package/dist/agents/shared/services/agent-registry.js +469 -0
- package/dist/agents/shared/services/agent-registry.js.map +1 -0
- package/dist/agents/shared/services/conversation-manager.d.ts +57 -0
- package/dist/agents/shared/services/conversation-manager.d.ts.map +1 -0
- package/dist/agents/shared/services/conversation-manager.js +168 -0
- package/dist/agents/shared/services/conversation-manager.js.map +1 -0
- package/dist/agents/shared/services/mcp-client.d.ts +56 -0
- package/dist/agents/shared/services/mcp-client.d.ts.map +1 -0
- package/dist/agents/shared/services/mcp-client.js +124 -0
- package/dist/agents/shared/services/mcp-client.js.map +1 -0
- package/dist/agents/shared/services/message-classifier.d.ts +37 -0
- package/dist/agents/shared/services/message-classifier.d.ts.map +1 -0
- package/dist/agents/shared/services/message-classifier.js +203 -0
- package/dist/agents/shared/services/message-classifier.js.map +1 -0
- package/dist/agents/shared/services/message-formatter.d.ts +89 -0
- package/dist/agents/shared/services/message-formatter.d.ts.map +1 -0
- package/dist/agents/shared/services/message-formatter.js +390 -0
- package/dist/agents/shared/services/message-formatter.js.map +1 -0
- package/dist/agents/shared/services/session-logger.d.ts +162 -0
- package/dist/agents/shared/services/session-logger.d.ts.map +1 -0
- package/dist/agents/shared/services/session-logger.js +724 -0
- package/dist/agents/shared/services/session-logger.js.map +1 -0
- package/dist/agents/shared/services/structured-output-executor.d.ts +88 -0
- package/dist/agents/shared/services/structured-output-executor.d.ts.map +1 -0
- package/dist/agents/shared/services/structured-output-executor.js +296 -0
- package/dist/agents/shared/services/structured-output-executor.js.map +1 -0
- package/dist/agents/shared/services/token-billing.d.ts +72 -0
- package/dist/agents/shared/services/token-billing.d.ts.map +1 -0
- package/dist/agents/shared/services/token-billing.js +198 -0
- package/dist/agents/shared/services/token-billing.js.map +1 -0
- package/dist/agents/shared/services/tool-executor.d.ts +43 -0
- package/dist/agents/shared/services/tool-executor.d.ts.map +1 -0
- package/dist/agents/shared/services/tool-executor.js +175 -0
- package/dist/agents/shared/services/tool-executor.js.map +1 -0
- package/dist/agents/shared/services/typing-indicator.d.ts +24 -0
- package/dist/agents/shared/services/typing-indicator.d.ts.map +1 -0
- package/dist/agents/shared/services/typing-indicator.js +54 -0
- package/dist/agents/shared/services/typing-indicator.js.map +1 -0
- package/dist/agents/shared/services/workspace-schema-cache.d.ts +122 -0
- package/dist/agents/shared/services/workspace-schema-cache.d.ts.map +1 -0
- package/dist/agents/shared/services/workspace-schema-cache.js +507 -0
- package/dist/agents/shared/services/workspace-schema-cache.js.map +1 -0
- package/dist/agents/shared/specialist.d.ts +91 -0
- package/dist/agents/shared/specialist.d.ts.map +1 -0
- package/dist/agents/shared/specialist.js +399 -0
- package/dist/agents/shared/specialist.js.map +1 -0
- package/dist/agents/shared/tool-schema-loader.d.ts +65 -0
- package/dist/agents/shared/tool-schema-loader.d.ts.map +1 -0
- package/dist/agents/shared/tool-schema-loader.js +238 -0
- package/dist/agents/shared/tool-schema-loader.js.map +1 -0
- package/dist/agents/shared/types.d.ts +190 -0
- package/dist/agents/shared/types.d.ts.map +1 -0
- package/dist/agents/shared/types.js +13 -0
- package/dist/agents/shared/types.js.map +1 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js.map +1 -0
- package/dist/bot/bot-config.d.ts.map +1 -0
- package/dist/bot/bot-config.js.map +1 -0
- package/dist/bot/bot-manager.d.ts.map +1 -0
- package/dist/bot/bot-manager.js.map +1 -0
- package/dist/bot/bot.d.ts.map +1 -0
- package/dist/bot/bot.js.map +1 -0
- package/dist/bot/operation-logger.d.ts.map +1 -0
- package/dist/bot/operation-logger.js.map +1 -0
- package/dist/bot/services/__tests__/permission-guard.test.d.ts +2 -0
- package/dist/bot/services/__tests__/permission-guard.test.d.ts.map +1 -0
- package/dist/bot/services/__tests__/permission-guard.test.js +357 -0
- package/dist/bot/services/__tests__/permission-guard.test.js.map +1 -0
- package/dist/bot/services/conversation-manager.d.ts.map +1 -0
- package/dist/bot/services/conversation-manager.js.map +1 -0
- package/dist/bot/services/index.d.ts.map +1 -0
- package/dist/bot/services/index.js.map +1 -0
- package/dist/bot/services/message-classifier.d.ts.map +1 -0
- package/dist/bot/services/message-classifier.js.map +1 -0
- package/dist/bot/services/message-formatter.d.ts.map +1 -0
- package/dist/bot/services/message-formatter.js.map +1 -0
- package/dist/bot/services/permission-guard.d.ts.map +1 -0
- package/dist/bot/services/permission-guard.js.map +1 -0
- package/dist/bot/services/session-logger.d.ts.map +1 -0
- package/dist/bot/services/session-logger.js.map +1 -0
- package/dist/bot/services/token-billing.d.ts.map +1 -0
- package/dist/bot/services/token-billing.js.map +1 -0
- package/dist/bot/services/types.d.ts.map +1 -0
- package/dist/bot/services/types.js.map +1 -0
- package/dist/bot/services/typing-indicator.d.ts.map +1 -0
- package/dist/bot/services/typing-indicator.js.map +1 -0
- package/dist/bot/services/workspace-schema-cache.d.ts.map +1 -0
- package/dist/bot/services/workspace-schema-cache.js.map +1 -0
- package/dist/bot/tool-executor.d.ts.map +1 -0
- package/dist/bot/tool-executor.js.map +1 -0
- package/dist/bot/workspace-overview.d.ts.map +1 -0
- package/dist/bot/workspace-overview.js.map +1 -0
- package/dist/bot-config/constants.d.ts +42 -0
- package/dist/bot-config/constants.d.ts.map +1 -0
- package/dist/bot-config/constants.js +118 -0
- package/dist/bot-config/constants.js.map +1 -0
- package/dist/bot-config/context.d.ts +157 -0
- package/dist/bot-config/context.d.ts.map +1 -0
- package/dist/bot-config/context.js +475 -0
- package/dist/bot-config/context.js.map +1 -0
- package/dist/bot-config/index.d.ts +21 -0
- package/dist/bot-config/index.d.ts.map +1 -0
- package/dist/bot-config/index.js +104 -0
- package/dist/bot-config/index.js.map +1 -0
- package/dist/bot-config/loader.d.ts +28 -0
- package/dist/bot-config/loader.d.ts.map +1 -0
- package/dist/bot-config/loader.js +194 -0
- package/dist/bot-config/loader.js.map +1 -0
- package/dist/bot-config/persistence.d.ts +68 -0
- package/dist/bot-config/persistence.d.ts.map +1 -0
- package/dist/bot-config/persistence.js +261 -0
- package/dist/bot-config/persistence.js.map +1 -0
- package/dist/bot-config/state.d.ts +56 -0
- package/dist/bot-config/state.d.ts.map +1 -0
- package/dist/bot-config/state.js +197 -0
- package/dist/bot-config/state.js.map +1 -0
- package/dist/bot-config/tools.d.ts +28 -0
- package/dist/bot-config/tools.d.ts.map +1 -0
- package/dist/bot-config/tools.js +279 -0
- package/dist/bot-config/tools.js.map +1 -0
- package/dist/bot-config/types.d.ts +45 -0
- package/dist/bot-config/types.d.ts.map +1 -0
- package/dist/bot-config/types.js +9 -0
- package/dist/bot-config/types.js.map +1 -0
- package/dist/bot-config/webhooks.d.ts +27 -0
- package/dist/bot-config/webhooks.d.ts.map +1 -0
- package/dist/bot-config/webhooks.js +212 -0
- package/dist/bot-config/webhooks.js.map +1 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js.map +1 -0
- package/dist/client/agents/base.d.ts +207 -0
- package/dist/client/agents/base.d.ts.map +1 -0
- package/dist/client/agents/base.js +744 -0
- package/dist/client/agents/base.js.map +1 -0
- package/dist/client/agents/definitions.d.ts +53 -0
- package/dist/client/agents/definitions.d.ts.map +1 -0
- package/dist/client/agents/definitions.js +263 -0
- package/dist/client/agents/definitions.js.map +1 -0
- package/dist/client/agents/orchestrator.d.ts +141 -0
- package/dist/client/agents/orchestrator.d.ts.map +1 -0
- package/dist/client/agents/orchestrator.js +1062 -0
- package/dist/client/agents/orchestrator.js.map +1 -0
- package/dist/client/agents/specialist.d.ts +86 -0
- package/dist/client/agents/specialist.d.ts.map +1 -0
- package/dist/client/agents/specialist.js +340 -0
- package/dist/client/agents/specialist.js.map +1 -0
- package/dist/client/bot-entrypoint.d.ts +7 -0
- package/dist/client/bot-entrypoint.d.ts.map +1 -0
- package/dist/client/bot-entrypoint.js +103 -0
- package/dist/client/bot-entrypoint.js.map +1 -0
- package/dist/client/bot-manager.d.ts +44 -0
- package/dist/client/bot-manager.d.ts.map +1 -0
- package/dist/client/bot-manager.js +173 -0
- package/dist/client/bot-manager.js.map +1 -0
- package/dist/client/bot-runner.d.ts +35 -0
- package/dist/client/bot-runner.d.ts.map +1 -0
- package/dist/client/bot-runner.js +188 -0
- package/dist/client/bot-runner.js.map +1 -0
- package/dist/client/chat-agent-daemon.d.ts +464 -0
- package/dist/client/chat-agent-daemon.d.ts.map +1 -0
- package/dist/client/chat-agent-daemon.js +1774 -0
- package/dist/client/chat-agent-daemon.js.map +1 -0
- package/dist/client/daemon-factory.d.ts +106 -0
- package/dist/client/daemon-factory.d.ts.map +1 -0
- package/dist/client/daemon-factory.js +301 -0
- package/dist/client/daemon-factory.js.map +1 -0
- package/dist/client/factory.d.ts +111 -0
- package/dist/client/factory.d.ts.map +1 -0
- package/dist/client/factory.js +314 -0
- package/dist/client/factory.js.map +1 -0
- package/dist/client/index.d.ts +17 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +38 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/multi-bot-manager.d.ts +42 -0
- package/dist/client/multi-bot-manager.d.ts.map +1 -0
- package/dist/client/multi-bot-manager.js +161 -0
- package/dist/client/multi-bot-manager.js.map +1 -0
- package/dist/client/orchestrator-daemon.d.ts +87 -0
- package/dist/client/orchestrator-daemon.d.ts.map +1 -0
- package/dist/client/orchestrator-daemon.js +444 -0
- package/dist/client/orchestrator-daemon.js.map +1 -0
- package/dist/client/server.d.ts +8 -0
- package/dist/client/server.d.ts.map +1 -0
- package/dist/client/server.js +251 -0
- package/dist/client/server.js.map +1 -0
- package/dist/client/services/agent-registry.d.ts +108 -0
- package/dist/client/services/agent-registry.d.ts.map +1 -0
- package/dist/client/services/agent-registry.js +630 -0
- package/dist/client/services/agent-registry.js.map +1 -0
- package/dist/client/services/conversation-manager.d.ts +50 -0
- package/dist/client/services/conversation-manager.d.ts.map +1 -0
- package/dist/client/services/conversation-manager.js +136 -0
- package/dist/client/services/conversation-manager.js.map +1 -0
- package/dist/client/services/mcp-client.d.ts +48 -0
- package/dist/client/services/mcp-client.d.ts.map +1 -0
- package/dist/client/services/mcp-client.js +105 -0
- package/dist/client/services/mcp-client.js.map +1 -0
- package/dist/client/services/message-classifier.d.ts +37 -0
- package/dist/client/services/message-classifier.d.ts.map +1 -0
- package/dist/client/services/message-classifier.js +187 -0
- package/dist/client/services/message-classifier.js.map +1 -0
- package/dist/client/services/message-formatter.d.ts +84 -0
- package/dist/client/services/message-formatter.d.ts.map +1 -0
- package/dist/client/services/message-formatter.js +353 -0
- package/dist/client/services/message-formatter.js.map +1 -0
- package/dist/client/services/session-logger.d.ts +106 -0
- package/dist/client/services/session-logger.d.ts.map +1 -0
- package/dist/client/services/session-logger.js +446 -0
- package/dist/client/services/session-logger.js.map +1 -0
- package/dist/client/services/tool-executor.d.ts +41 -0
- package/dist/client/services/tool-executor.d.ts.map +1 -0
- package/dist/client/services/tool-executor.js +169 -0
- package/dist/client/services/tool-executor.js.map +1 -0
- package/dist/client/services/workspace-schema-cache.d.ts +149 -0
- package/dist/client/services/workspace-schema-cache.d.ts.map +1 -0
- package/dist/client/services/workspace-schema-cache.js +732 -0
- package/dist/client/services/workspace-schema-cache.js.map +1 -0
- package/dist/client/specialist-daemon.d.ts +77 -0
- package/dist/client/specialist-daemon.d.ts.map +1 -0
- package/dist/client/specialist-daemon.js +197 -0
- package/dist/client/specialist-daemon.js.map +1 -0
- package/dist/client/specialists.d.ts +53 -0
- package/dist/client/specialists.d.ts.map +1 -0
- package/dist/client/specialists.js +178 -0
- package/dist/client/specialists.js.map +1 -0
- package/dist/client/tool-schema-loader.d.ts +62 -0
- package/dist/client/tool-schema-loader.d.ts.map +1 -0
- package/dist/client/tool-schema-loader.js +232 -0
- package/dist/client/tool-schema-loader.js.map +1 -0
- package/dist/client/types.d.ts +327 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +121 -0
- package/dist/client/types.js.map +1 -0
- package/dist/commands/seed-config.d.ts +9 -0
- package/dist/commands/seed-config.d.ts.map +1 -0
- package/dist/commands/seed-config.js +392 -0
- package/dist/commands/seed-config.js.map +1 -0
- package/dist/commands/setup.d.ts +11 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +320 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js.map +1 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js.map +1 -0
- package/dist/lib/discussion-lock.d.ts.map +1 -0
- package/dist/lib/discussion-lock.js.map +1 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/request-logger.d.ts.map +1 -0
- package/dist/lib/request-logger.js.map +1 -0
- package/dist/mcp/UserContextCache.d.ts.map +1 -0
- package/dist/mcp/UserContextCache.js.map +1 -0
- package/dist/mcp/auth.d.ts.map +1 -0
- package/dist/mcp/auth.js.map +1 -0
- package/dist/mcp/hailer-clients.d.ts.map +1 -0
- package/dist/mcp/hailer-clients.js.map +1 -0
- package/dist/mcp/session-store.d.ts.map +1 -0
- package/dist/mcp/session-store.js.map +1 -0
- package/dist/mcp/signal-handler.d.ts.map +1 -0
- package/dist/mcp/signal-handler.js.map +1 -0
- package/dist/mcp/tool-registry.d.ts.map +1 -0
- package/dist/mcp/tool-registry.js.map +1 -0
- package/dist/mcp/tools/__tests__/discussion-forward.test.d.ts +2 -0
- package/dist/mcp/tools/__tests__/discussion-forward.test.d.ts.map +1 -0
- package/dist/mcp/tools/__tests__/discussion-forward.test.js +218 -0
- package/dist/mcp/tools/__tests__/discussion-forward.test.js.map +1 -0
- package/dist/mcp/tools/activity.d.ts.map +1 -0
- package/dist/mcp/tools/activity.js.map +1 -0
- package/dist/mcp/tools/app-core.d.ts.map +1 -0
- package/dist/mcp/tools/app-core.js.map +1 -0
- package/dist/mcp/tools/app-marketplace.d.ts.map +1 -0
- package/dist/mcp/tools/app-marketplace.js.map +1 -0
- package/dist/mcp/tools/app-member.d.ts.map +1 -0
- package/dist/mcp/tools/app-member.js.map +1 -0
- package/dist/mcp/tools/app-scaffold.d.ts.map +1 -0
- package/dist/mcp/tools/app-scaffold.js.map +1 -0
- package/dist/mcp/tools/app.d.ts.map +1 -0
- package/dist/mcp/tools/app.js.map +1 -0
- package/dist/mcp/tools/bot-config/constants.d.ts.map +1 -0
- package/dist/mcp/tools/bot-config/constants.js.map +1 -0
- package/dist/mcp/tools/bot-config/core.d.ts.map +1 -0
- package/dist/mcp/tools/bot-config/core.js.map +1 -0
- package/dist/mcp/tools/bot-config/index.d.ts.map +1 -0
- package/dist/mcp/tools/bot-config/index.js.map +1 -0
- package/dist/mcp/tools/bot-config/tools.d.ts.map +1 -0
- package/dist/mcp/tools/bot-config/tools.js.map +1 -0
- package/dist/mcp/tools/bot-config/types.d.ts.map +1 -0
- package/dist/mcp/tools/bot-config/types.js.map +1 -0
- package/dist/mcp/tools/bug-fixer-tools.d.ts.map +1 -0
- package/dist/mcp/tools/bug-fixer-tools.js.map +1 -0
- package/dist/mcp/tools/company.d.ts.map +1 -0
- package/dist/mcp/tools/company.js.map +1 -0
- package/dist/mcp/tools/discussion.d.ts.map +1 -0
- package/dist/mcp/tools/discussion.js.map +1 -0
- package/dist/mcp/tools/document.d.ts.map +1 -0
- package/dist/mcp/tools/document.js.map +1 -0
- package/dist/mcp/tools/file.d.ts.map +1 -0
- package/dist/mcp/tools/file.js.map +1 -0
- package/dist/mcp/tools/insight.d.ts.map +1 -0
- package/dist/mcp/tools/insight.js.map +1 -0
- package/dist/mcp/tools/investigate.d.ts.map +1 -0
- package/dist/mcp/tools/investigate.js.map +1 -0
- package/dist/mcp/tools/user.d.ts.map +1 -0
- package/dist/mcp/tools/user.js.map +1 -0
- package/dist/mcp/tools/workflow-permissions.d.ts.map +1 -0
- package/dist/mcp/tools/workflow-permissions.js.map +1 -0
- package/dist/mcp/tools/workflow.d.ts.map +1 -0
- package/dist/mcp/tools/workflow.js.map +1 -0
- package/dist/mcp/utils/api-errors.d.ts.map +1 -0
- package/dist/mcp/utils/api-errors.js.map +1 -0
- package/dist/mcp/utils/data-transformers.d.ts.map +1 -0
- package/dist/mcp/utils/data-transformers.js.map +1 -0
- package/dist/mcp/utils/file-upload.d.ts.map +1 -0
- package/dist/mcp/utils/file-upload.js.map +1 -0
- package/dist/mcp/utils/hailer-api-client.d.ts.map +1 -0
- package/dist/mcp/utils/hailer-api-client.js.map +1 -0
- package/dist/mcp/utils/index.d.ts.map +1 -0
- package/dist/mcp/utils/index.js.map +1 -0
- package/dist/mcp/utils/logger.d.ts.map +1 -0
- package/dist/mcp/utils/logger.js.map +1 -0
- package/dist/mcp/utils/pagination.d.ts.map +1 -0
- package/dist/mcp/utils/pagination.js.map +1 -0
- package/dist/mcp/utils/response-builder.d.ts.map +1 -0
- package/dist/mcp/utils/response-builder.js.map +1 -0
- package/dist/mcp/utils/role-utils.d.ts.map +1 -0
- package/dist/mcp/utils/role-utils.js.map +1 -0
- package/dist/mcp/utils/tool-helpers.d.ts.map +1 -0
- package/dist/mcp/utils/tool-helpers.js.map +1 -0
- package/dist/mcp/utils/types.d.ts.map +1 -0
- package/dist/mcp/utils/types.js.map +1 -0
- package/dist/mcp/webhook-handler.d.ts.map +1 -0
- package/dist/mcp/webhook-handler.js.map +1 -0
- package/dist/mcp/workspace-cache.d.ts.map +1 -0
- package/dist/mcp/workspace-cache.js.map +1 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/modules/bug-reports/bug-config.d.ts +25 -0
- package/dist/modules/bug-reports/bug-config.d.ts.map +1 -0
- package/dist/modules/bug-reports/bug-config.js +187 -0
- package/dist/modules/bug-reports/bug-config.js.map +1 -0
- package/dist/modules/bug-reports/bug-monitor.d.ts +108 -0
- package/dist/modules/bug-reports/bug-monitor.d.ts.map +1 -0
- package/dist/modules/bug-reports/bug-monitor.js +510 -0
- package/dist/modules/bug-reports/bug-monitor.js.map +1 -0
- package/dist/modules/bug-reports/giuseppe-agent.d.ts +58 -0
- package/dist/modules/bug-reports/giuseppe-agent.d.ts.map +1 -0
- package/dist/modules/bug-reports/giuseppe-agent.js +467 -0
- package/dist/modules/bug-reports/giuseppe-agent.js.map +1 -0
- package/dist/modules/bug-reports/giuseppe-ai.d.ts +83 -0
- package/dist/modules/bug-reports/giuseppe-ai.d.ts.map +1 -0
- package/dist/modules/bug-reports/giuseppe-ai.js +466 -0
- package/dist/modules/bug-reports/giuseppe-ai.js.map +1 -0
- package/dist/modules/bug-reports/giuseppe-bot.d.ts +110 -0
- package/dist/modules/bug-reports/giuseppe-bot.d.ts.map +1 -0
- package/dist/modules/bug-reports/giuseppe-bot.js +804 -0
- package/dist/modules/bug-reports/giuseppe-bot.js.map +1 -0
- package/dist/modules/bug-reports/giuseppe-daemon.d.ts +80 -0
- package/dist/modules/bug-reports/giuseppe-daemon.d.ts.map +1 -0
- package/dist/modules/bug-reports/giuseppe-daemon.js +617 -0
- package/dist/modules/bug-reports/giuseppe-daemon.js.map +1 -0
- package/dist/modules/bug-reports/giuseppe-files.d.ts +64 -0
- package/dist/modules/bug-reports/giuseppe-files.d.ts.map +1 -0
- package/dist/modules/bug-reports/giuseppe-files.js +375 -0
- package/dist/modules/bug-reports/giuseppe-files.js.map +1 -0
- package/dist/modules/bug-reports/giuseppe-git.d.ts +48 -0
- package/dist/modules/bug-reports/giuseppe-git.d.ts.map +1 -0
- package/dist/modules/bug-reports/giuseppe-git.js +298 -0
- package/dist/modules/bug-reports/giuseppe-git.js.map +1 -0
- package/dist/modules/bug-reports/giuseppe-lsp.d.ts +113 -0
- package/dist/modules/bug-reports/giuseppe-lsp.d.ts.map +1 -0
- package/dist/modules/bug-reports/giuseppe-lsp.js +485 -0
- package/dist/modules/bug-reports/giuseppe-lsp.js.map +1 -0
- package/dist/modules/bug-reports/giuseppe-prompt.d.ts +5 -0
- package/dist/modules/bug-reports/giuseppe-prompt.d.ts.map +1 -0
- package/dist/modules/bug-reports/giuseppe-prompt.js +94 -0
- package/dist/modules/bug-reports/giuseppe-prompt.js.map +1 -0
- package/dist/modules/bug-reports/index.d.ts +77 -0
- package/dist/modules/bug-reports/index.d.ts.map +1 -0
- package/dist/modules/bug-reports/index.js +215 -0
- package/dist/modules/bug-reports/index.js.map +1 -0
- package/dist/modules/bug-reports/pending-classification-registry.d.ts +28 -0
- package/dist/modules/bug-reports/pending-classification-registry.d.ts.map +1 -0
- package/dist/modules/bug-reports/pending-classification-registry.js +50 -0
- package/dist/modules/bug-reports/pending-classification-registry.js.map +1 -0
- package/dist/modules/bug-reports/pending-fix-registry.d.ts +30 -0
- package/dist/modules/bug-reports/pending-fix-registry.d.ts.map +1 -0
- package/dist/modules/bug-reports/pending-fix-registry.js +42 -0
- package/dist/modules/bug-reports/pending-fix-registry.js.map +1 -0
- package/dist/modules/bug-reports/pending-registry.d.ts +27 -0
- package/dist/modules/bug-reports/pending-registry.d.ts.map +1 -0
- package/dist/modules/bug-reports/pending-registry.js +49 -0
- package/dist/modules/bug-reports/pending-registry.js.map +1 -0
- package/dist/modules/bug-reports/types.d.ts +123 -0
- package/dist/modules/bug-reports/types.d.ts.map +1 -0
- package/dist/modules/bug-reports/types.js +9 -0
- package/dist/modules/bug-reports/types.js.map +1 -0
- package/dist/plugins/bug-fixer/index.d.ts.map +1 -0
- package/dist/plugins/bug-fixer/index.js.map +1 -0
- package/dist/plugins/bug-fixer/tools.d.ts.map +1 -0
- package/dist/plugins/bug-fixer/tools.js.map +1 -0
- package/dist/plugins/vipunen/__tests__/tools.test.d.ts +10 -0
- package/dist/plugins/vipunen/__tests__/tools.test.d.ts.map +1 -0
- package/dist/plugins/vipunen/__tests__/tools.test.js +646 -0
- package/dist/plugins/vipunen/__tests__/tools.test.js.map +1 -0
- package/dist/plugins/vipunen/client.d.ts.map +1 -0
- package/dist/plugins/vipunen/client.js.map +1 -0
- package/dist/plugins/vipunen/index.d.ts.map +1 -0
- package/dist/plugins/vipunen/index.js.map +1 -0
- package/dist/plugins/vipunen/tools.d.ts.map +1 -0
- package/dist/plugins/vipunen/tools.js.map +1 -0
- package/dist/routes/agents.d.ts +44 -0
- package/dist/routes/agents.d.ts.map +1 -0
- package/dist/routes/agents.js +311 -0
- package/dist/routes/agents.js.map +1 -0
- package/dist/services/agent-credential-store.d.ts +73 -0
- package/dist/services/agent-credential-store.d.ts.map +1 -0
- package/dist/services/agent-credential-store.js +212 -0
- package/dist/services/agent-credential-store.js.map +1 -0
- package/dist/stdio-server.d.ts.map +1 -0
- package/dist/stdio-server.js.map +1 -0
- package/dist/workspace/context.d.ts +148 -0
- package/dist/workspace/context.d.ts.map +1 -0
- package/dist/workspace/context.js +339 -0
- package/dist/workspace/context.js.map +1 -0
- package/dist/workspace/credentials.d.ts +55 -0
- package/dist/workspace/credentials.d.ts.map +1 -0
- package/dist/workspace/credentials.js +239 -0
- package/dist/workspace/credentials.js.map +1 -0
- package/dist/workspace/index.d.ts +21 -0
- package/dist/workspace/index.d.ts.map +1 -0
- package/dist/workspace/index.js +45 -0
- package/dist/workspace/index.js.map +1 -0
- package/dist/workspace/loader.d.ts +27 -0
- package/dist/workspace/loader.d.ts.map +1 -0
- package/dist/workspace/loader.js +222 -0
- package/dist/workspace/loader.js.map +1 -0
- package/dist/workspace/schema.d.ts +37 -0
- package/dist/workspace/schema.d.ts.map +1 -0
- package/dist/workspace/schema.js +192 -0
- package/dist/workspace/schema.js.map +1 -0
- package/package.json +13 -1
- package/.claude/.context-watchdog.json +0 -1
- package/.claude/.session-checked +0 -1
- package/test-billing-server.js +0 -136
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Bug Fixer Specialist Daemon
|
|
4
|
+
*
|
|
5
|
+
* A specialist daemon for bug fixing that extends SpecialistDaemon.
|
|
6
|
+
* Bug Fixer handles bug discussions naturally - responds to all messages
|
|
7
|
+
* in bug discussions (not just @mentions).
|
|
8
|
+
*
|
|
9
|
+
* Tools: Uses MCP tools registered in the tool registry.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.BugFixerSpecialist = void 0;
|
|
13
|
+
const specialist_1 = require("../shared/specialist");
|
|
14
|
+
const logger_1 = require("../../lib/logger");
|
|
15
|
+
const config_1 = require("../../config");
|
|
16
|
+
class BugFixerSpecialist extends specialist_1.SpecialistDaemon {
|
|
17
|
+
bugFixerLogger;
|
|
18
|
+
// Track bug discussions Bug Fixer is handling
|
|
19
|
+
bugDiscussions = new Map();
|
|
20
|
+
constructor(config) {
|
|
21
|
+
super(config);
|
|
22
|
+
this.bugFixerLogger = (0, logger_1.createLogger)({
|
|
23
|
+
component: "BugFixerSpecialist",
|
|
24
|
+
botId: config.botClient.userId,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Register a bug discussion for Bug Fixer to handle
|
|
29
|
+
* Call this when a new bug is detected
|
|
30
|
+
*/
|
|
31
|
+
registerBugDiscussion(discussionId, bugId, bugName, appPath) {
|
|
32
|
+
this.bugDiscussions.set(discussionId, { bugId, bugName, appPath });
|
|
33
|
+
this.bugFixerLogger.info("Registered bug discussion", { discussionId, bugId, bugName });
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Unregister a bug discussion (bug resolved)
|
|
37
|
+
*/
|
|
38
|
+
unregisterBugDiscussion(discussionId) {
|
|
39
|
+
this.bugDiscussions.delete(discussionId);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Check if Bug Fixer is handling a discussion
|
|
43
|
+
*/
|
|
44
|
+
isHandlingDiscussion(discussionId) {
|
|
45
|
+
return this.bugDiscussions.has(discussionId);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Override to respond to ALL messages in bug discussions (not just @mentions)
|
|
49
|
+
*/
|
|
50
|
+
async extractIncomingMessage(signal) {
|
|
51
|
+
// FIRST: Check if this is a bug discussion we're handling (before @mention check)
|
|
52
|
+
const discussionId = signal.data?.discussion;
|
|
53
|
+
this.bugFixerLogger.debug("Checking signal for bug discussion", {
|
|
54
|
+
discussionId,
|
|
55
|
+
registeredDiscussions: Array.from(this.bugDiscussions.keys()),
|
|
56
|
+
signalType: signal.type,
|
|
57
|
+
});
|
|
58
|
+
// Check if this is a registered bug discussion
|
|
59
|
+
const bugInfo = discussionId ? this.bugDiscussions.get(discussionId) : null;
|
|
60
|
+
if (!bugInfo) {
|
|
61
|
+
// Not a bug discussion - fall back to @mention check (parent behavior)
|
|
62
|
+
return super.extractIncomingMessage(signal);
|
|
63
|
+
}
|
|
64
|
+
this.bugFixerLogger.info("Processing message in registered bug discussion", {
|
|
65
|
+
discussionId,
|
|
66
|
+
bugName: bugInfo.bugName,
|
|
67
|
+
});
|
|
68
|
+
// Get the message content
|
|
69
|
+
const senderId = signal.data?.uid;
|
|
70
|
+
if (!senderId)
|
|
71
|
+
return null;
|
|
72
|
+
// Skip our own messages
|
|
73
|
+
if (senderId === this.botClient.userId)
|
|
74
|
+
return null;
|
|
75
|
+
// Fetch the message content using the Hailer API
|
|
76
|
+
try {
|
|
77
|
+
const msgId = signal.data?.msg_id;
|
|
78
|
+
this.bugFixerLogger.info("Processing bug discussion message", {
|
|
79
|
+
discussionId,
|
|
80
|
+
bugName: bugInfo.bugName,
|
|
81
|
+
msgId,
|
|
82
|
+
});
|
|
83
|
+
// Fetch actual message content from API
|
|
84
|
+
const response = await this.botClient.client.socket.request("v3.discussion.message.latest", [discussionId]);
|
|
85
|
+
const messages = response?.messages || [];
|
|
86
|
+
const targetMessage = messages.find((msg) => msg._id === msgId);
|
|
87
|
+
if (!targetMessage) {
|
|
88
|
+
this.bugFixerLogger.warn("Message not found in discussion", { discussionId, msgId });
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
// Extract content - try both field names
|
|
92
|
+
const messageContent = targetMessage.msg || targetMessage.content || "";
|
|
93
|
+
if (!messageContent) {
|
|
94
|
+
this.bugFixerLogger.warn("Message has no content", { discussionId, msgId, targetMessage });
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
// Get sender name from cache or message
|
|
98
|
+
const cachedUser = this.botClient.workspaceCache?.usersById[senderId];
|
|
99
|
+
const senderName = cachedUser?.fullName
|
|
100
|
+
|| `${cachedUser?.firstname || ''} ${cachedUser?.lastname || ''}`.trim()
|
|
101
|
+
|| targetMessage.userName
|
|
102
|
+
|| "User";
|
|
103
|
+
this.bugFixerLogger.debug("Extracted message content", {
|
|
104
|
+
discussionId,
|
|
105
|
+
msgId,
|
|
106
|
+
contentPreview: messageContent.substring(0, 50),
|
|
107
|
+
senderName,
|
|
108
|
+
});
|
|
109
|
+
// Return a properly structured IncomingMessage with actual content
|
|
110
|
+
return {
|
|
111
|
+
id: msgId,
|
|
112
|
+
discussionId,
|
|
113
|
+
senderId,
|
|
114
|
+
senderName,
|
|
115
|
+
content: messageContent,
|
|
116
|
+
timestamp: Date.now(),
|
|
117
|
+
priority: "high",
|
|
118
|
+
priorityReason: `Bug discussion: ${bugInfo.bugName}`,
|
|
119
|
+
workspaceId: signal.workspaceId || '',
|
|
120
|
+
linkedActivityId: bugInfo.bugId,
|
|
121
|
+
linkedActivityName: bugInfo.bugName,
|
|
122
|
+
isMention: false,
|
|
123
|
+
isReplyToBot: false,
|
|
124
|
+
isDirectMessage: true,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
this.bugFixerLogger.warn("Failed to process bug discussion message", { discussionId, error });
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Bug Fixer's tool whitelist - bug fixing tools
|
|
134
|
+
*/
|
|
135
|
+
getToolWhitelist() {
|
|
136
|
+
return [
|
|
137
|
+
// Standard Hailer tools
|
|
138
|
+
"list_workflows",
|
|
139
|
+
"list_workflow_phases",
|
|
140
|
+
"get_workflow_schema",
|
|
141
|
+
"list_activities",
|
|
142
|
+
"show_activity_by_id",
|
|
143
|
+
"update_activity",
|
|
144
|
+
"add_discussion_message",
|
|
145
|
+
"fetch_discussion_messages",
|
|
146
|
+
"get_activity_from_discussion",
|
|
147
|
+
"leave_discussion",
|
|
148
|
+
"search_workspace_users",
|
|
149
|
+
// Bug Fixer's bug-fixing tools (registered as MCP tools)
|
|
150
|
+
"bug_fixer_find_app",
|
|
151
|
+
"bug_fixer_list_files",
|
|
152
|
+
"bug_fixer_read_file",
|
|
153
|
+
// "bug_fixer_write_file", // Disabled - use bug_fixer_apply_fix instead
|
|
154
|
+
"bug_fixer_apply_fix", // search/replace pattern (token-efficient)
|
|
155
|
+
"bug_fixer_run_build",
|
|
156
|
+
"bug_fixer_git_status",
|
|
157
|
+
"bug_fixer_git_pull",
|
|
158
|
+
"bug_fixer_git_commit",
|
|
159
|
+
"bug_fixer_git_push",
|
|
160
|
+
"bug_fixer_git_revert",
|
|
161
|
+
"bug_fixer_publish_app",
|
|
162
|
+
];
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Override system prompt - fully conversational bug fixing
|
|
166
|
+
*/
|
|
167
|
+
getSystemPrompt() {
|
|
168
|
+
const basePrompt = super.getSystemPrompt();
|
|
169
|
+
// Get configured app paths to tell LLM where apps are
|
|
170
|
+
const appPaths = [];
|
|
171
|
+
if (config_1.environment.DEV_APPS_PATHS) {
|
|
172
|
+
appPaths.push(...config_1.environment.DEV_APPS_PATHS.split(',').map(p => p.trim()).filter(p => p));
|
|
173
|
+
}
|
|
174
|
+
if (config_1.environment.DEV_APPS_PATH && !appPaths.includes(config_1.environment.DEV_APPS_PATH)) {
|
|
175
|
+
appPaths.push(config_1.environment.DEV_APPS_PATH);
|
|
176
|
+
}
|
|
177
|
+
const appPathsInfo = appPaths.length > 0
|
|
178
|
+
? `\n\n<app_directories>\nConfigured app directories: ${appPaths.join(', ')}\nUse bug_fixer_find_app to search these automatically - don't ask users for paths.\n</app_directories>`
|
|
179
|
+
: '';
|
|
180
|
+
const conversationalPrompt = `
|
|
181
|
+
|
|
182
|
+
<critical_rule>
|
|
183
|
+
🚨 **NEVER use update_activity to change bug phase or status!**
|
|
184
|
+
|
|
185
|
+
Instead, use these dedicated tools:
|
|
186
|
+
- **mark_bug_declined** - when user says "not a bug", "decline", "won't fix"
|
|
187
|
+
- **mark_bug_fixed** - when fix is published AND user confirmed it works
|
|
188
|
+
|
|
189
|
+
These tools handle phase + status + leaving discussion automatically.
|
|
190
|
+
Using update_activity for phase/status changes is FORBIDDEN.
|
|
191
|
+
</critical_rule>
|
|
192
|
+
|
|
193
|
+
<identity>
|
|
194
|
+
You're a senior developer helping fix bugs. You have access to the codebase and can read files, make edits, run builds, and publish apps. Use these tools naturally as part of the conversation - like a colleague who happens to have their IDE open.
|
|
195
|
+
</identity>
|
|
196
|
+
|
|
197
|
+
<personality>
|
|
198
|
+
- Be conversational and friendly, not robotic
|
|
199
|
+
- Explain your thinking in plain language
|
|
200
|
+
- When you use tools, briefly mention what you're doing ("Let me check the code..." / "Looking at the git status...")
|
|
201
|
+
- Don't dump raw tool outputs - summarize what you found
|
|
202
|
+
- If something fails, explain what went wrong and what you'll try next
|
|
203
|
+
- Ask questions when the bug report is unclear
|
|
204
|
+
</personality>
|
|
205
|
+
|
|
206
|
+
<tools_you_have>
|
|
207
|
+
You have these tools - USE THEM, don't ask users for information you can look up:
|
|
208
|
+
|
|
209
|
+
**Finding apps:**
|
|
210
|
+
- bug_fixer_find_app({ searchTerm: "app name" }) - searches configured app directories automatically
|
|
211
|
+
- ALWAYS use this first when you see an app name in the bug report
|
|
212
|
+
- Don't ask users for paths - the tool finds apps by name
|
|
213
|
+
|
|
214
|
+
**Reading code:**
|
|
215
|
+
- bug_fixer_list_files({ appPath: "/path/from/find_app" }) - list all source files
|
|
216
|
+
- bug_fixer_read_file({ appPath: "...", filePath: "src/Component.tsx" }) - read file contents
|
|
217
|
+
|
|
218
|
+
**Making fixes:**
|
|
219
|
+
- bug_fixer_apply_fix with search/replace:
|
|
220
|
+
\`\`\`json
|
|
221
|
+
{
|
|
222
|
+
"appPath": "/full/path/to/app",
|
|
223
|
+
"fixes": [{
|
|
224
|
+
"path": "src/Component.tsx",
|
|
225
|
+
"action": "edit",
|
|
226
|
+
"search": "exact code to find",
|
|
227
|
+
"replace": "new code"
|
|
228
|
+
}]
|
|
229
|
+
}
|
|
230
|
+
\`\`\`
|
|
231
|
+
The search string must EXACTLY match what's in the file.
|
|
232
|
+
|
|
233
|
+
**Build & Git:**
|
|
234
|
+
- bug_fixer_run_build({ appPath: "..." }) - verify fix compiles
|
|
235
|
+
- bug_fixer_git_status, git_pull, git_commit, git_push, git_revert
|
|
236
|
+
|
|
237
|
+
**Publishing:**
|
|
238
|
+
- bug_fixer_publish_app({ appPath: "..." }) - deploy to production
|
|
239
|
+
- update_activity - move bug to different phase
|
|
240
|
+
</tools_you_have>
|
|
241
|
+
|
|
242
|
+
<how_you_work>
|
|
243
|
+
When someone reports a bug:
|
|
244
|
+
1. Understand what's broken - ask if unclear
|
|
245
|
+
2. Find and read the relevant code
|
|
246
|
+
3. Figure out the root cause
|
|
247
|
+
4. Explain what you found and propose a fix
|
|
248
|
+
5. Get their OK before making changes
|
|
249
|
+
6. Apply the fix, make sure it builds
|
|
250
|
+
7. Have them test it
|
|
251
|
+
8. Publish when they confirm it works
|
|
252
|
+
|
|
253
|
+
But this isn't a rigid checklist - adapt to the conversation. If they say "just fix it", you can be more proactive. If they want to understand the issue first, take time to explain.
|
|
254
|
+
</how_you_work>
|
|
255
|
+
|
|
256
|
+
<important>
|
|
257
|
+
- Always ask before making code changes (unless they've already said "fix it" or similar)
|
|
258
|
+
- After the fix builds successfully, COMMIT locally but DO NOT PUSH yet
|
|
259
|
+
- Ask user to test the fix first: "The fix builds clean. Can you test it?"
|
|
260
|
+
- Only PUSH after user confirms it works ("looks good", "works", "ship it", etc.)
|
|
261
|
+
- Only PUBLISH to production after explicit user approval
|
|
262
|
+
- If a build fails, read the error and try a different approach - don't give up
|
|
263
|
+
- When done, update the bug phase (use list_workflow_phases to get IDs, then update_activity)
|
|
264
|
+
- You're in a bug discussion - no need for @mentions, just talk naturally
|
|
265
|
+
</important>
|
|
266
|
+
|
|
267
|
+
<phase_management>
|
|
268
|
+
**Use these tools to close bugs - they handle everything automatically:**
|
|
269
|
+
|
|
270
|
+
**When declining a bug** (user says "not a bug", "decline", "won't fix"):
|
|
271
|
+
\`\`\`
|
|
272
|
+
mark_bug_declined({
|
|
273
|
+
bugId: "the-bug-activity-id",
|
|
274
|
+
workflowId: "the-workflow-id",
|
|
275
|
+
discussionId: "the-discussion-id",
|
|
276
|
+
reason: "Not a bug - as designed"
|
|
277
|
+
})
|
|
278
|
+
\`\`\`
|
|
279
|
+
→ Automatically sets phase=Declined, status="Won't Fix", and leaves discussion
|
|
280
|
+
|
|
281
|
+
**When a fix is complete** (user confirmed fix works, code is published):
|
|
282
|
+
\`\`\`
|
|
283
|
+
mark_bug_fixed({
|
|
284
|
+
bugId: "the-bug-activity-id",
|
|
285
|
+
workflowId: "the-workflow-id",
|
|
286
|
+
discussionId: "the-discussion-id",
|
|
287
|
+
fixSummary: "Changed X to fix Y"
|
|
288
|
+
})
|
|
289
|
+
\`\`\`
|
|
290
|
+
→ Automatically sets phase=Fixed, status="Fixed", and leaves discussion
|
|
291
|
+
|
|
292
|
+
**⚠️ IMPORTANT:**
|
|
293
|
+
- Use mark_bug_declined when NO code fix was made
|
|
294
|
+
- Use mark_bug_fixed ONLY after code is published AND user confirmed it works
|
|
295
|
+
- These tools handle phase, status, AND leaving - you don't need to call anything else
|
|
296
|
+
</phase_management>
|
|
297
|
+
|
|
298
|
+
<example_conversation>
|
|
299
|
+
User: "The pitch should be blue but it's showing green - Lineup Manager app"
|
|
300
|
+
|
|
301
|
+
You: [immediately use bug_fixer_find_app({ searchTerm: "Lineup Manager" })]
|
|
302
|
+
"Found the Lineup Manager app. Let me look at the code..."
|
|
303
|
+
[use bug_fixer_list_files, then bug_fixer_read_file for relevant files]
|
|
304
|
+
|
|
305
|
+
You: "I found it - the pitch color is set to #4CAF50 (green) in src/components/Pitch.tsx.
|
|
306
|
+
I can change it to #2196F3 (blue). Want me to make that fix?"
|
|
307
|
+
|
|
308
|
+
User: "yes"
|
|
309
|
+
|
|
310
|
+
You: [use bug_fixer_apply_fix, bug_fixer_run_build, bug_fixer_git_commit]
|
|
311
|
+
"Fixed and committed locally. The pitch is now blue. Can you test it?"
|
|
312
|
+
|
|
313
|
+
User: "looks good!"
|
|
314
|
+
|
|
315
|
+
You: [use bug_fixer_git_push]
|
|
316
|
+
"Pushed to git. Should I publish to production?"
|
|
317
|
+
|
|
318
|
+
User: "yes"
|
|
319
|
+
|
|
320
|
+
You: [use bug_fixer_publish_app, update_activity to move to Fixed phase]
|
|
321
|
+
"Published! Bug marked as fixed. Anything else?"
|
|
322
|
+
</example_conversation>`;
|
|
323
|
+
return basePrompt + appPathsInfo + conversationalPrompt;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
exports.BugFixerSpecialist = BugFixerSpecialist;
|
|
327
|
+
//# sourceMappingURL=specialist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specialist.js","sourceRoot":"","sources":["../../../src/agents/bug-fixer/specialist.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bug Reports Module - Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Shared types for the bug monitoring and auto-fix system.
|
|
5
|
+
* No hardcoded IDs - everything discovered by name patterns.
|
|
6
|
+
*/
|
|
7
|
+
export interface BugReportsConfig {
|
|
8
|
+
/** Enable/disable the bug monitor */
|
|
9
|
+
enabled: boolean;
|
|
10
|
+
/** Workflow name pattern to find Bug Reports workflow */
|
|
11
|
+
workflowNamePattern: string;
|
|
12
|
+
/** Phase names for bug lifecycle */
|
|
13
|
+
phaseNames: {
|
|
14
|
+
new: string;
|
|
15
|
+
inProgress: string;
|
|
16
|
+
fixed: string;
|
|
17
|
+
closed: string;
|
|
18
|
+
declined: string;
|
|
19
|
+
};
|
|
20
|
+
/** Polling interval in milliseconds */
|
|
21
|
+
intervalMs: number;
|
|
22
|
+
/** Enable auto-fix via Bug Fixer bot */
|
|
23
|
+
autoFix: boolean;
|
|
24
|
+
/** Post notifications to bug discussions */
|
|
25
|
+
notifyOnNew: boolean;
|
|
26
|
+
/** Anthropic API key for Bug Fixer bot (if autoFix enabled) */
|
|
27
|
+
anthropicApiKey?: string;
|
|
28
|
+
/** Apps registry - maps appId to project paths */
|
|
29
|
+
appsRegistry?: Record<string, AppRegistryEntry>;
|
|
30
|
+
}
|
|
31
|
+
export interface AppRegistryEntry {
|
|
32
|
+
/** Local path to app project */
|
|
33
|
+
projectPath: string;
|
|
34
|
+
/** App name for reference */
|
|
35
|
+
name: string;
|
|
36
|
+
/** Git remote URL (optional) */
|
|
37
|
+
gitRemote?: string;
|
|
38
|
+
}
|
|
39
|
+
export interface BugReport {
|
|
40
|
+
/** Activity ID */
|
|
41
|
+
id: string;
|
|
42
|
+
/** Bug title/name */
|
|
43
|
+
name: string;
|
|
44
|
+
/** App ID this bug relates to */
|
|
45
|
+
appId?: string;
|
|
46
|
+
/** App name */
|
|
47
|
+
appName?: string;
|
|
48
|
+
/** Who reported the bug */
|
|
49
|
+
reportedBy?: string;
|
|
50
|
+
/** Bug description */
|
|
51
|
+
description: string;
|
|
52
|
+
/** Steps to reproduce */
|
|
53
|
+
stepsToReproduce?: string;
|
|
54
|
+
/** Expected behavior */
|
|
55
|
+
expectedBehavior?: string;
|
|
56
|
+
/** Actual behavior */
|
|
57
|
+
actualBehavior?: string;
|
|
58
|
+
/** Priority level */
|
|
59
|
+
priority?: 'low' | 'medium' | 'high' | 'critical';
|
|
60
|
+
/** Discussion ID for posting updates */
|
|
61
|
+
discussionId?: string;
|
|
62
|
+
/** Workflow ID */
|
|
63
|
+
workflowId: string;
|
|
64
|
+
/** Current phase ID */
|
|
65
|
+
phaseId: string;
|
|
66
|
+
/** Creation timestamp */
|
|
67
|
+
createdAt: string;
|
|
68
|
+
/** Who created the bug activity (user ID) */
|
|
69
|
+
createdBy?: string;
|
|
70
|
+
/** Raw field values for custom parsing */
|
|
71
|
+
rawFields?: Record<string, any>;
|
|
72
|
+
}
|
|
73
|
+
export interface WorkflowDiscoveryResult {
|
|
74
|
+
/** Found workflow ID */
|
|
75
|
+
workflowId: string;
|
|
76
|
+
/** Workflow name */
|
|
77
|
+
workflowName: string;
|
|
78
|
+
/** Phase ID mappings */
|
|
79
|
+
phases: {
|
|
80
|
+
new?: string;
|
|
81
|
+
inProgress?: string;
|
|
82
|
+
fixed?: string;
|
|
83
|
+
closed?: string;
|
|
84
|
+
declined?: string;
|
|
85
|
+
};
|
|
86
|
+
/** Field ID mappings (discovered by label) */
|
|
87
|
+
fields: {
|
|
88
|
+
appId?: string;
|
|
89
|
+
appName?: string;
|
|
90
|
+
description?: string;
|
|
91
|
+
stepsToReproduce?: string;
|
|
92
|
+
expectedBehavior?: string;
|
|
93
|
+
actualBehavior?: string;
|
|
94
|
+
reportedBy?: string;
|
|
95
|
+
priority?: string;
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
export interface FixResult {
|
|
99
|
+
success: boolean;
|
|
100
|
+
/** What was done */
|
|
101
|
+
summary: string;
|
|
102
|
+
/** Files modified */
|
|
103
|
+
filesModified?: string[];
|
|
104
|
+
/** Commit hash if committed */
|
|
105
|
+
commitHash?: string;
|
|
106
|
+
/** New version if published */
|
|
107
|
+
publishedVersion?: string;
|
|
108
|
+
/** Error message if failed */
|
|
109
|
+
error?: string;
|
|
110
|
+
/** Detailed log of actions */
|
|
111
|
+
log?: string[];
|
|
112
|
+
}
|
|
113
|
+
export interface BugFixerTaskInput {
|
|
114
|
+
/** The bug to fix */
|
|
115
|
+
bug: BugReport;
|
|
116
|
+
/** App project info */
|
|
117
|
+
app: AppRegistryEntry;
|
|
118
|
+
/** Whether to auto-publish after fix */
|
|
119
|
+
autoPublish: boolean;
|
|
120
|
+
/** Hailer app ID for publishing */
|
|
121
|
+
hailerAppId?: string;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agents/bug-fixer/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,OAAO,EAAE,OAAO,CAAC;IAEjB,yDAAyD;IACzD,mBAAmB,EAAE,MAAM,CAAC;IAE5B,oCAAoC;IACpC,UAAU,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IAEnB,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IAEjB,4CAA4C;IAC5C,WAAW,EAAE,OAAO,CAAC;IAErB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IAEpB,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IAEb,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,kBAAkB;IAClB,EAAE,EAAE,MAAM,CAAC;IAEX,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IAEb,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,sBAAsB;IACtB,WAAW,EAAE,MAAM,CAAC;IAEpB,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,wBAAwB;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,sBAAsB;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAElD,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IAEnB,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAEhB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAElB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,uBAAuB;IACtC,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IAEnB,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAC;IAErB,wBAAwB;IACxB,MAAM,EAAE;QACN,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,8CAA8C;IAC9C,MAAM,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IAEjB,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAEhB,qBAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,+BAA+B;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,8BAA8B;IAC9B,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,qBAAqB;IACrB,GAAG,EAAE,SAAS,CAAC;IAEf,uBAAuB;IACvB,GAAG,EAAE,gBAAgB,CAAC;IAEtB,wCAAwC;IACxC,WAAW,EAAE,OAAO,CAAC;IAErB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Bug Reports Module - Type Definitions
|
|
4
|
+
*
|
|
5
|
+
* Shared types for the bug monitoring and auto-fix system.
|
|
6
|
+
* No hardcoded IDs - everything discovered by name patterns.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/agents/bug-fixer/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Daemon Factory
|
|
3
|
+
*
|
|
4
|
+
* Creates and manages agent daemons in orchestrator mode:
|
|
5
|
+
* - One orchestrator (HAL) handles general conversation
|
|
6
|
+
* - Specialist daemons handle complex domain-specific tasks
|
|
7
|
+
*
|
|
8
|
+
* Uses BotContext for credential management (workspace isolation).
|
|
9
|
+
*/
|
|
10
|
+
import { ChatAgentDaemon } from "./shared/base";
|
|
11
|
+
import { OrchestratorDaemon } from "./hal/daemon";
|
|
12
|
+
import { SpecialistDaemon } from "./shared/specialist";
|
|
13
|
+
import { MultiBotManager } from "./bot-manager";
|
|
14
|
+
import { ConversationState } from "./shared/types";
|
|
15
|
+
import type { WorkspaceSchemaCacheService } from "./shared/services/workspace-schema-cache";
|
|
16
|
+
export interface DaemonManagerOptions {
|
|
17
|
+
mcpServerUrl: string;
|
|
18
|
+
anthropicApiKey: string;
|
|
19
|
+
model?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Enable orchestrator mode (default: true)
|
|
22
|
+
* Set to false only for legacy compatibility
|
|
23
|
+
*/
|
|
24
|
+
orchestratorMode?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Email of the bot to use as orchestrator (defaults to first bot)
|
|
27
|
+
*/
|
|
28
|
+
orchestratorEmail?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Map of specialist key to bot email (e.g., { hailerExpert: "expert@bot.com" })
|
|
31
|
+
*/
|
|
32
|
+
specialistEmails?: Record<string, string>;
|
|
33
|
+
/**
|
|
34
|
+
* Map of userId to botType (from workspace config)
|
|
35
|
+
*/
|
|
36
|
+
botTypeMap?: Map<string, string>;
|
|
37
|
+
/**
|
|
38
|
+
* Map of userId to displayName (from Agent Directory activity name)
|
|
39
|
+
*/
|
|
40
|
+
displayNameMap?: Map<string, string>;
|
|
41
|
+
/**
|
|
42
|
+
* Specific workspace ID to use (for webhook-triggered restarts)
|
|
43
|
+
*/
|
|
44
|
+
workspaceId?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Use structured outputs instead of native tools
|
|
47
|
+
* Saves ~100K tokens per request by not sending tool schemas
|
|
48
|
+
* Requires anthropic-beta: structured-outputs-2025-11-13
|
|
49
|
+
*/
|
|
50
|
+
useStructuredOutputs?: boolean;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Manages orchestrator + specialist daemons
|
|
54
|
+
*/
|
|
55
|
+
export declare class DaemonManager {
|
|
56
|
+
private daemons;
|
|
57
|
+
private orchestrator;
|
|
58
|
+
private specialists;
|
|
59
|
+
private botManager;
|
|
60
|
+
private options;
|
|
61
|
+
private botTypeMap;
|
|
62
|
+
private displayNameMap;
|
|
63
|
+
constructor(botManager: MultiBotManager, options: DaemonManagerOptions);
|
|
64
|
+
/**
|
|
65
|
+
* Get the workspace ID this daemon manager is running for
|
|
66
|
+
*/
|
|
67
|
+
getWorkspaceId(): string | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* Orchestrator mode: one orchestrator (HAL) + specialist daemons
|
|
70
|
+
*/
|
|
71
|
+
startOrchestratorMode(): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* Stop all daemons
|
|
74
|
+
* Flushes session logs for each daemon before stopping
|
|
75
|
+
*/
|
|
76
|
+
stopAll(): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Get daemon for a specific bot
|
|
79
|
+
*/
|
|
80
|
+
getDaemon(botId: string): ChatAgentDaemon | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* Get status of all daemons
|
|
83
|
+
*/
|
|
84
|
+
getStatus(): Array<{
|
|
85
|
+
botId: string;
|
|
86
|
+
state: ConversationState;
|
|
87
|
+
}>;
|
|
88
|
+
/**
|
|
89
|
+
* Log current status to console (for monitoring)
|
|
90
|
+
*/
|
|
91
|
+
logStatus(): void;
|
|
92
|
+
/**
|
|
93
|
+
* Get orchestrator instance (only in orchestrator mode)
|
|
94
|
+
*/
|
|
95
|
+
getOrchestrator(): OrchestratorDaemon | null;
|
|
96
|
+
/**
|
|
97
|
+
* Get the workspace schema cache from the orchestrator
|
|
98
|
+
* Used by other modules that need dynamic workflow/field ID lookup
|
|
99
|
+
*/
|
|
100
|
+
getSchemaCache(): WorkspaceSchemaCacheService | null;
|
|
101
|
+
/**
|
|
102
|
+
* Get specialist by key (only in orchestrator mode)
|
|
103
|
+
*/
|
|
104
|
+
getSpecialist(key: string): SpecialistDaemon | undefined;
|
|
105
|
+
/**
|
|
106
|
+
* Register a standalone daemon (for standalone Bug Fixer mode)
|
|
107
|
+
*/
|
|
108
|
+
registerStandaloneDaemon(userId: string, daemon: ChatAgentDaemon): void;
|
|
109
|
+
/**
|
|
110
|
+
* Check if running in orchestrator mode
|
|
111
|
+
*/
|
|
112
|
+
isOrchestratorMode(): boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Trigger HAL to respond in a discussion with context
|
|
115
|
+
*/
|
|
116
|
+
triggerHalResponse(discussionId: string, activityId: string, context: string): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Hot-reload: Start a specialist daemon dynamically
|
|
119
|
+
* Preserves orchestrator conversation context
|
|
120
|
+
*/
|
|
121
|
+
startSpecialist(email: string, password: string, botType: string, userId?: string): Promise<boolean>;
|
|
122
|
+
/**
|
|
123
|
+
* Hot-reload: Stop a specialist daemon dynamically
|
|
124
|
+
* Preserves orchestrator conversation context
|
|
125
|
+
*/
|
|
126
|
+
stopSpecialist(botType: string): Promise<boolean>;
|
|
127
|
+
/**
|
|
128
|
+
* Hot-reload a specialist (stop if running, start if enabled)
|
|
129
|
+
*/
|
|
130
|
+
hotReloadSpecialist(email: string, password: string, botType: string, enabled: boolean, userId?: string): Promise<boolean>;
|
|
131
|
+
/**
|
|
132
|
+
* Start periodic status logging
|
|
133
|
+
*/
|
|
134
|
+
startStatusLogging(intervalMs?: number): NodeJS.Timeout;
|
|
135
|
+
}
|
|
136
|
+
export interface CreateDaemonManagerOptions {
|
|
137
|
+
/** Enable orchestrator mode */
|
|
138
|
+
orchestratorMode?: boolean;
|
|
139
|
+
/** Email of orchestrator bot (defaults to first) */
|
|
140
|
+
orchestratorEmail?: string;
|
|
141
|
+
/** Map specialist keys to bot emails */
|
|
142
|
+
specialistEmails?: Record<string, string>;
|
|
143
|
+
/** Specific workspace ID to use (for webhook-triggered restarts) */
|
|
144
|
+
workspaceId?: string;
|
|
145
|
+
/**
|
|
146
|
+
* Use structured outputs instead of native tools
|
|
147
|
+
* Saves ~100K tokens per request
|
|
148
|
+
* Defaults to false, set USE_STRUCTURED_OUTPUTS=true to enable
|
|
149
|
+
*/
|
|
150
|
+
useStructuredOutputs?: boolean;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Create and start the daemon manager
|
|
154
|
+
* This is the main entry point for daemon mode
|
|
155
|
+
*
|
|
156
|
+
* Uses WorkspaceContext for credential management (workspace isolation).
|
|
157
|
+
*
|
|
158
|
+
* @param options - Optional settings for orchestrator mode
|
|
159
|
+
*/
|
|
160
|
+
export declare function createDaemonManager(options?: CreateDaemonManagerOptions): Promise<DaemonManager | null>;
|
|
161
|
+
/**
|
|
162
|
+
* Quick start function for testing
|
|
163
|
+
*
|
|
164
|
+
* @param orchestratorMode - Enable orchestrator mode (default: true)
|
|
165
|
+
*/
|
|
166
|
+
export declare function startDaemonMode(orchestratorMode?: boolean): Promise<void>;
|
|
167
|
+
/**
|
|
168
|
+
* Create standalone Bug Fixer daemon (no orchestrator/AI Hub needed)
|
|
169
|
+
* For testing Bug Fixer independently
|
|
170
|
+
*/
|
|
171
|
+
export declare function createStandaloneBugFixer(email: string, password: string): Promise<DaemonManager | null>;
|
|
172
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/agents/factory.ts"],"names":[],"mappings":"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"}
|