openxiangda 2.62.1 → 2.63.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/dist/browser/AuthoritativeSelector.d.ts +4 -3
  2. package/dist/browser/AuthoritativeSelector.d.ts.map +1 -1
  3. package/dist/browser/AuthoritativeSelector.js +25 -16
  4. package/dist/browser/AuthoritativeSelector.js.map +1 -1
  5. package/dist/browser/admin-contributions.d.ts +26 -0
  6. package/dist/browser/admin-contributions.d.ts.map +1 -1
  7. package/dist/browser/admin-contributions.js +30 -0
  8. package/dist/browser/admin-contributions.js.map +1 -1
  9. package/dist/browser/components/platform-fields/AttachmentFileList.d.ts +2 -1
  10. package/dist/browser/components/platform-fields/AttachmentFileList.d.ts.map +1 -1
  11. package/dist/browser/components/platform-fields/AttachmentFileList.js +3 -3
  12. package/dist/browser/components/platform-fields/AttachmentFileList.js.map +1 -1
  13. package/dist/browser/components/platform-fields/ResourceReferenceField.d.ts +4 -2
  14. package/dist/browser/components/platform-fields/ResourceReferenceField.d.ts.map +1 -1
  15. package/dist/browser/components/platform-fields/ResourceReferenceField.js +4 -4
  16. package/dist/browser/components/platform-fields/ResourceReferenceField.js.map +1 -1
  17. package/dist/browser/components/platform-fields/address-value.d.ts +2 -12
  18. package/dist/browser/components/platform-fields/address-value.d.ts.map +1 -1
  19. package/dist/browser/components/platform-fields/address-value.js +1 -69
  20. package/dist/browser/components/platform-fields/address-value.js.map +1 -1
  21. package/dist/browser/components/platform-fields/cascade-value.d.ts +2 -5
  22. package/dist/browser/components/platform-fields/cascade-value.d.ts.map +1 -1
  23. package/dist/browser/components/platform-fields/cascade-value.js +1 -46
  24. package/dist/browser/components/platform-fields/cascade-value.js.map +1 -1
  25. package/dist/browser/components/platform-fields/resource-query.d.ts +3 -19
  26. package/dist/browser/components/platform-fields/resource-query.d.ts.map +1 -1
  27. package/dist/browser/components/platform-fields/resource-query.js +2 -153
  28. package/dist/browser/components/platform-fields/resource-query.js.map +1 -1
  29. package/dist/browser/components/resource/GeneratedResourceCrud.d.ts +393 -2
  30. package/dist/browser/components/resource/GeneratedResourceCrud.d.ts.map +1 -1
  31. package/dist/browser/components/resource/GeneratedResourceCrud.js +148 -71
  32. package/dist/browser/components/resource/GeneratedResourceCrud.js.map +1 -1
  33. package/dist/browser/components/resource/GeneratedResourceForm.d.ts.map +1 -1
  34. package/dist/browser/components/resource/GeneratedResourceForm.js +7 -1
  35. package/dist/browser/components/resource/GeneratedResourceForm.js.map +1 -1
  36. package/dist/browser/components/resource/RecordDetailFrame.d.ts +4 -1
  37. package/dist/browser/components/resource/RecordDetailFrame.d.ts.map +1 -1
  38. package/dist/browser/components/resource/RecordDetailFrame.js +4 -2
  39. package/dist/browser/components/resource/RecordDetailFrame.js.map +1 -1
  40. package/dist/browser/components/resource/SurfaceFields.d.ts +4 -1
  41. package/dist/browser/components/resource/SurfaceFields.d.ts.map +1 -1
  42. package/dist/browser/components/resource/SurfaceFields.js +8 -8
  43. package/dist/browser/components/resource/SurfaceFields.js.map +1 -1
  44. package/dist/browser/components/resource/useResourceFormDrafts.d.ts.map +1 -1
  45. package/dist/browser/components/workflow/StandardWorkflowPages.d.ts +5 -2
  46. package/dist/browser/components/workflow/StandardWorkflowPages.d.ts.map +1 -1
  47. package/dist/browser/components/workflow/StandardWorkflowPages.js +107 -64
  48. package/dist/browser/components/workflow/StandardWorkflowPages.js.map +1 -1
  49. package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.d.ts.map +1 -1
  50. package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.js +13 -8
  51. package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.js.map +1 -1
  52. package/dist/browser/components/workflow/WorkflowConditionConfigurationEditor.d.ts +18 -0
  53. package/dist/browser/components/workflow/WorkflowConditionConfigurationEditor.d.ts.map +1 -0
  54. package/dist/browser/components/workflow/WorkflowConditionConfigurationEditor.js +29 -0
  55. package/dist/browser/components/workflow/WorkflowConditionConfigurationEditor.js.map +1 -0
  56. package/dist/browser/components/workflow/WorkflowConditionEditor.d.ts +9 -0
  57. package/dist/browser/components/workflow/WorkflowConditionEditor.d.ts.map +1 -0
  58. package/dist/browser/components/workflow/WorkflowConditionEditor.js +33 -0
  59. package/dist/browser/components/workflow/WorkflowConditionEditor.js.map +1 -0
  60. package/dist/browser/components/workflow/WorkflowDesigner.d.ts +14 -0
  61. package/dist/browser/components/workflow/WorkflowDesigner.d.ts.map +1 -0
  62. package/dist/browser/components/workflow/WorkflowDesigner.js +510 -0
  63. package/dist/browser/components/workflow/WorkflowDesigner.js.map +1 -0
  64. package/dist/browser/components/workflow/WorkflowDesignerAssistant.d.ts +15 -0
  65. package/dist/browser/components/workflow/WorkflowDesignerAssistant.d.ts.map +1 -0
  66. package/dist/browser/components/workflow/WorkflowDesignerAssistant.js +75 -0
  67. package/dist/browser/components/workflow/WorkflowDesignerAssistant.js.map +1 -0
  68. package/dist/browser/components/workflow/WorkflowDiagram.d.ts +8 -2
  69. package/dist/browser/components/workflow/WorkflowDiagram.d.ts.map +1 -1
  70. package/dist/browser/components/workflow/WorkflowDiagram.js +6 -6
  71. package/dist/browser/components/workflow/WorkflowDiagram.js.map +1 -1
  72. package/dist/browser/components/workflow/WorkflowDraftHandlingEditor.d.ts +13 -0
  73. package/dist/browser/components/workflow/WorkflowDraftHandlingEditor.d.ts.map +1 -0
  74. package/dist/browser/components/workflow/WorkflowDraftHandlingEditor.js +20 -0
  75. package/dist/browser/components/workflow/WorkflowDraftHandlingEditor.js.map +1 -0
  76. package/dist/browser/components/workflow/WorkflowFlowCanvas.d.ts +7 -0
  77. package/dist/browser/components/workflow/WorkflowFlowCanvas.d.ts.map +1 -1
  78. package/dist/browser/components/workflow/WorkflowFlowCanvas.js +84 -23
  79. package/dist/browser/components/workflow/WorkflowFlowCanvas.js.map +1 -1
  80. package/dist/browser/components/workflow/WorkflowNodeCard.d.ts +2 -1
  81. package/dist/browser/components/workflow/WorkflowNodeCard.d.ts.map +1 -1
  82. package/dist/browser/components/workflow/WorkflowNodeCard.js +12 -10
  83. package/dist/browser/components/workflow/WorkflowNodeCard.js.map +1 -1
  84. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.d.ts +13 -2
  85. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.d.ts.map +1 -1
  86. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js +70 -23
  87. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js.map +1 -1
  88. package/dist/browser/components/workflow/WorkflowNotificationEditor.d.ts +20 -0
  89. package/dist/browser/components/workflow/WorkflowNotificationEditor.d.ts.map +1 -0
  90. package/dist/browser/components/workflow/WorkflowNotificationEditor.js +18 -0
  91. package/dist/browser/components/workflow/WorkflowNotificationEditor.js.map +1 -0
  92. package/dist/browser/components/workflow/WorkflowParallelConfigurationEditor.d.ts +10 -0
  93. package/dist/browser/components/workflow/WorkflowParallelConfigurationEditor.d.ts.map +1 -0
  94. package/dist/browser/components/workflow/WorkflowParallelConfigurationEditor.js +24 -0
  95. package/dist/browser/components/workflow/WorkflowParallelConfigurationEditor.js.map +1 -0
  96. package/dist/browser/components/workflow/WorkflowReminderEditor.d.ts +7 -0
  97. package/dist/browser/components/workflow/WorkflowReminderEditor.d.ts.map +1 -0
  98. package/dist/browser/components/workflow/WorkflowReminderEditor.js +7 -0
  99. package/dist/browser/components/workflow/WorkflowReminderEditor.js.map +1 -0
  100. package/dist/browser/components/workflow/WorkflowReturnPolicyEditor.d.ts +8 -0
  101. package/dist/browser/components/workflow/WorkflowReturnPolicyEditor.d.ts.map +1 -0
  102. package/dist/browser/components/workflow/WorkflowReturnPolicyEditor.js +33 -0
  103. package/dist/browser/components/workflow/WorkflowReturnPolicyEditor.js.map +1 -0
  104. package/dist/browser/components/workflow/WorkflowTaskForm.d.ts +1 -4
  105. package/dist/browser/components/workflow/WorkflowTaskForm.d.ts.map +1 -1
  106. package/dist/browser/components/workflow/WorkflowTaskForm.js +5 -6
  107. package/dist/browser/components/workflow/WorkflowTaskForm.js.map +1 -1
  108. package/dist/browser/components/workflow/workflow-approval-presentation.d.ts +13 -0
  109. package/dist/browser/components/workflow/workflow-approval-presentation.d.ts.map +1 -0
  110. package/dist/browser/components/workflow/workflow-approval-presentation.js +21 -0
  111. package/dist/browser/components/workflow/workflow-approval-presentation.js.map +1 -0
  112. package/dist/browser/components/workflow/workflow-designer-presentation.d.ts +13 -0
  113. package/dist/browser/components/workflow/workflow-designer-presentation.d.ts.map +1 -0
  114. package/dist/browser/components/workflow/workflow-designer-presentation.js +69 -0
  115. package/dist/browser/components/workflow/workflow-designer-presentation.js.map +1 -0
  116. package/dist/browser/components/workflow/workflow-flow-layout.d.ts +11 -2
  117. package/dist/browser/components/workflow/workflow-flow-layout.d.ts.map +1 -1
  118. package/dist/browser/components/workflow/workflow-flow-layout.js +44 -9
  119. package/dist/browser/components/workflow/workflow-flow-layout.js.map +1 -1
  120. package/dist/browser/components/workflow/workflow-operation-layout.d.ts +6 -0
  121. package/dist/browser/components/workflow/workflow-operation-layout.d.ts.map +1 -0
  122. package/dist/browser/components/workflow/workflow-operation-layout.js +17 -0
  123. package/dist/browser/components/workflow/workflow-operation-layout.js.map +1 -0
  124. package/dist/browser/platform-client.d.ts +71 -3
  125. package/dist/browser/platform-client.d.ts.map +1 -1
  126. package/dist/browser/platform-client.js +54 -4
  127. package/dist/browser/platform-client.js.map +1 -1
  128. package/dist/browser/record-detail.css +4 -3
  129. package/dist/browser/styles.css +355 -1
  130. package/dist/browser/workflow-approval.css +205 -0
  131. package/dist/browser/workflow-operation-input.d.ts.map +1 -1
  132. package/dist/browser/workflow-operation-input.js +1 -0
  133. package/dist/browser/workflow-operation-input.js.map +1 -1
  134. package/dist/core.d.ts +1 -0
  135. package/dist/core.d.ts.map +1 -1
  136. package/dist/core.js +1 -0
  137. package/dist/core.js.map +1 -1
  138. package/dist/react.d.ts +1 -0
  139. package/dist/react.d.ts.map +1 -1
  140. package/dist/react.js +1 -0
  141. package/dist/react.js.map +1 -1
  142. package/dist/resource.d.ts +22 -0
  143. package/dist/resource.d.ts.map +1 -0
  144. package/dist/resource.js +18 -0
  145. package/dist/resource.js.map +1 -0
  146. package/documentation/AGENTS.md +1 -1
  147. package/documentation/application-templates.md +37 -0
  148. package/documentation/field-components.md +10 -1
  149. package/documentation/frontend.md +14 -4
  150. package/documentation/getting-started.md +9 -7
  151. package/documentation/manifest.json +13 -7
  152. package/documentation/reference/cli.md +2 -0
  153. package/documentation/reference/mcp.md +238 -0
  154. package/documentation/workflow-events.md +33 -0
  155. package/package.json +41 -25
  156. package/releases/2.63.0.json +45 -0
  157. package/releases/2.63.1.json +46 -0
  158. package/skills/manifest.json +1 -1
  159. package/skills/openxiangda-v2/SKILL.md +7 -7
  160. package/skills/openxiangda-v2/references/application-templates.md +37 -0
  161. package/skills/openxiangda-v2/references/cli.md +2 -0
  162. package/skills/openxiangda-v2/references/field-components.md +10 -1
  163. package/skills/openxiangda-v2/references/frontend.md +14 -4
  164. package/skills/openxiangda-v2/references/getting-started.md +9 -7
  165. package/skills/openxiangda-v2/references/mcp.md +238 -0
  166. package/skills/openxiangda-v2/references/workflow-events.md +33 -0
  167. package/releases/2.20.1.json +0 -30
  168. package/releases/2.20.2.json +0 -30
  169. package/releases/2.20.3.json +0 -29
  170. package/releases/2.20.4.json +0 -30
  171. package/releases/2.31.5.json +0 -33
  172. package/releases/2.59.3.json +0 -36
  173. package/releases/2.60.0.json +0 -38
  174. package/releases/2.61.0.json +0 -39
  175. package/releases/2.61.1.json +0 -37
  176. package/releases/2.61.2.json +0 -32
  177. package/releases/2.61.3.json +0 -33
  178. package/releases/2.62.0.json +0 -40
  179. package/releases/2.62.1.json +0 -34
