openxiangda-contracts 2.47.0 → 2.63.0

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 (102) hide show
  1. package/dist/browser.d.ts +7 -0
  2. package/dist/browser.d.ts.map +1 -1
  3. package/dist/browser.js +7 -0
  4. package/dist/browser.js.map +1 -1
  5. package/dist/concurrency.d.ts +2 -2
  6. package/dist/concurrency.d.ts.map +1 -1
  7. package/dist/data-field-validation.d.ts.map +1 -1
  8. package/dist/data-field-validation.js +10 -0
  9. package/dist/data-field-validation.js.map +1 -1
  10. package/dist/index.d.ts +7 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +7 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/native-compiler/compiler.d.ts +1 -1
  15. package/dist/native-compiler/compiler.d.ts.map +1 -1
  16. package/dist/native-compiler/compiler.js +243 -18
  17. package/dist/native-compiler/compiler.js.map +1 -1
  18. package/dist/native-compiler/data-business-command.d.ts +42 -0
  19. package/dist/native-compiler/data-business-command.d.ts.map +1 -0
  20. package/dist/native-compiler/data-business-command.js +88 -0
  21. package/dist/native-compiler/data-business-command.js.map +1 -0
  22. package/dist/native-compiler/data-field.d.ts +2 -0
  23. package/dist/native-compiler/data-field.d.ts.map +1 -1
  24. package/dist/native-compiler/data-field.js +4 -0
  25. package/dist/native-compiler/data-field.js.map +1 -1
  26. package/dist/native-compiler/data-surface.d.ts +1 -1
  27. package/dist/native-compiler/data-surface.d.ts.map +1 -1
  28. package/dist/native-compiler/data-surface.js +2 -0
  29. package/dist/native-compiler/data-surface.js.map +1 -1
  30. package/dist/native-compiler/index.cjs +3 -3
  31. package/dist/native-compiler/index.d.ts +9 -0
  32. package/dist/native-compiler/index.d.ts.map +1 -1
  33. package/dist/native-compiler/index.js +3 -3
  34. package/dist/native-compiler/managed-concurrency.js +2 -2
  35. package/dist/native-compiler/managed-concurrency.js.map +1 -1
  36. package/dist/native-compiler/resource-view.d.ts +4 -0
  37. package/dist/native-compiler/resource-view.d.ts.map +1 -0
  38. package/dist/native-compiler/resource-view.js +20 -0
  39. package/dist/native-compiler/resource-view.js.map +1 -0
  40. package/dist/native-compiler/unique-keys.d.ts +21 -0
  41. package/dist/native-compiler/unique-keys.d.ts.map +1 -1
  42. package/dist/native-compiler/unique-keys.js +17 -3
  43. package/dist/native-compiler/unique-keys.js.map +1 -1
  44. package/dist/native-compiler/user-candidates.d.ts +72 -0
  45. package/dist/native-compiler/user-candidates.d.ts.map +1 -0
  46. package/dist/native-compiler/user-candidates.js +184 -0
  47. package/dist/native-compiler/user-candidates.js.map +1 -0
  48. package/dist/native-compiler/workflow-approval-empty.d.ts +28 -0
  49. package/dist/native-compiler/workflow-approval-empty.d.ts.map +1 -0
  50. package/dist/native-compiler/workflow-approval-empty.js +34 -0
  51. package/dist/native-compiler/workflow-approval-empty.js.map +1 -0
  52. package/dist/native-compiler/workflow-business-command.d.ts +108 -0
  53. package/dist/native-compiler/workflow-business-command.d.ts.map +1 -0
  54. package/dist/native-compiler/workflow-business-command.js +58 -0
  55. package/dist/native-compiler/workflow-business-command.js.map +1 -0
  56. package/dist/native-compiler/workflow-graph.d.ts +8 -0
  57. package/dist/native-compiler/workflow-graph.d.ts.map +1 -1
  58. package/dist/native-compiler/workflow-graph.js +1 -0
  59. package/dist/native-compiler/workflow-graph.js.map +1 -1
  60. package/dist/native-compiler/workflow-initiator-approval.d.ts +28 -0
  61. package/dist/native-compiler/workflow-initiator-approval.d.ts.map +1 -0
  62. package/dist/native-compiler/workflow-initiator-approval.js +30 -0
  63. package/dist/native-compiler/workflow-initiator-approval.js.map +1 -0
  64. package/dist/native-compiler/workflow-instance-policy.d.ts +2 -0
  65. package/dist/native-compiler/workflow-instance-policy.d.ts.map +1 -1
  66. package/dist/native-compiler/workflow-instance-policy.js +9 -4
  67. package/dist/native-compiler/workflow-instance-policy.js.map +1 -1
  68. package/dist/native-compiler/workflow-launch-preflight.d.ts +22 -0
  69. package/dist/native-compiler/workflow-launch-preflight.d.ts.map +1 -0
  70. package/dist/native-compiler/workflow-launch-preflight.js +30 -0
  71. package/dist/native-compiler/workflow-launch-preflight.js.map +1 -0
  72. package/dist/native-compiler/workflow-node-administration.d.ts +6 -0
  73. package/dist/native-compiler/workflow-node-administration.d.ts.map +1 -1
  74. package/dist/native-compiler/workflow-node-administration.js +9 -2
  75. package/dist/native-compiler/workflow-node-administration.js.map +1 -1
  76. package/dist/native-compiler/workflow-rejection-notification.d.ts +31 -0
  77. package/dist/native-compiler/workflow-rejection-notification.d.ts.map +1 -0
  78. package/dist/native-compiler/workflow-rejection-notification.js +47 -0
  79. package/dist/native-compiler/workflow-rejection-notification.js.map +1 -0
  80. package/dist/native-version.d.ts +16 -1
  81. package/dist/native-version.d.ts.map +1 -1
  82. package/dist/native-version.js +16 -1
  83. package/dist/native-version.js.map +1 -1
  84. package/dist/native.d.ts +15 -2
  85. package/dist/native.d.ts.map +1 -1
  86. package/dist/native.js.map +1 -1
  87. package/dist/schemas.d.ts +3028 -194
  88. package/dist/schemas.d.ts.map +1 -1
  89. package/dist/schemas.js +244 -2
  90. package/dist/schemas.js.map +1 -1
  91. package/dist/surface.d.ts +3 -2
  92. package/dist/surface.d.ts.map +1 -1
  93. package/dist/surface.js +1 -19
  94. package/dist/surface.js.map +1 -1
  95. package/dist/types.d.ts +286 -8
  96. package/dist/types.d.ts.map +1 -1
  97. package/dist/types.js +4 -0
  98. package/dist/types.js.map +1 -1
  99. package/dist/validation.d.ts.map +1 -1
  100. package/dist/validation.js +35 -2
  101. package/dist/validation.js.map +1 -1
  102. package/package.json +1 -1
