Files
deepseek-harness/packages/util
Turtle 38c7a9fbf4 feat(release): publish package source, declaration maps, and documentation (#5884)
* feat(release): publish package source, declaration maps, and documentation

Every release member publishes its TypeScript source and the declaration
maps that resolve into it, and @deepseek-ai/dsh publishes the repository
Markdown documentation staged from docs/ at prepack time.

The ./src/* export most members already declared now resolves for an
installed consumer, and a consumer editor follows a declaration to the
implementation. Bundled JavaScript maps stay unpublished; the vendored
family and the Desktop runtime file policy are unchanged.

Rationale: .agents/notes/implemented/process/2026-10-08-published-source-and-docs.md

* feat(release): publish JavaScript maps and compress bundles

Every emitted JavaScript map ships beside the bundle it describes, and the
workspace build and the client preset compress bundles without mangling
identifiers.

The documentation payload now mirrors the website publication manifest and
is removed again by `postpack`; Desktop and the Python executable exclude
the published source, documentation, and maps; `clean` removes a staged
copy. Typert's publication contract gains the Remote declaration map.

* fix(release): keep node bundles readable for the worker image

The browser worker image lowers `yield*` only as a whole statement and
rewrites `for await` loops by their source layout, so compressed node-side
entries either fail that lowering or lower to unparseable code. Only the
browser bundles keep compression, which removes about a third of their text.

The bundle-purity assertion now matches the module-loader call regardless of
the quote style compression picks, and the release-pack fixture exercises
the installed package's new documentation requirement.

* feat(release): publish the whole documentation tree

`@deepseek-ai/dsh` copies `docs/` in full instead of the website's page
set: the maintainer documents, the generated migration records, the
translation guidelines, and the `*.i18n.yaml` consistency records ship
with the installed package, so the documentation's own links resolve
without a checkout.

* feat(release): publish the upgrade guides with the documentation

The staged documentation keeps the website's page set and adds every
`docs/upgrade-guide/` document, which is what an installed reader consults
when a released change breaks something. The rest of the maintainer tree
stays out.

* test(release): expect source and maps in master's new payload cases

* feat(release): keep installed docs and source readable in Desktop

Desktop keeps the published src/ and docs/ trees inside app.asar, and
every model shell call receives DSH_INSTALL_DIR and DSH_NODE_EXECUTABLE
so an agent can read them through Electron's Node mode. Staging also
generates docs/upgrade-guide/README.md, an index of the upgrade guides
grouped by the release they upgrade from.

Minified client bundles print string literals with backticks: the
worker image packer now recognizes those chunk requests, client license
banners are prepended after minification so their text survives, and
the affected artifact tests accept either quote.

* test(desktop): read archived docs through the Windows PowerShell form

Regenerate the config catalog for the shifted shell-env source line.

* test(desktop): wait for the GUI-subsystem Electron process from PowerShell

* build(release): publish source and maps from the message-quotes package

* build(release): publish source and maps from packages new on master

* build(release): publish source and maps from the tool-office package
2026-11-05 00:22:36 +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 and zone vocabulary, timeouts, and official package lists. 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, instant, and span vocabulary, 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. The exception is official-bundles: instead of a mechanical primitive, it holds the installation's and the plugin manager's official package lists as data their consumers apply.

Table of Contents


Packages

Each package provides one primitive or one data set; 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
plugin-detail/ Selects plugin detail documents and reads them from local packages and npm file CDNs
plugin-market-index/ Validates plugin market index format 1 and builds pinned install arguments
official-bundles/ Lists the official bundle and plugin packages the installation ships, offers, installs on demand, retires, and the plugin manager protects or presents
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
code-language/ Maps a filename suffix to the syntax-highlighting language that the Code preview, diff review, and the read card render
output-retention/ Bounds model-facing output and reports exact omission metadata
time/ Parses strict instants, local calendars, and caller-reported IANA zones, and holds a millisecond span
timeout/ Deadline arithmetic, signal fusion, and timeout-versus-cancel classification

Dev Note

Working context for maintainers — click to expand

None.