@@ -59,6 +59,25 @@ MCP 使用项目锁定的根包;在客户端配置下列 stdio 启动参数,
59
59
  }
60
60
  ```
61
61
 
62
+ ## template_list
63
+
64
+ 发现源码模板。列出业务场景、模块依赖、四类源码外壳和主题;创建使用 CLI,不执行远端操作。
65
+
66
+ - 只读:是
67
+ - 可替换文件或改变远端状态:否
68
+ - 幂等:否
69
+
70
+ 输入参数:
71
+
72
+ ```json
73
+ {
74
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
75
+ "type": "object",
76
+ "properties": {},
77
+ "additionalProperties": false
78
+ }
79
+ ```
80
+
62
81
  ## workspace_context
63
82
 
64
83
  查看工作区。首先读取当前项目、工具链版本和绑定,不运行构建或创建远端对象。
@@ -1356,6 +1375,225 @@ MCP 使用项目锁定的根包;在客户端配置下列 stdio 启动参数,
1356
1375
  }
1357
1376
  ```
1358
1377
 
1378
+ ## workflow_sync
1379
+
1380
+ 同步流程到目标环境。按目标流程修订号显式同步,默认同时更新在途和新申请;复用发布及版本适用规则。保留指定人员边界。
1381
+
1382
+ - 只读:否
1383
+ - 可替换文件或改变远端状态:是
1384
+ - 幂等:是
1385
+
1386
+ 输入参数:
1387
+
1388
+ ```json
1389
+ {
1390
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1391
+ "type": "object",
1392
+ "properties": {
1393
+ "workflowCode": {
1394
+ "type": "string",
1395
+ "minLength": 1,
1396
+ "maxLength": 128
1397
+ },
1398
+ "fromEnvironment": {
1399
+ "type": "string",
1400
+ "enum": [
1401
+ "test",
1402
+ "production"
1403
+ ]
1404
+ },
1405
+ "toEnvironment": {
1406
+ "type": "string",
1407
+ "enum": [
1408
+ "test",
1409
+ "production"
1410
+ ]
1411
+ },
1412
+ "expectedSourceHeadRevision": {
1413
+ "type": "integer",
1414
+ "minimum": 1,
1415
+ "maximum": 9007199254740991
1416
+ },
1417
+ "expectedTargetHeadRevision": {
1418
+ "type": "integer",
1419
+ "minimum": 1,
1420
+ "maximum": 9007199254740991
1421
+ },
1422
+ "operationId": {
1423
+ "type": "string",
1424
+ "minLength": 1,
1425
+ "maxLength": 128
1426
+ },
1427
+ "reason": {
1428
+ "type": "string",
1429
+ "minLength": 1,
1430
+ "maxLength": 1000
1431
+ },
1432
+ "scope": {
1433
+ "type": "string",
1434
+ "enum": [
1435
+ "running_and_new",
1436
+ "new_only"
1437
+ ]
1438
+ },
1439
+ "acknowledgeExceptions": {
1440
+ "type": "boolean"
1441
+ },
1442
+ "copyHandlingDefaults": {
1443
+ "type": "boolean"
1444
+ }
1445
+ },
1446
+ "required": [
1447
+ "workflowCode",
1448
+ "fromEnvironment",
1449
+ "toEnvironment",
1450
+ "expectedSourceHeadRevision",
1451
+ "expectedTargetHeadRevision",
1452
+ "operationId",
1453
+ "reason"
1454
+ ],
1455
+ "additionalProperties": false
1456
+ }
1457
+ ```
1458
+
1459
+ ## workflow_export
1460
+
1461
+ 导出流程到工作区。只读导出环境中的规范定义、绑定和办理设置摘要;不包含运行记录或环境内部标识。
1462
+
1463
+ - 只读:否
1464
+ - 可替换文件或改变远端状态:否
1465
+ - 幂等:否
1466
+
1467
+ 输入参数:
1468
+
1469
+ ```json
1470
+ {
1471
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1472
+ "type": "object",
1473
+ "properties": {
1474
+ "environment": {
1475
+ "default": "test",
1476
+ "description": "目标环境;默认 test,production 必须明确选择",
1477
+ "type": "string",
1478
+ "enum": [
1479
+ "test",
1480
+ "production"
1481
+ ]
1482
+ },
1483
+ "workflowCode": {
1484
+ "type": "string",
1485
+ "minLength": 1
1486
+ },
1487
+ "out": {
1488
+ "type": "string",
1489
+ "minLength": 1
1490
+ }
1491
+ },
1492
+ "required": [
1493
+ "workflowCode",
1494
+ "out"
1495
+ ],
1496
+ "additionalProperties": false
1497
+ }
1498
+ ```
1499
+
1500
+ ## workflow_import
1501
+
1502
+ 把流程导入源码。验证代码能力和摘要后修改工作区显式流程声明,保留人员配置边界。
1503
+
1504
+ - 只读:否
1505
+ - 可替换文件或改变远端状态:是
1506
+ - 幂等:否
1507
+
1508
+ 输入参数:
1509
+
1510
+ ```json
1511
+ {
1512
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1513
+ "type": "object",
1514
+ "properties": {
1515
+ "path": {
1516
+ "type": "string",
1517
+ "minLength": 1
1518
+ },
1519
+ "adoptHandlingDefaults": {
1520
+ "default": false,
1521
+ "type": "boolean"
1522
+ }
1523
+ },
1524
+ "required": [
1525
+ "path"
1526
+ ],
1527
+ "additionalProperties": false
1528
+ }
1529
+ ```
1530
+
1531
+ ## workflow_plan_registration
1532
+
1533
+ 规划流程版本登记。服务器只读查询已有摘要和下一版本数字;write 只写源码版本数字,不写环境观察。
1534
+
1535
+ - 只读:否
1536
+ - 可替换文件或改变远端状态:否
1537
+ - 幂等:否
1538
+
1539
+ 输入参数:
1540
+
1541
+ ```json
1542
+ {
1543
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1544
+ "type": "object",
1545
+ "properties": {
1546
+ "environment": {
1547
+ "default": "test",
1548
+ "description": "目标环境;默认 test,production 必须明确选择",
1549
+ "type": "string",
1550
+ "enum": [
1551
+ "test",
1552
+ "production"
1553
+ ]
1554
+ },
1555
+ "write": {
1556
+ "default": false,
1557
+ "type": "boolean"
1558
+ }
1559
+ },
1560
+ "additionalProperties": false
1561
+ }
1562
+ ```
1563
+
1564
+ ## workflow_status
1565
+
1566
+ 查看流程源码同步状态。比较源声明、导入基线和环境摘要,显示待导回源码、待部署或冲突及未启用版本数量。
1567
+
1568
+ - 只读:是
1569
+ - 可替换文件或改变远端状态:否
1570
+ - 幂等:否
1571
+
1572
+ 输入参数:
1573
+
1574
+ ```json
1575
+ {
1576
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1577
+ "type": "object",
1578
+ "properties": {
1579
+ "environment": {
1580
+ "default": "test",
1581
+ "description": "目标环境;默认 test,production 必须明确选择",
1582
+ "type": "string",
1583
+ "enum": [
1584
+ "test",
1585
+ "production"
1586
+ ]
1587
+ },
1588
+ "workflowCode": {
1589
+ "type": "string",
1590
+ "minLength": 1
1591
+ }
1592
+ },
1593
+ "additionalProperties": false
1594
+ }
1595
+ ```
1596
+
1359
1597
  ## workflow_node_configurations