package/dist/surface.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { DataFieldOption } from './field-values.js';
2
+ import type { DataFieldUserCandidates } from './native-compiler/user-candidates.js';
2
3
  import type { DataFieldResourceSource } from './references.js';
3
4
  import type { DataFieldType, DataRangeBoundary } from './types.js';
4
5
  /**
@@ -37,6 +38,7 @@ export interface DataFieldSurface {
37
38
  searchable?: boolean;
38
39
  sortable?: boolean;
39
40
  source?: DataFieldResourceSource;
41
+ userCandidates?: DataFieldUserCandidates;
40
42
  timePrecision?: 'minute' | 'second';
41
43
  serial?: {
42
44
  prefix?: string;
@@ -141,6 +143,5 @@ export interface DataResourceViewSurface {
141
143
  fields: string[];
142
144
  }[];
143
145
  }
144
- /** Resolve a named presentation without changing field access or storage facts. */
145
- export declare function projectDataResourceView(surface: DataResourceSurface, viewCode?: string): DataResourceSurface;
146
+ export { projectDataResourceView } from './native-compiler/resource-view.js';
146
147
  //# sourceMappingURL=surface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"surface.d.ts","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEnE;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAC9B,MAAM,GACN,UAAU,GACV,QAAQ,GACR,OAAO,GACP,SAAS,GACT,QAAQ,GACR,MAAM,GACN,MAAM,GACN,UAAU,GACV,YAAY,GACZ,gBAAgB,GAChB,QAAQ,GACR,QAAQ,GACR,cAAc,GACd,OAAO,GACP,UAAU,GACV,SAAS,GACT,OAAO,GACP,OAAO,GACP,YAAY,GACZ,OAAO,GACP,WAAW,GACX,SAAS,GACT,UAAU,GACV,WAAW,GACX,UAAU,GACV,OAAO,GACP,gBAAgB,GAChB,sBAAsB,GACtB,UAAU,GACV,MAAM,GACN,UAAU,CAAC;AAEf,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,IAAI,EAAE,aAAa,CAAC;IACpB,uEAAuE;IACvE,MAAM,EAAE,sBAAsB,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,aAAa,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACpC,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,MAAM,uBAAuB,GAC/B;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAElE,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,KAAK,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAClC,iFAAiF;IACjF,aAAa,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,gBAAgB,CAAC;IACjF,sFAAsF;IACtF,SAAS,CAAC,EAAE;QACV,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACzC,IAAI,CAAC,EAAE;QACL,wEAAwE;QACxE,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,OAAO,CAAC;YAAC,MAAM,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;QACjD,kDAAkD;QAClD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,WAAW,CAAC,EAAE;YACZ,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;SACxB,CAAC;KACH,CAAC;IACF,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,oFAAoF;QACpF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,4EAA4E;QAC5E,UAAU,CAAC,EAAE,wBAAwB,CAAC;KACvC,CAAC;IACF,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,oFAAoF;QACpF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;IACF,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACnE,IAAI,EAAE,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG;QAAE,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC1E,IAAI,EAAE,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG;QAAE,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC1E,MAAM,EAAE,WAAW,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,GAAG;QAAE,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC9E,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;CAClD;AAED,mFAAmF;AACnF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAe5G"}
