openxiangda-skill-kit 2.3.52 → 2.3.57

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openxiangda-skill-kit",
3
- "version": "2.3.52",
3
+ "version": "2.3.57",
4
4
  "description": "OpenXiangda 2.0 中文 AI 技能的校验、分发与安装。",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -17,7 +17,7 @@
17
17
  "README.md"
18
18
  ],
19
19
  "dependencies": {
20
- "openxiangda-devkit-core": "2.41.2"
20
+ "openxiangda-devkit-core": "2.41.6"
21
21
  },
22
22
  "devDependencies": {
23
23
  "tsx": "4.23.12",
@@ -245,7 +245,7 @@ ISO instant)与 `minuteStep`(1 到 60 且整除 60)。设置步长后只
245
245
  - 单选、复选直接展示选项;下拉单选/复选使用可搜索的底部弹层,多选展示已选数量。
246
246
  - 日期使用月历,日期时间可切换时间滚轮;区间依次选择开始和结束,可返回上一步修改。
247
247
  - 地址采用地区路径逐层选择,详细地址单独输入。定位沿用当前可用的钉钉或浏览器能力。
248
- - 子表单直接展开行内字段,支持折叠、添加和删除;父表提交校验所有行,包括折叠的行。
248
+ - 子表单使用每页十行的行内字段,手机支持折叠、添加和删除;父表提交校验所有行,包括折叠及未显示页的行。分页保留完整输入和草稿,任务完成校验会定位到错误行所在页;有待处理上传时先完成或移除文件,再翻页。
249
249
  权限、最大行数、原子事务和已存行的 revision 继续由原有资源契约约束。
250
250
  - 签名在底部画布手写并保存;图片、签名和附件仍通过托管文件接口上传与鉴权读取。
251
251
  - 手机富文本编辑降级为多行文本。未修改时保留已有 HTML;修改后将纯文本转为转义后的