1360
1598
 
1361
1599
  查看流程有效参数。修改已部署流程前,读取管理员维护的节点配置。已有任务和后续节点进入使用各自适用版本。
@@ -1212,3 +1212,36 @@ subject update和来源guards提交实际改变的派生字段;普通补填仍
1212
1212
  不改变字段授权、审批参数或流程版本;不提供该选项的应用保持既有行为。
1213
1213
 
1214
1214
  `commandHandlers.resubmit` 仅绑定固定 correction 节点的业务重校验。普通 `return_review` 任务继续由 Kernel 标准 `resubmit` 办理:Surface 不返回 correction operationCode,审批人不需要起草提交 capability。无需增加 `taskKinds` 字段、改动已有定义版本或重建在途实例;直接对普通退回任务调用 correction 业务动作仍被拒绝。
1215
+
1216
+ ## 画布、源码与测试环境同步
1217
+
1218
+ 管理员可以在画布修改节点和条件并直接发布。发布默认更新在途申请与新申请,当前已经进入的任务继续保留其人员、操作按钮、页面与字段权限;后续流转使用新版本。只让新申请生效、保留个别在途申请属于显式例外。
1219
+
1220
+ 应用源码与画布共同引用同一份不可变定义和绑定登记。画布修改后,后续仅改页面或后端的应用部署会保留兼容的画布版本。两边都改了流程而基线不一致时,部署返回 `WORKFLOW_SOURCE_DIVERGED`,需要先把正式环境流程导回源码:
1221
+
1222
+ ```sh
1223
+ pnpm openxiangda workflow export request-review --environment production --out platform/workflows/request-review.bundle.json
1224
+ pnpm openxiangda workflow import platform/workflows/request-review.bundle.json --to source
1225
+ pnpm openxiangda workflow plan-registration --environment test --write
1226
+ pnpm openxiangda workflow status --environment test
1227
+ ```
1228
+
1229
+ `export` 包含规范定义、绑定、任务页面与代码步骤契约、办理设置摘要;不含申请、待办、审批日志、密钥或环境内部标识。源码本来声明的固定用户标识会保留;管理员实际指定人员的覆盖只导出数量。`import` 只改 `openxiangda.config.ts` 中显式的 `workflows` 声明及 `platform/workflows/<code>.lock.json`,保留其他代码。新增或变化的代码步骤、页面契约需要先由开发者补齐;缺少这些契约的导入会在写文件前拒绝。
1230
+
1231
+ 可加 `--adopt-handling-defaults` 把办理模式与按钮开关、文案作为源码默认值。它保留原有必需动作,不把管理员指定人员复制成源码默认值。导入的摘要基线写在源码 activation 的 `sourceBase`;来源环境与修订号只保留在审计锁文件,不进入密封应用制品。锁文件与导出的规范文档可能包含合法源码用户引用,应按项目访问权限管理。
1232
+
1233
+ `plan-registration` 是服务器只读查询,返回相同内容已有的版本号或下一整数;`--write` 只把数字写入本机源码。最终准备仍检查编号冲突、内容冲突和跳号。准备成功但后续部署失败的版本保留为未启用的不可变登记,相同制品可复用这些数字;不会删除或重排。`status` 显示 `in_sync`、`behind`、`ahead`、`diverged`、`not_active` 和未启用登记数量。它没有远端写入。首次导入之前,状态比较使用目标环境当前应用版本的源码声明作为基线;跨环境导入的来源修订不会冒充目标环境基线。
1234
+
1235
+ 如果只希望把正式环境的流程规则同步到已有测试环境,可先读取两边的 `status`,记录实际流程 Head 修订号,再显式执行同步:
1236
+
1237
+ ```sh
1238
+ pnpm openxiangda workflow sync request-review --from production --to test \
1239
+ --expected-source-head 14 --expected-target-head 3 \
1240
+ --operation-id workflow-sync-20261012-01 --reason '同步正式环境流程到测试'
1241
+ ```
1242
+
1243
+ 示例修订号必须替换成实际读取值。源和目标必须属于同一应用且均有已启用流程。同步检查目标现有页面、代码步骤、角色与固定人员引用,复用源版本,并通过正常发布与在途适用规则生效。默认同时更新在途和新申请;`--new-only` 只更新新申请。存在不兼容在途申请时,在确认预览结果后加 `--acknowledge-exceptions`,这些申请继续保留原版本。
1244
+
1245
+ `--copy-handling-defaults` 可复制办理模式、按钮和角色覆盖;两边的指定人员覆盖都保持环境所有。源环境不被修改。同步后的目标画布草稿若基线已经过时,需要重读或合并,不能覆盖新的 Head。请求不确定时,保留相同操作标识、两个修订号和完整参数重试;不要换标识重做。CLI 与 MCP 共用这些权限、校验、幂等和发布入口。
1246
+
1247
+ 部署前记录目标流程修订号,激活前再次核对。期间若有人发布了画布,激活返回 `WORKFLOW_SOURCE_HEAD_CHANGED`,应用 Head 与流程 Head 在同一事务回滚;已准备的不可变登记保留。同步成功、源码检查成功、包发布与真实审批验收分别核对。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openxiangda",
3
- "version": "2.62.1",
3
+ "version": "2.63.1",
4
4
  "description": "OpenXiangda 2.0 的统一命令、应用 SDK、MCP 与中文 AI 技能资料。",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -52,7 +52,11 @@
