2.3 KiB
2.3 KiB
Yonexus
Yonexus is an OpenClaw plugin for organization hierarchy and agent identity management.
Features
- Organization hierarchy:
Organization -> Department -> Team -> Agent - Agent registration and multi-identity assignment
- Supervisor relationship mapping (does not imply permissions)
- Role-based authorization
- Query DSL:
eq | contains | regex - Queryable field whitelist via schema (
queryable: true) - Scope shared memory adapter (
org/dept/team) - JSON persistence for structure data
- Audit logs and structured error codes
- Import / export support
Project Layout
.
├─ plugin.json
├─ src/
│ ├─ index.ts
│ ├─ models/
│ ├─ permissions/
│ ├─ store/
│ ├─ tools/
│ ├─ memory/
│ └─ utils/
├─ scripts/
│ ├─ install.sh
│ └─ demo.ts
├─ tests/
│ └─ smoke.ts
├─ examples/
│ └─ sample-data.json
└─ dist/
└─ yonexus/
Requirements
- Node.js 22+
- npm 10+
Quick Start
npm install
npm run build
bash scripts/install.sh
npm run test:smoke
npm run demo
Configuration
plugin.json includes default config:
name:yonexusentry:dist/yonexus/index.jsconfig.dataFile:./data/org.jsonconfig.registrars: whitelist for registrar agentsconfig.schema: metadata field schema and queryability
Implemented APIs
Core:
createDepartment(actor, name, orgId)createTeam(actor, name, deptId)registerAgent(actor, agentId, name, roles?)assignIdentity(actor, agentId, deptId, teamId, meta)setSupervisor(actor, agentId, supervisorId, deptId?)whoami(agentId)queryAgents(actor, scope, query)
Management:
renameDepartment(actor, deptId, newName)renameTeam(actor, teamId, newName, deptId?)migrateTeam(actor, teamId, newDeptId)deleteDepartment(actor, deptId)deleteTeam(actor, teamId, deptId?)
Data & audit:
exportData(actor)importData(actor, state)listAuditLogs(limit?, offset?)
Testing
Smoke test:
npm run test:smoke
Notes
- Structure data is persisted in JSON, not memory_store.
- Shared scope memory is handled via the scope memory adapter.
- Unknown metadata fields are dropped during identity assignment.
queryAgentsenforces schema queryable constraints.