@everframe/react-native 1.1.0 → 1.2.1

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/dist/index.d.ts CHANGED
@@ -2,8 +2,8 @@ import * as React from 'react';
2
2
  import { EverframeUserSpec, ConfigOpts } from './NativeEverframe.js';
3
3
  export { Rect, Spec } from './NativeEverframe.js';
4
4
  import { E as EverframeIntegration } from './types-D5e4kWaw.js';
5
- import { R as ReportDeliveryStatus, E as ErrorCaptureStatus, P as PromiseRejectionStatus } from './promise-rejection-types-C-lxCdDl.js';
6
- export { a as ErrorCaptureCounters, b as ErrorCaptureOutcome, c as ErrorCapturePath, d as PromiseRejectionCounters, e as RejectionReason, f as ReportCaptureOutcome, g as ReportCapturePath, h as ReportCapturePathStatus, i as ReportDeliveryReason, j as ReportQueueOperation, k as ReportQueueStatus, l as ReportStorageFailure, m as ReportTransportOrigin, n as ReportTransportOutcome, o as ReportTransportStatus } from './promise-rejection-types-C-lxCdDl.js';
5
+ import { R as ReportDeliveryStatus, E as ErrorCaptureStatus, P as PromiseRejectionStatus } from './promise-rejection-types-Bf5iLv8n.js';
6
+ export { a as ErrorCaptureCounters, b as ErrorCaptureOutcome, c as ErrorCapturePath, d as PromiseRejectionCounters, e as RejectionReason, f as ReportCaptureOutcome, g as ReportCapturePath, h as ReportCapturePathStatus, i as ReportDeliveryReason, j as ReportQueueOperation, k as ReportQueueStatus, l as ReportStorageFailure, m as ReportTransportOrigin, n as ReportTransportOutcome, o as ReportTransportStatus } from './promise-rejection-types-Bf5iLv8n.js';
7
7
  import { z } from 'zod';
8
8
  import { ViewProps, EventSubscription } from 'react-native';
9
9
 
@@ -21,6 +21,7 @@ declare const ReportEnvelope: z.ZodObject<{
21
21
  error: "error";
22
22
  manual: "manual";
23
23
  crash: "crash";
24
+ diagnostic: "diagnostic";
24
25
  }>>;
25
26
  sessionId: z.ZodOptional<z.ZodString>;
