Files
deepseek-harness/vendor/hmr
Tianyi Cui d2fb352f3e Enable maximum-strict TypeScript across our packages
tsconfig.base.json adds noUncheckedIndexedAccess,
exactOptionalPropertyTypes, noImplicitOverride,
noFallthroughCasesInSwitch, noUnusedLocals, and noUnusedParameters on
top of strict. Vendored packages opt out of the new flags locally
(their tsconfigs are ours to regenerate; their source is not), keeping
upstream-sync friendliness.

Our code fixed accordingly: index accesses acknowledge undefined
(assembler flush cursors, lastTurnNumber); optional properties are
omitted instead of set-to-undefined (GenerateResult.usage,
ToolDefinition.strict, GenerateOptions.system/tools, error payloads
via an errorData helper); Session.onAppend is explicitly
`(…) => void | undefined`; tests and examples updated for unused
parameters and indexed access.
2026-06-11 14:02:47 +08:00
..

@cordisjs/plugin-hmr

Hot module replacement for loader-managed Cordis plugins.

The HMR plugin watches source files, traces Node's module graph, clears affected module caches, and reloads only the plugin entries that depend on changed application files. Changes to framework-level dependencies fall back to loader.exit(), letting the host process restart.

Requirements

  • @cordisjs/plugin-loader
  • @cordisjs/plugin-timer
  • A runtime that exposes Node's internal module loader. The package throws if the loader service has no internal module loader available.

Usage

- id: timer
  name: '@cordisjs/plugin-timer'
- id: hmr
  name: '@cordisjs/plugin-hmr'
  config:
    root:
      - src
    ignored:
      - '**/node_modules'
      - '**/.*'
    debounce: 100

Config

Field Description
base Optional base directory resolved from ctx.baseUrl.
root Chokidar roots to watch. Defaults to ['.'].
ignored Picomatch patterns excluded from watch and reload analysis.
debounce Milliseconds to wait before processing a burst of changes.

Events

Event Description
hmr/change Emitted for changed files that are not handled by plugin reload or config reload.
hmr/reload Emitted after one or more plugin entries are reloaded.