2026-03-07 15:44:40 +00:00

English | 中文


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: yonexus
  • entry: dist/yonexus/index.js
  • config.dataFile: ./data/org.json
  • config.registrars: whitelist for registrar agents
  • config.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.
  • queryAgents enforces schema queryable constraints.
Description
No description provided
Readme 700 KiB
Languages
Markdown 100%