Files
wraith/tasks/meta/napi-layer.md

33 lines
1.1 KiB
Markdown

---
id: meta/napi-layer
name: Complete NAPI layer — project setup, connect(), serve()
status: completed
depends_on:
- napi/project-setup
- napi/connect-function
- napi/serve-function
scope: moderate
risk: high
impact: phase
level: planning
---
## Description
Meta task that clusters NAPI tasks. Once complete, the `@alkdev/wraith` Node.js native addon provides `connect()` and `serve()` returning duplex streams for TypeScript consumers.
## Acceptance Criteria
- [x] All NAPI tasks completed
- [x] `connect()` returns Duplex stream, no SOCKS5, no port forwarding
- [x] `serve()` returns WraithServer with close() and onConnection events
- [x] Key material from Buffer (in-memory) and file paths both work
- [x] JS-to-Rust and Rust-to-JS error marshalling works correctly
## References
- docs/architecture/napi-and-pubsub.md
## Summary
NAPI layer complete. connect() returns WraithStream (read/write/close), serve() returns WraithServer with close()/onConnection(). Key material works from both file paths and in-memory Buffers. TCP transport fully supported; TLS/iroh return helpful errors in NAPI layer.