Skip to main content

Interface: DeclaredGroup

Defined in: packages/core/src/types.ts:165

A named declaration that owns zero or more named members.

A family and a crew are different objects and the same thing to the panel: a name, a count, and a list of member keys, all knowable before anything runs. That last clause is the whole point. Every other kind in the dev registry is a live node that registered itself from its own constructor, so it exists only once something built it — which is why a processableFamily() across fifty tenants used to show nothing at all until traffic happened to build a member.

One contract rather than one per kind, because the alternative fails ASK-DONT-SNIFF: separate hooks, maps, routes and panel sections per kind mean a third kind has to edit all four. Implement the three accessors and the registry lists you.

Methods

getGroupId()

getGroupId(): string

Defined in: packages/core/src/types.ts:172

Stable id — a chosen name where the caller gave one, otherwise generated.

The same string a family-wide override keys on, so the two agree by construction rather than by convention.

Returns

string


getGroupKind()

getGroupKind(): string

Defined in: packages/core/src/types.ts:183

What kind of declaration this is: 'family', 'crew', or something a later primitive introduces.

An open string rather than a union, on the same reasoning as BotOverride.effort: a closed union would have to be edited by every new kind, which is exactly the coupling this interface exists to avoid. A panel that meets a kind it does not know renders the generic row, which is the honest degradation.

Returns

string


getMemberKeys()

getMemberKeys(): readonly string[]

Defined in: packages/core/src/types.ts:193

The members built so far, in the order the group would evict them.

Read live, on every list — never recorded at registration. A family registers at declaration, when it has exactly zero members; a snapshot taken then is empty for the life of the process. This is the same ordering trap declaredFamilyOf documents from the other direction, and registering a declaration is the ideal place to walk back into it.

Returns

readonly string[]