@spatius/avatarkit 1.3.1-beta.5 → 1.3.1-beta.6

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 CHANGED
@@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.3.1-beta.6] - 2026-08-01
9
+
10
+ ### Changed
11
+ - Internal telemetry changes only; no changes to the public API or runtime behavior.
12
+
8
13
  ## [1.3.1-beta.5] - 2026-07-31
9
14
 
10
15
  ### Changed
@@ -1,8 +1,8 @@
1
1
  import { n as __exportAll } from "./rolldown-runtime-B-1-B7_t.js";
2
- import { t as AvatarSDK } from "./AvatarSDK-BRDgRJ_Z.js";
3
- import { Et as ErrorCode, c as logEvent, gt as generateTraceId, l as logMetric, t as logger, vt as AvatarError, y as recordHttpClientDuration } from "./logger-C61wOfFi.js";
4
- import { n as APP_CONFIG, r as getFlameCdnBase, t as errorToMessage } from "./error-utils-Ct04L0Ek.js";
5
- import { t as PwaCacheManager } from "./pwa-cache-manager-0wrNgZ7C.js";
2
+ import { t as AvatarSDK } from "./AvatarSDK-CnZqa_X4.js";
3
+ import { Et as ErrorCode, c as logEvent, gt as generateTraceId, l as logMetric, t as logger, vt as AvatarError, y as recordHttpClientDuration } from "./logger-fAU8oahT.js";
4
+ import { n as APP_CONFIG, r as getFlameCdnBase, t as errorToMessage } from "./error-utils-CqKOrHrY.js";
5
+ import { t as PwaCacheManager } from "./pwa-cache-manager-CwXaM3xR.js";
6
6
  //#region core/AvatarDownloader.ts
7
7
  var AvatarDownloader_exports = /* @__PURE__ */ __exportAll({ AvatarDownloader: () => AvatarDownloader });
