@skillsmith/mcp-server 0.4.7 → 0.4.9

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 (213) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +21 -0
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/src/__tests__/tool-dispatch.test.d.ts +8 -0
  5. package/dist/src/__tests__/tool-dispatch.test.d.ts.map +1 -0
  6. package/dist/src/__tests__/tool-dispatch.test.js +144 -0
  7. package/dist/src/__tests__/tool-dispatch.test.js.map +1 -0
  8. package/dist/src/index.js +31 -2
  9. package/dist/src/index.js.map +1 -1
  10. package/dist/src/middleware/license.d.ts +23 -0
  11. package/dist/src/middleware/license.d.ts.map +1 -1
  12. package/dist/src/middleware/license.js +28 -0
  13. package/dist/src/middleware/license.js.map +1 -1
  14. package/dist/src/middleware/toolFeatureMapping.d.ts.map +1 -1
  15. package/dist/src/middleware/toolFeatureMapping.js +4 -1
  16. package/dist/src/middleware/toolFeatureMapping.js.map +1 -1
  17. package/dist/src/supabase-client.d.ts +24 -0
  18. package/dist/src/supabase-client.d.ts.map +1 -0
  19. package/dist/src/supabase-client.js +63 -0
  20. package/dist/src/supabase-client.js.map +1 -0
  21. package/dist/src/tool-dispatch.d.ts.map +1 -1
  22. package/dist/src/tool-dispatch.js +71 -62
  23. package/dist/src/tool-dispatch.js.map +1 -1
  24. package/dist/src/tools/analytics.d.ts +155 -0
  25. package/dist/src/tools/analytics.d.ts.map +1 -0
  26. package/dist/src/tools/analytics.js +321 -0
  27. package/dist/src/tools/analytics.js.map +1 -0
  28. package/dist/src/tools/analytics.service.d.ts +46 -0
  29. package/dist/src/tools/analytics.service.d.ts.map +1 -0
  30. package/dist/src/tools/analytics.service.js +69 -0
  31. package/dist/src/tools/analytics.service.js.map +1 -0
  32. package/dist/src/tools/analytics.service.test.d.ts +6 -0
  33. package/dist/src/tools/analytics.service.test.d.ts.map +1 -0
  34. package/dist/src/tools/analytics.service.test.js +151 -0
  35. package/dist/src/tools/analytics.service.test.js.map +1 -0
  36. package/dist/src/tools/analytics.stub.d.ts +27 -0
  37. package/dist/src/tools/analytics.stub.d.ts.map +1 -0
  38. package/dist/src/tools/analytics.stub.js +200 -0
  39. package/dist/src/tools/analytics.stub.js.map +1 -0
  40. package/dist/src/tools/analytics.test.d.ts +6 -0
  41. package/dist/src/tools/analytics.test.d.ts.map +1 -0
  42. package/dist/src/tools/analytics.test.js +146 -0
  43. package/dist/src/tools/analytics.test.js.map +1 -0
  44. package/dist/src/tools/analyze.d.ts.map +1 -1
  45. package/dist/src/tools/analyze.js +7 -1
  46. package/dist/src/tools/analyze.js.map +1 -1
  47. package/dist/src/tools/audit-tools.d.ts +172 -0
  48. package/dist/src/tools/audit-tools.d.ts.map +1 -0
  49. package/dist/src/tools/audit-tools.js +187 -0
  50. package/dist/src/tools/audit-tools.js.map +1 -0
  51. package/dist/src/tools/audit-tools.test.d.ts +10 -0
  52. package/dist/src/tools/audit-tools.test.d.ts.map +1 -0
  53. package/dist/src/tools/audit-tools.test.js +147 -0
  54. package/dist/src/tools/audit-tools.test.js.map +1 -0
  55. package/dist/src/tools/compliance-tools.d.ts +103 -0
  56. package/dist/src/tools/compliance-tools.d.ts.map +1 -0
  57. package/dist/src/tools/compliance-tools.js +257 -0
  58. package/dist/src/tools/compliance-tools.js.map +1 -0
  59. package/dist/src/tools/compliance-tools.service.d.ts +19 -0
  60. package/dist/src/tools/compliance-tools.service.d.ts.map +1 -0
  61. package/dist/src/tools/compliance-tools.service.js +107 -0
  62. package/dist/src/tools/compliance-tools.service.js.map +1 -0
  63. package/dist/src/tools/compliance-tools.service.test.d.ts +6 -0
  64. package/dist/src/tools/compliance-tools.service.test.d.ts.map +1 -0
  65. package/dist/src/tools/compliance-tools.service.test.js +140 -0
  66. package/dist/src/tools/compliance-tools.service.test.js.map +1 -0
  67. package/dist/src/tools/compliance-tools.test.d.ts +6 -0
  68. package/dist/src/tools/compliance-tools.test.d.ts.map +1 -0
  69. package/dist/src/tools/compliance-tools.test.js +136 -0
  70. package/dist/src/tools/compliance-tools.test.js.map +1 -0
  71. package/dist/src/tools/get-skill.d.ts.map +1 -1
  72. package/dist/src/tools/get-skill.js +24 -1
  73. package/dist/src/tools/get-skill.js.map +1 -1
  74. package/dist/src/tools/index-local.d.ts.map +1 -1
  75. package/dist/src/tools/index-local.js +4 -0
  76. package/dist/src/tools/index-local.js.map +1 -1
  77. package/dist/src/tools/install.d.ts.map +1 -1
  78. package/dist/src/tools/install.js +11 -1
  79. package/dist/src/tools/install.js.map +1 -1
  80. package/dist/src/tools/install.tool.d.ts +4 -0
  81. package/dist/src/tools/install.tool.d.ts.map +1 -1
  82. package/dist/src/tools/install.tool.js +4 -0
  83. package/dist/src/tools/install.tool.js.map +1 -1
  84. package/dist/src/tools/install.types.d.ts +4 -0
  85. package/dist/src/tools/install.types.d.ts.map +1 -1
  86. package/dist/src/tools/install.types.js +5 -0
  87. package/dist/src/tools/install.types.js.map +1 -1
  88. package/dist/src/tools/integration-tools.d.ts +210 -0
  89. package/dist/src/tools/integration-tools.d.ts.map +1 -0
  90. package/dist/src/tools/integration-tools.js +264 -0
  91. package/dist/src/tools/integration-tools.js.map +1 -0
  92. package/dist/src/tools/integration-tools.service.d.ts +54 -0
  93. package/dist/src/tools/integration-tools.service.d.ts.map +1 -0
  94. package/dist/src/tools/integration-tools.service.js +299 -0
  95. package/dist/src/tools/integration-tools.service.js.map +1 -0
  96. package/dist/src/tools/integration-tools.service.test.d.ts +8 -0
  97. package/dist/src/tools/integration-tools.service.test.d.ts.map +1 -0
  98. package/dist/src/tools/integration-tools.service.test.js +401 -0
  99. package/dist/src/tools/integration-tools.service.test.js.map +1 -0
  100. package/dist/src/tools/integration-tools.stub.d.ts +13 -0
  101. package/dist/src/tools/integration-tools.stub.d.ts.map +1 -0
  102. package/dist/src/tools/integration-tools.stub.js +133 -0
  103. package/dist/src/tools/integration-tools.stub.js.map +1 -0
  104. package/dist/src/tools/integration-tools.test.d.ts +6 -0
  105. package/dist/src/tools/integration-tools.test.d.ts.map +1 -0
  106. package/dist/src/tools/integration-tools.test.js +259 -0
  107. package/dist/src/tools/integration-tools.test.js.map +1 -0
  108. package/dist/src/tools/publish-private.d.ts +60 -0
  109. package/dist/src/tools/publish-private.d.ts.map +1 -0
  110. package/dist/src/tools/publish-private.js +85 -0
  111. package/dist/src/tools/publish-private.js.map +1 -0
  112. package/dist/src/tools/publish-private.test.d.ts +6 -0
  113. package/dist/src/tools/publish-private.test.d.ts.map +1 -0
  114. package/dist/src/tools/publish-private.test.js +118 -0
  115. package/dist/src/tools/publish-private.test.js.map +1 -0
  116. package/dist/src/tools/publish.types.d.ts +2 -2
  117. package/dist/src/tools/rbac-tools.d.ts +180 -0
  118. package/dist/src/tools/rbac-tools.d.ts.map +1 -0
  119. package/dist/src/tools/rbac-tools.js +300 -0
  120. package/dist/src/tools/rbac-tools.js.map +1 -0
  121. package/dist/src/tools/rbac-tools.test.d.ts +6 -0
  122. package/dist/src/tools/rbac-tools.test.d.ts.map +1 -0
  123. package/dist/src/tools/rbac-tools.test.js +299 -0
  124. package/dist/src/tools/rbac-tools.test.js.map +1 -0
  125. package/dist/src/tools/rbac-tools.types.d.ts +70 -0
  126. package/dist/src/tools/rbac-tools.types.d.ts.map +1 -0
  127. package/dist/src/tools/rbac-tools.types.js +119 -0
  128. package/dist/src/tools/rbac-tools.types.js.map +1 -0
  129. package/dist/src/tools/recommend.helpers.d.ts.map +1 -1
  130. package/dist/src/tools/recommend.helpers.js +2 -1
  131. package/dist/src/tools/recommend.helpers.js.map +1 -1
  132. package/dist/src/tools/recommend.js +3 -3
  133. package/dist/src/tools/recommend.js.map +1 -1
  134. package/dist/src/tools/registry-tools.d.ts +133 -0
  135. package/dist/src/tools/registry-tools.d.ts.map +1 -0
  136. package/dist/src/tools/registry-tools.js +246 -0
  137. package/dist/src/tools/registry-tools.js.map +1 -0
  138. package/dist/src/tools/registry-tools.test.d.ts +6 -0
  139. package/dist/src/tools/registry-tools.test.d.ts.map +1 -0
  140. package/dist/src/tools/registry-tools.test.js +167 -0
  141. package/dist/src/tools/registry-tools.test.js.map +1 -0
  142. package/dist/src/tools/search.formatter.d.ts.map +1 -1
  143. package/dist/src/tools/search.formatter.js +11 -1
  144. package/dist/src/tools/search.formatter.js.map +1 -1
  145. package/dist/src/tools/skill-audit.d.ts +3 -3
  146. package/dist/src/tools/skill-audit.d.ts.map +1 -1
  147. package/dist/src/tools/skill-audit.js +5 -5
  148. package/dist/src/tools/skill-audit.js.map +1 -1
  149. package/dist/src/tools/skill-audit.test.js +5 -5
  150. package/dist/src/tools/skill-audit.test.js.map +1 -1
  151. package/dist/src/tools/skill-pack-audit.d.ts +22 -1
  152. package/dist/src/tools/skill-pack-audit.d.ts.map +1 -1
  153. package/dist/src/tools/skill-pack-audit.helpers.d.ts +53 -0
  154. package/dist/src/tools/skill-pack-audit.helpers.d.ts.map +1 -0
  155. package/dist/src/tools/skill-pack-audit.helpers.js +181 -0
  156. package/dist/src/tools/skill-pack-audit.helpers.js.map +1 -0
  157. package/dist/src/tools/skill-pack-audit.js +122 -5
  158. package/dist/src/tools/skill-pack-audit.js.map +1 -1
  159. package/dist/src/tools/skill-pack-audit.types.d.ts +70 -0
  160. package/dist/src/tools/skill-pack-audit.types.d.ts.map +1 -0
  161. package/dist/src/tools/skill-pack-audit.types.js +8 -0
  162. package/dist/src/tools/skill-pack-audit.types.js.map +1 -0
  163. package/dist/src/tools/skill-rescan.d.ts.map +1 -1
  164. package/dist/src/tools/skill-rescan.js +2 -3
  165. package/dist/src/tools/skill-rescan.js.map +1 -1
  166. package/dist/src/tools/skill-rescan.test.js +2 -2
  167. package/dist/src/tools/skill-rescan.test.js.map +1 -1
  168. package/dist/src/tools/sso-tools.d.ts +136 -0
  169. package/dist/src/tools/sso-tools.d.ts.map +1 -0
  170. package/dist/src/tools/sso-tools.js +214 -0
  171. package/dist/src/tools/sso-tools.js.map +1 -0
  172. package/dist/src/tools/sso-tools.test.d.ts +6 -0
  173. package/dist/src/tools/sso-tools.test.d.ts.map +1 -0
  174. package/dist/src/tools/sso-tools.test.js +167 -0
  175. package/dist/src/tools/sso-tools.test.js.map +1 -0
  176. package/dist/src/tools/suggest.d.ts.map +1 -1
  177. package/dist/src/tools/suggest.js +7 -1
  178. package/dist/src/tools/suggest.js.map +1 -1
  179. package/dist/src/tools/team-workspace.d.ts +179 -0
  180. package/dist/src/tools/team-workspace.d.ts.map +1 -0
  181. package/dist/src/tools/team-workspace.js +243 -0
  182. package/dist/src/tools/team-workspace.js.map +1 -0
  183. package/dist/src/tools/team-workspace.stub.d.ts +13 -0
  184. package/dist/src/tools/team-workspace.stub.d.ts.map +1 -0
  185. package/dist/src/tools/team-workspace.stub.js +76 -0
  186. package/dist/src/tools/team-workspace.stub.js.map +1 -0
  187. package/dist/src/tools/team-workspace.test.d.ts +7 -0
  188. package/dist/src/tools/team-workspace.test.d.ts.map +1 -0
  189. package/dist/src/tools/team-workspace.test.js +273 -0
  190. package/dist/src/tools/team-workspace.test.js.map +1 -0
  191. package/dist/src/tools/validate.helpers.d.ts.map +1 -1
  192. package/dist/src/tools/validate.helpers.js +15 -0
  193. package/dist/src/tools/validate.helpers.js.map +1 -1
  194. package/dist/src/utils/team-resolver.d.ts +20 -0
  195. package/dist/src/utils/team-resolver.d.ts.map +1 -0
  196. package/dist/src/utils/team-resolver.js +52 -0
  197. package/dist/src/utils/team-resolver.js.map +1 -0
  198. package/dist/src/utils/url-validator.d.ts +24 -0
  199. package/dist/src/utils/url-validator.d.ts.map +1 -0
  200. package/dist/src/utils/url-validator.js +59 -0
  201. package/dist/src/utils/url-validator.js.map +1 -0
  202. package/dist/tests/integration/recommend.integration.test.js +1 -1
  203. package/dist/tests/integration/recommend.integration.test.js.map +1 -1
  204. package/dist/tests/recommend.test.js +1 -1
  205. package/dist/tests/recommend.test.js.map +1 -1
  206. package/dist/tests/unit/skill-pack-audit.test.js +225 -0
  207. package/dist/tests/unit/skill-pack-audit.test.js.map +1 -1
  208. package/package.json +3 -3
  209. package/server.json +2 -2
  210. package/dist/vitest.config.d.ts +0 -6
  211. package/dist/vitest.config.d.ts.map +0 -1
  212. package/dist/vitest.config.js +0 -23
  213. package/dist/vitest.config.js.map +0 -1