52
52
  "types": "./dist/testing.d.ts",
53
53
  "import": "./dist/testing.js"
54
54
  },
55
- "./package.json": "./package.json"
55
+ "./package.json": "./package.json",
56
+ "./resource": {
57
+ "types": "./dist/resource.d.ts",
58
+ "import": "./dist/resource.js"
59
+ }
56
60
  },
57
61
  "bin": {
58
62
  "openxiangda": "./bin/run.js"
@@ -87,13 +91,13 @@
87
91
  "dayjs": "1.11.18",
88
92
  "docx-preview": "0.3.7",
89
93
  "elkjs": "0.12.0",
90
- "openxiangda-cli": "2.8.13",
91
- "openxiangda-contracts": "2.78.0",
92
- "openxiangda-devkit-core": "2.59.0",
94
+ "openxiangda-cli": "2.9.1",
95
+ "openxiangda-contracts": "2.79.1",
96
+ "openxiangda-devkit-core": "2.60.1",
93
97
  "openxiangda-legacy": "npm:openxiangda@1.0.269",
94
- "openxiangda-mcp": "2.1.9",
95
- "openxiangda-nest": "2.18.0",
96
- "openxiangda-skill-kit": "2.3.100",
98
+ "openxiangda-mcp": "2.2.1",
99
+ "openxiangda-nest": "2.18.2",
100
+ "openxiangda-skill-kit": "2.3.102",
97
101
  "xlsx": "https://github.com/1377385356/openxiangda/releases/download/vendor-mirror/xlsx-0.20.3.tgz"
98
102
  },
