@spatialwalk/avatarkit 1.0.0-beta.25 → 1.0.0-beta.27

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 (95) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +28 -6
  3. package/dist/{StreamingAudioPlayer-BWRB8VI8.js → StreamingAudioPlayer-C6v9Ed55.js} +1 -2
  4. package/dist/animation/AnimationWebSocketClient.d.ts +0 -1
  5. package/dist/animation/utils/eventEmitter.d.ts +0 -1
  6. package/dist/animation/utils/flameConverter.d.ts +0 -1
  7. package/dist/audio/AnimationPlayer.d.ts +0 -1
  8. package/dist/audio/StreamingAudioPlayer.d.ts +0 -1
  9. package/dist/avatar_core_wasm-BPIbbUx_.js +0 -1
  10. package/dist/config/app-config.d.ts +0 -1
  11. package/dist/config/constants.d.ts +0 -1
  12. package/dist/config/sdk-config-loader.d.ts +0 -1
  13. package/dist/core/Avatar.d.ts +0 -1
  14. package/dist/core/AvatarController.d.ts +7 -1
  15. package/dist/core/AvatarDownloader.d.ts +0 -1
  16. package/dist/core/AvatarKit.d.ts +0 -1
  17. package/dist/core/AvatarManager.d.ts +0 -1
  18. package/dist/core/AvatarView.d.ts +0 -1
  19. package/dist/core/NetworkLayer.d.ts +0 -1
  20. package/dist/generated/driveningress/v1/driveningress.d.ts +0 -1
  21. package/dist/generated/driveningress/v2/driveningress.d.ts +0 -1
  22. package/dist/generated/google/protobuf/struct.d.ts +0 -1
  23. package/dist/generated/google/protobuf/timestamp.d.ts +0 -1
  24. package/dist/{index-Bebn1P_5.js → index-s9KqPWVW.js} +1757 -1657
  25. package/dist/index.d.ts +0 -1
  26. package/dist/index.js +12 -11
  27. package/dist/renderer/RenderSystem.d.ts +0 -1
  28. package/dist/renderer/covariance.d.ts +0 -1
  29. package/dist/renderer/renderer.d.ts +0 -1
  30. package/dist/renderer/sortSplats.d.ts +0 -1
  31. package/dist/renderer/webgl/reorderData.d.ts +0 -1
  32. package/dist/renderer/webgl/webglRenderer.d.ts +0 -1
  33. package/dist/renderer/webgpu/webgpuRenderer.d.ts +0 -1
  34. package/dist/types/character-settings.d.ts +0 -1
  35. package/dist/types/character.d.ts +0 -1
  36. package/dist/types/index.d.ts +26 -3
  37. package/dist/utils/animation-interpolation.d.ts +0 -1
  38. package/dist/utils/client-id.d.ts +0 -1
  39. package/dist/utils/cls-tracker.d.ts +0 -1
  40. package/dist/utils/conversationId.d.ts +0 -1
  41. package/dist/utils/error-utils.d.ts +0 -1
  42. package/dist/utils/heartbeat-manager.d.ts +1 -1
  43. package/dist/utils/id-manager.d.ts +1 -1
  44. package/dist/utils/logger.d.ts +8 -3
  45. package/dist/utils/usage-tracker.d.ts +0 -1
  46. package/dist/vanilla/vite.config.d.ts +0 -1
  47. package/dist/wasm/avatarCoreAdapter.d.ts +0 -1
  48. package/dist/wasm/avatarCoreMemory.d.ts +0 -1
  49. package/package.json +1 -1
  50. package/dist/StreamingAudioPlayer-BWRB8VI8.js.map +0 -1
  51. package/dist/animation/AnimationWebSocketClient.d.ts.map +0 -1
  52. package/dist/animation/utils/eventEmitter.d.ts.map +0 -1
  53. package/dist/animation/utils/flameConverter.d.ts.map +0 -1
  54. package/dist/audio/AnimationPlayer.d.ts.map +0 -1
  55. package/dist/audio/StreamingAudioPlayer.d.ts.map +0 -1
  56. package/dist/avatar_core_wasm-BPIbbUx_.js.map +0 -1
  57. package/dist/config/app-config.d.ts.map +0 -1
  58. package/dist/config/constants.d.ts.map +0 -1
  59. package/dist/config/sdk-config-loader.d.ts.map +0 -1
  60. package/dist/core/Avatar.d.ts.map +0 -1
  61. package/dist/core/AvatarController.d.ts.map +0 -1
  62. package/dist/core/AvatarDownloader.d.ts.map +0 -1
  63. package/dist/core/AvatarKit.d.ts.map +0 -1
  64. package/dist/core/AvatarManager.d.ts.map +0 -1
  65. package/dist/core/AvatarView.d.ts.map +0 -1
  66. package/dist/core/NetworkLayer.d.ts.map +0 -1
  67. package/dist/generated/driveningress/v1/driveningress.d.ts.map +0 -1
  68. package/dist/generated/driveningress/v2/driveningress.d.ts.map +0 -1
  69. package/dist/generated/google/protobuf/struct.d.ts.map +0 -1
  70. package/dist/generated/google/protobuf/timestamp.d.ts.map +0 -1
  71. package/dist/index-Bebn1P_5.js.map +0 -1
  72. package/dist/index.d.ts.map +0 -1
  73. package/dist/index.js.map +0 -1
  74. package/dist/renderer/RenderSystem.d.ts.map +0 -1
  75. package/dist/renderer/covariance.d.ts.map +0 -1
  76. package/dist/renderer/renderer.d.ts.map +0 -1
  77. package/dist/renderer/sortSplats.d.ts.map +0 -1
  78. package/dist/renderer/webgl/reorderData.d.ts.map +0 -1
  79. package/dist/renderer/webgl/webglRenderer.d.ts.map +0 -1
  80. package/dist/renderer/webgpu/webgpuRenderer.d.ts.map +0 -1
  81. package/dist/types/character-settings.d.ts.map +0 -1
  82. package/dist/types/character.d.ts.map +0 -1
  83. package/dist/types/index.d.ts.map +0 -1
  84. package/dist/utils/animation-interpolation.d.ts.map +0 -1
  85. package/dist/utils/client-id.d.ts.map +0 -1
  86. package/dist/utils/cls-tracker.d.ts.map +0 -1
  87. package/dist/utils/conversationId.d.ts.map +0 -1
  88. package/dist/utils/error-utils.d.ts.map +0 -1
  89. package/dist/utils/heartbeat-manager.d.ts.map +0 -1
  90. package/dist/utils/id-manager.d.ts.map +0 -1
  91. package/dist/utils/logger.d.ts.map +0 -1
  92. package/dist/utils/usage-tracker.d.ts.map +0 -1
  93. package/dist/vanilla/vite.config.d.ts.map +0 -1
  94. package/dist/wasm/avatarCoreAdapter.d.ts.map +0 -1
  95. package/dist/wasm/avatarCoreMemory.d.ts.map +0 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,33 @@ 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.0.0-beta.27] - 2025-12-04
