@hailer/mcp 1.1.12 → 1.1.13
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/CHANGELOG.md +0 -7
- package/{.claude → dist}/CLAUDE.md +2 -2
- package/dist/app.js +18 -5
- package/dist/bot/bot-config.d.ts +10 -1
- package/dist/bot/bot-config.js +64 -3
- package/dist/bot/bot-manager.d.ts +2 -0
- package/dist/bot/bot-manager.js +9 -2
- package/dist/bot/bot.d.ts +33 -0
- package/dist/bot/bot.js +461 -160
- package/dist/bot/services/message-classifier.js +17 -0
- package/dist/bot/services/permission-guard.d.ts +52 -0
- package/dist/bot/services/permission-guard.js +149 -0
- package/dist/bot/services/types.d.ts +5 -0
- package/dist/bot/services/typing-indicator.d.ts +6 -1
- package/dist/bot/services/typing-indicator.js +19 -3
- package/dist/cli.js +0 -0
- package/dist/config.d.ts +6 -1
- package/dist/config.js +43 -0
- package/dist/core.js +3 -6
- package/dist/lib/discussion-lock.d.ts +42 -0
- package/dist/lib/discussion-lock.js +110 -0
- package/dist/mcp/UserContextCache.d.ts +5 -0
- package/dist/mcp/UserContextCache.js +51 -19
- package/dist/mcp/hailer-clients.d.ts +19 -1
- package/dist/mcp/hailer-clients.js +158 -24
- package/dist/mcp/session-store.d.ts +68 -0
- package/dist/mcp/session-store.js +169 -0
- package/dist/mcp/signal-handler.js +2 -0
- package/dist/mcp/tool-registry.d.ts +17 -4
- package/dist/mcp/tool-registry.js +37 -7
- package/dist/mcp/tools/activity.js +99 -7
- package/dist/mcp/tools/app-scaffold.js +304 -336
- package/dist/mcp/tools/bot-config/constants.d.ts +23 -0
- package/dist/mcp/tools/bot-config/constants.js +94 -0
- package/dist/mcp/tools/bot-config/core.d.ts +253 -0
- package/dist/mcp/tools/bot-config/core.js +2456 -0
- package/dist/mcp/tools/bot-config/index.d.ts +10 -0
- package/dist/mcp/tools/bot-config/index.js +59 -0
- package/dist/mcp/tools/bot-config/tools.d.ts +7 -0
- package/dist/mcp/tools/bot-config/tools.js +15 -0
- package/dist/mcp/tools/bot-config/types.d.ts +50 -0
- package/dist/mcp/tools/bot-config/types.js +6 -0
- package/dist/mcp/tools/bug-fixer-tools.d.ts +45 -0
- package/dist/mcp/tools/bug-fixer-tools.js +1096 -0
- package/dist/mcp/tools/company.d.ts +9 -0
- package/dist/mcp/tools/company.js +88 -0
- package/dist/mcp/tools/discussion.js +68 -0
- package/dist/mcp/tools/document.d.ts +11 -0
- package/dist/mcp/tools/document.js +741 -0
- package/dist/mcp/tools/investigate.d.ts +9 -0
- package/dist/mcp/tools/investigate.js +254 -0
- package/dist/mcp/tools/workflow-permissions.d.ts +15 -0
- package/dist/mcp/tools/workflow-permissions.js +204 -0
- package/dist/mcp/tools/workflow.js +57 -18
- package/dist/mcp/utils/index.d.ts +2 -0
- package/dist/mcp/utils/index.js +12 -1
- package/dist/mcp/utils/role-utils.d.ts +74 -0
- package/dist/mcp/utils/role-utils.js +151 -0
- package/dist/mcp/utils/types.d.ts +43 -1
- package/dist/mcp/utils/types.js +14 -0
- package/dist/mcp/webhook-handler.d.ts +4 -0
- package/dist/mcp/webhook-handler.js +8 -0
- package/dist/mcp-server.d.ts +23 -2
- package/dist/mcp-server.js +639 -127
- package/dist/plugins/vipunen/client.d.ts +150 -0
- package/dist/plugins/vipunen/client.js +535 -0
- package/dist/plugins/vipunen/config/schema-config.json +19 -0
- package/dist/plugins/vipunen/config/schema-doc.json +22 -0
- package/dist/plugins/vipunen/index.d.ts +41 -0
- package/dist/plugins/vipunen/index.js +88 -0
- package/dist/plugins/vipunen/tools.d.ts +26 -0
- package/dist/plugins/vipunen/tools.js +501 -0
- package/dist/stdio-server.d.ts +14 -0
- package/dist/stdio-server.js +101 -0
- package/package.json +2 -1
- package/.claude/agents/agent-ada-skill-builder.md +0 -94
- package/.claude/agents/agent-alejandro-function-fields.md +0 -342
- package/.claude/agents/agent-bjorn-config-audit.md +0 -103
- package/.claude/agents/agent-builder-agent-creator.md +0 -130
- package/.claude/agents/agent-code-simplifier.md +0 -53
- package/.claude/agents/agent-dmitri-activity-crud.md +0 -159
- package/.claude/agents/agent-giuseppe-app-builder.md +0 -247
- package/.claude/agents/agent-gunther-mcp-tools.md +0 -39
- package/.claude/agents/agent-helga-workflow-config.md +0 -204
- package/.claude/agents/agent-igor-activity-mover-automation.md +0 -125
- package/.claude/agents/agent-ingrid-doc-templates.md +0 -261
- package/.claude/agents/agent-ivan-monolith.md +0 -154
- package/.claude/agents/agent-kenji-data-reader.md +0 -86
- package/.claude/agents/agent-lars-code-inspector.md +0 -102
- package/.claude/agents/agent-marco-mockup-builder.md +0 -110
- package/.claude/agents/agent-marcus-api-documenter.md +0 -323
- package/.claude/agents/agent-marketplace-publisher.md +0 -280
- package/.claude/agents/agent-marketplace-reviewer.md +0 -309
- package/.claude/agents/agent-permissions-handler.md +0 -208
- package/.claude/agents/agent-simple-writer.md +0 -48
- package/.claude/agents/agent-svetlana-code-review.md +0 -171
- package/.claude/agents/agent-tanya-test-runner.md +0 -333
- package/.claude/agents/agent-ui-designer.md +0 -100
- package/.claude/agents/agent-viktor-sql-insights.md +0 -212
- package/.claude/agents/agent-web-search.md +0 -55
- package/.claude/agents/agent-yevgeni-discussions.md +0 -45
- package/.claude/agents/agent-zara-zapier.md +0 -159
- package/.claude/commands/app-squad.md +0 -135
- package/.claude/commands/audit-squad.md +0 -158
- package/.claude/commands/autoplan.md +0 -563
- 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/debug-squad.md +0 -303
- package/.claude/commands/doc-squad.md +0 -65
- package/.claude/commands/handoff.md +0 -137
- package/.claude/commands/health.md +0 -49
- package/.claude/commands/help.md +0 -29
- package/.claude/commands/help:agents.md +0 -151
- 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 -93
- 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/learn-auto.md +0 -120
- package/.claude/commands/learn.md +0 -120
- package/.claude/commands/mcp-list.md +0 -27
- package/.claude/commands/onboard-squad.md +0 -140
- package/.claude/commands/plan-workspace.md +0 -732
- package/.claude/commands/prd.md +0 -130
- package/.claude/commands/project-status.md +0 -82
- package/.claude/commands/publish.md +0 -138
- package/.claude/commands/recap.md +0 -69
- package/.claude/commands/restore.md +0 -64
- package/.claude/commands/review-squad.md +0 -152
- package/.claude/commands/save.md +0 -24
- package/.claude/commands/stats.md +0 -19
- package/.claude/commands/swarm.md +0 -210
- package/.claude/commands/tool-builder.md +0 -39
- package/.claude/commands/ws-pull.md +0 -44
- package/.claude/hooks/_shared-memory.cjs +0 -305
- package/.claude/hooks/_utils.cjs +0 -108
- package/.claude/hooks/agent-failure-detector.cjs +0 -383
- package/.claude/hooks/agent-usage-logger.cjs +0 -204
- package/.claude/hooks/app-edit-guard.cjs +0 -494
- package/.claude/hooks/auto-learn.cjs +0 -304
- package/.claude/hooks/bash-guard.cjs +0 -272
- package/.claude/hooks/builder-mode-manager.cjs +0 -354
- package/.claude/hooks/bulk-activity-guard.cjs +0 -271
- package/.claude/hooks/context-watchdog.cjs +0 -230
- package/.claude/hooks/delegation-reminder.cjs +0 -465
- package/.claude/hooks/design-system-lint.cjs +0 -271
- package/.claude/hooks/post-scaffold-hook.cjs +0 -181
- package/.claude/hooks/prompt-guard.cjs +0 -354
- package/.claude/hooks/publish-template-guard.cjs +0 -147
- package/.claude/hooks/session-start.cjs +0 -35
- package/.claude/hooks/shared-memory-writer.cjs +0 -147
- package/.claude/hooks/skill-injector.cjs +0 -140
- package/.claude/hooks/skill-usage-logger.cjs +0 -258
- package/.claude/hooks/src-edit-guard.cjs +0 -240
- package/.claude/hooks/sync-marketplace-agents.cjs +0 -346
- package/.claude/settings.json +0 -257
- package/.claude/skills/SDK-activity-patterns/SKILL.md +0 -428
- package/.claude/skills/SDK-document-templates/SKILL.md +0 -1033
- package/.claude/skills/SDK-function-fields/SKILL.md +0 -542
- package/.claude/skills/SDK-generate-skill/SKILL.md +0 -92
- package/.claude/skills/SDK-init-skill/SKILL.md +0 -127
- package/.claude/skills/SDK-insight-queries/SKILL.md +0 -787
- package/.claude/skills/SDK-ws-config-skill/SKILL.md +0 -1139
- package/.claude/skills/agent-structure/SKILL.md +0 -98
- package/.claude/skills/api-documentation-patterns/SKILL.md +0 -474
- package/.claude/skills/chrome-mcp-reference/SKILL.md +0 -370
- package/.claude/skills/delegation-routing/SKILL.md +0 -202
- package/.claude/skills/frontend-design/SKILL.md +0 -254
- package/.claude/skills/hailer-activity-mover/SKILL.md +0 -213
- package/.claude/skills/hailer-api-client/SKILL.md +0 -518
- package/.claude/skills/hailer-app-builder/SKILL.md +0 -1434
- package/.claude/skills/hailer-apps-pictures/SKILL.md +0 -269
- package/.claude/skills/hailer-design-system/SKILL.md +0 -235
- package/.claude/skills/hailer-monolith-automations/SKILL.md +0 -686
- package/.claude/skills/hailer-permissions-system/SKILL.md +0 -121
- package/.claude/skills/hailer-project-protocol/SKILL.md +0 -488
- package/.claude/skills/hailer-rest-api/SKILL.md +0 -61
- package/.claude/skills/hailer-rest-api/hailer-activities.md +0 -184
- package/.claude/skills/hailer-rest-api/hailer-admin.md +0 -473
- package/.claude/skills/hailer-rest-api/hailer-calendar.md +0 -256
- package/.claude/skills/hailer-rest-api/hailer-feed.md +0 -249
- package/.claude/skills/hailer-rest-api/hailer-insights.md +0 -195
- package/.claude/skills/hailer-rest-api/hailer-messaging.md +0 -276
- package/.claude/skills/hailer-rest-api/hailer-workflows.md +0 -283
- package/.claude/skills/insight-join-patterns/SKILL.md +0 -174
- package/.claude/skills/integration-patterns/SKILL.md +0 -421
- package/.claude/skills/json-only-output/SKILL.md +0 -72
- package/.claude/skills/lsp-setup/SKILL.md +0 -160
- package/.claude/skills/mcp-direct-tools/SKILL.md +0 -153
- package/.claude/skills/optional-parameters/SKILL.md +0 -72
- package/.claude/skills/publish-hailer-app/SKILL.md +0 -244
- package/.claude/skills/testing-patterns/SKILL.md +0 -630
- package/.claude/skills/tool-builder/SKILL.md +0 -250
- package/.claude/skills/tool-parameter-usage/SKILL.md +0 -126
- package/.claude/skills/tool-response-verification/SKILL.md +0 -92
- package/.claude/skills/zapier-hailer-patterns/SKILL.md +0 -581
- package/.mcp.json +0 -13
- package/.opencode/agent/agent-ada-skill-builder.md +0 -35
- package/.opencode/agent/agent-alejandro-function-fields.md +0 -39
- package/.opencode/agent/agent-bjorn-config-audit.md +0 -36
- package/.opencode/agent/agent-builder-agent-creator.md +0 -39
- package/.opencode/agent/agent-code-simplifier.md +0 -31
- package/.opencode/agent/agent-dmitri-activity-crud.md +0 -40
- package/.opencode/agent/agent-giuseppe-app-builder.md +0 -37
- package/.opencode/agent/agent-gunther-mcp-tools.md +0 -39
- package/.opencode/agent/agent-helga-workflow-config.md +0 -203
- package/.opencode/agent/agent-igor-activity-mover-automation.md +0 -46
- package/.opencode/agent/agent-ingrid-doc-templates.md +0 -39
- package/.opencode/agent/agent-ivan-monolith.md +0 -46
- package/.opencode/agent/agent-kenji-data-reader.md +0 -53
- package/.opencode/agent/agent-lars-code-inspector.md +0 -28
- package/.opencode/agent/agent-marco-mockup-builder.md +0 -42
- package/.opencode/agent/agent-marcus-api-documenter.md +0 -53
- package/.opencode/agent/agent-marketplace-publisher.md +0 -44
- package/.opencode/agent/agent-marketplace-reviewer.md +0 -42
- package/.opencode/agent/agent-permissions-handler.md +0 -50
- package/.opencode/agent/agent-simple-writer.md +0 -45
- package/.opencode/agent/agent-svetlana-code-review.md +0 -39
- package/.opencode/agent/agent-tanya-test-runner.md +0 -57
- package/.opencode/agent/agent-ui-designer.md +0 -56
- package/.opencode/agent/agent-viktor-sql-insights.md +0 -34
- package/.opencode/agent/agent-web-search.md +0 -42
- package/.opencode/agent/agent-yevgeni-discussions.md +0 -37
- package/.opencode/agent/agent-zara-zapier.md +0 -53
- package/.opencode/commands/app-squad.md +0 -135
- package/.opencode/commands/audit-squad.md +0 -158
- package/.opencode/commands/autoplan.md +0 -563
- package/.opencode/commands/cleanup-squad.md +0 -98
- package/.opencode/commands/config-squad.md +0 -106
- package/.opencode/commands/crud-squad.md +0 -87
- package/.opencode/commands/data-squad.md +0 -97
- package/.opencode/commands/debug-squad.md +0 -303
- package/.opencode/commands/doc-squad.md +0 -65
- package/.opencode/commands/handoff.md +0 -137
- package/.opencode/commands/health.md +0 -49
- package/.opencode/commands/help-agents.md +0 -151
- package/.opencode/commands/help-commands.md +0 -32
- package/.opencode/commands/help-faq.md +0 -29
- package/.opencode/commands/help-plugins.md +0 -28
- package/.opencode/commands/help-skills.md +0 -7
- package/.opencode/commands/help-tools.md +0 -40
- package/.opencode/commands/help.md +0 -28
- package/.opencode/commands/hotfix-squad.md +0 -112
- package/.opencode/commands/integration-squad.md +0 -82
- package/.opencode/commands/janitor-squad.md +0 -167
- package/.opencode/commands/learn-auto.md +0 -120
- package/.opencode/commands/learn.md +0 -120
- package/.opencode/commands/mcp-list.md +0 -27
- package/.opencode/commands/onboard-squad.md +0 -140
- package/.opencode/commands/plan-workspace.md +0 -732
- package/.opencode/commands/prd.md +0 -131
- package/.opencode/commands/project-status.md +0 -82
- package/.opencode/commands/publish.md +0 -138
- package/.opencode/commands/recap.md +0 -69
- package/.opencode/commands/restore.md +0 -64
- package/.opencode/commands/review-squad.md +0 -152
- package/.opencode/commands/save.md +0 -24
- package/.opencode/commands/stats.md +0 -19
- package/.opencode/commands/swarm.md +0 -210
- package/.opencode/commands/tool-builder.md +0 -39
- package/.opencode/commands/ws-pull.md +0 -44
- package/.opencode/opencode.json +0 -28
- package/SESSION-HANDOFF.md +0 -68
- package/inbox/2026-03-04-bot-config-patterns.md +0 -24
- package/scripts/postinstall.cjs +0 -64
- package/scripts/test-hal-tools.ts +0 -154
|
@@ -1,254 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: frontend-design
|
|
3
|
-
version: 1.0.0
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Frontend Design
|
|
7
|
-
|
|
8
|
-
<purpose>
|
|
9
|
-
Design principles and patterns for creating effective UI mockups. Covers layout systems, visual hierarchy, color and typography, responsive design, and component organization for prototype and demo applications.
|
|
10
|
-
</purpose>
|
|
11
|
-
|
|
12
|
-
<patterns>
|
|
13
|
-
|
|
14
|
-
## Layout Principles
|
|
15
|
-
|
|
16
|
-
### Grid Systems
|
|
17
|
-
- **12-column grid**: Standard for flexibility (divides into 2, 3, 4, 6)
|
|
18
|
-
- **Content width**: 1200px max for readability, centered
|
|
19
|
-
- **Gutters**: 16-24px between columns
|
|
20
|
-
- **Margins**: 16px mobile, 24px tablet, 32px+ desktop
|
|
21
|
-
|
|
22
|
-
### Common Layouts
|
|
23
|
-
```
|
|
24
|
-
Dashboard: [Sidebar 240px] [Main Content flex-1]
|
|
25
|
-
List View: [Filters 280px] [Table/Cards flex-1]
|
|
26
|
-
Detail View: [Main 2/3] [Sidebar 1/3]
|
|
27
|
-
Form: [Labels 1/3] [Inputs 2/3] or stacked on mobile
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
### Spacing Scale
|
|
31
|
-
Use consistent spacing multipliers:
|
|
32
|
-
- **4px**: Tight (icon padding)
|
|
33
|
-
- **8px**: Compact (button padding)
|
|
34
|
-
- **16px**: Default (card padding, list gaps)
|
|
35
|
-
- **24px**: Comfortable (section gaps)
|
|
36
|
-
- **32px**: Spacious (page sections)
|
|
37
|
-
- **48px+**: Major sections
|
|
38
|
-
|
|
39
|
-
## Visual Hierarchy
|
|
40
|
-
|
|
41
|
-
### Size Hierarchy
|
|
42
|
-
```
|
|
43
|
-
Hero/Page Title: 32-48px, bold
|
|
44
|
-
Section Headers: 24-28px, semibold
|
|
45
|
-
Card Titles: 18-20px, medium
|
|
46
|
-
Body Text: 14-16px, regular
|
|
47
|
-
Captions/Labels: 12-13px, regular/medium
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### Emphasis Techniques
|
|
51
|
-
1. **Size**: Larger = more important
|
|
52
|
-
2. **Weight**: Bold draws attention
|
|
53
|
-
3. **Color**: Brand color for CTAs, muted for secondary
|
|
54
|
-
4. **Space**: More whitespace = more prominence
|
|
55
|
-
5. **Position**: Top-left reads first (F-pattern)
|
|
56
|
-
|
|
57
|
-
### Information Density
|
|
58
|
-
- **Scannable**: Bold labels, regular values
|
|
59
|
-
- **Grouped**: Related info in cards/sections
|
|
60
|
-
- **Progressive**: Summary first, details on demand
|
|
61
|
-
|
|
62
|
-
## Color Usage
|
|
63
|
-
|
|
64
|
-
### Semantic Colors
|
|
65
|
-
```
|
|
66
|
-
Primary: Brand action (buttons, links)
|
|
67
|
-
Secondary: Less important actions
|
|
68
|
-
Success: Confirmations, positive states (green)
|
|
69
|
-
Warning: Caution, attention needed (yellow/orange)
|
|
70
|
-
Error: Problems, destructive actions (red)
|
|
71
|
-
Info: Neutral information (blue)
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### Background Hierarchy
|
|
75
|
-
```
|
|
76
|
-
Page: gray.50 or white
|
|
77
|
-
Card: white (with subtle shadow)
|
|
78
|
-
Hover: gray.100
|
|
79
|
-
Selected: brand.50 or blue.50
|
|
80
|
-
Disabled: gray.100 with gray.400 text
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
### Contrast Requirements
|
|
84
|
-
- Text on background: 4.5:1 minimum (WCAG AA)
|
|
85
|
-
- Large text: 3:1 minimum
|
|
86
|
-
- UI components: 3:1 against adjacent colors
|
|
87
|
-
|
|
88
|
-
## Typography
|
|
89
|
-
|
|
90
|
-
### Font Pairing
|
|
91
|
-
- **Headings**: Inter, Poppins, or system sans-serif
|
|
92
|
-
- **Body**: Same family, different weight
|
|
93
|
-
- **Monospace**: For code, IDs, technical values
|
|
94
|
-
|
|
95
|
-
### Line Height
|
|
96
|
-
- Headings: 1.2-1.3
|
|
97
|
-
- Body text: 1.5-1.6
|
|
98
|
-
- UI labels: 1.2
|
|
99
|
-
|
|
100
|
-
### Text Alignment
|
|
101
|
-
- Left-align body text (never justify)
|
|
102
|
-
- Center for short headings, CTAs
|
|
103
|
-
- Right-align numbers in tables
|
|
104
|
-
|
|
105
|
-
## Component Patterns
|
|
106
|
-
|
|
107
|
-
### Cards
|
|
108
|
-
```
|
|
109
|
-
┌─────────────────────────┐
|
|
110
|
-
│ [Icon] Title [Menu]│ ← Header: 16px padding
|
|
111
|
-
├─────────────────────────┤
|
|
112
|
-
│ │
|
|
113
|
-
│ Content area │ ← Body: 16-24px padding
|
|
114
|
-
│ │
|
|
115
|
-
├─────────────────────────┤
|
|
116
|
-
│ [Secondary] [Primary] │ ← Footer: actions right-aligned
|
|
117
|
-
└─────────────────────────┘
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
### Tables
|
|
121
|
-
- Header: Bold, uppercase or title case, sticky
|
|
122
|
-
- Rows: Alternating or bordered
|
|
123
|
-
- Actions: End of row, icon buttons or dropdown
|
|
124
|
-
- Selection: Checkbox in first column
|
|
125
|
-
- Sorting: Click header, show arrow indicator
|
|
126
|
-
|
|
127
|
-
### Forms
|
|
128
|
-
- Labels above inputs (mobile-friendly)
|
|
129
|
-
- Required indicator: asterisk or "(required)"
|
|
130
|
-
- Error messages below input, red text
|
|
131
|
-
- Help text below input, muted color
|
|
132
|
-
- Group related fields in sections
|
|
133
|
-
|
|
134
|
-
### Navigation
|
|
135
|
-
- **Top nav**: Logo left, main nav center/right, user menu far right
|
|
136
|
-
- **Sidebar**: Logo top, nav items with icons, collapsible
|
|
137
|
-
- **Breadcrumbs**: For deep hierarchies, show path
|
|
138
|
-
|
|
139
|
-
## Responsive Breakpoints
|
|
140
|
-
|
|
141
|
-
```
|
|
142
|
-
Mobile: < 640px (1 column, stacked)
|
|
143
|
-
Tablet: 640-1024px (2 columns, sidebar hidden)
|
|
144
|
-
Desktop: > 1024px (full layout)
|
|
145
|
-
Wide: > 1440px (max-width container)
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
### Mobile Adaptations
|
|
149
|
-
- Stack horizontal layouts vertically
|
|
150
|
-
- Hide sidebar, use hamburger menu
|
|
151
|
-
- Larger touch targets (44px minimum)
|
|
152
|
-
- Reduce padding (16px instead of 24px)
|
|
153
|
-
- Use bottom sheets instead of modals
|
|
154
|
-
|
|
155
|
-
## Empty States
|
|
156
|
-
|
|
157
|
-
Always design for empty:
|
|
158
|
-
```
|
|
159
|
-
┌─────────────────────────┐
|
|
160
|
-
│ │
|
|
161
|
-
│ [Illustration] │
|
|
162
|
-
│ │
|
|
163
|
-
│ No items yet │
|
|
164
|
-
│ Add your first item │
|
|
165
|
-
│ │
|
|
166
|
-
│ [+ Add Item] │
|
|
167
|
-
│ │
|
|
168
|
-
└─────────────────────────┘
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
## Loading States
|
|
172
|
-
|
|
173
|
-
- **Skeleton**: Gray boxes mimicking content shape
|
|
174
|
-
- **Spinner**: For actions, not initial loads
|
|
175
|
-
- **Progress**: For multi-step or long operations
|
|
176
|
-
- **Optimistic**: Show expected result immediately
|
|
177
|
-
|
|
178
|
-
</patterns>
|
|
179
|
-
|
|
180
|
-
<examples>
|
|
181
|
-
|
|
182
|
-
## Dashboard Layout
|
|
183
|
-
```jsx
|
|
184
|
-
<Flex>
|
|
185
|
-
<Sidebar w="240px" />
|
|
186
|
-
<Box flex="1" p={6}>
|
|
187
|
-
<Heading mb={6}>Dashboard</Heading>
|
|
188
|
-
<SimpleGrid columns={{ base: 1, md: 2, lg: 4 }} gap={4}>
|
|
189
|
-
<StatCard label="Total" value="1,234" />
|
|
190
|
-
<StatCard label="Active" value="567" trend="+12%" />
|
|
191
|
-
...
|
|
192
|
-
</SimpleGrid>
|
|
193
|
-
<Box mt={8}>
|
|
194
|
-
<RecentActivityTable />
|
|
195
|
-
</Box>
|
|
196
|
-
</Box>
|
|
197
|
-
</Flex>
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
## Card with Actions
|
|
201
|
-
```jsx
|
|
202
|
-
<Card>
|
|
203
|
-
<CardHeader>
|
|
204
|
-
<Flex justify="space-between" align="center">
|
|
205
|
-
<Heading size="md">Customer Details</Heading>
|
|
206
|
-
<Menu>
|
|
207
|
-
<MenuButton as={IconButton} icon={<MoreIcon />} />
|
|
208
|
-
<MenuList>
|
|
209
|
-
<MenuItem>Edit</MenuItem>
|
|
210
|
-
<MenuItem color="red.500">Delete</MenuItem>
|
|
211
|
-
</MenuList>
|
|
212
|
-
</Menu>
|
|
213
|
-
</Flex>
|
|
214
|
-
</CardHeader>
|
|
215
|
-
<CardBody>
|
|
216
|
-
<Stack spacing={3}>
|
|
217
|
-
<Field label="Name" value={customer.name} />
|
|
218
|
-
<Field label="Email" value={customer.email} />
|
|
219
|
-
</Stack>
|
|
220
|
-
</CardBody>
|
|
221
|
-
<CardFooter justify="flex-end" gap={2}>
|
|
222
|
-
<Button variant="ghost">Cancel</Button>
|
|
223
|
-
<Button colorScheme="brand">Save</Button>
|
|
224
|
-
</CardFooter>
|
|
225
|
-
</Card>
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
## Responsive Table
|
|
229
|
-
```jsx
|
|
230
|
-
<TableContainer>
|
|
231
|
-
<Table>
|
|
232
|
-
<Thead>
|
|
233
|
-
<Tr>
|
|
234
|
-
<Th>Name</Th>
|
|
235
|
-
<Th display={{ base: 'none', md: 'table-cell' }}>Email</Th>
|
|
236
|
-
<Th isNumeric>Amount</Th>
|
|
237
|
-
<Th w="50px"></Th>
|
|
238
|
-
</Tr>
|
|
239
|
-
</Thead>
|
|
240
|
-
<Tbody>
|
|
241
|
-
{items.map(item => (
|
|
242
|
-
<Tr key={item.id} _hover={{ bg: 'gray.50' }}>
|
|
243
|
-
<Td>{item.name}</Td>
|
|
244
|
-
<Td display={{ base: 'none', md: 'table-cell' }}>{item.email}</Td>
|
|
245
|
-
<Td isNumeric>{formatCurrency(item.amount)}</Td>
|
|
246
|
-
<Td><ActionMenu item={item} /></Td>
|
|
247
|
-
</Tr>
|
|
248
|
-
))}
|
|
249
|
-
</Tbody>
|
|
250
|
-
</Table>
|
|
251
|
-
</TableContainer>
|
|
252
|
-
```
|
|
253
|
-
|
|
254
|
-
</examples>
|
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: hailer-activity-mover
|
|
3
|
-
description: Activity mover microservice patterns for phase cascade automation
|
|
4
|
-
version: 1.0.0
|
|
5
|
-
triggers:
|
|
6
|
-
- activity mover
|
|
7
|
-
- phase cascade
|
|
8
|
-
- linked activities
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Activity Mover Skill
|
|
12
|
-
|
|
13
|
-
Configure automated phase cascade bots. Agent creates Hailer fields and generates config JSON. User deploys to AWS manually.
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
## What It Does
|
|
18
|
-
|
|
19
|
-
When an activity moves to a trigger phase, the bot automatically moves linked activities to target phases.
|
|
20
|
-
|
|
21
|
-
**Example:** Invoice → "Invoiced" automatically moves Invoice Rows → "Archived"
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## Agent Workflow
|
|
26
|
-
|
|
27
|
-
### Step 1: Gather IDs (Kenji)
|
|
28
|
-
|
|
29
|
-
Get workflow, phase, and field IDs from workspace/:
|
|
30
|
-
|
|
31
|
-
```json
|
|
32
|
-
{
|
|
33
|
-
"task": "get_activity_mover_ids",
|
|
34
|
-
"context": {
|
|
35
|
-
"trigger_workflow": "Invoices",
|
|
36
|
-
"trigger_phase": "Invoiced",
|
|
37
|
-
"target_workflow": "Invoice Rows",
|
|
38
|
-
"target_phases": {
|
|
39
|
-
"from": ["Draft", "Pending"],
|
|
40
|
-
"to": "Archived"
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### Step 2: Create MetaData Field (Helga)
|
|
47
|
-
|
|
48
|
-
Add hidden "Seen/Not seen" field to trigger workflow:
|
|
49
|
-
|
|
50
|
-
```json
|
|
51
|
-
{
|
|
52
|
-
"task": "add_field",
|
|
53
|
-
"context": {
|
|
54
|
-
"workflow_id": "from-kenji",
|
|
55
|
-
"field": {
|
|
56
|
-
"id": "activityMoverStatus",
|
|
57
|
-
"label": "Activity Mover Status",
|
|
58
|
-
"type": "text",
|
|
59
|
-
"hidden": true,
|
|
60
|
-
"defaultValue": "Not seen"
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
Run the push command Helga returns.
|
|
67
|
-
|
|
68
|
-
### Step 3: Create Logging Activity (Dmitri)
|
|
69
|
-
|
|
70
|
-
Create an activity for bot logging:
|
|
71
|
-
|
|
72
|
-
```json
|
|
73
|
-
{
|
|
74
|
-
"task": "create_activity",
|
|
75
|
-
"context": {
|
|
76
|
-
"workflow": "suitable-workflow-for-logs",
|
|
77
|
-
"name": "Activity Mover Log - [Project]",
|
|
78
|
-
"phase": "active-phase"
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
Note the activity's discussion ID from the response.
|
|
84
|
-
|
|
85
|
-
### Step 4: Generate Config JSON
|
|
86
|
-
|
|
87
|
-
Output config for user to deploy:
|
|
88
|
-
|
|
89
|
-
```json
|
|
90
|
-
{
|
|
91
|
-
"project": "project-name",
|
|
92
|
-
"email": "activity-mover+project@hailer.com",
|
|
93
|
-
"password": "USER_PROVIDES_PASSWORD",
|
|
94
|
-
"logDiscussionId": "from-step-3",
|
|
95
|
-
"triggers": [
|
|
96
|
-
{
|
|
97
|
-
"processId": "trigger-workflow-id",
|
|
98
|
-
"phaseId": "trigger-phase-id",
|
|
99
|
-
"metaDataId": "seen-field-id",
|
|
100
|
-
"linkedProcesses": [
|
|
101
|
-
{
|
|
102
|
-
"processId": "target-workflow-id",
|
|
103
|
-
"fromPhaseIds": ["phase-1", "phase-2"],
|
|
104
|
-
"toPhaseId": "destination-phase"
|
|
105
|
-
}
|
|
106
|
-
]
|
|
107
|
-
}
|
|
108
|
-
]
|
|
109
|
-
}
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
### Step 5: User Deploys
|
|
113
|
-
|
|
114
|
-
User manually:
|
|
115
|
-
1. Fills in integration user password
|
|
116
|
-
2. Uploads to AWS Secrets Manager as `activity-mover-{project}`
|
|
117
|
-
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
## Config Schema
|
|
121
|
-
|
|
122
|
-
```typescript
|
|
123
|
-
interface Config {
|
|
124
|
-
project: string; // Hailer project identifier
|
|
125
|
-
email: string; // Integration user email
|
|
126
|
-
password: string; // Integration user password
|
|
127
|
-
logDiscussionId: string; // Discussion ID (not activity ID)
|
|
128
|
-
triggers: Trigger[];
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
interface Trigger {
|
|
132
|
-
processId: string; // Workflow that triggers automation
|
|
133
|
-
phaseId: string; // Phase that fires the trigger
|
|
134
|
-
metaDataId: string; // "Seen/Not seen" field ID
|
|
135
|
-
linkedProcesses: Process[];
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
interface Process {
|
|
139
|
-
processId: string; // Target workflow ID
|
|
140
|
-
fromPhaseIds: string[]; // Only move activities in these phases
|
|
141
|
-
toPhaseId: string; // Move to this phase
|
|
142
|
-
}
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
---
|
|
146
|
-
|
|
147
|
-
## Requirements
|
|
148
|
-
|
|
149
|
-
Before setting up:
|
|
150
|
-
- [ ] Link field must exist connecting trigger → target workflows
|
|
151
|
-
- [ ] Integration user exists with edit permissions on all workflows
|
|
152
|
-
- [ ] Activity mover service running for the project
|
|
153
|
-
|
|
154
|
-
---
|
|
155
|
-
|
|
156
|
-
## Multiple Triggers
|
|
157
|
-
|
|
158
|
-
One config supports multiple triggers:
|
|
159
|
-
|
|
160
|
-
```json
|
|
161
|
-
{
|
|
162
|
-
"triggers": [
|
|
163
|
-
{ "processId": "workflow-1", "phaseId": "phase-a", ... },
|
|
164
|
-
{ "processId": "workflow-2", "phaseId": "phase-b", ... }
|
|
165
|
-
]
|
|
166
|
-
}
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
|
-
## Multiple Target Workflows
|
|
172
|
-
|
|
173
|
-
One trigger can cascade to multiple workflows:
|
|
174
|
-
|
|
175
|
-
```json
|
|
176
|
-
{
|
|
177
|
-
"linkedProcesses": [
|
|
178
|
-
{ "processId": "target-1", "fromPhaseIds": [...], "toPhaseId": "..." },
|
|
179
|
-
{ "processId": "target-2", "fromPhaseIds": [...], "toPhaseId": "..." }
|
|
180
|
-
]
|
|
181
|
-
}
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
---
|
|
185
|
-
|
|
186
|
-
## Agent Output
|
|
187
|
-
|
|
188
|
-
Return to user:
|
|
189
|
-
|
|
190
|
-
```json
|
|
191
|
-
{
|
|
192
|
-
"status": "success",
|
|
193
|
-
"result": {
|
|
194
|
-
"fields_created": ["activityMoverStatus"],
|
|
195
|
-
"logging_activity": "activity-id",
|
|
196
|
-
"logging_discussion": "discussion-id",
|
|
197
|
-
"config": { ... }
|
|
198
|
-
},
|
|
199
|
-
"summary": "Config ready - deploy to AWS",
|
|
200
|
-
"user_action": "Upload config to AWS Secrets Manager as activity-mover-{project}"
|
|
201
|
-
}
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
---
|
|
205
|
-
|
|
206
|
-
## Troubleshooting
|
|
207
|
-
|
|
208
|
-
| Issue | Cause | Fix |
|
|
209
|
-
|-------|-------|-----|
|
|
210
|
-
| Activities not moving | Wrong phase IDs | Verify IDs with Kenji |
|
|
211
|
-
| "Not seen" not updating | Wrong metaDataId | Check field ID |
|
|
212
|
-
| No log messages | Wrong discussionId | Use discussion ID, not activity ID |
|
|
213
|
-
| Permission denied | Integration user lacks access | Add to workflow permissions |
|