@hailer/mcp 1.2.0 → 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 +148 -81
- 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
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Compile prepared chunks under prepared-docs/HailerPublic/ into a single
|
|
3
|
+
TypeScript module that exports the full knowledge corpus as a string.
|
|
4
|
+
|
|
5
|
+
Run from the repo root:
|
|
6
|
+
|
|
7
|
+
python3 scripts/build-public-chat-knowledge.py
|
|
8
|
+
|
|
9
|
+
Re-run whenever you edit any prepared-docs/HailerPublic/**/*.json file.
|
|
10
|
+
"""
|
|
11
|
+
import json
|
|
12
|
+
import glob
|
|
13
|
+
import os
|
|
14
|
+
import sys
|
|
15
|
+
|
|
16
|
+
REPO_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
|
|
17
|
+
SOURCE_GLOB = os.path.join(REPO_ROOT, "prepared-docs", "HailerPublic", "**", "*.json")
|
|
18
|
+
OUTPUT_TS = os.path.join(REPO_ROOT, "src", "public-chat", "knowledge.ts")
|
|
19
|
+
|
|
20
|
+
SCOPE_TITLES = {
|
|
21
|
+
"product": "Product & UI",
|
|
22
|
+
"developer": "Developer & MCP",
|
|
23
|
+
"legal": "Legal & Privacy",
|
|
24
|
+
}
|
|
25
|
+
TOPIC_TITLES = {
|
|
26
|
+
"overview": "Overview",
|
|
27
|
+
"ui-guide": "UI Guide",
|
|
28
|
+
"product-description": "Product Description",
|
|
29
|
+
"faq": "Frequently Asked Questions",
|
|
30
|
+
"mcp-server": "MCP Server",
|
|
31
|
+
"apps-and-marketplace": "Apps & Marketplace",
|
|
32
|
+
"getting-started": "Getting Started",
|
|
33
|
+
"privacy-policy": "Privacy Policy",
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def main() -> int:
|
|
38
|
+
chunks_by_scope_topic: dict = {}
|
|
39
|
+
for path in sorted(glob.glob(SOURCE_GLOB, recursive=True)):
|
|
40
|
+
with open(path) as f:
|
|
41
|
+
chunks = json.load(f)
|
|
42
|
+
for c in chunks:
|
|
43
|
+
chunks_by_scope_topic.setdefault(c["scope"], {}).setdefault(c["topic"], []).append(c)
|
|
44
|
+
|
|
45
|
+
for scope_map in chunks_by_scope_topic.values():
|
|
46
|
+
for topic_chunks in scope_map.values():
|
|
47
|
+
topic_chunks.sort(key=lambda c: c["chunk_index"])
|
|
48
|
+
|
|
49
|
+
parts = [
|
|
50
|
+
"# Hailer Knowledge Base",
|
|
51
|
+
"",
|
|
52
|
+
(
|
|
53
|
+
"This is the curated, public-safe knowledge corpus that the public chatbot "
|
|
54
|
+
"uses to answer questions about Hailer. It covers product concepts, the user "
|
|
55
|
+
"interface, the MCP server, app development, and getting started."
|
|
56
|
+
),
|
|
57
|
+
"",
|
|
58
|
+
]
|
|
59
|
+
|
|
60
|
+
for scope in sorted(chunks_by_scope_topic.keys()):
|
|
61
|
+
parts.append(f"## {SCOPE_TITLES.get(scope, scope)}")
|
|
62
|
+
parts.append("")
|
|
63
|
+
for topic in sorted(chunks_by_scope_topic[scope].keys()):
|
|
64
|
+
parts.append(f"### {TOPIC_TITLES.get(topic, topic)}")
|
|
65
|
+
parts.append("")
|
|
66
|
+
for c in chunks_by_scope_topic[scope][topic]:
|
|
67
|
+
parts.append(f"#### {c['title']}")
|
|
68
|
+
parts.append("")
|
|
69
|
+
parts.append(c["content"])
|
|
70
|
+
parts.append("")
|
|
71
|
+
|
|
72
|
+
corpus = "\n".join(parts)
|
|
73
|
+
|
|
74
|
+
escaped = corpus.replace("\\", "\\\\").replace("`", "\\`").replace("${", "\\${")
|
|
75
|
+
total_chunks = sum(len(t) for s in chunks_by_scope_topic.values() for t in s.values())
|
|
76
|
+
scopes = ", ".join(sorted(chunks_by_scope_topic.keys()))
|
|
77
|
+
|
|
78
|
+
ts = (
|
|
79
|
+
"// AUTO-GENERATED from prepared-docs/HailerPublic/ — do not edit by hand.\n"
|
|
80
|
+
"// Regenerate via: python3 scripts/build-public-chat-knowledge.py\n"
|
|
81
|
+
"//\n"
|
|
82
|
+
f"// Source chunks: {total_chunks}\n"
|
|
83
|
+
f"// Scopes: {scopes}\n"
|
|
84
|
+
"\n"
|
|
85
|
+
f"export const HAILER_KNOWLEDGE_CORPUS = `{escaped}`;\n"
|
|
86
|
+
"\n"
|
|
87
|
+
"export const HAILER_KNOWLEDGE_BYTES = HAILER_KNOWLEDGE_CORPUS.length;\n"
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
os.makedirs(os.path.dirname(OUTPUT_TS), exist_ok=True)
|
|
91
|
+
with open(OUTPUT_TS, "w") as f:
|
|
92
|
+
f.write(ts)
|
|
93
|
+
|
|
94
|
+
print(f"Wrote {OUTPUT_TS}")
|
|
95
|
+
print(f"Corpus size: {len(corpus):,} chars (~{len(corpus) // 4:,} tokens)")
|
|
96
|
+
print(f"Total chunks: {total_chunks}")
|
|
97
|
+
return 0
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
if __name__ == "__main__":
|
|
101
|
+
sys.exit(main())
|
|
@@ -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,131 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Build a Hailer app with hyper-parallel component teams
|
|
3
|
-
argument-hint: "app description"
|
|
4
|
-
allowed-tools: Task, Bash, Read, Skill
|
|
5
|
-
---
|
|
6
|
-
# App Squad
|
|
7
|
-
|
|
8
|
-
Hyper-parallel: orchestrator does ALL prep, then spawns one agent per component with everything pre-loaded. Agents do ZERO discovery — just write code.
|
|
9
|
-
|
|
10
|
-
**Goal:** $ARGUMENTS
|
|
11
|
-
|
|
12
|
-
## Protocol
|
|
13
|
-
|
|
14
|
-
### Step 1: Full Prep (YOU do everything — fast)
|
|
15
|
-
|
|
16
|
-
**Schema discovery (MCP calls, parallel):**
|
|
17
|
-
- `list_workflows_minimal` → find relevant workflows
|
|
18
|
-
- `list_workflow_phases` per workflow → phase IDs/names
|
|
19
|
-
- `get_workflow_schema` per workflow → field IDs/types/labels
|
|
20
|
-
- `list_insights` → existing insights
|
|
21
|
-
|
|
22
|
-
**Scaffold:**
|
|
23
|
-
- `scaffold_hailer_app` MCP tool (NEVER copy an existing app)
|
|
24
|
-
|
|
25
|
-
**Read scaffold SDK files:**
|
|
26
|
-
- `src/hailer/use-app.ts` — the Zustand store, understand the API
|
|
27
|
-
- `src/hailer/use-hailer.tsx` — the raw hook (if use-app isn't available)
|
|
28
|
-
- `src/main.tsx` — entry point (ChakraProvider + theme)
|
|
29
|
-
- Check available icons: `ls src/hailer/theme/icons/`
|
|
30
|
-
|
|
31
|
-
**Load skills (YOU load, paste into prompts):**
|
|
32
|
-
- Load `hailer-app-builder` skill via Skill tool
|
|
33
|
-
- Load `hailer-design-system` skill via Skill tool
|
|
34
|
-
- Save the content — you'll paste it into every agent prompt
|
|
35
|
-
|
|
36
|
-
**Read one existing working app** for reference:
|
|
37
|
-
- Pick an app from `apps/` that works, read its App.tsx
|
|
38
|
-
- Extract the SDK integration patterns (how it fetches, how it reads fields)
|
|
39
|
-
|
|
40
|
-
### Step 2: Define Shared Contract
|
|
41
|
-
|
|
42
|
-
Write this contract — every agent gets the exact same copy:
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
## SHARED CONTRACT
|
|
46
|
-
|
|
47
|
-
### Constants
|
|
48
|
-
[Paste all workflow IDs, field IDs, phase IDs from schema discovery]
|
|
49
|
-
|
|
50
|
-
### SDK API (from scaffold)
|
|
51
|
-
[Paste the actual use-app.ts store shape — what useApp() returns]
|
|
52
|
-
[Paste how to fetch: hailer.activity.list(workflowId, phaseId, { limit: 500 })]
|
|
53
|
-
[Paste how fields work: activity.fields?.[fieldId] with value wrappers]
|
|
54
|
-
|
|
55
|
-
### Helper Functions
|
|
56
|
-
[getField, getNumField, formatValue, getRating — whatever the app needs]
|
|
57
|
-
|
|
58
|
-
### Component Manifest
|
|
59
|
-
[List every component: name, file path, props interface, what it renders]
|
|
60
|
-
|
|
61
|
-
### Import Paths
|
|
62
|
-
[Exact import paths for SDK: '../hailer/use-app', icons, theme, etc.]
|
|
63
|
-
|
|
64
|
-
### Icon Paths
|
|
65
|
-
[Available icons with exact import paths: '../hailer/theme/icons/HailerSearch']
|
|
66
|
-
|
|
67
|
-
### SDK Patterns (from existing working app)
|
|
68
|
-
[Paste the patterns that WORK — how ready/inside/outside are handled]
|
|
69
|
-
[CRITICAL: Apps must render even when outside Hailer — never block on `inside`]
|
|
70
|
-
|
|
71
|
-
### Skill Content
|
|
72
|
-
[Paste hailer-app-builder skill content]
|
|
73
|
-
[Paste hailer-design-system skill content]
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### Step 3: Spawn ALL Agents in One Message
|
|
77
|
-
|
|
78
|
-
Every agent gets the FULL shared contract. They do ZERO skill loading, ZERO file reading.
|
|
79
|
-
|
|
80
|
-
Each agent prompt:
|
|
81
|
-
```
|
|
82
|
-
You are building ONE component of a Hailer app.
|
|
83
|
-
|
|
84
|
-
[PASTE FULL SHARED CONTRACT]
|
|
85
|
-
|
|
86
|
-
## Your Mission: [COMPONENT NAME]
|
|
87
|
-
[What to build, what props it takes, what it renders]
|
|
88
|
-
|
|
89
|
-
Return ONLY the complete TypeScript/React code. No file operations, no skill loading, no discovery.
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
Typical team:
|
|
93
|
-
| Agent | Builds | Model |
|
|
94
|
-
|-------|--------|-------|
|
|
95
|
-
| Shell | App.tsx — nav, state, data fetching, renders children | sonnet |
|
|
96
|
-
| Overview | Dashboard — stat cards, summaries, charts | sonnet |
|
|
97
|
-
| List View | Table — filters, sorting, row click | sonnet |
|
|
98
|
-
| Detail | Modal content — full record view | sonnet |
|
|
99
|
-
| (per extra workflow) | Additional list+detail | sonnet |
|
|
100
|
-
|
|
101
|
-
### Step 4: Assemble + Verify (YOU)
|
|
102
|
-
|
|
103
|
-
1. Write each component to its file
|
|
104
|
-
2. Delete scaffold demo components (ChartDemo, ActivityTable, etc.)
|
|
105
|
-
3. Fix integration issues (import paths, prop mismatches)
|
|
106
|
-
4. `npx tsc --noEmit` → fix any errors
|
|
107
|
-
5. `npx vite build` → verify
|
|
108
|
-
6. If < 5 errors, fix directly. If major, re-spawn failing agent with error + context.
|
|
109
|
-
|
|
110
|
-
### Step 5: Report
|
|
111
|
-
|
|
112
|
-
```markdown
|
|
113
|
-
## App Built: [name]
|
|
114
|
-
- Path: apps/[name]/
|
|
115
|
-
- Components: [N] built in parallel
|
|
116
|
-
- Build: PASS
|
|
117
|
-
- TypeScript: 0 errors
|
|
118
|
-
|
|
119
|
-
### Next Steps
|
|
120
|
-
- `cd apps/[name] && npm run dev`
|
|
121
|
-
- Open in Hailer iframe to test with live data
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
## Rules
|
|
125
|
-
|
|
126
|
-
- NEVER copy existing apps — scaffold fresh
|
|
127
|
-
- NEVER let agents load skills — you pre-load and paste
|
|
128
|
-
- NEVER let agents read files — you read and paste
|
|
129
|
-
- Apps must work when opened outside Hailer (show empty state, not error)
|
|
130
|
-
- Include the ACTUAL SDK code in the contract, not a summary
|
|
131
|
-
- Agents return code as text — you write the files
|