9
+
10
+ ### 🐛 Bugfix
11
+
12
+ ## [1.0.0-beta.26] - 2025-12-03
13
+
14
+ ### ✨ New Features
15
+ - **Log Level Configuration** - Added `logLevel` configuration option to control SDK logging verbosity
16
+ - `LogLevel.off` - Disable all logs
17
+ - `LogLevel.error` - Only error logs
18
+ - `LogLevel.warning` - Warning and error logs
19
+ - `LogLevel.all` - All logs (default)
20
+ - **Standardized CLS Logging Events** - All CLS logging events now use standardized field names for better querying
21
+ - Standard events: `sdk_initialized`, `send_audio_failed`, `message_error`, `heartbeat_failed`, `service_restarted`, `session_token_invalid`, `session_token_expired`, `yield_animation_failed`, `fetch_avatar_metadata_failed`, `download_avatar_assets_failed`
22
+ - Standard fields: `req_id`, `con_id`, `avatar_id`, `description`
23
+ - **End-to-End Latency Tracking** - Added `driving_latency` event to track latency metrics for both SDK and Host modes
24
+ - Tracks: `start`, `tap2`, `tap4`, `end`, `first_frame` timestamps
25
+ - Automatically reported at key moments during audio/animation processing
26
+
27
+ ### 🔧 Improvements
28
+ - **CLS Configuration Alignment** - Updated CLS endpoints and Topic IDs to match iOS SDK configuration
29
+ - **Default API Endpoints** - Fixed default API endpoint for `intl` environment to `api.intl.spatialwalk.cloud`
30
+ - **Error Code Enum** - Added new error codes: `appIDUnrecognized`, `sessionTokenInvalid`, `sessionTokenExpired`, `failedToFetchAvatarMetadata`, `failedToDownloadAvatarAssets`
31
+
32
+ ### 🗑️ Removed
33
+ - **Redundant Log Events** - Removed unnecessary log events: `playback_paused`, `playback_resumed`, `reconnecting`, `connect_success`, `server_error`, `decode_failed`
34
+
8
35
  ## [1.0.0-beta.25] - 2025-12-03
9
36
 
10
37
  ### 🔧 Improvements
package/README.md CHANGED
@@ -29,7 +29,8 @@ import {
29
29
  AvatarView,
30
30
  Configuration,
31
31
  Environment,
32
- DrivingServiceMode
32
+ DrivingServiceMode,
33
+ LogLevel
33
34
  } from '@spatialwalk/avatarkit'
