First-level TypeScript control-plane + edge-node starter for distributed task execution.
- Versioned contracts (
src/contracts.ts) - In-memory control plane (
src/control-plane.ts,src/persistence.ts) - Edge node polling/execute loop (
src/edge-node.ts) - Phase-2 scheduler basics:
- heartbeat freshness states (
healthy/degraded/offline) - claim-time filtering for stale/offline nodes
maxConcurrentTasksenforcement per node- queue/running visibility endpoints
- heartbeat freshness states (
- Phase-2B/2C execution + orchestration gates:
- real executor task kinds (
shell,orchestrator-run,hook-dispatch) - bounded task timeouts with structured stdout/stderr/error capture
- shell hardening: command allowlist + working-directory restrictions + timeout ceiling
- mandatory security gate in orchestrator flow before completion
- final reviewer function with explicit critical code+security go/no-go decision
- real executor task kinds (
- Plugin system + telemetry plugin (
src/plugins/*) - Tests (
src/test.ts,src/phase2b.test.ts)
POST /v1/nodes/registerPOST /v1/nodes/:nodeId/heartbeatGET /v1/nodesPOST /v1/tasksPOST /v1/nodes/:nodeId/tasks/claimPOST /v1/tasks/:taskId/ackPOST /v1/tasks/:taskId/resultGET /v1/tasks/:taskIdGET /v1/tasks/queueGET /v1/tasks/runningGET /v1/plugins/telemetry
cd /home/barboza/.openclaw/workspace/openclaw-edgemesh
npm run lint
npm run format:check
npm test
npm run build- ESLint (flat config):
npm run lint - Prettier:
npm run format/npm run format:check - Pre-commit hooks (Husky + lint-staged) run on staged files automatically
- Contribution guide: see
CONTRIBUTING.md - Release gate:
npm run release:gate(AAHP check + tests + typecheck)
- Architecture:
docs/ARCHITECTURE.md - API reference:
docs/API.md - Extending guide:
docs/EXTENDING.md - Troubleshooting:
docs/TROUBLESHOOTING.md
- Durable store adapter (Redis/Postgres)
- Retries/backoff + DLQ
- Node authn/authz (mTLS/JWT)
- Multi-node scheduling strategy and observability