index.js
1.55 KB
/**
* `@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'