@hailer/mcp 1.2.1 → 2.0.0-beta.3
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/app-squad.md +16 -110
- 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 +105 -151
- package/.claude/skills/hailer-app-builder/SKILL.md +2 -2
- package/.claude/skills/hailer-ui-guide/SKILL.md +265 -0
- package/.env.example +50 -1
- package/CLAUDE.md +138 -10
- 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 +59 -16
- package/dist/bot/bot.d.ts.map +1 -1
- package/dist/bot/bot.js +889 -142
- 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 +2 -2
- package/dist/bot/services/bot-permissions.d.ts.map +1 -1
- package/dist/bot/services/bot-permissions.js +28 -9
- 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 +38 -38
- package/dist/bot/services/message-formatter.d.ts.map +1 -1
- package/dist/bot/services/message-formatter.js +81 -74
- 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 +179 -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.map +1 -1
- package/dist/cli.js +54 -0
- 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 +61 -27
- 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.map +1 -1
- package/dist/mcp/tools/activity.js +398 -198
- 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 +176 -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 -930
- 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 +23 -3
- package/dist/mcp/tools/discussion.d.ts.map +1 -1
- package/dist/mcp/tools/discussion.js +417 -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 +7 -5
- package/dist/mcp/tools/insight.d.ts.map +1 -1
- package/dist/mcp/tools/insight.js +419 -477
- 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 +2 -7
- package/dist/mcp/tools/workflow.d.ts.map +1 -1
- package/dist/mcp/tools/workflow.js +817 -850
- 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.map +1 -1
- package/dist/mcp/utils/data-transformers.js +8 -4
- 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 +103 -101
- 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 +1 -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 +360 -36
- 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 +179 -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 +1339 -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 +428 -0
- package/dist/public-chat/system-prompt.js.map +1 -0
- package/package.json +14 -7
- package/scripts/build-public-chat-knowledge.py +101 -0
- package/scripts/probe-mcp-pricing.ts +52 -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/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
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One-off probe: which model names exist (enabled) in prod mcpPricing?
|
|
3
|
+
* Calls v3.mcp.deductTokens with tokenAmount 0 — deducts ceil(0*rate) = 0,
|
|
4
|
+
* so balance is untouched; success only proves the pricing row exists.
|
|
5
|
+
* Delete after use.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { getAdminApiKey } from '../src/mcp/workspace-admin-store';
|
|
9
|
+
import { createHailerClientByApiKey } from '../src/mcp/hailer-clients';
|
|
10
|
+
|
|
11
|
+
const WORKSPACE_ID = '6901c67b4e80fecb6fd7b38a'; // mcptest
|
|
12
|
+
const CANDIDATES = [
|
|
13
|
+
'claude-haiku',
|
|
14
|
+
'claude-sonnet',
|
|
15
|
+
'claude-haiku-4-5',
|
|
16
|
+
'claude-sonnet-4-6',
|
|
17
|
+
'claude-haiku-4-5-20251001',
|
|
18
|
+
'claude-sonnet-4-5-20250929',
|
|
19
|
+
];
|
|
20
|
+
|
|
21
|
+
async function main(): Promise<void> {
|
|
22
|
+
const apiKey = getAdminApiKey(WORKSPACE_ID);
|
|
23
|
+
if (!apiKey) {
|
|
24
|
+
console.error('No stored admin API key for workspace', WORKSPACE_ID);
|
|
25
|
+
process.exit(2);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const client = await createHailerClientByApiKey(apiKey);
|
|
29
|
+
|
|
30
|
+
for (const model of CANDIDATES) {
|
|
31
|
+
try {
|
|
32
|
+
const result = await client.socket.request('v3.mcp.deductTokens', [{
|
|
33
|
+
mcpToken: 'hL9xK2mNpQrS4tVwY6zA8bCD',
|
|
34
|
+
workspaceId: WORKSPACE_ID,
|
|
35
|
+
tokenAmount: 0,
|
|
36
|
+
model,
|
|
37
|
+
meta: { operation: 'pricing-probe' },
|
|
38
|
+
}]) as { newBalance?: number } | undefined;
|
|
39
|
+
console.log(`ROW EXISTS ${model} (balance after -0 deduct: ${result?.newBalance})`);
|
|
40
|
+
} catch (error) {
|
|
41
|
+
const err = error as { msg?: string; code?: number };
|
|
42
|
+
console.log(`REJECTED ${model} (${err?.msg ?? String(error)})`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
process.exit(0);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
main().catch((error) => {
|
|
50
|
+
console.error(error);
|
|
51
|
+
process.exit(1);
|
|
52
|
+
});
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Live-LLM smoke test for the public-chat bot. Fires a small set of canned
|
|
3
|
+
* prompts at the real model with the production system prompt and reports
|
|
4
|
+
* which bot-action types showed up in the responses.
|
|
5
|
+
*
|
|
6
|
+
* ANTHROPIC_API_KEY=... npx tsx scripts/smoke-public-chat-live.ts
|
|
7
|
+
*
|
|
8
|
+
* The script is OPTIONAL — it costs real API tokens and is non-deterministic.
|
|
9
|
+
* Run it before deploying significant prompt or corpus changes. The regular
|
|
10
|
+
* `smoke-public-chat.ts` covers everything that doesn't need a live model.
|
|
11
|
+
*
|
|
12
|
+
* The script does NOT exit non-zero on a missing action — the LLM is allowed
|
|
13
|
+
* to be cautious. It exits non-zero only on transport errors. Treat the report
|
|
14
|
+
* as a coverage signal: if all five action types reliably surface, the protocol
|
|
15
|
+
* is being honoured. If one or more are repeatedly silent across runs, the
|
|
16
|
+
* persona is probably under-specifying it or the model is dropping it.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
import Anthropic from '@anthropic-ai/sdk';
|
|
20
|
+
import { buildPublicChatSystem } from '../src/public-chat/system-prompt';
|
|
21
|
+
|
|
22
|
+
// Minimal extractor — mirrors the frontend's bot-action-parser regex pair
|
|
23
|
+
// (BOT_ACTION_REGEX and INVOKE_FORM_REGEX from
|
|
24
|
+
// hailer-frontend-2/.../bot-action-parser.ts). Inlined to keep this script
|
|
25
|
+
// repo-local with no extra deps.
|
|
26
|
+
const ACTION_TYPES = '(navigate|highlight|point|presentation|slide)';
|
|
27
|
+
const TAG_REGEXES = [
|
|
28
|
+
new RegExp(`<bot-action\\s+type="${ACTION_TYPES}"\\s+target="([^"]+)"`, 'g'),
|
|
29
|
+
new RegExp(`<invoke\\s+name="bot_action"\\s+type="${ACTION_TYPES}"\\s+target="([^"]+)"`, 'g'),
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
function extractActionTypes(text: string): Set<string> {
|
|
33
|
+
const found = new Set<string>();
|
|
34
|
+
for (const re of TAG_REGEXES) {
|
|
35
|
+
re.lastIndex = 0;
|
|
36
|
+
let m: RegExpExecArray | null;
|
|
37
|
+
while ((m = re.exec(text)) !== null) {
|
|
38
|
+
found.add(m[1]!);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return found;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const MODEL = 'claude-haiku-4-5-20251001';
|
|
45
|
+
const MAX_TOKENS = 600;
|
|
46
|
+
|
|
47
|
+
interface Probe {
|
|
48
|
+
label: string;
|
|
49
|
+
prompt: string;
|
|
50
|
+
/** Action types we'd expect to see at least one of in the reply. */
|
|
51
|
+
expect: Array<'navigate' | 'highlight' | 'point' | 'presentation' | 'slide'>;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const PROBES: Probe[] = [
|
|
55
|
+
{
|
|
56
|
+
label: 'tour invitation triggers a guided tour',
|
|
57
|
+
prompt: "I'm a developer evaluating Hailer for our team. Give me a quick walk-through of how this would feel.",
|
|
58
|
+
expect: ['navigate', 'point'],
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
label: 'explicit "show me X" triggers navigate or highlight',
|
|
62
|
+
prompt: 'Where do I see the calendar?',
|
|
63
|
+
expect: ['navigate', 'highlight'],
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
label: 'overview ask triggers the presentation',
|
|
67
|
+
prompt: "What is Hailer? Give me the elevator pitch — I want the big picture.",
|
|
68
|
+
expect: ['presentation'],
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
label: 'concept question triggers an inline slide chip',
|
|
72
|
+
prompt: 'Can you explain what a workflow is in Hailer?',
|
|
73
|
+
expect: ['slide'],
|
|
74
|
+
},
|
|
75
|
+
];
|
|
76
|
+
|
|
77
|
+
async function main(): Promise<void> {
|
|
78
|
+
const apiKey = process.env['ANTHROPIC_API_KEY'];
|
|
79
|
+
if (!apiKey) {
|
|
80
|
+
console.error('ANTHROPIC_API_KEY env var is required for the live smoke.');
|
|
81
|
+
process.exit(2);
|
|
82
|
+
}
|
|
83
|
+
const anthropic = new Anthropic({ apiKey });
|
|
84
|
+
|
|
85
|
+
const system = buildPublicChatSystem();
|
|
86
|
+
|
|
87
|
+
let probesRun = 0;
|
|
88
|
+
let expectedActionsSatisfied = 0;
|
|
89
|
+
let expectedActionsTotal = 0;
|
|
90
|
+
const misses: Array<{ probe: string; missing: string[] }> = [];
|
|
91
|
+
|
|
92
|
+
for (const probe of PROBES) {
|
|
93
|
+
probesRun += 1;
|
|
94
|
+
process.stdout.write(`\n• ${probe.label}\n prompt: ${probe.prompt}\n`);
|
|
95
|
+
let fullText = '';
|
|
96
|
+
try {
|
|
97
|
+
const response = await anthropic.messages.create({
|
|
98
|
+
model: MODEL,
|
|
99
|
+
max_tokens: MAX_TOKENS,
|
|
100
|
+
temperature: 0.3,
|
|
101
|
+
system,
|
|
102
|
+
messages: [{ role: 'user', content: probe.prompt }],
|
|
103
|
+
});
|
|
104
|
+
for (const block of response.content) {
|
|
105
|
+
if (block.type === 'text') fullText += block.text;
|
|
106
|
+
}
|
|
107
|
+
} catch (err) {
|
|
108
|
+
console.error(` TRANSPORT ERROR: ${err instanceof Error ? err.message : String(err)}`);
|
|
109
|
+
process.exit(1);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
const surfaced = extractActionTypes(fullText);
|
|
113
|
+
|
|
114
|
+
const missing: string[] = [];
|
|
115
|
+
for (const exp of probe.expect) {
|
|
116
|
+
expectedActionsTotal += 1;
|
|
117
|
+
if (surfaced.has(exp)) {
|
|
118
|
+
expectedActionsSatisfied += 1;
|
|
119
|
+
} else {
|
|
120
|
+
missing.push(exp);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
console.log(` surfaced: ${Array.from(surfaced).join(', ') || '(none)'}`);
|
|
124
|
+
console.log(` expected: ${probe.expect.join(', ')}`);
|
|
125
|
+
if (missing.length > 0) {
|
|
126
|
+
misses.push({ probe: probe.label, missing });
|
|
127
|
+
console.log(` MISSING: ${missing.join(', ')}`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
console.log(
|
|
132
|
+
`\n${expectedActionsSatisfied}/${expectedActionsTotal} expected action types surfaced across ${probesRun} probes`
|
|
133
|
+
);
|
|
134
|
+
if (misses.length > 0) {
|
|
135
|
+
console.log('\nMisses worth investigating if they repeat across runs:');
|
|
136
|
+
for (const m of misses) {
|
|
137
|
+
console.log(` - "${m.probe}" missing: ${m.missing.join(', ')}`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// Don't fail the run on missing actions — the LLM may legitimately reply in
|
|
141
|
+
// plain prose. Transport errors above are the only hard failure.
|
|
142
|
+
process.exit(0);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
main().catch((err) => {
|
|
146
|
+
console.error(err);
|
|
147
|
+
process.exit(1);
|
|
148
|
+
});
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Smoke test for the public-chat module — exercises the pieces that don't
|
|
3
|
+
* need a live Anthropic API key.
|
|
4
|
+
*
|
|
5
|
+
* npx tsx scripts/smoke-public-chat.ts
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import assert from 'node:assert/strict';
|
|
9
|
+
import { buildPublicChatSystem, KNOWLEDGE_BYTES } from '../src/public-chat/system-prompt';
|
|
10
|
+
import { checkRate, _resetForTests } from '../src/public-chat/rate-limit';
|
|
11
|
+
import { HAILER_KNOWLEDGE_CORPUS } from '../src/public-chat/knowledge';
|
|
12
|
+
|
|
13
|
+
let ran = 0;
|
|
14
|
+
let failed = 0;
|
|
15
|
+
|
|
16
|
+
function check(name: string, fn: () => void): void {
|
|
17
|
+
ran += 1;
|
|
18
|
+
try {
|
|
19
|
+
fn();
|
|
20
|
+
console.log(` ok ${name}`);
|
|
21
|
+
} catch (err) {
|
|
22
|
+
failed += 1;
|
|
23
|
+
console.log(` FAIL ${name}`);
|
|
24
|
+
console.error(err);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
console.log('public-chat smoke');
|
|
29
|
+
|
|
30
|
+
console.log('\nknowledge corpus:');
|
|
31
|
+
check('compiled and non-trivial', () => {
|
|
32
|
+
assert.ok(HAILER_KNOWLEDGE_CORPUS.length > 10_000, 'too small');
|
|
33
|
+
assert.ok(HAILER_KNOWLEDGE_CORPUS.length < 200_000, 'too large');
|
|
34
|
+
assert.equal(KNOWLEDGE_BYTES, HAILER_KNOWLEDGE_CORPUS.length);
|
|
35
|
+
});
|
|
36
|
+
check('mentions all five top-level topics', () => {
|
|
37
|
+
const lower = HAILER_KNOWLEDGE_CORPUS.toLowerCase();
|
|
38
|
+
for (const term of ['overview', 'ui guide', 'mcp server', 'apps & marketplace', 'getting started']) {
|
|
39
|
+
assert.ok(lower.includes(term), `missing: ${term}`);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
check('omits internal infra/compliance bait words', () => {
|
|
43
|
+
const lower = HAILER_KNOWLEDGE_CORPUS.toLowerCase();
|
|
44
|
+
for (const banned of ['client_configs={', 'infra/', 'hailer-frontend-2/']) {
|
|
45
|
+
assert.ok(!lower.includes(banned), `should not contain: ${banned}`);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
console.log('\nbuildPublicChatSystem:');
|
|
50
|
+
check('returns two cached text blocks', () => {
|
|
51
|
+
const blocks = buildPublicChatSystem();
|
|
52
|
+
assert.equal(blocks.length, 2);
|
|
53
|
+
for (const block of blocks) {
|
|
54
|
+
assert.equal(block.type, 'text');
|
|
55
|
+
assert.deepEqual(block.cache_control, { type: 'ephemeral' });
|
|
56
|
+
assert.ok(block.text.length > 0);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
check('persona block describes role and bot-action protocol', () => {
|
|
60
|
+
const [persona] = buildPublicChatSystem();
|
|
61
|
+
assert.match(persona.text, /Hailer Helper/i);
|
|
62
|
+
assert.match(persona.text, /bot-action/i);
|
|
63
|
+
assert.match(persona.text, /navigate/i);
|
|
64
|
+
assert.match(persona.text, /highlight/i);
|
|
65
|
+
});
|
|
66
|
+
check('persona documents all five bot-action types and shows their canonical form', () => {
|
|
67
|
+
// If any of these regress (someone deletes a section, renames a type, etc.)
|
|
68
|
+
// the model loses the affordance and the demo silently degrades. Cheap to
|
|
69
|
+
// assert on every smoke run.
|
|
70
|
+
const [persona] = buildPublicChatSystem();
|
|
71
|
+
for (const type of ['navigate', 'highlight', 'point', 'presentation', 'slide']) {
|
|
72
|
+
const re = new RegExp(`<bot-action\\s+type="${type}"`, 'i');
|
|
73
|
+
assert.match(persona.text, re, `persona missing canonical form for type="${type}"`);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
check('persona explicitly acknowledges the always-visible Continue button', () => {
|
|
77
|
+
// Was once the other way around — persona told the bot to "surface" the CTA
|
|
78
|
+
// even though the button is always visible. Lock the corrected wording in.
|
|
79
|
+
const [persona] = buildPublicChatSystem();
|
|
80
|
+
assert.match(persona.text, /persistently visible|always visible/i);
|
|
81
|
+
});
|
|
82
|
+
check('knowledge block carries the full corpus', () => {
|
|
83
|
+
const [, knowledge] = buildPublicChatSystem();
|
|
84
|
+
assert.ok(knowledge.text.includes(HAILER_KNOWLEDGE_CORPUS));
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
console.log('\ncheckRate:');
|
|
88
|
+
_resetForTests();
|
|
89
|
+
check('allows the first 30 requests from a single IP', () => {
|
|
90
|
+
for (let i = 0; i < 30; i++) {
|
|
91
|
+
const r = checkRate('1.2.3.4');
|
|
92
|
+
assert.equal(r.ok, true, `request ${i + 1} should be allowed`);
|
|
93
|
+
assert.equal(r.remaining, 30 - 1 - i);
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
check('rejects the 31st request with retry-after', () => {
|
|
97
|
+
const blocked = checkRate('1.2.3.4');
|
|
98
|
+
assert.equal(blocked.ok, false);
|
|
99
|
+
assert.equal(blocked.remaining, 0);
|
|
100
|
+
assert.ok((blocked.retryAfterSec ?? 0) > 0);
|
|
101
|
+
});
|
|
102
|
+
_resetForTests();
|
|
103
|
+
check('keeps independent counters per IP', () => {
|
|
104
|
+
for (let i = 0; i < 30; i++) checkRate('9.9.9.9');
|
|
105
|
+
assert.equal(checkRate('9.9.9.9').ok, false);
|
|
106
|
+
assert.equal(checkRate('1.1.1.1').ok, true);
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
console.log(`\n${ran - failed}/${ran} passed${failed === 0 ? '' : `, ${failed} failed`}`);
|
|
110
|
+
process.exit(failed === 0 ? 0 : 1);
|
package/.claude/CLAUDE.md
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
# Hailer SDK + MCP Project
|
|
2
|
-
|
|
3
|
-
## The One Rule
|
|
4
|
-
|
|
5
|
-
**If it can be done locally, do it locally. MCP tools are ONLY for things that require a server call.**
|
|
6
|
-
|
|
7
|
-
This project has `workspace/` files managed by `@hailer/sdk`. These files ARE the source of truth for all workflow configuration. The MCP server provides tools for runtime operations that require talking to Hailer's API.
|
|
8
|
-
|
|
9
|
-
## What Goes Where
|
|
10
|
-
|
|
11
|
-
| Need | Do this | NEVER this |
|
|
12
|
-
|------|---------|------------|
|
|
13
|
-
| **Find workflow/field/phase IDs** | Read `workspace/enums.ts` | ~~`list_workflows_minimal`~~, ~~`get_workflow_schema`~~, ~~`list_workflow_phases`~~ |
|
|
14
|
-
| **See field types, labels, options** | Read `workspace/<Name>_<id>/fields.ts` | ~~`get_workflow_schema`~~ |
|
|
15
|
-
| **See phases** | Read `workspace/<Name>_<id>/phases.ts` | ~~`list_workflow_phases`~~ |
|
|
16
|
-
| **See all workflows** | Read `workspace/workflows.ts` | ~~`list_workflows`~~ |
|
|
17
|
-
| **Create/modify fields** | Edit `fields.ts` → `npm run fields-push:force` | ~~`update_workflow_field`~~ |
|
|
18
|
-
| **Create/modify phases** | Edit `phases.ts` → `npm run phases-push:force` | ~~`update_workflow_phase`~~ |
|
|
19
|
-
| **Create/modify workflows** | Edit `workflows.ts` → `npm run workflows-sync:force` | ~~`install_workflow`~~ |
|
|
20
|
-
| **Create/modify teams** | Edit `teams.ts` → `npm run teams-push:force` | — |
|
|
21
|
-
| **Create/modify groups** | Edit `groups.ts` → `npm run groups-push:force` | — |
|
|
22
|
-
| **Create activities** | MCP `create_activity` | — |
|
|
23
|
-
| **List/read activities** | MCP `list_activities`, `show_activity_by_id` | — |
|
|
24
|
-
| **Update activities** | MCP `update_activity` | — |
|
|
25
|
-
| **Query data** | MCP `preview_insight`, `create_insight` | — |
|
|
26
|
-
| **Discussions** | MCP discussion tools | — |
|
|
27
|
-
| **Activity counts** | MCP `core_init` (once per session) | — |
|
|
28
|
-
| **Scaffold app** | MCP `scaffold_hailer_app` | — |
|
|
29
|
-
| **Publish app** | MCP `publish_hailer_app` | — |
|
|
30
|
-
|
|
31
|
-
**If you're about to call an MCP tool, ask yourself: "Is this data in workspace/ files?" If yes, read the file instead.**
|
|
32
|
-
|
|
33
|
-
## How to Read workspace/ Files
|
|
34
|
-
|
|
35
|
-
**Never read workspace/ files in main context** — they're large and fill context permanently.
|
|
36
|
-
|
|
37
|
-
1. Spawn a **haiku sub-agent** to read the files
|
|
38
|
-
2. Have it extract what you need (IDs, field types, phase names)
|
|
39
|
-
3. It returns a short summary
|
|
40
|
-
4. Use that summary for MCP runtime calls
|
|
41
|
-
|
|
42
|
-
```
|
|
43
|
-
Pattern: haiku reads workspace/ → you get IDs → MCP create_activity/list_activities
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## Sub-Agent Rules
|
|
47
|
-
|
|
48
|
-
- **Haiku:** Read files, search code, data lookups, reviews
|
|
49
|
-
- **Sonnet:** Write code, build features, complex edits
|
|
50
|
-
- **You (Opus):** Orchestrate, synthesize results, make decisions
|
|
51
|
-
- **Skills:** Load in sub-agents only, never in main context
|
|
52
|
-
- If a task takes more than ~20 lines of code, delegate to sonnet
|
|
53
|
-
|
|
54
|
-
## workspace/ Structure
|
|
55
|
-
|
|
56
|
-
```
|
|
57
|
-
workspace/
|
|
58
|
-
├── enums.ts # ALL IDs — WorkflowIds, FieldIds, PhaseIds, etc.
|
|
59
|
-
├── workflows.ts # Workflow registry
|
|
60
|
-
├── teams.ts # Team definitions
|
|
61
|
-
├── groups.ts # Group definitions
|
|
62
|
-
├── insights.ts # Insight definitions
|
|
63
|
-
└── <WorkflowName>_<id>/
|
|
64
|
-
├── fields.ts # Field definitions (type, label, key, options, required)
|
|
65
|
-
├── phases.ts # Phase definitions (name, key, isInitial, isEndpoint)
|
|
66
|
-
├── main.ts # Workflow config
|
|
67
|
-
└── functions/ # Function field code (if any)
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
**Refresh:** `npm run pull` syncs server → local files
|
|
71
|
-
|
|
72
|
-
## SDK Push Commands (all use `:force` to avoid interactive prompts)
|
|
73
|
-
|
|
74
|
-
| Command | What it does |
|
|
75
|
-
|---------|-------------|
|
|
76
|
-
| `npm run push:force` | Push everything |
|
|
77
|
-
| `npm run fields-push:force` | Push field changes only |
|
|
78
|
-
| `npm run phases-push:force` | Push phase changes only |
|
|
79
|
-
| `npm run workflows-sync:force` | Sync workflow registry (create/delete) |
|
|
80
|
-
| `npm run teams-push:force` | Push team changes |
|
|
81
|
-
| `npm run groups-push:force` | Push group changes |
|
|
82
|
-
| `npm run pull` | Pull latest from Hailer → local files |
|
|
83
|
-
|
|
84
|
-
## SDK Gotchas
|
|
85
|
-
|
|
86
|
-
| Gotcha | Correct | Wrong |
|
|
87
|
-
|--------|---------|-------|
|
|
88
|
-
| New fields | Omit `_id` — server assigns it | Adding `_id` manually |
|
|
89
|
-
| After push | Always `npm run pull` to get server-assigned IDs | Assuming local IDs are final |
|
|
90
|
-
| Function fields | `npm run fields-push:force` (non-force skips functionVariables) | `npm run fields-push` |
|
|
91
|
-
| Enum imports | Verify after pull — identical hex suffixes can collide | Trusting auto-generated imports |
|
|
92
|
-
| `linkedfrom` fields | Don't work in isolated-vm — use `<` backlink dependency | Using in function fields |
|
|
93
|
-
| Function field code | Plain JavaScript only | TypeScript syntax |
|
|
94
|
-
| Phase transitions | Exact string match on phase name | Guessed names |
|
|
95
|
-
| Field values (MCP) | Date: Unix ms (`1730937600000`), Dropdown: exact string, ActivityLink: string ID | ISO dates, arrays, objects |
|
|
96
|
-
|
|
97
|
-
## App Development
|
|
98
|
-
|
|
99
|
-
| Step | How |
|
|
100
|
-
|------|-----|
|
|
101
|
-
| Scaffold | MCP `scaffold_hailer_app` — never copy apps |
|
|
102
|
-
| Publish | MCP `publish_hailer_app` — auto icon, name, description, sharing |
|
|
103
|
-
| Local dev | `npm run dev` from app directory |
|
|
104
|
-
|
|
105
|
-
## Skills
|
|
106
|
-
|
|
107
|
-
Load in sub-agents via Skill tool. Never in main context.
|
|
108
|
-
|
|
109
|
-
| Skill | When |
|
|
110
|
-
|-------|------|
|
|
111
|
-
| `sdk-ws-config-skill` | Workflows, fields, phases, teams, groups |
|
|
112
|
-
| `sdk-function-fields` | Calculated fields, nameFunction |
|
|
113
|
-
| `sdk-activity-patterns` | Creating/updating activities via MCP |
|
|
114
|
-
| `sdk-insight-queries` | SQL insight queries |
|
|
115
|
-
| `hailer-app-builder` | Building Hailer apps (React/Chakra) |
|
|
116
|
-
| `hailer-design-system` | Theme, colors, icons, layout |
|
|
117
|
-
| `publish-hailer-app` | Publishing apps to production |
|
|
118
|
-
| `testing-patterns` | Vitest/playwright tests |
|
|
119
|
-
|
|
120
|
-
## Commands
|
|
121
|
-
|
|
122
|
-
`/command <param>` — angle brackets = required
|
|
123
|
-
|
|
124
|
-
**Essential:** `/save`, `/handoff`, `/prd`, `/autoplan`, `/ws-pull`
|
|
125
|
-
|
|
126
|
-
**Squads:** `/app-squad`, `/review-squad`, `/config-squad`, `/hotfix-squad`, `/debug-squad`, `/swarm <desc>`
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Run parallel security and permissions audit
|
|
3
|
-
argument-hint: [files, app name, or blank for full audit]
|
|
4
|
-
allowed-tools: Task, Bash
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Audit Squad
|
|
8
|
-
|
|
9
|
-
Parallel security and permissions audit: code hardening, access control verification, and MCP tool validation.
|
|
10
|
-
|
|
11
|
-
**Roles:**
|
|
12
|
-
- **Code Reviewer** - Code review (hardcoded secrets, injection vulnerabilities, insecure patterns, OWASP top 10)
|
|
13
|
-
- **Permissions Auditor** - Access control audit (effective permissions, team access levels, permission matrix)
|
|
14
|
-
- **Tool Security Auditor** - MCP tools security (input validation, data exposure, security best practices)
|
|
15
|
-
|
|
16
|
-
**Target:** $ARGUMENTS (if blank, use full project scope)
|
|
17
|
-
|
|
18
|
-
**Scope options:**
|
|
19
|
-
- Specific files or directory path
|
|
20
|
-
- App name (checks that app's code and permissions)
|
|
21
|
-
- Blank for full project audit
|
|
22
|
-
|
|
23
|
-
## Protocol
|
|
24
|
-
|
|
25
|
-
### Step 1: Determine Target
|
|
26
|
-
|
|
27
|
-
If `$ARGUMENTS` has specific files/directories or app name, use those.
|
|
28
|
-
Otherwise, scope is the entire project (workspace/ + apps/ + integrations/).
|
|
29
|
-
|
|
30
|
-
If `$ARGUMENTS` contains `--code-only`:
|
|
31
|
-
- Remove flag from target
|
|
32
|
-
- Skip Permissions Auditor and Tool Security Auditor in Step 2
|
|
33
|
-
|
|
34
|
-
If `$ARGUMENTS` contains `--permissions-only`:
|
|
35
|
-
- Remove flag from target
|
|
36
|
-
- Skip Code Reviewer and Tool Security Auditor in Step 2
|
|
37
|
-
|
|
38
|
-
If `$ARGUMENTS` contains `--bg`:
|
|
39
|
-
- Launch all agents in background mode
|
|
40
|
-
|
|
41
|
-
### Step 2: Launch Audit Agents in Parallel
|
|
42
|
-
|
|
43
|
-
Spawn all applicable agents simultaneously using multiple Task tool calls in a single message:
|
|
44
|
-
|
|
45
|
-
**Code Reviewer:**
|
|
46
|
-
```
|
|
47
|
-
Task(prompt="Security audit of these files: [TARGET]. Focus on: hardcoded secrets, API keys, credentials, injection vulnerabilities (SQL/XSS/Command), insecure crypto usage, missing input validation, OWASP Top 10 issues, unsafe deserialization, missing authentication/authorization checks. Return verdict (PASS/FAIL), critical count, and detailed findings per file.")
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
**Permissions Auditor:**
|
|
51
|
-
```
|
|
52
|
-
Task(prompt="Load hailer-permissions-system skill for understanding the permissions model.\n\nAudit access control for the entire project. Map effective permissions: who has access to which apps, which teams have what access levels, which users are admins, workspace-wide versus app-specific permissions. Produce a permission matrix showing [User/Team] → [App] → [Access Level]. Flag any excessive or unclear permissions.")
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
**Tool Security Auditor:**
|
|
56
|
-
```
|
|
57
|
-
Task(prompt="Load tool-builder skill for understanding MCP tool patterns.\n\nSecurity audit of custom MCP tools (if any exist in src/mcp/tools/). Verify: input validation with Zod schemas, no unintended data exposure, proper error handling, rate limiting awareness, secure defaults. Report security posture per tool. If no custom tools exist, report that.")
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
### Step 3: Categorize and Aggregate Results
|
|
61
|
-
|
|
62
|
-
Collect results from all agents. Categorize findings into three tiers:
|
|
63
|
-
|
|
64
|
-
**CRITICAL:**
|
|
65
|
-
- Hardcoded secrets/credentials
|
|
66
|
-
- SQL injection, XSS, command injection vulnerabilities
|
|
67
|
-
- Authentication/authorization bypasses
|
|
68
|
-
- Excessive uncontrolled permissions
|
|
69
|
-
- MCP tools exposing sensitive data
|
|
70
|
-
|
|
71
|
-
**WARNING:**
|
|
72
|
-
- Weak crypto usage
|
|
73
|
-
- Missing input sanitization
|
|
74
|
-
- Unclear permission delegations
|
|
75
|
-
- Unvalidated MCP tool inputs
|
|
76
|
-
- Missing rate limiting on tools
|
|
77
|
-
|
|
78
|
-
**INFO:**
|
|
79
|
-
- Best practice improvements
|
|
80
|
-
- Code hardening suggestions
|
|
81
|
-
- Permission clarity recommendations
|
|
82
|
-
|
|
83
|
-
### Step 4: Report
|
|
84
|
-
|
|
85
|
-
```markdown
|
|
86
|
-
## Audit Squad Report
|
|
87
|
-
|
|
88
|
-
### Scope
|
|
89
|
-
[What was audited]
|
|
90
|
-
|
|
91
|
-
### Overall Security Posture
|
|
92
|
-
[Rating: PASS / WARNING / CRITICAL]
|
|
93
|
-
- Critical findings: X
|
|
94
|
-
- Warnings: X
|
|
95
|
-
- Info items: X
|
|
96
|
-
|
|
97
|
-
### Code Reviewer
|
|
98
|
-
**Verdict:** PASS / FAIL / WARNINGS
|
|
99
|
-
- Critical: X [list]
|
|
100
|
-
- Warnings: X [list]
|
|
101
|
-
- Info: X [list]
|
|
102
|
-
- Files affected: [grouped summary]
|
|
103
|
-
|
|
104
|
-
### Permissions Auditor
|
|
105
|
-
**Matrix Status:** [OK / EXCESSIVE / UNCLEAR]
|
|
106
|
-
- Total apps: X
|
|
107
|
-
- Total teams: X
|
|
108
|
-
- Users with admin access: X
|
|
109
|
-
- Flagged permissions: [list]
|
|
110
|
-
- [Permission matrix if findings exist]
|
|
111
|
-
|
|
112
|
-
### Tool Security Auditor
|
|
113
|
-
**Status:** [No tools / PASS / WARNINGS / CRITICAL]
|
|
114
|
-
[If tools exist:]
|
|
115
|
-
- Tools audited: X
|
|
116
|
-
- Input validation issues: X
|
|
117
|
-
- Data exposure risks: X
|
|
118
|
-
- Best practice gaps: X
|
|
119
|
-
|
|
120
|
-
### Findings by Severity
|
|
121
|
-
|
|
122
|
-
#### CRITICAL (Require Immediate Action)
|
|
123
|
-
[List all critical findings with file/tool and remediation steps]
|
|
124
|
-
|
|
125
|
-
#### WARNING (Address in Next Sprint)
|
|
126
|
-
[List all warnings with context]
|
|
127
|
-
|
|
128
|
-
#### INFO (Consider for Hardening)
|
|
129
|
-
[List informational recommendations]
|
|
130
|
-
|
|
131
|
-
### Remediation Checklist
|
|
132
|
-
- [ ] [Critical issue 1]: [Action]
|
|
133
|
-
- [ ] [Critical issue 2]: [Action]
|
|
134
|
-
- [ ] [Warning 1]: [Action]
|
|
135
|
-
|
|
136
|
-
### Summary
|
|
137
|
-
[1-2 sentence overall assessment of security posture and next steps]
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
If any agent fails or times out, report partial results from successful agents, note which failed, and offer to re-run individually.
|
|
141
|
-
|
|
142
|
-
## Options
|
|
143
|
-
|
|
144
|
-
| Flag | Effect |
|
|
145
|
-
|------|--------|
|
|
146
|
-
| `--code-only` | Skip permissions and MCP tools (code review only, faster) |
|
|
147
|
-
| `--permissions-only` | Skip code review and MCP tools (permissions matrix only) |
|
|
148
|
-
| `--bg` | Run all agents in background mode |
|
|
149
|
-
|
|
150
|
-
If `--bg` is present, launch all agents with `run_in_background: true` and tell the user they'll be notified when complete.
|
|
151
|
-
|
|
152
|
-
## Notes
|
|
153
|
-
|
|
154
|
-
- Default scope is full project if no arguments provided
|
|
155
|
-
- Code Reviewer focuses on secrets and injection attacks; general code quality is separate (/review-squad)
|
|
156
|
-
- Permissions Auditor is organization-wide - includes team and app-level settings
|
|
157
|
-
- Tool Security Auditor only validates if custom MCP tools exist in the project
|
|
158
|
-
- Critical findings should block deployment; warnings should be tracked for next sprint
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Clean up codebase with config audit, code simplification, and dead code detection
|
|
3
|
-
argument-hint: [files, directory, or blank for recent changes]
|
|
4
|
-
allowed-tools: Task, Bash
|
|
5
|
-
---
|
|
6
|
-
# Cleanup Squad
|
|
7
|
-
|
|
8
|
-
Run parallel codebase cleanup using three agents simultaneously.
|
|
9
|
-
|
|
10
|
-
**Roles:**
|
|
11
|
-
- **Config Auditor** - Configuration audit (verify CLAUDE.md, hooks, workspace structure)
|
|
12
|
-
- **Code Simplifier** - Refactor (improve code clarity and maintainability)
|
|
13
|
-
- **Dead Code Inspector** - Dead code detection (find unused imports, dead code, type errors)
|
|
14
|
-
|
|
15
|
-
**Target:** $ARGUMENTS (if blank, use recent git changes)
|
|
16
|
-
|
|
17
|
-
**Changed files (auto-injected):**
|
|
18
|
-
!git diff --name-only HEAD
|
|
19
|
-
|
|
20
|
-
## Protocol
|
|
21
|
-
|
|
22
|
-
### Step 1: Determine Target
|
|
23
|
-
|
|
24
|
-
If `$ARGUMENTS` has specific files/directories, use those.
|
|
25
|
-
Otherwise, use the changed files list above as the target.
|
|
26
|
-
|
|
27
|
-
If `$ARGUMENTS` contains `--skip-config`:
|
|
28
|
-
- Remove flag from target
|
|
29
|
-
- Skip Config Auditor in Step 2
|
|
30
|
-
|
|
31
|
-
If `$ARGUMENTS` contains `--skip-dead-code`:
|
|
32
|
-
- Remove flag from target
|
|
33
|
-
- Skip Dead Code Inspector in Step 2
|
|
34
|
-
|
|
35
|
-
### Step 2: Launch Agents in Parallel
|
|
36
|
-
|
|
37
|
-
Spawn all agents simultaneously using multiple Task tool calls in a single message:
|
|
38
|
-
|
|
39
|
-
**Config Auditor:**
|
|
40
|
-
```
|
|
41
|
-
Task(prompt="Audit codebase configuration for: [TARGET]. Check:\n- CLAUDE.md accuracy and completeness\n- Hook configurations\n- Workspace structure\n- Agent definitions\n\nReturn list of issues found with severity levels.")
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
**Code Simplifier:**
|
|
45
|
-
```
|
|
46
|
-
Task(prompt="Refactor these files for clarity and maintainability: [TARGET]. Focus on:\n- Variable naming\n- Function complexity\n- Comment clarity\n- Code organization\n\nReturn refactoring suggestions with before/after examples.")
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
**Dead Code Inspector:**
|
|
50
|
-
```
|
|
51
|
-
Task(prompt="Load lsp-setup skill for code inspection.\n\nInspect these files for dead code: [TARGET]. Find:\n- Unused imports\n- Unreachable code\n- Unused variables\n- Type errors\n\nUse LSP if available. Return detailed list grouped by file.")
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
### Step 3: Aggregate Results
|
|
55
|
-
|
|
56
|
-
Compile a unified cleanup report:
|
|
57
|
-
|
|
58
|
-
```markdown
|
|
59
|
-
## Cleanup Squad Report
|
|
60
|
-
|
|
61
|
-
### Config Auditor
|
|
62
|
-
- Issues found: X
|
|
63
|
-
- Critical: X
|
|
64
|
-
- Warnings: X
|
|
65
|
-
- [Issues grouped by category]
|
|
66
|
-
|
|
67
|
-
### Code Simplifier
|
|
68
|
-
- Files analyzed: X
|
|
69
|
-
- Refactoring suggestions: X
|
|
70
|
-
- [Suggestions grouped by file]
|
|
71
|
-
|
|
72
|
-
### Dead Code Inspector
|
|
73
|
-
- Unused imports: X
|
|
74
|
-
- Dead code blocks: X
|
|
75
|
-
- Type errors: X
|
|
76
|
-
- [Details grouped by file]
|
|
77
|
-
|
|
78
|
-
### Summary
|
|
79
|
-
[Overall assessment of codebase health]
|
|
80
|
-
[Prioritized action items]
|
|
81
|
-
|
|
82
|
-
### Recommended Order
|
|
83
|
-
1. [Fix critical config issues first]
|
|
84
|
-
2. [Remove dead code]
|
|
85
|
-
3. [Apply refactoring suggestions]
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
If any agent fails or times out, report partial results from successful agents, note which failed, and offer to re-run individually.
|
|
89
|
-
|
|
90
|
-
## Options
|
|
91
|
-
|
|
92
|
-
| Flag | Effect |
|
|
93
|
-
|------|--------|
|
|
94
|
-
| `--skip-config` | Skip Config Auditor (faster, no config validation) |
|
|
95
|
-
| `--skip-dead-code` | Skip Dead Code Inspector (when LSP not configured) |
|
|
96
|
-
| `--bg` | Run all agents in background mode |
|
|
97
|
-
|
|
98
|
-
If `--bg` is present, launch all agents with `run_in_background: true` and tell the user they'll be notified when complete.
|