417 lines
12 KiB
JSON
417 lines
12 KiB
JSON
{
|
||
"schemaVersion": 1,
|
||
"skill": "verify-invoice-default",
|
||
"actions": [
|
||
{
|
||
"id": "prereview-invoice",
|
||
"label": "票据合规预审",
|
||
"description": "录入发票结构化字段(可由发票照片识别后粘贴)与报销上下文,执行四步合规审核,生成红黄绿灯清单与《初审意见单》。",
|
||
"placements": ["agent", "toolbar"],
|
||
"executionProfile": "sync",
|
||
"interaction": "form",
|
||
"bind": {
|
||
"tables": ["invoice_records"]
|
||
},
|
||
"entrypoint": {
|
||
"type": "cli",
|
||
"command": "prereview",
|
||
"args": [
|
||
"--invoice-json", "{{invoiceJson}}",
|
||
"--purpose", "{{purpose}}",
|
||
"--project-no", "{{projectNo}}",
|
||
"--trip-start", "{{tripStart}}",
|
||
"--trip-end", "{{tripEnd}}",
|
||
"--trip-city", "{{tripCity}}",
|
||
"--staff-title", "{{staffTitle}}"
|
||
]
|
||
},
|
||
"inputSchema": {
|
||
"type": "object",
|
||
"properties": {
|
||
"invoiceJson": {
|
||
"type": "string",
|
||
"title": "发票字段 JSON",
|
||
"description": "单张发票对象或同批数组,字段如 invoiceNumber、issueDate、amount、buyerTaxNo、sellerName、expenseCategory、city、days。",
|
||
"display_type": "textarea"
|
||
},
|
||
"purpose": {
|
||
"type": "string",
|
||
"title": "报销事由",
|
||
"description": "本次报销的事由文字。可选。"
|
||
},
|
||
"projectNo": {
|
||
"type": "string",
|
||
"title": "预算项目编号",
|
||
"description": "系统带入的预算项目编号。可选。"
|
||
},
|
||
"tripStart": {
|
||
"type": "string",
|
||
"title": "出差开始日",
|
||
"description": "差旅审批的出发日期,格式 YYYY-MM-DD。差旅报销建议填写。",
|
||
"display_type": "date"
|
||
},
|
||
"tripEnd": {
|
||
"type": "string",
|
||
"title": "出差结束日",
|
||
"description": "差旅审批的返回日期,格式 YYYY-MM-DD。可选。",
|
||
"display_type": "date"
|
||
},
|
||
"tripCity": {
|
||
"type": "string",
|
||
"title": "目的地城市",
|
||
"description": "出差目的地,用于匹配住宿费城市等级。可选。"
|
||
},
|
||
"staffTitle": {
|
||
"type": "string",
|
||
"title": "职级",
|
||
"description": "报销人职级档位。",
|
||
"enum": ["副高及以上", "中级及以下"]
|
||
}
|
||
},
|
||
"required": ["invoiceJson"]
|
||
},
|
||
"hostEffects": {
|
||
"onSuccess": ["reloadTable"]
|
||
}
|
||
},
|
||
{
|
||
"id": "prereview-batch-input",
|
||
"label": "批量预审(input 目录)",
|
||
"description": "将多份发票字段 JSON 文件放入技能 input 目录后一键批量预审;任务中心可见进度。",
|
||
"placements": ["agent"],
|
||
"executionProfile": "async",
|
||
"entrypoint": {
|
||
"type": "cli",
|
||
"command": "prereview-batch-input",
|
||
"args": []
|
||
}
|
||
},
|
||
{
|
||
"id": "render-html",
|
||
"label": "生成初审意见单",
|
||
"description": "重建《初审意见单》HTML 报告并写入技能数据目录 html/(缺省重建最近 10 份)。",
|
||
"placements": ["toolbar", "skill-detail", "agent"],
|
||
"executionProfile": "sync",
|
||
"interaction": "direct",
|
||
"bind": {
|
||
"tables": ["prereview_reports"]
|
||
},
|
||
"entrypoint": {
|
||
"type": "cli",
|
||
"command": "render-html",
|
||
"args": []
|
||
},
|
||
"steps": [
|
||
{
|
||
"when": "afterSuccess",
|
||
"do": "refreshCatalog"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"id": "mark-verified",
|
||
"label": "回填查验结果",
|
||
"description": "在全国增值税发票查验平台核验后,回填该发票的人工查验结果;回填“不符”则结论升级为驳回。",
|
||
"placements": ["row"],
|
||
"executionProfile": "sync",
|
||
"interaction": "form",
|
||
"bind": {
|
||
"tables": ["prereview_reports"],
|
||
"inputMapping": {
|
||
"reportId": "{{id}}"
|
||
}
|
||
},
|
||
"entrypoint": {
|
||
"type": "cli",
|
||
"command": "mark-verified",
|
||
"args": [
|
||
"--report-id", "{{reportId}}",
|
||
"--result", "{{result}}",
|
||
"--note", "{{note}}"
|
||
]
|
||
},
|
||
"inputSchema": {
|
||
"type": "object",
|
||
"properties": {
|
||
"reportId": {
|
||
"type": "number",
|
||
"title": "报告编号",
|
||
"description": "初审意见单编号(由所在行预填)。"
|
||
},
|
||
"result": {
|
||
"type": "string",
|
||
"title": "查验结果",
|
||
"description": "在全国增值税发票查验平台的核验结论。",
|
||
"enum": ["pass", "fail"]
|
||
},
|
||
"note": {
|
||
"type": "string",
|
||
"title": "查验备注",
|
||
"description": "备注说明。可选。"
|
||
}
|
||
},
|
||
"required": ["reportId", "result"]
|
||
},
|
||
"hostEffects": {
|
||
"onSuccess": ["reloadTable"]
|
||
}
|
||
},
|
||
{
|
||
"id": "list-reports",
|
||
"label": "查询初审历史",
|
||
"description": "查看最近的票据预审结论列表。",
|
||
"placements": ["agent"],
|
||
"executionProfile": "sync",
|
||
"entrypoint": {
|
||
"type": "cli",
|
||
"command": "list-reports",
|
||
"args": [
|
||
"--limit", "{{limit}}",
|
||
"--verdict", "{{verdict}}"
|
||
]
|
||
},
|
||
"inputSchema": {
|
||
"type": "object",
|
||
"properties": {
|
||
"limit": {
|
||
"type": "number",
|
||
"title": "条数",
|
||
"description": "返回条数,默认 20。可选。"
|
||
},
|
||
"verdict": {
|
||
"type": "string",
|
||
"title": "结论筛选",
|
||
"description": "通过 / 待确认 / 驳回。可选。",
|
||
"enum": ["通过", "待确认", "驳回"]
|
||
}
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"id": "view-standards",
|
||
"label": "查看经费标准",
|
||
"description": "查看住宿费上限与交通席位等级标准(城市等级 × 职级)。",
|
||
"placements": ["agent", "skill-detail"],
|
||
"executionProfile": "sync",
|
||
"entrypoint": {
|
||
"type": "cli",
|
||
"command": "view-standards",
|
||
"args": [
|
||
"--category", "{{category}}"
|
||
]
|
||
},
|
||
"inputSchema": {
|
||
"type": "object",
|
||
"properties": {
|
||
"category": {
|
||
"type": "string",
|
||
"title": "费用类别",
|
||
"description": "住宿费 / 交通费。可选。",
|
||
"enum": ["住宿费", "交通费"]
|
||
}
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"id": "set-standard",
|
||
"label": "更新经费标准",
|
||
"description": "按(费用类别、城市等级、职级)更新标准值;不存在时新增。",
|
||
"placements": ["row"],
|
||
"executionProfile": "sync",
|
||
"interaction": "form",
|
||
"bind": {
|
||
"tables": ["expense_standards"],
|
||
"inputMapping": {
|
||
"category": "{{category}}",
|
||
"cityTier": "{{city_tier}}",
|
||
"staffTitle": "{{staff_title}}"
|
||
}
|
||
},
|
||
"entrypoint": {
|
||
"type": "cli",
|
||
"command": "set-standard",
|
||
"args": [
|
||
"--category", "{{category}}",
|
||
"--city-tier", "{{cityTier}}",
|
||
"--staff-title", "{{staffTitle}}",
|
||
"--max-amount", "{{maxAmount}}",
|
||
"--unit", "{{unit}}",
|
||
"--basis-doc", "{{basisDoc}}",
|
||
"--clause", "{{clause}}"
|
||
]
|
||
},
|
||
"inputSchema": {
|
||
"type": "object",
|
||
"properties": {
|
||
"category": {
|
||
"type": "string",
|
||
"title": "费用类别",
|
||
"description": "住宿费 / 交通费(由所在行预填)。"
|
||
},
|
||
"cityTier": {
|
||
"type": "string",
|
||
"title": "城市等级",
|
||
"description": "一线城市 / 省会及计划单列市 / 其他地区 / 通用(由所在行预填)。"
|
||
},
|
||
"staffTitle": {
|
||
"type": "string",
|
||
"title": "职级",
|
||
"description": "副高及以上 / 中级及以下(由所在行预填)。"
|
||
},
|
||
"maxAmount": {
|
||
"type": "number",
|
||
"title": "标准值",
|
||
"description": "新的标准值(住宿费为元/人/天)。"
|
||
},
|
||
"unit": {
|
||
"type": "string",
|
||
"title": "单位",
|
||
"description": "如 元/人/天。可选。"
|
||
},
|
||
"basisDoc": {
|
||
"type": "string",
|
||
"title": "依据文件",
|
||
"description": "标准出处文件名。可选。"
|
||
},
|
||
"clause": {
|
||
"type": "string",
|
||
"title": "条款",
|
||
"description": "标准出处条款号。可选。"
|
||
}
|
||
},
|
||
"required": ["category", "cityTier", "staffTitle", "maxAmount"]
|
||
},
|
||
"hostEffects": {
|
||
"onSuccess": ["reloadTable"]
|
||
}
|
||
},
|
||
{
|
||
"id": "add-whitelist",
|
||
"label": "新增税号白名单",
|
||
"description": "向准予报销的购买方税号白名单新增一条记录。",
|
||
"placements": ["toolbar"],
|
||
"executionProfile": "sync",
|
||
"interaction": "form",
|
||
"bind": {
|
||
"tables": ["taxid_whitelist"]
|
||
},
|
||
"entrypoint": {
|
||
"type": "cli",
|
||
"command": "add-whitelist",
|
||
"args": [
|
||
"--tax-no", "{{taxNo}}",
|
||
"--name", "{{orgName}}",
|
||
"--note", "{{note}}"
|
||
]
|
||
},
|
||
"inputSchema": {
|
||
"type": "object",
|
||
"properties": {
|
||
"taxNo": {
|
||
"type": "string",
|
||
"title": "税号",
|
||
"description": "购买方统一社会信用代码。"
|
||
},
|
||
"orgName": {
|
||
"type": "string",
|
||
"title": "单位名称",
|
||
"description": "税号对应单位全称。"
|
||
},
|
||
"note": {
|
||
"type": "string",
|
||
"title": "备注",
|
||
"description": "维护说明。可选。"
|
||
}
|
||
},
|
||
"required": ["taxNo", "orgName"]
|
||
},
|
||
"hostEffects": {
|
||
"onSuccess": ["reloadTable"]
|
||
}
|
||
},
|
||
{
|
||
"id": "remove-whitelist",
|
||
"label": "删除税号",
|
||
"description": "从税号白名单中删除该条记录。",
|
||
"placements": ["row"],
|
||
"executionProfile": "sync",
|
||
"interaction": "form",
|
||
"bind": {
|
||
"tables": ["taxid_whitelist"],
|
||
"inputMapping": {
|
||
"taxNo": "{{tax_no}}"
|
||
}
|
||
},
|
||
"entrypoint": {
|
||
"type": "cli",
|
||
"command": "remove-whitelist",
|
||
"args": [
|
||
"--tax-no", "{{taxNo}}"
|
||
]
|
||
},
|
||
"inputSchema": {
|
||
"type": "object",
|
||
"properties": {
|
||
"taxNo": {
|
||
"type": "string",
|
||
"title": "税号",
|
||
"description": "要删除的税号(由所在行预填)。"
|
||
}
|
||
},
|
||
"required": ["taxNo"]
|
||
},
|
||
"hostEffects": {
|
||
"onSuccess": ["reloadTable"]
|
||
}
|
||
},
|
||
{
|
||
"id": "stats",
|
||
"label": "预审统计",
|
||
"description": "查看预审总量、通过/待确认/驳回分布与集中开票商家。",
|
||
"placements": ["agent", "skill-detail"],
|
||
"executionProfile": "sync",
|
||
"entrypoint": {
|
||
"type": "cli",
|
||
"command": "stats",
|
||
"args": []
|
||
}
|
||
},
|
||
{
|
||
"id": "health",
|
||
"label": "运行检查",
|
||
"description": "检查技能运行环境并返回结构化结果。",
|
||
"placements": ["skill-detail"],
|
||
"executionProfile": "sync",
|
||
"entrypoint": {
|
||
"type": "cli",
|
||
"command": "health",
|
||
"args": []
|
||
}
|
||
},
|
||
{
|
||
"id": "version",
|
||
"label": "查看版本",
|
||
"description": "返回技能版本和机器标识。",
|
||
"placements": ["skill-detail"],
|
||
"executionProfile": "sync",
|
||
"entrypoint": {
|
||
"type": "cli",
|
||
"command": "version",
|
||
"args": []
|
||
}
|
||
},
|
||
{
|
||
"id": "config-path",
|
||
"label": "查看配置位置",
|
||
"description": "返回用户 .env 与模板路径。",
|
||
"placements": ["skill-detail"],
|
||
"executionProfile": "sync",
|
||
"entrypoint": {
|
||
"type": "cli",
|
||
"command": "config-path",
|
||
"args": []
|
||
}
|
||
}
|
||
]
|
||
}
|