deepseek-harness/packages/extensions
_Kerman 89321489db refactor(session-projection-cache): own the cache tree under a config root
Store each session's projection_cache.json under the cache's own root tree
(<root>/<session-id>/projection_cache.json, wired to dshHomePath('projections')
in the base bundle) instead of beside the session log via
sessionPersistence.locate(). The cache owns its directory layout, keys
directories by the code-generated session id, and never consults the
persistence layer; the service now injects only sessionProjections and
sessions.

Drop the coldSnapshot method and its readFrom-tail fold ladder: every cold
consumer refolds from the log itself, so the cache only serves the listing
read (cachedSnapshot, one async file read per session) and the write side.
Fail-soft durability, per-path write serialization, in-flight drain, and
atomic 0600 writes are unchanged; the chain cleanup now observes its own
rejection so a failed write cannot surface as an unhandled error.

dsh-session-persistence leaves peer/dev dependencies and the tsconfig
reference; dsh-atomic-write moves to peerDependencies. Config gains a
required root.
2026-08-19 22:25:54 +08:00
..
cordis-client-runner chore: refresh client catalog and module graph for connection inject 2026-08-18 20:09:55 +08:00
cordis-host-runner release(dsh): 0.1.0-rc.7 2026-08-17 18:47:02 +08:00
tool-cordis refactor(session-projection-cache): own the cache tree under a config root 2026-08-19 22:25:54 +08:00
ui-cordis build(client): enforce client package boundaries 2026-08-18 01:34:53 +08:00
README.i18n.yaml fix: rebase 3 2026-08-13 02:29:17 +08:00
README.md fix: rebase 3 2026-08-13 02:29:17 +08:00
README.zh.md fix: rebase 3 2026-08-13 02:29:17 +08:00

extensions/ — the agent modifies its own runtime

English | 中文

Model-facing tools over the live cordis runtime the agent itself runs inside: inspect the loaded plugins and service API, define and run model-written dynamic packages, and retract them again — plus the restricted repository Plugin runtime. Both browser-half packages live here rather than under packages/client/ because they are halves of this subsystem's dual-half packages; the host aggregate excludes them so each face keeps its own compiler program. Design home: the toolset Agent Note.

Package Role ctx key
tool-cordis/ Model-facing runtime inspection and dynamic-package tools registers on ctx.tools
cordis-host-runner/ Definition registry, the node:vm sandbox for host halves, and the request-run round trip provides ctx.dynamicCordisRunner
cordis-client-runner/ Browser half of a dual-half package: evaluates the definition into a live browser plugin and answers the run request client face; provides the browser ctx.dynamicCordisRunner
ui-cordis/ Browser surfaces: the frame-wide panel that operates every definition, and the read-only define card client face; registers slots