@hailer/mcp 1.1.11 → 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 (252) hide show
  1. package/dist/app.js +18 -5
  2. package/dist/bot/bot-config.d.ts +12 -1
  3. package/dist/bot/bot-config.js +98 -14
  4. package/dist/bot/bot-manager.d.ts +13 -3
  5. package/dist/bot/bot-manager.js +80 -25
  6. package/dist/bot/bot.d.ts +46 -0
  7. package/dist/bot/bot.js +542 -166
  8. package/dist/bot/services/message-classifier.js +17 -0
  9. package/dist/bot/services/permission-guard.d.ts +52 -0
  10. package/dist/bot/services/permission-guard.js +149 -0
  11. package/dist/bot/services/types.d.ts +5 -0
  12. package/dist/bot/services/typing-indicator.d.ts +6 -1
  13. package/dist/bot/services/typing-indicator.js +19 -3
  14. package/dist/config.d.ts +6 -1
  15. package/dist/config.js +43 -0
  16. package/dist/core.js +3 -6
  17. package/dist/mcp/UserContextCache.d.ts +5 -0
  18. package/dist/mcp/UserContextCache.js +51 -19
  19. package/dist/mcp/hailer-clients.d.ts +19 -1
  20. package/dist/mcp/hailer-clients.js +157 -20
  21. package/dist/mcp/session-store.d.ts +68 -0
  22. package/dist/mcp/session-store.js +169 -0
  23. package/dist/mcp/signal-handler.js +12 -12
  24. package/dist/mcp/tool-registry.d.ts +17 -4
  25. package/dist/mcp/tool-registry.js +37 -7
  26. package/dist/mcp/tools/activity.js +99 -7
  27. package/dist/mcp/tools/app-scaffold.js +304 -336
  28. package/dist/mcp/tools/company.d.ts +9 -0
  29. package/dist/mcp/tools/company.js +88 -0
  30. package/dist/mcp/tools/discussion.js +68 -0
  31. package/dist/mcp/tools/workflow-permissions.d.ts +15 -0
  32. package/dist/mcp/tools/workflow-permissions.js +204 -0
  33. package/dist/mcp/tools/workflow.js +57 -18
  34. package/dist/mcp/utils/index.d.ts +2 -0
  35. package/dist/mcp/utils/index.js +12 -1
  36. package/dist/mcp/utils/role-utils.d.ts +74 -0
  37. package/dist/mcp/utils/role-utils.js +151 -0
  38. package/dist/mcp/utils/types.d.ts +43 -1
  39. package/dist/mcp/utils/types.js +14 -0
  40. package/dist/mcp/webhook-handler.d.ts +6 -0
  41. package/dist/mcp/webhook-handler.js +11 -0
  42. package/dist/mcp-server.d.ts +23 -2
  43. package/dist/mcp-server.js +639 -111
  44. package/dist/plugins/vipunen/client.d.ts +150 -0
  45. package/dist/plugins/vipunen/client.js +535 -0
  46. package/dist/plugins/vipunen/config/schema-config.json +19 -0
  47. package/dist/plugins/vipunen/config/schema-doc.json +22 -0
  48. package/dist/plugins/vipunen/index.d.ts +41 -0
  49. package/dist/plugins/vipunen/index.js +88 -0
  50. package/dist/plugins/vipunen/tools.d.ts +26 -0
  51. package/dist/plugins/vipunen/tools.js +501 -0
  52. package/package.json +2 -1
  53. package/.claude/.context-watchdog.json +0 -1
  54. package/.claude/.session-checked +0 -1
  55. package/.claude/CLAUDE.md +0 -370
  56. package/.claude/agents/agent-ada-skill-builder.md +0 -94
  57. package/.claude/agents/agent-alejandro-function-fields.md +0 -342
  58. package/.claude/agents/agent-bjorn-config-audit.md +0 -103
  59. package/.claude/agents/agent-builder-agent-creator.md +0 -130
  60. package/.claude/agents/agent-code-simplifier.md +0 -53
  61. package/.claude/agents/agent-dmitri-activity-crud.md +0 -159
  62. package/.claude/agents/agent-giuseppe-app-builder.md +0 -247
  63. package/.claude/agents/agent-gunther-mcp-tools.md +0 -39
  64. package/.claude/agents/agent-helga-workflow-config.md +0 -204
  65. package/.claude/agents/agent-igor-activity-mover-automation.md +0 -125
  66. package/.claude/agents/agent-ingrid-doc-templates.md +0 -261
  67. package/.claude/agents/agent-ivan-monolith.md +0 -154
  68. package/.claude/agents/agent-kenji-data-reader.md +0 -86
  69. package/.claude/agents/agent-lars-code-inspector.md +0 -102
  70. package/.claude/agents/agent-marco-mockup-builder.md +0 -110
  71. package/.claude/agents/agent-marcus-api-documenter.md +0 -323
  72. package/.claude/agents/agent-marketplace-publisher.md +0 -280
  73. package/.claude/agents/agent-marketplace-reviewer.md +0 -309
  74. package/.claude/agents/agent-permissions-handler.md +0 -208
  75. package/.claude/agents/agent-simple-writer.md +0 -48
  76. package/.claude/agents/agent-svetlana-code-review.md +0 -171
  77. package/.claude/agents/agent-tanya-test-runner.md +0 -333
  78. package/.claude/agents/agent-ui-designer.md +0 -100
  79. package/.claude/agents/agent-viktor-sql-insights.md +0 -212
  80. package/.claude/agents/agent-web-search.md +0 -55
  81. package/.claude/agents/agent-yevgeni-discussions.md +0 -45
  82. package/.claude/agents/agent-zara-zapier.md +0 -159
  83. package/.claude/commands/app-squad.md +0 -135
  84. package/.claude/commands/audit-squad.md +0 -158
  85. package/.claude/commands/autoplan.md +0 -563
  86. package/.claude/commands/cleanup-squad.md +0 -98
  87. package/.claude/commands/config-squad.md +0 -106
  88. package/.claude/commands/crud-squad.md +0 -87
  89. package/.claude/commands/data-squad.md +0 -97
  90. package/.claude/commands/debug-squad.md +0 -303
  91. package/.claude/commands/doc-squad.md +0 -65
  92. package/.claude/commands/handoff.md +0 -137
  93. package/.claude/commands/health.md +0 -49
  94. package/.claude/commands/help.md +0 -29
  95. package/.claude/commands/help:agents.md +0 -151
  96. package/.claude/commands/help:commands.md +0 -78
  97. package/.claude/commands/help:faq.md +0 -79
  98. package/.claude/commands/help:plugins.md +0 -50
  99. package/.claude/commands/help:skills.md +0 -93
  100. package/.claude/commands/help:tools.md +0 -75
  101. package/.claude/commands/hotfix-squad.md +0 -112
  102. package/.claude/commands/integration-squad.md +0 -82
  103. package/.claude/commands/janitor-squad.md +0 -167
  104. package/.claude/commands/learn-auto.md +0 -120
  105. package/.claude/commands/learn.md +0 -120
  106. package/.claude/commands/mcp-list.md +0 -27
  107. package/.claude/commands/onboard-squad.md +0 -140
  108. package/.claude/commands/plan-workspace.md +0 -732
  109. package/.claude/commands/prd.md +0 -130
  110. package/.claude/commands/project-status.md +0 -82
  111. package/.claude/commands/publish.md +0 -138
  112. package/.claude/commands/recap.md +0 -69
  113. package/.claude/commands/restore.md +0 -64
  114. package/.claude/commands/review-squad.md +0 -152
  115. package/.claude/commands/save.md +0 -24
  116. package/.claude/commands/stats.md +0 -19
  117. package/.claude/commands/swarm.md +0 -210
  118. package/.claude/commands/tool-builder.md +0 -39
  119. package/.claude/commands/ws-pull.md +0 -44
  120. package/.claude/hooks/_shared-memory.cjs +0 -305
  121. package/.claude/hooks/_utils.cjs +0 -108
  122. package/.claude/hooks/agent-failure-detector.cjs +0 -383
  123. package/.claude/hooks/agent-usage-logger.cjs +0 -204
  124. package/.claude/hooks/app-edit-guard.cjs +0 -494
  125. package/.claude/hooks/auto-learn.cjs +0 -304
  126. package/.claude/hooks/bash-guard.cjs +0 -272
  127. package/.claude/hooks/builder-mode-manager.cjs +0 -354
  128. package/.claude/hooks/bulk-activity-guard.cjs +0 -271
  129. package/.claude/hooks/context-watchdog.cjs +0 -230
  130. package/.claude/hooks/delegation-reminder.cjs +0 -465
  131. package/.claude/hooks/design-system-lint.cjs +0 -271
  132. package/.claude/hooks/post-scaffold-hook.cjs +0 -181
  133. package/.claude/hooks/prompt-guard.cjs +0 -354
  134. package/.claude/hooks/publish-template-guard.cjs +0 -147
  135. package/.claude/hooks/session-start.cjs +0 -35
  136. package/.claude/hooks/shared-memory-writer.cjs +0 -147
  137. package/.claude/hooks/skill-injector.cjs +0 -140
  138. package/.claude/hooks/skill-usage-logger.cjs +0 -258
  139. package/.claude/hooks/src-edit-guard.cjs +0 -240
  140. package/.claude/hooks/sync-marketplace-agents.cjs +0 -346
  141. package/.claude/settings.json +0 -257
  142. package/.claude/skills/SDK-activity-patterns/SKILL.md +0 -428
  143. package/.claude/skills/SDK-document-templates/SKILL.md +0 -1033
  144. package/.claude/skills/SDK-function-fields/SKILL.md +0 -542
  145. package/.claude/skills/SDK-generate-skill/SKILL.md +0 -92
  146. package/.claude/skills/SDK-init-skill/SKILL.md +0 -127
  147. package/.claude/skills/SDK-insight-queries/SKILL.md +0 -787
  148. package/.claude/skills/SDK-ws-config-skill/SKILL.md +0 -1139
  149. package/.claude/skills/agent-structure/SKILL.md +0 -98
  150. package/.claude/skills/api-documentation-patterns/SKILL.md +0 -474
  151. package/.claude/skills/chrome-mcp-reference/SKILL.md +0 -370
  152. package/.claude/skills/delegation-routing/SKILL.md +0 -202
  153. package/.claude/skills/frontend-design/SKILL.md +0 -254
  154. package/.claude/skills/hailer-activity-mover/SKILL.md +0 -213
  155. package/.claude/skills/hailer-api-client/SKILL.md +0 -518
  156. package/.claude/skills/hailer-app-builder/SKILL.md +0 -1434
  157. package/.claude/skills/hailer-apps-pictures/SKILL.md +0 -269
  158. package/.claude/skills/hailer-design-system/SKILL.md +0 -235
  159. package/.claude/skills/hailer-monolith-automations/SKILL.md +0 -686
  160. package/.claude/skills/hailer-permissions-system/SKILL.md +0 -121
  161. package/.claude/skills/hailer-project-protocol/SKILL.md +0 -488
  162. package/.claude/skills/hailer-rest-api/SKILL.md +0 -61
  163. package/.claude/skills/hailer-rest-api/hailer-activities.md +0 -184
  164. package/.claude/skills/hailer-rest-api/hailer-admin.md +0 -473
  165. package/.claude/skills/hailer-rest-api/hailer-calendar.md +0 -256
  166. package/.claude/skills/hailer-rest-api/hailer-feed.md +0 -249
  167. package/.claude/skills/hailer-rest-api/hailer-insights.md +0 -195
  168. package/.claude/skills/hailer-rest-api/hailer-messaging.md +0 -276
  169. package/.claude/skills/hailer-rest-api/hailer-workflows.md +0 -283
  170. package/.claude/skills/insight-join-patterns/SKILL.md +0 -174
  171. package/.claude/skills/integration-patterns/SKILL.md +0 -421
  172. package/.claude/skills/json-only-output/SKILL.md +0 -72
  173. package/.claude/skills/lsp-setup/SKILL.md +0 -160
  174. package/.claude/skills/mcp-direct-tools/SKILL.md +0 -153
  175. package/.claude/skills/optional-parameters/SKILL.md +0 -72
  176. package/.claude/skills/publish-hailer-app/SKILL.md +0 -244
  177. package/.claude/skills/testing-patterns/SKILL.md +0 -630
  178. package/.claude/skills/tool-builder/SKILL.md +0 -250
  179. package/.claude/skills/tool-parameter-usage/SKILL.md +0 -126
  180. package/.claude/skills/tool-response-verification/SKILL.md +0 -92
  181. package/.claude/skills/zapier-hailer-patterns/SKILL.md +0 -581
  182. package/.hailer-mcp-port +0 -1
  183. package/.mcp.json +0 -13
  184. package/.opencode/agent/agent-ada-skill-builder.md +0 -35
  185. package/.opencode/agent/agent-alejandro-function-fields.md +0 -39
  186. package/.opencode/agent/agent-bjorn-config-audit.md +0 -36
  187. package/.opencode/agent/agent-builder-agent-creator.md +0 -39
  188. package/.opencode/agent/agent-code-simplifier.md +0 -31
  189. package/.opencode/agent/agent-dmitri-activity-crud.md +0 -40
  190. package/.opencode/agent/agent-giuseppe-app-builder.md +0 -37
  191. package/.opencode/agent/agent-gunther-mcp-tools.md +0 -39
  192. package/.opencode/agent/agent-helga-workflow-config.md +0 -204
  193. package/.opencode/agent/agent-igor-activity-mover-automation.md +0 -46
  194. package/.opencode/agent/agent-ingrid-doc-templates.md +0 -39
  195. package/.opencode/agent/agent-ivan-monolith.md +0 -46
  196. package/.opencode/agent/agent-kenji-data-reader.md +0 -53
  197. package/.opencode/agent/agent-lars-code-inspector.md +0 -28
  198. package/.opencode/agent/agent-marco-mockup-builder.md +0 -42
  199. package/.opencode/agent/agent-marcus-api-documenter.md +0 -53
  200. package/.opencode/agent/agent-marketplace-publisher.md +0 -44
  201. package/.opencode/agent/agent-marketplace-reviewer.md +0 -42
  202. package/.opencode/agent/agent-permissions-handler.md +0 -50
  203. package/.opencode/agent/agent-simple-writer.md +0 -45
  204. package/.opencode/agent/agent-svetlana-code-review.md +0 -39
  205. package/.opencode/agent/agent-tanya-test-runner.md +0 -57
  206. package/.opencode/agent/agent-ui-designer.md +0 -56
  207. package/.opencode/agent/agent-viktor-sql-insights.md +0 -34
  208. package/.opencode/agent/agent-web-search.md +0 -42
  209. package/.opencode/agent/agent-yevgeni-discussions.md +0 -37
  210. package/.opencode/agent/agent-zara-zapier.md +0 -53
  211. package/.opencode/commands/app-squad.md +0 -135
  212. package/.opencode/commands/audit-squad.md +0 -158
  213. package/.opencode/commands/autoplan.md +0 -563
  214. package/.opencode/commands/cleanup-squad.md +0 -98
  215. package/.opencode/commands/config-squad.md +0 -106
  216. package/.opencode/commands/crud-squad.md +0 -87
  217. package/.opencode/commands/data-squad.md +0 -97
  218. package/.opencode/commands/debug-squad.md +0 -303
  219. package/.opencode/commands/doc-squad.md +0 -65
  220. package/.opencode/commands/handoff.md +0 -137
  221. package/.opencode/commands/health.md +0 -49
  222. package/.opencode/commands/help-agents.md +0 -151
  223. package/.opencode/commands/help-commands.md +0 -32
  224. package/.opencode/commands/help-faq.md +0 -29
  225. package/.opencode/commands/help-plugins.md +0 -28
  226. package/.opencode/commands/help-skills.md +0 -7
  227. package/.opencode/commands/help-tools.md +0 -40
  228. package/.opencode/commands/help.md +0 -28
  229. package/.opencode/commands/hotfix-squad.md +0 -112
  230. package/.opencode/commands/integration-squad.md +0 -82
  231. package/.opencode/commands/janitor-squad.md +0 -167
  232. package/.opencode/commands/learn-auto.md +0 -120
  233. package/.opencode/commands/learn.md +0 -120
  234. package/.opencode/commands/mcp-list.md +0 -27
  235. package/.opencode/commands/onboard-squad.md +0 -140
  236. package/.opencode/commands/plan-workspace.md +0 -732
  237. package/.opencode/commands/prd.md +0 -131
  238. package/.opencode/commands/project-status.md +0 -82
  239. package/.opencode/commands/publish.md +0 -138
  240. package/.opencode/commands/recap.md +0 -69
  241. package/.opencode/commands/restore.md +0 -64
  242. package/.opencode/commands/review-squad.md +0 -152
  243. package/.opencode/commands/save.md +0 -24
  244. package/.opencode/commands/stats.md +0 -19
  245. package/.opencode/commands/swarm.md +0 -210
  246. package/.opencode/commands/tool-builder.md +0 -39
  247. package/.opencode/commands/ws-pull.md +0 -44
  248. package/.opencode/opencode.json +0 -21
  249. package/inbox/failures.log +0 -1
  250. package/inbox/usage.jsonl +0 -4
  251. package/scripts/postinstall.cjs +0 -64
  252. package/scripts/test-hal-tools.ts +0 -154