8
8
  /**
@@ -1,5 +1,5 @@
1
1
  import { n as __exportAll } from "./rolldown-runtime-B-1-B7_t.js";
2
- import { $ as TraceFlags, A as ExportResultCode, B as ATTR_EXCEPTION_TYPE, C as createInstrumentationScope, D as defaultResource, E as OTLPExporterBase, F as isTimeInputHrTime, G as isTracingSuppressed, H as getNumberFromEnv, I as millisToHrTime, J as diag$1, K as suppressTracing, L as otperformance, M as hrTime, N as hrTimeDuration, O as resourceFromAttributes, P as isTimeInput, Q as INVALID_SPAN_CONTEXT, R as ATTR_EXCEPTION_MESSAGE, S as JSON_ENCODER, T as toAttributes, Tt as DrivingServiceMode, U as getStringFromEnv, V as ATTR_SERVICE_NAME, W as globalErrorHandler, X as isSpanContextValid, Y as context, Z as isValidTraceId, _ as cleanupOtelMetrics, a as clientContextFields, at as getGlobal, c as logEvent, ct as OTEL_LOGS_ENDPOINT, d as cleanupOtel, dt as OTEL_TRACES_ENDPOINT, et as ContextAPI, f as initializeOtel, ft as OTEL_TRACES_STREAM_NAME, g as fetchBootstrap, h as clockSync, ht as idManager, i as cleanupPostHog, it as DiagAPI, j as addHrTimes, k as BindOnceFuture, kt as LogLevel, lt as OTEL_PASSWORD, n as setLogLevel, nt as ROOT_CONTEXT, o as getLogsFeatureFlag, ot as registerGlobal, pt as OTEL_USERNAME, q as trace, r as logSink, rt as createContextKey, s as initializePostHog, st as unregisterGlobal, t as logger, tt as createNoopMeter, u as updatePostHogPersonPropertiesForFlags, ut as OTEL_STREAM_NAME, v as initializeOtelMetrics, w as createResource, x as createLegacyOtlpBrowserExportDelegate, z as ATTR_EXCEPTION_STACKTRACE } from "./logger-C61wOfFi.js";
2
+ import { $ as TraceFlags, A as ExportResultCode, B as ATTR_EXCEPTION_TYPE, C as createInstrumentationScope, D as defaultResource, E as OTLPExporterBase, F as isTimeInputHrTime, G as isTracingSuppressed, H as getNumberFromEnv, I as millisToHrTime, J as diag$1, K as suppressTracing, L as otperformance, M as hrTime, N as hrTimeDuration, O as resourceFromAttributes, P as isTimeInput, Q as INVALID_SPAN_CONTEXT, R as ATTR_EXCEPTION_MESSAGE, S as JSON_ENCODER, T as toAttributes, Tt as DrivingServiceMode, U as getStringFromEnv, V as ATTR_SERVICE_NAME, W as globalErrorHandler, X as isSpanContextValid, Y as context, Z as isValidTraceId, _ as cleanupOtelMetrics, a as clientContextFields, at as getGlobal, c as logEvent, ct as OTEL_LOGS_ENDPOINT, d as cleanupOtel, dt as OTEL_TRACES_ENDPOINT, et as ContextAPI, f as initializeOtel, ft as OTEL_TRACES_STREAM_NAME, g as fetchBootstrap, h as clockSync, ht as idManager, i as cleanupPostHog, it as DiagAPI, j as addHrTimes, k as BindOnceFuture, kt as LogLevel, lt as OTEL_PASSWORD, n as setLogLevel, nt as ROOT_CONTEXT, o as getLogsFeatureFlag, ot as registerGlobal, pt as OTEL_USERNAME, q as trace, r as logSink, rt as createContextKey, s as initializePostHog, st as unregisterGlobal, t as logger, tt as createNoopMeter, u as updatePostHogPersonPropertiesForFlags, ut as OTEL_STREAM_NAME, v as initializeOtelMetrics, w as createResource, x as createLegacyOtlpBrowserExportDelegate, z as ATTR_EXCEPTION_STACKTRACE } from "./logger-fAU8oahT.js";
3
3
  //#region node_modules/.pnpm/@bufbuild+protobuf@2.10.1/node_modules/@bufbuild/protobuf/dist/esm/wire/varint.js
4
4
  /**
5
5
  * Read a 64 bit varint as two JS numbers.
@@ -6321,7 +6321,7 @@ var AvatarSDK = class {
6321
6321
  static _initializationState = "uninitialized";
6322
6322
  static _initializingPromise = null;
6323
6323
  static _configuration = null;
6324
- static _version = "1.3.1-beta.5";
6324
+ static _version = "1.3.1-beta.6";
6325
6325
  static _avatarCore = null;
6326
6326
  static _cachedDeviceScore = null;
6327
6327
  static _rendererBackend = null;
@@ -6487,7 +6487,7 @@ var AvatarSDK = class {
6487
6487
  logger.log("[AvatarSDK] Loading template resources...");
6488
6488
  logEvent("template_init_start", "info", { stage: "sdk_init" });
6489
6489
  try {
6490
- const { AvatarDownloader } = await import("./AvatarDownloader-DqxFbPSb.js").then((n) => n.n);
6490
+ const { AvatarDownloader } = await import("./AvatarDownloader-Dfi7wtgQ.js").then((n) => n.n);
6491
6491
  const templateResources = await new AvatarDownloader().loadUnifiedTemplate();
6492
6492
  if (await this._avatarCore.loadTemplateResourcesFromBuffers(templateResources)) logger.log("[AvatarSDK] Template resources initialized successfully");
6493
6493
  else logger.log("[AvatarSDK] Template resources already initialized, skipping...");
@@ -1,5 +1,5 @@
1
1
  import { n as __exportAll, r as __toESM, t as __commonJSMin } from "./rolldown-runtime-B-1-B7_t.js";
2
- import { t as logger } from "./logger-C61wOfFi.js";
2
+ import { t as logger } from "./logger-fAU8oahT.js";
3
3
  /** Opus granule positions are always in 48 kHz samples, regardless of input rate. */
4
4
  var OPUS_GRANULE_RATE = 48e3;
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { t as logger } from "./logger-C61wOfFi.js";
1
+ import { t as logger } from "./logger-fAU8oahT.js";
2
2
  //#region audio/OpusDecoderProxy.ts
