Files
deepseek-harness/packages/util
Yichen Jiang dc9256536b Merge remote-tracking branch 'origin/master' into feat/plugin-mgmt-4-web
Master now carries the final #4182 plugin manager and the live client
module graph of #4189, so the web management layer is re-ported onto
them:

- The manager keeps master's `ManagementError` codes, `ChangeResult`
  stages, `configure()` under `hmr.runExclusive`, `reload()` warnings
  and `writePluginEnabled` name matching, and adds back `inspect`,
  request-id installs with `plugin-manager/install-log` and
  `plugin-manager/install-state`, `cancelInstall`, `listBundles` titles,
  rows and overrides, `packageResult.kind`, `pnpmCommand` and
  `inspectTimeoutMs`, and `plugin-manager/changed` after each change and
  each `profile/reconciled`. A failed or cancelled installation restores
  the snapshotted manifest and lockfile instead of master's one-shot
  `pnpm remove` cleanup, so `cleanup` and `remainingDependencies` leave
  the result.
- App boot keeps master's reconciliation diagnostics and emits
  `profile/reconciled`; `watchUserPatches` goes with the launcher's
  watcher now that HMR owns profile reloads.
- The settings Plugin list tab stays read-only with #4189's page-local
  sync failures and retry; master's bundle form and row checkboxes are
  dropped again. The sidebar page words the Host's codes through its
  dictionary, and a client bundle change follows the live module graph
  without a page reload.
- The web e2e scaffold no longer chooses a reload policy: the base
  bundle's `hmr` row turns on with the profile context and application
  readiness, and `profile.hmr: false` disables it through an overlay for
  the startup-only scenario.
2026-09-15 17:28:08 +08:00
..
2026-09-15 09:35:57 +08:00
2026-09-15 09:35:57 +08:00
2026-09-15 09:35:57 +08:00
2026-09-15 09:35:57 +08:00
2026-09-15 09:35:57 +08:00
2026-09-15 09:35:57 +08:00
2026-09-15 09:35:57 +08:00
2026-09-15 09:35:57 +08:00
2026-09-15 09:35:57 +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
package-manifest/ Shared TypeScript declarations for package manifests
crypto/ Mints RFC 9562 v4 UUIDs from the cross-runtime crypto.getRandomValues primitive
deque/ Provides amortized constant-time queue operations with bounded vacant storage
chunked-list/ Retains immutable list versions with bounded append copying and checkpoint validation
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
lazy-require/ Loads CommonJS-compatible Host dependencies on first use with caller-relative resolution
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.