/** * `@drama/moderation` 公共面(唯一对外入口,§3 契约)。 * * 内容安全闸:把「判定内容是否安全/合规」封装成与生成解耦、与厂商解耦的注入式 package。 * 对外只暴露 `createModeration`(工厂)、`ModerationError`(结构化错误)、 * `createFakeRules` / `createFakeGuardPort`(测试注入)。 * * 一期能力:敏感词/长度/格式闸(`checkText`)+ 生成链路**前置**安全护栏 * (`guardGeneration`,block 阻断回流)+ 供 `@drama/llm` 注入消费的 `ModerationPort` * (经实例的 `asModerationPort()` 取得)。基础安全类目判定来自注入的 `llmGuardPort`, * 本包不自训/自写分类模型。 * * 边界纪律(架构红线):包内不读 `process.env`、不建任何顶层连接;规则与 Port 全部 * 由 `createModeration` 参数注入。moderation 不 import llm,llm 经注入 Port 调本包(架构 §8)。 * * 二期(分级 + 区域策略)将扩展 `policy`/`region` 的实现而不改本签名。 * * @typedef {import('./moderation.js').Moderation} Moderation * @typedef {import('./moderation.js').CheckTextResult} CheckTextResult * @typedef {import('./guard.js').GuardResult} GuardResult * @typedef {import('./guard.js').GuardPort} GuardPort * @typedef {import('./port.js').ModerationPort} ModerationPort * @typedef {import('./rules-check.js').Rules} Rules */ export { createModeration } from './moderation.js' export { ModerationError } from './errors.js' export { createFakeRules, createFakeGuardPort } from './fake.js'