Files
deepseek-harness/packages/experimental
Dudu-0223 ff563d07e0 feat(subagent): name subagents in their creator catalog
Models coordinate subagents through send_message, interrupt_agent, list_agents,
and Team task owners, but every one of those addressed a member by a
36-character Session id. Each new child now has a name, unique among its
creator's children, recorded as a field of the subagent/catalog entry the
creator already appends (payload version 3).

The Session id stays the only execution identity for routing, authorization,
persistence, task ownership, and navigation. A name is a model-facing
reference: 1-32 lower-case letters, digits, or hyphens starting with a letter,
never `lead`, so a UUID never parses as one. Omission selects the first free
`agent-N`; an explicit duplicate or invalid name fails before startup. The
creator reserves the name synchronously at admission and releases it when the
catalog entry commits or startup fails, so no second write, rollback protocol,
or optional naming service exists.

The root is `lead`, and a descendant's full name is its path from the root
without a `lead/` prefix, such as `reviewer/checker`. Sibling-unique segments
make full names tree-unique without a root registry, and cold resume rebuilds
a member's path from the catalogs along its creation chain. A member below an
unnamed historical creator keeps its Session id as its name. resolveName()
reads only the catalogs along the path and grants no authority.

Tools, runtime-authored text, and the Web client consume names: delegation
takes an optional name and returns { kind, subagentId, name }; send_message and
interrupt_agent take `agent`; list_agents rows carry name, status, and
description; Team task results report the owner's name while storage keeps
ownerId; identity runtime context, message framing, and settlement notices use
full names. Recorded sessions, CLI and Web expectations, the Python runtime
snapshots, bilingual docs, an upgrade guide, and an Agent Note follow.
2026-11-02 14:58:32 +08:00
..
2026-10-29 20:42:48 +08:00
2026-10-28 02:03:15 +08:00
2026-10-28 02:03:15 +08:00
2026-10-29 20:42:48 +08:00
2026-10-29 20:42:48 +08:00
2026-10-29 20:42:48 +08:00
2026-10-29 20:42:48 +08:00
2026-10-29 20:42:48 +08:00
2026-10-29 20:42:48 +08:00
2026-10-29 20:42:48 +08:00
2026-10-29 20:42:48 +08:00
2026-10-29 20:42:48 +08:00
2026-10-29 20:42:48 +08:00
2026-10-28 02:03:15 +08:00
2026-10-29 20:42:48 +08:00
2026-10-28 02:03:15 +08:00

description, kind
description kind
The experimental group map: publicly installable pre-stable prototypes. package-group

packages/experimental

English | 中文

Summary

Install and compose experimental capabilities explicitly, without a product-support commitment. Package naming and publication follow the experimental package policy. The optional-bundle rule determines which capabilities ship switched off with the installation for explicit selection in the GUI plugin manager’s Official group; the Liveshare owner bundle and its shared protocol package are among them. The plugin manager page owns which bundles appear by default and how to enable hidden ones.

Table of Contents


Experimental, optional, and Official

Experimental means the complete public capability remains under evaluation and is not a product-support commitment. Its behavior or API may change, and the capability may be withdrawn; engineering, security, documentation, testing, and released-data obligations still apply. A package belongs here only when its entire public contract is experimental or internal-only; an experimental option inside a product package stays with that product role.

Optional means a user explicitly selects the capability. Official means the project maintains and lists the package in the Plugins page. Neither describes maturity; publication, default installation, and GUI visibility do not determine maturity either. Product packages outside this group have maintained product roles, while their public APIs still follow the repository's pre-stable policy.

Promotion requires a named product role, documented public behavior and limitations, current consumers, release contents, and test evidence. Move the package to its product group, apply that group's naming rules, and update affected consumers together. The subtree rules govern dependency isolation and publication.


Packages

