@superblocksteam/mcp-server 2.0.0-SNAPSHOT.12e637302a23edc8

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 (424) hide show
  1. package/LICENSE.txt +87 -0
  2. package/README.md +266 -0
  3. package/dist/application/commit-history.d.ts +27 -0
  4. package/dist/application/commit-history.d.ts.map +1 -0
  5. package/dist/application/commit-history.js +36 -0
  6. package/dist/application/commit-history.js.map +1 -0
  7. package/dist/application/directory-tree.d.ts +11 -0
  8. package/dist/application/directory-tree.d.ts.map +1 -0
  9. package/dist/application/directory-tree.js +37 -0
  10. package/dist/application/directory-tree.js.map +1 -0
  11. package/dist/application/materialize-application.d.ts +16 -0
  12. package/dist/application/materialize-application.d.ts.map +1 -0
  13. package/dist/application/materialize-application.js +47 -0
  14. package/dist/application/materialize-application.js.map +1 -0
  15. package/dist/application/summary.d.ts +25 -0
  16. package/dist/application/summary.d.ts.map +1 -0
  17. package/dist/application/summary.js +42 -0
  18. package/dist/application/summary.js.map +1 -0
  19. package/dist/auth/commands.d.ts +3 -0
  20. package/dist/auth/commands.d.ts.map +1 -0
  21. package/dist/auth/commands.js +71 -0
  22. package/dist/auth/commands.js.map +1 -0
  23. package/dist/auth/context.d.ts +7 -0
  24. package/dist/auth/context.d.ts.map +1 -0
  25. package/dist/auth/context.js +9 -0
  26. package/dist/auth/context.js.map +1 -0
  27. package/dist/auth/login.d.ts +10 -0
  28. package/dist/auth/login.d.ts.map +1 -0
  29. package/dist/auth/login.js +48 -0
  30. package/dist/auth/login.js.map +1 -0
  31. package/dist/auth/resolve-auth.d.ts +15 -0
  32. package/dist/auth/resolve-auth.d.ts.map +1 -0
  33. package/dist/auth/resolve-auth.js +75 -0
  34. package/dist/auth/resolve-auth.js.map +1 -0
  35. package/dist/auth/resolve-current-organization.d.ts +6 -0
  36. package/dist/auth/resolve-current-organization.d.ts.map +1 -0
  37. package/dist/auth/resolve-current-organization.js +15 -0
  38. package/dist/auth/resolve-current-organization.js.map +1 -0
  39. package/dist/auth/store.d.ts +11 -0
  40. package/dist/auth/store.d.ts.map +1 -0
  41. package/dist/auth/store.js +63 -0
  42. package/dist/auth/store.js.map +1 -0
  43. package/dist/entitlement-wrapper.d.ts +3 -0
  44. package/dist/entitlement-wrapper.d.ts.map +1 -0
  45. package/dist/entitlement-wrapper.js +49 -0
  46. package/dist/entitlement-wrapper.js.map +1 -0
  47. package/dist/entitlement.d.ts +55 -0
  48. package/dist/entitlement.d.ts.map +1 -0
  49. package/dist/entitlement.js +246 -0
  50. package/dist/entitlement.js.map +1 -0
  51. package/dist/http.d.ts +9 -0
  52. package/dist/http.d.ts.map +1 -0
  53. package/dist/http.js +299 -0
  54. package/dist/http.js.map +1 -0
  55. package/dist/index.d.ts +16 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +84 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/jsonrpc.d.ts +25 -0
  60. package/dist/jsonrpc.d.ts.map +1 -0
  61. package/dist/jsonrpc.js +102 -0
  62. package/dist/jsonrpc.js.map +1 -0
  63. package/dist/profile.d.ts +3 -0
  64. package/dist/profile.d.ts.map +1 -0
  65. package/dist/profile.js +7 -0
  66. package/dist/profile.js.map +1 -0
  67. package/dist/sdk/create-sdk.d.ts +3 -0
  68. package/dist/sdk/create-sdk.d.ts.map +1 -0
  69. package/dist/sdk/create-sdk.js +6 -0
  70. package/dist/sdk/create-sdk.js.map +1 -0
  71. package/dist/setup/commands.d.ts +7 -0
  72. package/dist/setup/commands.d.ts.map +1 -0
  73. package/dist/setup/commands.js +58 -0
  74. package/dist/setup/commands.js.map +1 -0
  75. package/dist/setup/index.d.ts +5 -0
  76. package/dist/setup/index.d.ts.map +1 -0
  77. package/dist/setup/index.js +3 -0
  78. package/dist/setup/index.js.map +1 -0
  79. package/dist/setup/setup-config.d.ts +27 -0
  80. package/dist/setup/setup-config.d.ts.map +1 -0
  81. package/dist/setup/setup-config.js +100 -0
  82. package/dist/setup/setup-config.js.map +1 -0
  83. package/dist/target/resolve-app-target.d.ts +102 -0
  84. package/dist/target/resolve-app-target.d.ts.map +1 -0
  85. package/dist/target/resolve-app-target.js +176 -0
  86. package/dist/target/resolve-app-target.js.map +1 -0
  87. package/dist/target/resolve-base-url-target.d.ts +128 -0
  88. package/dist/target/resolve-base-url-target.d.ts.map +1 -0
  89. package/dist/target/resolve-base-url-target.js +125 -0
  90. package/dist/target/resolve-base-url-target.js.map +1 -0
  91. package/dist/target/resolve-organization-target.d.ts +23 -0
  92. package/dist/target/resolve-organization-target.d.ts.map +1 -0
  93. package/dist/target/resolve-organization-target.js +50 -0
  94. package/dist/target/resolve-organization-target.js.map +1 -0
  95. package/dist/test-setup.d.ts +2 -0
  96. package/dist/test-setup.d.ts.map +1 -0
  97. package/dist/test-setup.js +9 -0
  98. package/dist/test-setup.js.map +1 -0
  99. package/dist/tool-call-result.d.ts +12 -0
  100. package/dist/tool-call-result.d.ts.map +1 -0
  101. package/dist/tool-call-result.js +32 -0
  102. package/dist/tool-call-result.js.map +1 -0
  103. package/dist/tools/aggregate-audit-events.d.ts +3 -0
  104. package/dist/tools/aggregate-audit-events.d.ts.map +1 -0
  105. package/dist/tools/aggregate-audit-events.js +60 -0
  106. package/dist/tools/aggregate-audit-events.js.map +1 -0
  107. package/dist/tools/assign-builder-seat.d.ts +3 -0
  108. package/dist/tools/assign-builder-seat.d.ts.map +1 -0
  109. package/dist/tools/assign-builder-seat.js +45 -0
  110. package/dist/tools/assign-builder-seat.js.map +1 -0
  111. package/dist/tools/billing-usage-limits.d.ts +5 -0
  112. package/dist/tools/billing-usage-limits.d.ts.map +1 -0
  113. package/dist/tools/billing-usage-limits.js +191 -0
  114. package/dist/tools/billing-usage-limits.js.map +1 -0
  115. package/dist/tools/checkout-application.d.ts +3 -0
  116. package/dist/tools/checkout-application.d.ts.map +1 -0
  117. package/dist/tools/checkout-application.js +65 -0
  118. package/dist/tools/checkout-application.js.map +1 -0
  119. package/dist/tools/create-folder.d.ts +3 -0
  120. package/dist/tools/create-folder.d.ts.map +1 -0
  121. package/dist/tools/create-folder.js +39 -0
  122. package/dist/tools/create-folder.js.map +1 -0
  123. package/dist/tools/create-integration.d.ts +10 -0
  124. package/dist/tools/create-integration.d.ts.map +1 -0
  125. package/dist/tools/create-integration.js +93 -0
  126. package/dist/tools/create-integration.js.map +1 -0
  127. package/dist/tools/datasource-configuration-by-type.schema.json +2619 -0
  128. package/dist/tools/deactivate-user.d.ts +3 -0
  129. package/dist/tools/deactivate-user.d.ts.map +1 -0
  130. package/dist/tools/deactivate-user.js +95 -0
  131. package/dist/tools/deactivate-user.js.map +1 -0
  132. package/dist/tools/delete-folder.d.ts +3 -0
  133. package/dist/tools/delete-folder.d.ts.map +1 -0
  134. package/dist/tools/delete-folder.js +42 -0
  135. package/dist/tools/delete-folder.js.map +1 -0
  136. package/dist/tools/delete-group-org-role.d.ts +3 -0
  137. package/dist/tools/delete-group-org-role.d.ts.map +1 -0
  138. package/dist/tools/delete-group-org-role.js +54 -0
  139. package/dist/tools/delete-group-org-role.js.map +1 -0
  140. package/dist/tools/delete-integration.d.ts +3 -0
  141. package/dist/tools/delete-integration.d.ts.map +1 -0
  142. package/dist/tools/delete-integration.js +39 -0
  143. package/dist/tools/delete-integration.js.map +1 -0
  144. package/dist/tools/deploy-application.d.ts +3 -0
  145. package/dist/tools/deploy-application.d.ts.map +1 -0
  146. package/dist/tools/deploy-application.js +142 -0
  147. package/dist/tools/deploy-application.js.map +1 -0
  148. package/dist/tools/find-apps-by-integration.d.ts +3 -0
  149. package/dist/tools/find-apps-by-integration.d.ts.map +1 -0
  150. package/dist/tools/find-apps-by-integration.js +135 -0
  151. package/dist/tools/find-apps-by-integration.js.map +1 -0
  152. package/dist/tools/find-apps-by-package.d.ts +3 -0
  153. package/dist/tools/find-apps-by-package.d.ts.map +1 -0
  154. package/dist/tools/find-apps-by-package.js +88 -0
  155. package/dist/tools/find-apps-by-package.js.map +1 -0
  156. package/dist/tools/get-app-sbom.d.ts +3 -0
  157. package/dist/tools/get-app-sbom.d.ts.map +1 -0
  158. package/dist/tools/get-app-sbom.js +54 -0
  159. package/dist/tools/get-app-sbom.js.map +1 -0
  160. package/dist/tools/get-application-access.d.ts +3 -0
  161. package/dist/tools/get-application-access.d.ts.map +1 -0
  162. package/dist/tools/get-application-access.js +35 -0
  163. package/dist/tools/get-application-access.js.map +1 -0
  164. package/dist/tools/get-application-commit-history.d.ts +3 -0
  165. package/dist/tools/get-application-commit-history.d.ts.map +1 -0
  166. package/dist/tools/get-application-commit-history.js +55 -0
  167. package/dist/tools/get-application-commit-history.js.map +1 -0
  168. package/dist/tools/get-application-deployment-history.d.ts +3 -0
  169. package/dist/tools/get-application-deployment-history.d.ts.map +1 -0
  170. package/dist/tools/get-application-deployment-history.js +45 -0
  171. package/dist/tools/get-application-deployment-history.js.map +1 -0
  172. package/dist/tools/get-application-policy-run-findings.d.ts +3 -0
  173. package/dist/tools/get-application-policy-run-findings.d.ts.map +1 -0
  174. package/dist/tools/get-application-policy-run-findings.js +62 -0
  175. package/dist/tools/get-application-policy-run-findings.js.map +1 -0
  176. package/dist/tools/get-application-publish-pipeline.d.ts +3 -0
  177. package/dist/tools/get-application-publish-pipeline.d.ts.map +1 -0
  178. package/dist/tools/get-application-publish-pipeline.js +47 -0
  179. package/dist/tools/get-application-publish-pipeline.js.map +1 -0
  180. package/dist/tools/get-application-publish-readiness.d.ts +3 -0
  181. package/dist/tools/get-application-publish-readiness.d.ts.map +1 -0
  182. package/dist/tools/get-application-publish-readiness.js +47 -0
  183. package/dist/tools/get-application-publish-readiness.js.map +1 -0
  184. package/dist/tools/get-application-structure.d.ts +3 -0
  185. package/dist/tools/get-application-structure.d.ts.map +1 -0
  186. package/dist/tools/get-application-structure.js +98 -0
  187. package/dist/tools/get-application-structure.js.map +1 -0
  188. package/dist/tools/get-application-summary.d.ts +3 -0
  189. package/dist/tools/get-application-summary.d.ts.map +1 -0
  190. package/dist/tools/get-application-summary.js +46 -0
  191. package/dist/tools/get-application-summary.js.map +1 -0
  192. package/dist/tools/get-audit-events.d.ts +3 -0
  193. package/dist/tools/get-audit-events.d.ts.map +1 -0
  194. package/dist/tools/get-audit-events.js +55 -0
  195. package/dist/tools/get-audit-events.js.map +1 -0
  196. package/dist/tools/get-auth-status.d.ts +3 -0
  197. package/dist/tools/get-auth-status.d.ts.map +1 -0
  198. package/dist/tools/get-auth-status.js +34 -0
  199. package/dist/tools/get-auth-status.js.map +1 -0
  200. package/dist/tools/get-billing-plan-summary.d.ts +3 -0
  201. package/dist/tools/get-billing-plan-summary.d.ts.map +1 -0
  202. package/dist/tools/get-billing-plan-summary.js +32 -0
  203. package/dist/tools/get-billing-plan-summary.js.map +1 -0
  204. package/dist/tools/get-billing-usage-daily.d.ts +3 -0
  205. package/dist/tools/get-billing-usage-daily.d.ts.map +1 -0
  206. package/dist/tools/get-billing-usage-daily.js +37 -0
  207. package/dist/tools/get-billing-usage-daily.js.map +1 -0
  208. package/dist/tools/get-billing-usage-records.d.ts +3 -0
  209. package/dist/tools/get-billing-usage-records.d.ts.map +1 -0
  210. package/dist/tools/get-billing-usage-records.js +246 -0
  211. package/dist/tools/get-billing-usage-records.js.map +1 -0
  212. package/dist/tools/get-chat-messages.d.ts +3 -0
  213. package/dist/tools/get-chat-messages.d.ts.map +1 -0
  214. package/dist/tools/get-chat-messages.js +51 -0
  215. package/dist/tools/get-chat-messages.js.map +1 -0
  216. package/dist/tools/get-current-user.d.ts +3 -0
  217. package/dist/tools/get-current-user.d.ts.map +1 -0
  218. package/dist/tools/get-current-user.js +66 -0
  219. package/dist/tools/get-current-user.js.map +1 -0
  220. package/dist/tools/get-dependency-scan-summary.d.ts +3 -0
  221. package/dist/tools/get-dependency-scan-summary.d.ts.map +1 -0
  222. package/dist/tools/get-dependency-scan-summary.js +42 -0
  223. package/dist/tools/get-dependency-scan-summary.js.map +1 -0
  224. package/dist/tools/get-integration-access.d.ts +3 -0
  225. package/dist/tools/get-integration-access.d.ts.map +1 -0
  226. package/dist/tools/get-integration-access.js +41 -0
  227. package/dist/tools/get-integration-access.js.map +1 -0
  228. package/dist/tools/get-integration-config-schema.d.ts +3 -0
  229. package/dist/tools/get-integration-config-schema.d.ts.map +1 -0
  230. package/dist/tools/get-integration-config-schema.js +34 -0
  231. package/dist/tools/get-integration-config-schema.js.map +1 -0
  232. package/dist/tools/get-integration.d.ts +3 -0
  233. package/dist/tools/get-integration.d.ts.map +1 -0
  234. package/dist/tools/get-integration.js +39 -0
  235. package/dist/tools/get-integration.js.map +1 -0
  236. package/dist/tools/get-job-access.d.ts +3 -0
  237. package/dist/tools/get-job-access.d.ts.map +1 -0
  238. package/dist/tools/get-job-access.js +41 -0
  239. package/dist/tools/get-job-access.js.map +1 -0
  240. package/dist/tools/get-knowledge.d.ts +3 -0
  241. package/dist/tools/get-knowledge.d.ts.map +1 -0
  242. package/dist/tools/get-knowledge.js +48 -0
  243. package/dist/tools/get-knowledge.js.map +1 -0
  244. package/dist/tools/get-organization-summary.d.ts +3 -0
  245. package/dist/tools/get-organization-summary.d.ts.map +1 -0
  246. package/dist/tools/get-organization-summary.js +48 -0
  247. package/dist/tools/get-organization-summary.js.map +1 -0
  248. package/dist/tools/get-review-policy-run-report.d.ts +3 -0
  249. package/dist/tools/get-review-policy-run-report.d.ts.map +1 -0
  250. package/dist/tools/get-review-policy-run-report.js +60 -0
  251. package/dist/tools/get-review-policy-run-report.js.map +1 -0
  252. package/dist/tools/get-review-policy-summary.d.ts +3 -0
  253. package/dist/tools/get-review-policy-summary.d.ts.map +1 -0
  254. package/dist/tools/get-review-policy-summary.js +47 -0
  255. package/dist/tools/get-review-policy-summary.js.map +1 -0
  256. package/dist/tools/get-review-policy.d.ts +3 -0
  257. package/dist/tools/get-review-policy.d.ts.map +1 -0
  258. package/dist/tools/get-review-policy.js +43 -0
  259. package/dist/tools/get-review-policy.js.map +1 -0
  260. package/dist/tools/get-user-permissions.d.ts +3 -0
  261. package/dist/tools/get-user-permissions.d.ts.map +1 -0
  262. package/dist/tools/get-user-permissions.js +68 -0
  263. package/dist/tools/get-user-permissions.js.map +1 -0
  264. package/dist/tools/get-workflow-access.d.ts +3 -0
  265. package/dist/tools/get-workflow-access.d.ts.map +1 -0
  266. package/dist/tools/get-workflow-access.js +41 -0
  267. package/dist/tools/get-workflow-access.js.map +1 -0
  268. package/dist/tools/grant-resource-access.d.ts +3 -0
  269. package/dist/tools/grant-resource-access.d.ts.map +1 -0
  270. package/dist/tools/grant-resource-access.js +64 -0
  271. package/dist/tools/grant-resource-access.js.map +1 -0
  272. package/dist/tools/index.d.ts +6 -0
  273. package/dist/tools/index.d.ts.map +1 -0
  274. package/dist/tools/index.js +148 -0
  275. package/dist/tools/index.js.map +1 -0
  276. package/dist/tools/integration-mention.d.ts +2 -0
  277. package/dist/tools/integration-mention.d.ts.map +1 -0
  278. package/dist/tools/integration-mention.js +8 -0
  279. package/dist/tools/integration-mention.js.map +1 -0
  280. package/dist/tools/list-applications.d.ts +3 -0
  281. package/dist/tools/list-applications.d.ts.map +1 -0
  282. package/dist/tools/list-applications.js +115 -0
  283. package/dist/tools/list-applications.js.map +1 -0
  284. package/dist/tools/list-audit-event-types.d.ts +3 -0
  285. package/dist/tools/list-audit-event-types.d.ts.map +1 -0
  286. package/dist/tools/list-audit-event-types.js +41 -0
  287. package/dist/tools/list-audit-event-types.js.map +1 -0
  288. package/dist/tools/list-builder-seats.d.ts +3 -0
  289. package/dist/tools/list-builder-seats.d.ts.map +1 -0
  290. package/dist/tools/list-builder-seats.js +42 -0
  291. package/dist/tools/list-builder-seats.js.map +1 -0
  292. package/dist/tools/list-dependency-scan-findings.d.ts +3 -0
  293. package/dist/tools/list-dependency-scan-findings.d.ts.map +1 -0
  294. package/dist/tools/list-dependency-scan-findings.js +69 -0
  295. package/dist/tools/list-dependency-scan-findings.js.map +1 -0
  296. package/dist/tools/list-distinct-packages-in-org.d.ts +3 -0
  297. package/dist/tools/list-distinct-packages-in-org.d.ts.map +1 -0
  298. package/dist/tools/list-distinct-packages-in-org.js +117 -0
  299. package/dist/tools/list-distinct-packages-in-org.js.map +1 -0
  300. package/dist/tools/list-folders.d.ts +3 -0
  301. package/dist/tools/list-folders.d.ts.map +1 -0
  302. package/dist/tools/list-folders.js +39 -0
  303. package/dist/tools/list-folders.js.map +1 -0
  304. package/dist/tools/list-integrations.d.ts +3 -0
  305. package/dist/tools/list-integrations.d.ts.map +1 -0
  306. package/dist/tools/list-integrations.js +65 -0
  307. package/dist/tools/list-integrations.js.map +1 -0
  308. package/dist/tools/list-knowledge.d.ts +3 -0
  309. package/dist/tools/list-knowledge.d.ts.map +1 -0
  310. package/dist/tools/list-knowledge.js +56 -0
  311. package/dist/tools/list-knowledge.js.map +1 -0
  312. package/dist/tools/list-organization-agents.d.ts +3 -0
  313. package/dist/tools/list-organization-agents.d.ts.map +1 -0
  314. package/dist/tools/list-organization-agents.js +49 -0
  315. package/dist/tools/list-organization-agents.js.map +1 -0
  316. package/dist/tools/list-packages-by-app.d.ts +3 -0
  317. package/dist/tools/list-packages-by-app.d.ts.map +1 -0
  318. package/dist/tools/list-packages-by-app.js +97 -0
  319. package/dist/tools/list-packages-by-app.js.map +1 -0
  320. package/dist/tools/list-rbac-assignments.d.ts +3 -0
  321. package/dist/tools/list-rbac-assignments.d.ts.map +1 -0
  322. package/dist/tools/list-rbac-assignments.js +57 -0
  323. package/dist/tools/list-rbac-assignments.js.map +1 -0
  324. package/dist/tools/list-review-policies.d.ts +3 -0
  325. package/dist/tools/list-review-policies.d.ts.map +1 -0
  326. package/dist/tools/list-review-policies.js +42 -0
  327. package/dist/tools/list-review-policies.js.map +1 -0
  328. package/dist/tools/list-review-policy-runs.d.ts +3 -0
  329. package/dist/tools/list-review-policy-runs.d.ts.map +1 -0
  330. package/dist/tools/list-review-policy-runs.js +80 -0
  331. package/dist/tools/list-review-policy-runs.js.map +1 -0
  332. package/dist/tools/list-roles.d.ts +3 -0
  333. package/dist/tools/list-roles.d.ts.map +1 -0
  334. package/dist/tools/list-roles.js +61 -0
  335. package/dist/tools/list-roles.js.map +1 -0
  336. package/dist/tools/list-users-by-role.d.ts +3 -0
  337. package/dist/tools/list-users-by-role.d.ts.map +1 -0
  338. package/dist/tools/list-users-by-role.js +74 -0
  339. package/dist/tools/list-users-by-role.js.map +1 -0
  340. package/dist/tools/list-users.d.ts +3 -0
  341. package/dist/tools/list-users.d.ts.map +1 -0
  342. package/dist/tools/list-users.js +69 -0
  343. package/dist/tools/list-users.js.map +1 -0
  344. package/dist/tools/lookup-package-vulnerabilities.d.ts +3 -0
  345. package/dist/tools/lookup-package-vulnerabilities.d.ts.map +1 -0
  346. package/dist/tools/lookup-package-vulnerabilities.js +57 -0
  347. package/dist/tools/lookup-package-vulnerabilities.js.map +1 -0
  348. package/dist/tools/map-rbac-assignments.d.ts +35 -0
  349. package/dist/tools/map-rbac-assignments.d.ts.map +1 -0
  350. package/dist/tools/map-rbac-assignments.js +22 -0
  351. package/dist/tools/map-rbac-assignments.js.map +1 -0
  352. package/dist/tools/org-user-types.d.ts +16 -0
  353. package/dist/tools/org-user-types.d.ts.map +1 -0
  354. package/dist/tools/org-user-types.js +2 -0
  355. package/dist/tools/org-user-types.js.map +1 -0
  356. package/dist/tools/pagination.d.ts +14 -0
  357. package/dist/tools/pagination.d.ts.map +1 -0
  358. package/dist/tools/pagination.js +21 -0
  359. package/dist/tools/pagination.js.map +1 -0
  360. package/dist/tools/plugin-configuration-schema.d.ts +3 -0
  361. package/dist/tools/plugin-configuration-schema.d.ts.map +1 -0
  362. package/dist/tools/plugin-configuration-schema.js +95 -0
  363. package/dist/tools/plugin-configuration-schema.js.map +1 -0
  364. package/dist/tools/registry.d.ts +36 -0
  365. package/dist/tools/registry.d.ts.map +1 -0
  366. package/dist/tools/registry.js +32 -0
  367. package/dist/tools/registry.js.map +1 -0
  368. package/dist/tools/revoke-resource-access.d.ts +3 -0
  369. package/dist/tools/revoke-resource-access.d.ts.map +1 -0
  370. package/dist/tools/revoke-resource-access.js +39 -0
  371. package/dist/tools/revoke-resource-access.js.map +1 -0
  372. package/dist/tools/schemas.d.ts +147 -0
  373. package/dist/tools/schemas.d.ts.map +1 -0
  374. package/dist/tools/schemas.js +1320 -0
  375. package/dist/tools/schemas.js.map +1 -0
  376. package/dist/tools/server-api.d.ts +33 -0
  377. package/dist/tools/server-api.d.ts.map +1 -0
  378. package/dist/tools/server-api.js +96 -0
  379. package/dist/tools/server-api.js.map +1 -0
  380. package/dist/tools/unassign-builder-seat.d.ts +3 -0
  381. package/dist/tools/unassign-builder-seat.d.ts.map +1 -0
  382. package/dist/tools/unassign-builder-seat.js +44 -0
  383. package/dist/tools/unassign-builder-seat.js.map +1 -0
  384. package/dist/tools/undeploy-application.d.ts +3 -0
  385. package/dist/tools/undeploy-application.d.ts.map +1 -0
  386. package/dist/tools/undeploy-application.js +56 -0
  387. package/dist/tools/undeploy-application.js.map +1 -0
  388. package/dist/tools/update-folder.d.ts +3 -0
  389. package/dist/tools/update-folder.d.ts.map +1 -0
  390. package/dist/tools/update-folder.js +42 -0
  391. package/dist/tools/update-folder.js.map +1 -0
  392. package/dist/tools/update-group-org-role.d.ts +3 -0
  393. package/dist/tools/update-group-org-role.d.ts.map +1 -0
  394. package/dist/tools/update-group-org-role.js +55 -0
  395. package/dist/tools/update-group-org-role.js.map +1 -0
  396. package/dist/tools/update-integration.d.ts +3 -0
  397. package/dist/tools/update-integration.d.ts.map +1 -0
  398. package/dist/tools/update-integration.js +40 -0
  399. package/dist/tools/update-integration.js.map +1 -0
  400. package/dist/tools/update-resource-access.d.ts +3 -0
  401. package/dist/tools/update-resource-access.d.ts.map +1 -0
  402. package/dist/tools/update-resource-access.js +44 -0
  403. package/dist/tools/update-resource-access.js.map +1 -0
  404. package/dist/tools/update-user-org-role.d.ts +3 -0
  405. package/dist/tools/update-user-org-role.d.ts.map +1 -0
  406. package/dist/tools/update-user-org-role.js +55 -0
  407. package/dist/tools/update-user-org-role.js.map +1 -0
  408. package/dist/tools/validation.d.ts +3 -0
  409. package/dist/tools/validation.d.ts.map +1 -0
  410. package/dist/tools/validation.js +10 -0
  411. package/dist/tools/validation.js.map +1 -0
  412. package/dist/urls.d.ts +4 -0
  413. package/dist/urls.d.ts.map +1 -0
  414. package/dist/urls.js +33 -0
  415. package/dist/urls.js.map +1 -0
  416. package/dist/utils/args.d.ts +3 -0
  417. package/dist/utils/args.d.ts.map +1 -0
  418. package/dist/utils/args.js +15 -0
  419. package/dist/utils/args.js.map +1 -0
  420. package/dist/version.d.ts +2 -0
  421. package/dist/version.d.ts.map +1 -0
  422. package/dist/version.js +3 -0
  423. package/dist/version.js.map +1 -0
  424. package/package.json +75 -0
