diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md index ac0cb99d37..64f59017c9 100644 --- a/THIRD_PARTY_NOTICES.md +++ b/THIRD_PARTY_NOTICES.md @@ -36,7 +36,7 @@ External packages installed for runtime use or distributed inside the prebuilt b | [`@anthropic-ai/sdk`](https://github.com/anthropics/anthropic-sdk-typescript) | MIT | | [`@babel/code-frame`](https://github.com/babel/babel) | MIT | | [`@browserbasehq/stagehand`](https://github.com/browserbase/stagehand) | MIT | -| [`@deepseek-ai/libreoffice-kit`](https://github.com/deepseek-harness/libreoffice-kit) | MPL-2.0 | +| [`@deepseek-ai/libreoffice-kit`](https://github.com/deepseek-ai/dsh-libreoffice-kit) | MPL-2.0 | | [`@earendil-works/pi-ai`](https://github.com/earendil-works/pi) | MIT | | [`@eslint-community/regexpp`](https://github.com/eslint-community/regexpp) | MIT | | [`@fortune-sheet/core`](https://github.com/ruilisi/fortune-sheet) | MIT | @@ -175,7 +175,7 @@ The installed SDK 0.3.263 declares the following optional platform packages. Eac `@deepseek-ai/libreoffice-kit`, `@deepseek-ai/libreoffice-kit-wasm`, `@deepseek-ai/libreoffice-kit-darwin-arm64`, `@deepseek-ai/libreoffice-kit-darwin-x64`, `@deepseek-ai/libreoffice-kit-win32-arm64`, `@deepseek-ai/libreoffice-kit-win32-x64` declare MPL-2.0, which remains outside the permissive-license allowlist; the notices check accepts only these package identities at those terms. The [distribution decision](.agents/notes/implemented/architecture/2026-09-14-independent-libreoffice-kit.md) records the source obligations. -The [kit repository](https://github.com/deepseek-harness/libreoffice-kit) supplies the corresponding LibreOffice source pin, modifications, build instructions, Node API, and artifact validation. Its engine packages retain their license and third-party notices; the Node API retains its MPL-2.0 declaration and NOTICE. Recipients must have access to those corresponding sources and notices. +The [kit repository](https://github.com/deepseek-ai/dsh-libreoffice-kit) supplies the corresponding LibreOffice source pin, modifications, build instructions, Node API, and artifact validation. Its engine packages retain their license and third-party notices; the Node API retains its MPL-2.0 declaration and NOTICE. Recipients must have access to those corresponding sources and notices. ## Development-only npm dependencies diff --git a/apps/cli/tests/profiles/sdk/office-cli.e2e.ts b/apps/cli/tests/profiles/sdk/office-cli.e2e.ts index cc851efd23..d94a88a304 100644 --- a/apps/cli/tests/profiles/sdk/office-cli.e2e.ts +++ b/apps/cli/tests/profiles/sdk/office-cli.e2e.ts @@ -108,7 +108,7 @@ it.skipIf(!process.env.DEEPSEEK_API_KEY || process.platform === 'win32')(`agent expect(existsSync(decoyMarker), 'the agent must not invoke system Office when the bundled CLI is supplied').toBe(false) expect(commandText, 'the skill supplies an entry; searching for other Office binaries is unnecessary').not.toMatch(/(?:which|whereis|command -v|find).{0,100}(?:libreoffice|soffice)/iu) const capabilities = JSON.parse(await readFile(join(root, 'capabilities.json'), 'utf8')) as { runtime: { version: string; cliPath: string } } - expect(capabilities.runtime.version).toBe('0.1.1') + expect(capabilities.runtime.version).toBe('0.1.5') expect(capabilities.runtime.cliPath).toMatch(/lib[/\\]cli\.js$/u) const pdf = await readFile(join(root, 'result.pdf')) expect(pdf.subarray(0, 5).toString()).toBe('%PDF-') diff --git a/apps/desktop-host/package.json b/apps/desktop-host/package.json index fe870e6308..71c49aad18 100644 --- a/apps/desktop-host/package.json +++ b/apps/desktop-host/package.json @@ -12,7 +12,7 @@ ], "dependencies": { "koffi": "^3.1.0", - "@deepseek-ai/libreoffice-kit": "^0.1.1", + "@deepseek-ai/libreoffice-kit": "^0.1.5", "@deepseek-ai/cordis": "workspace:~", "@deepseek-ai/dsh": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:*", diff --git a/apps/web/tests/fixtures/office/README.i18n.yaml b/apps/web/tests/fixtures/office/README.i18n.yaml index b6b2611a10..627de83cb2 100644 --- a/apps/web/tests/fixtures/office/README.i18n.yaml +++ b/apps/web/tests/fixtures/office/README.i18n.yaml @@ -3,5 +3,5 @@ # After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write apps/web/tests/fixtures/office/README.md /binary-office-fixtures: - en: 285c49550e034ce9 - zh: 1d9b91573398456d + en: 3a543ab88220f323 + zh: f5127b514290e64c diff --git a/apps/web/tests/fixtures/office/README.md b/apps/web/tests/fixtures/office/README.md index affa0b57b7..c96e73f5fe 100644 --- a/apps/web/tests/fixtures/office/README.md +++ b/apps/web/tests/fixtures/office/README.md @@ -2,6 +2,6 @@ English | [中文](README.zh.md) -`preview.doc`, `preview.xls`, and `preview.ppt` contain `Office preview 中文文档`. They are the `one-page.doc`, `one-sheet.xls`, and `one-slide.ppt` fixtures from [LibreOffice Kit](https://github.com/deepseek-harness/libreoffice-kit/tree/main/test/fixtures), exported from Harness-authored OOXML with LibreOffice 26.8.0.3 using the Word, Excel, and PowerPoint 97 filters. The source documents retain the Harness MIT license. +`preview.doc`, `preview.xls`, and `preview.ppt` contain `Office preview 中文文档`. They are the `one-page.doc`, `one-sheet.xls`, and `one-slide.ppt` fixtures from [LibreOffice Kit](https://github.com/deepseek-ai/dsh-libreoffice-kit), exported from Harness-authored OOXML with LibreOffice 26.8.0.3 using the Word, Excel, and PowerPoint 97 filters. The source documents retain the Harness MIT license. The browser regression reads these committed OLE files and verifies actual conversion and selectable PDF text. They contain no user documents and require no Office application or fixture generator during tests. They cover simple legacy imports, not complex-document fidelity. diff --git a/apps/web/tests/fixtures/office/README.zh.md b/apps/web/tests/fixtures/office/README.zh.md index ff49b01c51..1fa8e42749 100644 --- a/apps/web/tests/fixtures/office/README.zh.md +++ b/apps/web/tests/fixtures/office/README.zh.md @@ -2,6 +2,6 @@ [English](README.md) | 中文 -`preview.doc`、`preview.xls` 和 `preview.ppt` 包含 `Office preview 中文文档`。它们来自 [LibreOffice Kit](https://github.com/deepseek-harness/libreoffice-kit/tree/main/test/fixtures) 的 `one-page.doc`、`one-sheet.xls` 和 `one-slide.ppt`,由 Harness 编写的 OOXML 通过 LibreOffice 26.8.0.3 的 Word、Excel 和 PowerPoint 97 过滤器导出。源文档保留 Harness 的 MIT 许可证。 +`preview.doc`、`preview.xls` 和 `preview.ppt` 包含 `Office preview 中文文档`。它们来自 [LibreOffice Kit](https://github.com/deepseek-ai/dsh-libreoffice-kit) 的 `one-page.doc`、`one-sheet.xls` 和 `one-slide.ppt`,由 Harness 编写的 OOXML 通过 LibreOffice 26.8.0.3 的 Word、Excel 和 PowerPoint 97 过滤器导出。源文档保留 Harness 的 MIT 许可证。 浏览器回归读取这些检入的 OLE 文件,验证真实转换和可选取的 PDF 文字。文件不含用户文档,测试期间不需要 Office 应用或文件生成器。它们覆盖简单的旧格式导入,不代表复杂文档的保真度。 diff --git a/docs/subsystems/office-to-pdf.i18n.yaml b/docs/subsystems/office-to-pdf.i18n.yaml index b9af22f340..309b486103 100644 --- a/docs/subsystems/office-to-pdf.i18n.yaml +++ b/docs/subsystems/office-to-pdf.i18n.yaml @@ -15,5 +15,5 @@ en: 715105e6fff89e7c zh: a7fe63c7dd0be17f /office-to-pdf/engine-selection-and-limits: - en: cf115b05c7135c99 - zh: 327f4aff17135329 + en: 3908dab1b7d78890 + zh: 8f2aed6e27c5b5dd diff --git a/docs/subsystems/office-to-pdf.md b/docs/subsystems/office-to-pdf.md index 267eb347a6..92357607bb 100644 --- a/docs/subsystems/office-to-pdf.md +++ b/docs/subsystems/office-to-pdf.md @@ -37,7 +37,7 @@ The `api/remotes` assembly mounts the conversion service's generated Remote desc ## Engine selection and limits -The external [`@deepseek-ai/libreoffice-kit`](https://github.com/deepseek-harness/libreoffice-kit) Node API selects its precompiled engines. The kit has an independent version and release workflow, defined by the [release ownership decision](../../.agents/notes/implemented/architecture/2026-09-14-independent-libreoffice-kit.md). Application builds install the published npm packages. Application packaging requires the target’s declared native engine, or Node WASM when the kit declares no native engine for that target. The [platform engine reference](../../packages/document/office-to-pdf/README.md) defines installation and packaging. Invalid metadata, missing required assets, and conversion errors reject without switching engines. Conversion uses disk input and output paths on the Host, with no browser conversion engine or font RPC. +The external [`@deepseek-ai/libreoffice-kit`](https://github.com/deepseek-ai/dsh-libreoffice-kit) Node API selects its precompiled engines. The kit has an independent version and release workflow, defined by the [release ownership decision](../../.agents/notes/implemented/architecture/2026-09-14-independent-libreoffice-kit.md). Application builds install the published npm packages. Application packaging requires the target’s declared native engine, or Node WASM when the kit declares no native engine for that target. The [platform engine reference](../../packages/document/office-to-pdf/README.md) defines installation and packaging. Invalid metadata, missing required assets, and conversion errors reject without switching engines. Conversion uses disk input and output paths on the Host, with no browser conversion engine or font RPC. The [Host provider configuration](../../packages/document/office-to-pdf/README.md#use-this-package) owns concurrency, deadlines, input/output limits, archive limits, image resolution, and font access. Native/WASM implementation and asset distribution belong to the kit workspace. System LibreOffice discovery, runtime engine downloads, persistent PDF caching, and model-facing rendering are outside this provider. diff --git a/docs/subsystems/office-to-pdf.zh.md b/docs/subsystems/office-to-pdf.zh.md index 67c3b467ed..88b0e8116b 100644 --- a/docs/subsystems/office-to-pdf.zh.md +++ b/docs/subsystems/office-to-pdf.zh.md @@ -37,7 +37,7 @@ ## 引擎选择和限制 -外部 [`@deepseek-ai/libreoffice-kit`](https://github.com/deepseek-harness/libreoffice-kit) Node API 选择其预编译引擎。kit 独立维护版本和发布流程,具体归属由[发布归属决策](../../.agents/notes/implemented/architecture/2026-09-14-independent-libreoffice-kit.zh.md)定义。应用构建时安装已发布的 npm 包。应用打包要求目标已声明的原生引擎;kit 未为该目标声明原生引擎时使用 Node WASM。[平台引擎参考](../../packages/document/office-to-pdf/README.zh.md)定义安装和打包规则。元数据无效、必需资源缺失和转换错误都会拒绝请求,不切换引擎。转换在 Host 使用磁盘输入输出路径,不使用浏览器转换引擎或字体 RPC。 +外部 [`@deepseek-ai/libreoffice-kit`](https://github.com/deepseek-ai/dsh-libreoffice-kit) Node API 选择其预编译引擎。kit 独立维护版本和发布流程,具体归属由[发布归属决策](../../.agents/notes/implemented/architecture/2026-09-14-independent-libreoffice-kit.zh.md)定义。应用构建时安装已发布的 npm 包。应用打包要求目标已声明的原生引擎;kit 未为该目标声明原生引擎时使用 Node WASM。[平台引擎参考](../../packages/document/office-to-pdf/README.zh.md)定义安装和打包规则。元数据无效、必需资源缺失和转换错误都会拒绝请求,不切换引擎。转换在 Host 使用磁盘输入输出路径,不使用浏览器转换引擎或字体 RPC。 [Host 提供方配置](../../packages/document/office-to-pdf/README.zh.md#use-this-package)负责并发、期限、输入输出上限、归档上限、图像分辨率和字体访问。原生/WASM 实现和资产分发属于 kit 工作区。系统 LibreOffice 探测、运行时引擎下载、持久 PDF 缓存和面向模型的渲染不属于此提供方。 diff --git a/packages/bundle/web-app/package.json b/packages/bundle/web-app/package.json index 8b522a40ae..5b9f722bfc 100644 --- a/packages/bundle/web-app/package.json +++ b/packages/bundle/web-app/package.json @@ -201,7 +201,7 @@ "@deepseek-ai/dsh-shell-env": "workspace:*", "@deepseek-ai/dsh-system-prompt": "workspace:*", "@deepseek-ai/dsh-typert-registry": "workspace:*", - "@deepseek-ai/libreoffice-kit": "^0.1.1", + "@deepseek-ai/libreoffice-kit": "^0.1.5", "@deepseek-ai/dsh-otel": "workspace:*" } } diff --git a/packages/document/office-to-pdf/README.i18n.yaml b/packages/document/office-to-pdf/README.i18n.yaml index 7de7ccb16d..62f2f23f0d 100644 --- a/packages/document/office-to-pdf/README.i18n.yaml +++ b/packages/document/office-to-pdf/README.i18n.yaml @@ -15,8 +15,8 @@ en: d152484eb41ac6b4 zh: a134331a31395608 /deepseek-ai-dsh-office-to-pdf/use-this-package: - en: de1e0623827dfa34 - zh: 64a50569d40abedc + en: b92c13cb8f11a03c + zh: 091a22d07620394e /deepseek-ai-dsh-office-to-pdf/understand-the-implementation: en: 2cd10fdd5204d64a zh: 769a79b7d684fda4 diff --git a/packages/document/office-to-pdf/README.md b/packages/document/office-to-pdf/README.md index d70b38966c..06a8621992 100644 --- a/packages/document/office-to-pdf/README.md +++ b/packages/document/office-to-pdf/README.md @@ -29,7 +29,7 @@ The [Web bundle](../../bundle/web-app/README.md) mounts this provider as `office Callers submit authorized source identity, version, optional byte size, a deferred bounded read, Office extension, and scheduling priority through `ctx.officeToPdf.convert()`. A changed source version rejects conversion. Results contain caller-owned PDF bytes, missing fonts, a cache key, and a conversion generation that changes on configuration replacement. Cancellation rejects with its reason; conversion failures use `OfficeToPdfError`. -The provider depends on the independently published [`@deepseek-ai/libreoffice-kit`](https://github.com/deepseek-harness/libreoffice-kit/tree/main/packages/entry) npm API at kit version `0.1.1`. Application packaging selects the matching native package declared in the kit’s `optionalDependencies`, or WASM when no native package is declared for that target. A missing declared native engine rejects packaging without selecting WASM. The [release ownership decision](../../../.agents/notes/implemented/architecture/2026-09-14-independent-libreoffice-kit.md) defines the independent kit and Harness responsibilities. +The provider depends on the independently published [`@deepseek-ai/libreoffice-kit`](https://github.com/deepseek-ai/dsh-libreoffice-kit) npm API at kit version `^0.1.5`. Application packaging selects the matching native package declared in the kit’s `optionalDependencies`, or WASM when no native package is declared for that target. A missing declared native engine rejects packaging without selecting WASM. The [release ownership decision](../../../.agents/notes/implemented/architecture/2026-09-14-independent-libreoffice-kit.md) defines the independent kit and Harness responsibilities. Browsers request PDFs through the `officeToPdf.render` Remote method with a Session identity, Office path, and priority. This entry uses `workspaceFiles` for authorization and source versions, then reads raw bytes through `fs.readBytes` within the conversion reservation. In-process `convert()` does not require those services. Responses retain the source path and version and carry native PDF bytes through the binary Remote multipart transport, plus missing fonts and conversion generation. The `officeToPdf.generation` Remote method returns the current provider generation; `api/remotes` mounts the generated Client descriptor. diff --git a/packages/document/office-to-pdf/README.zh.md b/packages/document/office-to-pdf/README.zh.md index ff880803f8..55f734c2eb 100644 --- a/packages/document/office-to-pdf/README.zh.md +++ b/packages/document/office-to-pdf/README.zh.md @@ -29,7 +29,7 @@ kind: "package-reference" 调用方通过 `ctx.officeToPdf.convert()` 提交已授权源的标识、版本、可选字节数、延迟的有界读取、Office 扩展名和调度优先级。源版本变化会拒绝转换。结果包含调用方拥有的 PDF 字节、缺失字体、缓存键和转换 generation;配置替换后 generation 随之改变。取消以原因为拒绝值,转换失败使用 `OfficeToPdfError`。 -此 provider 依赖独立发布的 [`@deepseek-ai/libreoffice-kit`](https://github.com/deepseek-harness/libreoffice-kit/tree/main/packages/entry) npm API,kit 版本为 `0.1.1`。应用打包选择 kit 的 `optionalDependencies` 中声明的匹配原生包;目标没有声明原生包时选择 WASM。已声明的原生引擎缺失时拒绝打包,不会选择 WASM。[发布归属决策](../../../.agents/notes/implemented/architecture/2026-09-14-independent-libreoffice-kit.zh.md)定义独立 kit 与 Harness 各自的职责。 +此 provider 依赖独立发布的 [`@deepseek-ai/libreoffice-kit`](https://github.com/deepseek-ai/dsh-libreoffice-kit) npm API,kit 版本为 `^0.1.5`。应用打包选择 kit 的 `optionalDependencies` 中声明的匹配原生包;目标没有声明原生包时选择 WASM。已声明的原生引擎缺失时拒绝打包,不会选择 WASM。[发布归属决策](../../../.agents/notes/implemented/architecture/2026-09-14-independent-libreoffice-kit.zh.md)定义独立 kit 与 Harness 各自的职责。 浏览器通过 `officeToPdf.render` Remote 方法请求 PDF,参数为 Session 标识、Office 路径和优先级。此入口使用 `workspaceFiles` 完成授权和源版本检查,再通过 `fs.readBytes` 在转换预留容量内读取原始字节。进程内 `convert()` 不要求这些服务。响应保留源文件路径与版本,通过二进制 Remote 的 multipart 传输携带原生 PDF 字节,并携带缺失字体和转换 generation。`officeToPdf.generation` Remote 方法返回当前提供方 generation;`api/remotes` 负责挂载生成的 Client 描述符。 diff --git a/packages/document/office-to-pdf/package.json b/packages/document/office-to-pdf/package.json index e0c4a4964c..fec781a99a 100644 --- a/packages/document/office-to-pdf/package.json +++ b/packages/document/office-to-pdf/package.json @@ -55,7 +55,7 @@ "@deepseek-ai/dsh-session": "workspace:*" }, "dependencies": { - "@deepseek-ai/libreoffice-kit": "^0.1.1", + "@deepseek-ai/libreoffice-kit": "^0.1.5", "@deepseek-ai/schemastery": "workspace:~", "@deepseek-ai/dsh-brand": "workspace:*", "@deepseek-ai/dsh-typert-protocol": "workspace:*", diff --git a/packages/skill/skill-office/package.json b/packages/skill/skill-office/package.json index 7eabf7d518..b01b2204ba 100644 --- a/packages/skill/skill-office/package.json +++ b/packages/skill/skill-office/package.json @@ -37,7 +37,7 @@ "@deepseek-ai/cordis-plugin-include": "workspace:~" }, "dependencies": { - "@deepseek-ai/libreoffice-kit": "^0.1.1", + "@deepseek-ai/libreoffice-kit": "^0.1.5", "@deepseek-ai/schemastery": "workspace:~", "yaml": "^2.4.2" } diff --git a/packages/skill/skill-office/tests/skill-office.spec.ts b/packages/skill/skill-office/tests/skill-office.spec.ts index d69783733b..debb891b6c 100644 --- a/packages/skill/skill-office/tests/skill-office.spec.ts +++ b/packages/skill/skill-office/tests/skill-office.spec.ts @@ -160,7 +160,7 @@ it('executes capabilities using only paths returned by the loaded skill from a s expect(result.timedOut, result.stderr).toBe(false) expect(result.signal, result.stderr).toBeUndefined() expect(result.exitCode, result.stderr).toBe(0) - expect(JSON.parse(result.stdout)).toMatchObject({ runtime: { version: '0.1.1', cliPath: libreofficeKit.cli } }) + expect(JSON.parse(result.stdout)).toMatchObject({ runtime: { version: '0.1.5', cliPath: libreofficeKit.cli } }) } finally { await ctx.fiber.dispose() await rm(root, { recursive: true, force: true }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fee01970a0..90fe37668f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -733,8 +733,8 @@ importers: specifier: workspace:* version: link:../../packages/workspace/workspace '@deepseek-ai/libreoffice-kit': - specifier: ^0.1.1 - version: 0.1.1 + specifier: ^0.1.5 + version: 0.1.5 koffi: specifier: ^3.1.0 version: 3.1.1 @@ -2827,8 +2827,8 @@ importers: specifier: workspace:* version: link:../../typert/registry '@deepseek-ai/libreoffice-kit': - specifier: ^0.1.1 - version: 0.1.1 + specifier: ^0.1.5 + version: 0.1.5 packages/client/connection: dependencies: @@ -7263,8 +7263,8 @@ importers: specifier: workspace:* version: link:../../typert/protocol '@deepseek-ai/libreoffice-kit': - specifier: ^0.1.1 - version: 0.1.1 + specifier: ^0.1.5 + version: 0.1.5 '@deepseek-ai/schemastery': specifier: link:../../../vendor/schemastery version: link:../../../vendor/schemastery @@ -12031,8 +12031,8 @@ importers: packages/skill/skill-office: dependencies: '@deepseek-ai/libreoffice-kit': - specifier: ^0.1.1 - version: 0.1.1 + specifier: ^0.1.5 + version: 0.1.5 '@deepseek-ai/schemastery': specifier: link:../../../vendor/schemastery version: link:../../../vendor/schemastery @@ -15315,37 +15315,37 @@ packages: resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==} engines: {node: '>=20.19.0'} - '@deepseek-ai/libreoffice-kit-darwin-arm64@0.1.1': - resolution: {integrity: sha512-D6NBvtoNpm9pOgBXGQTdxpds1tYMeiFKhGJgnXF/SE0124ZM8j0AOXI7cZ8CErHctqIoVYP+gKWCrnQl4we41A==} + '@deepseek-ai/libreoffice-kit-darwin-arm64@0.1.5': + resolution: {integrity: sha512-SjeXmyaTevEq2TxK7reb1rhCrQZ4QOXmXt/qEwfQD5Fx3odU0ILx2uiXN+nphSCQ95LFCzrElHGgv2c7a824yg==} engines: {node: '>=22.19.0'} cpu: [arm64] os: [darwin] - '@deepseek-ai/libreoffice-kit-darwin-x64@0.1.1': - resolution: {integrity: sha512-VcAqzmzDbRySLBnpRNYSEd+fDmAtdgL1hQMjRf4sFnQuz7m1vipQ00DtlqFG/T+9uCc20bMIyiDWh8zfYObW3w==} + '@deepseek-ai/libreoffice-kit-darwin-x64@0.1.5': + resolution: {integrity: sha512-vuz2tTpH1Edk75+DISwg/TXdQ3BNSNSHoVnWVqxqbGMgrrK9trLOw2+0X7mjT1naGO00Zc1qkyQ4if3kx5XjqQ==} engines: {node: '>=22.19.0'} cpu: [x64] os: [darwin] - '@deepseek-ai/libreoffice-kit-wasm@0.1.1': - resolution: {integrity: sha512-YuKZJdDhR/0GeTZUHJsJvachJR8ZiS4lcrL+lxUF2GLRwXcMikN0zAQOA+6kD/nRI+vlHsCkX0KvHaKvfae79Q==} + '@deepseek-ai/libreoffice-kit-wasm@0.1.5': + resolution: {integrity: sha512-V+pu5xJsKhVD4AU1xbFlMWY91svK9ZIC2JsNOph9kWp/arF/KQcuytt76bcbozJqPbE8o0n04lyh0m3QW5RYSA==} engines: {node: '>=22.19.0'} os: [linux] - '@deepseek-ai/libreoffice-kit-win32-arm64@0.1.1': - resolution: {integrity: sha512-RR05Y9NQzPYRRo9vCydlp6HKv+0eR12A99Pw7bAuUmcagyGN3gtWZKaG6xrT8vccPf3mByP3Bi0Mo31D/lrySA==} + '@deepseek-ai/libreoffice-kit-win32-arm64@0.1.5': + resolution: {integrity: sha512-Av3aFfNLaVxfffu0JXP5mqfmsCU3gQtlUH9UD+zdXl8ON06ukVAmu7LqNyuKAz/68WoOMTQ+YBlVQukgDRKd/A==} engines: {node: '>=22.19.0'} cpu: [arm64] os: [win32] - '@deepseek-ai/libreoffice-kit-win32-x64@0.1.1': - resolution: {integrity: sha512-03CUYg9j2qJ7Q6K27xFCvTLa7FgawOZ1DtE6NlEYttF6TxGuyHEv358vBGc3cwlR1yG1Vfj+pa4e5MdPGpy8mA==} + '@deepseek-ai/libreoffice-kit-win32-x64@0.1.5': + resolution: {integrity: sha512-uKuDGZdofxuW4iRmUh8b3+XWU28JeOCYMTAONzo7tEHIq00DV2cARcgUYiTP7gUH49tH4A/RyPMOVEBzK7qjjw==} engines: {node: '>=22.19.0'} cpu: [x64] os: [win32] - '@deepseek-ai/libreoffice-kit@0.1.1': - resolution: {integrity: sha512-vML+3Nh/159k/TWuxLfZU1O39BA0m+/jybfySu9dJaTHR2oAi+hHWud6iRhBaCie5N6ADfo4DNHajBk52pmRog==} + '@deepseek-ai/libreoffice-kit@0.1.5': + resolution: {integrity: sha512-H12xtUsAyl70zFeQ5pk5GGRc3N1+6zn+DVAcqwlguI6EvqopBGP3xkUmePU7g5f6ydYlDZLWedHT9lTSL7zLxA==} engines: {node: '>=22.19.0'} hasBin: true @@ -22835,32 +22835,33 @@ snapshots: '@csstools/css-tokenizer@4.0.0': {} - '@deepseek-ai/libreoffice-kit-darwin-arm64@0.1.1': + '@deepseek-ai/libreoffice-kit-darwin-arm64@0.1.5': optional: true - '@deepseek-ai/libreoffice-kit-darwin-x64@0.1.1': + '@deepseek-ai/libreoffice-kit-darwin-x64@0.1.5': optional: true - '@deepseek-ai/libreoffice-kit-wasm@0.1.1': + '@deepseek-ai/libreoffice-kit-wasm@0.1.5': optional: true - '@deepseek-ai/libreoffice-kit-win32-arm64@0.1.1': + '@deepseek-ai/libreoffice-kit-win32-arm64@0.1.5': optional: true - '@deepseek-ai/libreoffice-kit-win32-x64@0.1.1': + '@deepseek-ai/libreoffice-kit-win32-x64@0.1.5': optional: true - '@deepseek-ai/libreoffice-kit@0.1.1': + '@deepseek-ai/libreoffice-kit@0.1.5': dependencies: fflate: 0.8.2 fontkit: 2.0.4 + koffi: 3.1.1 saxes: 6.0.0 optionalDependencies: - '@deepseek-ai/libreoffice-kit-darwin-arm64': 0.1.1 - '@deepseek-ai/libreoffice-kit-darwin-x64': 0.1.1 - '@deepseek-ai/libreoffice-kit-wasm': 0.1.1 - '@deepseek-ai/libreoffice-kit-win32-arm64': 0.1.1 - '@deepseek-ai/libreoffice-kit-win32-x64': 0.1.1 + '@deepseek-ai/libreoffice-kit-darwin-arm64': 0.1.5 + '@deepseek-ai/libreoffice-kit-darwin-x64': 0.1.5 + '@deepseek-ai/libreoffice-kit-wasm': 0.1.5 + '@deepseek-ai/libreoffice-kit-win32-arm64': 0.1.5 + '@deepseek-ai/libreoffice-kit-win32-x64': 0.1.5 '@docsearch/css@3.8.2': {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index b9cf05ab45..a3b8cd6dfc 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -56,12 +56,12 @@ allowBuilds: minimumReleaseAgeExclude: # Office engines and their API are qualified and released together by the kit repository. - - '@deepseek-ai/libreoffice-kit@0.1.1' - - '@deepseek-ai/libreoffice-kit-darwin-arm64@0.1.1' - - '@deepseek-ai/libreoffice-kit-darwin-x64@0.1.1' - - '@deepseek-ai/libreoffice-kit-win32-arm64@0.1.1' - - '@deepseek-ai/libreoffice-kit-win32-x64@0.1.1' - - '@deepseek-ai/libreoffice-kit-wasm@0.1.1' + - '@deepseek-ai/libreoffice-kit@0.1.5' + - '@deepseek-ai/libreoffice-kit-darwin-arm64@0.1.5' + - '@deepseek-ai/libreoffice-kit-darwin-x64@0.1.5' + - '@deepseek-ai/libreoffice-kit-win32-arm64@0.1.5' + - '@deepseek-ai/libreoffice-kit-win32-x64@0.1.5' + - '@deepseek-ai/libreoffice-kit-wasm@0.1.5' # Fresh pi-ai releases carry the model catalog updates that are the whole # point of bumping it; waiting out the release age would defeat that. - '@earendil-works/pi-ai@0.87.1' diff --git a/scripts/gen-third-party-notices.ts b/scripts/gen-third-party-notices.ts index e872aac220..df055c444f 100644 --- a/scripts/gen-third-party-notices.ts +++ b/scripts/gen-third-party-notices.ts @@ -805,7 +805,7 @@ ${kitRuntime ? ` ${[...LIBREOFFICE_PACKAGES].map(name => `\`${name}\``).join(', ')} declare MPL-2.0, which remains outside the permissive-license allowlist; the notices check accepts only these package identities at those terms. The [distribution decision](.agents/notes/implemented/architecture/2026-09-14-independent-libreoffice-kit.md) records the source obligations. -The [kit repository](https://github.com/deepseek-harness/libreoffice-kit) supplies the corresponding LibreOffice source pin, modifications, build instructions, Node API, and artifact validation. Its engine packages retain their license and third-party notices; the Node API retains its MPL-2.0 declaration and NOTICE. Recipients must have access to those corresponding sources and notices. +The [kit repository](https://github.com/deepseek-ai/dsh-libreoffice-kit) supplies the corresponding LibreOffice source pin, modifications, build instructions, Node API, and artifact validation. Its engine packages retain their license and third-party notices; the Node API retains its MPL-2.0 declaration and NOTICE. Recipients must have access to those corresponding sources and notices. ` : ''} ## Development-only npm dependencies