/** * What a new agent may be called — ONE rule, shared by the dialog and the * route (SAP-2981). * * The dialog validates as you type so the refusal arrives before the click, and * `POST /api/agents/scaffold` refuses again on its own findings because a * disabled button is not a permission system. Those are two guards, and two * guards written twice become two different rules: a name the field accepts and * the server rejects reads as a broken app, and a name the server would accept * but the field greys out reads as an arbitrary one. So the rule lives here and * both sides import it. * * It is deliberately a folder-name rule, not a naming-convention one. The agent * gets a directory inside the project, and everything refused below is refused * because of what it would do to that directory — not because of house style. */ /** * Why this name cannot be a new agent's folder, or null when it can. * * The message is shown verbatim, so each sentence says what to do rather than * what a regex thinks. The leading-dot refusal is the one that is not about * path escape: a dotted directory is skipped by the agent scan, so `.notes` * would scaffold successfully and then never appear in the rail — the exact * "did it work?" failure the create endpoint exists to end. */ export declare function refuseAgentName(name: unknown): string | null; //# sourceMappingURL=agent-name.d.ts.map