corsair 0.1.16 → 0.1.18

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 (191) hide show
  1. package/dist/core/client/index.d.ts +1 -1
  2. package/dist/core/client/index.d.ts.map +1 -1
  3. package/dist/core/client/index.js +2 -2
  4. package/dist/core/index.d.ts +3 -3
  5. package/dist/core/index.d.ts.map +1 -1
  6. package/dist/core/inspect/index.d.ts +88 -10
  7. package/dist/core/inspect/index.d.ts.map +1 -1
  8. package/dist/core/inspect/index.js +193 -10
  9. package/dist/core/plugins/index.d.ts +57 -2
  10. package/dist/core/plugins/index.d.ts.map +1 -1
  11. package/dist/core/webhooks/index.d.ts +23 -0
  12. package/dist/core/webhooks/index.d.ts.map +1 -1
  13. package/dist/plugins/discord/endpoints/types.d.ts +3055 -160
  14. package/dist/plugins/discord/endpoints/types.d.ts.map +1 -1
  15. package/dist/plugins/discord/endpoints/types.js +301 -1
  16. package/dist/plugins/discord/index.d.ts +4031 -21
  17. package/dist/plugins/discord/index.d.ts.map +1 -1
  18. package/dist/plugins/discord/index.js +136 -11
  19. package/dist/plugins/discord/schema/database.d.ts +18 -18
  20. package/dist/plugins/discord/schema/index.d.ts +18 -18
  21. package/dist/plugins/discord/webhooks/index.d.ts +507 -3
  22. package/dist/plugins/discord/webhooks/index.d.ts.map +1 -1
  23. package/dist/plugins/discord/webhooks/types.d.ts +3743 -48
  24. package/dist/plugins/discord/webhooks/types.d.ts.map +1 -1
  25. package/dist/plugins/discord/webhooks/types.js +107 -0
  26. package/dist/plugins/github/endpoints/index.d.ts +380 -380
  27. package/dist/plugins/github/endpoints/types.d.ts +1034 -9274
  28. package/dist/plugins/github/endpoints/types.d.ts.map +1 -1
  29. package/dist/plugins/github/endpoints/types.js +0 -26
  30. package/dist/plugins/github/index.d.ts +9123 -7
  31. package/dist/plugins/github/index.d.ts.map +1 -1
  32. package/dist/plugins/github/index.js +121 -1
  33. package/dist/plugins/github/schema/database.d.ts +126 -126
  34. package/dist/plugins/github/schema/index.d.ts +126 -126
  35. package/dist/plugins/github/webhooks/index.d.ts +1758 -6
  36. package/dist/plugins/github/webhooks/index.d.ts.map +1 -1
  37. package/dist/plugins/github/webhooks/types.d.ts +10765 -136
  38. package/dist/plugins/github/webhooks/types.d.ts.map +1 -1
  39. package/dist/plugins/github/webhooks/types.js +202 -0
  40. package/dist/plugins/gmail/endpoints/index.d.ts +20 -20
  41. package/dist/plugins/gmail/endpoints/types.d.ts +140 -1784
  42. package/dist/plugins/gmail/endpoints/types.d.ts.map +1 -1
  43. package/dist/plugins/gmail/endpoints/types.js +12 -34
  44. package/dist/plugins/gmail/index.d.ts +1703 -3
  45. package/dist/plugins/gmail/index.d.ts.map +1 -1
  46. package/dist/plugins/gmail/index.js +112 -3
  47. package/dist/plugins/gmail/schema/database.d.ts +2 -2
  48. package/dist/plugins/gmail/schema/index.d.ts +2 -2
  49. package/dist/plugins/gmail/webhooks/index.d.ts +35 -1
  50. package/dist/plugins/gmail/webhooks/index.d.ts.map +1 -1
  51. package/dist/plugins/gmail/webhooks/types.d.ts +168 -30
  52. package/dist/plugins/gmail/webhooks/types.d.ts.map +1 -1
  53. package/dist/plugins/gmail/webhooks/types.js +49 -0
  54. package/dist/plugins/googlecalendar/endpoints/index.d.ts +5 -5
  55. package/dist/plugins/googlecalendar/endpoints/types.d.ts +10 -2324
  56. package/dist/plugins/googlecalendar/endpoints/types.d.ts.map +1 -1
  57. package/dist/plugins/googlecalendar/endpoints/types.js +0 -11
  58. package/dist/plugins/googlecalendar/index.d.ts +2338 -3
  59. package/dist/plugins/googlecalendar/index.d.ts.map +1 -1
  60. package/dist/plugins/googlecalendar/index.js +48 -6
  61. package/dist/plugins/googlecalendar/schema/database.d.ts +2 -2
  62. package/dist/plugins/googlecalendar/schema/index.d.ts +2 -2
  63. package/dist/plugins/googlecalendar/webhooks/index.d.ts +31 -1
  64. package/dist/plugins/googlecalendar/webhooks/index.d.ts.map +1 -1
  65. package/dist/plugins/googlecalendar/webhooks/types.d.ts +172 -28
  66. package/dist/plugins/googlecalendar/webhooks/types.d.ts.map +1 -1
  67. package/dist/plugins/googlecalendar/webhooks/types.js +55 -1
  68. package/dist/plugins/googledrive/endpoints/index.d.ts +18 -18
  69. package/dist/plugins/googledrive/endpoints/types.d.ts +30 -2468
  70. package/dist/plugins/googledrive/endpoints/types.d.ts.map +1 -1
  71. package/dist/plugins/googledrive/endpoints/types.js +0 -26
  72. package/dist/plugins/googledrive/index.d.ts +2470 -3
  73. package/dist/plugins/googledrive/index.d.ts.map +1 -1
  74. package/dist/plugins/googledrive/index.js +144 -15
  75. package/dist/plugins/googledrive/schema/database.d.ts +6 -6
  76. package/dist/plugins/googledrive/schema/index.d.ts +6 -6
  77. package/dist/plugins/googledrive/webhooks/index.d.ts +47 -1
  78. package/dist/plugins/googledrive/webhooks/index.d.ts.map +1 -1
  79. package/dist/plugins/googledrive/webhooks/types.d.ts +172 -34
  80. package/dist/plugins/googledrive/webhooks/types.d.ts.map +1 -1
  81. package/dist/plugins/googledrive/webhooks/types.js +64 -1
  82. package/dist/plugins/googlesheets/endpoints/index.d.ts +1 -1
  83. package/dist/plugins/googlesheets/endpoints/types.d.ts +26 -614
  84. package/dist/plugins/googlesheets/endpoints/types.d.ts.map +1 -1
  85. package/dist/plugins/googlesheets/endpoints/types.js +0 -15
  86. package/dist/plugins/googlesheets/index.d.ts +603 -3
  87. package/dist/plugins/googlesheets/index.d.ts.map +1 -1
  88. package/dist/plugins/googlesheets/index.js +68 -6
  89. package/dist/plugins/googlesheets/schema/database.d.ts +4 -4
  90. package/dist/plugins/googlesheets/schema/index.d.ts +4 -4
  91. package/dist/plugins/googlesheets/webhooks/index.d.ts +15 -1
  92. package/dist/plugins/googlesheets/webhooks/index.d.ts.map +1 -1
  93. package/dist/plugins/googlesheets/webhooks/types.d.ts +45 -10
  94. package/dist/plugins/googlesheets/webhooks/types.d.ts.map +1 -1
  95. package/dist/plugins/googlesheets/webhooks/types.js +26 -0
  96. package/dist/plugins/hubspot/endpoints/types.d.ts +0 -7291
  97. package/dist/plugins/hubspot/endpoints/types.d.ts.map +1 -1
  98. package/dist/plugins/hubspot/endpoints/types.js +0 -39
  99. package/dist/plugins/hubspot/index.d.ts +7443 -14
  100. package/dist/plugins/hubspot/index.d.ts.map +1 -1
  101. package/dist/plugins/hubspot/index.js +252 -14
  102. package/dist/plugins/hubspot/schema/database.d.ts +8 -8
  103. package/dist/plugins/hubspot/schema/index.d.ts +8 -8
  104. package/dist/plugins/hubspot/webhooks/index.d.ts +144 -12
  105. package/dist/plugins/hubspot/webhooks/index.d.ts.map +1 -1
  106. package/dist/plugins/hubspot/webhooks/types.d.ts +855 -45
  107. package/dist/plugins/hubspot/webhooks/types.d.ts.map +1 -1
  108. package/dist/plugins/hubspot/webhooks/types.js +104 -0
  109. package/dist/plugins/linear/endpoints/index.d.ts +120 -120
  110. package/dist/plugins/linear/endpoints/types.d.ts +634 -2347
  111. package/dist/plugins/linear/endpoints/types.d.ts.map +1 -1
  112. package/dist/plugins/linear/endpoints/types.js +0 -23
  113. package/dist/plugins/linear/index.d.ts +6088 -11
  114. package/dist/plugins/linear/index.d.ts.map +1 -1
  115. package/dist/plugins/linear/index.js +124 -2
  116. package/dist/plugins/linear/schema/database.d.ts +10 -10
  117. package/dist/plugins/linear/schema/index.d.ts +10 -10
  118. package/dist/plugins/linear/webhooks/index.d.ts +619 -9
  119. package/dist/plugins/linear/webhooks/index.d.ts.map +1 -1
  120. package/dist/plugins/linear/webhooks/types.d.ts +2809 -115
  121. package/dist/plugins/linear/webhooks/types.d.ts.map +1 -1
  122. package/dist/plugins/linear/webhooks/types.js +196 -0
  123. package/dist/plugins/posthog/endpoints/types.d.ts +0 -139
  124. package/dist/plugins/posthog/endpoints/types.d.ts.map +1 -1
  125. package/dist/plugins/posthog/endpoints/types.js +0 -10
  126. package/dist/plugins/posthog/index.d.ts +161 -3
  127. package/dist/plugins/posthog/index.d.ts.map +1 -1
  128. package/dist/plugins/posthog/index.js +44 -5
  129. package/dist/plugins/posthog/webhooks/index.d.ts +29 -1
  130. package/dist/plugins/posthog/webhooks/index.d.ts.map +1 -1
  131. package/dist/plugins/posthog/webhooks/types.d.ts +96 -15
  132. package/dist/plugins/posthog/webhooks/types.d.ts.map +1 -1
  133. package/dist/plugins/posthog/webhooks/types.js +25 -0
  134. package/dist/plugins/resend/endpoints/index.d.ts +6 -6
  135. package/dist/plugins/resend/endpoints/types.d.ts +18 -336
  136. package/dist/plugins/resend/endpoints/types.d.ts.map +1 -1
  137. package/dist/plugins/resend/endpoints/types.js +0 -13
  138. package/dist/plugins/resend/index.d.ts +456 -12
  139. package/dist/plugins/resend/index.d.ts.map +1 -1
  140. package/dist/plugins/resend/index.js +105 -6
  141. package/dist/plugins/resend/schema/database.d.ts +2 -2
  142. package/dist/plugins/resend/schema/index.d.ts +2 -2
  143. package/dist/plugins/resend/webhooks/index.d.ts +252 -10
  144. package/dist/plugins/resend/webhooks/index.d.ts.map +1 -1
  145. package/dist/plugins/resend/webhooks/types.d.ts +971 -70
  146. package/dist/plugins/resend/webhooks/types.d.ts.map +1 -1
  147. package/dist/plugins/resend/webhooks/types.js +185 -0
  148. package/dist/plugins/slack/endpoints/index.d.ts +8 -8
  149. package/dist/plugins/slack/endpoints/types.d.ts +16 -17339
  150. package/dist/plugins/slack/endpoints/types.d.ts.map +1 -1
  151. package/dist/plugins/slack/endpoints/types.js +0 -47
  152. package/dist/plugins/slack/index.d.ts +17553 -10
  153. package/dist/plugins/slack/index.d.ts.map +1 -1
  154. package/dist/plugins/slack/index.js +220 -2
  155. package/dist/plugins/slack/schema/database.d.ts +48 -48
  156. package/dist/plugins/slack/schema/index.d.ts +48 -48
  157. package/dist/plugins/slack/webhooks/index.d.ts +449 -8
  158. package/dist/plugins/slack/webhooks/index.d.ts.map +1 -1
  159. package/dist/plugins/slack/webhooks/types.d.ts +5461 -469
  160. package/dist/plugins/slack/webhooks/types.d.ts.map +1 -1
  161. package/dist/plugins/slack/webhooks/types.js +605 -0
  162. package/dist/plugins/spotify/api.test.js +14 -2
  163. package/dist/plugins/spotify/endpoints/albums.d.ts.map +1 -1
  164. package/dist/plugins/spotify/endpoints/artists.d.ts.map +1 -1
  165. package/dist/plugins/spotify/endpoints/index.d.ts +4 -4
  166. package/dist/plugins/spotify/endpoints/index.js +4 -4
  167. package/dist/plugins/spotify/endpoints/library.d.ts.map +1 -1
  168. package/dist/plugins/spotify/endpoints/my-data.d.ts.map +1 -1
  169. package/dist/plugins/spotify/endpoints/player.d.ts.map +1 -1
  170. package/dist/plugins/spotify/endpoints/playlists.d.ts.map +1 -1
  171. package/dist/plugins/spotify/endpoints/playlists.js +1 -1
  172. package/dist/plugins/spotify/endpoints/tracks.d.ts.map +1 -1
  173. package/dist/plugins/spotify/endpoints/types.d.ts +30 -30
  174. package/dist/plugins/spotify/endpoints/types.d.ts.map +1 -1
  175. package/dist/plugins/spotify/index.d.ts +5612 -4
  176. package/dist/plugins/spotify/index.d.ts.map +1 -1
  177. package/dist/plugins/spotify/index.js +239 -3
  178. package/dist/plugins/spotify/schema/database.d.ts +6 -6
  179. package/dist/plugins/spotify/schema/index.d.ts +6 -6
  180. package/dist/plugins/spotify/webhooks/example.d.ts.map +1 -1
  181. package/dist/plugins/spotify/webhooks/index.d.ts +17 -1
  182. package/dist/plugins/spotify/webhooks/index.d.ts.map +1 -1
  183. package/dist/plugins/spotify/webhooks/types.d.ts +50 -49
  184. package/dist/plugins/spotify/webhooks/types.d.ts.map +1 -1
  185. package/dist/plugins/spotify/webhooks/types.js +48 -31
  186. package/dist/plugins/tavily/endpoints/index.d.ts +1 -1
  187. package/dist/plugins/tavily/endpoints/types.d.ts +6 -6
  188. package/dist/plugins/tavily/index.d.ts +7 -1
  189. package/dist/plugins/tavily/index.d.ts.map +1 -1
  190. package/dist/templates/plugin/generate.js +18 -13
  191. package/package.json +1 -1
