@q9labsai/chalk-client 5.2.3 → 5.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/README.md +1 -1
  2. package/dist/access/grant.d.ts +2 -1
  3. package/dist/access/manager.d.ts +1 -0
  4. package/dist/{chunk-IMMT22US.js → chunk-5YPQNMJE.js} +11 -0
  5. package/dist/{chunk-4ZUN55Z2.js → chunk-BUNSEDXL.js} +840 -185
  6. package/dist/{chunk-DWKTGBHR.js → chunk-FD25AMLG.js} +322 -206
  7. package/dist/{chunk-6LNRDKJF.js → chunk-LKNT6XFD.js} +1 -1
  8. package/dist/{chunk-GA3JDPFI.js → chunk-UMAE5GCV.js} +205 -5
  9. package/dist/client.d.ts +131 -0
  10. package/dist/connection/dependencies.d.ts +10 -1
  11. package/dist/connection/diagnostics.d.ts +4 -0
  12. package/dist/connection/episode-status.d.ts +7 -0
  13. package/dist/connection/index.d.ts +2 -0
  14. package/dist/connection/lifecycle.d.ts +2 -0
  15. package/dist/connection/report.d.ts +21 -0
  16. package/dist/effect.js +30 -4
  17. package/dist/generated/http-api.d.ts +129 -0
  18. package/dist/generated/schemas.d.ts +219 -0
  19. package/dist/index.js +5 -5
  20. package/dist/media/client.d.ts +1 -1
  21. package/dist/media/failure-diagnostics.d.ts +10 -0
  22. package/dist/media/index.js +1 -1
  23. package/dist/media/plane.d.ts +1 -0
  24. package/dist/media/types.d.ts +5 -1
  25. package/dist/public-invites/index.js +2 -2
  26. package/dist/server/access-refresh.d.cts +1 -1
  27. package/dist/server/access-refresh.d.ts +1 -1
  28. package/dist/server/index.cjs +15 -5
  29. package/dist/server/index.js +15 -5
  30. package/dist/server/types.d.cts +2 -1
  31. package/dist/server/types.d.ts +2 -1
  32. package/dist/space-client/media-projection-monitor.d.ts +26 -0
  33. package/dist/space-client/types.d.ts +4 -0
  34. package/dist/sync/index.js +1 -1
  35. package/dist/sync/v1-types.d.ts +3 -0
  36. package/dist/transport-diagnostics.d.ts +3 -0
  37. package/package.json +2 -2
@@ -39,6 +39,7 @@ export type ConnectionLifecycleCapability = {
39
39
  }>) => Effect.Effect<void, ConnectionLifecycleFailure>;
40
40
  readonly getSyncToken: () => Effect.Effect<string, ConnectionLifecycleFailure>;
41
41
  readonly confirmEpisodeEnded: Effect.Effect<void>;
42
+ readonly runEpisodeEnd: <A, E>(operation: Effect.Effect<A, E>) => Effect.Effect<A, E>;
42
43
  readonly join: () => Effect.Effect<void, ConnectionLifecycleFailure>;
43
44
  readonly leave: () => Effect.Effect<void, ConnectionLifecycleFailure>;
44
45
  readonly runCommand: <A, E>(operation: (ports: ConnectionPorts) => Effect.Effect<A, E>) => Effect.Effect<A, ConnectionLifecycleFailure | E>;
@@ -47,6 +48,7 @@ export type ConnectionLifecycleCapability = {
47
48
  readonly scheduleUnsafe: (callback: () => void, milliseconds: number) => unknown;
48
49
  readonly cancelScheduleUnsafe: (handle: unknown) => void;
49
50
  readonly createId: () => string;
51
+ readonly recordTransportDiagnostic: (event: import("./report").ConnectionReportTransportEvent) => void;
50
52
  };
51
53
  declare const ConnectionLifecycleService_base: Context.ServiceClass<ConnectionLifecycleService, "@chalk/client/ConnectionLifecycle", ConnectionLifecycleCapability>;
