fix(packaging): materialize runtime dependencies

This commit is contained in:
Yichen Jiang
2026-08-10 22:47:18 +08:00
parent 75f4434787
commit a7e8805340
6 changed files with 181 additions and 127 deletions

View File

@@ -2,5 +2,5 @@
# side as of the last confirmed-consistent state. Both languages carry equal authority; # side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with: # after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.md # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.md
2026-07-10-single-file-executable-sdk-runtime-distribution.md: 29aa14db2b3b64cefb7960ee8f316682ba1ac736 2026-07-10-single-file-executable-sdk-runtime-distribution.md: c2b6d9ff1825915e39738bf8f782c302ecfc1d0d
2026-07-10-single-file-executable-sdk-runtime-distribution.zh.md: f10d72b394246e9e57033a5382ec977bdc6f3ab8 2026-07-10-single-file-executable-sdk-runtime-distribution.zh.md: d7758a77083e07b1d2cac99ae2be3f15e6edd2dc

View File

@@ -40,7 +40,7 @@ The deploy root is [`python/sdk-runtime/package.json`](../../../../python/sdk-ru
### Build pipeline and artifacts ### Build pipeline and artifacts
[`scripts/build-exe-for-python-sdk.ts`](../../../../scripts/build-exe-for-python-sdk.ts): runtime closure verification → `pnpm run build` → (after clearing) `pnpm --filter dsh-jsonrpc-agent-pkg deploy --legacy --prod --config.node-linker=hoisted --config.auto-install-peers=false --config.link-workspace-packages=true` **directly into** `python/sdk-runtime/src/deepseek_harness_runtime/runtime/node/` → restore any direct workspace package that legacy deploy hoisted back under the source manifest's `node_modules`, omitting its package-local symlink tree and rejecting any remaining manifest gap → inject the pkg configuration (`bin` points at `node_modules/@deepseek-ai/dsh-jsonrpc-demo/lib/packaged-bin.js` inside the closure, `assets` is a full glob — dynamic import is invisible to pkg's static analysis, so everything must be packed in explicitly) → stage the target `node-pty` addon → one `pkg --sea` per target → the executables `dsh-jsonrpc-agent-pkg-<platform>-<arch>` land in `dist-exe/` and are copied back into the runtime directory. Linux installs build `pty.node` from source, so the builder copies it from the root install into the staged closure because legacy deploy omits that side-effect directory; macOS uses its target prebuild and emits the required `-spawn-helper` beside the executable. CI treats these products as intermediate test inputs and retains their platform wheels. All four deploy flags are grounded in measurement: `--legacy` is the mandatory path with inject-workspace-packages off; hoisted yields a zero-symlink package payload (most stable for the pkg VFS, physically guaranteeing a single cordis instance); disabling automatic peer installation keeps unpublished package names from triggering registry resolution; link-workspace-packages points the closure at workspace/vendor sources. [`scripts/build-exe-for-python-sdk.ts`](../../../../scripts/build-exe-for-python-sdk.ts): runtime closure verification → `pnpm run build` → (after clearing) `pnpm --filter dsh-jsonrpc-agent-pkg deploy --legacy --prod --config.node-linker=hoisted --config.auto-install-peers=false --config.link-workspace-packages=true` **directly into** `python/sdk-runtime/src/deepseek_harness_runtime/runtime/node/` → restore any direct workspace package that legacy deploy hoisted back under the source manifest's `node_modules`, omitting its package-local dependency tree and rejecting any remaining manifest gap → replace every staged dependency symlink with its target bytes, remove package-manager `.bin` links, and fail if any symlink remains → inject the pkg configuration (`bin` points at `node_modules/@deepseek-ai/dsh-jsonrpc-demo/lib/packaged-bin.js` inside the closure, `assets` is a full glob — dynamic import is invisible to pkg's static analysis, so everything must be packed in explicitly) → stage the target `node-pty` addon → one `pkg --sea` per target → the executables `dsh-jsonrpc-agent-pkg-<platform>-<arch>` land in `dist-exe/` and are copied back into the runtime directory. Linux installs build `pty.node` from source, so the builder copies it from the root install into the staged closure because legacy deploy omits that side-effect directory; macOS uses its target prebuild and emits the required `-spawn-helper` beside the executable. CI treats these products as intermediate test inputs and retains their platform wheels. All four deploy flags are grounded in measurement: `--legacy` is the mandatory path with inject-workspace-packages off; hoisted gives pkg a stable single-instance layout that the explicit materialization pass makes symlink-free; disabling automatic peer installation prevents undeclared peers from expanding the closure; link-workspace-packages selects direct workspace dependencies. [`pnpm-workspace.yaml`](../../../../pnpm-workspace.yaml) overrides the transitive `@deepseek-ai/cosmokit` and `@deepseek-ai/schemastery` semver requests to the pinned vendor sources so legacy deploy never resolves those unpublished names from a registry.
CI: [`.github/workflows/build-exe-for-python-sdk.yml`](../../../../.github/workflows/build-exe-for-python-sdk.yml), triggered explicitly only — `workflow_dispatch`, or the `build-exe` label on a pull request; native builds on the three platforms linux-x64 / linux-arm64 (`ubuntu-24.04-arm`) / macos-arm64, with `~/.pkg-cache` cached; macOS ad-hoc signing is handled by pkg. Each leg drives a mock SSE model through the SDK with the default config and a custom `cordis.yml`, drives the exe directly over NDJSON JSON-RPC, verifies the JSONL and final response, and installs release-shaped wheels into a clean venv without `runtime_bin`; Linux additionally inspects GLIBC requirements and runs in a manylinux 2.28 container. A full three-target run retains four artifacts, each containing one release file: the platform-independent SDK wheel and three native runtime wheels; a subset dispatch retains the SDK wheel and selected runtime wheels. Bare executables and source bundles remain intermediate test inputs. [`.gitlab-ci.yml`](../../../../.gitlab-ci.yml) accepts only `python-vX.Y.Z` tag pipelines whose version matches the root `package.json`, builds one SDK wheel and three native runtime wheels, then a single serialized job checks and publishes all four to the project PyPI registry. Windows is a non-goal. CI: [`.github/workflows/build-exe-for-python-sdk.yml`](../../../../.github/workflows/build-exe-for-python-sdk.yml), triggered explicitly only — `workflow_dispatch`, or the `build-exe` label on a pull request; native builds on the three platforms linux-x64 / linux-arm64 (`ubuntu-24.04-arm`) / macos-arm64, with `~/.pkg-cache` cached; macOS ad-hoc signing is handled by pkg. Each leg drives a mock SSE model through the SDK with the default config and a custom `cordis.yml`, drives the exe directly over NDJSON JSON-RPC, verifies the JSONL and final response, and installs release-shaped wheels into a clean venv without `runtime_bin`; Linux additionally inspects GLIBC requirements and runs in a manylinux 2.28 container. A full three-target run retains four artifacts, each containing one release file: the platform-independent SDK wheel and three native runtime wheels; a subset dispatch retains the SDK wheel and selected runtime wheels. Bare executables and source bundles remain intermediate test inputs. [`.gitlab-ci.yml`](../../../../.gitlab-ci.yml) accepts only `python-vX.Y.Z` tag pipelines whose version matches the root `package.json`, builds one SDK wheel and three native runtime wheels, then a single serialized job checks and publishes all four to the project PyPI registry. Windows is a non-goal.

