@sylphx/contract 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -0
- package/LICENSE +21 -0
- package/README.md +164 -0
- package/dist/endpoint.d.ts +65 -0
- package/dist/endpoint.d.ts.map +1 -0
- package/dist/endpoint.js +22 -0
- package/dist/endpoints/admin-ai-playground.d.ts +93 -0
- package/dist/endpoints/admin-ai-playground.d.ts.map +1 -0
- package/dist/endpoints/admin-ai-playground.js +37 -0
- package/dist/endpoints/admin-anomalies.d.ts +108 -0
- package/dist/endpoints/admin-anomalies.d.ts.map +1 -0
- package/dist/endpoints/admin-anomalies.js +72 -0
- package/dist/endpoints/admin-apm.d.ts +102 -0
- package/dist/endpoints/admin-apm.d.ts.map +1 -0
- package/dist/endpoints/admin-apm.js +70 -0
- package/dist/endpoints/admin-audit.d.ts +714 -0
- package/dist/endpoints/admin-audit.d.ts.map +1 -0
- package/dist/endpoints/admin-audit.js +494 -0
- package/dist/endpoints/admin-billing.d.ts +82 -0
- package/dist/endpoints/admin-billing.d.ts.map +1 -0
- package/dist/endpoints/admin-billing.js +190 -0
- package/dist/endpoints/admin-bootstrap.d.ts +16 -0
- package/dist/endpoints/admin-bootstrap.d.ts.map +1 -0
- package/dist/endpoints/admin-bootstrap.js +28 -0
- package/dist/endpoints/admin-broadcasts.d.ts +105 -0
- package/dist/endpoints/admin-broadcasts.d.ts.map +1 -0
- package/dist/endpoints/admin-broadcasts.js +60 -0
- package/dist/endpoints/admin-builds.d.ts +33 -0
- package/dist/endpoints/admin-builds.d.ts.map +1 -0
- package/dist/endpoints/admin-builds.js +36 -0
- package/dist/endpoints/admin-config.d.ts +180 -0
- package/dist/endpoints/admin-config.d.ts.map +1 -0
- package/dist/endpoints/admin-config.js +108 -0
- package/dist/endpoints/admin-consent.d.ts +123 -0
- package/dist/endpoints/admin-consent.d.ts.map +1 -0
- package/dist/endpoints/admin-consent.js +126 -0
- package/dist/endpoints/admin-env-services.d.ts +28 -0
- package/dist/endpoints/admin-env-services.d.ts.map +1 -0
- package/dist/endpoints/admin-env-services.js +35 -0
- package/dist/endpoints/admin-impersonation.d.ts +105 -0
- package/dist/endpoints/admin-impersonation.d.ts.map +1 -0
- package/dist/endpoints/admin-impersonation.js +88 -0
- package/dist/endpoints/admin-invitations.d.ts +73 -0
- package/dist/endpoints/admin-invitations.d.ts.map +1 -0
- package/dist/endpoints/admin-invitations.js +55 -0
- package/dist/endpoints/admin-jwt-keys.d.ts +75 -0
- package/dist/endpoints/admin-jwt-keys.d.ts.map +1 -0
- package/dist/endpoints/admin-jwt-keys.js +63 -0
- package/dist/endpoints/admin-logs.d.ts +109 -0
- package/dist/endpoints/admin-logs.d.ts.map +1 -0
- package/dist/endpoints/admin-logs.js +78 -0
- package/dist/endpoints/admin-plans.d.ts +63 -0
- package/dist/endpoints/admin-plans.d.ts.map +1 -0
- package/dist/endpoints/admin-plans.js +47 -0
- package/dist/endpoints/admin-project-users.d.ts +148 -0
- package/dist/endpoints/admin-project-users.d.ts.map +1 -0
- package/dist/endpoints/admin-project-users.js +89 -0
- package/dist/endpoints/admin-projects.d.ts +124 -0
- package/dist/endpoints/admin-projects.d.ts.map +1 -0
- package/dist/endpoints/admin-projects.js +74 -0
- package/dist/endpoints/admin-quotas.d.ts +98 -0
- package/dist/endpoints/admin-quotas.d.ts.map +1 -0
- package/dist/endpoints/admin-quotas.js +67 -0
- package/dist/endpoints/admin-rate-limits.d.ts +50 -0
- package/dist/endpoints/admin-rate-limits.d.ts.map +1 -0
- package/dist/endpoints/admin-rate-limits.js +53 -0
- package/dist/endpoints/admin-reconcile.d.ts +28 -0
- package/dist/endpoints/admin-reconcile.d.ts.map +1 -0
- package/dist/endpoints/admin-reconcile.js +33 -0
- package/dist/endpoints/admin-resources.d.ts +51 -0
- package/dist/endpoints/admin-resources.d.ts.map +1 -0
- package/dist/endpoints/admin-resources.js +53 -0
- package/dist/endpoints/admin-secrets.d.ts +41 -0
- package/dist/endpoints/admin-secrets.d.ts.map +1 -0
- package/dist/endpoints/admin-secrets.js +33 -0
- package/dist/endpoints/admin-services.d.ts +29 -0
- package/dist/endpoints/admin-services.d.ts.map +1 -0
- package/dist/endpoints/admin-services.js +35 -0
- package/dist/endpoints/admin-tasks.d.ts +186 -0
- package/dist/endpoints/admin-tasks.d.ts.map +1 -0
- package/dist/endpoints/admin-tasks.js +67 -0
- package/dist/endpoints/admin-tenants.d.ts +26 -0
- package/dist/endpoints/admin-tenants.d.ts.map +1 -0
- package/dist/endpoints/admin-tenants.js +30 -0
- package/dist/endpoints/admin-traces.d.ts +124 -0
- package/dist/endpoints/admin-traces.d.ts.map +1 -0
- package/dist/endpoints/admin-traces.js +59 -0
- package/dist/endpoints/admin-users.d.ts +106 -0
- package/dist/endpoints/admin-users.d.ts.map +1 -0
- package/dist/endpoints/admin-users.js +83 -0
- package/dist/endpoints/admin-webhook-signature-versions.d.ts +59 -0
- package/dist/endpoints/admin-webhook-signature-versions.d.ts.map +1 -0
- package/dist/endpoints/admin-webhook-signature-versions.js +57 -0
- package/dist/endpoints/ai-admin.d.ts +30 -0
- package/dist/endpoints/ai-admin.d.ts.map +1 -0
- package/dist/endpoints/ai-admin.js +59 -0
- package/dist/endpoints/analytics-admin.d.ts +279 -0
- package/dist/endpoints/analytics-admin.d.ts.map +1 -0
- package/dist/endpoints/analytics-admin.js +308 -0
- package/dist/endpoints/analytics.d.ts +58 -0
- package/dist/endpoints/analytics.d.ts.map +1 -0
- package/dist/endpoints/analytics.js +43 -0
- package/dist/endpoints/audit-chain.d.ts +49 -0
- package/dist/endpoints/audit-chain.d.ts.map +1 -0
- package/dist/endpoints/audit-chain.js +29 -0
- package/dist/endpoints/audit.d.ts +50 -0
- package/dist/endpoints/audit.d.ts.map +1 -0
- package/dist/endpoints/audit.js +30 -0
- package/dist/endpoints/auth-admin.d.ts +65 -0
- package/dist/endpoints/auth-admin.d.ts.map +1 -0
- package/dist/endpoints/auth-admin.js +55 -0
- package/dist/endpoints/auth.d.ts +157 -0
- package/dist/endpoints/auth.d.ts.map +1 -0
- package/dist/endpoints/auth.js +214 -0
- package/dist/endpoints/backups.d.ts +51 -0
- package/dist/endpoints/backups.d.ts.map +1 -0
- package/dist/endpoints/backups.js +47 -0
- package/dist/endpoints/billing-console.d.ts +294 -0
- package/dist/endpoints/billing-console.d.ts.map +1 -0
- package/dist/endpoints/billing-console.js +167 -0
- package/dist/endpoints/billing-settings.d.ts +107 -0
- package/dist/endpoints/billing-settings.d.ts.map +1 -0
- package/dist/endpoints/billing-settings.js +117 -0
- package/dist/endpoints/branch-databases.d.ts +75 -0
- package/dist/endpoints/branch-databases.d.ts.map +1 -0
- package/dist/endpoints/branch-databases.js +61 -0
- package/dist/endpoints/challenge.d.ts +62 -0
- package/dist/endpoints/challenge.d.ts.map +1 -0
- package/dist/endpoints/challenge.js +52 -0
- package/dist/endpoints/ci-settings.d.ts +89 -0
- package/dist/endpoints/ci-settings.d.ts.map +1 -0
- package/dist/endpoints/ci-settings.js +78 -0
- package/dist/endpoints/consent-admin.d.ts +134 -0
- package/dist/endpoints/consent-admin.d.ts.map +1 -0
- package/dist/endpoints/consent-admin.js +83 -0
- package/dist/endpoints/databases.d.ts +251 -0
- package/dist/endpoints/databases.d.ts.map +1 -0
- package/dist/endpoints/databases.js +150 -0
- package/dist/endpoints/deployments.d.ts +280 -0
- package/dist/endpoints/deployments.d.ts.map +1 -0
- package/dist/endpoints/deployments.js +205 -0
- package/dist/endpoints/domains.d.ts +356 -0
- package/dist/endpoints/domains.d.ts.map +1 -0
- package/dist/endpoints/domains.js +149 -0
- package/dist/endpoints/edge-deployments.d.ts +92 -0
- package/dist/endpoints/edge-deployments.d.ts.map +1 -0
- package/dist/endpoints/edge-deployments.js +58 -0
- package/dist/endpoints/email-admin.d.ts +415 -0
- package/dist/endpoints/email-admin.d.ts.map +1 -0
- package/dist/endpoints/email-admin.js +253 -0
- package/dist/endpoints/email.d.ts +37 -0
- package/dist/endpoints/email.d.ts.map +1 -0
- package/dist/endpoints/email.js +42 -0
- package/dist/endpoints/engagement-admin.d.ts +98 -0
- package/dist/endpoints/engagement-admin.d.ts.map +1 -0
- package/dist/endpoints/engagement-admin.js +64 -0
- package/dist/endpoints/env-vars.d.ts +66 -0
- package/dist/endpoints/env-vars.d.ts.map +1 -0
- package/dist/endpoints/env-vars.js +47 -0
- package/dist/endpoints/environments.d.ts +456 -0
- package/dist/endpoints/environments.d.ts.map +1 -0
- package/dist/endpoints/environments.js +237 -0
- package/dist/endpoints/experiments.d.ts +500 -0
- package/dist/endpoints/experiments.d.ts.map +1 -0
- package/dist/endpoints/experiments.js +93 -0
- package/dist/endpoints/flags-admin.d.ts +74 -0
- package/dist/endpoints/flags-admin.d.ts.map +1 -0
- package/dist/endpoints/flags-admin.js +84 -0
- package/dist/endpoints/flags.d.ts +23 -0
- package/dist/endpoints/flags.d.ts.map +1 -0
- package/dist/endpoints/flags.js +17 -0
- package/dist/endpoints/github.d.ts +30 -0
- package/dist/endpoints/github.d.ts.map +1 -0
- package/dist/endpoints/github.js +37 -0
- package/dist/endpoints/image-opt.d.ts +43 -0
- package/dist/endpoints/image-opt.d.ts.map +1 -0
- package/dist/endpoints/image-opt.js +44 -0
- package/dist/endpoints/kv-admin.d.ts +58 -0
- package/dist/endpoints/kv-admin.d.ts.map +1 -0
- package/dist/endpoints/kv-admin.js +69 -0
- package/dist/endpoints/kv.d.ts +63 -0
- package/dist/endpoints/kv.d.ts.map +1 -0
- package/dist/endpoints/kv.js +82 -0
- package/dist/endpoints/monitoring-admin.d.ts +204 -0
- package/dist/endpoints/monitoring-admin.d.ts.map +1 -0
- package/dist/endpoints/monitoring-admin.js +119 -0
- package/dist/endpoints/monitoring.d.ts +63 -0
- package/dist/endpoints/monitoring.d.ts.map +1 -0
- package/dist/endpoints/monitoring.js +27 -0
- package/dist/endpoints/newsletter.d.ts +366 -0
- package/dist/endpoints/newsletter.d.ts.map +1 -0
- package/dist/endpoints/newsletter.js +232 -0
- package/dist/endpoints/notifications-admin.d.ts +268 -0
- package/dist/endpoints/notifications-admin.d.ts.map +1 -0
- package/dist/endpoints/notifications-admin.js +172 -0
- package/dist/endpoints/notifications.d.ts +225 -0
- package/dist/endpoints/notifications.d.ts.map +1 -0
- package/dist/endpoints/notifications.js +150 -0
- package/dist/endpoints/oidc.d.ts +67 -0
- package/dist/endpoints/oidc.d.ts.map +1 -0
- package/dist/endpoints/oidc.js +49 -0
- package/dist/endpoints/organizations.d.ts +702 -0
- package/dist/endpoints/organizations.d.ts.map +1 -0
- package/dist/endpoints/organizations.js +460 -0
- package/dist/endpoints/plans.d.ts +136 -0
- package/dist/endpoints/plans.d.ts.map +1 -0
- package/dist/endpoints/plans.js +83 -0
- package/dist/endpoints/privacy.d.ts +131 -0
- package/dist/endpoints/privacy.d.ts.map +1 -0
- package/dist/endpoints/privacy.js +98 -0
- package/dist/endpoints/project-manifest.d.ts +1044 -0
- package/dist/endpoints/project-manifest.d.ts.map +1 -0
- package/dist/endpoints/project-manifest.js +59 -0
- package/dist/endpoints/projects.d.ts +187 -0
- package/dist/endpoints/projects.d.ts.map +1 -0
- package/dist/endpoints/projects.js +58 -0
- package/dist/endpoints/rate-limits.d.ts +83 -0
- package/dist/endpoints/rate-limits.d.ts.map +1 -0
- package/dist/endpoints/rate-limits.js +54 -0
- package/dist/endpoints/realtime-admin.d.ts +42 -0
- package/dist/endpoints/realtime-admin.d.ts.map +1 -0
- package/dist/endpoints/realtime-admin.js +50 -0
- package/dist/endpoints/realtime.d.ts +35 -0
- package/dist/endpoints/realtime.d.ts.map +1 -0
- package/dist/endpoints/realtime.js +39 -0
- package/dist/endpoints/referrals-admin.d.ts +118 -0
- package/dist/endpoints/referrals-admin.d.ts.map +1 -0
- package/dist/endpoints/referrals-admin.js +59 -0
- package/dist/endpoints/refresh.d.ts +19 -0
- package/dist/endpoints/refresh.d.ts.map +1 -0
- package/dist/endpoints/refresh.js +25 -0
- package/dist/endpoints/regions.d.ts +41 -0
- package/dist/endpoints/regions.d.ts.map +1 -0
- package/dist/endpoints/regions.js +43 -0
- package/dist/endpoints/runners.d.ts +55 -0
- package/dist/endpoints/runners.d.ts.map +1 -0
- package/dist/endpoints/runners.js +45 -0
- package/dist/endpoints/saml.d.ts +147 -0
- package/dist/endpoints/saml.d.ts.map +1 -0
- package/dist/endpoints/saml.js +106 -0
- package/dist/endpoints/search.d.ts +62 -0
- package/dist/endpoints/search.d.ts.map +1 -0
- package/dist/endpoints/search.js +40 -0
- package/dist/endpoints/secrets.d.ts +95 -0
- package/dist/endpoints/secrets.d.ts.map +1 -0
- package/dist/endpoints/secrets.js +81 -0
- package/dist/endpoints/security.d.ts +231 -0
- package/dist/endpoints/security.d.ts.map +1 -0
- package/dist/endpoints/security.js +291 -0
- package/dist/endpoints/service-tokens.d.ts +392 -0
- package/dist/endpoints/service-tokens.d.ts.map +1 -0
- package/dist/endpoints/service-tokens.js +125 -0
- package/dist/endpoints/session-replay.d.ts +142 -0
- package/dist/endpoints/session-replay.d.ts.map +1 -0
- package/dist/endpoints/session-replay.js +53 -0
- package/dist/endpoints/storage-admin.d.ts +96 -0
- package/dist/endpoints/storage-admin.d.ts.map +1 -0
- package/dist/endpoints/storage-admin.js +113 -0
- package/dist/endpoints/storage.d.ts +167 -0
- package/dist/endpoints/storage.d.ts.map +1 -0
- package/dist/endpoints/storage.js +117 -0
- package/dist/endpoints/tasks.d.ts +141 -0
- package/dist/endpoints/tasks.d.ts.map +1 -0
- package/dist/endpoints/tasks.js +97 -0
- package/dist/endpoints/users.d.ts +103 -0
- package/dist/endpoints/users.d.ts.map +1 -0
- package/dist/endpoints/users.js +98 -0
- package/dist/endpoints/webhooks.d.ts +201 -0
- package/dist/endpoints/webhooks.d.ts.map +1 -0
- package/dist/endpoints/webhooks.js +120 -0
- package/dist/errors.d.ts +153 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +73 -0
- package/dist/index.d.ts +12303 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +390 -0
- package/dist/schemas/_primitives.d.ts +37 -0
- package/dist/schemas/_primitives.d.ts.map +1 -0
- package/dist/schemas/_primitives.js +38 -0
- package/dist/schemas/admin-ai-playground.d.ts +128 -0
- package/dist/schemas/admin-ai-playground.d.ts.map +1 -0
- package/dist/schemas/admin-ai-playground.js +84 -0
- package/dist/schemas/admin-anomalies.d.ts +131 -0
- package/dist/schemas/admin-anomalies.d.ts.map +1 -0
- package/dist/schemas/admin-anomalies.js +106 -0
- package/dist/schemas/admin-apm.d.ts +151 -0
- package/dist/schemas/admin-apm.d.ts.map +1 -0
- package/dist/schemas/admin-apm.js +96 -0
- package/dist/schemas/admin-audit.d.ts +625 -0
- package/dist/schemas/admin-audit.d.ts.map +1 -0
- package/dist/schemas/admin-audit.js +508 -0
- package/dist/schemas/admin-billing.d.ts +73 -0
- package/dist/schemas/admin-billing.d.ts.map +1 -0
- package/dist/schemas/admin-billing.js +60 -0
- package/dist/schemas/admin-bootstrap.d.ts +32 -0
- package/dist/schemas/admin-bootstrap.d.ts.map +1 -0
- package/dist/schemas/admin-bootstrap.js +37 -0
- package/dist/schemas/admin-broadcasts.d.ts +181 -0
- package/dist/schemas/admin-broadcasts.d.ts.map +1 -0
- package/dist/schemas/admin-broadcasts.js +93 -0
- package/dist/schemas/admin-builds.d.ts +108 -0
- package/dist/schemas/admin-builds.d.ts.map +1 -0
- package/dist/schemas/admin-builds.js +127 -0
- package/dist/schemas/admin-config.d.ts +248 -0
- package/dist/schemas/admin-config.d.ts.map +1 -0
- package/dist/schemas/admin-config.js +145 -0
- package/dist/schemas/admin-consent.d.ts +129 -0
- package/dist/schemas/admin-consent.d.ts.map +1 -0
- package/dist/schemas/admin-consent.js +76 -0
- package/dist/schemas/admin-env-services.d.ts +63 -0
- package/dist/schemas/admin-env-services.d.ts.map +1 -0
- package/dist/schemas/admin-env-services.js +81 -0
- package/dist/schemas/admin-impersonation.d.ts +150 -0
- package/dist/schemas/admin-impersonation.d.ts.map +1 -0
- package/dist/schemas/admin-impersonation.js +114 -0
- package/dist/schemas/admin-invitations.d.ts +119 -0
- package/dist/schemas/admin-invitations.d.ts.map +1 -0
- package/dist/schemas/admin-invitations.js +80 -0
- package/dist/schemas/admin-jwt-keys.d.ts +130 -0
- package/dist/schemas/admin-jwt-keys.d.ts.map +1 -0
- package/dist/schemas/admin-jwt-keys.js +83 -0
- package/dist/schemas/admin-logs.d.ts +170 -0
- package/dist/schemas/admin-logs.d.ts.map +1 -0
- package/dist/schemas/admin-logs.js +108 -0
- package/dist/schemas/admin-plans.d.ts +92 -0
- package/dist/schemas/admin-plans.d.ts.map +1 -0
- package/dist/schemas/admin-plans.js +62 -0
- package/dist/schemas/admin-project-users.d.ts +183 -0
- package/dist/schemas/admin-project-users.d.ts.map +1 -0
- package/dist/schemas/admin-project-users.js +108 -0
- package/dist/schemas/admin-projects.d.ts +237 -0
- package/dist/schemas/admin-projects.d.ts.map +1 -0
- package/dist/schemas/admin-projects.js +129 -0
- package/dist/schemas/admin-quotas.d.ts +161 -0
- package/dist/schemas/admin-quotas.d.ts.map +1 -0
- package/dist/schemas/admin-quotas.js +107 -0
- package/dist/schemas/admin-rate-limits.d.ts +90 -0
- package/dist/schemas/admin-rate-limits.d.ts.map +1 -0
- package/dist/schemas/admin-rate-limits.js +72 -0
- package/dist/schemas/admin-reconcile.d.ts +89 -0
- package/dist/schemas/admin-reconcile.d.ts.map +1 -0
- package/dist/schemas/admin-reconcile.js +86 -0
- package/dist/schemas/admin-resources.d.ts +129 -0
- package/dist/schemas/admin-resources.d.ts.map +1 -0
- package/dist/schemas/admin-resources.js +143 -0
- package/dist/schemas/admin-secrets.d.ts +113 -0
- package/dist/schemas/admin-secrets.d.ts.map +1 -0
- package/dist/schemas/admin-secrets.js +94 -0
- package/dist/schemas/admin-services.d.ts +71 -0
- package/dist/schemas/admin-services.d.ts.map +1 -0
- package/dist/schemas/admin-services.js +61 -0
- package/dist/schemas/admin-tasks.d.ts +239 -0
- package/dist/schemas/admin-tasks.d.ts.map +1 -0
- package/dist/schemas/admin-tasks.js +103 -0
- package/dist/schemas/admin-tenants.d.ts +45 -0
- package/dist/schemas/admin-tenants.d.ts.map +1 -0
- package/dist/schemas/admin-tenants.js +54 -0
- package/dist/schemas/admin-traces.d.ts +203 -0
- package/dist/schemas/admin-traces.d.ts.map +1 -0
- package/dist/schemas/admin-traces.js +128 -0
- package/dist/schemas/admin-users.d.ts +158 -0
- package/dist/schemas/admin-users.d.ts.map +1 -0
- package/dist/schemas/admin-users.js +110 -0
- package/dist/schemas/admin-webhook-signature-versions.d.ts +103 -0
- package/dist/schemas/admin-webhook-signature-versions.d.ts.map +1 -0
- package/dist/schemas/admin-webhook-signature-versions.js +73 -0
- package/dist/schemas/ai-admin.d.ts +39 -0
- package/dist/schemas/ai-admin.d.ts.map +1 -0
- package/dist/schemas/ai-admin.js +29 -0
- package/dist/schemas/ai.d.ts +120 -0
- package/dist/schemas/ai.d.ts.map +1 -0
- package/dist/schemas/ai.js +84 -0
- package/dist/schemas/analytics-admin.d.ts +104 -0
- package/dist/schemas/analytics-admin.d.ts.map +1 -0
- package/dist/schemas/analytics-admin.js +61 -0
- package/dist/schemas/analytics.d.ts +118 -0
- package/dist/schemas/analytics.d.ts.map +1 -0
- package/dist/schemas/analytics.js +80 -0
- package/dist/schemas/audit-chain.d.ts +81 -0
- package/dist/schemas/audit-chain.d.ts.map +1 -0
- package/dist/schemas/audit-chain.js +62 -0
- package/dist/schemas/auth-admin.d.ts +55 -0
- package/dist/schemas/auth-admin.d.ts.map +1 -0
- package/dist/schemas/auth-admin.js +48 -0
- package/dist/schemas/auth.d.ts +865 -0
- package/dist/schemas/auth.d.ts.map +1 -0
- package/dist/schemas/auth.js +815 -0
- package/dist/schemas/backups.d.ts +70 -0
- package/dist/schemas/backups.d.ts.map +1 -0
- package/dist/schemas/backups.js +38 -0
- package/dist/schemas/billing-console.d.ts +414 -0
- package/dist/schemas/billing-console.d.ts.map +1 -0
- package/dist/schemas/billing-console.js +298 -0
- package/dist/schemas/billing-settings.d.ts +156 -0
- package/dist/schemas/billing-settings.d.ts.map +1 -0
- package/dist/schemas/billing-settings.js +119 -0
- package/dist/schemas/billing.d.ts +211 -0
- package/dist/schemas/billing.d.ts.map +1 -0
- package/dist/schemas/billing.js +147 -0
- package/dist/schemas/branch-database.d.ts +98 -0
- package/dist/schemas/branch-database.d.ts.map +1 -0
- package/dist/schemas/branch-database.js +68 -0
- package/dist/schemas/challenge.d.ts +104 -0
- package/dist/schemas/challenge.d.ts.map +1 -0
- package/dist/schemas/challenge.js +74 -0
- package/dist/schemas/ci-settings.d.ts +122 -0
- package/dist/schemas/ci-settings.d.ts.map +1 -0
- package/dist/schemas/ci-settings.js +65 -0
- package/dist/schemas/consent-admin.d.ts +187 -0
- package/dist/schemas/consent-admin.d.ts.map +1 -0
- package/dist/schemas/consent-admin.js +114 -0
- package/dist/schemas/consent.d.ts +78 -0
- package/dist/schemas/consent.d.ts.map +1 -0
- package/dist/schemas/consent.js +68 -0
- package/dist/schemas/database.d.ts +104 -0
- package/dist/schemas/database.d.ts.map +1 -0
- package/dist/schemas/database.js +89 -0
- package/dist/schemas/deployment.d.ts +386 -0
- package/dist/schemas/deployment.d.ts.map +1 -0
- package/dist/schemas/deployment.js +282 -0
- package/dist/schemas/domain.d.ts +148 -0
- package/dist/schemas/domain.d.ts.map +1 -0
- package/dist/schemas/domain.js +86 -0
- package/dist/schemas/edge-deployments.d.ts +140 -0
- package/dist/schemas/edge-deployments.d.ts.map +1 -0
- package/dist/schemas/edge-deployments.js +87 -0
- package/dist/schemas/email-admin.d.ts +384 -0
- package/dist/schemas/email-admin.d.ts.map +1 -0
- package/dist/schemas/email-admin.js +313 -0
- package/dist/schemas/email.d.ts +46 -0
- package/dist/schemas/email.d.ts.map +1 -0
- package/dist/schemas/email.js +34 -0
- package/dist/schemas/engagement-admin.d.ts +148 -0
- package/dist/schemas/engagement-admin.d.ts.map +1 -0
- package/dist/schemas/engagement-admin.js +107 -0
- package/dist/schemas/env-var.d.ts +68 -0
- package/dist/schemas/env-var.d.ts.map +1 -0
- package/dist/schemas/env-var.js +52 -0
- package/dist/schemas/environment.d.ts +392 -0
- package/dist/schemas/environment.d.ts.map +1 -0
- package/dist/schemas/environment.js +211 -0
- package/dist/schemas/experiments.d.ts +540 -0
- package/dist/schemas/experiments.d.ts.map +1 -0
- package/dist/schemas/experiments.js +150 -0
- package/dist/schemas/flags-admin.d.ts +112 -0
- package/dist/schemas/flags-admin.d.ts.map +1 -0
- package/dist/schemas/flags-admin.js +84 -0
- package/dist/schemas/flags.d.ts +43 -0
- package/dist/schemas/flags.d.ts.map +1 -0
- package/dist/schemas/flags.js +27 -0
- package/dist/schemas/github.d.ts +34 -0
- package/dist/schemas/github.d.ts.map +1 -0
- package/dist/schemas/github.js +24 -0
- package/dist/schemas/ids.d.ts +39 -0
- package/dist/schemas/ids.d.ts.map +1 -0
- package/dist/schemas/ids.js +26 -0
- package/dist/schemas/image-opt.d.ts +70 -0
- package/dist/schemas/image-opt.d.ts.map +1 -0
- package/dist/schemas/image-opt.js +68 -0
- package/dist/schemas/kv-admin.d.ts +60 -0
- package/dist/schemas/kv-admin.d.ts.map +1 -0
- package/dist/schemas/kv-admin.js +43 -0
- package/dist/schemas/kv.d.ts +79 -0
- package/dist/schemas/kv.d.ts.map +1 -0
- package/dist/schemas/kv.js +54 -0
- package/dist/schemas/monitoring-admin.d.ts +314 -0
- package/dist/schemas/monitoring-admin.d.ts.map +1 -0
- package/dist/schemas/monitoring-admin.js +196 -0
- package/dist/schemas/monitoring.d.ts +143 -0
- package/dist/schemas/monitoring.d.ts.map +1 -0
- package/dist/schemas/monitoring.js +96 -0
- package/dist/schemas/newsletter.d.ts +366 -0
- package/dist/schemas/newsletter.d.ts.map +1 -0
- package/dist/schemas/newsletter.js +245 -0
- package/dist/schemas/notifications-admin.d.ts +337 -0
- package/dist/schemas/notifications-admin.d.ts.map +1 -0
- package/dist/schemas/notifications-admin.js +261 -0
- package/dist/schemas/notifications.d.ts +312 -0
- package/dist/schemas/notifications.d.ts.map +1 -0
- package/dist/schemas/notifications.js +235 -0
- package/dist/schemas/oidc.d.ts +74 -0
- package/dist/schemas/oidc.d.ts.map +1 -0
- package/dist/schemas/oidc.js +46 -0
- package/dist/schemas/organization-billing.d.ts +165 -0
- package/dist/schemas/organization-billing.d.ts.map +1 -0
- package/dist/schemas/organization-billing.js +156 -0
- package/dist/schemas/organization-project-users.d.ts +126 -0
- package/dist/schemas/organization-project-users.d.ts.map +1 -0
- package/dist/schemas/organization-project-users.js +88 -0
- package/dist/schemas/organization-projects.d.ts +129 -0
- package/dist/schemas/organization-projects.d.ts.map +1 -0
- package/dist/schemas/organization-projects.js +119 -0
- package/dist/schemas/organization-referrals.d.ts +129 -0
- package/dist/schemas/organization-referrals.d.ts.map +1 -0
- package/dist/schemas/organization-referrals.js +126 -0
- package/dist/schemas/organization-team.d.ts +123 -0
- package/dist/schemas/organization-team.d.ts.map +1 -0
- package/dist/schemas/organization-team.js +119 -0
- package/dist/schemas/organization.d.ts +210 -0
- package/dist/schemas/organization.d.ts.map +1 -0
- package/dist/schemas/organization.js +169 -0
- package/dist/schemas/plans.d.ts +211 -0
- package/dist/schemas/plans.d.ts.map +1 -0
- package/dist/schemas/plans.js +131 -0
- package/dist/schemas/privacy.d.ts +174 -0
- package/dist/schemas/privacy.d.ts.map +1 -0
- package/dist/schemas/privacy.js +132 -0
- package/dist/schemas/project-manifest.d.ts +1421 -0
- package/dist/schemas/project-manifest.d.ts.map +1 -0
- package/dist/schemas/project-manifest.js +318 -0
- package/dist/schemas/project.d.ts +132 -0
- package/dist/schemas/project.d.ts.map +1 -0
- package/dist/schemas/project.js +76 -0
- package/dist/schemas/realtime-admin.d.ts +51 -0
- package/dist/schemas/realtime-admin.d.ts.map +1 -0
- package/dist/schemas/realtime-admin.js +29 -0
- package/dist/schemas/realtime.d.ts +46 -0
- package/dist/schemas/realtime.d.ts.map +1 -0
- package/dist/schemas/realtime.js +32 -0
- package/dist/schemas/referrals-admin.d.ts +166 -0
- package/dist/schemas/referrals-admin.d.ts.map +1 -0
- package/dist/schemas/referrals-admin.js +123 -0
- package/dist/schemas/referrals.d.ts +148 -0
- package/dist/schemas/referrals.d.ts.map +1 -0
- package/dist/schemas/referrals.js +102 -0
- package/dist/schemas/refresh.d.ts +29 -0
- package/dist/schemas/refresh.d.ts.map +1 -0
- package/dist/schemas/refresh.js +18 -0
- package/dist/schemas/region.d.ts +118 -0
- package/dist/schemas/region.d.ts.map +1 -0
- package/dist/schemas/region.js +86 -0
- package/dist/schemas/resources.d.ts +345 -0
- package/dist/schemas/resources.d.ts.map +1 -0
- package/dist/schemas/resources.js +220 -0
- package/dist/schemas/runners.d.ts +93 -0
- package/dist/schemas/runners.d.ts.map +1 -0
- package/dist/schemas/runners.js +49 -0
- package/dist/schemas/saml.d.ts +254 -0
- package/dist/schemas/saml.d.ts.map +1 -0
- package/dist/schemas/saml.js +159 -0
- package/dist/schemas/search.d.ts +96 -0
- package/dist/schemas/search.d.ts.map +1 -0
- package/dist/schemas/search.js +57 -0
- package/dist/schemas/secret.d.ts +101 -0
- package/dist/schemas/secret.d.ts.map +1 -0
- package/dist/schemas/secret.js +79 -0
- package/dist/schemas/security.d.ts +345 -0
- package/dist/schemas/security.d.ts.map +1 -0
- package/dist/schemas/security.js +248 -0
- package/dist/schemas/service-tokens.d.ts +342 -0
- package/dist/schemas/service-tokens.d.ts.map +1 -0
- package/dist/schemas/service-tokens.js +101 -0
- package/dist/schemas/session-replay.d.ts +285 -0
- package/dist/schemas/session-replay.d.ts.map +1 -0
- package/dist/schemas/session-replay.js +145 -0
- package/dist/schemas/storage-admin.d.ts +351 -0
- package/dist/schemas/storage-admin.d.ts.map +1 -0
- package/dist/schemas/storage-admin.js +197 -0
- package/dist/schemas/storage.d.ts +257 -0
- package/dist/schemas/storage.d.ts.map +1 -0
- package/dist/schemas/storage.js +173 -0
- package/dist/schemas/tasks.d.ts +178 -0
- package/dist/schemas/tasks.d.ts.map +1 -0
- package/dist/schemas/tasks.js +102 -0
- package/dist/schemas/user.d.ts +103 -0
- package/dist/schemas/user.d.ts.map +1 -0
- package/dist/schemas/user.js +79 -0
- package/dist/schemas/webhooks.d.ts +259 -0
- package/dist/schemas/webhooks.d.ts.map +1 -0
- package/dist/schemas/webhooks.js +198 -0
- package/package.json +154 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# @sylphx/contract
|
|
2
|
+
|
|
3
|
+
## 0.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`c4471cf`](https://github.com/SylphxAI/platform/commit/c4471cf729a2a60865d0df5bbf04b87f55d57858) Thanks [@shtse8](https://github.com/shtse8)! - Initial public release. Effect Schema SSOT for every Sylphx Platform API endpoint across the Management plane (`api.sylphx.com/v1`) and BaaS plane (`runtime.sylphx.com/v1`). Framework-free, Standard Schema-compatible. Both `@sylphx/management` and `@sylphx/sdk` derive their request / response / error types from this package — see ADR-084.
|
|
8
|
+
|
|
9
|
+
## 0.1.0 (wrongly labelled 1.0.0; reverted 2026-04-23 — still in beta)
|
|
10
|
+
|
|
11
|
+
### Changes
|
|
12
|
+
|
|
13
|
+
- **Initial beta release.** Effect Schema SSOT for the entire Sylphx API surface. Per [ADR-084](https://github.com/SylphxAI/platform/blob/main/docs/adr/ADR-084-effect-schema-contract.md), every endpoint, request body, response envelope, and error type is defined once in this package and consumed everywhere — `apps/api` Hono routes, the published SDKs (`@sylphx/management`, `@sylphx/sdk`), and the derived `openapi.json` spec. Hand-written parallel types are a bug (ADR-084 Rule 2).
|
|
14
|
+
- **70 endpoint groups, 82 schema files, ~745 endpoint definitions** covering three planes:
|
|
15
|
+
- **Management** (`api.sylphx.com/v1`, Bearer `slx_*` / `sk_*`): `projects`, `deployments`, `environments`, `databases`, `envVars`, `domains`, `organizations`, `secrets`, `users`, `ciSettings`, `github`, `billingSettings`, `serviceTokens`, `serviceTokenRequests`, `runners`, `backups`, `webhooks`, `tasks`, `storage`, `storageAdmin`, `realtime`, `realtimeAdmin`, `saml`, `oidc`, `security`, `monitoring`, `monitoringAdmin`, `analytics`, `analyticsAdmin`, `flags`, `flagsAdmin`, `experiments`, `newsletter`, `referralsAdmin`, `engagementAdmin`, `aiAdmin`, `search`, `sessionReplay`, `email`, `emailAdmin`, `notifications`, `notificationsAdmin`, `consentAdmin`, `privacy`, `plans`, `billingConsole`.
|
|
16
|
+
- **BaaS** (`<tenant-slug>.api.sylphx.com/v1`, ADR-083.1): `auth`, `refresh`, `challenge`, `kv`, `kvAdmin`, `email` (transactional send), `notifications` (push / in-app), `flags.evaluate`, `realtime` (pub/sub), `storage`, `search`.
|
|
17
|
+
- **Admin** (operator-only Console routes): `adminAiPlayground`, `adminAnomalies`, `adminApm`, `adminAudit`, `adminBilling`, `adminBroadcasts`, `adminConfig`, `adminConsent`, `adminImpersonation`, `adminInvitations`, `adminJwtKeys`, `adminLogs`, `adminPlans`, `adminProjects`, `adminProjectUsers`, `adminQuotas`, `adminTasks`, `adminTraces`, `adminUsers`.
|
|
18
|
+
- **`defineEndpoint()` primitive.** Each endpoint carries `method`, `path`, `params`, `query`, `body`, `response`, `summary`, `tags`, `plane`, and optional `agentHint`. `plane` gates SDK generation and OpenAPI splitting. `agentHint` surfaces as `x-agent-hint` in the spec for LLM tool-callers.
|
|
19
|
+
- **Standard Schema v1 compatible** via `Schema.standardSchemaV1(...)` — consumers that speak Standard Schema (hono-openapi, form libraries, agent SDKs) integrate without a plugin.
|
|
20
|
+
- **Branded entity IDs.** `ProjectId`, `EnvironmentId`, `DeploymentId`, `UserId`, `OrganizationId`, `SecretId`, `DomainId`, etc. are branded strings — mixing IDs across entities is a type error.
|
|
21
|
+
- **Tagged `ApiError` union.** `UnauthorizedError`, `ForbiddenError`, `NotFoundError`, `ConflictError`, `ValidationError`, `RateLimitedError`, `InternalError` — consumers discriminate on `_tag` rather than parsing messages.
|
|
22
|
+
- **JSON Schema derivation.** Every Effect Schema is emittable to JSON Schema via `JSONSchema.make(...)`, which is how `scripts/generate-openapi.ts` produces the OpenAPI 3.1 spec.
|
|
23
|
+
- **Framework-free.** No Hono, Next.js, or runtime dependencies. Effect is a peer dependency (`>=3.21.0`); consumers bring their own version.
|
|
24
|
+
- **ESM-only.** `"type": "module"`, `sideEffects: false`, Node ≥ 20. Per-entity (`./schemas/project`) and per-namespace (`./endpoints/projects`) subpath exports for tree-shaking.
|
|
25
|
+
|
|
26
|
+
### Plane discipline (ADR-083)
|
|
27
|
+
|
|
28
|
+
A single SSOT enforces the `401 plane_mismatch` rules identically on both clients — the contract is the canonical definition of which endpoints live on which plane.
|
|
29
|
+
|
|
30
|
+
### Design rules (frozen for 0.x beta)
|
|
31
|
+
|
|
32
|
+
1. Effect Schema only — no Zod, no manual TS interfaces, no OpenAPI hand-editing.
|
|
33
|
+
2. Standard Schema compliant.
|
|
34
|
+
3. Framework-free.
|
|
35
|
+
4. Branded IDs.
|
|
36
|
+
5. Tagged errors.
|
|
37
|
+
6. Plane-aware (`management` | `baas` | `admin`).
|
|
38
|
+
7. Agent-hint-aware (OpenAPI 4 forward-compat).
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Pre-release history
|
|
43
|
+
|
|
44
|
+
`@sylphx/contract` was introduced mid-2026 as the replacement for the auto-generated type pipeline in `@sylphx/api-types`. The 0.1.0 beta above is the first publicly surfaced version; pre-release iteration happened on internal versions and culminated in the ADR-084 Wave 4 migration (2026-04-23) which dropped `@hono/zod-openapi` from `apps/api` and relocated the legacy Zod schema machinery.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Sylphx
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# @sylphx/contract
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@sylphx/contract)
|
|
4
|
+
[](./LICENSE)
|
|
5
|
+
|
|
6
|
+
> The Effect Schema SSOT for every Sylphx API endpoint.
|
|
7
|
+
|
|
8
|
+
Part of [ADR-084 — Effect Schema Contract](https://github.com/SylphxAI/platform/blob/main/docs/adr/ADR-084-effect-schema-contract.md).
|
|
9
|
+
|
|
10
|
+
## Installation
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
bun add @sylphx/contract effect
|
|
14
|
+
# or
|
|
15
|
+
npm install @sylphx/contract effect
|
|
16
|
+
# or
|
|
17
|
+
pnpm add @sylphx/contract effect
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
`effect` is a peer dependency — consumers bring their own version.
|
|
21
|
+
|
|
22
|
+
## Why this exists
|
|
23
|
+
|
|
24
|
+
One contract drives four consumers:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
@sylphx/contract
|
|
28
|
+
(Effect Schema + endpoint tuples)
|
|
29
|
+
│
|
|
30
|
+
┌──────────────┬───┴────────────┐
|
|
31
|
+
▼ ▼ ▼
|
|
32
|
+
apps/api @sylphx/management @sylphx/sdk
|
|
33
|
+
(Hono routes) (Management SDK) (BaaS SDK)
|
|
34
|
+
│
|
|
35
|
+
▼
|
|
36
|
+
scripts/generate-openapi.ts
|
|
37
|
+
│
|
|
38
|
+
▼
|
|
39
|
+
openapi.json (derivation)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
- **Hono routes** in `apps/api` wire each endpoint tuple through `hono-openapi` (Standard Schema adapter).
|
|
43
|
+
- **Published SDKs** (`@sylphx/management`, `@sylphx/sdk`) derive their typed request/response signatures here — no hand-written duplicates (ADR-084 Rule 2). Effect types are stripped from the `.d.ts` at publish time so external consumers see a clean `Promise<T>` surface.
|
|
44
|
+
- **OpenAPI 3.1 spec** is a derivation via `scripts/generate-openapi.ts`, not the source. Advanced cross-language consumers (Python, Go, Rust) get codegen output from the spec.
|
|
45
|
+
|
|
46
|
+
## Quick start
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
import { Project, endpoints } from '@sylphx/contract'
|
|
50
|
+
import { Schema } from 'effect'
|
|
51
|
+
|
|
52
|
+
// Decode an API payload using Effect Schema directly.
|
|
53
|
+
const project = Schema.decodeUnknownSync(Project)(payload)
|
|
54
|
+
|
|
55
|
+
// Inspect endpoint metadata (method, path, request / response schemas).
|
|
56
|
+
endpoints.projects.list.method // 'GET'
|
|
57
|
+
endpoints.projects.list.path // '/projects'
|
|
58
|
+
endpoints.projects.list.plane // 'management'
|
|
59
|
+
endpoints.projects.list.response // Schema.Struct({ data: Schema.Array(Project) })
|
|
60
|
+
|
|
61
|
+
// Bridge to any Standard Schema v1 consumer (hono-openapi, MCP SDK, …).
|
|
62
|
+
const standardProject = Schema.standardSchemaV1(Project)
|
|
63
|
+
const result = standardProject['~standard'].validate(payload)
|
|
64
|
+
// ^ { value: Project } | { issues: [...] }
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Design rules
|
|
68
|
+
|
|
69
|
+
1. **Effect Schema only.** No Zod, no manual TS interfaces, no OpenAPI hand-editing.
|
|
70
|
+
2. **Standard Schema compliant.** Every schema value exposes `~standard` via `Schema.standardSchemaV1(...)` — validator-library swap is free if the bet ever needs unwinding.
|
|
71
|
+
3. **Framework-free.** No Hono, Next.js, or runtime dependencies. Consumers decide how to wire.
|
|
72
|
+
4. **Branded IDs.** Entity IDs (`ProjectId`, `EnvironmentId`, …) are branded strings; mixing across entities is a type error.
|
|
73
|
+
5. **Tagged errors.** Failures use discriminated unions on `_tag` — consumers pattern-match, never string-compare.
|
|
74
|
+
6. **Plane-aware.** Each endpoint carries a `plane: 'management' | 'baas' | 'admin'` hint so the OpenAPI splitter and SDK generator scope correctly.
|
|
75
|
+
7. **Agent-hint-aware.** Each endpoint may carry `agentHint: string` — emitted as `x-agent-hint` in the OpenAPI derivation for downstream LLM tool-callers.
|
|
76
|
+
|
|
77
|
+
## Structure
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
src/
|
|
81
|
+
endpoint.ts — defineEndpoint() + Endpoint<...> type
|
|
82
|
+
errors.ts — ApiError tagged union (400/401/403/404/409/422/429/500)
|
|
83
|
+
index.ts — barrel + flat `endpoints` map
|
|
84
|
+
schemas/ — one file per entity type (82 files)
|
|
85
|
+
endpoints/ — one file per namespace (70 files)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Coverage
|
|
89
|
+
|
|
90
|
+
Today: **70 endpoint groups, 82 schema files, ~745 endpoint definitions** across three planes.
|
|
91
|
+
|
|
92
|
+
### Management plane (`api.sylphx.com/v1`)
|
|
93
|
+
|
|
94
|
+
Platform-owner ops consumed by Console, CLI, CI integrations, and service-token automation (Bearer `slx_*` user / `sk_*` service).
|
|
95
|
+
|
|
96
|
+
`projects`, `deployments`, `environments`, `databases`, `envVars`, `domains`, `organizations`, `secrets`, `users`, `ciSettings`, `github`, `billingSettings`, `serviceTokens`, `serviceTokenRequests`, `runners`, `backups`, `webhooks`, `tasks`, `storage`, `storageAdmin`, `realtime`, `realtimeAdmin`, `saml`, `oidc`, `security`, `monitoring`, `monitoringAdmin`, `analytics`, `analyticsAdmin`, `flags`, `flagsAdmin`, `experiments`, `newsletter`, `referralsAdmin`, `engagementAdmin`, `aiAdmin`, `search`, `sessionReplay`, `email`, `emailAdmin`, `notifications`, `notificationsAdmin`, `consentAdmin`, `privacy`, `plans`, `billingConsole`.
|
|
97
|
+
|
|
98
|
+
### BaaS plane (`<tenant-slug>.api.sylphx.com/v1`, ADR-083.1)
|
|
99
|
+
|
|
100
|
+
Runtime data-plane verbs consumed by deployed applications (`sk_*` + end-user JWT or `pk_*` + RLS).
|
|
101
|
+
|
|
102
|
+
`auth`, `refresh`, `challenge`, `kv`, `kvAdmin`, `email` (transactional send), `notifications` (push / in-app), `flags.evaluate`, `realtime` (pub/sub), `storage`, `search`.
|
|
103
|
+
|
|
104
|
+
### Admin plane
|
|
105
|
+
|
|
106
|
+
Operator-only Console routes that customers never consume.
|
|
107
|
+
|
|
108
|
+
`adminAiPlayground`, `adminAnomalies`, `adminApm`, `adminAudit`, `adminBilling`, `adminBroadcasts`, `adminConfig`, `adminConsent`, `adminImpersonation`, `adminInvitations`, `adminJwtKeys`, `adminLogs`, `adminPlans`, `adminProjects`, `adminProjectUsers`, `adminQuotas`, `adminTasks`, `adminTraces`, `adminUsers`.
|
|
109
|
+
|
|
110
|
+
## Defining a new endpoint
|
|
111
|
+
|
|
112
|
+
```ts
|
|
113
|
+
// packages/contract/src/endpoints/tasks.ts
|
|
114
|
+
import { Schema } from 'effect'
|
|
115
|
+
import { defineEndpoint } from '../endpoint.js'
|
|
116
|
+
import { Task, TaskId } from '../schemas/task.js'
|
|
117
|
+
|
|
118
|
+
export const tasksEndpoints = {
|
|
119
|
+
list: defineEndpoint({
|
|
120
|
+
method: 'GET',
|
|
121
|
+
path: '/tasks',
|
|
122
|
+
response: Schema.Struct({ data: Schema.Array(Task) }),
|
|
123
|
+
summary: 'List tasks across the current org.',
|
|
124
|
+
tags: ['tasks'],
|
|
125
|
+
plane: 'management',
|
|
126
|
+
agentHint: 'Call this before triggering a new run to avoid duplicate work.',
|
|
127
|
+
}),
|
|
128
|
+
create: defineEndpoint({
|
|
129
|
+
method: 'POST',
|
|
130
|
+
path: '/tasks',
|
|
131
|
+
body: Schema.Struct({ name: Schema.String }),
|
|
132
|
+
response: Task,
|
|
133
|
+
plane: 'management',
|
|
134
|
+
}),
|
|
135
|
+
get: defineEndpoint({
|
|
136
|
+
method: 'GET',
|
|
137
|
+
path: '/tasks/:id',
|
|
138
|
+
params: Schema.Struct({ id: TaskId }),
|
|
139
|
+
response: Task,
|
|
140
|
+
plane: 'management',
|
|
141
|
+
}),
|
|
142
|
+
} as const
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Register the group in `src/index.ts` and every downstream consumer (API, both SDKs, OpenAPI spec) picks it up. CI (`scripts/check-contract-first.ts`) rejects net-new `@hono/zod-openapi` routes and hand-written SDK types.
|
|
146
|
+
|
|
147
|
+
## Subpath imports
|
|
148
|
+
|
|
149
|
+
Tree-shake a single entity schema or endpoint group without pulling the entire barrel:
|
|
150
|
+
|
|
151
|
+
```ts
|
|
152
|
+
import { Project, ProjectId } from '@sylphx/contract/schemas/project'
|
|
153
|
+
import { projectsEndpoints } from '@sylphx/contract/endpoints/projects'
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Related packages
|
|
157
|
+
|
|
158
|
+
- [`@sylphx/management`](https://www.npmjs.com/package/@sylphx/management) — Promise client for the Management plane, types derived from this contract.
|
|
159
|
+
- [`@sylphx/sdk`](https://www.npmjs.com/package/@sylphx/sdk) — runtime BaaS SDK for deployed apps.
|
|
160
|
+
- [`@sylphx/cli`](https://www.npmjs.com/package/@sylphx/cli) — interactive CLI built on `@sylphx/management`.
|
|
161
|
+
|
|
162
|
+
## License
|
|
163
|
+
|
|
164
|
+
MIT — see [LICENSE](./LICENSE).
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Endpoint tuple primitive — framework-free description of an HTTP operation.
|
|
3
|
+
*
|
|
4
|
+
* Consumers:
|
|
5
|
+
* - `apps/api` wires each endpoint to a Hono handler via `hono-openapi`
|
|
6
|
+
* (Standard Schema adapter).
|
|
7
|
+
* - `@sylphx/management` + `@sylphx/sdk` derive their typed request/response
|
|
8
|
+
* signatures directly from these tuples — no hand-written types allowed
|
|
9
|
+
* (ADR-084 Rule 2).
|
|
10
|
+
*
|
|
11
|
+
* Schemas carried here are Effect `Schema.Schema<A, I, R>` values. Effect
|
|
12
|
+
* Schema implements Standard Schema's `~standard` interface natively, so
|
|
13
|
+
* every consumer that speaks Standard Schema works without adapters.
|
|
14
|
+
*/
|
|
15
|
+
import type { Schema } from 'effect';
|
|
16
|
+
/** HTTP method whitelist — what Hono understands. */
|
|
17
|
+
export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
|
|
18
|
+
/**
|
|
19
|
+
* Structural endpoint definition. Each schema is optional independently so
|
|
20
|
+
* GETs can skip `body`, DELETEs can skip `body` + `query`, etc.
|
|
21
|
+
*
|
|
22
|
+
* `ResponseSchema` is the default/success envelope. Errors are carried as a
|
|
23
|
+
* record keyed by HTTP status code → Effect Schema, so the generated
|
|
24
|
+
* OpenAPI derivation and the SDK strip-at-publish both see the full failure
|
|
25
|
+
* surface (ADR-084 §1).
|
|
26
|
+
*/
|
|
27
|
+
export interface Endpoint<Method extends HttpMethod = HttpMethod, Path extends string = string, Params extends Schema.Schema<any, any, never> | undefined = any, Query extends Schema.Schema<any, any, never> | undefined = any, Body extends Schema.Schema<any, any, never> | undefined = any, Response extends Schema.Schema<any, any, never> = Schema.Schema<any, any, never>> {
|
|
28
|
+
readonly method: Method;
|
|
29
|
+
readonly path: Path;
|
|
30
|
+
readonly params?: Params;
|
|
31
|
+
readonly query?: Query;
|
|
32
|
+
readonly body?: Body;
|
|
33
|
+
readonly response: Response;
|
|
34
|
+
readonly errors?: Readonly<Record<number, Schema.Schema.AnyNoContext>>;
|
|
35
|
+
readonly summary?: string;
|
|
36
|
+
readonly description?: string;
|
|
37
|
+
readonly tags?: readonly string[];
|
|
38
|
+
/**
|
|
39
|
+
* Control-plane vs data-plane routing hint. Consumed by
|
|
40
|
+
* • `scripts/generate-openapi.ts` → emitted as `x-sylphx-plane`
|
|
41
|
+
* • SDK/management splitter → decides whether the endpoint hangs off
|
|
42
|
+
* `api.sylphx.com` (management) or `<tenant-slug>.api.sylphx.com`
|
|
43
|
+
* (baas, per ADR-083.1).
|
|
44
|
+
*
|
|
45
|
+
* `admin` is a distinct plane covering Console operator-dashboard routes
|
|
46
|
+
* that customers never consume (super-admin platform administration).
|
|
47
|
+
*/
|
|
48
|
+
readonly plane?: 'management' | 'baas' | 'admin';
|
|
49
|
+
/** LLM-targeted description emitted as `x-agent-hint` (OpenAPI 4 forward-compat). */
|
|
50
|
+
readonly agentHint?: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Identity helper that preserves the full literal shape of every field.
|
|
54
|
+
* Calling `defineEndpoint({...})` instead of an object literal lets
|
|
55
|
+
* TypeScript capture the exact `method`, `path`, and schema identities —
|
|
56
|
+
* which downstream consumers (SDK codegen, MCP tool descriptors, Hono route
|
|
57
|
+
* builder) rely on for type-level path-parameter inference.
|
|
58
|
+
*/
|
|
59
|
+
export declare const defineEndpoint: <Method extends HttpMethod, Path extends string, Params extends Schema.Schema.AnyNoContext | undefined, Query extends Schema.Schema.AnyNoContext | undefined, Body extends Schema.Schema.AnyNoContext | undefined, Response extends Schema.Schema.AnyNoContext>(endpoint: Endpoint<Method, Path, Params, Query, Body, Response>) => Endpoint<Method, Path, Params, Query, Body, Response>;
|
|
60
|
+
/**
|
|
61
|
+
* A record of endpoints grouped by a capability namespace — e.g. the object
|
|
62
|
+
* exported from `endpoints/projects.ts`.
|
|
63
|
+
*/
|
|
64
|
+
export type EndpointGroup = Readonly<Record<string, Endpoint>>;
|
|
65
|
+
//# sourceMappingURL=endpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEpC,qDAAqD;AACrD,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAA;AAEpE;;;;;;;;GAQG;AACH,MAAM,WAAW,QAAQ,CACxB,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,IAAI,SAAS,MAAM,GAAG,MAAM,EAE5B,MAAM,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,SAAS,GAAG,GAAG,EAE/D,KAAK,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,SAAS,GAAG,GAAG,EAE9D,IAAI,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,SAAS,GAAG,GAAG,EAE7D,QAAQ,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;IAEhF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;IACtE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,OAAO,CAAA;IAChD,qFAAqF;IACrF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAC1B,MAAM,SAAS,UAAU,EACzB,IAAI,SAAS,MAAM,EACnB,MAAM,SAAS,MAAM,CAAC,MAAM,CAAC,YAAY,GAAG,SAAS,EACrD,KAAK,SAAS,MAAM,CAAC,MAAM,CAAC,YAAY,GAAG,SAAS,EACpD,IAAI,SAAS,MAAM,CAAC,MAAM,CAAC,YAAY,GAAG,SAAS,EACnD,QAAQ,SAAS,MAAM,CAAC,MAAM,CAAC,YAAY,EAE3C,UAAU,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,KAC7D,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAa,CAAA;AAEpE;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA"}
|
package/dist/endpoint.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Endpoint tuple primitive — framework-free description of an HTTP operation.
|
|
3
|
+
*
|
|
4
|
+
* Consumers:
|
|
5
|
+
* - `apps/api` wires each endpoint to a Hono handler via `hono-openapi`
|
|
6
|
+
* (Standard Schema adapter).
|
|
7
|
+
* - `@sylphx/management` + `@sylphx/sdk` derive their typed request/response
|
|
8
|
+
* signatures directly from these tuples — no hand-written types allowed
|
|
9
|
+
* (ADR-084 Rule 2).
|
|
10
|
+
*
|
|
11
|
+
* Schemas carried here are Effect `Schema.Schema<A, I, R>` values. Effect
|
|
12
|
+
* Schema implements Standard Schema's `~standard` interface natively, so
|
|
13
|
+
* every consumer that speaks Standard Schema works without adapters.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Identity helper that preserves the full literal shape of every field.
|
|
17
|
+
* Calling `defineEndpoint({...})` instead of an object literal lets
|
|
18
|
+
* TypeScript capture the exact `method`, `path`, and schema identities —
|
|
19
|
+
* which downstream consumers (SDK codegen, MCP tool descriptors, Hono route
|
|
20
|
+
* builder) rely on for type-level path-parameter inference.
|
|
21
|
+
*/
|
|
22
|
+
export const defineEndpoint = (endpoint) => endpoint;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Admin AI Playground endpoints — Console operator dashboard AI model testing.
|
|
3
|
+
* Mirrors `apps/api/src/server/platform/routes/admin/ai-playground.ts`.
|
|
4
|
+
*
|
|
5
|
+
* Production mount: `/admin/ai-playground/*`. The `/stream` SSE endpoint is
|
|
6
|
+
* handler-side only — it emits `text/event-stream`, not JSON.
|
|
7
|
+
*/
|
|
8
|
+
export declare const adminAiPlaygroundEndpoints: {
|
|
9
|
+
readonly listModels: import("../endpoint.js").Endpoint<"GET", "/admin/ai-playground/models", import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Struct<{
|
|
10
|
+
models: import("effect/Schema").Array$<import("effect/Schema").Struct<{
|
|
11
|
+
id: typeof import("effect/Schema").String;
|
|
12
|
+
name: typeof import("effect/Schema").String;
|
|
13
|
+
contextWindow: typeof import("effect/Schema").Number;
|
|
14
|
+
capabilities: import("effect/Schema").Struct<{
|
|
15
|
+
chat: typeof import("effect/Schema").Boolean;
|
|
16
|
+
completion: typeof import("effect/Schema").Boolean;
|
|
17
|
+
embedding: import("effect/Schema").optional<typeof import("effect/Schema").Boolean>;
|
|
18
|
+
vision: import("effect/Schema").optional<typeof import("effect/Schema").Boolean>;
|
|
19
|
+
functionCalling: import("effect/Schema").optional<typeof import("effect/Schema").Boolean>;
|
|
20
|
+
}>;
|
|
21
|
+
inputCostPer1M: typeof import("effect/Schema").Number;
|
|
22
|
+
outputCostPer1M: typeof import("effect/Schema").Number;
|
|
23
|
+
}>>;
|
|
24
|
+
}>>;
|
|
25
|
+
readonly chat: import("../endpoint.js").Endpoint<"POST", "/admin/ai-playground/chat", import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Struct<{
|
|
26
|
+
projectId: typeof import("effect/Schema").String;
|
|
27
|
+
model: typeof import("effect/Schema").String;
|
|
28
|
+
messages: import("effect/Schema").Array$<import("effect/Schema").Struct<{
|
|
29
|
+
role: import("effect/Schema").Literal<["user", "assistant", "system"]>;
|
|
30
|
+
content: import("effect/Schema").Union<[typeof import("effect/Schema").String, import("effect/Schema").Array$<import("effect/Schema").Struct<{
|
|
31
|
+
type: import("effect/Schema").Literal<["text", "image"]>;
|
|
32
|
+
text: import("effect/Schema").optional<typeof import("effect/Schema").String>;
|
|
33
|
+
image: import("effect/Schema").optional<typeof import("effect/Schema").String>;
|
|
34
|
+
}>>]>;
|
|
35
|
+
}>>;
|
|
36
|
+
temperature: import("effect/Schema").optional<typeof import("effect/Schema").Number>;
|
|
37
|
+
maxTokens: import("effect/Schema").optional<typeof import("effect/Schema").Number>;
|
|
38
|
+
topP: import("effect/Schema").optional<typeof import("effect/Schema").Number>;
|
|
39
|
+
frequencyPenalty: import("effect/Schema").optional<typeof import("effect/Schema").Number>;
|
|
40
|
+
presencePenalty: import("effect/Schema").optional<typeof import("effect/Schema").Number>;
|
|
41
|
+
stop: import("effect/Schema").optional<import("effect/Schema").Union<[typeof import("effect/Schema").String, import("effect/Schema").Array$<typeof import("effect/Schema").String>]>>;
|
|
42
|
+
responseFormat: import("effect/Schema").optional<import("effect/Schema").Struct<{
|
|
43
|
+
type: import("effect/Schema").Literal<["text", "json_object"]>;
|
|
44
|
+
}>>;
|
|
45
|
+
tools: import("effect/Schema").optional<typeof import("effect/Schema").Unknown>;
|
|
46
|
+
toolChoice: import("effect/Schema").optional<import("effect/Schema").Literal<["auto", "none", "required"]>>;
|
|
47
|
+
stream: import("effect/Schema").optional<typeof import("effect/Schema").Boolean>;
|
|
48
|
+
}>, import("effect/Schema").Struct<{
|
|
49
|
+
id: typeof import("effect/Schema").String;
|
|
50
|
+
model: typeof import("effect/Schema").String;
|
|
51
|
+
content: typeof import("effect/Schema").String;
|
|
52
|
+
finishReason: typeof import("effect/Schema").String;
|
|
53
|
+
usage: import("effect/Schema").Struct<{
|
|
54
|
+
inputTokens: typeof import("effect/Schema").Number;
|
|
55
|
+
outputTokens: typeof import("effect/Schema").Number;
|
|
56
|
+
totalTokens: typeof import("effect/Schema").Number;
|
|
57
|
+
}>;
|
|
58
|
+
latencyMs: typeof import("effect/Schema").Number;
|
|
59
|
+
toolCalls: import("effect/Schema").optional<import("effect/Schema").Array$<import("effect/Schema").Struct<{
|
|
60
|
+
id: typeof import("effect/Schema").String;
|
|
61
|
+
name: typeof import("effect/Schema").String;
|
|
62
|
+
arguments: import("effect/Schema").Record$<typeof import("effect/Schema").String, typeof import("effect/Schema").Unknown>;
|
|
63
|
+
}>>>;
|
|
64
|
+
}>>;
|
|
65
|
+
readonly chatStream: import("../endpoint.js").Endpoint<"POST", "/admin/ai-playground/chat/stream", import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Struct<{
|
|
66
|
+
projectId: typeof import("effect/Schema").String;
|
|
67
|
+
model: typeof import("effect/Schema").String;
|
|
68
|
+
messages: import("effect/Schema").Array$<import("effect/Schema").Struct<{
|
|
69
|
+
role: import("effect/Schema").Literal<["user", "assistant", "system"]>;
|
|
70
|
+
content: import("effect/Schema").Union<[typeof import("effect/Schema").String, import("effect/Schema").Array$<import("effect/Schema").Struct<{
|
|
71
|
+
type: import("effect/Schema").Literal<["text", "image"]>;
|
|
72
|
+
text: import("effect/Schema").optional<typeof import("effect/Schema").String>;
|
|
73
|
+
image: import("effect/Schema").optional<typeof import("effect/Schema").String>;
|
|
74
|
+
}>>]>;
|
|
75
|
+
}>>;
|
|
76
|
+
temperature: import("effect/Schema").optional<typeof import("effect/Schema").Number>;
|
|
77
|
+
maxTokens: import("effect/Schema").optional<typeof import("effect/Schema").Number>;
|
|
78
|
+
topP: import("effect/Schema").optional<typeof import("effect/Schema").Number>;
|
|
79
|
+
frequencyPenalty: import("effect/Schema").optional<typeof import("effect/Schema").Number>;
|
|
80
|
+
presencePenalty: import("effect/Schema").optional<typeof import("effect/Schema").Number>;
|
|
81
|
+
stop: import("effect/Schema").optional<import("effect/Schema").Union<[typeof import("effect/Schema").String, import("effect/Schema").Array$<typeof import("effect/Schema").String>]>>;
|
|
82
|
+
responseFormat: import("effect/Schema").optional<import("effect/Schema").Struct<{
|
|
83
|
+
type: import("effect/Schema").Literal<["text", "json_object"]>;
|
|
84
|
+
}>>;
|
|
85
|
+
tools: import("effect/Schema").optional<typeof import("effect/Schema").Unknown>;
|
|
86
|
+
toolChoice: import("effect/Schema").optional<import("effect/Schema").Literal<["auto", "none", "required"]>>;
|
|
87
|
+
stream: import("effect/Schema").optional<typeof import("effect/Schema").Boolean>;
|
|
88
|
+
}>, import("effect/Schema").Struct<{
|
|
89
|
+
streamId: typeof import("effect/Schema").String;
|
|
90
|
+
projectId: typeof import("effect/Schema").String;
|
|
91
|
+
}>>;
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=admin-ai-playground.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-ai-playground.d.ts","sourceRoot":"","sources":["../../src/endpoints/admin-ai-playground.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2B7B,CAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Admin AI Playground endpoints — Console operator dashboard AI model testing.
|
|
3
|
+
* Mirrors `apps/api/src/server/platform/routes/admin/ai-playground.ts`.
|
|
4
|
+
*
|
|
5
|
+
* Production mount: `/admin/ai-playground/*`. The `/stream` SSE endpoint is
|
|
6
|
+
* handler-side only — it emits `text/event-stream`, not JSON.
|
|
7
|
+
*/
|
|
8
|
+
import { defineEndpoint } from '../endpoint.js';
|
|
9
|
+
import { AdminListModelsResult, AdminPlaygroundChatInput, AdminPlaygroundChatResult, AdminPlaygroundStreamResult, } from '../schemas/admin-ai-playground.js';
|
|
10
|
+
export const adminAiPlaygroundEndpoints = {
|
|
11
|
+
listModels: defineEndpoint({
|
|
12
|
+
method: 'GET',
|
|
13
|
+
path: '/admin/ai-playground/models',
|
|
14
|
+
response: AdminListModelsResult,
|
|
15
|
+
plane: 'admin',
|
|
16
|
+
summary: 'List AI models available in the playground',
|
|
17
|
+
tags: ['admin-ai-playground'],
|
|
18
|
+
}),
|
|
19
|
+
chat: defineEndpoint({
|
|
20
|
+
method: 'POST',
|
|
21
|
+
path: '/admin/ai-playground/chat',
|
|
22
|
+
body: AdminPlaygroundChatInput,
|
|
23
|
+
response: AdminPlaygroundChatResult,
|
|
24
|
+
plane: 'admin',
|
|
25
|
+
summary: 'Non-streaming chat completion in playground',
|
|
26
|
+
tags: ['admin-ai-playground'],
|
|
27
|
+
}),
|
|
28
|
+
chatStream: defineEndpoint({
|
|
29
|
+
method: 'POST',
|
|
30
|
+
path: '/admin/ai-playground/chat/stream',
|
|
31
|
+
body: AdminPlaygroundChatInput,
|
|
32
|
+
response: AdminPlaygroundStreamResult,
|
|
33
|
+
plane: 'admin',
|
|
34
|
+
summary: 'Initialise a streaming chat completion (returns streamId)',
|
|
35
|
+
tags: ['admin-ai-playground'],
|
|
36
|
+
}),
|
|
37
|
+
};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Admin Anomalies endpoints — Console operator dashboard spending anomaly ops.
|
|
3
|
+
* Mirrors `apps/api/src/server/platform/routes/admin/anomalies.ts`.
|
|
4
|
+
*
|
|
5
|
+
* Production mount: `/admin/anomalies/*`.
|
|
6
|
+
*/
|
|
7
|
+
export declare const adminAnomaliesEndpoints: {
|
|
8
|
+
readonly stats: import("../endpoint.js").Endpoint<"GET", "/admin/anomalies/stats", import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Struct<{
|
|
9
|
+
open: typeof import("effect/Schema").Number;
|
|
10
|
+
acknowledged: typeof import("effect/Schema").Number;
|
|
11
|
+
resolved: typeof import("effect/Schema").Number;
|
|
12
|
+
dismissed: typeof import("effect/Schema").Number;
|
|
13
|
+
total: typeof import("effect/Schema").Number;
|
|
14
|
+
}>>;
|
|
15
|
+
readonly list: import("../endpoint.js").Endpoint<"GET", "/admin/anomalies/", import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Struct<{
|
|
16
|
+
page: import("effect/Schema").optional<typeof import("effect/Schema").String>;
|
|
17
|
+
limit: import("effect/Schema").optional<typeof import("effect/Schema").String>;
|
|
18
|
+
status: import("effect/Schema").optional<import("effect/Schema").Literal<["all", "open", "acknowledged", "resolved", "dismissed"]>>;
|
|
19
|
+
type: import("effect/Schema").optional<import("effect/Schema").Literal<["all", "spike", "unusual_service", "unusual_time", "threshold_breach"]>>;
|
|
20
|
+
dateFrom: import("effect/Schema").optional<typeof import("effect/Schema").String>;
|
|
21
|
+
dateTo: import("effect/Schema").optional<typeof import("effect/Schema").String>;
|
|
22
|
+
}>, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Struct<{
|
|
23
|
+
anomalies: import("effect/Schema").Array$<import("effect/Schema").Struct<{
|
|
24
|
+
id: typeof import("effect/Schema").String;
|
|
25
|
+
anomalyType: import("effect/Schema").Literal<["spike", "unusual_service", "unusual_time", "threshold_breach"]>;
|
|
26
|
+
service: import("effect/Schema").NullOr<typeof import("effect/Schema").String>;
|
|
27
|
+
detectedValueDollars: typeof import("effect/Schema").Number;
|
|
28
|
+
expectedValueDollars: typeof import("effect/Schema").Number;
|
|
29
|
+
deviationPercent: typeof import("effect/Schema").Number;
|
|
30
|
+
description: typeof import("effect/Schema").String;
|
|
31
|
+
status: import("effect/Schema").Literal<["open", "acknowledged", "resolved", "dismissed"]>;
|
|
32
|
+
resolvedAt: import("effect/Schema").NullOr<typeof import("effect/Schema").String>;
|
|
33
|
+
resolvedBy: import("effect/Schema").NullOr<typeof import("effect/Schema").String>;
|
|
34
|
+
resolutionNotes: import("effect/Schema").NullOr<typeof import("effect/Schema").String>;
|
|
35
|
+
createdAt: typeof import("effect/Schema").String;
|
|
36
|
+
}>>;
|
|
37
|
+
pagination: import("effect/Schema").Struct<{
|
|
38
|
+
page: typeof import("effect/Schema").Number;
|
|
39
|
+
limit: typeof import("effect/Schema").Number;
|
|
40
|
+
total: typeof import("effect/Schema").Number;
|
|
41
|
+
totalPages: typeof import("effect/Schema").Number;
|
|
42
|
+
}>;
|
|
43
|
+
}>>;
|
|
44
|
+
readonly get: import("../endpoint.js").Endpoint<"GET", "/admin/anomalies/:anomalyId", import("effect/Schema").Struct<{
|
|
45
|
+
anomalyId: typeof import("effect/Schema").String;
|
|
46
|
+
}>, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Struct<{
|
|
47
|
+
id: typeof import("effect/Schema").String;
|
|
48
|
+
orgId: typeof import("effect/Schema").String;
|
|
49
|
+
anomalyType: import("effect/Schema").Literal<["spike", "unusual_service", "unusual_time", "threshold_breach"]>;
|
|
50
|
+
service: import("effect/Schema").NullOr<typeof import("effect/Schema").String>;
|
|
51
|
+
detectedValueDollars: typeof import("effect/Schema").Number;
|
|
52
|
+
expectedValueDollars: typeof import("effect/Schema").Number;
|
|
53
|
+
deviationPercent: typeof import("effect/Schema").Number;
|
|
54
|
+
description: typeof import("effect/Schema").String;
|
|
55
|
+
metadata: import("effect/Schema").NullOr<typeof import("effect/Schema").Unknown>;
|
|
56
|
+
status: import("effect/Schema").Literal<["open", "acknowledged", "resolved", "dismissed"]>;
|
|
57
|
+
resolvedAt: import("effect/Schema").NullOr<typeof import("effect/Schema").String>;
|
|
58
|
+
resolvedBy: import("effect/Schema").NullOr<typeof import("effect/Schema").String>;
|
|
59
|
+
resolutionNotes: import("effect/Schema").NullOr<typeof import("effect/Schema").String>;
|
|
60
|
+
createdAt: typeof import("effect/Schema").String;
|
|
61
|
+
}>>;
|
|
62
|
+
readonly acknowledge: import("../endpoint.js").Endpoint<"POST", "/admin/anomalies/:anomalyId/acknowledge", import("effect/Schema").Struct<{
|
|
63
|
+
anomalyId: typeof import("effect/Schema").String;
|
|
64
|
+
}>, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Struct<{
|
|
65
|
+
success: typeof import("effect/Schema").Boolean;
|
|
66
|
+
status: import("effect/Schema").Literal<["open", "acknowledged", "resolved", "dismissed"]>;
|
|
67
|
+
}>>;
|
|
68
|
+
readonly dismiss: import("../endpoint.js").Endpoint<"POST", "/admin/anomalies/:anomalyId/dismiss", import("effect/Schema").Struct<{
|
|
69
|
+
anomalyId: typeof import("effect/Schema").String;
|
|
70
|
+
}>, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Struct<{
|
|
71
|
+
success: typeof import("effect/Schema").Boolean;
|
|
72
|
+
status: import("effect/Schema").Literal<["open", "acknowledged", "resolved", "dismissed"]>;
|
|
73
|
+
}>>;
|
|
74
|
+
readonly resolve: import("../endpoint.js").Endpoint<"POST", "/admin/anomalies/:anomalyId/resolve", import("effect/Schema").Struct<{
|
|
75
|
+
anomalyId: typeof import("effect/Schema").String;
|
|
76
|
+
}>, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Struct<{
|
|
77
|
+
notes: typeof import("effect/Schema").String;
|
|
78
|
+
}>, import("effect/Schema").Struct<{
|
|
79
|
+
success: typeof import("effect/Schema").Boolean;
|
|
80
|
+
status: import("effect/Schema").Literal<["open", "acknowledged", "resolved", "dismissed"]>;
|
|
81
|
+
}>>;
|
|
82
|
+
readonly errorsOverview: import("../endpoint.js").Endpoint<"GET", "/admin/anomalies/errors/overview", import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Struct<{
|
|
83
|
+
total: typeof import("effect/Schema").Number;
|
|
84
|
+
unresolved: typeof import("effect/Schema").Number;
|
|
85
|
+
bySeverity: import("effect/Schema").Record$<typeof import("effect/Schema").String, typeof import("effect/Schema").Number>;
|
|
86
|
+
recentErrors: import("effect/Schema").Array$<import("effect/Schema").Struct<{
|
|
87
|
+
id: typeof import("effect/Schema").String;
|
|
88
|
+
errorType: typeof import("effect/Schema").String;
|
|
89
|
+
message: typeof import("effect/Schema").String;
|
|
90
|
+
severity: typeof import("effect/Schema").String;
|
|
91
|
+
count: typeof import("effect/Schema").Number;
|
|
92
|
+
resolved: typeof import("effect/Schema").Boolean;
|
|
93
|
+
lastSeen: typeof import("effect/Schema").String;
|
|
94
|
+
createdAt: typeof import("effect/Schema").String;
|
|
95
|
+
app: import("effect/Schema").NullOr<import("effect/Schema").Struct<{
|
|
96
|
+
id: typeof import("effect/Schema").String;
|
|
97
|
+
name: typeof import("effect/Schema").String;
|
|
98
|
+
slug: typeof import("effect/Schema").String;
|
|
99
|
+
}>>;
|
|
100
|
+
}>>;
|
|
101
|
+
byProject: import("effect/Schema").Array$<import("effect/Schema").Struct<{
|
|
102
|
+
projectId: typeof import("effect/Schema").String;
|
|
103
|
+
projectName: import("effect/Schema").NullOr<typeof import("effect/Schema").String>;
|
|
104
|
+
count: typeof import("effect/Schema").Number;
|
|
105
|
+
}>>;
|
|
106
|
+
}>>;
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=admin-anomalies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-anomalies.d.ts","sourceRoot":"","sources":["../../src/endpoints/admin-anomalies.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+D1B,CAAA"}
|