diff --git a/packages/client/connection/package.json b/packages/client/connection/package.json index b82ccee015..b16c83b1e9 100644 --- a/packages/client/connection/package.json +++ b/packages/client/connection/package.json @@ -36,8 +36,7 @@ "dependencies": { "@deepseek-ai/dsh-credentials": "workspace:^", "@deepseek-ai/schemastery": "workspace:^", - "zod": "^4.4.3", - "@deepseek-ai/dsh-session-format-catalog": "workspace:^" + "zod": "^4.4.3" }, "files": [ "lib/index.js", @@ -57,6 +56,7 @@ "@deepseek-ai/dsh-host-webserver": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", + "@deepseek-ai/dsh-session-format-catalog": "workspace:^", "@deepseek-ai/dsh-settings": "workspace:^", "@deepseek-ai/dsh-tool-todo": "workspace:^", "@deepseek-ai/dsh-util-values": "workspace:^" diff --git a/packages/client/tsdown.client.ts b/packages/client/tsdown.client.ts index 7104855a97..7a6ee46d7c 100644 --- a/packages/client/tsdown.client.ts +++ b/packages/client/tsdown.client.ts @@ -58,7 +58,7 @@ function styleInjectionModule( * Everything else under @deepseek-ai/* is either a module-table entry * (external) or a leak the purity gate rejects. */ -export const INLINE_SAFE = /^(?:@deepseek-ai\/dsh-(?:file-reference|session|llm|tools|brand|deque|output-retention|typert-protocol|util-crypto|util-values|util-workspace-path)(?:\/|$)|@deepseek-ai\/dsh-token-meter\/client$|@deepseek-ai\/dsh-host-open-in-app\/shared$|@deepseek-ai\/dsh-agent-presets\/display$|@deepseek-ai\/dsh-spill-policy\/notice$)/ +export const INLINE_SAFE = /^(?:@deepseek-ai\/dsh-(?:file-reference|session|llm|tools|brand|deque|output-retention|typert-protocol|util-crypto|util-values|util-workspace-path)(?:\/|$)|@deepseek-ai\/dsh-token-meter\/client$|@deepseek-ai\/dsh-host-open-in-app\/shared$|@deepseek-ai\/dsh-agent-presets\/display$|@deepseek-ai\/dsh-spill-policy\/notice$|@deepseek-ai\/dsh-session-format-catalog\/message-projections$|@deepseek-ai\/dsh-compaction-image-offload\/projection$)/ /** * Vendored framework libraries: rescoped into @deepseek-ai, so the gate below diff --git a/packages/compaction/compaction-image-offload/package.json b/packages/compaction/compaction-image-offload/package.json index 89c8984885..a00b22b0d1 100644 --- a/packages/compaction/compaction-image-offload/package.json +++ b/packages/compaction/compaction-image-offload/package.json @@ -26,8 +26,8 @@ }, "files": [ "lib/index.js", - "lib/types/**/*.d.ts", - "lib/types/**/*.js" + "lib/types/**/*.js", + "lib/types/**/*.d.ts" ], "license": "MIT", "peerDependencies": { diff --git a/packages/session/session-format-catalog/package.json b/packages/session/session-format-catalog/package.json index f9685053fd..a34af0786d 100644 --- a/packages/session/session-format-catalog/package.json +++ b/packages/session/session-format-catalog/package.json @@ -27,8 +27,8 @@ }, "files": [ "lib/index.js", - "lib/types/**/*.d.ts", - "lib/types/**/*.js" + "lib/types/**/*.js", + "lib/types/**/*.d.ts" ], "license": "MIT", "dependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a9846aad7e..9bef58a6c4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2016,9 +2016,6 @@ importers: '@deepseek-ai/dsh-credentials': specifier: workspace:^ version: link:../../credentials/credentials - '@deepseek-ai/dsh-session-format-catalog': - specifier: workspace:^ - version: link:../../session/session-format-catalog '@deepseek-ai/schemastery': specifier: link:../../../vendor/schemastery version: link:../../../vendor/schemastery @@ -2053,6 +2050,9 @@ importers: '@deepseek-ai/dsh-session': specifier: workspace:^ version: link:../../core/session + '@deepseek-ai/dsh-session-format-catalog': + specifier: workspace:^ + version: link:../../session/session-format-catalog '@deepseek-ai/dsh-settings': specifier: workspace:^ version: link:../../settings/settings diff --git a/scripts/client-bundle-purity.spec.ts b/scripts/client-bundle-purity.spec.ts index 510de0b7cd..07c8f97228 100644 --- a/scripts/client-bundle-purity.spec.ts +++ b/scripts/client-bundle-purity.spec.ts @@ -110,6 +110,15 @@ describe('client bundle purity gate', () => { expect(() => resolveId('@deepseek-ai/dsh-spill-policy/notice/internal')).toThrow(/purity/) }) + it('admits only pure message projection entries, not recovery plugins or format codecs', () => { + expect(resolveId('@deepseek-ai/dsh-session-format-catalog/message-projections')).toBeNull() + expect(resolveId('@deepseek-ai/dsh-compaction-image-offload/projection')).toBeNull() + expect(() => resolveId('@deepseek-ai/dsh-session-format-catalog')).toThrow(/purity/) + expect(() => resolveId('@deepseek-ai/dsh-compaction-image-offload')).toThrow(/purity/) + expect(() => resolveId('@deepseek-ai/dsh-session-format-catalog/message-projections/internal')).toThrow(/purity/) + expect(() => resolveId('@deepseek-ai/dsh-compaction-image-offload/projection/internal')).toThrow(/purity/) + }) + it('lets exact generated Remote contributions inline without admitting their package implementation', () => { expect(resolveId('@deepseek-ai/dsh-goal/remote')).toBeNull() expect(() => resolveId('@deepseek-ai/dsh-goal')).toThrow(/purity/)