View File

@@ -40,7 +40,7 @@ exe 的 VFS 内是**构建产物形态的真实包树**(各包的 `lib/` + 真
### 构建管线与产物 ### 构建管线与产物
[`scripts/build-exe-for-python-sdk.ts`](../../../../scripts/build-exe-for-python-sdk.ts):运行时闭包校验 → `pnpm run build` →(清空后)`pnpm --filter dsh-jsonrpc-agent-pkg deploy --legacy --prod --config.node-linker=hoisted --config.auto-install-peers=false --config.link-workspace-packages=true` **直接写入** `python/sdk-runtime/src/deepseek_harness_runtime/runtime/node/` → 恢复被 legacy deploy 提升回源 manifest 的 `node_modules` 下的任何直接工作区包,同时省略其包内符号链接树,并拒绝剩余的 manifest 缺口 → 注入 pkg 配置(`bin` 指向闭包内的 `node_modules/@deepseek-ai/dsh-jsonrpc-demo/lib/packaged-bin.js``assets` 使用全量 glob因为动态 `import()` 对 pkg 静态分析不可见,必须显式打入全部内容)→ 暂存目标平台的 `node-pty` addon → 每个构建目标调用一次 `pkg --sea` → 可执行文件 `dsh-jsonrpc-agent-pkg-<platform>-<arch>` 写入 `dist-exe/`并拷回运行时目录。Linux 安装会从源码构建 `pty.node`,而 `--legacy` 部署会省略该副作用目录因此构建器会把它从根安装目录复制到暂存闭包macOS 使用对应目标的预构建产物,并在可执行文件旁生成所需的 `-spawn-helper`。CI 将这些产物作为测试中间输入,只保留对应平台的 wheel 包。四个部署标志都有实测依据:未启用 `inject-workspace-packages` 时必须使用 `--legacy``hoisted` 产出无符号链接的包载荷(对 pkg VFS 最稳定,并从物理上保证只有一个 Cordis 实例);关闭对等依赖自动安装可避免未发布包名触发注册表解析;`link-workspace-packages` 让闭包指向工作区/vendor 源码 [`scripts/build-exe-for-python-sdk.ts`](../../../../scripts/build-exe-for-python-sdk.ts):运行时闭包校验 → `pnpm run build` →(清空后)`pnpm --filter dsh-jsonrpc-agent-pkg deploy --legacy --prod --config.node-linker=hoisted --config.auto-install-peers=false --config.link-workspace-packages=true` **直接写入** `python/sdk-runtime/src/deepseek_harness_runtime/runtime/node/` → 恢复被 legacy deploy 提升回源 manifest 的 `node_modules` 下的任何直接工作区包,同时省略其包内依赖树,并拒绝剩余的 manifest 缺口 → 将暂存依赖中的每个符号链接替换为目标文件内容,删除包管理器的 `.bin` 链接,并在仍有任何符号链接时失败 → 注入 pkg 配置(`bin` 指向闭包内的 `node_modules/@deepseek-ai/dsh-jsonrpc-demo/lib/packaged-bin.js``assets` 使用全量 glob因为动态 `import()` 对 pkg 静态分析不可见,必须显式打入全部内容)→ 暂存目标平台的 `node-pty` addon → 每个构建目标调用一次 `pkg --sea` → 可执行文件 `dsh-jsonrpc-agent-pkg-<platform>-<arch>` 写入 `dist-exe/`并拷回运行时目录。Linux 安装会从源码构建 `pty.node`,而 `--legacy` 部署会省略该副作用目录因此构建器会把它从根安装目录复制到暂存闭包macOS 使用对应目标的预构建产物,并在可执行文件旁生成所需的 `-spawn-helper`。CI 将这些产物作为测试中间输入,只保留对应平台的 wheel 包。四个部署标志都有实测依据:未启用 `inject-workspace-packages` 时必须使用 `--legacy``hoisted` 为 pkg 提供稳定的单实例布局,再由显式物化步骤消除符号链接;关闭对等依赖自动安装可防止未声明的对等依赖扩大闭包;`link-workspace-packages` 选择直接工作区依赖。[`pnpm-workspace.yaml`](../../../../pnpm-workspace.yaml) 将传递的 `@deepseek-ai/cosmokit``@deepseek-ai/schemastery` semver 请求覆盖到固定的 vendor 源码,使 legacy deploy 不会从注册表解析这些未发布名称
CI 使用 [`.github/workflows/build-exe-for-python-sdk.yml`](../../../../.github/workflows/build-exe-for-python-sdk.yml),且只允许显式触发:手动派发 `workflow_dispatch`,或给 PRPull Request添加 `build-exe` 标签。linux-x64、linux-arm64`ubuntu-24.04-arm`)和 macos-arm64 三个平台分别进行原生构建,并缓存 `~/.pkg-cache`macOS 的 ad-hoc 签名由 pkg 处理。每个平台都使用 mock SSEServer-Sent Events模型分别通过默认配置和自定义 `cordis.yml` 驱动 SDK再通过 NDJSON JSON-RPC 直接驱动 exe校验 JSONL 与最终响应;最后把发布形态的 wheel 包安装到干净的 venv 中,并在不传 `runtime_bin` 的情况下运行。Linux 还会检查 GLIBC 依赖,并在 manylinux 2.28 容器中运行。完整构建三个目标时保留 4 个产物,每个产物只含一个发布文件:平台无关的 SDK wheel 包与 3 个原生运行时 wheel 包;手动选择部分目标时保留 SDK wheel 与所选运行时 wheel。裸 exe 与源码包只作为测试中间输入。[`.gitlab-ci.yml`](../../../../.gitlab-ci.yml) 只接受版本与根目录 `package.json` 匹配的 `python-vX.Y.Z` 标签流水线,构建一个 SDK wheel 包和 3 个原生运行时 wheel 包,再由单个串行任务校验并将这 4 个文件发布到项目的 PyPI 注册表。Windows 不在目标范围内。 CI 使用 [`.github/workflows/build-exe-for-python-sdk.yml`](../../../../.github/workflows/build-exe-for-python-sdk.yml),且只允许显式触发:手动派发 `workflow_dispatch`,或给 PRPull Request添加 `build-exe` 标签。linux-x64、linux-arm64`ubuntu-24.04-arm`)和 macos-arm64 三个平台分别进行原生构建,并缓存 `~/.pkg-cache`macOS 的 ad-hoc 签名由 pkg 处理。每个平台都使用 mock SSEServer-Sent Events模型分别通过默认配置和自定义 `cordis.yml` 驱动 SDK再通过 NDJSON JSON-RPC 直接驱动 exe校验 JSONL 与最终响应;最后把发布形态的 wheel 包安装到干净的 venv 中,并在不传 `runtime_bin` 的情况下运行。Linux 还会检查 GLIBC 依赖,并在 manylinux 2.28 容器中运行。完整构建三个目标时保留 4 个产物,每个产物只含一个发布文件:平台无关的 SDK wheel 包与 3 个原生运行时 wheel 包;手动选择部分目标时保留 SDK wheel 与所选运行时 wheel。裸 exe 与源码包只作为测试中间输入。[`.gitlab-ci.yml`](../../../../.gitlab-ci.yml) 只接受版本与根目录 `package.json` 匹配的 `python-vX.Y.Z` 标签流水线,构建一个 SDK wheel 包和 3 个原生运行时 wheel 包,再由单个串行任务校验并将这 4 个文件发布到项目的 PyPI 注册表。Windows 不在目标范围内。