@@ -443,6 +443,10 @@ readability: {
443
443
 
444
444
  说明的执行位置只能是 submission、某节点的 node_input 或 completion。它是对已有逻辑的注释,不会自动执行计算或产生新流程节点。没有实际计算步骤时,不应写成“系统已计算总金额”。条件的变量必须存在于输入 Schema;对旧未标注定义,读取投影会明确给出未知来源诊断。
445
445
 
446
+ 流程图的条件卡直接摘要参与判断的变量与分支数,业务步骤卡摘要声明的产出。管理详情在条件旁显示申请字段、流程输入或固定步骤来源;业务步骤优先展示输出说明,缺少说明时明确提示。来源节点只有与当前图的 handler 代码和版本一致才可跳转,历史实例使用自己的固定定义。界面不根据节点标题推断公式,也不加载或执行源码引用。
447
+
448
+ 长图首次打开会保留可读比例;可用“适应全图”查看全貌,再通过搜索、来源链接、缩略导航或方向键定位。手机使用同一结构的节点列表和详情。图的连线、条件和代码始终只读,审批/抄送配置沿已声明的管理员能力修改,字段行为仍由页面代码定义。
449
+
446
450
  可选 `source: { path, symbol?, digest }` 只返回源码位置和 SHA256,不返回源码内容。path 指向工作区 apps/packages/platform 下的代码文件,digest 为 `sha256:<原始文件字节摘要>`。工作区加载时核对文件存在、无符号链接、大小和摘要;源码变化后以 WORKFLOW_LOGIC_DESCRIPTION_STALE 阻止封装,开发者应核实说明并更新引用。32 个文件、单文件 2MiB、总量 8MiB 为上限。元数据不能验证任意 TypeScript 的业务含义,业务说明及验收仍由开发者维护。
447
451
 
448
452
  ## 持久业务步骤
@@ -513,9 +517,74 @@ outbox容量等事务故障会回滚,处理器按原键核对后重交,不
513
517
  `examples/workflow-administration/task-page.ts`。
514
518
 
515
519
  页面表达式只读取本页 `values.*`,平台以合并后的业务值强制显隐和必填。
516
- 最多16页、每页64字段、单次值64KiB,表达式8层/64节点。
520
+ 最多16页、每页64字段、单次值1MiB,表达式8层/64节点。
517
521
  系统、流水号和隐藏字段不可作为补填入口。根附件、图片复用平台托管文件;
518
- 签名、子表和富文本仍需后续任务页面支持,不将它们降为任意 JSON。
522
+ 签名和富文本同样保留 Native 字段协议;普通 owned 子行以固定页面白名单和行 CAS 提交。
523
+
524
+ ### 标准流程的主子表发起
525
+
526
+ 标准发起页复用 Field Kit 的 PC/手机子表,通过原 `standard-commands` 的
527
+ `mutation.data` 一次提交完整表单。子表字段值沿用表单行结构:
528
+ `{ key, state, data, id?, revision? }`;日期等子字段按字段 codec 编码,
529
+ 界面快照与原值不作为授权或并发依据。声明关系、行序和父记录引用由 Native 生成。
530
+ 创建主表、所有子行和持久流程发起命令在同一个事务中完成;失败不留下部分申请。
531
+
532
+ 发起仍执行当前用户的父、子资源及字段授权。拥有主表权限不会自动得到通用子表权限。
533
+ 已有记录提交核对父 CAS 和完整已读子行集合,包括未修改行;删除显式保留原 id/revision,
534
+ 跨单、遗漏、重复或陈旧行均拒绝。原命令已提交时先返回同一回执,再也不重新展开当前行。
535
+ 每表100/累计400、完整意图双倍、整请求2MiB及展开后1000操作与 Native 预算一致。
536
+ 普通显式 Named Action 的16个业务操作预算不变;其自定义子表提交仍按自身合同实现。
537
+
538
+ ### 任务 owned 子表
539
+
540
+ 在主模型的 subtable 字段上声明 `subtable: { fields, create, delete, reorder }`,例如:
541
+
542
+ ```ts
543
+ { code: 'items', required: true, subtable: {
544
+ create: true, delete: true, reorder: true,
545
+ fields: [{ code: 'name', required: true }, { code: 'quantity', required: true },
546
+ { code: 'originalNote', readonly: true }],
547
+ } }
548
+ ```
549
+
550
+ 关系沿用模型的 `resourceCode/foreignKey/orderField/maxRows`,不接受任务调用者自报。
551
+ 子字段可声明同样的只读、可见和条件必填规则;这些属于页面代码,管理员不能覆盖。
552
+ `create/delete/reorder` 省略时关闭。仅一层,每表 maxRows 最多100,父资源及任务页
553
+ 声明总量最多400;默认仍20。完整意图最多为每表 maxRows 的两倍,可在一次提交中
554
+ 删除满表旧行并新增同等数量,仍按有效行数校验上限。整个 form/任务私有草稿值限1MiB,
555
+ 页面定义仍64KiB/64根字段;系统、隐藏、关系键和顺序字段不进入子字段白名单。
556
+ 标准主子表提交复用同一个 Native 原子事务,最多1000操作/2MiB(400行全量替换加主表为801操作),
557
+ 任一行失败全单回滚,不静默截断或分批提交。普通表单草稿values最多2MiB,含原值与当前值;
558
+ 状态字段的独立配额不变。附件上传数量/字节与详情读取预算仍独立执行,行数容量不豁免文件配额。
559
+ 子行支持 file/image/signature/text.rich,使用同一个任务上传入口并绑定准确行;普通
560
+ 子行字段和已授权只读展示不降为 JSON 编辑框。例子见 `examples/workflow-administration/task-owned-subtable.ts`。
561
+
562
+ 标准 PC/手机控件自动消费 `surface.taskForm.subtables`,不会调用普通 child CRUD。
563
+ 自定义客户端提交 `values.items` 的完整行意图数组:
564
+ `{key,state,values,id?,revision?}`;state为created/persisted/deleted,key为小写UUID,
565
+ 持久行key等于id。删除显式列出原id/revision与空values,遗漏不代表删除。
566
+ 所有观察到的行版本都核对,包括未修改行;新行key作为其业务行ID。
567
+ values只能写白名单的当前可编辑字段,关系键与顺序由服务器维护。
568
+
569
+ 原save_form/approve/resubmit同时提交主子数据、事实与决定,失败全部回滚。
570
+ 子表提交推进主版本;普通child操作仍各自拥有行版本,不能仅用主版本判断子表并发。
571
+ 私有草稿保存相同行意图,不改业务。CAS拒绝保留输入,核对后明确保留编辑或采用最新资料;
572
+ 正在编辑的行被别人删除时不会静默丢弃或复活。未知命令沿原请求/原回执恢复。
573
+ 能力 `workflow.task-owned-subtables@1.0.0` 从声明自动推导,正式 SQL
574
+ `AuthorizeWorkflowTaskOwnedSubtablesV2` 随初始化迁移自动生效,无新增默认关闭开关。
575
+
576
+ 子行上传时在原 `WorkflowTaskFileUpload` 上增加
577
+ `row: { subtableFieldCode: 'items', rowKey }`,`fieldCode` 是该行中的材料字段。
578
+ rowKey 是新建或已持久化行的稳定小写 UUID;新行上传不会提前写入业务记录,排序也不会
579
+ 改变文件归属。不能自行指定子资源或父记录,也不能把任务私有文件交给普通 child CRUD。
580
+ 草稿递归保留有效行文件,删除意图不保留文件;原流程命令统一提交数据、引用和草稿消费。
581
+
582
+ 条件文件的上传资格依据已保存业务值。若本地编辑才使字段可见,标准页面提示先保存补填,
583
+ 再上传;私有草稿不会改变已经生效的业务事实。无条件材料可直接在尚未保存的新行上传。
584
+ 上传未知时保留原行地址、ID、规格和字节,核对 ready 回执只读恢复,不再 PUT;处理中
585
+ 禁用行修改、删除、排序和提交。标准 PC/手机控件自动处理四类值和准确行恢复。
586
+ 声明可写子行材料自动要求 `workflow.task-owned-files@1.0.0` 及适用的 managed/rich 能力;
587
+ 平台正式迁移 `AddWorkflowTaskOwnedFilesV2` 自动扩展绑定列,无需另开功能开关。
519
588
 
520
589
  标准 PC/手机任务页和 `WorkflowTaskOperationsPanel` 自动显示当前参与人的
521
590
  `surface.taskForm`。`save_form` 表示“提交补填,继续办理”,不是私有草稿。
@@ -558,8 +627,8 @@ approve/resubmit 携带 `form: { expectedRevision, values }` 时,Native 业务
558
627
  身份、环境、业务记录和固定页面由平台派生,不传actor/resource/page作为授权。
559
628
  可编译例子见 `examples/workflow-administration/task-draft.ts`。
560
629
 
561
- 最多20份/90天与同用户、应用、环境、资源的其他表单草稿共享,单份最多64字段/64KiB。
562
- 字段支持根附件、图片,暂不包含签名、富文本或子表。读到不兼容草稿时只返回安全标识与诊断,
630
+ 最多20份/90天与同用户、应用、环境、资源的其他表单草稿共享,单份最多64根字段/1MiB。
631
+ 字段支持根附件、图片、完整业务签名和富文本,暂不包含 owned 子表。读到不兼容草稿时只返回安全标识与诊断,
563
632
  不静默丢弃或泄露旧值。失去任务、角色或代理资格后不能继续读/用。
564
633
 
565
634
  读取不会自动覆盖输入;采用前确认,业务基线变化先核对并再次保存。相同输入暂存成功后
@@ -612,3 +681,24 @@ const readyFile = await completeWorkflowTaskFileUpload(taskId, input.id);
612
681
  复用既有 Native 文件引用 worker 和 GC;流式正式复制限时10秒。
613
682
  需要服务端正式 SQL `AddWorkflowTaskManagedFilesV2` 和自动能力
614
683
  `workflow.task-managed-files@1.0.0`,初始化无需新增开关。
684
+
685
+ ### 任务业务签名与富文本
686
+
687
+ 任务页面声明可编辑 `signature/text.rich` 时,标准 PC/手机字段控件自动使用同一任务
688
+ 文件、私有草稿和原流程提交入口。编译器同时要求 `workflow.task-rich-fields@1.0.0`;
689
+ 平台初始化自动提供,无新增配置开关。只有只读展示时不要求上传能力。
690
+
691
+ 业务签名保留完整 Native 值:`file: { id, name, size, contentType }`、可选 `signer`、
692
+ `signedAt`、可选 `points` 和 `hash`,清空为 `null`。PNG、时间、笔迹与 SHA-256 在上传前
693
+ 固定,未知结果恢复只采用原文件,不重新签署。任务控件最多采样512个笔迹点并保留首尾;
694
+ 原 PNG 字节不改,仍受任务值1MiB限制。这些是业务采集信息,不代表平台认证的签署人、
695
+ 可信时间或法律电子签章。
696
+
697
+ 富文本保存清洗后的 HTML 和 Native 稳定托管图片地址,支持最多20图、单图10MiB、100MP。
698
+ PC/手机保留格式、图片和前后文字;插图未知时锁住编辑,恢复采用原插入位置并只插入一次。
699
+ `blob:` 仅用于授权预览,不进入保存值。新任务签名/富文本图片完成时核验实际图片解码与
700
+ 声明格式。完整值经 Native 校验后,草稿和正式审批共用排序文件锁、引用验证、保留期及事务。
701
+
702
+ 自定义 Field Kit 上传 renderer 的第四参数为可选 `onRecovered(file)`,仅在恢复原任务上传
703
+ 时采用完整字段值;正常上传仍返回 `DataFileRef`。非数组字段必须提供该回调;不能用文件数组
704
+ append 处理签名或 HTML。当前任务、实例、记录或字段改变时清理旧图片预览,重新按范围读取。