Files
deepseek-harness/packages/extensions
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

description, kind
description kind
Runtime API inspection, process-local runners, and historical Cordis cards. package-group

packages/extensions

English | 中文

Summary

The extensions group provides read-only runtime API discovery for agents, process-local runners for programmatic and browser consumers, and historical generated-plugin cards. Standard and Creator modes install persistent plugins through Plugin Manager. Choose a child package for inspection, Host execution, Client execution, or browser controls.

Table of Contents


Packages

Package Role ctx key
tool-cordis Two read-only tools for runtime API discovery registers on ctx.tools
cordis-host-runner Host half: definition registry, sandboxed host-half lifecycle, and the inspect registry that answers browser queries provides ctx.dynamicCordisRunner and ctx.cordisInspect
cordis-client-runner Browser half: evaluates a browser-half source into a live plugin and answers run requests client face; provides browser ctx.dynamicCordisRunner
ui-cordis Browser panel and historical lifecycle tool cards client face; registers slots


Dev Note

Working context for maintainers — click to expand

The two browser-half packages live in this group rather than under packages/client/ because they are halves of this subsystem's dual-half packages; the client face compiles them through the client program, while the host program references only the host runner.