@hailer/mcp 1.0.29 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/.claude/.session-checked +1 -0
  2. package/.claude/agents/agent-ada-skill-builder.md +10 -2
  3. package/.claude/agents/agent-alejandro-function-fields.md +104 -37
  4. package/.claude/agents/agent-bjorn-config-audit.md +41 -21
  5. package/.claude/agents/agent-builder-agent-creator.md +13 -3
  6. package/.claude/agents/agent-code-simplifier.md +53 -0
  7. package/.claude/agents/agent-dmitri-activity-crud.md +126 -11
  8. package/.claude/agents/agent-giuseppe-app-builder.md +212 -22
  9. package/.claude/agents/agent-gunther-mcp-tools.md +7 -36
  10. package/.claude/agents/agent-helga-workflow-config.md +75 -10
  11. package/.claude/agents/agent-igor-activity-mover-automation.md +125 -0
  12. package/.claude/agents/agent-ingrid-doc-templates.md +164 -36
  13. package/.claude/agents/agent-ivan-monolith.md +154 -0
  14. package/.claude/agents/agent-kenji-data-reader.md +15 -8
  15. package/.claude/agents/agent-lars-code-inspector.md +56 -8
  16. package/.claude/agents/agent-marco-mockup-builder.md +110 -0
  17. package/.claude/agents/agent-marcus-api-documenter.md +323 -0
  18. package/.claude/agents/agent-marketplace-publisher.md +232 -72
  19. package/.claude/agents/agent-marketplace-reviewer.md +255 -79
  20. package/.claude/agents/agent-permissions-handler.md +208 -0
  21. package/.claude/agents/agent-simple-writer.md +48 -0
  22. package/.claude/agents/agent-svetlana-code-review.md +127 -14
  23. package/.claude/agents/agent-tanya-test-runner.md +333 -0
  24. package/.claude/agents/agent-ui-designer.md +100 -0
  25. package/.claude/agents/agent-viktor-sql-insights.md +19 -6
  26. package/.claude/agents/agent-web-search.md +55 -0
  27. package/.claude/agents/agent-yevgeni-discussions.md +7 -1
  28. package/.claude/agents/agent-zara-zapier.md +159 -0
  29. package/.claude/commands/app-squad.md +135 -0
  30. package/.claude/commands/audit-squad.md +158 -0
  31. package/.claude/commands/autoplan.md +563 -0
  32. package/.claude/commands/cleanup-squad.md +98 -0
  33. package/.claude/commands/config-squad.md +106 -0
  34. package/.claude/commands/crud-squad.md +87 -0
  35. package/.claude/commands/data-squad.md +97 -0
  36. package/.claude/commands/debug-squad.md +303 -0
  37. package/.claude/commands/doc-squad.md +65 -0
  38. package/.claude/commands/handoff.md +137 -0
  39. package/.claude/commands/health.md +49 -0
  40. package/.claude/commands/help.md +2 -1
  41. package/.claude/commands/help:agents.md +96 -16
  42. package/.claude/commands/help:commands.md +55 -11
  43. package/.claude/commands/help:faq.md +16 -1
  44. package/.claude/commands/help:skills.md +93 -0
  45. package/.claude/commands/hotfix-squad.md +112 -0
  46. package/.claude/commands/integration-squad.md +82 -0
  47. package/.claude/commands/janitor-squad.md +167 -0
  48. package/.claude/commands/learn-auto.md +120 -0
  49. package/.claude/commands/learn.md +120 -0
  50. package/.claude/commands/mcp-list.md +27 -0
  51. package/.claude/commands/onboard-squad.md +140 -0
  52. package/.claude/commands/plan-workspace.md +732 -0
  53. package/.claude/commands/prd.md +131 -0
  54. package/.claude/commands/project-status.md +82 -0
  55. package/.claude/commands/publish.md +138 -0
  56. package/.claude/commands/recap.md +69 -0
  57. package/.claude/commands/restore.md +64 -0
  58. package/.claude/commands/review-squad.md +152 -0
  59. package/.claude/commands/save.md +24 -0
  60. package/.claude/commands/stats.md +19 -0
  61. package/.claude/commands/swarm.md +210 -0
  62. package/.claude/commands/tool-builder.md +3 -1
  63. package/.claude/commands/ws-pull.md +1 -1
  64. package/.claude/commands/yolo-off.md +17 -0
  65. package/.claude/commands/yolo.md +82 -0
  66. package/.claude/hooks/_shared-memory.cjs +305 -0
  67. package/.claude/hooks/_utils.cjs +134 -0
  68. package/.claude/hooks/agent-failure-detector.cjs +164 -79
  69. package/.claude/hooks/agent-usage-logger.cjs +204 -0
  70. package/.claude/hooks/app-edit-guard.cjs +20 -4
  71. package/.claude/hooks/auto-learn.cjs +316 -0
  72. package/.claude/hooks/bash-guard.cjs +282 -0
  73. package/.claude/hooks/builder-mode-manager.cjs +183 -54
  74. package/.claude/hooks/bulk-activity-guard.cjs +283 -0
  75. package/.claude/hooks/context-watchdog.cjs +292 -0
  76. package/.claude/hooks/delegation-reminder.cjs +478 -0
  77. package/.claude/hooks/design-system-lint.cjs +283 -0
  78. package/.claude/hooks/post-scaffold-hook.cjs +16 -3
  79. package/.claude/hooks/prompt-guard.cjs +366 -0
  80. package/.claude/hooks/publish-template-guard.cjs +16 -0
  81. package/.claude/hooks/session-start.cjs +35 -0
  82. package/.claude/hooks/shared-memory-writer.cjs +147 -0
  83. package/.claude/hooks/skill-injector.cjs +140 -0
  84. package/.claude/hooks/skill-usage-logger.cjs +258 -0
  85. package/.claude/hooks/src-edit-guard.cjs +16 -1
  86. package/.claude/hooks/sync-marketplace-agents.cjs +53 -8
  87. package/.claude/scripts/yolo-toggle.cjs +142 -0
  88. package/.claude/settings.json +141 -14
  89. package/.claude/skills/SDK-activity-patterns/SKILL.md +428 -0
  90. package/.claude/skills/SDK-document-templates/SKILL.md +1033 -0
  91. package/.claude/skills/SDK-function-fields/SKILL.md +542 -0
  92. package/.claude/skills/SDK-generate-skill/SKILL.md +92 -0
  93. package/.claude/skills/SDK-init-skill/SKILL.md +127 -0
  94. package/.claude/skills/SDK-insight-queries/SKILL.md +787 -0
  95. package/.claude/skills/SDK-ws-config-skill/SKILL.md +1139 -0
  96. package/.claude/skills/agent-structure/SKILL.md +98 -0
  97. package/.claude/skills/api-documentation-patterns/SKILL.md +474 -0
  98. package/.claude/skills/chrome-mcp-reference/SKILL.md +370 -0
  99. package/.claude/skills/delegation-routing/SKILL.md +202 -0
  100. package/.claude/skills/frontend-design/SKILL.md +254 -0
  101. package/.claude/skills/hailer-activity-mover/SKILL.md +213 -0
  102. package/.claude/skills/hailer-api-client/SKILL.md +518 -0
  103. package/.claude/skills/hailer-app-builder/SKILL.md +939 -11
  104. package/.claude/skills/hailer-apps-pictures/SKILL.md +269 -0
  105. package/.claude/skills/hailer-design-system/SKILL.md +235 -0
  106. package/.claude/skills/hailer-monolith-automations/SKILL.md +686 -0
  107. package/.claude/skills/hailer-permissions-system/SKILL.md +121 -0
  108. package/.claude/skills/hailer-project-protocol/SKILL.md +488 -0
  109. package/.claude/skills/hailer-rest-api/SKILL.md +61 -0
  110. package/.claude/skills/hailer-rest-api/hailer-activities.md +184 -0
  111. package/.claude/skills/hailer-rest-api/hailer-admin.md +473 -0
  112. package/.claude/skills/hailer-rest-api/hailer-calendar.md +256 -0
  113. package/.claude/skills/hailer-rest-api/hailer-feed.md +249 -0
  114. package/.claude/skills/hailer-rest-api/hailer-insights.md +195 -0
  115. package/.claude/skills/hailer-rest-api/hailer-messaging.md +276 -0
  116. package/.claude/skills/hailer-rest-api/hailer-workflows.md +283 -0
  117. package/.claude/skills/insight-join-patterns/SKILL.md +3 -0
  118. package/.claude/skills/integration-patterns/SKILL.md +421 -0
  119. package/.claude/skills/json-only-output/SKILL.md +52 -12
  120. package/.claude/skills/lsp-setup/SKILL.md +160 -0
  121. package/.claude/skills/mcp-direct-tools/SKILL.md +153 -0
  122. package/.claude/skills/optional-parameters/SKILL.md +32 -23
  123. package/.claude/skills/publish-hailer-app/SKILL.md +76 -12
  124. package/.claude/skills/testing-patterns/SKILL.md +630 -0
  125. package/.claude/skills/tool-builder/SKILL.md +250 -0
  126. package/.claude/skills/tool-parameter-usage/SKILL.md +59 -45
  127. package/.claude/skills/tool-response-verification/SKILL.md +82 -48
  128. package/.claude/skills/zapier-hailer-patterns/SKILL.md +581 -0
  129. package/.env.example +26 -7
  130. package/CLAUDE.md +290 -224
  131. package/dist/CLAUDE.md +370 -0
  132. package/dist/app.d.ts +1 -1
  133. package/dist/app.js +101 -101
  134. package/dist/bot/bot-config.d.ts +26 -0
  135. package/dist/bot/bot-config.js +135 -0
  136. package/dist/bot/bot-manager.d.ts +40 -0
  137. package/dist/bot/bot-manager.js +137 -0
  138. package/dist/bot/bot.d.ts +127 -0
  139. package/dist/bot/bot.js +1328 -0
  140. package/dist/bot/operation-logger.d.ts +28 -0
  141. package/dist/bot/operation-logger.js +132 -0
  142. package/dist/bot/services/conversation-manager.d.ts +60 -0
  143. package/dist/bot/services/conversation-manager.js +246 -0
  144. package/dist/bot/services/index.d.ts +9 -0
  145. package/dist/bot/services/index.js +18 -0
  146. package/dist/bot/services/message-classifier.d.ts +42 -0
  147. package/dist/bot/services/message-classifier.js +228 -0
  148. package/dist/bot/services/message-formatter.d.ts +88 -0
  149. package/dist/bot/services/message-formatter.js +411 -0
  150. package/dist/bot/services/session-logger.d.ts +162 -0
  151. package/dist/bot/services/session-logger.js +724 -0
  152. package/dist/bot/services/token-billing.d.ts +78 -0
  153. package/dist/bot/services/token-billing.js +233 -0
  154. package/dist/bot/services/types.d.ts +169 -0
  155. package/dist/bot/services/types.js +12 -0
  156. package/dist/bot/services/typing-indicator.d.ts +23 -0
  157. package/dist/bot/services/typing-indicator.js +60 -0
  158. package/dist/bot/services/workspace-schema-cache.d.ts +122 -0
  159. package/dist/bot/services/workspace-schema-cache.js +506 -0
  160. package/dist/bot/tool-executor.d.ts +28 -0
  161. package/dist/bot/tool-executor.js +48 -0
  162. package/dist/bot/workspace-overview.d.ts +12 -0
  163. package/dist/bot/workspace-overview.js +94 -0
  164. package/dist/cli.d.ts +1 -8
  165. package/dist/cli.js +1 -253
  166. package/dist/config.d.ts +96 -3
  167. package/dist/config.js +148 -37
  168. package/dist/core.d.ts +5 -0
  169. package/dist/core.js +61 -8
  170. package/dist/lib/discussion-lock.d.ts +42 -0
  171. package/dist/lib/discussion-lock.js +110 -0
  172. package/dist/lib/logger.d.ts +0 -1
  173. package/dist/lib/logger.js +39 -23
  174. package/dist/lib/request-logger.d.ts +77 -0
  175. package/dist/lib/request-logger.js +147 -0
  176. package/dist/mcp/UserContextCache.js +16 -13
  177. package/dist/mcp/hailer-clients.js +18 -17
  178. package/dist/mcp/signal-handler.js +43 -13
  179. package/dist/mcp/tool-registry.d.ts +4 -15
  180. package/dist/mcp/tool-registry.js +94 -32
  181. package/dist/mcp/tools/activity.js +28 -69
  182. package/dist/mcp/tools/app-core.js +9 -4
  183. package/dist/mcp/tools/app-marketplace.js +22 -12
  184. package/dist/mcp/tools/app-member.js +5 -2
  185. package/dist/mcp/tools/app-scaffold.js +32 -18
  186. package/dist/mcp/tools/bot-config/constants.d.ts +23 -0
  187. package/dist/mcp/tools/bot-config/constants.js +94 -0
  188. package/dist/mcp/tools/bot-config/core.d.ts +253 -0
  189. package/dist/mcp/tools/bot-config/core.js +2456 -0
  190. package/dist/mcp/tools/bot-config/index.d.ts +10 -0
  191. package/dist/mcp/tools/bot-config/index.js +59 -0
  192. package/dist/mcp/tools/bot-config/tools.d.ts +7 -0
  193. package/dist/mcp/tools/bot-config/tools.js +15 -0
  194. package/dist/mcp/tools/bot-config/types.d.ts +50 -0
  195. package/dist/mcp/tools/bot-config/types.js +6 -0
  196. package/dist/mcp/tools/discussion.js +107 -77
  197. package/dist/mcp/tools/document.d.ts +11 -0
  198. package/dist/mcp/tools/document.js +741 -0
  199. package/dist/mcp/tools/file.js +5 -2
  200. package/dist/mcp/tools/insight.js +36 -12
  201. package/dist/mcp/tools/investigate.d.ts +9 -0
  202. package/dist/mcp/tools/investigate.js +254 -0
  203. package/dist/mcp/tools/user.d.ts +2 -4
  204. package/dist/mcp/tools/user.js +9 -50
  205. package/dist/mcp/tools/workflow.d.ts +1 -0
  206. package/dist/mcp/tools/workflow.js +164 -52
  207. package/dist/mcp/utils/hailer-api-client.js +26 -17
  208. package/dist/mcp/webhook-handler.d.ts +64 -3
  209. package/dist/mcp/webhook-handler.js +227 -9
  210. package/dist/mcp-server.d.ts +4 -0
  211. package/dist/mcp-server.js +237 -25
  212. package/dist/plugins/bug-fixer/index.d.ts +2 -0
  213. package/dist/plugins/bug-fixer/index.js +18 -0
  214. package/dist/plugins/bug-fixer/tools.d.ts +45 -0
  215. package/dist/plugins/bug-fixer/tools.js +1096 -0
  216. package/package.json +10 -10
  217. package/scripts/test-hal-tools.ts +154 -0
  218. package/.claude/agents/agent-nora-name-functions.md +0 -123
  219. package/.claude/assistant-knowledge.md +0 -23
  220. package/.claude/commands/install-plugin.md +0 -261
  221. package/.claude/commands/list-plugins.md +0 -42
  222. package/.claude/commands/marketplace-setup.md +0 -33
  223. package/.claude/commands/publish-plugin.md +0 -55
  224. package/.claude/commands/uninstall-plugin.md +0 -87
  225. package/.claude/hooks/interactive-mode.cjs +0 -87
  226. package/.claude/hooks/mcp-server-guard.cjs +0 -108
  227. package/.claude/skills/marketplace-publishing.md +0 -155
  228. package/dist/bot/chat-bot.d.ts +0 -31
  229. package/dist/bot/chat-bot.js +0 -357
  230. package/dist/mcp/tools/metrics.d.ts +0 -13
  231. package/dist/mcp/tools/metrics.js +0 -546
  232. package/dist/stdio-server.d.ts +0 -14
  233. package/dist/stdio-server.js +0 -114
