@henjicc/ai-sdk 0.6.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.6.1 - 2026-09-24
4
+
5
+ - 修复百炼 Fun Duplex 实时识别把无句首标记的空文本中间帧误判为无效响应的问题;覆盖 Qwen Audio 3.1 streaming 与 Fun-ASR 共享协议。
6
+ - 保持缺失文字字段、空最终结果、全程无有效 final 的严格校验及连接释放。
7
+
3
8
  ## 0.6.0 - 2026-09-24
4
9
 
5
10
  - 新增 MiMo 2.6 Pro / Flash / Pro-UltraSpeed 能力;默认推荐 Pro / Flash,保留 2.5 ID(官方计划 10 月 21 日下线),不自动替换用户选择。
package/README.md CHANGED
@@ -48,10 +48,10 @@ try {
48
48
 
49
49
  百炼工厂必须传 `baseUrl` 为实际地域/工作空间的 API 根地址,不包含端点路径。其他供应商可以覆盖根地址与 `credentialId`;SDK 不自动切换地域或账号。不同模型的向量不能混用;切换模型通常需要重建向量索引。Rerank 分数仅在本次请求内比较。
50
50
 
51
- SDK `0.6.0` 的正式分发渠道为公共 npm,无需配置 registry 或访问令牌:
51
+ SDK `0.6.1` 的正式分发渠道为公共 npm,无需配置 registry 或访问令牌:
52
52
 
53
53
  ```bash
54
- npm install @henjicc/ai-sdk@0.6.0
54
+ npm install @henjicc/ai-sdk@0.6.1
55
55
  ```
56
56
 
57
57
  然后提供 4 个宿主能力(`Transport` / `CredentialStore` / `MediaReader` / `Logger`),创建客户端:
@@ -150,10 +150,10 @@ function parseFunEvent(root) {
150
150
  const segment = parseBailianSentence(sentence);
151
151
  const transcript = segment?.text ?? string(sentence?.text);
152
152
  if (!transcript) {
153
- // 官方会用 text="" + sentence_begin=true/sentence_end=false 宣告新句开始;
154
- // 这是合法的中间生命周期事件,不是识别结果。最终句仍必须带有效文本。
155
- if (sentence?.sentence_begin === true && sentence?.sentence_end === false) {
156
- return { kind: 'ignored', eventType: 'empty-sentence-begin' };
153
+ // 句首及后续中间帧均可能尚无文字;只有首帧带 sentence_begin。
154
+ // 必须有 text 字符串与明确的非终态,不能把缺字段的异常响应当作空帧。
155
+ if (typeof sentence?.text === 'string' && sentence.sentence_end === false) {
156
+ return { kind: 'ignored', eventType: sentence.sentence_begin === true ? 'empty-sentence-begin' : 'empty-intermediate' };
157
157
  }
158
158
  if (sentence?.sentence_end === true) {
159
159
  throw new AiRuntimeError('invalid_response', 'Bailian Fun-ASR final result has no text');
package/docs/consumers.md CHANGED
@@ -3,29 +3,33 @@
3
3
  本清单是 `@henjicc/ai-sdk` 消费方的唯一维护入口,用于 SDK 发布后的跨仓升级协调。
4
4
  绝对路径仅描述当前开发机上的仓库位置,不进入 SDK 运行时代码、发布包或用户配置。
5
5
 
6
- 最后核对日期:2026-09-24
7
-
8
- `0.6.0` 候选版本:新增 MiMo 2.6、GLM-5.3-FlashX、KIE HappyHorse 1.1、火山 Seedream 5.0 Flash 和百炼 Qwen Audio 3.1 ASR;补齐 MiMo Responses 思考事件与 ASR JSON/说话人解析。SDK 79 个测试文件 / 933 项测试、类型构建、可移植性、49 个公开入口和受限宿主验证通过;痕迹 AI 目录、参数组合、模型发现与旧配置兼容验证通过。MiMo 思考事件、ASR JSON 回退、HappyHorse 图生字段的修复撤销验证均检测到失败,恢复后通过。未执行付费请求。等待发布提交 CI 和 npm 身份恢复,尚未公共发布。
9
-
10
- 本轮消费影响:Henji-AI 自动组合新增 generation pack,无需新增助手工具;三个仓内示例的精确依赖同步到 `0.6.0`,公共发布后的独立安装验证待完成。外部 `say-it` 仍需先完成 `0.5.0` 文件上传桥迁移;当前未引入这批模型,不机械升级。`henji-ai-ps` 本机未定位,不声称已完成外部宿主升级。
6
+ 最后核对日期:2026-09-24
7
+
8
+ `0.6.0` 已发布:新增 MiMo 2.6、GLM-5.3-FlashX、KIE HappyHorse 1.1、火山 Seedream 5.0 Flash 和百炼 Qwen Audio 3.1 ASR;补齐 MiMo Responses 思考事件与 ASR JSON/说话人解析。SDK 79 个测试文件 / 933 项测试、类型构建、可移植性、49 个公开入口和受限宿主验证通过;痕迹 AI 目录、参数组合、模型发现与旧配置兼容验证通过。MiMo 思考事件、ASR JSON 回退、HappyHorse 图生字段的修复撤销验证均检测到失败,恢复后通过。未执行付费请求。发布提交 `d08ea8fa` 的必需 CI [35904531000](https://github.com/henjicc/Henji-AI/actions/runs/35904531000) 全部通过,npm 网页认证后发布固定候选包;公共索引可读后,隔离配置、缓存与令牌的仓外匿名安装、包校验、新模型请求探针、Vite 49 入口和受限宿主验证全部通过。
9
+
10
+ 本轮消费影响:Henji-AI 自动组合新增 generation pack,无需新增助手工具;三个仓内示例精确依赖同步到 `0.6.0`,均在仓外从公共 npm 匿名安装,minimal-node dry-run、llm-chat dry-run / bundle 边界和 form-renderer 构建 / 五类模型表单输出通过。外部 `say-it` 仍需先完成 `0.5.0` 文件上传桥迁移;当前未引入这批模型,不机械升级。`henji-ai-ps` 本机未定位,不声称已完成外部宿主升级。
11
+
12
+ - `0.6.0` tarball:[公共 npm 包](https://registry.npmjs.org/@henjicc/ai-sdk/-/ai-sdk-0.6.0.tgz)
13
+ - `0.6.0` shasum:`2d02f956d6addc9fb92580cda323bc9d0904607e`
14
+ - `0.6.0` integrity:`sha512-GzhWnVkdv2NNZjf0diI9dRBRkc/cH0O5nCjbiQrast54f+ik4Q4LbKjytrMhyMawxaSkCoHVeNQuEUwnCDkcnA==`
11
15
 
12
16
  Henji-AI 安装包的 GPT Image 2.5 高分辨率报错归属:宿主智能比例预处理曾忽略联动过滤,将 `smart` 转成 KIE 仅限 1K 的 `27:16`,SDK 在请求前正确拒绝。修复位于应用公共预处理,按当前分辨率/渠道的合法选项匹配;Flare/Sunburst 的 1K/2K/4K 及 APIMart、Grsai 同类筛选已有定向覆盖。无需放宽 SDK 契约或发布 SDK;安装包需随应用更新才包含修复,现有版本可手动选合法比例规避。
13
17
 
14
- 当前仓内候选 SDK:`0.6.0`;最近已确认公共 npm SDK:`0.5.2`(2026-09-21 已发布并完成公共匿名回装)。以下为历史发布证据。
15
-
16
- `0.5.2` 完善轻量 `@henjicc/ai-sdk/llm/streaming`:正式类型支持文本、JSON Object 与 JSON Schema,Chat Completions 的最终请求体写入 `response_format`,OpenAI 输出上限写入 `max_completion_tokens`;结构化输出、思考模式和模型能力的非法组合会在请求前返回结构化错误。流式正文与思考继续分离,保留外部 `AbortSignal`,不设置默认总时限;未显式配置输出上限时不再注入 4096,服务端以 `length` 等原因结束时返回 `truncated: true`。发布前 77 个测试文件 / 909 项测试、可移植性、构建、49 个 Vite 公开入口和受限宿主门禁通过;故意撤销结构化参数、输出上限、OpenAI 字段映射和截断标记后,8 项定向断言失败,恢复后通过。公共索引可读后,已使用隔离 npm 配置和缓存匿名安装精确版本,并从已发布的轻量入口验证最终请求体包含 JSON Schema、思考强度和 24,000 token 上限,SSE 正文/思考事件分离且未截断。
17
-
18
- - `0.5.2` tarball:https://registry.npmjs.org/@henjicc/ai-sdk/-/ai-sdk-0.5.2.tgz
19
- - `0.5.2` shasum:`f1c06ae12c9240b203f3ad310c4eec35b755db13`
20
- - `0.5.2` integrity:`sha512-ljb50njJ0bXWxwNmlgZ1+YDBoBgPiLhoNEDjsbhPbe4pc7aVZGcfvpDLh+zGdx9KsB7g7Xp3mqVM4MLpVQm15g==`
21
-
22
- `0.5.1` 将 Grsai GPT Image 2.5 未指定变体时的默认值从官方公告仍在维护的 Flare 改为 Standard,并同步默认价格;显式选择 Flare / Sunburst 的调用保持兼容。公共 DTO、请求协议、宿主边界和其余模型未变。发布前 77 个测试文件 / 899 项测试、可移植性、构建、49 个 Vite 公开入口和受限宿主门禁通过;公共索引可读后,已在隔离用户 npm 配置的仓外目录匿名安装并完成 ESM 导入。
23
-
24
- - `0.5.1` tarball:https://registry.npmjs.org/@henjicc/ai-sdk/-/ai-sdk-0.5.1.tgz
25
- - `0.5.1` shasum:`40087e680f1b7de63a601d12758acb7280de305f`
26
- - `0.5.1` integrity:`sha512-+L/mAmFU6zgJ0gdsIwy0T1Z9TDOABaxO3HgLsEvMUNbRQhs9K55golF1472EgSJsIDysScnUulFJfBVg0xsNBg==`
27
-
28
- `0.5.0` 发布运行时代码提交 `1333422e`,补充边界回归提交 `da37e4bc`;后者必需 CI `35535140722` 全部成功。12组修复撤销验证均检测到失败,恢复后定向测试通过。固定候选包经仓外回装后发布,公共 registry 匿名安装的 shasum/integrity 与候选包一致;Vite公开入口和无TextEncoder/TextDecoder的受限宿主消费通过。npm网页登录与发布二次验证已完成;发布后等待公共索引可读才执行匿名验证,没有重复发布。
18
+ 当前仓内及公共 npm SDK:`0.6.0`(2026-09-24 已发布并完成公共匿名回装)。以下为历史发布证据。
19
+
20
+ `0.5.2` 完善轻量 `@henjicc/ai-sdk/llm/streaming`:正式类型支持文本、JSON Object 与 JSON Schema,Chat Completions 的最终请求体写入 `response_format`,OpenAI 输出上限写入 `max_completion_tokens`;结构化输出、思考模式和模型能力的非法组合会在请求前返回结构化错误。流式正文与思考继续分离,保留外部 `AbortSignal`,不设置默认总时限;未显式配置输出上限时不再注入 4096,服务端以 `length` 等原因结束时返回 `truncated: true`。发布前 77 个测试文件 / 909 项测试、可移植性、构建、49 个 Vite 公开入口和受限宿主门禁通过;故意撤销结构化参数、输出上限、OpenAI 字段映射和截断标记后,8 项定向断言失败,恢复后通过。公共索引可读后,已使用隔离 npm 配置和缓存匿名安装精确版本,并从已发布的轻量入口验证最终请求体包含 JSON Schema、思考强度和 24,000 token 上限,SSE 正文/思考事件分离且未截断。
21
+
22
+ - `0.5.2` tarball:https://registry.npmjs.org/@henjicc/ai-sdk/-/ai-sdk-0.5.2.tgz
23
+ - `0.5.2` shasum:`f1c06ae12c9240b203f3ad310c4eec35b755db13`
24
+ - `0.5.2` integrity:`sha512-ljb50njJ0bXWxwNmlgZ1+YDBoBgPiLhoNEDjsbhPbe4pc7aVZGcfvpDLh+zGdx9KsB7g7Xp3mqVM4MLpVQm15g==`
25
+
26
+ `0.5.1` 将 Grsai GPT Image 2.5 未指定变体时的默认值从官方公告仍在维护的 Flare 改为 Standard,并同步默认价格;显式选择 Flare / Sunburst 的调用保持兼容。公共 DTO、请求协议、宿主边界和其余模型未变。发布前 77 个测试文件 / 899 项测试、可移植性、构建、49 个 Vite 公开入口和受限宿主门禁通过;公共索引可读后,已在隔离用户 npm 配置的仓外目录匿名安装并完成 ESM 导入。
27
+
28
+ - `0.5.1` tarball:https://registry.npmjs.org/@henjicc/ai-sdk/-/ai-sdk-0.5.1.tgz
29
+ - `0.5.1` shasum:`40087e680f1b7de63a601d12758acb7280de305f`
30
+ - `0.5.1` integrity:`sha512-+L/mAmFU6zgJ0gdsIwy0T1Z9TDOABaxO3HgLsEvMUNbRQhs9K55golF1472EgSJsIDysScnUulFJfBVg0xsNBg==`
31
+
32
+ `0.5.0` 发布运行时代码提交 `1333422e`,补充边界回归提交 `da37e4bc`;后者必需 CI `35535140722` 全部成功。12组修复撤销验证均检测到失败,恢复后定向测试通过。固定候选包经仓外回装后发布,公共 registry 匿名安装的 shasum/integrity 与候选包一致;Vite公开入口和无TextEncoder/TextDecoder的受限宿主消费通过。npm网页登录与发布二次验证已完成;发布后等待公共索引可读才执行匿名验证,没有重复发布。
29
33
 
30
34
  - tarball:https://registry.npmjs.org/@henjicc/ai-sdk/-/ai-sdk-0.5.0.tgz
31
35
  - shasum:`1b66a7c54f4f86a01b73fdca68b1c63e53dcbe10`
@@ -73,20 +77,20 @@ Henji-AI workspace 与三个仓内示例 manifest 均锁定 `0.4.0`;下表原
73
77
 
74
78
  | 仓库 / 开发路径 | 宿主类型 | 当前精确版本 | SDK 入口与构建方式 | 凭据 / transport 责任 | 需同步的变更类型 | 验证命令 | 同步证据与边界 | 最后核对 |
75
79
  |---|---|---|---|---|---|---|---|---|
76
- | `Henji-AI`<br>`/Users/henji/Documents/VibeCode/Henji-AI` | Electron 42 主进程 + React/Vite;SDK 主开发、首发验证宿主 | workspace 源码与公共 npm 均为 `0.2.8` | 包根、`provider-packs/*`、`tool-packs/*`;根构建先执行 `build:sdk`,再构建 Electron | Electron 主进程注入 HTTP transport、凭据、媒体读取、日志、trace、取消与落盘;渲染层不直接持有密钥 | 公共类型/目录、provider preset、凭据坐标、transport、媒体、包导出、LLM/生成执行协议 | `npm run check:sdk`;相关 Vitest;改主进程后 `npm run electron:build` | `e74fdf09`;公共发布 prepublish 全门禁通过,72 个测试文件 / 766 项测试;正式 tarball 已在无 npm/GitHub 凭据的仓外目录完成安装与 ESM 导入;全新安装后的 workspace 解析已修复 | 2026-08-31 |
80
+ | `Henji-AI`<br>`D:/VibeCode/Henji-AI` | Electron 42 主进程 + React/Vite;SDK 主开发、首发验证宿主 | workspace 源码与公共 npm 均为 `0.6.0` | 包根、`provider-packs/*`、`tool-packs/*`;根构建先执行 `build:sdk`,再构建 Electron | Electron 主进程注入 HTTP transport、凭据、媒体读取、日志、trace、取消与落盘;渲染层不直接持有密钥 | 公共类型/目录、provider preset、凭据坐标、transport、媒体、包导出、LLM/生成执行协议 | SDK 发布门禁、相关宿主 Vitest、渲染层/主进程类型检查与模型 i18n | `d08ea8fa`;必需 CI `35904531000` 成功,SDK 933 项测试、公开入口及受限宿主验证通过;公共包匿名安装及校验值一致,未执行付费请求 | 2026-09-24 |
77
81
  | `henji-ai-ps`<br>`/Users/henji/Documents/VibeCode/henji-ai-ps` | Photoshop UXP 插件 + React/Vite IIFE(pnpm) | manifest/lock 均精确锁定公共 npm `0.2.8`;lock integrity 与上方正式产物一致 | `generation/core`、单模型/供应商 pack、LLM streaming;Vite 构建与 UXP smoke bundle | UXP 宿主注入受限 `fetch`、provider 凭据、媒体编码读取和脱敏日志;SDK 不读取 Node/文件系统 | 生成 pack/exports、受限环境可移植性、RuntimeContext、凭据 scope、媒体与流式 LLM;不因版本同步自动引入 GLM | `pnpm typecheck:uxp-smoke && pnpm check:uxp-sdk && pnpm smoke:uxp:build && pnpm check:uxp-smoke`;完整 `pnpm check` | `e509716`;无用户 npm 凭据的 frozen lock 安装通过;Node 22 下四项门禁通过,正式产品仍仅 39 个 generation/erase packs,网络调用与受限环境风险均为 0 | 2026-08-31 |
78
82
  | `say-it`<br>`/Users/henji/Documents/VibeCode/say-it` | Tauri 2 + Rust 管理 QuickJS;WebView 不运行 SDK | manifest/lock 均精确锁定公共 npm `0.2.8`;resolved、shasum、integrity 与上方正式产物一致 | 按需打包 capability、Bailian/火山实时 ASR、SiliconFlow/Groq 文件 ASR、translation、LLM modules 为相互隔离 IIFE;Rust 加载 bundle | Rust Host API 注入 HTTP 字节流、WS、media-ref、CredentialStore、日志/trace、Abort/timeout/cancel;QuickJS/插件/WebView 不直取密钥 | capability/LLM 协议、按需 exports、descriptor source/坐标、QuickJS 可移植性、bundle 隔离;不因版本同步自动增加未采用模型 | `npm run sdk-runtime:typecheck && npm run sdk-runtime:build`;`npm run test:ui`;Rust 定向/全量测试;`npm run ui:build` | SDK 迁移提交 `5eb4c8b`,0.2.8 基础验证 `df3107e`,Rust→QuickJS 可选字段省略修复 `9e70d32`;QuickJS multipart 内存修复 `3f00ea9` 属宿主传输实现问题,改为原生二进制句柄且保持 64 MiB 沙箱上限,10 MiB 音频边界回归、重定向/资源清理测试、SDK Runtime 类型检查与构建通过 | 2026-09-01 |
79
83
 
80
84
  ## SDK 仓内消费验证面
81
85
 
82
86
  这些目录是可独立安装、构建的真实示例,但与 SDK 同属 `Henji-AI` 仓库,不重复算外部仓库。
83
- 它们的 manifest 均精确声明待发布的 `0.2.8`,且没有锁文件;公共 npm 发布后再从远端重新安装并回填验证证据。
87
+ 它们的 manifest 均精确声明公共 npm `0.6.0`,仓内不维护锁文件;本次在仓外临时副本重新安装并验证,未使用 workspace 或本地源码替代正式包。
84
88
 
85
89
  | 路径 | 用途 / 入口 | 当前版本 | 宿主责任 | 验证命令 | 同步证据 | 最后核对 |
86
90
  |---|---|---|---|---|---|---|
87
- | `/Users/henji/Documents/VibeCode/Henji-AI/packages/ai-sdk/examples/minimal-node` | `generation` + `runtime` 按需入口;完整 generation catalog、KIE dry-run/live 闸门,不带 LLM/BigModel | `0.2.8`(精确 manifest,无 lock、无 workspace alias) | Node transport、环境凭据、文件媒体读取、日志 | 在目录内 `npm install && npm run dry-run` | 已在无用户 npm 凭据的临时副本中从公共 npm 回装;dry-run 网络调用为 0 | 2026-08-31 |
88
- | `/Users/henji/Documents/VibeCode/Henji-AI/packages/ai-sdk/examples/llm-chat` | `llm/streaming` 按需入口;OpenAI-compatible SSE 对话,不带 generation、BigModel preset/models/pricing、Groq 或 LLM modules(保留通用身份解析所需 profiles) | `0.2.8`(精确 manifest,无 lock、无 workspace alias) | Node transport、环境凭据、流事件与取消 | 在目录内 `npm install && npm run dry-run && npm run check:bundle` | 已从公共 npm 回装;dry-run 网络调用为 0,bundle 38 个模块、无越界模块 | 2026-08-31 |
89
- | `/Users/henji/Documents/VibeCode/Henji-AI/packages/ai-sdk/examples/form-renderer` | `generation` + `catalog` + `runtime` 按需入口;完整 generation catalog/参数契约与最小 renderer,不带 LLM/BigModel | `0.2.8`(精确 manifest,无 lock、无 workspace alias) | 零网络 RuntimeContext;仅目录与 renderer | 在目录内 `npm install && npm run build && npm start` | 已从公共 npm 回装;构建与五类代表模型表单渲染通过 | 2026-08-31 |
91
+ | `D:/VibeCode/Henji-AI/packages/ai-sdk/examples/minimal-node` | `generation` + `runtime` 按需入口;完整 generation catalog、KIE dry-run/live 闸门,不带 LLM/BigModel | `0.6.0`(精确 manifest,仓内无 lock) | Node transport、环境凭据、文件媒体读取、日志 | 在目录内 `npm install && npm run dry-run` | 公共 npm 匿名安装、类型构建与 dry-run 通过,模型网络调用为 0 | 2026-09-24 |
92
+ | `D:/VibeCode/Henji-AI/packages/ai-sdk/examples/llm-chat` | `llm/streaming` 按需入口;OpenAI-compatible SSE 对话,不带 generation、BigModel preset/models/pricing、Groq 或 LLM modules(保留通用身份解析所需 profiles) | `0.6.0`(精确 manifest,仓内无 lock) | Node transport、环境凭据、流事件与取消 | 在目录内 `npm install && npm run dry-run && npm run check:bundle` | 公共 npm 匿名安装、类型构建、dry-run 和 bundle 边界检查通过 | 2026-09-24 |
93
+ | `D:/VibeCode/Henji-AI/packages/ai-sdk/examples/form-renderer` | `generation` + `catalog` + `runtime` 按需入口;完整 generation catalog/参数契约与最小 renderer,不带 LLM/BigModel | `0.6.0`(精确 manifest,仓内无 lock) | 零网络 RuntimeContext;仅目录与 renderer | 在目录内 `npm install && npm run build && npm start` | 公共 npm 匿名安装、类型构建与五类代表模型表单输出通过 | 2026-09-24 |
90
94
 
91
95
  ## 非消费者证据
92
96
 
@@ -268,3 +268,15 @@ Qwen-MT 可通过 OpenAI 兼容 `POST /compatible-mode/v1/chat/completions` 或
268
268
  新增 keepDialect 和即时 vocabulary 参数;实时支持 vadModel。短音频说话人分离发送 speaker_diarization_enabled,文件转写发送 diarization_enabled。文件 channel_id 必须是整数数组,公共单声道选择 channelId 映射为 [channelId];旧 Qwen3 file_url 契约不改变。短音频 sample_rate 按官方字符串发送,用户上下文 type=input_text。speakerId 作为可选公共输出字段,旧调用兼容。短音频按 tokens 计费,文件与实时不能沿用其 token 单价;未新增不可靠费用计算器。
269
269
 
270
270
  精确测试复用既有共享异步/实时失败、取消与释放测试,并补充 3.1 JSON/SSE、说话人分离、空 parameters 与新参数路由。样本区分字面与字段构造。
271
+
272
+ ### 2026-09-24 实时空文本中间帧实测补充
273
+
274
+ 以合成语音、合法 `SpeechRecognitionRealtimeStart` 在 SDK 0.6.0 直调 `qwen-audio-3.1-asr-flash-streaming`,复现句首事件之后继续返回 `text=""`、`sentence_end=false`、`end_time=null`、无 `sentence_begin` 的中间帧。官方事件页(https://help.aliyun.com/zh/model-studio/fun-asr-server-events,2026-09-24 核对)说明只有新句首个中间结果包含句首标记;空文本后续帧来自本次实测,并非官方字面示例。
275
+
276
+ |事件|前置状态|字段与空值|状态/输出|错误与资源|
277
+ |---|---|---|---|---|
278
+ |空文本中间帧|任务已开始|text 是空字符串,sentence_end=false;sentence_begin 可省略,end_time 可为 null|保持会话,继续等待,不产生 partial/final|不关闭连接|
279
+ |缺 text 或缺句子状态的无文本帧|任务已开始|缺字段/类型错误不能等同空字符串|invalid_response|失败并释放连接|
280
+ |空 final 或全程无 final|任务已开始|sentence_end=true 但无文字,或 task-finished 前无 final|仍拒绝空结果|失败并释放连接|
281
+
282
+ fixture `asr-realtime-fun.json.emptyIntermediate` 是实测脱敏结构。共享 Fun Duplex parser 的两个 Fun-ASR ID 与 Qwen-Audio 3.1 streaming 均沿同一规则;Qwen Realtime 独立解析器不受影响。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@henjicc/ai-sdk",
3
- "version": "0.6.0",
3
+ "version": "0.6.1",
4
4
  "description": "痕迹AI 多供应商模型适配 SDK",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {