@doubao-dev/framework 0.0.40 → 0.0.42

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/api.d.ts CHANGED
@@ -191,12 +191,23 @@ export declare interface AddPhoneRepeatCalendarParams extends AddPhoneCalendarPa
191
191
  repeatEndTime?: number;
192
192
  }
193
193
 
194
+ /**
195
+ * 相册精细授权状态。
196
+ *
197
+ * 继承 {@link BasicAuthorizationDetail} 的全部取值,并增加:
198
+ * - `limited`:只能访问用户选择的部分照片;支持 iOS 和 Android 14 及以上版本。
199
+ * - `add only`:只能向相册添加照片,不能读取相册内容;仅 iOS 支持。
200
+ *
201
+ * @public
202
+ */
203
+ export declare type AlbumAuthorizationDetail = BasicAuthorizationDetail | 'limited' | 'add only';
204
+
194
205
  /** @public */
195
206
  export declare type AppAuthorizeStatus = 'authorized' | 'denied' | 'not determined';
196
207
 
197
208
  /** @public */
198
209
  export declare interface AppBaseInfoHost {
199
- /** 宿主 app 对应的 appId */
210
+ /** 当前豆包客户端的 appId */
200
211
  appId: string;
201
212
  }
202
213
 
@@ -259,7 +270,24 @@ export declare type AppTheme = 'light' | 'dark';
259
270
  * @authorizationBehavior All | 调用会主动向用户发起指定 scope 的授权弹窗。用户拒绝、取消或此前已撤销授权时调用直接失败,可再次调用 `authorize` 重新发起;scope 未在应用权限声明中配置或不受支持时也会失败。
260
271
  * @precondition All | 在应用权限声明中配置需要申请的 scope。
261
272
  * @usageNote All | 授权状态可通过 `getSetting` 查询;建议在真正需要能力前再发起授权。
262
- * @errorCode none | - | - | Android,iOS | 用户拒绝、取消或 scope 非法等失败当前只返回文本信息,未稳定返回顶层 errNo/errMsg | 根据异常信息提示用户重新授权或检查 scope 声明
273
+ * @errorExample
274
+ * ```json
275
+ * {
276
+ * "errNo": 107,
277
+ * "errMsg": "user permission denied"
278
+ * }
279
+ * ```
280
+ * @errorCode common | 102 | Android,iOS
281
+ * @errorCode errNo | 104 | invalid parameter | Android,iOS | 传入的 scope 为空或不受支持(如 scope.payment) | 检查并传入受支持的 scope 后重试。
282
+ * @errorCode errNo | 106 | system permission denied | Android,iOS | 对应能力的系统权限被拒绝 | 引导用户在系统设置中开启对应权限后重试。
283
+ * @errorCode errNo | 107 | user permission denied | Android,iOS | 用户拒绝了本次应用授权 | 说明能力用途后再次调用 `authorize` 重新发起授权。
284
+ * @errorCode errNo | 114 | operation cancelled | Android,iOS | 用户取消了授权弹窗 | 用户需要时可再次调用 `authorize` 重新发起授权。
285
+ * @errorCode errNo | 301 | network request cancelled | iOS | 授权过程中的网络请求被取消 | 确认应用和网络状态后重试。
286
+ * @errorCode errNo | 302 | connection timed out | iOS | 授权过程中的网络连接超时 | 检查网络连接后重试。
287
+ * @errorCode errNo | 303 | no network connection | iOS | 当前无可用网络连接 | 恢复网络连接后重试。
288
+ * @errorCode errNo | 305 | network failure | Android,iOS | 授权过程中发生其他网络错误 | 检查网络连接,稍后重试。
289
+ * @errorCode errNo | 112 | invalid result | iOS | 授权服务返回的数据无法解析 | 稍后重试;持续失败时反馈服务端响应异常。
290
+ * @platformNote iOS | 网络类失败会细分为 301/302/303/305,并可能返回 112;Android 的网络类失败统一返回 305。
263
291
  *
264
292
  * @public
265
293
  */
@@ -424,6 +452,16 @@ export declare interface BackgroundAudioState {
424
452
  playbackRate?: number;
425
453
  }
426
454
 
455
+ /**
456
+ * 只有完整授权和未授权状态的权限所使用的通用精细状态。
457
+ *
458
+ * 继承 {@link UnauthorizedDetail} 的全部取值,并增加:
459
+ * - `full`:已获得该权限的完整访问能力。
460
+ *
461
+ * @public
462
+ */
463
+ export declare type BasicAuthorizationDetail = UnauthorizedDetail | 'full';
464
+
427
465
  /**
428
466
  * 电池信息变化事件。
429
467
  *
@@ -512,6 +550,16 @@ export declare type BluetoothAdapterStateChangeEvent = GetBluetoothAdapterStateR
512
550
  /** @public */
513
551
  export declare type BluetoothAdapterStateChangeListener = (event: BluetoothAdapterStateChangeEvent) => void;
514
552
 
553
+ /**
554
+ * 蓝牙精细授权状态。
555
+ *
556
+ * 继承 {@link BasicAuthorizationDetail} 的全部取值,并增加:
557
+ * - `partial`:只获得部分已声明的蓝牙子权限;仅 Android 支持。
558
+ *
559
+ * @public
560
+ */
561
+ export declare type BluetoothAuthorizationDetail = BasicAuthorizationDetail | 'partial';
562
+
515
563
  /**
516
564
  * 蓝牙广播二进制字段。
517
565
  *
@@ -722,6 +770,155 @@ export declare type BottomSheetCancelSource = 'mask' | 'gesture' | 'hostUnavaila
722
770
  */
723
771
  export declare type CalendarRepeatInterval = 'day' | 'week' | 'month' | 'year';
724
772
 
773
+ /**
774
+ * 调用当前应用的 Tool。
775
+ *
776
+ * 豆包会根据当前智能服务页面或会话 Widget 确定应用和版本,开发者只需传入 Tool 名称和参数。
777
+ * Tool 正常结果通过 `toolResult` 返回,Tool 业务错误通过 `toolError` 返回,两者都会正常
778
+ * resolve;调用前校验、鉴权或返回结构校验失败时 Promise reject。
779
+ *
780
+ * @param params - Tool 名称和参数。
781
+ * @returns Tool 正常结果或业务错误,以及 Widget 场景下可选的更新错误。
782
+ * @example
783
+ * ```typescript
784
+ * import { callTool } from '@doubao-dev/framework/api';
785
+ *
786
+ * const result = await callTool({
787
+ * toolName: 'query_order',
788
+ * toolArgs: {
789
+ * orderId: 'order-123'
790
+ * }
791
+ * });
792
+ *
793
+ * if (result.toolError) {
794
+ * console.warn(result.toolError.code, result.toolError.message);
795
+ * } else {
796
+ * console.log(result.toolResult);
797
+ * }
798
+ * ```
799
+ *
800
+ * @since 0.0.42
801
+ * @contractStatus verified | 公开参数、页面与 Widget 调用场景、Widget 更新控制、互斥返回结构及 Android、iOS 错误字段一致。
802
+ * @platformSupport Android | supported | 支持在智能服务页面和会话 Widget 中调用当前应用的 Tool。
803
+ * @platformSupport iOS | supported | 支持在智能服务页面和会话 Widget 中调用当前应用的 Tool。
804
+ * @platformSupport PC | unsupported | 客户端尚未实现 callTool。
805
+ * @platformSupport HarmonyOS | unsupported | 客户端尚未实现 callTool。
806
+ * @permission none | - | none | Android,iOS | 无需额外权限
807
+ * @precondition Android | 在当前应用的智能服务页面或由当前应用真实生成的会话 Widget 内调用,且目标 Tool 已在当前应用版本中配置。
808
+ * @precondition iOS | 在当前应用的智能服务页面或由当前应用真实生成的会话 Widget 内调用,且目标 Tool 已在当前应用版本中配置。
809
+ * @usageNote All | toolResult 与 toolError 互斥;toolError 是正常返回的 Tool 业务错误,不会导致 Promise reject。skipWidgetUpdate 为 true 时不执行 Widget 更新阶段,因此不会返回 cardUpdateError;否则 cardUpdateError 表示 Tool 已执行但当前 Widget 更新失败。重试会再次执行 Tool,请避免重复触发。
810
+ * @resultExample
811
+ * ```json
812
+ * {
813
+ * "toolResult": {
814
+ * "content": [
815
+ * {
816
+ * "type": "text",
817
+ * "text": "订单已支付"
818
+ * }
819
+ * ],
820
+ * "structuredContent": {
821
+ * "orderId": "order-123",
822
+ * "status": "paid"
823
+ * }
824
+ * }
825
+ * }
826
+ * ```
827
+ * @errorExample
828
+ * ```json
829
+ * {
830
+ * "errNo": 104,
831
+ * "errMsg": "invalid parameter"
832
+ * }
833
+ * ```
834
+ * @errorCode common | 102 | Android,iOS
835
+ * @errorCode errNo | 103 | feature not support | Android,iOS | 在 Worker 等非智能服务页面、Widget 容器中调用 | 仅在智能服务页面或会话 Widget 中调用。
836
+ * @errorCode errNo | 104 | invalid parameter | Android,iOS | toolName 为空、toolArgs 无法序列化为 JSON 对象,或传入的 skipWidgetUpdate 不是布尔值 | 修正 Tool 名称、参数和 Widget 更新控制参数后重试。
837
+ * @errorCode errNo | 112 | invalid result | Android,iOS | Tool 正常结果、业务错误或 Widget 更新错误结构无效 | 稍后重试;持续失败时反馈 Tool 或服务端返回异常。
838
+ * @platformNote All | 非智能服务页面、Widget 容器返回 103;参数非法返回 104;返回结构无效返回 112;上下文无效、网络或服务端调用失败返回 102。
839
+ * @knownIssue All | Web SDK 模拟器暂不支持 skipWidgetUpdate 为 true;请在 Android 或 iOS 豆包客户端验证跳过 Widget 更新的调用。
840
+ *
841
+ * @public
842
+ */
843
+ export declare const callTool: (params: CallToolParams) => Promise<CallToolResult>;
844
+
845
+ /**
846
+ * Tool 正常完成调用后返回的业务错误。
847
+ *
848
+ * @public
849
+ */
850
+ export declare interface CallToolBusinessError {
851
+ /** Tool 业务错误码。 */
852
+ code: number;
853
+ /** Tool 业务错误信息。 */
854
+ message: string;
855
+ }
856
+
857
+ /**
858
+ * Widget 更新阶段的错误。
859
+ *
860
+ * @public
861
+ */
862
+ export declare interface CallToolError {
863
+ /** 错误码。 */
864
+ code: string;
865
+ /** 错误信息。 */
866
+ message: string;
867
+ /** 错误阶段,固定为渲染阶段。 */
868
+ phase: 'render';
869
+ }
870
+
871
+ /**
872
+ * 调用 Tool 的参数。
873
+ *
874
+ * @public
875
+ */
876
+ export declare interface CallToolParams {
877
+ /** 当前应用内需要调用的 Tool 名称。 */
878
+ toolName: string;
879
+ /** Tool 入参。 */
880
+ toolArgs: Record<string, unknown>;
881
+ /**
882
+ * 是否跳过 Widget 更新阶段。设为 `true` 时,即使 Tool 下发 Widget,也只返回 Tool 数据,
883
+ * 不更新当前 Widget。
884
+ *
885
+ * @default false
886
+ * @constraint 仅影响会下发 Widget 的 Tool。
887
+ */
888
+ skipWidgetUpdate?: boolean;
889
+ }
890
+
891
+ /**
892
+ * 调用 Tool 的结果。
893
+ *
894
+ * @public
895
+ */
896
+ export declare type CallToolResult = {
897
+ /**
898
+ * Tool 已执行,但返回结果未能用于更新当前 Widget 时的错误。仅 Widget 场景可能返回。
899
+ *
900
+ * @default -
901
+ */
902
+ cardUpdateError?: CallToolError;
903
+ } & ({
904
+ /** Tool 正常结果,与 `toolError` 二选一。 */
905
+ toolResult: ToolResult;
906
+ /** @hidden */
907
+ toolError?: never;
908
+ } | {
909
+ /** Tool 业务错误,与 `toolResult` 二选一。该字段不会导致 API reject。 */
910
+ toolError: CallToolBusinessError;
911
+ /** @hidden */
912
+ toolResult?: never;
913
+ });
914
+
915
+ /**
916
+ * 摄像头精细授权状态,取值与 {@link BasicAuthorizationDetail} 一致。
917
+ *
918
+ * @public
919
+ */
920
+ export declare type CameraAuthorizationDetail = BasicAuthorizationDetail;
921
+
725
922
  /** @public */
