export const RULE_TABLE_COLUMNS = { name: '规则名称', category: '业务域', owner: '负责人', scope: '适用场景', version: '修改次数', metric: '修改人' } export const TYPE_META = { rules: { assetType: 'rule', label: '规则', typeLabel: '规则', tableColumns: RULE_TABLE_COLUMNS }, skills: { assetType: 'skill', label: '技能', typeLabel: '技能', createButtonLabel: '技能已接入', hintText: '技能页签已接到真实资产 API,可查看输入、输出、依赖和场景信息。', searchPlaceholder: '搜索技能名称、编码或负责人', showMetricColumn: false, tableColumns: { name: '技能名称', category: '业务域', owner: '负责人', scope: '适用场景', runtime: '输入摘要', version: '当前版本', metric: '' } }, mcp: { assetType: 'mcp', label: 'MCP', typeLabel: 'MCP', createButtonLabel: 'MCP 已接入', hintText: 'MCP 页签已接到真实资产 API,可查看服务地址、鉴权方式、超时和降级策略。', searchPlaceholder: '搜索 MCP 名称、编码或负责人', tableColumns: { name: 'MCP 服务', category: '业务域', owner: '维护人', scope: '适用场景', runtime: '调用地址', version: '当前版本', metric: '超时配置' } }, tasks: { assetType: 'task', label: '任务', typeLabel: '任务', createButtonLabel: '任务已接入', hintText: '任务页签已接到真实资产 API,可查看调度周期、执行 Agent 和最近执行结果。', searchPlaceholder: '搜索任务名称、编码或负责人', tableColumns: { name: '任务名称', category: '业务域', owner: '负责人', scope: '适用场景', runtime: '调度周期', version: '当前版本', metric: '执行 Agent' } } } export const TAB_META = { financialRules: { assetType: 'rule', typeKey: 'rules', label: '财务规则', typeLabel: '财务规则', createButtonLabel: '财务规则已接入', hintText: '仅展示 tag 为“财务规则”的规则资产;未打新 tag 的旧规则已从规则中心隐藏。', searchPlaceholder: '搜索财务规则名称、编码或负责人', tableColumns: RULE_TABLE_COLUMNS, showRuntimeColumn: false, showStatusColumn: false, badgeTone: 'emerald' }, riskRules: { assetType: 'rule', typeKey: 'rules', label: '风险规则', typeLabel: '风险规则', createButtonLabel: '风险规则已接入', hintText: '仅展示平台风险规则;适用场景按差旅、发票、餐饮招待等分类,可用「使用场景」筛选。', searchPlaceholder: '搜索风险规则名称、编码或负责人', tableColumns: RULE_TABLE_COLUMNS, showRuntimeColumn: false, showVersionColumn: false, showStatusColumn: false, badgeTone: 'rose' }, skills: { ...TYPE_META.skills, typeKey: 'skills', badgeTone: 'blue' }, mcp: { ...TYPE_META.mcp, typeKey: 'mcp', badgeTone: 'amber' }, tasks: { ...TYPE_META.tasks, typeKey: 'tasks', badgeTone: 'violet' } } export const STATUS_META = { draft: { label: '草稿中', tone: 'draft' }, review: { label: '待审核', tone: 'warning' }, active: { label: '已上线', tone: 'success' }, disabled: { label: '已停用', tone: 'disabled' } } export const REVIEW_META = { approved: { label: '已通过', tone: 'success' }, pending: { label: '待审核', tone: 'warning' }, rejected: { label: '已驳回', tone: 'danger' } } export const VERSION_STATE_META = { published: { label: '已上线', tone: 'success' }, draft: { label: '草稿', tone: 'draft' }, pending_review: { label: '待审核', tone: 'warning' }, approved: { label: '已通过待上线', tone: 'success' }, rejected: { label: '已驳回', tone: 'danger' }, history: { label: '历史版本', tone: 'disabled' } } export const DOMAIN_LABELS = { expense: '报销', ar: '应收', ap: '应付', knowledge: '知识', system: '系统' } export const SCENARIO_LABELS = { expense: '报销', risk_check: '风险检查', duplicate_expense: '重复报销', explain: '规则解释', invoice_anomaly: '票据异常', travel_policy: '差旅制度', travel_standard: '差旅标准', communication_expense: '通信费报销', expense_standard: '费用标准', accounts_payable: '应付', accounts_receivable: '应收', approval_required: '需审批', query: '查询', summary: '汇总', system: '系统', schedule: '调度', rule_center: '规则中心', review_digest: '待审摘要', aging_summary: '账龄汇总', invoice_validation: '发票验真' } export const DETAIL_TITLES = { rules: { configTitle: '规则元信息', configDesc: '展示规则编码、版本、业务域和当前审核 / 上线状态。', detailTitle: '规则版本说明', detailDesc: '规则正文由 Markdown 驱动,保存后会生成新的版本快照。', outputTitle: '审核与上线', outputDesc: '规则上线受审核状态控制,未审核通过的版本会被后端拦截。', ruleListTitle: '上线要求', checkListTitle: '当前状态', triggerTitle: '适用场景', triggerDesc: '当前规则注册到的业务场景', toolTitle: '关联信息', toolDesc: '规则当前审核、保存和版本快照信息', historyTitle: '版本历史', historyDesc: '最近 5 个规则版本', publishTitle: '上线控制', publishDesc: '正式上线会调用后端激活接口,审核未通过时会被拦截。' }, skills: { configTitle: '技能配置', configDesc: '展示技能编码、输入摘要、版本和业务域。', detailTitle: '技能结构', detailDesc: '按输入、输出和依赖组织技能定义。', outputTitle: '输出契约', outputDesc: '技能详情重点展示输入参数、输出参数和依赖能力。', ruleListTitle: '输出要求', checkListTitle: '当前快照', triggerTitle: '适用场景', triggerDesc: '当前技能注册到的场景标签', toolTitle: '依赖能力', toolDesc: '技能当前依赖的数据库或其他能力', historyTitle: '版本历史', historyDesc: '最近版本记录', publishTitle: '发布状态', publishDesc: '技能当前状态由资产中心统一管理。' }, mcp: { configTitle: 'MCP 连接配置', configDesc: '展示服务地址、超时和调用方式。', detailTitle: '服务协议', detailDesc: '按服务类型、鉴权方式和降级策略组织外部服务信息。', outputTitle: '调用约束', outputDesc: 'MCP 详情重点展示鉴权方式、返回策略和最近调用状态。', ruleListTitle: '调用约束', checkListTitle: '最近状态', triggerTitle: '适用场景', triggerDesc: '当前 MCP 覆盖的业务场景', toolTitle: '运行信息', toolDesc: '结合 AgentRun 中的 ToolCall 还原最近一次调用状态', historyTitle: '版本历史', historyDesc: '最近版本记录', publishTitle: '服务状态', publishDesc: 'MCP 资产已接入规则中心,但真实外部调用仍以后续链路集成为准。' }, tasks: { configTitle: '任务配置', configDesc: '展示调度周期、执行 Agent 和任务编码。', detailTitle: '任务结构', detailDesc: '按调度计划、目标场景和运行结果组织任务信息。', outputTitle: '运行要求', outputDesc: '任务详情重点展示调度 Agent、最近运行结果和运行日志入口。', ruleListTitle: '运行要求', checkListTitle: '最近执行', triggerTitle: '适用场景', triggerDesc: '当前任务覆盖的业务场景', toolTitle: '最近调用', toolDesc: '根据 AgentRun 中的最近执行记录回显任务运行情况', historyTitle: '版本历史', historyDesc: '最近版本记录', publishTitle: '调度状态', publishDesc: '任务资产已接入规则中心,后续 Day 4 运行时会继续消费这些配置。' } } export const STATUS_OPTIONS = [ { value: '', label: '全部状态' }, { value: 'draft', label: '草稿中' }, { value: 'review', label: '待审核' }, { value: 'active', label: '已上线' }, { value: 'disabled', label: '已停用' } ] export const EXPENSE_RULE_BLOCK_PATTERN = /```expense-rule\s*([\s\S]*?)\s*```/i export const RULE_SPREADSHEET_BLOCK_PATTERN = /```rule-spreadsheet\s*([\s\S]*?)\s*```/i export const RULE_TEMPLATE_LABELS = { travel_standard_v1: '差旅标准模板', expense_amount_limit_v1: '金额上限模板', attachment_requirement_v1: '附件要求模板', general_policy_v1: '通用制度模板' } export const RULE_TAB_TAG_ALIASES = { financialRules: new Set(['财务规则', '财务', 'financialrule', 'financialrules', 'financerule', 'financerules', 'financial', 'finance']), riskRules: new Set(['风险规则', '风险', '风控', 'riskrule', 'riskrules', 'risk']) } export const RISK_SCENARIO_OPTIONS = [ { value: '', label: '全部场景' }, { value: '差旅', label: '差旅' }, { value: '发票', label: '发票' }, { value: '餐饮招待', label: '餐饮招待' }, { value: '交通出行', label: '交通出行' }, { value: '办公物料', label: '办公物料' }, { value: '费用科目', label: '费用科目' }, { value: '通用', label: '通用' } ] export const RISK_SCENARIO_VALUES = new Set(RISK_SCENARIO_OPTIONS.map((item) => item.value).filter(Boolean)) export const LEGACY_RISK_SCENARIO_KEYS = new Set([ 'expense', 'risk_check', 'travel', 'meal', 'invoice', 'travel_policy', 'travel_standard', 'attachment_policy', 'scene_policy', 'invoice_anomaly', 'communication_expense', 'expense_standard', 'approval_required' ]) export const SPREADSHEET_DETAIL_MODE = 'spreadsheet' export const JSON_RISK_DETAIL_MODE = 'json_risk' export const PREVIEW_RULE_ID = 'preview-rule-expense-company-travel-expense' export const PREVIEW_RULE_CODE = 'rule.expense.company_travel_expense_reimbursement' export const PREVIEW_RULE_VERSION_SPECS = [ { version: 'v1.2.0', fileName: '公司差旅费报销规则.xlsx', updatedAt: '2026-05-17T09:30:00Z', updatedBy: '王楠', note: '补充城市分级与住宿限额示例。', source: 'preview', isCurrent: true }, { version: 'v1.1.0', fileName: '公司差旅费报销规则-v1.1.0.xlsx', updatedAt: '2026-05-14T15:20:00Z', updatedBy: '顾承宇', note: '新增票据要求与超标审批列。', source: 'preview', isCurrent: false }, { version: 'v1.0.0', fileName: '公司差旅费报销规则-v1.0.0.xlsx', updatedAt: '2026-05-10T11:10:00Z', updatedBy: '系统初始化', note: '首版差旅费报销规则表预览。', source: 'preview', isCurrent: false } ]