58 lines
2.3 KiB
Markdown
58 lines
2.3 KiB
Markdown
# NODE.DC Tasker Codex API
|
||
|
||
Отдельный модуль NODE.DC для безопасного подключения локальных Codex/AI-агентов к Tasker / Operational Core.
|
||
|
||
Модуль не является частью Plane fork и не должен становиться backend-расширением Tasker. Его роль — agent gateway: выдача ограниченных agent credentials, проверка прав, MCP/REST-контракт для внешних агентов, аудит и маршрутизация разрешённых операций в Tasker через узкий internal adapter.
|
||
|
||
## Documents
|
||
|
||
- [Architecture](docs/ARCHITECTURE.md)
|
||
- [UX flow](docs/UX_FLOW.md)
|
||
- [MCP tools contract](docs/MCP_TOOLS_CONTRACT.md)
|
||
- [Tasker API audit](docs/TASKER_API_AUDIT.md)
|
||
- [Threat model](docs/THREAT_MODEL.md)
|
||
- [Implementation plan](docs/IMPLEMENTATION_PLAN.md)
|
||
|
||
## Core rule
|
||
|
||
External Codex instances never receive Plane session cookies, raw Tasker API tokens, database access, or a generic HTTP proxy into Tasker.
|
||
|
||
All writes go through NODE.DC Agent Gateway, are scoped by agent grants, and are recorded as actions of a dedicated agent identity owned by a human platform user.
|
||
|
||
## Current implementation
|
||
|
||
- Fastify service with `/healthz`, `/readyz`, and capability metadata.
|
||
- Postgres migrations for agents, grants, token hashes, pairing codes, audit events, and idempotency keys.
|
||
- Internal REST endpoints for agent profile, grant, and token lifecycle.
|
||
- Opaque agent tokens are generated once and stored only as SHA-256 hashes.
|
||
- MCP and Tasker write execution are documented but not implemented yet.
|
||
|
||
## Local development
|
||
|
||
```bash
|
||
cp .env.example .env
|
||
docker compose --env-file .env -f docker-compose.local.yml up -d postgres
|
||
npm install
|
||
npm run migrate
|
||
npm run dev
|
||
```
|
||
|
||
Useful checks:
|
||
|
||
```bash
|
||
npm run check
|
||
npm run build
|
||
curl http://127.0.0.1:4100/readyz
|
||
curl http://127.0.0.1:4100/api/v1/meta/capabilities
|
||
```
|
||
|
||
Create a local test agent:
|
||
|
||
```bash
|
||
curl -X POST http://127.0.0.1:4100/api/v1/agents \
|
||
-H 'Content-Type: application/json' \
|
||
-d '{"owner_user_id":"local-user","owner_email":"local@example.test","display_name":"Local Codex"}'
|
||
```
|
||
|
||
Do not expose these lifecycle endpoints publicly before the Launcher/internal auth layer is added.
|