@@ -24,23 +24,16 @@ import { skillAuditInputSchema, executeSkillAudit } from './tools/skill-audit.js
24
24
  import { skillPackAuditInputSchema, executeSkillPackAudit } from './tools/skill-pack-audit.js';
25
25
  import { outdatedInputSchema, executeOutdated } from './tools/outdated.js';
26
26
  import { skillRescanInputSchema, executeSkillRescan } from './tools/skill-rescan.js';
27
- import { createLicenseErrorResponse } from './middleware/license.js';
28
- /**
29
- * Build a standard tool success response wrapping a JSON-serialisable result.
30
- */
31
- function ok(result) {
32
- return {
33
- content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
34
- };
35
- }
36
- /**
37
- * Cast a middleware error response (MCPErrorResponse) to CallToolResult.
38
- * MCPErrorResponse is structurally compatible but lacks the index signature
39
- * that Zod's $loose schema infers on CallToolResult.
40
- */
41
- function errResponse(response) {
42
- return response;
43
- }
27
+ import { auditExportInputSchema, executeAuditExport, auditQueryInputSchema, executeAuditQuery, siemExportInputSchema, executeSiemExport, } from './tools/audit-tools.js';
28
+ import { teamWorkspaceInputSchema, executeTeamWorkspace, shareSkillInputSchema, executeShareSkill, } from './tools/team-workspace.js';
29
+ import { publishPrivateInputSchema, executePublishPrivate } from './tools/publish-private.js';
30
+ import { teamAnalyticsDashboardInputSchema, executeTeamAnalyticsDashboard, teamUsageReportInputSchema, executeTeamUsageReport, analyticsDashboardInputSchema, executeAnalyticsDashboard, usageReportInputSchema, executeUsageReport, } from './tools/analytics.js';
31
+ import { configureSsoInputSchema, executeConfigureSso, ssoSettingsInputSchema, executeSsoSettings, } from './tools/sso-tools.js';
32
+ import { privateRegistryPublishInputSchema, executePrivateRegistryPublish, privateRegistryManageInputSchema, executePrivateRegistryManage, } from './tools/registry-tools.js';
33
+ import { rbacManageInputSchema, executeRbacManage, rbacAssignRoleInputSchema, executeRbacAssignRole, rbacCreatePolicyInputSchema, executeRbacCreatePolicy, } from './tools/rbac-tools.js';
34
+ import { webhookConfigureInputSchema, executeWebhookConfigure, apiKeyManageInputSchema, executeApiKeyManage, } from './tools/integration-tools.js';
35
+ import { complianceReportInputSchema, executeComplianceReport } from './tools/compliance-tools.js';
36
+ import { ok, errResponse, withLicenseAndQuota, TOOL_FEATURES, FEATURE_TIERS, } from './middleware/license.js';
44
37
  /**
45
38
  * Dispatch a tool call to its handler, applying license and quota checks
46
39
  * for gated tools.
@@ -92,54 +85,70 @@ export async function dispatchToolCall(name, args, toolContext, licenseMiddlewar
92
85
  return ok(await executeOutdated(outdatedInputSchema.parse(args), toolContext));
93
86
  case 'skill_publish':
94
87
  return ok(await executePublish(publishInputSchema.parse(args), toolContext));
95
- case 'skill_updates': {
96
- const input = skillUpdatesInputSchema.parse(args);
97
- const license = await licenseMiddleware.checkTool('skill_updates');
98
- if (!license.valid)
99
- return errResponse(createLicenseErrorResponse(license));
100
- const licenseInfo = await licenseMiddleware.getLicenseInfo();
101
- const quotaResult = await quotaMiddleware.checkAndTrack('skill_updates', licenseInfo);
102
- if (!quotaResult.allowed)
103
- return errResponse(quotaMiddleware.buildExceededResponse(quotaResult));
104
- return ok(await executeSkillUpdates(input, toolContext));
105
- }
106
- case 'skill_diff': {
107
- const input = skillDiffInputSchema.parse(args);
108
- const licenseResult = await licenseMiddleware.checkTool('skill_diff');
109
- if (!licenseResult.valid)
110
- return errResponse(createLicenseErrorResponse(licenseResult));
111
- const licenseInfo = await licenseMiddleware.getLicenseInfo();
112
- const quotaResult = await quotaMiddleware.checkAndTrack('skill_diff', licenseInfo);
113
- if (!quotaResult.allowed)
114
- return errResponse(quotaMiddleware.buildExceededResponse(quotaResult));
115
- return ok(await executeSkillDiff(input, toolContext));
116
- }
117
- case 'skill_audit': {
118
- const input = skillAuditInputSchema.parse(args);
119
- const licenseResult = await licenseMiddleware.checkTool('skill_audit');
120
- if (!licenseResult.valid)
121
- return errResponse(createLicenseErrorResponse(licenseResult));
122
- const licenseInfo = await licenseMiddleware.getLicenseInfo();
123
- const quotaResult = await quotaMiddleware.checkAndTrack('skill_audit', licenseInfo);
124
- if (!quotaResult.allowed)
125
- return errResponse(quotaMiddleware.buildExceededResponse(quotaResult));
126
- return ok(await executeSkillAudit(input, toolContext));
127
- }
128
- case 'skill_pack_audit': {
129
- const input = skillPackAuditInputSchema.parse(args);
130
- const licenseResult = await licenseMiddleware.checkTool('skill_pack_audit');
131
- if (!licenseResult.valid)
132
- return errResponse(createLicenseErrorResponse(licenseResult));
133
- const licenseInfo = await licenseMiddleware.getLicenseInfo();
134
- const quotaResult = await quotaMiddleware.checkAndTrack('skill_pack_audit', licenseInfo);
135
- if (!quotaResult.allowed)
136
- return errResponse(quotaMiddleware.buildExceededResponse(quotaResult));
137
- return ok(await executeSkillPackAudit(input, toolContext));
138
- }
88
+ case 'skill_updates':
89
+ return withLicenseAndQuota('skill_updates', args, skillUpdatesInputSchema, executeSkillUpdates, toolContext, licenseMiddleware, quotaMiddleware);
90
+ case 'skill_diff':
91
+ return withLicenseAndQuota('skill_diff', args, skillDiffInputSchema, executeSkillDiff, toolContext, licenseMiddleware, quotaMiddleware);
92
+ case 'skill_audit':
93
+ return withLicenseAndQuota('skill_audit', args, skillAuditInputSchema, executeSkillAudit, toolContext, licenseMiddleware, quotaMiddleware);
94
+ case 'skill_pack_audit':
95
+ return withLicenseAndQuota('skill_pack_audit', args, skillPackAuditInputSchema, executeSkillPackAudit, toolContext, licenseMiddleware, quotaMiddleware);
139
96
  case 'skill_rescan':
140
97
  return ok(await executeSkillRescan(skillRescanInputSchema.parse(args)));
141
- default:
98
+ case 'audit_export':
99
+ return withLicenseAndQuota('audit_export', args, auditExportInputSchema, executeAuditExport, toolContext, licenseMiddleware, quotaMiddleware);
100
+ case 'audit_query':
101
+ return withLicenseAndQuota('audit_query', args, auditQueryInputSchema, executeAuditQuery, toolContext, licenseMiddleware, quotaMiddleware);
102
+ case 'siem_export':
103
+ return withLicenseAndQuota('siem_export', args, siemExportInputSchema, executeSiemExport, toolContext, licenseMiddleware, quotaMiddleware);
104
+ case 'team_workspace':
105
+ return withLicenseAndQuota('team_workspace', args, teamWorkspaceInputSchema, executeTeamWorkspace, toolContext, licenseMiddleware, quotaMiddleware);
106
+ case 'share_skill':
107
+ return withLicenseAndQuota('share_skill', args, shareSkillInputSchema, executeShareSkill, toolContext, licenseMiddleware, quotaMiddleware);
108
+ case 'publish_private':
109
+ return withLicenseAndQuota('publish_private', args, publishPrivateInputSchema, executePublishPrivate, toolContext, licenseMiddleware, quotaMiddleware);
110
+ case 'team_analytics_dashboard':
111
+ return withLicenseAndQuota('team_analytics_dashboard', args, teamAnalyticsDashboardInputSchema, executeTeamAnalyticsDashboard, toolContext, licenseMiddleware, quotaMiddleware);
112
+ case 'team_usage_report':
113
+ return withLicenseAndQuota('team_usage_report', args, teamUsageReportInputSchema, executeTeamUsageReport, toolContext, licenseMiddleware, quotaMiddleware);
114
+ case 'analytics_dashboard':
115
+ return withLicenseAndQuota('analytics_dashboard', args, analyticsDashboardInputSchema, executeAnalyticsDashboard, toolContext, licenseMiddleware, quotaMiddleware);
116
+ case 'usage_report':
117
+ return withLicenseAndQuota('usage_report', args, usageReportInputSchema, executeUsageReport, toolContext, licenseMiddleware, quotaMiddleware);
118
+ case 'configure_sso':
119
+ return withLicenseAndQuota('configure_sso', args, configureSsoInputSchema, executeConfigureSso, toolContext, licenseMiddleware, quotaMiddleware);
120
+ case 'sso_settings':
121
+ return withLicenseAndQuota('sso_settings', args, ssoSettingsInputSchema, executeSsoSettings, toolContext, licenseMiddleware, quotaMiddleware);
122
+ case 'private_registry_publish':
123
+ return withLicenseAndQuota('private_registry_publish', args, privateRegistryPublishInputSchema, executePrivateRegistryPublish, toolContext, licenseMiddleware, quotaMiddleware);
124
+ case 'private_registry_manage':
125
+ return withLicenseAndQuota('private_registry_manage', args, privateRegistryManageInputSchema, executePrivateRegistryManage, toolContext, licenseMiddleware, quotaMiddleware);
126
+ case 'rbac_manage':
127
+ return withLicenseAndQuota('rbac_manage', args, rbacManageInputSchema, executeRbacManage, toolContext, licenseMiddleware, quotaMiddleware);
128
+ case 'rbac_assign_role':
129
+ return withLicenseAndQuota('rbac_assign_role', args, rbacAssignRoleInputSchema, executeRbacAssignRole, toolContext, licenseMiddleware, quotaMiddleware);
130
+ case 'rbac_create_policy':
131
+ return withLicenseAndQuota('rbac_create_policy', args, rbacCreatePolicyInputSchema, executeRbacCreatePolicy, toolContext, licenseMiddleware, quotaMiddleware);
132
+ case 'webhook_configure':
133
+ return withLicenseAndQuota('webhook_configure', args, webhookConfigureInputSchema, executeWebhookConfigure, toolContext, licenseMiddleware, quotaMiddleware);
134
+ case 'api_key_manage':
135
+ return withLicenseAndQuota('api_key_manage', args, apiKeyManageInputSchema, executeApiKeyManage, toolContext, licenseMiddleware, quotaMiddleware);
136
+ case 'compliance_report':
137
+ return withLicenseAndQuota('compliance_report', args, complianceReportInputSchema, executeComplianceReport, toolContext, licenseMiddleware, quotaMiddleware);
138
+ default: {
139
+ // SMI-3913: Return comingSoon response for tools in TOOL_FEATURES that
140
+ // don't have a dispatch handler yet, instead of throwing Unknown tool.
141
+ // null = community tool (handled above), non-null = gated tool on roadmap.
142
+ if (name in TOOL_FEATURES && TOOL_FEATURES[name] !== null) {
143
+ return ok({
144
+ status: 'coming_soon',
145
+ message: `The ${name} tool is on our roadmap. Visit https://skillsmith.app/pricing#roadmap for details.`,
146
+ requiredTier: FEATURE_TIERS[TOOL_FEATURES[name]] ?? 'enterprise',
147
+ feature: TOOL_FEATURES[name],
148
+ });
149
+ }
142
150
  throw new Error('Unknown tool: ' + name);
151
+ }
143
152
  }
144
153
  }
145
154
  //# sourceMappingURL=tool-dispatch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-dispatch.js","sourceRoot":"","sources":["../../src/tool-dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-dispatch.js","sourceRoot":"","sources":["../../src/tool-dispatch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * @fileoverview Analytics MCP tools — team and enterprise usage dashboards
3
+ * @module @skillsmith/mcp-server/tools/analytics
4
+ * @see SMI-3899: Team Usage Analytics MCP Tools (Wave 2b)
5
+ *
6
+ * Split-tier analytics:
7
+ * - Team tier: team_analytics_dashboard, team_usage_report (usage_analytics flag)
8
+ * - Enterprise tier: analytics_dashboard, usage_report (advanced_analytics flag)
9
+ *
10
+ * Uses real SQLite queries against audit_logs when db is available,
11
+ * falls back to stub mock data when no database is present.
12
+ */
13
+ import { z } from 'zod';
14
+ import type { ToolContext } from '../context.js';
15
+ export { periodDays, generateDailyTrend } from './analytics.stub.js';
16
+ export declare const teamAnalyticsDashboardInputSchema: z.ZodObject<{
17
+ period: z.ZodDefault<z.ZodOptional<z.ZodEnum<["7d", "30d", "90d"]>>>;
18
+ }, "strip", z.ZodTypeAny, {
19
+ period: "7d" | "30d" | "90d";
20
+ }, {
21
+ period?: "7d" | "30d" | "90d" | undefined;
22
+ }>;
23
+ export type TeamAnalyticsDashboardInput = z.infer<typeof teamAnalyticsDashboardInputSchema>;
24
+ export declare const teamUsageReportInputSchema: z.ZodObject<{
25
+ period: z.ZodDefault<z.ZodOptional<z.ZodEnum<["7d", "30d", "90d"]>>>;
26
+ format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["summary", "detailed"]>>>;
27
+ }, "strip", z.ZodTypeAny, {
28
+ format: "summary" | "detailed";
29
+ period: "7d" | "30d" | "90d";
30
+ }, {
31
+ format?: "summary" | "detailed" | undefined;
32
+ period?: "7d" | "30d" | "90d" | undefined;
33
+ }>;
34
+ export type TeamUsageReportInput = z.infer<typeof teamUsageReportInputSchema>;
35
+ export declare const analyticsDashboardInputSchema: z.ZodObject<{
36
+ period: z.ZodDefault<z.ZodOptional<z.ZodEnum<["7d", "30d", "90d"]>>>;
37
+ includeRecommendations: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
38
+ }, "strip", z.ZodTypeAny, {
39
+ period: "7d" | "30d" | "90d";
40
+ includeRecommendations: boolean;
41
+ }, {
42
+ period?: "7d" | "30d" | "90d" | undefined;
43
+ includeRecommendations?: boolean | undefined;
44
+ }>;
45
+ export type AnalyticsDashboardInput = z.infer<typeof analyticsDashboardInputSchema>;
46
+ export declare const usageReportInputSchema: z.ZodObject<{
47
+ period: z.ZodDefault<z.ZodOptional<z.ZodEnum<["7d", "30d", "90d"]>>>;
48
+ format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["summary", "detailed", "csv"]>>>;
49
+ }, "strip", z.ZodTypeAny, {
50
+ format: "summary" | "detailed" | "csv";
51
+ period: "7d" | "30d" | "90d";
52
+ }, {
53
+ format?: "summary" | "detailed" | "csv" | undefined;
54
+ period?: "7d" | "30d" | "90d" | undefined;
55
+ }>;
56
+ export type UsageReportInput = z.infer<typeof usageReportInputSchema>;
57
+ export declare const teamAnalyticsDashboardToolSchema: {
58
+ name: "team_analytics_dashboard";
59
+ description: string;
60
+ inputSchema: {
61
+ type: "object";
62
+ properties: {
63
+ period: {
64
+ type: string;
65
+ enum: string[];
66
+ description: string;
67
+ };
68
+ };
69
+ };
70
+ };
71
+ export declare const teamUsageReportToolSchema: {
72
+ name: "team_usage_report";
73
+ description: string;
74
+ inputSchema: {
75
+ type: "object";
76
+ properties: {
77
+ period: {
78
+ type: string;
79
+ enum: string[];
80
+ description: string;
81
+ };
82
+ format: {
83
+ type: string;
84
+ enum: string[];
85
+ description: string;
86
+ };
87
+ };
88
+ };
89
+ };
90
+ export declare const analyticsDashboardToolSchema: {
91
+ name: "analytics_dashboard";
92
+ description: string;
93
+ inputSchema: {
94
+ type: "object";
95
+ properties: {
96
+ period: {
97
+ type: string;
98
+ enum: string[];
99
+ description: string;
100
+ };
101
+ includeRecommendations: {
102
+ type: string;
103
+ description: string;
104
+ };
105
+ };
106
+ };
107
+ };
108
+ export declare const usageReportToolSchema: {
109
+ name: "usage_report";
110
+ description: string;
111
+ inputSchema: {
112
+ type: "object";
113
+ properties: {
114
+ period: {
115
+ type: string;
116
+ enum: string[];
117
+ description: string;
118
+ };
119
+ format: {
120
+ type: string;
121
+ enum: string[];
122
+ description: string;
123
+ };
124
+ };
125
+ };
126
+ };
127
+ /**
128
+ * Team analytics dashboard handler.
129
+ * Returns per-user tool usage, top tools, and daily trend as markdown.
130
+ *
131
+ * Uses real service when db is available, falls back to stub
132
+ */
133
+ export declare function executeTeamAnalyticsDashboard(input: TeamAnalyticsDashboardInput, context: ToolContext): Promise<string>;
134
+ /**
135
+ * Team usage report handler.
136
+ * Returns weekly/monthly summary with period comparison as markdown.
137
+ *
138
+ * Uses real service when db is available, falls back to stub
139
+ */
140
+ export declare function executeTeamUsageReport(input: TeamUsageReportInput, context: ToolContext): Promise<string>;
141
+ /**
142
+ * Enterprise analytics dashboard handler.
143
+ * Returns recommendation accuracy, adoption curves, and team aggregation as markdown.
144
+ *
145
+ * Uses real service when db is available, falls back to stub
146
+ */
147
+ export declare function executeAnalyticsDashboard(input: AnalyticsDashboardInput, context: ToolContext): Promise<string>;
148
+ /**
149
+ * Enterprise usage report handler.
150
+ * Returns comprehensive report with all metrics as markdown (or CSV).
151
+ *
152
+ * Uses real service when db is available, falls back to stub
153
+ */
154
+ export declare function executeUsageReport(input: UsageReportInput, context: ToolContext): Promise<string>;
155
+ //# sourceMappingURL=analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../../src/tools/analytics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAWhD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AA6BpE,eAAO,MAAM,iCAAiC;;;;;;EAE5C,CAAA;AAEF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAA;AAE3F,eAAO,MAAM,0BAA0B;;;;;;;;;EAGrC,CAAA;AAEF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAE7E,eAAO,MAAM,6BAA6B;;;;;;;;;EAOxC,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAEnF,eAAO,MAAM,sBAAsB;;;;;;;;;EAKjC,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAMrE,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;CAe5C,CAAA;AAED,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;CAoBrC,CAAA;AAED,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;CAmBxC,CAAA;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;CAoBjC,CAAA;AAMD;;;;;GAKG;AACH,wBAAsB,6BAA6B,CACjD,KAAK,EAAE,2BAA2B,EAClC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC,CAwCjB;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC,CAuCjB;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,uBAAuB,EAC9B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC,CAiDjB;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC,CA0DjB"}