34
35
 
35
36
  // 1. Initialize SDK
@@ -39,6 +40,11 @@ const configuration: Configuration = {
39
40
  drivingServiceMode: DrivingServiceMode.sdk, // Optional, 'sdk' is default
40
41
  // - DrivingServiceMode.sdk: SDK mode - SDK handles WebSocket communication
41
42
  // - DrivingServiceMode.host: Host mode - Host app provides audio and animation data
43
+ logLevel: LogLevel.all, // Optional, 'all' is default
44
+ // - LogLevel.off: Disable all logs
45
+ // - LogLevel.error: Only error logs
46
+ // - LogLevel.warning: Warning and error logs
47
+ // - LogLevel.all: All logs (info, warning, error)
42
48
  }
43
49
 
44
50
  await AvatarKit.initialize('your-app-id', configuration)
@@ -362,11 +368,6 @@ avatarView.avatarController.yieldFramesData(
362
368
  #### Common Methods (Both Modes)
363
369
 
364
370
  ```typescript
365
- // Pause playback (can be resumed later)
366
- avatarView.avatarController.pause()
367
-
368
- // Resume playback (from paused state)
369
- await avatarView.avatarController.resume()
370
371
 
371
372
  // Interrupt current playback (stops and clears data)
372
373
  avatarView.avatarController.interrupt()
@@ -402,14 +403,35 @@ avatarView.avatarController.onError = (error: Error) => {}
402
403
  interface Configuration {
403
404
  environment: Environment
404
405
  drivingServiceMode?: DrivingServiceMode // Optional, default is 'sdk' (SDK mode)
406
+ logLevel?: LogLevel // Optional, default is 'all' (all logs)
407
+ }
408
+ ```
409
+
410
+ ### LogLevel
411
+
412
+ Control the verbosity of SDK logs:
413
+
414
+ ```typescript
415
+ enum LogLevel {
416
+ off = 'off', // Disable all logs
417
+ error = 'error', // Only error logs
418
+ warning = 'warning', // Warning and error logs
419
+ all = 'all' // All logs (info, warning, error) - default
405
420
  }
406
421
  ```
407
422
 
423
+ **Note:** `LogLevel.off` completely disables all logging, including error logs. Use with caution in production environments.
424
+
408
425
  **Description:**
409
426
  - `environment`: Specifies the environment (cn/intl/test), SDK will automatically use the corresponding API address and WebSocket address based on the environment
410
427
  - `drivingServiceMode`: Specifies the driving service mode
411
428
  - `DrivingServiceMode.sdk` (default): SDK mode - SDK handles WebSocket communication automatically
412
429
  - `DrivingServiceMode.host`: Host mode - Host application provides audio and animation data
430
+ - `logLevel`: Controls the verbosity of SDK logs
431
+ - `LogLevel.off`: Disable all logs
432
+ - `LogLevel.error`: Only error logs
433
+ - `LogLevel.warning`: Warning and error logs
434
+ - `LogLevel.all` (default): All logs (info, warning, error)
413
435
  - `sessionToken`: Set separately via `AvatarKit.setSessionToken()`, not in Configuration
414
436
 
415
437
  ```typescript
@@ -1,7 +1,7 @@
1
1
  var C = Object.defineProperty;
2
2
  var g = (h, t, e) => t in h ? C(h, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : h[t] = e;
3
3
  var s = (h, t, e) => g(h, typeof t != "symbol" ? t + "" : t, e);
4
- import { A as m, e as f, l as c, a as n } from "./index-Bebn1P_5.js";
4
+ import { A as m, e as f, l as c, a as n } from "./index-s9KqPWVW.js";
5
5
  class y {
6
6
  constructor(t) {
7
7
  // AudioContext is managed internally
@@ -350,4 +350,3 @@ class y {
350
350
  export {
351
351
  y as StreamingAudioPlayer
352
352
  };
353
- //# sourceMappingURL=StreamingAudioPlayer-BWRB8VI8.js.map
@@ -50,4 +50,3 @@ export declare class AnimationWebSocketClient extends EventEmitter {
50
50
  private handleMessage;
51
51
  private scheduleReconnect;
52
52
  }
53
- //# sourceMappingURL=AnimationWebSocketClient.d.ts.map
@@ -10,4 +10,3 @@ export declare class EventEmitter {
10
10
  removeAllListeners(event?: string): void;
11
11
  }
12
12
  export {};
13
- //# sourceMappingURL=eventEmitter.d.ts.map
@@ -23,4 +23,3 @@ export declare function convertWasmParamsToProtoFlame(wasmParams: FlameParams):
23
23
  * Create a neutral proto Flame (zero pose)
24
24
  */
25
25
  export declare function createNeutralFlameProto(): Flame;
26
- //# sourceMappingURL=flameConverter.d.ts.map
@@ -73,4 +73,3 @@ export declare class AnimationPlayer {
73
73
  getVolume(): number;
74
74
  dispose(): void;
75
75
  }
76
- //# sourceMappingURL=AnimationPlayer.d.ts.map
@@ -134,4 +134,3 @@ export declare class StreamingAudioPlayer {
134
134
  */
135
135
  private log;
136
136
  }
137
- //# sourceMappingURL=StreamingAudioPlayer.d.ts.map
@@ -1661,4 +1661,3 @@ async function XI(Z = {}) {
1661
1661
  export {
1662
1662
  XI as default
1663
1663
  };
1664
- //# sourceMappingURL=avatar_core_wasm-BPIbbUx_.js.map
@@ -41,4 +41,3 @@ export declare const APP_CONFIG: {
41
41
  enablePerformanceMetrics: boolean;
42
42
  };
43
43
  };
44
- //# sourceMappingURL=app-config.d.ts.map
@@ -26,4 +26,3 @@ export declare const ENV_TEST: boolean;
26
26
  * - URL has debug=1 parameter
27
27
  */
28
28
  export declare function isDebugMode(): boolean;
29
- //# sourceMappingURL=constants.d.ts.map
@@ -9,4 +9,3 @@ export declare function fetchSdkConfig(version: string): Promise<Partial<Record<
9
9
  * 清除配置缓存(用于测试或重新加载)
10
10
  */
11
11
  export declare function clearSdkConfigCache(): void;
12
- //# sourceMappingURL=sdk-config-loader.d.ts.map
@@ -12,4 +12,3 @@ export declare class Avatar {
12
12
  */
13
13
  constructor(id: string, characterMeta: CharacterMeta, resources: PreloadResult);
14
14
  }
15
- //# sourceMappingURL=Avatar.d.ts.map
@@ -29,6 +29,8 @@ export declare class AvatarController {
29
29
  private readonly MAX_KEYFRAMES;
30
30
  private readonly KEYFRAMES_CLEANUP_THRESHOLD;
31
31
  private isAudioOnlyMode;
32
+ private hostModeMetrics;
33
+ private readonly audioBytesPerSecond;
32
34
  constructor(avatar: Avatar, options?: {
33
35
  playbackMode?: DrivingServiceMode;
34
36
  });
@@ -166,5 +168,9 @@ export declare class AvatarController {
166
168
  * Emit event
167
169
  */
168
170
  protected emit(event: string, data?: any): void;
171
+ /**
172
+ * 上报 driving_latency 事件(Host 模式)
173
+ * @private
174
+ */
175
+ private reportDrivingLatency;
169
176
  }
170
- //# sourceMappingURL=AvatarController.d.ts.map
@@ -78,4 +78,3 @@ export declare class AvatarDownloader {
78
78
  getCharacterById(characterId: string): Promise<CharacterMeta>;
79
79
  }
80
80
  export {};
81
- //# sourceMappingURL=AvatarDownloader.d.ts.map
@@ -46,4 +46,3 @@ export declare class AvatarKit {
46
46
  */
47
47
  private static _fetchSdkConfig;
48
48
  }
49
- //# sourceMappingURL=AvatarKit.d.ts.map
@@ -20,4 +20,3 @@ export declare class AvatarManager {
20
20
  */
21
21
  clearCache(): void;
22
22
  }
23
- //# sourceMappingURL=AvatarManager.d.ts.map
@@ -161,4 +161,3 @@ export declare class AvatarView {
161
161
  */
162
162
  private handleResize;
163
163
  }
164
- //# sourceMappingURL=AvatarView.d.ts.map
@@ -5,4 +5,3 @@
5
5
  * @internal Not part of public API
6
6
  */
7
7
  export {};
8
- //# sourceMappingURL=NetworkLayer.d.ts.map
@@ -77,4 +77,3 @@ export interface MessageFns<T> {
77
77
  fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
78
78
  }
79
79
  export {};
80
- //# sourceMappingURL=driveningress.d.ts.map
@@ -78,4 +78,3 @@ export interface MessageFns<T> {
78
78
  fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
79
79
  }
80
80
  export {};
81
- //# sourceMappingURL=driveningress.d.ts.map
@@ -105,4 +105,3 @@ export interface ListValueWrapperFns {
105
105
  unwrap(message: ListValue): Array<any>;
106
106
  }
107
107
  export {};
108
- //# sourceMappingURL=struct.d.ts.map
@@ -126,4 +126,3 @@ export interface MessageFns<T> {
126
126
  fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
127
127
  }
128
128
  export {};
129
- //# sourceMappingURL=timestamp.d.ts.map