3.4 KiB
Yonexus.Client — Project Structure
This repository follows the standard OpenClaw plugin project layout.
Required Layout
${proj}/plugin/
${proj}/plugin/core/
${proj}/plugin/hooks/
${proj}/plugin/commands/
${proj}/plugin/tools/
${proj}/plugin/index.ts
${proj}/plugin/openclaw.plugin.json
${proj}/skills/
${proj}/servers/
${proj}/scripts/
${proj}/scripts/install.mjs
Where:
D= directoryF= file
Equivalent expanded tree:
.
├── plugin/
│ ├── core/
│ ├── hooks/
│ ├── commands/
│ ├── tools/
│ ├── index.ts
│ └── openclaw.plugin.json
├── skills/
├── servers/
├── scripts/
│ └── install.mjs
├── protocol/ # git submodule -> Yonexus.Protocol
└── PLAN.md
Responsibility Mapping
plugin/core/
Core plugin logic lives here.
For Yonexus.Client, this includes:
- local identity state
- keypair generation
- secret persistence
- auth proof construction/signing
- heartbeat scheduling
- inbound message dispatch
- reconnect state machine
plugin/hooks/
Hook handlers triggered by OpenClaw lifecycle or special events.
For Yonexus.Client, expected hooks include:
- gateway startup hook to initialize client runtime
- reconnect/startup orchestration hook if needed
plugin/commands/
Slash commands exposed by the plugin.
Planned examples for Yonexus.Client:
- show current connection status
- show pairing state
- trigger reconnect
- clear local trust and re-pair
plugin/tools/
Plugin-provided tools callable from the runtime.
Planned examples for Yonexus.Client:
- send message to server
- inspect local auth/pairing state
plugin/index.ts
Must only do wiring.
It should:
- initialize plugin entrypoint
- register hooks
- register commands
- register tools
- compose core modules
It should not contain business logic directly.
plugin/openclaw.plugin.json
Plugin manifest and config entrypoint.
For Yonexus.Client, this should eventually describe:
- plugin name
- version
- entrypoint
- config schema
- required permissions if any
skills/
Skills provided by the plugin.
Potential future contents:
- client recovery flow
- pairing troubleshooting guidance
- operator guidance for reconnect/auth issues
servers/
Long-running services started by the plugin.
For Yonexus.Client, this may stay small or even nearly empty in early versions.
Possible later contents:
- local helper process
- background runtime wrappers if needed
Important note:
- unlike
Yonexus.Server, the client does not primarily exist to expose a network service - but the directory should still exist for consistency with the standard project structure
scripts/install.mjs
Install/uninstall/deployment helper script.
Expected responsibilities:
- install built plugin into OpenClaw plugin directory
- support uninstall
- support explicit OpenClaw profile path
Design Rule
This repo should follow the Dirigent style of plugin organization, with one intentional difference:
Yonexus.Clientusesservers/- it does not use a root-level special folder like
no-reply-api/
Notes
- Shared protocol specification must live in
protocol/submodule, not duplicated locally. - Business logic should stay out of
plugin/index.ts. - Even if
servers/is light in early versions, keep the directory to preserve a consistent project template across Yonexus repos.