Files
deepseek-harness/packages/util
Yichen Jiang dc969e2ee8 feat(plugins): plugin manager, preset user layers, and the patch-file writer
Add `dsh-host-plugin-manager`: the `pluginManager` service and the
`plugins` Remote that install, uninstall, enable, disable, and retry
bundles over the booted profile, add and remove rows in the profile's
or an agent preset's user layer, report what a package's services keep
alive, and fold the manifest, the probe record, and the live tree into
one view per package. pnpm runs the way the CLI runs it, streaming its
output as `plugins/install-log`; every change emits `plugins/changed`,
and api-remotes forwards both. Enabling is the Loader's own
transaction: a rejected recomposition restores the layer list, and a
runtime recomposition records contained rows through
`recordContainedStates` because the boot audit does not run again;
`ContainedGroup.create` now records a row that resolved pending rather
than clearing it.

Give every agent preset a user patch layer: `cordis.patch.yml` beside
a locally authored composition, or alone in `.agent-presets/<id>/`
for a shipped one. Discovery attaches and judges it, the mount applies
it as the include's runtime patches, standing generations follow the
layer's content and return to a retired generation when it comes back,
the composition inventory reports each row's `source` and
`disabledBy`, a copy carries the layer, and `removeOverlay` deletes it.
`dsh-global-tool-mask` is `tools.restrict()` as a scope-only row for
such a layer.

Add `dsh-patch-file` as the one home of the patch-list format: the
parser moved out of app-boot, plus a comment-preserving key-level
writer with lock, atomic replace, and readback. app-boot exports
`layerTrust`, `bundleLayerPatches`, and `recordContainedStates`, and
`ProfileRuntime` carries the install anchor.
2026-09-04 02:31:54 +08:00
..
2026-09-03 02:27:19 +08:00
2026-09-03 02:27:19 +08:00
2026-09-03 02:27:19 +08:00
2026-09-03 02:27:19 +08:00
2026-09-03 02:27:19 +08:00
2026-09-03 02:27:19 +08:00
2026-09-03 02:27:19 +08:00
2026-09-03 02:27:19 +08:00
2026-09-03 02:27:19 +08:00
2026-09-03 02:27:19 +08:00
2026-09-03 02:27:19 +08:00

description, kind
description kind
Package map for shared utilities: atomic file writes, branded ids, deques, JSON values, harness home paths, launch environment, native commands, output retention, time zones, and timeouts. package-group

util/ — shared utilities

English | 中文

Summary

The util/ group gives capability packages shared mechanical primitives instead of duplicate implementations. It covers atomic writes, branded ids, deques, lossless JSON values, UUIDs, Harness-home paths, launch environments, outbound proxy policy, native commands, output retention, time-zone canonicalization, and timeout handling. Every root entry here is a library: it registers no product service or event, and the consuming capability retains the business semantics.

Table of Contents


Packages

Each package provides one primitive; open a package page for how to use it.

Package Role
brand/ Nominal string types and their stateless constructor
crypto/ Mints RFC 9562 v4 UUIDs from the cross-runtime crypto.getRandomValues primitive
deque/ Provides amortized constant-time queue operations with bounded vacant storage
values/ Validates, snapshots, compares, and freezes lossless JSON-compatible values
home-paths/ Resolves the single Harness home and joins shared user-data paths
http-proxy/ Resolves one outbound proxy policy and installs it for fetch, SDK agents, and spawned children
launch-environment/ Frozen launch environment that remembers which layer supplied each value
atomic-write/ Atomic file replacement and cross-process writer locking
native-command/ Runs host-native commands directly, never through a shell string
workspace-path/ Provides browser-safe Workspace path and display helpers
output-retention/ Bounds model-facing output and reports exact omission metadata
time/ Validates and canonicalizes a caller-reported IANA time zone
timeout/ Deadline arithmetic, signal fusion, and timeout-versus-cancel classification

Dev Note

Working context for maintainers — click to expand

None.