99
103
  "peerDependencies": {
@@ -159,37 +163,49 @@
159
163
  },
160
164
  "openxiangdaRelease": {
161
165
  "schemaVersion": "openxiangda.release-notes/v1",
162
- "version": "2.62.1",
166
+ "version": "2.63.1",
163
167
  "status": "reviewed",
164
- "title": "兼容非 HTTPS 私有入口的浏览器幂等操作",
165
- "summary": "修复私有 HTTP 入口缺少 crypto.randomUUID 时工作流节点配置、路由和其他浏览器操作无法生成幂等标识的问题,统一使用 Web Crypto getRandomValues 回退生成 UUID。",
166
- "newFeatures": [],
168
+ "title": "流程设计、独立办理与公开契约配套发行",
169
+ "summary": "正式发行已评审的流程设计、办理节点、共享数据保存、结构化并行、提醒通知和流程源码同步能力,提供可编辑应用模板、资源引用读取上下文及只读 AI 回执核对,同时修复首次导入前的源基线比较和配置写入边界。公开 SDK 与 contracts 2.79.1 使用同一冻结分发。",
170
+ "newFeatures": [
171
+ "流程设计、变量和目标目录、管理员配置、设计提案及历史实例接管共用规范定义与纯校验规则。",
172
+ "独立办理与补正节点支持明确完成动作、意见要求、共享数据保存、退回策略、持久提醒、平台通知和主管链规则。",
173
+ "结构化 parallel/join 节点支持有界独立分支、分支位置证明及发布校验,保留任务进入时的权威事实。",
174
+ "流程源码导出、导入、版本注册和环境同步使用源摘要及目标版本守卫,保留准备版本历史。",
175
+ "可编辑模板覆盖后台、PC、移动端和登录外观,资源页控制器、来源摘要及组合校验共用标准边界。",
176
+ "资源引用筛选使用独立读取意图;普通关联编辑提供记录 id/revision 和实际编辑上下文,由平台合并权威绑定。",
177
+ "AI 核对通过只读 GET/read 查询原幂等键的提交回执,不重新执行业务命令。"
178
+ ],
167
179
  "fixes": [
168
- "工作流节点配置保存不再依赖安全上下文专属的 crypto.randomUUID,HTTP 预发入口可以正常提交并保留原操作 ID 重试。",
169
- "统一修复浏览器端管理、工作流、资源批量、文件和草稿操作的 UUID 生成,避免同类私有 HTTP 部署故障。"
180
+ "首次导入前按目标应用声明比较流程源状态,忽略其他环境观察,复用规范摘要、校验源锁并将写入限定于应用导出的配置。",
181
+ "并行分支卡片居中且条件开关保持单行,审批布局继续保留权限、CAS、幂等和未知结果恢复。",
182
+ "新增流程规则使用正式公开 contracts 新版本,不在已公开旧版本号下私有添加 API。",
183
+ "封包清单正确检查 template/list 命令,参考候选仓库支持显式任务代理访问官方上游。"
170
184
  ],
171
185
  "affectedUsers": [
172
- "通过 HTTP 私有地址访问 OpenXiangda 管理后台或应用内工作流管理页面的用户。",
173
- "使用工作流节点配置、路由、委托、恢复、资源批量和文件草稿等浏览器幂等操作的应用。"
186
+ "使用流程设计、独立办理、共享保存、提醒通知、流程源同步或历史实例接管的 OpenXiangda 2.0 平台和应用。",
187
+ "使用可编辑模板、资源引用字段或只读 AI 结果核对的 2.0 工作区。"
174
188
  ],
175
189
  "upgradeSteps": [
176
- "平台管理后台和应用统一升级到 openxiangda 2.62.1 与配套 CLI 2.8.13,重新生成封存七包。",
177
- "部署后用 HTTP 预发入口保存一个工作流节点描述,确认后台 configuration.revision/history 有一次写入。",
178
- "继续保留原请求 ID 语义,若结果未知只重试相同请求,不新建幂等键。"
190
+ "先部署与 contracts 2.79.1 实际纯规则摘要一致的平台;服务器使用官方公开 tarball 并核对 SRI。",
191
+ "完整工作区分发升级到 openxiangda 2.63.1,按锁文件安装并刷新资料及 MCP 连接。",
192
+ "保留原应用、数据、任务、流程版本和幂等标识,正常 check/deploy 核对实际能力与 validatorDigest。",
193
+ "按真实角色验证设计、保存、办理完成、退回、通知收件人及关联字段读写,再执行原晋级流程。"
179
194
  ],
180
195
  "knownLimitations": [
181
- "浏览器仍需要 Web Crypto getRandomValues;极旧浏览器完全没有 Web Crypto 时会明确报错,不回退到可预测的 Math.random。",
182
- "包版本升级和平台部署不替代真实角色权限、CAS 冲突和业务配置验收。"
196
+ "新增读取上下文和流程契约需要配套平台先升级,修改摘要不能代替真实兼容性。",
197
+ "包测试和模板外观不代替真实角色、通知、实例接管及业务数据读回验收。",
198
+ "事件回执租约对象归属和 Worker 原子效果仍为独立 PLT-040 候选,本次不包含未整合改动。"
183
199
  ],
184
200
  "compatibility": {
185
201
  "generation": "v2",
186
202
  "node": ">=24",
187
- "platform": "browser Web Crypto getRandomValues",
188
- "v1": "独立1.x维护包不变"
203
+ "platform": "contracts 2.79.1 exact native validator and matching workflow/resource contexts",
204
+ "v1": "独立 1.x 维护分发不变"
189
205
  },
190
206
  "issues": [],
191
- "sha256": "e818f70adf8c607af8a45465bfc67fee0fcb082102f4e973435b18b51525dd5b",
192
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.62.1"
207
+ "sha256": "364565fc1ab2b4a1db89328b684ca7f5d1b261ad882e00e5da7c1687e5be7861",
208
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.63.1"
193
209
  },
