feat: add ERP agent pet bridge and startup guide
This commit is contained in:
@@ -0,0 +1,504 @@
|
||||
{
|
||||
"schemaVersion": "1.1",
|
||||
"protocolVersion": "1.0",
|
||||
"requestSessionScope": {
|
||||
"field": "sessionScopeToken",
|
||||
"tokenVersion": "v3",
|
||||
"format": "32-lowercase-hex",
|
||||
"requiredMethods": [
|
||||
"capabilities.list",
|
||||
"command.plan",
|
||||
"command.execute"
|
||||
],
|
||||
"bootstrapOptionalMethods": [
|
||||
"health",
|
||||
"context.get"
|
||||
],
|
||||
"boundFields": [
|
||||
"databaseScopeFingerprint",
|
||||
"userId",
|
||||
"userName",
|
||||
"accountBook",
|
||||
"subSystemId",
|
||||
"isAdministrator"
|
||||
],
|
||||
"serverAuthoritativeRecheck": true
|
||||
},
|
||||
"planProjectionFields": [
|
||||
"planId",
|
||||
"commandName",
|
||||
"commandVersion",
|
||||
"moduleCode",
|
||||
"risk",
|
||||
"createdAtUtc",
|
||||
"expiresAtUtc",
|
||||
"valid",
|
||||
"executionAllowed",
|
||||
"inputFingerprint",
|
||||
"outcomeCode",
|
||||
"title",
|
||||
"preview",
|
||||
"data",
|
||||
"warnings"
|
||||
],
|
||||
"trustedBridgeCorrelationId": "contract-correlation-01234567",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "purchase_resolve_to_create",
|
||||
"requestedCommand": "purchase.invoice.resolve",
|
||||
"autoFollowedFrom": "purchase.invoice.resolve",
|
||||
"plan": {
|
||||
"planId": "11111111111111111111111111111111",
|
||||
"commandName": "purchase.invoice.create",
|
||||
"commandVersion": "1.4",
|
||||
"moduleCode": "PURCHASE",
|
||||
"risk": "write",
|
||||
"createdAtUtc": "2026-08-11T08:00:00Z",
|
||||
"expiresAtUtc": "2026-08-11T08:10:00Z",
|
||||
"valid": true,
|
||||
"executionAllowed": true,
|
||||
"inputFingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"outcomeCode": "purchase_create_ready",
|
||||
"title": "采购发票创建预览",
|
||||
"preview": {
|
||||
"供应商": "SUP-1",
|
||||
"发票号码": "INV-CONTRACT-1",
|
||||
"发票日期": "2026-08-11",
|
||||
"币种": "CNY",
|
||||
"不含税金额": 20,
|
||||
"税额": 2.6,
|
||||
"价税合计": 22.6,
|
||||
"来源附件": [
|
||||
"invoice.png (aaaaaaaaaaaa…)"
|
||||
],
|
||||
"明细汇总不含税": 20,
|
||||
"明细汇总税额": 2.6,
|
||||
"明细汇总价税": 22.6,
|
||||
"发票行数": 1,
|
||||
"确定匹配行数": 1,
|
||||
"来源采购单": [
|
||||
"PO-1"
|
||||
],
|
||||
"来源汇率": [
|
||||
1
|
||||
],
|
||||
"重复发票": false
|
||||
},
|
||||
"data": {
|
||||
"outcomeCode": "purchase_create_ready",
|
||||
"title": "采购发票创建预览",
|
||||
"sourceDocumentCount": 1,
|
||||
"sourceDocumentSetSha256": "ffe054fe7ae0cb6dc65c3af9b61d5209f439851db43d0ba5997337df154668eb",
|
||||
"preview": {
|
||||
"供应商": "SUP-1",
|
||||
"发票号码": "INV-CONTRACT-1",
|
||||
"发票日期": "2026-08-11",
|
||||
"币种": "CNY",
|
||||
"不含税金额": 20,
|
||||
"税额": 2.6,
|
||||
"价税合计": 22.6,
|
||||
"来源附件": [
|
||||
"invoice.png (aaaaaaaaaaaa…)"
|
||||
],
|
||||
"明细汇总不含税": 20,
|
||||
"明细汇总税额": 2.6,
|
||||
"明细汇总价税": 22.6,
|
||||
"发票行数": 1,
|
||||
"确定匹配行数": 1,
|
||||
"来源采购单": [
|
||||
"PO-1"
|
||||
],
|
||||
"来源汇率": [
|
||||
1
|
||||
],
|
||||
"重复发票": false
|
||||
},
|
||||
"lineMatches": [
|
||||
{
|
||||
"invoiceLineId": "L1",
|
||||
"materialCode": "MAT-1",
|
||||
"invoiceUnit": "件",
|
||||
"invoiceQuantity": 2,
|
||||
"invoiceUnitPrice": 10,
|
||||
"invoiceTaxRate": 0.13,
|
||||
"invoiceTaxAmount": 2.6,
|
||||
"invoiceLineAmount": 20,
|
||||
"status": "exact",
|
||||
"sourceOrderNumber": "PO-1",
|
||||
"sourceLineId": "S1",
|
||||
"unit": "件",
|
||||
"remainingQuantity": 5,
|
||||
"unitPrice": 10,
|
||||
"taxRate": 0.13,
|
||||
"exchangeRate": 1,
|
||||
"sourceUnit": "件",
|
||||
"sourceRemainingQuantity": 5,
|
||||
"sourceUnitPrice": 10,
|
||||
"sourceTaxRate": 0.13,
|
||||
"sourceExchangeRate": 1,
|
||||
"candidateCount": 1,
|
||||
"issues": []
|
||||
}
|
||||
]
|
||||
},
|
||||
"warnings": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "leave_resolve_to_create",
|
||||
"requestedCommand": "hr.leave.resolve",
|
||||
"autoFollowedFrom": "hr.leave.resolve",
|
||||
"plan": {
|
||||
"planId": "22222222222222222222222222222222",
|
||||
"commandName": "hr.leave.create",
|
||||
"commandVersion": "1.2",
|
||||
"moduleCode": "LEAVE",
|
||||
"risk": "write",
|
||||
"createdAtUtc": "2026-08-11T08:00:00Z",
|
||||
"expiresAtUtc": "2026-08-11T08:10:00Z",
|
||||
"valid": true,
|
||||
"executionAllowed": true,
|
||||
"inputFingerprint": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
||||
"outcomeCode": "leave_create_ready",
|
||||
"title": "请假申请创建预览",
|
||||
"preview": {
|
||||
"员工": "EMP-1",
|
||||
"请假类型": "PERSONAL",
|
||||
"流转类别": "3629",
|
||||
"开始时间": "2026-08-12T13:00:00",
|
||||
"结束时间": "2026-08-12T17:00:00",
|
||||
"核算工时": 4,
|
||||
"原因": "去医院",
|
||||
"创建后提交": false
|
||||
},
|
||||
"data": {
|
||||
"outcomeCode": "leave_create_ready",
|
||||
"title": "请假申请创建预览",
|
||||
"preview": {
|
||||
"员工": "EMP-1",
|
||||
"请假类型": "PERSONAL",
|
||||
"流转类别": "3629",
|
||||
"开始时间": "2026-08-12T13:00:00",
|
||||
"结束时间": "2026-08-12T17:00:00",
|
||||
"核算工时": 4,
|
||||
"原因": "去医院",
|
||||
"创建后提交": false
|
||||
}
|
||||
},
|
||||
"warnings": [
|
||||
"创建和提交是两个独立审计动作,提交前必须再次确认。"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "leave_submit_followup",
|
||||
"requestedCommand": "hr.leave.submit",
|
||||
"autoFollowedFrom": null,
|
||||
"plan": {
|
||||
"planId": "33333333333333333333333333333333",
|
||||
"commandName": "hr.leave.submit",
|
||||
"commandVersion": "1.0",
|
||||
"moduleCode": "LEAVE",
|
||||
"risk": "write",
|
||||
"createdAtUtc": "2026-08-11T08:00:00Z",
|
||||
"expiresAtUtc": "2026-08-11T08:10:00Z",
|
||||
"valid": true,
|
||||
"executionAllowed": true,
|
||||
"inputFingerprint": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
|
||||
"outcomeCode": "leave_submit_ready",
|
||||
"title": "请假申请提交预览",
|
||||
"preview": {
|
||||
"申请编号": "LEAVE-1",
|
||||
"动作": "提交审批"
|
||||
},
|
||||
"data": {
|
||||
"outcomeCode": "leave_submit_ready",
|
||||
"title": "请假申请提交预览",
|
||||
"preview": {
|
||||
"申请编号": "LEAVE-1",
|
||||
"动作": "提交审批"
|
||||
}
|
||||
},
|
||||
"warnings": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "module_diagnose_read_only",
|
||||
"requestedCommand": "module.diagnose",
|
||||
"autoFollowedFrom": null,
|
||||
"plan": {
|
||||
"planId": "44444444444444444444444444444444",
|
||||
"commandName": "module.diagnose",
|
||||
"commandVersion": "1.0",
|
||||
"moduleCode": "PURCHASE",
|
||||
"risk": "read",
|
||||
"createdAtUtc": "2026-08-11T08:00:00Z",
|
||||
"expiresAtUtc": "2026-08-11T08:10:00Z",
|
||||
"valid": true,
|
||||
"executionAllowed": false,
|
||||
"inputFingerprint": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
|
||||
"outcomeCode": "plan_ready",
|
||||
"title": null,
|
||||
"preview": null,
|
||||
"data": {
|
||||
"diagnosis": {
|
||||
"moduleCode": "PURCHASE",
|
||||
"findings": [
|
||||
"bill.master_fields_missing"
|
||||
]
|
||||
}
|
||||
},
|
||||
"warnings": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "module_trace_initialization",
|
||||
"requestedCommand": "module.trace-initialization",
|
||||
"autoFollowedFrom": null,
|
||||
"plan": {
|
||||
"planId": "55555555555555555555555555555555",
|
||||
"commandName": "module.trace-initialization",
|
||||
"commandVersion": "1.2",
|
||||
"moduleCode": "PURCHASE",
|
||||
"risk": "critical",
|
||||
"createdAtUtc": "2026-08-11T08:00:00Z",
|
||||
"expiresAtUtc": "2026-08-11T08:10:00Z",
|
||||
"valid": true,
|
||||
"executionAllowed": true,
|
||||
"inputFingerprint": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
||||
"outcomeCode": "plan_ready",
|
||||
"title": "复现并诊断模块初始化",
|
||||
"preview": {
|
||||
"moduleCode": "PURCHASE",
|
||||
"navigationCode": "NAV-PURCHASE",
|
||||
"moduleName": "采购订单",
|
||||
"alreadyOpen": false,
|
||||
"traceSupported": true,
|
||||
"traceScope": "current_erp_managed_ui_thread",
|
||||
"forceTerminationSupported": false,
|
||||
"maxEvents": 200,
|
||||
"maxDurationSeconds": 20
|
||||
},
|
||||
"data": {
|
||||
"title": "复现并诊断模块初始化",
|
||||
"preview": {
|
||||
"moduleCode": "PURCHASE",
|
||||
"navigationCode": "NAV-PURCHASE",
|
||||
"moduleName": "采购订单",
|
||||
"alreadyOpen": false,
|
||||
"traceSupported": true,
|
||||
"traceScope": "current_erp_managed_ui_thread",
|
||||
"forceTerminationSupported": false,
|
||||
"maxEvents": 200,
|
||||
"maxDurationSeconds": 20
|
||||
},
|
||||
"maxEvents": 200,
|
||||
"maxDurationSeconds": 20,
|
||||
"capturePolicy": "仅当前 ERP 托管 UI 线程;SQL 明细只覆盖 Lskj.Core.SqlHelper,另观察同线程旧日志中的数据库异常分类,不宣称覆盖模块直接 ADO.NET 的 SQL 文本;20 秒只限制 SQL 证据窗口,不会强制终止旧模块初始化;表/字段/过程/参数/调用位置使用会话内别名;不采集参数值或原始异常;不持久化原始 SQL",
|
||||
"staticDiagnosis": {
|
||||
"moduleCode": "PURCHASE",
|
||||
"findings": [
|
||||
"bill.master_fields_missing"
|
||||
]
|
||||
}
|
||||
},
|
||||
"warnings": [
|
||||
"20 秒仅限制 SQL 证据采集窗口,旧版 UI 初始化无法安全强制终止;若模块可能卡死,请先在隔离测试环境复现。"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "dynamic_module_resolve_to_create",
|
||||
"requestedCommand": "module.record.resolve-create",
|
||||
"autoFollowedFrom": "module.record.resolve-create",
|
||||
"plan": {
|
||||
"planId": "77777777777777777777777777777777",
|
||||
"commandName": "module.record.create",
|
||||
"commandVersion": "1.0",
|
||||
"moduleCode": "BASE-DYNAMIC",
|
||||
"risk": "write",
|
||||
"createdAtUtc": "2026-08-13T08:00:00Z",
|
||||
"expiresAtUtc": "2026-08-13T08:10:00Z",
|
||||
"valid": true,
|
||||
"executionAllowed": true,
|
||||
"inputFingerprint": "abababababababababababababababababababababababababababababababab",
|
||||
"outcomeCode": "module_create_ready",
|
||||
"title": "低代码模块新增确认",
|
||||
"preview": {
|
||||
"masterValues": [
|
||||
{
|
||||
"parameterId": "m0123456789abcdef",
|
||||
"label": "客户名称",
|
||||
"valueType": "string",
|
||||
"value": "朗速动态客户"
|
||||
}
|
||||
],
|
||||
"detailRows": [
|
||||
{
|
||||
"rowNumber": 1,
|
||||
"values": [
|
||||
{
|
||||
"parameterId": "d0123456789abcdef",
|
||||
"label": "明细备注",
|
||||
"valueType": "string",
|
||||
"value": "第一行"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"data": {
|
||||
"outcomeCode": "module_create_ready",
|
||||
"title": "低代码模块新增确认",
|
||||
"preview": {
|
||||
"masterValues": [
|
||||
{
|
||||
"parameterId": "m0123456789abcdef",
|
||||
"label": "客户名称",
|
||||
"valueType": "string",
|
||||
"value": "朗速动态客户"
|
||||
}
|
||||
],
|
||||
"detailRows": [
|
||||
{
|
||||
"rowNumber": 1,
|
||||
"values": [
|
||||
{
|
||||
"parameterId": "d0123456789abcdef",
|
||||
"label": "明细备注",
|
||||
"valueType": "string",
|
||||
"value": "第一行"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"metadataTrust": "untrusted_display_data",
|
||||
"parameterPreview": {
|
||||
"masterValues": [
|
||||
{
|
||||
"parameterId": "m0123456789abcdef",
|
||||
"label": "客户名称",
|
||||
"valueType": "string",
|
||||
"value": "朗速动态客户"
|
||||
}
|
||||
],
|
||||
"detailRows": [
|
||||
{
|
||||
"rowNumber": 1,
|
||||
"values": [
|
||||
{
|
||||
"parameterId": "d0123456789abcdef",
|
||||
"label": "明细备注",
|
||||
"valueType": "string",
|
||||
"value": "第一行"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"issues": [],
|
||||
"lookupResolutionVerified": false,
|
||||
"genericWriteExecutionAvailable": true,
|
||||
"contractFingerprint": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
||||
"adapter": {
|
||||
"id": "customer.dynamic.write",
|
||||
"version": "1.0",
|
||||
"evidenceSha256": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
|
||||
}
|
||||
},
|
||||
"warnings": [
|
||||
"确认后将调用客户验收的固定事务入口;执行前会重新读取权限、低代码配置和适配器就绪证据。"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "dynamic_module_resolve_to_update",
|
||||
"requestedCommand": "module.record.resolve-update",
|
||||
"autoFollowedFrom": "module.record.resolve-update",
|
||||
"plan": {
|
||||
"planId": "88888888888888888888888888888888",
|
||||
"commandName": "module.record.update",
|
||||
"commandVersion": "1.0",
|
||||
"moduleCode": "BASE-UPDATE",
|
||||
"risk": "write",
|
||||
"createdAtUtc": "2026-08-13T09:00:00Z",
|
||||
"expiresAtUtc": "2026-08-13T09:10:00Z",
|
||||
"valid": true,
|
||||
"executionAllowed": true,
|
||||
"inputFingerprint": "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd",
|
||||
"outcomeCode": "dynamic_module_update_ready",
|
||||
"title": "基础档案并发修改确认",
|
||||
"preview": {
|
||||
"recordDisplay": "客户 C-001 / 朗速客户",
|
||||
"changes": [
|
||||
{
|
||||
"parameterId": "m0123456789abcdef",
|
||||
"label": "信用额度",
|
||||
"valueType": "number",
|
||||
"previousValue": "100.00",
|
||||
"newValue": "120.50"
|
||||
}
|
||||
]
|
||||
},
|
||||
"data": {
|
||||
"outcomeCode": "dynamic_module_update_ready",
|
||||
"title": "基础档案并发修改确认",
|
||||
"preview": {
|
||||
"recordDisplay": "客户 C-001 / 朗速客户",
|
||||
"changes": [
|
||||
{
|
||||
"parameterId": "m0123456789abcdef",
|
||||
"label": "信用额度",
|
||||
"valueType": "number",
|
||||
"previousValue": "100.00",
|
||||
"newValue": "120.50"
|
||||
}
|
||||
]
|
||||
},
|
||||
"adapter": {
|
||||
"id": "customer.dynamic.update",
|
||||
"version": "1.0",
|
||||
"evidenceSha256": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
|
||||
}
|
||||
},
|
||||
"warnings": [
|
||||
"确认后事务会锁定目标记录并比较数据库版本与快照指纹;冲突时不覆盖、不重试写入,必须重新读取记录。"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "module_navigate",
|
||||
"requestedCommand": "module.navigate",
|
||||
"autoFollowedFrom": null,
|
||||
"plan": {
|
||||
"planId": "66666666666666666666666666666666",
|
||||
"commandName": "module.navigate",
|
||||
"commandVersion": "1.0",
|
||||
"moduleCode": "LEAVE",
|
||||
"risk": "navigate",
|
||||
"createdAtUtc": "2026-08-11T08:00:00Z",
|
||||
"expiresAtUtc": "2026-08-11T08:10:00Z",
|
||||
"valid": true,
|
||||
"executionAllowed": true,
|
||||
"inputFingerprint": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
|
||||
"outcomeCode": "plan_ready",
|
||||
"title": "打开 ERP 模块",
|
||||
"preview": {
|
||||
"moduleCode": "LEAVE",
|
||||
"navigationCode": "NAV-LEAVE",
|
||||
"moduleName": "请假申请"
|
||||
},
|
||||
"data": {
|
||||
"title": "打开 ERP 模块",
|
||||
"preview": {
|
||||
"moduleCode": "LEAVE",
|
||||
"navigationCode": "NAV-LEAVE",
|
||||
"moduleName": "请假申请"
|
||||
}
|
||||
},
|
||||
"warnings": []
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user