@elliotding/ai-agent-mcp 0.1.26 → 0.1.28

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 (186) hide show
  1. package/README.md +330 -30
  2. package/dist/api/cached-client.d.ts +48 -0
  3. package/dist/api/cached-client.d.ts.map +1 -0
  4. package/dist/api/cached-client.js +126 -0
  5. package/dist/api/cached-client.js.map +1 -0
  6. package/dist/api/client.d.ts +295 -0
  7. package/dist/api/client.d.ts.map +1 -0
  8. package/dist/api/client.js +385 -0
  9. package/dist/api/client.js.map +1 -0
  10. package/dist/auth/index.d.ts +8 -0
  11. package/dist/auth/index.d.ts.map +1 -0
  12. package/dist/auth/index.js +26 -0
  13. package/dist/auth/index.js.map +1 -0
  14. package/dist/auth/middleware.d.ts +36 -0
  15. package/dist/auth/middleware.d.ts.map +1 -0
  16. package/dist/auth/middleware.js +194 -0
  17. package/dist/auth/middleware.js.map +1 -0
  18. package/dist/auth/permissions.d.ts +60 -0
  19. package/dist/auth/permissions.d.ts.map +1 -0
  20. package/dist/auth/permissions.js +262 -0
  21. package/dist/auth/permissions.js.map +1 -0
  22. package/dist/auth/token-validator.d.ts +52 -0
  23. package/dist/auth/token-validator.d.ts.map +1 -0
  24. package/dist/auth/token-validator.js +215 -0
  25. package/dist/auth/token-validator.js.map +1 -0
  26. package/dist/cache/cache-manager.d.ts +49 -0
  27. package/dist/cache/cache-manager.d.ts.map +1 -0
  28. package/dist/cache/cache-manager.js +191 -0
  29. package/dist/cache/cache-manager.js.map +1 -0
  30. package/dist/cache/index.d.ts +6 -0
  31. package/dist/cache/index.d.ts.map +1 -0
  32. package/dist/cache/index.js +12 -0
  33. package/dist/cache/index.js.map +1 -0
  34. package/dist/cache/redis-client.d.ts +45 -0
  35. package/dist/cache/redis-client.d.ts.map +1 -0
  36. package/dist/cache/redis-client.js +210 -0
  37. package/dist/cache/redis-client.js.map +1 -0
  38. package/dist/config/constants.d.ts +28 -0
  39. package/dist/config/constants.d.ts.map +1 -0
  40. package/dist/config/constants.js +31 -0
  41. package/dist/config/constants.js.map +1 -0
  42. package/dist/config/index.d.ts +71 -0
  43. package/dist/config/index.d.ts.map +1 -0
  44. package/dist/config/index.js +190 -0
  45. package/dist/config/index.js.map +1 -0
  46. package/dist/filesystem/manager.d.ts +45 -0
  47. package/dist/filesystem/manager.d.ts.map +1 -0
  48. package/dist/filesystem/manager.js +246 -0
  49. package/dist/filesystem/manager.js.map +1 -0
  50. package/dist/git/multi-source-manager.d.ts +105 -0
  51. package/dist/git/multi-source-manager.d.ts.map +1 -0
  52. package/dist/git/multi-source-manager.js +677 -0
  53. package/dist/git/multi-source-manager.js.map +1 -0
  54. package/dist/git/operations.d.ts +27 -0
  55. package/dist/git/operations.d.ts.map +1 -0
  56. package/dist/git/operations.js +83 -0
  57. package/dist/git/operations.js.map +1 -0
  58. package/dist/index.d.ts +6 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +122 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/monitoring/health.d.ts +35 -0
  63. package/dist/monitoring/health.d.ts.map +1 -0
  64. package/dist/monitoring/health.js +105 -0
  65. package/dist/monitoring/health.js.map +1 -0
  66. package/dist/prompts/cache.d.ts +69 -0
  67. package/dist/prompts/cache.d.ts.map +1 -0
  68. package/dist/prompts/cache.js +163 -0
  69. package/dist/prompts/cache.js.map +1 -0
  70. package/dist/prompts/generator.d.ts +49 -0
  71. package/dist/prompts/generator.d.ts.map +1 -0
  72. package/dist/prompts/generator.js +160 -0
  73. package/dist/prompts/generator.js.map +1 -0
  74. package/dist/prompts/index.d.ts +13 -0
  75. package/dist/prompts/index.d.ts.map +1 -0
  76. package/dist/prompts/index.js +24 -0
  77. package/dist/prompts/index.js.map +1 -0
  78. package/dist/prompts/manager.d.ts +213 -0
  79. package/dist/prompts/manager.d.ts.map +1 -0
  80. package/dist/prompts/manager.js +587 -0
  81. package/dist/prompts/manager.js.map +1 -0
  82. package/dist/resources/index.d.ts +6 -0
  83. package/dist/resources/index.d.ts.map +1 -0
  84. package/dist/resources/index.js +10 -0
  85. package/dist/resources/index.js.map +1 -0
  86. package/dist/resources/loader.d.ts +88 -0
  87. package/dist/resources/loader.d.ts.map +1 -0
  88. package/dist/resources/loader.js +492 -0
  89. package/dist/resources/loader.js.map +1 -0
  90. package/dist/server/http.d.ts +57 -0
  91. package/dist/server/http.d.ts.map +1 -0
  92. package/dist/server/http.js +435 -0
  93. package/dist/server/http.js.map +1 -0
  94. package/dist/server.d.ts +13 -0
  95. package/dist/server.d.ts.map +1 -0
  96. package/dist/server.js +201 -0
  97. package/dist/server.js.map +1 -0
  98. package/dist/session/manager.d.ts +91 -0
  99. package/dist/session/manager.d.ts.map +1 -0
  100. package/dist/session/manager.js +251 -0
  101. package/dist/session/manager.js.map +1 -0
  102. package/dist/telemetry/index.d.ts +3 -0
  103. package/dist/telemetry/index.d.ts.map +1 -0
  104. package/dist/telemetry/index.js +7 -0
  105. package/dist/telemetry/index.js.map +1 -0
  106. package/dist/telemetry/manager.d.ts +151 -0
  107. package/dist/telemetry/manager.d.ts.map +1 -0
  108. package/dist/telemetry/manager.js +367 -0
  109. package/dist/telemetry/manager.js.map +1 -0
  110. package/dist/tools/index.d.ts +13 -0
  111. package/dist/tools/index.d.ts.map +1 -0
  112. package/dist/tools/index.js +29 -0
  113. package/dist/tools/index.js.map +1 -0
  114. package/dist/tools/manage-subscription.d.ts +47 -0
  115. package/dist/tools/manage-subscription.d.ts.map +1 -0
  116. package/dist/tools/manage-subscription.js +317 -0
  117. package/dist/tools/manage-subscription.js.map +1 -0
  118. package/dist/tools/registry.d.ts +40 -0
  119. package/dist/tools/registry.d.ts.map +1 -0
  120. package/dist/tools/registry.js +85 -0
  121. package/dist/tools/registry.js.map +1 -0
  122. package/dist/tools/resolve-prompt-content.d.ts +35 -0
  123. package/dist/tools/resolve-prompt-content.d.ts.map +1 -0
  124. package/dist/tools/resolve-prompt-content.js +99 -0
  125. package/dist/tools/resolve-prompt-content.js.map +1 -0
  126. package/dist/tools/search-resources.d.ts +35 -0
  127. package/dist/tools/search-resources.d.ts.map +1 -0
  128. package/dist/tools/search-resources.js +159 -0
  129. package/dist/tools/search-resources.js.map +1 -0
  130. package/dist/tools/sync-resources.d.ts +54 -0
  131. package/dist/tools/sync-resources.d.ts.map +1 -0
  132. package/dist/tools/sync-resources.js +793 -0
  133. package/dist/tools/sync-resources.js.map +1 -0
  134. package/dist/tools/track-usage.d.ts +63 -0
  135. package/dist/tools/track-usage.d.ts.map +1 -0
  136. package/dist/tools/track-usage.js +90 -0
  137. package/dist/tools/track-usage.js.map +1 -0
  138. package/dist/tools/uninstall-resource.d.ts +30 -0
  139. package/dist/tools/uninstall-resource.d.ts.map +1 -0
  140. package/dist/tools/uninstall-resource.js +186 -0
  141. package/dist/tools/uninstall-resource.js.map +1 -0
  142. package/dist/tools/upload-resource.d.ts +81 -0
  143. package/dist/tools/upload-resource.d.ts.map +1 -0
  144. package/dist/tools/upload-resource.js +393 -0
  145. package/dist/tools/upload-resource.js.map +1 -0
  146. package/dist/transport/sse.d.ts +29 -0
  147. package/dist/transport/sse.d.ts.map +1 -0
  148. package/dist/transport/sse.js +271 -0
  149. package/dist/transport/sse.js.map +1 -0
  150. package/dist/types/errors.d.ts +60 -0
  151. package/dist/types/errors.d.ts.map +1 -0
  152. package/dist/types/errors.js +112 -0
  153. package/dist/types/errors.js.map +1 -0
  154. package/dist/types/index.d.ts +7 -0
  155. package/dist/types/index.d.ts.map +1 -0
  156. package/dist/types/index.js +23 -0
  157. package/dist/types/index.js.map +1 -0
  158. package/dist/types/mcp.d.ts +50 -0
  159. package/dist/types/mcp.d.ts.map +1 -0
  160. package/dist/types/mcp.js +6 -0
  161. package/dist/types/mcp.js.map +1 -0
  162. package/dist/types/resources.d.ts +109 -0
  163. package/dist/types/resources.d.ts.map +1 -0
  164. package/dist/types/resources.js +7 -0
  165. package/dist/types/resources.js.map +1 -0
  166. package/dist/types/tools.d.ts +274 -0
  167. package/dist/types/tools.d.ts.map +1 -0
  168. package/dist/types/tools.js +6 -0
  169. package/dist/types/tools.js.map +1 -0
  170. package/dist/utils/cursor-paths.d.ts +84 -0
  171. package/dist/utils/cursor-paths.d.ts.map +1 -0
  172. package/dist/utils/cursor-paths.js +166 -0
  173. package/dist/utils/cursor-paths.js.map +1 -0
  174. package/dist/utils/log-cleaner.d.ts +18 -0
  175. package/dist/utils/log-cleaner.d.ts.map +1 -0
  176. package/dist/utils/log-cleaner.js +112 -0
  177. package/dist/utils/log-cleaner.js.map +1 -0
  178. package/dist/utils/logger.d.ts +59 -0
  179. package/dist/utils/logger.d.ts.map +1 -0
  180. package/dist/utils/logger.js +292 -0
  181. package/dist/utils/logger.js.map +1 -0
  182. package/dist/utils/validation.d.ts +58 -0
  183. package/dist/utils/validation.d.ts.map +1 -0
  184. package/dist/utils/validation.js +214 -0
  185. package/dist/utils/validation.js.map +1 -0
  186. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,+CAA6E;AAC7E,sCAAmC;AACnC,4CAAqE;AACrE,4CAAiD;AAEjD,MAAM,SAAS;IACL,MAAM,CAAgB;IACb,UAAU,GAAG,CAAC,CAAC;IACf,UAAU,GAAG,IAAI,CAAC,CAAC,WAAW;IAE/C;QACE,IAAI,CAAC,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,eAAM,CAAC,GAAG,CAAC,UAAU;YAC9B,OAAO,EAAE,eAAM,CAAC,GAAG,CAAC,OAAO;YAC3B,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,YAAY,EAAE,wBAAwB;aACvC;SACF,CAAC,CAAC;QAEH,sDAAsD;QACtD,0EAA0E;QAC1E,0EAA0E;QAC1E,wEAAwE;QACxE,8CAA8C;QAC9C,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAClC,CAAC,aAAa,EAAE,EAAE;YAChB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;gBACzC,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CACP,kCAAkC;oBAClC,mGAAmG,CACpG,CACF,CAAC;YACJ,CAAC;YAED,2BAA2B;YAC3B,eAAM,CAAC,KAAK,CACV;gBACE,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE;gBAC3C,GAAG,EAAE,aAAa,CAAC,GAAG;gBACtB,MAAM,EAAE,aAAa,CAAC,MAAM;gBAC5B,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC3F,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,OAAiC,CAAC;aAC/E,EACD,gBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,aAAa,CAAC,GAAG,EAAE,CAC3E,CAAC;YAEF,6CAA6C;YAC5C,aAAqB,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE9C,OAAO,aAAa,CAAC;QACvB,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,eAAM,CAAC,KAAK,CAAC;gBACX,IAAI,EAAE,+BAA+B;gBACrC,KAAK,EAAE,KAAK,CAAC,OAAO;aACrB,EAAE,+BAA+B,CAAC,CAAC;YACpC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CACF,CAAC;QAEF,4CAA4C;QAC5C,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CACnC,CAAC,QAAQ,EAAE,EAAE;YACX,MAAM,SAAS,GAAI,QAAQ,CAAC,MAAc,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,SAAS,CAAC;YAClE,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC;YAE7C,4BAA4B;YAC5B,IAAA,sBAAa,EACX,MAAM,EACN,GAAG,EACH,QAAQ,CAAC,MAAM,EACf,QAAQ,EACR,QAAQ,CAAC,MAAM,CAAC,IAAI,EACpB,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,OAAiC,CAC3C,CAAC;YAEF,OAAO,QAAQ,CAAC;QAClB,CAAC,EACD,CAAC,KAAiB,EAAE,EAAE;YACpB,MAAM,SAAS,GAAI,KAAK,CAAC,MAAc,EAAE,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;YAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,SAAS,CAAC;YAChE,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC;YAE3C,yBAAyB;YACzB,IAAA,oBAAW,EACT,MAAM,EACN,GAAG,EACH,KAAK,EACL,KAAK,CAAC,MAAM,EAAE,IAAI,EAClB,UAAU,CACX,CAAC;YAEF,oCAAoC;YACpC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,eAAM,CAAC,KAAK,CACV;oBACE,IAAI,EAAE,oBAAoB;oBAC1B,MAAM;oBACN,GAAG;oBACH,MAAM,EAAE,UAAU;oBAClB,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU;oBACrC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;oBACtG,QAAQ;iBACT,EACD,uBAAuB,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CACvD,CAAC;YACJ,CAAC;YAED,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,UAAU,CAAC,KAAyB,EAAE,KAA0B;QAC9D,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,IAAI,EAAE,CAAC;QAC/B,OAAO;YACL,GAAG,KAAK;YACR,OAAO,EAAE;gBACP,GAAG,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;gBACzB,aAAa,EAAE,UAAU,KAAK,EAAE;aACjC;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,OAA+B;QACrD,MAAM,SAAS,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QACjC,IAAI,SAAS,CAAC,eAAe,CAAC,IAAI,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC;YAC7D,MAAM,GAAG,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC;YAC3E,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjC,SAAS,CAAC,GAAG,CAAC,GAAG,UAAU,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC;YAC9F,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAC5B,SAA2B,EAC3B,MAAc,EACd,GAAW,EACX,UAAU,GAAG,CAAC;QAEd,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,cAAc,GAClB,KAAK,YAAY,kBAAU;gBAC3B,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;YAEnF,IAAI,cAAc,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;gBACnD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gBACxD,eAAM,CAAC,IAAI,CACT;oBACE,MAAM;oBACN,GAAG;oBACH,UAAU,EAAE,UAAU,GAAG,CAAC;oBAC1B,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,KAAK;iBACN,EACD,mCAAmC,KAAK,OAAO,CAChD,CAAC;gBAEF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC3D,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;YACvE,CAAC;YAED,oCAAoC;YACpC,IAAI,KAAK,YAAY,kBAAU,EAAE,CAAC;gBAChC,MAAM,IAAA,uBAAc,EAClB,MAAM,EACN,GAAG,EACH,KAAK,EACL,KAAK,CAAC,QAAQ,EAAE,MAAM,EACtB,UAAU,CACX,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,MAA2B;QACnD,OAAO,IAAI,CAAC,gBAAgB,CAC1B,KAAK,IAAI,EAAE;YACT,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;YACvD,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC,EACD,KAAK,EACL,GAAG,CACJ,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAI,GAAW,EAAE,IAAc,EAAE,MAA2B;QACpE,OAAO,IAAI,CAAC,gBAAgB,CAC1B,KAAK,IAAI,EAAE;YACT,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAI,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAC9D,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC,EACD,MAAM,EACN,GAAG,CACJ,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,IAAc,EAAE,MAA2B;QACnE,OAAO,IAAI,CAAC,gBAAgB,CAC1B,KAAK,IAAI,EAAE;YACT,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAI,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAC7D,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC,EACD,KAAK,EACL,GAAG,CACJ,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAI,GAAW,EAAE,MAA2B;QACtD,OAAO,IAAI,CAAC,gBAAgB,CAC1B,KAAK,IAAI,EAAE;YACT,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;YAC1D,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC,EACD,QAAQ,EACR,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,6CAA6C;IAC7C,oCAAoC;IACpC,6CAA6C;IAE7C;;;;;;OAMG;IACH,KAAK,CAAC,gBAAgB,CACpB,MAIC,EACD,SAAkB;QAiBlB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAmB5B,kCAAkC,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAE/E,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CACb,WAAqB,EACrB,QAAQ,GAAG,IAAI,EACf,KAAmC,EACnC,SAAkB;QAUlB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAa9B,sCAAsC,EACtC,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,EACzD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAC3B,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAW,CAAC,WAA8B,EAAE,SAAkB;QAClE,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAI/B,yCAAyC,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QAE3G,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CACnB,MAOC,EACD,SAAkB;QAwBlB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CA2B5B,2BAA2B,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAExE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;YAC1B,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI;YACxB,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS;YAClC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzC,GAAG,CAAC;gBACJ,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;gBACnB,aAAa,EAAE,CAAC,CAAC,aAAa,IAAI,KAAK;aACxC,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,gBAAgB,CACpB,UAAkB,EAClB,SAAkB;QASlB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAW5B,+BAA+B,UAAU,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5E,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CACrB,UAAkB,EAClB,SAAkB;QAoBlB,OAAO,IAAI,CAAC,GAAG,CAAC,sBAAsB,UAAU,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAClF,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,mBAAmB,CACvB,MAMC,EACD,SAAkB;QAOlB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAIzB,2BAA2B,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,sBAAsB,CAC1B,QAAgB,EAChB,aAAqB,EACrB,SAAkB;QAQlB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAW1B,6BAA6B,EAC7B,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,EACtD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAC3B,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,eAAe,CACnB,OAuBC,EACD,SAAiB;QAEjB,MAAM,IAAI,CAAC,IAAI,CACb,8BAA8B,EAC9B,OAAO,EACP,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAC3B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,MAMpB;QAKC,OAAO,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,QAAgB,EAAE,IAAY;QAIjD,OAAO,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE;YAC9C,SAAS,EAAE,QAAQ;YACnB,IAAI;SACL,CAAC,CAAC;IACL,CAAC;CACF;AAED,4BAA4B;AACf,QAAA,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Authentication Module