52
54
  export declare class ConnectionLifecycleService extends ConnectionLifecycleService_base {
@@ -0,0 +1,21 @@
1
+ import type { ParsedAccessGrant } from "../access/grant";
2
+ import type { ConnectionDiagnostic } from "./diagnostics";
3
+ import type { ConnectionReport, ConnectionReportTransportEvent } from "../transport-diagnostics";
4
+ export type { ConnectionReport, ConnectionReportTransportEvent } from "../transport-diagnostics";
5
+ type ReporterOptions = {
6
+ readonly traceparent: string;
7
+ readonly now: () => number;
8
+ readonly access: () => ParsedAccessGrant | null;
9
+ readonly send: (access: ParsedAccessGrant, report: ConnectionReport, signal: AbortSignal, traceparent: string) => Promise<void>;
10
+ readonly online: () => boolean;
11
+ readonly subscribeOnline: (listener: () => void) => () => void;
12
+ };
13
+ /** Only SDK-owned enums and numeric facts enter this buffer. No generic logging. */
14
+ export declare class ConnectionReporter {
15
+ #private;
16
+ constructor(options: ReporterOptions);
17
+ recordDiagnostic(diagnostic: ConnectionDiagnostic): void;
18
+ recordTransport(event: ConnectionReportTransportEvent): void;
19
+ dispose(): void;
20
+ get traceparent(): string;
21
+ }
package/dist/effect.js CHANGED
@@ -17,8 +17,8 @@ import {
17
17
  makeSpaceClientCoreLayer,
18
18
  makeSpaceClientCoreLayerFromServices,
19
19
  makeSpaceStoreLayer
20
- } from "./chunk-4ZUN55Z2.js";
21
- import "./chunk-DWKTGBHR.js";
20
+ } from "./chunk-BUNSEDXL.js";
21
+ import "./chunk-FD25AMLG.js";
22
22
  import {
23
23
  APIKeyListSchema,
24
24
  APIKeyWithSecretSchema,
@@ -139,6 +139,7 @@ import {
139
139
  CloudflareSFURenegotiateResponseSchema,
140
140
  CloudflareSFUTracksAPIResponseSchema,
141
141
  CloudflareSFUTracksRequestSchema,
142
+ ConnectionReportRequestSchema,
142
143
  CreateAPIKey429ResponseHeadersSchema,
143
144
  CreateAPIKeyErrorSchema,
144
145
  CreateAPIKeyPathParamsSchema,
@@ -260,6 +261,10 @@ import {
260
261
  GetEpisodeErrorSchema,
261
262
  GetEpisodePathParamsSchema,
262
263
  GetEpisodeResponseSchema,
264
+ GetParticipantEpisodeStatus429ResponseHeadersSchema,
265
+ GetParticipantEpisodeStatusErrorSchema,
266
+ GetParticipantEpisodeStatusPathParamsSchema,
267
+ GetParticipantEpisodeStatusResponseSchema,
263
268
  GetProblemReportAvailabilityErrorSchema,
264
269
  GetProblemReportAvailabilityPathParamsSchema,
265
270
  GetProblemReportAvailabilityResponseSchema,
@@ -450,6 +455,7 @@ import {
450
455
  ParticipantConnectionSupersededError,
451
456
  ParticipantConnectionSupersededErrorSchema,
452
457
  ParticipantConnectionSupersededErrorWireSchema,
458
+ ParticipantEpisodeStatusSchema,
453
459
  ParticipantGenerationMismatchError,
454
460
  ParticipantGenerationMismatchErrorSchema,
455
461
  ParticipantGenerationMismatchErrorWireSchema,
@@ -459,6 +465,9 @@ import {
459
465
  ParticipantInvalidIdErrorWireSchema,
460
466
  ParticipantJoinCancellationSchema,
461
467
  ParticipantLifecycleSchema,
468
+ ParticipantMediaReplacementPendingError,
469
+ ParticipantMediaReplacementPendingErrorSchema,
470
+ ParticipantMediaReplacementPendingErrorWireSchema,
462
471
  ParticipantNotActiveError,
463
472
  ParticipantNotActiveErrorSchema,
464
473
  ParticipantNotActiveErrorWireSchema,
@@ -548,6 +557,10 @@ import {
548
557
  RenegotiateCloudflareSFUPathParamsSchema,
549
558
  RenegotiateCloudflareSFURequestBodySchema,
550
559
  RenegotiateCloudflareSFUResponseSchema,
560
+ ReportConnectionFailure429ResponseHeadersSchema,
561
+ ReportConnectionFailureErrorSchema,
562
+ ReportConnectionFailurePathParamsSchema,
563
+ ReportConnectionFailureRequestBodySchema,
551
564
  ReportsDeliveryFailedError,
552
565
  ReportsDeliveryFailedErrorSchema,
553
566
  ReportsDeliveryFailedErrorWireSchema,
@@ -828,8 +841,8 @@ import {
828
841
  WhiteboardStorageUnavailableErrorSchema,
829
842
  WhiteboardStorageUnavailableErrorWireSchema,
830
843
  createChalkEffectClient
831
- } from "./chunk-GA3JDPFI.js";
832
- import "./chunk-IMMT22US.js";
844
+ } from "./chunk-UMAE5GCV.js";
845
+ import "./chunk-5YPQNMJE.js";
833
846
 
834
847
  // src/space-client/effect.ts
835
848
  import { Context, Effect, Exit, Layer, Scope } from "effect";
@@ -990,6 +1003,7 @@ export {
990
1003
  ConnectionAccessService,
991
1004
  ConnectionLifecycleService,
992
1005
  ConnectionPlatformService,
1006
+ ConnectionReportRequestSchema,
993
1007
  CreateAPIKey429ResponseHeadersSchema,
994
1008
  CreateAPIKeyErrorSchema,
995
1009
  CreateAPIKeyPathParamsSchema,
@@ -1111,6 +1125,10 @@ export {
1111
1125
  GetEpisodeErrorSchema,
1112
1126
  GetEpisodePathParamsSchema,
1113
1127
  GetEpisodeResponseSchema,
1128
+ GetParticipantEpisodeStatus429ResponseHeadersSchema,
1129
+ GetParticipantEpisodeStatusErrorSchema,
1130
+ GetParticipantEpisodeStatusPathParamsSchema,
1131
+ GetParticipantEpisodeStatusResponseSchema,
1114
1132
  GetProblemReportAvailabilityErrorSchema,
1115
1133
  GetProblemReportAvailabilityPathParamsSchema,
1116
1134
  GetProblemReportAvailabilityResponseSchema,
@@ -1301,6 +1319,7 @@ export {
1301
1319
  ParticipantConnectionSupersededError,
1302
1320
  ParticipantConnectionSupersededErrorSchema,
1303
1321
  ParticipantConnectionSupersededErrorWireSchema,
1322
+ ParticipantEpisodeStatusSchema,
1304
1323
  ParticipantGenerationMismatchError,
1305
1324
  ParticipantGenerationMismatchErrorSchema,
1306
1325
  ParticipantGenerationMismatchErrorWireSchema,
@@ -1310,6 +1329,9 @@ export {
1310
1329
  ParticipantInvalidIdErrorWireSchema,
1311
1330
  ParticipantJoinCancellationSchema,
1312
1331
  ParticipantLifecycleSchema,
1332
+ ParticipantMediaReplacementPendingError,
1333
+ ParticipantMediaReplacementPendingErrorSchema,
1334
+ ParticipantMediaReplacementPendingErrorWireSchema,
1313
1335
  ParticipantNotActiveError,
1314
1336
  ParticipantNotActiveErrorSchema,
1315
1337
  ParticipantNotActiveErrorWireSchema,
@@ -1399,6 +1421,10 @@ export {
1399
1421
  RenegotiateCloudflareSFUPathParamsSchema,
1400
1422
  RenegotiateCloudflareSFURequestBodySchema,
1401
1423
  RenegotiateCloudflareSFUResponseSchema,
1424
+ ReportConnectionFailure429ResponseHeadersSchema,
1425
+ ReportConnectionFailureErrorSchema,
1426
+ ReportConnectionFailurePathParamsSchema,
1427
+ ReportConnectionFailureRequestBodySchema,
1402
1428
  ReportsDeliveryFailedError,
1403
1429
  ReportsDeliveryFailedErrorSchema,
1404
1430
  ReportsDeliveryFailedErrorWireSchema,
@@ -1037,6 +1037,7 @@ declare const ChalkApi_base: HttpApi.HttpApi<"ChalkApi", HttpApiGroup.HttpApiGro
1037
1037
  readonly tenant_id: import("effect/Schema").brand<import("effect/Schema").String, "TenantId">;
1038
1038
  }>>, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
1039
1039
  readonly current_media_token: import("effect/Schema").optional<import("effect/Schema").String>;
1040
+ readonly expected_media_connection_id: import("effect/Schema").optional<import("effect/Schema").NullOr<import("effect/Schema").String>>;
1040
1041
  readonly participant_generation: import("effect/Schema").Number;
1041
1042
  readonly replace_media_connection: import("effect/Schema").Boolean;
1042
1043
  }>>, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
@@ -1158,6 +1159,11 @@ declare const ChalkApi_base: HttpApi.HttpApi<"ChalkApi", HttpApiGroup.HttpApiGro
1158
1159
  readonly code: import("effect/Schema").Literal<"participant.invalid_id">;
1159
1160
  readonly message: import("effect/Schema").String;
1160
1161
  }>;
1162
+ }>, never, never> | import("effect/Schema").decodeTo<typeof S.ParticipantMediaReplacementPendingError, import("effect/Schema").Struct<{
1163
+ readonly error: import("effect/Schema").Struct<{
1164
+ readonly code: import("effect/Schema").Literal<"participant.media_replacement_pending">;
1165
+ readonly message: import("effect/Schema").String;
1166
+ }>;
1161
1167
  }>, never, never> | import("effect/Schema").decodeTo<typeof S.ParticipantNotFoundError, import("effect/Schema").Struct<{
1162
1168
  readonly error: import("effect/Schema").Struct<{
1163
1169
  readonly code: import("effect/Schema").Literal<"participant.not_found">;
@@ -1726,6 +1732,72 @@ declare const ChalkApi_base: HttpApi.HttpApi<"ChalkApi", HttpApiGroup.HttpApiGro
1726
1732
  readonly code: import("effect/Schema").Literal<"tenant.invalid_id">;
1727
1733
  readonly message: import("effect/Schema").String;
1728
1734
  }>;
1735
+ }>, never, never>>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"reportConnectionFailure", "POST", "/v1/tenants/:tenant_id/connection-reports", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
1736
+ readonly tenant_id: import("effect/Schema").brand<import("effect/Schema").String, "TenantId">;
1737
+ }>>, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
1738
+ readonly events: import("effect/Schema").$Array<import("effect/Schema").Struct<{
1739
+ readonly attempt: import("effect/Schema").optional<import("effect/Schema").NullOr<import("effect/Schema").Number>>;
1740
+ readonly close_code: import("effect/Schema").optional<import("effect/Schema").NullOr<import("effect/Schema").Number>>;
1741
+ readonly code: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["invalid_state", "invalid_access", "access_unavailable", "permission_denied", "device_not_found", "device_busy", "device_constraint_invalid", "media_capture_failed", "sync_start_failed", "state_digest_recovery_failed", "sync_hello_timeout", "media_start_failed", "join_cleanup_unconfirmed", "sync_recovery_exhausted", "media_recovery_exhausted", "command_rejected", "leave_unconfirmed", "episode_ended", "unsupported_environment", "internal_error", "collaboration_unavailable", "chat_cursor_reset_required", "rate_limited", "invalid_payload"]>>;
1742
+ readonly duration_ms: import("effect/Schema").optional<import("effect/Schema").NullOr<import("effect/Schema").Number>>;
1743
+ readonly elapsed_ms: import("effect/Schema").Number;
1744
+ readonly event: import("effect/Schema").Literals<readonly ["space_join_span", "state_changed", "connection_failed", "sync_connect_failed", "sync_dial_timeout", "access_refreshed", "access_refresh_failed", "recovery_attempt", "recovery_succeeded", "recovery_exhausted", "cleanup_completed", "cleanup_unconfirmed", "sync_socket_open", "sync_socket_close", "sync_heartbeat_gap", "media_state", "media_http_error", "media_projection_mismatch"]>;
1745
+ readonly granted_audio: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["granted", "not_granted", "unknown"]>>;
1746
+ readonly granted_video: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["granted", "not_granted", "unknown"]>>;
1747
+ readonly heartbeat_gap_ms: import("effect/Schema").optional<import("effect/Schema").NullOr<import("effect/Schema").Number>>;
1748
+ readonly http_status: import("effect/Schema").optional<import("effect/Schema").NullOr<import("effect/Schema").Number>>;
1749
+ readonly media_error_kind: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["NotAllowedError", "NotReadableError", "NotFoundError", "OverconstrainedError", "AbortError", "SecurityError", "InvalidStateError", "OperationError", "NotSupportedError", "CloudflareSFUError", "network", "timeout", "unknown"]>>;
1750
+ readonly media_error_step: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["local_capture", "peer_connection", "access_refresh", "sfu_tracks", "sfu_close_tracks", "sfu_renegotiate", "sfu_publications"]>>;
1751
+ readonly outcome: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["started", "succeeded", "failed", "cancelled"]>>;
1752
+ readonly phase: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["idle", "connecting", "live", "recovering", "failed", "stopped", "new", "connected", "disconnected", "closed"]>>;
1753
+ readonly projection_state: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["on", "off"]>>;
1754
+ readonly publication_state: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["on", "off"]>>;
1755
+ readonly source: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["microphone", "camera"]>>;
1756
+ readonly state: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["idle", "joining", "live", "reconnecting", "leaving", "left", "failed"]>>;
1757
+ readonly step: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["join", "acquire_initial_media", "access_initialize", "create_media_client", "create_sync_client", "start_media", "start_sync", "wait_for_sync_live", "confirm_entered"]>>;
1758
+ }>>;
1759
+ readonly trigger: import("effect/Schema").Literals<readonly ["join_failed", "connection_lost", "recovery_exhausted", "media_projection_mismatch"]>;
1760
+ readonly version: import("effect/Schema").Literal<1>;
1761
+ }>>, never, import("effect/Schema").toCodecJson<import("effect/Schema").Void>, import("effect/Schema").toCodecJson<import("effect/Schema").decodeTo<typeof S.AccessForbiddenError, import("effect/Schema").Struct<{
1762
+ readonly error: import("effect/Schema").Struct<{
1763
+ readonly code: import("effect/Schema").Literal<"access.forbidden">;
1764
+ readonly message: import("effect/Schema").String;
1765
+ }>;
1766
+ }>, never, never> | import("effect/Schema").decodeTo<typeof S.AccessUnauthenticatedError, import("effect/Schema").Struct<{
1767
+ readonly error: import("effect/Schema").Struct<{
1768
+ readonly code: import("effect/Schema").Literal<"access.unauthenticated">;
1769
+ readonly message: import("effect/Schema").String;
1770
+ }>;
1771
+ }>, never, never> | import("effect/Schema").decodeTo<typeof S.RequestInvalidError, import("effect/Schema").Struct<{
1772
+ readonly error: import("effect/Schema").Struct<{
1773
+ readonly code: import("effect/Schema").Literal<"request.invalid">;
1774
+ readonly message: import("effect/Schema").String;
1775
+ }>;
1776
+ }>, never, never> | import("effect/Schema").decodeTo<typeof S.RequestPayloadTooLargeError, import("effect/Schema").Struct<{
1777
+ readonly error: import("effect/Schema").Struct<{
1778
+ readonly code: import("effect/Schema").Literal<"request.payload_too_large">;
1779
+ readonly message: import("effect/Schema").String;
1780
+ }>;
1781
+ }>, never, never> | import("effect/Schema").decodeTo<typeof S.RequestRateLimitedError, import("effect/Schema").Struct<{
1782
+ readonly error: import("effect/Schema").Struct<{
1783
+ readonly code: import("effect/Schema").Literal<"request.rate_limited">;
1784
+ readonly message: import("effect/Schema").String;
1785
+ }>;
1786
+ }>, never, never> | import("effect/Schema").decodeTo<typeof S.ServiceInternalError, import("effect/Schema").Struct<{
1787
+ readonly error: import("effect/Schema").Struct<{
1788
+ readonly code: import("effect/Schema").Literal<"service.internal_error">;
1789
+ readonly message: import("effect/Schema").String;
1790
+ }>;
1791
+ }>, never, never> | import("effect/Schema").decodeTo<typeof S.ServiceUnavailableError, import("effect/Schema").Struct<{
1792
+ readonly error: import("effect/Schema").Struct<{
1793
+ readonly code: import("effect/Schema").Literal<"service.unavailable">;
1794
+ readonly message: import("effect/Schema").String;
1795
+ }>;
1796
+ }>, never, never> | import("effect/Schema").decodeTo<typeof S.TenantInvalidIdError, import("effect/Schema").Struct<{
1797
+ readonly error: import("effect/Schema").Struct<{
1798
+ readonly code: import("effect/Schema").Literal<"tenant.invalid_id">;
1799
+ readonly message: import("effect/Schema").String;
1800
+ }>;
1729
1801
  }>, never, never>>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"revokeAPIKey", "DELETE", "/v1/tenants/:tenant_id/api-keys/:api_key_id", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
1730
1802
  readonly api_key_id: import("effect/Schema").brand<import("effect/Schema").String, "UUID">;
1731
1803
  readonly tenant_id: import("effect/Schema").brand<import("effect/Schema").String, "TenantId">;
@@ -2871,6 +2943,63 @@ declare const ChalkApi_base: HttpApi.HttpApi<"ChalkApi", HttpApiGroup.HttpApiGro
2871
2943
  readonly code: import("effect/Schema").Literal<"tenant.invalid_id">;
2872
2944
  readonly message: import("effect/Schema").String;
2873
2945
  }>;
2946
+ }>, never, never>>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"getParticipantEpisodeStatus", "GET", "/v1/tenants/:tenant_id/spaces/:space_id/episodes/:episode_id/participants/:participant_id/episode-status", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
2947
+ readonly episode_id: import("effect/Schema").brand<import("effect/Schema").String, "EpisodeId">;
2948
+ readonly participant_id: import("effect/Schema").brand<import("effect/Schema").String, "ParticipantId">;
2949
+ readonly space_id: import("effect/Schema").brand<import("effect/Schema").String, "SpaceId">;
2950
+ readonly tenant_id: import("effect/Schema").brand<import("effect/Schema").String, "TenantId">;
2951
+ }>>, never, never, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
2952
+ readonly status: import("effect/Schema").Literals<readonly ["active", "ending", "ended"]>;
2953
+ }>>, import("effect/Schema").toCodecJson<import("effect/Schema").decodeTo<typeof S.AccessForbiddenError, import("effect/Schema").Struct<{
2954
+ readonly error: import("effect/Schema").Struct<{
2955
+ readonly code: import("effect/Schema").Literal<"access.forbidden">;
2956
+ readonly message: import("effect/Schema").String;
2957
+ }>;
2958
+ }>, never, never> | import("effect/Schema").decodeTo<typeof S.AccessUnauthenticatedError, import("effect/Schema").Struct<{
2959
+ readonly error: import("effect/Schema").Struct<{
2960
+ readonly code: import("effect/Schema").Literal<"access.unauthenticated">;
2961
+ readonly message: import("effect/Schema").String;
2962
+ }>;
2963
+ }>, never, never> | import("effect/Schema").decodeTo<typeof S.EpisodeInvalidIdError, import("effect/Schema").Struct<{
2964
+ readonly error: import("effect/Schema").Struct<{
2965
+ readonly code: import("effect/Schema").Literal<"episode.invalid_id">;
2966
+ readonly message: import("effect/Schema").String;
2967
+ }>;
2968
+ }>, never, never> | import("effect/Schema").decodeTo<typeof S.EpisodeNotFoundError, import("effect/Schema").Struct<{
2969
+ readonly error: import("effect/Schema").Struct<{
2970
+ readonly code: import("effect/Schema").Literal<"episode.not_found">;
2971
+ readonly message: import("effect/Schema").String;
2972
+ }>;
2973
+ }>, never, never> | import("effect/Schema").decodeTo<typeof S.ParticipantInvalidIdError, import("effect/Schema").Struct<{
2974
+ readonly error: import("effect/Schema").Struct<{
2975
+ readonly code: import("effect/Schema").Literal<"participant.invalid_id">;
2976
+ readonly message: import("effect/Schema").String;
2977
+ }>;
2978
+ }>, never, never> | import("effect/Schema").decodeTo<typeof S.RequestRateLimitedError, import("effect/Schema").Struct<{
2979
+ readonly error: import("effect/Schema").Struct<{
2980
+ readonly code: import("effect/Schema").Literal<"request.rate_limited">;
2981
+ readonly message: import("effect/Schema").String;
2982
+ }>;
2983
+ }>, never, never> | import("effect/Schema").decodeTo<typeof S.ServiceInternalError, import("effect/Schema").Struct<{
2984
+ readonly error: import("effect/Schema").Struct<{
2985
+ readonly code: import("effect/Schema").Literal<"service.internal_error">;
2986
+ readonly message: import("effect/Schema").String;
2987
+ }>;
2988
+ }>, never, never> | import("effect/Schema").decodeTo<typeof S.ServiceUnavailableError, import("effect/Schema").Struct<{
2989
+ readonly error: import("effect/Schema").Struct<{
2990
+ readonly code: import("effect/Schema").Literal<"service.unavailable">;
2991
+ readonly message: import("effect/Schema").String;
2992
+ }>;
2993
+ }>, never, never> | import("effect/Schema").decodeTo<typeof S.SpaceInvalidIdError, import("effect/Schema").Struct<{
2994
+ readonly error: import("effect/Schema").Struct<{
2995
+ readonly code: import("effect/Schema").Literal<"space.invalid_id">;
2996
+ readonly message: import("effect/Schema").String;
2997
+ }>;
2998
+ }>, never, never> | import("effect/Schema").decodeTo<typeof S.TenantInvalidIdError, import("effect/Schema").Struct<{
2999
+ readonly error: import("effect/Schema").Struct<{
3000
+ readonly code: import("effect/Schema").Literal<"tenant.invalid_id">;
3001
+ readonly message: import("effect/Schema").String;
3002
+ }>;
2874
3003
  }>, never, never>>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"issueEpisodeParticipantSyncToken", "POST", "/v1/tenants/:tenant_id/spaces/:space_id/episodes/:episode_id/participants/:participant_id/sync-token", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
