packages/storage

September 4, 2026 · View on GitHub

English | 中文

Summary

The storage group gives a composition durable storage for everything that is not a session event log: workspace records, session sidecars, and other host-side application data. With it, host packages can persist typed records through a schema-validated domain form, choose between a human-readable JSON backend and a point-update SQLite backend, and receive a change event after every durable write. The family is optional and host-side only: it registers no tools, injects no prompts, and writes no session events, so the model and the agent loop never see it. Use it when the product keeps application state that must survive restarts; a composition with no such data can omit the whole group.

Table of Contents


Packages

PackageRolectx key
storageConnects registered backends with mounted data-form facilitiesctx.storage
storage-jsonStores each unit as one human-readable JSON fileregisters backend json
storage-sqliteStores units as JSON documents in one SQLite databaseregisters backend sqlite
storage-domainProvides schema-validated, change-emitting KV domains over routed backendsctx.storageDomain

  • Storage subsystem — the authoritative contract: the backend contract, domain declaration, change events, and generated API.
  • domain KV storage Agent Note — the design behind the family, the workspace consumer, and the deferred session-backend migration.
  • Workspace subsystem — the first consumer of the domain data form.

Dev Note

Working context for maintainers — click to expand

The design Agent Note is still marked proposed while the family ships; its out-of-scope table is the deferred-work list for the migration phase (the log facet, session-backend reuse, cross-process change push). Promote decisions into implemented notes as they land.