Package Role ctx key
action-cards Optional action cards below answers: the proposal tool, card state, user actions and status notices ctx.actionCards
client-ui-action-cards Card frame below completed answers, kind bodies and the proposal process row —
creation-recommendations Explicit-need creation of persistent removable interface plugins —
client-ui-creation-recommendations Personalized page card body with location selection and undo —
plugin-recommendations Explicit-need official plugin recommendations in conversations ctx.pluginRecommendations
client-ui-plugin-recommendations Official plugin card body with catalog text and enabling —
personalized-recommendations Default-disabled bundle of personalized pages, plugin recommendations and their action cards —
tool-session-query Workspace-authorized model session search, trace, and event reads —
session-search Optional experimental global session search tools —
ralph-bundle Optional repeated delegation with an isolated workflow engine —
terminal-bundle Optional global persistent terminal tools —
badge-skill-bundle Optional powered-by-dsh badge skill —
session-titles-bundle Optional titles following human prompts in a conversation —
hook-protocol Hook bridge wire types and durable events —
hooks-claude-code Claude Code hook bridge —
hooks-codex Codex hook bridge —
webhook Authenticated delivery dispatch and Workspace Session creation ctx.webhookRuntime
webhook-github Signed GitHub webhook ingress —
session-title-all-prompts-llm Session titles from all human prompts —
tool-terminal Persistent terminal tools —
tool-ralph Bounded repeated delegated tasks —
skill-badge The powered-by-dsh badge skill —
translator Anonymous Google and Bing text translation ctx.translator
client-ui-cot-translation Expanded reasoning translation and original-text controls ctx.cotTranslation
cot-translation-bundle Default-disabled reasoning translation composition —
speech-to-text Named speech recognition providers ctx.speechToText
speech-to-text-sensevoice Managed local SenseVoice inference —
api-speech-to-text Authenticated transient transcription Remote ctx.speechController
client-ui-voice-input Microphone capture and guarded draft insertion —
plugin-market-bundle Default-disabled optional custom plugin indexes: the index service and the Discover tab —
liveshare Opt-in LiveShare host bundle: Relay-backed Session sharing at the view or write tier, with forking and attachment uploads as independent switches injects connection; serves the viewer page through the Host's web resources
liveshare-protocol Wire frames and the identity contract shared by the owner bundle and the Relay library and protocol — no ctx key
voice-input-bundle Default-disabled optional voice input composition —
client-ui-stats Per-turn and per-step context, timing, cache, and tool cost for Web —
auto-review Explicit Web layer for same-model review before each native or PTC inner tool call —
subagent-oar Run standalone external coding-agent tasks through OAR ctx.subagents
tool-subagent-oar Select a configured external agent for each delegated task ctx.tools
claude-code-mods Run Claude Code mods as plugins: their hook chains on harness extension points and a band above the prompt ctx.claudeCodeMods
client-ui-claude-code-mods The Web band that draws a mod's tree above the prompt and sends button clicks back —
ptc-runtime-python CPython subprocess backend for the PTC execution seam ctx.ptcRuntime
CUA Application/window objects, authorized execution, and permission controls. ctx.cuaAccess
macOS CUA Swift native execution and platform preparation. ctx.computerUse
cua-bundle Optional Computer Use switch for PTC sessions —
computer-use-cua-driver-mcp Use an installed Cua Driver through MCP ctx.computerUse
computer-use-cua-driver-native Embed the Cua Driver native npm runtime ctx.computerUse
browser-use-playwright-mcp Playwright browser tools over MCP ctx.browserUse
browser-use-chrome-devtools-mcp Chrome DevTools inspection and browser control over MCP ctx.browserUse
browser-use-stagehand-native Stagehand browser operations with explicitly configured native models ctx.browserUse
browser-use-runtime Session-owned browser resources shared by experimental providers —
inspector Cross-realm CDP hub for Host debugging, Client Runtime inspection, network capture, and Cordis trees ctx.inspector
session-inspector Sidebar tables for raw Session logs and Chat nodes —
inspector-profile Optional Web bundle for Session log and Chat node inspection —
tool-worktree Optional bundle and model tool for creating and entering worktrees ctx.tools
webworker-packer Builds the gzip-compressed VFS image consumed by the browser worker preview library and CLI — no ctx key
webworker-runtime Runs the harness plugin tree inside a dedicated browser worker library and worker entry — no ctx key
worktree Creates a named Git worktree and changes the calling Session directory ctx.worktrees
forge Code host provider registry with shared change request polling ctx.forge
forge-github GitHub provider that reads pull requests through the host GitHub CLI registers a provider on ctx.forge
forge-session Binds change requests to the Sessions that created, pushed, or tracked them ctx.forgeSession
client-ui-forge GUI panel for a Session's Git checkout, worktrees, and bound pull requests ctx.forgePanel
forge-bundle Default-disabled pull request and worktree panel composition —


Dev Note

Working context for maintainers — click to expand

None.