2875
3004
  readonly episode_id: import("effect/Schema").brand<import("effect/Schema").String, "EpisodeId">;
2876
3005
  readonly participant_id: import("effect/Schema").brand<import("effect/Schema").String, "ParticipantId">;
@@ -219,6 +219,32 @@ export declare const CloudflareSFUTracksRequestSchema: Schema.Struct<{
219
219
  }>>;
220
220
  }>;
221
221
  export type CloudflareSFUTracksRequest = typeof CloudflareSFUTracksRequestSchema.Type;
222
+ export declare const ConnectionReportRequestSchema: Schema.Struct<{
223
+ readonly events: Schema.$Array<Schema.Struct<{
224
+ readonly attempt: Schema.optional<Schema.NullOr<Schema.Number>>;
225
+ readonly close_code: Schema.optional<Schema.NullOr<Schema.Number>>;
226
+ readonly code: Schema.optional<Schema.Literals<readonly ["invalid_state", "invalid_access", "access_unavailable", "permission_denied", "device_not_found", "device_busy", "device_constraint_invalid", "media_capture_failed", "sync_start_failed", "state_digest_recovery_failed", "sync_hello_timeout", "media_start_failed", "join_cleanup_unconfirmed", "sync_recovery_exhausted", "media_recovery_exhausted", "command_rejected", "leave_unconfirmed", "episode_ended", "unsupported_environment", "internal_error", "collaboration_unavailable", "chat_cursor_reset_required", "rate_limited", "invalid_payload"]>>;
227
+ readonly duration_ms: Schema.optional<Schema.NullOr<Schema.Number>>;
228
+ readonly elapsed_ms: Schema.Number;
229
+ readonly event: Schema.Literals<readonly ["space_join_span", "state_changed", "connection_failed", "sync_connect_failed", "sync_dial_timeout", "access_refreshed", "access_refresh_failed", "recovery_attempt", "recovery_succeeded", "recovery_exhausted", "cleanup_completed", "cleanup_unconfirmed", "sync_socket_open", "sync_socket_close", "sync_heartbeat_gap", "media_state", "media_http_error", "media_projection_mismatch"]>;
230
+ readonly granted_audio: Schema.optional<Schema.Literals<readonly ["granted", "not_granted", "unknown"]>>;
231
+ readonly granted_video: Schema.optional<Schema.Literals<readonly ["granted", "not_granted", "unknown"]>>;
232
+ readonly heartbeat_gap_ms: Schema.optional<Schema.NullOr<Schema.Number>>;
233
+ readonly http_status: Schema.optional<Schema.NullOr<Schema.Number>>;
234
+ readonly media_error_kind: Schema.optional<Schema.Literals<readonly ["NotAllowedError", "NotReadableError", "NotFoundError", "OverconstrainedError", "AbortError", "SecurityError", "InvalidStateError", "OperationError", "NotSupportedError", "CloudflareSFUError", "network", "timeout", "unknown"]>>;
235
+ readonly media_error_step: Schema.optional<Schema.Literals<readonly ["local_capture", "peer_connection", "access_refresh", "sfu_tracks", "sfu_close_tracks", "sfu_renegotiate", "sfu_publications"]>>;
236
+ readonly outcome: Schema.optional<Schema.Literals<readonly ["started", "succeeded", "failed", "cancelled"]>>;
237
+ readonly phase: Schema.optional<Schema.Literals<readonly ["idle", "connecting", "live", "recovering", "failed", "stopped", "new", "connected", "disconnected", "closed"]>>;
238
+ readonly projection_state: Schema.optional<Schema.Literals<readonly ["on", "off"]>>;
239
+ readonly publication_state: Schema.optional<Schema.Literals<readonly ["on", "off"]>>;
240
+ readonly source: Schema.optional<Schema.Literals<readonly ["microphone", "camera"]>>;
241
+ readonly state: Schema.optional<Schema.Literals<readonly ["idle", "joining", "live", "reconnecting", "leaving", "left", "failed"]>>;
242
+ readonly step: Schema.optional<Schema.Literals<readonly ["join", "acquire_initial_media", "access_initialize", "create_media_client", "create_sync_client", "start_media", "start_sync", "wait_for_sync_live", "confirm_entered"]>>;
243
+ }>>;
244
+ readonly trigger: Schema.Literals<readonly ["join_failed", "connection_lost", "recovery_exhausted", "media_projection_mismatch"]>;
245
+ readonly version: Schema.Literal<1>;
246
+ }>;
247
+ export type ConnectionReportRequest = typeof ConnectionReportRequestSchema.Type;
222
248
  export declare const CreateAPIKeyRequestSchema: Schema.Struct<{
223
249
  readonly expires_at: Schema.brand<Schema.String, "DateTimeString">;
224
250
  readonly name: Schema.String;
@@ -424,6 +450,7 @@ export declare const IntegrationServiceIdSchema: Schema.brand<Schema.String, "In
424
450
  export type IntegrationServiceId = typeof IntegrationServiceIdSchema.Type;
425
451
  export declare const IssueAccessGrantRequestSchema: Schema.Struct<{
426
452
  readonly current_media_token: Schema.optional<Schema.String>;
453
+ readonly expected_media_connection_id: Schema.optional<Schema.NullOr<Schema.String>>;
427
454
  readonly participant_generation: Schema.Number;
428
455
  readonly replace_media_connection: Schema.Boolean;
429
456
  }>;
@@ -459,6 +486,10 @@ export declare const MembershipListSchema: Schema.Struct<{
459
486
  }>;
460
487
  }>;