3
3
  var OpusDecoderProxy = class OpusDecoderProxy {
4
4
  worker = null;
@@ -21,7 +21,7 @@ var OpusDecoderProxy = class OpusDecoderProxy {
21
21
  } catch (err) {
22
22
  logger.warn("[Opus][DecoderProxy] Worker unavailable, falling back to main-thread decode:", err instanceof Error ? err.message : String(err));
23
23
  }
24
- const { OggOpusDecoder } = await import("./OpusCodec-Bo1tty8H.js").then((n) => n.n);
24
+ const { OggOpusDecoder } = await import("./OpusCodec-D9DcUV65.js").then((n) => n.n);
25
25
  proxy.fallbackDecoder = new OggOpusDecoder();
26
26
  proxy.backend = "main-thread";
27
27
  return proxy;
@@ -32,7 +32,7 @@ var OpusDecoderProxy = class OpusDecoderProxy {
32
32
  try {
33
33
  worker = new Worker(new URL(
34
34
  /* @vite-ignore */
35
- "/assets/OpusDecoderWorker.worker-DkBuCaO8.js",
35
+ "/assets/OpusDecoderWorker.worker-B7R93nev.js",
36
36
  "" + import.meta.url
37
37
  ), { type: "module" });
38
38
  } catch (err) {
@@ -1,4 +1,4 @@
1
- import { t as logger } from "./logger-C61wOfFi.js";
1
+ import { t as logger } from "./logger-fAU8oahT.js";
2
2
  //#region audio/OpusEncoderProxy.ts
3
3
  var OpusEncoderProxy = class OpusEncoderProxy {
4
4
  worker = null;
@@ -26,7 +26,7 @@ var OpusEncoderProxy = class OpusEncoderProxy {
26
26
  } catch (err) {
27
27
  logger.warn("[Opus][Proxy] Worker unavailable, falling back to main-thread encode:", err instanceof Error ? err.message : String(err));
28
28
  }
29
- const { OggOpusEncoder } = await import("./OpusCodec-Bo1tty8H.js").then((n) => n.n);
29
+ const { OggOpusEncoder } = await import("./OpusCodec-D9DcUV65.js").then((n) => n.n);
30
30
  proxy.fallbackEncoder = new OggOpusEncoder(sampleRate, bitrate);
31
31
  proxy.backend = "main-thread";
32
32
  return proxy;
@@ -37,7 +37,7 @@ var OpusEncoderProxy = class OpusEncoderProxy {
37
37
  try {
38
38
  worker = new Worker(new URL(
39
39
  /* @vite-ignore */
40
- "/assets/OpusEncoderWorker.worker-ZqEypyPc.js",
40
+ "/assets/OpusEncoderWorker.worker-BYWIV5xu.js",
41
41
  "" + import.meta.url
42
42
  ), { type: "module" });
43
43
  } catch (err) {
@@ -1,5 +1,5 @@
1
- import { c as logEvent, t as logger } from "./logger-C61wOfFi.js";
2
- import { n as APP_CONFIG, t as errorToMessage } from "./error-utils-Ct04L0Ek.js";
1
+ import { c as logEvent, t as logger } from "./logger-fAU8oahT.js";
2
+ import { n as APP_CONFIG, t as errorToMessage } from "./error-utils-CqKOrHrY.js";
3
3
  //#region audio/StreamingAudioPlayer.ts
4
4
  /**
5
5
  * Streaming Audio Player
@@ -1,5 +1,5 @@
1
- import { _ as recordHttpClientDuration, c as logEvent, dt as isDebugMode, l as logMetric, mt as AvatarError, pt as generateTraceId, t as logger, vt as ErrorCode } from "./logger-Dxe0Iw4R.js";
2
- import { t as AvatarSDK } from "./AvatarSDK-dtQsJHmr.js";
1
+ import { _ as recordHttpClientDuration, c as logEvent, dt as isDebugMode, l as logMetric, mt as AvatarError, pt as generateTraceId, t as logger, vt as ErrorCode } from "./logger-D8rDVim7.js";
2
+ import { t as AvatarSDK } from "./AvatarSDK-DR8dNylh.js";
3
3
  //#region config/app-config.ts
4
4
  const GLOBAL_FLAME_CDN_BASE = "https://cdn.spatialwalk.cloud/public";
5
5
  const CN_FLAME_CDN_BASE = "https://cdn.spatialwalk.top/public";
@@ -1,5 +1,5 @@
1
1
  import { n as __exportAll } from "./rolldown-runtime-B-1-B7_t.js";
2
- import { $ as ROOT_CONTEXT, A as hrTimeDuration, B as getStringFromEnv, C as OTLPExporterBase, D as ExportResultCode, E as BindOnceFuture, F as ATTR_EXCEPTION_MESSAGE, G as diag$1, H as isTracingSuppressed, I as ATTR_EXCEPTION_STACKTRACE, J as isValidTraceId, K as context, L as ATTR_EXCEPTION_TYPE, M as isTimeInputHrTime, N as millisToHrTime, O as addHrTimes, P as otperformance, Q as createNoopMeter, R as ATTR_SERVICE_NAME, S as toAttributes, T as resourceFromAttributes, U as suppressTracing, V as globalErrorHandler, W as trace, X as TraceFlags, Y as INVALID_SPAN_CONTEXT, Z as ContextAPI, _t as DrivingServiceMode, a as clientContextFields, at as OTEL_LOGS_ENDPOINT, b as createInstrumentationScope, c as logEvent, ct as OTEL_TRACES_ENDPOINT, d as cleanupOtel, et as createContextKey, f as initializeOtel, ft as idManager, g as initializeOtelMetrics, h as cleanupOtelMetrics, i as cleanupPostHog, it as unregisterGlobal, j as isTimeInput, k as hrTime, lt as OTEL_TRACES_STREAM_NAME, m as fetchBootstrap, n as setLogLevel, nt as getGlobal, o as getLogsFeatureFlag, ot as OTEL_PASSWORD, p as clockSync, q as isSpanContextValid, r as logSink, rt as registerGlobal, s as initializePostHog, st as OTEL_STREAM_NAME, t as logger, tt as DiagAPI, u as updatePostHogPersonPropertiesForFlags, ut as OTEL_USERNAME, v as createLegacyOtlpBrowserExportDelegate, w as defaultResource, x as createResource, y as JSON_ENCODER, yt as LogLevel, z as getNumberFromEnv } from "./logger-Dxe0Iw4R.js";
2
+ import { $ as ROOT_CONTEXT, A as hrTimeDuration, B as getStringFromEnv, C as OTLPExporterBase, D as ExportResultCode, E as BindOnceFuture, F as ATTR_EXCEPTION_MESSAGE, G as diag$1, H as isTracingSuppressed, I as ATTR_EXCEPTION_STACKTRACE, J as isValidTraceId, K as context, L as ATTR_EXCEPTION_TYPE, M as isTimeInputHrTime, N as millisToHrTime, O as addHrTimes, P as otperformance, Q as createNoopMeter, R as ATTR_SERVICE_NAME, S as toAttributes, T as resourceFromAttributes, U as suppressTracing, V as globalErrorHandler, W as trace, X as TraceFlags, Y as INVALID_SPAN_CONTEXT, Z as ContextAPI, _t as DrivingServiceMode, a as clientContextFields, at as OTEL_LOGS_ENDPOINT, b as createInstrumentationScope, c as logEvent, ct as OTEL_TRACES_ENDPOINT, d as cleanupOtel, et as createContextKey, f as initializeOtel, ft as idManager, g as initializeOtelMetrics, h as cleanupOtelMetrics, i as cleanupPostHog, it as unregisterGlobal, j as isTimeInput, k as hrTime, lt as OTEL_TRACES_STREAM_NAME, m as fetchBootstrap, n as setLogLevel, nt as getGlobal, o as getLogsFeatureFlag, ot as OTEL_PASSWORD, p as clockSync, q as isSpanContextValid, r as logSink, rt as registerGlobal, s as initializePostHog, st as OTEL_STREAM_NAME, t as logger, tt as DiagAPI, u as updatePostHogPersonPropertiesForFlags, ut as OTEL_USERNAME, v as createLegacyOtlpBrowserExportDelegate, w as defaultResource, x as createResource, y as JSON_ENCODER, yt as LogLevel, z as getNumberFromEnv } from "./logger-D8rDVim7.js";
3
3
  //#region node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.js
4
4
  var BaggageImpl = class BaggageImpl {
5
5
  constructor(entries) {
@@ -6109,7 +6109,7 @@ var AvatarSDK = class {
6109
6109
  static _initializationState = "uninitialized";
6110
6110
  static _initializingPromise = null;
6111
6111
  static _configuration = null;
6112
- static _version = "1.3.1-beta.5";
6112
+ static _version = "1.3.1-beta.6";
6113
6113
  static _avatarCore = null;
6114
6114
  static _cachedDeviceScore = null;
6115
6115
  static _rendererBackend = null;
@@ -6275,7 +6275,7 @@ var AvatarSDK = class {
6275
6275
  logger.log("[AvatarSDK] Loading template resources...");
6276
6276
  logEvent("template_init_start", "info", { stage: "sdk_init" });
6277
6277
  try {
6278
- const { AvatarDownloader } = await import("./AvatarDownloader-C85m5uos.js");
6278
+ const { AvatarDownloader } = await import("./AvatarDownloader-D5GePpJ2.js");
6279
6279
  const templateResources = await new AvatarDownloader().loadUnifiedTemplate();
6280
6280
  if (await this._avatarCore.loadTemplateResourcesFromBuffers(templateResources)) logger.log("[AvatarSDK] Template resources initialized successfully");
6281
6281
  else logger.log("[AvatarSDK] Template resources already initialized, skipping...");
@@ -1,5 +1,5 @@
1
1
  import { r as __toESM, t as __commonJSMin } from "./rolldown-runtime-B-1-B7_t.js";
2
- import { t as logger } from "./logger-Dxe0Iw4R.js";
2
+ import { t as logger } from "./logger-D8rDVim7.js";
3
3
  //#region __vite-browser-external
4
4
  var require___vite_browser_external = /* @__PURE__ */ __commonJSMin(((exports, module) => {
5
5
  module.exports = {};
@@ -1,5 +1,5 @@
1
1
  import { r as __toESM, t as __commonJSMin } from "./rolldown-runtime-B-1-B7_t.js";
2
- import { t as logger } from "./logger-Dxe0Iw4R.js";
2
+ import { t as logger } from "./logger-D8rDVim7.js";
3
3
  //#region __vite-browser-external
4
4
  var require___vite_browser_external = /* @__PURE__ */ __commonJSMin(((exports, module) => {
5
5
  module.exports = {};
@@ -13622,8 +13622,9 @@ const RTC_LOST_FRAME_BUCKETS = [
13622
13622
  256
13623
13623
  ];
13624
13624
  /**
13625
- * 一轮里卡顿发生的次数。数的是次数不是帧,上面那套按帧间隔换算的档位对它没有意义;
13626
- * 一轮内卡上几十次已属异常,量级到此为止。
13625
+ * 一轮里卡顿发生的次数。数的是次数不是帧,上面那套按帧间隔换算的档位对它没有意义。
13626
+ * 低位逐个分档、高位翻倍:一轮几次和一轮几十次是两种情况,都要看得出来。
13627
+ * 实测慢网络下一轮 35 次,因此高位必须留到三位数。
13627
13628
  */
13628
13629
  const RTC_STALL_COUNT_BUCKETS = [
13629
13630
  0,
@@ -13632,10 +13633,12 @@ const RTC_STALL_COUNT_BUCKETS = [
13632
13633
  3,
13633
13634
  4,
13634
13635
  5,
13635
- 8,
13636
- 12,
13636
+ 10,
13637
13637
  20,
13638
- 40
13638
+ 40,
13639
+ 80,
13640
+ 160,
13641
+ 320
13639
13642
  ];
13640
13643
  const RTC_PERCENT_BUCKETS = [
13641
13644
  0,
@@ -13691,16 +13694,19 @@ const RTC_STALL_DURATION_BUCKETS_MS = [
13691
13694
  const RTC_BUCKET_PROFILES = [
13692
13695
  ["rtc_playback_avg_fps", RTC_FPS_BUCKETS],
13693
13696
  ["rtc_playback_frame_count", RTC_FRAME_COUNT_BUCKETS],
13694
- ["rtc_playback_frames_lost", RTC_LOST_FRAME_BUCKETS],
13695
13697
  ["rtc_playback_skipped_frames", RTC_LOST_FRAME_BUCKETS],
13696
13698
  ["rtc_playback_tail_discarded", RTC_LOST_FRAME_BUCKETS],
13697
13699
  ["rtc_playback_stall_count", RTC_STALL_COUNT_BUCKETS],
13698
13700
  ["rtc_playback_start_transition_missing", RTC_LOST_FRAME_BUCKETS],
13699
13701
  ["rtc_playback_end_transition_missing", RTC_LOST_FRAME_BUCKETS],
13700
- ["rtc_playback_loss_rate_pct", RTC_PERCENT_BUCKETS],
13702
+ ["rtc_playback_skip_rate_pct", RTC_PERCENT_BUCKETS],
13701
13703
  ["rtc_playback_duration_ms", RTC_PLAYBACK_DURATION_BUCKETS_MS],
13702
13704
  ["rtc_playback_stall_total_ms", RTC_STALL_DURATION_BUCKETS_MS],
13703
- ["rtc_playback_stall_max_ms", RTC_STALL_DURATION_BUCKETS_MS]
13705
+ ["rtc_playback_stall_max_ms", RTC_STALL_DURATION_BUCKETS_MS],
13706
+ ["rtc_transport_packets_lost", RTC_LOST_FRAME_BUCKETS],
13707
+ ["rtc_transport_packets_recovered", RTC_LOST_FRAME_BUCKETS],
13708
+ ["rtc_transport_packets_dropped", RTC_LOST_FRAME_BUCKETS],
13709
+ ["rtc_transport_packets_out_of_order", RTC_LOST_FRAME_BUCKETS]
13704
13710
  ];
13705
13711
  const METRIC_EXPORT_INTERVAL_MS = 1e4;
13706
13712
  let sdkVersion$2 = "1.0.0";
@@ -15109,7 +15115,7 @@ async function writeToLocalLog(message, level, extra = {}) {
15109
15115
  try {
15110
15116
  const { shouldPersist, sanitized } = sanitizeForLocalLog(message);
15111
15117
  if (!shouldPersist) return;
15112
- const { AvatarSDK } = await import("./AvatarSDK-dtQsJHmr.js").then((n) => n.n);
15118
+ const { AvatarSDK } = await import("./AvatarSDK-DR8dNylh.js").then((n) => n.n);
15113
15119
  const version = AvatarSDK.version;
15114
15120
  const appId = idManager.getAppId();
15115
15121
  const userId = idManager.getUserId();
@@ -1,4 +1,4 @@
1
- import { mt as isDebugMode } from "./logger-C61wOfFi.js";
1
+ import { mt as isDebugMode } from "./logger-fAU8oahT.js";
2
2
  //#region config/app-config.ts
3
3
  var GLOBAL_FLAME_CDN_BASE = "https://cdn.spatialwalk.cloud/public";
4
4
  var CN_FLAME_CDN_BASE = "https://cdn.spatialwalk.top/public";
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
- import { a as avatarViewRegistry, c as Message, d as BinaryReader, f as BinaryWriter, i as buildTraceparent, l as MessageType, o as AudioFormat, r as startPlaybackTrace, s as EgressType, t as AvatarSDK, u as TransportCompression } from "./AvatarSDK-BRDgRJ_Z.js";
2
- import { At as RENDER_QUALITY_PARAMS, Ct as DEFAULT_REGION, Dt as FrameStarvationMode, Et as ErrorCode, Mt as TransitionType, Ot as LoadProgress, St as DEFAULT_OPUS_BITRATE, Tt as DrivingServiceMode, _t as AnimationType, b as recordMetric, bt as ConnectionState, c as logEvent, h as clockSync, ht as idManager, jt as RenderQuality, kt as LogLevel, l as logMetric, m as resolveMarks, p as monoTimestamp, t as logger, vt as AvatarError, wt as DEFAULT_REGION_REQUEST, xt as ConversationState, yt as AvatarState } from "./logger-C61wOfFi.js";
3
- import { n as APP_CONFIG } from "./error-utils-Ct04L0Ek.js";
4
- import { r as OggMuxer, t as OggPageSplitter } from "./OpusCodec-Bo1tty8H.js";
5
- import { t as AvatarDownloader } from "./AvatarDownloader-DqxFbPSb.js";
1
+ import { a as avatarViewRegistry, c as Message, d as BinaryReader, f as BinaryWriter, i as buildTraceparent, l as MessageType, o as AudioFormat, r as startPlaybackTrace, s as EgressType, t as AvatarSDK, u as TransportCompression } from "./AvatarSDK-CnZqa_X4.js";
2
+ import { At as RENDER_QUALITY_PARAMS, Ct as DEFAULT_REGION, Dt as FrameStarvationMode, Et as ErrorCode, Mt as TransitionType, Ot as LoadProgress, St as DEFAULT_OPUS_BITRATE, Tt as DrivingServiceMode, _t as AnimationType, b as recordMetric, bt as ConnectionState, c as logEvent, h as clockSync, ht as idManager, jt as RenderQuality, kt as LogLevel, l as logMetric, m as resolveMarks, p as monoTimestamp, t as logger, vt as AvatarError, wt as DEFAULT_REGION_REQUEST, xt as ConversationState, yt as AvatarState } from "./logger-fAU8oahT.js";
3
+ import { n as APP_CONFIG } from "./error-utils-CqKOrHrY.js";
4
+ import { r as OggMuxer, t as OggPageSplitter } from "./OpusCodec-D9DcUV65.js";
5
+ import { t as AvatarDownloader } from "./AvatarDownloader-Dfi7wtgQ.js";
6
6
  //#region core/Avatar.ts
7
7
  var Avatar = class {
8
8
  id;
@@ -309,8 +309,8 @@ var AnimationPlayer = class AnimationPlayer {
309
309
  */
310
310
  async createAndInitializeStreamingPlayer() {
311
311
  if (this.streamingPlayer) return;
312
- const { StreamingAudioPlayer } = await import("./StreamingAudioPlayer-BRmZO9aV.js");
313
- const { AvatarSDK } = await import("./AvatarSDK-BRDgRJ_Z.js").then((n) => n.n);
312
+ const { StreamingAudioPlayer } = await import("./StreamingAudioPlayer-D4q7c1U0.js");
313
+ const { AvatarSDK } = await import("./AvatarSDK-CnZqa_X4.js").then((n) => n.n);
314
314
  const audioFormat = AvatarSDK.getAudioFormat();
315
315
  this.streamingPlayer = new StreamingAudioPlayer({
316
316
  sampleRate: audioFormat.sampleRate,
@@ -1281,7 +1281,7 @@ var AnimationWebSocketClient = class extends EventEmitter {
1281
1281
  return;
1282
1282
  }
1283
1283
  try {
1284
- const { OpusEncoderProxy } = await import("./OpusEncoderProxy-DyX-nL6Q.js");
1284
+ const { OpusEncoderProxy } = await import("./OpusEncoderProxy-9YIZ7nIt.js");
1285
1285
  const bitrate = opusBitrate ?? 48e3;
1286
1286
  this.opusEncoder = await OpusEncoderProxy.create(sampleRate, bitrate);
1287
1287
  this.uplinkIsOpus = true;
@@ -2628,7 +2628,7 @@ var AvatarController = class {
2628
2628
  const { inputAudioFormat } = AvatarSDK.getAudioFormat();
2629
2629
  if (inputAudioFormat !== "opus" || this.inputOpusDecoderProxy) return;
2630
2630
  try {
2631
- const { OpusDecoderProxy } = await import("./OpusDecoderProxy-9hC5C8o1.js");
2631
+ const { OpusDecoderProxy } = await import("./OpusDecoderProxy-Ar_dFXRB.js");
2632
2632
  this.inputOpusDecoderProxy = await OpusDecoderProxy.create();
2633
2633
  this.inputDecodeChain = Promise.resolve();
2634
2634
  } catch (error) {
@@ -3841,7 +3841,7 @@ var AvatarManager = class AvatarManager {
3841
3841
  } else {
3842
3842
  logger.log(`[AvatarManager] Avatar ${id} cache invalid: updatedAt=${cachedUpdatedAt}->${newUpdatedAt}, modelType=${cachedModelType}->${requestedModelType}, reloading...`);
3843
3843
  this.avatarCache.delete(id);
3844
- const { PwaCacheManager } = await import("./pwa-cache-manager-0wrNgZ7C.js").then((n) => n.n);
3844
+ const { PwaCacheManager } = await import("./pwa-cache-manager-CwXaM3xR.js").then((n) => n.n);
3845
3845
  await PwaCacheManager.clearCharacterCache(id);
3846
3846
  }
3847
3847
  }
@@ -1,4 +1,4 @@
1
- import { h as clockSync } from "./logger-C61wOfFi.js";
1
+ import { h as clockSync } from "./logger-fAU8oahT.js";
2
2
  //#region internal-telemetry.ts
3
3
  /**
4
4
  * Internal telemetry surface for the companion RTC SDK.
@@ -13697,8 +13697,9 @@ var RTC_LOST_FRAME_BUCKETS = [
13697
13697
  256
13698
13698
  ];
13699
13699
  /**
13700
- * 一轮里卡顿发生的次数。数的是次数不是帧,上面那套按帧间隔换算的档位对它没有意义;
13701
- * 一轮内卡上几十次已属异常,量级到此为止。
13700
+ * 一轮里卡顿发生的次数。数的是次数不是帧,上面那套按帧间隔换算的档位对它没有意义。
13701
+ * 低位逐个分档、高位翻倍:一轮几次和一轮几十次是两种情况,都要看得出来。
13702
+ * 实测慢网络下一轮 35 次,因此高位必须留到三位数。
13702
13703
  */
13703
13704
  var RTC_STALL_COUNT_BUCKETS = [
13704
13705
  0,
@@ -13707,10 +13708,12 @@ var RTC_STALL_COUNT_BUCKETS = [
13707
13708
  3,
13708
13709
  4,
13709
13710
  5,
13710
- 8,
13711
- 12,
13711
+ 10,
13712
13712
  20,
13713
- 40
13713
+ 40,
13714
+ 80,
13715
+ 160,
13716
+ 320
13714
13717
  ];
13715
13718
  var RTC_PERCENT_BUCKETS = [
13716
13719
  0,
@@ -13766,16 +13769,19 @@ var RTC_STALL_DURATION_BUCKETS_MS = [
13766
13769
  var RTC_BUCKET_PROFILES = [
13767
13770
  ["rtc_playback_avg_fps", RTC_FPS_BUCKETS],
13768
13771
  ["rtc_playback_frame_count", RTC_FRAME_COUNT_BUCKETS],
13769
- ["rtc_playback_frames_lost", RTC_LOST_FRAME_BUCKETS],
13770
13772
  ["rtc_playback_skipped_frames", RTC_LOST_FRAME_BUCKETS],
13771
13773
  ["rtc_playback_tail_discarded", RTC_LOST_FRAME_BUCKETS],
13772
13774
  ["rtc_playback_stall_count", RTC_STALL_COUNT_BUCKETS],
13773
13775
  ["rtc_playback_start_transition_missing", RTC_LOST_FRAME_BUCKETS],
13774
13776
  ["rtc_playback_end_transition_missing", RTC_LOST_FRAME_BUCKETS],
13775
- ["rtc_playback_loss_rate_pct", RTC_PERCENT_BUCKETS],
13777
+ ["rtc_playback_skip_rate_pct", RTC_PERCENT_BUCKETS],
13776
13778
  ["rtc_playback_duration_ms", RTC_PLAYBACK_DURATION_BUCKETS_MS],
13777
13779
  ["rtc_playback_stall_total_ms", RTC_STALL_DURATION_BUCKETS_MS],
13778
- ["rtc_playback_stall_max_ms", RTC_STALL_DURATION_BUCKETS_MS]
13780
+ ["rtc_playback_stall_max_ms", RTC_STALL_DURATION_BUCKETS_MS],
13781
+ ["rtc_transport_packets_lost", RTC_LOST_FRAME_BUCKETS],
13782
+ ["rtc_transport_packets_recovered", RTC_LOST_FRAME_BUCKETS],
13783
+ ["rtc_transport_packets_dropped", RTC_LOST_FRAME_BUCKETS],
13784
+ ["rtc_transport_packets_out_of_order", RTC_LOST_FRAME_BUCKETS]
13779
13785
  ];
13780
13786
  var METRIC_EXPORT_INTERVAL_MS = 1e4;
13781
13787
  var sdkVersion$2 = "1.0.0";
@@ -15197,7 +15203,7 @@ async function writeToLocalLog(message, level, extra = {}) {
15197
15203
  try {
15198
15204
  const { shouldPersist, sanitized } = sanitizeForLocalLog(message);
15199
15205
  if (!shouldPersist) return;
15200
- const { AvatarSDK } = await import("./AvatarSDK-BRDgRJ_Z.js").then((n) => n.n);
15206
+ const { AvatarSDK } = await import("./AvatarSDK-CnZqa_X4.js").then((n) => n.n);
15201
15207
  const version = AvatarSDK.version;
15202
15208
  const appId = idManager.getAppId();
15203
15209
  const userId = idManager.getUserId();
@@ -1,5 +1,5 @@
1
1
  import { n as __exportAll } from "./rolldown-runtime-B-1-B7_t.js";
2
- import { t as logger } from "./logger-C61wOfFi.js";
2
+ import { t as logger } from "./logger-fAU8oahT.js";
3
3
  //#region utils/pwa-cache-manager.ts
4
4
  /**
5
5
  * PWA Cache Manager
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@spatius/avatarkit",
3
3
  "type": "module",
4
- "version": "1.3.1-beta.5",
4
+ "version": "1.3.1-beta.6",
5
5
  "packageManager": "pnpm@10.18.2",
6
- "description": "AvatarKit SDK - Real-time Avatar Rendering SDK for Web",
6
+ "description": "AvatarKit real-time, audio-driven avatar rendering SDK for Web.",
7
+ "homepage": "https://spatius.ai/",
7
8
  "author": "AvatarKit Team",
8
9
  "license": "UNLICENSED",
9
10
  "keywords": [