@@ -0,0 +1,246 @@
1
+ import { createHash } from "node:crypto";
2
+ import { ServerApiError, callServerApi } from "./tools/server-api.js";
3
+ const ENTITLED_PLANS = new Set(["ENTERPRISE", "POC"]);
4
+ const PLAN_PATH = "api/v1/public/users/me";
5
+ /**
6
+ * How long a plan verdict is trusted before the API is asked again.
7
+ *
8
+ * A plan is not something that changes between two tool calls, and an upgrade
9
+ * or downgrade landing within a minute is well inside what anyone notices.
10
+ */
11
+ const DEFAULT_CACHE_TTL_MS = 60_000;
12
+ /**
13
+ * How long one caller waits for a plan read before giving up on this call.
14
+ *
15
+ * This read gates every Admin tool call, so it must fail long before the
16
+ * caller does. It had no bound at all, which is how one wedged route took the
17
+ * whole Admin surface down with it (ENG-5806).
18
+ *
19
+ * The read is *not* cancelled at this point — see {@link DEFAULT_READ_TIMEOUT_MS}.
20
+ */
21
+ const DEFAULT_CALLER_WAIT_MS = 10_000;
22
+ /**
23
+ * How long the read itself is given, which is deliberately longer than the
24
+ * caller waits.
25
+ *
26
+ * Aborting the read at the caller's deadline would mean an endpoint that
27
+ * answers slowly rather than never can never fill the cache: every read is
28
+ * killed just short of succeeding, so the breaker stays open and a recoverable
29
+ * slowdown becomes a permanent outage — strictly worse than the unbounded read
30
+ * this replaced, which at least eventually returned. ENG-5805 measures ~20s on
31
+ * the endpoint this gates on, which is exactly that window.
32
+ *
33
+ * So the caller stops waiting at 10s and the read keeps going, filling the
34
+ * cache for whoever calls next. Matches `DEFAULT_IDENTITY_TIMEOUT_MS` on the
35
+ * Builder side, for the same reason.
36
+ */
37
+ const DEFAULT_READ_TIMEOUT_MS = 30_000;
38
+ /** How long later calls fail fast after a plan read failed. */
39
+ const DEFAULT_COOLDOWN_MS = 30_000;
40
+ /**
41
+ * Whether a failed plan read means the control plane is unhealthy, rather than
42
+ * that this one credential was rejected.
43
+ *
44
+ * The Builder side has always drawn this line (`identityEndpointUnhealthy`);
45
+ * this side treated every failure as an outage, so a single expired token
46
+ * opened the breaker and every *other* caller then failed fast for the
47
+ * cooldown. A 4xx is a definite answer about one caller and must not do that.
48
+ *
49
+ * 429 is the exception, as on the Builder side: a shared rate limit is about
50
+ * the route's capacity, not about this credential.
51
+ */
52
+ function planEndpointUnhealthy(error) {
53
+ return !(error instanceof ServerApiError &&
54
+ error.status < 500 &&
55
+ error.status !== 429);
56
+ }
57
+ /**
58
+ * A deadline a caller can stop waiting at without cancelling what it waits on.
59
+ */
60
+ function callerDeadline(ms) {
61
+ let timer;
62
+ const expired = new Promise((_resolve, reject) => {
63
+ timer = setTimeout(() => reject(new PlanCheckUnavailableError()), ms);
64
+ });
65
+ return { cancel: () => clearTimeout(timer), expired };
66
+ }
67
+ export class EntitlementError extends Error {
68
+ plan;
69
+ constructor(plan) {
70
+ const planLabel = plan ?? "unknown";
71
+ super(`The Superblocks MCP server requires an Enterprise or POC plan. ` +
72
+ `Your organization is on the ${planLabel} plan. ` +
73
+ `Contact sales to upgrade: https://www.superblocks.com/contact-sales`);
74
+ this.name = "EntitlementError";
75
+ this.plan = plan;
76
+ }
77
+ }
78
+ /**
79
+ * The plan could not be read, so nothing is known about the entitlement.
80
+ *
81
+ * Distinct from {@link EntitlementError}, which is a definite answer that the
82
+ * org is on the wrong plan. This one means try again; that one means upgrade.
83
+ */
84
+ export class PlanCheckUnavailableError extends Error {
85
+ constructor(cause) {
86
+ const detail = cause instanceof Error && cause.message ? `: ${cause.message}` : "";
87
+ super(`Superblocks could not confirm your organization's plan${detail}. ` +
88
+ `This is usually transient - try again in a moment.`);
89
+ this.name = "PlanCheckUnavailableError";
90
+ this.cause = cause;
91
+ }
92
+ }
93
+ /**
94
+ * Reads the plan out of a `/users/me` envelope.
95
+ *
96
+ * Returns `{ readable: false }` when the response is not shaped like that
97
+ * envelope at all, which is a degraded or truncated answer rather than a
98
+ * statement about billing. Caching that as a definite verdict told the caller
99
+ * to upgrade their plan for 60s because the control plane was unwell.
100
+ *
101
+ * A well-formed envelope whose org genuinely carries no plan *is* a definite
102
+ * answer, and stays one.
103
+ */
104
+ function readPlanFromEnvelope(data) {
105
+ if (data === null || typeof data !== "object") {
106
+ return { readable: false };
107
+ }
108
+ const organizations = data.organizations;
109
+ // No `organizations` array at all is not a `/users/me` answer. An *empty*
110
+ // one is: that caller is genuinely in no organization.
111
+ if (!Array.isArray(organizations)) {
112
+ return { readable: false };
113
+ }
114
+ return { plan: organizations[0]?.billing?.plan, readable: true };
115
+ }
116
+ /**
117
+ * The plan check that gates every Admin tool call, made cheap and bounded.
118
+ *
119
+ * Read straight through it was one uncached, unbounded `GET /users/me` per tool
120
+ * call, failing closed. So when that route wedged, every Admin tool went with
121
+ * it -- including `list_integrations`, which needs nothing but plain REST --
122
+ * and each call waited on the socket rather than on any deadline of its own.
123
+ *
124
+ * Same four measures the Builder side needs, for the same reason:
125
+ *
126
+ * - **Cache** the verdict, refusals included, so a poll loop reads the plan
127
+ * once per TTL instead of once per call.
128
+ * - **Collapse** concurrent callers onto one read, so a burst does not
129
+ * multiply load on a route that is already struggling.
130
+ * - **Caller deadline**, so a wedged route cannot hold a tool call open. The
131
+ * read keeps running past it, so a route that answers slowly rather than
132
+ * never still fills the cache instead of being killed just short of
133
+ * succeeding on every attempt.
134
+ * - **Break** after a failed read, so later calls fail fast instead of each
135
+ * discovering the same outage the slow way.
136
+ *
137
+ * Only a failed *read of an unhealthy endpoint* opens the breaker, and only for
138
+ * the control plane it failed on. Being on the wrong plan, or presenting a
139
+ * credential the API rejects, is a definite answer about one caller and must
140
+ * not fail everyone else fast.
141
+ */
142
+ export function createPlanEntitlement(options = {}) {
143
+ const now = options.now ?? Date.now;
144
+ const cacheTtlMs = options.cacheTtlMs ?? DEFAULT_CACHE_TTL_MS;
145
+ const callerWaitMs = options.callerWaitMs ?? DEFAULT_CALLER_WAIT_MS;
146
+ const cooldownMs = options.cooldownMs ?? DEFAULT_COOLDOWN_MS;
147
+ const timeoutMs = options.timeoutMs ?? DEFAULT_READ_TIMEOUT_MS;
148
+ // The plan belongs to the org behind the credential, on one control plane.
149
+ // The credential is hashed so raw tokens are not held as map keys.
150
+ const verdicts = new Map();
151
+ const inflight = new Map();
152
+ // Keyed by control plane, because that is what the breaker is a statement
153
+ // about. `baseUrl` comes from the tool's own arguments, so one scalar here
154
+ // let an outage on one control plane fail calls against every other,
155
+ // healthy one.
156
+ const failFastUntil = new Map();
157
+ function cacheKey(baseUrl, token) {
158
+ return `${baseUrl}\n${createHash("sha256").update(token).digest("hex")}`;
159
+ }
160
+ function readPlan(key, baseUrl, token) {
161
+ const pending = (async () => {
162
+ try {
163
+ const data = await callServerApi({
164
+ baseUrl,
165
+ method: "GET",
166
+ path: PLAN_PATH,
167
+ timeoutMs,
168
+ token,
169
+ });
170
+ const envelope = readPlanFromEnvelope(data);
171
+ if (!envelope.readable) {
172
+ // A 200 that is not a `/users/me` envelope means the read did not
173
+ // land, so this is an outage, not a verdict. Not cached.
174
+ throw new PlanCheckUnavailableError(new Error("the plan was missing from the response"));
175
+ }
176
+ failFastUntil.delete(baseUrl);
177
+ verdicts.set(key, {
178
+ expiresAt: now() + cacheTtlMs,
179
+ plan: envelope.plan,
180
+ });
181
+ return envelope.plan;
182
+ }
183
+ catch (error) {
184
+ // Only an unhealthy endpoint opens the breaker. A 4xx is a definite
185
+ // answer about this one caller, so it must not fail everyone else fast.
186
+ if (planEndpointUnhealthy(error)) {
187
+ failFastUntil.set(baseUrl, now() + cooldownMs);
188
+ }
189
+ throw error instanceof PlanCheckUnavailableError
190
+ ? error
191
+ : new PlanCheckUnavailableError(error);
192
+ }
193
+ finally {
194
+ inflight.delete(key);
195
+ }
196
+ })();
197
+ inflight.set(key, pending);
198
+ return pending;
199
+ }
200
+ return {
201
+ async assert(baseUrl, token) {
202
+ const key = cacheKey(baseUrl, token);
203
+ const cached = verdicts.get(key);
204
+ if (cached && cached.expiresAt > now()) {
205
+ assertEntitled(cached.plan);
206
+ return;
207
+ }
208
+ verdicts.delete(key);
209
+ // A read already running is the one to wait on even while the breaker
210
+ // is open: it is the probe that will close it.
211
+ let pending = inflight.get(key);
212
+ if (!pending) {
213
+ const openUntil = failFastUntil.get(baseUrl) ?? 0;
214
+ if (openUntil > now()) {
215
+ throw new PlanCheckUnavailableError();
216
+ }
217
+ pending = readPlan(key, baseUrl, token);
218
+ }
219
+ // Race, rather than await: this caller stops waiting at its own
220
+ // deadline while the read carries on to fill the cache. Promise.race
221
+ // also keeps a rejection handler on `pending` for its whole life, so a
222
+ // read that fails after this caller gave up stays handled.
223
+ const deadline = callerDeadline(callerWaitMs);
224
+ try {
225
+ assertEntitled(await Promise.race([pending, deadline.expired]));
226
+ }
227
+ finally {
228
+ deadline.cancel();
229
+ }
230
+ },
231
+ };
232
+ }
233
+ function assertEntitled(plan) {
234
+ if (!plan || !ENTITLED_PLANS.has(plan)) {
235
+ throw new EntitlementError(plan);
236
+ }
237
+ }
238
+ /**
239
+ * The process-wide plan check. Sharing one instance is the point: the cache and
240
+ * the breaker only help if every Admin tool call goes through the same one.
241
+ */
242
+ const sharedPlanEntitlement = createPlanEntitlement();
243
+ export async function assertEnterprisePlan(baseUrl, token) {
244
+ return sharedPlanEntitlement.assert(baseUrl, token);
245
+ }
246
+ //# sourceMappingURL=entitlement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entitlement.js","sourceRoot":"","sources":["../src/entitlement.ts"],"names":[],"mappings":"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"}
package/dist/http.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ import { type Profile } from "./tools/index.js";
2
+ export type HttpServerOptions = {
3
+ profile?: Profile;
4
+ port?: number;
5
+ authToken?: string;
6
+ waitUntilClose?: boolean;
7
+ };
8
+ export declare function startHttpServer(options?: HttpServerOptions): Promise<void>;
9
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAgBA,OAAO,EAGL,KAAK,OAAO,EACb,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAuDF,wBAAsB,eAAe,CACnC,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAuRf"}
package/dist/http.js ADDED
@@ -0,0 +1,299 @@
1
+ import { createHmac, randomUUID, timingSafeEqual } from "node:crypto";
2
+ import { createServer, } from "node:http";
3
+ import pkg from "../package.json" with { type: "json" };
4
+ import { handleJsonRpc, invalidRequestResponse, isJsonRpcRequest, } from "./jsonrpc.js";
5
+ import { resolveProfile } from "./profile.js";
6
+ import { executeToolCall } from "./tool-call-result.js";
7
+ import { buildToolRegistry, toolDefinitions, } from "./tools/index.js";
8
+ const MAX_BODY_BYTES = 1_000_000;
9
+ function collectBody(req) {
10
+ return new Promise((resolve, reject) => {
11
+ const chunks = [];
12
+ let totalBytes = 0;
13
+ let settled = false;
14
+ const finalizeReject = (error) => {
15
+ if (settled) {
16
+ return;
17
+ }
18
+ settled = true;
19
+ reject(error);
20
+ };
21
+ const finalizeResolve = (body) => {
22
+ if (settled) {
23
+ return;
24
+ }
25
+ settled = true;
26
+ resolve(body);
27
+ };
28
+ req.on("data", (chunk) => {
29
+ if (settled) {
30
+ return;
31
+ }
32
+ totalBytes += chunk.length;
33
+ if (totalBytes > MAX_BODY_BYTES) {
34
+ req.pause();
35
+ finalizeReject(new Error("Request body too large"));
36
+ return;
37
+ }
38
+ chunks.push(chunk);
39
+ });
40
+ req.on("end", () => {
41
+ finalizeResolve(Buffer.concat(chunks).toString("utf-8"));
42
+ });
43
+ req.on("error", (error) => {
44
+ finalizeReject(error instanceof Error ? error : new Error(String(error)));
45
+ });
46
+ });
47
+ }
48
+ function constantTimeTokenEquals(expected, provided) {
49
+ // Hash both inputs first so timingSafeEqual always compares fixed-length data.
50
+ const key = "superblocks-mcp-http-auth-compare-v1";
51
+ const expectedDigest = createHmac("sha256", key).update(expected).digest();
52
+ const providedDigest = createHmac("sha256", key).update(provided).digest();
53
+ return timingSafeEqual(expectedDigest, providedDigest);
54
+ }
55
+ export async function startHttpServer(options = {}) {
56
+ const port = options.port ?? 8484;
57
+ const profile = options.profile ?? resolveProfile();
58
+ const waitUntilClose = options.waitUntilClose ?? false;
59
+ const authToken = options.authToken ?? process.env.SUPERBLOCKS_MCP_HTTP_TOKEN;
60
+ if (!authToken) {
61
+ throw new Error("HTTP transport requires auth token. Pass authToken option or set SUPERBLOCKS_MCP_HTTP_TOKEN.");
62
+ }
63
+ const registry = buildToolRegistry(toolDefinitions, profile);
64
+ const jsonRpcOptions = {
65
+ version: pkg.version,
66
+ listTools: () => registry.listTools(),
67
+ executeToolCall: (name, args) => executeToolCall(name, args, registry),
68
+ };
69
+ const ALLOWED_ORIGINS = new Set([
70
+ "http://localhost",
71
+ "http://127.0.0.1",
72
+ "https://localhost",
73
+ "https://127.0.0.1",
74
+ ]);
75
+ function corsOrigin(req) {
76
+ const origin = req.headers.origin;
77
+ if (!origin)
78
+ return undefined;
79
+ try {
80
+ const { protocol, hostname } = new URL(origin);
81
+ const base = `${protocol}//${hostname}`;
82
+ return ALLOWED_ORIGINS.has(base) ? origin : undefined;
83
+ }
84
+ catch {
85
+ return undefined;
86
+ }
87
+ }
88
+ function isAuthorized(req) {
89
+ const authorization = req.headers.authorization;
90
+ if (!authorization?.startsWith("Bearer ")) {
91
+ return false;
92
+ }
93
+ const providedToken = authorization.slice("Bearer ".length);
94
+ return constantTimeTokenEquals(authToken, providedToken);
95
+ }
96
+ function resolveSessionId(req) {
97
+ const header = req.headers["mcp-session-id"];
98
+ if (typeof header === "string" && header.length > 0) {
99
+ return header;
100
+ }
101
+ if (Array.isArray(header) &&
102
+ typeof header[0] === "string" &&
103
+ header[0].length > 0) {
104
+ return header[0];
105
+ }
106
+ return randomUUID();
107
+ }
108
+ const httpServer = createServer((req, res) => {
109
+ void (async () => {
110
+ const requestUrl = new URL(req.url ?? "", "http://127.0.0.1");
111
+ const allowed = corsOrigin(req);
112
+ if (allowed) {
113
+ res.setHeader("Access-Control-Allow-Origin", allowed);
114
+ res.setHeader("Vary", "Origin");
115
+ res.setHeader("Access-Control-Allow-Headers", "Authorization, Content-Type, Mcp-Session-Id");
116
+ res.setHeader("Access-Control-Expose-Headers", "Mcp-Session-Id");
117
+ res.setHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, OPTIONS");
118
+ }
119
+ if (requestUrl.pathname !== "/mcp") {
120
+ res.writeHead(404, { "Content-Type": "application/json" });
121
+ res.end(JSON.stringify({ error: "Not found" }));
122
+ return;
123
+ }
124
+ if (req.method === "OPTIONS") {
125
+ if (!allowed) {
126
+ res.writeHead(403, { "Content-Type": "application/json" });
127
+ res.end(JSON.stringify({ error: "Origin not allowed" }));
128
+ return;
129
+ }
130
+ res.writeHead(204);
131
+ res.end();
132
+ return;
133
+ }
134
+ if (!isAuthorized(req)) {
135
+ res.writeHead(401, { "Content-Type": "application/json" });
136
+ res.end(JSON.stringify({ error: "Unauthorized" }));
137
+ return;
138
+ }
139
+ if (req.method === "POST") {
140
+ let body;
141
+ try {
142
+ body = await collectBody(req);
143
+ }
144
+ catch (error) {
145
+ if (error instanceof Error &&
146
+ error.message === "Request body too large") {
147
+ res.writeHead(413, {
148
+ "Content-Type": "application/json",
149
+ Connection: "close",
150
+ });
151
+ res.end(JSON.stringify({ error: "Request body too large" }), () => {
152
+ if (!req.destroyed) {
153
+ req.destroy();
154
+ }
155
+ });
156
+ return;
157
+ }
158
+ throw error;
159
+ }
160
+ let parsed;
161
+ try {
162
+ parsed = JSON.parse(body);
163
+ }
164
+ catch {
165
+ res.writeHead(400, { "Content-Type": "application/json" });
166
+ res.end(JSON.stringify({ error: "Invalid JSON" }));
167
+ return;
168
+ }
169
+ const sessionId = resolveSessionId(req);
170
+ if (Array.isArray(parsed)) {
171
+ if (parsed.length === 0) {
172
+ res.writeHead(200, {
173
+ "Content-Type": "application/json",
174
+ "Mcp-Session-Id": sessionId,
175
+ });
176
+ res.end(JSON.stringify(invalidRequestResponse()));
177
+ return;
178
+ }
179
+ const results = (await Promise.all(parsed.map((r) => isJsonRpcRequest(r)
180
+ ? handleJsonRpc(r, jsonRpcOptions)
181
+ : Promise.resolve(invalidRequestResponse())))).filter((r) => r !== null);
182
+ if (results.length === 0) {
183
+ res.writeHead(202);
184
+ res.end();
185
+ }
186
+ else {
187
+ res.writeHead(200, {
188
+ "Content-Type": "application/json",
189
+ "Mcp-Session-Id": sessionId,
190
+ });
191
+ res.end(JSON.stringify(results));
192
+ }
193
+ }
194
+ else {
195
+ const result = isJsonRpcRequest(parsed)
196
+ ? await handleJsonRpc(parsed, jsonRpcOptions)
197
+ : invalidRequestResponse();
198
+ if (result === null) {
199
+ res.writeHead(202);
200
+ res.end();
201
+ }
202
+ else {
203
+ res.writeHead(200, {
204
+ "Content-Type": "application/json",
205
+ "Mcp-Session-Id": sessionId,
206
+ });
207
+ res.end(JSON.stringify(result));
208
+ }
209
+ }
210
+ return;
211
+ }
212
+ if (req.method === "GET") {
213
+ // Placeholder SSE endpoint for MCP Streamable HTTP compatibility.
214
+ // This endpoint currently sends heartbeat frames only.
215
+ const sessionId = resolveSessionId(req);
216
+ let closed = false;
217
+ const cleanup = () => {
218
+ if (closed) {
219
+ return;
220
+ }
221
+ closed = true;
222
+ clearInterval(heartbeat);
223
+ if (!res.writableEnded) {
224
+ res.end();
225
+ }
226
+ };
227
+ res.writeHead(200, {
228
+ "Content-Type": "text/event-stream",
229
+ "Cache-Control": "no-cache",
230
+ Connection: "keep-alive",
231
+ "Mcp-Session-Id": sessionId,
232
+ });
233
+ res.write(":\n\n");
234
+ const heartbeat = setInterval(() => {
235
+ if (closed || res.destroyed || res.writableEnded) {
236
+ cleanup();
237
+ return;
238
+ }
239
+ try {
240
+ res.write(":\n\n");
241
+ }
242
+ catch (error) {
243
+ console.error("SSE heartbeat write failed:", error);
244
+ cleanup();
245
+ }
246
+ }, 30_000);
247
+ req.on("close", cleanup);
248
+ req.on("aborted", cleanup);
249
+ res.on("close", cleanup);
250
+ res.on("error", (error) => {
251
+ console.error("SSE response stream error:", error);
252
+ cleanup();
253
+ });
254
+ return;
255
+ }
256
+ if (req.method === "DELETE") {
257
+ res.writeHead(200, { "Content-Type": "application/json" });
258
+ res.end(JSON.stringify({ ok: true }));
259
+ return;
260
+ }
261
+ res.writeHead(405, { "Content-Type": "application/json" });
262
+ res.end(JSON.stringify({ error: "Method not allowed" }));
263
+ })().catch((err) => {
264
+ console.error("Unhandled error in MCP HTTP handler:", err);
265
+ if (res.headersSent) {
266
+ if (!res.writableEnded) {
267
+ res.end();
268
+ }
269
+ return;
270
+ }
271
+ res.writeHead(500, { "Content-Type": "application/json" });
272
+ res.end(JSON.stringify({ error: "Internal server error" }));
273
+ });
274
+ });
275
+ return new Promise((resolve, reject) => {
276
+ const onRuntimeError = (error) => {
277
+ console.error("MCP HTTP server runtime error:", error);
278
+ };
279
+ const onError = (error) => reject(error);
280
+ httpServer.once("error", onError);
281
+ httpServer.listen(port, "127.0.0.1", () => {
282
+ httpServer.off("error", onError);
283
+ httpServer.on("error", onRuntimeError);
284
+ console.error(`superblocks-mcp HTTP server started on http://127.0.0.1:${port}/mcp (profile: ${profile}, tools: ${registry.listTools().length})`);
285
+ if (!waitUntilClose) {
286
+ resolve();
287
+ return;
288
+ }
289
+ httpServer.once("close", () => {
290
+ httpServer.off("error", onRuntimeError);
291
+ resolve();
292
+ });
293
+ httpServer.once("error", (error) => {
294
+ reject(error);
295
+ });
296
+ });
297
+ });
298
+ }
299
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env node
2
+ import { type Profile } from "./tools/index.js";
3
+ export { resolveProfile } from "./profile.js";
4
+ export { executeToolCall } from "./tool-call-result.js";
5
+ export { buildToolRegistry, toolDefinitions } from "./tools/index.js";
6
+ export { getPluginConfigurationSchema } from "./tools/plugin-configuration-schema.js";
7
+ export type { Profile, ToolRegistry } from "./tools/registry.js";
8
+ export { getAuthContext, runWithAuthContext } from "./auth/context.js";
9
+ export { handleJsonRpc, invalidRequestResponse, isJsonRpcRequest, type HandleJsonRpcOptions, type JsonRpcRequest, type JsonRpcResponse, } from "./jsonrpc.js";
10
+ export { MCP_SERVER_VERSION } from "./version.js";
11
+ export type ServerOptions = {
12
+ profile?: Profile;
13
+ };
14
+ export declare const MCP_SERVE_DEPRECATION_NOTICE = "superblocks-mcp is deprecated. Prefer: superblocks mcp setup --client claude (stdio MCP as the logged-in CLI user)";
15
+ export declare function startServer(options?: ServerOptions): Promise<void>;
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAiBA,OAAO,EAGL,KAAK,OAAO,EACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AACtF,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,4BAA4B,uHAC6E,CAAC;AAEvH,wBAAsB,WAAW,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC5E"}