461
488
  export type MembershipList = typeof MembershipListSchema.Type;
489
+ export declare const ParticipantEpisodeStatusSchema: Schema.Struct<{
490
+ readonly status: Schema.Literals<readonly ["active", "ending", "ended"]>;
491
+ }>;
492
+ export type ParticipantEpisodeStatus = typeof ParticipantEpisodeStatusSchema.Type;
462
493
  export declare const ParticipantJoinCancellationSchema: Schema.Struct<{
463
494
  readonly cancelled: Schema.Boolean;
464
495
  }>;
@@ -2216,6 +2247,23 @@ export declare const GetEpisodeAttendance429ResponseHeadersSchema: Schema.Struct
2216
2247
  readonly "X-RateLimit-Remaining": Schema.NumberFromString;
2217
2248
  }>;
2218
2249
  export type GetEpisodeAttendance429ResponseHeaders = typeof GetEpisodeAttendance429ResponseHeadersSchema.Type;
2250
+ export declare const GetParticipantEpisodeStatusPathParamsSchema: Schema.Struct<{
2251
+ readonly episode_id: Schema.brand<Schema.String, "EpisodeId">;
2252
+ readonly participant_id: Schema.brand<Schema.String, "ParticipantId">;
2253
+ readonly space_id: Schema.brand<Schema.String, "SpaceId">;
2254
+ readonly tenant_id: Schema.brand<Schema.String, "TenantId">;
2255
+ }>;
2256
+ export type GetParticipantEpisodeStatusPathParams = typeof GetParticipantEpisodeStatusPathParamsSchema.Type;
2257
+ export declare const GetParticipantEpisodeStatusResponseSchema: Schema.Struct<{
2258
+ readonly status: Schema.Literals<readonly ["active", "ending", "ended"]>;
2259
+ }>;
2260
+ export type GetParticipantEpisodeStatusResponse = typeof GetParticipantEpisodeStatusResponseSchema.Type;
2261
+ export declare const GetParticipantEpisodeStatus429ResponseHeadersSchema: Schema.Struct<{
2262
+ readonly "Retry-After": Schema.NumberFromString;
2263
+ readonly "X-RateLimit-Limit": Schema.NumberFromString;
2264
+ readonly "X-RateLimit-Remaining": Schema.NumberFromString;
2265
+ }>;
2266
+ export type GetParticipantEpisodeStatus429ResponseHeaders = typeof GetParticipantEpisodeStatus429ResponseHeadersSchema.Type;
2219
2267
  export declare const GetProblemReportAvailabilityPathParamsSchema: Schema.Struct<{
2220
2268
  readonly tenant_id: Schema.brand<Schema.String, "TenantId">;
2221
2269
  }>;
