Catalog
@shelson/catalogv2026.07.27.1
Security Notice
This extension includes AI agent skills that can modify AI assistant behavior. Review the skill files before installing.
01README
A catalogue of hosts and groups with hierarchical global/group/host metadata, resolved per host for use in workflows.
02Models
@shelson/catalogv2026.07.27.1catalog.ts
fn addHost(name: string, idempotent: boolean)
Add a host to the catalogue
| Argument | Type | Description |
|---|---|---|
| name | string | |
| idempotent | boolean | If true, no-op instead of throwing when the host already exists |
fn removeHost(name: string, idempotent: boolean)
Remove a host from the catalogue
| Argument | Type | Description |
|---|---|---|
| name | string | |
| idempotent | boolean | If true, no-op instead of throwing when the host does not exist |
fn addGroup(name: string, idempotent: boolean)
Add a group to the catalogue
| Argument | Type | Description |
|---|---|---|
| name | string | |
| idempotent | boolean | If 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
| Argument | Type | Description |
|---|---|---|
| name | string | |
| idempotent | boolean | If 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
| Argument | Type | Description |
|---|---|---|
| host | string | |
| group | string | |
| idempotent | boolean | If true, no-op instead of throwing when already a member |
fn removeHostFromGroup(host: string, group: string, idempotent: boolean)
Remove a host from a group
| Argument | Type | Description |
|---|---|---|
| host | string | |
| group | string | |
| idempotent | boolean | If 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
| Argument | Type | Description |
|---|---|---|
| target? | string | Group or host name; required unless scope is "global" |
| key | string |
fn removeMetadata(target?: string, key: string, idempotent: boolean)
Remove a metadata key at the global, group, or host scope
| Argument | Type | Description |
|---|---|---|
| target? | string | Group or host name; required unless scope is "global" |
| key | string | |
| idempotent | boolean | If 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.
| Argument | Type | Description |
|---|---|---|
| host? | string | If 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
03Skills
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