250
pnpm-lock.yaml generated
View File

@@ -4,6 +4,10 @@ settings:
autoInstallPeers: true autoInstallPeers: true
excludeLinksFromLockfile: false excludeLinksFromLockfile: false
overrides:
'@deepseek-ai/cosmokit': link:vendor/cosmokit
'@deepseek-ai/schemastery': link:vendor/schemastery
patchedDependencies: patchedDependencies:
node-pty@1.1.0: 7a0c04f1f49d798a9ffe2f7f414c01064a44ca2489772d0c3e1235ab336755e6 node-pty@1.1.0: 7a0c04f1f49d798a9ffe2f7f414c01064a44ca2489772d0c3e1235ab336755e6
@@ -735,7 +739,7 @@ importers:
specifier: 0.25.1 specifier: 0.25.1
version: 0.25.1(zod@4.4.3) version: 0.25.1(zod@4.4.3)
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.17.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -834,7 +838,7 @@ importers:
packages/attachment/attachment-local: packages/attachment/attachment-local:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
sharp: sharp:
specifier: ^0.35.3 specifier: ^0.35.3
@@ -871,7 +875,7 @@ importers:
packages/bash/bash-env: packages/bash/bash-env:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -902,7 +906,7 @@ importers:
packages/bash/bash-local: packages/bash/bash-local:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -957,7 +961,7 @@ importers:
packages/bash/pwsh-local: packages/bash/pwsh-local:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -1009,7 +1013,7 @@ importers:
packages/bash/tool-bash: packages/bash/tool-bash:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -1076,7 +1080,7 @@ importers:
packages/bash/tool-pwsh: packages/bash/tool-pwsh:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -1418,7 +1422,7 @@ importers:
specifier: workspace:^ specifier: workspace:^
version: link:../../code-runtime/code-runtime-worker version: link:../../code-runtime/code-runtime-worker
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -1569,7 +1573,7 @@ importers:
specifier: workspace:^ specifier: workspace:^
version: link:../../workspace/workspace version: link:../../workspace/workspace
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -1606,7 +1610,7 @@ importers:
specifier: workspace:^ specifier: workspace:^
version: link:../../core/tools version: link:../../core/tools
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
ws: ws:
specifier: ^8.21.0 specifier: ^8.21.0
@@ -1628,7 +1632,7 @@ importers:
packages/client/hmr: packages/client/hmr:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -1656,7 +1660,7 @@ importers:
specifier: workspace:^ specifier: workspace:^
version: link:../../settings/settings version: link:../../settings/settings
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -1766,7 +1770,7 @@ importers:
specifier: workspace:^ specifier: workspace:^
version: link:../../typert/registry version: link:../../typert/registry
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
'@types/react': '@types/react':
specifier: ~18.3.1 specifier: ~18.3.1
@@ -1775,7 +1779,7 @@ importers:
packages/client/schema-form: packages/client/schema-form:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -1919,7 +1923,7 @@ importers:
specifier: workspace:^ specifier: workspace:^
version: link:../../settings/settings version: link:../../settings/settings
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
clsx: clsx:
specifier: ^2.0.0 specifier: ^2.0.0
@@ -2446,7 +2450,7 @@ importers:
specifier: workspace:^ specifier: workspace:^
version: link:../../settings/settings version: link:../../settings/settings
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -2666,7 +2670,7 @@ importers:
specifier: workspace:^ specifier: workspace:^
version: link:../../settings/settings version: link:../../settings/settings
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
clsx: clsx:
specifier: ^2.0.0 specifier: ^2.0.0
@@ -2915,7 +2919,7 @@ importers:
packages/code-runtime/code-runtime-worker: packages/code-runtime/code-runtime-worker:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -2988,7 +2992,7 @@ importers:
packages/compact/compact-basic: packages/compact/compact-basic:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -3040,7 +3044,7 @@ importers:
packages/compact/compact-tool-result-prune: packages/compact/compact-tool-result-prune:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -3071,7 +3075,7 @@ importers:
packages/context/session-reference: packages/context/session-reference:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -3102,7 +3106,7 @@ importers:
packages/context/time-context: packages/context/time-context:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -3139,7 +3143,7 @@ importers:
packages/context/tmux-context: packages/context/tmux-context:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -3167,7 +3171,7 @@ importers:
packages/context/workspace-context: packages/context/workspace-context:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -3243,7 +3247,7 @@ importers:
packages/core/agent-default-model: packages/core/agent-default-model:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -3265,7 +3269,7 @@ importers:
packages/core/agent-loop: packages/core/agent-loop:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -3302,7 +3306,7 @@ importers:
packages/core/agent-tool-mode: packages/core/agent-tool-mode:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -3366,7 +3370,7 @@ importers:
packages/core/system-prompt: packages/core/system-prompt:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -3385,7 +3389,7 @@ importers:
packages/core/tools: packages/core/tools:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -3431,7 +3435,7 @@ importers:
packages/credentials/credentials-local: packages/credentials/credentials-local:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
chokidar: chokidar:
specifier: ^4.0.3 specifier: ^4.0.3
@@ -3462,7 +3466,7 @@ importers:
packages/e2b/e2b: packages/e2b/e2b:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
e2b: e2b:
specifier: 2.29.1 specifier: 2.29.1
@@ -3499,7 +3503,7 @@ importers:
packages/e2b/subprocess-e2b: packages/e2b/subprocess-e2b:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -3519,6 +3523,10 @@ importers:
version: link:../../util/timeout version: link:../../util/timeout
packages/examples/acp-demo: packages/examples/acp-demo:
dependencies:
'@deepseek-ai/schemastery':
specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
specifier: ^4.0.0-rc.7 specifier: ^4.0.0-rc.7
@@ -3565,14 +3573,11 @@ importers:
'@deepseek-ai/dsh-workspace-context': '@deepseek-ai/dsh-workspace-context':
specifier: workspace:^ specifier: workspace:^
version: link:../../context/workspace-context version: link:../../context/workspace-context
'@deepseek-ai/schemastery':
specifier: ^3.17.0
version: link:../../../vendor/schemastery
packages/examples/agent-spine-demo: packages/examples/agent-spine-demo:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -3745,7 +3750,7 @@ importers:
packages/fs/fs-local: packages/fs/fs-local:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
koffi: koffi:
specifier: ^3.1.0 specifier: ^3.1.0
@@ -3803,7 +3808,7 @@ importers:
packages/fs/tool-fs: packages/fs/tool-fs:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
diff: diff:
specifier: ^9.0.0 specifier: ^9.0.0
@@ -3861,7 +3866,7 @@ importers:
packages/fs/tool-fs-search: packages/fs/tool-fs-search:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
'@vscode/ripgrep': '@vscode/ripgrep':
specifier: ^1.18.0 specifier: ^1.18.0
@@ -3907,7 +3912,7 @@ importers:
packages/fs/tool-str-replace-editor: packages/fs/tool-str-replace-editor:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -3980,7 +3985,7 @@ importers:
packages/goal/goal: packages/goal/goal:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.17.2 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
zod: zod:
specifier: ^4.4.3 specifier: ^4.4.3
@@ -4053,7 +4058,7 @@ importers:
packages/goal/tool-goal: packages/goal/tool-goal:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -4087,7 +4092,7 @@ importers:
packages/guard/repeat-tool-guard: packages/guard/repeat-tool-guard:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -4151,7 +4156,7 @@ importers:
packages/hooks/hooks-claude: packages/hooks/hooks-claude:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -4203,7 +4208,7 @@ importers:
packages/hooks/hooks-codex: packages/hooks/hooks-codex:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -4324,7 +4329,7 @@ importers:
specifier: workspace:^ specifier: workspace:^
version: link:../../workspace/workspace version: link:../../workspace/workspace
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
zod: zod:
specifier: ^4.4.3 specifier: ^4.4.3
@@ -4394,7 +4399,7 @@ importers:
specifier: workspace:^ specifier: workspace:^
version: link:../directory-picker version: link:../directory-picker
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
clsx: clsx:
specifier: ^2.0.0 specifier: ^2.0.0
@@ -4471,7 +4476,7 @@ importers:
packages/host/frontend-static: packages/host/frontend-static:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -4490,7 +4495,7 @@ importers:
packages/host/webserver: packages/host/webserver:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -4524,7 +4529,7 @@ importers:
packages/interaction/permission: packages/interaction/permission:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
zod: zod:
specifier: ^4.4.3 specifier: ^4.4.3
@@ -4588,7 +4593,7 @@ importers:
packages/interaction/user-approval: packages/interaction/user-approval:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -4634,7 +4639,7 @@ importers:
packages/llm/llm: packages/llm/llm:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -4656,7 +4661,7 @@ importers:
packages/llm/llm-deepseek: packages/llm/llm-deepseek:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
eventsource-parser: eventsource-parser:
specifier: ^3.1.0 specifier: ^3.1.0
@@ -4687,7 +4692,7 @@ importers:
packages/llm/llm-pi-ai: packages/llm/llm-pi-ai:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
'@earendil-works/pi-ai': '@earendil-works/pi-ai':
specifier: ^0.82.1 specifier: ^0.82.1
@@ -4724,7 +4729,7 @@ importers:
packages/llm/llm-retry: packages/llm/llm-retry:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -4782,7 +4787,7 @@ importers:
packages/llm/token-meter: packages/llm/token-meter:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
zod: zod:
specifier: ^4.4.3 specifier: ^4.4.3
@@ -4825,7 +4830,7 @@ importers:
packages/lsp/lsp-local: packages/lsp/lsp-local:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -4868,7 +4873,7 @@ importers:
packages/lsp/tool-lsp: packages/lsp/tool-lsp:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -4914,7 +4919,7 @@ importers:
packages/mcp/mcp-client: packages/mcp/mcp-client:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
'@modelcontextprotocol/sdk': '@modelcontextprotocol/sdk':
specifier: ^1.12.0 specifier: ^1.12.0
@@ -4991,7 +4996,7 @@ importers:
packages/preset/agent-presets: packages/preset/agent-presets:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
js-yaml: js-yaml:
specifier: ^4.1.0 specifier: ^4.1.0
@@ -5046,7 +5051,7 @@ importers:
packages/preset/persona: packages/preset/persona:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -5083,7 +5088,7 @@ importers:
packages/pty/pty-local: packages/pty/pty-local:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -5117,7 +5122,7 @@ importers:
packages/pty/tool-bash-persistent: packages/pty/tool-bash-persistent:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -5169,7 +5174,7 @@ importers:
packages/pty/tool-pty: packages/pty/tool-pty:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -5251,7 +5256,7 @@ importers:
specifier: workspace:* specifier: workspace:*
version: link:../../../native/landlock-run/packages/entry version: link:../../../native/landlock-run/packages/entry
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -5273,7 +5278,7 @@ importers:
packages/sandbox/sandbox-policy: packages/sandbox/sandbox-policy:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -5452,7 +5457,7 @@ importers:
packages/scaffold/server: packages/scaffold/server:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.17.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -5514,7 +5519,7 @@ importers:
packages/self-modification/tool-cordis: packages/self-modification/tool-cordis:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -5581,7 +5586,7 @@ importers:
packages/session-query/session-query-sqlite: packages/session-query/session-query-sqlite:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -5609,7 +5614,7 @@ importers:
packages/session-query/tool-session-query: packages/session-query/tool-session-query:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -5718,7 +5723,7 @@ importers:
packages/session/session-persistence-jsonl: packages/session/session-persistence-jsonl:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
koffi: koffi:
specifier: ^3.1.0 specifier: ^3.1.0
@@ -5740,7 +5745,7 @@ importers:
packages/session/session-persistence-sqlite: packages/session/session-persistence-sqlite:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -5775,7 +5780,7 @@ importers:
packages/session/session-projection-cache: packages/session/session-projection-cache:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
zod: zod:
specifier: ^4.4.3 specifier: ^4.4.3
@@ -5821,7 +5826,7 @@ importers:
packages/session/session-telemetry-otel: packages/session/session-telemetry-otel:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
'@opentelemetry/api': '@opentelemetry/api':
specifier: ^1.9.1 specifier: ^1.9.1
@@ -5870,7 +5875,7 @@ importers:
packages/session/session-title: packages/session/session-title:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
zod: zod:
specifier: ^4.4.3 specifier: ^4.4.3
@@ -5904,7 +5909,7 @@ importers:
packages/session/session-title-all-messages-llm: packages/session/session-title-all-messages-llm:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -5929,7 +5934,7 @@ importers:
packages/session/session-title-first-message-llm: packages/session/session-title-first-message-llm:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -5963,7 +5968,7 @@ importers:
packages/session/session-title-llm: packages/session/session-title-llm:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -6001,6 +6006,10 @@ importers:
version: link:../../util/paths version: link:../../util/paths
packages/settings/settings: packages/settings/settings:
dependencies:
'@deepseek-ai/schemastery':
specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
specifier: ^4.0.0-rc.7 specifier: ^4.0.0-rc.7
@@ -6011,14 +6020,11 @@ importers:
'@deepseek-ai/dsh-invariants': '@deepseek-ai/dsh-invariants':
specifier: workspace:^ specifier: workspace:^
version: link:../../support/invariants version: link:../../support/invariants
'@deepseek-ai/schemastery':
specifier: ^3.18.0
version: link:../../../vendor/schemastery
packages/settings/settings-local: packages/settings/settings-local:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
chokidar: chokidar:
specifier: ^4.0.3 specifier: ^4.0.3
@@ -6046,7 +6052,7 @@ importers:
packages/skill/skill: packages/skill/skill:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -6077,7 +6083,7 @@ importers:
packages/skill/skill-local: packages/skill/skill-local:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
chokidar: chokidar:
specifier: ^5.0.0 specifier: ^5.0.0
@@ -6105,7 +6111,7 @@ importers:
packages/skill/tool-skill: packages/skill/tool-skill:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -6157,7 +6163,7 @@ importers:
packages/spill/spill-local: packages/spill/spill-local:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -6182,7 +6188,7 @@ importers:
packages/spill/spill-policy: packages/spill/spill-policy:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -6225,7 +6231,7 @@ importers:
packages/storage/storage-domain: packages/storage/storage-domain:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
zod: zod:
specifier: ^4.4.3 specifier: ^4.4.3
@@ -6244,7 +6250,7 @@ importers:
packages/storage/storage-json: packages/storage/storage-json:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -6260,7 +6266,7 @@ importers:
packages/storage/storage-sqlite: packages/storage/storage-sqlite:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -6331,7 +6337,7 @@ importers:
specifier: 0.25.1 specifier: 0.25.1
version: 0.25.1(zod@4.4.3) version: 0.25.1(zod@4.4.3)
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -6377,7 +6383,7 @@ importers:
specifier: 0.93.0 specifier: 0.93.0
version: 0.93.0(zod@4.4.3) version: 0.93.0(zod@4.4.3)
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -6414,7 +6420,7 @@ importers:
packages/subagent/subagent-codex: packages/subagent/subagent-codex:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -6460,7 +6466,7 @@ importers:
packages/subagent/subagent-dsh-sdk: packages/subagent/subagent-dsh-sdk:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -6500,7 +6506,7 @@ importers:
packages/subagent/subagent-fork: packages/subagent/subagent-fork:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -6594,7 +6600,7 @@ importers:
packages/subagent/subagent-spawn: packages/subagent/subagent-spawn:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -6646,7 +6652,7 @@ importers:
packages/subagent/tool-subagent: packages/subagent/tool-subagent:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -6740,7 +6746,7 @@ importers:
packages/subagent/tool-subagent-report: packages/subagent/tool-subagent-report:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -6863,7 +6869,7 @@ importers:
packages/support/invariants: packages/support/invariants:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -6970,7 +6976,7 @@ importers:
packages/tasks/tool-tasks: packages/tasks/tool-tasks:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -7007,7 +7013,7 @@ importers:
packages/todo/tool-todo: packages/todo/tool-todo:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
zod: zod:
specifier: ^4.4.3 specifier: ^4.4.3
@@ -7084,7 +7090,7 @@ importers:
packages/typert/loader: packages/typert/loader:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -7194,7 +7200,7 @@ importers:
packages/web/tool-web: packages/web/tool-web:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
'@joplin/turndown-plugin-gfm': '@joplin/turndown-plugin-gfm':
specifier: ^1.0.67 specifier: ^1.0.67
@@ -7249,7 +7255,7 @@ importers:
packages/web/web: packages/web/web:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -7265,7 +7271,7 @@ importers:
packages/web/web-fetch-local: packages/web/web-fetch-local:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -7284,7 +7290,7 @@ importers:
packages/web/web-search-deepseek: packages/web/web-search-deepseek:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -7315,7 +7321,7 @@ importers:
packages/web/web-search-exa: packages/web/web-search-exa:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -7334,7 +7340,7 @@ importers:
packages/web/web-search-perplexity: packages/web/web-search-perplexity:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -7353,7 +7359,7 @@ importers:
packages/workflow/tool-ralph: packages/workflow/tool-ralph:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -7405,7 +7411,7 @@ importers:
packages/workflow/tool-workflow: packages/workflow/tool-workflow:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -7463,7 +7469,7 @@ importers:
packages/workflow/workflow-workerthread: packages/workflow/workflow-workerthread:
dependencies: dependencies:
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery version: link:../../../vendor/schemastery
devDependencies: devDependencies:
'@deepseek-ai/cordis': '@deepseek-ai/cordis':
@@ -7555,7 +7561,7 @@ importers:
specifier: workspace:^ specifier: workspace:^
version: link:../../vendor/timer version: link:../../vendor/timer
'@deepseek-ai/cosmokit': '@deepseek-ai/cosmokit':
specifier: workspace:^ specifier: link:../../vendor/cosmokit
version: link:../../vendor/cosmokit version: link:../../vendor/cosmokit
'@deepseek-ai/dsh-acp': '@deepseek-ai/dsh-acp':
specifier: workspace:^ specifier: workspace:^
@@ -7855,7 +7861,7 @@ importers:
specifier: workspace:^ specifier: workspace:^
version: link:../../packages/context/workspace-context version: link:../../packages/context/workspace-context
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: workspace:^ specifier: link:../../vendor/schemastery
version: link:../../vendor/schemastery version: link:../../vendor/schemastery
vendor/cordis: vendor/cordis:
@@ -7867,7 +7873,7 @@ importers:
specifier: ^1.0.0-rc.5 specifier: ^1.0.0-rc.5
version: link:../loader version: link:../loader
'@deepseek-ai/cosmokit': '@deepseek-ai/cosmokit':
specifier: ^1.8.1 specifier: link:../cosmokit
version: link:../cosmokit version: link:../cosmokit
'@standard-schema/spec': '@standard-schema/spec':
specifier: ^1.1.0 specifier: ^1.1.0
@@ -7896,10 +7902,10 @@ importers:
specifier: ^1.1.2 specifier: ^1.1.2
version: link:../timer version: link:../timer
'@deepseek-ai/cosmokit': '@deepseek-ai/cosmokit':
specifier: ^1.8.1 specifier: link:../cosmokit
version: link:../cosmokit version: link:../cosmokit
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../schemastery
version: link:../schemastery version: link:../schemastery
chokidar: chokidar:
specifier: ^4.0.3 specifier: ^4.0.3
@@ -7927,7 +7933,7 @@ importers:
specifier: ^1.0.0-rc.5 specifier: ^1.0.0-rc.5
version: link:../loader version: link:../loader
'@deepseek-ai/cosmokit': '@deepseek-ai/cosmokit':
specifier: ^1.8.1 specifier: link:../cosmokit
version: link:../cosmokit version: link:../cosmokit
js-yaml: js-yaml:
specifier: ^4.1.0 specifier: ^4.1.0
@@ -7939,7 +7945,7 @@ importers:
specifier: ^4.0.0-rc.7 specifier: ^4.0.0-rc.7
version: link:../cordis version: link:../cordis
'@deepseek-ai/cosmokit': '@deepseek-ai/cosmokit':
specifier: ^1.8.1 specifier: link:../cosmokit
version: link:../cosmokit version: link:../cosmokit
node-addon-require-builtin: node-addon-require-builtin:
specifier: ^0.1.4 specifier: ^0.1.4
@@ -7951,10 +7957,10 @@ importers:
specifier: ^4.0.0-rc.7 specifier: ^4.0.0-rc.7
version: link:../cordis version: link:../cordis
'@deepseek-ai/cosmokit': '@deepseek-ai/cosmokit':
specifier: ^1.8.1 specifier: link:../cosmokit
version: link:../cosmokit version: link:../cosmokit
'@deepseek-ai/schemastery': '@deepseek-ai/schemastery':
specifier: ^3.18.0 specifier: link:../schemastery
version: link:../schemastery version: link:../schemastery
supports-color: supports-color:
specifier: ^9.4.0 specifier: ^9.4.0
@@ -7963,7 +7969,7 @@ importers:
vendor/schemastery: vendor/schemastery:
dependencies: dependencies:
'@deepseek-ai/cosmokit': '@deepseek-ai/cosmokit':
specifier: ^1.8.1 specifier: link:../cosmokit
version: link:../cosmokit version: link:../cosmokit
'@standard-schema/spec': '@standard-schema/spec':
specifier: ^1.1.0 specifier: ^1.1.0
@@ -7975,7 +7981,7 @@ importers:
specifier: ^4.0.0-rc.7 specifier: ^4.0.0-rc.7
version: link:../cordis version: link:../cordis
'@deepseek-ai/cosmokit': '@deepseek-ai/cosmokit':
specifier: ^1.8.1 specifier: link:../cosmokit
version: link:../cosmokit version: link:../cosmokit
website: website:

