2026-07-17 15:42:35 +08:00
{
"name" : "dsh-examples" ,
"private" : true ,
"version" : "0.0.1" ,
"type" : "module" ,
2026-07-27 03:59:46 +08:00
"description" : "Workspace umbrella for runnable demos and example-owned test compositions: declares their cordis.yml packages so plain Node resolves real exports→lib. Not a build target." ,
2026-07-17 15:42:35 +08:00
"dependencies" : {
"@cordisjs/plugin-hmr" : "workspace:*" ,
"@cordisjs/plugin-include" : "workspace:*" ,
"@deepseek-ai/dsh-acp-demo" : "workspace:*" ,
2026-07-19 14:53:39 +08:00
"@deepseek-ai/dsh-agent-spine-demo" : "workspace:*" ,
2026-07-20 19:26:04 +08:00
"@deepseek-ai/dsh-app-boot" : "workspace:*" ,
2026-07-17 15:42:35 +08:00
"@deepseek-ai/dsh-bash-local" : "workspace:*" ,
"@deepseek-ai/dsh-bash-sandbox" : "workspace:*" ,
2026-07-19 13:32:04 +08:00
"@deepseek-ai/dsh-cli-demo" : "workspace:*" ,
2026-07-17 15:42:35 +08:00
"@deepseek-ai/dsh-code-runtime-worker" : "workspace:*" ,
"@deepseek-ai/dsh-compact-basic" : "workspace:*" ,
2026-07-19 18:11:48 +08:00
"@deepseek-ai/dsh-compact-tool-result-prune" : "workspace:*" ,
2026-07-17 15:42:35 +08:00
"@deepseek-ai/dsh-fs-local" : "workspace:*" ,
"@deepseek-ai/dsh-fs-policy" : "workspace:*" ,
2026-07-20 11:40:29 +08:00
"@deepseek-ai/dsh-fs-sandbox" : "workspace:^" ,
2026-07-19 18:47:34 +08:00
"@deepseek-ai/dsh-goal" : "workspace:*" ,
2026-07-19 20:30:43 +08:00
"@deepseek-ai/dsh-goal-session" : "workspace:*" ,
2026-07-17 15:42:35 +08:00
"@deepseek-ai/dsh-hooks-claude" : "workspace:*" ,
"@deepseek-ai/dsh-hooks-codex" : "workspace:*" ,
2026-07-19 14:53:39 +08:00
"@deepseek-ai/dsh-jsonrpc" : "workspace:*" ,
2026-07-17 15:42:35 +08:00
"@deepseek-ai/dsh-llm" : "workspace:*" ,
"@deepseek-ai/dsh-llm-deepseek" : "workspace:*" ,
2026-07-24 13:23:10 +08:00
"@deepseek-ai/dsh-llm-pi-ai" : "workspace:*" ,
2026-07-17 15:42:35 +08:00
"@deepseek-ai/dsh-llm-replay" : "workspace:*" ,
2026-07-20 13:59:02 +08:00
"@deepseek-ai/dsh-lsp" : "workspace:*" ,
"@deepseek-ai/dsh-lsp-local" : "workspace:*" ,
2026-07-17 15:42:35 +08:00
"@deepseek-ai/dsh-permission" : "workspace:*" ,
2026-07-27 03:59:46 +08:00
"@deepseek-ai/dsh-plan-mode" : "workspace:*" ,
refactor(subprocess): rename the process seam to subprocess and address review
Review feedback (tianyicui): 'process' is a poor service name. The family is
now packages/subprocess/ — @deepseek-ai/dsh-subprocess (ctx.subprocess,
abstract SubprocessService, Subprocess* vocabulary) and
@deepseek-ai/dsh-subprocess-local (LocalSubprocessService) — renamed
throughout code, compositions, docs (en+zh, pairs re-recorded), catalogs,
and gates. 'subprocess' is the precise term for managed OS children (the
Python-stdlib sense), avoids colliding with Node's global process object,
and reads as one system beside dsh-subagent-subprocess.
ds-review-bot findings addressed:
- kill() on a settled handle is now a no-op (no signal to a possibly-reused
pgid, no referenced grace timer delaying exit); pinned by a spy test.
- The moved DshEnvironmentKey/DshEnvironment/CollectedOutput types get
drift-checked type-equiv blocks on the new subprocess.md page, restoring
their manifest registration.
- subprocess.md is registered in the core.md sub-page index (en+zh).
2026-07-26 12:43:14 +08:00
"@deepseek-ai/dsh-subprocess-local" : "workspace:*" ,
2026-07-21 16:01:00 +08:00
"@deepseek-ai/dsh-pty" : "workspace:*" ,
"@deepseek-ai/dsh-pty-local" : "workspace:*" ,
2026-07-17 15:42:35 +08:00
"@deepseek-ai/dsh-repeat-tool-guard" : "workspace:*" ,
"@deepseek-ai/dsh-sandbox-local" : "workspace:*" ,
2026-07-20 11:40:29 +08:00
"@deepseek-ai/dsh-sandbox-policy" : "workspace:^" ,
2026-07-21 14:50:06 +08:00
"@deepseek-ai/dsh-session-checkpoint-policy" : "workspace:*" ,
2026-07-27 03:59:46 +08:00
"@deepseek-ai/dsh-session-persistence-jsonl" : "workspace:*" ,
2026-07-23 20:16:14 +08:00
"@deepseek-ai/dsh-session-query" : "workspace:*" ,
"@deepseek-ai/dsh-session-query-sqlite" : "workspace:*" ,
2026-07-23 03:06:57 +08:00
"@deepseek-ai/dsh-session-telemetry-otel" : "workspace:*" ,
2026-07-27 03:59:46 +08:00
"@deepseek-ai/dsh-session-title-first-message-llm" : "workspace:*" ,
2026-07-17 15:42:35 +08:00
"@deepseek-ai/dsh-spill-local" : "workspace:*" ,
"@deepseek-ai/dsh-spill-policy" : "workspace:*" ,
"@deepseek-ai/dsh-subagent" : "workspace:*" ,
2026-07-21 16:51:51 +08:00
"@deepseek-ai/dsh-subagent-acp" : "workspace:*" ,
2026-07-17 15:42:35 +08:00
"@deepseek-ai/dsh-subagent-fork" : "workspace:*" ,
refactor: rename the backend to dsh-subagent-dsh-sdk
The group's convention is package suffix == provider default
(subagent-acp/'acp', subagent-spawn/'spawn', subagent-fork/'fork'), and the
provider default became dsh-sdk in the last review round — so the package
follows: @deepseek-ai/dsh-subagent-dsh-sdk at
packages/subagent/subagent-dsh-sdk, plugin name subagent-dsh-sdk,
diagnostics prefixed subagent-dsh-sdk:. The dsh echo has precedent
(dsh-llm-deepseek). Directory, fixture path, knip/tsconfig/examples
registrations, catalogs, READMEs (en+zh), and the Agent Note follow; the
sdk-client dispose ladder moves to its own module (src/dispose.ts) with the
deterministic FakeChild tier tests restored alongside it.
2026-07-27 22:17:10 +08:00
"@deepseek-ai/dsh-subagent-dsh-sdk" : "workspace:*" ,
2026-07-17 15:42:35 +08:00
"@deepseek-ai/dsh-subagent-spawn" : "workspace:*" ,
2026-07-26 05:13:39 +08:00
"@deepseek-ai/dsh-tasks-local" : "workspace:*" ,
2026-07-17 15:42:35 +08:00
"@deepseek-ai/dsh-time-context" : "workspace:*" ,
"@deepseek-ai/dsh-timeout-policy" : "workspace:*" ,
2026-07-17 23:38:05 +08:00
"@deepseek-ai/dsh-token-meter" : "workspace:*" ,
2026-07-20 23:32:37 +08:00
"@deepseek-ai/dsh-tool-ask-user" : "workspace:*" ,
2026-07-17 15:42:35 +08:00
"@deepseek-ai/dsh-tool-cordis" : "workspace:*" ,
"@deepseek-ai/dsh-tool-fs" : "workspace:*" ,
"@deepseek-ai/dsh-tool-fs-search" : "workspace:*" ,
2026-07-19 19:22:10 +08:00
"@deepseek-ai/dsh-tool-goal" : "workspace:*" ,
2026-07-20 13:59:02 +08:00
"@deepseek-ai/dsh-tool-lsp" : "workspace:*" ,
2026-07-27 03:59:46 +08:00
"@deepseek-ai/dsh-tool-pty" : "workspace:*" ,
2026-07-20 00:51:19 +08:00
"@deepseek-ai/dsh-tool-ralph" : "workspace:*" ,
2026-07-24 15:09:55 +08:00
"@deepseek-ai/dsh-tool-session-query" : "workspace:*" ,
2026-07-17 15:42:35 +08:00
"@deepseek-ai/dsh-tool-subagent" : "workspace:*" ,
"@deepseek-ai/dsh-tool-todo" : "workspace:*" ,
feat(tool-web): replace the regex HTML-to-markdown converter with turndown
Implements the turndown Agent Note from the NIH dependency audit (full
variant, not the minimal entities-only fallback): dsh-tool-web's fetch
rendering now converts HTML through turndown + @joplin/turndown-plugin-gfm
(atx headings, fenced code, dash bullets, GFM tables/strikethrough) over
the real domino DOM, with script/style/noscript removed wholesale. The
hand-rolled ~86-line regex converter html.ts and its entity tables are
deleted; renderBody wraps the conversion in try/catch falling back to
the raw HTML body, because turndown's recursive DOM walk overflows with
a RangeError on pathological nesting (measured: 4k levels on the main
thread, 8k in a worker) where the regex version could never throw.
Closure weight, measured: tool-web IS in the single-exe runtime closure,
and the exe asset globs would pack ~7.9 MB of the three new packages —
but ~6 MB of that is domino's test corpus, with runtime lib/ at ~550 KB
against a ~174 MB artifact (<0.5% either way), so the swap wins.
Per testing policy the previously-missing keyless web_fetch snapshot
ships in the same change: the acp-agent `web-fetch` scenario boots a new
web.cordis.yml overlay (web seam + real dsh-web-fetch-local provider +
tool-web fetch-only + a loopback HTTP fixture server on a fixed port
serving deterministic HTML with entities, a GFM table, and nesting), so
recording and keyless replay both drive the real HTTP fetch and real
conversion end to end; the scenario pins the new `web` header class.
The Agent Note moves proposed -> implemented and is rewritten per the
lifecycle contract (Decision/Consequences/Testing, closure verdict and
alternatives recorded); tool-web and acp-agent READMEs updated in both
languages and pairs re-recorded.
2026-07-27 00:22:13 +08:00
"@deepseek-ai/dsh-tool-web" : "workspace:*" ,
2026-07-17 15:42:35 +08:00
"@deepseek-ai/dsh-tool-workflow" : "workspace:*" ,
"@deepseek-ai/dsh-tools" : "workspace:*" ,
2026-07-27 03:59:46 +08:00
"@deepseek-ai/dsh-tui-demo" : "workspace:*" ,
2026-07-17 15:42:35 +08:00
"@deepseek-ai/dsh-user-approval" : "workspace:*" ,
"@deepseek-ai/dsh-web" : "workspace:*" ,
"@deepseek-ai/dsh-web-fetch-local" : "workspace:*" ,
"@deepseek-ai/dsh-workflow-workerthread" : "workspace:*"
2026-07-20 20:59:22 +08:00
} ,
"devDependencies" : {
"node-pty" : "1.1.0"
2026-07-17 15:42:35 +08:00
}
}