Skip to main content

Catalog

@shelson/catalogv2026.07.27.1· 26d agoMODELSSKILLS
01README

A catalogue of hosts and groups with hierarchical global/group/host metadata, resolved per host for use in workflows.

02Models1
@shelson/catalogv2026.07.27.1catalog.ts
fn addHost(name: string, idempotent: boolean)
Add a host to the catalogue
ArgumentTypeDescription
namestring
idempotentbooleanIf true, no-op instead of throwing when the host already exists
fn removeHost(name: string, idempotent: boolean)
Remove a host from the catalogue
ArgumentTypeDescription
namestring
idempotentbooleanIf true, no-op instead of throwing when the host does not exist
fn addGroup(name: string, idempotent: boolean)
Add a group to the catalogue
ArgumentTypeDescription
namestring
idempotentbooleanIf true, no-op instead of throwing when the group already exists
fn removeGroup(name: string, idempotent: boolean)
Remove a group from the catalogue, and from every host's membership list
ArgumentTypeDescription
namestring
idempotentbooleanIf true, no-op instead of throwing when the group does not exist
fn addHostToGroup(host: string, group: string, idempotent: boolean)
Add a host to a group
ArgumentTypeDescription
hoststring
groupstring
idempotentbooleanIf true, no-op instead of throwing when already a member
fn removeHostFromGroup(host: string, group: string, idempotent: boolean)
Remove a host from a group
ArgumentTypeDescription
hoststring
groupstring
idempotentbooleanIf true, no-op instead of throwing when not a member
fn setMetadata(target?: string, key: string)
Set (create or overwrite) a metadata key at the global, group, or host scope
ArgumentTypeDescription
target?stringGroup or host name; required unless scope is "global"
keystring
fn removeMetadata(target?: string, key: string, idempotent: boolean)
Remove a metadata key at the global, group, or host scope
ArgumentTypeDescription
target?stringGroup or host name; required unless scope is "global"
keystring
idempotentbooleanIf true, no-op instead of throwing when the key is not set
fn resolveMetadata(host?: string)
Force-recompute effective metadata per host (scalar keys: host > group > global, earliest-listed group wins ties; list keys: unioned and deduplicated across global, all member groups, and the host). Every mutating method already keeps `resolved` current as a side effect, so this is only needed to backfill hosts added before that behavior existed, or to force a refresh with no other change. Resolves every host, or just the one named.
ArgumentTypeDescription
host?stringIf omitted, resolves every host in the catalogue

Resources

global(infinite)— Global-scope metadata, shared by every host
host(infinite)— A catalogued host: its group memberships and host-scope metadata
group(infinite)— A catalogued group and its group-scope metadata
resolved(infinite)— Effective metadata for a host, merged from global, group, and host scopes
03Skills1
host-catalog3 files
04Stats
A
100 / 100
Downloads
0
Archive size
20.1 KB
  • Has README or module doc2/2earned
  • README has a code example1/1earned
  • README is substantive1/1earned
  • Most symbols documented1/1earned
  • No slow types (deprecated)1/1earned
  • Dependencies pass trust audit2/2earned
  • Has description1/1earned
  • Platform support declared (or universal)2/2earned
  • License declared1/1earned
  • Verified public repository2/2earned
05Platforms
06Labels