26
27
  sdk: z.ZodObject<{
@@ -33,17 +34,19 @@ declare const ReportEnvelope: z.ZodObject<{
33
34
  "everframe-ios": "everframe-ios";
34
35
  "everframe-android": "everframe-android";
35
36
  "everframe-roku": "everframe-roku";
37
+ "everframe-vega": "everframe-vega";
36
38
  }>;
37
39
  version: z.ZodString;
38
40
  platform: z.ZodEnum<{
39
- web: "web";
40
- ios: "ios";
41
41
  android: "android";
42
+ ios: "ios";
43
+ web: "web";
42
44
  tvos: "tvos";
43
45
  tizen: "tizen";
44
46
  webos: "webos";
45
47
  androidtv: "androidtv";
46
48
  roku: "roku";
49
+ vega: "vega";
47
50
  }>;
48
51
  formFactor: z.ZodEnum<{
49
52
  phone: "phone";
@@ -127,13 +130,13 @@ declare const ReportEnvelope: z.ZodObject<{
127
130
  resHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
128
131
  reqBodySkipped: z.ZodOptional<z.ZodEnum<{
129
132
  error: "error";
130
- "content-type": "content-type";
131
133
  unsupported: "unsupported";
134
+ "content-type": "content-type";
132
135
  }>>;
133
136
  resBodySkipped: z.ZodOptional<z.ZodEnum<{
134
137
  error: "error";
135
- "content-type": "content-type";
136
138
  unsupported: "unsupported";
139
+ "content-type": "content-type";
137
140
  }>>;
138
141
  }, z.core.$loose>>>;
139
142
  vitals: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -212,8 +215,9 @@ declare const ReportEnvelope: z.ZodObject<{
212
215
  jsBundle: z.ZodOptional<z.ZodObject<{
213
216
  engine: z.ZodLiteral<"hermes">;
214
217
  platform: z.ZodEnum<{
215
- ios: "ios";
216
218
  android: "android";
219
+ ios: "ios";
220
+ vega: "vega";
217
221
  }>;
218
222
  buildId: z.ZodString;
219
223
  bundleName: z.ZodString;
@@ -235,6 +239,27 @@ declare const ReportEnvelope: z.ZodObject<{
235
239
  causesTruncated: z.ZodBoolean;
236
240
  }, z.core.$strip>>;
237
241
  native: z.ZodOptional<z.ZodObject<{
242
+ releaseHealthEvidence: z.ZodOptional<z.ZodObject<{
243
+ version: z.ZodLiteral<1>;
244
+ attribution: z.ZodLiteral<"immutable_fatal_context">;
245
+ contextId: z.ZodString;
246
+ exposure: z.ZodObject<{
247
+ loadedBuildId: z.ZodNullable<z.ZodString>;
248
+ loadedBundleStatus: z.ZodEnum<{
249
+ unknown: "unknown";
250
+ known: "known";
251
+ not_applicable: "not_applicable";
252
+ }>;
253
+ exposureId: z.ZodString;
254
+ processLaunchId: z.ZodString;
255
+ startedAt: z.ZodISODateTime;
256
+ app: z.ZodObject<{
257
+ version: z.ZodString;
258
+ build: z.ZodNullable<z.ZodString>;
259
+ debug: z.ZodBoolean;
260
+ }, z.core.$strict>;
261
+ }, z.core.$strict>;
262
+ }, z.core.$strict>>;
238
263
  platform: z.ZodLiteral<"apple">;
239
264
  timestampMicros: z.ZodString;
240
265
  crashedThreadIndex: z.ZodNumber;
@@ -270,6 +295,29 @@ declare const ReportEnvelope: z.ZodObject<{
270
295
  faultAddress: z.ZodOptional<z.ZodString>;
271
296
  }, z.core.$strip>;
272
297
  }, z.core.$strip>>;
298
+ androidNative: z.ZodOptional<z.ZodObject<{
299
+ source: z.ZodEnum<{
300
+ "android-exit-info": "android-exit-info";
301
+ "android-native-handler": "android-native-handler";
302
+ }>;
303
+ abi: z.ZodEnum<{
304
+ x86_64: "x86_64";
305
+ "armeabi-v7a": "armeabi-v7a";
306
+ "arm64-v8a": "arm64-v8a";
307
+ x86: "x86";
308
+ riscv64: "riscv64";
309
+ }>;
310
+ crashedThreadId: z.ZodNumber;
311
+ framesIncomplete: z.ZodBoolean;
312
+ frames: z.ZodArray<z.ZodObject<{
313
+ pc: z.ZodString;
314
+ relativePc: z.ZodString;
315
+ module: z.ZodOptional<z.ZodString>;
316
+ buildId: z.ZodOptional<z.ZodString>;
317
+ }, z.core.$strip>>;
318
+ signalNumber: z.ZodOptional<z.ZodNumber>;
319
+ signalCode: z.ZodOptional<z.ZodNumber>;
320
+ }, z.core.$strip>>;
273
321
  exceptionType: z.ZodString;
274
322
  message: z.ZodString;
275
323
  frames: z.ZodArray<z.ZodObject<{
@@ -286,12 +334,245 @@ declare const ReportEnvelope: z.ZodObject<{
286
334
  occurredAt: z.ZodString;
287
335
  fingerprint: z.ZodString;
288
336
  }, z.core.$loose>>;
337
+ diagnostic: z.ZodOptional<z.ZodObject<{
338
+ version: z.ZodLiteral<1>;
339
+ evidenceId: z.ZodString;
340
+ processLaunchId: z.ZodString;
341
+ nativeExposure: z.ZodOptional<z.ZodObject<{
342
+ loadedBuildId: z.ZodNullable<z.ZodString>;
343
+ loadedBundleStatus: z.ZodEnum<{
344
+ unknown: "unknown";
345
+ known: "known";
346
+ not_applicable: "not_applicable";
347
+ }>;
348
+ exposureId: z.ZodString;
349
+ processLaunchId: z.ZodString;
350
+ startedAt: z.ZodISODateTime;
351
+ app: z.ZodObject<{
352
+ version: z.ZodString;
353
+ build: z.ZodNullable<z.ZodString>;
354
+ debug: z.ZodBoolean;
355
+ }, z.core.$strict>;
356
+ }, z.core.$strict>>;
357
+ kind: z.ZodLiteral<"process_exit">;
358
+ provenance: z.ZodLiteral<"android_application_exit_info">;
359
+ scope: z.ZodLiteral<"os_process">;
360
+ outcome: z.ZodLiteral<"terminated">;
361
+ cause: z.ZodEnum<{
362
+ unknown: "unknown";
363
+ anr: "anr";
364
+ native_crash: "native_crash";
365
+ java_crash: "java_crash";
366
+ system_low_memory: "system_low_memory";
367
+ user_requested: "user_requested";
368
+ system_other: "system_other";
369
+ }>;
370
+ occurredAt: z.ZodString;
371
+ collectedAt: z.ZodString;
372
+ attribution: z.ZodObject<{
373
+ process: z.ZodLiteral<"exact_os_token">;
374
+ release: z.ZodLiteral<"frozen">;
375
+ session: z.ZodLiteral<"unavailable">;
376
+ webExposure: z.ZodLiteral<"unavailable">;
377
+ }, z.core.$strict>;
378
+ android: z.ZodObject<{
379
+ apiLevel: z.ZodNumber;
380
+ reason: z.ZodNumber;
381
+ pid: z.ZodNumber;
382
+ importance: z.ZodOptional<z.ZodNumber>;
383
+ pssKb: z.ZodOptional<z.ZodNumber>;
384
+ rssKb: z.ZodOptional<z.ZodNumber>;
385
+ description: z.ZodOptional<z.ZodString>;
386
+ mappingId: z.ZodOptional<z.ZodString>;
387
+ }, z.core.$strict>;
388
+ trace: z.ZodObject<{
389
+ status: z.ZodEnum<{
390
+ unavailable: "unavailable";
391
+ available: "available";
392
+ malformed: "malformed";
393
+ unsupported: "unsupported";
394
+ not_requested: "not_requested";
395
+ }>;
396
+ format: z.ZodEnum<{
397
+ none: "none";
398
+ android_anr_text: "android_anr_text";
399
+ android_tombstone: "android_tombstone";
400
+ }>;
401
+ truncated: z.ZodBoolean;
402
+ frames: z.ZodArray<z.ZodObject<{
403
+ function: z.ZodString;
404
+ file: z.ZodOptional<z.ZodString>;
405
+ line: z.ZodOptional<z.ZodNumber>;
406
+ }, z.core.$strict>>;
407
+ }, z.core.$strict>;
408
+ }, z.core.$strict>>;
409
+ appleDiagnostic: z.ZodOptional<z.ZodObject<{
410
+ version: z.ZodLiteral<1>;
411
+ evidenceId: z.ZodString;
412
+ ownershipId: z.ZodString;
413
+ kind: z.ZodEnum<{
414
+ hang_batch: "hang_batch";
415
+ app_exit_summary: "app_exit_summary";
416
+ }>;
417
+ provenance: z.ZodLiteral<"apple_metrickit">;
418
+ scope: z.ZodLiteral<"reporting_interval">;
419
+ outcome: z.ZodLiteral<"unknown">;
420
+ interval: z.ZodObject<{
421
+ begin: z.ZodString;
422
+ end: z.ZodString;
423
+ }, z.core.$strict>;
424
+ collectedAt: z.ZodString;
425
+ attribution: z.ZodObject<{
426
+ process: z.ZodLiteral<"unavailable">;
427
+ release: z.ZodLiteral<"frozen">;
428
+ session: z.ZodLiteral<"unavailable">;
429
+ webExposure: z.ZodLiteral<"unavailable">;
430
+ }, z.core.$strict>;
431
+ apple: z.ZodObject<{
432
+ applicationVersion: z.ZodString;
433
+ applicationBuild: z.ZodString;
434
+ osVersion: z.ZodString;
435
+ }, z.core.$strict>;
436
+ truncated: z.ZodBoolean;
437
+ hangs: z.ZodOptional<z.ZodArray<z.ZodObject<{
438
+ durationMs: z.ZodNumber;
439
+ stack: z.ZodObject<{
440
+ status: z.ZodEnum<{
441
+ unavailable: "unavailable";
442
+ available: "available";
443
+ malformed: "malformed";
444
+ oversized: "oversized";
445
+ }>;
446
+ truncated: z.ZodBoolean;
447
+ frames: z.ZodArray<z.ZodObject<{
448
+ binaryUUID: z.ZodString;
449
+ binaryName: z.ZodString;
450
+ address: z.ZodString;
451
+ offset: z.ZodString;
452
+ }, z.core.$strict>>;
453
+ }, z.core.$strict>;
454
+ }, z.core.$strict>>>;
455
+ exits: z.ZodOptional<z.ZodArray<z.ZodObject<{
456
+ state: z.ZodEnum<{
457
+ background: "background";
458
+ foreground: "foreground";
459
+ }>;
460
+ reason: z.ZodEnum<{
461
+ normal: "normal";
462
+ memory_resource_limit: "memory_resource_limit";
463
+ bad_access: "bad_access";
464
+ abnormal: "abnormal";
465
+ illegal_instruction: "illegal_instruction";
466
+ watchdog: "watchdog";
467
+ cpu_resource_limit: "cpu_resource_limit";
468
+ memory_pressure: "memory_pressure";
469
+ suspended_locked_file: "suspended_locked_file";
470
+ background_task_timeout: "background_task_timeout";
471
+ }>;
472
+ count: z.ZodNumber;
473
+ }, z.core.$strict>>>;
474
+ }, z.core.$strict>>;
475
+ recoveredStall: z.ZodOptional<z.ZodObject<{
476
+ version: z.ZodLiteral<1>;
477
+ evidenceId: z.ZodString;
478
+ kind: z.ZodLiteral<"recovered_main_thread_stall">;
479
+ provenance: z.ZodLiteral<"android_main_looper_probe">;
480
+ outcome: z.ZodLiteral<"recovered">;
481
+ scope: z.ZodLiteral<"main_looper">;
482
+ queuedAt: z.ZodString;
483
+ recoveredAt: z.ZodString;
484
+ probeDelayMs: z.ZodNumber;
485
+ thresholdMs: z.ZodLiteral<5000>;
486
+ sampleIntervalMs: z.ZodLiteral<1000>;
487
+ clock: z.ZodLiteral<"uptime">;
488
+ eligibility: z.ZodLiteral<"foreground-debugger-checked-v1">;
489
+ trace: z.ZodLiteral<"not_collected">;
490
+ attribution: z.ZodObject<{
491
+ release: z.ZodLiteral<"frozen">;
492
+ session: z.ZodLiteral<"unavailable">;
493
+ webExposure: z.ZodLiteral<"unavailable">;
494
+ nativeExposure: z.ZodLiteral<"unavailable">;
495
+ }, z.core.$strict>;
496
+ android: z.ZodObject<{
497
+ apiLevel: z.ZodNumber;
498
+ }, z.core.$strict>;
499
+ }, z.core.$strict>>;
500
+ inferredTermination: z.ZodOptional<z.ZodObject<{
501
+ version: z.ZodLiteral<1>;
502
+ evidenceId: z.ZodString;
503
+ processLaunchId: z.ZodString;
504
+ nativeExposure: z.ZodOptional<z.ZodObject<{
505
+ loadedBuildId: z.ZodNullable<z.ZodString>;
506
+ loadedBundleStatus: z.ZodEnum<{
507
+ unknown: "unknown";
508
+ known: "known";
509
+ not_applicable: "not_applicable";
510
+ }>;
511
+ exposureId: z.ZodString;
512
+ processLaunchId: z.ZodString;
513
+ startedAt: z.ZodISODateTime;
514
+ app: z.ZodObject<{
515
+ version: z.ZodString;
516
+ build: z.ZodNullable<z.ZodString>;
517
+ debug: z.ZodBoolean;
518
+ }, z.core.$strict>;
519
+ }, z.core.$strict>>;
520
+ kind: z.ZodLiteral<"process_exit">;
521
+ provenance: z.ZodEnum<{
522
+ apple_next_launch_inference: "apple_next_launch_inference";
523
+ }>;
524
+ scope: z.ZodLiteral<"os_process">;
525
+ outcome: z.ZodLiteral<"terminated">;
526
+ rules: z.ZodEnum<{
527
+ "apple-foreground-v1": "apple-foreground-v1";
528
+ }>;
529
+ cause: z.ZodEnum<{
530
+ low_memory: "low_memory";
531
+ unresponsive: "unresponsive";
532
+ unexplained: "unexplained";
533
+ }>;
534
+ lastSeenAt: z.ZodString;
535
+ collectedAt: z.ZodString;
536
+ attribution: z.ZodObject<{
537
+ process: z.ZodEnum<{
538
+ sdk_run_record: "sdk_run_record";
539
+ }>;
540
+ release: z.ZodLiteral<"frozen">;
541
+ session: z.ZodLiteral<"unavailable">;
542
+ webExposure: z.ZodLiteral<"unavailable">;
543
+ }, z.core.$strict>;
544
+ apple: z.ZodObject<{
545
+ appState: z.ZodEnum<{
546
+ active: "active";
547
+ inactive: "inactive";
548
+ launching: "launching";
549
+ }>;
550
+ footprintKb: z.ZodOptional<z.ZodNumber>;
551
+ availableKb: z.ZodOptional<z.ZodNumber>;
552
+ memorySampledAt: z.ZodOptional<z.ZodString>;
553
+ memoryWarnings: z.ZodNumber;
554
+ lastMemoryWarningAt: z.ZodOptional<z.ZodString>;
555
+ memoryPressure: z.ZodEnum<{
556
+ warning: "warning";
557
+ normal: "normal";
558
+ critical: "critical";
559
+ }>;
560
+ mainThreadStallMs: z.ZodOptional<z.ZodNumber>;
561
+ thermalState: z.ZodEnum<{
562
+ critical: "critical";
563
+ nominal: "nominal";
564
+ fair: "fair";
565
+ serious: "serious";
566
+ }>;
567
+ }, z.core.$strict>;
568
+ }, z.core.$strict>>;
289
569
  }, z.core.$loose>;
290
570
  context: z.ZodObject<{
291
571
  app: z.ZodObject<{
292
572
  name: z.ZodString;
293
573
  version: z.ZodString;
294
574
  build: z.ZodOptional<z.ZodString>;
575
+ debug: z.ZodOptional<z.ZodBoolean>;
295
576
  }, z.core.$loose>;
296
577
  device: z.ZodObject<{
297
578
  os: z.ZodString;
@@ -446,6 +727,17 @@ declare class EverframeNotMountedError extends Error {
446
727
  readonly name = "EverframeNotMountedError";
447
728
  constructor(message?: string);
448
729
  }
730
+ /**
731
+ * Rejected by `open()` when the host turned the reporter off
732
+ * (`reporter: { disabled: true }`, a crash-only session). The session keeps
733
+ * this for its whole life, including after a companion bond upgrades it:
734
+ * reports then come through the companion, not through `open()`. Same name
735
+ * as the web SDK's error of the same purpose.
736
+ */
737
+ declare class EverframeReporterDisabledError extends Error {
738
+ readonly name = "EverframeReporterDisabledError";
739
+ constructor(message?: string);
740
+ }
449
741
 
450
742
  declare const ErrorSeverity: z.ZodEnum<{
451
743
  error: "error";
@@ -501,19 +793,19 @@ declare const EXTRA_MAX_CHARS = 16384;
501
793
 
502
794
  /** Shape exposed via `useEverframe()` and the top-level `open` re-export. */
503
795
  interface EverframeContextValue {
504
- /** Cached native delivery observations, independent of JS admission; optional for older context implementations. */
505
- getReportDeliveryStatus?(): ReportDeliveryStatus;
506
- /** Local admission only; optional for older context implementations. */
507
- getErrorCaptureStatus?(): ErrorCaptureStatus;
508
- /** Optional for compatibility with existing context implementations. */
509
- getPromiseRejectionStatus?(): PromiseRejectionStatus;
796
+ /** Cached native delivery observations, independent of JS admission. */
797
+ getReportDeliveryStatus(): ReportDeliveryStatus;
798
+ /** Local admission only. */
799
+ getErrorCaptureStatus(): ErrorCaptureStatus;
800
+ getPromiseRejectionStatus(): PromiseRejectionStatus;
510
801
  /** Capture a handled exception without opening the reporter. No-op outside the owning mount. */
511
802
  captureException(error: unknown, options?: CaptureExceptionOptions): void;
512
803
  /**
513
804
  * Open the native reporter modal. Resolves with the user-facing outcome
514
805
  * (`submitted` / `queued` / `cancelled`). Replaces the pre-0.3 nested
515
806
  * `report.open()` — the `.report` namespace held only `.open` so flattening
516
- * matches sdk-react.
807
+ * matches sdk-react. Rejects with `EverframeReporterDisabledError` when the
808
+ * config sets `reporter: { disabled: true }`.
517
809
  */
518
810
  open(): Promise<ReporterResult>;
519
811
  sensitive: {
@@ -659,19 +951,38 @@ declare function getReportDeliveryStatus(): ReportDeliveryStatus;
659
951
  * review instruction, left as pre-existing behavior rather than folded in
660
952
  * here.
661
953
  */
662
- interface RuntimeConfig extends Omit<ConfigOpts, "sdkVersion" | "installIdentifierDisabled" | "companionBadgeEnabled" | "companionBadgePosition" | "shakeToReportEnabled" | "themeBackground" | "themeSurface" | "themeBorder" | "themeText" | "themeTextMuted" | "themeAccent" | "themeAccentForeground" | "themeDestructive" | "vitalsEnabled" | "vitalsSampleRate" | "vitalsCaptureSourceQuery"> {
954
+ interface RuntimeConfig extends Omit<ConfigOpts, "sdkVersion" | "installIdentifierDisabled" | "crashReportingDisabled" | "companionBadgeEnabled" | "companionBadgePosition" | "shakeToReportEnabled" | "reporterDisabled" | "themeBackground" | "themeSurface" | "themeBorder" | "themeText" | "themeTextMuted" | "themeAccent" | "themeAccentForeground" | "themeDestructive" | "vitalsEnabled" | "vitalsSampleRate" | "vitalsCaptureSourceQuery" | "releaseHealthEnabled" | "releaseHealthLoadedBuildId" | "releaseHealthUserId" | "releaseHealthIncludeDebugBuilds"> {
663
955
  /**
664
956
  * Per-app SDK key (publishable, not secret). Required on the host-facing
665
- * config — narrows the bridge `ConfigOpts.apiKey?` to required so a missing
957
+ * config — narrows the bridge `ConfigOpts.sdkKey?` to required so a missing
666
958
  * key is a compile-time error, matching the React SDK. The bridge type stays
667
959
  * optional (extractBridgeConfig builds `{}`); only this host surface requires it.
668
960
  */
669
- apiKey: string;
961
+ sdkKey: string;
670
962
  appName?: string;
671
- appVersion?: string;
672
- appBuild?: string;
673
963
  /** Exact loaded Hermes bundle identity, independent of the native app build. */
674
964
  jsBundle?: JsBundleConfig;
965
+ /**
966
+ * Whether this is a debug build. Everframe never makes a release out of a debug build, and release
967
+ * health skips it. Defaults to React Native's `__DEV__`; set it only to override that.
968
+ */
969
+ debugBuild?: boolean;
970
+ /**
971
+ * Native foreground-session monitoring (release health). On by default:
972
+ * leave this out, or leave `enabled` out, and it is on; `enabled: false`
973
+ * turns it off and erases undelivered records on the device. The native SDK
974
+ * reads the app version and build; the loaded build comes from validated
975
+ * Hermes jsBundle metadata, and without that identity release health stays
976
+ * off. userId is an optional opaque identifier supplied for this purpose;
977
+ * null or omitted means anonymous, and setUser never supplies it implicitly.
978
+ * The native SDKs skip debug builds; `includeDebugBuilds: true` counts them,
979
+ * for checking an integration.
980
+ */
981
+ releaseHealth?: {
982
+ enabled?: boolean;
983
+ userId?: string | null;
984
+ includeDebugBuilds?: boolean;
985
+ };
675
986
  /**
676
987
  * Opt-in JS-side capture integrations (spec 2026-07-14 RN-iOS parity).
677
988
  * Import from '@everframe/react-native/integrations/*'; nothing
@@ -680,10 +991,12 @@ interface RuntimeConfig extends Omit<ConfigOpts, "sdkVersion" | "installIdentifi
680
991
  integrations?: EverframeIntegration[];
681
992
  /**
682
993
  * Crash/error reporting (spec 2026-07-18). Installs a default-on global
683
- * ErrorUtils handler on mount — deliberately NOT gated behind
994
+ * ErrorUtils handler on mount, plus a hook on React Native's
995
+ * ExceptionsManager for errors no React error boundary catches (React 19
996
+ * reports those through the root, not ErrorUtils) — deliberately NOT gated behind
684
997
  * `integrations` (deviation from the RN integrations doctrine, recorded in
685
998
  * the spec): crash capture is a safety net, not an opt-in enrichment. Set
686
- * `disabled: true` to veto it entirely.
999
+ * `disabled: true` to veto it entirely, including native crash and ANR capture.
687
1000
  */
688
1001
  crashReporting?: {
689
1002
  disabled?: boolean;
@@ -756,6 +1069,21 @@ interface RuntimeConfig extends Omit<ConfigOpts, "sdkVersion" | "installIdentifi
756
1069
  shakeToReport?: {
757
1070
  enabled?: boolean;
758
1071
  };
1072
+ /**
1073
+ * Crash-only session switch (spec 2026-10-12). CLIENT VETO only.
1074
+ * `disabled: true` turns off every on-device way to open the reporter
1075
+ * (shake, `open()`, which then rejects with
1076
+ * `EverframeReporterDisabledError`), keeps network bodies off and samples
1077
+ * session replay with the server's crash-only rate (default 0) instead of
1078
+ * the normal one. A companion bond upgrades the session: replay and bodies
1079
+ * then follow the normal server rules for the rest of the session, and
1080
+ * reports come through the companion. Crash and error capture are
1081
+ * unaffected. Flattened onto `ConfigOpts.reporterDisabled` by
1082
+ * `extractBridgeConfig`.
1083
+ */
1084
+ reporter?: {
1085
+ disabled?: boolean;
1086
+ };
759
1087
  /**
760
1088
  * Inline reporter theme (reporter branding spec 2026-08-25, RN slice) —
761
1089
  * 8 optional `#rrggbb` role strings for the NATIVE report dialogs the RN
@@ -795,9 +1123,11 @@ interface RuntimeConfig extends Omit<ConfigOpts, "sdkVersion" | "installIdentifi
795
1123
  captureSourceQuery?: boolean;
796
1124
  };
797
1125
  }
1126
+ /** The provider config as a host passes it. */
1127
+ type EverframeProviderConfig = RuntimeConfig;
798
1128
 
799
1129
  interface EverframeProviderProps {
800
- config: RuntimeConfig;
1130
+ config: EverframeProviderConfig;
801
1131
  children: React.ReactNode;
802
1132
  }
803
1133
  declare function EverframeProvider(props: EverframeProviderProps): React.ReactElement;
@@ -1063,4 +1393,4 @@ declare namespace companion {
1063
1393
  export { type companion_CompanionAttachChallenge as CompanionAttachChallenge, type companion_CompanionState as CompanionState, companion_getEmitter as getEmitter, companion_onAttachChallenge as onAttachChallenge, companion_onAttachedUserName as onAttachedUserName, companion_onCode as onCode, companion_onPairUrl as onPairUrl, companion_onResolvedName as onResolvedName, companion_onRunning as onRunning, companion_onState as onState, companion_start as start, companion_stop as stop, companion_useCompanion as useCompanion };
1064
1394
  }
1065
1395
 
1066
- export { AttachmentRef, type CaptureExceptionOptions, type CompanionState, ConfigOpts, type DeviceMetadata, EXTRA_MAX_CHARS, ErrorCaptureStatus, type EverframeContextValue, EverframeIntegration, EverframeNotMountedError, EverframeProvider, type EverframeProviderProps, EverframeScreen, type EverframeScreenProps, EverframeSensitive, EverframeUserSpec, type HostPlayerEventType, type PlayerHandle, type PlayerStats, PromiseRejectionStatus, ReportDeliveryStatus, type ReportDraft, ReportEnvelope, type ReporterResult, EverframeSensitive as Sensitive, type TrackPlayerOptions, UINode, UITree, VitalsPlayerEventType, addBreadcrumb, captureException, companion, getErrorCaptureStatus, getPromiseRejectionStatus, getReportDeliveryStatus, open, recordScreen, setExtra, setUser, trackPlayer, trackVitals, useCompanion, useEverframe, useEverframeScreen, useEverframeSensitiveRef, useTrackPlayer };
1396
+ export { AttachmentRef, type CaptureExceptionOptions, type CompanionState, ConfigOpts, type DeviceMetadata, EXTRA_MAX_CHARS, ErrorCaptureStatus, type EverframeContextValue, EverframeIntegration, EverframeNotMountedError, EverframeProvider, type EverframeProviderProps, EverframeReporterDisabledError, EverframeScreen, type EverframeScreenProps, EverframeSensitive, EverframeUserSpec, type HostPlayerEventType, type PlayerHandle, type PlayerStats, PromiseRejectionStatus, ReportDeliveryStatus, type ReportDraft, ReportEnvelope, type ReporterResult, EverframeSensitive as Sensitive, type TrackPlayerOptions, UINode, UITree, VitalsPlayerEventType, addBreadcrumb, captureException, companion, getErrorCaptureStatus, getPromiseRejectionStatus, getReportDeliveryStatus, open, recordScreen, setExtra, setUser, trackPlayer, trackVitals, useCompanion, useEverframe, useEverframeScreen, useEverframeSensitiveRef, useTrackPlayer };