@@ -2580,6 +2628,7 @@ export declare const IssueAccessGrantPathParamsSchema: Schema.Struct<{
2580
2628
  export type IssueAccessGrantPathParams = typeof IssueAccessGrantPathParamsSchema.Type;
2581
2629
  export declare const IssueAccessGrantRequestBodySchema: Schema.Struct<{
2582
2630
  readonly current_media_token: Schema.optional<Schema.String>;
2631
+ readonly expected_media_connection_id: Schema.optional<Schema.NullOr<Schema.String>>;
2583
2632
  readonly participant_generation: Schema.Number;
2584
2633
  readonly replace_media_connection: Schema.Boolean;
2585
2634
  }>;
@@ -3284,6 +3333,42 @@ export declare const RenegotiateCloudflareSFU429ResponseHeadersSchema: Schema.St
3284
3333
  readonly "X-RateLimit-Remaining": Schema.NumberFromString;
3285
3334
  }>;
3286
3335
  export type RenegotiateCloudflareSFU429ResponseHeaders = typeof RenegotiateCloudflareSFU429ResponseHeadersSchema.Type;
3336
+ export declare const ReportConnectionFailurePathParamsSchema: Schema.Struct<{
3337
+ readonly tenant_id: Schema.brand<Schema.String, "TenantId">;
3338
+ }>;
3339
+ export type ReportConnectionFailurePathParams = typeof ReportConnectionFailurePathParamsSchema.Type;
3340
+ export declare const ReportConnectionFailureRequestBodySchema: Schema.Struct<{
3341
+ readonly events: Schema.$Array<Schema.Struct<{
3342
+ readonly attempt: Schema.optional<Schema.NullOr<Schema.Number>>;
3343
+ readonly close_code: Schema.optional<Schema.NullOr<Schema.Number>>;
3344
+ readonly code: Schema.optional<Schema.Literals<readonly ["invalid_state", "invalid_access", "access_unavailable", "permission_denied", "device_not_found", "device_busy", "device_constraint_invalid", "media_capture_failed", "sync_start_failed", "state_digest_recovery_failed", "sync_hello_timeout", "media_start_failed", "join_cleanup_unconfirmed", "sync_recovery_exhausted", "media_recovery_exhausted", "command_rejected", "leave_unconfirmed", "episode_ended", "unsupported_environment", "internal_error", "collaboration_unavailable", "chat_cursor_reset_required", "rate_limited", "invalid_payload"]>>;
3345
+ readonly duration_ms: Schema.optional<Schema.NullOr<Schema.Number>>;
3346
+ readonly elapsed_ms: Schema.Number;
3347
+ readonly event: Schema.Literals<readonly ["space_join_span", "state_changed", "connection_failed", "sync_connect_failed", "sync_dial_timeout", "access_refreshed", "access_refresh_failed", "recovery_attempt", "recovery_succeeded", "recovery_exhausted", "cleanup_completed", "cleanup_unconfirmed", "sync_socket_open", "sync_socket_close", "sync_heartbeat_gap", "media_state", "media_http_error", "media_projection_mismatch"]>;
3348
+ readonly granted_audio: Schema.optional<Schema.Literals<readonly ["granted", "not_granted", "unknown"]>>;
3349
+ readonly granted_video: Schema.optional<Schema.Literals<readonly ["granted", "not_granted", "unknown"]>>;
3350
+ readonly heartbeat_gap_ms: Schema.optional<Schema.NullOr<Schema.Number>>;
3351
+ readonly http_status: Schema.optional<Schema.NullOr<Schema.Number>>;
3352
+ readonly media_error_kind: Schema.optional<Schema.Literals<readonly ["NotAllowedError", "NotReadableError", "NotFoundError", "OverconstrainedError", "AbortError", "SecurityError", "InvalidStateError", "OperationError", "NotSupportedError", "CloudflareSFUError", "network", "timeout", "unknown"]>>;
3353
+ readonly media_error_step: Schema.optional<Schema.Literals<readonly ["local_capture", "peer_connection", "access_refresh", "sfu_tracks", "sfu_close_tracks", "sfu_renegotiate", "sfu_publications"]>>;
3354
+ readonly outcome: Schema.optional<Schema.Literals<readonly ["started", "succeeded", "failed", "cancelled"]>>;
3355
+ readonly phase: Schema.optional<Schema.Literals<readonly ["idle", "connecting", "live", "recovering", "failed", "stopped", "new", "connected", "disconnected", "closed"]>>;
3356
+ readonly projection_state: Schema.optional<Schema.Literals<readonly ["on", "off"]>>;
3357
+ readonly publication_state: Schema.optional<Schema.Literals<readonly ["on", "off"]>>;
3358
+ readonly source: Schema.optional<Schema.Literals<readonly ["microphone", "camera"]>>;
3359
+ readonly state: Schema.optional<Schema.Literals<readonly ["idle", "joining", "live", "reconnecting", "leaving", "left", "failed"]>>;
3360
+ readonly step: Schema.optional<Schema.Literals<readonly ["join", "acquire_initial_media", "access_initialize", "create_media_client", "create_sync_client", "start_media", "start_sync", "wait_for_sync_live", "confirm_entered"]>>;
3361
+ }>>;
3362
+ readonly trigger: Schema.Literals<readonly ["join_failed", "connection_lost", "recovery_exhausted", "media_projection_mismatch"]>;
3363
+ readonly version: Schema.Literal<1>;
3364
+ }>;
3365
+ export type ReportConnectionFailureRequestBody = typeof ReportConnectionFailureRequestBodySchema.Type;
3366
+ export declare const ReportConnectionFailure429ResponseHeadersSchema: Schema.Struct<{
3367
+ readonly "Retry-After": Schema.NumberFromString;
3368
+ readonly "X-RateLimit-Limit": Schema.NumberFromString;
3369
+ readonly "X-RateLimit-Remaining": Schema.NumberFromString;
3370
+ }>;
3371
+ export type ReportConnectionFailure429ResponseHeaders = typeof ReportConnectionFailure429ResponseHeadersSchema.Type;
3287
3372
  export declare const RequestRecordingExportPathParamsSchema: Schema.Struct<{
3288
3373
  readonly recording_id: Schema.brand<Schema.String, "RecordingId">;
3289
3374
  readonly tenant_id: Schema.brand<Schema.String, "TenantId">;
@@ -4814,6 +4899,26 @@ export declare const ParticipantInvalidIdErrorSchema: Schema.decodeTo<typeof Par
4814
4899
  readonly message: Schema.String;
4815
4900
  }>;