1
+ {"version":3,"file":"surface.d.ts","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"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"}
package/dist/surface.js CHANGED
@@ -1,20 +1,2 @@
1
- /** Resolve a named presentation without changing field access or storage facts. */
2
- export function projectDataResourceView(surface, viewCode) {
3
- if (viewCode === undefined)
4
- return surface;
5
- const view = surface.views?.find(item => item.code === viewCode);
6
- if (!view)
7
- throw new Error(`DATA_RESOURCE_VIEW_NOT_FOUND: ${viewCode}`);
8
- const sections = new Map(view.sections?.flatMap(section => section.fields.map(code => [code, section.title])));
9
- const { views: _views, ...base } = surface;
10
- return {
11
- ...base, generated: view.generated, list: view.list, form: view.form,
12
- detail: view.detail, mobile: view.mobile,
13
- fields: Object.fromEntries(Object.entries(surface.fields).map(([code, field]) => {
14
- const { section: _section, ...baseField } = field;
15
- const section = sections.get(code);
16
- return [code, { ...baseField, ...(section ? { section } : {}), list: view.list.fieldOrder?.includes(code) ?? false }];
17
- })),
18
- };
19
- }
1
+ export { projectDataResourceView } from './native-compiler/resource-view.js';
20
2
  //# sourceMappingURL=surface.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"surface.js","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"AAgKA,mFAAmF;AACnF,MAAM,UAAU,uBAAuB,CAAC,OAA4B,EAAE,QAAiB;IACrF,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACjE,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAU,CAAC,CAAC,CAAC,CAAC;IACxH,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAC3C,OAAO;QACL,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI;QACpE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM;QACxC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;YAC9E,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;YAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;QACxH,CAAC,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"surface.js","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"AAkKA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import { PLATFORM_CAPABILITY_CONTRACT_VERSIONS } from "./native-version.js";
2
2
  export { OPENXIANGDA_COMPILER_CONTRACT_VERSION, PLATFORM_CAPABILITY_CONTRACT_VERSIONS } from "./native-version.js";
3
- import type { DataResourceSurface } from "./surface.js";
3
+ import type { DataFieldSurface, DataResourceSurface } from "./surface.js";
4
4
  import type { CascadePathValue, DataFieldOption, DateRangeValue, DepartmentReferenceValue, LabeledValue, ManagedImageValue, ResourceReferenceValue, StableAddressValue, StableLocationValue, StableSignatureValue, UserReferenceValue } from "./field-values.js";
5
+ import type { DataFieldUserCandidates } from './native-compiler/user-candidates.js';
5
6
  import type { DataFieldResourceSource } from "./references.js";
6
7
  import type { WorkflowBusinessData } from "./workflow-summary.js";
7
8
  import type { WorkflowBusinessDetail } from "./workflow-detail.js";
@@ -54,6 +55,8 @@ export declare const SCHEMA_VERSIONS: {
54
55
  readonly nativeScopeValuePage: "openxiangda.native-scope-value-page/v2";
55
56
  readonly dataFieldSourceQuery: "openxiangda.data-field-source-query/v2";
56
57
  readonly dataFieldSourcePage: "openxiangda.data-field-source-page/v2";
58
+ readonly userCandidatesQuery: "openxiangda.user-candidates-query/v2";
59
+ readonly userCandidatesPage: "openxiangda.user-candidates-page/v2";
57
60
  readonly dataRef: "openxiangda.data-ref/v2";
58
61
  readonly dataResource: "openxiangda.data-resource/v2";
59
62
  readonly dataQuery: "openxiangda.data-query/v2";
@@ -106,6 +109,7 @@ export declare const SCHEMA_VERSIONS: {
106
109
  readonly workflowAssigneeRequest: "openxiangda.workflow-assignee-request/v2.1";
107
110
  readonly workflowAssigneeResponse: "openxiangda.workflow-assignee-response/v2";
108
111
  readonly businessProcessCommit: "openxiangda.business-process.commit/v2";
112
+ readonly businessProcessCommandWithData: "openxiangda.business-process-command-with-data/v2";
109
113
  readonly standardProcessCommit: "openxiangda.standard-process.commit/v2";
110
114
  readonly businessProcessCommand: "openxiangda.business-process.command/v2";
111
115
  readonly businessProcessReceipt: "openxiangda.business-process-receipt/v2";
@@ -324,6 +328,8 @@ export interface CurrentInitiatorDirectorySnapshot {
324
328
  userId: string;
325
329
  displayName?: string;
326
330
  employeeNumber?: string | null;
331
+ /** Only present when a verified current-initiator operation declares phone. */
332
+ phone?: string | null;
327
333
  primaryDepartment?: {
328
334
  value: string;
329
335
  label: string;
@@ -335,7 +341,7 @@ export interface CurrentInitiatorDirectorySnapshot {
335
341
  snapshotRevision: Sha256Digest;
336
342
  resolvedAt: IsoDateTime;
337
343
  }
338
- export interface SelectedUserDirectorySnapshot extends Omit<CurrentInitiatorDirectorySnapshot, "schemaVersion"> {
344
+ export interface SelectedUserDirectorySnapshot extends Omit<CurrentInitiatorDirectorySnapshot, "schemaVersion" | "phone"> {
339
345
  schemaVersion: "openxiangda.selected-user-directory-snapshot/v2";
340
346
  }
341
347
  /** Query hints only; revalidate the selected member in the committing transaction. */
@@ -422,6 +428,16 @@ export interface NativeScopeDimensionApplicability {
422
428
  roleCodes: string[];
423
429
  unrestrictedRoleCodes: string[];
424
430
  rules: NativeScopeDimensionApplicabilityRule[];
431
+ /** Scoped candidate fields are independent of CRUD policy applicability. */
432
+ candidateFields?: Array<{
433
+ dataLogicalRevisionId: string;
434
+ resourceCode: string;
435
+ fieldCode: string;
436
+ roleCode: string;
437
+ operation: string;
438
+ }>;
439
+ /** Effective scoped workflow duties; does not grant ordinary data access. */
440
+ workflowBindings?: Array<Pick<WorkflowRoleReference, 'workflowCode' | 'nodeId' | 'roleCode' | 'definitionVersion' | 'bindingVersion' | 'configurationRevision' | 'source' | 'contexts'>>;
425
441
  }
426
442
  export interface NativeAuthorizationManagementScopeDimension {
427
443
  code: string;
@@ -1007,6 +1023,11 @@ export interface DataFieldSourceLaunchBinding {
1007
1023
  workflowCode: string;
1008
1024
  operationCode: string;
1009
1025
  }
1026
+ export interface DataRecordEditInput {
1027
+ operationCode: string;
1028
+ recordId: string;
1029
+ expectedRevision: number;
1030
+ }
1010
1031
  export interface DataFieldSourceQuery {
1011
1032
  schemaVersion: typeof SCHEMA_VERSIONS.dataFieldSourceQuery;
1012
1033
  operation: "create" | "update";
@@ -1016,6 +1037,7 @@ export interface DataFieldSourceQuery {
1016
1037
  bindings?: Record<string, unknown>;
1017
1038
  /** 正式流程发起意图;平台核验字段绑定和动作能力,目标仍按当前用户读取。 */
1018
1039
  launch?: DataFieldSourceLaunchBinding;
1040
+ action?: DataRecordEditInput;
1019
1041
  }
1020
1042
  export interface DataFieldSourcePage {
1021
1043
  schemaVersion: typeof SCHEMA_VERSIONS.dataFieldSourcePage;
@@ -1027,6 +1049,50 @@ export interface DataFieldSourcePage {
1027
1049
  items: ResourceReferenceValue[];
1028
1050
  nextCursor: string | null;
1029
1051
  }
1052
+ /** Candidate scope is owned by the field declaration and saved record/task. */
1053
+ export interface UserCandidateSearch {
1054
+ schemaVersion: typeof SCHEMA_VERSIONS.userCandidatesQuery;
1055
+ keyword?: string;
1056
+ cursor?: string;
1057
+ selectedIds?: string[];
1058
+ }
1059
+ export type DataFieldUserCandidateQuery = UserCandidateSearch & {
1060
+ launch?: DataFieldSourceLaunchBinding;
1061
+ action?: DataRecordEditInput;
1062
+ } & ({
1063
+ operation: 'create';
1064
+ recordId?: never;
1065
+ expectedRevision?: never;
1066
+ } | {
1067
+ operation: 'update';
1068
+ recordId: string;
1069
+ expectedRevision: number;
1070
+ });
1071
+ export interface WorkflowTaskUserCandidateQuery extends UserCandidateSearch {
1072
+ expectedRevision: number;
1073
+ expectedTaskVersion: number;
1074
+ }
1075
+ export interface UserCandidatePage {
1076
+ schemaVersion: typeof SCHEMA_VERSIONS.userCandidatesPage;
1077
+ resourceCode: string;
1078
+ fieldCode: string;
1079
+ environmentHeadRevision: number;
1080
+ recordRevision?: number;
1081
+ evaluatedAt: IsoDateTime;
1082
+ items: Array<{
1083
+ value: string;
1084
+ label: string;
1085
+ }>;
1086
+ selected: Array<{
1087
+ value: string;
1088
+ label: string;
1089
+ status: 'valid';
1090
+ } | {
1091
+ value: string;
1092
+ status: 'invalid';
1093
+ }>;
1094
+ nextCursor: string | null;
1095
+ }
1030
1096
  export interface DataRef {
1031
1097
  schemaVersion: typeof SCHEMA_VERSIONS.dataRef;
1032
1098
  appCode: string;
@@ -1047,6 +1113,8 @@ export interface DataFieldDefinition {
1047
1113
  options?: DataFieldOption[];
1048
1114
  /** Dynamic same-application source for resource-reference fields. */
1049
1115
  source?: DataFieldResourceSource;
1116
+ /** Authoritative role membership constraint for user references. */
1117
+ userCandidates?: DataFieldUserCandidates;
1050
1118
  maxLength?: number;
1051
1119
  precision?: number;
1052
1120
  scale?: number;
@@ -1121,6 +1189,10 @@ export type DataUniqueKeyCondition = {
1121
1189
  fieldCode: string;
1122
1190
  operator: 'in' | 'notIn';
1123
1191
  values: string[];
1192
+ } | {
1193
+ fieldCode: string;
1194
+ operator: 'eq' | 'ne';
1195
+ value: boolean;
1124
1196
  };
1125
1197
  export interface DataUniqueKey {
1126
1198
  code: string;
@@ -1143,6 +1215,23 @@ export interface DataResource {
1143
1215
  invariants?: DataResourceInvariant[];
1144
1216
  decimalReservationLifecycle?: DataDecimalReservationLifecycle;
1145
1217
  uniqueKeys?: DataUniqueKey[];
1218
+ /** Explicit business-viewer history policy; absence and empty read disable it. */
1219
+ workflowHistory?: {
1220
+ read: string[];
1221
+ };
1222
+ /** Independent same-membership record printing policy; omission disables it. */
1223
+ recordPrint?: {
1224
+ read: string[];
1225
+ };
1226
+ /** Independent same-membership collaboration; omission disables comments. */
1227
+ recordComments?: {
1228
+ read: string[];
1229
+ create: string[];
1230
+ };
1231
+ /** Explicit same-membership authority to delete a record and its workflow. */
1232
+ recordDeletion?: {
1233
+ delete: string[];
1234
+ };
1146
1235
  /** Default UI metadata projected with the authoritative Data Resource. */
1147
1236
  surface?: DataResourceSurface;
1148
1237
  capabilities: {
@@ -1158,6 +1247,74 @@ export interface DataResource {
1158
1247
  createdAt?: IsoDateTime;
1159
1248
  updatedAt?: IsoDateTime;
1160
1249
  }
1250
+ /** Platform-owned append-only comment, independent of business edits and workflow opinions. */
1251
+ /** Explicit record permission; opaque previews never expose another instance or its participants. */
1252
+ export interface DataRecordDeletionPreview {
1253
+ schemaVersion: 'openxiangda.data-record-deletion-preview/v1';
1254
+ resourceCode: string;
1255
+ resourceName: string;
1256
+ recordId: string;
1257
+ appVersionId: string;
1258
+ environmentHeadRevision: number;
1259
+ recordRevision: number;
1260
+ affectedRecords: number;
1261
+ workflowCount: number;
1262
+ pendingLaunchCount: number;
1263
+ cancelledTaskCount: number;
1264
+ canCommit: boolean;
1265
+ blocker?: 'pending_launch' | 'multiple_workflows' | 'owned_workflow';
1266
+ receiptOwner?: 'native-transaction' | 'workflow-command';
1267
+ previewToken?: string;
1268
+ expiresAt?: IsoDateTime;
1269
+ }
1270
+ export interface DataRecordDeletionMutation {
1271
+ schemaVersion: 'openxiangda.data-record-deletion-request/v1';
1272
+ previewToken: string;
1273
+ idempotencyKey: string;
1274
+ reason: string;
1275
+ }
1276
+ /** Projection over an existing Native transaction or Workflow command receipt. */
1277
+ export interface DataRecordDeletionReceipt {
1278
+ schemaVersion: 'openxiangda.data-record-deletion-receipt/v1';
1279
+ resourceCode: string;
1280
+ recordId: string;
1281
+ idempotencyKey: string;
1282
+ receiptOwner: 'native-transaction' | 'workflow-command';
1283
+ receiptId: string;
1284
+ deleted: boolean;
1285
+ replayed: boolean;
1286
+ errorCode?: string;
1287
+ }
1288
+ export interface DataRecordComment {
1289
+ id: string;
1290
+ body: string;
1291
+ authorUserId: string;
1292
+ isOwn: boolean;
1293
+ createdAt: IsoDateTime;
1294
+ appVersionId: string;
1295
+ environmentHeadRevision: number;
1296
+ }
1297
+ export interface DataRecordCommentPage {
1298
+ schemaVersion: 'openxiangda.data-record-comments/v1';
1299
+ resourceCode: string;
1300
+ recordId: string;
1301
+ items: DataRecordComment[];
1302
+ nextCursor: string | null;
1303
+ limit: number;
1304
+ }
1305
+ export interface DataRecordCommentMutation {
1306
+ schemaVersion: 'openxiangda.data-record-comment-create/v1';
1307
+ body: string;
1308
+ idempotencyKey: string;
1309
+ }
1310
+ export interface DataRecordCommentReceipt {
1311
+ schemaVersion: 'openxiangda.data-record-comment-receipt/v1';
1312
+ resourceCode: string;
1313
+ recordId: string;
1314
+ idempotencyKey: string;
1315
+ comment: DataRecordComment;
1316
+ replayed: boolean;
1317
+ }
1161
1318
  export type DataQueryOperator = "eq" | "neq" | "gt" | "gte" | "lt" | "lte" | "contains" | "startsWith" | "endsWith" | "in" | "between" | "has" | "hasAny" | "hasAll" | "overlaps" | "containedBy" | "jsonContains" | "isEmpty" | "isNotEmpty";
1162
1319
  export type DataWhere = {
1163
1320
  and: DataWhere[];
@@ -1231,6 +1388,22 @@ export interface DataBatchQueryResult<T extends Record<string, unknown> = Record
1231
1388
  schemaVersion: typeof SCHEMA_VERSIONS.dataBatchQueryResult;
1232
1389
  results: DataBatchQueryItemResult<T>[];
1233
1390
  }
1391
+ /** A bounded current-user print projection, without commands or permission metadata. */
1392
+ export interface DataRecordPrint {
1393
+ schemaVersion: "openxiangda.data-record-print/v1";
1394
+ resourceCode: string;
1395
+ resourceName: string;
1396
+ recordId: string;
1397
+ viewCode?: string;
1398
+ viewName?: string;
1399
+ appVersionId: string;
1400
+ environmentHeadRevision: number;
1401
+ preparedAt: IsoDateTime;
1402
+ fields: Array<Pick<DataFieldSurface, "label" | "type" | "widget" | "section" | "options" | "rangeBoundary" | "timePrecision"> & {
1403
+ code: string;
1404
+ }>;
1405
+ data: Record<string, unknown>;
1406
+ }
1234
1407
  export interface DataRecord<T extends Record<string, unknown> = Record<string, unknown>> {
1235
1408
  schemaVersion: typeof SCHEMA_VERSIONS.dataRecord;
1236
1409
  resourceCode: string;
@@ -1541,7 +1714,7 @@ export interface CloudEvent<TData extends Record<string, unknown> = Record<strin
1541
1714
  }
1542
1715
  export declare const DATA_EVENT_TYPES_V2: readonly ["openxiangda.data.record.created.v2", "openxiangda.data.record.updated.v2", "openxiangda.data.record.deleted.v2"];
1543
1716
  export type DataEventTypeV2 = (typeof DATA_EVENT_TYPES_V2)[number];
1544
- export declare const WORKFLOW_EVENT_TYPES_V2: readonly ["openxiangda.workflow.step.requested.v2", "openxiangda.workflow.step.result_received.v2", "openxiangda.workflow.step.completed.v2", "openxiangda.workflow.step.continuation_failed.v2", "openxiangda.workflow.instance.started.v2", "openxiangda.workflow.instance.completed.v2", "openxiangda.workflow.instance.rejected.v2", "openxiangda.workflow.instance.returned.v2", "openxiangda.workflow.instance.resumed.v2", "openxiangda.workflow.instance.withdrawn.v2", "openxiangda.workflow.instance.terminated.v2", "openxiangda.workflow.instance.cc_added.v2", "openxiangda.workflow.task.created.v2", "openxiangda.workflow.task.assigned.v2", "openxiangda.workflow.task.assignment_pending.v2", "openxiangda.workflow.task.assignment_resolution_failed.v2", "openxiangda.workflow.task.approved.v2", "openxiangda.workflow.task.completed.v2", "openxiangda.workflow.task.rejected.v2", "openxiangda.workflow.task.returned.v2", "openxiangda.workflow.task.resubmitted.v2", "openxiangda.workflow.task.transferred.v2", "openxiangda.workflow.task.reassigned.v2", "openxiangda.workflow.task.delegated.v2", "openxiangda.workflow.task.assignee_added.v2", "openxiangda.workflow.task.cancelled.v2", "openxiangda.workflow.participant.activated.v2", "openxiangda.workflow.participant.completed.v2", "openxiangda.workflow.participant.rejected.v2", "openxiangda.workflow.participant.returned.v2", "openxiangda.workflow.participant.transferred.v2", "openxiangda.workflow.participant.reassigned.v2", "openxiangda.workflow.participant.delegated.v2", "openxiangda.workflow.participant.added.v2", "openxiangda.workflow.participant.suspended.v2", "openxiangda.workflow.participant.resumed.v2", "openxiangda.workflow.participant.cancelled.v2"];
1717
+ export declare const WORKFLOW_EVENT_TYPES_V2: readonly ["openxiangda.workflow.node.skipped.v2", "openxiangda.workflow.step.requested.v2", "openxiangda.workflow.step.result_received.v2", "openxiangda.workflow.step.completed.v2", "openxiangda.workflow.step.continuation_failed.v2", "openxiangda.workflow.instance.started.v2", "openxiangda.workflow.instance.completed.v2", "openxiangda.workflow.instance.rejected.v2", "openxiangda.workflow.instance.returned.v2", "openxiangda.workflow.instance.resumed.v2", "openxiangda.workflow.instance.withdrawn.v2", "openxiangda.workflow.instance.terminated.v2", "openxiangda.workflow.instance.cc_added.v2", "openxiangda.workflow.task.created.v2", "openxiangda.workflow.task.assigned.v2", "openxiangda.workflow.task.assignment_pending.v2", "openxiangda.workflow.task.assignment_resolution_failed.v2", "openxiangda.workflow.task.approved.v2", "openxiangda.workflow.task.completed.v2", "openxiangda.workflow.task.rejected.v2", "openxiangda.workflow.task.returned.v2", "openxiangda.workflow.task.resubmitted.v2", "openxiangda.workflow.task.transferred.v2", "openxiangda.workflow.task.reassigned.v2", "openxiangda.workflow.task.delegated.v2", "openxiangda.workflow.task.assignee_added.v2", "openxiangda.workflow.task.cancelled.v2", "openxiangda.workflow.participant.activated.v2", "openxiangda.workflow.participant.completed.v2", "openxiangda.workflow.participant.rejected.v2", "openxiangda.workflow.participant.returned.v2", "openxiangda.workflow.participant.transferred.v2", "openxiangda.workflow.participant.reassigned.v2", "openxiangda.workflow.participant.delegated.v2", "openxiangda.workflow.participant.added.v2", "openxiangda.workflow.participant.suspended.v2", "openxiangda.workflow.participant.resumed.v2", "openxiangda.workflow.participant.cancelled.v2"];
1545
1718
  export type WorkflowEventTypeV2 = (typeof WORKFLOW_EVENT_TYPES_V2)[number];
1546
1719
  export type EventProducerKind = "data" | "app" | "workflow" | "timer" | "date" | "system";
1547
1720
  export interface EventCatalogEntry {
@@ -1839,6 +2012,10 @@ export interface WorkflowApprovalNode {
1839
2012
  title: string;
1840
2013
  binding: string;
1841
2014
  mode: WorkflowApprovalMode;
2015
+ /** Code-owned. Omitted means block; skip requires a verified empty supported source. */
2016
+ emptyPolicy?: "block" | "skip";
2017
+ /** Code-owned. Only a direct active initiator seat can be automatically approved. */
2018
+ initiatorApprovalPolicy?: "manual" | "auto_approve";
1842
2019
  onApprove: string;
1843
2020
  onReject: string;
1844
2021
  allowedOperations?: WorkflowCommand[];
@@ -1858,7 +2035,7 @@ export type WorkflowConfigurableOperation = 'approve' | 'reject' | 'return' | 't
1858
2035
  export type WorkflowConfigurableAssigneeProvider = 'fixed_users' | 'app_role' | 'app_role_in_scope';
1859
2036
  export interface WorkflowNodeOperationPolicy {
1860
2037
  label?: string;
1861
- /** Only approve/reject have comments; existing required reasons stay required. */
2038
+ /** Approve defaults to false, reject to true; explicit false is code-owned. Other required reasons stay required. */
1862
2039
  commentRequired?: boolean;
1863
2040
  }
1864
2041
  export interface WorkflowApprovalAdministration {
@@ -1904,7 +2081,11 @@ export interface WorkflowDefinition {
1904
2081
  title: string;
1905
2082
  acceptedCommandDeactivationPolicy: "finish-pinned" | "cancel-on-deactivate";
1906
2083
  subject: WorkflowSubjectDefinition;
2084
+ commandHandlers?: import('./native-compiler/workflow-business-command.js').WorkflowCommandHandlers;
2085
+ launchPreflight?: import('./native-compiler/workflow-launch-preflight.js').WorkflowLaunchPreflight;
1907
2086
  instanceCommands?: WorkflowInstanceCommandPolicies;
2087
+ /** Code-owned, frozen at rejection using the subject's last successful business writer. */
2088
+ rejectionNotification?: import('./native-compiler/workflow-rejection-notification.js').WorkflowRejectionNotification;
1908
2089
  startAt: string;
1909
2090
  inputSchema: Record<string, unknown> & {
1910
2091
  type: "object";
@@ -1928,7 +2109,8 @@ export interface WorkflowDefinition {
1928
2109
  }
1929
2110
  export interface WorkflowInstanceCommandPolicies {
1930
2111
  withdraw?: {
1931
- beforeFact: string;
2112
+ beforeFact?: string;
2113
+ reasonRequired?: boolean;
1932
2114
  };
1933
2115
  terminate?: {
1934
2116
  capability: string;
@@ -1944,6 +2126,8 @@ export interface WorkflowSubjectDefinition {
1944
2126
  export type WorkflowBindingProvider = "fixed_users" | "initiator" | "input_users" | "form_field_users" | "department_supervisor" | "app_role" | "app_role_in_scope" | "business_relation" | "previous_node_actor" | "initiator_select" | "application_provider";
1945
2127
  export interface WorkflowBindingEntry {
1946
2128
  provider: WorkflowBindingProvider;
2129
+ /** Reference to the constrained subject field; role/scope remain declared once. */
2130
+ candidateField?: string;
1947
2131
  users?: string[];
1948
2132
  inputPath?: string;
1949
2133
  departmentIdFrom?: string;
@@ -2045,9 +2229,11 @@ export interface WorkflowRoleReference {
2045
2229
  configurationRevision: number;
2046
2230
  contexts: Array<'active' | 'in_flight'>;
2047
2231
  source: 'default_binding' | 'node_override' | 'routing_source';
2048
- provider: 'app_role' | 'app_role_in_scope';
2232
+ provider: 'app_role' | 'app_role_in_scope' | 'form_field_users';
2049
2233
  routingSourceCode?: string;
2050
2234
  scopeDimensionCode?: string;
2235
+ candidateField?: string;
2236
+ dataLogicalRevisionId?: string;
2051
2237
  }
2052
2238
  export interface WorkflowRoleReferencePage {
2053
2239
  schemaVersion: typeof SCHEMA_VERSIONS.workflowRoleReferencePage;
@@ -2127,6 +2313,8 @@ export interface WorkflowNodeConfigurations {
2127
2313
  title: string;
2128
2314
  binding?: WorkflowBindingEntry;
2129
2315
  mode?: WorkflowApprovalMode;
2316
+ emptyPolicy?: "block" | "skip";
2317
+ initiatorApprovalPolicy?: "manual" | "auto_approve";
2130
2318
  allowedOperations?: WorkflowCommand[];
2131
2319
  operationPolicy?: Partial<Record<WorkflowConfigurableOperation, WorkflowNodeOperationPolicy>>;
2132
2320
  fieldPolicy?: WorkflowApprovalNode['fieldPolicy'];
@@ -2140,6 +2328,8 @@ export interface WorkflowNodeConfigurations {
2140
2328
  binding?: WorkflowBindingEntry;
2141
2329
  bindingDigest?: string;
2142
2330
  mode?: WorkflowApprovalMode;
2331
+ emptyPolicy?: "block" | "skip";
2332
+ initiatorApprovalPolicy?: "manual" | "auto_approve";
2143
2333
  allowedOperations?: WorkflowCommand[];
2144
2334
  operationPolicy?: Partial<Record<WorkflowConfigurableOperation, WorkflowNodeOperationPolicy>>;
2145
2335
  fieldPolicy?: WorkflowApprovalNode['fieldPolicy'];
@@ -2621,6 +2811,8 @@ export interface WorkflowOperationSurface {
2621
2811
  method: "POST";
2622
2812
  href: string;
2623
2813
  idempotencyRequired: boolean;
2814
+ /** Fixed Workflow handler; shared client uses the current immutable app operation surface. */
2815
+ operationCode?: string;
2624
2816
  };
2625
2817
  refresh: string[];
2626
2818
  }
@@ -2679,6 +2871,36 @@ export interface WorkflowCommandInput {
2679
2871
  idempotencyKey: string;
2680
2872
  input?: Record<string, unknown>;
2681
2873
  }
2874
+ /** Original Workflow authority and exact subject CAS from the shared Surface client. */
2875
+ export interface WorkflowBusinessCommandInvocation extends WorkflowCommandInput {
2876
+ workflowCode: string;
2877
+ target: {
2878
+ kind: 'task';
2879
+ id: string;
2880
+ command: 'approve' | 'reject';
2881
+ } | {
2882
+ kind: 'instance';
2883
+ id: string;
2884
+ command: 'withdraw';
2885
+ };
2886
+ recordId: string;
2887
+ expectedRevision: number;
2888
+ }
2889
+ /** A verified Named Action combines business effects with the original Workflow decision. */
2890
+ export interface BusinessProcessCommandWithData {
2891
+ schemaVersion: typeof SCHEMA_VERSIONS.businessProcessCommandWithData;
2892
+ environmentKey: DeploymentEnvironment;
2893
+ workflow: WorkflowBusinessCommandInvocation;
2894
+ subject: {
2895
+ fromOperation: string;
2896
+ };
2897
+ data: BusinessProcessCommit['data'];
2898
+ expectedTransition: {
2899
+ status: 'running' | 'approved' | 'rejected' | 'withdrawn';
2900
+ outcome: string | null;
2901
+ currentNodeId: string | null;
2902
+ };
2903
+ }
2682
2904
  /**
2683
2905
  * Result returned by a task or instance Workflow command.
2684
2906
  *
@@ -2758,7 +2980,7 @@ export interface WorkflowTimelineFlowItem {
2758
2980
  nodeId: string | null;
2759
2981
  kind: "start" | WorkflowNode["kind"];
2760
2982
  title: string;
2761
- status: "completed" | "active" | "waiting" | "returned" | "cancelled" | "error";
2983
+ status: "completed" | "skipped" | "active" | "waiting" | "returned" | "cancelled" | "error";
2762
2984
  startedAt: IsoDateTime | null;
2763
2985
  completedAt: IsoDateTime | null;
2764
2986
  assignees: Array<{
@@ -2788,7 +3010,7 @@ export interface WorkflowTimelineItem {
2788
3010
  severity: "normal" | "admin" | "security";
2789
3011
  createdAt: IsoDateTime;
2790
3012
  }
2791
- export type WorkflowTimelineDisplayStatus = "completed" | "active" | "waiting" | "returned" | "rejected" | "withdrawn" | "terminated" | "cancelled" | "error";
3013
+ export type WorkflowTimelineDisplayStatus = "completed" | "skipped" | "active" | "waiting" | "returned" | "rejected" | "withdrawn" | "terminated" | "cancelled" | "error";
2792
3014
  export interface WorkflowTimelineDisplayOperation {
2793
3015
  id: string;
2794
3016
  operation: string;
@@ -2817,6 +3039,62 @@ export interface WorkflowTimelineDisplayEntry {
2817
3039
  export interface WorkflowTimelineDisplay {
2818
3040
  entries: WorkflowTimelineDisplayEntry[];
2819
3041
  }
3042
+ /** Read-only business history. No facts, raw log detail, tokens or role seats. */
3043
+ export interface WorkflowRecordHistoryPerson {
3044
+ userId: string;
3045
+ displayName: string;
3046
+ status: string;
3047
+ outcome: string | null;
3048
+ comment: string | null;
3049
+ completedAt: IsoDateTime | null;
3050
+ }
3051
+ export interface WorkflowRecordHistoryVisit {
3052
+ id: string;
3053
+ nodeId: string;
3054
+ nodeKind: string;
3055
+ title: string;
3056
+ status: string;
3057
+ enteredAt: IsoDateTime | null;
3058
+ completedAt: IsoDateTime | null;
3059
+ people: WorkflowRecordHistoryPerson[];
3060
+ }
3061
+ export interface WorkflowRecordHistoryOperation {
3062
+ id: string;
3063
+ nodeVisitId: string | null;
3064
+ operation: string;
3065
+ operationLabel: string;
3066
+ actor: {
3067
+ userId: string;
3068
+ displayName: string;
3069
+ };
3070
+ actingForUserId: string | null;
3071
+ reason: string | null;
3072
+ occurredAt: IsoDateTime | null;
3073
+ }
3074
+ export interface WorkflowRecordHistory {
3075
+ schemaVersion: 'openxiangda.workflow-record-history/v1';
3076
+ resourceCode: string;
3077
+ recordId: string;
3078
+ recordRevision: number;
3079
+ environmentKey: 'preproduction' | 'production';
3080
+ instance: {
3081
+ id: string;
3082
+ workflowCode: string;
3083
+ version: number;
3084
+ definitionVersionId: string;
3085
+ definitionDigest: string;
3086
+ status: string;
3087
+ eventSequence: number;
3088
+ startedAt: IsoDateTime | null;
3089
+ completedAt: IsoDateTime | null;
3090
+ };
3091
+ visits: WorkflowRecordHistoryVisit[];
3092
+ items: WorkflowRecordHistoryOperation[];
3093
+ total: number;
3094
+ limit: number;
3095
+ offset: number;
3096
+ hasMore: boolean;
3097
+ }
2820
3098
  export interface WorkflowTimeline {
2821
3099
  engineVersion: "2.0";
2822
3100
  instanceId: string;