@@ -0,0 +1,276 @@
1
+ # Hailer Messaging API
2
+
3
+ Execute Hailer discussion and messenger operations via REST API.
4
+
5
+ ## Base URL
6
+ - **Production:** `https://api.hailer.com/api`
7
+ - **Staging:** `https://api.hailer.biz/api`
8
+
9
+ ## Authentication
10
+ All requests require `hlrkey` header with session key.
11
+
12
+ ---
13
+
14
+ ## Send Messages
15
+
16
+ ### Send Message to Discussion
17
+ ```bash
18
+ curl -X POST "https://api.hailer.com/api/messenger/send" \
19
+ -H "Content-Type: application/json" \
20
+ -H "hlrkey: YOUR_SESSION_KEY" \
21
+ -d '[{"discussionId": "DISCUSSION_ID", "text": "Hello world!", "files": []}]'
22
+ ```
23
+
24
+ ### Send with File Attachments
25
+ ```bash
26
+ curl -X POST "https://api.hailer.com/api/messenger/send" \
27
+ -H "Content-Type: application/json" \
28
+ -H "hlrkey: YOUR_SESSION_KEY" \
29
+ -d '[{"discussionId": "DISCUSSION_ID", "text": "See attachment", "files": ["FILE_ID_1", "FILE_ID_2"]}]'
30
+ ```
31
+
32
+ ---
33
+
34
+ ## Load Messages
35
+
36
+ ### Load Messages from Discussion
37
+ ```bash
38
+ curl -X POST "https://api.hailer.com/api/messenger/load_messages" \
39
+ -H "Content-Type: application/json" \
40
+ -H "hlrkey: YOUR_SESSION_KEY" \
41
+ -d '[{"discussionId": "DISCUSSION_ID", "limit": 50}]'
42
+ ```
43
+
44
+ ### Get Specific Message (v3)
45
+ ```bash
46
+ curl -X POST "https://api.hailer.com/api/v3/discussion/message/get" \
47
+ -H "Content-Type: application/json" \
48
+ -H "hlrkey: YOUR_SESSION_KEY" \
49
+ -d '["MESSAGE_ID"]'
50
+ ```
51
+
52
+ ### Get Latest Messages (v3)
53
+ ```bash
54
+ curl -X POST "https://api.hailer.com/api/v3/discussion/message/latest" \
55
+ -H "Content-Type: application/json" \
56
+ -H "hlrkey: YOUR_SESSION_KEY" \
57
+ -d '["DISCUSSION_ID", {"limit": 20}]'
58
+ ```
59
+
60
+ ### Get Next/Previous Messages (v3)
61
+ ```bash
62
+ # Next (newer)
63
+ curl -X POST "https://api.hailer.com/api/v3/discussion/message/next" \
64
+ -H "Content-Type: application/json" \
65
+ -H "hlrkey: YOUR_SESSION_KEY" \
66
+ -d '["DISCUSSION_ID", "AFTER_MESSAGE_ID", {"limit": 20}]'
67
+
68
+ # Previous (older)
69
+ curl -X POST "https://api.hailer.com/api/v3/discussion/message/previous" \
70
+ -H "Content-Type: application/json" \
71
+ -H "hlrkey: YOUR_SESSION_KEY" \
72
+ -d '["DISCUSSION_ID", "BEFORE_MESSAGE_ID", {"limit": 20}]'
73
+ ```
74
+
75
+ ---
76
+
77
+ ## Edit & Delete Messages (v2)
78
+
79
+ ### Edit Message
80
+ ```bash
81
+ curl -X POST "https://api.hailer.com/api/v2/discussion/message/edit" \
82
+ -H "Content-Type: application/json" \
83
+ -H "hlrkey: YOUR_SESSION_KEY" \
84
+ -d '["MESSAGE_ID", "Updated message text"]'
85
+ ```
86
+
87
+ ### Delete Message
88
+ ```bash
89
+ curl -X POST "https://api.hailer.com/api/v2/discussion/message/delete" \
90
+ -H "Content-Type: application/json" \
91
+ -H "hlrkey: YOUR_SESSION_KEY" \
92
+ -d '["MESSAGE_ID"]'
93
+ ```
94
+
95
+ ### React to Message (v2)
96
+ ```bash
97
+ curl -X POST "https://api.hailer.com/api/v2/discussion/message/react" \
98
+ -H "Content-Type: application/json" \
99
+ -H "hlrkey: YOUR_SESSION_KEY" \
100
+ -d '["MESSAGE_ID", "emoji_name"]'
101
+ # Common reactions: thumbsup, heart, laugh, etc.
102
+ ```
103
+
104
+ ---
105
+
106
+ ## Discussion Management
107
+
108
+ ### Load All Discussions
109
+ ```bash
110
+ curl -X POST "https://api.hailer.com/api/messenger/load_discussions" \
111
+ -H "Content-Type: application/json" \
112
+ -H "hlrkey: YOUR_SESSION_KEY" \
113
+ -d '[{}]'
114
+ ```
115
+
116
+ ### Find User Discussion (DM)
117
+ ```bash
118
+ curl -X POST "https://api.hailer.com/api/messenger/find_user_discussion" \
119
+ -H "Content-Type: application/json" \
120
+ -H "hlrkey: YOUR_SESSION_KEY" \
121
+ -d '["USER_ID"]'
122
+ ```
123
+
124
+ ### Sync Discussion (v2)
125
+ ```bash
126
+ curl -X POST "https://api.hailer.com/api/v2/discussion/sync" \
127
+ -H "Content-Type: application/json" \
128
+ -H "hlrkey: YOUR_SESSION_KEY" \
129
+ -d '["DISCUSSION_ID"]'
130
+ ```
131
+
132
+ ### Get Discussion Files (v3)
133
+ ```bash
134
+ curl -X POST "https://api.hailer.com/api/v3/discussion/files" \
135
+ -H "Content-Type: application/json" \
136
+ -H "hlrkey: YOUR_SESSION_KEY" \
137
+ -d '["DISCUSSION_ID", {"limit": 50}]'
138
+ ```
139
+
140
+ ---
141
+
142
+ ## Discussion Participants
143
+
144
+ ### Invite Users to Discussion
145
+ ```bash
146
+ curl -X POST "https://api.hailer.com/api/messenger/invite_users" \
147
+ -H "Content-Type: application/json" \
148
+ -H "hlrkey: YOUR_SESSION_KEY" \
149
+ -d '[{"discussionId": "DISCUSSION_ID", "userIds": ["USER_ID_1", "USER_ID_2"]}]'
150
+ ```
151
+
152
+ ### Leave Discussion
153
+ ```bash
154
+ curl -X POST "https://api.hailer.com/api/messenger/leave_discussion" \
155
+ -H "Content-Type: application/json" \
156
+ -H "hlrkey: YOUR_SESSION_KEY" \
157
+ -d '["DISCUSSION_ID"]'
158
+ ```
159
+
160
+ ---
161
+
162
+ ## Stars & Bookmarks
163
+
164
+ ### Star/Unstar Discussion (v2)
165
+ ```bash
166
+ curl -X POST "https://api.hailer.com/api/v2/discussion/star" \
167
+ -H "Content-Type: application/json" \
168
+ -H "hlrkey: YOUR_SESSION_KEY" \
169
+ -d '["DISCUSSION_ID"]'
170
+ ```
171
+
172
+ ### Star/Unstar Message (v3)
173
+ ```bash
174
+ curl -X POST "https://api.hailer.com/api/v3/discussion/message/star" \
175
+ -H "Content-Type: application/json" \
176
+ -H "hlrkey: YOUR_SESSION_KEY" \
177
+ -d '["MESSAGE_ID"]'
178
+ ```
179
+
180
+ ### Get Starred Messages (v3)
181
+ ```bash
182
+ curl -X POST "https://api.hailer.com/api/v3/discussion/message/stars" \
183
+ -H "Content-Type: application/json" \
184
+ -H "hlrkey: YOUR_SESSION_KEY" \
185
+ -d '["DISCUSSION_ID"]'
186
+ ```
187
+
188
+ ---
189
+
190
+ ## Read Status & Notifications
191
+
192
+ ### Mark as Read
193
+ ```bash
194
+ curl -X POST "https://api.hailer.com/api/messenger/set_discussion_last_seen" \
195
+ -H "Content-Type: application/json" \
196
+ -H "hlrkey: YOUR_SESSION_KEY" \
197
+ -d '["DISCUSSION_ID", TIMESTAMP_MS]'
198
+ ```
199
+
200
+ ### Get Unread Count
201
+ ```bash
202
+ curl -X POST "https://api.hailer.com/api/messenger/get_unread_count" \
203
+ -H "Content-Type: application/json" \
204
+ -H "hlrkey: YOUR_SESSION_KEY" \
205
+ -d '[]'
206
+ ```
207
+
208
+ ### Mute/Unmute Discussion (v2)
209
+ ```bash
210
+ curl -X POST "https://api.hailer.com/api/v2/discussion/mute" \
211
+ -H "Content-Type: application/json" \
212
+ -H "hlrkey: YOUR_SESSION_KEY" \
213
+ -d '["DISCUSSION_ID", true]'
214
+ # true = mute, false = unmute
215
+ ```
216
+
217
+ ---
218
+
219
+ ## Settings & Permissions
220
+
221
+ ### Save Discussion Settings
222
+ ```bash
223
+ curl -X POST "https://api.hailer.com/api/messenger/save_discussion_settings" \
224
+ -H "Content-Type: application/json" \
225
+ -H "hlrkey: YOUR_SESSION_KEY" \
226
+ -d '["DISCUSSION_ID", {"name": "New Discussion Name"}]'
227
+ ```
228
+
229
+ ### Set Discussion Permission (v3)
230
+ ```bash
231
+ curl -X POST "https://api.hailer.com/api/v3/discussion/setPermission" \
232
+ -H "Content-Type: application/json" \
233
+ -H "hlrkey: YOUR_SESSION_KEY" \
234
+ -d '["DISCUSSION_ID", {"permission": "write", "target": {"userId": "USER_ID"}}]'
235
+ ```
236
+
237
+ ### Close Discussion (v3)
238
+ ```bash
239
+ curl -X POST "https://api.hailer.com/api/v3/discussion/close" \
240
+ -H "Content-Type: application/json" \
241
+ -H "hlrkey: YOUR_SESSION_KEY" \
242
+ -d '["DISCUSSION_ID"]'
243
+ ```
244
+
245
+ ---
246
+
247
+ ## Typing Indicator
248
+
249
+ ### Set Typing State
250
+ ```bash
251
+ curl -X POST "https://api.hailer.com/api/messenger/set_discussion_typing_state" \
252
+ -H "Content-Type: application/json" \
253
+ -H "hlrkey: YOUR_SESSION_KEY" \
254
+ -d '["DISCUSSION_ID", true]'
255
+ # true = typing, false = stopped
256
+ ```
257
+
258
+ ---
259
+
260
+ ## Video Meetings (v2)
261
+
262
+ ### Start Meet
263
+ ```bash
264
+ curl -X POST "https://api.hailer.com/api/v2/discussion/meet/start" \
265
+ -H "Content-Type: application/json" \
266
+ -H "hlrkey: YOUR_SESSION_KEY" \
267
+ -d '["DISCUSSION_ID"]'
268
+ ```
269
+
270
+ ---
271
+
272
+ ## Notes
273
+ - Every activity has an associated discussion (same ID)
274
+ - Discussions can be standalone (group chats) or linked to activities
275
+ - Timestamps are milliseconds since Unix epoch
276
+ - Files must be uploaded first via `/upload` endpoint, then attached by ID
@@ -0,0 +1,283 @@
1
+ # Hailer Workflows API
2
+
3
+ Execute Hailer workflow (process/table) operations via REST API.
4
+
5
+ ## Base URL
6
+ - **Production:** `https://api.hailer.com/api`
7
+ - **Staging:** `https://api.hailer.biz/api`
8
+
9
+ ## Authentication
10
+ All requests require `hlrkey` header with session key.
11
+
12
+ ---
13
+
14
+ ## Workflow CRUD
15
+
16
+ ### Create Workflow
17
+ ```bash
18
+ curl -X POST "https://api.hailer.com/api/process/create" \
19
+ -H "Content-Type: application/json" \
20
+ -H "hlrkey: YOUR_SESSION_KEY" \
21
+ -d '[{"name": "My Workflow", "cid": "WORKSPACE_ID"}]'
22
+ ```
23
+
24
+ ### Get Workflow
25
+ ```bash
26
+ curl -X POST "https://api.hailer.com/api/v2/process/get" \
27
+ -H "Content-Type: application/json" \
28
+ -H "hlrkey: YOUR_SESSION_KEY" \
29
+ -d '["WORKFLOW_ID"]'
30
+ ```
31
+
32
+ ### List Workflows
33
+ ```bash
34
+ curl -X POST "https://api.hailer.com/api/process/list" \
35
+ -H "Content-Type: application/json" \
36
+ -H "hlrkey: YOUR_SESSION_KEY" \
37
+ -d '[]'
38
+ ```
39
+
40
+ ### Update Workflow Info
41
+ ```bash
42
+ curl -X POST "https://api.hailer.com/api/process/set_info" \
43
+ -H "Content-Type: application/json" \
44
+ -H "hlrkey: YOUR_SESSION_KEY" \
45
+ -d '["WORKFLOW_ID", {"name": "New Name", "description": "Updated description"}]'
46
+ ```
47
+
48
+ ### Remove Workflow
49
+ ```bash
50
+ curl -X POST "https://api.hailer.com/api/process/remove" \
51
+ -H "Content-Type: application/json" \
52
+ -H "hlrkey: YOUR_SESSION_KEY" \
53
+ -d '["WORKFLOW_ID"]'
54
+ ```
55
+
56
+ ### Copy Workflow
57
+ ```bash
58
+ curl -X POST "https://api.hailer.com/api/v2/process/copy" \
59
+ -H "Content-Type: application/json" \
60
+ -H "hlrkey: YOUR_SESSION_KEY" \
61
+ -d '[{"processIds": ["WORKFLOW_ID"]}]'
62
+ ```
63
+
64
+ ### Star/Unstar Workflow
65
+ ```bash
66
+ curl -X POST "https://api.hailer.com/api/v2/process/star" \
67
+ -H "Content-Type: application/json" \
68
+ -H "hlrkey: YOUR_SESSION_KEY" \
69
+ -d '["WORKFLOW_ID"]'
70
+ ```
71
+
72
+ ---
73
+
74
+ ## Field Operations
75
+
76
+ ### Create Field
77
+ ```bash
78
+ curl -X POST "https://api.hailer.com/api/process/create_field" \
79
+ -H "Content-Type: application/json" \
80
+ -H "hlrkey: YOUR_SESSION_KEY" \
81
+ -d '["WORKFLOW_ID", {"name": "Field Name", "type": "text", "order": 1}]'
82
+ ```
83
+
84
+ Field types (from hailer.d.ts): `text`, `textarea`, `textunit`, `numeric`, `numericunit`, `date`, `datetime`, `daterange`, `datetimerange`, `time`, `timerange`, `textpredefinedoptions`, `users`, `teams`, `activitylink`, `linkedfrom`, `country`, `subheader`
85
+
86
+ ### Update Field
87
+ ```bash
88
+ curl -X POST "https://api.hailer.com/api/process/update_field" \
89
+ -H "Content-Type: application/json" \
90
+ -H "hlrkey: YOUR_SESSION_KEY" \
91
+ -d '["WORKFLOW_ID", "FIELD_ID", {"name": "Updated Name", "required": true}]'
92
+ ```
93
+
94
+ ### Remove Field
95
+ ```bash
96
+ curl -X POST "https://api.hailer.com/api/process/remove_field" \
97
+ -H "Content-Type: application/json" \
98
+ -H "hlrkey: YOUR_SESSION_KEY" \
99
+ -d '["WORKFLOW_ID", "FIELD_ID"]'
100
+ ```
101
+
102
+ ---
103
+
104
+ ## Phase Operations
105
+
106
+ ### Create Phase
107
+ ```bash
108
+ curl -X POST "https://api.hailer.com/api/phase/create" \
109
+ -H "Content-Type: application/json" \
110
+ -H "hlrkey: YOUR_SESSION_KEY" \
111
+ -d '[{"processId": "WORKFLOW_ID", "name": "New Phase", "order": 1}]'
112
+ ```
113
+
114
+ ### Update Phase
115
+ ```bash
116
+ curl -X POST "https://api.hailer.com/api/phase/update" \
117
+ -H "Content-Type: application/json" \
118
+ -H "hlrkey: YOUR_SESSION_KEY" \
119
+ -d '["PHASE_ID", {"name": "Updated Phase", "color": "#FF5733"}]'
120
+ ```
121
+
122
+ ### Remove Phase
123
+ ```bash
124
+ curl -X POST "https://api.hailer.com/api/phase/remove" \
125
+ -H "Content-Type: application/json" \
126
+ -H "hlrkey: YOUR_SESSION_KEY" \
127
+ -d '["PHASE_ID"]'
128
+ ```
129
+
130
+ ### Set Phase Info
131
+ ```bash
132
+ curl -X POST "https://api.hailer.com/api/phase/set_info" \
133
+ -H "Content-Type: application/json" \
134
+ -H "hlrkey: YOUR_SESSION_KEY" \
135
+ -d '["PHASE_ID", {"description": "Phase description"}]'
136
+ ```
137
+
138
+ ---
139
+
140
+ ## Workflow Members & Permissions (v2)
141
+
142
+ ### List Members
143
+ ```bash
144
+ curl -X POST "https://api.hailer.com/api/v2/process/member/list" \
145
+ -H "Content-Type: application/json" \
146
+ -H "hlrkey: YOUR_SESSION_KEY" \
147
+ -d '["WORKFLOW_ID"]'
148
+ ```
149
+
150
+ ### Add Member
151
+ ```bash
152
+ curl -X POST "https://api.hailer.com/api/v2/process/member/add" \
153
+ -H "Content-Type: application/json" \
154
+ -H "hlrkey: YOUR_SESSION_KEY" \
155
+ -d '["WORKFLOW_ID", {"userId": "USER_ID"}]'
156
+ # Or for team: {"teamId": "TEAM_ID"}
157
+ ```
158
+
159
+ ### Remove Member
160
+ ```bash
161
+ curl -X POST "https://api.hailer.com/api/v2/process/member/remove" \
162
+ -H "Content-Type: application/json" \
163
+ -H "hlrkey: YOUR_SESSION_KEY" \
164
+ -d '["WORKFLOW_ID", {"userId": "USER_ID"}]'
165
+ ```
166
+
167
+ ### Grant Permission
168
+ ```bash
169
+ curl -X POST "https://api.hailer.com/api/v2/process/permissions/grant" \
170
+ -H "Content-Type: application/json" \
171
+ -H "hlrkey: YOUR_SESSION_KEY" \
172
+ -d '["WORKFLOW_ID", {"userId": "USER_ID"}, "edit"]'
173
+ # Permissions: view, edit, admin
174
+ ```
175
+
176
+ ### Deny Permission
177
+ ```bash
178
+ curl -X POST "https://api.hailer.com/api/v2/process/permissions/deny" \
179
+ -H "Content-Type: application/json" \
180
+ -H "hlrkey: YOUR_SESSION_KEY" \
181
+ -d '["WORKFLOW_ID", {"userId": "USER_ID"}, "edit"]'
182
+ ```
183
+
184
+ ---
185
+
186
+ ## Phase Members & Permissions (v2)
187
+
188
+ ### List Phase Members
189
+ ```bash
190
+ curl -X POST "https://api.hailer.com/api/v2/process/phase/member/list" \
191
+ -H "Content-Type: application/json" \
192
+ -H "hlrkey: YOUR_SESSION_KEY" \
193
+ -d '["PHASE_ID"]'
194
+ ```
195
+
196
+ ### Add Phase Member
197
+ ```bash
198
+ curl -X POST "https://api.hailer.com/api/v2/process/phase/member/add" \
199
+ -H "Content-Type: application/json" \
200
+ -H "hlrkey: YOUR_SESSION_KEY" \
201
+ -d '["PHASE_ID", {"userId": "USER_ID"}]'
202
+ ```
203
+
204
+ ### Grant Phase Permission
205
+ ```bash
206
+ curl -X POST "https://api.hailer.com/api/v2/process/phase/permissions/grant" \
207
+ -H "Content-Type: application/json" \
208
+ -H "hlrkey: YOUR_SESSION_KEY" \
209
+ -d '["PHASE_ID", {"userId": "USER_ID"}, "edit"]'
210
+ ```
211
+
212
+ ---
213
+
214
+ ## Templates
215
+
216
+ ### Install Template
217
+ ```bash
218
+ curl -X POST "https://api.hailer.com/api/process/install_template" \
219
+ -H "Content-Type: application/json" \
220
+ -H "hlrkey: YOUR_SESSION_KEY" \
221
+ -d '["TEMPLATE_ID"]'
222
+ ```
223
+
224
+ ### Create Activity Template
225
+ ```bash
226
+ curl -X POST "https://api.hailer.com/api/v3/activity/template/create" \
227
+ -H "Content-Type: application/json" \
228
+ -H "hlrkey: YOUR_SESSION_KEY" \
229
+ -d '["WORKFLOW_ID", "PHASE_ID"]'
230
+ ```
231
+
232
+ ---
233
+
234
+ ## Public Forms (v2)
235
+
236
+ ### Create Public Form
237
+ ```bash
238
+ curl -X POST "https://api.hailer.com/api/v2/process/publicForm/create" \
239
+ -H "Content-Type: application/json" \
240
+ -H "hlrkey: YOUR_SESSION_KEY" \
241
+ -d '[{"processId": "WORKFLOW_ID", "phaseId": "PHASE_ID", "fields": ["FIELD_ID_1"]}]'
242
+ ```
243
+
244
+ ### Update Public Form
245
+ ```bash
246
+ curl -X POST "https://api.hailer.com/api/v2/process/publicForm/update" \
247
+ -H "Content-Type: application/json" \
248
+ -H "hlrkey: YOUR_SESSION_KEY" \
249
+ -d '[{"formId": "FORM_ID", "enabled": true}]'
250
+ ```
251
+
252
+ ---
253
+
254
+ ## Document Templates
255
+
256
+ ### Set Document Templates
257
+ ```bash
258
+ curl -X POST "https://api.hailer.com/api/process/set_documentTemplates" \
259
+ -H "Content-Type: application/json" \
260
+ -H "hlrkey: YOUR_SESSION_KEY" \
261
+ -d '["WORKFLOW_ID", {"template1": {"name": "Invoice", "content": "..."}}]'
262
+ ```
263
+
264
+ ---
265
+
266
+ ## Translations (v2)
267
+
268
+ ### Create Translation
269
+ ```bash
270
+ curl -X POST "https://api.hailer.com/api/v2/process/translation/create" \
271
+ -H "Content-Type: application/json" \
272
+ -H "hlrkey: YOUR_SESSION_KEY" \
273
+ -d '["WORKFLOW_ID", "fi"]'
274
+ # ISO language codes: en, fi, sv, de, etc.
275
+ ```
276
+
277
+ ---
278
+
279
+ ## Notes
280
+ - workflowId = processId (legacy naming)
281
+ - cid = companyId = workspaceId = networkId (all refer to workspace)
282
+ - Phases are like columns in a Kanban or row states
283
+ - Fields are columns in the workflow table
@@ -1,9 +1,12 @@
1
1
  ---
2
2
  name: insight-join-patterns
3
3
  description: Correct JOIN syntax for Hailer insights with ActivityLink fields
4
+ version: 1.0.0
4
5
  triggers: JOIN query errors, missing columns, NULL results in insight queries
5
6
  ---
6
7
 
8
+ **Prerequisite:** Before using JOINs, review `SDK-insight-queries` skill for basic insight syntax and single-workflow queries.
9
+
7
10
  <problem>
8
11
  When joining workflows with ActivityLink fields in Hailer insights, you must:
9
12
  1. Include `_id` meta field in BOTH source definitions