4816
4901
  }>, never, never>;
4902
+ declare const ParticipantMediaReplacementPendingError_base: Schema.Class<ParticipantMediaReplacementPendingError, Schema.TaggedStruct<"ParticipantMediaReplacementPendingError", {
4903
+ readonly error: Schema.Struct<{
4904
+ readonly code: Schema.Literal<"participant.media_replacement_pending">;
4905
+ readonly message: Schema.String;
4906
+ }>;
4907
+ }>, import("effect/Cause").YieldableError>;
4908
+ export declare class ParticipantMediaReplacementPendingError extends ParticipantMediaReplacementPendingError_base {
4909
+ }
4910
+ export declare const ParticipantMediaReplacementPendingErrorWireSchema: Schema.Struct<{
4911
+ readonly error: Schema.Struct<{
4912
+ readonly code: Schema.Literal<"participant.media_replacement_pending">;
4913
+ readonly message: Schema.String;
4914
+ }>;
4915
+ }>;
4916
+ export declare const ParticipantMediaReplacementPendingErrorSchema: Schema.decodeTo<typeof ParticipantMediaReplacementPendingError, Schema.Struct<{
4917
+ readonly error: Schema.Struct<{
4918
+ readonly code: Schema.Literal<"participant.media_replacement_pending">;
4919
+ readonly message: Schema.String;
4920
+ }>;
4921
+ }>, never, never>;
4817
4922
  declare const ParticipantNotActiveError_base: Schema.Class<ParticipantNotActiveError, Schema.TaggedStruct<"ParticipantNotActiveError", {
4818
4923
  readonly error: Schema.Struct<{
4819
4924
  readonly code: Schema.Literal<"participant.not_active">;
@@ -7821,6 +7926,58 @@ export declare const GetEpisodeErrorSchema: Schema.Union<readonly [Schema.decode
7821
7926
  }>;
7822
7927
  }>, never, never>]>;
