@hailer/mcp 1.2.1 → 2.0.0-beta.10
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 +119 -148
- package/.claude/skills/hailer-app-builder/SKILL.md +24 -2
- package/.claude/skills/hailer-ui-guide/SKILL.md +265 -0
- package/.env.example +50 -1
- package/CLAUDE.md +141 -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 +1341 -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/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
|
@@ -1,204 +1,175 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: create-and-publish-app
|
|
3
|
-
description:
|
|
4
|
-
version:
|
|
3
|
+
description: Scaffold, develop, and publish Hailer apps with @hailer/create-app — dev iteration, production publish, marketplace, validation, and cache gotchas
|
|
4
|
+
version: 2.0.0
|
|
5
5
|
triggers:
|
|
6
6
|
- create-app
|
|
7
7
|
- npx create-app
|
|
8
|
-
- hailer create-app
|
|
9
8
|
- scaffold app cli
|
|
9
|
+
- publish app
|
|
10
|
+
- deploy app
|
|
11
|
+
- production app
|
|
10
12
|
---
|
|
11
13
|
|
|
12
14
|
# Create and Publish Hailer App
|
|
13
15
|
|
|
14
|
-
|
|
16
|
+
The full app lifecycle with `@hailer/create-app`: scaffold → build → dev publish → production publish → marketplace.
|
|
15
17
|
|
|
16
18
|
**npm package docs:** https://www.npmjs.com/package/@hailer/create-app
|
|
17
|
-
**Registry README (machine-readable):** https://registry.npmjs.org/@hailer/create-app (check `readme` field)
|
|
18
19
|
|
|
19
20
|
<when-to-use>
|
|
20
|
-
##
|
|
21
|
+
## Scripts Are the ONLY Path
|
|
21
22
|
|
|
22
|
-
|
|
23
|
-
|----------|------|
|
|
24
|
-
| `npx @hailer/create-app` (this skill) | CLI-based scaffolding, `npm run publish-production` for publishing |
|
|
25
|
-
| `scaffold_hailer_app` MCP tool | MCP-based scaffolding, `publish_hailer_app` MCP tool for publishing |
|
|
26
|
-
|
|
27
|
-
Both create valid Hailer apps. This skill covers the npm CLI path.
|
|
28
|
-
|
|
29
|
-
**IMPORTANT: The `scaffold_hailer_app` MCP tool uses `/bin/sh` internally. In Hailer Studio (cluster environment), `/bin/sh` is not at the standard path and the MCP tool will fail with `spawnSync /bin/sh ENOENT`. Always use `npx @hailer/create-app` in Hailer Studio.**
|
|
23
|
+
Apps are scaffolded and published exclusively through the scripts: `npx @hailer/create-app` and `npm run publish-*`. There are NO MCP tools for scaffolding or publishing — the MCP surface only covers the app registry (`manage_app`, `list_apps`, `remove_app`) and marketplace listings (`browse_marketplace`, `install_marketplace`, `publish_marketplace`).
|
|
30
24
|
</when-to-use>
|
|
31
25
|
|
|
32
|
-
<
|
|
33
|
-
## Step 1 — Scaffold
|
|
26
|
+
<scaffold>
|
|
27
|
+
## Step 1 — Scaffold
|
|
34
28
|
|
|
35
29
|
```bash
|
|
36
30
|
npx @hailer/create-app <project-name> --template react-ts
|
|
37
31
|
```
|
|
38
32
|
|
|
39
|
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
- **
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
## Step 2 — Install Dependencies
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
cd apps/<project-name>
|
|
50
|
-
npm install
|
|
51
|
-
```
|
|
52
|
-
</step-2>
|
|
33
|
+
**This exact form is non-interactive — it runs with zero prompts. Do NOT deviate:**
|
|
34
|
+
- **`<project-name>` is a POSITIONAL argument, not a flag.** `--name <x>` is silently ignored and the CLI drops to an interactive "Project name:" prompt that hangs an agent. Put the name first, bare.
|
|
35
|
+
- **`--template` must be a real template name:** `react-ts` (recommended), `react`, `react-swc-ts`, `vanilla-ts`, `vanilla`, `preact-ts`, `preact`, `svelte-ts`, `svelte`. NOT `minimal` (invalid → drops to a "Select a framework" prompt that hangs).
|
|
36
|
+
- **Use a fresh, lowercase, kebab-case name** in an empty target dir — that skips the overwrite prompt AND the package-name prompt. e.g. `injured-players-cost`.
|
|
37
|
+
- Never run `npx @hailer/create-app` bare and never pipe input to it (`echo …|`, `printf`, `expect`) — the one-line form above already needs no input.
|
|
38
|
+
- Run from a parent directory (`mkdir -p apps` first if needed), NEVER copy an existing app, then `cd <project-name> && npm install`.
|
|
39
|
+
</scaffold>
|
|
53
40
|
|
|
54
|
-
<
|
|
55
|
-
## Step
|
|
41
|
+
<build>
|
|
42
|
+
## Step 2 — Build the App UI
|
|
56
43
|
|
|
57
|
-
Replace `src/App.tsx` and add components
|
|
44
|
+
Replace `src/App.tsx` and add components (load `hailer-app-builder` + `hailer-design-system` skills for patterns):
|
|
58
45
|
|
|
59
|
-
- Use `useApp` from `src/hailer/use-app.ts` (
|
|
46
|
+
- Use `useApp` from `src/hailer/use-app.ts` (zustand-based state)
|
|
60
47
|
- Call `api.init()` in a `useEffect` in `App.tsx`
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
</
|
|
48
|
+
- `hailer.activity.list(workflowId, phaseId, options)` — one call per phase, in parallel with `Promise.all`
|
|
49
|
+
- `hailer.ui.activity.open(id)` / `hailer.ui.activity.create(workflowId)` for the sidebar/create form
|
|
50
|
+
- Apps must render outside Hailer too — empty state, never an error
|
|
51
|
+
</build>
|
|
65
52
|
|
|
66
|
-
<
|
|
67
|
-
## Step
|
|
53
|
+
<dev-publish>
|
|
54
|
+
## Step 3 — Dev Iteration
|
|
68
55
|
|
|
69
|
-
**
|
|
56
|
+
**Local machine:** `npm run dev` → test at `http://localhost:3000`. The scaffold's dev app entry stays at localhost forever — it's your development slot.
|
|
70
57
|
|
|
71
|
-
|
|
58
|
+
**Hailer Studio:** `localhost:3000` is unreachable from outside the sandbox — publishing is the only way to test inside Hailer. Publish a SEPARATE dev app and iterate on it:
|
|
72
59
|
|
|
73
60
|
```bash
|
|
74
61
|
npm run publish-production -- --host http://hailer-api:1337 --create --app-name "<App Name> - Dev" --workspace <workspaceId> --force
|
|
75
62
|
```
|
|
76
63
|
|
|
77
|
-
After the first publish
|
|
64
|
+
After the first publish `public/manifest.json` holds the dev `appId`; later iterations just need `--host ... --force`. Share it: MCP `manage_app({ action: 'add_member', appId, member: "network_<workspaceId>" })`.
|
|
78
65
|
|
|
79
|
-
|
|
66
|
+
| App | Name | Purpose |
|
|
67
|
+
|-----|------|---------|
|
|
68
|
+
| Dev | `My App - Dev` | publish repeatedly while iterating |
|
|
69
|
+
| Production | `My App` | publish only when the user explicitly asks |
|
|
70
|
+
</dev-publish>
|
|
80
71
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
```
|
|
72
|
+
<credentials>
|
|
73
|
+
## Credentials — Read This Before Publishing Fails
|
|
84
74
|
|
|
85
|
-
|
|
75
|
+
The publish CLI (`@hailer/app-sdk`'s `publish.cjs`, wrapped as `npm run publish-*`) authenticates ONLY from, in order: `--user-api-key` flag → `USER_API_KEY` / `HAILER_USER_API_KEY` env vars → `~/.env` in the HOME directory → `--email` flag (interactive password prompt — useless for agents).
|
|
86
76
|
|
|
87
|
-
**
|
|
88
|
-
|
|
77
|
+
- **Hailer Studio:** `~/.env` is auto-injected — publishing just works, no flags.
|
|
78
|
+
- **Local machines:** the `npx hailer-mcp` server self-provisions on first boot — it mints a user API key from the project bot's credentials and writes `HAILER_USER_API_KEY` to `~/.env` (Studio's mechanism, reproduced locally). So once the local MCP server has run once, publishing needs no auth flags. (Opt out: `HAILER_MCP_NO_PUBLISH_AUTH=true`.)
|
|
79
|
+
- **ALWAYS pass `-- --force`.** Without it the publish stops at an interactive `Overwrite the app? (Y/n)` prompt — which an agent cannot answer, so the command hangs until it times out. Every publish command below includes it; never drop it.
|
|
80
|
+
- **If publishing still hits exit code 10** (no auth — the CLI prints usage and quits): the local server hasn't run yet, or injection was disabled. Start `npx hailer-mcp` once, OR ask the user for a Hailer user API key (Hailer → profile → API keys) and pass `-- --user-api-key <key>`. **Never read passwords from .env, never log in via curl, never probe API endpoints for keys.**
|
|
89
81
|
|
|
90
|
-
|
|
91
|
-
|
|
82
|
+
Other exit codes: 8 = login failed (bad key/credentials), 7 = bundle isn't a .tgz (build problem), loud version error = `--market` without `version`/`versionDescription` in the manifest.
|
|
83
|
+
</credentials>
|
|
92
84
|
|
|
93
|
-
|
|
85
|
+
<validate>
|
|
86
|
+
## Step 4 — Validate BEFORE Any Production Publish
|
|
94
87
|
|
|
95
|
-
|
|
88
|
+
Check before publishing:
|
|
96
89
|
|
|
97
|
-
|
|
90
|
+
1. Read `public/manifest.json`
|
|
91
|
+
2. `appId` exists, 24 chars — required for any non-`--create` publish (auto-written by `--create`)
|
|
92
|
+
3. `version` + `versionDescription` non-empty — strictly required for `--market` publishes (the CLI errors loudly without them); keep them set always, `versionDescription` doubles as the app description
|
|
93
|
+
4. `vite.config.ts` has `base: './'` — without it assets resolve to the root domain and production 403/404s while localhost works
|
|
94
|
+
5. `index.html` has no-cache meta tags (apps.hailer.com is static hosting; server headers aren't controllable):
|
|
98
95
|
|
|
99
|
-
```
|
|
100
|
-
|
|
96
|
+
```html
|
|
97
|
+
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
|
|
98
|
+
<meta http-equiv="Pragma" content="no-cache" />
|
|
99
|
+
<meta http-equiv="Expires" content="0" />
|
|
101
100
|
```
|
|
102
101
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
```bash
|
|
106
|
-
npm run publish-production -- --host http://hailer-api:1337 --create --app-name "<App Name>" --workspace <workspaceId> --force
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
The `--host` flag overrides the hardcoded `https://api.hailer.com` default. Credentials are picked up automatically from `~/.env`.
|
|
110
|
-
|
|
111
|
-
| Flag | Purpose |
|
|
112
|
-
|------|---------|
|
|
113
|
-
| `--create` | Creates a brand new app entry in Hailer |
|
|
114
|
-
| `--app-name` | Name shown in Hailer |
|
|
115
|
-
| `--workspace` | Workspace ID from `config.json` at project root |
|
|
116
|
-
| `--force` | Skips confirmation prompt |
|
|
117
|
-
| `--host` | API URL — required in cluster environments |
|
|
118
|
-
| `--user-api-key` | API key — read from `~/.env` if not provided as flag |
|
|
119
|
-
|
|
120
|
-
**Credential resolution order:**
|
|
121
|
-
1. `--user-api-key` or `--email` flags
|
|
122
|
-
2. `USER_API_KEY` or `HAILER_USER_API_KEY` environment variables
|
|
123
|
-
3. `HAILER_USER_API_KEY` from `~/.env` ← auto-injected by Hailer Studio
|
|
124
|
-
|
|
125
|
-
After running, `public/manifest.json` is auto-updated with the new `appId`.
|
|
102
|
+
If a publish reports success but the app still serves the old/localhost version, re-check 2–5 — historical silent failures trace back to these.
|
|
103
|
+
</validate>
|
|
126
104
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
The CLI publish does NOT auto-share. Share manually via MCP:
|
|
130
|
-
|
|
131
|
-
```javascript
|
|
132
|
-
add_app_member({ appId: "<appId>", member: "network_<workspaceId>" })
|
|
133
|
-
```
|
|
134
|
-
</step-5>
|
|
135
|
-
|
|
136
|
-
<step-6>
|
|
137
|
-
## Step 6 — Subsequent Publishes
|
|
138
|
-
|
|
139
|
-
### Local machine
|
|
105
|
+
<prod-publish>
|
|
106
|
+
## Step 5 — Production Publish (only when the user explicitly asks)
|
|
140
107
|
|
|
141
108
|
```bash
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
### Hailer Studio (cluster)
|
|
109
|
+
# Local machine (reaches api.hailer.com)
|
|
110
|
+
npm run publish-production -- --create --app-name "<App Name>" --workspace <workspaceId> --force
|
|
146
111
|
|
|
147
|
-
|
|
148
|
-
npm run publish-production -- --host http://hailer-api:1337 --force
|
|
112
|
+
# Hailer Studio (cluster — cannot reach api.hailer.com)
|
|
113
|
+
npm run publish-production -- --host http://hailer-api:1337 --create --app-name "<App Name>" --workspace <workspaceId> --force
|
|
149
114
|
```
|
|
150
115
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
| App | Name convention | Purpose |
|
|
160
|
-
|-----|----------------|---------|
|
|
161
|
-
| Dev | `My App - Dev` | Publish here repeatedly during development and testing |
|
|
162
|
-
| Production | `My App` | Publish here only when user confirms they are happy |
|
|
163
|
-
|
|
164
|
-
**In Hailer Studio, `localhost:3000` is not accessible to the user — publishing is the only way to test inside Hailer. This means the dev app gets published and re-published on every iteration.**
|
|
116
|
+
**PUBLISH FAILURE PLAYBOOK — exact error → exact action, no improvising:**
|
|
117
|
+
| Failure | Meaning | Action |
|
|
118
|
+
|---|---|---|
|
|
119
|
+
| exit 10, usage printed | no auth | start `npx hailer-mcp` once (mints the key), or `-- --user-api-key <key>` |
|
|
120
|
+
| exit 2, "app was not found using <identity>" | manifest appId doesn't belong to this user/workspace | re-run with `--create --app-name "<Name>" --workspace <wsId> --force`. **NEVER "register the app first" via workspace/apps.ts** — that creates a registry entry with a URL you'd have to invent (placeholder URLs break the app: Hailer fetches `<url>/manifest.json` → "manifest missing"). `--create` makes the entry AND sets the real CDN URL |
|
|
121
|
+
| exit 8 | login failed | the key/credentials are bad — re-mint or ask the user |
|
|
122
|
+
| hangs at "Overwrite the app? (Y/n)" | missing `--force` | always pass it |
|
|
165
123
|
|
|
166
|
-
|
|
167
|
-
</dev-vs-prod>
|
|
124
|
+
**Manifest hand-edit rules:** never invent or copy an `appId` (only `--create` or a previous publish writes it); never delete `version`/`versionDescription` (versionDescription doubles as the app description, both are required for `--market`); do fix the placeholder `author` ("Magic Apps Ltd.") to the real one. apps.ts is for SHARING an app that already exists — after publish, `npm run pull` brings the entry in; edit members there.
|
|
168
125
|
|
|
169
|
-
|
|
170
|
-
|
|
126
|
+
**FIRST-PUBLISH GOTCHA — the `--create` bundle embeds a stale manifest. Do these two things:**
|
|
127
|
+
1. **Before publishing, fix `public/manifest.json`**: the scaffold leaves a placeholder `author` (e.g. "Magic Apps Ltd.") and `description`. Set the real values now — the agent controls these.
|
|
128
|
+
2. **After the `--create` publish, republish once** (plain `npm run publish-production -- --force`). Reason: the script packs the tarball *before* `--create` learns the new `appId`, so the first uploaded bundle has the placeholder `appId` baked in. The second publish embeds the correct one (the manifest now holds the real `appId`). This is a known app-sdk ordering bug — the double-publish is the workaround, not optional.
|
|
171
129
|
|
|
172
|
-
|
|
173
|
-
|---------|---------------|
|
|
174
|
-
| `npm run publish-production` | https://api.hailer.com |
|
|
175
|
-
| `npm run publish-development` | https://testapi.hailer.biz |
|
|
176
|
-
| `npm run publish-staging` | https://api.hailer.biz |
|
|
130
|
+
**What the CLI itself does** (`@hailer/app-sdk` publish.cjs): `--create` makes the app entry (`v3.app.create`) and writes the `appId` to the manifest; the bundle is packed (`package/` prefix) and POSTed to `/app/publish`; the server hosts it at `https://apps.hailer.com/{workspaceId}/{appId}/`.
|
|
177
131
|
|
|
178
|
-
**
|
|
132
|
+
**What the CLI does NOT do:** icon, name/description updates, workspace sharing. Finish those after publishing: share with `manage_app({ action: 'add_member', appId, member: 'network_<wsId>' })`, and set an icon with `manage_app({ action: 'update', appId, image: <fileId> })` if wanted (icon files MUST be uploaded `isPublic: true`, PNG/JPEG only).
|
|
179
133
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
134
|
+
| Flag | Purpose |
|
|
135
|
+
|------|---------|
|
|
136
|
+
| `--create` | New app entry (clear/replace `appId` in manifest first if reusing a dev manifest) |
|
|
137
|
+
| `--app-name` | Name shown in Hailer (required with `--create`) |
|
|
138
|
+
| `--workspace` | Workspace ID (`config.json` at project root; required with `--create`) |
|
|
139
|
+
| `--market` | Also publish this version to the marketplace (requires `version` + `versionDescription`; server returns `targetId`, auto-saved to manifest) |
|
|
140
|
+
| `--force` | Skip confirmation prompt |
|
|
141
|
+
| `--host` | API URL override — required in cluster environments |
|
|
142
|
+
| `--user-api-key` / `--email` | Else `USER_API_KEY`/`HAILER_USER_API_KEY` env, else `~/.env` (auto-injected in Studio) |
|
|
143
|
+
| `--production` / `--development` / `--staging` / `--local` | Environment preset (the `npm run publish-*` wrappers set these) |
|
|
144
|
+
|
|
145
|
+
**Subsequent publishes:** just `npm run publish-production -- --force` (+ `--host` in Studio) — the manifest `appId` picks the target. Bump `version`/`versionDescription` per release.
|
|
146
|
+
|
|
147
|
+
**Environments:** `publish-production` → api.hailer.com, `publish-development` → testapi.hailer.biz, `publish-staging` → api.hailer.biz.
|
|
148
|
+
|
|
149
|
+
**Verify:** MCP `list_apps()` — URL must be `https://apps.hailer.com/...`, not localhost.
|
|
150
|
+
</prod-publish>
|
|
151
|
+
|
|
152
|
+
<marketplace>
|
|
153
|
+
## Marketplace Publishing
|
|
154
|
+
|
|
155
|
+
Two different things:
|
|
156
|
+
1. **App version publish** (`npm run publish-production -- --market --force`) — uploads files AND registers the version on the marketplace. Requires `version` + `versionDescription` in the manifest; the server returns a `targetId`, auto-saved to `public/manifest.json`.
|
|
157
|
+
2. **Marketplace listing** (MCP `publish_marketplace` with `type: 'app'`) — title, description, icon, images on the listing. Does NOT upload app files.
|
|
158
|
+
|
|
159
|
+
First-time: publish with `--market` (get `targetId`) → `publish_marketplace({ type: 'app', appId, versionId: <targetId>, title, ... })` → note the returned `productId`. Metadata updates later use `productId`; new versions re-publish with `--market`.
|
|
160
|
+
|
|
161
|
+
| ID | What | Where |
|
|
162
|
+
|----|------|-------|
|
|
163
|
+
| `appId` | The app itself | manifest.json |
|
|
164
|
+
| `targetId` | Version entry for marketplace | manifest.json (auto-saved) |
|
|
165
|
+
| `productId` | Marketplace listing | returned by first `publish_marketplace`, find via `browse_marketplace` |
|
|
166
|
+
</marketplace>
|
|
167
|
+
|
|
168
|
+
<gotchas>
|
|
169
|
+
## Gotchas
|
|
170
|
+
|
|
171
|
+
- **Icons must be uploaded `isPublic: true`** — private files render as broken/transparent images. The publish tool handles it; manual `upload_files` must pass the flag.
|
|
172
|
+
- **No SVG icons** — the backend image pipeline (sharp) doesn't serve them; use PNG/JPEG. No SVG gradients in generated icons either (`flatten()` produces transparency — use solid RGB + composite).
|
|
173
|
+
- **`StoreSet` type error** in scaffolded `src/hailer/use-app.ts`: `replace?: false`, not `boolean`.
|
|
174
|
+
- Read the scaffolded project's README — it carries the exact commands for its version.
|
|
175
|
+
</gotchas>
|
|
@@ -12,10 +12,32 @@ triggers:
|
|
|
12
12
|
|
|
13
13
|
Patterns and templates for building Hailer apps with @hailer/app-sdk.
|
|
14
14
|
|
|
15
|
+
<build-philosophy>
|
|
16
|
+
## How to Build Fast: Correct Data First, Theme Does the Looks
|
|
17
|
+
|
|
18
|
+
The goal of the first version is **showing the correct data the user asked for** — not a custom-designed UI. Get the data right; the user iterates on looks afterward. Two rules make apps both fast and good:
|
|
19
|
+
|
|
20
|
+
1. **Spend your effort on the data layer, because that's what's easy to get wrong.** Read the real field/phase/workflow IDs from `workspace/enums.ts` + `fields.ts` (never guess, never use labels as keys), fetch with the SDK, and read field values by ID. A dashboard that shows the *wrong* numbers beautifully is a failure; correct numbers in plain components is a success.
|
|
21
|
+
|
|
22
|
+
2. **Do NOT hand-design UI or build a component library — the scaffold already installed the Hailer theme.** `main.tsx` wires `<ChakraProvider theme={hailerTheme}>`, so **every stock Chakra component is already on Hailer brand** (Nunito Sans, the full Hailer palette, light/dark via system) and there are **214 ready icons** in `src/hailer/theme/icons/`. Compose the UI from plain Chakra primitives — they look right for free:
|
|
23
|
+
- Layout: `Box`, `Flex`, `Grid`, `SimpleGrid`, `Stack`, `Container`
|
|
24
|
+
- Data: `Stat`/`StatLabel`/`StatNumber`/`StatHelpText` (stat cards), `Table`/`Thead`/`Tbody`/`Tr`/`Td`, `Card`/`CardHeader`/`CardBody`
|
|
25
|
+
- Text/state: `Heading`, `Text`, `Badge`, `Tag`, `Spinner`, `Skeleton`, `Alert`
|
|
26
|
+
- Import icons like `import { HailerSearch } from './hailer/theme/icons/HailerSearch'`
|
|
27
|
+
|
|
28
|
+
Don't write custom CSS, custom color values, or bespoke styled components on the first pass. Reach for a Chakra component; it's already themed. The user refines the look later — your job is correct data in a clean themed shell.
|
|
29
|
+
|
|
30
|
+
3. **Always handle the three states** — loading (`Spinner`/`Skeleton`), empty (a `Text`, never a crash), and outside-Hailer (the app must render standalone — never block on `inside`). Real data is async; assume it's missing first.
|
|
31
|
+
|
|
32
|
+
4. **The scaffold's package.json IS the dependency budget — do NOT `npm install` anything else.** The scaffold already ships everything a v1 app needs: `@chakra-ui/react` (+emotion) for UI, `chart.js` + `react-chartjs-2` for charts, `framer-motion` for animation AND drag gestures, `zustand` for state, `immer`, and `@hailer/app-sdk`. No dnd-kit, no other chart libs, no date libs, no component kits — external packages mean unreviewed bytes shipped into the workspace and a look that drifts off-theme. If the requested UX genuinely seems to need a new dependency, FIRST prefer the simpler themed version (e.g. a board moves items with buttons/menus + `hailer.activity.update`, or framer-motion drag), and if that truly won't do, ASK the user before installing anything.
|
|
33
|
+
|
|
34
|
+
5. **VERIFY data exists BEFORE building against it, and AFTER publishing.** An app that renders its empty state on real data is NOT done — it's unverified. Before writing components: check activity counts per phase (MCP `list_activities` with `countOnly: true`, or `core_init`) for every workflow+phase you plan to fetch. If the phase you targeted is empty (e.g. zero matches in "Scheduled"), pick the phases that actually hold the data — don't guess from phase names. After publishing: state what data the app should show ("8 matches in Scheduled, 24 fans across 4 phases") so the user can confirm the live app matches. "Shipped, shows 'no data'" is a failed delivery unless the workspace genuinely has no data — and then say so explicitly.
|
|
35
|
+
</build-philosophy>
|
|
36
|
+
|
|
15
37
|
<critical-rules>
|
|
16
38
|
## CRITICAL: Scaffolding and Data Sources
|
|
17
39
|
|
|
18
|
-
**
|
|
40
|
+
**Scaffold with the exact non-interactive form: `npx @hailer/create-app <name> --template react-ts`.** The name is POSITIONAL (not `--name`), the template must be valid (`react-ts`/`react`/`vanilla-ts`/`svelte-ts`/…, NOT `minimal`), and the dir must be fresh — that combination runs with zero prompts. A bare `npx @hailer/create-app`, a wrong `--name` flag, an invalid template, or piping input all drop into an interactive prompt that hangs the agent. Scaffold fresh, never copy an existing app, never hand-create the structure. (Apps are script-only — no MCP scaffold tool exists.)
|
|
19
41
|
|
|
20
42
|
**For project data structure (workflows, fields, phases):**
|
|
21
43
|
- READ workspace/ TypeScript files directly (fields.ts, phases.ts, enums.ts)
|
|
@@ -171,7 +193,7 @@ export default function useHailer() {
|
|
|
171
193
|
|
|
172
194
|
### Giuseppe Rule
|
|
173
195
|
|
|
174
|
-
After `
|
|
196
|
+
After scaffolding with `npx @hailer/create-app`, ALWAYS replace `src/hailer/use-hailer.ts` with the shared-state version above.
|
|
175
197
|
</usehailer-fix>
|
|
176
198
|
|
|
177
199
|
<sdk-api>
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hailer-ui-guide
|
|
3
|
+
description: Hailer UI structure and navigation guide for AI Helper
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
triggers:
|
|
6
|
+
- hailer ui
|
|
7
|
+
- hailer interface
|
|
8
|
+
- onboarding
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Hailer UI Guide
|
|
12
|
+
|
|
13
|
+
Complete guide to Hailer's user interface for providing accurate navigation assistance.
|
|
14
|
+
|
|
15
|
+
<layout>
|
|
16
|
+
## Main Layout Structure
|
|
17
|
+
|
|
18
|
+
Hailer uses a three-column layout:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
┌─────────────────────────────────────────────────────────┐
|
|
22
|
+
│ Top Toolbar (mobile only) │
|
|
23
|
+
├────────┬────────────────────────────┬───────────────────┤
|
|
24
|
+
│ │ │ │
|
|
25
|
+
│ Left │ Main Content │ Sidenav │
|
|
26
|
+
│ Nav │ (router-outlet) │ (400px) │
|
|
27
|
+
│ (56px) │ │ │
|
|
28
|
+
│ │ │ │
|
|
29
|
+
├────────┴────────────────────────────┴───────────────────┤
|
|
30
|
+
│ Mobile Navigation (mobile only) │
|
|
31
|
+
└─────────────────────────────────────────────────────────┘
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**Desktop (>600px):**
|
|
35
|
+
- Left sidebar: 56px vertical icon menu
|
|
36
|
+
- Main content: fills remaining space
|
|
37
|
+
- Right sidenav: 400px panel for activity/discussion details
|
|
38
|
+
|
|
39
|
+
**Mobile (<=600px):**
|
|
40
|
+
- Top toolbar visible
|
|
41
|
+
- Full-screen sidenav (100vw)
|
|
42
|
+
- Bottom navigation bar
|
|
43
|
+
</layout>
|
|
44
|
+
|
|
45
|
+
<left-nav>
|
|
46
|
+
## Left Navigation Menu
|
|
47
|
+
|
|
48
|
+
Vertical icon menu on the left side (always visible on desktop).
|
|
49
|
+
|
|
50
|
+
**Menu items from top to bottom:**
|
|
51
|
+
1. **Discussions** (icon: hailer-discussion) - Chat and team discussions
|
|
52
|
+
2. **Feed** (icon: hailer-feed) - Activity feed and updates
|
|
53
|
+
3. **Calendar** (icon: hailer-calendar) - Events and schedules
|
|
54
|
+
4. **Activities** (icon: hailer-activity) - Workflows and kanban boards
|
|
55
|
+
5. **Apps** (icon: hailer-apps) - Custom applications
|
|
56
|
+
6. **People** (icon: hailer-people) - User directory
|
|
57
|
+
|
|
58
|
+
**Bottom section:**
|
|
59
|
+
- **Settings** (icon: hailer-settings) - Workspace settings (admins only)
|
|
60
|
+
- **User profile** - Opens user menu with:
|
|
61
|
+
- Profile settings
|
|
62
|
+
- Language selection
|
|
63
|
+
- Dark/light mode toggle
|
|
64
|
+
- Logout
|
|
65
|
+
|
|
66
|
+
**Navigation instruction example:**
|
|
67
|
+
"Click the 'Activities' icon in the left menu (4th from top, looks like a kanban board)"
|
|
68
|
+
</left-nav>
|
|
69
|
+
|
|
70
|
+
<activities-section>
|
|
71
|
+
## Activities Section (Workflows)
|
|
72
|
+
|
|
73
|
+
When user navigates to `/activities`:
|
|
74
|
+
|
|
75
|
+
**Workflow List View:**
|
|
76
|
+
- Shows all available workflows as cards
|
|
77
|
+
- Each card shows workflow name and icon
|
|
78
|
+
- Click a workflow to open it
|
|
79
|
+
|
|
80
|
+
**Workflow View (Kanban):**
|
|
81
|
+
URL: `/activities/{workflowId}`
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
┌─────────────────────────────────────────────────────────┐
|
|
85
|
+
│ Workflow Name [+ Add] [View Toggle] │
|
|
86
|
+
├──────────┬──────────┬──────────┬──────────┬────────────┤
|
|
87
|
+
│ Phase 1 │ Phase 2 │ Phase 3 │ Phase 4 │ Phase 5 │
|
|
88
|
+
│ (New) │ (Active) │(Review) │ (Done) │ (Archive) │
|
|
89
|
+
├──────────┼──────────┼──────────┼──────────┼────────────┤
|
|
90
|
+
│ [Card] │ [Card] │ [Card] │ │ │
|
|
91
|
+
│ [Card] │ [Card] │ │ │ │
|
|
92
|
+
│ [Card] │ │ │ │ │
|
|
93
|
+
└──────────┴──────────┴──────────┴──────────┴────────────┘
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**View modes** (toggle in top-right):
|
|
97
|
+
- **Kanban** - Cards in columns by phase (default)
|
|
98
|
+
- **Table** - List view with sortable columns
|
|
99
|
+
- **Calendar** - Timeline/calendar view
|
|
100
|
+
- **Map** - Location-based view (if enabled)
|
|
101
|
+
|
|
102
|
+
**Actions:**
|
|
103
|
+
- **Create activity:** Click [+ Add] button top-right, or click empty area in phase column
|
|
104
|
+
- **Open activity:** Click any card to open in sidenav
|
|
105
|
+
- **Move activity:** Drag card to another phase column, OR open card and use phase selector
|
|
106
|
+
- **Filter:** Use search bar or filter controls at top
|
|
107
|
+
</activities-section>
|
|
108
|
+
|
|
109
|
+
<activity-sidenav>
|
|
110
|
+
## Activity Sidenav (Right Panel)
|
|
111
|
+
|
|
112
|
+
Opens when user clicks an activity card. Width: 400px on desktop, fullscreen on mobile.
|
|
113
|
+
|
|
114
|
+
**Header section:**
|
|
115
|
+
- Activity name (large text)
|
|
116
|
+
- Workspace badge (colored tag)
|
|
117
|
+
- Workflow badge (colored tag, clickable - navigates to workflow)
|
|
118
|
+
- Copy tag button (mentions activity in discussions)
|
|
119
|
+
- Call button (if video calls enabled)
|
|
120
|
+
|
|
121
|
+
**Tab bar** (icons below header):
|
|
122
|
+
1. **Detail** (icon: hailer-activity) - Main fields and info
|
|
123
|
+
2. **Participants** (icon: hailer-group) - Followers with badge count
|
|
124
|
+
3. **Discussion** (icon: hailer-discussion) - Activity chat with unread badge
|
|
125
|
+
4. **Files** (icon: hailer-attach) - Attachments with count badge
|
|
126
|
+
5. **Location** (icon: hailer-location) - Map view (if enabled)
|
|
127
|
+
6. **Linked** (icon: hailer-linked-activity) - Related activities with count
|
|
128
|
+
7. **Options** (icon: hailer-settings) - Activity settings (if permitted)
|
|
129
|
+
|
|
130
|
+
**Control buttons** (bottom, visible in edit/create mode):
|
|
131
|
+
- **Cancel** - Discard changes
|
|
132
|
+
- **Save** (with checkmark icon) - Save changes
|
|
133
|
+
|
|
134
|
+
**Modes:**
|
|
135
|
+
- **View mode:** Read-only display of activity
|
|
136
|
+
- **Edit mode:** Fields become editable, Save/Cancel buttons appear
|
|
137
|
+
- **Create mode:** Empty form for new activity
|
|
138
|
+
|
|
139
|
+
**Instruction examples:**
|
|
140
|
+
- "Click the 'Detail' tab (first icon) to see all fields"
|
|
141
|
+
- "Click the 'Discussion' tab (chat bubble icon) to see comments"
|
|
142
|
+
- "Click 'Save' in the bottom right to save your changes"
|
|
143
|
+
</activity-sidenav>
|
|
144
|
+
|
|
145
|
+
<phase-transitions>
|
|
146
|
+
## Moving Activities Between Phases
|
|
147
|
+
|
|
148
|
+
**Method 1: Drag and Drop (Kanban view)**
|
|
149
|
+
"Drag the card from the '{current phase}' column and drop it in the '{target phase}' column"
|
|
150
|
+
|
|
151
|
+
**Method 2: Phase Selector (in activity sidenav)**
|
|
152
|
+
"Open the activity, click the phase dropdown near the top, and select '{target phase}'"
|
|
153
|
+
|
|
154
|
+
**Phase order:**
|
|
155
|
+
Phases are displayed left-to-right in the order defined by workflow.
|
|
156
|
+
First phase = leftmost column (usually "New" or "Draft")
|
|
157
|
+
Last phase = rightmost column (usually "Done" or "Archived")
|
|
158
|
+
</phase-transitions>
|
|
159
|
+
|
|
160
|
+
<discussions-section>
|
|
161
|
+
## Discussions Section
|
|
162
|
+
|
|
163
|
+
URL: `/discussions`
|
|
164
|
+
|
|
165
|
+
**Discussion list:**
|
|
166
|
+
- Shows all discussions user is part of
|
|
167
|
+
- Unread count badges on each discussion
|
|
168
|
+
- Search bar at top
|
|
169
|
+
|
|
170
|
+
**Discussion view:**
|
|
171
|
+
- Message list (chronological)
|
|
172
|
+
- Input field at bottom
|
|
173
|
+
- File attachment button
|
|
174
|
+
- Emoji picker
|
|
175
|
+
- @mention support
|
|
176
|
+
|
|
177
|
+
**Activity discussions:**
|
|
178
|
+
- Activities can have linked discussions
|
|
179
|
+
- Access via "Discussion" tab in activity sidenav
|
|
180
|
+
- Must "Join" discussion to see messages
|
|
181
|
+
</discussions-section>
|
|
182
|
+
|
|
183
|
+
<common-patterns>
|
|
184
|
+
## Common UI Patterns
|
|
185
|
+
|
|
186
|
+
**Buttons:**
|
|
187
|
+
- Primary action: Blue filled button (e.g., "Save", "Create")
|
|
188
|
+
- Secondary action: Outlined button (e.g., "Cancel")
|
|
189
|
+
- Icon buttons: Small circular buttons with icons
|
|
190
|
+
|
|
191
|
+
**Cards:**
|
|
192
|
+
- White background (light mode) / Dark gray (dark mode)
|
|
193
|
+
- Rounded corners
|
|
194
|
+
- Subtle shadow
|
|
195
|
+
- Click to select/open
|
|
196
|
+
|
|
197
|
+
**Badges:**
|
|
198
|
+
- Small colored pills showing counts or status
|
|
199
|
+
- Red badge = requires attention
|
|
200
|
+
- Gray badge = informational
|
|
201
|
+
|
|
202
|
+
**Tooltips:**
|
|
203
|
+
- Hover over icon buttons to see label
|
|
204
|
+
- Useful for understanding unclear icons
|
|
205
|
+
|
|
206
|
+
**Color coding:**
|
|
207
|
+
- Phases have assigned colors (visible in kanban columns)
|
|
208
|
+
- Workflow badges use workflow color
|
|
209
|
+
- Workspace badges use workspace color
|
|
210
|
+
</common-patterns>
|
|
211
|
+
|
|
212
|
+
<context-to-instruction>
|
|
213
|
+
## Translating Context to Instructions
|
|
214
|
+
|
|
215
|
+
When you receive user context, use these patterns:
|
|
216
|
+
|
|
217
|
+
**Context:** `section: 'activities', view.mode: 'kanban', view.workflowName: 'Sales'`
|
|
218
|
+
**Know:** User is looking at Sales workflow kanban board
|
|
219
|
+
|
|
220
|
+
**Context:** `sidenav.open: true, sidenav.type: 'activity', sidenav.activeTab: 'detail'`
|
|
221
|
+
**Know:** User has an activity open and is viewing the detail tab
|
|
222
|
+
|
|
223
|
+
**Context:** `sidenav.mode: 'edit', sidenav.buttons: ['save', 'cancel']`
|
|
224
|
+
**Know:** User is editing an activity, Save and Cancel buttons are visible
|
|
225
|
+
|
|
226
|
+
**Context:** `user.role: 'admin'`
|
|
227
|
+
**Know:** User can access Settings and admin features
|
|
228
|
+
|
|
229
|
+
**Instruction patterns by context:**
|
|
230
|
+
|
|
231
|
+
| User location | They want to... | Say... |
|
|
232
|
+
|--------------|-----------------|--------|
|
|
233
|
+
| Kanban view | Create activity | "Click the '+ Add' button in the top right, or click the '+' at the bottom of any phase column" |
|
|
234
|
+
| Kanban view | Open activity | "Click on the card you want to open" |
|
|
235
|
+
| Activity sidenav | Edit fields | "Click the 'Edit' button (pencil icon) to enable editing, make your changes, then click 'Save'" |
|
|
236
|
+
| Activity sidenav | See comments | "Click the 'Discussion' tab (speech bubble icon, 3rd from left)" |
|
|
237
|
+
| Activity sidenav | Move to phase | "Click the phase badge at the top and select the new phase from the dropdown" |
|
|
238
|
+
| Activity edit | Save changes | "Click the 'Save' button in the bottom right corner" |
|
|
239
|
+
| Activity edit | Cancel changes | "Click 'Cancel' on the left to discard changes" |
|
|
240
|
+
</context-to-instruction>
|
|
241
|
+
|
|
242
|
+
<troubleshooting>
|
|
243
|
+
## Common User Issues
|
|
244
|
+
|
|
245
|
+
**"I can't see the workflow"**
|
|
246
|
+
- Check if user has permission to the workflow
|
|
247
|
+
- Admin may need to grant access in workflow settings
|
|
248
|
+
|
|
249
|
+
**"I can't edit this activity"**
|
|
250
|
+
- Check if user has edit permission for this phase
|
|
251
|
+
- Some phases may be read-only for certain users
|
|
252
|
+
|
|
253
|
+
**"I can't move the card"**
|
|
254
|
+
- Phase transitions may be restricted
|
|
255
|
+
- Check workflow settings for allowed transitions
|
|
256
|
+
|
|
257
|
+
**"Where are my discussions?"**
|
|
258
|
+
- User must be a member of the discussion
|
|
259
|
+
- Check "Discussions" in left menu
|
|
260
|
+
- For activity discussions, must "Join" first
|
|
261
|
+
|
|
262
|
+
**"I can't see the Settings"**
|
|
263
|
+
- Settings is admin-only
|
|
264
|
+
- Regular users don't see this menu item
|
|
265
|
+
</troubleshooting>
|