Skip to main content

server-plugins

Framework server plugins and the `/_agent-native/` route namespace. Use when adding a custom server plugin, deciding whether to create an `/api/` route vs an action, or debugging auto-mounted framework routes.

소스 정보

저장소
BuilderIO/agent-native
최근 소스 활동
2026년 6월 23일 13:59
감지된 SKILL.md 언어
영어
스타
7,449
포크
681

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
server-plugins
description
Framework server plugins and the `/_agent-native/` route namespace. Use when adding a custom server plugin, deciding whether to create an `/api/` route vs an action, or debugging auto-mounted framework routes.
scope
dev
metadata
{"internal":true}
# Server Plugins & Framework Routes ## Default Plugins (auto-mount) Five default plugins auto-mount when your app doesn't have a custom version in `server/plugins/`: | Plugin | Default behavior | Customize when | | ------------- | ------------------------------------------------- | ------------------------------------------- | | `agent-chat` | Agent chat endpoints | Custom `mentionProviders` or `systemPrompt` | | `auth` | Auth middleware | Custom `publicPaths` or Google OAuth config | | `core-routes` | `/_agent-native/poll`, `/_agent-native/ping`, etc | Custom `envKeys` or `sseRoute` | | `resources` | Resource CRUD | Rarely | | `terminal` | Terminal emulator | Rarely | **Only create plugin files for plugins you need to customize.** Let defaults auto-mount. ## Framework Route Namespace: `/_agent-native/` All framework-level routes live under `/_agent-native/` to avoid collisions with template-specific `/api/*` routes. ### Hard rule - **ALL framework routes go under `/_agent-native/`.** - Templates own `/api/*` only for route-only domain concerns such as uploads, streaming, webhooks, OAuth callbacks, or non-JSON protocols. - Never put framework routes under `/api/`. - Never put template routes under `/_agent-native/` — that namespace is reserved. - Never create `/api/*` routes that only wrap, proxy, or re-export actions. Use the existing `/_agent-native/actions/:name` endpoint or the React action hooks. ### Auto-mounted framework routes | Route | Purpose | | ------------------------------------------------------------- | ---------------------------------------- | | `GET /_agent-native/poll` | Polling endpoint for DB change detection | | `GET /_agent-native/events` | SSE endpoint for real-time sync | | `GET /_agent-native/ping` | Health check | | `GET/PUT/DELETE /_agent-native/application-state/:key` | Application state CRUD | | `GET/PUT/DELETE /_agent-native/application-state/compose/:id` | Compose draft CRUD | | `POST /_agent-native/agent-chat` | Agent chat SSE endpoint | | `GET /_agent-native/agent-chat/mentions` | Mention search for @-tagging | | `GET /_agent-native/env-status` | Env key configuration status | | `POST /_agent-native/env-vars` | Save env vars | | `/_agent-native/auth/*` | Authentication (login, session, logout) | | `/_agent-native/google/*` | Google OAuth (callback, auth-url, etc.) | | `/_agent-native/resources/*` | Resource CRUD | | `/_agent-native/actions/:name` | Auto-mounted action endpoints | | `/_agent-native/available-clis` | Available CLI tools | | `/_agent-native/agent-terminal-info` | Terminal connection info | | `/_agent-native/collab/*` | Real-time collaboration (see `real-time-collab`) | | `/_agent-native/a2a` | A2A JSON-RPC endpoint (see `a2a-protocol`) | ## Actions-First Approach For standard CRUD and data operations, use `defineAction` in `actions/` — the framework auto-mounts them as HTTP endpoints at `/_agent-native/actions/:name`. Only create custom `/api/*` routes for things actions can't do: - File uploads with multipart form data - Streaming responses - Webhooks from external services - OAuth callbacks Before adding a route, inspect the existing action files. Reuse the action if it already encodes the business rule, or add a new action if the operation should be available to both the agent and the UI. A route whose implementation mostly calls an action is usually the wrong abstraction. The Nitro Vite plugin handles both `/api/` and `/_agent-native/` prefixes via file-based routing in `server/routes/`. ## Related Skills - `actions` — Prefer actions over custom `/api/` routes - `authentication` — Auth middleware and session handling - `portability` — Use H3 (not Express) for all routes
GitHub에서 보기