Référence d'API — @nodefony/devkit
stable
Documentation › Référence d’API › @nodefony/devkit
Générée depuis les déclarations de types publiées de
@nodefony/devkit10.0.0-beta.5 : exactement ce que reçoit une application qui l’installe. Cette page n’existe dans aucun dépôt — pour la corriger, on corrige le TSDoc du code.
@nodefony/devkit#
import { … } from "@nodefony/devkit" — 21 symboles.
Classes (5)#
DevkitController#
class DevkitController extends Controller
La carte de visite de l’application, servie en HTTP.
constructor(context: ContextType)card(): Promise<import("@nodefony/http").Http2Response | import("@nodefony/http").HttpResponse | import("@nodefony/http").WebsocketResponse>—GET /nodefony/devkit/api/card— qui répond, et où aller ensuite.
DevkitService#
class DevkitService extends Service implements IDevkitService
Service principal du module — la logique vit ici, pas dans les controllers (un controller traduit du HTTP/WS ; un service, lui, est réutilisable par la CLI, un job, un autre module).
module: Moduleconstructor(module: Module)init(): Promise<this>— Hook de démarrage d’un service : appelé UNE fois par le kernel, après la construction.getCard(): IDevkitCard— Carte de visite de l’application — recalculée à CHAQUE lecture.mcpSettings(): IDevkitConfig["mcp"]— Réglages du serveur MCP, tels que l’application les a effectivement.mcpToolDeps(): IMcpToolDeps— Ce dont les outils MCP intégrés ont besoin pour répondre.mcpTools(): IMcpTool[]— Les outilsnodefony_*retenus par l’allowlistmcp.tools.declaredMcpScopes(): readonly string[]— Les scopes que la porte MCP EXIGE — dérivés des outils qu’elle déclare.publishedProtectedResources(): readonly IProtectedResourceInput[]— Ce que ce module protège, à publier en RFC 9728 — la porte MCP, ou rien.mcpGate(): IMcpGate— La porte MCP de développement — définie au premier usage, une fois.profileSessionGate(): ITicketSessionGate— La porte de session du profilage — définie au premier usage, une fois.status(): { ready: boolean; }— Snapshot de lecture — état courant du service.
McpController#
class McpController extends Controller
Porte Model Context Protocol de DÉVELOPPEMENT — celle par laquelle l’agent de code du développeur interroge l’application.
constructor(context: ContextType)mcp(body: unknown): Promise<unknown>—/nodefony/mcp—POSTsert un message JSON-RPC ;GETetDELETErendent405+Allow: POST(verbes retirés par la révision2026-07-28).
ProfileSessionController#
class ProfileSessionController extends Controller
Ouvre la session au nom de laquelle nodefony_profile_route tire ses requêtes.
constructor(context: ContextType)profileSession(): Promise<unknown>—POST /nodefony/devkit/profile-session— rachète le ticket et ouvre la session.
default#
class DevkitModule extends Module
constructor(kernel: Kernel)onKernelRegister(): Promise<this>— Valide la config au boot — défauts du schéma fusionnés avec ce que l’app passe dansuse().getMcpTools(): IMcpTool[]— Déclare les outilsnodefony_*— comme n’importe quel module.
Fonctions (4)#
buildCard#
function buildCard(input: ICardInput): ICard
Construit la carte de visite d’une application à partir de son état.
builtinMcpTools#
function builtinMcpTools(deps: IMcpToolDeps): Record<BuiltinMcpToolKey, IMcpTool>
Catalogue intégré du framework, indexé par clé d’allowlist.
defineDevkitConfig#
function defineDevkitConfig(config?: IDevkitConfigInput): IDevkitConfig
selectBuiltinMcpTools#
function selectBuiltinMcpTools(allowlist: readonly string[], deps: IMcpToolDeps): IMcpTool[]
Les outils du catalogue que l’allowlist de configuration retient.
Constantes (2)#
BUILTIN_MCP_TOOL_KEYS#
const BUILTIN_MCP_TOOL_KEYS: readonly [ "inspect", "card", "check", "symbols", "docs", "admin_list", "admin_call", "observe", "profile_route" ]
Clés des outils intégrés — ce que l’allowlist de configuration nomme.
devkitConfigSchema#
const devkitConfigSchema: z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; mcp: z.ZodDefault<z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; allowedOrigins: z.ZodDefault<z.ZodArray<z.ZodString>>; allowRemote: z.ZodDefault<z.ZodBoolean>; authorization: z.ZodDefault<z.ZodObject<{ authorizationServers: z.ZodDefault<z.ZodArray<z.ZodString>>; resource: z.ZodDefault<z.ZodString>; additionalResource …
Interfaces (2)#
IDevkitService#
interface IDevkitService
API publique de DevkitService (injectable, nom devkit).
status(): { ready: boolean; }— Snapshot de lecture — état courant du service.getCard(): IDevkitCard— Carte de visite de l’application, DÉRIVÉE de l’état du Kernel.mcpSettings(): IDevkitConfig["mcp"]— Réglages effectifs du serveur MCP (défauts du schéma + surcharges de l’app).mcpToolDeps(): IMcpToolDeps— Ce dont les outils MCP intégrés ont besoin pour répondre.mcpTools(): IMcpTool[]— Les outilsnodefony_*que l’allowlistmcp.toolsretient — ceux que le module déclare pargetMcpTools().declaredMcpScopes(): readonly string[]— Les scopes que la porte MCP EXIGE, dérivés des outils déclarés.mcpGate(): IMcpGate— La porte MCP de développement (POST /nodefony/mcp), bâtie surdefineMcpGateà partir dedevkit.mcp.*— définie une fois, au premier usage.profileSessionGate(): ITicketSessionGate— La porte de session du profilage (POST /nodefony/devkit/profile-session), bâtie surdefineTicketSessionGate— définie une fois, au premier usage.
IMcpToolDeps#
interface IMcpToolDeps
Ce dont les outils INTÉGRÉS ont besoin — injecté, jamais lu ici.
broker: IAdminBrokerLike— Le serviceadminBrokerdu conteneur, ouundefineds’il manque.getCard: () => unknown— Compose la carte de visite de l’application.projectRoot: string— Racine depuis laquelle lire le disque (graphe symbolique, diagnostic).getProfiler: () => IProfilerReader— Le profileur de développement ("profiler"du conteneur), ouundefinedhors développement :nodefony_observele dit au lieu de planter.servesTraffic?: () => boolean— Ce process sert-il des requêtes ?onShutdown?: ((listener: () => Promise<void>) => () => void)— S’abonne à l’arrêt du serveur pour la durée d’un appel (rapport partiel denodefony_observe) ; absent hors application.profileRoute?: Pick<IProfileRouteDeps, "getTarget" | "issueTicket" | "closeSession" | "rolesWithin">— Ce quenodefony_profile_routedemande à l’application : son adresse d’écoute, l’ouverture et la fermeture de la session de profilage, la comparaison des rôles de deux comptes.
Types (8)#
BuiltinMcpToolKey#
type BuiltinMcpToolKey = (typeof BUILTIN_MCP_TOOL_KEYS)[number]
Clé d’un outil intégré.
IDevkitAppInfo#
type IDevkitAppInfo = ICardAppInfo
Identité de l’application qui répond.
IDevkitCard#
type IDevkitCard = ICard
Le contrat de la carte est celui du CŒUR — ces noms n’en sont que les alias, conservés parce qu’ils forment la surface publique de ce module.
IDevkitCardInput#
type IDevkitCardInput = ICardInput
L’état minimal dont la carte se dérive — injecté, jamais lu.
IDevkitConfig#
type IDevkitConfig = z.output<typeof devkitConfigSchema>
Config telle que le CODE la lit — défauts appliqués, rien d’optionnel.
IDevkitConfigInput#
type IDevkitConfigInput = z.input<typeof devkitConfigSchema>
Config telle que l’APP l’écrit dans use() — tous les champs optionnels.
IDevkitDoor#
type IDevkitDoor = ICardDoor
Une PORTE : un endroit où aller chercher la suite.
IDevkitVerb#
type IDevkitVerb = ICardVerb
Un VERBE : une commande à lancer (toujours préfixée npx).