Files
deepseek-harness/packages/storage/storage
imccyu 2c85c484d3 build(release): reference workspace members through the workspace protocol
1504 hand-written ranges pointing at workspace members become workspace:^, so
pnpm pack substitutes each member's real version at publication: sibling
peerDependencies follow the family version instead of being pinned at ^0.0.1,
and a reference to a vendored package follows that package's own line. Without
this, publishing 0.0.2 ships peer ranges naming a version that does not exist,
and 0.0.1-rc.1 does not satisfy ^0.0.1 either.

It also retires ranges that had gone stale against the workspace: ^4.0.0-rc.6
for a 4.0.0-rc.7 checkout, ^3.17.0 for schemastery 3.18.0.

workspace:* stays where an exact published version is the point, which is how
the Landlock entry pins its platform packages.

A workspace constraint now requires the protocol, so a new package cannot
reintroduce a hand-written range. The same constraint caught packages/boot/cmdline
arriving on master without the publishable trio, which this change completes.
2026-08-11 00:17:09 +08:00
..

@deepseek-ai/dsh-storage

English | 中文

Storage hub (ctx.storage) for non-session data: a named backend registry plus mounted data-form facilities. The hub performs no IO itself — backends own media, and data forms own semantics. The storage family overview maps those packages; the domain KV storage Agent Note records the design rationale.

Shape

  • ctx.storage.backend — name → backend table. Multiple backends stay mounted side by side (json, sqlite); which backend serves a consumer is that consumer's configuration (the domain layer's route table), never a hub-global choice. register() returns the disposer; duplicate names and unknown lookups fail loud.
  • ctx.storage.mount(form, facility) / ctx.storage.form(form) — data-form mounting. StorageForms is merge-extensible; the domain layer merges domain and is reached as ctx.storage.domain.
  • A backend owns one medium and exposes the data-shape facets it supports. kv is the current facet; src/backend.ts owns its exact contract.

Model Experience

Backend and form registrations

What the model sees

Nothing. ctx.storage is a host-side registration table; the hub registers no tools, injects no prompts, and writes no session events.

Token effect

Zero direct tokens on every request.

KV Cache effect

Independent of live requests: the hub never touches a request prefix, so it cannot invalidate provider cache reuse.

Known Limitations and Deferred Work

  • kv is the only data shape — backends currently have one facet to implement.
  • Forms resolve lazily — reading ctx.storage.domain before the domain plugin mounts throws form-not-mounted; assemblies order plugins accordingly (misconfiguration fails loud rather than silently deferring).