@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.
Files changed (271) hide show
  1. package/CHANGELOG.md +0 -7
  2. package/{.claude → dist}/CLAUDE.md +2 -2
  3. package/dist/app.js +18 -5
  4. package/dist/bot/bot-config.d.ts +10 -1
  5. package/dist/bot/bot-config.js +64 -3
  6. package/dist/bot/bot-manager.d.ts +2 -0
  7. package/dist/bot/bot-manager.js +9 -2
  8. package/dist/bot/bot.d.ts +33 -0
  9. package/dist/bot/bot.js +461 -160
  10. package/dist/bot/services/message-classifier.js +17 -0
  11. package/dist/bot/services/permission-guard.d.ts +52 -0
  12. package/dist/bot/services/permission-guard.js +149 -0
  13. package/dist/bot/services/types.d.ts +5 -0
  14. package/dist/bot/services/typing-indicator.d.ts +6 -1
  15. package/dist/bot/services/typing-indicator.js +19 -3
  16. package/dist/cli.js +0 -0
  17. package/dist/config.d.ts +6 -1
  18. package/dist/config.js +43 -0
  19. package/dist/core.js +3 -6
  20. package/dist/lib/discussion-lock.d.ts +42 -0
  21. package/dist/lib/discussion-lock.js +110 -0
  22. package/dist/mcp/UserContextCache.d.ts +5 -0
  23. package/dist/mcp/UserContextCache.js +51 -19
  24. package/dist/mcp/hailer-clients.d.ts +19 -1
  25. package/dist/mcp/hailer-clients.js +158 -24
  26. package/dist/mcp/session-store.d.ts +68 -0
  27. package/dist/mcp/session-store.js +169 -0
  28. package/dist/mcp/signal-handler.js +2 -0
  29. package/dist/mcp/tool-registry.d.ts +17 -4
  30. package/dist/mcp/tool-registry.js +37 -7
  31. package/dist/mcp/tools/activity.js +99 -7
  32. package/dist/mcp/tools/app-scaffold.js +304 -336
  33. package/dist/mcp/tools/bot-config/constants.d.ts +23 -0
  34. package/dist/mcp/tools/bot-config/constants.js +94 -0
  35. package/dist/mcp/tools/bot-config/core.d.ts +253 -0
  36. package/dist/mcp/tools/bot-config/core.js +2456 -0
  37. package/dist/mcp/tools/bot-config/index.d.ts +10 -0
  38. package/dist/mcp/tools/bot-config/index.js +59 -0
  39. package/dist/mcp/tools/bot-config/tools.d.ts +7 -0
  40. package/dist/mcp/tools/bot-config/tools.js +15 -0
  41. package/dist/mcp/tools/bot-config/types.d.ts +50 -0
  42. package/dist/mcp/tools/bot-config/types.js +6 -0
  43. package/dist/mcp/tools/bug-fixer-tools.d.ts +45 -0
  44. package/dist/mcp/tools/bug-fixer-tools.js +1096 -0
  45. package/dist/mcp/tools/company.d.ts +9 -0
  46. package/dist/mcp/tools/company.js +88 -0
  47. package/dist/mcp/tools/discussion.js +68 -0
  48. package/dist/mcp/tools/document.d.ts +11 -0
  49. package/dist/mcp/tools/document.js +741 -0
  50. package/dist/mcp/tools/investigate.d.ts +9 -0
  51. package/dist/mcp/tools/investigate.js +254 -0
  52. package/dist/mcp/tools/workflow-permissions.d.ts +15 -0
  53. package/dist/mcp/tools/workflow-permissions.js +204 -0
  54. package/dist/mcp/tools/workflow.js +57 -18
  55. package/dist/mcp/utils/index.d.ts +2 -0
  56. package/dist/mcp/utils/index.js +12 -1
  57. package/dist/mcp/utils/role-utils.d.ts +74 -0
  58. package/dist/mcp/utils/role-utils.js +151 -0
  59. package/dist/mcp/utils/types.d.ts +43 -1
  60. package/dist/mcp/utils/types.js +14 -0
  61. package/dist/mcp/webhook-handler.d.ts +4 -0
  62. package/dist/mcp/webhook-handler.js +8 -0
  63. package/dist/mcp-server.d.ts +23 -2
  64. package/dist/mcp-server.js +639 -127
  65. package/dist/plugins/vipunen/client.d.ts +150 -0
  66. package/dist/plugins/vipunen/client.js +535 -0
  67. package/dist/plugins/vipunen/config/schema-config.json +19 -0
  68. package/dist/plugins/vipunen/config/schema-doc.json +22 -0
  69. package/dist/plugins/vipunen/index.d.ts +41 -0
  70. package/dist/plugins/vipunen/index.js +88 -0
  71. package/dist/plugins/vipunen/tools.d.ts +26 -0
  72. package/dist/plugins/vipunen/tools.js +501 -0
  73. package/dist/stdio-server.d.ts +14 -0
  74. package/dist/stdio-server.js +101 -0
  75. package/package.json +2 -1
  76. package/.claude/agents/agent-ada-skill-builder.md +0 -94
  77. package/.claude/agents/agent-alejandro-function-fields.md +0 -342
  78. package/.claude/agents/agent-bjorn-config-audit.md +0 -103
  79. package/.claude/agents/agent-builder-agent-creator.md +0 -130
  80. package/.claude/agents/agent-code-simplifier.md +0 -53
  81. package/.claude/agents/agent-dmitri-activity-crud.md +0 -159
  82. package/.claude/agents/agent-giuseppe-app-builder.md +0 -247
  83. package/.claude/agents/agent-gunther-mcp-tools.md +0 -39
  84. package/.claude/agents/agent-helga-workflow-config.md +0 -204
  85. package/.claude/agents/agent-igor-activity-mover-automation.md +0 -125
  86. package/.claude/agents/agent-ingrid-doc-templates.md +0 -261
  87. package/.claude/agents/agent-ivan-monolith.md +0 -154
  88. package/.claude/agents/agent-kenji-data-reader.md +0 -86
  89. package/.claude/agents/agent-lars-code-inspector.md +0 -102
  90. package/.claude/agents/agent-marco-mockup-builder.md +0 -110
  91. package/.claude/agents/agent-marcus-api-documenter.md +0 -323
  92. package/.claude/agents/agent-marketplace-publisher.md +0 -280
  93. package/.claude/agents/agent-marketplace-reviewer.md +0 -309
  94. package/.claude/agents/agent-permissions-handler.md +0 -208
  95. package/.claude/agents/agent-simple-writer.md +0 -48
  96. package/.claude/agents/agent-svetlana-code-review.md +0 -171
  97. package/.claude/agents/agent-tanya-test-runner.md +0 -333
  98. package/.claude/agents/agent-ui-designer.md +0 -100
  99. package/.claude/agents/agent-viktor-sql-insights.md +0 -212
  100. package/.claude/agents/agent-web-search.md +0 -55
  101. package/.claude/agents/agent-yevgeni-discussions.md +0 -45
  102. package/.claude/agents/agent-zara-zapier.md +0 -159
  103. package/.claude/commands/app-squad.md +0 -135
  104. package/.claude/commands/audit-squad.md +0 -158
  105. package/.claude/commands/autoplan.md +0 -563
  106. package/.claude/commands/cleanup-squad.md +0 -98
  107. package/.claude/commands/config-squad.md +0 -106
  108. package/.claude/commands/crud-squad.md +0 -87
  109. package/.claude/commands/data-squad.md +0 -97
  110. package/.claude/commands/debug-squad.md +0 -303
  111. package/.claude/commands/doc-squad.md +0 -65
  112. package/.claude/commands/handoff.md +0 -137
  113. package/.claude/commands/health.md +0 -49
  114. package/.claude/commands/help.md +0 -29
  115. package/.claude/commands/help:agents.md +0 -151
  116. package/.claude/commands/help:commands.md +0 -78
  117. package/.claude/commands/help:faq.md +0 -79
  118. package/.claude/commands/help:plugins.md +0 -50
  119. package/.claude/commands/help:skills.md +0 -93
  120. package/.claude/commands/help:tools.md +0 -75
  121. package/.claude/commands/hotfix-squad.md +0 -112
  122. package/.claude/commands/integration-squad.md +0 -82
  123. package/.claude/commands/janitor-squad.md +0 -167
  124. package/.claude/commands/learn-auto.md +0 -120
  125. package/.claude/commands/learn.md +0 -120
  126. package/.claude/commands/mcp-list.md +0 -27
  127. package/.claude/commands/onboard-squad.md +0 -140
  128. package/.claude/commands/plan-workspace.md +0 -732
  129. package/.claude/commands/prd.md +0 -130
  130. package/.claude/commands/project-status.md +0 -82
  131. package/.claude/commands/publish.md +0 -138
  132. package/.claude/commands/recap.md +0 -69
  133. package/.claude/commands/restore.md +0 -64
  134. package/.claude/commands/review-squad.md +0 -152
  135. package/.claude/commands/save.md +0 -24
  136. package/.claude/commands/stats.md +0 -19
  137. package/.claude/commands/swarm.md +0 -210
  138. package/.claude/commands/tool-builder.md +0 -39
  139. package/.claude/commands/ws-pull.md +0 -44
  140. package/.claude/hooks/_shared-memory.cjs +0 -305
  141. package/.claude/hooks/_utils.cjs +0 -108
  142. package/.claude/hooks/agent-failure-detector.cjs +0 -383
  143. package/.claude/hooks/agent-usage-logger.cjs +0 -204
  144. package/.claude/hooks/app-edit-guard.cjs +0 -494
  145. package/.claude/hooks/auto-learn.cjs +0 -304
  146. package/.claude/hooks/bash-guard.cjs +0 -272
  147. package/.claude/hooks/builder-mode-manager.cjs +0 -354
  148. package/.claude/hooks/bulk-activity-guard.cjs +0 -271
  149. package/.claude/hooks/context-watchdog.cjs +0 -230
  150. package/.claude/hooks/delegation-reminder.cjs +0 -465
  151. package/.claude/hooks/design-system-lint.cjs +0 -271
  152. package/.claude/hooks/post-scaffold-hook.cjs +0 -181
  153. package/.claude/hooks/prompt-guard.cjs +0 -354
  154. package/.claude/hooks/publish-template-guard.cjs +0 -147
  155. package/.claude/hooks/session-start.cjs +0 -35
  156. package/.claude/hooks/shared-memory-writer.cjs +0 -147
  157. package/.claude/hooks/skill-injector.cjs +0 -140
  158. package/.claude/hooks/skill-usage-logger.cjs +0 -258
  159. package/.claude/hooks/src-edit-guard.cjs +0 -240
  160. package/.claude/hooks/sync-marketplace-agents.cjs +0 -346
  161. package/.claude/settings.json +0 -257
  162. package/.claude/skills/SDK-activity-patterns/SKILL.md +0 -428
  163. package/.claude/skills/SDK-document-templates/SKILL.md +0 -1033
  164. package/.claude/skills/SDK-function-fields/SKILL.md +0 -542
  165. package/.claude/skills/SDK-generate-skill/SKILL.md +0 -92
  166. package/.claude/skills/SDK-init-skill/SKILL.md +0 -127
  167. package/.claude/skills/SDK-insight-queries/SKILL.md +0 -787
  168. package/.claude/skills/SDK-ws-config-skill/SKILL.md +0 -1139
  169. package/.claude/skills/agent-structure/SKILL.md +0 -98
  170. package/.claude/skills/api-documentation-patterns/SKILL.md +0 -474
  171. package/.claude/skills/chrome-mcp-reference/SKILL.md +0 -370
  172. package/.claude/skills/delegation-routing/SKILL.md +0 -202
  173. package/.claude/skills/frontend-design/SKILL.md +0 -254
  174. package/.claude/skills/hailer-activity-mover/SKILL.md +0 -213
  175. package/.claude/skills/hailer-api-client/SKILL.md +0 -518
  176. package/.claude/skills/hailer-app-builder/SKILL.md +0 -1434
  177. package/.claude/skills/hailer-apps-pictures/SKILL.md +0 -269
  178. package/.claude/skills/hailer-design-system/SKILL.md +0 -235
  179. package/.claude/skills/hailer-monolith-automations/SKILL.md +0 -686
  180. package/.claude/skills/hailer-permissions-system/SKILL.md +0 -121
  181. package/.claude/skills/hailer-project-protocol/SKILL.md +0 -488
  182. package/.claude/skills/hailer-rest-api/SKILL.md +0 -61
  183. package/.claude/skills/hailer-rest-api/hailer-activities.md +0 -184
  184. package/.claude/skills/hailer-rest-api/hailer-admin.md +0 -473
  185. package/.claude/skills/hailer-rest-api/hailer-calendar.md +0 -256
  186. package/.claude/skills/hailer-rest-api/hailer-feed.md +0 -249
  187. package/.claude/skills/hailer-rest-api/hailer-insights.md +0 -195
  188. package/.claude/skills/hailer-rest-api/hailer-messaging.md +0 -276
  189. package/.claude/skills/hailer-rest-api/hailer-workflows.md +0 -283
  190. package/.claude/skills/insight-join-patterns/SKILL.md +0 -174
  191. package/.claude/skills/integration-patterns/SKILL.md +0 -421
  192. package/.claude/skills/json-only-output/SKILL.md +0 -72
  193. package/.claude/skills/lsp-setup/SKILL.md +0 -160
  194. package/.claude/skills/mcp-direct-tools/SKILL.md +0 -153
  195. package/.claude/skills/optional-parameters/SKILL.md +0 -72
  196. package/.claude/skills/publish-hailer-app/SKILL.md +0 -244
  197. package/.claude/skills/testing-patterns/SKILL.md +0 -630
  198. package/.claude/skills/tool-builder/SKILL.md +0 -250
  199. package/.claude/skills/tool-parameter-usage/SKILL.md +0 -126
  200. package/.claude/skills/tool-response-verification/SKILL.md +0 -92
  201. package/.claude/skills/zapier-hailer-patterns/SKILL.md +0 -581
  202. package/.mcp.json +0 -13
  203. package/.opencode/agent/agent-ada-skill-builder.md +0 -35
  204. package/.opencode/agent/agent-alejandro-function-fields.md +0 -39
  205. package/.opencode/agent/agent-bjorn-config-audit.md +0 -36
  206. package/.opencode/agent/agent-builder-agent-creator.md +0 -39
  207. package/.opencode/agent/agent-code-simplifier.md +0 -31
  208. package/.opencode/agent/agent-dmitri-activity-crud.md +0 -40
  209. package/.opencode/agent/agent-giuseppe-app-builder.md +0 -37
  210. package/.opencode/agent/agent-gunther-mcp-tools.md +0 -39
  211. package/.opencode/agent/agent-helga-workflow-config.md +0 -203
  212. package/.opencode/agent/agent-igor-activity-mover-automation.md +0 -46
  213. package/.opencode/agent/agent-ingrid-doc-templates.md +0 -39
  214. package/.opencode/agent/agent-ivan-monolith.md +0 -46
  215. package/.opencode/agent/agent-kenji-data-reader.md +0 -53
  216. package/.opencode/agent/agent-lars-code-inspector.md +0 -28
  217. package/.opencode/agent/agent-marco-mockup-builder.md +0 -42
  218. package/.opencode/agent/agent-marcus-api-documenter.md +0 -53
  219. package/.opencode/agent/agent-marketplace-publisher.md +0 -44
  220. package/.opencode/agent/agent-marketplace-reviewer.md +0 -42
  221. package/.opencode/agent/agent-permissions-handler.md +0 -50
  222. package/.opencode/agent/agent-simple-writer.md +0 -45
  223. package/.opencode/agent/agent-svetlana-code-review.md +0 -39
  224. package/.opencode/agent/agent-tanya-test-runner.md +0 -57
  225. package/.opencode/agent/agent-ui-designer.md +0 -56
  226. package/.opencode/agent/agent-viktor-sql-insights.md +0 -34
  227. package/.opencode/agent/agent-web-search.md +0 -42
  228. package/.opencode/agent/agent-yevgeni-discussions.md +0 -37
  229. package/.opencode/agent/agent-zara-zapier.md +0 -53
  230. package/.opencode/commands/app-squad.md +0 -135
  231. package/.opencode/commands/audit-squad.md +0 -158
  232. package/.opencode/commands/autoplan.md +0 -563
  233. package/.opencode/commands/cleanup-squad.md +0 -98
  234. package/.opencode/commands/config-squad.md +0 -106
  235. package/.opencode/commands/crud-squad.md +0 -87
  236. package/.opencode/commands/data-squad.md +0 -97
  237. package/.opencode/commands/debug-squad.md +0 -303
  238. package/.opencode/commands/doc-squad.md +0 -65
  239. package/.opencode/commands/handoff.md +0 -137
  240. package/.opencode/commands/health.md +0 -49
  241. package/.opencode/commands/help-agents.md +0 -151
  242. package/.opencode/commands/help-commands.md +0 -32
  243. package/.opencode/commands/help-faq.md +0 -29
  244. package/.opencode/commands/help-plugins.md +0 -28
  245. package/.opencode/commands/help-skills.md +0 -7
  246. package/.opencode/commands/help-tools.md +0 -40
  247. package/.opencode/commands/help.md +0 -28
  248. package/.opencode/commands/hotfix-squad.md +0 -112
  249. package/.opencode/commands/integration-squad.md +0 -82
  250. package/.opencode/commands/janitor-squad.md +0 -167
  251. package/.opencode/commands/learn-auto.md +0 -120
  252. package/.opencode/commands/learn.md +0 -120
  253. package/.opencode/commands/mcp-list.md +0 -27
  254. package/.opencode/commands/onboard-squad.md +0 -140
  255. package/.opencode/commands/plan-workspace.md +0 -732
  256. package/.opencode/commands/prd.md +0 -131
  257. package/.opencode/commands/project-status.md +0 -82
  258. package/.opencode/commands/publish.md +0 -138
  259. package/.opencode/commands/recap.md +0 -69
  260. package/.opencode/commands/restore.md +0 -64
  261. package/.opencode/commands/review-squad.md +0 -152
  262. package/.opencode/commands/save.md +0 -24
  263. package/.opencode/commands/stats.md +0 -19
  264. package/.opencode/commands/swarm.md +0 -210
  265. package/.opencode/commands/tool-builder.md +0 -39
  266. package/.opencode/commands/ws-pull.md +0 -44
  267. package/.opencode/opencode.json +0 -28
  268. package/SESSION-HANDOFF.md +0 -68
  269. package/inbox/2026-03-04-bot-config-patterns.md +0 -24
  270. package/scripts/postinstall.cjs +0 -64
  271. package/scripts/test-hal-tools.ts +0 -154
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Bot Configuration Constants
3
+ */
4
+ import type { BotInfo } from './types';
5
+ export declare const LOCAL_STATE_FILE: string;
6
+ export declare const SCHEMAS_DIR: string;
7
+ export declare const LOCAL_CREDENTIALS_FILE: string;
8
+ export declare const SIGNAL_DEDUP_WINDOW_MS = 5000;
9
+ export declare const RESTART_DEBOUNCE_MS = 500;
10
+ export declare const AGENT_DIRECTORY_PATTERNS: string[];
11
+ export declare const DEPLOYED_PHASE_PATTERNS: string[];
12
+ export declare const RETIRED_PHASE_PATTERNS: string[];
13
+ export declare const FIELD_KEY_HAILER_PROFILE: string[];
14
+ export declare const FIELD_KEY_EMAIL: string[];
15
+ export declare const FIELD_KEY_PASSWORD: string[];
16
+ export declare const FIELD_KEY_BOT_TYPE: string[];
17
+ export declare const FIELD_KEY_SCHEMA_CONFIG: string[];
18
+ export declare const LEGACY_AGENT_ACTIVITY_IDS: Record<string, string>;
19
+ /**
20
+ * Available bots - single source of truth
21
+ */
22
+ export declare const AVAILABLE_BOTS: BotInfo[];
23
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ /**
3
+ * Bot Configuration Constants
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.AVAILABLE_BOTS = exports.LEGACY_AGENT_ACTIVITY_IDS = exports.FIELD_KEY_SCHEMA_CONFIG = exports.FIELD_KEY_BOT_TYPE = exports.FIELD_KEY_PASSWORD = exports.FIELD_KEY_EMAIL = exports.FIELD_KEY_HAILER_PROFILE = exports.RETIRED_PHASE_PATTERNS = exports.DEPLOYED_PHASE_PATTERNS = exports.AGENT_DIRECTORY_PATTERNS = exports.RESTART_DEBOUNCE_MS = exports.SIGNAL_DEDUP_WINDOW_MS = exports.LOCAL_CREDENTIALS_FILE = exports.SCHEMAS_DIR = exports.LOCAL_STATE_FILE = void 0;
40
+ const path = __importStar(require("path"));
41
+ // File paths
42
+ exports.LOCAL_STATE_FILE = path.join(process.cwd(), '.bot-state.json');
43
+ exports.SCHEMAS_DIR = path.join(process.cwd(), '.bot-schemas');
44
+ exports.LOCAL_CREDENTIALS_FILE = path.join(process.cwd(), '.bot-credentials.json');
45
+ // Signal deduplication
46
+ exports.SIGNAL_DEDUP_WINDOW_MS = 5000;
47
+ exports.RESTART_DEBOUNCE_MS = 500;
48
+ // Schema discovery patterns
49
+ exports.AGENT_DIRECTORY_PATTERNS = ['Agent Directory', 'AI Agents', '🤖 Agent Directory'];
50
+ exports.DEPLOYED_PHASE_PATTERNS = ['deployed', 'active', 'enabled'];
51
+ exports.RETIRED_PHASE_PATTERNS = ['retired', 'disabled', 'inactive'];
52
+ // Field key patterns for discovery
53
+ exports.FIELD_KEY_HAILER_PROFILE = ['hailerProfile', 'Agent Hailer profile'];
54
+ exports.FIELD_KEY_EMAIL = ['agentEmailInHailer', 'email', 'Email of Hailer profile'];
55
+ exports.FIELD_KEY_PASSWORD = ['password'];
56
+ exports.FIELD_KEY_BOT_TYPE = ['botType', 'bot_type', 'type'];
57
+ exports.FIELD_KEY_SCHEMA_CONFIG = ['schemaConfig', 'schema_config', 'schema_config_f3a'];
58
+ // Legacy activity IDs (fallback when discovery fails)
59
+ exports.LEGACY_AGENT_ACTIVITY_IDS = {
60
+ hal: '695e42deca61319424bc8b1f',
61
+ hailerExpert: '695e42deca61319424bc8b20',
62
+ bugFixer: '695e42deca61319424bc8b23',
63
+ vastuullisuus: '695e42dfca61319424bc8b2e'
64
+ };
65
+ /**
66
+ * Available bots - single source of truth
67
+ */
68
+ exports.AVAILABLE_BOTS = [
69
+ {
70
+ id: 'hal',
71
+ name: 'HAL',
72
+ description: 'Main orchestrator - handles general chat and coordinates specialists',
73
+ icon: '🤖'
74
+ },
75
+ {
76
+ id: 'bugFixer',
77
+ name: 'Bug Fixer',
78
+ description: 'Bug fixing specialist - analyzes and repairs Hailer app issues',
79
+ icon: '🔧'
80
+ },
81
+ {
82
+ id: 'hailerExpert',
83
+ name: 'Hailer Expert',
84
+ description: 'Workflow & data specialist - bulk operations, insights, reports',
85
+ icon: '📊'
86
+ },
87
+ {
88
+ id: 'vastuullisuus',
89
+ name: 'Vastuullisuus',
90
+ description: 'Sustainability analysis for SMEs',
91
+ icon: '🌱'
92
+ }
93
+ ];
94
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1,253 @@
1
+ /**
2
+ * Bot Configuration MCP Tools
3
+ *
4
+ * Manages which bots are enabled/disabled in the workspace.
5
+ * Config is stored in the Agent Directory workflow - agents are activities.
6
+ * - Deployed agents phase = enabled
7
+ * - Retired agents phase = disabled
8
+ *
9
+ * Architecture (User ID-based discovery):
10
+ * - In-memory state is primary (for speed), keyed by USER ID
11
+ * - Agent Directory workflow is persistence layer (agents as activities, phases for state)
12
+ * - On startup: Load config from Hailer by extracting hailerProfile (user ID) from each agent
13
+ * - On change: Move agent activity between phases
14
+ * - Credentials: Auto-synced from Hailer to local storage on discovery
15
+ * - Orchestrator: Simply the first deployed bot with credentials (no special field needed)
16
+ */
17
+ import { z } from 'zod';
18
+ import { Tool } from '../../tool-registry';
19
+ import { HailerApiClient } from '../../utils/index';
20
+ interface SchemaConfig {
21
+ agentDirectoryWorkflowId: string | null;
22
+ deployedPhaseId: string | null;
23
+ retiredPhaseId: string | null;
24
+ hailerProfileFieldId: string | null;
25
+ emailFieldId: string | null;
26
+ passwordFieldId: string | null;
27
+ botTypeFieldId: string | null;
28
+ }
29
+ /**
30
+ * Get workspace ID by Agent Directory workflow ID (reverse lookup)
31
+ */
32
+ export declare function getWorkspaceByWorkflowId(workflowId: string): string | null;
33
+ /**
34
+ * Get all configured workspace IDs
35
+ */
36
+ export declare function getAllConfiguredWorkspaces(): string[];
37
+ /**
38
+ * Set the active workspace ID (called when switching workspaces)
39
+ */
40
+ export declare function setActiveWorkspace(workspaceId: string): void;
41
+ /**
42
+ * Get the active workspace ID
43
+ */
44
+ export declare function getActiveWorkspace(): string | null;
45
+ /**
46
+ * Get schema for a workspace
47
+ */
48
+ export declare function getWorkspaceSchema(workspaceId: string): SchemaConfig | null;
49
+ /**
50
+ * Set schema for a workspace
51
+ */
52
+ export declare function setWorkspaceSchema(workspaceId: string, schema: SchemaConfig): void;
53
+ /**
54
+ * Get discovered workflow ID for a workspace (or active workspace if not specified)
55
+ */
56
+ export declare function getAgentDirectoryWorkflowId(workspaceId?: string): string | null;
57
+ /**
58
+ * Get discovered phase IDs for a workspace (or active workspace if not specified)
59
+ */
60
+ export declare function getPhaseIds(workspaceId?: string): {
61
+ deployed: string | null;
62
+ retired: string | null;
63
+ };
64
+ /**
65
+ * Available bots - single source of truth
66
+ *
67
+ * All bots that can be enabled/disabled in the workspace.
68
+ * This list should match the AI Hub app and agent definitions.
69
+ */
70
+ export declare const AVAILABLE_BOTS: {
71
+ id: string;
72
+ name: string;
73
+ description: string;
74
+ icon: string;
75
+ }[];
76
+ /**
77
+ * Get the orchestrator user ID
78
+ * Returns the user ID of the bot marked as orchestrator in Agent Directory
79
+ */
80
+ export declare function getOrchestratorUserId(): string | null;
81
+ /**
82
+ * Set the orchestrator user ID
83
+ * Called during Agent Directory sync - set to first deployed bot with credentials
84
+ */
85
+ export declare function setOrchestratorUserId(userId: string | null): void;
86
+ export declare function onBotStateChange(callback: (botId: string, enabled: boolean) => void): void;
87
+ export declare function onBotCredentialsChange(callback: (botId: string) => void): void;
88
+ export declare function onDaemonRestartNeeded(callback: () => void): void;
89
+ /**
90
+ * Cleanup function to clear pending timers and state on shutdown
91
+ * Should be called from Core.stop() to prevent orphaned callbacks
92
+ */
93
+ export declare function cleanupBotConfig(): void;
94
+ export declare function getBotState(): Record<string, boolean>;
95
+ /**
96
+ * Get the user ID associated with a bot
97
+ */
98
+ export declare function getBotUserId(botId: string): string | null;
99
+ /**
100
+ * Get the bot type for a user ID
101
+ * Returns values like 'orchestrator', 'workflow-expert', 'bug-fixer', etc.
102
+ */
103
+ export declare function getBotType(userId: string): string | null;
104
+ /**
105
+ * Get all enabled bots with their types
106
+ * Returns map of userId -> botType for enabled bots only
107
+ */
108
+ export declare function getEnabledBotsWithTypes(): Map<string, string | null>;
109
+ /**
110
+ * Set the user ID associated with a bot
111
+ */
112
+ export declare function setBotUserId(botId: string, userId: string | null): void;
113
+ /**
114
+ * Set bot enabled state
115
+ *
116
+ * Updates in-memory state and persists to Agent Directory by moving
117
+ * the agent activity to the appropriate phase (deployed/retired).
118
+ */
119
+ export declare function setBotEnabled(botId: string, enabled: boolean): void;
120
+ /**
121
+ * Handle activity phase change signal from Hailer
122
+ *
123
+ * Called by signal-handler when an activity.updated signal is received.
124
+ * Updates bot state if the activity belongs to Agent Directory workflow.
125
+ *
126
+ * NEW: Now looks up activities by user ID instead of bot type.
127
+ *
128
+ * @param processId - Workflow ID from the signal
129
+ * @param activityIds - Array of activity IDs that were updated
130
+ * @param newPhaseId - The phase the activities moved to
131
+ */
132
+ export declare function handleActivityPhaseChange(processId: string, activityIds: string[], newPhaseId: string): Promise<void>;
133
+ /**
134
+ * Force reload bot config from Hailer
135
+ *
136
+ * Can be called to manually refresh state from Hailer.
137
+ * NEW: Now works with user IDs instead of bot IDs.
138
+ *
139
+ * Also handles hot-reload: if schema discovery hasn't succeeded yet
140
+ * (e.g., AI Hub template wasn't installed at startup), it will
141
+ * retry discovery and initialize the daemon.
142
+ */
143
+ export declare function reloadConfigFromHailer(): Promise<void>;
144
+ /**
145
+ * Initialize persistence layer
146
+ * Called once during MCP server startup
147
+ *
148
+ * Loads bot config from local files only (no Hailer API calls on startup).
149
+ * Real-time updates from Hailer are handled via signal handler when activities change.
150
+ *
151
+ * @param client - HailerApiClient instance for API calls
152
+ */
153
+ /**
154
+ * Set the target workspace ID for bot config operations
155
+ * Called by signal handler when workspace is switched
156
+ */
157
+ export declare function initBotConfigPersistence(client: HailerApiClient): Promise<void>;
158
+ /**
159
+ * Initialize workspace schema for a specific workspace
160
+ * Called by bot clients after connecting to discover the Agent Directory in that workspace
161
+ * @param client - HailerApiClient for API calls
162
+ * @param workspaceId - The workspace ID to initialize schema for
163
+ */
164
+ export declare function initWorkspaceSchema(client: HailerApiClient, workspaceId: string): Promise<boolean>;
165
+ /**
166
+ * Check if persistence is initialized
167
+ */
168
+ export declare function isPersistenceInitialized(): boolean;
169
+ /**
170
+ * Bot credentials interface
171
+ */
172
+ export interface BotCredentials {
173
+ email?: string;
174
+ password?: string;
175
+ }
176
+ /**
177
+ * Get bot credentials from Agent Directory
178
+ *
179
+ * Reads the email and password fields from the bot's activity.
180
+ * Password is masked for security unless showPassword is true.
181
+ * Falls back to local file storage if Hailer is unavailable.
182
+ *
183
+ * @param botIdOrActivityId - The bot ID (hal, bugFixer, etc.) or activity ID
184
+ * @param showPassword - If true, returns unmasked password. Default false for security.
185
+ * @returns Credentials or null if not found
186
+ */
187
+ export declare function getBotCredentials(botIdOrActivityId: string, showPassword?: boolean): Promise<BotCredentials | null>;
188
+ /**
189
+ * Update bot credentials in Agent Directory
190
+ *
191
+ * Writes the email and/or password to the bot's activity fields.
192
+ * Only updates fields that are provided.
193
+ * Saves to local file storage as backup (and uses as fallback if Hailer unavailable).
194
+ *
195
+ * @param botIdOrActivityId - The bot ID (hal, bugFixer, etc.) or raw activity ID
196
+ * @param credentials - Credentials to update (email and/or password)
197
+ */
198
+ export declare function updateBotCredentials(botIdOrActivityId: string, credentials: BotCredentials): Promise<void>;
199
+ /**
200
+ * Get unmasked bot credentials for daemon creation
201
+ *
202
+ * NEW: Now primarily looks up by user ID instead of bot ID.
203
+ * This function returns the actual password (not masked) from local storage.
204
+ * Should only be used internally for creating bot daemon instances.
205
+ *
206
+ * @param userIdOrBotId - The user ID or legacy bot ID (hal, bugFixer, etc.)
207
+ * @returns Unmasked credentials or null if not found
208
+ */
209
+ export declare function getLocalBotCredentials(userIdOrBotId: string): {
210
+ email: string;
211
+ password: string;
212
+ displayName?: string;
213
+ } | null;
214
+ /**
215
+ * Get all local bot credentials (for daemon initialization)
216
+ * Returns all bots stored in .bot-credentials.json
217
+ */
218
+ export declare function getAllLocalBotCredentials(): Record<string, {
219
+ email: string;
220
+ password: string;
221
+ displayName?: string;
222
+ }>;
223
+ /**
224
+ * Get persistence status info (for debugging)
225
+ */
226
+ export declare function getPersistenceStatus(): {
227
+ initialized: boolean;
228
+ workflowId: string | null;
229
+ deployedPhaseId: string | null;
230
+ retiredPhaseId: string | null;
231
+ agentActivityIds: Record<string, string>;
232
+ hasClient: boolean;
233
+ };
234
+ /**
235
+ * List available bots and their status
236
+ */
237
+ export declare const listBotsConfigTool: Tool;
238
+ /**
239
+ * Enable a bot
240
+ */
241
+ export declare const enableBotTool: Tool;
242
+ /**
243
+ * Disable a bot
244
+ */
245
+ export declare const disableBotTool: Tool;
246
+ /**
247
+ * Check specialist status from Agent Directory
248
+ * Returns real-time status showing which specialists are deployed vs retired
249
+ */
250
+ export declare const checkSpecialistStatusTool: Tool;
251
+ export declare const botConfigTools: Tool<z.ZodType<any, z.ZodTypeDef, any>>[];
252
+ export {};
253
+ //# sourceMappingURL=core.d.ts.map