971 lines · 35.4 KB · TypeScript
RawDownload
import * as Schema from "effect/Schema";import * as Context from "effect/Context";import * as HttpApi from "effect/unstable/httpapi/HttpApi";import * as HttpApiEndpoint from "effect/unstable/httpapi/HttpApiEndpoint";import * as HttpApiGroup from "effect/unstable/httpapi/HttpApiGroup";import * as HttpApiMiddleware from "effect/unstable/httpapi/HttpApiMiddleware";import * as HttpApiSchema from "effect/unstable/httpapi/HttpApiSchema";import * as HttpApiSecurity from "effect/unstable/httpapi/HttpApiSecurity";import * as OpenApi from "effect/unstable/httpapi/OpenApi"; import { EnvironmentId, ThreadId, TrimmedNonEmptyString } from "./baseSchemas.ts";import { ExecutionEnvironmentDescriptor } from "./environment.ts"; export const RelayAgentAwarenessPlatform = Schema.Literal("ios");export type RelayAgentAwarenessPlatform = typeof RelayAgentAwarenessPlatform.Type; export const RelayAgentAwarenessPhase = Schema.Literals([  "starting",  "running",  "waiting_for_approval",  "waiting_for_input",  "completed",  "failed",  "stale",]);export type RelayAgentAwarenessPhase = typeof RelayAgentAwarenessPhase.Type; export const RelayAgentAwarenessPreferences = Schema.Struct({  liveActivitiesEnabled: Schema.Boolean,  notificationsEnabled: Schema.Boolean,  notifyOnApproval: Schema.Boolean,  notifyOnInput: Schema.Boolean,  notifyOnCompletion: Schema.Boolean,  notifyOnFailure: Schema.Boolean,});export type RelayAgentAwarenessPreferences = typeof RelayAgentAwarenessPreferences.Type; export const RelayDeviceRegistrationRequest = Schema.Struct({  deviceId: TrimmedNonEmptyString,  label: TrimmedNonEmptyString,  platform: RelayAgentAwarenessPlatform,  iosMajorVersion: Schema.Int.check(Schema.isGreaterThanOrEqualTo(18)),  appVersion: Schema.optional(TrimmedNonEmptyString),  pushToken: Schema.optional(TrimmedNonEmptyString),  pushToStartToken: Schema.optional(TrimmedNonEmptyString),  preferences: RelayAgentAwarenessPreferences,});export type RelayDeviceRegistrationRequest = typeof RelayDeviceRegistrationRequest.Type; export const RelayClientDeviceRecord = Schema.Struct({  deviceId: TrimmedNonEmptyString,  label: TrimmedNonEmptyString,  platform: RelayAgentAwarenessPlatform,  iosMajorVersion: Schema.Int.check(Schema.isGreaterThanOrEqualTo(18)),  appVersion: Schema.NullOr(TrimmedNonEmptyString),  notifications: Schema.Struct({    enabled: Schema.Boolean,    notifyOnApproval: Schema.Boolean,    notifyOnInput: Schema.Boolean,    notifyOnCompletion: Schema.Boolean,    notifyOnFailure: Schema.Boolean,  }),  liveActivities: Schema.Struct({    enabled: Schema.Boolean,  }),  updatedAt: TrimmedNonEmptyString,});export type RelayClientDeviceRecord = typeof RelayClientDeviceRecord.Type; export const RelayListDevicesResponse = Schema.Struct({  devices: Schema.Array(RelayClientDeviceRecord),});export type RelayListDevicesResponse = typeof RelayListDevicesResponse.Type; export const RelayLiveActivityRegistrationRequest = Schema.Struct({  deviceId: TrimmedNonEmptyString,  activityPushToken: TrimmedNonEmptyString,});export type RelayLiveActivityRegistrationRequest = typeof RelayLiveActivityRegistrationRequest.Type; export const RelayDeviceUnregistrationParams = Schema.Struct({  deviceId: TrimmedNonEmptyString,});export type RelayDeviceUnregistrationParams = typeof RelayDeviceUnregistrationParams.Type; export const RelayAgentActivityState = Schema.Struct({  environmentId: EnvironmentId,  threadId: ThreadId,  projectTitle: TrimmedNonEmptyString,  threadTitle: TrimmedNonEmptyString,  phase: RelayAgentAwarenessPhase,  headline: TrimmedNonEmptyString,  detail: Schema.optional(TrimmedNonEmptyString),  modelTitle: TrimmedNonEmptyString,  updatedAt: TrimmedNonEmptyString,  deepLink: TrimmedNonEmptyString,});export type RelayAgentActivityState = typeof RelayAgentActivityState.Type; export const RelayAgentActivityAggregateRow = Schema.Struct({  environmentId: EnvironmentId,  threadId: ThreadId,  projectTitle: TrimmedNonEmptyString,  threadTitle: TrimmedNonEmptyString,  modelTitle: TrimmedNonEmptyString,  phase: RelayAgentAwarenessPhase,  status: TrimmedNonEmptyString,  updatedAt: TrimmedNonEmptyString,  deepLink: TrimmedNonEmptyString,});export type RelayAgentActivityAggregateRow = typeof RelayAgentActivityAggregateRow.Type; export const RelayAgentActivityAggregateState = Schema.Struct({  title: TrimmedNonEmptyString,  subtitle: TrimmedNonEmptyString,  activeCount: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)),  updatedAt: TrimmedNonEmptyString,  activities: Schema.Array(RelayAgentActivityAggregateRow),});export type RelayAgentActivityAggregateState = typeof RelayAgentActivityAggregateState.Type; export const RelayManagedEndpointProviderKind = Schema.Literals([  "manual",  "cloudflare_tunnel",  "t3_relay",]);export type RelayManagedEndpointProviderKind = typeof RelayManagedEndpointProviderKind.Type; export const RelayManagedEndpoint = Schema.Struct({  httpBaseUrl: TrimmedNonEmptyString,  wsBaseUrl: TrimmedNonEmptyString,  providerKind: RelayManagedEndpointProviderKind,});export type RelayManagedEndpoint = typeof RelayManagedEndpoint.Type; export const RelayManagedEndpointOrigin = Schema.Struct({  localHttpHost: TrimmedNonEmptyString,  localHttpPort: Schema.Int.check(    Schema.isGreaterThanOrEqualTo(1),    Schema.isLessThanOrEqualTo(65_535),  ),});export type RelayManagedEndpointOrigin = typeof RelayManagedEndpointOrigin.Type; export const RelayManagedEndpointRuntimeConfig = Schema.Struct({  providerKind: RelayManagedEndpointProviderKind,  connectorToken: TrimmedNonEmptyString,  tunnelId: Schema.optional(TrimmedNonEmptyString),  tunnelName: Schema.optional(TrimmedNonEmptyString),});export type RelayManagedEndpointRuntimeConfig = typeof RelayManagedEndpointRuntimeConfig.Type; export const RelayLinkProofRequest = Schema.Struct({  challenge: Schema.String,  relayIssuer: Schema.String,  endpoint: RelayManagedEndpoint,  origin: RelayManagedEndpointOrigin,});export type RelayLinkProofRequest = typeof RelayLinkProofRequest.Type; export const RelayEnvironmentConfigRequest = Schema.Struct({  relayUrl: Schema.String,  relayIssuer: Schema.optional(Schema.String),  cloudUserId: Schema.String,  environmentCredential: Schema.String,  cloudMintPublicKey: Schema.String,  endpointRuntime: Schema.NullOr(RelayManagedEndpointRuntimeConfig),});export type RelayEnvironmentConfigRequest = typeof RelayEnvironmentConfigRequest.Type; const RelaySignedJwtRegisteredClaims = {  iss: TrimmedNonEmptyString,  aud: TrimmedNonEmptyString,  sub: TrimmedNonEmptyString,  jti: TrimmedNonEmptyString,  iat: Schema.Int,  exp: Schema.Int,} as const; export const RelayAgentActivityPublishProofPayload = Schema.Struct({  ...RelaySignedJwtRegisteredClaims,  environmentId: EnvironmentId,  threadId: ThreadId,  state: Schema.NullOr(RelayAgentActivityState),});export type RelayAgentActivityPublishProofPayload =  typeof RelayAgentActivityPublishProofPayload.Type;export type RelayAgentActivityPublishProof = string; export const RelayAgentActivityPublishRequest = Schema.Struct({  state: Schema.NullOr(RelayAgentActivityState).annotate({    description: "Current agent-awareness state, or null to remove the published state.",  }),  proof: TrimmedNonEmptyString.annotate({    description: "Environment-signed JWT covering this published activity state.",  }),}).annotate({ description: "Publishes a signed agent-awareness update from an environment." });export type RelayAgentActivityPublishRequest = typeof RelayAgentActivityPublishRequest.Type; export const RelayEnvironmentLinkScope = Schema.Literals([  "agent_activity_notifications",  "managed_tunnels",]);export type RelayEnvironmentLinkScope = typeof RelayEnvironmentLinkScope.Type; export const RelayEnvironmentLinkProofPayload = Schema.Struct({  ...RelaySignedJwtRegisteredClaims,  challenge: TrimmedNonEmptyString,  descriptor: ExecutionEnvironmentDescriptor,  environmentId: EnvironmentId,  environmentPublicKey: TrimmedNonEmptyString,  endpoint: RelayManagedEndpoint,  origin: RelayManagedEndpointOrigin,  scopes: Schema.Array(RelayEnvironmentLinkScope),});export type RelayEnvironmentLinkProofPayload = typeof RelayEnvironmentLinkProofPayload.Type; export const RelayEnvironmentLinkProof = TrimmedNonEmptyString;export type RelayEnvironmentLinkProof = typeof RelayEnvironmentLinkProof.Type; export const RelayEnvironmentLinkChallengeRequest = Schema.Struct({  notificationsEnabled: Schema.Boolean.annotate({    description: "Whether this link may deliver push notifications.",  }),  liveActivitiesEnabled: Schema.Boolean.annotate({    description: "Whether this link may update Live Activities.",  }),  managedTunnelsEnabled: Schema.Boolean.annotate({    description: "Whether the relay should provision a managed tunnel for this environment.",  }),}).annotate({ description: "Requested capabilities for a new environment-link challenge." });export type RelayEnvironmentLinkChallengeRequest = typeof RelayEnvironmentLinkChallengeRequest.Type; export const RelayEnvironmentLinkChallengeResponse = Schema.Struct({  challenge: TrimmedNonEmptyString,  expiresAt: TrimmedNonEmptyString,});export type RelayEnvironmentLinkChallengeResponse =  typeof RelayEnvironmentLinkChallengeResponse.Type; export const RelayEnvironmentLinkRequest = Schema.Struct({  deviceId: Schema.optional(    TrimmedNonEmptyString.annotate({      description: "Optional client device identifier associated with this link.",    }),  ),  proof: RelayEnvironmentLinkProof.annotate({    description: "Environment-signed proof bound to a previously issued link challenge.",  }),  notificationsEnabled: Schema.Boolean,  liveActivitiesEnabled: Schema.Boolean,  managedTunnelsEnabled: Schema.Boolean,}).annotate({ description: "Links an authenticated cloud user to a T3 environment." });export type RelayEnvironmentLinkRequest = typeof RelayEnvironmentLinkRequest.Type; export const RelayEnvironmentLinkResponse = Schema.Struct({  ok: Schema.Boolean,  cloudUserId: TrimmedNonEmptyString,  environmentId: EnvironmentId,  endpoint: RelayManagedEndpoint,  endpointRuntime: Schema.NullOr(RelayManagedEndpointRuntimeConfig),  relayIssuer: TrimmedNonEmptyString,  environmentCredential: TrimmedNonEmptyString,  cloudMintPublicKey: TrimmedNonEmptyString,});export type RelayEnvironmentLinkResponse = typeof RelayEnvironmentLinkResponse.Type; export const RelayEnvironmentLinkProofInvalidReason = Schema.Literals([  "invalid_signature_or_scope",  "descriptor_mismatch",  "replayed_nonce",  "challenge_invalid",  "origin_not_allowed",  "endpoint_not_secure",]);export type RelayEnvironmentLinkProofInvalidReason =  typeof RelayEnvironmentLinkProofInvalidReason.Type; export const RelayEnvironmentLinkFailedReason = Schema.Literals([  "link_persistence_failed",  "credential_persistence_failed",  "replay_persistence_failed",  "internal_error",]);export type RelayEnvironmentLinkFailedReason = typeof RelayEnvironmentLinkFailedReason.Type; export const RelayEnvironmentLinkUnavailableReason = Schema.Literals([  "managed_endpoint_not_configured",  "managed_endpoint_provisioning_failed",]);export type RelayEnvironmentLinkUnavailableReason =  typeof RelayEnvironmentLinkUnavailableReason.Type; export const RelayEnvironmentEndpointUnavailableReason = Schema.Literals([  "endpoint_request_failed",  "endpoint_response_invalid",]);export type RelayEnvironmentEndpointUnavailableReason =  typeof RelayEnvironmentEndpointUnavailableReason.Type; export const RelayAgentActivityPublishProofInvalidReason = Schema.Literals([  "invalid_signature_or_payload",  "replayed_nonce",]);export type RelayAgentActivityPublishProofInvalidReason =  typeof RelayAgentActivityPublishProofInvalidReason.Type; export const RelayAuthInvalidReason = Schema.Literals([  "missing_bearer",  "invalid_bearer",  "invalid_dpop",  "not_authorized",]);export type RelayAuthInvalidReason = typeof RelayAuthInvalidReason.Type; export const RelayInternalErrorReason = Schema.Literals([  "database_unavailable",  "persistence_failed",  "upstream_unavailable",  "internal_error",]);export type RelayInternalErrorReason = typeof RelayInternalErrorReason.Type; export class RelayAuthInvalidError extends Schema.TaggedErrorClass<RelayAuthInvalidError>()(  "RelayAuthInvalidError",  {    code: Schema.Literal("auth_invalid"),    reason: RelayAuthInvalidReason,    traceId: TrimmedNonEmptyString,  },  { httpApiStatus: 401 },) {} export class RelayEnvironmentLinkProofExpiredError extends Schema.TaggedErrorClass<RelayEnvironmentLinkProofExpiredError>()(  "RelayEnvironmentLinkProofExpiredError",  {    code: Schema.Literal("environment_link_proof_expired"),    traceId: TrimmedNonEmptyString,  },  { httpApiStatus: 401 },) {} export class RelayEnvironmentLinkProofInvalidError extends Schema.TaggedErrorClass<RelayEnvironmentLinkProofInvalidError>()(  "RelayEnvironmentLinkProofInvalidError",  {    code: Schema.Literal("environment_link_proof_invalid"),    reason: RelayEnvironmentLinkProofInvalidReason,    traceId: TrimmedNonEmptyString,  },  { httpApiStatus: 400 },) {} export class RelayEnvironmentConnectNotAuthorizedError extends Schema.TaggedErrorClass<RelayEnvironmentConnectNotAuthorizedError>()(  "RelayEnvironmentConnectNotAuthorizedError",  {    code: Schema.Literal("environment_connect_not_authorized"),    traceId: TrimmedNonEmptyString,  },  { httpApiStatus: 403 },) {} export class RelayEnvironmentEndpointUnavailableError extends Schema.TaggedErrorClass<RelayEnvironmentEndpointUnavailableError>()(  "RelayEnvironmentEndpointUnavailableError",  {    code: Schema.Literal("environment_endpoint_unavailable"),    reason: RelayEnvironmentEndpointUnavailableReason,    traceId: TrimmedNonEmptyString,  },  { httpApiStatus: 502 },) {} export class RelayEnvironmentEndpointTimedOutError extends Schema.TaggedErrorClass<RelayEnvironmentEndpointTimedOutError>()(  "RelayEnvironmentEndpointTimedOutError",  {    code: Schema.Literal("environment_endpoint_timed_out"),    traceId: TrimmedNonEmptyString,  },  { httpApiStatus: 504 },) {} export class RelayEnvironmentLinkFailedError extends Schema.TaggedErrorClass<RelayEnvironmentLinkFailedError>()(  "RelayEnvironmentLinkFailedError",  {    code: Schema.Literal("environment_link_failed"),    reason: RelayEnvironmentLinkFailedReason,    traceId: TrimmedNonEmptyString,  },  { httpApiStatus: 500 },) {} export class RelayEnvironmentLinkUnavailableError extends Schema.TaggedErrorClass<RelayEnvironmentLinkUnavailableError>()(  "RelayEnvironmentLinkUnavailableError",  {    code: Schema.Literal("environment_link_unavailable"),    reason: RelayEnvironmentLinkUnavailableReason,    traceId: TrimmedNonEmptyString,  },  { httpApiStatus: 503 },) {} export class RelayAgentActivityPublishProofExpiredError extends Schema.TaggedErrorClass<RelayAgentActivityPublishProofExpiredError>()(  "RelayAgentActivityPublishProofExpiredError",  {    code: Schema.Literal("agent_activity_publish_proof_expired"),    traceId: TrimmedNonEmptyString,  },  { httpApiStatus: 401 },) {} export class RelayAgentActivityPublishProofInvalidError extends Schema.TaggedErrorClass<RelayAgentActivityPublishProofInvalidError>()(  "RelayAgentActivityPublishProofInvalidError",  {    code: Schema.Literal("agent_activity_publish_proof_invalid"),    reason: RelayAgentActivityPublishProofInvalidReason,    traceId: TrimmedNonEmptyString,  },  { httpApiStatus: 401 },) {} export class RelayInternalError extends Schema.TaggedErrorClass<RelayInternalError>()(  "RelayInternalError",  {    code: Schema.Literal("internal_error"),    reason: RelayInternalErrorReason,    traceId: TrimmedNonEmptyString,  },  { httpApiStatus: 500 },) {} export const RelayProtectedError = Schema.Union([  RelayAuthInvalidError,  RelayEnvironmentLinkProofExpiredError,  RelayEnvironmentLinkProofInvalidError,  RelayEnvironmentConnectNotAuthorizedError,  RelayEnvironmentEndpointUnavailableError,  RelayEnvironmentEndpointTimedOutError,  RelayEnvironmentLinkFailedError,  RelayEnvironmentLinkUnavailableError,  RelayAgentActivityPublishProofExpiredError,  RelayAgentActivityPublishProofInvalidError,  RelayInternalError,]);export type RelayProtectedError = typeof RelayProtectedError.Type; const RelayAuthAndInternalErrors = [RelayAuthInvalidError, RelayInternalError] as const; const RelayEnvironmentLinkErrors = [  RelayAuthInvalidError,  RelayEnvironmentLinkProofExpiredError,  RelayEnvironmentLinkProofInvalidError,  RelayEnvironmentLinkUnavailableError,  RelayEnvironmentLinkFailedError,  RelayInternalError,] as const; const RelayEnvironmentConnectErrors = [  RelayAuthInvalidError,  RelayEnvironmentConnectNotAuthorizedError,  RelayEnvironmentEndpointUnavailableError,  RelayEnvironmentEndpointTimedOutError,  RelayInternalError,] as const; const RelayAgentActivityPublishErrors = [  RelayAuthInvalidError,  RelayAgentActivityPublishProofExpiredError,  RelayAgentActivityPublishProofInvalidError,  RelayInternalError,] as const; export interface RelayClientPrincipalShape {  readonly userId: string;  readonly token: string;  readonly proofKeyThumbprint?: string;  readonly dpopScopes?: ReadonlyArray<RelayDpopAccessTokenScope>;} export class RelayClientPrincipal extends Context.Service<  RelayClientPrincipal,  RelayClientPrincipalShape>()("@t3tools/contracts/relay/RelayClientPrincipal") {} export interface RelayEnvironmentPrincipalShape {  readonly environmentId: string;  readonly environmentPublicKey: string;} export class RelayEnvironmentPrincipal extends Context.Service<  RelayEnvironmentPrincipal,  RelayEnvironmentPrincipalShape>()("@t3tools/contracts/relay/RelayEnvironmentPrincipal") {} const RelayClientBearerAuthorization = HttpApiSecurity.http({ scheme: "bearer" }).pipe(  HttpApiSecurity.annotate(    OpenApi.Description,    "Clerk session or OAuth bearer token for the signed-in T3 Cloud user.",  ),); export class RelayClientAuth extends HttpApiMiddleware.Service<

Lines 1–500 of 971.