194
210
  "scripts": {
195
211
  "build": "node ../../scripts/prune-package-dist.mjs && tsc -p tsconfig.json && node scripts/copy-assets.mjs",
@@ -0,0 +1,45 @@
1
+ {
2
+ "schemaVersion": "openxiangda.release-notes/v1",
3
+ "version": "2.63.0",
4
+ "status": "reviewed",
5
+ "title": "Workflow design, handling nodes and editable application templates",
6
+ "summary": "Publish the reviewed mainline workflow designer and handling capabilities, shared-record Save, structured parallel branches and guarded workflow source synchronisation. Add editable templates, resource reference read/update contexts and read-only AI command reconciliation. The platform must use the same public contracts 2.79.0 pure compiler as the SDK.",
7
+ "newFeatures": [
8
+ "Canonical workflow designer definitions, target/variable catalogs, administration, proposals and instance adoption share the same pure validation rules.",
9
+ "Independent handling and correction nodes support explicit completion actions, opinion requirements, shared-record Save, return policies, durable reminders, platform notifications and supervisor-chain assignments.",
10
+ "Paired parallel/join nodes have bounded disjoint branches, branch-scoped position proofs and publication validation while retaining immutable task-entry authority.",
11
+ "Workflow source export/import, read-only version registration plans and environment synchronisation use digest and target-head guards and preserve prepared version history.",
12
+ "Editable application templates cover administration, PC, mobile and login frames, with shared resource-page controllers, source digests and composition validation.",
13
+ "Resource reference filtering has an independent read intent; ordinary edits supply saved-record id/revision and actual edits for authoritative server-side merge.",
14
+ "AI reconciliation binds a read-only GET/read operation to the original command receipt instead of replaying a business mutation."
15
+ ],
16
+ "fixes": [
17
+ "Give the new workflow pure-rule APIs a fresh public contracts version so platforms need not privately add exports under an already published semver.",
18
+ "Correct canvas branch selection, outline hierarchy and approval action presentation while retaining permissions, CAS, idempotency and unknown-result recovery.",
19
+ "Export standard resource query, cascade and address helpers from shared contracts so browser and platform consumers use the same query semantics."
20
+ ],
21
+ "affectedUsers": [
22
+ "OpenXiangda V2 platforms and applications using workflow design, independent handling, shared Save, reminders, notifications or instance adoption.",
23
+ "V2 workspaces using editable template composition, resource reference fields or read-only AI result reconciliation."
24
+ ],
25
+ "upgradeSteps": [
26
+ "Deploy a platform matching the actual contracts 2.79.0 native validator first. Server contracts must come from the official published tarball with verified SRI.",
27
+ "Upgrade the complete workspace distribution to public openxiangda 2.63.0, install the lockfile and refresh project documentation and MCP sessions.",
28
+ "Preserve application, record, task, workflow-version and idempotency identities. Run normal check/deploy preflight against the actual platform capabilities and validator digest.",
29
+ "Verify workflow design, shared Save, handling completion, return paths, notification recipients and reference reads/updates with real roles before environment promotion."
30
+ ],
31
+ "knownLimitations": [
32
+ "New reference contexts and workflow contracts require the matching platform to be deployed first; declaring a different digest does not establish compatibility.",
33
+ "Template appearance and package regressions do not replace real-role, notification, instance-adoption and business-data acceptance.",
34
+ "The separate event-receipt lease-ownership and worker-effect candidates are not included in this public release."
35
+ ],
36
+ "compatibility": {
37
+ "generation": "v2",
38
+ "node": ">=24",
39
+ "platform": "contracts 2.79.0 exact native validator and matching workflow/resource contexts",
40
+ "v1": "Independent 1.x maintenance distribution is unchanged"
41
+ },
42
+ "issues": [],
43
+ "sha256": "ef4279a6f846a604d68dbd1adc2473203ffef4287e2dc74b51aa17727a7397b5",
44
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.63.0"
45
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "schemaVersion": "openxiangda.release-notes/v1",
3
+ "version": "2.63.1",
4
+ "status": "reviewed",
5
+ "title": "流程设计、独立办理与公开契约配套发行",
6
+ "summary": "正式发行已评审的流程设计、办理节点、共享数据保存、结构化并行、提醒通知和流程源码同步能力,提供可编辑应用模板、资源引用读取上下文及只读 AI 回执核对,同时修复首次导入前的源基线比较和配置写入边界。公开 SDK 与 contracts 2.79.1 使用同一冻结分发。",
7
+ "newFeatures": [
8
+ "流程设计、变量和目标目录、管理员配置、设计提案及历史实例接管共用规范定义与纯校验规则。",
9
+ "独立办理与补正节点支持明确完成动作、意见要求、共享数据保存、退回策略、持久提醒、平台通知和主管链规则。",
10
+ "结构化 parallel/join 节点支持有界独立分支、分支位置证明及发布校验,保留任务进入时的权威事实。",
11
+ "流程源码导出、导入、版本注册和环境同步使用源摘要及目标版本守卫,保留准备版本历史。",
12
+ "可编辑模板覆盖后台、PC、移动端和登录外观,资源页控制器、来源摘要及组合校验共用标准边界。",
13
+ "资源引用筛选使用独立读取意图;普通关联编辑提供记录 id/revision 和实际编辑上下文,由平台合并权威绑定。",
14
+ "AI 核对通过只读 GET/read 查询原幂等键的提交回执,不重新执行业务命令。"
15
+ ],
16
+ "fixes": [
17
+ "首次导入前按目标应用声明比较流程源状态,忽略其他环境观察,复用规范摘要、校验源锁并将写入限定于应用导出的配置。",
18
+ "并行分支卡片居中且条件开关保持单行,审批布局继续保留权限、CAS、幂等和未知结果恢复。",
19
+ "新增流程规则使用正式公开 contracts 新版本,不在已公开旧版本号下私有添加 API。",
20
+ "封包清单正确检查 template/list 命令,参考候选仓库支持显式任务代理访问官方上游。"
21
+ ],
22
+ "affectedUsers": [
23
+ "使用流程设计、独立办理、共享保存、提醒通知、流程源同步或历史实例接管的 OpenXiangda 2.0 平台和应用。",
24
+ "使用可编辑模板、资源引用字段或只读 AI 结果核对的 2.0 工作区。"
25
+ ],
26
+ "upgradeSteps": [
27
+ "先部署与 contracts 2.79.1 实际纯规则摘要一致的平台;服务器使用官方公开 tarball 并核对 SRI。",
28
+ "完整工作区分发升级到 openxiangda 2.63.1,按锁文件安装并刷新资料及 MCP 连接。",
29
+ "保留原应用、数据、任务、流程版本和幂等标识,正常 check/deploy 核对实际能力与 validatorDigest。",
30
+ "按真实角色验证设计、保存、办理完成、退回、通知收件人及关联字段读写,再执行原晋级流程。"
31
+ ],
32
+ "knownLimitations": [
33
+ "新增读取上下文和流程契约需要配套平台先升级,修改摘要不能代替真实兼容性。",
34
+ "包测试和模板外观不代替真实角色、通知、实例接管及业务数据读回验收。",
35
+ "事件回执租约对象归属和 Worker 原子效果仍为独立 PLT-040 候选,本次不包含未整合改动。"
36
+ ],
37
+ "compatibility": {
38
+ "generation": "v2",
39
+ "node": ">=24",
40
+ "platform": "contracts 2.79.1 exact native validator and matching workflow/resource contexts",
41
+ "v1": "独立 1.x 维护分发不变"
42
+ },
43
+ "issues": [],
44
+ "sha256": "364565fc1ab2b4a1db89328b684ca7f5d1b261ad882e00e5da7c1687e5be7861",
45
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.63.1"
46
+ }
@@ -4,7 +4,7 @@
4
4
  {
5
5
  "name": "openxiangda-v2",
6
6
  "description": "使用 OpenXiangda 2.0 从模糊业务想法、已有资料或具体变更出发,通过对话发现模块、完成详细产品设计,由当前 AI Agent 按需用 Image 2.5 等图片能力形成视觉参考,直接实现真实页面并在浏览器修正,再检查和交付应用;维护 1.x 应用时使用对应的 1.x 技能。",
7
- "sha256": "8f4e119b269e737dcae990bf348d0cbc7628323cf5c2dd35ec04a6e386fada69"
7
+ "sha256": "471e1b87af83dee03b037fef3fae6b63337ed851d234a23180305c9092eca169"
8
8
  }
9
9
  ]