View File

@@ -24,6 +24,10 @@ packages:
# builds must resolve those matching names to this workspace's pinned sources. # builds must resolve those matching names to this workspace's pinned sources.
linkWorkspacePackages: true linkWorkspacePackages: true
overrides:
'@deepseek-ai/cosmokit': 'link:vendor/cosmokit'
'@deepseek-ai/schemastery': 'link:vendor/schemastery'
peerDependencyRules: peerDependencyRules:
allowedVersions: allowedVersions:
typescript: '>=5 <7' typescript: '>=5 <7'

View File

@@ -8,7 +8,7 @@
import { spawn } from 'node:child_process' import { spawn } from 'node:child_process'
import { existsSync, statSync } from 'node:fs' import { existsSync, statSync } from 'node:fs'
import { chmod, copyFile, cp, mkdir, readFile, rm, writeFile } from 'node:fs/promises' import { chmod, copyFile, cp, lstat, mkdir, readFile, readdir, realpath, rm, writeFile } from 'node:fs/promises'
import { basename, dirname, join, resolve, sep } from 'node:path' import { basename, dirname, join, resolve, sep } from 'node:path'
import { parseArgs } from 'node:util' import { parseArgs } from 'node:util'
@@ -259,6 +259,7 @@ class SingleExeBuild {
this.staging, this.staging,
]) ])
await this.restoreLegacyHoists() await this.restoreLegacyHoists()
await this.materializeStagedLinks()
if (this.cli.dryRun) { if (this.cli.dryRun) {
for (const name of DEPLOY_ONLY_DOCS) console.log(`build-exe-for-python-sdk: [dry-run] rm -f ${join(this.staging, name)}`) for (const name of DEPLOY_ONLY_DOCS) console.log(`build-exe-for-python-sdk: [dry-run] rm -f ${join(this.staging, name)}`)
} else { } else {
@@ -311,6 +312,49 @@ class SingleExeBuild {
} }
} }
/** Replace deploy-time package links with files and reject any remaining link. */
private async materializeStagedLinks(): Promise<void> {
if (this.cli.dryRun) {
console.log('build-exe-for-python-sdk: [dry-run] materialize staged package links')
return
}
const nodeModules = join(this.staging, 'node_modules')
let remaining = await this.findSymlink(nodeModules)
while (remaining !== undefined) {
const segments = remaining.slice(nodeModules.length + 1).split(sep)
const binIndex = segments.lastIndexOf('.bin')
if (binIndex >= 0) {
await rm(join(nodeModules, ...segments.slice(0, binIndex + 1)), { recursive: true, force: true })
remaining = await this.findSymlink(nodeModules)
continue
}
const destination = remaining
const source = await realpath(destination)
const nestedNodeModules = join(source, 'node_modules')
await rm(destination, { recursive: true, force: true })
await cp(source, destination, {
recursive: true,
dereference: true,
filter: path => path !== nestedNodeModules && !path.startsWith(nestedNodeModules + sep),
})
remaining = await this.findSymlink(nodeModules)
}
}
/** Return the first symbolic link below a directory, if one exists. */
private async findSymlink(directory: string): Promise<string | undefined> {
for (const entry of await readdir(directory, { withFileTypes: true })) {
const path = join(directory, entry.name)
const metadata = await lstat(path)
if (metadata.isSymbolicLink()) return path
if (metadata.isDirectory()) {
const nested = await this.findSymlink(path)
if (nested !== undefined) return nested
}
}
return undefined
}
/** Add the executable entry and pkg assets to the staged manifest. */ /** Add the executable entry and pkg assets to the staged manifest. */
async injectPkgConfig(): Promise<void> { async injectPkgConfig(): Promise<void> {
const patch = { bin: ENTRY_BIN, pkg: { assets: ASSET_GLOBS } } const patch = { bin: ENTRY_BIN, pkg: { assets: ASSET_GLOBS } }