3
+ * Exports all authentication and authorization utilities
4
+ */
5
+ export * from './token-validator';
6
+ export * from './permissions';
7
+ export * from './middleware';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,mBAAmB,CAAC;AAGlC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /**
3
+ * Authentication Module
4
+ * Exports all authentication and authorization utilities
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ // Token validation via CSP API (primary method)
22
+ __exportStar(require("./token-validator"), exports);
23
+ // Permissions and middleware
24
+ __exportStar(require("./permissions"), exports);
25
+ __exportStar(require("./middleware"), exports);
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,gDAAgD;AAChD,oDAAkC;AAElC,6BAA6B;AAC7B,gDAA8B;AAC9B,+CAA6B"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Authentication and Permission Middlewares
3
+ * Token authentication and permission checking for HTTP endpoints
4
+ */
5
+ import { FastifyRequest, FastifyReply } from 'fastify';
6
+ import { TokenPayload } from './token-validator';
7
+ /**
8
+ * Extended request with user info
9
+ */
10
+ export interface AuthenticatedRequest extends FastifyRequest {
11
+ user?: TokenPayload;
12
+ }
13
+ /**
14
+ * Token Authentication Middleware
15
+ * Verifies token via external REST API
16
+ */
17
+ export declare function tokenAuthMiddleware(request: AuthenticatedRequest, reply: FastifyReply): Promise<void>;
18
+ /**
19
+ * Token Authentication Middleware with Legacy Bearer Token Support
20
+ * Supports both token validation via API and legacy bearer tokens
21
+ */
22
+ export declare function tokenAuthOrLegacyMiddleware(request: AuthenticatedRequest, reply: FastifyReply): Promise<void>;
23
+ /**
24
+ * Permission Check Middleware Factory
25
+ * Creates middleware to check permissions for a specific tool
26
+ */
27
+ export declare function requirePermission(toolName: string): (request: AuthenticatedRequest, reply: FastifyReply) => Promise<void>;
28
+ /**
29
+ * Permission Check for Tool Call
30
+ * Checks permission when tools/call is invoked
31
+ */
32
+ export declare function checkToolCallPermission(toolName: string, user: TokenPayload): {
33
+ allowed: boolean;
34
+ reason?: string;
35
+ };
36
+ //# sourceMappingURL=middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/auth/middleware.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAe,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAI9D;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,oBAAoB,EAC7B,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,CAAC,CAkEf;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,oBAAoB,EAC7B,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,CAAC,CA+Df;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,IAClC,SAAS,oBAAoB,EAAE,OAAO,YAAY,KAAG,OAAO,CAAC,IAAI,CAAC,CA+DjF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,YAAY,GACjB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAEvC"}
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ /**
3
+ * Authentication and Permission Middlewares
4
+ * Token authentication and permission checking for HTTP endpoints
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.tokenAuthMiddleware = tokenAuthMiddleware;
8
+ exports.tokenAuthOrLegacyMiddleware = tokenAuthOrLegacyMiddleware;
9
+ exports.requirePermission = requirePermission;
10
+ exports.checkToolCallPermission = checkToolCallPermission;
11
+ const token_validator_1 = require("./token-validator");
12
+ const permissions_1 = require("./permissions");
13
+ const logger_1 = require("../utils/logger");
14
+ /**
15
+ * Token Authentication Middleware
16
+ * Verifies token via external REST API
17
+ */
18
+ async function tokenAuthMiddleware(request, reply) {
19
+ try {
20
+ // Extract token from Authorization header
21
+ const authHeader = request.headers.authorization;
22
+ if (!authHeader || !authHeader.startsWith('Bearer ')) {
23
+ logger_1.logger.warn({
24
+ type: 'auth',
25
+ operation: 'middleware',
26
+ ip: request.ip,
27
+ url: request.url
28
+ }, 'Missing or invalid Authorization header');
29
+ reply.code(401).send({
30
+ error: 'Unauthorized',
31
+ message: 'Missing or invalid Authorization header. Expected: Bearer <token>',
32
+ });
33
+ return;
34
+ }
35
+ const token = authHeader.substring(7); // Remove 'Bearer ' prefix
36
+ // Verify token via external API
37
+ const payload = await (0, token_validator_1.verifyToken)(token);
38
+ if (!payload) {
39
+ logger_1.logger.warn({
40
+ type: 'auth',
41
+ operation: 'middleware',
42
+ ip: request.ip,
43
+ url: request.url
44
+ }, 'Token validation failed');
45
+ reply.code(401).send({
46
+ error: 'Unauthorized',
47
+ message: 'Invalid or expired token',
48
+ });
49
+ return;
50
+ }
51
+ // Attach user info to request
52
+ request.user = payload;
53
+ logger_1.logger.debug({
54
+ type: 'auth',
55
+ operation: 'middleware',
56
+ userId: payload.userId,
57
+ email: payload.email,
58
+ groups: payload.groups
59
+ }, `Token authentication successful for user ${payload.userId}`);
60
+ }
61
+ catch (error) {
62
+ logger_1.logger.error({
63
+ type: 'auth',
64
+ operation: 'middleware',
65
+ error: error instanceof Error ? error.message : 'Unknown error'
66
+ }, 'Token authentication error');
67
+ reply.code(500).send({
68
+ error: 'Internal Server Error',
69
+ message: 'Authentication failed',
70
+ });
71
+ }
72
+ }
73
+ /**
74
+ * Token Authentication Middleware with Legacy Bearer Token Support
75
+ * Supports both token validation via API and legacy bearer tokens
76
+ */
77
+ async function tokenAuthOrLegacyMiddleware(request, reply) {
78
+ try {
79
+ const authHeader = request.headers.authorization;
80
+ if (!authHeader || !authHeader.startsWith('Bearer ')) {
81
+ logger_1.logger.warn({
82
+ type: 'auth',
83
+ operation: 'middleware_legacy',
84
+ ip: request.ip,
85
+ url: request.url
86
+ }, 'Missing or invalid Authorization header');
87
+ reply.code(401).send({
88
+ error: 'Unauthorized',
89
+ message: 'Missing or invalid Authorization header',
90
+ });
91
+ return;
92
+ }
93
+ const token = authHeader.substring(7);
94
+ // Try to validate via API first
95
+ const payload = await (0, token_validator_1.verifyToken)(token);
96
+ if (payload) {
97
+ // API validation successful
98
+ request.user = payload;
99
+ logger_1.logger.debug({
100
+ type: 'auth',
101
+ operation: 'middleware_legacy',
102
+ userId: payload.userId,
103
+ email: payload.email,
104
+ groups: payload.groups
105
+ }, `Token validated via API for user ${payload.userId}`);
106
+ return;
107
+ }
108
+ // Fallback to legacy bearer token (for backward compatibility)
109
+ logger_1.logger.debug({
110
+ type: 'auth',
111
+ operation: 'middleware_legacy',
112
+ ip: request.ip
113
+ }, 'API validation failed, using legacy bearer token mode');
114
+ // In legacy mode, we don't have user info, so continue without setting request.user
115
+ // The endpoint will handle the legacy token separately
116
+ }
117
+ catch (error) {
118
+ logger_1.logger.error({
119
+ type: 'auth',
120
+ operation: 'middleware_legacy',
121
+ error: error instanceof Error ? error.message : 'Unknown error'
122
+ }, 'Token authentication error');
123
+ reply.code(500).send({
124
+ error: 'Internal Server Error',
125
+ message: 'Authentication failed',
126
+ });
127
+ }
128
+ }
129
+ /**
130
+ * Permission Check Middleware Factory
131
+ * Creates middleware to check permissions for a specific tool
132
+ */
133
+ function requirePermission(toolName) {
134
+ return async (request, reply) => {
135
+ try {
136
+ if (!request.user) {
137
+ logger_1.logger.error({
138
+ type: 'auth',
139
+ operation: 'permission_check',
140
+ url: request.url
141
+ }, 'Permission check called without authentication');
142
+ reply.code(401).send({
143
+ error: 'Unauthorized',
144
+ message: 'Authentication required',
145
+ });
146
+ return;
147
+ }
148
+ // Check permission
149
+ const permissionCheck = (0, permissions_1.checkPermission)(toolName, request.user.groups);
150
+ if (!permissionCheck.allowed) {
151
+ logger_1.logger.warn({
152
+ type: 'auth',
153
+ operation: 'permission_check',
154
+ userId: request.user.userId,
155
+ email: request.user.email,
156
+ groups: request.user.groups,
157
+ toolName,
158
+ reason: permissionCheck.reason,
159
+ }, `Permission denied for user ${request.user.userId} to access tool ${toolName}`);
160
+ reply.code(403).send({
161
+ error: 'Forbidden',
162
+ message: permissionCheck.reason || 'Insufficient permissions',
163
+ });
164
+ return;
165
+ }
166
+ logger_1.logger.debug({
167
+ type: 'auth',
168
+ operation: 'permission_check',
169
+ userId: request.user.userId,
170
+ toolName
171
+ }, `Permission granted for user ${request.user.userId} to access tool ${toolName}`);
172
+ }
173
+ catch (error) {
174
+ logger_1.logger.error({
175
+ type: 'auth',
176
+ operation: 'permission_check',
177
+ toolName,
178
+ error: error instanceof Error ? error.message : 'Unknown error'
179
+ }, 'Permission check error');
180
+ reply.code(500).send({
181
+ error: 'Internal Server Error',
182
+ message: 'Permission check failed',
183
+ });
184
+ }
185
+ };
186
+ }
187
+ /**
188
+ * Permission Check for Tool Call
189
+ * Checks permission when tools/call is invoked
190
+ */
191
+ function checkToolCallPermission(toolName, user) {
192
+ return (0, permissions_1.checkPermission)(toolName, user.groups);
193
+ }
194
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/auth/middleware.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Permission Control System
3
+ * Group-based access control for MCP tools
4
+ * Groups are obtained from CSP API /user/permissions (e.g., "zNet", "Client-Public")
5
+ */
6
+ /**
7
+ * Known groups from CSP
8
+ * Users may belong to one or more groups
9
+ */
10
+ export declare const KnownGroups: {
11
+ readonly ZNET: "zNet";
12
+ readonly CLIENT_PUBLIC: "Client-Public";
13
+ readonly ADMIN: "admin";
14
+ };
15
+ /**
16
+ * Permission level for operations
17
+ */
18
+ export declare enum PermissionLevel {
19
+ READ = "read",
20
+ WRITE = "write",
21
+ ADMIN = "admin"
22
+ }
23
+ /**
24
+ * Tool permission configuration
25
+ */
26
+ export interface ToolPermission {
27
+ tool: string;
28
+ allowedGroups: string[];
29
+ requiredPermission: PermissionLevel;
30
+ }
31
+ /**
32
+ * Initialize permission system
33
+ */
34
+ export declare function initializePermissions(customRules?: ToolPermission[]): void;
35
+ /**
36
+ * Check if a user has permission to access a tool
37
+ * @param toolName - The name of the tool to check
38
+ * @param userGroups - The groups the user belongs to (from CSP API)
39
+ */
40
+ export declare function checkPermission(toolName: string, userGroups: string[]): {
41
+ allowed: boolean;
42
+ reason?: string;
43
+ };
44
+ /**
45
+ * Get permission info for a tool
46
+ */
47
+ export declare function getToolPermission(toolName: string): ToolPermission | undefined;
48
+ /**
49
+ * Get all permission rules
50
+ */
51
+ export declare function getAllPermissions(): ToolPermission[];
52
+ /**
53
+ * Update permission rule for a tool
54
+ */
55
+ export declare function updatePermission(permission: ToolPermission): void;
56
+ /**
57
+ * Remove permission rule for a tool
58
+ */
59
+ export declare function removePermission(toolName: string): void;
60
+ //# sourceMappingURL=permissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/auth/permissions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;CAId,CAAC;AAEX;;GAEG;AACH,oBAAY,eAAe;IACzB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,kBAAkB,EAAE,eAAe,CAAC;CACrC;AAkDD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,CAAC,EAAE,cAAc,EAAE,GAAG,IAAI,CAqB1E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAAE,GACnB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAwKvC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAE9E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,EAAE,CAEpD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,CAMjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAGvD"}
@@ -0,0 +1,262 @@
1
+ "use strict";
2
+ /**
3
+ * Permission Control System
4
+ * Group-based access control for MCP tools
5
+ * Groups are obtained from CSP API /user/permissions (e.g., "zNet", "Client-Public")
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.PermissionLevel = exports.KnownGroups = void 0;
9
+ exports.initializePermissions = initializePermissions;
10
+ exports.checkPermission = checkPermission;
11
+ exports.getToolPermission = getToolPermission;
12
+ exports.getAllPermissions = getAllPermissions;
13
+ exports.updatePermission = updatePermission;
14
+ exports.removePermission = removePermission;
15
+ const logger_1 = require("../utils/logger");
16
+ /**
17
+ * Known groups from CSP
18
+ * Users may belong to one or more groups
19
+ */
20
+ exports.KnownGroups = {
21
+ ZNET: 'zNet', // zNet team - full access
22
+ CLIENT_PUBLIC: 'Client-Public', // Client-Public team - standard access
23
+ ADMIN: 'admin', // Admin group - full access (if exists)
24
+ };
25
+ /**
26
+ * Permission level for operations
27
+ */
28
+ var PermissionLevel;
29
+ (function (PermissionLevel) {
30
+ PermissionLevel["READ"] = "read";
31
+ PermissionLevel["WRITE"] = "write";
32
+ PermissionLevel["ADMIN"] = "admin";
33
+ })(PermissionLevel || (exports.PermissionLevel = PermissionLevel = {}));
34
+ /**
35
+ * Default permission rules for each tool
36
+ * All authenticated users (with valid groups) can use these tools
37
+ */
38
+ const defaultPermissions = [
39
+ // sync_resources - available to all authenticated users
40
+ {
41
+ tool: 'sync_resources',
42
+ allowedGroups: ['*'], // * means all authenticated users
43
+ requiredPermission: PermissionLevel.WRITE,
44
+ },
45
+ // manage_subscription - available to all authenticated users
46
+ {
47
+ tool: 'manage_subscription',
48
+ allowedGroups: ['*'],
49
+ requiredPermission: PermissionLevel.WRITE,
50
+ },
51
+ // search_resources - read-only, all authenticated users
52
+ {
53
+ tool: 'search_resources',
54
+ allowedGroups: ['*'],
55
+ requiredPermission: PermissionLevel.READ,
56
+ },
57
+ // upload_resource - requires write permission
58
+ {
59
+ tool: 'upload_resource',
60
+ allowedGroups: ['*'],
61
+ requiredPermission: PermissionLevel.WRITE,
62
+ },
63
+ // uninstall_resource - requires write permission
64
+ {
65
+ tool: 'uninstall_resource',
66
+ allowedGroups: ['*'],
67
+ requiredPermission: PermissionLevel.WRITE,
68
+ },
69
+ // track_usage - internal telemetry tool, always allowed for all authenticated users
70
+ {
71
+ tool: 'track_usage',
72
+ allowedGroups: ['*'],
73
+ requiredPermission: PermissionLevel.WRITE,
74
+ },
75
+ ];
76
+ /**
77
+ * Custom permission rules (can be overridden via config)
78
+ */
79
+ let permissionRules = new Map();
80
+ /**
81
+ * Initialize permission system
82
+ */
83
+ function initializePermissions(customRules) {
84
+ // Load default permissions
85
+ for (const perm of defaultPermissions) {
86
+ permissionRules.set(perm.tool, perm);
87
+ }
88
+ // Override with custom rules if provided
89
+ if (customRules && customRules.length > 0) {
90
+ logger_1.logger.info({ count: customRules.length }, 'Loading custom permission rules');
91
+ for (const perm of customRules) {
92
+ permissionRules.set(perm.tool, perm);
93
+ }
94
+ }
95
+ logger_1.logger.info({ toolCount: permissionRules.size }, 'Permission system initialized');
96
+ }
97
+ /**
98
+ * Check if a user has permission to access a tool
99
+ * @param toolName - The name of the tool to check
100
+ * @param userGroups - The groups the user belongs to (from CSP API)
101
+ */
102
+ function checkPermission(toolName, userGroups) {
103
+ const checkStartTime = Date.now();
104
+ logger_1.logger.debug({
105
+ type: 'permission_check',
106
+ toolName,
107
+ userGroups,
108
+ timestamp: new Date().toISOString()
109
+ }, `Checking permission for tool: ${toolName}`);
110
+ // Check if tool has permission rules
111
+ const permission = permissionRules.get(toolName);
112
+ if (!permission) {
113
+ // If no permission rule defined, deny by default
114
+ logger_1.logger.warn({
115
+ type: 'permission_check',
116
+ toolName,
117
+ userGroups,
118
+ result: 'denied',
119
+ reason: 'no_rule',
120
+ timestamp: new Date().toISOString()
121
+ }, 'No permission rule found for tool, denying access');
122
+ (0, logger_1.logAuthAttempt)('permission_check', false, {
123
+ toolName,
124
+ userGroups,
125
+ reason: 'no_rule',
126
+ duration: Date.now() - checkStartTime
127
+ });
128
+ return {
129
+ allowed: false,
130
+ reason: `Tool '${toolName}' has no permission rule defined`,
131
+ };
132
+ }
133
+ // If no groups provided, deny access
134
+ if (!userGroups || userGroups.length === 0) {
135
+ logger_1.logger.warn({
136
+ type: 'permission_check',
137
+ toolName,
138
+ result: 'denied',
139
+ reason: 'no_groups',
140
+ timestamp: new Date().toISOString()
141
+ }, 'Permission denied: user has no groups');
142
+ (0, logger_1.logAuthAttempt)('permission_check', false, {
143
+ toolName,
144
+ reason: 'no_groups',
145
+ duration: Date.now() - checkStartTime
146
+ });
147
+ return {
148
+ allowed: false,
149
+ reason: `User must belong to at least one group to access tools`,
150
+ };
151
+ }
152
+ // Admin group bypasses all checks
153
+ if (userGroups.includes(exports.KnownGroups.ADMIN) || userGroups.includes('admin')) {
154
+ logger_1.logger.info({
155
+ type: 'permission_check',
156
+ toolName,
157
+ userGroups,
158
+ result: 'granted',
159
+ reason: 'admin_bypass',
160
+ duration: Date.now() - checkStartTime,
161
+ timestamp: new Date().toISOString()
162
+ }, 'Admin group access granted');
163
+ (0, logger_1.logAuthAttempt)('permission_check', true, {
164
+ toolName,
165
+ userGroups,
166
+ reason: 'admin',
167
+ duration: Date.now() - checkStartTime
168
+ });
169
+ return { allowed: true };
170
+ }
171
+ // Check if tool allows all authenticated users
172
+ if (permission.allowedGroups.includes('*')) {
173
+ logger_1.logger.info({
174
+ type: 'permission_check',
175
+ toolName,
176
+ userGroups,
177
+ allowedGroups: permission.allowedGroups,
178
+ result: 'granted',
179
+ reason: 'wildcard',
180
+ duration: Date.now() - checkStartTime,
181
+ timestamp: new Date().toISOString()
182
+ }, 'Permission granted (tool allows all authenticated users)');
183
+ (0, logger_1.logAuthAttempt)('permission_check', true, {
184
+ toolName,
185
+ userGroups,
186
+ reason: 'wildcard',
187
+ duration: Date.now() - checkStartTime
188
+ });
189
+ return { allowed: true };
190
+ }
191
+ // Check if user belongs to any of the allowed groups
192
+ const hasAllowedGroup = userGroups.some((group) => permission.allowedGroups.includes(group));
193
+ if (!hasAllowedGroup) {
194
+ logger_1.logger.warn({
195
+ type: 'permission_check',
196
+ toolName,
197
+ userGroups,
198
+ allowedGroups: permission.allowedGroups,
199
+ result: 'denied',
200
+ reason: 'group_mismatch',
201
+ duration: Date.now() - checkStartTime,
202
+ timestamp: new Date().toISOString()
203
+ }, 'Permission denied: user not in allowed groups');
204
+ (0, logger_1.logAuthAttempt)('permission_check', false, {
205
+ toolName,
206
+ userGroups,
207
+ allowedGroups: permission.allowedGroups,
208
+ reason: 'group_mismatch',
209
+ duration: Date.now() - checkStartTime
210
+ });
211
+ return {
212
+ allowed: false,
213
+ reason: `Tool '${toolName}' requires membership in one of: ${permission.allowedGroups.join(', ')}`,
214
+ };
215
+ }
216
+ logger_1.logger.info({
217
+ type: 'permission_check',
218
+ toolName,
219
+ userGroups,
220
+ allowedGroups: permission.allowedGroups,
221
+ result: 'granted',
222
+ reason: 'group_match',
223
+ duration: Date.now() - checkStartTime,
224
+ timestamp: new Date().toISOString()
225
+ }, 'Permission granted (user in allowed groups)');
226
+ (0, logger_1.logAuthAttempt)('permission_check', true, {
227
+ toolName,
228
+ userGroups,
229
+ matchedGroups: userGroups.filter(g => permission.allowedGroups.includes(g)),
230
+ duration: Date.now() - checkStartTime
231
+ });
232
+ return { allowed: true };
233
+ }
234
+ /**
235
+ * Get permission info for a tool
236
+ */
237
+ function getToolPermission(toolName) {
238
+ return permissionRules.get(toolName);
239
+ }
240
+ /**
241
+ * Get all permission rules
242
+ */
243
+ function getAllPermissions() {
244
+ return Array.from(permissionRules.values());
245
+ }
246
+ /**
247
+ * Update permission rule for a tool
248
+ */
249
+ function updatePermission(permission) {
250
+ permissionRules.set(permission.tool, permission);
251
+ logger_1.logger.info({ tool: permission.tool, permission }, 'Permission rule updated');
252
+ }
253
+ /**
254
+ * Remove permission rule for a tool
255
+ */
256
+ function removePermission(toolName) {
257
+ permissionRules.delete(toolName);
258
+ logger_1.logger.info({ toolName }, 'Permission rule removed');
259
+ }
260
+ // Initialize with default permissions
261
+ initializePermissions();
262
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/auth/permissions.ts"],"names":[],"mappings":"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"}