10
10
  }
@@ -7,11 +7,11 @@ description: 使用 OpenXiangda 2.0 从模糊业务想法、已有资料或具
7
7
 
8
8
  ## 应用结构基线(必须遵守)
9
9
 
10
- 每个业务应用默认先建立并保留标准管理后台。管理后台是应用骨架,承载资源模型、表单、数据列表、详情/编辑、权限和流程入口;AI 必须先从后台完成数据与契约,再实现用户端体验。默认提供标准 Shell;需要定制后台外观时使用 `ui.admin.shell` 或局部插槽,保留平台后台路由、授权和显式业务菜单。
10
+ 有管理任务时选择后台源码模板;PC 用户端、移动用户端和登录外观分别选择布局与风格。先读取 [源码模板与业务场景](references/application-templates.md) 或 template list / MCP template_list,结合已确认业务选择初始化模块。已获开发与创建授权时直接执行,模板选择不增加确认步骤。
11
11
 
12
- Agent 按页面归属优化布局、视觉和交互:后台通过默认 Shell 或 `ui.admin` 扩展复用平台导航事实、字段行为和权限;用户端 PC 与移动端按真实任务分别设计,并通过平台 runtime/Data API 读取后台数据。图片参考不定义交互、权限或验收。不得用图片、单页 HTML、iframe 或独立假后台冒充管理后台,也不得在用户端复制后台权限和导航状态。
12
+ 应用拥有外壳与页面源码,可修改、替换或重构。通过 ui.admin.shell 保持唯一后台,通过 resourcePages 贡献替换资源页面,从 openxiangda/resource 组合列表块与控制器。平台继续拥有路由、身份、授权、数据和登录行为;不复制这些权威。既有应用保留 SDK fallback,不强制换模板;没有管理任务的应用可不添加后台。
13
13
 
14
- 设计、实现和发布验收必须分别核验管理后台入口、表单、数据列表、流程入口,以及用户端 PC/移动端入口。缺少标准管理后台的应用结构不完整,不能发布。
14
+ 分别验证实际使用的后台、表单、列表及用户 PC/移动入口。图片只作为视觉参考,不代表运行或业务验收。
15
15
 
16
16
  ## 先理解任务
17
17
 
@@ -40,10 +40,10 @@ AI 接到新应用、页面或改版任务时,在同一个 OpenXiangda 工作
40
40
  未创建工作区时使用本 Skill 随根包发布的精确版本:
41
41
 
42
42
  ```bash
43
- pnpm dlx openxiangda@2.62.1 auth status --cwd <应用目录> --base-url <平台地址> --json
44
- pnpm dlx openxiangda@2.62.1 login --cwd <应用目录> --base-url <平台地址>
45
- pnpm dlx openxiangda@2.62.1 create <应用目录> --base-url <同一平台地址>
46
- pnpm dlx openxiangda@2.62.1 skill install --force
43
+ pnpm dlx openxiangda@2.63.1 auth status --cwd <应用目录> --base-url <平台地址> --json
44
+ pnpm dlx openxiangda@2.63.1 login --cwd <应用目录> --base-url <平台地址>
45
+ pnpm dlx openxiangda@2.63.1 create <应用目录> --base-url <同一平台地址>
46
+ pnpm dlx openxiangda@2.63.1 skill install --force
47
47
  ```
48
48
 
49
49
  创建前把产品要求的目标平台明确带入命令,不从旧登录态推断站点。已有工作区从原绑定恢复,平台不一致时先解决登录与目标,不改 link 文件跨站创建。
