/**
 * ADR-180 Rule 9 (2026-05-02 amendment) — description hygiene.
 *
 * Two filter lists govern what's allowed in tool descriptions:
 *
 *   PUBLIC_FORBIDDEN_KEYWORDS: broad. Bans data-source names + concept
 *   vocabulary so the unauthenticated lobby surface (anon `tools/list`,
 *   directory tools) gives no architectural intel to callers who haven't
 *   authenticated yet. Used by `public-filter.ts` to sanitise descriptions
 *   before they cross the lobby boundary.
 *
 *   AUTHENTICATED_FORBIDDEN_KEYWORDS: narrow. Bans only infra / vendor /
 *   library names whose presence is always wrong regardless of audience —
 *   they leak hosting + integration choices that aren't load-bearing for
 *   any agent. Used by the lint at `scripts/lint-mcp-tools.ts` to enforce
 *   on every tool description, authenticated or not.
 *
 * Concept vocabulary that legitimately helps the agent (Tier A/B, cascade,
 * "→ then:", MCP Apps) stays permitted on the authenticated surface — those
 * are user-facing concepts the agent can reason about, not implementation
 * leakage. Data-source names (MLC, ISNI, MusicBrainz, etc.) similarly stay
 * permitted on the authenticated surface because the agent benefits from
 * knowing which sources resolved a query.
 *
 * The two lists are explicitly disjoint by design — sanitisation for the
 * lobby surface uses the union (PUBLIC ∪ AUTHENTICATED) since everything
 * banned for authenticated surfaces is also banned for unauthenticated.
 */
/**
 * Banned on the unauthenticated lobby surface (also banned on authenticated
 * via union — see PUBLIC_FORBIDDEN_KEYWORDS_FULL below).
 *
 * Notably absent: "Spotify" and "YouTube" are public product surface that
 * customers see in tool names like `pica_import_youtube_link` — hiding
 * them in lobby descriptions would gut the utility-signal of those tools
 * without protecting any algorithm.
 */
export declare const PUBLIC_FORBIDDEN_KEYWORDS: readonly string[];
/**
 * Banned on every tool description, authenticated or not. These are infra /
 * vendor / library names whose presence in a tool description is always
 * implementation leakage — agents derive zero useful signal from knowing
 * the email vendor, audio analysis library, or hosting platform.
 *
 * Stripe and Telegram are intentionally NOT banned — those are user-facing
 * product surfaces (Stripe Checkout, Telegram reminders) the agent must
 * reference in tool descriptions to drive correct behaviour.
 */
export declare const AUTHENTICATED_FORBIDDEN_KEYWORDS: readonly string[];
/**
 * The full lobby filter is the union of both lists — anything banned on
 * authenticated surfaces is also banned on unauthenticated.
 */
export declare const PUBLIC_FORBIDDEN_KEYWORDS_FULL: readonly string[];
/**
 * Pattern matching any ADR reference (`ADR-123`, `ADR-1`, `ADR-9999` ...).
 * The `\b` word boundaries prevent false matches on substrings like
 * `LADRADR-`. ADR references are forbidden in every tool description on
 * every surface.
 */
export declare const ADR_REFERENCE_REGEX: RegExp;
//# sourceMappingURL=forbidden-keywords.d.ts.map