@@ -1,11 +1,11 @@
1
1
  import type { ZodTypeAny } from 'zod';
2
2
  import type { CorsairDatabase } from '../../db/kysely/database';
3
- import { type CorsairInspectMethods } from '../inspect';
4
3
  import type { CorsairPluginSchema, PluginEntityClients } from '../../db/orm';
5
4
  import type { AccountKeyManagerFor, IntegrationKeyManagerFor, PluginAuthConfig } from '../auth/types';
6
5
  import type { AuthTypes } from '../constants';
7
6
  import type { BindEndpoints, EndpointTree } from '../endpoints';
8
7
  import type { CorsairErrorHandler } from '../errors';
8
+ import type { CorsairInspectMethods } from '../inspect';
9
9
  import type { CorsairPlugin } from '../plugins';
10
10
  import type { BindWebhooks, RawWebhookRequest, WebhookTree } from '../webhooks';
11
11
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/client/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { createKyselyEntityClient } from '../../db/kysely/orm';
2
- import { buildInspectMethods, } from '../inspect';
3
2
  import { createAccountKeyManager, createIntegrationKeyManager, } from '../auth/key-manager';
4
3
  import { bindEndpointsRecursively } from '../endpoints/bind';
4
+ import { buildInspectMethods } from '../inspect';
5
5
  import { bindWebhooksRecursively } from '../webhooks/bind';