@@ -0,0 +1,37 @@
1
+ # 源码模板与业务场景
2
+
3
+ ## 选择与创建 {#create}
4
+
5
+ 模板是应用源码的初始化,不是不可编辑的 SDK 页面。后台、PC 用户端、移动用户端和登录外观分别选择布局;公共登录行为继续由 SDK 提供。既有 builtin:application 保持基础空应用。
6
+
7
+ 先运行 `openxiangda template list --json`,或读取 MCP template_list。已确定业务和授权创建时直接初始化,无需为模板选择增加确认。
8
+
9
+ ```bash
10
+ openxiangda create ./visitor-app --base-url <测试平台> --scenario visitor
11
+ openxiangda create ./records-app --base-url <测试平台> --scenario crud --style graphite-blue
12
+ openxiangda create ./visitor-app --base-url <测试平台> --scenario visitor --admin topbar --pc workbench --mobile task-list --login centered
13
+ ```
14
+
15
+ with/without 接受逗号分隔模块。未知场景、布局、风格、模块及缺失依赖在物化前报错。访客默认包含 time-slot、pass-and-checkin、party-directory、my-records;没有应用后端或工作流。移除依赖模块时必须同时移除依赖它的模块。创建到已有工作区只恢复原来源;不能换一套模板覆盖应用源码。
16
+
17
+ ## 源码所有权 {#ownership}
18
+
19
+ 后台外壳位于 apps/web/src/frames/admin/AdminShell.tsx;PC/移动 frame 位于同目录;登录布局位于 apps/web/src/login;样式位于 apps/web/src/theme;后台资源页位于 apps/web/src/admin。开发者可复制、修改、替换、重构,平台不会自动覆盖这些文件。通用模板修复由各应用选择采用。
20
+
21
+ 唯一后台通过 ui.admin.shell 挂载,菜单和路径来自平台已授权模型。保留 SDK 的路由及权限边界。应用页面通过 resourcePages 的 resource/view/list/detail/form contribution 挂载;未声明的页面沿用 SDK fallback。用户端通过 standardUserSurfaces 和普通页面贡献使用同一个应用路由。
22
+
23
+ ## 修改列表 {#resource-list}
24
+
25
+ 从 openxiangda/resource 导入 useResourceListController 和 ResourceListActions、ResourceListQueryBar、ResourceListAdvancedFilter、ResourceListAppliedFilters、ResourceListTable、ResourceListBatchBar、ResourceListOverlays 等块。控制器拥有数据、查询、列偏好、选择和获准动作;页面决定布局。columnRenderers 可替换可读列展示。移动端使用 useMobileResourceListController 与对应块。SDK 默认页使用相同边界。
26
+
27
+ resourcePages: { visits: { default: { list: VisitListPage } } } 按资源和视图注册。应用组件获得 definition、paths、mode 和 variant;路由先核验生成声明、读取/动作能力,再渲染贡献页。隐藏列不授予权限,新增视觉动作仍由服务器校验。
28
+
29
+ 模板带 check:imports,解析真实 TypeScript 导入并核验包 exports;不允许私有 dist/src 深导入。资源 detail/form 先提供已有块,独立控制器继续扩展。
30
+
31
+ ## 登录与验收 {#login}
32
+
33
+ 登录模板消费 SDK 提供的 methods、state、error、passwordLogin、startSso、startDingTalk。支持账号密码、组织配置的 SSO/钉钉、验证码挑战、恢复身份和错误反馈;不建立第二个登录态,不显示未配置的入口。
34
+
35
+ 访客角色起点:host 可邀请且读取自己创建的记录;front_desk 可进入唯一后台并登记到访,数据范围由平台策略约束。区域及角色为示例,接入实际组织前按业务修改。简单 CRUD 场景提供表单、我的记录和后台数据管理。
36
+
37
+ 验收分别记录本地编译、浏览器、测试平台、实际角色和业务回读。模板初始化和设计图不是已部署业务。先 check,再按已授权环境验证邀请→接待→状态回读,桌面及 390px 均覆盖。参考[页面与标准组件](frontend.md)、[无账号访问](public-access.md)和[校验](testing.md)。
@@ -8,7 +8,9 @@
8
8
  | `pnpm openxiangda context` | 只读 | 只读查看工作区、版本与平台绑定 |
9
9
  | `pnpm openxiangda docs` | 只读 | 按主题和章节读取当前版本中文资料 |
10
10
  | `pnpm openxiangda admin` | 远端变更 | 查看管理能力、自助操作契约,或按明确环境执行事件、密钥及通知操作 |
11
+ | `pnpm openxiangda template` | 只读 | 列出场景、模块、布局和风格模板 |
11
12
  | `pnpm openxiangda create` | 远端变更 | 创建、绑定并初始化应用 |
13
+ | `pnpm openxiangda workflow` | 远端变更 | 导出流程、导入到源码、规划版本登记、查看状态并显式同步到目标环境 |
12
14
  | `pnpm openxiangda source` | 远端变更 | 配置应用源码仓库、查看状态或提交推送 |
13
15
  | `pnpm openxiangda dev` | 本地写入 | 连接平台测试数据启动本地 Web,按需启动 Nest |
14
16
  | `pnpm openxiangda check` | 本地写入 | 生成契约并在目标平台预检后执行检查、测试和构建 |
@@ -121,7 +121,16 @@ import { AttachmentFileList } from 'openxiangda/field-kit';
121
121
  }
122
122
  ```
123
123
 
124
- 来源端点接受当前表单绑定值、关键字和游标;页大小由 `source.pageSize` 固定。
124
+ 来源端点接受关键字和游标;页大小由 `source.pageSize` 固定。创建表单使用 `operation: 'create'` 和当前绑定值。
125
+ 普通编辑表单使用 `operation: 'update', record: { id, expectedRevision }`,只传实际编辑的 `bindings`;平台以已保存记录合并这些编辑,检查行/字段更新权限及记录版本。没有编辑的绑定即使不可读,也由服务端参与查找,不返回它的原值。清空绑定传 `null`;最终提交仍由普通 Data API 验证必填和引用规则。
126
+
127
+ 列表筛选使用 `operation: 'filter'`:只需要宿主资源及字段的读取权限,目标保持当前用户的读取投影和行策略。写入 `source.filters` 不参与筛选,所以历史停用或已不满足写入条件的引用仍可查询;调用中不能携带 `bindings`、`record`、`launch`、`action` 或任务上下文。如需只展示某一类身份,可声明至多 20 个常量条件,例如 `filterWhere: [{ field: 'kind', operator: 'eq', value: 'building' }]`;支持 `eq`/`in`,不接受字段绑定。没有目标资源读取权限时,不会返回候选。
128
+
129
+ 普通生成表单自动传入保存上下文和实际编辑。自定义编辑表单通过 `SurfaceFieldRenderers.referenceBindings` 提供编辑值,`SurfaceFieldControl`/`MobileSurfaceFieldControl` 根据 `recordId` 和 `expectedRevision` 发送同样上下文。直接使用 `ResourceReferenceField` 时提供 `record` 和 `bindingEdits`。不传绑定编辑即使用保存值,不用把不可读字段填进浏览器。
130
+
131
+ 目录筛选通过现有目录检索的 `purpose: 'filter'` 返回可选的历史停用项,并标明停用;普通成员选择仍只接受有效项。范围来源支持 `operation: 'filter'`,使用读取范围授权,包含停用身份;自定义范围筛选控件使用 `renderScopeFilter`,与编辑态 `renderScope` 分开。
132
+
133
+ 含这些引用/目录字段或来源维度的编译包自动要求 `data.field-source-contexts` 版本 `1.0.0`,目标平台先升级后才能交付新包。
125
134
  标准流程的具名动作发起表单由 `WorkflowSubmissionPage` 自动传递 `launch: { workflowCode, operationCode }`。
126
135
  平台核对当前环境已部署的流程、动作、输入字段映射和当前用户动作权限;不要求额外授予宿主表单 CRUD 权限。
127
136
  普通 CRUD 表单不传此绑定,继续检查对应创建/修改权限。自定义选择器可通过 `searchResource` 的同名选项传递