@ximatai/muyun-web-app 0.26.16 → 0.26.17

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 (103) hide show
  1. package/dist/{BusinessActivityLogView-DVM_GB5y.js → BusinessActivityLogView-9RrW-RKb.js} +2 -2
  2. package/dist/BusinessLogListDrawer-DYVx9tiQ.js +864 -0
  3. package/dist/{ConfigurationTranslationView-B0FosDyz.js → ConfigurationTranslationView-Bh_ekuMP.js} +40 -40
  4. package/dist/{LoginAuditLogView-3tAozKlC.js → LoginAuditLogView-DG6iBXEn.js} +2 -2
  5. package/dist/ModuleActionManagementView-DgHqhoMN.js +755 -0
  6. package/dist/{ModuleGovernanceView-DsqR_Sj7.js → ModuleGovernanceView-C53RnUzc.js} +2994 -2994
  7. package/dist/{RequestErrorLogView-C4yH-TSX.js → RequestErrorLogView-Ba5p0hLE.js} +2 -2
  8. package/dist/{RoleDetailWorkspaceView-BpOoGUwS.js → RoleDetailWorkspaceView-C3TBqksY.js} +157 -157
  9. package/dist/{RuntimeLogView-CoKKpJ39.js → RuntimeLogView-BFEABm8G.js} +66 -66
  10. package/dist/WorkflowAdministrationView-BOHG2e-I.js +650 -0
  11. package/dist/WorkflowConfigurationView-A0m5tBX9.js +1097 -0
  12. package/dist/WorkflowWorkbenchView-DGpNDt5V.js +759 -0
  13. package/dist/index.css +1 -1
  14. package/dist/index.js +606 -590
  15. package/dist/moduleGovernanceWorkspaceView-DNKzYX0x.js +667 -0
  16. package/dist/{platform-components-Cl5ZZiuU.js → platform-components-BBfyINHa.js} +8858 -6085
  17. package/dist/{platform-workbench-CAHoriIf.js → platform-workbench-C1hmkOUD.js} +6546 -6637
  18. package/dist/types/app/CurrentUserProfileDialog.vue.d.ts +1 -1
  19. package/dist/types/app/useAssistantAvailability.d.ts +8 -0
  20. package/dist/types/app/useCurrentUserProfile.d.ts +12 -0
  21. package/dist/types/app/workbenchRouteSync.d.ts +2 -0
  22. package/dist/types/consumer/AppWorkbenchShell.vue.d.ts +4 -2
  23. package/dist/types/dynamic-page-runtime/ModulePageBusinessSession.d.ts +8 -8
  24. package/dist/types/dynamic-page-runtime/ModulePageHostRuntime.vue.d.ts +208 -92
  25. package/dist/types/dynamic-page-runtime/assistantQueryCapabilities.d.ts +1 -0
  26. package/dist/types/dynamic-page-runtime/composables/useManagedDetailRelationRuntime.d.ts +2 -2
  27. package/dist/types/dynamic-page-runtime/composables/useNavigatorRuntime.d.ts +2 -2
  28. package/dist/types/dynamic-page-runtime/useModulePageSession.d.ts +4 -4
  29. package/dist/types/dynamic-page-runtime/useModuleRecordDataChanges.d.ts +4 -0
  30. package/dist/types/main.d.ts +0 -1
  31. package/dist/types/platform-components/BusinessContentGenerationPanel.vue.d.ts +22 -0
  32. package/dist/types/platform-components/BusinessContentQueryNotice.vue.d.ts +17 -0
  33. package/dist/types/platform-components/CrudRecordListExplorer.vue.d.ts +2 -2
  34. package/dist/types/platform-components/DictionaryOptionDialog.vue.d.ts +4 -4
  35. package/dist/types/platform-components/DictionaryOptionDialogChoiceList.vue.d.ts +1 -1
  36. package/dist/types/platform-components/DictionaryPicker.vue.d.ts +4 -4
  37. package/dist/types/platform-components/ObjectPickerInput.vue.d.ts +2 -2
  38. package/dist/types/platform-components/QueryCriteriaGroupEditor.vue.d.ts +2 -2
  39. package/dist/types/platform-components/RecordContentSourceField.vue.d.ts +22 -0
  40. package/dist/types/platform-components/RecordContentTranslationField.vue.d.ts +26 -0
  41. package/dist/types/platform-components/RecordDataExchangeSurface.vue.d.ts +26 -0
  42. package/dist/types/platform-components/RecordDetailFields.vue.d.ts +3 -2
  43. package/dist/types/platform-components/RecordFormFields.vue.d.ts +3 -2
  44. package/dist/types/platform-components/RecordModeDrawer.vue.d.ts +1 -1
  45. package/dist/types/platform-components/RecordQueryListCell.vue.d.ts +1 -0
  46. package/dist/types/platform-components/RecordQueryListPanel.vue.d.ts +1 -1
  47. package/dist/types/platform-components/RecordQueryListSurface.vue.d.ts +1 -1
  48. package/dist/types/{dynamic-page-runtime/ModuleDataExchangeSurface.vue.d.ts → platform-components/RecordQuerySortSelector.vue.d.ts} +5 -9
  49. package/dist/types/platform-components/RecordRelationValue.vue.d.ts +2 -0
  50. package/dist/types/platform-components/StaticManagementLayout.vue.d.ts +7 -2
  51. package/dist/types/platform-components/WorkflowRecordPanel.vue.d.ts +2 -0
  52. package/dist/types/platform-components/WorkflowTimeline.vue.d.ts +4 -0
  53. package/dist/types/platform-components/crudRecordListModel.d.ts +1 -0
  54. package/dist/types/platform-components/index.d.ts +1 -0
  55. package/dist/types/platform-components/loadExplorerRecords.d.ts +3 -0
  56. package/dist/types/platform-components/recordDetailFieldModel.d.ts +2 -0
  57. package/dist/types/platform-components/recordFormFieldModel.d.ts +2 -0
  58. package/dist/types/platform-components/recordQueryListQueryController.d.ts +2 -0
  59. package/dist/types/platform-components/recordSurfaceActivity.d.ts +3 -0
  60. package/dist/types/platform-components/recycleBinState.d.ts +1 -0
  61. package/dist/types/platform-components/referencePickerModel.d.ts +6 -2
  62. package/dist/types/platform-components/scopedTreePickerModel.d.ts +4 -0
  63. package/dist/types/platform-workbench/Workbench.vue.d.ts +9 -4
  64. package/dist/types/platform-workbench/WorkbenchGlobalTools.vue.d.ts +16 -0
  65. package/dist/types/platform-workbench/WorkbenchLanguageSettings.vue.d.ts +11 -0
  66. package/dist/types/platform-workbench/WorkbenchPageTitle.vue.d.ts +10 -0
  67. package/dist/types/platform-workbench/menuGroupLayout.d.ts +5 -0
  68. package/dist/types/platform-workbench/menuTreeModel.d.ts +1 -2
  69. package/dist/types/platform-workbench/useAssistantConversation.d.ts +1 -1
  70. package/dist/types/platform-workbench/useAssistantConversationArchive.d.ts +1 -1
  71. package/dist/types/platform-workbench/useLanguagePreferenceSelection.d.ts +7 -0
  72. package/dist/types/views/PageQuerySummaryEditor.vue.d.ts +4 -4
  73. package/dist/types/views/WorkflowSelectionFields.vue.d.ts +28 -0
  74. package/dist/types/views/metadataEditorSession.d.ts +4 -0
  75. package/dist/types/views/metadataOrchestrationState.d.ts +3 -0
  76. package/dist/types/views/metadataWorkspace.d.ts +8 -0
  77. package/dist/types/vue-ui-antdv/components/UiDropdown.vue.d.ts +1 -0
  78. package/dist/types/vue-ui-antdv/components/UiIcon.vue.d.ts +1 -1
  79. package/dist/types/vue-ui-antdv/components/UiModal.vue.d.ts +9 -6
  80. package/dist/types/vue-ui-antdv/types.d.ts +2 -0
  81. package/dist/types/vue-ui-antdv/typography.d.ts +25 -0
  82. package/dist/types/web-contracts/index.d.ts +132 -1
  83. package/dist/types/web-contracts/workflow.d.ts +10 -0
  84. package/dist/types/web-core/assistantTurnClient.d.ts +2 -0
  85. package/dist/types/web-core/businessContent.d.ts +38 -0
  86. package/dist/types/web-core/businessContentLanguage.d.ts +18 -0
  87. package/dist/types/web-core/index.d.ts +5 -0
  88. package/dist/types/web-core/languagePreference.d.ts +2 -2
  89. package/dist/types/web-core/module/dataExchangeClient.d.ts +83 -1
  90. package/dist/types/web-core/module/staticModuleClient.d.ts +9 -3
  91. package/dist/types/web-core/presentationTexts.d.ts +5 -0
  92. package/dist/types/web-core/recordReadRefreshGuard.d.ts +7 -0
  93. package/dist/types/web-core/useBusinessContentGenerationBatch.d.ts +36 -0
  94. package/dist/types/web-core/useBusinessContentReading.d.ts +30 -0
  95. package/dist/types/web-core/workflow.d.ts +2 -1
  96. package/dist/{workspaceViews-BIYGPUAO.js → workspaceViews-BpH71LKQ.js} +542 -542
  97. package/package.json +1 -1
  98. package/dist/BusinessLogListDrawer-BciMLY9z.js +0 -864
  99. package/dist/ModuleActionManagementView-CJRNShGg.js +0 -755
  100. package/dist/WorkflowAdministrationView-DmUV6vWS.js +0 -650
  101. package/dist/WorkflowConfigurationView-pghDbWEh.js +0 -975
  102. package/dist/WorkflowWorkbenchView-BwWxyDen.js +0 -747
  103. package/dist/moduleGovernanceWorkspaceView-DGEV3ZyT.js +0 -667
