import { registerResource } from '../crud.js'; registerResource({ name: 'group', plural: 'groups', table: 'agent_groups', description: 'Agent group — a logical agent identity. Each group has its own workspace folder (CLAUDE.md, skills, container config), conversation history, and container image. Multiple messaging groups can be wired to one agent group.', idColumn: 'id', columns: [ { name: 'id', type: 'string', description: 'UUID.', generated: true }, { name: 'name', type: 'string', description: 'Display name shown in logs, help output, and channel adapters. Does not need to be unique.', required: true, updatable: true, }, { name: 'folder', type: 'string', description: 'Directory name under groups/ on the host. Must be unique. Contains CLAUDE.md, skills/, and container.json. Cannot be changed after creation.', required: true, }, { name: 'agent_provider', type: 'string', description: 'LLM provider. Null means the default (claude). Skill-installed providers (e.g. opencode) register via /add-.', updatable: true, default: null, }, { name: 'created_at', type: 'string', description: 'Auto-set.', generated: true }, ], operations: { list: 'open', get: 'open', create: 'approval', update: 'approval', delete: 'approval' }, });