@hailer/mcp 1.2.1 → 1.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/agent-hailer-helper.md +118 -0
- package/.claude/commands/debug-squad.md +13 -290
- package/.claude/commands/publish.md +2 -2
- package/.claude/commands/review-squad.md +17 -139
- package/.claude/skills/create-and-publish-app/SKILL.md +133 -143
- package/.claude/skills/hailer-app-builder/SKILL.md +29 -2
- package/.claude/skills/hailer-ui-guide/SKILL.md +265 -0
- package/.env.example +50 -1
- package/CLAUDE.md +141 -10
- package/dist/app-prep.d.ts +27 -0
- package/dist/app-prep.d.ts.map +1 -0
- package/dist/app-prep.js +94 -0
- package/dist/app-prep.js.map +1 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +3 -0
- package/dist/app.js.map +1 -1
- package/dist/bot/bot-manager.d.ts +9 -6
- package/dist/bot/bot-manager.d.ts.map +1 -1
- package/dist/bot/bot-manager.js +142 -31
- package/dist/bot/bot-manager.js.map +1 -1
- package/dist/bot/bot.d.ts +61 -16
- package/dist/bot/bot.d.ts.map +1 -1
- package/dist/bot/bot.js +927 -151
- package/dist/bot/bot.js.map +1 -1
- package/dist/bot/operation-logger.d.ts.map +1 -1
- package/dist/bot/operation-logger.js +24 -12
- package/dist/bot/operation-logger.js.map +1 -1
- package/dist/bot/services/bot-permissions.d.ts +37 -5
- package/dist/bot/services/bot-permissions.d.ts.map +1 -1
- package/dist/bot/services/bot-permissions.js +159 -35
- package/dist/bot/services/bot-permissions.js.map +1 -1
- package/dist/bot/services/conversation-manager.d.ts +23 -23
- package/dist/bot/services/conversation-manager.d.ts.map +1 -1
- package/dist/bot/services/conversation-manager.js +52 -49
- package/dist/bot/services/conversation-manager.js.map +1 -1
- package/dist/bot/services/helper-prompt.d.ts +8 -0
- package/dist/bot/services/helper-prompt.d.ts.map +1 -0
- package/dist/bot/services/helper-prompt.js +177 -0
- package/dist/bot/services/helper-prompt.js.map +1 -0
- package/dist/bot/services/message-classifier.d.ts +16 -16
- package/dist/bot/services/message-classifier.d.ts.map +1 -1
- package/dist/bot/services/message-classifier.js +55 -49
- package/dist/bot/services/message-classifier.js.map +1 -1
- package/dist/bot/services/message-formatter.d.ts +47 -38
- package/dist/bot/services/message-formatter.d.ts.map +1 -1
- package/dist/bot/services/message-formatter.js +99 -80
- package/dist/bot/services/message-formatter.js.map +1 -1
- package/dist/bot/services/permission-guard.d.ts.map +1 -1
- package/dist/bot/services/permission-guard.js +20 -10
- package/dist/bot/services/permission-guard.js.map +1 -1
- package/dist/bot/services/signal-router.d.ts.map +1 -1
- package/dist/bot/services/signal-router.js +11 -6
- package/dist/bot/services/signal-router.js.map +1 -1
- package/dist/bot/services/system-prompt.d.ts +14 -0
- package/dist/bot/services/system-prompt.d.ts.map +1 -1
- package/dist/bot/services/system-prompt.js +181 -4
- package/dist/bot/services/system-prompt.js.map +1 -1
- package/dist/bot/services/token-billing.d.ts +23 -23
- package/dist/bot/services/token-billing.d.ts.map +1 -1
- package/dist/bot/services/token-billing.js +51 -36
- package/dist/bot/services/token-billing.js.map +1 -1
- package/dist/bot/services/types.d.ts +3 -1
- package/dist/bot/services/types.d.ts.map +1 -1
- package/dist/bot/services/typing-indicator.d.ts +8 -8
- package/dist/bot/services/typing-indicator.d.ts.map +1 -1
- package/dist/bot/services/typing-indicator.js +12 -10
- package/dist/bot/services/typing-indicator.js.map +1 -1
- package/dist/bot/services/workspace-refresh.d.ts +3 -3
- package/dist/bot/services/workspace-refresh.d.ts.map +1 -1
- package/dist/bot/services/workspace-refresh.js +23 -13
- package/dist/bot/services/workspace-refresh.js.map +1 -1
- package/dist/bot/tool-executor.d.ts +10 -6
- package/dist/bot/tool-executor.d.ts.map +1 -1
- package/dist/bot/tool-executor.js +12 -6
- package/dist/bot/tool-executor.js.map +1 -1
- package/dist/bot/workspace-overview.d.ts.map +1 -1
- package/dist/bot/workspace-overview.js +6 -3
- package/dist/bot/workspace-overview.js.map +1 -1
- package/dist/bot-config/activity-error.d.ts +47 -0
- package/dist/bot-config/activity-error.d.ts.map +1 -0
- package/dist/bot-config/activity-error.js +67 -0
- package/dist/bot-config/activity-error.js.map +1 -0
- package/dist/bot-config/context.d.ts +4 -4
- package/dist/bot-config/context.d.ts.map +1 -1
- package/dist/bot-config/context.js +18 -14
- package/dist/bot-config/context.js.map +1 -1
- package/dist/bot-config/events.d.ts +45 -0
- package/dist/bot-config/events.d.ts.map +1 -0
- package/dist/bot-config/events.js +51 -0
- package/dist/bot-config/events.js.map +1 -0
- package/dist/bot-config/index.d.ts +3 -0
- package/dist/bot-config/index.d.ts.map +1 -1
- package/dist/bot-config/index.js +8 -1
- package/dist/bot-config/index.js.map +1 -1
- package/dist/bot-config/loader.d.ts +3 -0
- package/dist/bot-config/loader.d.ts.map +1 -1
- package/dist/bot-config/loader.js +45 -20
- package/dist/bot-config/loader.js.map +1 -1
- package/dist/bot-config/persistence.js.map +1 -1
- package/dist/bot-config/reconciler.d.ts +11 -0
- package/dist/bot-config/reconciler.d.ts.map +1 -0
- package/dist/bot-config/reconciler.js +121 -0
- package/dist/bot-config/reconciler.js.map +1 -0
- package/dist/bot-config/state.d.ts.map +1 -1
- package/dist/bot-config/state.js.map +1 -1
- package/dist/bot-config/types.d.ts +32 -0
- package/dist/bot-config/types.d.ts.map +1 -1
- package/dist/bot-config/webhooks.d.ts.map +1 -1
- package/dist/bot-config/webhooks.js.map +1 -1
- package/dist/bot-config/workflow-installer.d.ts +37 -0
- package/dist/bot-config/workflow-installer.d.ts.map +1 -0
- package/dist/bot-config/workflow-installer.js +346 -0
- package/dist/bot-config/workflow-installer.js.map +1 -0
- package/dist/cli.d.ts +4 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +92 -11
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +23 -19
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +65 -27
- package/dist/config.js.map +1 -1
- package/dist/core.d.ts +6 -4
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +11 -16
- package/dist/core.js.map +1 -1
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +7 -4
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/request-logger.d.ts +19 -19
- package/dist/lib/request-logger.d.ts.map +1 -1
- package/dist/lib/request-logger.js +19 -19
- package/dist/lib/request-logger.js.map +1 -1
- package/dist/mcp/UserContextCache.d.ts +28 -22
- package/dist/mcp/UserContextCache.d.ts.map +1 -1
- package/dist/mcp/UserContextCache.js +23 -23
- package/dist/mcp/UserContextCache.js.map +1 -1
- package/dist/mcp/auth.js.map +1 -1
- package/dist/mcp/hailer-clients.d.ts +5 -4
- package/dist/mcp/hailer-clients.d.ts.map +1 -1
- package/dist/mcp/hailer-clients.js +83 -34
- package/dist/mcp/hailer-clients.js.map +1 -1
- package/dist/mcp/hailer-rpc.d.ts +40 -0
- package/dist/mcp/hailer-rpc.d.ts.map +1 -0
- package/dist/mcp/hailer-rpc.js +43 -0
- package/dist/mcp/hailer-rpc.js.map +1 -0
- package/dist/mcp/publish-auth-injector.d.ts +22 -0
- package/dist/mcp/publish-auth-injector.d.ts.map +1 -0
- package/dist/mcp/publish-auth-injector.js +100 -0
- package/dist/mcp/publish-auth-injector.js.map +1 -0
- package/dist/mcp/session-store.d.ts +16 -16
- package/dist/mcp/session-store.d.ts.map +1 -1
- package/dist/mcp/session-store.js +16 -16
- package/dist/mcp/session-store.js.map +1 -1
- package/dist/mcp/tool-profiles.d.ts +69 -0
- package/dist/mcp/tool-profiles.d.ts.map +1 -0
- package/dist/mcp/tool-profiles.js +176 -0
- package/dist/mcp/tool-profiles.js.map +1 -0
- package/dist/mcp/tool-registry.d.ts +16 -0
- package/dist/mcp/tool-registry.d.ts.map +1 -1
- package/dist/mcp/tool-registry.js +91 -39
- package/dist/mcp/tool-registry.js.map +1 -1
- package/dist/mcp/tools/activity.d.ts +2 -0
- package/dist/mcp/tools/activity.d.ts.map +1 -1
- package/dist/mcp/tools/activity.js +575 -218
- package/dist/mcp/tools/activity.js.map +1 -1
- package/dist/mcp/tools/aliases.d.ts +11 -0
- package/dist/mcp/tools/aliases.d.ts.map +1 -0
- package/dist/mcp/tools/aliases.js +182 -0
- package/dist/mcp/tools/aliases.js.map +1 -0
- package/dist/mcp/tools/app-core.d.ts +6 -8
- package/dist/mcp/tools/app-core.d.ts.map +1 -1
- package/dist/mcp/tools/app-core.js +355 -254
- package/dist/mcp/tools/app-core.js.map +1 -1
- package/dist/mcp/tools/app-marketplace.d.ts +8 -16
- package/dist/mcp/tools/app-marketplace.d.ts.map +1 -1
- package/dist/mcp/tools/app-marketplace.js +604 -932
- package/dist/mcp/tools/app-marketplace.js.map +1 -1
- package/dist/mcp/tools/app.d.ts +4 -7
- package/dist/mcp/tools/app.d.ts.map +1 -1
- package/dist/mcp/tools/app.js +4 -7
- package/dist/mcp/tools/app.js.map +1 -1
- package/dist/mcp/tools/bot-self.d.ts +21 -0
- package/dist/mcp/tools/bot-self.d.ts.map +1 -0
- package/dist/mcp/tools/bot-self.js +174 -0
- package/dist/mcp/tools/bot-self.js.map +1 -0
- package/dist/mcp/tools/calendar.d.ts +21 -0
- package/dist/mcp/tools/calendar.d.ts.map +1 -0
- package/dist/mcp/tools/calendar.js +741 -0
- package/dist/mcp/tools/calendar.js.map +1 -0
- package/dist/mcp/tools/company.d.ts.map +1 -1
- package/dist/mcp/tools/company.js +2 -1
- package/dist/mcp/tools/company.js.map +1 -1
- package/dist/mcp/tools/date.js.map +1 -1
- package/dist/mcp/tools/discussion.d.ts +29 -3
- package/dist/mcp/tools/discussion.d.ts.map +1 -1
- package/dist/mcp/tools/discussion.js +419 -534
- package/dist/mcp/tools/discussion.js.map +1 -1
- package/dist/mcp/tools/file.d.ts.map +1 -1
- package/dist/mcp/tools/file.js +18 -16
- package/dist/mcp/tools/file.js.map +1 -1
- package/dist/mcp/tools/index.js +4 -4
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/insight.d.ts +24 -5
- package/dist/mcp/tools/insight.d.ts.map +1 -1
- package/dist/mcp/tools/insight.js +513 -480
- package/dist/mcp/tools/insight.js.map +1 -1
- package/dist/mcp/tools/user.d.ts.map +1 -1
- package/dist/mcp/tools/user.js +15 -13
- package/dist/mcp/tools/user.js.map +1 -1
- package/dist/mcp/tools/workflow-permissions.d.ts +2 -4
- package/dist/mcp/tools/workflow-permissions.d.ts.map +1 -1
- package/dist/mcp/tools/workflow-permissions.js +88 -97
- package/dist/mcp/tools/workflow-permissions.js.map +1 -1
- package/dist/mcp/tools/workflow.d.ts +9 -7
- package/dist/mcp/tools/workflow.d.ts.map +1 -1
- package/dist/mcp/tools/workflow.js +852 -860
- package/dist/mcp/tools/workflow.js.map +1 -1
- package/dist/mcp/utils/api-errors.d.ts.map +1 -1
- package/dist/mcp/utils/api-errors.js +2 -2
- package/dist/mcp/utils/api-errors.js.map +1 -1
- package/dist/mcp/utils/data-transformers.d.ts +0 -3
- package/dist/mcp/utils/data-transformers.d.ts.map +1 -1
- package/dist/mcp/utils/data-transformers.js +32 -5
- package/dist/mcp/utils/data-transformers.js.map +1 -1
- package/dist/mcp/utils/file-upload.d.ts.map +1 -1
- package/dist/mcp/utils/file-upload.js +1 -1
- package/dist/mcp/utils/file-upload.js.map +1 -1
- package/dist/mcp/utils/hailer-api-client.d.ts +81 -81
- package/dist/mcp/utils/hailer-api-client.d.ts.map +1 -1
- package/dist/mcp/utils/hailer-api-client.js +113 -103
- package/dist/mcp/utils/hailer-api-client.js.map +1 -1
- package/dist/mcp/utils/index.d.ts.map +1 -1
- package/dist/mcp/utils/index.js.map +1 -1
- package/dist/mcp/utils/logger.d.ts.map +1 -1
- package/dist/mcp/utils/logger.js.map +1 -1
- package/dist/mcp/utils/response-builder.d.ts.map +1 -1
- package/dist/mcp/utils/response-builder.js +8 -4
- package/dist/mcp/utils/response-builder.js.map +1 -1
- package/dist/mcp/utils/role-utils.d.ts.map +1 -1
- package/dist/mcp/utils/role-utils.js +6 -3
- package/dist/mcp/utils/role-utils.js.map +1 -1
- package/dist/mcp/utils/tool-helpers.d.ts.map +1 -1
- package/dist/mcp/utils/tool-helpers.js +2 -2
- package/dist/mcp/utils/tool-helpers.js.map +1 -1
- package/dist/mcp/utils/types.d.ts +2 -1
- package/dist/mcp/utils/types.d.ts.map +1 -1
- package/dist/mcp/utils/types.js.map +1 -1
- package/dist/mcp/webhook-handler.d.ts +43 -8
- package/dist/mcp/webhook-handler.d.ts.map +1 -1
- package/dist/mcp/webhook-handler.js +861 -116
- package/dist/mcp/webhook-handler.js.map +1 -1
- package/dist/mcp/workspace-admin-store.d.ts +49 -0
- package/dist/mcp/workspace-admin-store.d.ts.map +1 -0
- package/dist/mcp/workspace-admin-store.js +168 -0
- package/dist/mcp/workspace-admin-store.js.map +1 -0
- package/dist/mcp/workspace-cache.d.ts +2 -2
- package/dist/mcp/workspace-cache.d.ts.map +1 -1
- package/dist/mcp/workspace-cache.js +9 -5
- package/dist/mcp/workspace-cache.js.map +1 -1
- package/dist/mcp-server.d.ts +26 -11
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +367 -48
- package/dist/mcp-server.js.map +1 -1
- package/dist/plugins/vipunen/client.d.ts +41 -41
- package/dist/plugins/vipunen/client.d.ts.map +1 -1
- package/dist/plugins/vipunen/client.js +53 -48
- package/dist/plugins/vipunen/client.js.map +1 -1
- package/dist/plugins/vipunen/index.js.map +1 -1
- package/dist/plugins/vipunen/tools.d.ts.map +1 -1
- package/dist/plugins/vipunen/tools.js +6 -3
- package/dist/plugins/vipunen/tools.js.map +1 -1
- package/dist/public-chat/graduate.d.ts +29 -0
- package/dist/public-chat/graduate.d.ts.map +1 -0
- package/dist/public-chat/graduate.js +593 -0
- package/dist/public-chat/graduate.js.map +1 -0
- package/dist/public-chat/handler.d.ts +12 -0
- package/dist/public-chat/handler.d.ts.map +1 -0
- package/dist/public-chat/handler.js +183 -0
- package/dist/public-chat/handler.js.map +1 -0
- package/dist/public-chat/index.d.ts +16 -0
- package/dist/public-chat/index.d.ts.map +1 -0
- package/dist/public-chat/index.js +74 -0
- package/dist/public-chat/index.js.map +1 -0
- package/dist/public-chat/knowledge.d.ts +3 -0
- package/dist/public-chat/knowledge.d.ts.map +1 -0
- package/dist/public-chat/knowledge.js +1340 -0
- package/dist/public-chat/knowledge.js.map +1 -0
- package/dist/public-chat/rate-limit.d.ts +16 -0
- package/dist/public-chat/rate-limit.d.ts.map +1 -0
- package/dist/public-chat/rate-limit.js +51 -0
- package/dist/public-chat/rate-limit.js.map +1 -0
- package/dist/public-chat/session-store.d.ts +41 -0
- package/dist/public-chat/session-store.d.ts.map +1 -0
- package/dist/public-chat/session-store.js +95 -0
- package/dist/public-chat/session-store.js.map +1 -0
- package/dist/public-chat/studio-prewarm.d.ts +61 -0
- package/dist/public-chat/studio-prewarm.d.ts.map +1 -0
- package/dist/public-chat/studio-prewarm.js +162 -0
- package/dist/public-chat/studio-prewarm.js.map +1 -0
- package/dist/public-chat/system-prompt.d.ts +22 -0
- package/dist/public-chat/system-prompt.d.ts.map +1 -0
- package/dist/public-chat/system-prompt.js +435 -0
- package/dist/public-chat/system-prompt.js.map +1 -0
- package/package.json +15 -7
- package/scripts/build-public-chat-knowledge.py +101 -0
- package/scripts/smoke-public-chat-live.ts +148 -0
- package/scripts/smoke-public-chat.ts +110 -0
- package/.claude/CLAUDE.md +0 -126
- package/.claude/commands/app-squad.md +0 -131
- package/.claude/commands/audit-squad.md +0 -158
- package/.claude/commands/cleanup-squad.md +0 -98
- package/.claude/commands/config-squad.md +0 -106
- package/.claude/commands/crud-squad.md +0 -87
- package/.claude/commands/data-squad.md +0 -97
- package/.claude/commands/doc-squad.md +0 -65
- package/.claude/commands/help.md +0 -29
- package/.claude/commands/help:agents.md +0 -182
- package/.claude/commands/help:commands.md +0 -78
- package/.claude/commands/help:faq.md +0 -79
- package/.claude/commands/help:plugins.md +0 -50
- package/.claude/commands/help:skills.md +0 -87
- package/.claude/commands/help:tools.md +0 -75
- package/.claude/commands/hotfix-squad.md +0 -112
- package/.claude/commands/integration-squad.md +0 -82
- package/.claude/commands/janitor-squad.md +0 -167
- package/.claude/commands/onboard-squad.md +0 -130
- package/.claude/commands/swarm.md +0 -210
- package/.claude/commands/tool-builder.md +0 -39
- package/.claude/skills/publish-hailer-app/SKILL.md +0 -280
- package/dist/CLAUDE.md +0 -370
- package/dist/agents/bot-manager.d.ts +0 -48
- package/dist/agents/bot-manager.d.ts.map +0 -1
- package/dist/agents/bot-manager.js +0 -254
- package/dist/agents/bot-manager.js.map +0 -1
- package/dist/agents/bug-fixer/ai.d.ts +0 -80
- package/dist/agents/bug-fixer/ai.d.ts.map +0 -1
- package/dist/agents/bug-fixer/ai.js +0 -466
- package/dist/agents/bug-fixer/ai.js.map +0 -1
- package/dist/agents/bug-fixer/bot.d.ts +0 -92
- package/dist/agents/bug-fixer/bot.d.ts.map +0 -1
- package/dist/agents/bug-fixer/bot.js +0 -687
- package/dist/agents/bug-fixer/bot.js.map +0 -1
- package/dist/agents/bug-fixer/config.d.ts +0 -21
- package/dist/agents/bug-fixer/config.d.ts.map +0 -1
- package/dist/agents/bug-fixer/config.js +0 -218
- package/dist/agents/bug-fixer/config.js.map +0 -1
- package/dist/agents/bug-fixer/files.d.ts +0 -67
- package/dist/agents/bug-fixer/files.d.ts.map +0 -1
- package/dist/agents/bug-fixer/files.js +0 -386
- package/dist/agents/bug-fixer/files.js.map +0 -1
- package/dist/agents/bug-fixer/git.d.ts +0 -48
- package/dist/agents/bug-fixer/git.d.ts.map +0 -1
- package/dist/agents/bug-fixer/git.js +0 -298
- package/dist/agents/bug-fixer/git.js.map +0 -1
- package/dist/agents/bug-fixer/index.d.ts +0 -103
- package/dist/agents/bug-fixer/index.d.ts.map +0 -1
- package/dist/agents/bug-fixer/index.js +0 -262
- package/dist/agents/bug-fixer/index.js.map +0 -1
- package/dist/agents/bug-fixer/lsp.d.ts +0 -113
- package/dist/agents/bug-fixer/lsp.d.ts.map +0 -1
- package/dist/agents/bug-fixer/lsp.js +0 -485
- package/dist/agents/bug-fixer/lsp.js.map +0 -1
- package/dist/agents/bug-fixer/monitor.d.ts +0 -123
- package/dist/agents/bug-fixer/monitor.d.ts.map +0 -1
- package/dist/agents/bug-fixer/monitor.js +0 -629
- package/dist/agents/bug-fixer/monitor.js.map +0 -1
- package/dist/agents/bug-fixer/prompt.d.ts +0 -5
- package/dist/agents/bug-fixer/prompt.d.ts.map +0 -1
- package/dist/agents/bug-fixer/prompt.js +0 -94
- package/dist/agents/bug-fixer/prompt.js.map +0 -1
- package/dist/agents/bug-fixer/registries/pending-classification.d.ts +0 -28
- package/dist/agents/bug-fixer/registries/pending-classification.d.ts.map +0 -1
- package/dist/agents/bug-fixer/registries/pending-classification.js +0 -50
- package/dist/agents/bug-fixer/registries/pending-classification.js.map +0 -1
- package/dist/agents/bug-fixer/registries/pending-fix.d.ts +0 -33
- package/dist/agents/bug-fixer/registries/pending-fix.d.ts.map +0 -1
- package/dist/agents/bug-fixer/registries/pending-fix.js +0 -64
- package/dist/agents/bug-fixer/registries/pending-fix.js.map +0 -1
- package/dist/agents/bug-fixer/registries/pending.d.ts +0 -27
- package/dist/agents/bug-fixer/registries/pending.d.ts.map +0 -1
- package/dist/agents/bug-fixer/registries/pending.js +0 -49
- package/dist/agents/bug-fixer/registries/pending.js.map +0 -1
- package/dist/agents/bug-fixer/specialist-daemon.d.ts +0 -88
- package/dist/agents/bug-fixer/specialist-daemon.d.ts.map +0 -1
- package/dist/agents/bug-fixer/specialist-daemon.js +0 -431
- package/dist/agents/bug-fixer/specialist-daemon.js.map +0 -1
- package/dist/agents/bug-fixer/specialist.d.ts +0 -47
- package/dist/agents/bug-fixer/specialist.d.ts.map +0 -1
- package/dist/agents/bug-fixer/specialist.js +0 -327
- package/dist/agents/bug-fixer/specialist.js.map +0 -1
- package/dist/agents/bug-fixer/types.d.ts +0 -123
- package/dist/agents/bug-fixer/types.d.ts.map +0 -1
- package/dist/agents/bug-fixer/types.js +0 -9
- package/dist/agents/bug-fixer/types.js.map +0 -1
- package/dist/agents/factory.d.ts +0 -172
- package/dist/agents/factory.d.ts.map +0 -1
- package/dist/agents/factory.js +0 -706
- package/dist/agents/factory.js.map +0 -1
- package/dist/agents/hailer-expert/index.d.ts +0 -8
- package/dist/agents/hailer-expert/index.d.ts.map +0 -1
- package/dist/agents/hailer-expert/index.js +0 -14
- package/dist/agents/hailer-expert/index.js.map +0 -1
- package/dist/agents/hal/daemon.d.ts +0 -174
- package/dist/agents/hal/daemon.d.ts.map +0 -1
- package/dist/agents/hal/daemon.js +0 -1385
- package/dist/agents/hal/daemon.js.map +0 -1
- package/dist/agents/hal/definitions.d.ts +0 -42
- package/dist/agents/hal/definitions.d.ts.map +0 -1
- package/dist/agents/hal/definitions.js +0 -300
- package/dist/agents/hal/definitions.js.map +0 -1
- package/dist/agents/hal/index.d.ts +0 -3
- package/dist/agents/hal/index.d.ts.map +0 -1
- package/dist/agents/hal/index.js +0 -8
- package/dist/agents/hal/index.js.map +0 -1
- package/dist/agents/index.d.ts +0 -18
- package/dist/agents/index.d.ts.map +0 -1
- package/dist/agents/index.js +0 -48
- package/dist/agents/index.js.map +0 -1
- package/dist/agents/shared/base.d.ts +0 -253
- package/dist/agents/shared/base.d.ts.map +0 -1
- package/dist/agents/shared/base.js +0 -1122
- package/dist/agents/shared/base.js.map +0 -1
- package/dist/agents/shared/schemas/action-schema.d.ts +0 -62
- package/dist/agents/shared/schemas/action-schema.d.ts.map +0 -1
- package/dist/agents/shared/schemas/action-schema.js +0 -483
- package/dist/agents/shared/schemas/action-schema.js.map +0 -1
- package/dist/agents/shared/services/agent-registry.d.ts +0 -108
- package/dist/agents/shared/services/agent-registry.d.ts.map +0 -1
- package/dist/agents/shared/services/agent-registry.js +0 -469
- package/dist/agents/shared/services/agent-registry.js.map +0 -1
- package/dist/agents/shared/services/conversation-manager.d.ts +0 -57
- package/dist/agents/shared/services/conversation-manager.d.ts.map +0 -1
- package/dist/agents/shared/services/conversation-manager.js +0 -168
- package/dist/agents/shared/services/conversation-manager.js.map +0 -1
- package/dist/agents/shared/services/mcp-client.d.ts +0 -56
- package/dist/agents/shared/services/mcp-client.d.ts.map +0 -1
- package/dist/agents/shared/services/mcp-client.js +0 -124
- package/dist/agents/shared/services/mcp-client.js.map +0 -1
- package/dist/agents/shared/services/message-classifier.d.ts +0 -37
- package/dist/agents/shared/services/message-classifier.d.ts.map +0 -1
- package/dist/agents/shared/services/message-classifier.js +0 -203
- package/dist/agents/shared/services/message-classifier.js.map +0 -1
- package/dist/agents/shared/services/message-formatter.d.ts +0 -89
- package/dist/agents/shared/services/message-formatter.d.ts.map +0 -1
- package/dist/agents/shared/services/message-formatter.js +0 -390
- package/dist/agents/shared/services/message-formatter.js.map +0 -1
- package/dist/agents/shared/services/session-logger.d.ts +0 -162
- package/dist/agents/shared/services/session-logger.d.ts.map +0 -1
- package/dist/agents/shared/services/session-logger.js +0 -724
- package/dist/agents/shared/services/session-logger.js.map +0 -1
- package/dist/agents/shared/services/structured-output-executor.d.ts +0 -88
- package/dist/agents/shared/services/structured-output-executor.d.ts.map +0 -1
- package/dist/agents/shared/services/structured-output-executor.js +0 -296
- package/dist/agents/shared/services/structured-output-executor.js.map +0 -1
- package/dist/agents/shared/services/token-billing.d.ts +0 -72
- package/dist/agents/shared/services/token-billing.d.ts.map +0 -1
- package/dist/agents/shared/services/token-billing.js +0 -198
- package/dist/agents/shared/services/token-billing.js.map +0 -1
- package/dist/agents/shared/services/tool-executor.d.ts +0 -43
- package/dist/agents/shared/services/tool-executor.d.ts.map +0 -1
- package/dist/agents/shared/services/tool-executor.js +0 -175
- package/dist/agents/shared/services/tool-executor.js.map +0 -1
- package/dist/agents/shared/services/typing-indicator.d.ts +0 -24
- package/dist/agents/shared/services/typing-indicator.d.ts.map +0 -1
- package/dist/agents/shared/services/typing-indicator.js +0 -54
- package/dist/agents/shared/services/typing-indicator.js.map +0 -1
- package/dist/agents/shared/services/workspace-schema-cache.d.ts +0 -122
- package/dist/agents/shared/services/workspace-schema-cache.d.ts.map +0 -1
- package/dist/agents/shared/services/workspace-schema-cache.js +0 -507
- package/dist/agents/shared/services/workspace-schema-cache.js.map +0 -1
- package/dist/agents/shared/specialist.d.ts +0 -91
- package/dist/agents/shared/specialist.d.ts.map +0 -1
- package/dist/agents/shared/specialist.js +0 -399
- package/dist/agents/shared/specialist.js.map +0 -1
- package/dist/agents/shared/tool-schema-loader.d.ts +0 -65
- package/dist/agents/shared/tool-schema-loader.d.ts.map +0 -1
- package/dist/agents/shared/tool-schema-loader.js +0 -238
- package/dist/agents/shared/tool-schema-loader.js.map +0 -1
- package/dist/agents/shared/types.d.ts +0 -190
- package/dist/agents/shared/types.d.ts.map +0 -1
- package/dist/agents/shared/types.js +0 -13
- package/dist/agents/shared/types.js.map +0 -1
- package/dist/bot/bot-config.d.ts +0 -37
- package/dist/bot/bot-config.d.ts.map +0 -1
- package/dist/bot/bot-config.js +0 -219
- package/dist/bot/bot-config.js.map +0 -1
- package/dist/bot/services/__tests__/permission-guard.test.d.ts +0 -2
- package/dist/bot/services/__tests__/permission-guard.test.d.ts.map +0 -1
- package/dist/bot/services/__tests__/permission-guard.test.js +0 -357
- package/dist/bot/services/__tests__/permission-guard.test.js.map +0 -1
- package/dist/bot/services/session-logger.d.ts +0 -162
- package/dist/bot/services/session-logger.d.ts.map +0 -1
- package/dist/bot/services/session-logger.js +0 -724
- package/dist/bot/services/session-logger.js.map +0 -1
- package/dist/bot/services/workspace-schema-cache.d.ts +0 -122
- package/dist/bot/services/workspace-schema-cache.d.ts.map +0 -1
- package/dist/bot/services/workspace-schema-cache.js +0 -506
- package/dist/bot/services/workspace-schema-cache.js.map +0 -1
- package/dist/bot-config/tools.d.ts +0 -28
- package/dist/bot-config/tools.d.ts.map +0 -1
- package/dist/bot-config/tools.js +0 -279
- package/dist/bot-config/tools.js.map +0 -1
- package/dist/client/agents/base.d.ts +0 -207
- package/dist/client/agents/base.d.ts.map +0 -1
- package/dist/client/agents/base.js +0 -744
- package/dist/client/agents/base.js.map +0 -1
- package/dist/client/agents/definitions.d.ts +0 -53
- package/dist/client/agents/definitions.d.ts.map +0 -1
- package/dist/client/agents/definitions.js +0 -263
- package/dist/client/agents/definitions.js.map +0 -1
- package/dist/client/agents/orchestrator.d.ts +0 -141
- package/dist/client/agents/orchestrator.d.ts.map +0 -1
- package/dist/client/agents/orchestrator.js +0 -1062
- package/dist/client/agents/orchestrator.js.map +0 -1
- package/dist/client/agents/specialist.d.ts +0 -86
- package/dist/client/agents/specialist.d.ts.map +0 -1
- package/dist/client/agents/specialist.js +0 -340
- package/dist/client/agents/specialist.js.map +0 -1
- package/dist/client/bot-entrypoint.d.ts +0 -7
- package/dist/client/bot-entrypoint.d.ts.map +0 -1
- package/dist/client/bot-entrypoint.js +0 -103
- package/dist/client/bot-entrypoint.js.map +0 -1
- package/dist/client/bot-manager.d.ts +0 -44
- package/dist/client/bot-manager.d.ts.map +0 -1
- package/dist/client/bot-manager.js +0 -173
- package/dist/client/bot-manager.js.map +0 -1
- package/dist/client/bot-runner.d.ts +0 -35
- package/dist/client/bot-runner.d.ts.map +0 -1
- package/dist/client/bot-runner.js +0 -188
- package/dist/client/bot-runner.js.map +0 -1
- package/dist/client/chat-agent-daemon.d.ts +0 -464
- package/dist/client/chat-agent-daemon.d.ts.map +0 -1
- package/dist/client/chat-agent-daemon.js +0 -1774
- package/dist/client/chat-agent-daemon.js.map +0 -1
- package/dist/client/daemon-factory.d.ts +0 -106
- package/dist/client/daemon-factory.d.ts.map +0 -1
- package/dist/client/daemon-factory.js +0 -301
- package/dist/client/daemon-factory.js.map +0 -1
- package/dist/client/factory.d.ts +0 -111
- package/dist/client/factory.d.ts.map +0 -1
- package/dist/client/factory.js +0 -314
- package/dist/client/factory.js.map +0 -1
- package/dist/client/index.d.ts +0 -17
- package/dist/client/index.d.ts.map +0 -1
- package/dist/client/index.js +0 -38
- package/dist/client/index.js.map +0 -1
- package/dist/client/multi-bot-manager.d.ts +0 -42
- package/dist/client/multi-bot-manager.d.ts.map +0 -1
- package/dist/client/multi-bot-manager.js +0 -161
- package/dist/client/multi-bot-manager.js.map +0 -1
- package/dist/client/orchestrator-daemon.d.ts +0 -87
- package/dist/client/orchestrator-daemon.d.ts.map +0 -1
- package/dist/client/orchestrator-daemon.js +0 -444
- package/dist/client/orchestrator-daemon.js.map +0 -1
- package/dist/client/server.d.ts +0 -8
- package/dist/client/server.d.ts.map +0 -1
- package/dist/client/server.js +0 -251
- package/dist/client/server.js.map +0 -1
- package/dist/client/services/agent-registry.d.ts +0 -108
- package/dist/client/services/agent-registry.d.ts.map +0 -1
- package/dist/client/services/agent-registry.js +0 -630
- package/dist/client/services/agent-registry.js.map +0 -1
- package/dist/client/services/conversation-manager.d.ts +0 -50
- package/dist/client/services/conversation-manager.d.ts.map +0 -1
- package/dist/client/services/conversation-manager.js +0 -136
- package/dist/client/services/conversation-manager.js.map +0 -1
- package/dist/client/services/mcp-client.d.ts +0 -48
- package/dist/client/services/mcp-client.d.ts.map +0 -1
- package/dist/client/services/mcp-client.js +0 -105
- package/dist/client/services/mcp-client.js.map +0 -1
- package/dist/client/services/message-classifier.d.ts +0 -37
- package/dist/client/services/message-classifier.d.ts.map +0 -1
- package/dist/client/services/message-classifier.js +0 -187
- package/dist/client/services/message-classifier.js.map +0 -1
- package/dist/client/services/message-formatter.d.ts +0 -84
- package/dist/client/services/message-formatter.d.ts.map +0 -1
- package/dist/client/services/message-formatter.js +0 -353
- package/dist/client/services/message-formatter.js.map +0 -1
- package/dist/client/services/session-logger.d.ts +0 -106
- package/dist/client/services/session-logger.d.ts.map +0 -1
- package/dist/client/services/session-logger.js +0 -446
- package/dist/client/services/session-logger.js.map +0 -1
- package/dist/client/services/tool-executor.d.ts +0 -41
- package/dist/client/services/tool-executor.d.ts.map +0 -1
- package/dist/client/services/tool-executor.js +0 -169
- package/dist/client/services/tool-executor.js.map +0 -1
- package/dist/client/services/workspace-schema-cache.d.ts +0 -149
- package/dist/client/services/workspace-schema-cache.d.ts.map +0 -1
- package/dist/client/services/workspace-schema-cache.js +0 -732
- package/dist/client/services/workspace-schema-cache.js.map +0 -1
- package/dist/client/specialist-daemon.d.ts +0 -77
- package/dist/client/specialist-daemon.d.ts.map +0 -1
- package/dist/client/specialist-daemon.js +0 -197
- package/dist/client/specialist-daemon.js.map +0 -1
- package/dist/client/specialists.d.ts +0 -53
- package/dist/client/specialists.d.ts.map +0 -1
- package/dist/client/specialists.js +0 -178
- package/dist/client/specialists.js.map +0 -1
- package/dist/client/tool-schema-loader.d.ts +0 -62
- package/dist/client/tool-schema-loader.d.ts.map +0 -1
- package/dist/client/tool-schema-loader.js +0 -232
- package/dist/client/tool-schema-loader.js.map +0 -1
- package/dist/client/types.d.ts +0 -327
- package/dist/client/types.d.ts.map +0 -1
- package/dist/client/types.js +0 -121
- package/dist/client/types.js.map +0 -1
- package/dist/commands/seed-config.d.ts +0 -9
- package/dist/commands/seed-config.d.ts.map +0 -1
- package/dist/commands/seed-config.js +0 -377
- package/dist/commands/seed-config.js.map +0 -1
- package/dist/commands/setup.d.ts +0 -11
- package/dist/commands/setup.d.ts.map +0 -1
- package/dist/commands/setup.js +0 -320
- package/dist/commands/setup.js.map +0 -1
- package/dist/lib/discussion-lock.d.ts +0 -42
- package/dist/lib/discussion-lock.d.ts.map +0 -1
- package/dist/lib/discussion-lock.js +0 -110
- package/dist/lib/discussion-lock.js.map +0 -1
- package/dist/mcp/signal-handler.d.ts +0 -82
- package/dist/mcp/signal-handler.d.ts.map +0 -1
- package/dist/mcp/signal-handler.js +0 -406
- package/dist/mcp/signal-handler.js.map +0 -1
- package/dist/mcp/tools/__tests__/discussion-forward.test.d.ts +0 -2
- package/dist/mcp/tools/__tests__/discussion-forward.test.d.ts.map +0 -1
- package/dist/mcp/tools/__tests__/discussion-forward.test.js +0 -218
- package/dist/mcp/tools/__tests__/discussion-forward.test.js.map +0 -1
- package/dist/mcp/tools/app-member.d.ts +0 -14
- package/dist/mcp/tools/app-member.d.ts.map +0 -1
- package/dist/mcp/tools/app-member.js +0 -195
- package/dist/mcp/tools/app-member.js.map +0 -1
- package/dist/mcp/tools/app-scaffold.d.ts +0 -14
- package/dist/mcp/tools/app-scaffold.d.ts.map +0 -1
- package/dist/mcp/tools/app-scaffold.js +0 -581
- package/dist/mcp/tools/app-scaffold.js.map +0 -1
- package/dist/mcp/tools/bot-config/constants.d.ts +0 -23
- package/dist/mcp/tools/bot-config/constants.d.ts.map +0 -1
- package/dist/mcp/tools/bot-config/constants.js +0 -94
- package/dist/mcp/tools/bot-config/constants.js.map +0 -1
- package/dist/mcp/tools/bot-config/core.d.ts +0 -253
- package/dist/mcp/tools/bot-config/core.d.ts.map +0 -1
- package/dist/mcp/tools/bot-config/core.js +0 -2456
- package/dist/mcp/tools/bot-config/core.js.map +0 -1
- package/dist/mcp/tools/bot-config/index.d.ts +0 -10
- package/dist/mcp/tools/bot-config/index.d.ts.map +0 -1
- package/dist/mcp/tools/bot-config/index.js +0 -59
- package/dist/mcp/tools/bot-config/index.js.map +0 -1
- package/dist/mcp/tools/bot-config/tools.d.ts +0 -7
- package/dist/mcp/tools/bot-config/tools.d.ts.map +0 -1
- package/dist/mcp/tools/bot-config/tools.js +0 -15
- package/dist/mcp/tools/bot-config/tools.js.map +0 -1
- package/dist/mcp/tools/bot-config/types.d.ts +0 -50
- package/dist/mcp/tools/bot-config/types.d.ts.map +0 -1
- package/dist/mcp/tools/bot-config/types.js +0 -6
- package/dist/mcp/tools/bot-config/types.js.map +0 -1
- package/dist/mcp/tools/bug-fixer-tools.d.ts +0 -45
- package/dist/mcp/tools/bug-fixer-tools.d.ts.map +0 -1
- package/dist/mcp/tools/bug-fixer-tools.js +0 -1096
- package/dist/mcp/tools/bug-fixer-tools.js.map +0 -1
- package/dist/mcp/tools/document.d.ts +0 -11
- package/dist/mcp/tools/document.d.ts.map +0 -1
- package/dist/mcp/tools/document.js +0 -741
- package/dist/mcp/tools/document.js.map +0 -1
- package/dist/mcp/tools/investigate.d.ts +0 -9
- package/dist/mcp/tools/investigate.d.ts.map +0 -1
- package/dist/mcp/tools/investigate.js +0 -254
- package/dist/mcp/tools/investigate.js.map +0 -1
- package/dist/mcp/utils/pagination.d.ts +0 -40
- package/dist/mcp/utils/pagination.d.ts.map +0 -1
- package/dist/mcp/utils/pagination.js +0 -55
- package/dist/mcp/utils/pagination.js.map +0 -1
- package/dist/modules/bug-reports/bug-config.d.ts +0 -25
- package/dist/modules/bug-reports/bug-config.d.ts.map +0 -1
- package/dist/modules/bug-reports/bug-config.js +0 -187
- package/dist/modules/bug-reports/bug-config.js.map +0 -1
- package/dist/modules/bug-reports/bug-monitor.d.ts +0 -108
- package/dist/modules/bug-reports/bug-monitor.d.ts.map +0 -1
- package/dist/modules/bug-reports/bug-monitor.js +0 -510
- package/dist/modules/bug-reports/bug-monitor.js.map +0 -1
- package/dist/modules/bug-reports/giuseppe-agent.d.ts +0 -58
- package/dist/modules/bug-reports/giuseppe-agent.d.ts.map +0 -1
- package/dist/modules/bug-reports/giuseppe-agent.js +0 -467
- package/dist/modules/bug-reports/giuseppe-agent.js.map +0 -1
- package/dist/modules/bug-reports/giuseppe-ai.d.ts +0 -83
- package/dist/modules/bug-reports/giuseppe-ai.d.ts.map +0 -1
- package/dist/modules/bug-reports/giuseppe-ai.js +0 -466
- package/dist/modules/bug-reports/giuseppe-ai.js.map +0 -1
- package/dist/modules/bug-reports/giuseppe-bot.d.ts +0 -110
- package/dist/modules/bug-reports/giuseppe-bot.d.ts.map +0 -1
- package/dist/modules/bug-reports/giuseppe-bot.js +0 -804
- package/dist/modules/bug-reports/giuseppe-bot.js.map +0 -1
- package/dist/modules/bug-reports/giuseppe-daemon.d.ts +0 -80
- package/dist/modules/bug-reports/giuseppe-daemon.d.ts.map +0 -1
- package/dist/modules/bug-reports/giuseppe-daemon.js +0 -617
- package/dist/modules/bug-reports/giuseppe-daemon.js.map +0 -1
- package/dist/modules/bug-reports/giuseppe-files.d.ts +0 -64
- package/dist/modules/bug-reports/giuseppe-files.d.ts.map +0 -1
- package/dist/modules/bug-reports/giuseppe-files.js +0 -375
- package/dist/modules/bug-reports/giuseppe-files.js.map +0 -1
- package/dist/modules/bug-reports/giuseppe-git.d.ts +0 -48
- package/dist/modules/bug-reports/giuseppe-git.d.ts.map +0 -1
- package/dist/modules/bug-reports/giuseppe-git.js +0 -298
- package/dist/modules/bug-reports/giuseppe-git.js.map +0 -1
- package/dist/modules/bug-reports/giuseppe-lsp.d.ts +0 -113
- package/dist/modules/bug-reports/giuseppe-lsp.d.ts.map +0 -1
- package/dist/modules/bug-reports/giuseppe-lsp.js +0 -485
- package/dist/modules/bug-reports/giuseppe-lsp.js.map +0 -1
- package/dist/modules/bug-reports/giuseppe-prompt.d.ts +0 -5
- package/dist/modules/bug-reports/giuseppe-prompt.d.ts.map +0 -1
- package/dist/modules/bug-reports/giuseppe-prompt.js +0 -94
- package/dist/modules/bug-reports/giuseppe-prompt.js.map +0 -1
- package/dist/modules/bug-reports/index.d.ts +0 -77
- package/dist/modules/bug-reports/index.d.ts.map +0 -1
- package/dist/modules/bug-reports/index.js +0 -215
- package/dist/modules/bug-reports/index.js.map +0 -1
- package/dist/modules/bug-reports/pending-classification-registry.d.ts +0 -28
- package/dist/modules/bug-reports/pending-classification-registry.d.ts.map +0 -1
- package/dist/modules/bug-reports/pending-classification-registry.js +0 -50
- package/dist/modules/bug-reports/pending-classification-registry.js.map +0 -1
- package/dist/modules/bug-reports/pending-fix-registry.d.ts +0 -30
- package/dist/modules/bug-reports/pending-fix-registry.d.ts.map +0 -1
- package/dist/modules/bug-reports/pending-fix-registry.js +0 -42
- package/dist/modules/bug-reports/pending-fix-registry.js.map +0 -1
- package/dist/modules/bug-reports/pending-registry.d.ts +0 -27
- package/dist/modules/bug-reports/pending-registry.d.ts.map +0 -1
- package/dist/modules/bug-reports/pending-registry.js +0 -49
- package/dist/modules/bug-reports/pending-registry.js.map +0 -1
- package/dist/modules/bug-reports/types.d.ts +0 -123
- package/dist/modules/bug-reports/types.d.ts.map +0 -1
- package/dist/modules/bug-reports/types.js +0 -9
- package/dist/modules/bug-reports/types.js.map +0 -1
- package/dist/plugins/bug-fixer/index.d.ts +0 -2
- package/dist/plugins/bug-fixer/index.d.ts.map +0 -1
- package/dist/plugins/bug-fixer/index.js +0 -18
- package/dist/plugins/bug-fixer/index.js.map +0 -1
- package/dist/plugins/bug-fixer/tools.d.ts +0 -45
- package/dist/plugins/bug-fixer/tools.d.ts.map +0 -1
- package/dist/plugins/bug-fixer/tools.js +0 -1096
- package/dist/plugins/bug-fixer/tools.js.map +0 -1
- package/dist/plugins/vipunen/__tests__/tools.test.d.ts +0 -10
- package/dist/plugins/vipunen/__tests__/tools.test.d.ts.map +0 -1
- package/dist/plugins/vipunen/__tests__/tools.test.js +0 -646
- package/dist/plugins/vipunen/__tests__/tools.test.js.map +0 -1
- package/dist/routes/agents.d.ts +0 -44
- package/dist/routes/agents.d.ts.map +0 -1
- package/dist/routes/agents.js +0 -311
- package/dist/routes/agents.js.map +0 -1
- package/dist/services/agent-credential-store.d.ts +0 -73
- package/dist/services/agent-credential-store.d.ts.map +0 -1
- package/dist/services/agent-credential-store.js +0 -212
- package/dist/services/agent-credential-store.js.map +0 -1
- package/dist/stdio-server.d.ts +0 -14
- package/dist/stdio-server.d.ts.map +0 -1
- package/dist/stdio-server.js +0 -101
- package/dist/stdio-server.js.map +0 -1
- package/dist/workspace/context.d.ts +0 -148
- package/dist/workspace/context.d.ts.map +0 -1
- package/dist/workspace/context.js +0 -339
- package/dist/workspace/context.js.map +0 -1
- package/dist/workspace/credentials.d.ts +0 -55
- package/dist/workspace/credentials.d.ts.map +0 -1
- package/dist/workspace/credentials.js +0 -239
- package/dist/workspace/credentials.js.map +0 -1
- package/dist/workspace/index.d.ts +0 -21
- package/dist/workspace/index.d.ts.map +0 -1
- package/dist/workspace/index.js +0 -45
- package/dist/workspace/index.js.map +0 -1
- package/dist/workspace/loader.d.ts +0 -27
- package/dist/workspace/loader.d.ts.map +0 -1
- package/dist/workspace/loader.js +0 -222
- package/dist/workspace/loader.js.map +0 -1
- package/dist/workspace/schema.d.ts +0 -37
- package/dist/workspace/schema.d.ts.map +0 -1
- package/dist/workspace/schema.js +0 -192
- package/dist/workspace/schema.js.map +0 -1
|
@@ -30,23 +30,23 @@ class RequestLogger {
|
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
* Called when message is received
|
|
34
|
+
*/
|
|
35
35
|
messageReceived(from, discussionId) {
|
|
36
36
|
this.data.request.from = from;
|
|
37
37
|
this.data.request.discussion = discussionId.substring(0, 8);
|
|
38
38
|
this.data.request.timestamp = new Date().toISOString();
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
* Called when tool execution starts
|
|
42
|
+
*/
|
|
43
43
|
toolStart(toolName) {
|
|
44
44
|
this.currentToolName = toolName;
|
|
45
45
|
this.currentToolStart = Date.now();
|
|
46
46
|
}
|
|
47
47
|
/**
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
* Called when tool execution succeeds
|
|
49
|
+
*/
|
|
50
50
|
toolSuccess(toolName) {
|
|
51
51
|
const name = toolName || this.currentToolName;
|
|
52
52
|
const duration = this.currentToolStart ? ((Date.now() - this.currentToolStart) / 1000).toFixed(1) + 's' : undefined;
|
|
@@ -59,8 +59,8 @@ class RequestLogger {
|
|
|
59
59
|
this.currentToolStart = 0;
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
* Called when tool execution fails
|
|
63
|
+
*/
|
|
64
64
|
toolError(toolName, error) {
|
|
65
65
|
const duration = this.currentToolStart ? ((Date.now() - this.currentToolStart) / 1000).toFixed(1) + 's' : undefined;
|
|
66
66
|
this.data.tools.push({
|
|
@@ -73,8 +73,8 @@ class RequestLogger {
|
|
|
73
73
|
this.currentToolStart = 0;
|
|
74
74
|
}
|
|
75
75
|
/**
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
* Called when tool has validation warning
|
|
77
|
+
*/
|
|
78
78
|
toolWarning(toolName, warning) {
|
|
79
79
|
this.data.tools.push({
|
|
80
80
|
name: toolName,
|
|
@@ -83,9 +83,9 @@ class RequestLogger {
|
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
85
|
/**
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
86
|
+
* Called when a tool is used (legacy - for backward compatibility)
|
|
87
|
+
* @deprecated Use toolStart/toolSuccess/toolError instead
|
|
88
|
+
*/
|
|
89
89
|
toolCall(toolName) {
|
|
90
90
|
// Only add if not already tracking this tool
|
|
91
91
|
if (!this.data.tools.find(t => t.name === toolName)) {
|
|
@@ -96,14 +96,14 @@ class RequestLogger {
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
/**
|
|
99
|
-
|
|
100
|
-
|
|
99
|
+
* Called when an error occurs
|
|
100
|
+
*/
|
|
101
101
|
error(message) {
|
|
102
102
|
this.data.errors.push(message);
|
|
103
103
|
}
|
|
104
104
|
/**
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
* Called when response is sent - emits the combined log
|
|
106
|
+
*/
|
|
107
107
|
responseSent(tokens) {
|
|
108
108
|
const duration = ((Date.now() - this.startTime) / 1000).toFixed(1);
|
|
109
109
|
this.data.response = {
|
|
@@ -129,8 +129,8 @@ class RequestLogger {
|
|
|
129
129
|
logger.info('Request complete', logData);
|
|
130
130
|
}
|
|
131
131
|
/**
|
|
132
|
-
|
|
133
|
-
|
|
132
|
+
* Get current data (for debugging)
|
|
133
|
+
*/
|
|
134
134
|
getData() {
|
|
135
135
|
return { ...this.data };
|
|
136
136
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-logger.js","sourceRoot":"","sources":["../../src/lib/request-logger.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,qCAAwC;AAExC,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;AA2B5D,MAAa,aAAa;
|
|
1
|
+
{"version":3,"file":"request-logger.js","sourceRoot":"","sources":["../../src/lib/request-logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,12 @@ export interface UserContext {
|
|
|
15
15
|
workspaceRoles: Record<string, UserRole>;
|
|
16
16
|
currentWorkspaceId: string;
|
|
17
17
|
allowedGroups: ToolGroup[];
|
|
18
|
+
/**
|
|
19
|
+
* Bot's own Agent Directory activity ID. Set only when the context is
|
|
20
|
+
* built for an in-process bot (not for OAuth/userapikey contexts). Used by
|
|
21
|
+
* BOT_INTERNAL self-management tools (read_my_system_prompt, update_my_system_prompt).
|
|
22
|
+
*/
|
|
23
|
+
botActivityId?: string;
|
|
18
24
|
}
|
|
19
25
|
/**
|
|
20
26
|
* Cache for user-specific data (client connections, init data, workspace cache)
|
|
@@ -32,36 +38,36 @@ export declare class UserContextCache {
|
|
|
32
38
|
/** Life of each cache unit. */
|
|
33
39
|
private static readonly DEFAULT_TTL_MS;
|
|
34
40
|
/**
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
* Get or create user context (client, init, workspaceCache) for an API key
|
|
42
|
+
* This data is user-specific and should be cached per user
|
|
43
|
+
*
|
|
44
|
+
* Uses Promise memoization to prevent race conditions: if multiple requests
|
|
45
|
+
* come in for the same API key simultaneously, they all wait for the same
|
|
46
|
+
* Promise instead of creating duplicate connections.
|
|
47
|
+
*
|
|
48
|
+
* @param apiKey - Hailer API key for authentication
|
|
49
|
+
* @param forceRefresh - If true, bypasses cache and creates fresh context (useful for testing or after permission changes)
|
|
50
|
+
* @param ttlMs - Custom TTL in milliseconds, defaults to 15 minutes
|
|
51
|
+
*/
|
|
46
52
|
static getContext(apiKey: string, forceRefresh?: boolean, ttlMs?: number): Promise<UserContext>;
|
|
47
53
|
/**
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
54
|
+
* Internal method that actually creates the context.
|
|
55
|
+
* Separated from getContext to support Promise memoization.
|
|
56
|
+
*/
|
|
51
57
|
private static createContextInternal;
|
|
52
58
|
/**
|
|
53
|
-
|
|
54
|
-
|
|
59
|
+
* Clear cache entry for specific API key (for cleanup/testing)
|
|
60
|
+
*/
|
|
55
61
|
static clearContext(apiKey: string): void;
|
|
56
62
|
/**
|
|
57
|
-
|
|
58
|
-
|
|
63
|
+
* Clear all cached contexts (for cleanup/testing)
|
|
64
|
+
*/
|
|
59
65
|
static clearAll(): void;
|
|
60
66
|
/**
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
67
|
+
* Get cache statistics (for monitoring and debugging)
|
|
68
|
+
*
|
|
69
|
+
* @returns Cache stats including size, API keys, and age information
|
|
70
|
+
*/
|
|
65
71
|
static getCacheStats(): {
|
|
66
72
|
size: number;
|
|
67
73
|
apiKeys: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserContextCache.d.ts","sourceRoot":"","sources":["../../src/mcp/UserContextCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAgF,MAAM,kBAAkB,CAAC;AAC9H,OAAO,EAAwB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGzE,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAyC,MAAM,eAAe,CAAC;AACjH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"UserContextCache.d.ts","sourceRoot":"","sources":["../../src/mcp/UserContextCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAgF,MAAM,kBAAkB,CAAC;AAC9H,OAAO,EAAwB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGzE,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAyC,MAAM,eAAe,CAAC;AACjH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACH,QAAQ,EAKX,MAAM,eAAe,CAAC;AAIvB,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,EAAE,wBAAwB,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAGlB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IAEjB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,qBAAa,gBAAgB;IACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAkC;IACtD,0FAA0F;IAC1F,OAAO,CAAC,MAAM,CAAC,OAAO,CAA2C;IACjE,+BAA+B;IAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAkB;IAExD;;;;;;;;;;;KAWC;WACY,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,GAAE,OAAe,EAAE,KAAK,GAAE,MAA4B,GAAG,OAAO,CAAC,WAAW,CAAC;IA2DjI;;;KAGC;mBACoB,qBAAqB;IAuG1C;;KAEC;IACD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAOzC;;KAEC;IACD,MAAM,CAAC,QAAQ,IAAI,IAAI;IAMvB;;;;KAIC;IACD,MAAM,CAAC,aAAa,IAAI;QACxB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,KAAK,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;YACf,UAAU,EAAE,MAAM,CAAC;YACnB,SAAS,EAAE,OAAO,CAAC;SACpB,CAAC,CAAC;KACF;CAoBJ"}
|
|
@@ -24,17 +24,17 @@ class UserContextCache {
|
|
|
24
24
|
/** Life of each cache unit. */
|
|
25
25
|
static DEFAULT_TTL_MS = 15 * 60 * 1000; // 15 minutes
|
|
26
26
|
/**
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
27
|
+
* Get or create user context (client, init, workspaceCache) for an API key
|
|
28
|
+
* This data is user-specific and should be cached per user
|
|
29
|
+
*
|
|
30
|
+
* Uses Promise memoization to prevent race conditions: if multiple requests
|
|
31
|
+
* come in for the same API key simultaneously, they all wait for the same
|
|
32
|
+
* Promise instead of creating duplicate connections.
|
|
33
|
+
*
|
|
34
|
+
* @param apiKey - Hailer API key for authentication
|
|
35
|
+
* @param forceRefresh - If true, bypasses cache and creates fresh context (useful for testing or after permission changes)
|
|
36
|
+
* @param ttlMs - Custom TTL in milliseconds, defaults to 15 minutes
|
|
37
|
+
*/
|
|
38
38
|
static async getContext(apiKey, forceRefresh = false, ttlMs = this.DEFAULT_TTL_MS) {
|
|
39
39
|
logger.debug('getContext called', {
|
|
40
40
|
apiKey: apiKey.substring(0, 8) + '...',
|
|
@@ -92,9 +92,9 @@ class UserContextCache {
|
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
/**
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
95
|
+
* Internal method that actually creates the context.
|
|
96
|
+
* Separated from getContext to support Promise memoization.
|
|
97
|
+
*/
|
|
98
98
|
static async createContextInternal(apiKey) {
|
|
99
99
|
logger.debug('Creating new user context', { apiKey: apiKey.substring(0, 8) + '...' });
|
|
100
100
|
try {
|
|
@@ -140,7 +140,7 @@ class UserContextCache {
|
|
|
140
140
|
currentWorkspaceId,
|
|
141
141
|
currentRole: userRole,
|
|
142
142
|
});
|
|
143
|
-
// Get credentials from config (for tools
|
|
143
|
+
// Get credentials from config (for tools that need external auth (e.g. marketplace installs))
|
|
144
144
|
// User API Keys (OAuth users) don't have bot credentials - use empty strings
|
|
145
145
|
const isUserApiKey = apiKey.startsWith('userapikey_');
|
|
146
146
|
let email = '';
|
|
@@ -186,8 +186,8 @@ class UserContextCache {
|
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
/**
|
|
189
|
-
|
|
190
|
-
|
|
189
|
+
* Clear cache entry for specific API key (for cleanup/testing)
|
|
190
|
+
*/
|
|
191
191
|
static clearContext(apiKey) {
|
|
192
192
|
this.cache.delete(apiKey);
|
|
193
193
|
logger.debug('Cleared user context from cache', {
|
|
@@ -195,18 +195,18 @@ class UserContextCache {
|
|
|
195
195
|
});
|
|
196
196
|
}
|
|
197
197
|
/**
|
|
198
|
-
|
|
199
|
-
|
|
198
|
+
* Clear all cached contexts (for cleanup/testing)
|
|
199
|
+
*/
|
|
200
200
|
static clearAll() {
|
|
201
201
|
const size = this.cache.size;
|
|
202
202
|
this.cache.clear();
|
|
203
203
|
logger.info('Cleared all user contexts from cache', { clearedCount: size });
|
|
204
204
|
}
|
|
205
205
|
/**
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
206
|
+
* Get cache statistics (for monitoring and debugging)
|
|
207
|
+
*
|
|
208
|
+
* @returns Cache stats including size, API keys, and age information
|
|
209
|
+
*/
|
|
210
210
|
static getCacheStats() {
|
|
211
211
|
const now = Date.now();
|
|
212
212
|
const entries = Array.from(this.cache.entries()).map(([key, context]) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserContextCache.js","sourceRoot":"","sources":["../../src/mcp/UserContextCache.ts"],"names":[],"mappings":";;;AAAA,qDAA8H;AAC9H,uDAAyE;AACzE,sCAAiE;AACjE,0CAA6C;AAC7C,yCAAiH;AAEjH,yCAMuB;AAEvB,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"UserContextCache.js","sourceRoot":"","sources":["../../src/mcp/UserContextCache.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/mcp/auth.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACI,MAAM,SAAS,GAAG,KAAK,EAAE,GAAW,EAAE,UAAuB,EAAE,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/mcp/auth.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACI,MAAM,SAAS,GAAG,KAAK,EAAE,GAAW,EAAE,UAAuB,EAAE,EAAE,EAAE;IACtE,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC;IAC7D,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC;QACrC,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC;QACnC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE3C,IAAI,aAAa,IAAI,UAAU,EAAE,CAAC;QAClC,sEAAsE;QAClE,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,GAAG,CAAC;QAE/C,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC3C,OAAO,QAAQ,CAAC;QACpB,CAAC;gBAAS,CAAC;YACP,6BAA6B;YAC7B,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,aAAa,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACJ,OAAO,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;YACpD,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC;AAzBW,QAAA,SAAS,aAyBpB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Client } from
|
|
1
|
+
import { Client } from '@hailer/cli';
|
|
2
2
|
import { SignalType } from './utils/types';
|
|
3
3
|
export interface HailerRestClient {
|
|
4
4
|
fetch: (url: string, options?: RequestInit) => Promise<Response>;
|
|
@@ -19,9 +19,9 @@ export declare class RestOnlySocket {
|
|
|
19
19
|
private apiKey;
|
|
20
20
|
constructor(baseUrl: string, apiKey: string);
|
|
21
21
|
/**
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
* Make RPC request via REST API instead of socket
|
|
23
|
+
* Hailer's /api endpoint accepts the same RPC format as socket
|
|
24
|
+
*/
|
|
25
25
|
request(method: string, args?: unknown[]): Promise<unknown>;
|
|
26
26
|
on(_event: string, _handler: (...args: any[]) => void): void;
|
|
27
27
|
off(_event: string, _handler: (...args: any[]) => void): void;
|
|
@@ -52,6 +52,7 @@ export declare class HailerClientManager {
|
|
|
52
52
|
isConnected(): boolean;
|
|
53
53
|
getClient(): HailerClient | null;
|
|
54
54
|
}
|
|
55
|
+
export declare function withApiKeyLock<T>(apiKey: string, fn: () => Promise<T>): Promise<T>;
|
|
55
56
|
/**
|
|
56
57
|
* Create Hailer client by API key (O(1) lookup)
|
|
57
58
|
* This is the new efficient method for MCP Server to get connections
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hailer-clients.d.ts","sourceRoot":"","sources":["../../src/mcp/hailer-clients.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC,OAAO,EAAwC,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"hailer-clients.d.ts","sourceRoot":"","sources":["../../src/mcp/hailer-clients.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.subscribeToSignal = exports.clearAllConnections = exports.disconnectHailerClientByApiKey = exports.createHailerClientByApiKey = exports.HailerClientManager = exports.RestOnlySocket = void 0;
|
|
4
4
|
exports.getCurrentUserId = getCurrentUserId;
|
|
5
|
+
exports.withApiKeyLock = withApiKeyLock;
|
|
5
6
|
exports.registerBotCredentials = registerBotCredentials;
|
|
6
7
|
exports.unregisterBotCredentials = unregisterBotCredentials;
|
|
7
8
|
const cli_1 = require("@hailer/cli");
|
|
@@ -11,6 +12,8 @@ const config_1 = require("../config");
|
|
|
11
12
|
const logger = (0, logger_1.createLogger)({ component: 'hailer-clients' });
|
|
12
13
|
// Default API base URL for OAuth sessions (User API Keys)
|
|
13
14
|
const DEFAULT_API_BASE_URL = config_1.environment.BOT_API_BASE_URL;
|
|
15
|
+
// Deadline for REST-bridge RPC calls (OAuth/User API Key sessions)
|
|
16
|
+
const REST_REQUEST_TIMEOUT_MS = 60000;
|
|
14
17
|
/**
|
|
15
18
|
* REST-only socket mock for User API Key sessions
|
|
16
19
|
* User API Keys require IP for validation, which socket.resume() doesn't provide.
|
|
@@ -24,9 +27,9 @@ class RestOnlySocket {
|
|
|
24
27
|
this.apiKey = apiKey;
|
|
25
28
|
}
|
|
26
29
|
/**
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
* Make RPC request via REST API instead of socket
|
|
31
|
+
* Hailer's /api endpoint accepts the same RPC format as socket
|
|
32
|
+
*/
|
|
30
33
|
async request(method, args = []) {
|
|
31
34
|
const url = `${this.host}/api/${method.replace(/\./g, '/')}`;
|
|
32
35
|
logger.debug('RestOnlySocket making request', {
|
|
@@ -34,14 +37,27 @@ class RestOnlySocket {
|
|
|
34
37
|
method,
|
|
35
38
|
apiKeyPrefix: this.apiKey.substring(0, 20) + '...',
|
|
36
39
|
});
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
40
|
+
let response;
|
|
41
|
+
try {
|
|
42
|
+
response = await (0, auth_1.safeFetch)(url, {
|
|
43
|
+
method: 'POST',
|
|
44
|
+
headers: {
|
|
45
|
+
'Content-Type': 'application/json',
|
|
46
|
+
hlrkey: this.apiKey,
|
|
47
|
+
},
|
|
48
|
+
body: JSON.stringify({ args }),
|
|
49
|
+
// Without a deadline a slow upstream query hangs until Node's
|
|
50
|
+
// 2-minute socket teardown and surfaces as an opaque failure.
|
|
51
|
+
signal: AbortSignal.timeout(REST_REQUEST_TIMEOUT_MS),
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
if (error instanceof Error && error.name === 'TimeoutError') {
|
|
56
|
+
throw new Error(`Hailer API request timed out after ${REST_REQUEST_TIMEOUT_MS / 1000}s (${method}). ` +
|
|
57
|
+
'The query may be too large — narrow it (filters, smaller limit) and retry.');
|
|
58
|
+
}
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
45
61
|
if (!response.ok) {
|
|
46
62
|
const errorText = await response.text();
|
|
47
63
|
logger.error('RestOnlySocket request failed', {
|
|
@@ -81,8 +97,8 @@ async function getCurrentUserId(client) {
|
|
|
81
97
|
try {
|
|
82
98
|
// Use the socket client to get initialization data with the current user
|
|
83
99
|
// According to the API docs, requesting "user" returns the current authenticated user
|
|
84
|
-
const init = (await client.socket.request(
|
|
85
|
-
[
|
|
100
|
+
const init = (await client.socket.request('v2.core.init', [
|
|
101
|
+
['user'],
|
|
86
102
|
]));
|
|
87
103
|
// Check if there's a user field (this is the current authenticated user)
|
|
88
104
|
if (init.user && init.user._id) {
|
|
@@ -93,8 +109,8 @@ async function getCurrentUserId(client) {
|
|
|
93
109
|
logger.warn('User not found in init.user, trying alternative approach');
|
|
94
110
|
// Method 2: Try to get current user from a profile/me endpoint
|
|
95
111
|
try {
|
|
96
|
-
const profileResponse = await client.rest.fetch(
|
|
97
|
-
method:
|
|
112
|
+
const profileResponse = await client.rest.fetch('/api/user/me', {
|
|
113
|
+
method: 'GET',
|
|
98
114
|
});
|
|
99
115
|
if (profileResponse.ok) {
|
|
100
116
|
const profile = (await profileResponse.json());
|
|
@@ -108,8 +124,8 @@ async function getCurrentUserId(client) {
|
|
|
108
124
|
logger.warn('Profile endpoint not available, trying network method');
|
|
109
125
|
}
|
|
110
126
|
// Method 3: Try with network data to infer from workspace membership
|
|
111
|
-
const initWithNetwork = (await client.socket.request(
|
|
112
|
-
[
|
|
127
|
+
const initWithNetwork = (await client.socket.request('v2.core.init', [
|
|
128
|
+
['network'],
|
|
113
129
|
]));
|
|
114
130
|
if (initWithNetwork.network && initWithNetwork.network.members) {
|
|
115
131
|
const members = initWithNetwork.network.members;
|
|
@@ -124,7 +140,7 @@ async function getCurrentUserId(client) {
|
|
|
124
140
|
}
|
|
125
141
|
}
|
|
126
142
|
// If all methods fail, throw an error with helpful information
|
|
127
|
-
throw new Error(
|
|
143
|
+
throw new Error('Could not determine current user ID from any available method. Check API credentials and permissions.');
|
|
128
144
|
}
|
|
129
145
|
catch (error) {
|
|
130
146
|
logger.error('Failed to get current user ID', error);
|
|
@@ -148,7 +164,7 @@ class HailerClientManager {
|
|
|
148
164
|
}
|
|
149
165
|
async connect() {
|
|
150
166
|
// Check if this is a local development environment
|
|
151
|
-
const isLocalDev = this.host.includes(
|
|
167
|
+
const isLocalDev = this.host.includes('local.gd') || this.host.includes('localhost');
|
|
152
168
|
const clientOptions = {
|
|
153
169
|
host: this.host,
|
|
154
170
|
username: this.username,
|
|
@@ -188,7 +204,7 @@ class HailerClientManager {
|
|
|
188
204
|
throw error;
|
|
189
205
|
}
|
|
190
206
|
if (!this.socketClient.sessionKey) {
|
|
191
|
-
throw new Error(
|
|
207
|
+
throw new Error('Socket client connected but no session key received');
|
|
192
208
|
}
|
|
193
209
|
// Create REST client that uses the same session key
|
|
194
210
|
this.restClient = {
|
|
@@ -196,7 +212,7 @@ class HailerClientManager {
|
|
|
196
212
|
const headers = {
|
|
197
213
|
...options.headers,
|
|
198
214
|
hlrkey: this.socketClient.sessionKey,
|
|
199
|
-
|
|
215
|
+
'Content-Type': 'application/json',
|
|
200
216
|
};
|
|
201
217
|
return (0, auth_1.safeFetch)(url, { ...options, headers });
|
|
202
218
|
},
|
|
@@ -211,39 +227,40 @@ class HailerClientManager {
|
|
|
211
227
|
};
|
|
212
228
|
}
|
|
213
229
|
setupSignalHandling() {
|
|
214
|
-
if (!this.socketClient || this.signalsInitialized)
|
|
230
|
+
if (!this.socketClient || this.signalsInitialized) {
|
|
215
231
|
return;
|
|
232
|
+
}
|
|
216
233
|
this.signalsInitialized = true;
|
|
217
234
|
// Connection lifecycle logging - helps diagnose bot death issues
|
|
218
|
-
this.socketClient.on(
|
|
235
|
+
this.socketClient.on('disconnect', (reason) => {
|
|
219
236
|
logger.warn('Socket disconnected', {
|
|
220
237
|
reason,
|
|
221
238
|
username: this.username,
|
|
222
239
|
willReconnect: reason !== 'io server disconnect' && reason !== 'io client disconnect'
|
|
223
240
|
});
|
|
224
241
|
});
|
|
225
|
-
this.socketClient.on(
|
|
242
|
+
this.socketClient.on('reconnect', () => {
|
|
226
243
|
logger.info('Socket reconnected and session resumed', { username: this.username });
|
|
227
244
|
});
|
|
228
|
-
this.socketClient.on(
|
|
245
|
+
this.socketClient.on('connect', () => {
|
|
229
246
|
logger.info('Socket connected', { username: this.username });
|
|
230
247
|
});
|
|
231
|
-
this.socketClient.on(
|
|
248
|
+
this.socketClient.on('connect_error', (error) => {
|
|
232
249
|
logger.error('Socket connection error', { error: error.message, username: this.username });
|
|
233
250
|
});
|
|
234
|
-
this.socketClient.on(
|
|
251
|
+
this.socketClient.on('reconnect_attempt', (attempt) => {
|
|
235
252
|
logger.info('Socket reconnection attempt', { attempt, username: this.username });
|
|
236
253
|
});
|
|
237
|
-
this.socketClient.on(
|
|
254
|
+
this.socketClient.on('reconnect_failed', () => {
|
|
238
255
|
logger.error('Socket reconnection failed permanently', { username: this.username });
|
|
239
256
|
});
|
|
240
|
-
this.socketClient.on(
|
|
257
|
+
this.socketClient.on('signals', (signal) => {
|
|
241
258
|
const [eventType, eventData] = signal;
|
|
242
|
-
//
|
|
259
|
+
// Log messenger.new signals at INFO level for debugging
|
|
243
260
|
if (eventType === 'messenger.new') {
|
|
244
|
-
logger.
|
|
245
|
-
eventType,
|
|
261
|
+
logger.info('SIGNAL messenger.new received', {
|
|
246
262
|
discussion: eventData.discussion,
|
|
263
|
+
uid: eventData.uid,
|
|
247
264
|
handlersRegistered: this.signalHandlers.has(eventType),
|
|
248
265
|
handlerCount: this.signalHandlers.get(eventType)?.length || 0,
|
|
249
266
|
});
|
|
@@ -309,6 +326,38 @@ exports.HailerClientManager = HailerClientManager;
|
|
|
309
326
|
const connectionPool = new Map();
|
|
310
327
|
// Pool for User API Key socket clients
|
|
311
328
|
const userApiKeyClients = new Map();
|
|
329
|
+
/**
|
|
330
|
+
* Per-API-key mutex. Hailer's API key carries a server-side "current workspace"
|
|
331
|
+
* pointer that `core.switch_ecosystem` mutates and that subsequent calls
|
|
332
|
+
* (`core.init`, `activities.load`, `v2.user.register`) implicitly inherit. If
|
|
333
|
+
* one physical admin is authorized in multiple workspaces, both workspaces'
|
|
334
|
+
* webhooks share the same client and the same server-side pointer, so two
|
|
335
|
+
* concurrent flows can interleave: ws-A switches to A, ws-B switches to B,
|
|
336
|
+
* ws-A's next call now runs in B's context. Net result: bot invited to
|
|
337
|
+
* workspace A but assigned a team from workspace B, etc.
|
|
338
|
+
*
|
|
339
|
+
* This lock serializes "switch + dependent calls" blocks per API key so that
|
|
340
|
+
* concurrent admin-driven flows from different workspaces queue cleanly. It
|
|
341
|
+
* adds ~hundreds of ms latency when two workspaces fire admin operations at
|
|
342
|
+
* once, but eliminates the cross-workspace context leak.
|
|
343
|
+
*
|
|
344
|
+
* The lock chains via `prev.then(fn, fn)` so a thrown fn never stalls the
|
|
345
|
+
* queue — the same shape used by `provisionLocks` in webhook-handler.ts.
|
|
346
|
+
*/
|
|
347
|
+
const apiKeyLocks = new Map();
|
|
348
|
+
async function withApiKeyLock(apiKey, fn) {
|
|
349
|
+
const prev = apiKeyLocks.get(apiKey) ?? Promise.resolve();
|
|
350
|
+
const next = prev.then(fn, fn);
|
|
351
|
+
apiKeyLocks.set(apiKey, next);
|
|
352
|
+
try {
|
|
353
|
+
return await next;
|
|
354
|
+
}
|
|
355
|
+
finally {
|
|
356
|
+
if (apiKeyLocks.get(apiKey) === next) {
|
|
357
|
+
apiKeyLocks.delete(apiKey);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
}
|
|
312
361
|
/**
|
|
313
362
|
* Create a REST-only client for User API Keys
|
|
314
363
|
*
|
|
@@ -384,12 +433,12 @@ const createHailerClientByApiKey = async (apiKey) => {
|
|
|
384
433
|
// Check if this is a User API Key (from OAuth flow)
|
|
385
434
|
// User API Keys start with "userapikey_" and can authenticate via socket resume()
|
|
386
435
|
if (apiKey.startsWith('userapikey_')) {
|
|
387
|
-
return
|
|
436
|
+
return createUserApiKeyClient(apiKey);
|
|
388
437
|
}
|
|
389
438
|
// O(1) lookup in Map-based CLIENT_CONFIGS (for bot accounts)
|
|
390
439
|
const account = config_1.environment.CLIENT_CONFIGS[apiKey];
|
|
391
440
|
if (!account) {
|
|
392
|
-
throw new Error(`No Hailer account found for API key: ${apiKey}
|
|
441
|
+
throw new Error(`No Hailer account found for API key: ${apiKey.substring(0, 8)}...`);
|
|
393
442
|
}
|
|
394
443
|
logger.debug('Creating clients for API key', {
|
|
395
444
|
apiKey: apiKey.substring(0, 8) + '...',
|