@@ -0,0 +1,19 @@
1
+ {
2
+ "vectorizer": "none",
3
+ "properties": [
4
+ { "name": "artifact_type", "dataType": ["text"], "description": "One of: hook, agent, claude-md, pointer, skill" },
5
+ { "name": "artifact_name", "dataType": ["text"], "description": "Unique artifact identifier" },
6
+ { "name": "install_tier", "dataType": ["text"], "description": "One of: user, repo" },
7
+ { "name": "target_path", "dataType": ["text"], "description": "Relative install path from target root" },
8
+ { "name": "content", "dataType": ["text"], "description": "Complete deployable artifact content" },
9
+ { "name": "version", "dataType": ["text"], "description": "Semver version of this artifact" },
10
+ { "name": "dependencies", "dataType": ["text"], "description": "Comma-separated artifact_names this depends on" },
11
+ { "name": "project_types", "dataType": ["text"], "description": "Comma-separated project types this applies to (empty = all)" },
12
+ { "name": "placeholders", "dataType": ["text"], "description": "Comma-separated <TOKEN> names in content" },
13
+ { "name": "description", "dataType": ["text"], "description": "Human-readable summary of this artifact" },
14
+ { "name": "tags", "dataType": ["text"], "description": "Comma-separated keywords" },
15
+ { "name": "install_instructions", "dataType": ["text"], "description": "Natural language instructions for Claude: how to install, register, and uninstall this artifact" },
16
+ { "name": "created_by", "dataType": ["text"], "description": "Identity of creator" },
17
+ { "name": "verified_by", "dataType": ["text"], "description": "Identity of verifier or null" }
18
+ ]
19
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "vectorizer": "text2vec-transformers",
3
+ "moduleConfig": {
4
+ "text2vec-transformers": {
5
+ "vectorizeClassName": false
6
+ }
7
+ },
8
+ "properties": [
9
+ { "name": "scope", "dataType": ["text"], "description": "System or product within this collection", "moduleConfig": { "text2vec-transformers": { "skip": true } } },
10
+ { "name": "topic", "dataType": ["text"], "description": "Specific aspect within scope", "moduleConfig": { "text2vec-transformers": { "skip": true } } },
11
+ { "name": "title", "dataType": ["text"], "description": "Descriptive searchable chunk title" },
12
+ { "name": "content", "dataType": ["text"], "description": "The actual chunk text" },
13
+ { "name": "source_file", "dataType": ["text"], "description": "Path to original source document", "moduleConfig": { "text2vec-transformers": { "skip": true } } },
14
+ { "name": "source_section", "dataType": ["text"], "description": "Heading breadcrumb from source", "moduleConfig": { "text2vec-transformers": { "skip": true } } },
15
+ { "name": "doc_type", "dataType": ["text"], "description": "One of: reference, tutorial, api, conceptual, configuration", "moduleConfig": { "text2vec-transformers": { "skip": true } } },
16
+ { "name": "tags", "dataType": ["text"], "description": "Comma-separated keywords" },
17
+ { "name": "chunk_index", "dataType": ["int"], "description": "Position in sequence within topic", "moduleConfig": { "text2vec-transformers": { "skip": true } } },
18
+ { "name": "total_chunks", "dataType": ["int"], "description": "Total chunks in this topic", "moduleConfig": { "text2vec-transformers": { "skip": true } } },
19
+ { "name": "created_by", "dataType": ["text"], "description": "Identity of creator (agent name, user ID, or API key alias)", "moduleConfig": { "text2vec-transformers": { "skip": true } } },
20
+ { "name": "verified_by", "dataType": ["text"], "description": "Identity of verifier (night-owl tier, username) or null", "moduleConfig": { "text2vec-transformers": { "skip": true } } }
21
+ ]
22
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Vipunen Plugin — Weaviate RAG Knowledge Base
3
+ *
4
+ * Provides tools for querying and managing vectorized documentation.
5
+ * Conditionally registered: only active when weaviateHost is provided.
6
+ *
7
+ * Auth model:
8
+ * - Server authenticates to Weaviate with a single WEAVIATE_API_KEY (env var).
9
+ * - Clients authenticate to MCP with their own API keys (VIPUNEN_API_KEYS env var).
10
+ * - Each client key belongs to a group: admin, dev, or readonly.
11
+ * - Groups control what operations and collections are accessible.
12
+ */
13
+ import { Tool } from '../../mcp/tool-registry';
14
+ import { VipunenGroup, VipunenContext } from './tools';
15
+ export interface VipunenPluginOptions {
16
+ weaviateHost?: string;
17
+ weaviateApiKey?: string;
18
+ vipunenApiKeys?: Record<string, VipunenGroup>;
19
+ }
20
+ /**
21
+ * Register Vipunen tools if weaviateHost is provided.
22
+ * Returns the tools array (empty if not configured).
23
+ */
24
+ export declare function registerVipunenTools(options?: VipunenPluginOptions): Tool[];
25
+ /**
26
+ * Resolve a client API key to a VipunenContext with group.
27
+ * Throws if the key is not recognized.
28
+ */
29
+ export declare function resolveVipunenContext(apiKey: string): VipunenContext;
30
+ /**
31
+ * Check if a Vipunen API key is valid (exists in the configured key map).
32
+ */
33
+ export declare function isValidVipunenKey(apiKey: string): boolean;
34
+ /**
35
+ * Reset plugin state — for tests only.
36
+ */
37
+ export declare function resetVipunenPlugin(): void;
38
+ export { WeaviateClient, WeaviateAuthError } from './client';
39
+ export { createVipunenTools } from './tools';
40
+ export type { VipunenGroup, VipunenContext } from './tools';
41
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ /**
3
+ * Vipunen Plugin — Weaviate RAG Knowledge Base
4
+ *
5
+ * Provides tools for querying and managing vectorized documentation.
6
+ * Conditionally registered: only active when weaviateHost is provided.
7
+ *
8
+ * Auth model:
9
+ * - Server authenticates to Weaviate with a single WEAVIATE_API_KEY (env var).
10
+ * - Clients authenticate to MCP with their own API keys (VIPUNEN_API_KEYS env var).
11
+ * - Each client key belongs to a group: admin, dev, or readonly.
12
+ * - Groups control what operations and collections are accessible.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.createVipunenTools = exports.WeaviateAuthError = exports.WeaviateClient = void 0;
16
+ exports.registerVipunenTools = registerVipunenTools;
17
+ exports.resolveVipunenContext = resolveVipunenContext;
18
+ exports.isValidVipunenKey = isValidVipunenKey;
19
+ exports.resetVipunenPlugin = resetVipunenPlugin;
20
+ const client_1 = require("./client");
21
+ const tools_1 = require("./tools");
22
+ const logger_1 = require("../../lib/logger");
23
+ const logger = (0, logger_1.createLogger)({ component: 'vipunen-plugin' });
24
+ let activeClient = null;
25
+ let apiKeyMap = {};
26
+ /**
27
+ * Register Vipunen tools if weaviateHost is provided.
28
+ * Returns the tools array (empty if not configured).
29
+ */
30
+ function registerVipunenTools(options) {
31
+ const host = options?.weaviateHost;
32
+ if (!host) {
33
+ logger.debug('Vipunen plugin not activated (no weaviateHost)');
34
+ return [];
35
+ }
36
+ if (activeClient) {
37
+ throw new Error('Vipunen plugin already registered — call resetVipunenPlugin() before re-registering');
38
+ }
39
+ const client = new client_1.WeaviateClient({
40
+ host,
41
+ apiKey: options?.weaviateApiKey,
42
+ });
43
+ activeClient = client;
44
+ // Store the API key → group mapping (validated by Zod in config.ts)
45
+ apiKeyMap = Object.freeze({ ...(options?.vipunenApiKeys ?? {}) });
46
+ const keyCount = Object.keys(apiKeyMap).length;
47
+ if (keyCount === 0) {
48
+ logger.warn('Vipunen plugin activated with NO client API keys — all requests will be rejected');
49
+ }
50
+ const tools = (0, tools_1.createVipunenTools)(client);
51
+ logger.info('Vipunen plugin activated', {
52
+ toolCount: tools.length,
53
+ tools: tools.map(t => t.name),
54
+ clientKeys: keyCount,
55
+ groups: [...new Set(Object.values(apiKeyMap))],
56
+ });
57
+ return tools;
58
+ }
59
+ /**
60
+ * Resolve a client API key to a VipunenContext with group.
61
+ * Throws if the key is not recognized.
62
+ */
63
+ function resolveVipunenContext(apiKey) {
64
+ const group = apiKeyMap[apiKey];
65
+ if (!group) {
66
+ throw new Error('Invalid Vipunen API key');
67
+ }
68
+ return { group };
69
+ }
70
+ /**
71
+ * Check if a Vipunen API key is valid (exists in the configured key map).
72
+ */
73
+ function isValidVipunenKey(apiKey) {
74
+ return apiKey in apiKeyMap;
75
+ }
76
+ /**
77
+ * Reset plugin state — for tests only.
78
+ */
79
+ function resetVipunenPlugin() {
80
+ activeClient = null;
81
+ apiKeyMap = {};
82
+ }
83
+ var client_2 = require("./client");
84
+ Object.defineProperty(exports, "WeaviateClient", { enumerable: true, get: function () { return client_2.WeaviateClient; } });
85
+ Object.defineProperty(exports, "WeaviateAuthError", { enumerable: true, get: function () { return client_2.WeaviateAuthError; } });
86
+ var tools_2 = require("./tools");
87
+ Object.defineProperty(exports, "createVipunenTools", { enumerable: true, get: function () { return tools_2.createVipunenTools; } });
88
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Vipunen Tools — Weaviate RAG Knowledge Base
3
+ *
4
+ * Tools for querying and managing vectorized documentation in Weaviate.
5
+ * All tools use contextType: 'none' — they don't need Hailer authentication.
6
+ *
7
+ * Auth model:
8
+ * - Server authenticates to Weaviate with a single WEAVIATE_API_KEY
9
+ * - Clients authenticate to MCP with their own API keys (VIPUNEN_API_KEYS)
10
+ * - Each client key belongs to a group: admin, dev, or readonly
11
+ * - Groups control what operations and collections are accessible
12
+ *
13
+ * Permission tiers:
14
+ * - readonly: 5 tools (query, find-similar, list-sources, count, filter)
15
+ * - dev: 8 tools (readonly + insert-one, update-chunks, delete-source) — no VipunenConfig writes
16
+ * - admin: 13 tools (dev + get-schema, export, batch-insert, create-collection, delete-collection)
17
+ */
18
+ import { Tool } from '../../mcp/tool-registry';
19
+ import { WeaviateClient } from './client';
20
+ export type VipunenGroup = 'admin' | 'dev' | 'readonly';
21
+ /** Execution context passed to each tool — resolved by the plugin from the client's API key */
22
+ export interface VipunenContext {
23
+ group: VipunenGroup;
24
+ }
25
+ export declare function createVipunenTools(client: WeaviateClient): Tool[];
26
+ //# sourceMappingURL=tools.d.ts.map