@baref00t/mcp-server 0.2.0

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 (187) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +109 -0
  3. package/dist/auth.d.ts +28 -0
  4. package/dist/auth.d.ts.map +1 -0
  5. package/dist/auth.js +58 -0
  6. package/dist/auth.js.map +1 -0
  7. package/dist/config.d.ts +33 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +124 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/env.d.ts +41 -0
  12. package/dist/env.d.ts.map +1 -0
  13. package/dist/env.js +37 -0
  14. package/dist/env.js.map +1 -0
  15. package/dist/logger.d.ts +3 -0
  16. package/dist/logger.d.ts.map +1 -0
  17. package/dist/logger.js +31 -0
  18. package/dist/logger.js.map +1 -0
  19. package/dist/registry.d.ts +58 -0
  20. package/dist/registry.d.ts.map +1 -0
  21. package/dist/registry.js +94 -0
  22. package/dist/registry.js.map +1 -0
  23. package/dist/sdkCache.d.ts +20 -0
  24. package/dist/sdkCache.d.ts.map +1 -0
  25. package/dist/sdkCache.js +65 -0
  26. package/dist/sdkCache.js.map +1 -0
  27. package/dist/server.d.ts +25 -0
  28. package/dist/server.d.ts.map +1 -0
  29. package/dist/server.js +144 -0
  30. package/dist/server.js.map +1 -0
  31. package/dist/telemetry.d.ts +8 -0
  32. package/dist/telemetry.d.ts.map +1 -0
  33. package/dist/telemetry.js +32 -0
  34. package/dist/telemetry.js.map +1 -0
  35. package/dist/tools/distributor/getUsage.d.ts +12 -0
  36. package/dist/tools/distributor/getUsage.d.ts.map +1 -0
  37. package/dist/tools/distributor/getUsage.js +25 -0
  38. package/dist/tools/distributor/getUsage.js.map +1 -0
  39. package/dist/tools/distributor/listPartners.d.ts +12 -0
  40. package/dist/tools/distributor/listPartners.d.ts.map +1 -0
  41. package/dist/tools/distributor/listPartners.js +20 -0
  42. package/dist/tools/distributor/listPartners.js.map +1 -0
  43. package/dist/tools/index.d.ts +8 -0
  44. package/dist/tools/index.d.ts.map +1 -0
  45. package/dist/tools/index.js +102 -0
  46. package/dist/tools/index.js.map +1 -0
  47. package/dist/tools/partner/createCustomer.d.ts +27 -0
  48. package/dist/tools/partner/createCustomer.d.ts.map +1 -0
  49. package/dist/tools/partner/createCustomer.js +29 -0
  50. package/dist/tools/partner/createCustomer.js.map +1 -0
  51. package/dist/tools/partner/createKey.d.ts +6 -0
  52. package/dist/tools/partner/createKey.d.ts.map +1 -0
  53. package/dist/tools/partner/createKey.js +18 -0
  54. package/dist/tools/partner/createKey.js.map +1 -0
  55. package/dist/tools/partner/createWebhook.d.ts +18 -0
  56. package/dist/tools/partner/createWebhook.d.ts.map +1 -0
  57. package/dist/tools/partner/createWebhook.js +36 -0
  58. package/dist/tools/partner/createWebhook.js.map +1 -0
  59. package/dist/tools/partner/deleteWebhook.d.ts +12 -0
  60. package/dist/tools/partner/deleteWebhook.d.ts.map +1 -0
  61. package/dist/tools/partner/deleteWebhook.js +25 -0
  62. package/dist/tools/partner/deleteWebhook.js.map +1 -0
  63. package/dist/tools/partner/getAssessment.d.ts +12 -0
  64. package/dist/tools/partner/getAssessment.d.ts.map +1 -0
  65. package/dist/tools/partner/getAssessment.js +20 -0
  66. package/dist/tools/partner/getAssessment.js.map +1 -0
  67. package/dist/tools/partner/getAssessmentReport.d.ts +12 -0
  68. package/dist/tools/partner/getAssessmentReport.d.ts.map +1 -0
  69. package/dist/tools/partner/getAssessmentReport.js +28 -0
  70. package/dist/tools/partner/getAssessmentReport.js.map +1 -0
  71. package/dist/tools/partner/getAssessmentStatus.d.ts +12 -0
  72. package/dist/tools/partner/getAssessmentStatus.d.ts.map +1 -0
  73. package/dist/tools/partner/getAssessmentStatus.js +21 -0
  74. package/dist/tools/partner/getAssessmentStatus.js.map +1 -0
  75. package/dist/tools/partner/getBilling.d.ts +6 -0
  76. package/dist/tools/partner/getBilling.d.ts.map +1 -0
  77. package/dist/tools/partner/getBilling.js +20 -0
  78. package/dist/tools/partner/getBilling.js.map +1 -0
  79. package/dist/tools/partner/getBranding.d.ts +6 -0
  80. package/dist/tools/partner/getBranding.d.ts.map +1 -0
  81. package/dist/tools/partner/getBranding.js +18 -0
  82. package/dist/tools/partner/getBranding.js.map +1 -0
  83. package/dist/tools/partner/getConsentUrl.d.ts +18 -0
  84. package/dist/tools/partner/getConsentUrl.d.ts.map +1 -0
  85. package/dist/tools/partner/getConsentUrl.js +43 -0
  86. package/dist/tools/partner/getConsentUrl.js.map +1 -0
  87. package/dist/tools/partner/getCustomer.d.ts +12 -0
  88. package/dist/tools/partner/getCustomer.d.ts.map +1 -0
  89. package/dist/tools/partner/getCustomer.js +20 -0
  90. package/dist/tools/partner/getCustomer.js.map +1 -0
  91. package/dist/tools/partner/getPaymentPortalUrl.d.ts +6 -0
  92. package/dist/tools/partner/getPaymentPortalUrl.d.ts.map +1 -0
  93. package/dist/tools/partner/getPaymentPortalUrl.js +19 -0
  94. package/dist/tools/partner/getPaymentPortalUrl.js.map +1 -0
  95. package/dist/tools/partner/getPlanBilling.d.ts +6 -0
  96. package/dist/tools/partner/getPlanBilling.d.ts.map +1 -0
  97. package/dist/tools/partner/getPlanBilling.js +38 -0
  98. package/dist/tools/partner/getPlanBilling.js.map +1 -0
  99. package/dist/tools/partner/inviteMember.d.ts +15 -0
  100. package/dist/tools/partner/inviteMember.d.ts.map +1 -0
  101. package/dist/tools/partner/inviteMember.js +25 -0
  102. package/dist/tools/partner/inviteMember.js.map +1 -0
  103. package/dist/tools/partner/listAssessments.d.ts +18 -0
  104. package/dist/tools/partner/listAssessments.d.ts.map +1 -0
  105. package/dist/tools/partner/listAssessments.js +27 -0
  106. package/dist/tools/partner/listAssessments.js.map +1 -0
  107. package/dist/tools/partner/listCustomers.d.ts +6 -0
  108. package/dist/tools/partner/listCustomers.d.ts.map +1 -0
  109. package/dist/tools/partner/listCustomers.js +27 -0
  110. package/dist/tools/partner/listCustomers.js.map +1 -0
  111. package/dist/tools/partner/listKeys.d.ts +6 -0
  112. package/dist/tools/partner/listKeys.d.ts.map +1 -0
  113. package/dist/tools/partner/listKeys.js +20 -0
  114. package/dist/tools/partner/listKeys.js.map +1 -0
  115. package/dist/tools/partner/listMembers.d.ts +6 -0
  116. package/dist/tools/partner/listMembers.d.ts.map +1 -0
  117. package/dist/tools/partner/listMembers.js +19 -0
  118. package/dist/tools/partner/listMembers.js.map +1 -0
  119. package/dist/tools/partner/listWebhookDeliveries.d.ts +15 -0
  120. package/dist/tools/partner/listWebhookDeliveries.d.ts.map +1 -0
  121. package/dist/tools/partner/listWebhookDeliveries.js +32 -0
  122. package/dist/tools/partner/listWebhookDeliveries.js.map +1 -0
  123. package/dist/tools/partner/listWebhooks.d.ts +6 -0
  124. package/dist/tools/partner/listWebhooks.d.ts.map +1 -0
  125. package/dist/tools/partner/listWebhooks.js +18 -0
  126. package/dist/tools/partner/listWebhooks.js.map +1 -0
  127. package/dist/tools/partner/mailDisconnect.d.ts +6 -0
  128. package/dist/tools/partner/mailDisconnect.d.ts.map +1 -0
  129. package/dist/tools/partner/mailDisconnect.js +18 -0
  130. package/dist/tools/partner/mailDisconnect.js.map +1 -0
  131. package/dist/tools/partner/mailSendTest.d.ts +6 -0
  132. package/dist/tools/partner/mailSendTest.d.ts.map +1 -0
  133. package/dist/tools/partner/mailSendTest.js +20 -0
  134. package/dist/tools/partner/mailSendTest.js.map +1 -0
  135. package/dist/tools/partner/mailSetMode.d.ts +12 -0
  136. package/dist/tools/partner/mailSetMode.d.ts.map +1 -0
  137. package/dist/tools/partner/mailSetMode.js +26 -0
  138. package/dist/tools/partner/mailSetMode.js.map +1 -0
  139. package/dist/tools/partner/mailSetSharedMailbox.d.ts +12 -0
  140. package/dist/tools/partner/mailSetSharedMailbox.d.ts.map +1 -0
  141. package/dist/tools/partner/mailSetSharedMailbox.js +25 -0
  142. package/dist/tools/partner/mailSetSharedMailbox.js.map +1 -0
  143. package/dist/tools/partner/mailStartConnect.d.ts +12 -0
  144. package/dist/tools/partner/mailStartConnect.d.ts.map +1 -0
  145. package/dist/tools/partner/mailStartConnect.js +28 -0
  146. package/dist/tools/partner/mailStartConnect.js.map +1 -0
  147. package/dist/tools/partner/mailStatus.d.ts +6 -0
  148. package/dist/tools/partner/mailStatus.d.ts.map +1 -0
  149. package/dist/tools/partner/mailStatus.js +19 -0
  150. package/dist/tools/partner/mailStatus.js.map +1 -0
  151. package/dist/tools/partner/removeMember.d.ts +12 -0
  152. package/dist/tools/partner/removeMember.d.ts.map +1 -0
  153. package/dist/tools/partner/removeMember.js +25 -0
  154. package/dist/tools/partner/removeMember.js.map +1 -0
  155. package/dist/tools/partner/resendMemberInvite.d.ts +12 -0
  156. package/dist/tools/partner/resendMemberInvite.d.ts.map +1 -0
  157. package/dist/tools/partner/resendMemberInvite.js +24 -0
  158. package/dist/tools/partner/resendMemberInvite.js.map +1 -0
  159. package/dist/tools/partner/revokeKey.d.ts +12 -0
  160. package/dist/tools/partner/revokeKey.d.ts.map +1 -0
  161. package/dist/tools/partner/revokeKey.js +25 -0
  162. package/dist/tools/partner/revokeKey.js.map +1 -0
  163. package/dist/tools/partner/sendConsentEmail.d.ts +18 -0
  164. package/dist/tools/partner/sendConsentEmail.d.ts.map +1 -0
  165. package/dist/tools/partner/sendConsentEmail.js +50 -0
  166. package/dist/tools/partner/sendConsentEmail.js.map +1 -0
  167. package/dist/tools/partner/testWebhook.d.ts +12 -0
  168. package/dist/tools/partner/testWebhook.d.ts.map +1 -0
  169. package/dist/tools/partner/testWebhook.js +25 -0
  170. package/dist/tools/partner/testWebhook.js.map +1 -0
  171. package/dist/tools/partner/triggerAssessment.d.ts +18 -0
  172. package/dist/tools/partner/triggerAssessment.d.ts.map +1 -0
  173. package/dist/tools/partner/triggerAssessment.js +26 -0
  174. package/dist/tools/partner/triggerAssessment.js.map +1 -0
  175. package/dist/tools/partner/updateBranding.d.ts +31 -0
  176. package/dist/tools/partner/updateBranding.d.ts.map +1 -0
  177. package/dist/tools/partner/updateBranding.js +44 -0
  178. package/dist/tools/partner/updateBranding.js.map +1 -0
  179. package/dist/tools/partner/updateMember.d.ts +26 -0
  180. package/dist/tools/partner/updateMember.d.ts.map +1 -0
  181. package/dist/tools/partner/updateMember.js +35 -0
  182. package/dist/tools/partner/updateMember.js.map +1 -0
  183. package/dist/tools/partner/updateWebhook.d.ts +41 -0
  184. package/dist/tools/partner/updateWebhook.d.ts.map +1 -0
  185. package/dist/tools/partner/updateWebhook.js +42 -0
  186. package/dist/tools/partner/updateWebhook.js.map +1 -0
  187. package/package.json +62 -0