6
6
  // ─────────────────────────────────────────────────────────────────────────────
7
7
  // Account ID Resolver
@@ -79,7 +79,7 @@ function createEntityClient(database, getAccountId, entityTypeName, version, dat
79
79
  * @returns A fully configured Corsair client with account-level keys
80
80
  */
81
81
  export function buildCorsairClient(plugins, options) {
82
- const { database, tenantId, kek, rootErrorHandlers, approvalConfig, } = options;
82
+ const { database, tenantId, kek, rootErrorHandlers, approvalConfig } = options;
83
83
  const apiUnsafe = {};
84
84
  const pluginEntitiesUnsafe = {};
85
85
  for (const plugin of plugins) {
@@ -34,12 +34,12 @@ export declare function createCorsair<const Plugins extends readonly CorsairPlug
34
34
  export type { AccountFieldNames, AccountKeyManagerFor, BaseAuthFieldConfig, BaseKeyManager, IntegrationFieldNames, IntegrationKeyManagerFor, OAuth2IntegrationCredentials, PluginAuthConfig, } from './auth';
35
35
  export { BASE_AUTH_FIELDS, createAccountKeyManager, createIntegrationKeyManager, decryptConfig, decryptDEK, decryptWithDEK, encryptConfig, encryptDEK, encryptWithDEK, generateDEK, initializeAccountDEK, initializeIntegrationDEK, reEncryptConfig, } from './auth';
36
36
  export type { CorsairClient, CorsairSingleTenantClient, CorsairTenantWrapper, } from './client';
37
- export type { CorsairInspectMethods, EndpointSchemaResult } from './inspect';
38
37
  export type { AllProviders, AuthTypes, BaseProviders } from './constants';
39
38
  export type { BindEndpoints, BoundEndpointFn, BoundEndpointTree, CorsairContext, CorsairEndpoint, EndpointPathsOf, EndpointTree, } from './endpoints';
40
39
  export type { CorsairErrorHandler, ErrorContext, ErrorHandler, ErrorHandlerAndMatchFunction, ErrorMatcher, RetryStrategies, RetryStrategy, } from './errors';
40
+ export type { CorsairInspectMethods, EndpointSchemaResult } from './inspect';
41
41
  export type { EnforcePermissionOptions } from './permissions';
42
- export type { BeforeHookResult, CorsairIntegration, CorsairKeyBuilder, CorsairKeyBuilderBase, CorsairPlugin, CorsairPluginContext, EndpointHooks, EndpointMetaEntry, EndpointRiskLevel, KeyBuilderContext, PermissionMode, PermissionPolicy, PluginEndpointMeta, PluginPermissionsConfig, WebhookHooks, } from './plugins';
42
+ export type { BeforeHookResult, CorsairIntegration, CorsairKeyBuilder, CorsairKeyBuilderBase, CorsairPlugin, CorsairPluginContext, EndpointHooks, EndpointMetaEntry, EndpointRiskLevel, KeyBuilderContext, PermissionMode, PermissionPolicy, PluginEndpointMeta, PluginPermissionsConfig, RequiredPluginEndpointMeta, RequiredPluginEndpointSchemas, RequiredPluginWebhookSchemas, WebhookHooks, } from './plugins';
43
43
  export type { Bivariant, UnionToIntersection } from './utils';
44
- export type { BindWebhooks, BoundWebhook, BoundWebhookTree, CorsairWebhook, CorsairWebhookHandler, CorsairWebhookMatcher, RawWebhookRequest, WebhookRequest, WebhookResponse, WebhookTree, } from './webhooks';
44
+ export type { BindWebhooks, BoundWebhook, BoundWebhookTree, CorsairWebhook, CorsairWebhookHandler, CorsairWebhookMatcher, RawWebhookRequest, WebhookPathsOf, WebhookRequest, WebhookResponse, WebhookTree, } from './webhooks';
45
45
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../core/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,KAAK,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGhF,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAMnE,eAAO,MAAM,gBAAgB,eAAiC,CAAC;AAE/D,MAAM,MAAM,qBAAqB,GAAG;IACnC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAClC,QAAQ,EAAE,eAAe,GAAG,SAAS,CAAC;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE;QACV,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;KAC9B,CAAC;CACF,CAAC;AAMF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,CAAC,OAAO,SAAS,SAAS,aAAa,EAAE,EAC3E,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG;IAAE,YAAY,EAAE,IAAI,CAAA;CAAE,GAC1D,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAEjC;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,CAAC,OAAO,SAAS,SAAS,aAAa,EAAE,EAC3E,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG;IAAE,YAAY,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;CAAE,GACxE,yBAAyB,CAAC,OAAO,CAAC,CAAC;AA6EtC,YAAY,EACX,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,wBAAwB,EACxB,4BAA4B,EAC5B,gBAAgB,GAChB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACN,gBAAgB,EAChB,uBAAuB,EACvB,2BAA2B,EAC3B,aAAa,EACb,UAAU,EACV,cAAc,EACd,aAAa,EACb,UAAU,EACV,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,wBAAwB,EACxB,eAAe,GACf,MAAM,QAAQ,CAAC;AAEhB,YAAY,EACX,aAAa,EACb,yBAAyB,EACzB,oBAAoB,GACpB,MAAM,UAAU,CAAC;AAElB,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAE7E,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG1E,YAAY,EACX,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,eAAe,EACf,YAAY,GACZ,MAAM,aAAa,CAAC;AAErB,YAAY,EACX,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,4BAA4B,EAC5B,YAAY,EACZ,eAAe,EACf,aAAa,GACb,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAG9D,YAAY,EACX,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,YAAY,GACZ,MAAM,WAAW,CAAC;AAGnB,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9D,YAAY,EACX,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,WAAW,GACX,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../core/index.ts"],"names":[],"mappings":"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"}
@@ -16,42 +16,120 @@ export type EndpointSchemaResult = {
16
16
  */
17
17
  availableMethods?: Record<string, string[]>;
18
18
  };
19
+ export type WebhookSchemaResult = {
20
+ /** Human-readable description of what triggers this webhook. */
21
+ description?: string;
22
+ /** JSON Schema for the webhook payload — the type of `request.payload` in the before hook. */
23
+ payload?: unknown;
24
+ /** JSON Schema for the webhook response data — the type of `response.data` in the after hook. */
25
+ response?: unknown;
26
+ /**
27
+ * Ready-to-copy code example showing exactly how to configure this webhook,
28
+ * including response.data type as an inline comment.
29
+ */
30
+ usage?: string;
31
+ /**
32
+ * Present when the requested webhook path was not found.
33
+ * Lists all available webhook dot-paths per plugin so the caller can self-correct.
34
+ */
35
+ availableWebhooks?: Record<string, string[]>;
36
+ };
19
37
  export type CorsairInspectMethods = {
20
38
  /**
21
39
  * Returns all available endpoint paths for every registered plugin.
22
- * Keys are plugin IDs, values are arrays of full-form paths (plugin.group.method).
40
+ * Keys are plugin IDs, values are arrays of full-form paths (plugin.api.group.method), all lowercase.
23
41
  *
24
42
  * @example
25
43
  * corsair.get_methods()
26
- * // { slack: ['slack.channels.list', 'slack.messages.post', ...], github: ['github.issues.list', ...] }
44
+ * // { slack: ['slack.api.channels.list', 'slack.api.messages.post', ...], github: ['github.api.issues.list', ...] }
27
45
  */
28
46
  get_methods(): Record<string, string[]>;
29
47
  /**
30
48
  * Returns all available endpoint paths for a specific plugin.
31
- * Paths are full-form (plugin.group.method) so they can be passed directly to get_schema().
49
+ * Paths are full-form (plugin.api.group.method), all lowercase, and can be passed directly to get_schema().
32
50
  *
33
51
  * @example
34
52
  * corsair.get_methods('slack')
35
- * // ['slack.channels.list', 'slack.channels.get', 'slack.messages.post', ...]
53
+ * // ['slack.api.channels.list', 'slack.api.channels.get', 'slack.api.messages.post', ...]
36
54
  */
37
55
  get_methods(plugin: string): string[];
38
56
  /**
39
57
  * Returns schema and metadata for a specific endpoint.
40
- * Pass the full dot-path including the plugin ID: 'slack.channels.list'.
58
+ * Pass the full dot-path including the plugin ID and 'api' segment: 'slack.api.channels.list'.
59
+ * Casing is ignored — the method string is lowercased before lookup.
41
60
  * If the method is not found, returns an empty result with `availableMethods` listing all valid paths.
42
61
  *
43
62
  * @example
44
- * corsair.get_schema('slack.channels.list')
63
+ * corsair.get_schema('slack.api.channels.list')
45
64
  * // { description: '...', riskLevel: 'read', input: { type: 'object', ... }, output: { ... } }
46
65
  *
47
- * corsair.get_schema('slack.invalid')
48
- * // { availableMethods: { slack: ['slack.channels.list', ...], ... } }
66
+ * corsair.get_schema('slack.api.channels.getHistory') // casing normalised automatically
67
+ * // { description: '...', riskLevel: 'read', input: { type: 'object', ... }, output: { ... } }
68
+ *
69
+ * corsair.get_schema('slack.api.invalid')
70
+ * // { availableMethods: { slack: ['slack.api.channels.list', ...], ... } }
49
71
  */
50
72
  get_schema(method: string): EndpointSchemaResult;
73
+ /**
74
+ * Returns all available webhook paths for every registered plugin.
75
+ * Keys are plugin IDs, values are arrays of full dot-paths (pluginId.group.event).
76
+ * Pass a path directly to get_webhook_schema() to get its usage example and type info.
77
+ *
78
+ * @example
79
+ * corsair.get_webhooks()
80
+ * // {
81
+ * // slack: ['slack.messages.message', 'slack.channels.created', ...],
82
+ * // googlecalendar: ['googlecalendar.onEventChanged', 'googlecalendar.onEventCreated', ...],
83
+ * // }
84
+ */
85
+ get_webhooks(): Record<string, string[]>;
86
+ /**
87
+ * Returns all available webhook paths for a specific plugin.
88
+ *
89
+ * @example
90
+ * corsair.get_webhooks('slack')
91
+ * // ['slack.messages.message', 'slack.channels.created', ...]
92
+ */
93
+ get_webhooks(plugin: string): string[];
94
+ /**
95
+ * Returns a ready-to-copy usage example plus type information for a specific webhook.
96
+ * Pass the dot-path from get_webhooks(): 'slack.messages.message'.
97
+ * Casing is ignored — the path is lowercased before lookup.
98
+ *
99
+ * The `usage` field is a complete code snippet showing how to configure this webhook
100
+ * inside the plugin options, with the response.data type embedded as an inline comment.
101
+ *
102
+ * If the webhook path is not found, returns `availableWebhooks` for self-correction.
103
+ *
104
+ * @example
105
+ * corsair.get_webhook_schema('slack.messages.message')
106
+ * // {
107
+ * // description: 'Fires when a message is posted',
108
+ * // usage: `
109
+ * // slack({
110
+ * // webhookHooks: {
111
+ * // messages: {
112
+ * // message: {
113
+ * // before(ctx, args) {
114
+ * // return { ctx, args };
115
+ * // },
116
+ * // after(ctx, response) {
117
+ * // // response.data:
118
+ * // // { "type": "object", ... }
119
+ * // },
120
+ * // },
121
+ * // },
122
+ * // },
123
+ * // })`,
124
+ * // payload: { ... },
125
+ * // response: { ... },
126
+ * // }
127
+ */
128
+ get_webhook_schema(webhook: string): WebhookSchemaResult;
51
129
  };
52
130
  /**
53
- * Creates the get_methods / get_schema functions bound to a specific plugin list.
54
- * Used by both single-tenant and multi-tenant client builders.
131
+ * Creates the get_methods / get_schema / get_webhooks / get_webhook_schema functions
132
+ * bound to a specific plugin list. Used by both single-tenant and multi-tenant client builders.
55
133
  */
56
134
  export declare function buildInspectMethods(plugins: readonly CorsairPlugin[]): CorsairInspectMethods;
57
135
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/inspect/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAqB,MAAM,YAAY,CAAC;AAqFnE,MAAM,MAAM,oBAAoB,GAAG;IAClC,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,aAAa,CAAC;IAC7C,4CAA4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gEAAgE;IAChE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yDAAyD;IACzD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IACnC;;;;;;;OAOG;IACH,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC;;;;;;;OAOG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtC;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAAC;CACjD,CAAC;AAmFF;;;GAGG;AACH,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,SAAS,aAAa,EAAE,GAC/B,qBAAqB,CASvB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/inspect/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAqB,MAAM,YAAY,CAAC;AAqFnE,MAAM,MAAM,oBAAoB,GAAG;IAClC,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,aAAa,CAAC;IAC7C,4CAA4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gEAAgE;IAChE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yDAAyD;IACzD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IACjC,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8FAA8F;IAC9F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iGAAiG;IACjG,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IACnC;;;;;;;OAOG;IACH,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC;;;;;;;OAOG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtC;;;;;;;;;;;;;;;OAeG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAAC;IACjD;;;;;;;;;;;OAWG;IACH,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACzC;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,CAAC;CACzD,CAAC;AAkUF;;;GAGG;AACH,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,SAAS,aAAa,EAAE,GAC/B,qBAAqB,CAgBvB"}
@@ -45,8 +45,10 @@ function zodToJsonSchema(schema) {
45
45
  const required = [];
46
46
  for (const [key, val] of Object.entries(shape)) {
47
47
  properties[key] = zodToJsonSchema(val);
48
- const fieldTypeName = val._def.typeName;
49
- if (fieldTypeName !== 'ZodOptional' && fieldTypeName !== 'ZodNullable') {
48
+ const fieldTypeName = val._def
49
+ .typeName;
50
+ if (fieldTypeName !== 'ZodOptional' &&
51
+ fieldTypeName !== 'ZodNullable') {
50
52
  required.push(key);
51
53
  }
52
54
  }
@@ -86,6 +88,108 @@ function walkEndpointTree(tree, pathParts, result) {
86
88
  }
87
89
  }
88
90
  // ─────────────────────────────────────────────────────────────────────────────
91
+ // Webhook Tree Helpers
92
+ // ─────────────────────────────────────────────────────────────────────────────
93
+ /**
94
+ * Returns true if a value is a webhook leaf (has both `match` and `handler` functions).
95
+ * Mirrors the isWebhook guard in core/webhooks/bind.ts without importing it.
96
+ */
97
+ function isWebhookLeaf(value) {
98
+ return (value !== null &&
99
+ typeof value === 'object' &&
100
+ 'match' in value &&
101
+ 'handler' in value &&
102
+ typeof value.match === 'function' &&
103
+ typeof value.handler === 'function');
104
+ }
105
+ /**
106
+ * Recursively collects all webhook leaf paths in a webhook tree.
107
+ * Preserves original key casing so paths can be used as object keys in webhookHooks config.
108
+ */
109
+ function walkWebhookTree(tree, pathParts, result) {
110
+ for (const [key, value] of Object.entries(tree)) {
111
+ const current = [...pathParts, key];
112
+ if (isWebhookLeaf(value)) {
113
+ result.push(current.join('.'));
114
+ }
115
+ else if (value !== null && typeof value === 'object') {
116
+ walkWebhookTree(value, current, result);
117
+ }
118
+ }
119
+ }
120
+ /**
121
+ * Walks a webhook tree with a normalised (lowercased) path and returns the original-cased
122
+ * key segments when found. Used to reconstruct the exact key names for usage examples.
123
+ * Returns null if the path does not resolve to a webhook leaf.
124
+ */
125
+ function resolveWebhookPathOriginalCase(tree, normalizedParts) {
126
+ if (normalizedParts.length === 0)
127
+ return null;
128
+ const [head, ...tail] = normalizedParts;
129
+ const entry = Object.entries(tree).find(([k]) => k.toLowerCase() === head);
130
+ if (!entry)
131
+ return null;
132
+ const [originalKey, value] = entry;
133
+ if (tail.length === 0) {
134
+ return isWebhookLeaf(value) ? [originalKey] : null;
135
+ }
136
+ if (value !== null && typeof value === 'object' && !isWebhookLeaf(value)) {
137
+ const rest = resolveWebhookPathOriginalCase(value, tail);
138
+ if (rest !== null)
139
+ return [originalKey, ...rest];
140
+ }
141
+ return null;
142
+ }
143
+ // ─────────────────────────────────────────────────────────────────────────────
144
+ // Webhook Usage Example Builder
145
+ // ─────────────────────────────────────────────────────────────────────────────
146
+ /**
147
+ * Builds a ready-to-copy code snippet showing how to configure a specific webhook.
148
+ * The response.data type (if available) is embedded as an inline comment inside the after hook.
149
+ *
150
+ * @param pluginId Plugin ID (e.g. 'slack')
151
+ * @param pathParts Original-cased path segments (e.g. ['messages', 'message'])
152
+ * @param responseSchema JSON Schema for response.data, or null if no schema registered
153
+ */
154
+ function buildWebhookUsageExample(pluginId, pathParts, responseSchema) {
155
+ const lines = [];
156
+ lines.push(`${pluginId}({`);
157
+ lines.push(` webhookHooks: {`);
158
+ // Open nested key blocks
159
+ for (let i = 0; i < pathParts.length; i++) {
160
+ const indent = ' '.repeat(i + 2);
161
+ lines.push(`${indent}${pathParts[i]}: {`);
162
+ }
163
+ // Hook body — indented one level deeper than the innermost key
164
+ const hookIndent = ' '.repeat(pathParts.length + 2);
165
+ const bodyIndent = hookIndent + ' ';
166
+ lines.push(`${hookIndent}before(ctx, args) {`);
167
+ lines.push(`${bodyIndent}return { ctx, args };`);
168
+ lines.push(`${hookIndent}},`);
169
+ lines.push(`${hookIndent}after(ctx, response) {`);
170
+ if (responseSchema !== null) {
171
+ const json = JSON.stringify(responseSchema, null, 2);
172
+ const commentLines = json
173
+ .split('\n')
174
+ .map((l, i) => i === 0
175
+ ? `${bodyIndent}// response.data: ${l}`
176
+ : `${bodyIndent}// ${l}`);
177
+ lines.push(...commentLines);
178
+ }
179
+ else {
180
+ lines.push(`${bodyIndent}// response.data: unknown (register webhookSchemas to see the type)`);
181
+ }
182
+ lines.push(`${hookIndent}},`);
183
+ // Close nested key blocks (innermost first)
184
+ for (let i = pathParts.length - 1; i >= 0; i--) {
185
+ const indent = ' '.repeat(i + 2);
186
+ lines.push(`${indent}},`);
187
+ }
188
+ lines.push(` },`);
189
+ lines.push(`})`);
190
+ return lines.join('\n');
191
+ }
192
+ // ─────────────────────────────────────────────────────────────────────────────
89
193
  // Core Functions
90
194
  // ─────────────────────────────────────────────────────────────────────────────
91
195
  function getMethods(plugins, plugin) {
@@ -95,7 +199,7 @@ function getMethods(plugins, plugin) {
95
199
  return [];
96
200
  const paths = [];
97
201
  walkEndpointTree(found.endpoints, [], paths);
98
- return paths.map((path) => `${found.id}.${path}`);
202
+ return paths.map((path) => `${found.id}.api.${path.toLowerCase()}`);
99
203
  }
100
204
  const result = {};
101
205
  for (const p of plugins) {
@@ -103,19 +207,58 @@ function getMethods(plugins, plugin) {
103
207
  continue;
104
208
  const paths = [];
105
209
  walkEndpointTree(p.endpoints, [], paths);
210
+ result[p.id] = paths.map((path) => `${p.id}.api.${path.toLowerCase()}`);
211
+ }
212
+ return result;
213
+ }
214
+ function getWebhooks(plugins, plugin) {
215
+ if (plugin !== undefined) {
216
+ const found = plugins.find((p) => p.id === plugin);
217
+ if (!found?.webhooks)
218
+ return [];
219
+ const paths = [];
220
+ walkWebhookTree(found.webhooks, [], paths);
221
+ return paths.map((path) => `${found.id}.${path}`);
222
+ }
223
+ const result = {};
224
+ for (const p of plugins) {
225
+ if (!p.webhooks)
226
+ continue;
227
+ const paths = [];
228
+ walkWebhookTree(p.webhooks, [], paths);
106
229
  result[p.id] = paths.map((path) => `${p.id}.${path}`);
107
230
  }
108
231
  return result;
109
232
  }
233
+ /**
234
+ * Case-insensitive lookup in an endpoint record (endpointMeta or endpointSchemas).
235
+ * Keys in those records use camelCase (e.g. 'channels.getHistory') while the
236
+ * normalised path coming from the agent is fully lowercased.
237
+ */
238
+ function findEndpointCaseInsensitive(record, lowercasedPath) {
239
+ if (!record)
240
+ return undefined;
241
+ for (const [key, value] of Object.entries(record)) {
242
+ if (key.toLowerCase() === lowercasedPath)
243
+ return value;
244
+ }
245
+ return undefined;
246
+ }
110
247
  function getSchema(plugins, method) {
111
- const dotIndex = method.indexOf('.');
248
+ // Normalise casing so the agent can call with any capitalisation
249
+ const normalised = method.toLowerCase();
250
+ const dotIndex = normalised.indexOf('.');
112
251
  if (dotIndex !== -1) {
113
- const pluginId = method.slice(0, dotIndex);
114
- const endpointPath = method.slice(dotIndex + 1);
252
+ const pluginId = normalised.slice(0, dotIndex);
253
+ let remainder = normalised.slice(dotIndex + 1);
254
+ // Strip the optional 'api.' segment (present in the new full-form paths)
255
+ if (remainder.startsWith('api.')) {
256
+ remainder = remainder.slice(4);
257
+ }
115
258
  const plugin = plugins.find((p) => p.id === pluginId);
116
259
  if (plugin) {
117
- const meta = plugin.endpointMeta?.[endpointPath];
118
- const schemas = plugin.endpointSchemas?.[endpointPath];
260
+ const meta = findEndpointCaseInsensitive(plugin.endpointMeta, remainder);
261
+ const schemas = findEndpointCaseInsensitive(plugin.endpointSchemas, remainder);
119
262
  // Valid entry — meta or schemas found
120
263
  if (meta || schemas) {
121
264
  return {
@@ -131,12 +274,46 @@ function getSchema(plugins, method) {
131
274
  // Invalid or unknown method — return all available methods so the caller can self-correct
132
275
  return { availableMethods: getMethods(plugins) };
133
276
  }
277
+ function getWebhookSchema(plugins, webhook) {
278
+ // Normalise casing so the agent can call with any capitalisation
279
+ const normalised = webhook.toLowerCase();
280
+ const dotIndex = normalised.indexOf('.');
281
+ if (dotIndex !== -1) {
282
+ const pluginId = normalised.slice(0, dotIndex);
283
+ const webhookPathNormalised = normalised.slice(dotIndex + 1);
284
+ const plugin = plugins.find((p) => p.id === pluginId);
285
+ if (plugin?.webhooks) {
286
+ // Resolve original-cased key segments from the webhook tree
287
+ const originalPathParts = resolveWebhookPathOriginalCase(plugin.webhooks, webhookPathNormalised.split('.'));
288
+ if (originalPathParts !== null) {
289
+ // Look up optional schemas using original-cased path (case-insensitive fallback)
290
+ const originalPath = originalPathParts.join('.');
291
+ const schemas = findEndpointCaseInsensitive(plugin.webhookSchemas, originalPath.toLowerCase());
292
+ const responseSchema = schemas?.response
293
+ ? zodToJsonSchema(schemas.response)
294
+ : null;
295
+ return {
296
+ description: schemas?.description,
297
+ payload: schemas?.payload
298
+ ? zodToJsonSchema(schemas.payload)
299
+ : undefined,
300
+ response: responseSchema ?? undefined,
301
+ usage: buildWebhookUsageExample(pluginId, originalPathParts, responseSchema),
302
+ };
303
+ }
304
+ }
305
+ }
306
+ // Invalid or unknown webhook — return all available webhooks so the caller can self-correct
307
+ return {
308
+ availableWebhooks: getWebhooks(plugins),
309
+ };
310
+ }
134
311
  // ─────────────────────────────────────────────────────────────────────────────
135
312
  // Factory — binds inspect methods to a fixed plugin list
136
313
  // ─────────────────────────────────────────────────────────────────────────────
137
314
  /**
138
- * Creates the get_methods / get_schema functions bound to a specific plugin list.
139
- * Used by both single-tenant and multi-tenant client builders.
315
+ * Creates the get_methods / get_schema / get_webhooks / get_webhook_schema functions
316
+ * bound to a specific plugin list. Used by both single-tenant and multi-tenant client builders.
140
317
  */
141
318
  export function buildInspectMethods(plugins) {
142
319
  return {
@@ -146,5 +323,11 @@ export function buildInspectMethods(plugins) {
146
323
  get_schema(method) {
147
324
  return getSchema(plugins, method);
148
325
  },
326
+ get_webhooks(plugin) {
327
+ return getWebhooks(plugins, plugin);
328
+ },
329
+ get_webhook_schema(webhook) {
330
+ return getWebhookSchema(plugins, webhook);
331
+ },
149
332
  };
150
333
  }
@@ -6,7 +6,7 @@ import type { ExtractAuthType, InferPluginEntities } from '../client';
6
6
  import type { AllProviders, AuthTypes } from '../constants';
7
7
  import type { BindEndpoints, BoundEndpointTree, CorsairContext, CorsairEndpoint, EndpointPathsOf, EndpointTree } from '../endpoints';
8
8
  import type { CorsairErrorHandler } from '../errors';
9
- import type { CorsairWebhook, CorsairWebhookHandler, CorsairWebhookMatcher, WebhookRequest, WebhookResponse, WebhookTree } from '../webhooks';
9
+ import type { CorsairWebhook, CorsairWebhookHandler, CorsairWebhookMatcher, WebhookPathsOf, WebhookRequest, WebhookResponse, WebhookTree } from '../webhooks';
10
10
  /**
11
11
  * Risk level classification for plugin endpoints.
12
12
  * The permission mode maps each risk level to a policy (allow / deny / require_approval).
@@ -56,9 +56,43 @@ export type EndpointMetaEntry = {
56
56
  * @template T - The plugin's endpoint tree (e.g. `typeof githubEndpointsNested`)
57
57
  */
58
58
  export type PluginEndpointMeta<T extends EndpointTree> = Partial<Record<EndpointPathsOf<T>, EndpointMetaEntry>>;
59
+ /**
60
+ * A **required** map from dot-notation endpoint paths to their metadata entries.
61
+ * Every endpoint in the tree must have a corresponding entry — omitting any path
62
+ * is a compile-time error. Use this for `satisfies` annotations on `endpointMeta`
63
+ * objects where exhaustiveness is enforced.
64
+ *
65
+ * @template T - The plugin's endpoint tree (e.g. `typeof githubEndpointsNested`)
66
+ */
67
+ export type RequiredPluginEndpointMeta<T extends EndpointTree> = Record<EndpointPathsOf<T>, EndpointMetaEntry>;
68
+ /**
69
+ * A **required** map from dot-notation endpoint paths to their `{ input, output }` schema
70
+ * pairs. Every endpoint in the tree must have a corresponding entry — omitting any path
71
+ * is a compile-time error. Use this for `satisfies` annotations on `endpointSchemas`
72
+ * objects where exhaustiveness is enforced.
73
+ *
74
+ * @template T - The plugin's endpoint tree (e.g. `typeof githubEndpointsNested`)
75
+ */
76
+ export type RequiredPluginEndpointSchemas<T extends EndpointTree> = Record<EndpointPathsOf<T>, {
77
+ input?: ZodTypeAny;
78
+ output?: ZodTypeAny;
79
+ }>;
80
+ /**
81
+ * A **required** map from dot-notation webhook paths to their `{ description, payload, response }`
82
+ * schema entries. Every webhook in the tree must have a corresponding entry — omitting any path
83
+ * is a compile-time error. Use this for `satisfies` annotations on `webhookSchemas` objects
84
+ * where exhaustiveness is enforced.
85
+ *
86
+ * @template T - The plugin's webhook tree (e.g. `typeof slackWebhooksNested`)
87
+ */
88
+ export type RequiredPluginWebhookSchemas<T extends WebhookTree> = Record<WebhookPathsOf<T>, {
89
+ description?: string;
90
+ payload?: ZodTypeAny;
91
+ response?: ZodTypeAny;
92
+ }>;
59
93
  /**
60
94
  * Permission configuration for a plugin, passed as `permissions` in the plugin options.
61
- * Controls what the AI agent is allowed to do via the MCP server.
95
+ * Controls what the AI agent is allowed to do.
62
96
  *
63
97
  * The `overrides` object uses dot-notation keys derived from the plugin's endpoint tree at
64
98
  * the TypeScript level — only valid paths autocomplete and compile. Passing a nonexistent
@@ -327,6 +361,27 @@ export type CorsairPlugin<Id extends AllProviders = AllProviders, Schema extends
327
361
  input?: ZodTypeAny;
328
362
  output?: ZodTypeAny;
329
363
  }>;
364
+ /**
365
+ * Zod schemas for each webhook, keyed by dot-notation path.
366
+ * Used by get_webhook_schema() to expose structured type information to the agent.
367
+ * Keys must match the dot-paths of the webhook tree (e.g. 'messages.message').
368
+ *
369
+ * - `payload` — the type of `request.payload` in the before hook
370
+ * - `response` — the type of `response.data` in the after hook
371
+ * - `description` — optional human-readable description of what triggers this webhook
372
+ *
373
+ * @example
374
+ * ```ts
375
+ * webhookSchemas: {
376
+ * 'messages.message': { description: 'Fires when a message is posted', payload: MessageEventSchema, response: z.object({ ... }) },
377
+ * }
378
+ * ```
379
+ */
380
+ webhookSchemas?: Record<string, {
381
+ description?: string;
382
+ payload?: ZodTypeAny;
383
+ response?: ZodTypeAny;
384
+ }>;
330
385
  };
331
386
  /**
332
387
  * The full context type for a plugin, combining base context with typed services and options.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/plugins/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/plugins/index.ts"],"names":[],"mappings":"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"}
@@ -134,5 +134,28 @@ export type BoundWebhookTree = {
134
134
  export type BindWebhooks<T extends WebhookTree> = {
135
135
  [K in keyof T]: T[K] extends CorsairWebhook<any, infer P, infer R> ? BoundWebhook<P, R> : T[K] extends WebhookTree ? BindWebhooks<T[K]> : never;
136
136
  };
137
+ /**
138
+ * Derives all dot-notation webhook paths from a WebhookTree as a string literal union.
139
+ * Used to provide compile-time validation for webhook schema registry keys.
140
+ * Passing an invalid path to any config that accepts WebhookPathsOf<T> is a type error.
141
+ *
142
+ * Design note: Same recursive constraint relaxation as EndpointPathsOf — see that type
143
+ * for a full explanation of why we use `extends object` rather than `extends WebhookTree`
144
+ * on the recursive call. We also check `{ match: any; handler: any }` before `object`
145
+ * because webhook leaves are objects themselves.
146
+ *
147
+ * @example
148
+ * Given: `{ messages: { message: { match: fn, handler: fn } }, channels: { created: { match: fn, handler: fn } } }`
149
+ * Result: `'messages.message' | 'channels.created'`
150
+ *
151
+ * @template T - The webhook tree to extract paths from (unconstrained to allow recursion through as-const types)
152
+ * @template Prefix - Internal accumulator for the current path prefix (do not supply manually)
153
+ */
154
+ export type WebhookPathsOf<T, Prefix extends string = ''> = {
155
+ [K in keyof T & string]: T[K] extends {
156
+ match: any;
157
+ handler: any;
158
+ } ? Prefix extends '' ? K : `${Prefix}.${K}` : T[K] extends object ? WebhookPathsOf<T[K], Prefix extends '' ? K : `${Prefix}.${K}`> : never;
159
+ }[keyof T & string];
137
160
  export {};
138
161
  //# sourceMappingURL=index.d.ts.map