7823
7928
  export type GetEpisodeError = typeof GetEpisodeErrorSchema.Type;
7929
+ export declare const GetParticipantEpisodeStatusErrorSchema: Schema.Union<readonly [Schema.decodeTo<typeof AccessForbiddenError, Schema.Struct<{
7930
+ readonly error: Schema.Struct<{
7931
+ readonly code: Schema.Literal<"access.forbidden">;
7932
+ readonly message: Schema.String;
7933
+ }>;
7934
+ }>, never, never>, Schema.decodeTo<typeof AccessUnauthenticatedError, Schema.Struct<{
7935
+ readonly error: Schema.Struct<{
7936
+ readonly code: Schema.Literal<"access.unauthenticated">;
7937
+ readonly message: Schema.String;
7938
+ }>;
7939
+ }>, never, never>, Schema.decodeTo<typeof EpisodeInvalidIdError, Schema.Struct<{
7940
+ readonly error: Schema.Struct<{
7941
+ readonly code: Schema.Literal<"episode.invalid_id">;
7942
+ readonly message: Schema.String;
7943
+ }>;
7944
+ }>, never, never>, Schema.decodeTo<typeof EpisodeNotFoundError, Schema.Struct<{
7945
+ readonly error: Schema.Struct<{
7946
+ readonly code: Schema.Literal<"episode.not_found">;
7947
+ readonly message: Schema.String;
7948
+ }>;
7949
+ }>, never, never>, Schema.decodeTo<typeof ParticipantInvalidIdError, Schema.Struct<{
7950
+ readonly error: Schema.Struct<{
7951
+ readonly code: Schema.Literal<"participant.invalid_id">;
7952
+ readonly message: Schema.String;
7953
+ }>;
7954
+ }>, never, never>, Schema.decodeTo<typeof RequestRateLimitedError, Schema.Struct<{
7955
+ readonly error: Schema.Struct<{
7956
+ readonly code: Schema.Literal<"request.rate_limited">;
7957
+ readonly message: Schema.String;
7958
+ }>;
7959
+ }>, never, never>, Schema.decodeTo<typeof ServiceInternalError, Schema.Struct<{
7960
+ readonly error: Schema.Struct<{
7961
+ readonly code: Schema.Literal<"service.internal_error">;
7962
+ readonly message: Schema.String;
7963
+ }>;
7964
+ }>, never, never>, Schema.decodeTo<typeof ServiceUnavailableError, Schema.Struct<{
7965
+ readonly error: Schema.Struct<{
7966
+ readonly code: Schema.Literal<"service.unavailable">;
7967
+ readonly message: Schema.String;
7968
+ }>;
7969
+ }>, never, never>, Schema.decodeTo<typeof SpaceInvalidIdError, Schema.Struct<{
7970
+ readonly error: Schema.Struct<{
7971
+ readonly code: Schema.Literal<"space.invalid_id">;
7972
+ readonly message: Schema.String;
7973
+ }>;
7974
+ }>, never, never>, Schema.decodeTo<typeof TenantInvalidIdError, Schema.Struct<{
7975
+ readonly error: Schema.Struct<{
7976
+ readonly code: Schema.Literal<"tenant.invalid_id">;
7977
+ readonly message: Schema.String;
7978
+ }>;
7979
+ }>, never, never>]>;
7980
+ export type GetParticipantEpisodeStatusError = typeof GetParticipantEpisodeStatusErrorSchema.Type;
7824
7981
  export declare const GetProblemReportAvailabilityErrorSchema: Schema.decodeTo<typeof TenantInvalidIdError, Schema.Struct<{
7825
7982
  readonly error: Schema.Struct<{
7826
7983
  readonly code: Schema.Literal<"tenant.invalid_id">;
@@ -8537,6 +8694,11 @@ export declare const IssueAccessGrantErrorSchema: Schema.Union<readonly [Schema.
8537
8694
  readonly code: Schema.Literal<"participant.invalid_id">;
8538
8695
  readonly message: Schema.String;
8539
8696
  }>;
8697
+ }>, never, never>, Schema.decodeTo<typeof ParticipantMediaReplacementPendingError, Schema.Struct<{
8698
+ readonly error: Schema.Struct<{
8699
+ readonly code: Schema.Literal<"participant.media_replacement_pending">;
8700
+ readonly message: Schema.String;
8701
+ }>;
8540
8702
  }>, never, never>, Schema.decodeTo<typeof ParticipantNotFoundError, Schema.Struct<{
8541
8703
  readonly error: Schema.Struct<{
8542
8704
  readonly code: Schema.Literal<"participant.not_found">;
@@ -9843,6 +10005,48 @@ export declare const RenegotiateCloudflareSFUErrorSchema: Schema.Union<readonly
9843
10005
  }>;
9844
10006
  }>, never, never>]>;