726
923
  export declare interface CanIUseParams {
727
924
  /** 需要检测的能力标识,例如 API 名称 */
@@ -734,6 +931,47 @@ export declare interface CanIUseResult {
734
931
  result: boolean;
735
932
  }
736
933
 
934
+ /**
935
+ * 对话框高度或展示状态变化事件。
936
+ *
937
+ * @public
938
+ */
939
+ export declare type ChatPanelHeightChangedEvent = ChatPanelInfo;
940
+
941
+ /**
942
+ * 对话框高度或展示状态变化监听函数。
943
+ *
944
+ * @public
945
+ */
946
+ export declare type ChatPanelHeightChangedListener = (event: ChatPanelHeightChangedEvent) => void;
947
+
948
+ /**
949
+ * 对话框状态快照。
950
+ *
951
+ * @public
952
+ */
953
+ export declare interface ChatPanelInfo {
954
+ /**
955
+ * 对话框当前占用的垂直高度,单位为逻辑像素(px),不包含系统键盘高度。
956
+ *
957
+ * @constraint 大于等于 0;收起态高度也可能大于 0
958
+ */
959
+ height: number;
960
+ /**
961
+ * 对话框当前展示状态。
962
+ *
963
+ * `preview` 表示从收起态发送消息后、收到回复前的中间态。
964
+ */
965
+ state: ChatPanelState;
966
+ }
967
+
968
+ /**
969
+ * 对话框展示状态。
970
+ *
971
+ * @public
972
+ */
973
+ export declare type ChatPanelState = 'collapsed' | 'expanded' | 'preview';
974
+
737
975
  /**
738
976
  * 检测无障碍能力是否开启。
739
977
  *
@@ -763,7 +1001,15 @@ export declare interface CanIUseResult {
763
1001
  * "open": false
764
1002
  * }
765
1003
  * ```
766
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据异常信息重试
1004
+ * @errorExample
1005
+ * ```json
1006
+ * {
1007
+ * "errNo": 103,
1008
+ * "errMsg": "feature not support"
1009
+ * }
1010
+ * ```
1011
+ * @errorCode common | 102 | Android
1012
+ * @errorCode errNo | 103 | feature not support | Android | 当前运行环境无法获取系统无障碍服务 | 在具备系统无障碍服务的设备上调用。
767
1013
  *
768
1014
  * @public
769
1015
  */
@@ -1378,7 +1624,23 @@ export declare interface ConnectedBluetoothDevice {
1378
1624
  * "readyState": 0
1379
1625
  * }
1380
1626
  * ```
1381
- * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
1627
+ * @errorExample
1628
+ * ```json
1629
+ * {
1630
+ * "errNo": 1501001,
1631
+ * "errMsg": "websocket connection limit exceeded"
1632
+ * }
1633
+ * ```
1634
+ * @errorCode common | 102 | Android
1635
+ * @errorCode common | 113 | Android,iOS
1636
+ * @errorCode errNo | 104 | invalid parameter | Android,iOS | 创建连接时 url 为空或非 ws/wss,或调用 send 时 base64 数据非法、dataType 不支持 | 传入合法的 ws/wss url 与受支持的发送数据后重试。
1637
+ * @errorCode errNo | 110 | API call prohibited | Android,iOS | socket url 未通过域名白名单校验 | 确认目标域名已在智能服务中配置后重试。
1638
+ * @errorCode errNo | 116 | resource not found | Android,iOS | 对已关闭或不存在的 socketTaskId 调用 send/close | 仅在 onOpen 后、onClose 前操作连接,不要复用已关闭的连接。
1639
+ * @errorCode errNo | 305 | network failure | Android,iOS | 建立连接、发送或关闭过程中发生网络错误 | 检查网络连接,必要时重新建立连接。
1640
+ * @errorCode errNo | 1501001 | websocket connection limit exceeded | Android,iOS | 同一智能服务的 WebSocket 连接数超过上限 | 关闭不再使用的连接后重试。
1641
+ * @errorCode errNo | 1501002 | websocket is not open | iOS | 连接尚未打开或已关闭时调用 send | 在收到 onOpen 事件后再发送数据。
1642
+ * @platformNote Android | 建立连接失败统一返回 102;send 在连接未打开时返回 305 或 116。
1643
+ * @platformNote iOS | send 在连接未打开时返回 1501002。
1382
1644
  *
1383
1645
  * @public
1384
1646
  */
@@ -1387,13 +1649,13 @@ export declare function connectSocket(params: ConnectSocketParams): SocketTask;
1387
1649
  /**
1388
1650
  * 创建 WebSocket 连接的参数。
1389
1651
  *
1390
- * `connectSocket` 会把这些参数透传给宿主侧创建连接。连接创建请求发出后,
1652
+ * `connectSocket` 会把这些参数交给豆包客户端创建连接。连接创建请求发出后,
1391
1653
  * 调用方会立即拿到一个 {@link SocketTask},后续连接成功、失败、收到消息和关闭状态
1392
1654
  * 都通过 `SocketTask` 上注册的事件回调通知。
1393
1655
  *
1394
1656
  * @remarks
1395
- * - `url` 应填写完整的 WebSocket 地址。线上环境通常要求使用 `wss://` 协议,并由宿主侧按当前应用配置校验合法域名和证书。
1396
- * - `header` 用于补充握手请求头,`referer` 等由宿主管控的字段不会被业务代码覆盖。
1657
+ * - `url` 应填写完整的 WebSocket 地址。线上环境通常要求使用 `wss://` 协议,并由豆包客户端按当前智能服务配置校验合法域名和证书。
1658
+ * - `header` 用于补充握手请求头,`referer` 等由豆包客户端管理的字段不会被业务代码覆盖。
1397
1659
  * - `protocols` 非空时,服务端需要在握手响应中选择并返回匹配的子协议,否则连接可能失败。
1398
1660
  * - 同一个页面多次调用会创建多个独立连接,已创建的旧连接不会因为新连接自动关闭。
1399
1661
  *
@@ -1412,7 +1674,7 @@ export declare interface ConnectSocketParams {
1412
1674
  * WebSocket 握手阶段携带的 HTTP Header。
1413
1675
  *
1414
1676
  * 适合放置业务自定义 Header,例如鉴权 token、trace id、客户端能力标识等。
1415
- * `referer` 由宿主侧统一生成和管理,不应依赖该字段被业务传入值覆盖。
1677
+ * `referer` 由豆包客户端统一生成和管理,不应依赖该字段被业务传入值覆盖。
1416
1678
  *
1417
1679
  * @default -
1418
1680
  */
@@ -1422,7 +1684,7 @@ export declare interface ConnectSocketParams {
1422
1684
  *
1423
1685
  * 会作为握手请求中的 `Sec-WebSocket-Protocol` 候选值传给服务端。
1424
1686
  * 如果传入非空数组,服务端需要选择其中一个协议并在握手响应中返回;
1425
- * 服务端不支持或不返回匹配协议时,连接可能被宿主判定为创建失败。
1687
+ * 服务端不支持或不返回匹配协议时,豆包客户端可能判定连接创建失败。
1426
1688
  *
1427
1689
  * @default -
1428
1690
  */
@@ -1459,7 +1721,20 @@ export declare interface ConnectSocketParams {
1459
1721
  * ```json
1460
1722
  * {}
1461
1723
  * ```
1462
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据返回的错误信息提示用户重试
1724
+ * @errorExample
1725
+ * ```json
1726
+ * {
1727
+ * "errNo": 1401003,
1728
+ * "errMsg": "connect wifi failed"
1729
+ * }
1730
+ * ```
1731
+ * @errorCode common | 102 | Android,iOS
1732
+ * @errorCode errNo | 104 | invalid parameter | Android,iOS | ssid 为空 | 传入非空的 ssid 后重试
1733
+ * @errorCode errNo | 103 | feature not support | Android,iOS | 设备无可用的 Wi-Fi 能力,或 iOS 系统版本过低不支持连接 | 检查设备与系统能力,不支持时不要调用
1734
+ * @errorCode errNo | 1401001 | wifi is not initialized | Android,iOS | 调用前未先调用 startWifi 完成初始化 | 先调用 startWifi 再连接 Wi-Fi
1735
+ * @errorCode errNo | 115 | operation timeout | Android | 连接 Wi-Fi 超时 | 确认目标网络可用后提示用户重试
1736
+ * @errorCode errNo | 1401003 | connect wifi failed | Android,iOS | 连接目标 Wi-Fi 失败(如密码错误、网络不可达、系统连接被拒) | 检查 ssid 与密码后提示用户重试
1737
+ * @platformNote Android | 连接超时返回 115;iOS 未细分超时,连接失败统一归为 1401003。
1463
1738
  *
1464
1739
  * @public
1465
1740
  */
@@ -1516,6 +1791,22 @@ export declare type Content = {
1516
1791
  /** API 调用参数。 */
1517
1792
  arguments: object;
1518
1793
  };
1794
+ } | {
1795
+ /** 模型响应提示。 */
1796
+ type: 'responseHint';
1797
+ /** 用户动作和模型响应建议。 */
1798
+ data: {
1799
+ /**
1800
+ * 用户做了什么。
1801
+ * @default -
1802
+ */
1803
+ userAction?: string;
1804
+ /**
1805
+ * 建议模型如何响应。
1806
+ * @default -
1807
+ */
1808
+ responseGuidance?: string;
1809
+ };
1519
1810
  };
1520
1811
 
1521
1812
  /**
@@ -1726,7 +2017,7 @@ export declare function createInnerAudioContext(): InnerAudioContext;
1726
2017
  * "logId": "20260519xxxx"
1727
2018
  * }
1728
2019
  * ```
1729
- * @errorCode none | - | - | Android,iOS | 无稳定的顶层 errNo/errMsg;调用失败时 Promise reject,业务错误(errNo、errMsg、errLogId)在错误对象的 data 字段 | 通过 catch 捕获并读取 e.data 排查
2020
+ * @errorCode common | 102 | Android,iOS
1730
2021
  * @knownIssue All | 失败结果不会作为 await 的返回值,需通过 catch 捕获并从错误对象的 data 字段读取 errNo、errMsg、errLogId。
1731
2022
  *
1732
2023
  * @public
@@ -1822,7 +2113,17 @@ export declare interface CreateSignOrderSuccessResult {
1822
2113
  * "expiresIn": 3600
1823
2114
  * }
1824
2115
  * ```
1825
- * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
2116
+ * @errorExample
2117
+ * ```json
2118
+ * {
2119
+ * "errNo": 104,
2120
+ * "errMsg": "invalid parameter"
2121
+ * }
2122
+ * ```
2123
+ * @errorCode common | 102 | Android,iOS
2124
+ * @errorCode errNo | 104 | invalid parameter | Android,iOS | taskType 不是 remote(如传入 local) | 传入 remote 任务类型后重试。
2125
+ * @errorCode errNo | 112 | invalid result | Android,iOS | 远端任务创建成功但返回数据为空或缺少 taskId | 稍后重试;持续失败时反馈服务端响应异常。
2126
+ * @platformNote All | taskType 非 remote 返回 104;远端返回数据为空或缺少 taskId 返回 112;其他失败统一返回 102。
1826
2127
  *
1827
2128
  * @public
1828
2129
  */
@@ -1943,7 +2244,7 @@ export declare type DeviceOrientation = 'portrait' | 'landscape';
1943
2244
  * ```json
1944
2245
  * {}
1945
2246
  * ```
1946
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据异常信息重试
2247
+ * @errorCode common | 102 | Android,iOS
1947
2248
  *
1948
2249
  * @public
1949
2250
  */
@@ -1954,6 +2255,7 @@ export declare const disableUserScreenRecord: (params?: {} | undefined) => Promi
1954
2255
  *
1955
2256
  * @param params - 动作描述、预期行为及工具调用约束参数。
1956
2257
  * @returns 返回一个 Promise,在动作指令成功下发时解析。
2258
+ * @deprecated 使用 {@link sendFollowUpMessage} 发送后续消息。
1957
2259
  * @remarks
1958
2260
  * 适用于卡片交互后向模型补充结构化动作上下文,例如按钮点击、选项选择或表单提交。
1959
2261
  * `getWidgetInstanceId` 仅在卡片环境中有效,在智能服务页面中会返回 `undefined`。如果需要在页面中调用,
@@ -1983,9 +2285,18 @@ export declare const disableUserScreenRecord: (params?: {} | undefined) => Promi
1983
2285
  * @precondition Android | 在卡片或会话环境中调用,需传入有效的 widgetInstanceId。
1984
2286
  * @precondition iOS | 在卡片或会话环境中调用,需传入有效的 widgetInstanceId。
1985
2287
  * @usageNote All | 请在卡片交互(按钮点击、选项选择、表单提交)后调用,向模型补充结构化动作上下文。
1986
- * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
2288
+ * @errorExample
2289
+ * ```json
2290
+ * {
2291
+ * "errNo": 116,
2292
+ * "errMsg": "resource not found"
2293
+ * }
2294
+ * ```
2295
+ * @errorCode errNo | 103 | feature not support | Android,iOS | 当前豆包环境未提供消息下发能力 | 请在支持消息下发的豆包环境中调用。
2296
+ * @errorCode errNo | 116 | resource not found | Android,iOS | 依据 widgetInstanceId 找不到对应会话 | 确认 widgetInstanceId 有效且处于会话环境后重试。
2297
+ * @platformNote All | 找不到会话返回 116;当前豆包环境未提供消息下发能力时返回 103。
1987
2298
  *
1988
- * @public
2299
+ * @internal
1989
2300
  */
1990
2301
  export declare const dispatchActionDirective: (params: DispatchActionDirectiveParams) => Promise<object>;
1991
2302
 
@@ -2099,8 +2410,8 @@ export declare interface DoubaoAppAccountInfo {
2099
2410
  * @platformSupport PC | unsupported | 当前未提供该平台实现。
2100
2411
  * @platformSupport HarmonyOS | unsupported | 当前未提供该平台实现。
2101
2412
  * @permission none | - | none | Android,iOS | 无需额外权限
2102
- * @precondition All | 下载地址需通过宿主侧下载域名白名单校验,单个文件不得超过 200 MB,单个智能服务同时最多执行 10 个下载任务;指定 filePath 时仅支持临时目录或用户目录。
2103
- * @usageNote All | 未指定 filePath 时文件写入临时目录,并通过 Promise resolve 结果的 tempFilePath 返回;临时文件的生命周期由宿主管理。
2413
+ * @precondition All | 下载地址需通过豆包配置的下载域名白名单校验,单个文件不得超过 200 MB,单个智能服务同时最多执行 10 个下载任务;指定 filePath 时仅支持临时目录或用户目录。
2414
+ * @usageNote All | 未指定 filePath 时文件写入临时目录,并通过 Promise resolve 结果的 tempFilePath 返回;临时文件的生命周期由豆包客户端管理。
2104
2415
  * @usageNote All | 不跟随 HTTP 重定向,3xx 响应使 Promise reject;4xx、5xx 响应在文件写入成功后仍使 Promise resolve。
2105
2416
  * @resultExample
2106
2417
  * ```json
@@ -2124,10 +2435,10 @@ export declare function downloadFile(params: DownloadFileParams): DownloadTask;
2124
2435
  * @public
2125
2436
  */
2126
2437
  export declare interface DownloadFileParams {
2127
- /** 下载资源地址,需为完整 HTTPS URL,并通过宿主侧下载域名白名单校验。 */
2438
+ /** 下载资源地址,需为完整 HTTPS URL,并通过豆包配置的下载域名白名单校验。 */
2128
2439
  url: string;
2129
2440
  /**
2130
- * 请求 Header。`referer` 和 `user-agent` 由宿主管控,业务传入值不会透传。
2441
+ * 请求 Header。`referer` 和 `user-agent` 由豆包客户端管理,业务传入值不会透传。
2131
2442
  *
2132
2443
  * @default -
2133
2444
  */
@@ -2238,7 +2549,7 @@ export declare interface DownloadTaskHeadersReceivedEvent {
2238
2549
  * ```json
2239
2550
  * {}
2240
2551
  * ```
2241
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据异常信息重试
2552
+ * @errorCode common | 102 | Android,iOS
2242
2553
  *
2243
2554
  * @public
2244
2555
  */
@@ -2264,7 +2575,7 @@ export declare const enableUserScreenRecord: (params?: {} | undefined) => Promis
2264
2575
  * @permission none | - | none | Android,iOS | 无需额外权限
2265
2576
  * @precondition All | 无额外前置条件
2266
2577
  * @usageNote All | 会退出当前所有页面;当 navigateBack 已无法继续返回时,使用 exitApp 退出智能服务。
2267
- * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
2578
+ * @errorCode common | 102 | Android,iOS
2268
2579
  *
2269
2580
  * @public
2270
2581
  */
@@ -2455,7 +2766,7 @@ export declare interface FileSystemManager {
2455
2766
  * }
2456
2767
  * }
2457
2768
  * ```
2458
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据异常信息确认智能服务运行环境后重试
2769
+ * @errorCode common | 102 | Android
2459
2770
  *
2460
2771
  * @public
2461
2772
  */
@@ -2504,37 +2815,41 @@ export declare interface GetAccountInfoResult {
2504
2815
  * }
2505
2816
  * }
2506
2817
  * ```
2507
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据异常信息确认智能服务运行环境后重试
2818
+ * @errorCode common | 102 | Android
2508
2819
  *
2509
2820
  * @public
2510
2821
  */
2511
2822
  export declare function getAccountInfoSync(params?: {}): GetAccountInfoResult;
2512
2823
 
2513
2824
  /**
2514
- * 获取宿主应用的系统授权设置。
2825
+ * 获取豆包客户端的系统授权设置。
2515
2826
  *
2516
- * 调用只读取当前系统授权状态,不会申请权限或触发系统授权弹窗。状态字段固定返回
2517
- * `authorized`、`denied` 或 `not determined`。
2827
+ * 调用只读取当前系统授权状态,不会申请权限或触发系统授权弹窗。原有状态字段固定返回
2828
+ * `authorized`、`denied` 或 `not determined`,精细授权字段用于区分部分、只读、只写、前后台等能力。
2518
2829
  *
2519
- * @returns 返回宿主应用相册、蓝牙、摄像头、定位、麦克风、通知和日历权限状态。
2830
+ * @returns 返回豆包客户端的相册、蓝牙、摄像头、定位、麦克风、通知和日历系统权限状态。
2520
2831
  * @example
2521
2832
  * ```typescript
2522
2833
  * import { getAppAuthorizeSetting } from '@doubao-dev/framework/api';
2523
2834
  *
2524
2835
  * const result = getAppAuthorizeSetting();
2525
- * console.log(result.cameraAuthorized, result.microphoneAuthorized);
2526
- * console.log(result.notificationAuthorized, result.locationReducedAccuracy);
2836
+ * const detail = result.phoneCalendarAuthorizationDetail;
2837
+ * const canWriteCalendar =
2838
+ * detail === 'full' ||
2839
+ * detail === 'write only' ||
2840
+ * (detail == null && result.phoneCalendarAuthorized === 'authorized');
2841
+ * console.log(canWriteCalendar);
2527
2842
  * ```
2528
2843
  *
2529
2844
  * @since 0.0.40
2530
- * @contractStatus verified | Android 与 iOS 均同步返回固定 11 个字段;除 locationReducedAccuracy 为 boolean 外,其余授权状态字段均限定为 authorized、denied 或 not determined,调用不会触发权限申请。
2531
- * @platformSupport Android | supported | 支持同步读取宿主应用授权状态。
2532
- * @platformSupport iOS | supported | 支持同步读取宿主应用授权状态。
2845
+ * @contractStatus verified | Android 与 iOS 均同步返回原有授权状态及可映射的精细授权字段;精细字段无法可靠映射或平台不适用时可为空,调用不会触发权限申请。
2846
+ * @platformSupport Android | supported | 支持同步读取豆包客户端的系统权限状态。
2847
+ * @platformSupport iOS | supported | 支持同步读取豆包客户端的系统权限状态。
2533
2848
  * @platformSupport PC | unsupported | 当前未提供该平台实现。
2534
2849
  * @platformSupport HarmonyOS | unsupported | 当前未提供该平台实现。
2535
2850
  * @permission none | - | none | Android,iOS | 无需额外权限
2536
2851
  * @precondition All | 无额外前置条件
2537
- * @usageNote All | 本接口查询宿主应用权限,不等同于查询当前小程序 scope 授权。
2852
+ * @usageNote All | 本接口查询豆包客户端的系统权限,不等同于查询当前智能服务的 scope 授权。
2538
2853
  * @usageNote iOS | SDK 首次完成通知设置异步预热前,或应用重新激活后的刷新尚未完成时,四个通知字段可能仍为旧值或 not determined。
2539
2854
  * @resultExample
2540
2855
  * ```json
@@ -2549,14 +2864,23 @@ export declare function getAccountInfoSync(params?: {}): GetAccountInfoResult;
2549
2864
  * "notificationAlertAuthorized": "authorized",
2550
2865
  * "notificationBadgeAuthorized": "denied",
2551
2866
  * "notificationSoundAuthorized": "authorized",
2552
- * "phoneCalendarAuthorized": "not determined"
2867
+ * "phoneCalendarAuthorized": "denied",
2868
+ * "albumAuthorizationDetail": "limited",
2869
+ * "bluetoothAuthorizationDetail": "full",
2870
+ * "cameraAuthorizationDetail": "full",
2871
+ * "locationAuthorizationDetail": "foreground precise",
2872
+ * "microphoneAuthorizationDetail": "full",
2873
+ * "notificationAuthorizationDetail": "provisional",
2874
+ * "phoneCalendarAuthorizationDetail": "write only"
2553
2875
  * }
2554
2876
  * ```
2555
2877
  * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
2556
2878
  * @platformNote Android | albumAuthorized 和通知分项固定返回 not determined,locationReducedAccuracy 固定返回 false 且不表示实际定位精度
2557
2879
  * @platformNote Android | bluetoothAuthorized、cameraAuthorized、locationAuthorized、microphoneAuthorized、notificationAuthorized 和 phoneCalendarAuthorized 不区分尚未申请和已经拒绝,两种情况均返回 denied
2558
2880
  * @platformNote Android | locationAuthorized 在粗略或精确定位任一权限已授权时返回 authorized;phoneCalendarAuthorized 仅在读、写日历权限均授权时返回 authorized
2881
+ * @platformNote Android | 精细字段区分 Android 14 部分相册、日历读写、定位前后台和精度,以及蓝牙部分子权限
2559
2882
  * @platformNote iOS | 相册 limited 映射为 authorized,通知 provisional 和 ephemeral 映射为 authorized
2883
+ * @platformNote iOS | 精细字段区分相册 limited/add only、日历 write only、定位前后台和精度,以及通知 provisional;ephemeral 暂不映射
2560
2884
  *
2561
2885
  * @public
2562
2886
  */
@@ -2586,12 +2910,56 @@ export declare interface GetAppAuthorizeSettingResult {
2586
2910
  notificationSoundAuthorized: AppAuthorizeStatus;
2587
2911
  /** 系统日历授权状态 */
2588
2912
  phoneCalendarAuthorized: AppAuthorizeStatus;
2913
+ /**
2914
+ * 相册精细授权状态;旧客户端或无法可靠映射时不返回该字段或返回 `null`。
2915
+ *
2916
+ * 继承 {@link BasicAuthorizationDetail} 的全部取值,并增加:
2917
+ * - `limited`:只能访问用户选择的部分照片;支持 iOS 和 Android 14 及以上版本。
2918
+ * - `add only`:只能向相册添加照片,不能读取相册内容;仅 iOS 支持。
2919
+ */
2920
+ albumAuthorizationDetail?: AlbumAuthorizationDetail | null;
2921
+ /**
2922
+ * 蓝牙精细授权状态;旧客户端或无法可靠映射时不返回该字段或返回 `null`。
2923
+ *
2924
+ * 继承 {@link BasicAuthorizationDetail} 的全部取值,并增加:
2925
+ * - `partial`:只获得部分已声明的蓝牙子权限;仅 Android 支持。
2926
+ */
2927
+ bluetoothAuthorizationDetail?: BluetoothAuthorizationDetail | null;
2928
+ /** 摄像头精细授权状态,取值与 {@link BasicAuthorizationDetail} 一致;旧客户端或无法可靠映射时不返回该字段或返回 `null`。 */
2929
+ cameraAuthorizationDetail?: CameraAuthorizationDetail | null;
2930
+ /**
2931
+ * 定位精细授权状态;旧客户端或无法可靠映射时不返回该字段或返回 `null`。
2932
+ *
2933
+ * 继承 {@link UnauthorizedDetail} 的全部取值;获得权限时返回:
2934
+ * - `foreground approximate`:仅应用在前台时可以获取模糊定位。
2935
+ * - `foreground precise`:仅应用在前台时可以获取精确定位。
2936
+ * - `background approximate`:应用在前台或后台时均可以获取模糊定位。
2937
+ * - `background precise`:应用在前台或后台时均可以获取精确定位。
2938
+ */
2939
+ locationAuthorizationDetail?: LocationAuthorizationDetail | null;
2940
+ /** 麦克风精细授权状态,取值与 {@link BasicAuthorizationDetail} 一致;旧客户端或无法可靠映射时不返回该字段或返回 `null`。 */
2941
+ microphoneAuthorizationDetail?: MicrophoneAuthorizationDetail | null;
2942
+ /**
2943
+ * 通知精细授权状态;旧客户端或无法可靠映射时不返回该字段或返回 `null`。
2944
+ *
2945
+ * 继承 {@link BasicAuthorizationDetail} 的全部取值,并增加:
2946
+ * - `provisional`:iOS 临时静默授权;不会弹出授权框,通知只进入通知中心。
2947
+ */
2948
+ notificationAuthorizationDetail?: NotificationAuthorizationDetail | null;
2949
+ /**
2950
+ * 系统日历精细授权状态;旧客户端或无法可靠映射时不返回该字段或返回 `null`。
2951
+ *
2952
+ * 继承 {@link BasicAuthorizationDetail} 的全部取值,并增加:
2953
+ * - `read only`:只能读取日历,不能新增、修改或删除日程;仅 Android 支持。
2954
+ * - `write only`:只能新增日程,不能读取现有日历数据。
2955
+ */
2956
+ phoneCalendarAuthorizationDetail?: PhoneCalendarAuthorizationDetail | null;
2589
2957
  }
2590
2958
 
2591
2959
  /**
2592
2960
  * 获取应用基础信息。
2593
2961
  *
2594
- * @returns 返回 SDK 版本、调试开关、宿主信息、语言和主题等字段,见 {@link GetAppBaseInfoResult}。
2962
+ * @returns 返回 SDK 版本、调试开关、豆包客户端信息、语言和主题等字段,见 {@link GetAppBaseInfoResult}。
2595
2963
  * @example
2596
2964
  * ```typescript
2597
2965
  * import { getAppBaseInfo } from '@doubao-dev/framework/api';
@@ -2636,11 +3004,11 @@ export declare interface GetAppBaseInfoResult {
2636
3004
  SDKVersion?: string;
2637
3005
  /** 是否已打开调试 */
2638
3006
  enableDebug?: boolean;
2639
- /** 当前豆包 App 运行的宿主环境 */
3007
+ /** 当前豆包客户端信息 */
2640
3008
  host?: AppBaseInfoHost;
2641
3009
  /** 当前语言 */
2642
3010
  language: string;
2643
- /** 宿主版本号 */
3011
+ /** 豆包客户端版本号 */
2644
3012
  version?: string;
2645
3013
  /** 当前主题 */
2646
3014
  theme?: 'light' | 'dark';
@@ -2649,7 +3017,7 @@ export declare interface GetAppBaseInfoResult {
2649
3017
  /**
2650
3018
  * 获取应用基础信息。
2651
3019
  *
2652
- * @returns 返回 SDK 版本、调试开关、宿主信息、语言和主题等字段,见 {@link GetAppBaseInfoResult}。
3020
+ * @returns 返回 SDK 版本、调试开关、豆包客户端信息、语言和主题等字段,见 {@link GetAppBaseInfoResult}。
2653
3021
  * @example
2654
3022
  * ```typescript
2655
3023
  * import { getAppBaseInfoSync } from '@doubao-dev/framework/api';
@@ -2774,7 +3142,7 @@ export declare function getBackgroundAudioManager(): BackgroundAudioManager;
2774
3142
  * "level": 82
2775
3143
  * }
2776
3144
  * ```
2777
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据异常信息重试
3145
+ * @errorCode common | 102 | Android
2778
3146
  *
2779
3147
  * @public
2780
3148
  */
@@ -3217,6 +3585,40 @@ export declare interface GetBluetoothDevicesResult {
3217
3585
  devices: BluetoothDevice[];
3218
3586
  }
3219
3587
 
3588
+ /**
3589
+ * 获取当前对话框状态快照。
3590
+ *
3591
+ * 调用不会改变对话框状态,也不会触发高度变化事件。
3592
+ *
3593
+ * @example
3594
+ * ```typescript
3595
+ * import { getChatPanelInfo } from '@doubao-dev/framework/api';
3596
+ *
3597
+ * const { height, state } = await getChatPanelInfo();
3598
+ * console.log('current chat panel', { height, state });
3599
+ * ```
3600
+ * @since 0.0.42
3601
+ * @contractStatus verified | 请求参数、返回字段和状态枚举与对话框状态查询协议一致。
3602
+ * @platformSupport Android | supported | 支持获取当前对话框状态快照。
3603
+ * @platformSupport iOS | supported | 支持获取当前对话框状态快照。
3604
+ * @platformSupport PC | unsupported | 当前未提供该平台实现。
3605
+ * @platformSupport HarmonyOS | unsupported | 当前未提供该平台实现。
3606
+ * @permission none | - | none | Android,iOS | 无需额外权限
3607
+ * @precondition All | 当前页面需在 app.config.ts 中声明 chat.enabled 为 true
3608
+ * @usageNote All | 调用只读取当前状态,不会改变对话框状态或触发高度变化事件。
3609
+ * @resultExample
3610
+ * ```json
3611
+ * {
3612
+ * "height": 336,
3613
+ * "state": "expanded"
3614
+ * }
3615
+ * ```
3616
+ * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
3617
+ *
3618
+ * @public
3619
+ */
3620
+ export declare const getChatPanelInfo: (params?: {} | undefined) => Promise<ChatPanelInfo>;
3621
+
3220
3622
  /**
3221
3623
  * 获取剪贴板内容。
3222
3624
  *
@@ -3245,7 +3647,15 @@ export declare interface GetBluetoothDevicesResult {
3245
3647
  * "data": "hello doubao"
3246
3648
  * }
3247
3649
  * ```
3248
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据异常信息确认豆包是否提供剪贴板能力
3650
+ * @errorExample
3651
+ * ```json
3652
+ * {
3653
+ * "errNo": 103,
3654
+ * "errMsg": "feature not support"
3655
+ * }
3656
+ * ```
3657
+ * @errorCode common | 102 | Android,iOS
3658
+ * @errorCode errNo | 103 | feature not support | Android,iOS | 当前豆包版本或运行环境未提供剪贴板读取能力 | 在支持剪贴板能力的豆包版本中调用。
3249
3659
  *
3250
3660
  * @public
3251
3661
  */
@@ -3362,7 +3772,26 @@ export declare interface GetConnectedBluetoothDevicesResult {
3362
3772
  * }
3363
3773
  * }
3364
3774
  * ```
3365
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据返回的错误信息(如未连接、无权限)提示用户
3775
+ * @errorExample
3776
+ * ```json
3777
+ * {
3778
+ * "errNo": 1401002,
3779
+ * "errMsg": "wifi is not connected"
3780
+ * }
3781
+ * ```
3782
+ * @errorCode common | 102 | Android,iOS
3783
+ * @errorCode errNo | 1401001 | wifi is not initialized | Android,iOS | 调用前未先调用 startWifi 完成初始化 | 先调用 startWifi 再获取已连接 Wi-Fi
3784
+ * @errorCode errNo | 1401002 | wifi is not connected | Android,iOS | 当前未连接 Wi-Fi 或无法读取已连接 Wi-Fi 信息 | 确认设备已连接 Wi-Fi 后重试
3785
+ * @errorCode errNo | 106 | system permission denied | iOS | 系统定位服务未开启,无法读取 Wi-Fi 信息 | 引导用户在系统设置中开启定位服务
3786
+ * @errorCode errNo | 107 | user permission denied | iOS | 用户未授予定位权限或未开启精确定位 | 引导用户授予定位权限并开启精确定位
3787
+ * @errorCode errNo | 114 | operation cancelled | iOS | 用户取消了位置权限授权弹窗 | 用户需要时可再次触发授权后重试
3788
+ * @errorCode errNo | 301 | network request cancelled | iOS | 位置授权过程中的网络请求被取消 | 确认应用和网络状态后重试
3789
+ * @errorCode errNo | 302 | connection timed out | iOS | 位置授权过程中的网络连接超时 | 检查网络连接后重试
3790
+ * @errorCode errNo | 303 | no network connection | iOS | 当前无可用网络连接 | 恢复网络连接后重试
3791
+ * @errorCode errNo | 305 | network failure | iOS | 位置授权过程中发生其他网络错误 | 检查网络连接,稍后重试
3792
+ * @errorCode errNo | 112 | invalid result | iOS | 位置授权服务返回的数据无法解析 | 稍后重试;持续失败时反馈服务端响应异常
3793
+ * @platformNote Android | 未连接或因缺少定位权限无法读取时统一返回 1401002;未初始化返回 1401001。
3794
+ * @platformNote iOS | 读取前会发起位置权限授权,可返回 106/107 及授权网络类失败(301/302/303/305/112);读取阶段未连接返回 1401002。
3366
3795
  *
3367
3796
  * @public
3368
3797
  */
@@ -3438,7 +3867,7 @@ export declare const getDeviceInfo: (params?: {} | undefined) => Promise<GetDevi
3438
3867
  * @public
3439
3868
  */
3440
3869
  export declare interface GetDeviceInfoResult {
3441
- /** 宿主 App 二进制接口类型,仅 Android 支持。 */
3870
+ /** 豆包客户端二进制接口类型,仅 Android 支持。 */
3442
3871
  abi?: string;
3443
3872
  /** 设备二进制接口类型,仅 Android 支持。 */
3444
3873
  deviceAbi?: string;
@@ -3564,7 +3993,21 @@ export declare interface GetFileInfoResult {
3564
3993
  * @permission none | - | none | Android,iOS | 无需额外权限
3565
3994
  * @precondition All | 无额外前置条件,直接调用 getFileSystemManager 获取管理器实例后再调用其方法
3566
3995
  * @usageNote All | readFile、readFileSync 省略 encoding 时默认返回 Base64 字符串,writeFile、appendFile 省略 encoding 时默认按 UTF-8 写入;需要明确编码时请显式传入 encoding。
3567
- * @errorCode none | - | - | Android,iOS | 文件操作失败时对应方法会 reject 或抛出异常,错误信息通过 errMsg 描述,当前不提供稳定的业务错误码 | 根据 errMsg 检查路径、权限与参数后重试
3996
+ * @errorExample
3997
+ * ```json
3998
+ * {
3999
+ * "errNo": 203,
4000
+ * "errMsg": "file does not exist"
4001
+ * }
4002
+ * ```
4003
+ * @errorCode common | 102 | Android,iOS
4004
+ * @errorCode common | 103 | Android
4005
+ * @errorCode common | 104 | Android,iOS
4006
+ * @errorCode errNo | 203 | file does not exist | Android,iOS | readFile、stat、getFileInfo、copyFile、rename、truncate、unlink、rmdir、removeSavedFile、unzip 等操作的目标文件或目录不存在 | 确认路径存在或先创建后重试。
4007
+ * @errorCode errNo | 213 | invalid file path | Android,iOS | 传入的路径不是合法的沙箱内 appletfile 路径,或试图越过沙箱根目录访问 | 使用应用沙箱内的合法本地路径后重试。
4008
+ * @errorCode errNo | 208 | total size limit exceeded | Android,iOS | readFile、writeFile、appendFile、copyFile 时单次读写超过单文件大小上限,或写入后超出沙箱存储配额 | 减小单次读写数据量或清理已保存文件后重试。
4009
+ * @errorCode errNo | 1901001 | target is a directory | Android,iOS | 对目录执行了仅适用于文件的操作(如 readFile、writeFile、appendFile、copyFile、truncate、getFileInfo、unzip 的源文件),或 rmdir 删除非空目录时未开启 recursive | 改为对文件操作,或删除目录时开启 recursive。
4010
+ * @errorCode errNo | 1901002 | target is not a directory | Android,iOS | 对文件执行了仅适用于目录的操作(如 readdir),或 mkdir 目标已存在同名文件、unzip 的 targetPath 不是目录 | 确认目标为目录后重试。
3568
4011
  * @public
3569
4012
  */
3570
4013
  export declare function getFileSystemManager(): FileSystemManager;
@@ -3698,7 +4141,19 @@ export declare interface GetImageInfoResult {
3698
4141
  * "accuracy": 15
3699
4142
  * }
3700
4143
  * ```
3701
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据异常信息提示用户检查授权和系统定位服务
4144
+ * @errorExample
4145
+ * ```json
4146
+ * {
4147
+ * "errNo": 107,
4148
+ * "errMsg": "user permission denied"
4149
+ * }
4150
+ * ```
4151
+ * @errorCode common | 102 | Android,iOS
4152
+ * @errorCode common | 116 | Android
4153
+ * @errorCode errNo | 106 | system permission denied | Android,iOS | 系统定位权限被拒绝或系统定位服务不可用 | 引导用户在系统设置中开启定位服务与权限后重试
4154
+ * @errorCode errNo | 107 | user permission denied | Android,iOS | 用户拒绝了应用位置授权(scope.userLocation) | 调用 authorize 重新发起应用授权后重试
4155
+ * @platformNote Android | 用户拒绝应用授权返回 107、系统权限被拒返回 106;定位失败等其他失败统一返回 102。
4156
+ * @platformNote iOS | 应用授权或系统权限被拒返回 107/106;其他失败(含非法 scope)统一返回 102。
3702
4157
  * @platformNote iOS | mode 为 1 时按高精度模式处理
3703
4158
  *
3704
4159
  * @public
@@ -3724,6 +4179,13 @@ export declare interface GetLocationParams {
3724
4179
  * @constraint 取值为 0、1 或 2
3725
4180
  */
3726
4181
  mode?: number;
4182
+ /**
4183
+ * 是否接受轻定位结果。轻定位会直接利用设备已有的 Wi-Fi 扫描缓存,由服务端快速计算当前位置,缩短定位耗时。
4184
+ *
4185
+ * @default false
4186
+ * @constraint 仅 Android 生效,需使用 0.0.42 及以上版本的基础库
4187
+ */
4188
+ acceptLightLocation?: boolean;
3727
4189
  /**
3728
4190
  * 超时时间,单位毫秒,默认 30000
3729
4191
  *
@@ -3834,7 +4296,9 @@ export declare const getMenuButtonBoundingClientRect: () => MenuButtonBoundingCl
3834
4296
  * "hasSystemProxy": false
3835
4297
  * }
3836
4298
  * ```
3837
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据异常信息重试
4299
+ * @errorCode common | 102 | Android
4300
+ * @platformNote Android | 正常场景稳定返回网络类型;失败时返回 102。
4301
+ * @platformNote iOS | 始终成功返回网络类型,无失败分支。
3838
4302
  *
3839
4303
  * @public
3840
4304
  */
@@ -3925,8 +4389,18 @@ export declare interface GetNetworkTypeResult {
3925
4389
  * "logId": "20260519xxxx"
3926
4390
  * }
3927
4391
  * ```
3928
- * @errorCode none | - | - | Android,iOS | 无稳定的顶层 errNo/errMsg;调用失败时 Promise reject,业务错误(errNo、errMsg、errLogId)在错误对象的 data 字段 | 通过 catch 捕获并读取 e.data 排查
4392
+ * @errorExample
4393
+ * ```json
4394
+ * {
4395
+ * "errNo": 114,
4396
+ * "errMsg": "operation cancelled"
4397
+ * }
4398
+ * ```
4399
+ * @errorCode common | 102 | Android,iOS
4400
+ * @errorCode common | 103 | Android,iOS
4401
+ * @errorCode errNo | 114 | operation cancelled | Android | 用户在收银台中取消了支付操作 | 用户需要时可再次调用 `getOrderPayment` 重新拉起收银台。
3929
4402
  * @platformNote Android | 需在前台可见的 Activity 中调用,应用退至后台或无有效页面时会返回失败。
4403
+ * @platformNote Android | 用户主动取消支付时返回顶层 errNo 114(operation cancelled);iOS 在该场景不返回顶层专属 errNo。
3930
4404
  *
3931
4405
  * @public
3932
4406
  */
@@ -3998,10 +4472,20 @@ export declare interface GetOrderPaymentResult {
3998
4472
  * "logId": "20260519xxxx"
3999
4473
  * }
4000
4474
  * ```
4001
- * @errorCode none | - | - | Android,iOS | 无稳定的顶层 errNo/errMsg;调用失败时 Promise reject,业务错误(errNo、errMsg、errLogId)在错误对象的 data 字段 | 通过 catch 捕获并读取 e.data 排查
4002
- * @platformNote Android | 需在前台可见的 Activity 中调用,应用退至后台或无有效页面时会返回失败。
4003
- *
4004
- * @public
4475
+ * @errorExample
4476
+ * ```json
4477
+ * {
4478
+ * "errNo": 114,
4479
+ * "errMsg": "operation cancelled"
4480
+ * }
4481
+ * ```
4482
+ * @errorCode common | 102 | Android,iOS
4483
+ * @errorCode common | 103 | Android,iOS
4484
+ * @errorCode errNo | 114 | operation cancelled | Android | 用户在收银台中取消了支付操作 | 用户需要时可再次调用 `getOrderPaymentWithSign` 重新拉起收银台。
4485
+ * @platformNote Android | 需在前台可见的 Activity 中调用,应用退至后台或无有效页面时会返回失败。
4486
+ * @platformNote Android | 用户主动取消支付时返回顶层 errNo 114(operation cancelled);iOS 在该场景不返回顶层专属 errNo。
4487
+ *
4488
+ * @public
4005
4489
  */
4006
4490
  export declare const getOrderPaymentWithSign: (params: GetOrderPaymentWithSignParams) => Promise<GetOrderPaymentResult>;
4007
4491
 
@@ -4042,39 +4526,60 @@ export declare interface GetPackageInfoResult {
4042
4526
  }
4043
4527
 
4044
4528
  /**
4045
- * 同步获取当前 package 信息。
4529
+ * 同步获取当前 package 信息,仅供 Web SDK 模拟器使用。
4530
+ *
4531
+ * @internal
4532
+ */
4533
+ export declare const getPackageInfoSync: () => GetPackageInfoResult;
4534
+
4535
+ /**
4536
+ * 获取当前智能服务应用的性能数据。
4537
+ *
4538
+ * Entry 由客户端保存;`getEntries*()` 同步查询当前快照,observer 只接收新完成的 Entry。
4046
4539
  *
4047
- * @returns 返回当前 package appId、展示名称和展示图标地址,见 {@link GetPackageInfoResult}。
4540
+ * @returns 返回可查询性能 Entry 和创建观察者的 {@link Performance}。
4048
4541
  * @example
4049
4542
  * ```typescript
4050
- * import { getPackageInfoSync } from '@doubao-dev/framework/api';
4543
+ * import { getPerformance } from '@doubao-dev/framework/api';
4051
4544
  *
4052
- * const result = getPackageInfoSync();
4545
+ * const performance = getPerformance();
4546
+ * const observer = performance.createObserver((entryList) => {
4547
+ * console.log(entryList.getEntries());
4548
+ * });
4053
4549
  *
4054
- * console.log(result.appId, result.name, result.iconSrc);
4550
+ * performance.setBufferSize(100);
4551
+ * observer.observe({ entryTypes: ['render'] });
4552
+ * console.log(performance.getEntriesByType('render'));
4553
+ * observer.disconnect();
4055
4554
  * ```
4056
4555
  *
4057
- * @since 0.0.34
4058
- * @contractStatus verified | 由智能服务运行环境同步读取,字段与公开类型一致。
4059
- * @platformSupport Android | supported | 支持同步读取当前 package 信息。
4060
- * @platformSupport iOS | supported | 支持同步读取当前 package 信息。
4556
+ * @since 0.0.42
4557
+ * @contractStatus verified | Android 支持同步查询已记录的性能 Entry、设置缓冲区大小,并向已观察的运行时发送新完成的 Entry。
4558
+ * @platformSupport Android | supported | 支持查询性能 Entry、设置性能缓冲区大小和创建性能观察者。
4559
+ * @platformSupport iOS | unsupported | 当前未提供该平台实现。
4061
4560
  * @platformSupport PC | unsupported | 当前未提供该平台实现。
4062
4561
  * @platformSupport HarmonyOS | unsupported | 当前未提供该平台实现。
4063
4562
  * @permission none | - | none | Android,iOS | 无需额外权限
4064
4563
  * @precondition All | 无额外前置条件
4564
+ * @usageNote All | 仅在需要接收后续新完成的 Entry 时创建 observer;不再需要时调用 disconnect。
4065
4565
  * @resultExample
4066
4566
  * ```json
4067
- * {
4068
- * "appId": "7000000000000000000",
4069
- * "name": "示例智能服务",
4070
- * "iconSrc": "https://example.com/icon.png"
4071
- * }
4567
+ * [
4568
+ * {
4569
+ * "entryType": "render",
4570
+ * "name": "firstRender",
4571
+ * "startTime": 1730000000000,
4572
+ * "duration": 42,
4573
+ * "path": "pages/index/index",
4574
+ * "pageId": 1
4575
+ * }
4576
+ * ]
4072
4577
  * ```
4073
4578
  * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
4074
4579
  *
4075
4580
  * @public
4076
4581
  */
4077
- export declare const getPackageInfoSync: () => GetPackageInfoResult;
4582
+ export declare function getPerformance(): Performance_2;
4078
4583
 
4079
4584
  /**
4080
4585
  * 获取隐私设置状态。
@@ -4105,7 +4610,8 @@ export declare const getPackageInfoSync: () => GetPackageInfoResult;
4105
4610
  * "needAuthorization": false
4106
4611
  * }
4107
4612
  * ```
4108
- * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
4613
+ * @errorCode common | 102 | Android,iOS
4614
+ * @platformNote All | 该 API 无专属错误码,失败时统一返回 102。
4109
4615
  *
4110
4616
  * @public
4111
4617
  */
@@ -4251,7 +4757,7 @@ export declare interface GetSavedFileListResult {
4251
4757
  * "value": 0.6
4252
4758
  * }
4253
4759
  * ```
4254
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | Android 根据异常信息重试,iOS 暂不支持该 API
4760
+ * @errorCode common | 102 | Android
4255
4761
  *
4256
4762
  * @public
4257
4763
  */
@@ -4298,7 +4804,17 @@ export declare interface GetScreenBrightnessResult {
4298
4804
  * }
4299
4805
  * }
4300
4806
  * ```
4301
- * @errorCode none | - | - | Android,iOS | 传入 withSubscriptions: true 等失败当前只返回文本信息,未稳定返回顶层 errNo/errMsg | 不要传入 withSubscriptions: true
4807
+ * @errorExample
4808
+ * ```json
4809
+ * {
4810
+ * "errNo": 103,
4811
+ * "errMsg": "feature not support"
4812
+ * }
4813
+ * ```
4814
+ * @errorCode common | 102 | Android,iOS
4815
+ * @errorCode errNo | 103 | feature not support | Android,iOS | 传入 withSubscriptions: true,豆包当前不支持订阅消息模板 | 不要传入 withSubscriptions: true,仅使用默认的 false
4816
+ * @errorCode errNo | 116 | resource not found | Android | 未找到当前应用对应的运行环境记录 | 确认应用已正确安装并在有效运行环境中调用后重试
4817
+ * @platformNote iOS | iOS 不返回 errNo 116(resource not found),相应失败场景统一以 errNo 102(internal error)返回。
4302
4818
  *
4303
4819
  * @public
4304
4820
  */
@@ -4319,7 +4835,7 @@ export declare interface GetSettingParams {
4319
4835
  export declare interface GetSettingResult {
4320
4836
  /** 用户授权结果,key 为权限 scope,value 表示是否已授权 */
4321
4837
  authSetting: AuthSetting;
4322
- /** 用户订阅消息设置,withSubscriptions true 时才会返回 */
4838
+ /** 预留的订阅消息设置字段。豆包当前仅支持 `withSubscriptions: false`,因此不会返回该字段。 */
4323
4839
  subscriptionsSetting?: SubscriptionsSetting;
4324
4840
  }
4325
4841
 
@@ -4520,7 +5036,7 @@ export declare function getStorageSync<TData = unknown>(params: GetStorageParams
4520
5036
  /**
4521
5037
  * 获取系统信息。
4522
5038
  *
4523
- * @returns 返回设备品牌、型号、屏幕尺寸、宿主信息和安全区域等字段,见 {@link GetSystemInfoResult}。
5039
+ * @returns 返回设备品牌、型号、屏幕尺寸、豆包客户端信息和安全区域等字段,见 {@link GetSystemInfoResult}。
4524
5040
  * @example
4525
5041
  * ```typescript
4526
5042
  * import { getSystemInfo } from '@doubao-dev/framework/api';
@@ -4533,7 +5049,7 @@ export declare function getStorageSync<TData = unknown>(params: GetStorageParams
4533
5049
  *
4534
5050
  * @since 0.0.34
4535
5051
  * @contractStatus verified | 设备品牌、屏幕尺寸、系统信息和安全区域等字段与公开类型一致。
4536
- * @contractMismatch non-blocking | return | abi | Android,iOS | abi 为可选字段,返回宿主 App 二进制接口类型 | Android 返回具体 abi,iOS 不返回该字段 | 依赖 abi 的逻辑仅在 Android 生效 | packages/open-api/src/basic/system/system.ts; ai-sdk/android/ai-sdk/src/main/java/com/bytedance/ai/bridge/method/system/GetSystemInfoMethod.kt; ai-sdk/ios/AISDK/Sources/JSBridge/Methods/System | 明确 abi 为 Android 专属字段,或补齐 iOS 对应字段
5052
+ * @contractMismatch non-blocking | return | abi | Android,iOS | abi 为可选字段,返回豆包客户端二进制接口类型 | Android 返回具体 abi,iOS 不返回该字段 | 依赖 abi 的逻辑仅在 Android 生效 | packages/open-api/src/basic/system/system.ts; ai-sdk/android/ai-sdk/src/main/java/com/bytedance/ai/bridge/method/system/GetSystemInfoMethod.kt; ai-sdk/ios/AISDK/Sources/JSBridge/Methods/System | 明确 abi 为 Android 专属字段,或补齐 iOS 对应字段
4537
5053
  * @platformSupport Android | supported | 支持获取系统信息。
4538
5054
  * @platformSupport iOS | supported | 支持获取系统信息。
4539
5055
  * @platformSupport PC | unsupported | 当前未提供该平台实现。
@@ -4572,7 +5088,7 @@ export declare function getStorageSync<TData = unknown>(params: GetStorageParams
4572
5088
  * }
4573
5089
  * ```
4574
5090
  * @errorCode common | 102 | Android
4575
- * @platformNote Android | abi 返回宿主 App 二进制接口类型(如 arm64-v8a),iOS 不返回该字段
5091
+ * @platformNote Android | abi 返回豆包客户端二进制接口类型(如 arm64-v8a),iOS 不返回该字段
4576
5092
  *
4577
5093
  * @public
4578
5094
  */
@@ -4598,7 +5114,7 @@ export declare interface GetSystemInfoResult {
4598
5114
  statusBarHeight: number;
4599
5115
  /** 系统语言,格式为 language_region,如 zh_CN、en_US */
4600
5116
  language: string;
4601
- /** 宿主版本号 */
5117
+ /** 豆包客户端版本号 */
4602
5118
  version?: string;
4603
5119
  /** 操作系统及版本,如 "Android 14"、"iOS 17.5" */
4604
5120
  system: string;
@@ -4616,14 +5132,14 @@ export declare interface GetSystemInfoResult {
4616
5132
  enableDebug?: boolean;
4617
5133
  /** 设备方向 */
4618
5134
  deviceOrientation?: 'portrait' | 'landscape';
4619
- /** 宿主 App 二进制接口类型(如 arm64-v8a),仅 Android 返回 */
5135
+ /** 豆包客户端二进制接口类型(如 arm64-v8a),仅 Android 返回 */
4620
5136
  abi?: string;
4621
5137
  }
4622
5138
 
4623
5139
  /**
4624
5140
  * 同步获取系统信息。
4625
5141
  *
4626
- * @returns 返回设备品牌、型号、屏幕尺寸、宿主信息和安全区域等字段,见 {@link GetSystemInfoResult}。
5142
+ * @returns 返回设备品牌、型号、屏幕尺寸、豆包客户端信息和安全区域等字段,见 {@link GetSystemInfoResult}。
4627
5143
  * @example
4628
5144
  * ```typescript
4629
5145
  * import { getSystemInfoSync } from '@doubao-dev/framework/api';
@@ -4636,7 +5152,7 @@ export declare interface GetSystemInfoResult {
4636
5152
  *
4637
5153
  * @since 0.0.34
4638
5154
  * @contractStatus verified | 设备品牌、屏幕尺寸、系统信息和安全区域等字段与公开类型一致。
4639
- * @contractMismatch non-blocking | return | abi | Android,iOS | abi 为可选字段,返回宿主 App 二进制接口类型 | Android 返回具体 abi,iOS 不返回该字段 | 依赖 abi 的逻辑仅在 Android 生效 | packages/open-api/src/basic/system/system.ts; ai-sdk/android/ai-sdk/src/main/java/com/bytedance/ai/bridge/method/system/GetSystemInfoMethod.kt; ai-sdk/ios/AISDK/Sources/JSBridge/Methods/System | 明确 abi 为 Android 专属字段,或补齐 iOS 对应字段
5155
+ * @contractMismatch non-blocking | return | abi | Android,iOS | abi 为可选字段,返回豆包客户端二进制接口类型 | Android 返回具体 abi,iOS 不返回该字段 | 依赖 abi 的逻辑仅在 Android 生效 | packages/open-api/src/basic/system/system.ts; ai-sdk/android/ai-sdk/src/main/java/com/bytedance/ai/bridge/method/system/GetSystemInfoMethod.kt; ai-sdk/ios/AISDK/Sources/JSBridge/Methods/System | 明确 abi 为 Android 专属字段,或补齐 iOS 对应字段
4640
5156
  * @platformSupport Android | supported | 支持同步获取系统信息。
4641
5157
  * @platformSupport iOS | supported | 支持同步获取系统信息。
4642
5158
  * @platformSupport PC | unsupported | 当前未提供该平台实现。
@@ -4675,7 +5191,7 @@ export declare interface GetSystemInfoResult {
4675
5191
  * }
4676
5192
  * ```
4677
5193
  * @errorCode common | 102 | Android
4678
- * @platformNote Android | abi 返回宿主 App 二进制接口类型(如 arm64-v8a),iOS 不返回该字段
5194
+ * @platformNote Android | abi 返回豆包客户端二进制接口类型(如 arm64-v8a),iOS 不返回该字段
4679
5195
  *
4680
5196
  * @public
4681
5197
  */
@@ -4713,7 +5229,7 @@ export declare const getSystemInfoSync: (_params?: {}) => GetSystemInfoResult;
4713
5229
  * "deviceOrientation": "portrait"
4714
5230
  * }
4715
5231
  * ```
4716
- * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
5232
+ * @errorCode common | 102 | Android
4717
5233
  * @platformNote Android | wifiEnabled 表示系统 Wi-Fi 开关是否打开
4718
5234
  * @platformNote iOS | wifiEnabled 表示当前是否正在通过 Wi-Fi 联网
4719
5235
  *
@@ -4775,7 +5291,26 @@ export declare interface GetSystemSettingResult {
4775
5291
  * ]
4776
5292
  * }
4777
5293
  * ```
4778
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据返回的错误信息(如未初始化、无权限)提示用户
5294
+ * @errorExample
5295
+ * ```json
5296
+ * {
5297
+ * "errNo": 1401001,
5298
+ * "errMsg": "wifi is not initialized"
5299
+ * }
5300
+ * ```
5301
+ * @errorCode common | 102 | Android,iOS
5302
+ * @errorCode errNo | 1401001 | wifi is not initialized | Android,iOS | 调用前未先调用 startWifi 完成初始化 | 先调用 startWifi 再获取 Wi-Fi 列表
5303
+ * @errorCode errNo | 1401002 | wifi is not connected | iOS | iOS 仅返回当前已连接 Wi-Fi,当前未连接时读取失败 | 确认设备已连接 Wi-Fi 后重试
5304
+ * @errorCode errNo | 106 | system permission denied | iOS | 系统定位服务未开启,无法读取 Wi-Fi 信息 | 引导用户在系统设置中开启定位服务
5305
+ * @errorCode errNo | 107 | user permission denied | iOS | 用户未授予定位权限或未开启精确定位 | 引导用户授予定位权限并开启精确定位
5306
+ * @errorCode errNo | 114 | operation cancelled | iOS | 用户取消了位置权限授权弹窗 | 用户需要时可再次触发授权后重试
5307
+ * @errorCode errNo | 301 | network request cancelled | iOS | 位置授权过程中的网络请求被取消 | 确认应用和网络状态后重试
5308
+ * @errorCode errNo | 302 | connection timed out | iOS | 位置授权过程中的网络连接超时 | 检查网络连接后重试
5309
+ * @errorCode errNo | 303 | no network connection | iOS | 当前无可用网络连接 | 恢复网络连接后重试
5310
+ * @errorCode errNo | 305 | network failure | iOS | 位置授权过程中发生其他网络错误 | 检查网络连接,稍后重试
5311
+ * @errorCode errNo | 112 | invalid result | iOS | 位置授权服务返回的数据无法解析 | 稍后重试;持续失败时反馈服务端响应异常
5312
+ * @platformNote Android | 未初始化返回 1401001;扫描列表为空不视为失败;因定位权限不足导致读取失败时返回 102。
5313
+ * @platformNote iOS | 仅返回当前已连接 Wi-Fi,未连接返回 1401002;读取前会发起位置权限授权,可返回 106/107 及授权网络类失败(301/302/303/305/112)。
4779
5314
  *
4780
5315
  * @public
4781
5316
  */
@@ -5209,6 +5744,19 @@ export declare interface KeyboardHeightChangeEvent {
5209
5744
  /** @public */
5210
5745
  export declare type KeyboardHeightChangeListener = (event: KeyboardHeightChangeEvent) => void;
5211
5746
 
5747
+ /**
5748
+ * 定位精细授权状态。
5749
+ *
5750
+ * 继承 {@link UnauthorizedDetail} 的全部取值;获得权限时返回:
5751
+ * - `foreground approximate`:仅应用在前台时可以获取模糊定位。
5752
+ * - `foreground precise`:仅应用在前台时可以获取精确定位。
5753
+ * - `background approximate`:应用在前台或后台时均可以获取模糊定位。
5754
+ * - `background precise`:应用在前台或后台时均可以获取精确定位。
5755
+ *
5756
+ * @public
5757
+ */
5758
+ export declare type LocationAuthorizationDetail = UnauthorizedDetail | 'foreground approximate' | 'foreground precise' | 'background approximate' | 'background precise';
5759
+
5212
5760
  /** @public */
5213
5761
  export declare interface LocationChangeErrorEvent {
5214
5762
  /**
@@ -5419,7 +5967,17 @@ export declare const LoginType: {
5419
5967
  * "result": true
5420
5968
  * }
5421
5969
  * ```
5422
- * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
5970
+ * @errorExample
5971
+ * ```json
5972
+ * {
5973
+ * "errNo": 112,
5974
+ * "errMsg": "invalid result"
5975
+ * }
5976
+ * ```
5977
+ * @errorCode common | 102 | Android,iOS
5978
+ * @errorCode errNo | 112 | invalid result | Android | 登录或隐私状态查询成功但返回数据缺失(如缺少隐私卡片或手机掩码) | 稍后重试;持续失败时反馈服务端响应异常。
5979
+ * @platformNote Android | 状态查询成功但关键数据缺失返回 112;其他失败统一返回 102。
5980
+ * @platformNote iOS | 失败统一返回 102。
5423
5981
  *
5424
5982
  * @public
5425
5983
  */
@@ -5528,7 +6086,16 @@ export declare interface MakeBluetoothPairParams {
5528
6086
  * ```json
5529
6087
  * {}
5530
6088
  * ```
5531
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据异常信息确认设备是否支持拨号
6089
+ * @errorExample
6090
+ * ```json
6091
+ * {
6092
+ * "errNo": 104,
6093
+ * "errMsg": "invalid parameter"
6094
+ * }
6095
+ * ```
6096
+ * @errorCode common | 102 | Android,iOS
6097
+ * @errorCode errNo | 104 | invalid parameter | Android,iOS | phoneNumber 为空,或在 iOS 上无法拼接为有效的拨号 URL | 传入合法的电话号码后重试。
6098
+ * @errorCode errNo | 103 | feature not support | iOS | 当前设备不支持拨打电话 | 在支持拨号的设备上调用,或提前提示用户设备不支持拨号。
5532
6099
  *
5533
6100
  * @public
5534
6101
  */
@@ -5560,6 +6127,13 @@ export declare interface MenuButtonBoundingClientRect {
5560
6127
  left: number;
5561
6128
  }
5562
6129
 
6130
+ /**
6131
+ * 麦克风精细授权状态,取值与 {@link BasicAuthorizationDetail} 一致。
6132
+ *
6133
+ * @public
6134
+ */
6135
+ export declare type MicrophoneAuthorizationDetail = BasicAuthorizationDetail;
6136
+
5563
6137
  /**
5564
6138
  * {@link FileSystemManager.mkdir} 的参数。
5565
6139
  *
@@ -5601,7 +6175,7 @@ export declare interface MkdirParams {
5601
6175
  * @permission none | - | none | Android,iOS | 无需额外权限
5602
6176
  * @precondition All | 无额外前置条件
5603
6177
  * @usageNote All | navigateBack 只能在页面栈内返回;当前页面已是页面栈中的最后一个页面时无法继续返回,需要退出智能服务请调用 exitApp。
5604
- * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
6178
+ * @errorCode common | 102 | Android,iOS
5605
6179
  *
5606
6180
  * @public
5607
6181
  */
@@ -5638,7 +6212,15 @@ export declare interface NavigateBackParams {
5638
6212
  * @permission none | - | none | Android,iOS | 无需额外权限
5639
6213
  * @precondition All | 无额外前置条件
5640
6214
  * @usageNote All | url 为智能服务内的页面路径,可携带查询参数;跳转后当前页面会保留在页面栈中,可通过 navigateBack 返回。
5641
- * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
6215
+ * @errorExample
6216
+ * ```json
6217
+ * {
6218
+ * "errNo": 104,
6219
+ * "errMsg": "invalid url"
6220
+ * }
6221
+ * ```
6222
+ * @errorCode common | 102 | Android,iOS
6223
+ * @errorCode errNo | 104 | invalid url | Android,iOS | url 为空或无法解析为有效的智能服务页面路径 | 检查 url 是否为合法的应用内页面路径后重试。
5642
6224
  *
5643
6225
  * @public
5644
6226
  */
@@ -5684,6 +6266,16 @@ export declare type NetworkStatusChangeListener = (event: NetworkStatusChangeEve
5684
6266
  */
5685
6267
  export declare type NetworkType = 'wifi' | '2g' | '3g' | '4g' | '5g' | 'unknown' | 'none';
5686
6268
 
6269
+ /**
6270
+ * 通知精细授权状态。
6271
+ *
6272
+ * 继承 {@link BasicAuthorizationDetail} 的全部取值,并增加:
6273
+ * - `provisional`:iOS 临时静默授权;不会弹出授权框,通知只进入通知中心。
6274
+ *
6275
+ * @public
6276
+ */
6277
+ export declare type NotificationAuthorizationDetail = BasicAuthorizationDetail | 'provisional';
6278
+
5687
6279
  /**
5688
6280
  * 订阅 BLE 特征值变化。
5689
6281
  *
@@ -5988,6 +6580,43 @@ export declare const onBluetoothAdapterStateChange: ClientEventRegistry<GetBluet
5988
6580
  */
5989
6581
  export declare function onBluetoothDeviceFound(callback: BluetoothDeviceFoundListener): () => void;
5990
6582
 
6583
+ /**
6584
+ * 监听对话框高度或展示状态变化。
6585
+ *
6586
+ * 注册后不会立即回调当前值。需要当前状态时,先调用 {@link getChatPanelInfo}。
6587
+ *
6588
+ * @example
6589
+ * ```typescript
6590
+ * import { onChatPanelHeightChanged } from '@doubao-dev/framework/api';
6591
+ *
6592
+ * const off = onChatPanelHeightChanged(({ height, state }) => {
6593
+ * console.log('chat panel changed', { height, state });
6594
+ * });
6595
+ *
6596
+ * off();
6597
+ * ```
6598
+ * @since 0.0.42
6599
+ * @contractStatus verified | 事件字段、状态枚举和触发语义与对话框高度变化协议一致。
6600
+ * @platformSupport Android | supported | 支持监听对话框高度或展示状态变化。
6601
+ * @platformSupport iOS | supported | 支持监听对话框高度或展示状态变化。
6602
+ * @platformSupport PC | unsupported | 当前未提供该平台实现。
6603
+ * @platformSupport HarmonyOS | unsupported | 当前未提供该平台实现。
6604
+ * @permission none | - | none | Android,iOS | 无需额外权限
6605
+ * @precondition All | 当前页面需在 app.config.ts 中声明 chat.enabled 为 true
6606
+ * @usageNote All | 注册后不立即回调当前值;页面卸载前调用返回的取消函数。
6607
+ * @resultExample
6608
+ * ```json
6609
+ * {
6610
+ * "height": 336,
6611
+ * "state": "expanded"
6612
+ * }
6613
+ * ```
6614
+ * @errorCode none | - | - | Android,iOS | 事件无错误码 | 无需处理
6615
+ *
6616
+ * @public
6617
+ */
6618
+ export declare const onChatPanelHeightChanged: ClientEventRegistry<ChatPanelInfo>;
6619
+
5991
6620
  /**
5992
6621
  * 监听罗盘数据变化事件。
5993
6622
  *
@@ -6277,7 +6906,7 @@ export declare const onNetworkStatusChange: ClientEventRegistry<NetworkStatusCha
6277
6906
  /**
6278
6907
  * 监听应用主题变化。
6279
6908
  *
6280
- * 当用户在系统设置或宿主内切换浅色、深色主题时触发。回调参数中的 `theme` 表示切换后的主题,可与
6909
+ * 当用户在系统设置或豆包客户端内切换浅色、深色主题时触发。回调参数中的 `theme` 表示切换后的主题,可与
6281
6910
  * {@link getAppBaseInfo} 返回的 `theme` 字段配合使用。
6282
6911
  *
6283
6912
  * @summary 监听应用主题变化。
@@ -6295,7 +6924,7 @@ export declare const onNetworkStatusChange: ClientEventRegistry<NetworkStatusCha
6295
6924
  *
6296
6925
  * @since 0.0.32
6297
6926
  * @contractStatus verified | 主题变化事件回调只包含必需的 theme 字段,与公开类型一致。
6298
- * @contractMismatch non-blocking | behavior | onThemeChange | Android | 用户切换浅色、深色主题时触发回调 | iOS 由客户端主动派发事件,Android 依赖宿主接入主题变化通知,未接入时可能不触发 | Android 上事件触发依赖宿主接入情况 | packages/open-api/src/basic/system/system.ts; ai-sdk/android/ai-sdk/src/main/java/com/bytedance/ai/bridge; ai-sdk/ios/AISDK/Sources/JSBridge | 统一双端主题变化事件派发,保证 Android 稳定触发
6927
+ * @contractMismatch non-blocking | behavior | onThemeChange | Android | 用户切换浅色、深色主题时触发回调 | iOS 由客户端主动派发事件,Android 依赖豆包客户端接入主题变化通知,未接入时可能不触发 | Android 上事件触发依赖豆包客户端的接入情况 | packages/open-api/src/basic/system/system.ts; ai-sdk/android/ai-sdk/src/main/java/com/bytedance/ai/bridge; ai-sdk/ios/AISDK/Sources/JSBridge | 统一双端主题变化事件派发,保证 Android 稳定触发
6299
6928
  * @platformSupport Android | supported | 支持注册主题变化监听。
6300
6929
  * @platformSupport iOS | supported | 支持注册主题变化监听。
6301
6930
  * @platformSupport PC | unsupported | 当前未提供该平台实现。
@@ -6310,7 +6939,7 @@ export declare const onNetworkStatusChange: ClientEventRegistry<NetworkStatusCha
6310
6939
  * }
6311
6940
  * ```
6312
6941
  * @errorCode none | - | - | Android,iOS | 该监听只接收成功的主题变化事件 | 无需处理
6313
- * @platformNote Android | 主题变化事件依赖宿主接入主题通知,未接入时可能不触发
6942
+ * @platformNote Android | 主题变化事件依赖豆包客户端接入主题通知,未接入时可能不触发
6314
6943
  *
6315
6944
  * @public
6316
6945
  */
@@ -6431,73 +7060,6 @@ export declare const onUserScreenRecord: ClientEventRegistry<UserScreenRecordEve
6431
7060
  */
6432
7061
  export declare const onWifiConnected: ClientEventRegistry<WifiConnectedEvent>;
6433
7062
 
6434
- /**
6435
- * 通过 deep link 等方式打开外部应用。
6436
- *
6437
- * @param params - 外部应用打开参数。
6438
- * @returns 返回一个 Promise,成功时解析为外部应用打开结果({@link OpenAppResult})。
6439
- * @example
6440
- * ```typescript
6441
- * import { openApp } from '@doubao-dev/framework/api';
6442
- *
6443
- * const { status } = await openApp({
6444
- * uri: 'demo://detail?id=1',
6445
- * fallbackUrl: 'https://example.com/download'
6446
- * });
6447
- *
6448
- * console.log(status);
6449
- * ```
6450
- *
6451
- * @since 0.0.6
6452
- * @contractStatus conflict | Android 已实现,iOS 未提供可调用实现。
6453
- * @contractMismatch blocking | platform | 打开外部应用 | iOS | 通过 applet.openApp 打开外部应用并返回执行方式 status | 豆包 iOS 暂未提供该能力,调用会返回不支持 | 该 API 在豆包 iOS 无法打开外部应用 | packages/open-api/src/open/business/open-app.ts; ai-sdk/ios/AISDK/Sources/JSBridge/IDL/AbsOpenAppMethodIDL.swift | 补齐豆包 iOS applet.openApp 实现后再在该平台开放文档
6454
- * @platformSupport Android | supported | 支持通过 deep link、应用市场或浏览器兜底打开外部应用。
6455
- * @platformSupport iOS | unsupported | 豆包当前未实现打开外部应用能力。
6456
- * @platformSupport PC | unsupported | 当前未提供该平台实现。
6457
- * @platformSupport HarmonyOS | unsupported | 当前未提供该平台实现。
6458
- * @permission none | - | none | Android | 无需额外权限
6459
- * @precondition Android | 传入合法的 uri。
6460
- * @usageNote All | 建议同时传入 fallbackUrl,当目标应用未安装、deep link 无法命中时可兜底至应用市场或浏览器。iOS 暂不支持,请勿在该平台调用。
6461
- * @resultExample
6462
- * ```json
6463
- * {
6464
- * "status": "deep_link"
6465
- * }
6466
- * ```
6467
- * @platformNote Android | 客户端会依次尝试 deep link、应用市场、浏览器,并通过 status 返回实际执行方式(deep_link、market、browser)。
6468
- * @errorCode none | - | - | Android | 无 API 专属错误码 | 无需处理
6469
- *
6470
- * @public
6471
- */
6472
- export declare const openApp: (params: OpenAppRequest) => Promise<OpenAppResult>;
6473
-
6474
- /** @public */
6475
- export declare interface OpenAppRequest {
6476
- /** 要打开的目标 URI,例如 `scheme://path?query`。 */
6477
- uri: string;
6478
- /**
6479
- * Android 上的目标应用包名,可选。
6480
- *
6481
- * @default -
6482
- */
6483
- targetPackage?: string;
6484
- /**
6485
- * deep link 失败时的兜底 URL,可选。
6486
- *
6487
- * @default -
6488
- */
6489
- fallbackUrl?: string;
6490
- }
6491
-
6492
- /** @public */
6493
- export declare interface OpenAppResult {
6494
- /** 客户端实际执行的打开方式。 */
6495
- status: OpenAppStatus;
6496
- }
6497
-
6498
- /** @public */
6499
- export declare type OpenAppStatus = 'deep_link' | 'market' | 'browser';
6500
-
6501
7063
  /**
6502
7064
  * 打开蓝牙适配器。
6503
7065
  *
@@ -6608,6 +7170,64 @@ export declare interface OpenLocationParams {
6608
7170
  latitude: number;
6609
7171
  }
6610
7172
 
7173
+ /**
7174
+ * 打开应用内页面。
7175
+ *
7176
+ * 在对话流卡片中调用时会重新打开全页并忽略 `mode`;在全页中调用时按照 `mode` 操作页面栈。
7177
+ *
7178
+ * @param params 打开页面参数,字段见 {@link OpenPageParams}。
7179
+ * @returns 无返回字段。
7180
+ * @example
7181
+ * ```typescript
7182
+ * import { openPage } from '@doubao-dev/framework/api';
7183
+ *
7184
+ * await openPage({
7185
+ * url: '/pages/detail/index?id=1',
7186
+ * mode: 'navigate'
7187
+ * });
7188
+ * ```
7189
+ *
7190
+ * @since 0.0.42
7191
+ * @contractStatus conflict | 新版 url 和页面栈 mode 协议已公开,但当前 Android、iOS 尚未提供对应实现。
7192
+ * @contractMismatch blocking | parameter | params | Android | 接收 url 和可选的 push、replace、navigate、popTo mode | 当前 doubao.openPage 仍映射到旧版 applet.openPage,要求 pageId 和 context,且 mode 仅识别 full、popup、floating | 按新版参数调用无法打开页面 | packages/open-api/src/router/open-page.ts; ai-sdk/android/ai-sdk/src/main/java/com/bytedance/ai/bridge/method/router/AbsOpenPageMethodIDL.kt; ai-sdk/android/ai-sdk/src/main/java/com/bytedance/ai/bridge/method/router/OpenPageMethod.kt | Native 使用独立的 doubao.openPage handler 实现新版参数和路由语义
7193
+ * @contractMismatch blocking | platform | method registration | iOS | doubao.openPage 可按新版参数调用 | 当前只注册 applet.openPage,未注册新版 doubao.openPage | iOS 无法调用该 API | packages/open-api/src/router/open-page.ts; ai-sdk/ios/AISDK/Sources/JSBridge/Methods/Route/AIBridgeOpenPageMethod.swift; ai-sdk/ios/AISDK/Sources/Core/AISDK.swift | 注册独立的 doubao.openPage handler 并实现新版路由语义
7194
+ * @platformSupport Android | unsupported | 当前版本尚未提供新版 openPage 路由协议。
7195
+ * @platformSupport iOS | unsupported | 当前版本尚未提供新版 openPage 路由协议。
7196
+ * @platformSupport PC | unsupported | 当前未提供该平台实现。
7197
+ * @platformSupport HarmonyOS | unsupported | 当前未提供该平台实现。
7198
+ * @permission none | - | none | Android,iOS | 无需额外权限
7199
+ * @precondition All | 无额外前置条件
7200
+ * @usageNote All | mode 省略时按 push 处理;对话流卡片中始终重新打开全页,全页中才应用页面栈操作。
7201
+ * @errorCode none | - | - | Android,iOS | 当前没有可审计的新版 Native 失败字段 | 等待 Native 实现后补充错误处理
7202
+ *
7203
+ * @public
7204
+ */
7205
+ export declare const openPage: (params: OpenPageParams) => Promise<object>;
7206
+
7207
+ /**
7208
+ * 打开页面时使用的页面栈操作。
7209
+ *
7210
+ * @public
7211
+ */
7212
+ export declare type OpenPageMode = 'push' | 'replace' | 'navigate' | 'popTo';
7213
+
7214
+ /** @public */
7215
+ export declare interface OpenPageParams {
7216
+ /** 应用内页面路径,可携带查询参数。 */
7217
+ url: string;
7218
+ /**
7219
+ * 页面栈操作。
7220
+ *
7221
+ * - `push`:始终压入新的页面实例。
7222
+ * - `replace`:目标为栈顶页面时更新栈顶页面,否则替换栈顶页面。
7223
+ * - `navigate`:目标已在栈中时回退到最近的目标页面并更新,否则压入新页面。
7224
+ * - `popTo`:目标已在栈中时回退到最近的目标页面并更新,否则替换栈顶页面。
7225
+ *
7226
+ * @default 'push'
7227
+ */
7228
+ mode?: OpenPageMode;
7229
+ }
7230
+
6611
7231
  /**
6612
7232
  * 打开智能服务授权设置页面
6613
7233
  *
@@ -6616,7 +7236,7 @@ export declare interface OpenLocationParams {
6616
7236
  * @returns Promise 对象,设置页关闭后返回最新授权设置
6617
7237
  * @remarks
6618
7238
  * 该接口不要求在用户点击事件中调用。
6619
- * 注意:当前宿主暂不支持订阅模板,传入 `withSubscriptions: true` 时会由宿主返回失败,错误信息为 `subscription templates are not supported yet`。
7239
+ * JavaScript 调用方也不要传入 `withSubscriptions: true`,否则豆包会返回 `subscription templates are not supported yet`。
6620
7240
  * @example
6621
7241
  * ```typescript
6622
7242
  * import { openSetting } from '@doubao-dev/framework/api';
@@ -6668,10 +7288,104 @@ export declare interface OpenSettingOptions {
6668
7288
  export declare interface OpenSettingResult {
6669
7289
  /** 用户授权结果,key 为权限 scope,value 表示是否已授权 */
6670
7290
  authSetting: AuthSetting;
6671
- /** 用户订阅消息设置,withSubscriptions true 时才会返回 */
7291
+ /** 预留的订阅消息设置字段。豆包当前仅支持 `withSubscriptions: false`,因此不会返回该字段。 */
6672
7292
  subscriptionsSetting?: SubscriptionsSetting;
6673
7293
  }
6674
7294
 
7295
+ /** @public */
7296
+ declare interface Performance_2 {
7297
+ /**
7298
+ * 创建性能观察者。调用返回对象的 `observe` 后,回调会接收之后新完成且匹配的 Entry。
7299
+ */
7300
+ createObserver: (callback: PerformanceObserverCallback_2) => PerformanceObserver_2;
7301
+ /** 设置客户端最多保留的性能 Entry 数量。 */
7302
+ setBufferSize: (size: number) => void;
7303
+ /** 返回当前智能服务已记录的全部性能 Entry。 */
7304
+ getEntries: () => PerformanceEntry_2[];
7305
+ /** 返回指定 entryType 的性能 Entry。 */
7306
+ getEntriesByType: (entryType: string) => PerformanceEntry_2[];
7307
+ /** 返回指定名称的性能 Entry;传入 entryType 时同时按类型筛选。 */
7308
+ getEntriesByName: (name: string, entryType?: string) => PerformanceEntry_2[];
7309
+ }
7310
+ export { Performance_2 as Performance }
7311
+
7312
+ /** @public */
7313
+ declare interface PerformanceEntry_2 {
7314
+ /** 性能指标所属类别。 */
7315
+ entryType: PerformanceEntryType;
7316
+ /** 性能指标名称,例如 `appLaunch`、`route`、`evaluateScript` 或 `firstRender`。 */
7317
+ name: string;
7318
+ /** 指标开始或发生时刻的 Unix 时间戳,单位为毫秒。 */
7319
+ startTime: number;
7320
+ /** 指标持续时间,单位为毫秒;仅耗时类指标提供。 */
7321
+ duration?: number;
7322
+ /** 页面路径;仅页面的 navigation 和 render 类型指标提供。 */
7323
+ path?: string;
7324
+ /** `path` 对应的页面实例 Id(随机生成,不保证递增);仅页面相关指标提供。 */
7325
+ pageId?: number;
7326
+ /** 路由来源页面的路径;仅 `navigation / route` 指标提供。 */
7327
+ referrerPath?: string;
7328
+ /** 路由来源页面的实例 ID;仅 `navigation / route` 指标提供。 */
7329
+ referrerPageId?: number;
7330
+ /** 路由开始被渲染层处理的 Unix 时间戳,单位为毫秒;仅 navigation 类型指标提供。 */
7331
+ navigationStart?: number;
7332
+ /** 路由类型。仅 navigation 类型的 Entry 有效。 */
7333
+ navigationType?: string;
7334
+ /** 被执行脚本的模块名称;仅 `script / evaluateScript` 指标提供。 */
7335
+ moduleName?: string;
7336
+ /** 视图层准备完成的 Unix 时间戳,单位为毫秒;仅 `render / firstRender` 指标提供。 */
7337
+ viewLayerReadyTime?: number;
7338
+ /** 视图层首次渲染开始的 Unix 时间戳,单位为毫秒;仅 `render / firstRender` 指标提供。 */
7339
+ viewLayerRenderStartTime?: number;
7340
+ /** 视图层首次渲染结束的 Unix 时间戳,单位为毫秒;仅 `render / firstRender` 指标提供。 */
7341
+ viewLayerRenderEndTime?: number;
7342
+ /** Widget 标识;仅 Widget 的 render 类型指标提供。 */
7343
+ widgetId?: string;
7344
+ /** Widget 实例 Id(随机生成,不保证递增);仅 Widget 的 render 类型指标提供。 */
7345
+ widgetInstanceId?: string;
7346
+ /** Widget 关联的应用是否冷启动;仅 Widget 的 render 类型指标提供。 */
7347
+ isAppColdLaunch?: boolean;
7348
+ }
7349
+ export { PerformanceEntry_2 as PerformanceEntry }
7350
+
7351
+ /** @public */
7352
+ export declare type PerformanceEntryType = 'navigation' | 'script' | 'render';
7353
+
7354
+ /** @public */
7355
+ declare interface PerformanceObserver_2 {
7356
+ observe(options: PerformanceObserverOptions): void;
7357
+ disconnect(): void;
7358
+ }
7359
+ export { PerformanceObserver_2 as PerformanceObserver }
7360
+
7361
+ /** @public */
7362
+ declare type PerformanceObserverCallback_2 = (entryList: PerformanceObserverEntryList_2) => void;
7363
+ export { PerformanceObserverCallback_2 as PerformanceObserverCallback }
7364
+
7365
+ /** @public */
7366
+ declare interface PerformanceObserverEntryList_2 {
7367
+ getEntries(): PerformanceEntry_2[];
7368
+ getEntriesByType(entryType: string): PerformanceEntry_2[];
7369
+ getEntriesByName(name: string, entryType?: string): PerformanceEntry_2[];
7370
+ }
7371
+ export { PerformanceObserverEntryList_2 as PerformanceObserverEntryList }
7372
+
7373
+ /** @public */
7374
+ export declare interface PerformanceObserverOptions {
7375
+ entryTypes: string[];
7376
+ }
7377
+
7378
+ /**
7379
+ * 系统日历精细授权状态。
7380
+ *
7381
+ * 继承 {@link BasicAuthorizationDetail} 的全部取值,并增加:
7382
+ * - `read only`:只能读取日历,不能新增、修改或删除日程;仅 Android 支持。
7383
+ * - `write only`:只能新增日程,不能读取现有日历数据。
7384
+ *
7385
+ * @public
7386
+ */
7387
+ export declare type PhoneCalendarAuthorizationDetail = BasicAuthorizationDetail | 'read only' | 'write only';
7388
+
6675
7389
  /**
6676
7390
  * 插件账号信息(仅在插件中调用时包含)。
6677
7391
  *
@@ -6723,7 +7437,24 @@ export declare interface PluginAccountInfo {
6723
7437
  * @precondition Android | 先完成登录,并传入登录成功返回的有效 code。
6724
7438
  * @precondition iOS | 先完成登录,并传入登录成功返回的有效 code。
6725
7439
  * @usageNote All | 仅在完成 MCP 授权登录流程后回传结果;登录成功时必须携带有效 code,回传成功后不要重复回传。
6726
- * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
7440
+ * @errorExample
7441
+ * ```json
7442
+ * {
7443
+ * "errNo": 105,
7444
+ * "errMsg": "authentication fail"
7445
+ * }
7446
+ * ```
7447
+ * @errorCode common | 102 | Android,iOS
7448
+ * @errorCode errNo | 104 | invalid parameter | Android | result 为 true 但缺少有效的兑换 code | 传入业务服务端生成的有效 code 后重试。
7449
+ * @errorCode errNo | 105 | authentication fail | Android,iOS | 登录被拒绝或兑换 code 校验未通过 | 确认业务登录状态与 code 是否有效后重试。
7450
+ * @errorCode errNo | 112 | invalid result | Android,iOS | Token 交换服务返回的数据无法解析 | 稍后重试;持续失败时反馈服务端响应异常。
7451
+ * @errorCode errNo | 115 | operation timeout | Android | Token 交换耗时超过限制 | 检查网络后重试。
7452
+ * @errorCode errNo | 301 | network request cancelled | iOS | Token 交换的网络请求被取消 | 确认应用和网络状态后重试。
7453
+ * @errorCode errNo | 302 | connection timed out | Android,iOS | Token 交换的网络连接超时 | 检查网络连接后重试。
7454
+ * @errorCode errNo | 303 | no network connection | Android,iOS | 当前无可用网络连接 | 恢复网络连接后重试。
7455
+ * @errorCode errNo | 305 | network failure | Android,iOS | Token 交换时发生其他网络错误 | 检查网络连接,稍后重试。
7456
+ * @platformNote Android | 缺少有效 code 时返回 104;调用超时返回 115。
7457
+ * @platformNote iOS | 缺少有效 code 时返回 102;网络请求被取消时返回 301,超时归类为 302。
6727
7458
  *
6728
7459
  * @public
6729
7460
  */
@@ -7133,7 +7864,15 @@ export declare type RecorderSampleRate = 8000 | 11025 | 12000 | 16000 | 22050 |
7133
7864
  * @permission none | - | none | Android,iOS | 无需额外权限
7134
7865
  * @precondition All | 无额外前置条件
7135
7866
  * @usageNote All | url 为智能服务内的页面路径,可携带查询参数;跳转会替换当前页面,不保留在页面栈中。
7136
- * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
7867
+ * @errorExample
7868
+ * ```json
7869
+ * {
7870
+ * "errNo": 104,
7871
+ * "errMsg": "invalid url"
7872
+ * }
7873
+ * ```
7874
+ * @errorCode common | 102 | Android,iOS
7875
+ * @errorCode errNo | 104 | invalid url | Android,iOS | url 为空或无法解析为有效的智能服务页面路径 | 检查 url 是否为合法的应用内页面路径后重试。
7137
7876
  *
7138
7877
  * @public
7139
7878
  */
@@ -7160,7 +7899,15 @@ export declare const redirectTo: (params: NavigateToParams) => Promise<object>;
7160
7899
  * @permission none | - | none | Android,iOS | 无需额外权限
7161
7900
  * @precondition All | 无额外前置条件
7162
7901
  * @usageNote All | url 为智能服务内的页面路径,可携带查询参数;跳转会关闭现有全部页面并以目标页面作为唯一页面。
7163
- * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
7902
+ * @errorExample
7903
+ * ```json
7904
+ * {
7905
+ * "errNo": 104,
7906
+ * "errMsg": "invalid url"
7907
+ * }
7908
+ * ```
7909
+ * @errorCode common | 102 | Android,iOS
7910
+ * @errorCode errNo | 104 | invalid url | Android,iOS | url 为空或无法解析为有效的智能服务页面路径 | 检查 url 是否为合法的应用内页面路径后重试。
7164
7911
  *
7165
7912
  * @public
7166
7913
  */
@@ -7337,7 +8084,7 @@ export declare interface RenameParams {
7337
8084
  * @permission none | - | none | Android,iOS | 无需额外权限
7338
8085
  * @precondition All | 无额外前置条件。
7339
8086
  * @usageNote All | 事件名与事件参数会用于数据分析,请勿写入用户隐私或敏感数据。
7340
- * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
8087
+ * @errorCode common | 102 | Android,iOS
7341
8088
  *
7342
8089
  * @public
7343
8090
  */
@@ -7402,7 +8149,22 @@ export declare interface ReportEventParams {
7402
8149
  * }
7403
8150
  * }
7404
8151
  * ```
7405
- * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
8152
+ * @errorExample
8153
+ * ```json
8154
+ * {
8155
+ * "errNo": 305,
8156
+ * "errMsg": "network failure"
8157
+ * }
8158
+ * ```
8159
+ * @errorCode common | 102 | iOS
8160
+ * @errorCode errNo | 104 | invalid parameter | Android,iOS | url 为空、method 非法,或请求参数、请求体校验失败 | 修正 url、method 与请求参数后重试。
8161
+ * @errorCode errNo | 110 | API call prohibited | Android,iOS | 请求 URL 未通过域名白名单校验 | 确认目标域名已在智能服务中配置后重试。
8162
+ * @errorCode errNo | 301 | network request cancelled | iOS | 网络请求被取消 | 确认应用与网络状态后重试。
8163
+ * @errorCode errNo | 302 | connection timed out | Android,iOS | 网络连接超时 | 检查网络连接后重试。
8164
+ * @errorCode errNo | 303 | no network connection | Android,iOS | 当前无可用网络连接 | 恢复网络连接后重试。
8165
+ * @errorCode errNo | 305 | network failure | Android,iOS | 发生其他网络错误 | 检查网络连接,稍后重试。
8166
+ * @platformNote Android | 网络失败仅细分为 302(HTTP 408 超时)、303(无网络连接)与 305(其他网络错误),不返回 301;url 为空或 method 非法返回 104;命中域名管控返回 110。
8167
+ * @platformNote iOS | 依据 NSURLError 细分网络失败:请求取消 301、连接超时 302、无网络 303、其他 305;参数或请求体校验失败返回 104;命中域名管控返回 110;其他失败统一返回 102。
7406
8168
  *
7407
8169
  * @public
7408
8170
  */
@@ -7455,7 +8217,7 @@ export declare type RequestMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' |
7455
8217
  * "logId": "20260519xxxx"
7456
8218
  * }
7457
8219
  * ```
7458
- * @errorCode none | - | - | Android,iOS | 无稳定的顶层 errNo/errMsg;调用失败时 Promise reject,业务错误(errNo、errMsg、errLogId)在错误对象的 data 字段 | 通过 catch 捕获并读取 e.data 排查
8220
+ * @errorCode common | 102 | Android,iOS
7459
8221
  * @knownIssue All | 失败结果不会作为 await 的返回值,需通过 catch 捕获并从错误对象的 data 字段读取 errNo、errMsg、errLogId。
7460
8222
  *
7461
8223
  * @public
@@ -7691,7 +8453,16 @@ export declare interface SaveImageToPhotosAlbumParams {
7691
8453
  * "scanType": "QR_CODE"
7692
8454
  * }
7693
8455
  * ```
7694
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据异常信息确认相机权限及用户是否取消
8456
+ * @errorExample
8457
+ * ```json
8458
+ * {
8459
+ * "errNo": 103,
8460
+ * "errMsg": "feature not support"
8461
+ * }
8462
+ * ```
8463
+ * @errorCode common | 102 | Android,iOS
8464
+ * @errorCode errNo | 103 | feature not support | Android,iOS | 当前豆包版本或运行环境未提供扫码能力 | 在支持扫码能力的豆包版本中调用。
8465
+ * @errorCode errNo | 112 | invalid result | iOS | 扫码成功但未返回可用的扫码结果数据 | 稍后重试;持续失败时反馈扫码结果异常。
7695
8466
  *
7696
8467
  * @public
7697
8468
  */
@@ -7761,7 +8532,7 @@ export declare type Scope = 'scope.userLocation' | 'scope.userFuzzyLocation' | '
7761
8532
  export declare type SelectedMessageFileType = 'video' | 'image' | 'file';
7762
8533
 
7763
8534
  /**
7764
- * 以用户身份发送后续消息,触发新一轮对话或 API 调用。
8535
+ * 以用户身份发送后续消息,触发新一轮对话、API 调用或引导模型响应。
7765
8536
  *
7766
8537
  * @param params - 要发送的后续消息内容。
7767
8538
  * @returns 返回一个 Promise,在消息发送请求提交后解析。
@@ -7782,6 +8553,13 @@ export declare type SelectedMessageFileType = 'video' | 'image' | 'file';
7782
8553
  * name: 'selectDrink',
7783
8554
  * arguments: { drinkId: 'latte_001' }
7784
8555
  * }
8556
+ * },
8557
+ * {
8558
+ * type: 'responseHint',
8559
+ * data: {
8560
+ * userAction: '用户选择了拿铁',
8561
+ * responseGuidance: '确认已选择拿铁,并询问是否需要调整杯型'
8562
+ * }
7785
8563
  * }
7786
8564
  * ]
7787
8565
  * });
@@ -7823,7 +8601,7 @@ export declare interface SendFollowUpMessageParams {
7823
8601
  *
7824
8602
  * @param params - 消息内容及类型。
7825
8603
  * @returns 返回一个 Promise,在消息成功发送时解析。
7826
- * @deprecated 使用 {@link dispatchActionDirective} 描述用户行为并约束模型后续动作。
8604
+ * @deprecated 使用 {@link sendFollowUpMessage} 发送后续消息。
7827
8605
  * @summary 以用户身份发送消息。
7828
8606
  * @example
7829
8607
  * ```typescript
@@ -7844,7 +8622,7 @@ export declare interface SendFollowUpMessageParams {
7844
8622
  * @permission none | - | none | Android,iOS | 无需额外权限
7845
8623
  * @precondition Android | 在卡片或页面环境中调用,由客户端自动获取页面上下文确定目标 bot。
7846
8624
  * @precondition iOS | 在卡片或页面环境中调用,由客户端自动获取页面上下文确定目标 bot。
7847
- * @usageNote All | 该 API 已废弃,请改用 dispatchActionDirective 描述用户行为并约束模型后续动作。
8625
+ * @usageNote All | 该 API 已废弃,请改用 sendFollowUpMessage 发送后续消息。
7848
8626
  * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
7849
8627
  *
7850
8628
  * @internal
@@ -7887,7 +8665,17 @@ export declare interface SendQueryMessageParams {
7887
8665
  * ```json
7888
8666
  * {}
7889
8667
  * ```
7890
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据异常信息确认设备是否支持短信
8668
+ * @errorExample
8669
+ * ```json
8670
+ * {
8671
+ * "errNo": 114,
8672
+ * "errMsg": "operation cancelled"
8673
+ * }
8674
+ * ```
8675
+ * @errorCode common | 102 | Android,iOS
8676
+ * @errorCode errNo | 103 | feature not support | iOS | 当前设备不支持发送短信 | 在支持短信的设备上调用,或提前提示用户设备不支持短信。
8677
+ * @errorCode errNo | 114 | operation cancelled | iOS | 用户在系统短信面板中取消了发送 | 用户需要时可再次调用 `sendSms` 重新拉起短信面板。
8678
+ * @platformNote iOS | 拉起短信面板后用户取消返回 114、发送失败返回 102、设备不支持短信返回 103;Android 无法拉起短信应用时返回 102。
7891
8679
  *
7892
8680
  * @public
7893
8681
  */
@@ -7948,7 +8736,18 @@ export declare type SensorInterval = 'game' | 'ui' | 'normal';
7948
8736
  * @precondition Android | 无额外前置条件
7949
8737
  * @precondition iOS | 无额外前置条件
7950
8738
  * @usageNote All | 该 API 已废弃,请改用 updateModelContext 按任务或实体维度补充模型上下文。
7951
- * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
8739
+ * @errorExample
8740
+ * ```json
8741
+ * {
8742
+ * "errNo": 103,
8743
+ * "errMsg": "feature not support"
8744
+ * }
8745
+ * ```
8746
+ * @errorCode common | 102 | Android,iOS
8747
+ * @errorCode errNo | 103 | feature not support | Android | 当前容器类型不支持设置全局上下文 | 请在支持的容器(页面、卡片或 Worker)环境中调用。
8748
+ * @errorCode errNo | 104 | invalid parameter | iOS | 传入的参数结构非法,无法解析 | 检查传入的参数结构后重试。
8749
+ * @platformNote Android | 当前容器类型不受支持返回 103;其他失败统一返回 102。
8750
+ * @platformNote iOS | 参数结构非法返回 104;其他失败统一返回 102。
7952
8751
  *
7953
8752
  * @internal
7954
8753
  */
@@ -8054,7 +8853,16 @@ export declare interface SetBLEMTUResult {
8054
8853
  * ```json
8055
8854
  * {}
8056
8855
  * ```
8057
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据异常信息确认豆包是否提供剪贴板能力
8856
+ * @errorExample
8857
+ * ```json
8858
+ * {
8859
+ * "errNo": 103,
8860
+ * "errMsg": "feature not support"
8861
+ * }
8862
+ * ```
8863
+ * @errorCode common | 102 | Android,iOS
8864
+ * @errorCode errNo | 103 | feature not support | Android,iOS | 当前豆包版本或运行环境未提供剪贴板写入能力 | 在支持剪贴板能力的豆包版本中调用。
8865
+ * @errorCode errNo | 106 | system permission denied | Android | 写入后系统未授予剪贴板访问权限,写入未生效 | 引导用户在系统设置中开启剪贴板相关权限后重试。
8058
8866
  *
8059
8867
  * @public
8060
8868
  */
@@ -8088,11 +8896,12 @@ export declare interface SetClipboardDataParams {
8088
8896
  * @precondition All | 无额外前置条件
8089
8897
  * @usageNote All | 不再需要常亮时应主动将 keepScreenOn 设为 false,避免额外功耗
8090
8898
  * @platformNote iOS | 页面销毁后常亮状态会自动恢复
8899
+ * @platformNote iOS | 设置常亮恒返回成功,无失败错误码
8091
8900
  * @resultExample
8092
8901
  * ```json
8093
8902
  * {}
8094
8903
  * ```
8095
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据异常信息重试
8904
+ * @errorCode common | 102 | Android
8096
8905
  *
8097
8906
  * @public
8098
8907
  */
@@ -8228,7 +9037,17 @@ export declare function setStorageSync<TData = unknown>(params: SetStorageParams
8228
9037
  * ```json
8229
9038
  * {}
8230
9039
  * ```
8231
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | Android 不要调用该 API,iOS 根据返回的错误信息重试
9040
+ * @errorExample
9041
+ * ```json
9042
+ * {
9043
+ * "errNo": 1401001,
9044
+ * "errMsg": "wifi is not initialized"
9045
+ * }
9046
+ * ```
9047
+ * @errorCode common | 102 | iOS
9048
+ * @errorCode errNo | 103 | feature not support | Android | 该 API 为 iOS 特有,Android 调用固定失败 | 不要在 Android 调用该 API
9049
+ * @errorCode errNo | 1401001 | wifi is not initialized | iOS | 调用前未先调用 startWifi 完成初始化 | 先调用 startWifi 再设置预设列表
9050
+ * @platformNote Android | 固定返回 103(该能力仅 iOS);iOS 未初始化返回 1401001,其他失败统一返回 102。
8232
9051
  *
8233
9052
  * @public
8234
9053
  */
@@ -8273,7 +9092,16 @@ export declare interface SetWifiListParams {
8273
9092
  * "tapIndex": 0
8274
9093
  * }
8275
9094
  * ```
8276
- * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
9095
+ * @errorExample
9096
+ * ```json
9097
+ * {
9098
+ * "errNo": 114,
9099
+ * "errMsg": "operation cancelled"
9100
+ * }
9101
+ * ```
9102
+ * @errorCode errNo | 104 | invalid parameter | Android,iOS | itemList 为空数组 | 传入至少一个菜单项后重试。
9103
+ * @errorCode errNo | 114 | operation cancelled | Android,iOS | 用户点击 Cancel 按钮或点击蒙层关闭操作菜单 | 用户主动取消,按需静默处理。
9104
+ * @errorCode common | 102 | Android,iOS
8277
9105
  *
8278
9106
  * @public
8279
9107
  */
@@ -8355,8 +9183,16 @@ export declare interface ShowActionSheetResult {
8355
9183
  * "role": "agreeMain"
8356
9184
  * }
8357
9185
  * ```
8358
- * @errorCode common | 104 | Android,iOS
8359
- * @errorCode common | 103 | iOS
9186
+ * @errorExample
9187
+ * ```json
9188
+ * {
9189
+ * "errNo": 104,
9190
+ * "errMsg": "invalid parameter"
9191
+ * }
9192
+ * ```
9193
+ * @errorCode errNo | 104 | invalid parameter | Android,iOS | title 或 content 为空、content 含被拦截的标签/事件属性/危险链接、buttons 数量不在 1-3 范围;iOS 还会在按钮语义重复或按钮文案为空时返回 | 修正参数后重试。
9194
+ * @errorCode errNo | 103 | feature not support | iOS | 豆包底部弹窗能力不可用,或按钮数为 3 时当前 provider 不支持三按钮 | 降级到自定义弹窗;同场景 Android 返回 action=cancel、source=hostUnavailable 的成功结果,请一并做降级处理。
9195
+ * @platformNote iOS | provider 不可用或不支持三按钮时返回 errNo 103 失败;Android 在 provider 不可用时返回 action=cancel、source=hostUnavailable 的成功结果,且不校验三按钮能力。
8360
9196
  *
8361
9197
  * @public
8362
9198
  */
@@ -8410,7 +9246,7 @@ export declare type ShowBottomSheetResult = BottomSheetButtonClickResult | Botto
8410
9246
  * @permission none | - | none | Android,iOS | 无需额外权限
8411
9247
  * @precondition All | 无额外前置条件
8412
9248
  * @usageNote All | loading 展示后需调用 hideLoading 手动关闭。
8413
- * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
9249
+ * @errorCode common | 102 | Android,iOS
8414
9250
  *
8415
9251
  * @public
8416
9252
  */
@@ -8444,26 +9280,25 @@ export declare interface ShowLoadingParams {
8444
9280
  * ```
8445
9281
  *
8446
9282
  * @since 0.0.26
8447
- * @contractStatus verified | 公开参数、返回动作及 Android、iOS 行为已核对一致;按钮默认文案存在平台差异,已在字段约束中说明。
8448
- * @contractMismatch non-blocking | default | confirmText、cancelText | Android,iOS | 省略时使用统一默认文案 | Android 默认 confirm/cancel,iOS 默认 OK/Cancel | 未传文案时双端按钮文字不同,公开可选类型可承载 | ai-sdk/android/ai-sdk/src/main/java/com/bytedance/ai/bridge/method/ui/ShowModalMethod.kt; ai-sdk/ios/AISDK/Sources/JSBridge/Methods/UI/AIBridgeShowModalMethod.swift | 统一双端默认按钮文案
9283
+ * @contractStatus verified | 参数、返回 action/content 及 Android、iOS 行为已核对一致;HarmonyOS 当前不提供实现。
8449
9284
  * @platformSupport Android | supported | 支持展示模态对话框。
8450
9285
  * @platformSupport iOS | supported | 支持展示模态对话框。
8451
9286
  * @platformSupport PC | unsupported | 当前未提供该平台实现。
8452
9287
  * @platformSupport HarmonyOS | unsupported | 当前未提供该平台实现。
8453
9288
  * @permission none | - | none | Android,iOS | 无需额外权限
8454
9289
  * @precondition All | 无额外前置条件
8455
- * @usageNote All | content 必填;仅当 showCancel 为 true 时展示取消按钮,仅当 tapMaskToDismiss 为 true 时点击蒙层可关闭。
9290
+ * @usageNote All | 仅当 showCancel 为 true 时展示取消按钮;仅当 tapMaskToDismiss 为 true 时点击蒙层可关闭;editable 为 true 且用户确认时返回输入 content。
8456
9291
  * @resultExample
8457
9292
  * ```json
8458
9293
  * {
8459
9294
  * "action": "confirm"
8460
9295
  * }
8461
9296
  * ```
8462
- * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
9297
+ * @errorCode common | 102 | Android,iOS
8463
9298
  *
8464
9299
  * @public
8465
9300
  */
8466
- export declare const showModal: (params: ShowModalParams) => Promise<ShowModalResult>;
9301
+ export declare const showModal: (params?: ShowModalParams | undefined) => Promise<ShowModalResult>;
8467
9302
 
8468
9303
  /**
8469
9304
  * 显示模态对话框的参数。
@@ -8476,25 +9311,50 @@ export declare interface ShowModalParams {
8476
9311
  * @default -
8477
9312
  */
8478
9313
  title?: string;
8479
- /** 模态对话框的内容。 */
8480
- content: string;
9314
+ /**
9315
+ * 模态对话框的内容。
9316
+ * @default -
9317
+ */
9318
+ content?: string;
8481
9319
  /**
8482
9320
  * 是否显示取消按钮。
8483
9321
  * @default true
8484
9322
  */
8485
9323
  showCancel?: boolean;
8486
9324
  /**
8487
- * 取消按钮的文字,省略时使用平台默认文案。
8488
- * @default -
8489
- * @constraint Android 默认文案为“cancel”,iOS 默认文案为“Cancel”,需统一时请显式传入。
9325
+ * 取消按钮的文字。
9326
+ * @default 取消
9327
+ * @constraint 最多 4 个字符。
8490
9328
  */
8491
9329
  cancelText?: string;
8492
9330
  /**
8493
- * 确认按钮的文字,省略时使用平台默认文案。
8494
- * @default -
8495
- * @constraint Android 默认文案为“confirm”,iOS 默认文案为“OK”,需统一时请显式传入。
9331
+ * 取消按钮的文字颜色。
9332
+ * @default #000000
9333
+ * @constraint 必须是 16 进制格式的颜色字符串。
9334
+ */
9335
+ cancelColor?: string;
9336
+ /**
9337
+ * 确认按钮的文字。
9338
+ * @default 确定
9339
+ * @constraint 最多 4 个字符。
8496
9340
  */
8497
9341
  confirmText?: string;
9342
+ /**
9343
+ * 确认按钮的文字颜色。
9344
+ * @default #F85959
9345
+ * @constraint 必须是 16 进制格式的颜色字符串。
9346
+ */
9347
+ confirmColor?: string;
9348
+ /**
9349
+ * 是否显示输入框。
9350
+ * @default false
9351
+ */
9352
+ editable?: boolean;
9353
+ /**
9354
+ * 显示输入框时的提示文本。
9355
+ * @default -
9356
+ */
9357
+ placeholderText?: string;
8498
9358
  /**
8499
9359
  * 是否允许点击蒙层关闭对话框。
8500
9360
  * @default true
@@ -8510,22 +9370,17 @@ export declare interface ShowModalParams {
8510
9370
  export declare interface ShowModalResult {
8511
9371
  /** 用户点击的动作。 */
8512
9372
  action: 'confirm' | 'cancel' | 'mask';
9373
+ /** `editable` 为 true 时,用户点击确认后输入的文本。 */
9374
+ content?: string;
8513
9375
  }
8514
9376
 
8515
9377
  /**
8516
9378
  * 显示 Toast 提示。
8517
9379
  *
8518
- * 参数 `options` 包含以下字段:
8519
- * - `message`:提示的内容。
8520
- * - `type`:Toast 的类型,可选值为 'default'、'success'、'error' 或 'warning'。
8521
- * - `duration`:提示的延迟时间,单位毫秒,默认为 2000。
8522
- * - `icon`:图标,可选值为 'success'、'error'、'warn'。
8523
- * - `customIcon`:自定义图标的 URL 或 base64 字符串。
8524
- *
8525
9380
  * @summary 显示 Toast 提示。
8526
9381
  * @returns 返回一个 Promise,在 Toast 显示结束时 resolve。
8527
9382
  * @remarks
8528
- * duration icon 可控制提示表现。
9383
+ * Android 默认显示 3000 毫秒,iOS 默认显示 2000 毫秒;需要双端一致时请显式传入 `duration`。
8529
9384
  * @example
8530
9385
  * ```typescript
8531
9386
  * import { showToast } from '@doubao-dev/framework/api';
@@ -8562,7 +9417,17 @@ export declare interface ShowModalResult {
8562
9417
  * ```json
8563
9418
  * {}
8564
9419
  * ```
8565
- * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
9420
+ * @errorExample
9421
+ * ```json
9422
+ * {
9423
+ * "errNo": 104,
9424
+ * "errMsg": "invalid parameter"
9425
+ * }
9426
+ * ```
9427
+ * @errorCode errNo | 104 | invalid parameter | Android,iOS | message 为空;iOS 还会在 icon 取值非法或入参无法解析时返回(type 由前端归一化为合法值,非法 type 场景不会触发) | 修正参数后重试。
9428
+ * @errorCode errNo | 103 | feature not support | iOS | 豆包 UIService 未实现,无法展示 Toast | 降级到其他提示方式。
9429
+ * @errorCode common | 102 | Android
9430
+ * @platformNote iOS | 参数校验失败统一返回 errNo 104;UIService 缺失时返回 errNo 103。Android 参数校验失败返回 errNo 104,豆包页面运行上下文缺失返回 errNo 102。
8566
9431
  *
8567
9432
  * @public
8568
9433
  * */
@@ -8579,8 +9444,8 @@ export declare interface ShowToastParams {
8579
9444
  type?: 'default' | 'success' | 'error' | 'warning';
8580
9445
  /**
8581
9446
  * 提示的持续时间,单位毫秒。
8582
- * @default -
8583
- * @constraint Android 默认 3000,iOS 默认 2000,需双端一致时请显式传入。
9447
+ * @default Android 3000,iOS 2000
9448
+ * @constraint 需双端保持一致时请显式传入。
8584
9449
  */
8585
9450
  duration?: number;
8586
9451
  /**
@@ -8601,7 +9466,7 @@ export declare interface ShowToastParams {
8601
9466
  * @param params - `createSignOrder` 返回的平台签约订单号。
8602
9467
  * @returns 签约页面流程正常返回时解析为空对象;该结果不代表签约成功。
8603
9468
  * @remarks
8604
- * 如果用户尚未绑定抖音账号,宿主可能先拉起账号绑定流程,再继续展示签约页面。
9469
+ * 如果用户尚未绑定抖音账号,豆包可能先拉起账号绑定流程,再继续展示签约页面。
8605
9470
  *
8606
9471
  * 用户的最终签约状态必须以业务服务端查询签约单详情或收到的签约结果回调为准。
8607
9472
  * 业务服务端还需要维护业务用户与签约 ID 的对应关系。
@@ -8643,8 +9508,18 @@ export declare interface ShowToastParams {
8643
9508
  * ```json
8644
9509
  * {}
8645
9510
  * ```
8646
- * @errorCode none | - | - | Android,iOS | 无稳定的顶层 errNo/errMsg;调用失败时 Promise reject,业务错误(code、errNo、errMsg、errLogId)在错误对象的 data 字段 | 通过 catch 捕获并读取 e.data 排查
9511
+ * @errorExample
9512
+ * ```json
9513
+ * {
9514
+ * "errNo": 114,
9515
+ * "errMsg": "operation cancelled"
9516
+ * }
9517
+ * ```
9518
+ * @errorCode common | 102 | Android,iOS
9519
+ * @errorCode common | 103 | Android,iOS
9520
+ * @errorCode errNo | 114 | operation cancelled | Android | 用户在签约收银台中取消了签约操作 | 用户需要时可再次调用 `sign` 重新发起签约。
8647
9521
  * @platformNote Android | 需在前台可见的 Activity 中调用,应用退至后台或无有效页面时会返回失败。
9522
+ * @platformNote Android | 用户主动取消签约时返回顶层 errNo 114(operation cancelled);iOS 在该场景不返回顶层专属 errNo。
8648
9523
  * @knownIssue All | 失败结果不会作为 await 的返回值,需通过 catch 捕获并从错误对象的 data 字段读取 code、errNo、errMsg、errLogId。
8649
9524
  *
8650
9525
  * @public
@@ -8699,7 +9574,7 @@ export declare interface SocketTask {
8699
9574
  /**
8700
9575
  * 表示 Socket 正在连接。
8701
9576
  *
8702
- * `connectSocket` 刚返回且宿主尚未完成握手时通常处于该状态。
9577
+ * `connectSocket` 刚返回且豆包客户端尚未完成握手时通常处于该状态。
8703
9578
  */
8704
9579
  readonly CONNECTING: 0;
8705
9580
  /**
@@ -8711,7 +9586,7 @@ export declare interface SocketTask {
8711
9586
  /**
8712
9587
  * 表示 Socket 连接关闭中。
8713
9588
  *
8714
- * 调用 {@link SocketTask.close} 后、本地等待宿主侧完成关闭流程时通常处于该状态。
9589
+ * 调用 {@link SocketTask.close} 后,等待豆包客户端完成关闭流程时通常处于该状态。
8715
9590
  */
8716
9591
  readonly CLOSING: 2;
8717
9592
  /**
@@ -8724,7 +9599,7 @@ export declare interface SocketTask {
8724
9599
  * 当前 Socket 连接状态 code。
8725
9600
  *
8726
9601
  * 可与 `CONNECTING`、`OPEN`、`CLOSING`、`CLOSED` 常量比较。
8727
- * 如果因为参数错误等原因导致连接请求没有被宿主成功创建,则为 `undefined`。
9602
+ * 如果因为参数错误等原因导致豆包客户端没有成功创建连接,则为 `undefined`。
8728
9603
  */
8729
9604
  readonly readyState: number | undefined;
8730
9605
  /**
@@ -8776,7 +9651,7 @@ export declare interface SocketTask {
8776
9651
  /**
8777
9652
  * WebSocket 关闭事件。
8778
9653
  *
8779
- * 当前连接被主动关闭、服务端关闭或宿主侧因异常回收连接时触发。
9654
+ * 当前连接被主动关闭、服务端关闭或豆包客户端因异常回收连接时触发。
8780
9655
  * 触发后 `readyState` 会变为 `SocketTask.CLOSED`,该 `SocketTask` 不应再继续发送数据。
8781
9656
  *
8782
9657
  * @public
@@ -8785,31 +9660,31 @@ export declare interface SocketTaskCloseEvent {
8785
9660
  /**
8786
9661
  * 关闭状态码。
8787
9662
  *
8788
- * 可能来自调用 {@link SocketTask.close} 时传入的 `code`,也可能来自服务端或宿主侧。
9663
+ * 可能来自调用 {@link SocketTask.close} 时传入的 `code`,也可能来自服务端或豆包客户端。
8789
9664
  */
8790
9665
  code?: number;
8791
9666
  /**
8792
9667
  * 关闭原因。
8793
9668
  *
8794
- * 可能来自调用 {@link SocketTask.close} 时传入的 `reason`,也可能来自服务端或宿主侧。
9669
+ * 可能来自调用 {@link SocketTask.close} 时传入的 `reason`,也可能来自服务端或豆包客户端。
8795
9670
  */
8796
9671
  reason?: string;
8797
9672
  /**
8798
9673
  * 错误信息。
8799
9674
  *
8800
- * 非正常关闭时宿主侧可能通过该字段补充失败原因;正常关闭时通常为空。
9675
+ * 非正常关闭时豆包客户端可能通过该字段补充失败原因;正常关闭时通常为空。
8801
9676
  */
8802
9677
  errMsg?: string;
8803
9678
  /**
8804
9679
  * 当前连接使用的网络传输层协议。
8805
9680
  *
8806
- * 该字段由宿主侧返回,部分运行环境可能不提供。
9681
+ * 该字段由豆包客户端返回,部分运行环境可能不提供。
8807
9682
  */
8808
9683
  protocolType?: string;
8809
9684
  /**
8810
- * 宿主侧使用的 WebSocket 实现类型。
9685
+ * 豆包客户端使用的 WebSocket 实现类型。
8811
9686
  *
8812
- * 该字段由宿主侧返回,部分运行环境可能不提供。
9687
+ * 该字段由豆包客户端返回,部分运行环境可能不提供。
8813
9688
  */
8814
9689
  socketType?: string;
8815
9690
  }
@@ -8826,10 +9701,10 @@ export declare interface SocketTaskCloseParams {
8826
9701
  /**
8827
9702
  * 关闭连接状态码。
8828
9703
  *
8829
- * 不传时由宿主侧按正常关闭处理,通常等价于 `1000`。
9704
+ * 不传时由豆包客户端按正常关闭处理,通常等价于 `1000`。
8830
9705
  * 常见值包括:
8831
9706
  * - `1000`: 正常关闭;
8832
- * - `1001`: 因页面进入后台、宿主回收连接等原因关闭。
9707
+ * - `1001`: 因页面进入后台、豆包客户端回收连接等原因关闭。
8833
9708
  */
8834
9709
  code?: number;
8835
9710
  /**
@@ -8852,7 +9727,7 @@ export declare interface SocketTaskErrorEvent {
8852
9727
  /**
8853
9728
  * 错误信息。
8854
9729
  *
8855
- * 由前端参数校验、编码过程或宿主侧返回的失败原因组成,可直接用于日志上报。
9730
+ * 由前端参数校验、编码过程或豆包客户端返回的失败原因组成,可直接用于日志上报。
8856
9731
  */
8857
9732
  errMsg: string;
8858
9733
  }
@@ -8878,13 +9753,13 @@ export declare interface SocketTaskMessageEvent {
8878
9753
  /**
8879
9754
  * 当前消息所属连接使用的协议。
8880
9755
  *
8881
- * 该字段由宿主侧返回,部分运行环境可能不提供。
9756
+ * 该字段由豆包客户端返回,部分运行环境可能不提供。
8882
9757
  */
8883
9758
  protocolType?: string;
8884
9759
  /**
8885
- * 宿主侧使用的 WebSocket 实现类型。
9760
+ * 豆包客户端使用的 WebSocket 实现类型。
8886
9761
  *
8887
- * 该字段由宿主侧返回,部分运行环境可能不提供。
9762
+ * 该字段由豆包客户端返回,部分运行环境可能不提供。
8888
9763
  */
8889
9764
  socketType?: string;
8890
9765
  }
@@ -8892,7 +9767,7 @@ export declare interface SocketTaskMessageEvent {
8892
9767
  /**
8893
9768
  * WebSocket 连接成功事件。
8894
9769
  *
8895
- * 当宿主侧完成 WebSocket 握手并进入 open 状态后触发。
9770
+ * 当豆包客户端完成 WebSocket 握手并进入 open 状态后触发。
8896
9771
  * 收到该事件后,调用方可以开始通过 {@link SocketTask.send} 发送数据。
8897
9772
  *
8898
9773
  * @public
@@ -8908,13 +9783,13 @@ export declare interface SocketTaskOpenEvent {
8908
9783
  /**
8909
9784
  * 当前连接使用的网络传输层协议。
8910
9785
  *
8911
- * 该字段由宿主侧返回,部分运行环境可能不提供。
9786
+ * 该字段由豆包客户端返回,部分运行环境可能不提供。
8912
9787
  */
8913
9788
  protocolType?: string;
8914
9789
  /**
8915
- * 宿主侧使用的 WebSocket 实现类型。
9790
+ * 豆包客户端使用的 WebSocket 实现类型。
8916
9791
  *
8917
- * 可能的值由宿主实现决定,例如传统 WebSocket 实现或宿主网络库实现;
9792
+ * 可能的值由豆包客户端实现决定,例如系统 WebSocket 实现或豆包网络库实现;
8918
9793
  * 部分运行环境可能不提供。
8919
9794
  */
8920
9795
  socketType?: string;
@@ -8933,7 +9808,7 @@ export declare interface SocketTaskSendParams {
8933
9808
  * 需要发送给服务端的数据。
8934
9809
  *
8935
9810
  * - 传入 `string` 时按文本消息发送;
8936
- * - 传入 `ArrayBuffer` 时按二进制消息发送,内部会编码后交给宿主侧处理。
9811
+ * - 传入 `ArrayBuffer` 时按二进制消息发送,内部会编码后交给豆包客户端处理。
8937
9812
  *
8938
9813
  * 建议只在 `onOpen` 回调触发后调用 `send`,此时 `readyState` 通常为 `SocketTask.OPEN`。
8939
9814
  */
@@ -8965,7 +9840,15 @@ export declare interface SocketTaskSendParams {
8965
9840
  * ```json
8966
9841
  * {}
8967
9842
  * ```
8968
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据异常信息确认设备是否支持加速度传感器
9843
+ * @errorExample
9844
+ * ```json
9845
+ * {
9846
+ * "errNo": 103,
9847
+ * "errMsg": "feature not support"
9848
+ * }
9849
+ * ```
9850
+ * @errorCode common | 102 | Android,iOS
9851
+ * @errorCode errNo | 103 | feature not support | Android,iOS | 当前设备不支持加速度传感器或无法注册监听 | 在具备加速度传感器的设备上调用,或提前提示用户设备不支持。
8969
9852
  *
8970
9853
  * @public
8971
9854
  */
@@ -9145,7 +10028,15 @@ export declare interface StartBluetoothDevicesDiscoveryParams {
9145
10028
  * ```json
9146
10029
  * {}
9147
10030
  * ```
9148
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据异常信息确认设备是否支持罗盘传感器
10031
+ * @errorExample
10032
+ * ```json
10033
+ * {
10034
+ * "errNo": 103,
10035
+ * "errMsg": "feature not support"
10036
+ * }
10037
+ * ```
10038
+ * @errorCode common | 102 | Android,iOS
10039
+ * @errorCode errNo | 103 | feature not support | Android,iOS | 当前设备不支持罗盘传感器或无法注册监听 | 在具备罗盘传感器的设备上调用,或提前提示用户设备不支持。
9149
10040
  *
9150
10041
  * @public
9151
10042
  */
@@ -9176,7 +10067,15 @@ export declare const startCompass: (params?: {} | undefined) => Promise<object>;
9176
10067
  * ```json
9177
10068
  * {}
9178
10069
  * ```
9179
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据异常信息确认设备是否支持方向传感器
10070
+ * @errorExample
10071
+ * ```json
10072
+ * {
10073
+ * "errNo": 103,
10074
+ * "errMsg": "feature not support"
10075
+ * }
10076
+ * ```
10077
+ * @errorCode common | 102 | Android,iOS
10078
+ * @errorCode errNo | 103 | feature not support | Android,iOS | 当前设备不支持方向传感器或无法注册监听 | 在具备方向传感器的设备上调用,或提前提示用户设备不支持。
9180
10079
  *
9181
10080
  * @public
9182
10081
  */
@@ -9222,7 +10121,15 @@ export declare interface StartDeviceMotionListeningParams {
9222
10121
  * ```json
9223
10122
  * {}
9224
10123
  * ```
9225
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据异常信息确认设备是否支持陀螺仪传感器
10124
+ * @errorExample
10125
+ * ```json
10126
+ * {
10127
+ * "errNo": 103,
10128
+ * "errMsg": "feature not support"
10129
+ * }
10130
+ * ```
10131
+ * @errorCode common | 102 | Android,iOS
10132
+ * @errorCode errNo | 103 | feature not support | Android,iOS | 当前设备不支持陀螺仪传感器或无法注册监听 | 在具备陀螺仪传感器的设备上调用,或提前提示用户设备不支持。
9226
10133
  *
9227
10134
  * @public
9228
10135
  */
@@ -9276,7 +10183,22 @@ export declare interface StartGyroscopeParams {
9276
10183
  * ```json
9277
10184
  * {}
9278
10185
  * ```
9279
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据异常信息检查授权、系统定位服务和是否重复启动
10186
+ * @errorExample
10187
+ * ```json
10188
+ * {
10189
+ * "errNo": 1700001,
10190
+ * "errMsg": "location permission denied"
10191
+ * }
10192
+ * ```
10193
+ * @errorCode common | 102 | Android,iOS
10194
+ * @errorCode errNo | 103 | feature not support | Android,iOS | 当前豆包客户端未提供持续定位能力(location service 不可用) | 请在支持持续定位的豆包版本中调用
10195
+ * @errorCode errNo | 114 | operation cancelled | Android,iOS | 启动过程中被取消(用户取消授权,或授权返回前已调用 stopLocationUpdate) | 需要时重新调用 startLocationUpdate
10196
+ * @errorCode errNo | 118 | already exists | Android,iOS | 持续定位已启动,重复调用 startLocationUpdate | 先调用 stopLocationUpdate 再重新启动
10197
+ * @errorCode errNo | 1700001 | location permission denied | Android,iOS | 用户拒绝应用位置授权或系统定位权限被拒 | 调用 authorize 重新发起授权并在系统设置中开启定位权限后重试
10198
+ * @errorCode errNo | 1700002 | location network error | Android,iOS | 位置授权过程中发生网络错误 | 检查网络连接后重试
10199
+ * @errorCode errNo | 104 | invalid parameter | iOS | 位置授权 scope 非法 | 检查应用权限声明中配置的 scope 后重试
10200
+ * @platformNote Android | 用户拒绝授权返回 1700001、取消返回 114、授权网络失败返回 1700002;当前豆包客户端不支持持续定位时返回 103;其他失败统一返回 102。
10201
+ * @platformNote iOS | 用户拒绝授权返回 1700001、取消返回 114、授权网络失败返回 1700002、非法 scope 返回 104;当前豆包客户端不支持持续定位时返回 103;其他失败统一返回 102。
9280
10202
  *
9281
10203
  * @public
9282
10204
  */
@@ -9319,7 +10241,16 @@ export declare interface StartLocationUpdateParams {
9319
10241
  * ```json
9320
10242
  * {}
9321
10243
  * ```
9322
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据返回的错误信息重试
10244
+ * @errorExample
10245
+ * ```json
10246
+ * {
10247
+ * "errNo": 103,
10248
+ * "errMsg": "feature not support"
10249
+ * }
10250
+ * ```
10251
+ * @errorCode common | 102 | Android
10252
+ * @errorCode errNo | 103 | feature not support | Android | 设备无可用的 Wi-Fi 能力(缺少系统 Wi-Fi 服务) | 检查设备是否支持 Wi-Fi,不支持时不要调用
10253
+ * @platformNote iOS | 初始化恒返回成功,不返回失败错误码。
9323
10254
  *
9324
10255
  * @public
9325
10256
  */
@@ -9569,7 +10500,16 @@ export declare const stopGyroscope: (params?: {} | undefined) => Promise<object>
9569
10500
  * ```json
9570
10501
  * {}
9571
10502
  * ```
9572
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据异常信息确认持续定位状态后重试
10503
+ * @errorExample
10504
+ * ```json
10505
+ * {
10506
+ * "errNo": 103,
10507
+ * "errMsg": "feature not support"
10508
+ * }
10509
+ * ```
10510
+ * @errorCode common | 102 | Android,iOS
10511
+ * @errorCode errNo | 103 | feature not support | Android,iOS | 当前豆包客户端未提供持续定位能力(location service 不可用),无法停止 | 请在支持持续定位的豆包版本中调用
10512
+ * @platformNote All | 未启动或仍在授权阶段调用直接返回成功;仅在已启动后停止失败时返回错误码,其他失败统一返回 102。
9573
10513
  *
9574
10514
  * @public
9575
10515
  */
@@ -9599,7 +10539,7 @@ export declare function stopLocationUpdate(): Promise<LocationOperationResult>;
9599
10539
  * ```json
9600
10540
  * {}
9601
10541
  * ```
9602
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据返回的错误信息重试
10542
+ * @errorCode none | - | - | Android,iOS | 该接口双端恒返回成功,无 API 专属错误码 | 无需处理
9603
10543
  *
9604
10544
  * @public
9605
10545
  */
@@ -9754,6 +10694,18 @@ export declare interface ThemeChangeEvent {
9754
10694
  */
9755
10695
  export declare type ThemeChangeListener = (event: ThemeChangeEvent) => void;
9756
10696
 
10697
+ /**
10698
+ * Tool 返回的标准内容。
10699
+ *
10700
+ * @public
10701
+ */
10702
+ export declare interface ToolResult {
10703
+ /** Tool 返回的内容块。 */
10704
+ content?: Array<Record<string, unknown>>;
10705
+ /** Tool 返回的结构化内容。 */
10706
+ structuredContent?: unknown;
10707
+ }
10708
+
9757
10709
  /**
9758
10710
  * {@link FileSystemManager.truncate} 的参数。
9759
10711
  *
@@ -9777,6 +10729,18 @@ export declare interface TruncateParams {
9777
10729
 
9778
10730
  declare type TypeGuard<From, To extends From> = (from: From) => from is To;
9779
10731
 
10732
+ /**
10733
+ * 尚未获得权限时的精细状态。
10734
+ *
10735
+ * 取值说明:
10736
+ * - `not determined`:系统明确表示用户尚未作出选择
10737
+ * - `denied`:当前没有权限;可能是用户拒绝、关闭权限,或平台无法进一步区分拒绝原因
10738
+ * - `restricted`:系统明确表示权限受设备管理、家长控制等策略限制,用户无法直接修改
10739
+ *
10740
+ * @public
10741
+ */
10742
+ export declare type UnauthorizedDetail = 'not determined' | 'denied' | 'restricted';
10743
+
9780
10744
  /**
9781
10745
  * {@link FileSystemManager.unlink} 的参数。
9782
10746
  *
@@ -9839,7 +10803,23 @@ export declare interface UnzipParams {
9839
10803
  * @precondition Android | 未传 taskId 时需传 entityId;两者都不传时仅可在卡片环境调用,以便客户端补充必要信息。
9840
10804
  * @precondition iOS | 未传 taskId 时需传 entityId;两者都不传时仅可在卡片环境调用,以便客户端补充必要信息。
9841
10805
  * @usageNote All | 用于在任务或实体维度补充模型可理解的上下文,请在业务状态变化后按需调用,避免高频重复捐赠相同内容。
9842
- * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
10806
+ * @errorExample
10807
+ * ```json
10808
+ * {
10809
+ * "errNo": 305,
10810
+ * "errMsg": "network failure"
10811
+ * }
10812
+ * ```
10813
+ * @errorCode common | 100 | Android
10814
+ * @errorCode common | 102 | Android
10815
+ * @errorCode errNo | 103 | feature not support | Android | 当前容器类型不受支持,无法归类为页面、卡片或 Worker 来源 | 请在支持的容器(页面、卡片或 Worker)环境中调用。
10816
+ * @errorCode errNo | 112 | invalid result | Android | 捐赠上下文的远端响应无法解析 | 稍后重试;持续失败时反馈服务端响应异常。
10817
+ * @errorCode errNo | 301 | network request cancelled | iOS | 捐赠上下文的网络请求被取消 | 确认应用与网络状态后重试。
10818
+ * @errorCode errNo | 302 | connection timed out | Android,iOS | 捐赠上下文的网络连接超时 | 检查网络连接后重试。
10819
+ * @errorCode errNo | 303 | no network connection | Android,iOS | 当前无可用网络连接 | 恢复网络连接后重试。
10820
+ * @errorCode errNo | 305 | network failure | Android,iOS | 捐赠上下文时发生其他网络错误 | 检查网络连接,稍后重试。
10821
+ * @platformNote Android | 网络失败细分为连接超时 302、无网络 303、其他网络错误 305;远端响应无法解析返回 112;当前容器类型不受支持返回 103;其他失败统一返回 102,未归类的远端业务错误返回 100。
10822
+ * @platformNote iOS | 依据网络错误细分:请求取消 301、连接超时 302、无网络 303、其他 305;不支持的调用来源仅回退处理、不作为失败。
9843
10823
  *
9844
10824
  * @public
9845
10825
  */
@@ -9896,7 +10876,18 @@ export declare interface UpdateModelContextParams {
9896
10876
  * @precondition Android | 在卡片或消息环境中调用,需传入有效的 widgetInstanceId。
9897
10877
  * @precondition iOS | 在卡片或消息环境中调用,需传入有效的 widgetInstanceId。
9898
10878
  * @usageNote All | 请在卡片交互或服务端结果回写后调用;传入的 widgetData 通常为 `JSON.stringify(viewData)`。
9899
- * @errorCode none | - | - | Android,iOS | 无 API 专属错误码 | 无需处理
10879
+ * @errorExample
10880
+ * ```json
10881
+ * {
10882
+ * "errNo": 104,
10883
+ * "errMsg": "invalid parameter"
10884
+ * }
10885
+ * ```
10886
+ * @errorCode common | 102 | Android,iOS
10887
+ * @errorCode errNo | 103 | feature not support | Android,iOS | 当前豆包环境未提供消息更新能力 | 请在支持卡片消息更新的豆包环境中调用。
10888
+ * @errorCode errNo | 104 | invalid parameter | Android,iOS | widgetInstanceId 或 widgetData 为空,或传入了空字符串的 widgetId | 传入非空的 widgetInstanceId、widgetData,并确保 widgetId 有效后重试。
10889
+ * @errorCode errNo | 116 | resource not found | Android,iOS | 依据 widgetInstanceId 找不到对应消息,或依据 widgetId 找不到已注册的 Widget | 确认 widgetInstanceId 与 widgetId 有效后重试。
10890
+ * @platformNote All | 参数为空返回 104;消息或 Widget 未找到返回 116;当前豆包环境未提供消息更新能力时返回 103;其他失败统一返回 102。
9900
10891
  *
9901
10892
  * @public
9902
10893
  */
@@ -9978,7 +10969,7 @@ export declare interface UpdateWidgetParams {
9978
10969
  * @errorCode errNo | 121902 | uploadFile:fail no file exist | Android,iOS | filePath 为空、文件不存在或路径不是文件 | 使用文件 API 获取当前智能服务可访问的有效文件路径
9979
10970
  * @errorCode errNo | 121905 | uploadFile:fail upload file abort | Android,iOS | 调用 UploadTask.abort 中断上传 | 按业务需要处理取消状态,无需自动重试
9980
10971
  * @errorCode errNo | 121906 | uploadFile:fail file path permission denied | Android,iOS | 当前智能服务无权访问 filePath | 改用当前智能服务目录内的文件
9981
- * @errorCode errNo | 121920 | uploadFile:fail request time out | Android,iOS | 上传超过宿主超时时间 | 检查网络或设置合理的 timeout 后重试
10972
+ * @errorCode errNo | 121920 | uploadFile:fail request time out | Android,iOS | 上传超过豆包客户端的超时时间 | 检查网络或设置合理的 timeout 后重试
9982
10973
  * @errorCode errNo | 121985 | uploadFile:fail network unavailable | Android,iOS | 当前网络不可用 | 恢复网络连接后重试
9983
10974
  * @errorCode errNo | 121991 | uploadFile:fail network error | Android,iOS | 上传过程中发生网络错误 | 检查网络和服务端状态后重试
9984
10975
  * @errorCode errNo | 121992 | uploadFile:fail enableProfile is not supported | Android,iOS | enableProfile 设置为 true | 移除 enableProfile 或设置为 false
@@ -10011,14 +11002,14 @@ export declare function uploadFile(params: UploadFileParams): UploadTask;
10011
11002
  * @public
10012
11003
  */
10013
11004
  export declare interface UploadFileParams {
10014
- /** 开发者服务器地址,需为完整的 HTTP/HTTPS URL,并通过宿主侧上传域名白名单校验。 */
11005
+ /** 开发者服务器地址,需为完整的 HTTP/HTTPS URL,并通过豆包配置的上传域名白名单校验。 */
10015
11006
  url: string;
10016
11007
  /** 要上传文件资源的本地路径。 */
10017
11008
  filePath: string;
10018
11009
  /** 文件对应的 form field name/key,服务端通过该 key 获取文件内容;multipart filename 使用 filePath 的 basename。 */
10019
11010
  name: string;
10020
11011
  /**
10021
- * HTTP 请求 Header。`referer`、`user-agent`、`content-type` 等宿主管控字段不会被业务覆盖。
11012
+ * HTTP 请求 Header。`referer`、`user-agent`、`content-type` 等由豆包客户端管理的字段不会被业务覆盖。
10022
11013
  *
10023
11014
  * @default -
10024
11015
  */
@@ -10030,7 +11021,7 @@ export declare interface UploadFileParams {
10030
11021
  */
10031
11022
  formData?: Record<string, unknown>;
10032
11023
  /**
10033
- * 超时时间,单位 ms;不传时使用宿主侧默认超时配置。
11024
+ * 超时时间,单位 ms;不传时使用豆包客户端的默认超时配置。
10034
11025
  *
10035
11026
  * @default -
10036
11027
  */
@@ -10072,7 +11063,7 @@ export declare interface UploadTask extends Promise<UploadFileResult> {
10072
11063
  /**
10073
11064
  * 监听上传进度变化。
10074
11065
  *
10075
- * 同一个任务可以注册多个回调,每次收到宿主进度事件时依次调用。
11066
+ * 同一个任务可以注册多个回调,每次收到豆包客户端的进度事件时依次调用。
10076
11067
  */
10077
11068
  onProgressUpdate: (callback: (event: UploadTaskProgressUpdateEvent) => void) => void;
10078
11069
  /**
@@ -10084,7 +11075,7 @@ export declare interface UploadTask extends Promise<UploadFileResult> {
10084
11075
  /**
10085
11076
  * 监听 HTTP Response Header 事件。
10086
11077
  *
10087
- * 同一个任务可以注册多个回调,宿主收到上传响应头时依次调用。
11078
+ * 同一个任务可以注册多个回调,豆包客户端收到上传响应头时依次调用。
10088
11079
  */
10089
11080
  onHeadersReceived: (callback: (event: UploadTaskHeadersReceivedEvent) => void) => void;
10090
11081
  /**
@@ -10183,7 +11174,16 @@ export declare type UserScreenRecordState = 'start' | 'stop';
10183
11174
  * ```json
10184
11175
  * {}
10185
11176
  * ```
10186
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据异常信息确认设备是否支持震动
11177
+ * @errorExample
11178
+ * ```json
11179
+ * {
11180
+ * "errNo": 103,
11181
+ * "errMsg": "feature not support"
11182
+ * }
11183
+ * ```
11184
+ * @errorCode errNo | 103 | feature not support | Android | Android 设备无振动器或不支持震动能力 | 提示用户当前设备不支持震动,避免依赖该能力
11185
+ * @errorCode common | 102 | Android
11186
+ * @platformNote iOS | 长震动恒返回成功,无失败错误码
10187
11187
  *
10188
11188
  * @public
10189
11189
  */
@@ -10214,7 +11214,16 @@ export declare const vibrateLong: (params?: {} | undefined) => Promise<object>;
10214
11214
  * ```json
10215
11215
  * {}
10216
11216
  * ```
10217
- * @errorCode none | - | - | Android,iOS | 当前实现未稳定返回顶层 errNo/errMsg | 根据异常信息确认设备是否支持震动
11217
+ * @errorExample
11218
+ * ```json
11219
+ * {
11220
+ * "errNo": 103,
11221
+ * "errMsg": "feature not support"
11222
+ * }
11223
+ * ```
11224
+ * @errorCode errNo | 103 | feature not support | Android,iOS | Android 设备无振动器或不支持震动能力,或 iOS 系统版本低于 13.0 | 提示用户当前设备或系统不支持震动,避免依赖该能力
11225
+ * @errorCode common | 102 | Android
11226
+ * @platformNote Android | 设备不支持震动或触发震动失败时返回 102 internal error;iOS 无对应失败错误码
10218
11227
  *
10219
11228
  * @public
10220
11229
  */