@superblocksteam/mcp-server 2.0.0-SNAPSHOT.06fa243c132fe1fb

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 +132 -0
  88. package/dist/target/resolve-base-url-target.d.ts.map +1 -0
  89. package/dist/target/resolve-base-url-target.js +126 -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 +69 -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 +171 -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 +1324 -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,98 @@
1
+ import fs from "fs-extra";
2
+ import { ExportViewMode } from "@superblocksteam/shared";
3
+ import { buildDirectoryTreeSummary } from "../application/directory-tree.js";
4
+ import { materializeApplication } from "../application/materialize-application.js";
5
+ import { applicationModeLabel, applicationModeNote, summarizeMultiPageApplicationStructure, } from "../application/summary.js";
6
+ import { resolveAuthForOrigin } from "../auth/resolve-auth.js";
7
+ import { createSdk } from "../sdk/create-sdk.js";
8
+ import { getApplicationStructureInputSchema, resolveAppTarget, } from "../target/resolve-app-target.js";
9
+ import * as schemas from "./schemas.js";
10
+ import { parseToolInput } from "./validation.js";
11
+ const DEFAULT_DIRECTORY_TREE_ENTRY_LIMIT = 200;
12
+ export const getApplicationStructure = {
13
+ name: "get_application_structure",
14
+ title: "Get Application Structure",
15
+ description: "Fetch a Superblocks application structure summary. For Clark AI Apps this returns a bounded checkout tree and temp path. Provide either app_url or application_id plus base_url.",
16
+ inputSchema: schemas.getApplicationStructureToolInputSchema,
17
+ annotations: {
18
+ readOnlyHint: false,
19
+ destructiveHint: false,
20
+ idempotentHint: true,
21
+ openWorldHint: true,
22
+ },
23
+ audience: "customer",
24
+ async handler(args) {
25
+ const input = parseToolInput(getApplicationStructureInputSchema, args);
26
+ const target = resolveAppTarget(input);
27
+ const auth = await resolveAuthForOrigin(target.baseUrl);
28
+ const sdk = createSdk(auth.token, target.baseUrl);
29
+ const application = await sdk.fetchApplicationWithComponents({
30
+ applicationId: target.applicationId,
31
+ branch: target.branch,
32
+ viewMode: ExportViewMode.EXPORT_LIVE,
33
+ });
34
+ if (!application) {
35
+ throw new Error(`Application ${target.applicationId} was not found.`);
36
+ }
37
+ if (application.type === "multi-page") {
38
+ const mode = "1.0";
39
+ return {
40
+ ...summarizeMultiPageApplicationStructure(application),
41
+ application_mode_label: applicationModeLabel(mode),
42
+ application_mode_note: applicationModeNote(mode),
43
+ application_id: target.applicationId,
44
+ auth_source: auth.source,
45
+ base_url: target.baseUrl,
46
+ branch: target.branch,
47
+ environment: target.environment,
48
+ resolved_from: target.resolvedFrom,
49
+ };
50
+ }
51
+ const materialized = await materializeApplication({
52
+ sdk,
53
+ application,
54
+ branch: target.branch,
55
+ });
56
+ const cleanupRootPath = materialized.isTemporary
57
+ ? materialized.temporaryRootPath
58
+ : undefined;
59
+ if (materialized.isTemporary && !cleanupRootPath) {
60
+ throw new Error(`Expected temporaryRootPath for temporary checkout: ${materialized.checkoutPath}`);
61
+ }
62
+ try {
63
+ const directoryTree = await buildDirectoryTreeSummary(materialized.checkoutPath, {
64
+ exclude: new Set([".superblocks"]),
65
+ maxEntries: input.max_entries ?? DEFAULT_DIRECTORY_TREE_ENTRY_LIMIT,
66
+ });
67
+ const mode = "2.0";
68
+ return {
69
+ application_id: target.applicationId,
70
+ application_mode: mode,
71
+ application_mode_label: applicationModeLabel(mode),
72
+ application_mode_note: applicationModeNote(mode),
73
+ auth_source: auth.source,
74
+ base_url: target.baseUrl,
75
+ branch: target.branch,
76
+ checkout_is_temporary: materialized.isTemporary,
77
+ checkout_path: materialized.isTemporary
78
+ ? null
79
+ : materialized.checkoutPath,
80
+ directory_tree: directoryTree.entries,
81
+ environment: target.environment,
82
+ resolved_from: target.resolvedFrom,
83
+ tree_truncated: directoryTree.truncated,
84
+ };
85
+ }
86
+ finally {
87
+ if (cleanupRootPath) {
88
+ try {
89
+ await fs.remove(cleanupRootPath);
90
+ }
91
+ catch {
92
+ // Best-effort cleanup; do not mask primary result or error.
93
+ }
94
+ }
95
+ }
96
+ },
97
+ };
98
+ //# sourceMappingURL=get-application-structure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-application-structure.js","sourceRoot":"","sources":["../../src/tools/get-application-structure.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDefinition } from "./registry.js";
2
+ export declare const getApplicationSummary: ToolDefinition;
3
+ //# sourceMappingURL=get-application-summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-application-summary.d.ts","sourceRoot":"","sources":["../../src/tools/get-application-summary.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIpD,eAAO,MAAM,qBAAqB,EAAE,cAwCnC,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { ExportViewMode } from "@superblocksteam/shared";
2
+ import { applicationModeLabel, applicationModeNote, summarizeApplication, } from "../application/summary.js";
3
+ import { resolveAuthForOrigin } from "../auth/resolve-auth.js";
4
+ import { createSdk } from "../sdk/create-sdk.js";
5
+ import { appTargetInputSchema, resolveAppTarget, } from "../target/resolve-app-target.js";
6
+ import * as schemas from "./schemas.js";
7
+ import { parseToolInput } from "./validation.js";
8
+ export const getApplicationSummary = {
9
+ name: "get_application_summary",
10
+ title: "Get Application Summary",
11
+ description: "Fetch a Superblocks application summary, including the owning organization ID, app mode, deployed commit ID when available, and resolved environment. Provide either app_url or application_id plus base_url.",
12
+ inputSchema: schemas.appTargetToolInputSchema,
13
+ annotations: {
14
+ readOnlyHint: true,
15
+ destructiveHint: false,
16
+ idempotentHint: true,
17
+ openWorldHint: true,
18
+ },
19
+ audience: "customer",
20
+ async handler(args) {
21
+ const input = parseToolInput(appTargetInputSchema, args);
22
+ const target = resolveAppTarget(input);
23
+ const auth = await resolveAuthForOrigin(target.baseUrl);
24
+ const sdk = createSdk(auth.token, target.baseUrl);
25
+ const application = await sdk.fetchApplication({
26
+ applicationId: target.applicationId,
27
+ branch: target.branch,
28
+ viewMode: ExportViewMode.EXPORT_LIVE,
29
+ });
30
+ if (!application) {
31
+ throw new Error(`Application ${target.applicationId} was not found.`);
32
+ }
33
+ const summary = summarizeApplication(application);
34
+ return {
35
+ ...summary,
36
+ application_mode_label: applicationModeLabel(summary.application_mode),
37
+ application_mode_note: applicationModeNote(summary.application_mode),
38
+ auth_source: auth.source,
39
+ base_url: target.baseUrl,
40
+ branch: target.branch,
41
+ environment: target.environment,
42
+ resolved_from: target.resolvedFrom,
43
+ };
44
+ },
45
+ };
46
+ //# sourceMappingURL=get-application-summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-application-summary.js","sourceRoot":"","sources":["../../src/tools/get-application-summary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EACL,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,CAAC,MAAM,qBAAqB,GAAmB;IACnD,IAAI,EAAE,yBAAyB;IAC/B,KAAK,EAAE,yBAAyB;IAChC,WAAW,EACT,+MAA+M;IACjN,WAAW,EAAE,OAAO,CAAC,wBAAwB;IAC7C,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACpB;IACD,QAAQ,EAAE,UAAU;IACpB,KAAK,CAAC,OAAO,CAAC,IAAI;QAChB,MAAM,KAAK,GAAG,cAAc,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC;YAC7C,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,cAAc,CAAC,WAAW;SACrC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,eAAe,MAAM,CAAC,aAAa,iBAAiB,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,OAAO,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAClD,OAAO;YACL,GAAG,OAAO;YACV,sBAAsB,EAAE,oBAAoB,CAAC,OAAO,CAAC,gBAAgB,CAAC;YACtE,qBAAqB,EAAE,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,CAAC;YACpE,WAAW,EAAE,IAAI,CAAC,MAAM;YACxB,QAAQ,EAAE,MAAM,CAAC,OAAO;YACxB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,aAAa,EAAE,MAAM,CAAC,YAAY;SACnC,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDefinition } from "./registry.js";
2
+ export declare const getAuditEvents: ToolDefinition;
3
+ //# sourceMappingURL=get-audit-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-audit-events.d.ts","sourceRoot":"","sources":["../../src/tools/get-audit-events.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIpD,eAAO,MAAM,cAAc,EAAE,cAkD5B,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { resolveAuthForOrigin } from "../auth/resolve-auth.js";
2
+ import { createSdk } from "../sdk/create-sdk.js";
3
+ import { getAuditEventsInputSchema, resolveBaseUrlTarget, } from "../target/resolve-base-url-target.js";
4
+ import * as schemas from "./schemas.js";
5
+ import { parseToolInput } from "./validation.js";
6
+ export const getAuditEvents = {
7
+ name: "get_audit_events",
8
+ title: "Get Audit Events",
9
+ description: "Fetch v2 audit events (OCSF) for the current organization in a time range, with cursor pagination and OCSF filters. Use list_audit_event_types to discover all available class_uid, resource_type, and operation values for filtering.\n\n" +
10
+ "IMPORTANT — API execution double-counting: API execution events (class_uid=6003) are logged as start/completion pairs. " +
11
+ "Each execution produces two events with the same timestamp: a start event (status_id=99, no duration) and a completion event " +
12
+ "(status_id=1 for success or status_id=2 for failure, includes duration in ms). " +
13
+ "To count unique executions, filter to status_id != 99 (i.e. exclude IN_PROGRESS) or divide the raw class_uid=6003 count by 2.",
14
+ inputSchema: schemas.getAuditEventsToolInputSchema,
15
+ annotations: {
16
+ readOnlyHint: true,
17
+ destructiveHint: false,
18
+ idempotentHint: true,
19
+ openWorldHint: true,
20
+ },
21
+ audience: "customer",
22
+ async handler(args) {
23
+ const input = parseToolInput(getAuditEventsInputSchema, args);
24
+ const target = resolveBaseUrlTarget(input);
25
+ const auth = await resolveAuthForOrigin(target.baseUrl);
26
+ const sdk = createSdk(auth.token, target.baseUrl);
27
+ const response = await sdk.fetchAuditEvents({
28
+ activityId: input.activity_id,
29
+ applicationId: input.application_id,
30
+ timeStart: input.time_start,
31
+ timeEnd: input.time_end,
32
+ classUid: input.class_uid,
33
+ status: input.status,
34
+ severity: input.severity,
35
+ actor: input.actor,
36
+ resourceType: input.resource_type,
37
+ resourceId: input.resource_id,
38
+ search: input.search,
39
+ cursor: input.cursor,
40
+ limit: input.limit,
41
+ });
42
+ if (!Array.isArray(response?.events)) {
43
+ throw new Error("Invalid audit events response from SDK");
44
+ }
45
+ return {
46
+ events: response.events,
47
+ next_cursor: response.next_cursor,
48
+ auth_source: auth.source,
49
+ base_url: target.baseUrl,
50
+ environment: target.environment,
51
+ total_count: response.events.length,
52
+ };
53
+ },
54
+ };
55
+ //# sourceMappingURL=get-audit-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-audit-events.js","sourceRoot":"","sources":["../../src/tools/get-audit-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE,kBAAkB;IACzB,WAAW,EACT,4OAA4O;QAC5O,yHAAyH;QACzH,+HAA+H;QAC/H,iFAAiF;QACjF,+HAA+H;IACjI,WAAW,EAAE,OAAO,CAAC,6BAA6B;IAClD,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACpB;IACD,QAAQ,EAAE,UAAU;IACpB,KAAK,CAAC,OAAO,CAAC,IAAI;QAChB,MAAM,KAAK,GAAG,cAAc,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC;YAC1C,UAAU,EAAE,KAAK,CAAC,WAAW;YAC7B,aAAa,EAAE,KAAK,CAAC,cAAc;YACnC,SAAS,EAAE,KAAK,CAAC,UAAU;YAC3B,OAAO,EAAE,KAAK,CAAC,QAAQ;YACvB,QAAQ,EAAE,KAAK,CAAC,SAAS;YACzB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,YAAY,EAAE,KAAK,CAAC,aAAa;YACjC,UAAU,EAAE,KAAK,CAAC,WAAW;YAC7B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,WAAW,EAAE,IAAI,CAAC,MAAM;YACxB,QAAQ,EAAE,MAAM,CAAC,OAAO;YACxB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM;SACpC,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDefinition } from "./registry.js";
2
+ export declare const getAuthStatus: ToolDefinition;
3
+ //# sourceMappingURL=get-auth-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-auth-status.d.ts","sourceRoot":"","sources":["../../src/tools/get-auth-status.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIpD,eAAO,MAAM,aAAa,EAAE,cA8B3B,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { getAuthSetupHint, getAuthStatusForOrigin, } from "../auth/resolve-auth.js";
2
+ import { authStatusInputSchema, resolveOriginTarget, } from "../target/resolve-app-target.js";
3
+ import * as schemas from "./schemas.js";
4
+ import { parseToolInput } from "./validation.js";
5
+ export const getAuthStatus = {
6
+ name: "get_auth_status",
7
+ title: "Get Auth Status",
8
+ description: "Check whether the current user is authenticated for a Superblocks environment derived from either an app_url or a base_url.",
9
+ inputSchema: schemas.authStatusToolInputSchema,
10
+ annotations: {
11
+ readOnlyHint: true,
12
+ destructiveHint: false,
13
+ idempotentHint: true,
14
+ openWorldHint: false,
15
+ },
16
+ audience: "customer",
17
+ async handler(args) {
18
+ const input = parseToolInput(authStatusInputSchema, args);
19
+ const target = resolveOriginTarget(input);
20
+ const authStatus = await getAuthStatusForOrigin(target.baseUrl);
21
+ return {
22
+ authenticated: authStatus.authenticated,
23
+ auth_source: authStatus.source,
24
+ base_url: target.baseUrl,
25
+ environment: target.environment,
26
+ resolved_from: target.resolvedFrom,
27
+ setup_hint: authStatus.authenticated
28
+ ? undefined
29
+ : getAuthSetupHint(target.baseUrl),
30
+ updated_at: authStatus.updatedAt,
31
+ };
32
+ },
33
+ };
34
+ //# sourceMappingURL=get-auth-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-auth-status.js","sourceRoot":"","sources":["../../src/tools/get-auth-status.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,iBAAiB;IACxB,WAAW,EACT,6HAA6H;IAC/H,WAAW,EAAE,OAAO,CAAC,yBAAyB;IAC9C,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;KACrB;IACD,QAAQ,EAAE,UAAU;IACpB,KAAK,CAAC,OAAO,CAAC,IAAI;QAChB,MAAM,KAAK,GAAG,cAAc,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEhE,OAAO;YACL,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,WAAW,EAAE,UAAU,CAAC,MAAM;YAC9B,QAAQ,EAAE,MAAM,CAAC,OAAO;YACxB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,UAAU,EAAE,UAAU,CAAC,aAAa;gBAClC,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC;YACpC,UAAU,EAAE,UAAU,CAAC,SAAS;SACjC,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDefinition } from "./registry.js";
2
+ export declare const getBillingPlanSummary: ToolDefinition;
3
+ //# sourceMappingURL=get-billing-plan-summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-billing-plan-summary.d.ts","sourceRoot":"","sources":["../../src/tools/get-billing-plan-summary.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIpD,eAAO,MAAM,qBAAqB,EAAE,cA4BnC,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { resolveAuthForOrigin } from "../auth/resolve-auth.js";
2
+ import { createSdk } from "../sdk/create-sdk.js";
3
+ import { billingBaseUrlInputSchema, resolveBaseUrlTarget, } from "../target/resolve-base-url-target.js";
4
+ import * as schemas from "./schemas.js";
5
+ import { parseToolInput } from "./validation.js";
6
+ export const getBillingPlanSummary = {
7
+ name: "get_billing_plan_summary",
8
+ title: "Get Billing Plan Summary",
9
+ description: "Get the current billing plan summary including credit allocation, usage, billing cycle dates, and deployed application counts. Requires billing:manage permission.",
10
+ inputSchema: schemas.getBillingPlanSummaryToolInputSchema,
11
+ annotations: {
12
+ readOnlyHint: true,
13
+ destructiveHint: false,
14
+ idempotentHint: true,
15
+ openWorldHint: true,
16
+ },
17
+ audience: "customer",
18
+ async handler(args) {
19
+ const input = parseToolInput(billingBaseUrlInputSchema, args);
20
+ const target = resolveBaseUrlTarget(input);
21
+ const auth = await resolveAuthForOrigin(target.baseUrl);
22
+ const sdk = createSdk(auth.token, target.baseUrl);
23
+ const summary = await sdk.fetchBillingPlanSummary();
24
+ return {
25
+ auth_source: auth.source,
26
+ base_url: target.baseUrl,
27
+ environment: target.environment,
28
+ plan: summary,
29
+ };
30
+ },
31
+ };
32
+ //# sourceMappingURL=get-billing-plan-summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-billing-plan-summary.js","sourceRoot":"","sources":["../../src/tools/get-billing-plan-summary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,CAAC,MAAM,qBAAqB,GAAmB;IACnD,IAAI,EAAE,0BAA0B;IAChC,KAAK,EAAE,0BAA0B;IACjC,WAAW,EACT,oKAAoK;IACtK,WAAW,EAAE,OAAO,CAAC,oCAAoC;IACzD,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACpB;IACD,QAAQ,EAAE,UAAU;IACpB,KAAK,CAAC,OAAO,CAAC,IAAI;QAChB,MAAM,KAAK,GAAG,cAAc,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAElD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,uBAAuB,EAAE,CAAC;QAEpD,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,MAAM;YACxB,QAAQ,EAAE,MAAM,CAAC,OAAO;YACxB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDefinition } from "./registry.js";
2
+ export declare const getBillingUsageDaily: ToolDefinition;
3
+ //# sourceMappingURL=get-billing-usage-daily.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-billing-usage-daily.d.ts","sourceRoot":"","sources":["../../src/tools/get-billing-usage-daily.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIpD,eAAO,MAAM,oBAAoB,EAAE,cAqClC,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { resolveAuthForOrigin } from "../auth/resolve-auth.js";
2
+ import { createSdk } from "../sdk/create-sdk.js";
3
+ import { billingDateRangeInputSchema, resolveBaseUrlTarget, } from "../target/resolve-base-url-target.js";
4
+ import * as schemas from "./schemas.js";
5
+ import { parseToolInput } from "./validation.js";
6
+ export const getBillingUsageDaily = {
7
+ name: "get_billing_usage_daily",
8
+ title: "Get Billing Usage (Daily)",
9
+ description: "Get daily AI credit usage for a date range. Returns one row per day with the total credits consumed. Requires billing:manage permission.",
10
+ inputSchema: schemas.getBillingUsageDailyToolInputSchema,
11
+ annotations: {
12
+ readOnlyHint: true,
13
+ destructiveHint: false,
14
+ idempotentHint: true,
15
+ openWorldHint: true,
16
+ },
17
+ audience: "customer",
18
+ async handler(args) {
19
+ const input = parseToolInput(billingDateRangeInputSchema, args);
20
+ const target = resolveBaseUrlTarget(input);
21
+ const auth = await resolveAuthForOrigin(target.baseUrl);
22
+ const sdk = createSdk(auth.token, target.baseUrl);
23
+ const rows = await sdk.fetchBillingUsageDaily(input.start_date, input.end_date);
24
+ const totalCredits = rows.reduce((sum, r) => sum + r.creditsUsed, 0);
25
+ return {
26
+ auth_source: auth.source,
27
+ base_url: target.baseUrl,
28
+ daily_usage: rows,
29
+ end_date: input.end_date,
30
+ environment: target.environment,
31
+ start_date: input.start_date,
32
+ total_credits: totalCredits,
33
+ total_days: rows.length,
34
+ };
35
+ },
36
+ };
37
+ //# sourceMappingURL=get-billing-usage-daily.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-billing-usage-daily.js","sourceRoot":"","sources":["../../src/tools/get-billing-usage-daily.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,CAAC,MAAM,oBAAoB,GAAmB;IAClD,IAAI,EAAE,yBAAyB;IAC/B,KAAK,EAAE,2BAA2B;IAClC,WAAW,EACT,0IAA0I;IAC5I,WAAW,EAAE,OAAO,CAAC,mCAAmC;IACxD,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACpB;IACD,QAAQ,EAAE,UAAU;IACpB,KAAK,CAAC,OAAO,CAAC,IAAI;QAChB,MAAM,KAAK,GAAG,cAAc,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAElD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,sBAAsB,CAC3C,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,QAAQ,CACf,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAErE,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,MAAM;YACxB,QAAQ,EAAE,MAAM,CAAC,OAAO;YACxB,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,aAAa,EAAE,YAAY;YAC3B,UAAU,EAAE,IAAI,CAAC,MAAM;SACxB,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDefinition } from "./registry.js";
2
+ export declare const getBillingUsageRecords: ToolDefinition;
3
+ //# sourceMappingURL=get-billing-usage-records.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-billing-usage-records.d.ts","sourceRoot":"","sources":["../../src/tools/get-billing-usage-records.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAiMpD,eAAO,MAAM,sBAAsB,EAAE,cAiIpC,CAAC"}
@@ -0,0 +1,246 @@
1
+ import { resolveAuthForOrigin } from "../auth/resolve-auth.js";
2
+ import { createSdk } from "../sdk/create-sdk.js";
3
+ import { billingUsageRecordsInputSchema, resolveBaseUrlTarget, } from "../target/resolve-base-url-target.js";
4
+ import { applyPagination } from "./pagination.js";
5
+ import * as schemas from "./schemas.js";
6
+ import { parseToolInput } from "./validation.js";
7
+ const NO_CHECKPOINT_LABEL = "No checkpoint";
8
+ function buildCheckpointRollup(rows) {
9
+ const byCheckpoint = new Map();
10
+ let noCheckpoint = null;
11
+ for (const row of rows) {
12
+ // Treat a null, undefined, or empty checkpointId as "no checkpoint" so a
13
+ // malformed/empty id never becomes a phantom checkpoint entry. All credit
14
+ // sums are `?? 0`-guarded: the wire shape is a hand-maintained mirror with
15
+ // no runtime validation, and an absent numeric field must degrade a row to
16
+ // a 0 contribution, never NaN (NaN serializes to null and would silently
17
+ // corrupt the whole response's total).
18
+ if (!row.checkpointId) {
19
+ if (noCheckpoint === null) {
20
+ noCheckpoint = {
21
+ application_id: row.applicationId,
22
+ application_name: row.applicationName,
23
+ checkpoint_id: null,
24
+ checkpoint_label: NO_CHECKPOINT_LABEL,
25
+ credits_used: 0,
26
+ last_activity_date: row.date,
27
+ on_demand_credits_used: 0,
28
+ unbilled_credits_used: 0,
29
+ };
30
+ }
31
+ else if (noCheckpoint.application_id !== row.applicationId) {
32
+ // The bucket folds rows from more than one application (or a row with
33
+ // no application at all), so it is not attributable to a single app.
34
+ // Under an application_id filter every folded row shares one app, so
35
+ // this branch never fires and the bucket keeps that app's id/name.
36
+ noCheckpoint.application_id = null;
37
+ noCheckpoint.application_name = null;
38
+ }
39
+ noCheckpoint.credits_used += row.creditsUsed ?? 0;
40
+ noCheckpoint.on_demand_credits_used += row.onDemandCreditsUsed ?? 0;
41
+ noCheckpoint.unbilled_credits_used += row.unbilledCreditsUsed ?? 0;
42
+ if (row.date > noCheckpoint.last_activity_date) {
43
+ noCheckpoint.last_activity_date = row.date;
44
+ }
45
+ continue;
46
+ }
47
+ const existing = byCheckpoint.get(row.checkpointId) ?? {
48
+ application_id: row.applicationId,
49
+ application_name: row.applicationName,
50
+ checkpoint_id: row.checkpointId,
51
+ checkpoint_label: row.checkpointLabel,
52
+ credits_used: 0,
53
+ last_activity_date: row.date,
54
+ on_demand_credits_used: 0,
55
+ unbilled_credits_used: 0,
56
+ };
57
+ existing.credits_used += row.creditsUsed ?? 0;
58
+ existing.on_demand_credits_used += row.onDemandCreditsUsed ?? 0;
59
+ existing.unbilled_credits_used += row.unbilledCreditsUsed ?? 0;
60
+ existing.checkpoint_label ??= row.checkpointLabel;
61
+ existing.application_id ??= row.applicationId;
62
+ existing.application_name ??= row.applicationName;
63
+ if (row.date > existing.last_activity_date) {
64
+ existing.last_activity_date = row.date;
65
+ }
66
+ byCheckpoint.set(row.checkpointId, existing);
67
+ }
68
+ const checkpoints = [...byCheckpoint.values()].sort((a, b) => b.credits_used - a.credits_used ||
69
+ b.last_activity_date.localeCompare(a.last_activity_date) ||
70
+ (a.checkpoint_id ?? "").localeCompare(b.checkpoint_id ?? ""));
71
+ if (noCheckpoint) {
72
+ // The "No checkpoint" bucket is always last, regardless of its credit total, so real checkpoints stay top-ranked.
73
+ checkpoints.push(noCheckpoint);
74
+ }
75
+ return checkpoints;
76
+ }
77
+ function matchesAppFilters(row, input) {
78
+ if (input.application_id && row.applicationId !== input.application_id) {
79
+ return false;
80
+ }
81
+ if (input.usage_type && row.usageType !== input.usage_type) {
82
+ return false;
83
+ }
84
+ return true;
85
+ }
86
+ function summarizePagination(paged) {
87
+ return {
88
+ has_more: paged.has_more,
89
+ limit: paged.limit,
90
+ next_offset: paged.next_offset,
91
+ offset: paged.offset,
92
+ returned_count: paged.returned_count,
93
+ total_count: paged.total_count,
94
+ };
95
+ }
96
+ function buildApplicationAggregates({ applicationUsageRows, dollarLedgerRows, }) {
97
+ const byApplication = new Map();
98
+ if (dollarLedgerRows.length > 0) {
99
+ for (const row of dollarLedgerRows) {
100
+ if (!row.applicationId) {
101
+ continue;
102
+ }
103
+ const existing = byApplication.get(row.applicationId) ?? {
104
+ amount_cents: 0,
105
+ application_id: row.applicationId,
106
+ application_name: row.applicationName,
107
+ credits: null,
108
+ };
109
+ existing.amount_cents = (existing.amount_cents ?? 0) + row.amountCents;
110
+ existing.application_name ??= row.applicationName;
111
+ byApplication.set(row.applicationId, existing);
112
+ }
113
+ return [...byApplication.values()].sort((a, b) => (b.amount_cents ?? 0) - (a.amount_cents ?? 0) ||
114
+ (a.application_name ?? "").localeCompare(b.application_name ?? "") ||
115
+ a.application_id.localeCompare(b.application_id));
116
+ }
117
+ for (const row of applicationUsageRows) {
118
+ if (!row.applicationId) {
119
+ continue;
120
+ }
121
+ const existing = byApplication.get(row.applicationId) ?? {
122
+ amount_cents: null,
123
+ application_id: row.applicationId,
124
+ application_name: row.applicationName,
125
+ credits: 0,
126
+ };
127
+ existing.credits = (existing.credits ?? 0) + (row.creditsUsed ?? 0);
128
+ byApplication.set(row.applicationId, existing);
129
+ }
130
+ return [...byApplication.values()].sort((a, b) => (b.credits ?? 0) - (a.credits ?? 0) ||
131
+ (a.application_name ?? "").localeCompare(b.application_name ?? "") ||
132
+ a.application_id.localeCompare(b.application_id));
133
+ }
134
+ export const getBillingUsageRecords = {
135
+ name: "get_billing_usage_records",
136
+ title: "Get Billing Usage Records",
137
+ description: "Get AI credit billing usage for a date range, rolled up per checkpoint (an accepted AI change). Each entry has checkpoint_id, checkpoint_label (the checkpoint's commit message; null when the commit had no message), application, credits_used, and overage splits. Usage not attributable to any checkpoint (history from before checkpoint tracking shipped, never-accepted prompts, and agent or utility usage) is aggregated into a single trailing entry with checkpoint_id null — expected, not missing data; older date ranges fall mostly in that bucket. Because that entry sorts last, it may sit past the requested page; no_checkpoint_credits always reports its credit total for the whole filtered range, so compare it against total_credits before summarizing a partial page. checkpoint_data_available is false when the server predates checkpoint rollups (no_checkpoint_credits is then null — unknowable, not zero). App filters (application_id, usage_type) scope every surface, including checkpoints. Pagination (limit/offset) applies only to the checkpoints list; by_application, dollar_ledger_records, and top_users are always full summaries. by_application credits are an independent server-side per-application total and are not expected to equal the sum of that application's checkpoints. Requires billing:manage permission.",
138
+ inputSchema: schemas.getBillingUsageRecordsToolInputSchema,
139
+ annotations: {
140
+ readOnlyHint: true,
141
+ destructiveHint: false,
142
+ idempotentHint: true,
143
+ openWorldHint: true,
144
+ },
145
+ audience: "customer",
146
+ async handler(args) {
147
+ const input = parseToolInput(billingUsageRecordsInputSchema, args);
148
+ const target = resolveBaseUrlTarget(input);
149
+ const auth = await resolveAuthForOrigin(target.baseUrl);
150
+ const sdk = createSdk(auth.token, target.baseUrl);
151
+ const response = await sdk.fetchBillingUsageRecordsResponse(input.start_date, input.end_date);
152
+ const hasAppScopedFilter = Boolean(input.application_id || input.usage_type);
153
+ const dollarLedgerRows = (response.dollarLedgerRows ?? []).filter((row) => matchesAppFilters(row, input));
154
+ const applicationUsageRows = (response.applicationUsageRows ?? []).filter((row) => matchesAppFilters(row, input));
155
+ const byApplication = buildApplicationAggregates({
156
+ applicationUsageRows,
157
+ dollarLedgerRows,
158
+ });
159
+ // Two separate questions. `hasUsageGroupRows` — did the server send the
160
+ // rollup collection? — drives which source computes the totals, so they
161
+ // always reconcile with `checkpoints`. `checkpoint_data_available` — does
162
+ // the server actually map usage to checkpoints? — is the presence of the
163
+ // checkpointId FIELD on the rows, not merely of the array: a pre-checkpoint
164
+ // server (the state between #20020 and #20888 landing) returns
165
+ // usageGroupRows with no checkpointId, and must report false so a consumer
166
+ // can tell "no rollup capability" from "rollup present, nothing mapped yet".
167
+ const usageGroupRows = response.usageGroupRows;
168
+ const hasUsageGroupRows = Array.isArray(usageGroupRows);
169
+ const checkpointDataAvailable = Array.isArray(usageGroupRows) &&
170
+ (usageGroupRows.length === 0 ||
171
+ usageGroupRows.some((row) => "checkpointId" in row));
172
+ const filteredGroupRows = (usageGroupRows ?? []).filter((row) => {
173
+ if (input.application_id && row.applicationId !== input.application_id) {
174
+ return false;
175
+ }
176
+ // Checkpoint rollups are AI-credit usage; any other usage type excludes them.
177
+ if (input.usage_type && input.usage_type !== "ai_credits") {
178
+ return false;
179
+ }
180
+ return true;
181
+ });
182
+ const allCheckpoints = buildCheckpointRollup(filteredGroupRows);
183
+ // The trailing bucket sorts last, so pagination can leave it off the page
184
+ // while total_credits still includes it. This scalar keeps the unattributed
185
+ // total visible to consumers that never page. null = pre-rollup server,
186
+ // where attributability is unknowable (distinct from a known 0).
187
+ const noCheckpointCredits = hasUsageGroupRows
188
+ ? (allCheckpoints.find((c) => c.checkpoint_id === null)?.credits_used ??
189
+ 0)
190
+ : null;
191
+ const legacyRows = hasAppScopedFilter ? [] : response.rows;
192
+ // Every legacy path gets the same `?? 0` guard as the usageGroupRows path:
193
+ // these are hand-maintained wire mirrors with no runtime validation, and
194
+ // one absent creditsUsed must degrade that row to 0, never NaN-poison the
195
+ // total (NaN serializes to null and silently corrupts the response).
196
+ const totalCredits = hasUsageGroupRows
197
+ ? filteredGroupRows.reduce((sum, r) => sum + (r.creditsUsed ?? 0), 0)
198
+ : hasAppScopedFilter
199
+ ? // Sum real per-app credits from applicationUsageRows: by_application's
200
+ // `credits` is null in dollar-ledger mode, which would zero the total.
201
+ applicationUsageRows.reduce((sum, r) => sum + (r.creditsUsed ?? 0), 0)
202
+ : legacyRows.reduce((sum, r) => sum + (r.creditsUsed ?? 0), 0);
203
+ const byUser = new Map();
204
+ const userRows = hasUsageGroupRows ? filteredGroupRows : legacyRows;
205
+ for (const r of userRows) {
206
+ if (!r.email) {
207
+ continue;
208
+ }
209
+ byUser.set(r.email, (byUser.get(r.email) ?? 0) + (r.creditsUsed ?? 0));
210
+ }
211
+ const topUsers = [...byUser.entries()]
212
+ .sort((a, b) => b[1] - a[1])
213
+ .slice(0, 10)
214
+ .map(([email, credits]) => ({ email, credits }));
215
+ // `checkpoints` is the primary list and the only paginated collection; the
216
+ // pagination fields always describe it. `by_application`, `top_users`, and
217
+ // `dollar_ledger_records` are full app-scoped summaries, never paginated.
218
+ const checkpointPagination = applyPagination(allCheckpoints, {
219
+ limit: input.limit,
220
+ offset: input.offset,
221
+ });
222
+ const checkpoints = checkpointPagination.page;
223
+ const pageInfo = summarizePagination(checkpointPagination);
224
+ return {
225
+ auth_source: auth.source,
226
+ base_url: target.baseUrl,
227
+ by_application: byApplication,
228
+ checkpoint_data_available: checkpointDataAvailable,
229
+ checkpoints,
230
+ dollar_ledger_records: dollarLedgerRows,
231
+ end_date: input.end_date,
232
+ environment: target.environment,
233
+ has_more: pageInfo.has_more,
234
+ limit: pageInfo.limit,
235
+ next_offset: pageInfo.next_offset,
236
+ no_checkpoint_credits: noCheckpointCredits,
237
+ offset: pageInfo.offset,
238
+ returned_count: pageInfo.returned_count,
239
+ start_date: input.start_date,
240
+ top_users: topUsers,
241
+ total_count: pageInfo.total_count,
242
+ total_credits: totalCredits,
243
+ };
244
+ },
245
+ };
246
+ //# sourceMappingURL=get-billing-usage-records.js.map