palaryn 0.1.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 (607) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +716 -0
  3. package/dist/sdk/typescript/src/client.d.ts +71 -0
  4. package/dist/sdk/typescript/src/client.d.ts.map +1 -0
  5. package/dist/sdk/typescript/src/client.js +176 -0
  6. package/dist/sdk/typescript/src/client.js.map +1 -0
  7. package/dist/sdk/typescript/src/errors.d.ts +50 -0
  8. package/dist/sdk/typescript/src/errors.d.ts.map +1 -0
  9. package/dist/sdk/typescript/src/errors.js +103 -0
  10. package/dist/sdk/typescript/src/errors.js.map +1 -0
  11. package/dist/sdk/typescript/src/index.d.ts +4 -0
  12. package/dist/sdk/typescript/src/index.d.ts.map +1 -0
  13. package/dist/sdk/typescript/src/index.js +15 -0
  14. package/dist/sdk/typescript/src/index.js.map +1 -0
  15. package/dist/sdk/typescript/src/types.d.ts +101 -0
  16. package/dist/sdk/typescript/src/types.d.ts.map +1 -0
  17. package/dist/sdk/typescript/src/types.js +6 -0
  18. package/dist/sdk/typescript/src/types.js.map +1 -0
  19. package/dist/src/admin/index.d.ts +2 -0
  20. package/dist/src/admin/index.d.ts.map +1 -0
  21. package/dist/src/admin/index.js +6 -0
  22. package/dist/src/admin/index.js.map +1 -0
  23. package/dist/src/admin/routes.d.ts +5 -0
  24. package/dist/src/admin/routes.d.ts.map +1 -0
  25. package/dist/src/admin/routes.js +471 -0
  26. package/dist/src/admin/routes.js.map +1 -0
  27. package/dist/src/admin/templates.d.ts +51 -0
  28. package/dist/src/admin/templates.d.ts.map +1 -0
  29. package/dist/src/admin/templates.js +500 -0
  30. package/dist/src/admin/templates.js.map +1 -0
  31. package/dist/src/anomaly/detector.d.ts +141 -0
  32. package/dist/src/anomaly/detector.d.ts.map +1 -0
  33. package/dist/src/anomaly/detector.js +554 -0
  34. package/dist/src/anomaly/detector.js.map +1 -0
  35. package/dist/src/anomaly/index.d.ts +2 -0
  36. package/dist/src/anomaly/index.d.ts.map +1 -0
  37. package/dist/src/anomaly/index.js +7 -0
  38. package/dist/src/anomaly/index.js.map +1 -0
  39. package/dist/src/approval/manager.d.ts +147 -0
  40. package/dist/src/approval/manager.d.ts.map +1 -0
  41. package/dist/src/approval/manager.js +511 -0
  42. package/dist/src/approval/manager.js.map +1 -0
  43. package/dist/src/approval/webhook.d.ts +36 -0
  44. package/dist/src/approval/webhook.d.ts.map +1 -0
  45. package/dist/src/approval/webhook.js +135 -0
  46. package/dist/src/approval/webhook.js.map +1 -0
  47. package/dist/src/audit/logger.d.ts +70 -0
  48. package/dist/src/audit/logger.d.ts.map +1 -0
  49. package/dist/src/audit/logger.js +440 -0
  50. package/dist/src/audit/logger.js.map +1 -0
  51. package/dist/src/auth/index.d.ts +6 -0
  52. package/dist/src/auth/index.d.ts.map +1 -0
  53. package/dist/src/auth/index.js +22 -0
  54. package/dist/src/auth/index.js.map +1 -0
  55. package/dist/src/auth/password.d.ts +3 -0
  56. package/dist/src/auth/password.d.ts.map +1 -0
  57. package/dist/src/auth/password.js +25 -0
  58. package/dist/src/auth/password.js.map +1 -0
  59. package/dist/src/auth/pkce.d.ts +13 -0
  60. package/dist/src/auth/pkce.d.ts.map +1 -0
  61. package/dist/src/auth/pkce.js +58 -0
  62. package/dist/src/auth/pkce.js.map +1 -0
  63. package/dist/src/auth/providers.d.ts +28 -0
  64. package/dist/src/auth/providers.d.ts.map +1 -0
  65. package/dist/src/auth/providers.js +198 -0
  66. package/dist/src/auth/providers.js.map +1 -0
  67. package/dist/src/auth/routes.d.ts +14 -0
  68. package/dist/src/auth/routes.d.ts.map +1 -0
  69. package/dist/src/auth/routes.js +431 -0
  70. package/dist/src/auth/routes.js.map +1 -0
  71. package/dist/src/auth/session.d.ts +24 -0
  72. package/dist/src/auth/session.d.ts.map +1 -0
  73. package/dist/src/auth/session.js +105 -0
  74. package/dist/src/auth/session.js.map +1 -0
  75. package/dist/src/billing/index.d.ts +7 -0
  76. package/dist/src/billing/index.d.ts.map +1 -0
  77. package/dist/src/billing/index.js +14 -0
  78. package/dist/src/billing/index.js.map +1 -0
  79. package/dist/src/billing/plan-enforcer.d.ts +44 -0
  80. package/dist/src/billing/plan-enforcer.d.ts.map +1 -0
  81. package/dist/src/billing/plan-enforcer.js +110 -0
  82. package/dist/src/billing/plan-enforcer.js.map +1 -0
  83. package/dist/src/billing/routes.d.ts +15 -0
  84. package/dist/src/billing/routes.d.ts.map +1 -0
  85. package/dist/src/billing/routes.js +193 -0
  86. package/dist/src/billing/routes.js.map +1 -0
  87. package/dist/src/billing/stripe-client.d.ts +14 -0
  88. package/dist/src/billing/stripe-client.d.ts.map +1 -0
  89. package/dist/src/billing/stripe-client.js +51 -0
  90. package/dist/src/billing/stripe-client.js.map +1 -0
  91. package/dist/src/billing/webhook-handler.d.ts +19 -0
  92. package/dist/src/billing/webhook-handler.d.ts.map +1 -0
  93. package/dist/src/billing/webhook-handler.js +169 -0
  94. package/dist/src/billing/webhook-handler.js.map +1 -0
  95. package/dist/src/billing/webhook-routes.d.ts +5 -0
  96. package/dist/src/billing/webhook-routes.d.ts.map +1 -0
  97. package/dist/src/billing/webhook-routes.js +30 -0
  98. package/dist/src/billing/webhook-routes.js.map +1 -0
  99. package/dist/src/budget/manager.d.ts +95 -0
  100. package/dist/src/budget/manager.d.ts.map +1 -0
  101. package/dist/src/budget/manager.js +547 -0
  102. package/dist/src/budget/manager.js.map +1 -0
  103. package/dist/src/budget/usage-extractor.d.ts +38 -0
  104. package/dist/src/budget/usage-extractor.d.ts.map +1 -0
  105. package/dist/src/budget/usage-extractor.js +165 -0
  106. package/dist/src/budget/usage-extractor.js.map +1 -0
  107. package/dist/src/cli.d.ts +3 -0
  108. package/dist/src/cli.d.ts.map +1 -0
  109. package/dist/src/cli.js +115 -0
  110. package/dist/src/cli.js.map +1 -0
  111. package/dist/src/config/defaults.d.ts +3 -0
  112. package/dist/src/config/defaults.d.ts.map +1 -0
  113. package/dist/src/config/defaults.js +243 -0
  114. package/dist/src/config/defaults.js.map +1 -0
  115. package/dist/src/config/validate.d.ts +15 -0
  116. package/dist/src/config/validate.d.ts.map +1 -0
  117. package/dist/src/config/validate.js +105 -0
  118. package/dist/src/config/validate.js.map +1 -0
  119. package/dist/src/dlp/composite-scanner.d.ts +47 -0
  120. package/dist/src/dlp/composite-scanner.d.ts.map +1 -0
  121. package/dist/src/dlp/composite-scanner.js +186 -0
  122. package/dist/src/dlp/composite-scanner.js.map +1 -0
  123. package/dist/src/dlp/index.d.ts +10 -0
  124. package/dist/src/dlp/index.d.ts.map +1 -0
  125. package/dist/src/dlp/index.js +26 -0
  126. package/dist/src/dlp/index.js.map +1 -0
  127. package/dist/src/dlp/interfaces.d.ts +33 -0
  128. package/dist/src/dlp/interfaces.d.ts.map +1 -0
  129. package/dist/src/dlp/interfaces.js +3 -0
  130. package/dist/src/dlp/interfaces.js.map +1 -0
  131. package/dist/src/dlp/patterns.d.ts +9 -0
  132. package/dist/src/dlp/patterns.d.ts.map +1 -0
  133. package/dist/src/dlp/patterns.js +25 -0
  134. package/dist/src/dlp/patterns.js.map +1 -0
  135. package/dist/src/dlp/prompt-injection-backend.d.ts +68 -0
  136. package/dist/src/dlp/prompt-injection-backend.d.ts.map +1 -0
  137. package/dist/src/dlp/prompt-injection-backend.js +148 -0
  138. package/dist/src/dlp/prompt-injection-backend.js.map +1 -0
  139. package/dist/src/dlp/prompt-injection-patterns.d.ts +32 -0
  140. package/dist/src/dlp/prompt-injection-patterns.d.ts.map +1 -0
  141. package/dist/src/dlp/prompt-injection-patterns.js +290 -0
  142. package/dist/src/dlp/prompt-injection-patterns.js.map +1 -0
  143. package/dist/src/dlp/regex-backend.d.ts +32 -0
  144. package/dist/src/dlp/regex-backend.d.ts.map +1 -0
  145. package/dist/src/dlp/regex-backend.js +153 -0
  146. package/dist/src/dlp/regex-backend.js.map +1 -0
  147. package/dist/src/dlp/scanner.d.ts +122 -0
  148. package/dist/src/dlp/scanner.d.ts.map +1 -0
  149. package/dist/src/dlp/scanner.js +444 -0
  150. package/dist/src/dlp/scanner.js.map +1 -0
  151. package/dist/src/dlp/text-normalizer.d.ts +41 -0
  152. package/dist/src/dlp/text-normalizer.d.ts.map +1 -0
  153. package/dist/src/dlp/text-normalizer.js +203 -0
  154. package/dist/src/dlp/text-normalizer.js.map +1 -0
  155. package/dist/src/dlp/trufflehog-backend.d.ts +64 -0
  156. package/dist/src/dlp/trufflehog-backend.d.ts.map +1 -0
  157. package/dist/src/dlp/trufflehog-backend.js +151 -0
  158. package/dist/src/dlp/trufflehog-backend.js.map +1 -0
  159. package/dist/src/executor/http-executor.d.ts +25 -0
  160. package/dist/src/executor/http-executor.d.ts.map +1 -0
  161. package/dist/src/executor/http-executor.js +333 -0
  162. package/dist/src/executor/http-executor.js.map +1 -0
  163. package/dist/src/executor/index.d.ts +6 -0
  164. package/dist/src/executor/index.d.ts.map +1 -0
  165. package/dist/src/executor/index.js +12 -0
  166. package/dist/src/executor/index.js.map +1 -0
  167. package/dist/src/executor/interfaces.d.ts +11 -0
  168. package/dist/src/executor/interfaces.d.ts.map +1 -0
  169. package/dist/src/executor/interfaces.js +3 -0
  170. package/dist/src/executor/interfaces.js.map +1 -0
  171. package/dist/src/executor/noop-executor.d.ts +13 -0
  172. package/dist/src/executor/noop-executor.d.ts.map +1 -0
  173. package/dist/src/executor/noop-executor.js +21 -0
  174. package/dist/src/executor/noop-executor.js.map +1 -0
  175. package/dist/src/executor/registry.d.ts +30 -0
  176. package/dist/src/executor/registry.d.ts.map +1 -0
  177. package/dist/src/executor/registry.js +62 -0
  178. package/dist/src/executor/registry.js.map +1 -0
  179. package/dist/src/executor/slack-executor.d.ts +24 -0
  180. package/dist/src/executor/slack-executor.d.ts.map +1 -0
  181. package/dist/src/executor/slack-executor.js +147 -0
  182. package/dist/src/executor/slack-executor.js.map +1 -0
  183. package/dist/src/index.d.ts +25 -0
  184. package/dist/src/index.d.ts.map +1 -0
  185. package/dist/src/index.js +74 -0
  186. package/dist/src/index.js.map +1 -0
  187. package/dist/src/mcp/auth-verifier.d.ts +23 -0
  188. package/dist/src/mcp/auth-verifier.d.ts.map +1 -0
  189. package/dist/src/mcp/auth-verifier.js +162 -0
  190. package/dist/src/mcp/auth-verifier.js.map +1 -0
  191. package/dist/src/mcp/bridge.d.ts +132 -0
  192. package/dist/src/mcp/bridge.d.ts.map +1 -0
  193. package/dist/src/mcp/bridge.js +734 -0
  194. package/dist/src/mcp/bridge.js.map +1 -0
  195. package/dist/src/mcp/http-transport.d.ts +32 -0
  196. package/dist/src/mcp/http-transport.d.ts.map +1 -0
  197. package/dist/src/mcp/http-transport.js +538 -0
  198. package/dist/src/mcp/http-transport.js.map +1 -0
  199. package/dist/src/mcp/index.d.ts +10 -0
  200. package/dist/src/mcp/index.d.ts.map +1 -0
  201. package/dist/src/mcp/index.js +17 -0
  202. package/dist/src/mcp/index.js.map +1 -0
  203. package/dist/src/mcp/oauth-pages.d.ts +23 -0
  204. package/dist/src/mcp/oauth-pages.d.ts.map +1 -0
  205. package/dist/src/mcp/oauth-pages.js +121 -0
  206. package/dist/src/mcp/oauth-pages.js.map +1 -0
  207. package/dist/src/mcp/oauth-postgres-stores.d.ts +55 -0
  208. package/dist/src/mcp/oauth-postgres-stores.d.ts.map +1 -0
  209. package/dist/src/mcp/oauth-postgres-stores.js +226 -0
  210. package/dist/src/mcp/oauth-postgres-stores.js.map +1 -0
  211. package/dist/src/mcp/oauth-provider.d.ts +95 -0
  212. package/dist/src/mcp/oauth-provider.d.ts.map +1 -0
  213. package/dist/src/mcp/oauth-provider.js +360 -0
  214. package/dist/src/mcp/oauth-provider.js.map +1 -0
  215. package/dist/src/mcp/oauth-stores.d.ts +62 -0
  216. package/dist/src/mcp/oauth-stores.d.ts.map +1 -0
  217. package/dist/src/mcp/oauth-stores.js +154 -0
  218. package/dist/src/mcp/oauth-stores.js.map +1 -0
  219. package/dist/src/mcp/server.d.ts +18 -0
  220. package/dist/src/mcp/server.d.ts.map +1 -0
  221. package/dist/src/mcp/server.js +51 -0
  222. package/dist/src/mcp/server.js.map +1 -0
  223. package/dist/src/metrics/collector.d.ts +106 -0
  224. package/dist/src/metrics/collector.d.ts.map +1 -0
  225. package/dist/src/metrics/collector.js +311 -0
  226. package/dist/src/metrics/collector.js.map +1 -0
  227. package/dist/src/metrics/index.d.ts +2 -0
  228. package/dist/src/metrics/index.d.ts.map +1 -0
  229. package/dist/src/metrics/index.js +6 -0
  230. package/dist/src/metrics/index.js.map +1 -0
  231. package/dist/src/middleware/auth.d.ts +77 -0
  232. package/dist/src/middleware/auth.d.ts.map +1 -0
  233. package/dist/src/middleware/auth.js +720 -0
  234. package/dist/src/middleware/auth.js.map +1 -0
  235. package/dist/src/middleware/session.d.ts +18 -0
  236. package/dist/src/middleware/session.d.ts.map +1 -0
  237. package/dist/src/middleware/session.js +67 -0
  238. package/dist/src/middleware/session.js.map +1 -0
  239. package/dist/src/middleware/validate.d.ts +3 -0
  240. package/dist/src/middleware/validate.d.ts.map +1 -0
  241. package/dist/src/middleware/validate.js +85 -0
  242. package/dist/src/middleware/validate.js.map +1 -0
  243. package/dist/src/policy/engine.d.ts +107 -0
  244. package/dist/src/policy/engine.d.ts.map +1 -0
  245. package/dist/src/policy/engine.js +646 -0
  246. package/dist/src/policy/engine.js.map +1 -0
  247. package/dist/src/policy/index.d.ts +3 -0
  248. package/dist/src/policy/index.d.ts.map +1 -0
  249. package/dist/src/policy/index.js +8 -0
  250. package/dist/src/policy/index.js.map +1 -0
  251. package/dist/src/policy/opa-engine.d.ts +176 -0
  252. package/dist/src/policy/opa-engine.d.ts.map +1 -0
  253. package/dist/src/policy/opa-engine.js +790 -0
  254. package/dist/src/policy/opa-engine.js.map +1 -0
  255. package/dist/src/proxy/forward-proxy.d.ts +30 -0
  256. package/dist/src/proxy/forward-proxy.d.ts.map +1 -0
  257. package/dist/src/proxy/forward-proxy.js +580 -0
  258. package/dist/src/proxy/forward-proxy.js.map +1 -0
  259. package/dist/src/proxy/index.d.ts +2 -0
  260. package/dist/src/proxy/index.d.ts.map +1 -0
  261. package/dist/src/proxy/index.js +8 -0
  262. package/dist/src/proxy/index.js.map +1 -0
  263. package/dist/src/ratelimit/limiter.d.ts +45 -0
  264. package/dist/src/ratelimit/limiter.d.ts.map +1 -0
  265. package/dist/src/ratelimit/limiter.js +158 -0
  266. package/dist/src/ratelimit/limiter.js.map +1 -0
  267. package/dist/src/replay/engine.d.ts +40 -0
  268. package/dist/src/replay/engine.d.ts.map +1 -0
  269. package/dist/src/replay/engine.js +106 -0
  270. package/dist/src/replay/engine.js.map +1 -0
  271. package/dist/src/replay/index.d.ts +2 -0
  272. package/dist/src/replay/index.d.ts.map +1 -0
  273. package/dist/src/replay/index.js +6 -0
  274. package/dist/src/replay/index.js.map +1 -0
  275. package/dist/src/saas/index.d.ts +2 -0
  276. package/dist/src/saas/index.d.ts.map +1 -0
  277. package/dist/src/saas/index.js +18 -0
  278. package/dist/src/saas/index.js.map +1 -0
  279. package/dist/src/saas/routes.d.ts +18 -0
  280. package/dist/src/saas/routes.d.ts.map +1 -0
  281. package/dist/src/saas/routes.js +1566 -0
  282. package/dist/src/saas/routes.js.map +1 -0
  283. package/dist/src/server/app.d.ts +44 -0
  284. package/dist/src/server/app.d.ts.map +1 -0
  285. package/dist/src/server/app.js +854 -0
  286. package/dist/src/server/app.js.map +1 -0
  287. package/dist/src/server/errors.d.ts +32 -0
  288. package/dist/src/server/errors.d.ts.map +1 -0
  289. package/dist/src/server/errors.js +39 -0
  290. package/dist/src/server/errors.js.map +1 -0
  291. package/dist/src/server/gateway.d.ts +165 -0
  292. package/dist/src/server/gateway.d.ts.map +1 -0
  293. package/dist/src/server/gateway.js +964 -0
  294. package/dist/src/server/gateway.js.map +1 -0
  295. package/dist/src/server/index.d.ts +2 -0
  296. package/dist/src/server/index.d.ts.map +1 -0
  297. package/dist/src/server/index.js +295 -0
  298. package/dist/src/server/index.js.map +1 -0
  299. package/dist/src/server/logger.d.ts +33 -0
  300. package/dist/src/server/logger.d.ts.map +1 -0
  301. package/dist/src/server/logger.js +230 -0
  302. package/dist/src/server/logger.js.map +1 -0
  303. package/dist/src/server/stream-proxy.d.ts +32 -0
  304. package/dist/src/server/stream-proxy.d.ts.map +1 -0
  305. package/dist/src/server/stream-proxy.js +184 -0
  306. package/dist/src/server/stream-proxy.js.map +1 -0
  307. package/dist/src/storage/file-persistence.d.ts +48 -0
  308. package/dist/src/storage/file-persistence.d.ts.map +1 -0
  309. package/dist/src/storage/file-persistence.js +280 -0
  310. package/dist/src/storage/file-persistence.js.map +1 -0
  311. package/dist/src/storage/index.d.ts +5 -0
  312. package/dist/src/storage/index.d.ts.map +1 -0
  313. package/dist/src/storage/index.js +21 -0
  314. package/dist/src/storage/index.js.map +1 -0
  315. package/dist/src/storage/interfaces.d.ts +237 -0
  316. package/dist/src/storage/interfaces.d.ts.map +1 -0
  317. package/dist/src/storage/interfaces.js +3 -0
  318. package/dist/src/storage/interfaces.js.map +1 -0
  319. package/dist/src/storage/memory.d.ts +162 -0
  320. package/dist/src/storage/memory.d.ts.map +1 -0
  321. package/dist/src/storage/memory.js +603 -0
  322. package/dist/src/storage/memory.js.map +1 -0
  323. package/dist/src/storage/postgres.d.ts +267 -0
  324. package/dist/src/storage/postgres.d.ts.map +1 -0
  325. package/dist/src/storage/postgres.js +1555 -0
  326. package/dist/src/storage/postgres.js.map +1 -0
  327. package/dist/src/storage/redis.d.ts +202 -0
  328. package/dist/src/storage/redis.d.ts.map +1 -0
  329. package/dist/src/storage/redis.js +629 -0
  330. package/dist/src/storage/redis.js.map +1 -0
  331. package/dist/src/tracing/index.d.ts +2 -0
  332. package/dist/src/tracing/index.d.ts.map +1 -0
  333. package/dist/src/tracing/index.js +6 -0
  334. package/dist/src/tracing/index.js.map +1 -0
  335. package/dist/src/tracing/provider.d.ts +43 -0
  336. package/dist/src/tracing/provider.d.ts.map +1 -0
  337. package/dist/src/tracing/provider.js +74 -0
  338. package/dist/src/tracing/provider.js.map +1 -0
  339. package/dist/src/trust/calculator.d.ts +54 -0
  340. package/dist/src/trust/calculator.d.ts.map +1 -0
  341. package/dist/src/trust/calculator.js +102 -0
  342. package/dist/src/trust/calculator.js.map +1 -0
  343. package/dist/src/trust/index.d.ts +2 -0
  344. package/dist/src/trust/index.d.ts.map +1 -0
  345. package/dist/src/trust/index.js +7 -0
  346. package/dist/src/trust/index.js.map +1 -0
  347. package/dist/src/types/budget.d.ts +30 -0
  348. package/dist/src/types/budget.d.ts.map +1 -0
  349. package/dist/src/types/budget.js +3 -0
  350. package/dist/src/types/budget.js.map +1 -0
  351. package/dist/src/types/config.d.ts +176 -0
  352. package/dist/src/types/config.d.ts.map +1 -0
  353. package/dist/src/types/config.js +3 -0
  354. package/dist/src/types/config.js.map +1 -0
  355. package/dist/src/types/events.d.ts +24 -0
  356. package/dist/src/types/events.d.ts.map +1 -0
  357. package/dist/src/types/events.js +3 -0
  358. package/dist/src/types/events.js.map +1 -0
  359. package/dist/src/types/index.d.ts +8 -0
  360. package/dist/src/types/index.d.ts.map +1 -0
  361. package/dist/src/types/index.js +24 -0
  362. package/dist/src/types/index.js.map +1 -0
  363. package/dist/src/types/policy.d.ts +60 -0
  364. package/dist/src/types/policy.d.ts.map +1 -0
  365. package/dist/src/types/policy.js +3 -0
  366. package/dist/src/types/policy.js.map +1 -0
  367. package/dist/src/types/stripe-config.d.ts +12 -0
  368. package/dist/src/types/stripe-config.d.ts.map +1 -0
  369. package/dist/src/types/stripe-config.js +3 -0
  370. package/dist/src/types/stripe-config.js.map +1 -0
  371. package/dist/src/types/subscription.d.ts +24 -0
  372. package/dist/src/types/subscription.d.ts.map +1 -0
  373. package/dist/src/types/subscription.js +38 -0
  374. package/dist/src/types/subscription.js.map +1 -0
  375. package/dist/src/types/tool-call.d.ts +42 -0
  376. package/dist/src/types/tool-call.d.ts.map +1 -0
  377. package/dist/src/types/tool-call.js +3 -0
  378. package/dist/src/types/tool-call.js.map +1 -0
  379. package/dist/src/types/tool-result.d.ts +58 -0
  380. package/dist/src/types/tool-result.d.ts.map +1 -0
  381. package/dist/src/types/tool-result.js +3 -0
  382. package/dist/src/types/tool-result.js.map +1 -0
  383. package/dist/src/types/user.d.ts +101 -0
  384. package/dist/src/types/user.d.ts.map +1 -0
  385. package/dist/src/types/user.js +6 -0
  386. package/dist/src/types/user.js.map +1 -0
  387. package/dist/tests/integration/api.test.d.ts +2 -0
  388. package/dist/tests/integration/api.test.d.ts.map +1 -0
  389. package/dist/tests/integration/api.test.js +1199 -0
  390. package/dist/tests/integration/api.test.js.map +1 -0
  391. package/dist/tests/integration/proxy.test.d.ts +2 -0
  392. package/dist/tests/integration/proxy.test.d.ts.map +1 -0
  393. package/dist/tests/integration/proxy.test.js +251 -0
  394. package/dist/tests/integration/proxy.test.js.map +1 -0
  395. package/dist/tests/integration/storage.test.d.ts +16 -0
  396. package/dist/tests/integration/storage.test.d.ts.map +1 -0
  397. package/dist/tests/integration/storage.test.js +826 -0
  398. package/dist/tests/integration/storage.test.js.map +1 -0
  399. package/dist/tests/unit/admin.test.d.ts +2 -0
  400. package/dist/tests/unit/admin.test.d.ts.map +1 -0
  401. package/dist/tests/unit/admin.test.js +698 -0
  402. package/dist/tests/unit/admin.test.js.map +1 -0
  403. package/dist/tests/unit/anomaly-detector.test.d.ts +2 -0
  404. package/dist/tests/unit/anomaly-detector.test.d.ts.map +1 -0
  405. package/dist/tests/unit/anomaly-detector.test.js +903 -0
  406. package/dist/tests/unit/anomaly-detector.test.js.map +1 -0
  407. package/dist/tests/unit/approval-manager.test.d.ts +2 -0
  408. package/dist/tests/unit/approval-manager.test.d.ts.map +1 -0
  409. package/dist/tests/unit/approval-manager.test.js +528 -0
  410. package/dist/tests/unit/approval-manager.test.js.map +1 -0
  411. package/dist/tests/unit/approval-webhook.test.d.ts +2 -0
  412. package/dist/tests/unit/approval-webhook.test.d.ts.map +1 -0
  413. package/dist/tests/unit/approval-webhook.test.js +355 -0
  414. package/dist/tests/unit/approval-webhook.test.js.map +1 -0
  415. package/dist/tests/unit/audit-logger.test.d.ts +2 -0
  416. package/dist/tests/unit/audit-logger.test.d.ts.map +1 -0
  417. package/dist/tests/unit/audit-logger.test.js +635 -0
  418. package/dist/tests/unit/audit-logger.test.js.map +1 -0
  419. package/dist/tests/unit/auth-routes.test.d.ts +2 -0
  420. package/dist/tests/unit/auth-routes.test.d.ts.map +1 -0
  421. package/dist/tests/unit/auth-routes.test.js +281 -0
  422. package/dist/tests/unit/auth-routes.test.js.map +1 -0
  423. package/dist/tests/unit/auth.test.d.ts +2 -0
  424. package/dist/tests/unit/auth.test.d.ts.map +1 -0
  425. package/dist/tests/unit/auth.test.js +1382 -0
  426. package/dist/tests/unit/auth.test.js.map +1 -0
  427. package/dist/tests/unit/billing.test.d.ts +2 -0
  428. package/dist/tests/unit/billing.test.d.ts.map +1 -0
  429. package/dist/tests/unit/billing.test.js +579 -0
  430. package/dist/tests/unit/billing.test.js.map +1 -0
  431. package/dist/tests/unit/budget-manager.test.d.ts +2 -0
  432. package/dist/tests/unit/budget-manager.test.d.ts.map +1 -0
  433. package/dist/tests/unit/budget-manager.test.js +778 -0
  434. package/dist/tests/unit/budget-manager.test.js.map +1 -0
  435. package/dist/tests/unit/budget-race.test.d.ts +2 -0
  436. package/dist/tests/unit/budget-race.test.d.ts.map +1 -0
  437. package/dist/tests/unit/budget-race.test.js +58 -0
  438. package/dist/tests/unit/budget-race.test.js.map +1 -0
  439. package/dist/tests/unit/cli.test.d.ts +2 -0
  440. package/dist/tests/unit/cli.test.d.ts.map +1 -0
  441. package/dist/tests/unit/cli.test.js +93 -0
  442. package/dist/tests/unit/cli.test.js.map +1 -0
  443. package/dist/tests/unit/concurrency.test.d.ts +2 -0
  444. package/dist/tests/unit/concurrency.test.d.ts.map +1 -0
  445. package/dist/tests/unit/concurrency.test.js +1270 -0
  446. package/dist/tests/unit/concurrency.test.js.map +1 -0
  447. package/dist/tests/unit/config-validate.test.d.ts +2 -0
  448. package/dist/tests/unit/config-validate.test.d.ts.map +1 -0
  449. package/dist/tests/unit/config-validate.test.js +230 -0
  450. package/dist/tests/unit/config-validate.test.js.map +1 -0
  451. package/dist/tests/unit/defaults.test.d.ts +2 -0
  452. package/dist/tests/unit/defaults.test.d.ts.map +1 -0
  453. package/dist/tests/unit/defaults.test.js +364 -0
  454. package/dist/tests/unit/defaults.test.js.map +1 -0
  455. package/dist/tests/unit/dlp-backends.test.d.ts +2 -0
  456. package/dist/tests/unit/dlp-backends.test.d.ts.map +1 -0
  457. package/dist/tests/unit/dlp-backends.test.js +563 -0
  458. package/dist/tests/unit/dlp-backends.test.js.map +1 -0
  459. package/dist/tests/unit/dlp-scanner.test.d.ts +2 -0
  460. package/dist/tests/unit/dlp-scanner.test.d.ts.map +1 -0
  461. package/dist/tests/unit/dlp-scanner.test.js +739 -0
  462. package/dist/tests/unit/dlp-scanner.test.js.map +1 -0
  463. package/dist/tests/unit/error-responses.test.d.ts +2 -0
  464. package/dist/tests/unit/error-responses.test.d.ts.map +1 -0
  465. package/dist/tests/unit/error-responses.test.js +101 -0
  466. package/dist/tests/unit/error-responses.test.js.map +1 -0
  467. package/dist/tests/unit/executor-registry.test.d.ts +2 -0
  468. package/dist/tests/unit/executor-registry.test.d.ts.map +1 -0
  469. package/dist/tests/unit/executor-registry.test.js +390 -0
  470. package/dist/tests/unit/executor-registry.test.js.map +1 -0
  471. package/dist/tests/unit/forward-proxy.test.d.ts +2 -0
  472. package/dist/tests/unit/forward-proxy.test.d.ts.map +1 -0
  473. package/dist/tests/unit/forward-proxy.test.js +621 -0
  474. package/dist/tests/unit/forward-proxy.test.js.map +1 -0
  475. package/dist/tests/unit/gateway-features.test.d.ts +2 -0
  476. package/dist/tests/unit/gateway-features.test.d.ts.map +1 -0
  477. package/dist/tests/unit/gateway-features.test.js +753 -0
  478. package/dist/tests/unit/gateway-features.test.js.map +1 -0
  479. package/dist/tests/unit/http-executor.test.d.ts +2 -0
  480. package/dist/tests/unit/http-executor.test.d.ts.map +1 -0
  481. package/dist/tests/unit/http-executor.test.js +310 -0
  482. package/dist/tests/unit/http-executor.test.js.map +1 -0
  483. package/dist/tests/unit/mcp-bridge.test.d.ts +2 -0
  484. package/dist/tests/unit/mcp-bridge.test.d.ts.map +1 -0
  485. package/dist/tests/unit/mcp-bridge.test.js +1136 -0
  486. package/dist/tests/unit/mcp-bridge.test.js.map +1 -0
  487. package/dist/tests/unit/mcp-http-transport.test.d.ts +2 -0
  488. package/dist/tests/unit/mcp-http-transport.test.d.ts.map +1 -0
  489. package/dist/tests/unit/mcp-http-transport.test.js +899 -0
  490. package/dist/tests/unit/mcp-http-transport.test.js.map +1 -0
  491. package/dist/tests/unit/mcp-oauth.test.d.ts +2 -0
  492. package/dist/tests/unit/mcp-oauth.test.d.ts.map +1 -0
  493. package/dist/tests/unit/mcp-oauth.test.js +759 -0
  494. package/dist/tests/unit/mcp-oauth.test.js.map +1 -0
  495. package/dist/tests/unit/mcp-server.test.d.ts +15 -0
  496. package/dist/tests/unit/mcp-server.test.d.ts.map +1 -0
  497. package/dist/tests/unit/mcp-server.test.js +158 -0
  498. package/dist/tests/unit/mcp-server.test.js.map +1 -0
  499. package/dist/tests/unit/metrics.test.d.ts +2 -0
  500. package/dist/tests/unit/metrics.test.d.ts.map +1 -0
  501. package/dist/tests/unit/metrics.test.js +208 -0
  502. package/dist/tests/unit/metrics.test.js.map +1 -0
  503. package/dist/tests/unit/oauth.test.d.ts +2 -0
  504. package/dist/tests/unit/oauth.test.d.ts.map +1 -0
  505. package/dist/tests/unit/oauth.test.js +281 -0
  506. package/dist/tests/unit/oauth.test.js.map +1 -0
  507. package/dist/tests/unit/opa-circuit-breaker.test.d.ts +2 -0
  508. package/dist/tests/unit/opa-circuit-breaker.test.d.ts.map +1 -0
  509. package/dist/tests/unit/opa-circuit-breaker.test.js +297 -0
  510. package/dist/tests/unit/opa-circuit-breaker.test.js.map +1 -0
  511. package/dist/tests/unit/opa-engine.test.d.ts +2 -0
  512. package/dist/tests/unit/opa-engine.test.d.ts.map +1 -0
  513. package/dist/tests/unit/opa-engine.test.js +1813 -0
  514. package/dist/tests/unit/opa-engine.test.js.map +1 -0
  515. package/dist/tests/unit/pipeline-timing.test.d.ts +2 -0
  516. package/dist/tests/unit/pipeline-timing.test.d.ts.map +1 -0
  517. package/dist/tests/unit/pipeline-timing.test.js +528 -0
  518. package/dist/tests/unit/pipeline-timing.test.js.map +1 -0
  519. package/dist/tests/unit/policy-engine.test.d.ts +2 -0
  520. package/dist/tests/unit/policy-engine.test.d.ts.map +1 -0
  521. package/dist/tests/unit/policy-engine.test.js +1345 -0
  522. package/dist/tests/unit/policy-engine.test.js.map +1 -0
  523. package/dist/tests/unit/policy-store.test.d.ts +2 -0
  524. package/dist/tests/unit/policy-store.test.d.ts.map +1 -0
  525. package/dist/tests/unit/policy-store.test.js +60 -0
  526. package/dist/tests/unit/policy-store.test.js.map +1 -0
  527. package/dist/tests/unit/postgres-storage.test.d.ts +2 -0
  528. package/dist/tests/unit/postgres-storage.test.d.ts.map +1 -0
  529. package/dist/tests/unit/postgres-storage.test.js +614 -0
  530. package/dist/tests/unit/postgres-storage.test.js.map +1 -0
  531. package/dist/tests/unit/prompt-injection-backend.test.d.ts +2 -0
  532. package/dist/tests/unit/prompt-injection-backend.test.d.ts.map +1 -0
  533. package/dist/tests/unit/prompt-injection-backend.test.js +621 -0
  534. package/dist/tests/unit/prompt-injection-backend.test.js.map +1 -0
  535. package/dist/tests/unit/proxy-hardening.test.d.ts +2 -0
  536. package/dist/tests/unit/proxy-hardening.test.d.ts.map +1 -0
  537. package/dist/tests/unit/proxy-hardening.test.js +166 -0
  538. package/dist/tests/unit/proxy-hardening.test.js.map +1 -0
  539. package/dist/tests/unit/rate-limiter.test.d.ts +2 -0
  540. package/dist/tests/unit/rate-limiter.test.d.ts.map +1 -0
  541. package/dist/tests/unit/rate-limiter.test.js +443 -0
  542. package/dist/tests/unit/rate-limiter.test.js.map +1 -0
  543. package/dist/tests/unit/redis-storage.test.d.ts +2 -0
  544. package/dist/tests/unit/redis-storage.test.d.ts.map +1 -0
  545. package/dist/tests/unit/redis-storage.test.js +766 -0
  546. package/dist/tests/unit/redis-storage.test.js.map +1 -0
  547. package/dist/tests/unit/replay-engine.test.d.ts +2 -0
  548. package/dist/tests/unit/replay-engine.test.d.ts.map +1 -0
  549. package/dist/tests/unit/replay-engine.test.js +371 -0
  550. package/dist/tests/unit/replay-engine.test.js.map +1 -0
  551. package/dist/tests/unit/saas-routes.test.d.ts +2 -0
  552. package/dist/tests/unit/saas-routes.test.d.ts.map +1 -0
  553. package/dist/tests/unit/saas-routes.test.js +1399 -0
  554. package/dist/tests/unit/saas-routes.test.js.map +1 -0
  555. package/dist/tests/unit/session.test.d.ts +2 -0
  556. package/dist/tests/unit/session.test.d.ts.map +1 -0
  557. package/dist/tests/unit/session.test.js +532 -0
  558. package/dist/tests/unit/session.test.js.map +1 -0
  559. package/dist/tests/unit/slack-executor.test.d.ts +2 -0
  560. package/dist/tests/unit/slack-executor.test.d.ts.map +1 -0
  561. package/dist/tests/unit/slack-executor.test.js +209 -0
  562. package/dist/tests/unit/slack-executor.test.js.map +1 -0
  563. package/dist/tests/unit/storage-hardening.test.d.ts +2 -0
  564. package/dist/tests/unit/storage-hardening.test.d.ts.map +1 -0
  565. package/dist/tests/unit/storage-hardening.test.js +165 -0
  566. package/dist/tests/unit/storage-hardening.test.js.map +1 -0
  567. package/dist/tests/unit/storage.test.d.ts +2 -0
  568. package/dist/tests/unit/storage.test.d.ts.map +1 -0
  569. package/dist/tests/unit/storage.test.js +698 -0
  570. package/dist/tests/unit/storage.test.js.map +1 -0
  571. package/dist/tests/unit/text-normalizer.test.d.ts +2 -0
  572. package/dist/tests/unit/text-normalizer.test.d.ts.map +1 -0
  573. package/dist/tests/unit/text-normalizer.test.js +229 -0
  574. package/dist/tests/unit/text-normalizer.test.js.map +1 -0
  575. package/dist/tests/unit/tracing.test.d.ts +2 -0
  576. package/dist/tests/unit/tracing.test.d.ts.map +1 -0
  577. package/dist/tests/unit/tracing.test.js +611 -0
  578. package/dist/tests/unit/tracing.test.js.map +1 -0
  579. package/dist/tests/unit/trust-calculator.test.d.ts +2 -0
  580. package/dist/tests/unit/trust-calculator.test.d.ts.map +1 -0
  581. package/dist/tests/unit/trust-calculator.test.js +497 -0
  582. package/dist/tests/unit/trust-calculator.test.js.map +1 -0
  583. package/dist/tests/unit/ts-sdk.test.d.ts +2 -0
  584. package/dist/tests/unit/ts-sdk.test.d.ts.map +1 -0
  585. package/dist/tests/unit/ts-sdk.test.js +421 -0
  586. package/dist/tests/unit/ts-sdk.test.js.map +1 -0
  587. package/dist/tests/unit/usage-extractor-llm.test.d.ts +2 -0
  588. package/dist/tests/unit/usage-extractor-llm.test.d.ts.map +1 -0
  589. package/dist/tests/unit/usage-extractor-llm.test.js +139 -0
  590. package/dist/tests/unit/usage-extractor-llm.test.js.map +1 -0
  591. package/dist/tests/unit/usage-extractor.test.d.ts +2 -0
  592. package/dist/tests/unit/usage-extractor.test.d.ts.map +1 -0
  593. package/dist/tests/unit/usage-extractor.test.js +271 -0
  594. package/dist/tests/unit/usage-extractor.test.js.map +1 -0
  595. package/dist/tests/unit/user-stores.test.d.ts +2 -0
  596. package/dist/tests/unit/user-stores.test.d.ts.map +1 -0
  597. package/dist/tests/unit/user-stores.test.js +687 -0
  598. package/dist/tests/unit/user-stores.test.js.map +1 -0
  599. package/dist/tests/unit/validate.test.d.ts +2 -0
  600. package/dist/tests/unit/validate.test.d.ts.map +1 -0
  601. package/dist/tests/unit/validate.test.js +545 -0
  602. package/dist/tests/unit/validate.test.js.map +1 -0
  603. package/package.json +86 -0
  604. package/policy-packs/README.md +42 -0
  605. package/policy-packs/default.yaml +46 -0
  606. package/policy-packs/dev_fast.yaml +54 -0
  607. package/policy-packs/prod_strict.yaml +83 -0
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SlackExecutor = void 0;
4
+ const web_api_1 = require("@slack/web-api");
5
+ /**
6
+ * Slack executor using the @slack/web-api WebClient.
7
+ * Handles tool calls with tool name `slack.*` (e.g., slack.post_message).
8
+ */
9
+ class SlackExecutor {
10
+ constructor(token) {
11
+ this.client = new web_api_1.WebClient(token);
12
+ }
13
+ async execute(toolCall) {
14
+ const action = this.resolveAction(toolCall);
15
+ switch (action) {
16
+ case 'post_message':
17
+ return this.postMessage(toolCall);
18
+ case 'update_message':
19
+ return this.updateMessage(toolCall);
20
+ case 'add_reaction':
21
+ return this.addReaction(toolCall);
22
+ case 'list_channels':
23
+ return this.listChannels(toolCall);
24
+ case 'channel_history':
25
+ return this.channelHistory(toolCall);
26
+ case 'upload_file':
27
+ return this.uploadFile(toolCall);
28
+ default:
29
+ throw new Error(`Unsupported Slack action: ${action}`);
30
+ }
31
+ }
32
+ /**
33
+ * Resolve the Slack action from either `args.action` or the tool name suffix.
34
+ * e.g., tool name "slack.post_message" yields action "post_message".
35
+ */
36
+ resolveAction(toolCall) {
37
+ if (toolCall.args.action && typeof toolCall.args.action === 'string') {
38
+ return toolCall.args.action;
39
+ }
40
+ const toolName = toolCall.tool.name;
41
+ const dotIndex = toolName.indexOf('.');
42
+ if (dotIndex !== -1) {
43
+ return toolName.substring(dotIndex + 1);
44
+ }
45
+ throw new Error(`Unsupported Slack action: ${toolName}`);
46
+ }
47
+ // Post a message to a channel
48
+ async postMessage(toolCall) {
49
+ const { channel, text, blocks } = toolCall.args;
50
+ if (!channel || typeof channel !== 'string') {
51
+ throw new Error('Missing or invalid "channel" argument for slack.post_message');
52
+ }
53
+ if (!text || typeof text !== 'string') {
54
+ throw new Error('Missing or invalid "text" argument for slack.post_message');
55
+ }
56
+ const result = await this.client.chat.postMessage({
57
+ channel,
58
+ text,
59
+ ...(blocks ? { blocks: blocks } : {}),
60
+ });
61
+ return { http_status: 200, body: result, headers: {} };
62
+ }
63
+ // Update an existing message
64
+ async updateMessage(toolCall) {
65
+ const { channel, ts, text, blocks } = toolCall.args;
66
+ if (!channel || typeof channel !== 'string') {
67
+ throw new Error('Missing or invalid "channel" argument for slack.update_message');
68
+ }
69
+ if (!ts || typeof ts !== 'string') {
70
+ throw new Error('Missing or invalid "ts" argument for slack.update_message');
71
+ }
72
+ if (!text || typeof text !== 'string') {
73
+ throw new Error('Missing or invalid "text" argument for slack.update_message');
74
+ }
75
+ const result = await this.client.chat.update({
76
+ channel,
77
+ ts,
78
+ text,
79
+ ...(blocks ? { blocks: blocks } : {}),
80
+ });
81
+ return { http_status: 200, body: result, headers: {} };
82
+ }
83
+ // Add a reaction to a message
84
+ async addReaction(toolCall) {
85
+ const { channel, timestamp, name } = toolCall.args;
86
+ if (!channel || typeof channel !== 'string') {
87
+ throw new Error('Missing or invalid "channel" argument for slack.add_reaction');
88
+ }
89
+ if (!timestamp || typeof timestamp !== 'string') {
90
+ throw new Error('Missing or invalid "timestamp" argument for slack.add_reaction');
91
+ }
92
+ if (!name || typeof name !== 'string') {
93
+ throw new Error('Missing or invalid "name" argument for slack.add_reaction');
94
+ }
95
+ const result = await this.client.reactions.add({
96
+ channel,
97
+ timestamp,
98
+ name,
99
+ });
100
+ return { http_status: 200, body: result, headers: {} };
101
+ }
102
+ // List channels
103
+ async listChannels(toolCall) {
104
+ const { types, limit } = toolCall.args;
105
+ const result = await this.client.conversations.list({
106
+ types: types || 'public_channel',
107
+ ...(limit ? { limit: limit } : {}),
108
+ });
109
+ return { http_status: 200, body: result, headers: {} };
110
+ }
111
+ // Get channel history
112
+ async channelHistory(toolCall) {
113
+ const { channel, limit, oldest, latest } = toolCall.args;
114
+ if (!channel || typeof channel !== 'string') {
115
+ throw new Error('Missing or invalid "channel" argument for slack.channel_history');
116
+ }
117
+ const result = await this.client.conversations.history({
118
+ channel,
119
+ ...(limit ? { limit: limit } : {}),
120
+ ...(oldest ? { oldest: oldest } : {}),
121
+ ...(latest ? { latest: latest } : {}),
122
+ });
123
+ return { http_status: 200, body: result, headers: {} };
124
+ }
125
+ // Upload a file
126
+ async uploadFile(toolCall) {
127
+ const { channels, content, filename, title } = toolCall.args;
128
+ if (!channels || typeof channels !== 'string') {
129
+ throw new Error('Missing or invalid "channels" argument for slack.upload_file');
130
+ }
131
+ if (!content || typeof content !== 'string') {
132
+ throw new Error('Missing or invalid "content" argument for slack.upload_file');
133
+ }
134
+ if (!filename || typeof filename !== 'string') {
135
+ throw new Error('Missing or invalid "filename" argument for slack.upload_file');
136
+ }
137
+ const result = await this.client.files.upload({
138
+ channels,
139
+ content,
140
+ filename,
141
+ ...(title ? { title: title } : {}),
142
+ });
143
+ return { http_status: 200, body: result, headers: {} };
144
+ }
145
+ }
146
+ exports.SlackExecutor = SlackExecutor;
147
+ //# sourceMappingURL=slack-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-executor.js","sourceRoot":"","sources":["../../../src/executor/slack-executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export { Gateway, PreExecuteResult } from './server/gateway';
2
+ export { createApp, HealthCheck, HealthCheckResult, CreateAppResult } from './server/app';
3
+ export { sendError, ErrorCode, ErrorResponse } from './server/errors';
4
+ export { PolicyEngine, OPAEngine } from './policy';
5
+ export { DLPScanner, DLPBackend, DLPDetection, RegexDLPBackend, TruffleHogBackend, CompositeDLPScanner } from './dlp';
6
+ export { BudgetManager, CostRecord } from './budget/manager';
7
+ export { UsageExtractor } from './budget/usage-extractor';
8
+ export { AuditLogger } from './audit/logger';
9
+ export { ToolExecutor, ExecutorRegistry, HttpExecutor, NoopExecutor, SlackExecutor } from './executor';
10
+ export { ApprovalManager } from './approval/manager';
11
+ export { ApprovalWebhook } from './approval/webhook';
12
+ export { RateLimiter } from './ratelimit/limiter';
13
+ export { GatewayMetrics } from './metrics';
14
+ export { GatewayTracer, TracingConfig } from './tracing';
15
+ export { DEFAULT_CONFIG } from './config/defaults';
16
+ export { validateConfig, ConfigIssue, ConfigValidationResult } from './config/validate';
17
+ export * from './storage';
18
+ export { MCPBridge, startMCPBridge } from './mcp';
19
+ export { createAdminRouter } from './admin';
20
+ export { parseProxyAuth, ProxyAuthResult } from './middleware/auth';
21
+ export { AnomalyDetector, AnomalyConfig, AnomalyAlert, AnomalyType } from './anomaly';
22
+ export { createForwardProxy, buildToolCallFromProxy, ForwardProxyServer } from './proxy';
23
+ export { SessionReplayEngine, ReplayComparison, ReplayResult } from './replay';
24
+ export * from './types';
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AACtH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACxF,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC/E,cAAc,SAAS,CAAC"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.SessionReplayEngine = exports.buildToolCallFromProxy = exports.createForwardProxy = exports.AnomalyDetector = exports.parseProxyAuth = exports.createAdminRouter = exports.startMCPBridge = exports.MCPBridge = exports.validateConfig = exports.DEFAULT_CONFIG = exports.GatewayTracer = exports.GatewayMetrics = exports.RateLimiter = exports.ApprovalWebhook = exports.ApprovalManager = exports.SlackExecutor = exports.NoopExecutor = exports.HttpExecutor = exports.ExecutorRegistry = exports.AuditLogger = exports.UsageExtractor = exports.BudgetManager = exports.CompositeDLPScanner = exports.TruffleHogBackend = exports.RegexDLPBackend = exports.DLPScanner = exports.OPAEngine = exports.PolicyEngine = exports.ErrorCode = exports.sendError = exports.createApp = exports.Gateway = void 0;
18
+ var gateway_1 = require("./server/gateway");
19
+ Object.defineProperty(exports, "Gateway", { enumerable: true, get: function () { return gateway_1.Gateway; } });
20
+ var app_1 = require("./server/app");
21
+ Object.defineProperty(exports, "createApp", { enumerable: true, get: function () { return app_1.createApp; } });
22
+ var errors_1 = require("./server/errors");
23
+ Object.defineProperty(exports, "sendError", { enumerable: true, get: function () { return errors_1.sendError; } });
24
+ Object.defineProperty(exports, "ErrorCode", { enumerable: true, get: function () { return errors_1.ErrorCode; } });
25
+ var policy_1 = require("./policy");
26
+ Object.defineProperty(exports, "PolicyEngine", { enumerable: true, get: function () { return policy_1.PolicyEngine; } });
27
+ Object.defineProperty(exports, "OPAEngine", { enumerable: true, get: function () { return policy_1.OPAEngine; } });
28
+ var dlp_1 = require("./dlp");
29
+ Object.defineProperty(exports, "DLPScanner", { enumerable: true, get: function () { return dlp_1.DLPScanner; } });
30
+ Object.defineProperty(exports, "RegexDLPBackend", { enumerable: true, get: function () { return dlp_1.RegexDLPBackend; } });
31
+ Object.defineProperty(exports, "TruffleHogBackend", { enumerable: true, get: function () { return dlp_1.TruffleHogBackend; } });
32
+ Object.defineProperty(exports, "CompositeDLPScanner", { enumerable: true, get: function () { return dlp_1.CompositeDLPScanner; } });
33
+ var manager_1 = require("./budget/manager");
34
+ Object.defineProperty(exports, "BudgetManager", { enumerable: true, get: function () { return manager_1.BudgetManager; } });
35
+ var usage_extractor_1 = require("./budget/usage-extractor");
36
+ Object.defineProperty(exports, "UsageExtractor", { enumerable: true, get: function () { return usage_extractor_1.UsageExtractor; } });
37
+ var logger_1 = require("./audit/logger");
38
+ Object.defineProperty(exports, "AuditLogger", { enumerable: true, get: function () { return logger_1.AuditLogger; } });
39
+ var executor_1 = require("./executor");
40
+ Object.defineProperty(exports, "ExecutorRegistry", { enumerable: true, get: function () { return executor_1.ExecutorRegistry; } });
41
+ Object.defineProperty(exports, "HttpExecutor", { enumerable: true, get: function () { return executor_1.HttpExecutor; } });
42
+ Object.defineProperty(exports, "NoopExecutor", { enumerable: true, get: function () { return executor_1.NoopExecutor; } });
43
+ Object.defineProperty(exports, "SlackExecutor", { enumerable: true, get: function () { return executor_1.SlackExecutor; } });
44
+ var manager_2 = require("./approval/manager");
45
+ Object.defineProperty(exports, "ApprovalManager", { enumerable: true, get: function () { return manager_2.ApprovalManager; } });
46
+ var webhook_1 = require("./approval/webhook");
47
+ Object.defineProperty(exports, "ApprovalWebhook", { enumerable: true, get: function () { return webhook_1.ApprovalWebhook; } });
48
+ var limiter_1 = require("./ratelimit/limiter");
49
+ Object.defineProperty(exports, "RateLimiter", { enumerable: true, get: function () { return limiter_1.RateLimiter; } });
50
+ var metrics_1 = require("./metrics");
51
+ Object.defineProperty(exports, "GatewayMetrics", { enumerable: true, get: function () { return metrics_1.GatewayMetrics; } });
52
+ var tracing_1 = require("./tracing");
53
+ Object.defineProperty(exports, "GatewayTracer", { enumerable: true, get: function () { return tracing_1.GatewayTracer; } });
54
+ var defaults_1 = require("./config/defaults");
55
+ Object.defineProperty(exports, "DEFAULT_CONFIG", { enumerable: true, get: function () { return defaults_1.DEFAULT_CONFIG; } });
56
+ var validate_1 = require("./config/validate");
57
+ Object.defineProperty(exports, "validateConfig", { enumerable: true, get: function () { return validate_1.validateConfig; } });
58
+ __exportStar(require("./storage"), exports);
59
+ var mcp_1 = require("./mcp");
60
+ Object.defineProperty(exports, "MCPBridge", { enumerable: true, get: function () { return mcp_1.MCPBridge; } });
61
+ Object.defineProperty(exports, "startMCPBridge", { enumerable: true, get: function () { return mcp_1.startMCPBridge; } });
62
+ var admin_1 = require("./admin");
63
+ Object.defineProperty(exports, "createAdminRouter", { enumerable: true, get: function () { return admin_1.createAdminRouter; } });
64
+ var auth_1 = require("./middleware/auth");
65
+ Object.defineProperty(exports, "parseProxyAuth", { enumerable: true, get: function () { return auth_1.parseProxyAuth; } });
66
+ var anomaly_1 = require("./anomaly");
67
+ Object.defineProperty(exports, "AnomalyDetector", { enumerable: true, get: function () { return anomaly_1.AnomalyDetector; } });
68
+ var proxy_1 = require("./proxy");
69
+ Object.defineProperty(exports, "createForwardProxy", { enumerable: true, get: function () { return proxy_1.createForwardProxy; } });
70
+ Object.defineProperty(exports, "buildToolCallFromProxy", { enumerable: true, get: function () { return proxy_1.buildToolCallFromProxy; } });
71
+ var replay_1 = require("./replay");
72
+ Object.defineProperty(exports, "SessionReplayEngine", { enumerable: true, get: function () { return replay_1.SessionReplayEngine; } });
73
+ __exportStar(require("./types"), exports);
74
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,4CAA6D;AAApD,kGAAA,OAAO,OAAA;AAChB,oCAA0F;AAAjF,gGAAA,SAAS,OAAA;AAClB,0CAAsE;AAA7D,mGAAA,SAAS,OAAA;AAAE,mGAAA,SAAS,OAAA;AAC7B,mCAAmD;AAA1C,sGAAA,YAAY,OAAA;AAAE,mGAAA,SAAS,OAAA;AAChC,6BAAsH;AAA7G,iGAAA,UAAU,OAAA;AAA4B,sGAAA,eAAe,OAAA;AAAE,wGAAA,iBAAiB,OAAA;AAAE,0GAAA,mBAAmB,OAAA;AACtG,4CAA6D;AAApD,wGAAA,aAAa,OAAA;AACtB,4DAA0D;AAAjD,iHAAA,cAAc,OAAA;AACvB,yCAA6C;AAApC,qGAAA,WAAW,OAAA;AACpB,uCAAuG;AAAhF,4GAAA,gBAAgB,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,yGAAA,aAAa,OAAA;AAClF,8CAAqD;AAA5C,0GAAA,eAAe,OAAA;AACxB,8CAAqD;AAA5C,0GAAA,eAAe,OAAA;AACxB,+CAAkD;AAAzC,sGAAA,WAAW,OAAA;AACpB,qCAA2C;AAAlC,yGAAA,cAAc,OAAA;AACvB,qCAAyD;AAAhD,wGAAA,aAAa,OAAA;AACtB,8CAAmD;AAA1C,0GAAA,cAAc,OAAA;AACvB,8CAAwF;AAA/E,0GAAA,cAAc,OAAA;AACvB,4CAA0B;AAC1B,6BAAkD;AAAzC,gGAAA,SAAS,OAAA;AAAE,qGAAA,cAAc,OAAA;AAClC,iCAA4C;AAAnC,0GAAA,iBAAiB,OAAA;AAC1B,0CAAoE;AAA3D,sGAAA,cAAc,OAAA;AACvB,qCAAsF;AAA7E,0GAAA,eAAe,OAAA;AACxB,iCAAyF;AAAhF,2GAAA,kBAAkB,OAAA;AAAE,+GAAA,sBAAsB,OAAA;AACnD,mCAA+E;AAAtE,6GAAA,mBAAmB,OAAA;AAC5B,0CAAwB"}
@@ -0,0 +1,23 @@
1
+ import { OAuthTokenVerifier } from '@modelcontextprotocol/sdk/server/auth/provider.js';
2
+ import { AuthInfo } from '@modelcontextprotocol/sdk/server/auth/types.js';
3
+ import { AuthConfig } from '../types/config';
4
+ import { UserApiKeyStore } from '../storage/interfaces';
5
+ import { PalarynOAuthProvider } from './oauth-provider';
6
+ export interface HybridVerifierDeps {
7
+ oauthProvider?: PalarynOAuthProvider;
8
+ authConfig: AuthConfig;
9
+ userApiKeyStore?: UserApiKeyStore;
10
+ }
11
+ export declare class HybridTokenVerifier implements OAuthTokenVerifier {
12
+ private oauthProvider?;
13
+ private authConfig;
14
+ private userApiKeyStore?;
15
+ constructor(deps: HybridVerifierDeps);
16
+ /**
17
+ * Constant-time API key lookup. Iterates all configured keys and uses
18
+ * crypto.timingSafeEqual to prevent timing-based side-channel attacks.
19
+ */
20
+ private constantTimeLookup;
21
+ verifyAccessToken(token: string): Promise<AuthInfo>;
22
+ }
23
+ //# sourceMappingURL=auth-verifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-verifier.d.ts","sourceRoot":"","sources":["../../../src/mcp/auth-verifier.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,qBAAa,mBAAoB,YAAW,kBAAkB;IAC5D,OAAO,CAAC,aAAa,CAAC,CAAuB;IAC7C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,eAAe,CAAC,CAAkB;gBAE9B,IAAI,EAAE,kBAAkB;IAMpC;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAcpB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;CAmG1D"}
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.HybridTokenVerifier = void 0;
37
+ /**
38
+ * Hybrid OAuth Token Verifier for MCP bearer auth.
39
+ *
40
+ * Implements OAuthTokenVerifier from the MCP SDK. Tries OAuth token
41
+ * verification first, then falls back to API key lookup (config keys +
42
+ * SaaS user keys). This preserves backward compatibility so that existing
43
+ * `--header "Authorization: Bearer <api-key>"` usage still works.
44
+ */
45
+ const crypto = __importStar(require("crypto"));
46
+ const auth_1 = require("../middleware/auth");
47
+ class HybridTokenVerifier {
48
+ constructor(deps) {
49
+ this.oauthProvider = deps.oauthProvider;
50
+ this.authConfig = deps.authConfig;
51
+ this.userApiKeyStore = deps.userApiKeyStore;
52
+ }
53
+ /**
54
+ * Constant-time API key lookup. Iterates all configured keys and uses
55
+ * crypto.timingSafeEqual to prevent timing-based side-channel attacks.
56
+ */
57
+ constantTimeLookup(token) {
58
+ const tokenHash = crypto.createHash('sha256').update(token).digest();
59
+ let matched;
60
+ for (const key of Object.keys(this.authConfig.api_keys)) {
61
+ const keyHash = crypto.createHash('sha256').update(key).digest();
62
+ if (crypto.timingSafeEqual(tokenHash, keyHash)) {
63
+ matched = key;
64
+ }
65
+ }
66
+ return matched;
67
+ }
68
+ async verifyAccessToken(token) {
69
+ // 1. Try OAuth token first (if provider is configured)
70
+ if (this.oauthProvider) {
71
+ try {
72
+ return await this.oauthProvider.verifyAccessToken(token);
73
+ }
74
+ catch {
75
+ // Not an OAuth token — fall through to API key
76
+ }
77
+ }
78
+ // 2. Try config API keys (constant-time comparison to prevent timing attacks)
79
+ if (this.authConfig.enabled) {
80
+ const matchedKey = this.constantTimeLookup(token);
81
+ const keyConfig = matchedKey ? this.authConfig.api_keys[matchedKey] : undefined;
82
+ if (keyConfig && !keyConfig.revoked) {
83
+ if (keyConfig.expires_at) {
84
+ const expiresAt = new Date(keyConfig.expires_at);
85
+ if (expiresAt.getTime() <= Date.now()) {
86
+ throw new Error('API key has expired');
87
+ }
88
+ }
89
+ // Fire-and-forget: update last_used_at
90
+ keyConfig.last_used_at = new Date().toISOString();
91
+ const roles = keyConfig.roles || [];
92
+ const permissions = (0, auth_1.resolvePermissions)(roles, this.authConfig.rbac);
93
+ return {
94
+ token,
95
+ clientId: 'api_key',
96
+ scopes: ['mcp:tools'],
97
+ expiresAt: keyConfig.expires_at
98
+ ? Math.floor(new Date(keyConfig.expires_at).getTime() / 1000)
99
+ : Math.floor(Date.now() / 1000) + 86400, // default: 24h from now
100
+ extra: {
101
+ workspace_id: keyConfig.workspace_id,
102
+ actor_id: `apikey:${crypto.createHash('sha256').update(token).digest('hex').slice(0, 12)}`,
103
+ roles,
104
+ permissions,
105
+ auth_method: 'api_key',
106
+ },
107
+ };
108
+ }
109
+ }
110
+ // 3. Try SaaS-generated API keys (UserApiKeyStore, supports salted + unsalted)
111
+ if (this.userApiKeyStore) {
112
+ let saasKey;
113
+ if (this.userApiKeyStore.verifyToken) {
114
+ saasKey = this.userApiKeyStore.verifyToken(token);
115
+ }
116
+ else {
117
+ const keyHash = crypto.createHash('sha256').update(token).digest('hex');
118
+ saasKey = this.userApiKeyStore.getByKeyHash(keyHash);
119
+ }
120
+ if (saasKey && !saasKey.revoked) {
121
+ // Fire-and-forget: update last_used_at
122
+ this.userApiKeyStore.update(saasKey.id, { last_used_at: new Date().toISOString() });
123
+ const roles = saasKey.roles || [];
124
+ const permissions = (0, auth_1.resolvePermissions)(roles, this.authConfig.rbac);
125
+ return {
126
+ token,
127
+ clientId: 'api_key',
128
+ scopes: ['mcp:tools'],
129
+ expiresAt: Math.floor(Date.now() / 1000) + 86400, // 24h
130
+ extra: {
131
+ workspace_id: saasKey.workspace_id,
132
+ actor_id: `apikey:${crypto.createHash('sha256').update(token).digest('hex').slice(0, 12)}`,
133
+ user_id: saasKey.user_id,
134
+ roles,
135
+ permissions,
136
+ auth_method: 'api_key',
137
+ api_key_tags: saasKey.tags && saasKey.tags.length > 0 ? saasKey.tags : undefined,
138
+ },
139
+ };
140
+ }
141
+ }
142
+ // 4. Auth disabled — anonymous access
143
+ if (!this.authConfig.enabled) {
144
+ return {
145
+ token,
146
+ clientId: 'anonymous',
147
+ scopes: ['mcp:tools'],
148
+ expiresAt: Math.floor(Date.now() / 1000) + 86400,
149
+ extra: {
150
+ workspace_id: 'ws_default',
151
+ actor_id: 'anonymous',
152
+ roles: [],
153
+ permissions: [],
154
+ auth_method: 'none',
155
+ },
156
+ };
157
+ }
158
+ throw new Error('Invalid access token');
159
+ }
160
+ }
161
+ exports.HybridTokenVerifier = HybridTokenVerifier;
162
+ //# sourceMappingURL=auth-verifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-verifier.js","sourceRoot":"","sources":["../../../src/mcp/auth-verifier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ import { Readable, Writable } from 'stream';
2
+ import { Gateway } from '../server/gateway';
3
+ import { Actor, Source } from '../types/tool-call';
4
+ import { GatewayConfig } from '../types/config';
5
+ /**
6
+ * Configuration for the MCP bridge defaults.
7
+ * These values are used when MCP tool calls do not supply them explicitly.
8
+ */
9
+ export interface MCPBridgeConfig {
10
+ /** Default workspace ID for tool calls */
11
+ workspace_id?: string;
12
+ /** Default actor for tool calls */
13
+ actor?: Actor;
14
+ /** Default source platform identifier */
15
+ source?: Source;
16
+ /** Default task ID (if not provided, a new UUID is generated per call) */
17
+ task_id?: string;
18
+ }
19
+ /**
20
+ * MCPBridge wraps a Palaryn Gateway instance as an MCP server, exposing
21
+ * the gateway's tool execution capabilities through the Model Context Protocol.
22
+ *
23
+ * Communication uses JSON-RPC 2.0 over stdio (line-delimited).
24
+ *
25
+ * It exposes three MCP tools:
26
+ * - `http_request` - Execute any HTTP request through the gateway
27
+ * - `http_get` - Shorthand for GET requests
28
+ * - `http_post` - Shorthand for POST requests
29
+ *
30
+ * Each tool constructs a proper ToolCall, runs it through the full gateway
31
+ * pipeline (policy, DLP, budget, rate limiting, execution), and returns
32
+ * the ToolResult as the MCP response.
33
+ *
34
+ * Supported MCP methods:
35
+ * - `initialize` - Protocol handshake (returns server info and capabilities)
36
+ * - `notifications/initialized` - Client acknowledgment (no-op notification)
37
+ * - `tools/list` - List available tools with their JSON schemas
38
+ * - `tools/call` - Execute a tool through the gateway
39
+ * - `ping` - Health check
40
+ */
41
+ export declare class MCPBridge {
42
+ private gateway;
43
+ private bridgeConfig;
44
+ private transport;
45
+ private initialized;
46
+ constructor(gateway: Gateway, bridgeConfig?: MCPBridgeConfig);
47
+ /**
48
+ * Connect via stdio transport (reads from stdin, writes to stdout).
49
+ * This is the standard way to run an MCP server for CLI-based clients.
50
+ * Optionally accepts custom input/output streams for testing.
51
+ */
52
+ connectStdio(input?: Readable, output?: Writable): Promise<void>;
53
+ /**
54
+ * Close the transport and shut down the gateway.
55
+ */
56
+ close(): Promise<void>;
57
+ /**
58
+ * Returns the underlying Gateway instance.
59
+ */
60
+ getGateway(): Gateway;
61
+ /**
62
+ * Whether the MCP handshake has been completed.
63
+ */
64
+ isInitialized(): boolean;
65
+ /** Handle an incoming JSON-RPC message (request or notification). */
66
+ private handleMessage;
67
+ /** Handle a JSON-RPC notification (no response expected). */
68
+ private handleNotification;
69
+ /** Handle a JSON-RPC request and send a response. */
70
+ private handleRequest;
71
+ /** Handle `initialize` - protocol handshake. */
72
+ private handleInitialize;
73
+ /** Handle `tools/list` - return all registered tool definitions. */
74
+ private handleToolsList;
75
+ /** Handle `tools/call` - execute a tool through the gateway. */
76
+ private handleToolsCall;
77
+ /** Execute `http_request` tool - arbitrary HTTP method. */
78
+ private executeHttpRequest;
79
+ /** Execute `http_get` tool - GET request shorthand. */
80
+ private executeHttpGet;
81
+ /** Execute `http_post` tool - POST request shorthand. */
82
+ private executeHttpPost;
83
+ /**
84
+ * Build a ToolCall from MCP tool arguments, applying bridge defaults.
85
+ */
86
+ private buildToolCall;
87
+ /**
88
+ * Execute a ToolCall through the gateway and format as MCP result.
89
+ */
90
+ private executeAndFormat;
91
+ /**
92
+ * Convert a gateway ToolResult into an MCP CallToolResult.
93
+ *
94
+ * The result includes:
95
+ * - The tool output body (or error message) as the primary text content
96
+ * - Gateway metadata (status, policy decision, DLP report, budget, timing)
97
+ * as a second text content block for transparency
98
+ */
99
+ private formatResult;
100
+ /**
101
+ * Map an HTTP method to a ToolInfo capability level.
102
+ */
103
+ private methodToCapability;
104
+ /**
105
+ * Attempt to parse a body string as JSON, falling back to the raw string.
106
+ */
107
+ private parseBody;
108
+ /**
109
+ * Create an MCP tool error result.
110
+ */
111
+ private toolError;
112
+ /**
113
+ * Send a successful JSON-RPC response.
114
+ */
115
+ private sendResult;
116
+ /**
117
+ * Send a JSON-RPC error response.
118
+ */
119
+ private sendError;
120
+ }
121
+ /**
122
+ * Create a Gateway instance with the given config (or defaults),
123
+ * wrap it in an MCPBridge, and connect via stdio transport.
124
+ *
125
+ * This is the main entry point for running Palaryn as an MCP server.
126
+ *
127
+ * @param gatewayConfig - Full gateway configuration (defaults to DEFAULT_CONFIG with auth disabled)
128
+ * @param bridgeConfig - MCP bridge defaults for workspace, actor, source
129
+ * @returns The connected MCPBridge instance
130
+ */
131
+ export declare function startMCPBridge(gatewayConfig?: Partial<GatewayConfig>, bridgeConfig?: MCPBridgeConfig): Promise<MCPBridge>;
132
+ //# sourceMappingURL=bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../../src/mcp/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAA0B,KAAK,EAAE,MAAM,EAAY,MAAM,oBAAoB,CAAC;AAErF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAiEhD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA6RD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,WAAW,CAAkB;gBAEzB,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,eAAe;IAQ5D;;;;OAIG;IACG,YAAY,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtE;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,aAAa,IAAI,OAAO;IAQxB,qEAAqE;IACrE,OAAO,CAAC,aAAa;IAarB,6DAA6D;IAC7D,OAAO,CAAC,kBAAkB;IAS1B,qDAAqD;YACvC,aAAa;IAwB3B,gDAAgD;IAChD,OAAO,CAAC,gBAAgB;IAcxB,oEAAoE;IACpE,OAAO,CAAC,eAAe;IAMvB,gEAAgE;YAClD,eAAe;IAgD7B,2DAA2D;YAC7C,kBAAkB;IA8BhC,uDAAuD;YACzC,cAAc;IA0B5B,yDAAyD;YAC3C,eAAe;IA+B7B;;OAEG;IACH,OAAO,CAAC,aAAa;IA+CrB;;OAEG;YACW,gBAAgB;IA0B9B;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;IA+CpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;OAEG;IACH,OAAO,CAAC,SAAS;IAQjB;;OAEG;IACH,OAAO,CAAC,SAAS;IAOjB;;OAEG;IACH,OAAO,CAAC,UAAU;IAUlB;;OAEG;IACH,OAAO,CAAC,SAAS;CASlB;AAMD;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,EACtC,YAAY,CAAC,EAAE,eAAe,GAC7B,OAAO,CAAC,SAAS,CAAC,CAyBpB"}