9845
10007
  export type RenegotiateCloudflareSFUError = typeof RenegotiateCloudflareSFUErrorSchema.Type;
10008
+ export declare const ReportConnectionFailureErrorSchema: Schema.Union<readonly [Schema.decodeTo<typeof AccessForbiddenError, Schema.Struct<{
10009
+ readonly error: Schema.Struct<{
10010
+ readonly code: Schema.Literal<"access.forbidden">;
10011
+ readonly message: Schema.String;
10012
+ }>;
10013
+ }>, never, never>, Schema.decodeTo<typeof AccessUnauthenticatedError, Schema.Struct<{
10014
+ readonly error: Schema.Struct<{
10015
+ readonly code: Schema.Literal<"access.unauthenticated">;
10016
+ readonly message: Schema.String;
10017
+ }>;
10018
+ }>, never, never>, Schema.decodeTo<typeof RequestInvalidError, Schema.Struct<{
10019
+ readonly error: Schema.Struct<{
10020
+ readonly code: Schema.Literal<"request.invalid">;
10021
+ readonly message: Schema.String;
10022
+ }>;
10023
+ }>, never, never>, Schema.decodeTo<typeof RequestPayloadTooLargeError, Schema.Struct<{
10024
+ readonly error: Schema.Struct<{
10025
+ readonly code: Schema.Literal<"request.payload_too_large">;
10026
+ readonly message: Schema.String;
10027
+ }>;
10028
+ }>, never, never>, Schema.decodeTo<typeof RequestRateLimitedError, Schema.Struct<{
10029
+ readonly error: Schema.Struct<{
10030
+ readonly code: Schema.Literal<"request.rate_limited">;
10031
+ readonly message: Schema.String;
10032
+ }>;
10033
+ }>, never, never>, Schema.decodeTo<typeof ServiceInternalError, Schema.Struct<{
10034
+ readonly error: Schema.Struct<{
10035
+ readonly code: Schema.Literal<"service.internal_error">;
10036
+ readonly message: Schema.String;
10037
+ }>;
10038
+ }>, never, never>, Schema.decodeTo<typeof ServiceUnavailableError, Schema.Struct<{
10039
+ readonly error: Schema.Struct<{
10040
+ readonly code: Schema.Literal<"service.unavailable">;
10041
+ readonly message: Schema.String;
10042
+ }>;
10043
+ }>, never, never>, Schema.decodeTo<typeof TenantInvalidIdError, Schema.Struct<{
10044
+ readonly error: Schema.Struct<{
10045
+ readonly code: Schema.Literal<"tenant.invalid_id">;
10046
+ readonly message: Schema.String;
10047
+ }>;
10048
+ }>, never, never>]>;
10049
+ export type ReportConnectionFailureError = typeof ReportConnectionFailureErrorSchema.Type;
9846
10050
  export declare const RequestRecordingExportErrorSchema: Schema.Union<readonly [Schema.decodeTo<typeof AccessForbiddenError, Schema.Struct<{
9847
10051
  readonly error: Schema.Struct<{
9848
10052
  readonly code: Schema.Literal<"access.forbidden">;
@@ -11178,6 +11382,13 @@ export declare const ChalkOperationPolicies: {
11178
11382
  readonly windowSeconds: 60;
11179
11383
  };
11180
11384
  };
11385
+ readonly getParticipantEpisodeStatus: {
11386
+ readonly rateLimit: {
11387
+ readonly limit: 300;
11388
+ readonly policy: "v1.authenticated.read";
11389
+ readonly windowSeconds: 60;
11390
+ };
11391
+ };
11181
11392
  readonly getSpacePublicInvite: {
11182
11393
  readonly rateLimit: {
11183
11394
  readonly limit: 300;
@@ -11346,6 +11557,14 @@ export declare const ChalkOperationPolicies: {
11346
11557
  readonly windowSeconds: 60;
11347
11558
  };
11348
11559
  };
11560
+ readonly reportConnectionFailure: {
11561
+ readonly maxBodyBytes: 32768;
11562
+ readonly rateLimit: {
11563
+ readonly limit: 6;
11564
+ readonly policy: "connection_reports.participant";
11565
+ readonly windowSeconds: 600;
11566
+ };
11567
+ };
11349
11568
  readonly requestRecordingExport: {
11350
11569
  readonly maxBodyBytes: 1048576;
11351
11570
  readonly rateLimit: {