@@ -108,7 +108,15 @@ export interface WorkflowTask {
108
108
  decision?: string;
109
109
  completedAt?: string;
110
110
  }
111
+ export interface WorkflowRecordInstance {
112
+ id: string;
113
+ versionNo?: number;
114
+ instanceStatus: string;
115
+ approvalEnabled: boolean;
116
+ startedAt?: string;
117
+ }
111
118
  export interface WorkflowEvent {
119
+ version?: number | null;
112
120
  messageText?: TextPresentation;
113
121
  id: string;
114
122
  taskId?: string;
@@ -184,12 +192,14 @@ export interface WorkflowWorkbenchCard {
184
192
  readable: boolean;
185
193
  moduleTitleSource?: import('./index').TextReference;
186
194
  moduleTitleText?: import('./index').TextPresentation;
195
+ titleContentText?: import('./index').BusinessContentTextPresentation;
187
196
  };
188
197
  instanceId: string;
189
198
  moduleAlias: string;
190
199
  recordId: string;
191
200
  taskId?: string;
192
201
  nodeTitle?: string;
202
+ taskKind?: string;
193
203
  taskStatus?: string;
194
204
  approvalStatus?: string;
195
205
  instanceStatus: string;
@@ -12,5 +12,7 @@ export interface AssistantModelRequestObservation {
12
12
  toolCallCount?: number;
13
13
  }
14
14
  export type AssistantTurnRequester = (input: AssistantTurnInput, signal: AbortSignal, progress?: AssistantTurnProgress) => Promise<AssistantTurnOutput>;
15
+ /** Reads only the current backend identity's configuration decision, without exposing route details. */
16
+ export declare function readAssistantAvailability(http: HttpClient, signal?: AbortSignal): Promise<boolean>;
15
17
  /** Uses the supplied transport as-is so page-owned tenant scope remains authoritative. */
16
18
  export declare function createAssistantTurnRequester(http: HttpClient): AssistantTurnRequester;
@@ -0,0 +1,38 @@
1
+ import type { HttpClient } from './http';
2
+ import type { BusinessContentGenerationSource, BusinessContentGenerationBatchCommand, BusinessContentGenerationBatchResult } from '../web-contracts/index';
3
+ import type { BusinessContentSources, BusinessContentRevision } from '../web-contracts/index';
4
+ import type { BusinessContentReading, BusinessContentGenerationStatus, BusinessContentTranslationMaintenance, BusinessContentTranslationChange, BusinessContentTranslationRevision } from '../web-contracts/index';
5
+ export type BusinessContentRelationScope = {
6
+ kind?: 'aggregate';
7
+ parentId: string;
8
+ relationCode: string;
9
+ workflowInstanceId?: never;
10
+ history?: never;
11
+ } | {
12
+ kind: 'workflowEvent';
13
+ workflowInstanceId: string;
14
+ history?: boolean;
15
+ parentId?: never;
16
+ relationCode?: never;
17
+ };
18
+ export declare function businessContentGenerationBatch(http: HttpClient, source: BusinessContentGenerationSource, command: BusinessContentGenerationBatchCommand, operation: 'status' | 'request', signal?: AbortSignal): Promise<BusinessContentGenerationBatchResult>;
19
+ /** The source belongs to the actual row, including an owned aggregate child. */
20
+ export declare function businessContentPath(moduleAlias: string, id: string, relation?: BusinessContentRelationScope): string;
21
+ export declare function loadBusinessContentSources(http: HttpClient, moduleAlias: string, id: string, relation?: BusinessContentRelationScope, snapshot?: object, sessionKey?: string | number): Promise<BusinessContentSources>;
22
+ export declare function loadBusinessContentHistory(http: HttpClient, moduleAlias: string, id: string, field: string, page: number, relation?: BusinessContentRelationScope): Promise<BusinessContentRevision[]>;
23
+ export declare function loadBusinessContentReading(http: HttpClient, moduleAlias: string, id: string, language: string, relation?: BusinessContentRelationScope, snapshot?: object, sessionKey?: string | number, refreshRevision?: number): Promise<BusinessContentReading>;
24
+ export declare function prepareBusinessContentTranslation(http: HttpClient, moduleAlias: string, id: string, field: string, language: string, access: 'edit' | 'confirm', relation?: BusinessContentRelationScope): Promise<BusinessContentTranslationMaintenance>;
25
+ export declare function changeBusinessContentTranslation(http: HttpClient, moduleAlias: string, id: string, field: string, language: string, operation: 'draft' | 'confirm' | 'remove', change: BusinessContentTranslationChange, relation?: BusinessContentRelationScope, snapshot?: object): Promise<BusinessContentTranslationMaintenance>;
26
+ export declare function loadBusinessContentTranslationHistory(http: HttpClient, moduleAlias: string, id: string, field: string, language: string, access: 'edit' | 'confirm', source: {
27
+ revisionId: string;
28
+ revision: number;
29
+ }, page: number, relation?: BusinessContentRelationScope): Promise<BusinessContentTranslationRevision[]>;
30
+ export interface BusinessContentGenerationOptions {
31
+ relation?: BusinessContentRelationScope;
32
+ snapshot?: object;
33
+ signal?: AbortSignal;
34
+ }
35
+ /** Read-only status. No enqueue, retry or model invocation. */
36
+ export declare function loadBusinessContentGeneration(http: HttpClient, moduleAlias: string, id: string, field: string, language: string, options?: BusinessContentGenerationOptions): Promise<BusinessContentGenerationStatus>;
37
+ /** Explicit reading generation or manual-field drafting; source, identity and route are resolved by the server. */
38
+ export declare function requestBusinessContentGeneration(http: HttpClient, moduleAlias: string, id: string, field: string, language: string, retry?: boolean, options?: BusinessContentGenerationOptions): Promise<BusinessContentGenerationStatus>;
@@ -0,0 +1,18 @@
1
+ import type { LanguageContext } from './language';
2
+ export declare const businessContentLanguages: readonly [{
3
+ readonly value: "zh-CN";
4
+ readonly label: "简体中文";
5
+ }, {
6
+ readonly value: "en";
7
+ readonly label: "English";
8
+ }, {
9
+ readonly value: "de";
10
+ readonly label: "Deutsch";
11
+ }];
12
+ export type BusinessContentLanguageContext = Pick<LanguageContext, 'languageTag' | 'requestedLanguageTag' | 'selectionRevision' | 'setLanguage'>;
13
+ /** Reading intent belongs to this interface scope; it never changes the interface or original language. */
14
+ export declare function businessContentLanguageContext(language: LanguageContext): BusinessContentLanguageContext;
15
+ /** A bounded reading snapshot lets language changes preserve local picker and form drafts. */
16
+ export declare function businessContentReadHeaders(options?: {
17
+ contentLanguage?: string;
18
+ }): Record<string, string>;
@@ -28,3 +28,8 @@ export type { WorkspaceUnsavedStateRegistrar } from './workspaceUnsavedState';
28
28
  export * from './language';
29
29
  export * from './languagePreference';
30
30
  export * from './presentationTexts';
31
+ export * from './businessContent';
32
+ export * from './useBusinessContentGenerationBatch';
33
+ export * from './useBusinessContentReading';
34
+ export * from './businessContentLanguage';
35
+ export * from './recordReadRefreshGuard';
@@ -1,8 +1,8 @@
1
1
  import type { LanguageContext } from './language';
2
2
  import { type UserPreferenceStore } from './userPreferences';
3
3
  /** Scope changes and user selection invalidate delayed restores; queued writes never cross accounts. */
4
- export declare function createLanguagePreferenceController(context: LanguageContext, store?: UserPreferenceStore): {
4
+ export declare function createLanguagePreferenceController(context: Pick<LanguageContext, 'setLanguage' | 'languageTag' | 'requestedLanguageTag' | 'selectionRevision'>, store?: UserPreferenceStore, preferenceKey?: string): {
5
5
  restore(identity?: string): Promise<void>;
6
- save(tag: string): Promise<void>;
6
+ save(tag?: string): Promise<void>;
7
7
  dispose(): void;
8
8
  };
@@ -1,5 +1,83 @@
1
1
  import type { HttpClient } from '../http';
2
2
  import type { TextPresentation, WebQueryRequest } from '../../web-contracts/index';
3
+ import type { RecordQueryRequestOptions } from './staticModuleClient';
4
+ export type ExchangePurpose = 'DATA' | 'TRANSLATIONS' | 'READING';
5
+ export interface ExchangeOptions {
6
+ purpose: ExchangePurpose;
7
+ language: string;
8
+ timeZone?: string;
9
+ }
10
+ export interface ExchangeCommand {
11
+ documentId?: string;
12
+ previewDigest?: string;
13
+ sourceLanguage?: string;
14
+ resolutionLanguage?: string;
15
+ sheets: Array<{
16
+ entityAlias: string;
17
+ matchField: string;
18
+ duplicateStrategy: ImportDuplicateStrategy;
19
+ }>;
20
+ confirmations: Array<{
21
+ row: string;
22
+ field: string;
23
+ input: string;
24
+ candidateId: string;
25
+ }>;
26
+ }
27
+ export interface ExchangeRow {
28
+ row: string;
29
+ entity: string;
30
+ relation: string;
31
+ operation: string;
32
+ recordId?: string;
33
+ currentValues: Record<string, unknown>;
34
+ changes: Record<string, unknown>;
35
+ languages: Record<string, {
36
+ languageTag?: string;
37
+ expectedRevision?: number;
38
+ }>;
39
+ choices: Array<{
40
+ field: string;
41
+ input: string;
42
+ candidates: Array<{
43
+ id: string;
44
+ title: string;
45
+ matchedText: string;
46
+ kind: string;
47
+ subtitle?: string | null;
48
+ }>;
49
+ }>;
50
+ problem?: string;
51
+ references?: Record<string, {
52
+ current?: string | null;
53
+ submitted?: string | null;
54
+ }>;
55
+ }
56
+ export interface ExchangePreview {
57
+ documentId: string;
58
+ previewDigest: string;
59
+ purpose: ExchangePurpose;
60
+ language?: string;
61
+ sheets: Array<{
62
+ entityAlias: string;
63
+ sheetName: string;
64
+ main: boolean;
65
+ rowCount: number;
66
+ matchFields: string[];
67
+ fieldTitles: Record<string, string>;
68
+ recommendedMatchField?: string | null;
69
+ }>;
70
+ rows: ExchangeRow[];
71
+ }
72
+ export interface ExchangeResult {
73
+ created: number;
74
+ updated: number;
75
+ skipped: number;
76
+ errorCount: number;
77
+ partialSuccess: boolean;
78
+ errorWorkbookBase64?: string;
79
+ rows: ExchangeRow[];
80
+ }
3
81
  export type ImportDuplicateStrategy = 'ERROR' | 'SKIP' | 'OVERWRITE';
4
82
  export interface ImportSheet {
5
83
  sheetName: string;
@@ -44,8 +122,12 @@ export interface ImportExecutionResult {
44
122
  errorFileName?: string;
45
123
  errorFileToken?: string;
46
124
  }
47
- /** Dynamic EXCHANGE transport; domain execution remains behind the module's standard action scope. */
125
+ /** Source-neutral file transport. The legacy v1 methods remain available while consumers migrate. */
48
126
  export declare function createDataExchangeClient(http: HttpClient, moduleAlias: string): {
127
+ fileTemplate: (options: ExchangeOptions) => Promise<Blob>;
128
+ preview(file: File, command?: ExchangeCommand): Promise<ExchangePreview>;
129
+ importFile(file: File, command: ExchangeCommand): Promise<ExchangeResult>;
130
+ exportFile(query: WebQueryRequest | undefined, options: ExchangeOptions, ids?: string[], queryOptions?: RecordQueryRequestOptions): Promise<Blob>;
49
131
  template: () => Promise<Blob>;
50
132
  parse(file: File): Promise<ImportParseResult>;
51
133
  execute(file: File, command: ImportExecutionCommand): Promise<ImportExecutionResult>;
@@ -11,6 +11,10 @@ export interface QuerySchemaRequestOptions {
11
11
  uiConfigId?: string;
12
12
  queryTemplateId?: string;
13
13
  }
14
+ /** Display intent only, independent of original-content and interface languages. */
15
+ export interface RecordQueryRequestOptions {
16
+ contentLanguage?: string;
17
+ }
14
18
  export interface RecordSaveRequestOptions {
15
19
  requestId: string;
16
20
  }
@@ -23,7 +27,7 @@ export interface RecordSaveReceipt {
23
27
  /** Source-neutral client for a platform module's standard CRUD contract. */
24
28
  export interface ModuleCrudClient<TRecord> {
25
29
  querySchema(options?: QuerySchemaRequestOptions): Promise<QuerySchema>;
26
- query(request?: WebQueryRequest): Promise<WebPageResponse<TRecord>>;
30
+ query(request?: WebQueryRequest, options?: RecordQueryRequestOptions): Promise<WebPageResponse<TRecord>>;
27
31
  view(id: string): Promise<TRecord>;
28
32
  insert(record: TRecord, options?: RecordSaveRequestOptions): Promise<StaticRecordMutationResult<TRecord>>;
29
33
  update(id: string, record: TRecord, options?: RecordSaveRequestOptions): Promise<StaticRecordMutationResult<TRecord>>;
@@ -61,7 +65,7 @@ export interface ModuleEnableClient {
61
65
  * server-issued relation code are the only routing facts a surface receives.
62
66
  */
63
67
  export interface ManagedDetailRelationClient<TRecord> {
64
- query(request?: WebQueryRequest): Promise<WebPageResponse<TRecord>>;
68
+ query(request?: WebQueryRequest, options?: RecordQueryRequestOptions): Promise<WebPageResponse<TRecord>>;
65
69
  insert(record: TRecord): Promise<StaticRecordMutationResult<TRecord>>;
66
70
  update(id: string, record: TRecord): Promise<StaticRecordMutationResult<TRecord>>;
67
71
  delete(id: string, request: RecordActionRequest): Promise<StaticCountMutationResult>;
@@ -79,7 +83,7 @@ export interface NavigatorReferenceCrudClient<TRecord> extends ModuleCrudClient<
79
83
  translate(ids: readonly string[]): Promise<WebPageResponse<TRecord>>;
80
84
  }
81
85
  /** The navigation-only read surface deliberately does not reuse the module query endpoint. */
82
- export declare function createNavigatorReferenceCrudClient<TRecord>(http: HttpClient, options: {
86
+ export declare function createNavigatorReferenceCrudClient<TRecord>(http: HttpClient, navigatorOptions: {
83
87
  moduleAlias: string;
84
88
  navigatorReference?: NavigatorReferenceRequestContext;
85
89
  }): NavigatorReferenceCrudClient<TRecord>;
@@ -120,3 +124,5 @@ export declare function normalizeModuleRecord<TRecord>(record: TRecord): TRecord
120
124
  * public lets those descriptor-driven surfaces reuse the one normalization rule.</p>
121
125
  */
122
126
  export declare function normalizeModulePageResponse<TRecord>(response: WebPageResponse<TRecord>): WebPageResponse<TRecord>;
127
+ export declare function normalizeModuleListResponse<TRecord>(response: WebListResponse<TRecord>): WebListResponse<TRecord>;
128
+ export declare function normalizeModuleTreeResponse<TRecord>(response: WebListResponse<WebTreeNode<TRecord>>): WebListResponse<WebTreeNode<TRecord>>;
@@ -1,3 +1,4 @@
1
+ import type { BusinessContentTextPresentation } from '../web-contracts/index';
1
2
  import type { TextReference, TextPresentation, TextPresentationDocument } from '../web-contracts/index';
2
3
  import type { LanguageContext, TextResolution } from './language';
3
4
  /** Snapshot a producer's concrete CODE original; arguments format deployed resources, never business values in the fallback. */
@@ -14,3 +15,7 @@ export declare function recordPresentationText(record: object | undefined, field
14
15
  export declare function recordPresentationLabel(record: object, field: string, context: LanguageContext): string | undefined;
15
16
  /** Removes only the record's read metadata; arbitrary nested JSON business values are preserved. */
16
17
  export declare function withoutRecordPresentation<T>(record: T): T;
18
+ /** An edited original immediately invalidates its disposable reading snapshot. */
19
+ export declare function businessContentLabel(original: string, text: BusinessContentTextPresentation | undefined, context: LanguageContext): string | undefined;
20
+ export declare function recordBusinessContentText(record: object | undefined, field: string): BusinessContentTextPresentation | undefined;
21
+ export declare function recordBusinessContentArray(record: Record<string, unknown>, field: string, context: LanguageContext): unknown;
@@ -0,0 +1,7 @@
1
+ /** Nested record hosts share a guard so a read refresh cannot destroy an open maintenance session. */
2
+ export declare function provideRecordReadRefreshGuard(): {
3
+ blocked: import("vue").ComputedRef<boolean>;
4
+ invalidate: () => void;
5
+ };
6
+ export declare function useRecordReadRefreshRevision(): import("vue").ComputedRef<number>;
7
+ export declare function useRecordReadRefreshGuard(held: () => boolean): void;
@@ -0,0 +1,36 @@
1
+ import type { BusinessContentGenerationBatchResult, BusinessContentGenerationSource } from '../web-contracts/index';
2
+ import type { HttpClient } from './http';
3
+ interface Selection {
4
+ active: boolean;
5
+ http?: HttpClient;
6
+ source?: BusinessContentGenerationSource | null;
7
+ records: readonly {
8
+ id: string;
9
+ version?: unknown;
10
+ }[];
11
+ language: string;
12
+ includeChildren: boolean;
13
+ sessionKey?: unknown;
14
+ }
15
+ /** A topic-specific selection session: previews never enqueue; polling never retries generation. */
16
+ export declare function useBusinessContentGenerationBatch(options: () => Selection): {
17
+ result: import("vue").Ref<BusinessContentGenerationBatchResult | undefined, BusinessContentGenerationBatchResult | undefined>;
18
+ items: import("vue").ComputedRef<{
19
+ recordId: string;
20
+ ownerId: string;
21
+ relationCode: string | null;
22
+ childId: string | null;
23
+ field: string | null;
24
+ status: import("../web-contracts/index").BusinessContentGenerationStatus;
25
+ }[]>;
26
+ loading: import("vue").Ref<boolean, boolean>;
27
+ failed: import("vue").Ref<boolean, boolean>;
28
+ error: import("vue").Ref<unknown, unknown>;
29
+ pollingPaused: import("vue").Ref<boolean, boolean>;
30
+ pending: import("vue").ComputedRef<boolean>;
31
+ canGenerate: import("vue").ComputedRef<boolean>;
32
+ canRetry: import("vue").ComputedRef<boolean>;
33
+ preview: () => Promise<void>;
34
+ request: (retry?: boolean) => Promise<void>;
35
+ };
36
+ export {};
@@ -0,0 +1,30 @@
1
+ import type { BusinessContentField, BusinessContentGenerationStatus, BusinessContentReadingField } from '../web-contracts/index';
2
+ import type { HttpClient } from './http';
3
+ import { type BusinessContentRelationScope } from './businessContent';
4
+ interface ReadingOptions {
5
+ active?: boolean;
6
+ http?: HttpClient;
7
+ moduleAlias?: string;
8
+ record: Record<string, unknown>;
9
+ fieldName: string;
10
+ content: BusinessContentField;
11
+ language: string;
12
+ mode: 'create' | 'edit' | 'view';
13
+ relation?: BusinessContentRelationScope;
14
+ sessionKey?: string | number;
15
+ }
16
+ /** Shared saved-record reading. Translation work never mutates the caller's business draft. */
17
+ export declare function useBusinessContentReading(options: () => ReadingOptions): {
18
+ reading: import("vue").Ref<BusinessContentReadingField | undefined, BusinessContentReadingField | undefined>;
19
+ loading: import("vue").Ref<boolean, boolean>;
20
+ failed: import("vue").Ref<boolean, boolean>;
21
+ matches: import("vue").ComputedRef<boolean>;
22
+ status: import("vue").Ref<BusinessContentGenerationStatus | undefined, BusinessContentGenerationStatus | undefined>;
23
+ generationBusy: import("vue").Ref<boolean, boolean>;
24
+ generationFailed: import("vue").Ref<boolean, boolean>;
25
+ pollingPaused: import("vue").Ref<boolean, boolean>;
26
+ canRetry: import("vue").ComputedRef<boolean>;
27
+ load: () => Promise<void>;
28
+ retry: () => Promise<void>;
29
+ };
30
+ export {};
@@ -1,10 +1,11 @@
1
- import type { WorkflowDefinition, WorkflowVersion, WorkflowTaskPreparation, WorkflowConfigurationCatalog, WorkflowDefinitionSelection, WorkflowDefinitionCreate, WorkflowAdminInstance, WorkflowAdminTask, WorkflowAdminInstanceQuery, WorkflowAdminHistoryQuery, WorkflowAction, WorkflowAddSignExplanation, WorkflowBranch, WorkflowDesign, WorkflowEvent, WorkflowHistoryInstance, WorkflowRenderBundle, WorkflowStatus, WorkflowTask, WorkflowWorkbenchCard, WorkflowWorkbenchFilters, WebPageResponse } from '../web-contracts/index';
1
+ import type { WorkflowDefinition, WorkflowVersion, WorkflowTaskPreparation, WorkflowConfigurationCatalog, WorkflowDefinitionSelection, WorkflowDefinitionCreate, WorkflowAdminInstance, WorkflowAdminTask, WorkflowAdminInstanceQuery, WorkflowAdminHistoryQuery, WorkflowAction, WorkflowAddSignExplanation, WorkflowBranch, WorkflowDesign, WorkflowEvent, WorkflowHistoryInstance, WorkflowRenderBundle, WorkflowStatus, WorkflowTask, WorkflowRecordInstance, WorkflowWorkbenchCard, WorkflowWorkbenchFilters, WebPageResponse } from '../web-contracts/index';
2
2
  import type { HttpClient } from './http';
3
3
  import type { ModuleContext } from './module/moduleContext';
4
4
  /** Workflow mutations change ordinary record rights as well as the record itself. */
5
5
  export declare function refreshWorkflowRecordActions(context: Pick<ModuleContext<unknown>, 'invalidateRecordActions' | 'recordActions'>, recordId: string): Promise<void>;
6
6
  /** All operation rights remain server decisions. The client only carries typed intent. */
7
7
  export declare function createWorkflowClient(http: HttpClient): {
8
+ recordInstances: (moduleAlias: string, recordId: string, page?: number, size?: number) => Promise<WebPageResponse<WorkflowRecordInstance>>;
8
9
  history: (moduleAlias: string, recordId: string) => Promise<WorkflowHistoryInstance[]>;
9
10
  historyBundle: (id: string) => Promise<WorkflowRenderBundle>;
10
11
  historyTasks: (id: string) => Promise<WorkflowTask[]>;