@@ -0,0 +1,25 @@
1
+ import { z } from 'zod';
2
+ import { getPartnerClient } from '../../sdkCache.js';
3
+ const inputSchema = z
4
+ .object({
5
+ sharedMailbox: z
6
+ .union([z.string().email(), z.null()])
7
+ .describe('UPN of a shared mailbox to send FROM (e.g. "noreply@acme.com"), or null to clear. ' +
8
+ 'The connected user must have Send-As permission on the shared mailbox in Exchange.'),
9
+ })
10
+ .strict();
11
+ const tool = {
12
+ name: 'partner_mail_set_shared_mailbox',
13
+ scope: 'partner',
14
+ description: 'Set or clear the shared-mailbox UPN that customer-facing emails are sent FROM. When ' +
15
+ 'unset (null), mail is sent from the connected user\'s own mailbox. Confirm permission ' +
16
+ 'is wired correctly afterwards via partner_mail_send_test — Graph errors 502 if Send-As ' +
17
+ 'permission is missing on the shared mailbox.',
18
+ schema: inputSchema,
19
+ async handler({ sharedMailbox }, ctx) {
20
+ const client = getPartnerClient(ctx.auth.apiKey);
21
+ return client.mail.setSharedMailbox(sharedMailbox);
22
+ },
23
+ };
24
+ export default tool;
25
+ //# sourceMappingURL=mailSetSharedMailbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailSetSharedMailbox.js","sourceRoot":"","sources":["../../../src/tools/partner/mailSetSharedMailbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGpD,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,aAAa,EAAE,CAAC;SACb,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SACrC,QAAQ,CACP,oFAAoF;QAClF,oFAAoF,CACvF;CACJ,CAAC;KACD,MAAM,EAAE,CAAA;AAEX,MAAM,IAAI,GAA6B;IACrC,IAAI,EAAE,iCAAiC;IACvC,KAAK,EAAE,SAAS;IAChB,WAAW,EACT,sFAAsF;QACtF,wFAAwF;QACxF,yFAAyF;QACzF,8CAA8C;IAChD,MAAM,EAAE,WAAW;IACnB,KAAK,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,EAAE,GAAG;QAClC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,OAAO,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAA;IACpD,CAAC;CACF,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ import type { Tool } from '../../registry.js';
3
+ declare const inputSchema: z.ZodObject<{
4
+ returnTo: z.ZodString;
5
+ }, "strict", z.ZodTypeAny, {
6
+ returnTo: string;
7
+ }, {
8
+ returnTo: string;
9
+ }>;
10
+ declare const tool: Tool<typeof inputSchema>;
11
+ export default tool;
12
+ //# sourceMappingURL=mailStartConnect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailStartConnect.d.ts","sourceRoot":"","sources":["../../../src/tools/partner/mailStartConnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAE7C,QAAA,MAAM,WAAW;;;;;;EAUN,CAAA;AAEX,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAelC,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,28 @@
1
+ import { z } from 'zod';
2
+ import { getPartnerClient } from '../../sdkCache.js';
3
+ const inputSchema = z
4
+ .object({
5
+ returnTo: z
6
+ .string()
7
+ .url()
8
+ .describe('HTTPS URL the partner admin will be 302-redirected to after consent (or ' +
9
+ 'http://localhost:* for dev). Must not contain embedded credentials.'),
10
+ })
11
+ .strict();
12
+ const tool = {
13
+ name: 'partner_mail_start_connect',
14
+ scope: 'partner',
15
+ description: 'Returns the Microsoft authorize URL for the partner admin to navigate to. The OAuth ' +
16
+ 'callback handles token persistence on the platform; no further MCP calls are needed for ' +
17
+ 'the consent step itself. After the callback bounces back to returnTo with ' +
18
+ '?mailConnected=1, call partner_mail_set_mode with mode="microsoft" to switch the ' +
19
+ 'provider on. Errors 503 MAIL_APP_NOT_CONFIGURED if the platform\'s Partner Mail Sender ' +
20
+ 'Entra app isn\'t configured server-side.',
21
+ schema: inputSchema,
22
+ async handler(input, ctx) {
23
+ const client = getPartnerClient(ctx.auth.apiKey);
24
+ return client.mail.startConnect(input);
25
+ },
26
+ };
27
+ export default tool;
28
+ //# sourceMappingURL=mailStartConnect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailStartConnect.js","sourceRoot":"","sources":["../../../src/tools/partner/mailStartConnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGpD,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,CACP,0EAA0E;QACxE,qEAAqE,CACxE;CACJ,CAAC;KACD,MAAM,EAAE,CAAA;AAEX,MAAM,IAAI,GAA6B;IACrC,IAAI,EAAE,4BAA4B;IAClC,KAAK,EAAE,SAAS;IAChB,WAAW,EACT,sFAAsF;QACtF,0FAA0F;QAC1F,4EAA4E;QAC5E,mFAAmF;QACnF,yFAAyF;QACzF,0CAA0C;IAC5C,MAAM,EAAE,WAAW;IACnB,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC;CACF,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ import type { Tool } from '../../registry.js';
3
+ declare const inputSchema: z.ZodObject<{}, "strict", z.ZodTypeAny, {}, {}>;
4
+ declare const tool: Tool<typeof inputSchema>;
5
+ export default tool;
6
+ //# sourceMappingURL=mailStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailStatus.d.ts","sourceRoot":"","sources":["../../../src/tools/partner/mailStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAE7C,QAAA,MAAM,WAAW,iDAAwB,CAAA;AAEzC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAclC,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { z } from 'zod';
2
+ import { getPartnerClient } from '../../sdkCache.js';
3
+ const inputSchema = z.object({}).strict();
4
+ const tool = {
5
+ name: 'partner_mail_status',
6
+ scope: 'partner',
7
+ description: 'Fetch the current partner-mail configuration: provider ("resend" / "microsoft" / "off"), ' +
8
+ 'connected Microsoft mailbox UPN (when provider="microsoft"), shared-mailbox UPN, whether ' +
9
+ 'the cached refresh token can still mint a Graph access token, and the access-token ' +
10
+ 'expiry. Use to check status before mode/sharedMailbox changes or to decide whether to ' +
11
+ 're-run partner_mail_start_connect.',
12
+ schema: inputSchema,
13
+ async handler(_input, ctx) {
14
+ const client = getPartnerClient(ctx.auth.apiKey);
15
+ return client.mail.status();
16
+ },
17
+ };
18
+ export default tool;
19
+ //# sourceMappingURL=mailStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailStatus.js","sourceRoot":"","sources":["../../../src/tools/partner/mailStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGpD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAA;AAEzC,MAAM,IAAI,GAA6B;IACrC,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,SAAS;IAChB,WAAW,EACT,2FAA2F;QAC3F,2FAA2F;QAC3F,qFAAqF;QACrF,wFAAwF;QACxF,oCAAoC;IACtC,MAAM,EAAE,WAAW;IACnB,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG;QACvB,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA;IAC7B,CAAC;CACF,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ import type { Tool } from '../../registry.js';
3
+ declare const inputSchema: z.ZodObject<{
4
+ emailHash: z.ZodString;
5
+ }, "strict", z.ZodTypeAny, {
6
+ emailHash: string;
7
+ }, {
8
+ emailHash: string;
9
+ }>;
10
+ declare const tool: Tool<typeof inputSchema>;
11
+ export default tool;
12
+ //# sourceMappingURL=removeMember.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeMember.d.ts","sourceRoot":"","sources":["../../../src/tools/partner/removeMember.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAE7C,QAAA,MAAM,WAAW;;;;;;EAON,CAAA;AAEX,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAalC,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,25 @@
1
+ import { z } from 'zod';
2
+ import { getPartnerClient } from '../../sdkCache.js';
3
+ const inputSchema = z
4
+ .object({
5
+ emailHash: z
6
+ .string()
7
+ .min(1)
8
+ .describe('emailHash of the member to remove (from partner_list_members).'),
9
+ })
10
+ .strict();
11
+ const tool = {
12
+ name: 'partner_remove_member',
13
+ scope: 'partner',
14
+ description: 'WARNING — permanent. Removes a member from the partner account; the row is deleted ' +
15
+ '(audit history of past actions is retained on the audit log, but the member entry is ' +
16
+ 'gone — re-add via partner_invite_member). Cannot remove the last Admin (errors 409). ' +
17
+ 'Prefer partner_update_member with status="Suspended" if you might re-enable later.',
18
+ schema: inputSchema,
19
+ async handler({ emailHash }, ctx) {
20
+ const client = getPartnerClient(ctx.auth.apiKey);
21
+ return client.members.remove(emailHash);
22
+ },
23
+ };
24
+ export default tool;
25
+ //# sourceMappingURL=removeMember.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeMember.js","sourceRoot":"","sources":["../../../src/tools/partner/removeMember.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGpD,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,gEAAgE,CAAC;CAC9E,CAAC;KACD,MAAM,EAAE,CAAA;AAEX,MAAM,IAAI,GAA6B;IACrC,IAAI,EAAE,uBAAuB;IAC7B,KAAK,EAAE,SAAS;IAChB,WAAW,EACT,qFAAqF;QACrF,uFAAuF;QACvF,uFAAuF;QACvF,oFAAoF;IACtF,MAAM,EAAE,WAAW;IACnB,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG;QAC9B,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACzC,CAAC;CACF,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ import type { Tool } from '../../registry.js';
3
+ declare const inputSchema: z.ZodObject<{
4
+ emailHash: z.ZodString;
5
+ }, "strict", z.ZodTypeAny, {
6
+ emailHash: string;
7
+ }, {
8
+ emailHash: string;
9
+ }>;
10
+ declare const tool: Tool<typeof inputSchema>;
11
+ export default tool;
12
+ //# sourceMappingURL=resendMemberInvite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resendMemberInvite.d.ts","sourceRoot":"","sources":["../../../src/tools/partner/resendMemberInvite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAE7C,QAAA,MAAM,WAAW;;;;;;EAON,CAAA;AAEX,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAYlC,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,24 @@
1
+ import { z } from 'zod';
2
+ import { getPartnerClient } from '../../sdkCache.js';
3
+ const inputSchema = z
4
+ .object({
5
+ emailHash: z
6
+ .string()
7
+ .min(1)
8
+ .describe('emailHash of the Pending member (from partner_list_members).'),
9
+ })
10
+ .strict();
11
+ const tool = {
12
+ name: 'partner_resend_invite',
13
+ scope: 'partner',
14
+ description: 'Re-issue the invitation email and reset the 14-day accept window for a Pending member. ' +
15
+ 'Errors 409 if the member is not in Pending status (use partner_update_member to change ' +
16
+ 'role on already-Active members instead).',
17
+ schema: inputSchema,
18
+ async handler({ emailHash }, ctx) {
19
+ const client = getPartnerClient(ctx.auth.apiKey);
20
+ return client.members.resendInvite(emailHash);
21
+ },
22
+ };
23
+ export default tool;
24
+ //# sourceMappingURL=resendMemberInvite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resendMemberInvite.js","sourceRoot":"","sources":["../../../src/tools/partner/resendMemberInvite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGpD,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,8DAA8D,CAAC;CAC5E,CAAC;KACD,MAAM,EAAE,CAAA;AAEX,MAAM,IAAI,GAA6B;IACrC,IAAI,EAAE,uBAAuB;IAC7B,KAAK,EAAE,SAAS;IAChB,WAAW,EACT,yFAAyF;QACzF,yFAAyF;QACzF,0CAA0C;IAC5C,MAAM,EAAE,WAAW;IACnB,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG;QAC9B,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;IAC/C,CAAC;CACF,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ import type { Tool } from '../../registry.js';
3
+ declare const inputSchema: z.ZodObject<{
4
+ slot: z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>]>;
5
+ }, "strict", z.ZodTypeAny, {
6
+ slot: 1 | 2;
7
+ }, {
8
+ slot: 1 | 2;
9
+ }>;
10
+ declare const tool: Tool<typeof inputSchema>;
11
+ export default tool;
12
+ //# sourceMappingURL=revokeKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revokeKey.d.ts","sourceRoot":"","sources":["../../../src/tools/partner/revokeKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAE7C,QAAA,MAAM,WAAW;;;;;;EAMN,CAAA;AAEX,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAclC,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,25 @@
1
+ import { z } from 'zod';
2
+ import { getPartnerClient } from '../../sdkCache.js';
3
+ const inputSchema = z
4
+ .object({
5
+ slot: z
6
+ .union([z.literal(1), z.literal(2)])
7
+ .describe('Slot number — 1 or 2 (max 2 active keys per partner).'),
8
+ })
9
+ .strict();
10
+ const tool = {
11
+ name: 'partner_revoke_key',
12
+ scope: 'partner',
13
+ description: 'WARNING — irreversible. Revoke the API key in the given slot (1 or 2). The key is ' +
14
+ 'invalidated immediately; any caller still using it gets 401 on the next request. Foot- ' +
15
+ 'gun: revoking the slot the SDK / MCP server is currently using locks subsequent calls ' +
16
+ 'out of the platform. Always rotate (partner_create_key) and verify the new key works ' +
17
+ 'before revoking the old one.',
18
+ schema: inputSchema,
19
+ async handler({ slot }, ctx) {
20
+ const client = getPartnerClient(ctx.auth.apiKey);
21
+ return client.keys.revoke(slot);
22
+ },
23
+ };
24
+ export default tool;
25
+ //# sourceMappingURL=revokeKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revokeKey.js","sourceRoot":"","sources":["../../../src/tools/partner/revokeKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGpD,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC;SACJ,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;SACnC,QAAQ,CAAC,uDAAuD,CAAC;CACrE,CAAC;KACD,MAAM,EAAE,CAAA;AAEX,MAAM,IAAI,GAA6B;IACrC,IAAI,EAAE,oBAAoB;IAC1B,KAAK,EAAE,SAAS;IAChB,WAAW,EACT,oFAAoF;QACpF,yFAAyF;QACzF,wFAAwF;QACxF,uFAAuF;QACvF,8BAA8B;IAChC,MAAM,EAAE,WAAW;IACnB,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG;QACzB,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;CACF,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ import type { Tool } from '../../registry.js';
3
+ declare const inputSchema: z.ZodObject<{
4
+ customerId: z.ZodString;
5
+ product: z.ZodString;
6
+ maturityTarget: z.ZodOptional<z.ZodString>;
7
+ }, "strict", z.ZodTypeAny, {
8
+ customerId: string;
9
+ product: string;
10
+ maturityTarget?: string | undefined;
11
+ }, {
12
+ customerId: string;
13
+ product: string;
14
+ maturityTarget?: string | undefined;
15
+ }>;
16
+ declare const tool: Tool<typeof inputSchema>;
17
+ export default tool;
18
+ //# sourceMappingURL=sendConsentEmail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendConsentEmail.d.ts","sourceRoot":"","sources":["../../../src/tools/partner/sendConsentEmail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAE7C,QAAA,MAAM,WAAW;;;;;;;;;;;;EAcN,CAAA;AAEX,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAiClC,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,50 @@
1
+ import { z } from 'zod';
2
+ import { getPartnerClient } from '../../sdkCache.js';
3
+ const inputSchema = z
4
+ .object({
5
+ customerId: z.string().describe('Customer id (from partner_list_customers).'),
6
+ product: z
7
+ .string()
8
+ .describe('Product slug for the consent flow (e.g. "tenant-health", "e8", "mcsb"). ' +
9
+ 'See partner_get_plan_billing for the partner\'s allowed products.'),
10
+ maturityTarget: z
11
+ .string()
12
+ .optional()
13
+ .describe('Optional product-specific maturity target (e.g. "ML2" for E8).'),
14
+ })
15
+ .strict();
16
+ const tool = {
17
+ name: 'partner_send_consent_email',
18
+ scope: 'partner',
19
+ description: "Send a partner-branded consent invitation email to the customer's " +
20
+ 'configured consentRecipients (or primary email as fallback). The ' +
21
+ 'email contains a Grant Consent button linking to the consent URL. ' +
22
+ 'Returns { sent, skipped, recipients, failed, consentUrl, ' +
23
+ 'emailConsentEnabled, skipReason }. Honours the 2-stage email gate: ' +
24
+ "if the partner's mail provider is 'off' OR the customer's " +
25
+ 'emailConsentEnabled is false, no email is sent and ' +
26
+ 'emailConsentEnabled is returned as false with skipReason set; ' +
27
+ 'consentUrl is always returned so it can be shared manually.',
28
+ schema: inputSchema,
29
+ async handler(input, ctx) {
30
+ const client = getPartnerClient(ctx.auth.apiKey);
31
+ const result = await client.customers.sendConsentEmail(input.customerId, {
32
+ product: input.product,
33
+ ...(input.maturityTarget ? { maturityTarget: input.maturityTarget } : {}),
34
+ });
35
+ return {
36
+ sent: result.sent,
37
+ skipped: result.skipped,
38
+ total: result.total,
39
+ recipients: result.recipients,
40
+ failed: result.failed,
41
+ assessmentId: result.assessmentId,
42
+ product: result.product,
43
+ consentUrl: result.consentUrl,
44
+ emailConsentEnabled: result.emailConsentEnabled,
45
+ skipReason: result.skipReason,
46
+ };
47
+ },
48
+ };
49
+ export default tool;
50
+ //# sourceMappingURL=sendConsentEmail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendConsentEmail.js","sourceRoot":"","sources":["../../../src/tools/partner/sendConsentEmail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGpD,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IAC7E,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CACP,0EAA0E;QACxE,mEAAmE,CACtE;IACH,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gEAAgE,CAAC;CAC9E,CAAC;KACD,MAAM,EAAE,CAAA;AAEX,MAAM,IAAI,GAA6B;IACrC,IAAI,EAAE,4BAA4B;IAClC,KAAK,EAAE,SAAS;IAChB,WAAW,EACT,oEAAoE;QACpE,mEAAmE;QACnE,oEAAoE;QACpE,2DAA2D;QAC3D,qEAAqE;QACrE,4DAA4D;QAC5D,qDAAqD;QACrD,gEAAgE;QAChE,6DAA6D;IAC/D,MAAM,EAAE,WAAW;IACnB,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,EAAE;YACvE,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1E,CAAC,CAAA;QACF,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAA;IACH,CAAC;CACF,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ import type { Tool } from '../../registry.js';
3
+ declare const inputSchema: z.ZodObject<{
4
+ endpointId: z.ZodString;
5
+ }, "strict", z.ZodTypeAny, {
6
+ endpointId: string;
7
+ }, {
8
+ endpointId: string;
9
+ }>;
10
+ declare const tool: Tool<typeof inputSchema>;
11
+ export default tool;
12
+ //# sourceMappingURL=testWebhook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testWebhook.d.ts","sourceRoot":"","sources":["../../../src/tools/partner/testWebhook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAE7C,QAAA,MAAM,WAAW;;;;;;EAON,CAAA;AAEX,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAalC,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,25 @@
1
+ import { z } from 'zod';
2
+ import { getPartnerClient } from '../../sdkCache.js';
3
+ const inputSchema = z
4
+ .object({
5
+ endpointId: z
6
+ .string()
7
+ .min(1)
8
+ .describe('Webhook endpoint id (from partner_list_webhooks).'),
9
+ })
10
+ .strict();
11
+ const tool = {
12
+ name: 'partner_test_webhook',
13
+ scope: 'partner',
14
+ description: 'Fire a synthetic test.ping delivery to the endpoint with a real signed payload — useful ' +
15
+ 'while wiring up your handler. The 10-second response is returned inline so you can see ' +
16
+ 'exactly what your server replied (statusCode + first ~500 bytes of responseBody). Does ' +
17
+ 'NOT cost a credit and does NOT count toward retry backoff.',
18
+ schema: inputSchema,
19
+ async handler({ endpointId }, ctx) {
20
+ const client = getPartnerClient(ctx.auth.apiKey);
21
+ return client.webhooks.test(endpointId);
22
+ },
23
+ };
24
+ export default tool;
25
+ //# sourceMappingURL=testWebhook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testWebhook.js","sourceRoot":"","sources":["../../../src/tools/partner/testWebhook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGpD,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,mDAAmD,CAAC;CACjE,CAAC;KACD,MAAM,EAAE,CAAA;AAEX,MAAM,IAAI,GAA6B;IACrC,IAAI,EAAE,sBAAsB;IAC5B,KAAK,EAAE,SAAS;IAChB,WAAW,EACT,0FAA0F;QAC1F,yFAAyF;QACzF,yFAAyF;QACzF,4DAA4D;IAC9D,MAAM,EAAE,WAAW;IACnB,KAAK,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,EAAE,GAAG;QAC/B,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACzC,CAAC;CACF,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ import type { Tool } from '../../registry.js';
3
+ declare const inputSchema: z.ZodObject<{
4
+ customerId: z.ZodString;
5
+ product: z.ZodString;
6
+ maturityTarget: z.ZodOptional<z.ZodString>;
7
+ }, "strict", z.ZodTypeAny, {
8
+ customerId: string;
9
+ product: string;
10
+ maturityTarget?: string | undefined;
11
+ }, {
12
+ customerId: string;
13
+ product: string;
14
+ maturityTarget?: string | undefined;
15
+ }>;
16
+ declare const tool: Tool<typeof inputSchema>;
17
+ export default tool;
18
+ //# sourceMappingURL=triggerAssessment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triggerAssessment.d.ts","sourceRoot":"","sources":["../../../src/tools/partner/triggerAssessment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAE7C,QAAA,MAAM,WAAW;;;;;;;;;;;;EAMN,CAAA;AAEX,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAelC,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,26 @@
1
+ import { z } from 'zod';
2
+ import { getPartnerClient } from '../../sdkCache.js';
3
+ const inputSchema = z
4
+ .object({
5
+ customerId: z.string().min(1).describe('Target customer id'),
6
+ product: z.string().min(1).describe('Product slug (use partner_get_plan_billing to see allowed products)'),
7
+ maturityTarget: z.string().optional().describe('Optional product-specific maturity target, e.g. "level-2"'),
8
+ })
9
+ .strict();
10
+ const tool = {
11
+ name: 'partner_trigger_assessment',
12
+ scope: 'partner',
13
+ description: 'Start a new assessment for the given customer. Inspect the response\'s "status" field: ' +
14
+ '"queued"/"completed"/"failed" means the run was accepted (assessmentId + runId populated, ' +
15
+ 'COSTS 1 CREDIT — poll via partner_get_assessment_status). ' +
16
+ '"consent_required" means the customer has never granted Microsoft admin consent — no credit ' +
17
+ 'was burned, assessmentId is null, but consentUrl is returned. In that case call ' +
18
+ 'partner_send_consent_email or share consentUrl directly with the customer, then re-trigger.',
19
+ schema: inputSchema,
20
+ async handler(input, ctx) {
21
+ const client = getPartnerClient(ctx.auth.apiKey);
22
+ return client.assessments.create(input);
23
+ },
24
+ };
25
+ export default tool;
26
+ //# sourceMappingURL=triggerAssessment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triggerAssessment.js","sourceRoot":"","sources":["../../../src/tools/partner/triggerAssessment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGpD,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IAC5D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qEAAqE,CAAC;IAC1G,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;CAC5G,CAAC;KACD,MAAM,EAAE,CAAA;AAEX,MAAM,IAAI,GAA6B;IACrC,IAAI,EAAE,4BAA4B;IAClC,KAAK,EAAE,SAAS;IAChB,WAAW,EACT,yFAAyF;QACzF,4FAA4F;QAC5F,4DAA4D;QAC5D,8FAA8F;QAC9F,kFAAkF;QAClF,6FAA6F;IAC/F,MAAM,EAAE,WAAW;IACnB,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACzC,CAAC;CACF,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,31 @@
1
+ import { z } from 'zod';
2
+ import type { Tool } from '../../registry.js';
3
+ declare const inputSchema: z.ZodEffects<z.ZodObject<{
4
+ brandColor: z.ZodOptional<z.ZodString>;
5
+ footerText: z.ZodOptional<z.ZodString>;
6
+ contactEmail: z.ZodOptional<z.ZodString>;
7
+ company: z.ZodOptional<z.ZodString>;
8
+ }, "strict", z.ZodTypeAny, {
9
+ brandColor?: string | undefined;
10
+ footerText?: string | undefined;
11
+ contactEmail?: string | undefined;
12
+ company?: string | undefined;
13
+ }, {
14
+ brandColor?: string | undefined;
15
+ footerText?: string | undefined;
16
+ contactEmail?: string | undefined;
17
+ company?: string | undefined;
18
+ }>, {
19
+ brandColor?: string | undefined;
20
+ footerText?: string | undefined;
21
+ contactEmail?: string | undefined;
22
+ company?: string | undefined;
23
+ }, {
24
+ brandColor?: string | undefined;
25
+ footerText?: string | undefined;
26
+ contactEmail?: string | undefined;
27
+ company?: string | undefined;
28
+ }>;
29
+ declare const tool: Tool<typeof inputSchema>;
30
+ export default tool;
31
+ //# sourceMappingURL=updateBranding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateBranding.d.ts","sourceRoot":"","sources":["../../../src/tools/partner/updateBranding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAE7C,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;EA0Bb,CAAA;AAEJ,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAalC,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,44 @@
1
+ import { z } from 'zod';
2
+ import { getPartnerClient } from '../../sdkCache.js';
3
+ const inputSchema = z
4
+ .object({
5
+ brandColor: z
6
+ .string()
7
+ .regex(/^#[0-9a-fA-F]{6}$/, 'must be a 6-digit hex like #00cc66')
8
+ .optional()
9
+ .describe('Hex colour, e.g. "#00cc66"'),
10
+ footerText: z
11
+ .string()
12
+ .max(500)
13
+ .optional()
14
+ .describe('Footer text used in customer-facing emails (max 500 chars).'),
15
+ contactEmail: z
16
+ .string()
17
+ .email()
18
+ .optional()
19
+ .describe('Contact email shown in branded emails. Pass an empty string to clear.'),
20
+ company: z
21
+ .string()
22
+ .max(200)
23
+ .optional()
24
+ .describe('Company display name (max 200 chars).'),
25
+ })
26
+ .strict()
27
+ .refine((v) => Object.keys(v).length > 0, {
28
+ message: 'Provide at least one field to update',
29
+ });
30
+ const tool = {
31
+ name: 'partner_update_branding',
32
+ scope: 'partner',
33
+ description: 'Update one or more partner-branding text fields. All fields optional — provide only what ' +
34
+ 'you want to change. Affects customer-facing emails (consent invitation, report-ready, ' +
35
+ 'questionnaire) and the report viewer chrome. Logo upload is a separate multipart flow ' +
36
+ '(POST /api/partner/branding/logo, MSAL only) and is not covered by this tool.',
37
+ schema: inputSchema,
38
+ async handler(input, ctx) {
39
+ const client = getPartnerClient(ctx.auth.apiKey);
40
+ return client.branding.update(input);
41
+ },
42
+ };
43
+ export default tool;
44
+ //# sourceMappingURL=updateBranding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateBranding.js","sourceRoot":"","sources":["../../../src/tools/partner/updateBranding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGpD,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,KAAK,CAAC,mBAAmB,EAAE,oCAAoC,CAAC;SAChE,QAAQ,EAAE;SACV,QAAQ,CAAC,4BAA4B,CAAC;IACzC,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,6DAA6D,CAAC;IAC1E,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,KAAK,EAAE;SACP,QAAQ,EAAE;SACV,QAAQ,CAAC,uEAAuE,CAAC;IACpF,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uCAAuC,CAAC;CACrD,CAAC;KACD,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;IACxC,OAAO,EAAE,sCAAsC;CAChD,CAAC,CAAA;AAEJ,MAAM,IAAI,GAA6B;IACrC,IAAI,EAAE,yBAAyB;IAC/B,KAAK,EAAE,SAAS;IAChB,WAAW,EACT,2FAA2F;QAC3F,wFAAwF;QACxF,wFAAwF;QACxF,+EAA+E;IACjF,MAAM,EAAE,WAAW;IACnB,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC;CACF,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,26 @@
1
+ import { z } from 'zod';
2
+ import type { Tool } from '../../registry.js';
3
+ declare const inputSchema: z.ZodEffects<z.ZodObject<{
4
+ emailHash: z.ZodString;
5
+ role: z.ZodOptional<z.ZodEnum<["Admin", "Member", "Viewer"]>>;
6
+ status: z.ZodOptional<z.ZodEnum<["Active", "Suspended"]>>;
7
+ }, "strict", z.ZodTypeAny, {
8
+ emailHash: string;
9
+ status?: "Active" | "Suspended" | undefined;
10
+ role?: "Admin" | "Member" | "Viewer" | undefined;
11
+ }, {
12
+ emailHash: string;
13
+ status?: "Active" | "Suspended" | undefined;
14
+ role?: "Admin" | "Member" | "Viewer" | undefined;
15
+ }>, {
16
+ emailHash: string;
17
+ status?: "Active" | "Suspended" | undefined;
18
+ role?: "Admin" | "Member" | "Viewer" | undefined;
19
+ }, {
20
+ emailHash: string;
21
+ status?: "Active" | "Suspended" | undefined;
22
+ role?: "Admin" | "Member" | "Viewer" | undefined;
23
+ }>;
24
+ declare const tool: Tool<typeof inputSchema>;
25
+ export default tool;
26
+ //# sourceMappingURL=updateMember.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateMember.d.ts","sourceRoot":"","sources":["../../../src/tools/partner/updateMember.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAE7C,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;EAkBb,CAAA;AAEJ,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAYlC,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,35 @@
1
+ import { z } from 'zod';
2
+ import { getPartnerClient } from '../../sdkCache.js';
3
+ const inputSchema = z
4
+ .object({
5
+ emailHash: z
6
+ .string()
7
+ .min(1)
8
+ .describe('emailHash of the member to update (from partner_list_members).'),
9
+ role: z
10
+ .enum(['Admin', 'Member', 'Viewer'])
11
+ .optional()
12
+ .describe('New role. Cannot demote the last Admin (errors 409).'),
13
+ status: z
14
+ .enum(['Active', 'Suspended'])
15
+ .optional()
16
+ .describe('New status. "Pending" is set by the platform on invite; not user-settable.'),
17
+ })
18
+ .strict()
19
+ .refine((v) => v.role !== undefined || v.status !== undefined, {
20
+ message: 'Provide role or status to update',
21
+ });
22
+ const tool = {
23
+ name: 'partner_update_member',
24
+ scope: 'partner',
25
+ description: 'Update a member\'s role and/or status (provide at least one). Suspending revokes their ' +
26
+ 'ability to sign in but retains the row for audit; reactivate by setting status="Active". ' +
27
+ 'Cannot demote the last Admin — errors 409 in that case.',
28
+ schema: inputSchema,
29
+ async handler({ emailHash, ...rest }, ctx) {
30
+ const client = getPartnerClient(ctx.auth.apiKey);
31
+ return client.members.update(emailHash, rest);
32
+ },
33
+ };
34
+ export default tool;
35
+ //# sourceMappingURL=updateMember.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateMember.js","sourceRoot":"","sources":["../../../src/tools/partner/updateMember.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGpD,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,gEAAgE,CAAC;IAC7E,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;SACnC,QAAQ,EAAE;SACV,QAAQ,CAAC,sDAAsD,CAAC;IACnE,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;SAC7B,QAAQ,EAAE;SACV,QAAQ,CAAC,4EAA4E,CAAC;CAC1F,CAAC;KACD,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE;IAC7D,OAAO,EAAE,kCAAkC;CAC5C,CAAC,CAAA;AAEJ,MAAM,IAAI,GAA6B;IACrC,IAAI,EAAE,uBAAuB;IAC7B,KAAK,EAAE,SAAS;IAChB,WAAW,EACT,yFAAyF;QACzF,2FAA2F;QAC3F,yDAAyD;IAC3D,MAAM,EAAE,WAAW;IACnB,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG;QACvC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAC/C,CAAC;CACF,CAAA;AAED,eAAe,IAAI,CAAA"}