@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.
- package/LICENSE.txt +87 -0
- package/README.md +266 -0
- package/dist/application/commit-history.d.ts +27 -0
- package/dist/application/commit-history.d.ts.map +1 -0
- package/dist/application/commit-history.js +36 -0
- package/dist/application/commit-history.js.map +1 -0
- package/dist/application/directory-tree.d.ts +11 -0
- package/dist/application/directory-tree.d.ts.map +1 -0
- package/dist/application/directory-tree.js +37 -0
- package/dist/application/directory-tree.js.map +1 -0
- package/dist/application/materialize-application.d.ts +16 -0
- package/dist/application/materialize-application.d.ts.map +1 -0
- package/dist/application/materialize-application.js +47 -0
- package/dist/application/materialize-application.js.map +1 -0
- package/dist/application/summary.d.ts +25 -0
- package/dist/application/summary.d.ts.map +1 -0
- package/dist/application/summary.js +42 -0
- package/dist/application/summary.js.map +1 -0
- package/dist/auth/commands.d.ts +3 -0
- package/dist/auth/commands.d.ts.map +1 -0
- package/dist/auth/commands.js +71 -0
- package/dist/auth/commands.js.map +1 -0
- package/dist/auth/context.d.ts +7 -0
- package/dist/auth/context.d.ts.map +1 -0
- package/dist/auth/context.js +9 -0
- package/dist/auth/context.js.map +1 -0
- package/dist/auth/login.d.ts +10 -0
- package/dist/auth/login.d.ts.map +1 -0
- package/dist/auth/login.js +48 -0
- package/dist/auth/login.js.map +1 -0
- package/dist/auth/resolve-auth.d.ts +15 -0
- package/dist/auth/resolve-auth.d.ts.map +1 -0
- package/dist/auth/resolve-auth.js +75 -0
- package/dist/auth/resolve-auth.js.map +1 -0
- package/dist/auth/resolve-current-organization.d.ts +6 -0
- package/dist/auth/resolve-current-organization.d.ts.map +1 -0
- package/dist/auth/resolve-current-organization.js +15 -0
- package/dist/auth/resolve-current-organization.js.map +1 -0
- package/dist/auth/store.d.ts +11 -0
- package/dist/auth/store.d.ts.map +1 -0
- package/dist/auth/store.js +63 -0
- package/dist/auth/store.js.map +1 -0
- package/dist/entitlement-wrapper.d.ts +3 -0
- package/dist/entitlement-wrapper.d.ts.map +1 -0
- package/dist/entitlement-wrapper.js +49 -0
- package/dist/entitlement-wrapper.js.map +1 -0
- package/dist/entitlement.d.ts +55 -0
- package/dist/entitlement.d.ts.map +1 -0
- package/dist/entitlement.js +246 -0
- package/dist/entitlement.js.map +1 -0
- package/dist/http.d.ts +9 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +299 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +84 -0
- package/dist/index.js.map +1 -0
- package/dist/jsonrpc.d.ts +25 -0
- package/dist/jsonrpc.d.ts.map +1 -0
- package/dist/jsonrpc.js +102 -0
- package/dist/jsonrpc.js.map +1 -0
- package/dist/profile.d.ts +3 -0
- package/dist/profile.d.ts.map +1 -0
- package/dist/profile.js +7 -0
- package/dist/profile.js.map +1 -0
- package/dist/sdk/create-sdk.d.ts +3 -0
- package/dist/sdk/create-sdk.d.ts.map +1 -0
- package/dist/sdk/create-sdk.js +6 -0
- package/dist/sdk/create-sdk.js.map +1 -0
- package/dist/setup/commands.d.ts +7 -0
- package/dist/setup/commands.d.ts.map +1 -0
- package/dist/setup/commands.js +58 -0
- package/dist/setup/commands.js.map +1 -0
- package/dist/setup/index.d.ts +5 -0
- package/dist/setup/index.d.ts.map +1 -0
- package/dist/setup/index.js +3 -0
- package/dist/setup/index.js.map +1 -0
- package/dist/setup/setup-config.d.ts +27 -0
- package/dist/setup/setup-config.d.ts.map +1 -0
- package/dist/setup/setup-config.js +100 -0
- package/dist/setup/setup-config.js.map +1 -0
- package/dist/target/resolve-app-target.d.ts +102 -0
- package/dist/target/resolve-app-target.d.ts.map +1 -0
- package/dist/target/resolve-app-target.js +176 -0
- package/dist/target/resolve-app-target.js.map +1 -0
- package/dist/target/resolve-base-url-target.d.ts +128 -0
- package/dist/target/resolve-base-url-target.d.ts.map +1 -0
- package/dist/target/resolve-base-url-target.js +125 -0
- package/dist/target/resolve-base-url-target.js.map +1 -0
- package/dist/target/resolve-organization-target.d.ts +23 -0
- package/dist/target/resolve-organization-target.d.ts.map +1 -0
- package/dist/target/resolve-organization-target.js +50 -0
- package/dist/target/resolve-organization-target.js.map +1 -0
- package/dist/test-setup.d.ts +2 -0
- package/dist/test-setup.d.ts.map +1 -0
- package/dist/test-setup.js +9 -0
- package/dist/test-setup.js.map +1 -0
- package/dist/tool-call-result.d.ts +12 -0
- package/dist/tool-call-result.d.ts.map +1 -0
- package/dist/tool-call-result.js +32 -0
- package/dist/tool-call-result.js.map +1 -0
- package/dist/tools/aggregate-audit-events.d.ts +3 -0
- package/dist/tools/aggregate-audit-events.d.ts.map +1 -0
- package/dist/tools/aggregate-audit-events.js +60 -0
- package/dist/tools/aggregate-audit-events.js.map +1 -0
- package/dist/tools/assign-builder-seat.d.ts +3 -0
- package/dist/tools/assign-builder-seat.d.ts.map +1 -0
- package/dist/tools/assign-builder-seat.js +45 -0
- package/dist/tools/assign-builder-seat.js.map +1 -0
- package/dist/tools/billing-usage-limits.d.ts +5 -0
- package/dist/tools/billing-usage-limits.d.ts.map +1 -0
- package/dist/tools/billing-usage-limits.js +191 -0
- package/dist/tools/billing-usage-limits.js.map +1 -0
- package/dist/tools/checkout-application.d.ts +3 -0
- package/dist/tools/checkout-application.d.ts.map +1 -0
- package/dist/tools/checkout-application.js +65 -0
- package/dist/tools/checkout-application.js.map +1 -0
- package/dist/tools/create-folder.d.ts +3 -0
- package/dist/tools/create-folder.d.ts.map +1 -0
- package/dist/tools/create-folder.js +39 -0
- package/dist/tools/create-folder.js.map +1 -0
- package/dist/tools/create-integration.d.ts +10 -0
- package/dist/tools/create-integration.d.ts.map +1 -0
- package/dist/tools/create-integration.js +93 -0
- package/dist/tools/create-integration.js.map +1 -0
- package/dist/tools/datasource-configuration-by-type.schema.json +2619 -0
- package/dist/tools/deactivate-user.d.ts +3 -0
- package/dist/tools/deactivate-user.d.ts.map +1 -0
- package/dist/tools/deactivate-user.js +95 -0
- package/dist/tools/deactivate-user.js.map +1 -0
- package/dist/tools/delete-folder.d.ts +3 -0
- package/dist/tools/delete-folder.d.ts.map +1 -0
- package/dist/tools/delete-folder.js +42 -0
- package/dist/tools/delete-folder.js.map +1 -0
- package/dist/tools/delete-group-org-role.d.ts +3 -0
- package/dist/tools/delete-group-org-role.d.ts.map +1 -0
- package/dist/tools/delete-group-org-role.js +54 -0
- package/dist/tools/delete-group-org-role.js.map +1 -0
- package/dist/tools/delete-integration.d.ts +3 -0
- package/dist/tools/delete-integration.d.ts.map +1 -0
- package/dist/tools/delete-integration.js +39 -0
- package/dist/tools/delete-integration.js.map +1 -0
- package/dist/tools/deploy-application.d.ts +3 -0
- package/dist/tools/deploy-application.d.ts.map +1 -0
- package/dist/tools/deploy-application.js +142 -0
- package/dist/tools/deploy-application.js.map +1 -0
- package/dist/tools/find-apps-by-integration.d.ts +3 -0
- package/dist/tools/find-apps-by-integration.d.ts.map +1 -0
- package/dist/tools/find-apps-by-integration.js +135 -0
- package/dist/tools/find-apps-by-integration.js.map +1 -0
- package/dist/tools/find-apps-by-package.d.ts +3 -0
- package/dist/tools/find-apps-by-package.d.ts.map +1 -0
- package/dist/tools/find-apps-by-package.js +88 -0
- package/dist/tools/find-apps-by-package.js.map +1 -0
- package/dist/tools/get-app-sbom.d.ts +3 -0
- package/dist/tools/get-app-sbom.d.ts.map +1 -0
- package/dist/tools/get-app-sbom.js +54 -0
- package/dist/tools/get-app-sbom.js.map +1 -0
- package/dist/tools/get-application-access.d.ts +3 -0
- package/dist/tools/get-application-access.d.ts.map +1 -0
- package/dist/tools/get-application-access.js +35 -0
- package/dist/tools/get-application-access.js.map +1 -0
- package/dist/tools/get-application-commit-history.d.ts +3 -0
- package/dist/tools/get-application-commit-history.d.ts.map +1 -0
- package/dist/tools/get-application-commit-history.js +55 -0
- package/dist/tools/get-application-commit-history.js.map +1 -0
- package/dist/tools/get-application-deployment-history.d.ts +3 -0
- package/dist/tools/get-application-deployment-history.d.ts.map +1 -0
- package/dist/tools/get-application-deployment-history.js +45 -0
- package/dist/tools/get-application-deployment-history.js.map +1 -0
- package/dist/tools/get-application-policy-run-findings.d.ts +3 -0
- package/dist/tools/get-application-policy-run-findings.d.ts.map +1 -0
- package/dist/tools/get-application-policy-run-findings.js +62 -0
- package/dist/tools/get-application-policy-run-findings.js.map +1 -0
- package/dist/tools/get-application-publish-pipeline.d.ts +3 -0
- package/dist/tools/get-application-publish-pipeline.d.ts.map +1 -0
- package/dist/tools/get-application-publish-pipeline.js +47 -0
- package/dist/tools/get-application-publish-pipeline.js.map +1 -0
- package/dist/tools/get-application-publish-readiness.d.ts +3 -0
- package/dist/tools/get-application-publish-readiness.d.ts.map +1 -0
- package/dist/tools/get-application-publish-readiness.js +47 -0
- package/dist/tools/get-application-publish-readiness.js.map +1 -0
- package/dist/tools/get-application-structure.d.ts +3 -0
- package/dist/tools/get-application-structure.d.ts.map +1 -0
- package/dist/tools/get-application-structure.js +98 -0
- package/dist/tools/get-application-structure.js.map +1 -0
- package/dist/tools/get-application-summary.d.ts +3 -0
- package/dist/tools/get-application-summary.d.ts.map +1 -0
- package/dist/tools/get-application-summary.js +46 -0
- package/dist/tools/get-application-summary.js.map +1 -0
- package/dist/tools/get-audit-events.d.ts +3 -0
- package/dist/tools/get-audit-events.d.ts.map +1 -0
- package/dist/tools/get-audit-events.js +55 -0
- package/dist/tools/get-audit-events.js.map +1 -0
- package/dist/tools/get-auth-status.d.ts +3 -0
- package/dist/tools/get-auth-status.d.ts.map +1 -0
- package/dist/tools/get-auth-status.js +34 -0
- package/dist/tools/get-auth-status.js.map +1 -0
- package/dist/tools/get-billing-plan-summary.d.ts +3 -0
- package/dist/tools/get-billing-plan-summary.d.ts.map +1 -0
- package/dist/tools/get-billing-plan-summary.js +32 -0
- package/dist/tools/get-billing-plan-summary.js.map +1 -0
- package/dist/tools/get-billing-usage-daily.d.ts +3 -0
- package/dist/tools/get-billing-usage-daily.d.ts.map +1 -0
- package/dist/tools/get-billing-usage-daily.js +37 -0
- package/dist/tools/get-billing-usage-daily.js.map +1 -0
- package/dist/tools/get-billing-usage-records.d.ts +3 -0
- package/dist/tools/get-billing-usage-records.d.ts.map +1 -0
- package/dist/tools/get-billing-usage-records.js +246 -0
- package/dist/tools/get-billing-usage-records.js.map +1 -0
- package/dist/tools/get-chat-messages.d.ts +3 -0
- package/dist/tools/get-chat-messages.d.ts.map +1 -0
- package/dist/tools/get-chat-messages.js +51 -0
- package/dist/tools/get-chat-messages.js.map +1 -0
- package/dist/tools/get-current-user.d.ts +3 -0
- package/dist/tools/get-current-user.d.ts.map +1 -0
- package/dist/tools/get-current-user.js +66 -0
- package/dist/tools/get-current-user.js.map +1 -0
- package/dist/tools/get-dependency-scan-summary.d.ts +3 -0
- package/dist/tools/get-dependency-scan-summary.d.ts.map +1 -0
- package/dist/tools/get-dependency-scan-summary.js +42 -0
- package/dist/tools/get-dependency-scan-summary.js.map +1 -0
- package/dist/tools/get-integration-access.d.ts +3 -0
- package/dist/tools/get-integration-access.d.ts.map +1 -0
- package/dist/tools/get-integration-access.js +41 -0
- package/dist/tools/get-integration-access.js.map +1 -0
- package/dist/tools/get-integration-config-schema.d.ts +3 -0
- package/dist/tools/get-integration-config-schema.d.ts.map +1 -0
- package/dist/tools/get-integration-config-schema.js +34 -0
- package/dist/tools/get-integration-config-schema.js.map +1 -0
- package/dist/tools/get-integration.d.ts +3 -0
- package/dist/tools/get-integration.d.ts.map +1 -0
- package/dist/tools/get-integration.js +39 -0
- package/dist/tools/get-integration.js.map +1 -0
- package/dist/tools/get-job-access.d.ts +3 -0
- package/dist/tools/get-job-access.d.ts.map +1 -0
- package/dist/tools/get-job-access.js +41 -0
- package/dist/tools/get-job-access.js.map +1 -0
- package/dist/tools/get-knowledge.d.ts +3 -0
- package/dist/tools/get-knowledge.d.ts.map +1 -0
- package/dist/tools/get-knowledge.js +48 -0
- package/dist/tools/get-knowledge.js.map +1 -0
- package/dist/tools/get-organization-summary.d.ts +3 -0
- package/dist/tools/get-organization-summary.d.ts.map +1 -0
- package/dist/tools/get-organization-summary.js +48 -0
- package/dist/tools/get-organization-summary.js.map +1 -0
- package/dist/tools/get-review-policy-run-report.d.ts +3 -0
- package/dist/tools/get-review-policy-run-report.d.ts.map +1 -0
- package/dist/tools/get-review-policy-run-report.js +60 -0
- package/dist/tools/get-review-policy-run-report.js.map +1 -0
- package/dist/tools/get-review-policy-summary.d.ts +3 -0
- package/dist/tools/get-review-policy-summary.d.ts.map +1 -0
- package/dist/tools/get-review-policy-summary.js +47 -0
- package/dist/tools/get-review-policy-summary.js.map +1 -0
- package/dist/tools/get-review-policy.d.ts +3 -0
- package/dist/tools/get-review-policy.d.ts.map +1 -0
- package/dist/tools/get-review-policy.js +43 -0
- package/dist/tools/get-review-policy.js.map +1 -0
- package/dist/tools/get-user-permissions.d.ts +3 -0
- package/dist/tools/get-user-permissions.d.ts.map +1 -0
- package/dist/tools/get-user-permissions.js +68 -0
- package/dist/tools/get-user-permissions.js.map +1 -0
- package/dist/tools/get-workflow-access.d.ts +3 -0
- package/dist/tools/get-workflow-access.d.ts.map +1 -0
- package/dist/tools/get-workflow-access.js +41 -0
- package/dist/tools/get-workflow-access.js.map +1 -0
- package/dist/tools/grant-resource-access.d.ts +3 -0
- package/dist/tools/grant-resource-access.d.ts.map +1 -0
- package/dist/tools/grant-resource-access.js +64 -0
- package/dist/tools/grant-resource-access.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +148 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/integration-mention.d.ts +2 -0
- package/dist/tools/integration-mention.d.ts.map +1 -0
- package/dist/tools/integration-mention.js +8 -0
- package/dist/tools/integration-mention.js.map +1 -0
- package/dist/tools/list-applications.d.ts +3 -0
- package/dist/tools/list-applications.d.ts.map +1 -0
- package/dist/tools/list-applications.js +115 -0
- package/dist/tools/list-applications.js.map +1 -0
- package/dist/tools/list-audit-event-types.d.ts +3 -0
- package/dist/tools/list-audit-event-types.d.ts.map +1 -0
- package/dist/tools/list-audit-event-types.js +41 -0
- package/dist/tools/list-audit-event-types.js.map +1 -0
- package/dist/tools/list-builder-seats.d.ts +3 -0
- package/dist/tools/list-builder-seats.d.ts.map +1 -0
- package/dist/tools/list-builder-seats.js +42 -0
- package/dist/tools/list-builder-seats.js.map +1 -0
- package/dist/tools/list-dependency-scan-findings.d.ts +3 -0
- package/dist/tools/list-dependency-scan-findings.d.ts.map +1 -0
- package/dist/tools/list-dependency-scan-findings.js +69 -0
- package/dist/tools/list-dependency-scan-findings.js.map +1 -0
- package/dist/tools/list-distinct-packages-in-org.d.ts +3 -0
- package/dist/tools/list-distinct-packages-in-org.d.ts.map +1 -0
- package/dist/tools/list-distinct-packages-in-org.js +117 -0
- package/dist/tools/list-distinct-packages-in-org.js.map +1 -0
- package/dist/tools/list-folders.d.ts +3 -0
- package/dist/tools/list-folders.d.ts.map +1 -0
- package/dist/tools/list-folders.js +39 -0
- package/dist/tools/list-folders.js.map +1 -0
- package/dist/tools/list-integrations.d.ts +3 -0
- package/dist/tools/list-integrations.d.ts.map +1 -0
- package/dist/tools/list-integrations.js +65 -0
- package/dist/tools/list-integrations.js.map +1 -0
- package/dist/tools/list-knowledge.d.ts +3 -0
- package/dist/tools/list-knowledge.d.ts.map +1 -0
- package/dist/tools/list-knowledge.js +56 -0
- package/dist/tools/list-knowledge.js.map +1 -0
- package/dist/tools/list-organization-agents.d.ts +3 -0
- package/dist/tools/list-organization-agents.d.ts.map +1 -0
- package/dist/tools/list-organization-agents.js +49 -0
- package/dist/tools/list-organization-agents.js.map +1 -0
- package/dist/tools/list-packages-by-app.d.ts +3 -0
- package/dist/tools/list-packages-by-app.d.ts.map +1 -0
- package/dist/tools/list-packages-by-app.js +97 -0
- package/dist/tools/list-packages-by-app.js.map +1 -0
- package/dist/tools/list-rbac-assignments.d.ts +3 -0
- package/dist/tools/list-rbac-assignments.d.ts.map +1 -0
- package/dist/tools/list-rbac-assignments.js +57 -0
- package/dist/tools/list-rbac-assignments.js.map +1 -0
- package/dist/tools/list-review-policies.d.ts +3 -0
- package/dist/tools/list-review-policies.d.ts.map +1 -0
- package/dist/tools/list-review-policies.js +42 -0
- package/dist/tools/list-review-policies.js.map +1 -0
- package/dist/tools/list-review-policy-runs.d.ts +3 -0
- package/dist/tools/list-review-policy-runs.d.ts.map +1 -0
- package/dist/tools/list-review-policy-runs.js +80 -0
- package/dist/tools/list-review-policy-runs.js.map +1 -0
- package/dist/tools/list-roles.d.ts +3 -0
- package/dist/tools/list-roles.d.ts.map +1 -0
- package/dist/tools/list-roles.js +61 -0
- package/dist/tools/list-roles.js.map +1 -0
- package/dist/tools/list-users-by-role.d.ts +3 -0
- package/dist/tools/list-users-by-role.d.ts.map +1 -0
- package/dist/tools/list-users-by-role.js +74 -0
- package/dist/tools/list-users-by-role.js.map +1 -0
- package/dist/tools/list-users.d.ts +3 -0
- package/dist/tools/list-users.d.ts.map +1 -0
- package/dist/tools/list-users.js +69 -0
- package/dist/tools/list-users.js.map +1 -0
- package/dist/tools/lookup-package-vulnerabilities.d.ts +3 -0
- package/dist/tools/lookup-package-vulnerabilities.d.ts.map +1 -0
- package/dist/tools/lookup-package-vulnerabilities.js +57 -0
- package/dist/tools/lookup-package-vulnerabilities.js.map +1 -0
- package/dist/tools/map-rbac-assignments.d.ts +35 -0
- package/dist/tools/map-rbac-assignments.d.ts.map +1 -0
- package/dist/tools/map-rbac-assignments.js +22 -0
- package/dist/tools/map-rbac-assignments.js.map +1 -0
- package/dist/tools/org-user-types.d.ts +16 -0
- package/dist/tools/org-user-types.d.ts.map +1 -0
- package/dist/tools/org-user-types.js +2 -0
- package/dist/tools/org-user-types.js.map +1 -0
- package/dist/tools/pagination.d.ts +14 -0
- package/dist/tools/pagination.d.ts.map +1 -0
- package/dist/tools/pagination.js +21 -0
- package/dist/tools/pagination.js.map +1 -0
- package/dist/tools/plugin-configuration-schema.d.ts +3 -0
- package/dist/tools/plugin-configuration-schema.d.ts.map +1 -0
- package/dist/tools/plugin-configuration-schema.js +95 -0
- package/dist/tools/plugin-configuration-schema.js.map +1 -0
- package/dist/tools/registry.d.ts +36 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +32 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/revoke-resource-access.d.ts +3 -0
- package/dist/tools/revoke-resource-access.d.ts.map +1 -0
- package/dist/tools/revoke-resource-access.js +39 -0
- package/dist/tools/revoke-resource-access.js.map +1 -0
- package/dist/tools/schemas.d.ts +147 -0
- package/dist/tools/schemas.d.ts.map +1 -0
- package/dist/tools/schemas.js +1320 -0
- package/dist/tools/schemas.js.map +1 -0
- package/dist/tools/server-api.d.ts +33 -0
- package/dist/tools/server-api.d.ts.map +1 -0
- package/dist/tools/server-api.js +96 -0
- package/dist/tools/server-api.js.map +1 -0
- package/dist/tools/unassign-builder-seat.d.ts +3 -0
- package/dist/tools/unassign-builder-seat.d.ts.map +1 -0
- package/dist/tools/unassign-builder-seat.js +44 -0
- package/dist/tools/unassign-builder-seat.js.map +1 -0
- package/dist/tools/undeploy-application.d.ts +3 -0
- package/dist/tools/undeploy-application.d.ts.map +1 -0
- package/dist/tools/undeploy-application.js +56 -0
- package/dist/tools/undeploy-application.js.map +1 -0
- package/dist/tools/update-folder.d.ts +3 -0
- package/dist/tools/update-folder.d.ts.map +1 -0
- package/dist/tools/update-folder.js +42 -0
- package/dist/tools/update-folder.js.map +1 -0
- package/dist/tools/update-group-org-role.d.ts +3 -0
- package/dist/tools/update-group-org-role.d.ts.map +1 -0
- package/dist/tools/update-group-org-role.js +55 -0
- package/dist/tools/update-group-org-role.js.map +1 -0
- package/dist/tools/update-integration.d.ts +3 -0
- package/dist/tools/update-integration.d.ts.map +1 -0
- package/dist/tools/update-integration.js +40 -0
- package/dist/tools/update-integration.js.map +1 -0
- package/dist/tools/update-resource-access.d.ts +3 -0
- package/dist/tools/update-resource-access.d.ts.map +1 -0
- package/dist/tools/update-resource-access.js +44 -0
- package/dist/tools/update-resource-access.js.map +1 -0
- package/dist/tools/update-user-org-role.d.ts +3 -0
- package/dist/tools/update-user-org-role.d.ts.map +1 -0
- package/dist/tools/update-user-org-role.js +55 -0
- package/dist/tools/update-user-org-role.js.map +1 -0
- package/dist/tools/validation.d.ts +3 -0
- package/dist/tools/validation.d.ts.map +1 -0
- package/dist/tools/validation.js +10 -0
- package/dist/tools/validation.js.map +1 -0
- package/dist/urls.d.ts +4 -0
- package/dist/urls.d.ts.map +1 -0
- package/dist/urls.js +33 -0
- package/dist/urls.js.map +1 -0
- package/dist/utils/args.d.ts +3 -0
- package/dist/utils/args.d.ts.map +1 -0
- package/dist/utils/args.js +15 -0
- package/dist/utils/args.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +3 -0
- package/dist/version.js.map +1 -0
- package/package.json +75 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deactivate-user.d.ts","sourceRoot":"","sources":["../../src/tools/deactivate-user.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAuBpD,eAAO,MAAM,cAAc,EAAE,cA0F5B,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { resolveAuthForOrigin } from "../auth/resolve-auth.js";
|
|
3
|
+
import { createSdk } from "../sdk/create-sdk.js";
|
|
4
|
+
import { detectEnvironment, normalizeBaseUrl } from "../urls.js";
|
|
5
|
+
import * as schemas from "./schemas.js";
|
|
6
|
+
import { callServerApi } from "./server-api.js";
|
|
7
|
+
import { parseToolInput } from "./validation.js";
|
|
8
|
+
// Must match GroupType.ALL_USERS from @superblocksteam/shared
|
|
9
|
+
const ALL_USERS_GROUP_TYPE = 0;
|
|
10
|
+
const deactivateUserInputSchema = z
|
|
11
|
+
.object({
|
|
12
|
+
base_url: z.string().url(),
|
|
13
|
+
user_id: z.string().uuid(),
|
|
14
|
+
reason: z
|
|
15
|
+
.string()
|
|
16
|
+
.trim()
|
|
17
|
+
.min(1)
|
|
18
|
+
.optional()
|
|
19
|
+
.describe("Echoed in the response for the caller's own logging; not persisted server-side."),
|
|
20
|
+
})
|
|
21
|
+
.strict();
|
|
22
|
+
export const deactivateUser = {
|
|
23
|
+
name: "deactivate_user",
|
|
24
|
+
title: "Deactivate User",
|
|
25
|
+
description: "Deactivate a user account by user_id for incident response. " +
|
|
26
|
+
"This removes the user from all groups, revokes their RBAC assignments, and prevents them from logging in. " +
|
|
27
|
+
"Requires org admin privileges. Optionally include a reason, which is echoed back in the response for the caller's own logging.",
|
|
28
|
+
inputSchema: schemas.deactivateUserToolInputSchema,
|
|
29
|
+
annotations: {
|
|
30
|
+
readOnlyHint: false,
|
|
31
|
+
destructiveHint: true,
|
|
32
|
+
idempotentHint: false,
|
|
33
|
+
openWorldHint: true,
|
|
34
|
+
},
|
|
35
|
+
audience: "internal",
|
|
36
|
+
async handler(args) {
|
|
37
|
+
const input = parseToolInput(deactivateUserInputSchema, args);
|
|
38
|
+
const baseUrl = normalizeBaseUrl(input.base_url);
|
|
39
|
+
const auth = await resolveAuthForOrigin(baseUrl);
|
|
40
|
+
const sdk = createSdk(auth.token, baseUrl);
|
|
41
|
+
// Resolve the current user's organization ID.
|
|
42
|
+
const currentUser = await sdk.fetchCurrentUser();
|
|
43
|
+
const organizationId = currentUser.user.currentOrganizationId;
|
|
44
|
+
// Fetch the target user's details (we need their email for the group
|
|
45
|
+
// operations API that performs the actual deactivation).
|
|
46
|
+
const targetUser = (await callServerApi({
|
|
47
|
+
baseUrl,
|
|
48
|
+
token: auth.token,
|
|
49
|
+
method: "GET",
|
|
50
|
+
path: `/api/v1/organizations/${organizationId}/users/${input.user_id}`,
|
|
51
|
+
}));
|
|
52
|
+
if (!targetUser?.email) {
|
|
53
|
+
throw new Error(`Could not resolve email for user ${input.user_id}. The user may not exist in this organization.`);
|
|
54
|
+
}
|
|
55
|
+
// List organization groups and locate the "All Users" group.
|
|
56
|
+
const groupsResponse = (await callServerApi({
|
|
57
|
+
baseUrl,
|
|
58
|
+
token: auth.token,
|
|
59
|
+
method: "GET",
|
|
60
|
+
path: `/api/v1/organizations/${organizationId}/groups`,
|
|
61
|
+
}));
|
|
62
|
+
if (!Array.isArray(groupsResponse?.groups)) {
|
|
63
|
+
throw new Error("Unexpected response shape from groups endpoint.");
|
|
64
|
+
}
|
|
65
|
+
const allUsersGroup = groupsResponse.groups.find((g) => g.type === ALL_USERS_GROUP_TYPE);
|
|
66
|
+
if (!allUsersGroup) {
|
|
67
|
+
throw new Error("Could not find the All Users group in the organization.");
|
|
68
|
+
}
|
|
69
|
+
// Remove the user from the All Users group. On the server this triggers
|
|
70
|
+
// the full deactivation flow: sets the deactivated timestamp, deletes
|
|
71
|
+
// RBAC assignments, revokes pending invitations, and emits cloud events.
|
|
72
|
+
const result = (await callServerApi({
|
|
73
|
+
baseUrl,
|
|
74
|
+
token: auth.token,
|
|
75
|
+
method: "POST",
|
|
76
|
+
path: `/api/v1/organizations/${organizationId}/groups/${allUsersGroup.id}`,
|
|
77
|
+
body: {
|
|
78
|
+
operations: [{ email: targetUser.email, action: "REMOVE_MEMBER" }],
|
|
79
|
+
},
|
|
80
|
+
}));
|
|
81
|
+
if (result && typeof result === "object" && "errors" in result) {
|
|
82
|
+
throw new Error(`User deactivation may have failed. Server response: ${JSON.stringify(result)}`);
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
result,
|
|
86
|
+
user_id: input.user_id,
|
|
87
|
+
user_email: targetUser.email,
|
|
88
|
+
reason: input.reason,
|
|
89
|
+
auth_source: auth.source,
|
|
90
|
+
base_url: baseUrl,
|
|
91
|
+
environment: detectEnvironment(baseUrl),
|
|
92
|
+
};
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=deactivate-user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deactivate-user.js","sourceRoot":"","sources":["../../src/tools/deactivate-user.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-folder.d.ts","sourceRoot":"","sources":["../../src/tools/delete-folder.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAWpD,eAAO,MAAM,YAAY,EAAE,cA6B1B,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { resolveAuthForOrigin } from "../auth/resolve-auth.js";
|
|
3
|
+
import { createSdk } from "../sdk/create-sdk.js";
|
|
4
|
+
import { detectEnvironment, normalizeBaseUrl } from "../urls.js";
|
|
5
|
+
import * as schemas from "./schemas.js";
|
|
6
|
+
import { parseToolInput } from "./validation.js";
|
|
7
|
+
const deleteFolderInputSchema = z
|
|
8
|
+
.object({
|
|
9
|
+
base_url: z.string().url(),
|
|
10
|
+
folder_id: z.string().uuid(),
|
|
11
|
+
})
|
|
12
|
+
.strict();
|
|
13
|
+
export const deleteFolder = {
|
|
14
|
+
name: "delete_folder",
|
|
15
|
+
title: "Delete Folder",
|
|
16
|
+
description: "Delete a folder by folder ID.",
|
|
17
|
+
inputSchema: schemas.deleteFolderToolInputSchema,
|
|
18
|
+
annotations: {
|
|
19
|
+
readOnlyHint: false,
|
|
20
|
+
destructiveHint: true,
|
|
21
|
+
idempotentHint: false,
|
|
22
|
+
openWorldHint: true,
|
|
23
|
+
},
|
|
24
|
+
audience: "customer",
|
|
25
|
+
async handler(args) {
|
|
26
|
+
const input = parseToolInput(deleteFolderInputSchema, args);
|
|
27
|
+
const baseUrl = normalizeBaseUrl(input.base_url);
|
|
28
|
+
const auth = await resolveAuthForOrigin(baseUrl);
|
|
29
|
+
const sdk = createSdk(auth.token, baseUrl);
|
|
30
|
+
const folder = await sdk.deleteFolder(input.folder_id);
|
|
31
|
+
return {
|
|
32
|
+
// Some server responses may be 204/empty for deletes; return a stable confirmation shape.
|
|
33
|
+
deleted: true,
|
|
34
|
+
folder_id: input.folder_id,
|
|
35
|
+
...(folder ? { folder } : {}),
|
|
36
|
+
auth_source: auth.source,
|
|
37
|
+
base_url: baseUrl,
|
|
38
|
+
environment: detectEnvironment(baseUrl),
|
|
39
|
+
};
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=delete-folder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-folder.js","sourceRoot":"","sources":["../../src/tools/delete-folder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,uBAAuB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;CAC7B,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,YAAY,GAAmB;IAC1C,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,+BAA+B;IAC5C,WAAW,EAAE,OAAO,CAAC,2BAA2B;IAChD,WAAW,EAAE;QACX,YAAY,EAAE,KAAK;QACnB,eAAe,EAAE,IAAI;QACrB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,IAAI;KACpB;IACD,QAAQ,EAAE,UAAU;IACpB,KAAK,CAAC,OAAO,CAAC,IAAI;QAChB,MAAM,KAAK,GAAG,cAAc,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAEvD,OAAO;YACL,0FAA0F;YAC1F,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,WAAW,EAAE,IAAI,CAAC,MAAM;YACxB,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC;SACxC,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-group-org-role.d.ts","sourceRoot":"","sources":["../../src/tools/delete-group-org-role.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAcpD,eAAO,MAAM,kBAAkB,EAAE,cAyChC,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { resolveAuthForOrigin } from "../auth/resolve-auth.js";
|
|
3
|
+
import { resolveCurrentOrganizationId } from "../auth/resolve-current-organization.js";
|
|
4
|
+
import { detectEnvironment, normalizeBaseUrl } from "../urls.js";
|
|
5
|
+
import * as schemas from "./schemas.js";
|
|
6
|
+
import { callServerApi } from "./server-api.js";
|
|
7
|
+
import { parseToolInput } from "./validation.js";
|
|
8
|
+
const deleteGroupOrgRoleInputSchema = z
|
|
9
|
+
.object({
|
|
10
|
+
base_url: z.string().url(),
|
|
11
|
+
group_id: z.string().uuid(),
|
|
12
|
+
assignment_record_id: z.string().uuid(),
|
|
13
|
+
organization_id: z.string().uuid().optional(),
|
|
14
|
+
})
|
|
15
|
+
.strict();
|
|
16
|
+
export const deleteGroupOrgRole = {
|
|
17
|
+
name: "delete_group_org_role",
|
|
18
|
+
title: "Delete Group Org Role",
|
|
19
|
+
description: "Remove a group's organization-level role assignment by assignment record ID. " +
|
|
20
|
+
"This uses the dedicated org group role endpoint, not the generic RBAC assignment API. " +
|
|
21
|
+
"Use list_rbac_assignments to find the assignment_record_id. " +
|
|
22
|
+
"Requires group management privileges.",
|
|
23
|
+
inputSchema: schemas.deleteGroupOrgRoleToolInputSchema,
|
|
24
|
+
annotations: {
|
|
25
|
+
readOnlyHint: false,
|
|
26
|
+
destructiveHint: true,
|
|
27
|
+
idempotentHint: false,
|
|
28
|
+
openWorldHint: true,
|
|
29
|
+
},
|
|
30
|
+
audience: "customer",
|
|
31
|
+
async handler(args) {
|
|
32
|
+
const input = parseToolInput(deleteGroupOrgRoleInputSchema, args);
|
|
33
|
+
const baseUrl = normalizeBaseUrl(input.base_url);
|
|
34
|
+
const auth = await resolveAuthForOrigin(baseUrl);
|
|
35
|
+
const organizationId = input.organization_id ??
|
|
36
|
+
(await resolveCurrentOrganizationId(baseUrl, auth.token));
|
|
37
|
+
const result = await callServerApi({
|
|
38
|
+
baseUrl,
|
|
39
|
+
token: auth.token,
|
|
40
|
+
method: "DELETE",
|
|
41
|
+
path: `/api/v1/organizations/${organizationId}/groups/${input.group_id}/role/${input.assignment_record_id}`,
|
|
42
|
+
});
|
|
43
|
+
return {
|
|
44
|
+
result,
|
|
45
|
+
group_id: input.group_id,
|
|
46
|
+
assignment_record_id: input.assignment_record_id,
|
|
47
|
+
organization_id: organizationId,
|
|
48
|
+
auth_source: auth.source,
|
|
49
|
+
base_url: baseUrl,
|
|
50
|
+
environment: detectEnvironment(baseUrl),
|
|
51
|
+
};
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=delete-group-org-role.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-group-org-role.js","sourceRoot":"","sources":["../../src/tools/delete-group-org-role.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,6BAA6B,GAAG,CAAC;KACpC,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC1B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC3B,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACvC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC9C,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,kBAAkB,GAAmB;IAChD,IAAI,EAAE,uBAAuB;IAC7B,KAAK,EAAE,uBAAuB;IAC9B,WAAW,EACT,+EAA+E;QAC/E,wFAAwF;QACxF,8DAA8D;QAC9D,uCAAuC;IACzC,WAAW,EAAE,OAAO,CAAC,iCAAiC;IACtD,WAAW,EAAE;QACX,YAAY,EAAE,KAAK;QACnB,eAAe,EAAE,IAAI;QACrB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,IAAI;KACpB;IACD,QAAQ,EAAE,UAAU;IACpB,KAAK,CAAC,OAAO,CAAC,IAAI;QAChB,MAAM,KAAK,GAAG,cAAc,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,cAAc,GAClB,KAAK,CAAC,eAAe;YACrB,CAAC,MAAM,4BAA4B,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5D,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;YACjC,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,yBAAyB,cAAc,WAAW,KAAK,CAAC,QAAQ,SAAS,KAAK,CAAC,oBAAoB,EAAE;SAC5G,CAAC,CAAC;QAEH,OAAO;YACL,MAAM;YACN,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;YAChD,eAAe,EAAE,cAAc;YAC/B,WAAW,EAAE,IAAI,CAAC,MAAM;YACxB,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC;SACxC,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-integration.d.ts","sourceRoot":"","sources":["../../src/tools/delete-integration.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAWpD,eAAO,MAAM,iBAAiB,EAAE,cA0B/B,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { resolveAuthForOrigin } from "../auth/resolve-auth.js";
|
|
3
|
+
import { createSdk } from "../sdk/create-sdk.js";
|
|
4
|
+
import { detectEnvironment, normalizeBaseUrl } from "../urls.js";
|
|
5
|
+
import * as schemas from "./schemas.js";
|
|
6
|
+
import { parseToolInput } from "./validation.js";
|
|
7
|
+
const deleteIntegrationInputSchema = z
|
|
8
|
+
.object({
|
|
9
|
+
integration_id: z.string().uuid(),
|
|
10
|
+
base_url: z.string().url(),
|
|
11
|
+
})
|
|
12
|
+
.strict();
|
|
13
|
+
export const deleteIntegration = {
|
|
14
|
+
name: "delete_integration",
|
|
15
|
+
title: "Delete Integration",
|
|
16
|
+
description: "Delete an integration by ID.",
|
|
17
|
+
inputSchema: schemas.deleteIntegrationToolInputSchema,
|
|
18
|
+
annotations: {
|
|
19
|
+
readOnlyHint: false,
|
|
20
|
+
destructiveHint: true,
|
|
21
|
+
idempotentHint: false,
|
|
22
|
+
openWorldHint: true,
|
|
23
|
+
},
|
|
24
|
+
audience: "customer",
|
|
25
|
+
async handler(args) {
|
|
26
|
+
const input = parseToolInput(deleteIntegrationInputSchema, args);
|
|
27
|
+
const baseUrl = normalizeBaseUrl(input.base_url);
|
|
28
|
+
const auth = await resolveAuthForOrigin(baseUrl);
|
|
29
|
+
const sdk = createSdk(auth.token, baseUrl);
|
|
30
|
+
const integration = await sdk.deleteIntegration(input.integration_id);
|
|
31
|
+
return {
|
|
32
|
+
integration,
|
|
33
|
+
auth_source: auth.source,
|
|
34
|
+
base_url: baseUrl,
|
|
35
|
+
environment: detectEnvironment(baseUrl),
|
|
36
|
+
};
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=delete-integration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-integration.js","sourceRoot":"","sources":["../../src/tools/delete-integration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,4BAA4B,GAAG,CAAC;KACnC,MAAM,CAAC;IACN,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CAC3B,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,iBAAiB,GAAmB;IAC/C,IAAI,EAAE,oBAAoB;IAC1B,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EAAE,8BAA8B;IAC3C,WAAW,EAAE,OAAO,CAAC,gCAAgC;IACrD,WAAW,EAAE;QACX,YAAY,EAAE,KAAK;QACnB,eAAe,EAAE,IAAI;QACrB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,IAAI;KACpB;IACD,QAAQ,EAAE,UAAU;IACpB,KAAK,CAAC,OAAO,CAAC,IAAI;QAChB,MAAM,KAAK,GAAG,cAAc,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAEtE,OAAO;YACL,WAAW;YACX,WAAW,EAAE,IAAI,CAAC,MAAM;YACxB,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC;SACxC,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy-application.d.ts","sourceRoot":"","sources":["../../src/tools/deploy-application.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAwEpD,eAAO,MAAM,iBAAiB,EAAE,cAkG/B,CAAC"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { DEFAULT_BRANCH } from "@superblocksteam/sdk";
|
|
3
|
+
import { CommitType } from "@superblocksteam/shared";
|
|
4
|
+
import { resolveAuthForOrigin } from "../auth/resolve-auth.js";
|
|
5
|
+
import { createSdk } from "../sdk/create-sdk.js";
|
|
6
|
+
import { resolveAppTarget, } from "../target/resolve-app-target.js";
|
|
7
|
+
import * as schemas from "./schemas.js";
|
|
8
|
+
import { callServerApi } from "./server-api.js";
|
|
9
|
+
import { parseToolInput } from "./validation.js";
|
|
10
|
+
const copiedCommitSchema = z.object({
|
|
11
|
+
commitId: z.string().min(1),
|
|
12
|
+
});
|
|
13
|
+
const applicationBranchesSchema = z.object({
|
|
14
|
+
branches: z.array(z.object({
|
|
15
|
+
isDefault: z.boolean(),
|
|
16
|
+
name: z.string(),
|
|
17
|
+
})),
|
|
18
|
+
});
|
|
19
|
+
const CHECKPOINT_AUTOSAVE_TYPE_PREFIX = "savepoint";
|
|
20
|
+
const HISTORY_PAGE_SIZE = 50;
|
|
21
|
+
function compareCommits(left, right) {
|
|
22
|
+
const dateDifference = right.commitDate - left.commitDate;
|
|
23
|
+
return dateDifference || right.commitId.localeCompare(left.commitId);
|
|
24
|
+
}
|
|
25
|
+
function isDeployableCommit(commit) {
|
|
26
|
+
// Keep this aligned with the UI's selectCheckpoints selector.
|
|
27
|
+
return (!commit.autosave ||
|
|
28
|
+
commit.autosaveType?.startsWith(CHECKPOINT_AUTOSAVE_TYPE_PREFIX));
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* A checkpoint exists only as an autosave, which the server refuses to deploy.
|
|
32
|
+
* Copying it produces an ordinary commit with the same contents, the same step
|
|
33
|
+
* the UI takes before publishing one.
|
|
34
|
+
*/
|
|
35
|
+
async function copyCheckpointToCommit(options) {
|
|
36
|
+
const copiedCommit = copiedCommitSchema.parse(await callServerApi({
|
|
37
|
+
baseUrl: options.baseUrl,
|
|
38
|
+
method: "POST",
|
|
39
|
+
path: `/api/v2/applications/${options.applicationId}/commit/${encodeURIComponent(options.commitId)}/copy`,
|
|
40
|
+
token: options.token,
|
|
41
|
+
}));
|
|
42
|
+
return copiedCommit.commitId;
|
|
43
|
+
}
|
|
44
|
+
const deployApplicationInputSchema = z.union([
|
|
45
|
+
z
|
|
46
|
+
.object({
|
|
47
|
+
app_url: z.string().url(),
|
|
48
|
+
commit_id: z.string().trim().min(1).optional(),
|
|
49
|
+
})
|
|
50
|
+
.strict(),
|
|
51
|
+
z
|
|
52
|
+
.object({
|
|
53
|
+
application_id: z.string().uuid(),
|
|
54
|
+
base_url: z.string().url(),
|
|
55
|
+
commit_id: z.string().trim().min(1).optional(),
|
|
56
|
+
})
|
|
57
|
+
.strict(),
|
|
58
|
+
]);
|
|
59
|
+
export const deployApplication = {
|
|
60
|
+
name: "deploy_application",
|
|
61
|
+
title: "Deploy Application",
|
|
62
|
+
description: "Deploy a Superblocks application from its default branch. Supports either app_url or application_id plus base_url. Optionally pass commit_id to deploy a specific commit.",
|
|
63
|
+
inputSchema: schemas.deployApplicationToolInputSchema,
|
|
64
|
+
annotations: {
|
|
65
|
+
readOnlyHint: false,
|
|
66
|
+
destructiveHint: false,
|
|
67
|
+
idempotentHint: false,
|
|
68
|
+
openWorldHint: true,
|
|
69
|
+
},
|
|
70
|
+
audience: "customer",
|
|
71
|
+
async handler(args) {
|
|
72
|
+
const input = parseToolInput(deployApplicationInputSchema, args);
|
|
73
|
+
const targetInput = "app_url" in input
|
|
74
|
+
? { app_url: input.app_url }
|
|
75
|
+
: {
|
|
76
|
+
application_id: input.application_id,
|
|
77
|
+
base_url: input.base_url,
|
|
78
|
+
};
|
|
79
|
+
const target = resolveAppTarget(targetInput);
|
|
80
|
+
const auth = await resolveAuthForOrigin(target.baseUrl);
|
|
81
|
+
const sdk = createSdk(auth.token, target.baseUrl);
|
|
82
|
+
const normalizedCommitId = input.commit_id?.toUpperCase() === "HEAD" ? "HEAD" : input.commit_id;
|
|
83
|
+
const shouldResolveHead = normalizedCommitId === undefined || normalizedCommitId === "HEAD";
|
|
84
|
+
const manualCommitsRemoved = (await sdk.getFeatureFlagsForCurrentUser()).removeManualCommitsEnabled();
|
|
85
|
+
let branchToDeploy = target.branch;
|
|
86
|
+
let commitIdToDeploy = normalizedCommitId;
|
|
87
|
+
if (manualCommitsRemoved) {
|
|
88
|
+
const { branches } = applicationBranchesSchema.parse(await callServerApi({
|
|
89
|
+
baseUrl: target.baseUrl,
|
|
90
|
+
method: "GET",
|
|
91
|
+
path: `/api/v2/applications/${target.applicationId}/branches`,
|
|
92
|
+
token: auth.token,
|
|
93
|
+
}));
|
|
94
|
+
branchToDeploy =
|
|
95
|
+
branches.find((branch) => branch.isDefault)?.name ?? DEFAULT_BRANCH;
|
|
96
|
+
const commitHistory = await sdk.fetchApplicationCommits({
|
|
97
|
+
applicationId: target.applicationId,
|
|
98
|
+
branch: branchToDeploy,
|
|
99
|
+
commitType: CommitType.ALL,
|
|
100
|
+
limit: HISTORY_PAGE_SIZE,
|
|
101
|
+
offset: 0,
|
|
102
|
+
});
|
|
103
|
+
const versions = [
|
|
104
|
+
...commitHistory.autosaves,
|
|
105
|
+
...commitHistory.commits,
|
|
106
|
+
].sort(compareCommits);
|
|
107
|
+
// An explicit id that predates this window falls through untouched; the
|
|
108
|
+
// server validates it.
|
|
109
|
+
const versionToDeploy = shouldResolveHead
|
|
110
|
+
? versions.find(isDeployableCommit)
|
|
111
|
+
: versions.find((version) => version.commitId === normalizedCommitId);
|
|
112
|
+
if (shouldResolveHead && !versionToDeploy) {
|
|
113
|
+
throw new Error(`No accepted checkpoint found in the last ${HISTORY_PAGE_SIZE} versions of application ${target.applicationId} on branch ${branchToDeploy}.`);
|
|
114
|
+
}
|
|
115
|
+
if (versionToDeploy && !isDeployableCommit(versionToDeploy)) {
|
|
116
|
+
throw new Error(`Version ${versionToDeploy.commitId} of application ${target.applicationId} is not an accepted checkpoint and cannot be published. Omit commit_id to publish the latest accepted checkpoint.`);
|
|
117
|
+
}
|
|
118
|
+
if (versionToDeploy) {
|
|
119
|
+
commitIdToDeploy = versionToDeploy.autosave
|
|
120
|
+
? await copyCheckpointToCommit({
|
|
121
|
+
applicationId: target.applicationId,
|
|
122
|
+
baseUrl: target.baseUrl,
|
|
123
|
+
commitId: versionToDeploy.commitId,
|
|
124
|
+
token: auth.token,
|
|
125
|
+
})
|
|
126
|
+
: versionToDeploy.commitId;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
const deployment = await sdk.deployApplication(target.applicationId, commitIdToDeploy);
|
|
130
|
+
return {
|
|
131
|
+
deployment,
|
|
132
|
+
application_id: target.applicationId,
|
|
133
|
+
branch: branchToDeploy,
|
|
134
|
+
commit_id: commitIdToDeploy ?? "HEAD",
|
|
135
|
+
auth_source: auth.source,
|
|
136
|
+
base_url: target.baseUrl,
|
|
137
|
+
environment: target.environment,
|
|
138
|
+
resolved_from: target.resolvedFrom,
|
|
139
|
+
};
|
|
140
|
+
},
|
|
141
|
+
};
|
|
142
|
+
//# sourceMappingURL=deploy-application.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy-application.js","sourceRoot":"","sources":["../../src/tools/deploy-application.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-apps-by-integration.d.ts","sourceRoot":"","sources":["../../src/tools/find-apps-by-integration.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AA0FpD,eAAO,MAAM,qBAAqB,EAAE,cA0EnC,CAAC"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { resolveAuthForOrigin } from "../auth/resolve-auth.js";
|
|
3
|
+
import { detectEnvironment, normalizeBaseUrl } from "../urls.js";
|
|
4
|
+
import { applyPagination } from "./pagination.js";
|
|
5
|
+
import * as schemas from "./schemas.js";
|
|
6
|
+
import { callServerApi } from "./server-api.js";
|
|
7
|
+
import { parseToolInput } from "./validation.js";
|
|
8
|
+
const findAppsByIntegrationInputSchema = z
|
|
9
|
+
.object({
|
|
10
|
+
base_url: z.string().url(),
|
|
11
|
+
integration_id: z.string().uuid(),
|
|
12
|
+
limit: z.number().int().positive().max(200).optional(),
|
|
13
|
+
offset: z.number().int().nonnegative().optional(),
|
|
14
|
+
})
|
|
15
|
+
.strict();
|
|
16
|
+
// Minimum fields we surface to MCP callers. The server returns a richer
|
|
17
|
+
// shape (creator, folderId, entryPointCount, …) that we pass through
|
|
18
|
+
// untouched via `.passthrough()` so callers keep working if the backend
|
|
19
|
+
// adds more fields. Validating the core fields at item-level catches
|
|
20
|
+
// field-rename regressions before they surface as silent `undefined`s in
|
|
21
|
+
// tool output.
|
|
22
|
+
const integrationUsageAppSchema = z
|
|
23
|
+
.object({
|
|
24
|
+
applicationId: z.string(),
|
|
25
|
+
applicationName: z.string(),
|
|
26
|
+
organizationId: z.string(),
|
|
27
|
+
})
|
|
28
|
+
.passthrough();
|
|
29
|
+
function parseApps(items) {
|
|
30
|
+
return items.map((item, index) => {
|
|
31
|
+
try {
|
|
32
|
+
return integrationUsageAppSchema.parse(item);
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
const detail = err instanceof Error ? err.message : String(err);
|
|
36
|
+
throw new Error(`Unexpected application shape at index ${index} from /api/v1/integrations/apps: ${detail}`);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
function normalizeApplicationsResponse(response) {
|
|
41
|
+
if (Array.isArray(response)) {
|
|
42
|
+
return { kind: "legacy", items: parseApps(response) };
|
|
43
|
+
}
|
|
44
|
+
if (response && typeof response === "object") {
|
|
45
|
+
const obj = response;
|
|
46
|
+
if (Array.isArray(obj.items)) {
|
|
47
|
+
const items = parseApps(obj.items);
|
|
48
|
+
if (typeof obj.total === "number" &&
|
|
49
|
+
typeof obj.limit === "number" &&
|
|
50
|
+
typeof obj.offset === "number") {
|
|
51
|
+
return {
|
|
52
|
+
kind: "paginated",
|
|
53
|
+
items,
|
|
54
|
+
total: obj.total,
|
|
55
|
+
limit: obj.limit,
|
|
56
|
+
offset: obj.offset,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
// Envelope missing pagination metadata: treat as legacy so we fall
|
|
60
|
+
// back to client-side slicing rather than reporting a bogus total.
|
|
61
|
+
return { kind: "legacy", items };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
throw new Error("Unexpected response shape from /api/v1/integrations/apps");
|
|
65
|
+
}
|
|
66
|
+
export const findAppsByIntegration = {
|
|
67
|
+
name: "find_apps_by_integration",
|
|
68
|
+
title: "Find Apps by Integration",
|
|
69
|
+
description: "Find applications using a specific integration ID by querying server-side integration usage metadata.",
|
|
70
|
+
inputSchema: schemas.findAppsByIntegrationToolInputSchema,
|
|
71
|
+
annotations: {
|
|
72
|
+
readOnlyHint: true,
|
|
73
|
+
destructiveHint: false,
|
|
74
|
+
idempotentHint: true,
|
|
75
|
+
openWorldHint: true,
|
|
76
|
+
},
|
|
77
|
+
audience: "customer",
|
|
78
|
+
async handler(args) {
|
|
79
|
+
const input = parseToolInput(findAppsByIntegrationInputSchema, args);
|
|
80
|
+
const baseUrl = normalizeBaseUrl(input.base_url);
|
|
81
|
+
const auth = await resolveAuthForOrigin(baseUrl);
|
|
82
|
+
const response = await callServerApi({
|
|
83
|
+
baseUrl,
|
|
84
|
+
token: auth.token,
|
|
85
|
+
method: "GET",
|
|
86
|
+
path: "/api/v1/integrations/apps",
|
|
87
|
+
query: {
|
|
88
|
+
integrationId: input.integration_id,
|
|
89
|
+
limit: input.limit,
|
|
90
|
+
offset: input.offset,
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
const normalized = normalizeApplicationsResponse(response);
|
|
94
|
+
// When the server paginates (new shape: { items, total, limit, offset })
|
|
95
|
+
// trust its totals and skip client-side slicing. When the server
|
|
96
|
+
// returns a bare array (legacy shape) fall back to client-side
|
|
97
|
+
// pagination so the tool keeps working against older deployments.
|
|
98
|
+
if (normalized.kind === "paginated") {
|
|
99
|
+
const hasMore = normalized.offset + normalized.items.length < normalized.total;
|
|
100
|
+
return {
|
|
101
|
+
integration_id: input.integration_id,
|
|
102
|
+
applications: normalized.items,
|
|
103
|
+
auth_source: auth.source,
|
|
104
|
+
base_url: baseUrl,
|
|
105
|
+
environment: detectEnvironment(baseUrl),
|
|
106
|
+
has_more: hasMore,
|
|
107
|
+
limit: normalized.limit,
|
|
108
|
+
next_offset: hasMore
|
|
109
|
+
? normalized.offset + normalized.items.length
|
|
110
|
+
: null,
|
|
111
|
+
offset: normalized.offset,
|
|
112
|
+
returned_count: normalized.items.length,
|
|
113
|
+
total_count: normalized.total,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
const paged = applyPagination(normalized.items, {
|
|
117
|
+
limit: input.limit,
|
|
118
|
+
offset: input.offset,
|
|
119
|
+
});
|
|
120
|
+
return {
|
|
121
|
+
integration_id: input.integration_id,
|
|
122
|
+
applications: paged.page,
|
|
123
|
+
auth_source: auth.source,
|
|
124
|
+
base_url: baseUrl,
|
|
125
|
+
environment: detectEnvironment(baseUrl),
|
|
126
|
+
has_more: paged.has_more,
|
|
127
|
+
limit: paged.limit,
|
|
128
|
+
next_offset: paged.next_offset,
|
|
129
|
+
offset: paged.offset,
|
|
130
|
+
returned_count: paged.returned_count,
|
|
131
|
+
total_count: paged.total_count,
|
|
132
|
+
};
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
//# sourceMappingURL=find-apps-by-integration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-apps-by-integration.js","sourceRoot":"","sources":["../../src/tools/find-apps-by-integration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-apps-by-package.d.ts","sourceRoot":"","sources":["../../src/tools/find-apps-by-package.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AA6BpD,eAAO,MAAM,iBAAiB,EAAE,cAwF/B,CAAC"}
|