Files
deepseek-harness/packages/fs
Tianyi Cui 9d385cd0d9 Merge master into persistent PTC
Preserve the persistent runtime package description with master's alpha.2 version and locale exports. Refresh the two PTC prompt snapshots for the current plan-tool result type.

Validation: full build, 434 focused tests (one skipped), two built-runtime tests, two selected snapshots, package metadata, and all 43 doc-sync checks passed.
2026-10-10 21:55:44 +08:00
..
2026-10-09 15:13:40 +08:00
2026-10-10 21:55:44 +08:00

description, kind
description kind
The filesystem package group: the ctx.fs provider contract, local and sandbox-enforcing backends, the read-before-edit policy plugin, and the model-facing file and search tools. package-group

packages/fs

English | 中文

Summary

The fs/ group gives agents durable, policy-governed access to files: the ctx.fs service contract in fs/, the host-filesystem and sandbox-enforcing backends in fs-local/ and fs-sandbox/, the read-before-edit policy in fs-observation-policy/, and the model-facing tools in tool-fs/ (read, read_image, write, edit) and tool-fs-search/ (glob, grep). A deployment mounts one backend, loads the policy for freshness-guarded mutations, and registers the tool packages the model should see; backends swap without touching the tools or the policy. File I/O takes no timeout by design: a deadline would kill work the OS still finishes, so cancellation is a best-effort signal at syscall boundaries.

Table of Contents


Packages

Seven packages play the filesystem roles; the subsystem reference owns the exhaustive contracts and the error taxonomy.

Package Role ctx key
fs/ ctx.fs service contract: execution-world paths, bounded text I/O, and atomic mutations with an optional version guard ctx.fs
fs-local/ Host-filesystem backend: reads, writes, and edits real files on the local machine registers on ctx.fs
fs-sandbox/ Sandbox-enforcing backend: fences writes and edits by the per-call sandbox mode while reads pass through registers on ctx.fs
fs-observation-policy/ Read-before-edit policy: records observed presence or absence and guards write/edit through the fs/* events fs/* listeners
tool-fs/ Model-facing read, read_image, write, and edit tools plus their executor registers on ctx.tools
tool-fs-search/ Model-facing glob and grep discovery tools backed by the packaged ripgrep binary registers on ctx.tools
tool-str-replace-editor/ Standalone str_replace_editor tool: view, create, str_replace, and insert over ctx.fs registers on ctx.tools

The policy is a plugin, not a service the tools inject: removing it leaves the bare provider's unconditional mutation behavior instead of breaking the tools. The mode fence in fs-sandbox and the read-before-edit gate compose. tool-fs-search deliberately does not extend the provider contract — search is a process-backed ripgrep workflow, so filesystem backends stay free of a universal search API.


Start with the subsystem reference for the shared vocabulary and error taxonomy, then the decisions that shaped the family.

Dev Note

Working context for maintainers — click to expand

None.