Independent Railway-deployed TypeScript Pi runtime for Xavi, the video editing, Remotion animation, and social-content agent.
- Package manager:
pnpm@10.33.0 - Node:
>=22.19.0 - Core app:
apps/coworkers-core - Agent prompts:
src/agents/xavi - Sokosumi Pi extension:
@masumi-network/pi-sokosumi - Pi package registration:
.pi/settings.json
pnpm install
pnpm typecheck
pnpm test
pnpm build
pnpm startpnpm start runs the Railway HTTP service. It consumes PORT and exposes:
GET /healthzPOST /v1/chatPOST /webhooks/telegramPOST /webhooks/sokosumi- legacy-compatible
POST /webhooks/xavi/:surface
All POST routes require Authorization: Bearer $COWORKERS_API_KEY or X-Coworkers-Api-Key: $COWORKERS_API_KEY unless COWORKERS_REQUIRE_AUTH=false is set for local development.
Inbound requests default to agentId: "xavi" if no agent is supplied.
Required for real model calls:
COWORKERS_API_KEYCOWORKERS_REQUIRE_AUTHCOWORKERS_RATE_LIMIT_WINDOW_MSCOWORKERS_RATE_LIMIT_MAX_REQUESTSOPENROUTER_API_KEYOPENROUTER_MODELOPENROUTER_BASE_URLOPENROUTER_MAX_COMPLETION_TOKENSOPENROUTER_TEMPERATUREOPENROUTER_SITE_URLOPENROUTER_APP_NAME
Sokosumi worker:
SOKOSUMI_API_URLSOKOSUMI_COWORKER_API_KEYSOKOSUMI_TASK_POLLER_ENABLEDSOKOSUMI_TASK_POLL_INTERVAL_MSSOKOSUMI_TASK_POLL_LIMITSOKOSUMI_TASK_POLL_MAX_PAGES
Local/test helpers:
PI_AGENT_MOCK_RESPONSES=truereturns deterministic replies without model calls.SOKOSUMI_MOCK_ENDPOINT_ENABLED=trueenablesPOST /sokosumi/mock-taskfor local smoke tests.
The Sokosumi extension lives in masumi-network/pi-sokosumi.