@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
|
@@ -35,12 +35,15 @@ function buildPermissionIndex(init, workspaceId) {
|
|
|
35
35
|
if (network?.members) {
|
|
36
36
|
const members = Array.isArray(network.members) ? network.members : Object.values(network.members);
|
|
37
37
|
for (const member of members) {
|
|
38
|
-
if (member.uid)
|
|
38
|
+
if (member.uid) {
|
|
39
39
|
workspaceMemberIds.add(member.uid);
|
|
40
|
-
|
|
40
|
+
}
|
|
41
|
+
if (member.admin === true) {
|
|
41
42
|
adminUserIds.add(member.uid);
|
|
42
|
-
|
|
43
|
+
}
|
|
44
|
+
if (member.owner === true) {
|
|
43
45
|
ownerUserIds.add(member.uid);
|
|
46
|
+
}
|
|
44
47
|
}
|
|
45
48
|
}
|
|
46
49
|
const teams = init.teams?.[workspaceId] || {};
|
|
@@ -48,27 +51,31 @@ function buildPermissionIndex(init, workspaceId) {
|
|
|
48
51
|
for (const proc of init.processes) {
|
|
49
52
|
const members = proc.members || [];
|
|
50
53
|
// network_ member = all workspace members have access → skip (open)
|
|
51
|
-
if (members.some((m) => m.id?.startsWith('network_')))
|
|
54
|
+
if (members.some((m) => m.id?.startsWith('network_'))) {
|
|
52
55
|
continue;
|
|
56
|
+
}
|
|
53
57
|
// Public team = all workspace members have access → skip (open)
|
|
54
58
|
let hasPublicTeam = false;
|
|
55
59
|
for (const m of members) {
|
|
56
|
-
if (!m.id?.startsWith('team_'))
|
|
60
|
+
if (!m.id?.startsWith('team_')) {
|
|
57
61
|
continue;
|
|
62
|
+
}
|
|
58
63
|
const team = teams[m.id.slice(5)];
|
|
59
64
|
if (team?.public) {
|
|
60
65
|
hasPublicTeam = true;
|
|
61
66
|
break;
|
|
62
67
|
}
|
|
63
68
|
}
|
|
64
|
-
if (hasPublicTeam)
|
|
69
|
+
if (hasPublicTeam) {
|
|
65
70
|
continue;
|
|
71
|
+
}
|
|
66
72
|
// Restricted workflow — build explicit user set
|
|
67
73
|
const userIds = new Set();
|
|
68
74
|
for (const member of members) {
|
|
69
75
|
const id = member.id;
|
|
70
|
-
if (!id)
|
|
76
|
+
if (!id) {
|
|
71
77
|
continue;
|
|
78
|
+
}
|
|
72
79
|
if (id.startsWith('user_')) {
|
|
73
80
|
userIds.add(id.slice(5));
|
|
74
81
|
}
|
|
@@ -90,8 +97,9 @@ function buildPermissionIndex(init, workspaceId) {
|
|
|
90
97
|
}
|
|
91
98
|
}
|
|
92
99
|
// Workflow creator always has access
|
|
93
|
-
if (proc.uid)
|
|
100
|
+
if (proc.uid) {
|
|
94
101
|
userIds.add(proc.uid);
|
|
102
|
+
}
|
|
95
103
|
permissionIndex.set(proc._id, userIds);
|
|
96
104
|
}
|
|
97
105
|
return { permissionIndex, adminUserIds, ownerUserIds, workspaceMemberIds };
|
|
@@ -117,8 +125,9 @@ function extractWorkflowIdsFromArgs(args, insightWorkflowCache) {
|
|
|
117
125
|
// insightId → cached workflow mapping
|
|
118
126
|
if (typeof args.insightId === 'string') {
|
|
119
127
|
const cached = insightWorkflowCache.get(args.insightId);
|
|
120
|
-
if (cached)
|
|
128
|
+
if (cached) {
|
|
121
129
|
ids.push(...cached);
|
|
130
|
+
}
|
|
122
131
|
}
|
|
123
132
|
return ids;
|
|
124
133
|
}
|
|
@@ -127,8 +136,9 @@ function extractWorkflowIdsFromArgs(args, insightWorkflowCache) {
|
|
|
127
136
|
* Returns null if allowed, or { workflowId, reason } if denied.
|
|
128
137
|
*/
|
|
129
138
|
function checkWorkflowAccess(workflowIds, senderId, ctx) {
|
|
130
|
-
if (workflowIds.length === 0)
|
|
139
|
+
if (workflowIds.length === 0) {
|
|
131
140
|
return null;
|
|
141
|
+
}
|
|
132
142
|
for (const wfId of workflowIds) {
|
|
133
143
|
// Bot scope ceiling
|
|
134
144
|
if (ctx.allowedWorkflows.length > 0 && !ctx.allowedWorkflows.includes(wfId)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-guard.js","sourceRoot":"","sources":["../../../src/bot/services/permission-guard.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AA4BH,
|
|
1
|
+
{"version":3,"file":"permission-guard.js","sourceRoot":"","sources":["../../../src/bot/services/permission-guard.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AA4BH,oDA8FC;AAMD,gEA6BC;AAMD,kDA4BC;AA3KD;;;;;;;GAOG;AACH,SAAgB,oBAAoB,CAAC,IAAS,EAAE,WAAmB;IAM/D,MAAM,eAAe,GAAG,IAAI,GAAG,EAAuB,CAAC;IACvD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAE7C,IAAI,CAAC,IAAI,EAAE,SAAS,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC;IAC/E,CAAC;IAED,iEAAiE;IACjE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAc,CAAC;IACpC,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAClG,KAAK,MAAM,MAAM,IAAI,OAAgB,EAAE,CAAC;YACpC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;gBACb,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBACxB,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBACxB,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAI,IAAI,CAAC,KAAa,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IACvD,MAAM,MAAM,GAAI,IAAY,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAEzD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAEnC,oEAAoE;QACpE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACzD,SAAS;QACb,CAAC;QAED,gEAAgE;QAChE,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,SAAS;YACb,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;gBACf,aAAa,GAAG,IAAI,CAAC;gBAAC,MAAM;YAChC,CAAC;QACL,CAAC;QACD,IAAI,aAAa,EAAE,CAAC;YAChB,SAAS;QACb,CAAC;QAED,gDAAgD;QAChD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAElC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,EAAE,EAAE,CAAC;gBACN,SAAS;YACb,CAAC;YACD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC;iBAAM,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;oBAChB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC9E,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClC,IAAI,KAAK,EAAE,OAAO,EAAE,CAAC;oBACjB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;wBAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC9E,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,qCAAqC;QACrC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QAED,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAC/E,CAAC;AAED;;;GAGG;AACH,SAAgB,0BAA0B,CACtC,IAA6B,EAC7B,oBAA8C;IAE9C,MAAM,GAAG,GAAa,EAAE,CAAC;IAEzB,wBAAwB;IACxB,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACtC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,uCAAuC;IACvC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAQ,GAAW,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAChF,GAAG,CAAC,IAAI,CAAE,GAAW,CAAC,UAAU,CAAC,CAAC;YACtC,CAAC;QACL,CAAC;IACL,CAAC;IAED,sCAAsC;IACtC,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,MAAM,EAAE,CAAC;YACT,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QACxB,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAgB,mBAAmB,CAC/B,WAAqB,EACrB,QAAgB,EAChB,GAAsB;IAEtB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QACjC,oBAAoB;QAChB,IAAI,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1E,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QACrD,CAAC;QAED,6CAA6C;QAC7C,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnE,SAAS;QACb,CAAC;QAED,iEAAiE;QACjE,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAClD,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal-router.d.ts","sourceRoot":"","sources":["../../../src/bot/services/signal-router.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAQzE,qBAAa,YAAY;
|
|
1
|
+
{"version":3,"file":"signal-router.d.ts","sourceRoot":"","sources":["../../../src/bot/services/signal-router.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAQzE,qBAAa,YAAY;IAST,OAAO,CAAC,MAAM;IAR1B,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,6BAA6B,CAA+B;IACpE,OAAO,CAAC,sBAAsB,CAAgB;IAC9C,OAAO,CAAC,gBAAgB,CAAsC;IAE9D,gEAAgE;IAChE,QAAQ,CAAC,qBAAqB,cAAqB;gBAE/B,MAAM,EAAE,MAAM;IAIlC,gFAAgF;IAChF,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAStC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIjC,OAAO,CAAC,UAAU;IASlB,0EAA0E;IAC1E,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAoC5C,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe;IA6BvD,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAI3D,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAID,+EAA+E;IAC/E,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO;IAa3E,yEAAyE;IACzE,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO;IAMpD,KAAK,IAAI,IAAI;CAShB"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.SignalRouter = void 0;
|
|
9
|
-
const RATE_LIMIT_WINDOW =
|
|
9
|
+
const RATE_LIMIT_WINDOW = 60000;
|
|
10
10
|
const RATE_LIMIT_PER_DISCUSSION = 30;
|
|
11
11
|
const RATE_LIMIT_GLOBAL = 100;
|
|
12
12
|
const DISENGAGE_THRESHOLD = 5;
|
|
@@ -25,8 +25,9 @@ class SignalRouter {
|
|
|
25
25
|
// ===== DEDUP =====
|
|
26
26
|
/** Returns true if this message was already seen. Adds it to the set if not. */
|
|
27
27
|
isDuplicate(dedupKey) {
|
|
28
|
-
if (this.processedMessageIds.has(dedupKey))
|
|
28
|
+
if (this.processedMessageIds.has(dedupKey)) {
|
|
29
29
|
return true;
|
|
30
|
+
}
|
|
30
31
|
this.processedMessageIds.add(dedupKey);
|
|
31
32
|
this.pruneDedup();
|
|
32
33
|
return false;
|
|
@@ -51,15 +52,17 @@ class SignalRouter {
|
|
|
51
52
|
discTimestamps = [];
|
|
52
53
|
this.signalTimestampsPerDiscussion.set(discussionId, discTimestamps);
|
|
53
54
|
}
|
|
54
|
-
while (discTimestamps.length > 0 && discTimestamps[0] < cutoff)
|
|
55
|
+
while (discTimestamps.length > 0 && discTimestamps[0] < cutoff) {
|
|
55
56
|
discTimestamps.shift();
|
|
57
|
+
}
|
|
56
58
|
if (discTimestamps.length >= RATE_LIMIT_PER_DISCUSSION) {
|
|
57
59
|
this.logger.warn('Per-discussion rate limit exceeded', { discussionId, count: discTimestamps.length });
|
|
58
60
|
return true;
|
|
59
61
|
}
|
|
60
62
|
// Global
|
|
61
|
-
while (this.globalSignalTimestamps.length > 0 && this.globalSignalTimestamps[0] < cutoff)
|
|
63
|
+
while (this.globalSignalTimestamps.length > 0 && this.globalSignalTimestamps[0] < cutoff) {
|
|
62
64
|
this.globalSignalTimestamps.shift();
|
|
65
|
+
}
|
|
63
66
|
if (this.globalSignalTimestamps.length >= RATE_LIMIT_GLOBAL) {
|
|
64
67
|
this.logger.warn('Global rate limit exceeded', { count: this.globalSignalTimestamps.length });
|
|
65
68
|
return true;
|
|
@@ -81,8 +84,9 @@ class SignalRouter {
|
|
|
81
84
|
// Evict oldest if at capacity
|
|
82
85
|
if (this.discussionStates.size >= MAX_DISCUSSION_STATES) {
|
|
83
86
|
const oldest = this.discussionStates.keys().next().value;
|
|
84
|
-
if (oldest)
|
|
87
|
+
if (oldest) {
|
|
85
88
|
this.discussionStates.delete(oldest);
|
|
89
|
+
}
|
|
86
90
|
}
|
|
87
91
|
state = {
|
|
88
92
|
contextBuffer: [],
|
|
@@ -104,8 +108,9 @@ class SignalRouter {
|
|
|
104
108
|
// ===== ENGAGEMENT =====
|
|
105
109
|
/** Check if a message should trigger a bot response based on response mode. */
|
|
106
110
|
checkTrigger(message, responseMode) {
|
|
107
|
-
if (message.isPrivateDiscussion)
|
|
111
|
+
if (message.isPrivateDiscussion) {
|
|
108
112
|
return true;
|
|
113
|
+
}
|
|
109
114
|
switch (responseMode) {
|
|
110
115
|
case 'mention_only': return message.isMention;
|
|
111
116
|
case 'reply_only': return message.isReplyToBot;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal-router.js","sourceRoot":"","sources":["../../../src/bot/services/signal-router.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAKH,MAAM,iBAAiB,GAAG,
|
|
1
|
+
{"version":3,"file":"signal-router.js","sourceRoot":"","sources":["../../../src/bot/services/signal-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,20 @@ export declare function buildSystemPrompt(opts: {
|
|
|
8
8
|
userId: string;
|
|
9
9
|
workspaceOverview: string;
|
|
10
10
|
customPrompt?: string;
|
|
11
|
+
helperMode?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* True when this bot carries a graduation seedContext (it came from a
|
|
14
|
+
* public-chat demo the user chose to continue). Only meaningful together
|
|
15
|
+
* with helperMode: it steers the Helper persona to continue the user's
|
|
16
|
+
* demo intent instead of launching the scripted from-zero onboarding tour.
|
|
17
|
+
*/
|
|
18
|
+
hasSeedContext?: boolean;
|
|
19
|
+
/** Bot's current response mode — passed so the LLM can describe it to users. */
|
|
20
|
+
responseMode?: 'always' | 'mention_only' | 'reply_only' | 'mention_or_reply';
|
|
21
|
+
/** Bot's access level (who can talk to it). */
|
|
22
|
+
accessLevel?: 'all' | 'admin' | 'owner';
|
|
23
|
+
/** Whether the bot replies to messages from other bots. */
|
|
24
|
+
allowBotMessages?: boolean;
|
|
11
25
|
botExchangeContext?: {
|
|
12
26
|
senderBotName: string;
|
|
13
27
|
consecutiveExchanges: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../../src/bot/services/system-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../../src/bot/services/system-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAiBjE,gDAAgD;AAChD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,IAAI,EAAE,wBAAwB,GAAG,IAAI,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gFAAgF;IAChF,YAAY,CAAC,EAAE,QAAQ,GAAG,cAAc,GAAG,YAAY,GAAG,kBAAkB,CAAC;IAC7E,+CAA+C;IAC/C,WAAW,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC;IACxC,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,oBAAoB,EAAE,MAAM,CAAC;KAC9B,CAAC;CACH,GAAG,MAAM,CAqST"}
|
|
@@ -4,13 +4,16 @@
|
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.buildSystemPrompt = buildSystemPrompt;
|
|
7
|
+
const helper_prompt_1 = require("./helper-prompt");
|
|
7
8
|
/** Resolve the bot's display name from init data. */
|
|
8
9
|
function getBotDisplayName(init, userId) {
|
|
9
|
-
if (!init?.users || !userId)
|
|
10
|
+
if (!init?.users || !userId) {
|
|
10
11
|
return 'Assistant';
|
|
12
|
+
}
|
|
11
13
|
const user = init.users[userId];
|
|
12
|
-
if (!user)
|
|
14
|
+
if (!user) {
|
|
13
15
|
return 'Assistant';
|
|
16
|
+
}
|
|
14
17
|
const name = user.display_name || user.fullName ||
|
|
15
18
|
`${user.firstname || ''} ${user.lastname || ''}`.trim();
|
|
16
19
|
return name || 'Assistant';
|
|
@@ -24,6 +27,81 @@ Your user ID: ${opts.userId}
|
|
|
24
27
|
Your display name: ${botName}
|
|
25
28
|
Workspace: ${wsName}
|
|
26
29
|
</bot-identity>`;
|
|
30
|
+
const responseModeMode = opts.responseMode ?? 'always';
|
|
31
|
+
const responseModeDescription = {
|
|
32
|
+
always: 'I respond to every message posted in this discussion.',
|
|
33
|
+
mention_only: 'I only respond when someone @mentions me by name.',
|
|
34
|
+
reply_only: 'I only respond when someone replies to one of my messages.',
|
|
35
|
+
mention_or_reply: 'I only respond when someone @mentions me OR replies to one of my messages. I stay silent on other messages, even if they look directed at me.',
|
|
36
|
+
}[responseModeMode];
|
|
37
|
+
const accessLevelMode = opts.accessLevel ?? 'all';
|
|
38
|
+
const accessLevelDescription = {
|
|
39
|
+
all: 'Any verified workspace member can talk to me.',
|
|
40
|
+
admin: 'Only workspace admins and owners can talk to me. Other members will be ignored.',
|
|
41
|
+
owner: 'Only workspace owners can talk to me. Anyone else is ignored.',
|
|
42
|
+
}[accessLevelMode];
|
|
43
|
+
const botMessagesDescription = opts.allowBotMessages
|
|
44
|
+
? 'I do reply to messages from other bots.'
|
|
45
|
+
: 'I ignore messages from other bots (to avoid bot loops).';
|
|
46
|
+
const settings = `<your-settings>
|
|
47
|
+
You are aware of your own configuration. When users seem frustrated, confused, or stuck — for example you don't reply to a message they expected you to, or they wonder why you keep ignoring them, or they ask "are you on?" — surface the relevant setting and offer suggestions.
|
|
48
|
+
|
|
49
|
+
Current settings:
|
|
50
|
+
- Response mode: ${responseModeMode} — ${responseModeDescription}
|
|
51
|
+
- Access level: ${accessLevelMode} — ${accessLevelDescription}
|
|
52
|
+
- Bot-to-bot: ${botMessagesDescription}
|
|
53
|
+
|
|
54
|
+
How to talk about them:
|
|
55
|
+
- Translate to plain English, never just dump the raw value.
|
|
56
|
+
- If a user seems frustrated by silence in a busy discussion, suggest they switch you to "always" mode (or stay where you are if they prefer less noise).
|
|
57
|
+
- If a non-admin can't talk to you because of access level, explain who they should ask to get included.
|
|
58
|
+
- Settings other than persona are NOT self-mutable — point users at the AI Hub app ("Bots" section) to flip them. You can only change your own persona/avatar via tools, and only for workspace admins/owners.
|
|
59
|
+
</your-settings>`;
|
|
60
|
+
const botActionsBlock = opts.helperMode ? `
|
|
61
|
+
BOT ACTIONS — UI commands embedded in your messages:
|
|
62
|
+
The frontend parses special tags from your messages and executes them. Use these when the user asks you to navigate somewhere, show them something, or when you perform an action and want to take them to the result.
|
|
63
|
+
|
|
64
|
+
Available actions:
|
|
65
|
+
- Navigate: <bot-action type="navigate" url="/activities/process/{workflowId}/phase/{phaseId}" />
|
|
66
|
+
- Highlight UI element: <bot-action type="highlight" target="{targetName}" />
|
|
67
|
+
- Highlight within specific workflow: <bot-action type="highlight" target="{targetName}" scope="{workflowId}" />
|
|
68
|
+
|
|
69
|
+
URL patterns for navigation:
|
|
70
|
+
- Workflow (kanban): /activities/process/{workflowId}/phase/{phaseId}
|
|
71
|
+
- Workflow (table): /activities/process/{workflowId}/phase/{phaseId}/table
|
|
72
|
+
- Activity detail: /activities/process/{workflowId}/phase/{phaseId}/activity/{activityId}
|
|
73
|
+
- Discussions: /discussions
|
|
74
|
+
- Specific discussion: /discussions/{discussionId}
|
|
75
|
+
- Events: /events
|
|
76
|
+
- Feed: /feed
|
|
77
|
+
- People: /people
|
|
78
|
+
- Settings: /settings
|
|
79
|
+
|
|
80
|
+
Highlight targets by section:
|
|
81
|
+
- Workflow header: add-activity-button, create-workflow-button, workflow-settings-button, edit-workflow-button, copy-workflow-button, workflow-name, workflow-star-icon-button
|
|
82
|
+
- Kanban: kanban-activity-card, workflow-phases, workflow-phase-name
|
|
83
|
+
- Activity topbar: activity-count, fields-filter, workflow-list-back-button, activity-filter-button
|
|
84
|
+
- Activity table: activity-table, activity-table-row
|
|
85
|
+
- Activity sidenav tabs: activity-sidenav-detail-tab, activity-sidenav-discussion-tab, activity-sidenav-files-tab, activity-sidenav-participants-tab, activity-sidenav-linkedFrom-tab, activity-sidenav-options-tab, activity-sidenav-location-tab
|
|
86
|
+
- Activity sidenav actions: activity-sidenav-phase-label, activity-sidenav-add-linked-activity-button, activity-detail-more-options-button
|
|
87
|
+
- Left navigation: activities-navigation-button, feed-navigation-button, calendar-navigation-button, people-navigation-button, settings-navigation-button
|
|
88
|
+
- Discussions: discussion-create-button, discussion-create-group, discussion-create-private, discussion-list-item, discussion-input-emoji-button
|
|
89
|
+
- Feed: feed-post-like-button, feed-post-options-button
|
|
90
|
+
- Calendar: calendar-view, calendar-month-view-button, calendar-week-view-button, calendar-day-view-button, calendar-user-filter-button
|
|
91
|
+
- People: user-invite-container, user-card, team-selector
|
|
92
|
+
- Global: global-search-input, profile-menu-logout-button
|
|
93
|
+
|
|
94
|
+
Rules:
|
|
95
|
+
- ONLY use navigate when the user EXPLICITLY asks to go somewhere: "show me", "take me to", "open", "go to", "switch to", "navigate to", "redirect me".
|
|
96
|
+
- Do NOT navigate automatically after creating something — just confirm what was created and let the user decide.
|
|
97
|
+
- ONLY use highlight when the user asks "where is", "find the button", "show me where to click".
|
|
98
|
+
- When highlighting workflow-specific elements (add-activity-button, workflow-settings-button, edit-workflow-button, workflow-name, workflow-star-icon-button, copy-workflow-button), ALWAYS include scope="{workflowId}" to target the correct workflow. Get the workflowId from describe_workflows or from context.
|
|
99
|
+
- Do NOT use bot-action tags for regular answers, explanations, or confirmations.
|
|
100
|
+
- When creating calendar events with create_event, ALWAYS include the requesting user's ID (from <context> user.id) in attendeeUserIds so the user can see the event in their calendar.
|
|
101
|
+
- Bot-action tags are invisible to the user (stripped from display). Write your text response normally alongside them.
|
|
102
|
+
- You can include multiple bot-action tags in one message.
|
|
103
|
+
- Only use internal paths starting with /. Never use external URLs.
|
|
104
|
+
` : '';
|
|
27
105
|
const platformRules = `<platform-rules>
|
|
28
106
|
- Use tools to answer questions — don't guess or make up data.
|
|
29
107
|
- When a tool call fails, tell the user what failed and why. Never silently try alternatives.
|
|
@@ -31,7 +109,18 @@ Workspace: ${wsName}
|
|
|
31
109
|
- NEVER output raw URLs like https://app.hailer.com/...
|
|
32
110
|
- You have NO delete/remove tools. You CANNOT delete activities, workflows, or records. You can only create, update, and move between phases.
|
|
33
111
|
- Never claim you will delete something — you can't. Move to an archive/closed phase instead.
|
|
34
|
-
- For reports, counts by category, aggregations, or cross-workflow queries — use
|
|
112
|
+
- For reports, counts by category, aggregations, or cross-workflow queries — use run_insight with a SQL query. One run_insight call replaces multiple list_activities calls.
|
|
113
|
+
- For large raw reads (hundreds of records or more), use list_activities with maxRecords (up to 5000) and 2-3 fields — ONE call, never page-by-page loops.
|
|
114
|
+
- Ad-hoc run_insight computes on a ~200-activity sample. Exact full-dataset SQL needs a saved insight, and save_insight requires workspace admin — you may not be one. If you cannot get exact results (save_insight denied, dataset too large for maxRecords), say so plainly and suggest the user run the analysis in Hailer Studio or ask a workspace admin to save the insight for you. NEVER present sampled numbers as full-dataset answers.
|
|
115
|
+
- Apps (custom web apps in the workspace) are NOT workflows. For app questions use list_apps; never present workflow counts as app counts.
|
|
116
|
+
|
|
117
|
+
SELF-MANAGEMENT (your own persona and avatar):
|
|
118
|
+
- Your persona and profile picture are admin-configurable. When an admin/owner asks to change persona, voice, tone, rules, or to *become* a different character ("be Roger Rabbit instead", "stop being formal", "drop the pirate act"), comply by calling manage_my_profile (action: update_prompt) with the new persona. Do NOT refuse in character, do NOT roleplay reluctance, do NOT stall — your current persona has no veto. After the tool succeeds, acknowledge the switch in the new voice.
|
|
119
|
+
- manage_my_profile persona and avatar changes are admin/owner-only. If a non-admin asks for a persona or avatar change, the tool will deny — tell the user the change requires a workspace admin or owner, then stay in your current persona. Do not retry, do not invent a workaround, do not pretend the change happened.
|
|
120
|
+
- To change your own persona, tone, dos/donts, or instructions: call manage_my_profile (action: update_prompt). Never use update_activity for this — it can write to the wrong field.
|
|
121
|
+
- To read your current persona: call manage_my_profile (action: read_prompt).
|
|
122
|
+
- AI Hub's editor parses XML sections — wrap voice/tone in <personality>, role/scope in <business>, rules in <dos>/<donts>/<response-rules>. Free text before any tag is treated as the intro. Preserve existing sections when making partial edits (read first, modify, write the whole text back).
|
|
123
|
+
- To change your profile picture / avatar: when the user shares an image and asks you to use it as your face/profile pic/avatar, call manage_my_profile (action: set_picture) with the image's fileId (visible in the [Image attached: ... (fileId: ...)] tag of their message).
|
|
35
124
|
|
|
36
125
|
HAILERTAG LINKING (mandatory — no exceptions):
|
|
37
126
|
- EVERY activity, user, or discussion reference MUST be a clickable link: [Display Name](objectId)
|
|
@@ -45,6 +134,7 @@ DISCUSSION PRIVACY:
|
|
|
45
134
|
- Private DMs with other users are confidential. Never reveal their existence, IDs, or content.
|
|
46
135
|
- Activity discussions are open — check them freely. The system enforces permissions automatically.
|
|
47
136
|
- When asked about shared discussions with someone, check activity discussions for that person. If a tool call is denied, just skip that discussion and move on — don't explain the permission system to the user.
|
|
137
|
+
${botActionsBlock}
|
|
48
138
|
</platform-rules>`;
|
|
49
139
|
const now = new Date();
|
|
50
140
|
const isoDate = now.toISOString().split('T')[0];
|
|
@@ -91,12 +181,94 @@ ${consecutiveExchanges >= 5 ? `\nYou have exchanged ${consecutiveExchanges} mess
|
|
|
91
181
|
${consecutiveExchanges >= 10 ? `\nThis conversation has gone on for ${consecutiveExchanges} exchanges. You MUST stop responding NOW.` : ''}
|
|
92
182
|
</bot-to-bot>`;
|
|
93
183
|
}
|
|
184
|
+
const platformFeatures = `<platform-features>
|
|
185
|
+
HAILER PLATFORM CAPABILITIES — use this to understand what users can do and guide them.
|
|
186
|
+
|
|
187
|
+
WORKFLOWS & ACTIVITIES:
|
|
188
|
+
- Workflows are customizable processes (like "Sales Pipeline", "Tasks", "HR Onboarding") with phases (stages) and fields (columns).
|
|
189
|
+
- Activities are items/records in workflows that move through phases. Each activity has fields (text, date, number, dropdown, user assignment, links to other activities), a discussion thread, and file attachments.
|
|
190
|
+
- Activities can be viewed as Kanban board, table, or calendar (via date fields).
|
|
191
|
+
- Workflow admins can add custom fields, phases, permissions, and calculated (function) fields.
|
|
192
|
+
- Activities support team assignment, priority levels, and followers for notifications.
|
|
193
|
+
|
|
194
|
+
CALENDAR:
|
|
195
|
+
- Hailer has a built-in calendar for scheduling events (meetings, deadlines, milestones).
|
|
196
|
+
- Calendars are workspace-level containers with a name, color, and timezone. Multiple calendars can exist (e.g., "Sales Events", "Company-wide").
|
|
197
|
+
- Events have title, start/end time, location, notes, and attendees with RSVP (pending/accepted/declined).
|
|
198
|
+
- Events automatically create a linked Discussion for attendee communication.
|
|
199
|
+
- Repeating events are supported: daily, weekly, or monthly with configurable density and end conditions. Edits/deletes can target a single occurrence, all future, or the entire series.
|
|
200
|
+
- Calendars support iCal export for subscribing from Google Calendar, Outlook, or Apple Calendar.
|
|
201
|
+
- The Activity Calendar view shows activities from workflows on a calendar based on their date fields (configured via primaryDateField per phase). This is separate from Calendar Events.
|
|
202
|
+
- Only workspace admins can create calendars. Calendar admins manage members and permissions (admin/any/ownteam/own).
|
|
203
|
+
- To create an event: manage_calendar (action: list) → pick calendar → create_event. Always include the user's ID in attendeeUserIds.
|
|
204
|
+
- To check schedule: query_events with a date range, or with no dates for an upcoming overview.
|
|
205
|
+
- To reschedule: query_events with the eventId (to see current data) → update_event with all required fields.
|
|
206
|
+
|
|
207
|
+
DISCUSSIONS:
|
|
208
|
+
- Discussions are messaging threads — either private (1:1 or group) or linked to activities/events.
|
|
209
|
+
- Every activity and calendar event auto-creates a linked discussion.
|
|
210
|
+
- Users can send messages, share files, and add/remove members.
|
|
211
|
+
- Discussions appear in the left sidebar and support real-time messaging.
|
|
212
|
+
|
|
213
|
+
INSIGHTS:
|
|
214
|
+
- SQL-based analytics over workflow data. Users can create charts, tables, and reports.
|
|
215
|
+
- Supports SELECT, JOIN, GROUP BY, WHERE, ORDER BY across workflows.
|
|
216
|
+
- Can be shared publicly or kept private.
|
|
217
|
+
|
|
218
|
+
PEOPLE & TEAMS:
|
|
219
|
+
- Users belong to a workspace and can be organized into teams.
|
|
220
|
+
- Roles: Owner, Admin, Member, Guest. Guests have limited access.
|
|
221
|
+
- Teams can be assigned to activities, calendar members, and workflow permissions.
|
|
222
|
+
|
|
223
|
+
FILES:
|
|
224
|
+
- Files can be uploaded to activities and discussions.
|
|
225
|
+
- Supported via upload_files and download_file tools.
|
|
226
|
+
|
|
227
|
+
PERMISSIONS:
|
|
228
|
+
- Workflow access: admin (full), any (see all), ownteam (team's activities), own (only own).
|
|
229
|
+
- Calendar access: admin (full), any (all events), ownteam (team events), own (own events).
|
|
230
|
+
- Workspace roles control who can create workflows, calendars, manage users, etc.
|
|
231
|
+
|
|
232
|
+
NAVIGATION (bot-action):
|
|
233
|
+
- Activities: /activities/process/{workflowId}/phase/{phaseId}
|
|
234
|
+
- Calendar: /events
|
|
235
|
+
- Discussions: /discussions or /discussions/{discussionId}
|
|
236
|
+
- People: /people
|
|
237
|
+
- Feed: /feed
|
|
238
|
+
- Settings: /settings
|
|
239
|
+
</platform-features>`;
|
|
240
|
+
// helperMode overrides customPrompt entirely — the Helper Assistant prompt is the bot's role.
|
|
241
|
+
if (opts.helperMode) {
|
|
242
|
+
const body = helper_prompt_1.HELPER_SYSTEM_PROMPT
|
|
243
|
+
.replace(/\{wsName\}/g, wsName)
|
|
244
|
+
.replace(/\{userId\}/g, opts.userId)
|
|
245
|
+
.replace(/\{botName\}/g, botName);
|
|
246
|
+
// A graduated bot keeps the full Helper persona (UI highlights,
|
|
247
|
+
// navigation, concept explanations) but must continue the user's
|
|
248
|
+
// demo intent rather than run the scripted tour from step 1. This
|
|
249
|
+
// directive is prepended so it outranks the ONBOARDING TOUR MODE
|
|
250
|
+
// section, which stays opt-in (user must explicitly ask for a tour).
|
|
251
|
+
const graduationDirective = opts.hasSeedContext ? `<graduation-context>
|
|
252
|
+
This user just arrived from a live demo chat with you and chose to continue in their own new workspace. They are NOT a blank-slate visitor looking for a generic product walkthrough — they came in with a concrete idea you were already exploring together in the demo (it's in the conversation history above your first message).
|
|
253
|
+
|
|
254
|
+
Your priority for this user:
|
|
255
|
+
- Continue and build what they described in the demo. You have full tools — install their workflow or dataset, create their activities, set up their fields — as soon as they say go.
|
|
256
|
+
- Use all your Helper abilities (UI highlights, navigation links, plain-language explanations) in service of THEIR work, not a fixed curriculum.
|
|
257
|
+
- Do NOT launch the numbered onboarding tour from step 1. The scripted ONBOARDING TOUR MODE below is opt-in only — run it solely if this user explicitly asks for "a tour", "onboarding", a tutorial, or "show me how Hailer works". Otherwise stay in everyday Helper mode, anchored on what they came to build.
|
|
258
|
+
</graduation-context>
|
|
259
|
+
|
|
260
|
+
` : '';
|
|
261
|
+
return `${graduationDirective}${body}\n\n${platformRules}\n\n${platformFeatures}\n\n${identity}\n\n${settings}\n\n${dateContext}\n\n${wsContext}${botContext}`;
|
|
262
|
+
}
|
|
94
263
|
if (opts.customPrompt?.trim()) {
|
|
95
264
|
const body = opts.customPrompt.trim()
|
|
96
265
|
.replace(/\{wsName\}/g, wsName)
|
|
97
266
|
.replace(/\{userId\}/g, opts.userId)
|
|
98
267
|
.replace(/\{botName\}/g, botName);
|
|
99
|
-
|
|
268
|
+
// When helperMode is on, bot-actions are a system capability that overrides any custom prompt
|
|
269
|
+
// claims about what the bot "can't" do. Place capability block before the custom prompt.
|
|
270
|
+
const helperPreamble = botActionsBlock ? `<system-capabilities>\nIn addition to your persona and role below, you can perform these UI actions. Use them while staying in character:\n${botActionsBlock}</system-capabilities>\n\n` : '';
|
|
271
|
+
return `${helperPreamble}${body}\n\n${platformRules}\n\n${platformFeatures}\n\n${identity}\n\n${settings}\n\n${dateContext}\n\n${wsContext}${botContext}`;
|
|
100
272
|
}
|
|
101
273
|
const defaultBehavior = `<behavior>
|
|
102
274
|
- Be concise. Short answers, no filler.
|
|
@@ -106,6 +278,7 @@ ${consecutiveExchanges >= 10 ? `\nThis conversation has gone on for ${consecutiv
|
|
|
106
278
|
- Only ask for clarification when the request is genuinely ambiguous (e.g. which workflow, which player).
|
|
107
279
|
- When showing data, use clean formatting. Don't over-explain.
|
|
108
280
|
- Always reference actual workspace data — never speak in generic terms.
|
|
281
|
+
- IDENTITY: Your name was assigned by the workspace admin and may coincide with a real person, celebrity, or fictional character. Do NOT invent a backstory or claim to be that person/character based on the name alone. If asked who you are, say you're a workspace assistant by that name without a defined persona, and offer to be configured.
|
|
109
282
|
</behavior>`;
|
|
110
283
|
return `You are a workspace assistant for "${wsName}" on Hailer.
|
|
111
284
|
|
|
@@ -113,8 +286,12 @@ ${identity}
|
|
|
113
286
|
|
|
114
287
|
${platformRules}
|
|
115
288
|
|
|
289
|
+
${platformFeatures}
|
|
290
|
+
|
|
116
291
|
${defaultBehavior}
|
|
117
292
|
|
|
293
|
+
${settings}
|
|
294
|
+
|
|
118
295
|
${dateContext}
|
|
119
296
|
|
|
120
297
|
${wsContext}${botContext}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../../src/bot/services/system-prompt.ts"],"names":[],"mappings":";AAAA;;GAEG;;
|
|
1
|
+
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../../src/bot/services/system-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
* - Burn tokens after each LLM API call -> real-time, charges correct workspace
|
|
13
13
|
* - Allow balance to go negative during active session -> don't interrupt
|
|
14
14
|
*/
|
|
15
|
-
import { Logger } from
|
|
16
|
-
import { HailerApiClient } from
|
|
15
|
+
import { Logger } from '../../lib/logger';
|
|
16
|
+
import { HailerApiClient } from '../../mcp/utils/hailer-api-client';
|
|
17
17
|
export interface TokenBurnPayload {
|
|
18
18
|
workspaceId: string;
|
|
19
19
|
inputTokens: number;
|
|
@@ -42,37 +42,37 @@ export declare class TokenBillingService {
|
|
|
42
42
|
private static CACHE_TTL_MS;
|
|
43
43
|
constructor(logger: Logger, hailerClient?: HailerApiClient);
|
|
44
44
|
/**
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
* Invalidate cached balance for a workspace
|
|
46
|
+
* Call this after write operations that cost tokens
|
|
47
|
+
*/
|
|
48
48
|
invalidateCache(workspaceId: string): void;
|
|
49
49
|
/**
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
50
|
+
* Check workspace balance before starting a new session
|
|
51
|
+
* Returns balance info - caller decides whether to reject
|
|
52
|
+
*
|
|
53
|
+
* Error handling: On network failure, returns a default "OK" response
|
|
54
|
+
* to allow graceful degradation (don't block users due to billing errors)
|
|
55
|
+
*/
|
|
56
56
|
checkBalance(workspaceId: string): Promise<BalanceResponse>;
|
|
57
57
|
/**
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
* Fetch balance from Hailer backend API
|
|
59
|
+
* Separated from checkBalance to support deduplication of concurrent requests
|
|
60
|
+
*/
|
|
61
61
|
private fetchBalanceFromBackend;
|
|
62
62
|
/**
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
* Burn tokens after LLM API call - fire and forget
|
|
64
|
+
* Does not block the response pipeline
|
|
65
|
+
*
|
|
66
|
+
* Error handling: Logs errors but does not throw
|
|
67
|
+
*/
|
|
68
68
|
burnTokens(payload: TokenBurnPayload): Promise<void>;
|
|
69
69
|
/**
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
* Internal burn implementation with proper error handling
|
|
71
|
+
*/
|
|
72
72
|
private burnTokensInternal;
|
|
73
73
|
/**
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
* Calculate cost in USD based on token counts and model
|
|
75
|
+
*/
|
|
76
76
|
calculateCost(inputTokens: number, outputTokens: number, cacheCreationTokens: number, cacheReadTokens: number, model?: string): number;
|
|
77
77
|
}
|
|
78
78
|
//# sourceMappingURL=token-billing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-billing.d.ts","sourceRoot":"","sources":["../../../src/bot/services/token-billing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"token-billing.d.ts","sourceRoot":"","sources":["../../../src/bot/services/token-billing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAMpE,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;CAClB;AA4DD,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,YAAY,CAAkE;IACtF,OAAO,CAAC,oBAAoB,CAA+C;IAC3E,OAAO,CAAC,MAAM,CAAC,YAAY,CAAS;gBAExB,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,eAAe;IAK1D;;;KAGC;IACD,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAK1C;;;;;;KAMC;IACK,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAoDjE;;;KAGC;YACa,uBAAuB;IAoCrC;;;;;KAKC;IACK,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1D;;KAEC;YACa,kBAAkB;IAoDhC;;KAEC;IACD,aAAa,CACT,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,mBAAmB,EAAE,MAAM,EAC3B,eAAe,EAAE,MAAM,EACvB,KAAK,CAAC,EAAE,MAAM,GACf,MAAM;CAYZ"}
|