@ximatai/muyun-web-app 0.26.12 → 0.26.14

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 (152) hide show
  1. package/dist/BusinessActivityLogView-BUg5WTm-.js +16 -0
  2. package/dist/BusinessLogListDrawer-BOTE_7aT.js +825 -0
  3. package/dist/LoginAuditLogView-DBNtvmIy.js +16 -0
  4. package/dist/{ModuleActionManagementView-BHEooZ5L.js → ModuleActionManagementView-Bq1VO51Y.js} +207 -206
  5. package/dist/{ModuleGovernanceView-DB3TWlMy.js → ModuleGovernanceView-B8u4_erd.js} +4036 -3213
  6. package/dist/RequestErrorLogView-BrtH3ptj.js +16 -0
  7. package/dist/RoleDetailWorkspaceView-6LW3tLA1.js +1397 -0
  8. package/dist/RuntimeLogView-s3X5CdHB.js +297 -0
  9. package/dist/index.css +1 -1
  10. package/dist/index.js +499 -469
  11. package/dist/{moduleGovernanceWorkspaceView-C5pqJOEJ.js → moduleGovernanceWorkspaceView-BRgJbUjJ.js} +2 -2
  12. package/dist/platform-components-Dt859Hbr.js +18627 -0
  13. package/dist/platform-workbench-DfqFnlm-.js +14701 -0
  14. package/dist/sse-mGbuCAax.js +187 -0
  15. package/dist/types/consumer/index.d.ts +7 -0
  16. package/dist/types/dynamic-page-runtime/ModulePageBusinessSession.d.ts +2418 -0
  17. package/dist/types/dynamic-page-runtime/ModulePageBusinessState.vue.d.ts +11 -0
  18. package/dist/types/dynamic-page-runtime/ModulePageHost.vue.d.ts +20 -4
  19. package/dist/types/dynamic-page-runtime/ModulePageHostRuntime.vue.d.ts +4643 -0
  20. package/dist/types/dynamic-page-runtime/ModulePageHostSession.vue.d.ts +43 -0
  21. package/dist/types/dynamic-page-runtime/ModulePageRecordContent.vue.d.ts +2 -2
  22. package/dist/types/dynamic-page-runtime/ModuleRecordDetailActions.vue.d.ts +3 -0
  23. package/dist/types/dynamic-page-runtime/ModuleReferenceRecordDetailBrowser.vue.d.ts +42 -0
  24. package/dist/types/dynamic-page-runtime/PageNavigatorExplorer.vue.d.ts +2 -2
  25. package/dist/types/dynamic-page-runtime/RecordFormSurface.vue.d.ts +2 -2
  26. package/dist/types/dynamic-page-runtime/TenantScopeExplorer.vue.d.ts +21 -0
  27. package/dist/types/dynamic-page-runtime/assistantRecordEditorPolicy.d.ts +6 -0
  28. package/dist/types/dynamic-page-runtime/composables/useModulePageActions.d.ts +1 -1
  29. package/dist/types/dynamic-page-runtime/composables/useModulePageDetailActionRuntime.d.ts +5 -0
  30. package/dist/types/dynamic-page-runtime/composables/useModulePageListSession.d.ts +1 -0
  31. package/dist/types/dynamic-page-runtime/composables/useNavigatorRuntime.d.ts +1 -0
  32. package/dist/types/dynamic-page-runtime/composables/useRecordEditingSession.d.ts +2 -0
  33. package/dist/types/dynamic-page-runtime/formActionResult.d.ts +2 -0
  34. package/dist/types/dynamic-page-runtime/index.d.ts +3 -0
  35. package/dist/types/dynamic-page-runtime/inputValidationActionStatus.d.ts +20 -0
  36. package/dist/types/dynamic-page-runtime/modulePageAssistantScope.d.ts +8 -0
  37. package/dist/types/dynamic-page-runtime/modulePageAssistantSurface.d.ts +6 -0
  38. package/dist/types/dynamic-page-runtime/modulePageEnhancements.d.ts +7 -3
  39. package/dist/types/dynamic-page-runtime/modulePageUnsavedState.d.ts +10 -0
  40. package/dist/types/dynamic-page-runtime/recordDetailController.d.ts +1 -0
  41. package/dist/types/dynamic-page-runtime/recordMutationPayload.d.ts +3 -2
  42. package/dist/types/dynamic-page-runtime/referenceRecordProjection.d.ts +6 -0
  43. package/dist/types/dynamic-page-runtime/sessionViewBindings.d.ts +3 -0
  44. package/dist/types/dynamic-page-runtime/sourceReferencePickerConfig.d.ts +26 -0
  45. package/dist/types/dynamic-page-runtime/useModulePageSession.d.ts +1833 -0
  46. package/dist/types/dynamic-page-runtime/useTenantScopeController.d.ts +19 -0
  47. package/dist/types/platform-admin-runtime/WorkspaceViewDrawer.vue.d.ts +5 -0
  48. package/dist/types/platform-admin-runtime/role/roleScopeSelectionClient.d.ts +52 -0
  49. package/dist/types/platform-components/CrudRecordListExplorer.vue.d.ts +13 -2
  50. package/dist/types/platform-components/DictionaryOptionDialog.vue.d.ts +37 -0
  51. package/dist/types/platform-components/DictionaryOptionDialogChoiceList.vue.d.ts +21 -0
  52. package/dist/types/platform-components/DictionaryPicker.vue.d.ts +47 -0
  53. package/dist/types/platform-components/DictionaryRadioGroup.vue.d.ts +20 -0
  54. package/dist/types/platform-components/EmployeePicker.vue.d.ts +40 -0
  55. package/dist/types/platform-components/FileTransferUploader.vue.d.ts +1 -1
  56. package/dist/types/platform-components/ObjectPickerInput.vue.d.ts +34 -0
  57. package/dist/types/platform-components/QueryCriteriaComposer.vue.d.ts +29 -0
  58. package/dist/types/platform-components/QueryCriteriaGroupEditor.vue.d.ts +36 -0
  59. package/dist/types/platform-components/QueryValueEditor.vue.d.ts +33 -0
  60. package/dist/types/platform-components/ReadonlyReferenceValue.vue.d.ts +11 -0
  61. package/dist/types/platform-components/RecordContentSectionHeading.vue.d.ts +4 -2
  62. package/dist/types/platform-components/RecordDetailDrawer.vue.d.ts +8 -3
  63. package/dist/types/platform-components/RecordDetailExtensionSection.vue.d.ts +7 -3
  64. package/dist/types/platform-components/RecordDetailFields.vue.d.ts +4 -6
  65. package/dist/types/platform-components/RecordFormFields.vue.d.ts +6 -6
  66. package/dist/types/platform-components/RecordModeDrawer.vue.d.ts +11 -3
  67. package/dist/types/platform-components/RecordMultiPicker.vue.d.ts +2 -2
  68. package/dist/types/platform-components/RecordPicker.vue.d.ts +2 -2
  69. package/dist/types/platform-components/RecordQueryListCell.vue.d.ts +1 -1
  70. package/dist/types/platform-components/RecordQueryListPanel.vue.d.ts +26 -4
  71. package/dist/types/platform-components/RecordQueryListSurface.vue.d.ts +20 -0
  72. package/dist/types/platform-components/ReferencePicker.vue.d.ts +47 -0
  73. package/dist/types/platform-components/ReferenceRecordDetailBrowser.vue.d.ts +55 -0
  74. package/dist/types/platform-components/ScopedTreePicker.vue.d.ts +31 -0
  75. package/dist/types/platform-components/TreeRecordExplorer.vue.d.ts +5 -2
  76. package/dist/types/platform-components/UserPicker.vue.d.ts +47 -0
  77. package/dist/types/platform-components/dictionaryOptionDialogModel.d.ts +23 -0
  78. package/dist/types/platform-components/employeePickerModel.d.ts +19 -0
  79. package/dist/types/platform-components/identityPickerModel.d.ts +18 -0
  80. package/dist/types/platform-components/index.d.ts +32 -2
  81. package/dist/types/platform-components/optionFieldOptionCache.d.ts +1 -1
  82. package/dist/types/platform-components/queryCriteriaDraft.d.ts +24 -0
  83. package/dist/types/platform-components/queryReferencePickerProvider.d.ts +19 -0
  84. package/dist/types/platform-components/querySettlementController.d.ts +5 -0
  85. package/dist/types/platform-components/readonlyReferenceDisplay.d.ts +19 -0
  86. package/dist/types/platform-components/recordEditorSessionState.d.ts +11 -4
  87. package/dist/types/platform-components/recordFormFieldModel.d.ts +28 -2
  88. package/dist/types/platform-components/recordQueryListColumnModel.d.ts +10 -1
  89. package/dist/types/platform-components/recordQueryListQueryController.d.ts +36 -0
  90. package/dist/types/platform-components/recordTreeQueryController.d.ts +18 -0
  91. package/dist/types/platform-components/referencePickerModel.d.ts +105 -0
  92. package/dist/types/platform-components/referencePickerReadError.d.ts +24 -0
  93. package/dist/types/platform-components/referenceRecordDetailBrowser.d.ts +48 -0
  94. package/dist/types/platform-components/scopedTreePickerModel.d.ts +46 -0
  95. package/dist/types/platform-components/sourceReferencePickerProvider.d.ts +26 -0
  96. package/dist/types/platform-components/staticCrudManagementState.d.ts +7 -6
  97. package/dist/types/platform-components/userPickerModel.d.ts +45 -0
  98. package/dist/types/platform-components/userReferencePicker.d.ts +17 -0
  99. package/dist/types/platform-workbench/AssistantMarkdownContent.vue.d.ts +6 -0
  100. package/dist/types/platform-workbench/AssistantSelectionCard.vue.d.ts +15 -0
  101. package/dist/types/platform-workbench/Workbench.vue.d.ts +7 -2
  102. package/dist/types/platform-workbench/WorkbenchAssistantPanel.vue.d.ts +12 -0
  103. package/dist/types/platform-workbench/assistantMarkdown.d.ts +1 -0
  104. package/dist/types/platform-workbench/index.d.ts +1 -0
  105. package/dist/types/platform-workbench/useWorkspaceViewUnsavedState.d.ts +1 -1
  106. package/dist/types/platform-workbench/workbenchAssistantCapabilities.d.ts +3 -0
  107. package/dist/types/platform-workbench/workspaceViewHost.d.ts +1 -1
  108. package/dist/types/platform-workbench/workspaceViewUnsavedState.d.ts +3 -1
  109. package/dist/types/views/BusinessActivityLogView.vue.d.ts +3 -0
  110. package/dist/types/views/BusinessLogListDrawer.vue.d.ts +9 -0
  111. package/dist/types/views/BusinessLogRetentionControl.vue.d.ts +7 -0
  112. package/dist/types/views/LoginAuditLogView.vue.d.ts +3 -0
  113. package/dist/types/views/RequestErrorLogView.vue.d.ts +3 -0
  114. package/dist/types/views/RuntimeLogView.vue.d.ts +3 -0
  115. package/dist/types/views/businessLogClient.d.ts +88 -0
  116. package/dist/types/views/businessLogRetentionClient.d.ts +25 -0
  117. package/dist/types/views/dictionaryRadioEligibility.d.ts +18 -0
  118. package/dist/types/views/dictionaryRadioFactRequestEpoch.d.ts +10 -0
  119. package/dist/types/views/metadataGovernanceAssistantSurface.d.ts +122 -0
  120. package/dist/types/views/metadataModelChangeSetClient.d.ts +36 -0
  121. package/dist/types/views/metadataModelEditSession.d.ts +10 -1
  122. package/dist/types/views/metadataNaming.d.ts +4 -0
  123. package/dist/types/views/pageCompositionDraftState.d.ts +29 -0
  124. package/dist/types/views/roleDetailWorkspaceSession.d.ts +1 -0
  125. package/dist/types/views/roleGrantClient.d.ts +0 -1
  126. package/dist/types/views/runtimeLogClient.d.ts +12 -0
  127. package/dist/types/views/runtimeLogSse.d.ts +3 -0
  128. package/dist/types/vue-ui-antdv/components/UiDataTable.vue.d.ts +15 -0
  129. package/dist/types/vue-ui-antdv/components/UiSearchInput.vue.d.ts +16 -2
  130. package/dist/types/vue-ui-antdv/components/UiSelect.vue.d.ts +23 -1
  131. package/dist/types/vue-ui-antdv/components/UiSidePanel.vue.d.ts +9 -2
  132. package/dist/types/vue-ui-antdv/components/UiTextArea.vue.d.ts +2 -0
  133. package/dist/types/vue-ui-antdv/components/UiTree.vue.d.ts +1 -1
  134. package/dist/types/vue-ui-antdv/components/UiTreeSelect.vue.d.ts +23 -1
  135. package/dist/types/vue-ui-antdv/drawerDismissal.d.ts +18 -0
  136. package/dist/types/vue-ui-antdv/drawerWidth.d.ts +22 -0
  137. package/dist/types/vue-ui-antdv/index.d.ts +4 -0
  138. package/dist/types/web-contracts/assistant.d.ts +59 -0
  139. package/dist/types/web-contracts/index.d.ts +67 -6
  140. package/dist/types/web-core/assistantRuntime.d.ts +77 -0
  141. package/dist/types/web-core/assistantSurface.d.ts +92 -0
  142. package/dist/types/web-core/assistantTurnClient.d.ts +8 -0
  143. package/dist/types/web-core/http.d.ts +2 -0
  144. package/dist/types/web-core/index.d.ts +4 -0
  145. package/dist/types/web-core/module/moduleContext.d.ts +15 -2
  146. package/dist/types/web-core/module/runtimeContext.d.ts +3 -2
  147. package/dist/types/web-core/module/staticModuleClient.d.ts +5 -1
  148. package/dist/types/web-core/sse.d.ts +9 -0
  149. package/dist/{workspaceViews-DI_1vYX9.js → workspaceViews-DijY4n32.js} +1190 -1085
  150. package/package.json +1 -1
  151. package/dist/RoleDetailWorkspaceView-D6X7pAj5.js +0 -1379
  152. package/dist/platform-workbench-DJj42YQP.js +0 -22911
@@ -1,4 +1,5 @@
1
1
  export type Primitive = string | number | boolean | null | undefined;
2
+ export * from './assistant';
2
3
  export type OptionValue = string | number;
3
4
  export type OptionValueList = OptionValue[];
4
5
  export interface Option {
@@ -396,6 +397,8 @@ export interface ResolvedDetailRelationListField {
396
397
  width?: number;
397
398
  align?: 'left' | 'center' | 'right' | string;
398
399
  maxDisplayLines?: number;
400
+ /** Read-side label companion for a reference ID column. */
401
+ referenceTitleField?: string;
399
402
  }
400
403
  export declare function hasExecutableDetailRelationQueryContract(relation: ResolvedDetailRelationDescriptor | undefined): relation is ResolvedDetailRelationDescriptor & {
401
404
  queryContract: ResolvedDetailRelationQueryContract & {
@@ -551,6 +554,28 @@ export interface WebQueryCondition {
551
554
  values?: unknown[];
552
555
  timeZone?: string;
553
556
  }
557
+ /**
558
+ * One executable condition in a recursively composed query expression.
559
+ *
560
+ * This is intentionally separate from {@link WebQueryCondition}: `conditions`
561
+ * remains the legacy top-level AND shorthand, while `criteria` preserves the
562
+ * authored order and nesting needed by the advanced query editor.
563
+ */
564
+ export interface QueryCriteriaCondition {
565
+ kind: 'CONDITION';
566
+ fieldName: string;
567
+ operator?: QueryOperator;
568
+ values?: unknown[];
569
+ timeZone?: string;
570
+ }
571
+ /** A parenthesized, ordered group of query criteria. */
572
+ export interface QueryCriteriaGroup {
573
+ kind: 'GROUP';
574
+ operator: 'AND' | 'OR';
575
+ children: QueryCriteriaNode[];
576
+ }
577
+ /** An ordered query-expression node, either a condition or a nested group. */
578
+ export type QueryCriteriaNode = QueryCriteriaCondition | QueryCriteriaGroup;
554
579
  export interface WebSort {
555
580
  field: string;
556
581
  desc?: boolean;
@@ -559,7 +584,7 @@ export interface WebQueryRequest {
559
584
  page?: WebPageRequest;
560
585
  unpaged?: boolean;
561
586
  conditions?: WebQueryCondition[];
562
- criteria?: unknown;
587
+ criteria?: QueryCriteriaGroup;
563
588
  queryForm?: Record<string, unknown>;
564
589
  sorts?: WebSort[];
565
590
  uiConfigId?: string;
@@ -572,7 +597,7 @@ export interface WebQueryRequest {
572
597
  navigatorTargetLevelKey?: string;
573
598
  }
574
599
  /** Shared field-reference delivery contract for static and metadata-backed modules. */
575
- export type WebReferenceResolveMode = 'QUERY' | 'TREE' | 'TRANSLATE';
600
+ export type WebReferenceResolveMode = 'QUERY' | 'TREE' | 'TREE_CHILDREN' | 'TRANSLATE';
576
601
  export type WebReferenceMatchMode = 'KEY' | 'LABEL' | 'AUTO';
577
602
  export type WebReferenceResolveStatus = 'OK' | 'RESOLVED' | 'NOT_FOUND' | 'AMBIGUOUS' | 'PARTIAL';
578
603
  /** Persisted aggregate record owning a reference interaction; never use form values to provide its tenant. */
@@ -585,7 +610,7 @@ export interface WebReferenceResolveRequest {
585
610
  fuzzy?: string;
586
611
  values?: unknown[];
587
612
  conditions?: WebQueryCondition[];
588
- criteria?: unknown;
613
+ criteria?: QueryCriteriaGroup;
589
614
  page?: WebPageRequest;
590
615
  includeProjections?: boolean;
591
616
  formValues?: Record<string, unknown>;
@@ -594,6 +619,8 @@ export interface WebReferenceResolveRequest {
594
619
  uiConfigId?: string;
595
620
  queryTemplateId?: string;
596
621
  externalQueryValues?: Record<string, unknown>;
622
+ /** Parent identity for one-level lazy tree delivery. Omit it to read the tree root. */
623
+ parentId?: string;
597
624
  /**
598
625
  * Host page that owns this navigator reference request. Reference transports
599
626
  * use it only to resolve the declared NAVIGATOR_QUERY bindings; ordinary
@@ -609,6 +636,8 @@ export interface WebReferenceResolveItem {
609
636
  matchedBy?: WebReferenceMatchMode;
610
637
  projections?: Record<string, unknown>;
611
638
  affectPatch?: Record<string, unknown>;
639
+ /** Present for TREE_CHILDREN: whether the same authorized candidate scope exposes a child. */
640
+ hasChildren?: boolean;
612
641
  }
613
642
  export interface WebReferenceResolveResult {
614
643
  input: unknown;
@@ -628,7 +657,7 @@ export interface WebReferenceResolveResponse {
628
657
  tree?: WebTreeNode<WebReferenceResolveItem>[];
629
658
  }
630
659
  export type QueryValueType = 'STRING' | 'TEXT' | 'BOOLEAN' | 'INTEGER' | 'LONG' | 'DECIMAL' | 'INSTANT' | 'DATE' | 'JSON';
631
- export type QueryOperator = 'EQ' | 'NOT_EQUAL' | 'LIKE' | 'IN' | 'NOT_IN' | 'GT' | 'GTE' | 'LT' | 'LTE' | 'BETWEEN' | 'NULL' | 'NOT_NULL';
660
+ export type QueryOperator = 'EQ' | 'NOT_EQUAL' | 'LIKE' | 'IN' | 'NOT_IN' | 'GT' | 'GTE' | 'LT' | 'LTE' | 'BETWEEN' | 'NULL' | 'NOT_NULL' | 'CONTAINS' | 'CONTAINS_ANY' | 'CONTAINS_ALL' | 'EMPTY' | 'NOT_EMPTY';
632
661
  export interface QuerySchemaField {
633
662
  name: string;
634
663
  title?: string;
@@ -639,7 +668,24 @@ export interface QuerySchemaField {
639
668
  sortable?: boolean;
640
669
  /** Explicit field-domain binding; distinguishes options from reference title companions. */
641
670
  optionBinding?: OptionBindingDescriptor;
671
+ selectionMode?: 'SINGLE' | 'MULTIPLE';
642
672
  optionTitleField?: string;
673
+ /** A persisted record-id reference selectable through this source field's standard resolve contract. */
674
+ reference?: QuerySchemaReference;
675
+ /** A backend-owned default condition rendered by the standard list query surface. */
676
+ persistentControl?: QuerySchemaPersistentControl;
677
+ }
678
+ export interface QuerySchemaPersistentControl {
679
+ id: string;
680
+ title: string;
681
+ operator: QueryOperator;
682
+ defaultValues?: unknown[];
683
+ }
684
+ export interface QuerySchemaReference {
685
+ targetModuleAlias: string;
686
+ cardinality: 'ONE' | 'MANY';
687
+ /** Target candidate label field when the reference explicitly declares one. */
688
+ labelField?: string;
643
689
  }
644
690
  export interface QuerySchemaQuickSearch {
645
691
  enabled: boolean;
@@ -662,6 +708,8 @@ export interface QuerySchema {
662
708
  fields: QuerySchemaField[];
663
709
  externalCriteria: QuerySchemaExternalCriteria[];
664
710
  defaultSorts: QuerySchemaDefaultSort[];
711
+ /** Server-declared criteria structure supported by this query surface. */
712
+ criteriaComposition?: 'NONE' | 'FLAT_AND' | 'TREE';
665
713
  }
666
714
  export type ModuleViewKind = 'LIST' | 'FORM' | 'DETAIL';
667
715
  export type ModuleUiClientType = 'WEB';
@@ -950,13 +998,25 @@ export interface ResolvedPageListQuerySummaryDescriptor {
950
998
  groupByTitle?: string;
951
999
  sumFieldTitle?: string;
952
1000
  }
953
- /** A persistent boolean query control rendered before search; advanced filtering follows search. */
954
- export interface ResolvedPageListPersistentQueryControlDescriptor {
1001
+ /** A module-owned boolean condition rendered before search. */
1002
+ export interface ResolvedPageListExternalPersistentQueryControlDescriptor {
1003
+ source: 'EXTERNAL';
1004
+ id: string;
955
1005
  externalCriteriaKey: string;
956
1006
  title: string;
957
1007
  uiType: 'SWITCH';
958
1008
  defaultValue: boolean;
959
1009
  }
1010
+ /** A field condition rendered before search and composed into the root AND query group. */
1011
+ export interface ResolvedPageListFieldPersistentQueryControlDescriptor {
1012
+ source: 'FIELD';
1013
+ id: string;
1014
+ title: string;
1015
+ fieldName: string;
1016
+ operator: QueryOperator;
1017
+ defaultValues: unknown[];
1018
+ }
1019
+ export type ResolvedPageListPersistentQueryControlDescriptor = ResolvedPageListExternalPersistentQueryControlDescriptor | ResolvedPageListFieldPersistentQueryControlDescriptor;
960
1020
  export interface ResolvedPageListRelationExpansionDescriptor {
961
1021
  relationCode: string;
962
1022
  fields: string[];
@@ -1002,6 +1062,7 @@ export interface ResolvedPageActionDescriptor {
1002
1062
  actionCode: string;
1003
1063
  anchor: 'PAGE' | 'DETAIL' | 'FORM';
1004
1064
  invocation?: PageActionInvocation;
1065
+ statusMode?: 'NONE' | 'INPUT_VALIDATION';
1005
1066
  }
1006
1067
  export interface ResolvedPageTreeResourceDescriptor {
1007
1068
  resource: string;
@@ -0,0 +1,77 @@
1
+ import type { AssistantCapabilityResult, AssistantConversationMessage, AssistantSelectionResponse, AssistantTurnOutput } from '../web-contracts/index';
2
+ import { type AssistantSurfaceRegistry } from './assistantSurface';
3
+ export interface AssistantRuntimeStepResult {
4
+ output: AssistantTurnOutput;
5
+ results: AssistantCapabilityResult[];
6
+ contextChanged: boolean;
7
+ /** Successful capability invocations that committed an effect through applyEffect in this step. */
8
+ appliedEffectCount: number;
9
+ }
10
+ export interface AssistantConversationOptions {
11
+ signal?: AbortSignal;
12
+ maxSteps?: number;
13
+ /** Completed dialogue before the current user message. */
14
+ history?: AssistantConversationMessage[];
15
+ /** Structured answer to a selection shown by the immediately preceding assistant message. */
16
+ selectionResponse?: AssistantSelectionResponse;
17
+ onStep?(step: AssistantRuntimeStepResult): void | Promise<void>;
18
+ onTextDelta?(text: string, stepIndex: number): void;
19
+ onTextDiscard?(stepIndex: number): void;
20
+ onActivity?(phase: AssistantActivityPhase, stepIndex: number): void;
21
+ /** Receives content-free execution facts for local diagnostics or a governed telemetry adapter. */
22
+ onDiagnostic?(event: AssistantRuntimeDiagnosticEvent): void | Promise<void>;
23
+ }
24
+ export type AssistantActivityPhase = 'understanding' | 'executing' | 'responding';
25
+ type AssistantDiagnosticSurface = 'workbench' | 'module-page' | 'metadata-governance' | 'other';
26
+ type AssistantDiagnosticFinishReason = 'stop' | 'tool_calls' | 'length' | 'content_filter' | 'other';
27
+ export type AssistantRuntimeDiagnosticEvent = {
28
+ type: 'decision.started';
29
+ stepIndex: number;
30
+ surface: AssistantDiagnosticSurface;
31
+ backgroundContextRefreshed: boolean;
32
+ } | {
33
+ type: 'decision.completed';
34
+ stepIndex: number;
35
+ finishReason?: AssistantDiagnosticFinishReason;
36
+ toolCallCount: number;
37
+ hasText: boolean;
38
+ } | {
39
+ type: 'decision.restarted';
40
+ stepIndex: number;
41
+ attempt: number;
42
+ reason: 'background-context-refresh' | 'formal-surface-ready';
43
+ } | {
44
+ type: 'decision.failed';
45
+ stepIndex: number;
46
+ reason: 'context-changed' | 'cancelled' | 'surface-settlement-failed' | 'model-request-failed';
47
+ } | {
48
+ type: 'capability.completed';
49
+ stepIndex: number;
50
+ capabilityCode: string;
51
+ outcome: 'succeeded' | 'failed' | 'replayed';
52
+ pageEffectApplied: boolean;
53
+ } | {
54
+ type: 'conversation.completed';
55
+ stepCount: number;
56
+ bounded: boolean;
57
+ };
58
+ export interface AssistantConversationResult {
59
+ steps: AssistantRuntimeStepResult[];
60
+ completed: boolean;
61
+ }
62
+ export declare class AssistantConversationFollowUpError extends Error {
63
+ readonly steps: readonly AssistantRuntimeStepResult[];
64
+ constructor(steps: readonly AssistantRuntimeStepResult[], cause: unknown);
65
+ }
66
+ /**
67
+ * Runs the bounded tool loop for one user message. Every step takes a fresh
68
+ * Surface snapshot so navigation and draft changes are observed before the
69
+ * model decides its next action.
70
+ */
71
+ export declare function runAssistantConversation(registry: AssistantSurfaceRegistry, message: string, options?: AssistantConversationOptions): Promise<AssistantConversationResult>;
72
+ /**
73
+ * Executes one bounded model step. A context-changing capability ends the step;
74
+ * the caller starts the next turn from a fresh Surface snapshot.
75
+ */
76
+ export declare function runAssistantStep(registry: AssistantSurfaceRegistry, message: string, previousResults?: AssistantCapabilityResult[], signal?: AbortSignal): Promise<AssistantRuntimeStepResult>;
77
+ export {};
@@ -0,0 +1,92 @@
1
+ import type { AssistantCapabilityCall, AssistantCapabilityDescriptor, AssistantSurfaceContext, AssistantTurnInput, AssistantTurnOutput } from '../web-contracts/index';
2
+ import type { AssistantTurnProgress } from './assistantTurnClient';
3
+ export interface AssistantCapability<TInput = unknown, TOutput = unknown> {
4
+ descriptor: AssistantCapabilityDescriptor;
5
+ parseInput(input: unknown): TInput;
6
+ execute(input: TInput, context: AssistantCapabilityExecutionContext): Promise<TOutput>;
7
+ }
8
+ export declare function emptyAssistantCapabilityInputSchema(): Record<string, unknown>;
9
+ export declare function parseEmptyAssistantCapabilityInput(input: unknown): Record<string, never>;
10
+ export interface AssistantCapabilityExecutionContext {
11
+ signal: AbortSignal;
12
+ /** Explicit caller cancellation; unlike signal, it is not aborted by an expected Surface replacement. */
13
+ cancellationSignal?: AbortSignal;
14
+ isCurrent(): boolean;
15
+ /** Commit invocation-local guarded state without claiming a user-visible page effect. */
16
+ commitInternalState<T>(commit: () => T): T;
17
+ /**
18
+ * Apply a page effect, retaining its execution scope while background work settles.
19
+ * Navigation adapters may return the token of an explicitly validated replacement surface.
20
+ */
21
+ applyEffect<T>(effect: () => T, settle?: () => Promise<void | AssistantInvocationToken>): T;
22
+ }
23
+ export interface AssistantSurface {
24
+ describe(): AssistantSurfaceContext;
25
+ capabilities(): AssistantCapability[];
26
+ requestTurn(input: AssistantTurnInput, signal: AbortSignal, progress?: AssistantTurnProgress): Promise<AssistantTurnOutput>;
27
+ }
28
+ export interface AssistantSurfaceRegistration {
29
+ pageInstanceKey: string;
30
+ fallback?: boolean;
31
+ /**
32
+ * Waits for background page transitions to finish before the model receives a
33
+ * context snapshot. It must not wait for missing user input or mutate page state.
34
+ */
35
+ settle?(signal: AbortSignal): Promise<void>;
36
+ contextRevision(): string;
37
+ /**
38
+ * User-controlled execution scope. Background refreshes must leave this stable
39
+ * so the runtime can safely refresh context without discarding the user's goal.
40
+ */
41
+ interactionRevision?(): string;
42
+ surface: AssistantSurface;
43
+ }
44
+ export interface AssistantInvocationToken {
45
+ pageInstanceKey: string;
46
+ surfaceGeneration: number;
47
+ contextRevision: string;
48
+ interactionRevision?: string;
49
+ fallback: boolean;
50
+ }
51
+ export interface AssistantSurfaceSnapshot {
52
+ token: AssistantInvocationToken;
53
+ context: AssistantSurfaceContext;
54
+ capabilities: AssistantCapabilityDescriptor[];
55
+ }
56
+ export interface AssistantSurfaceRegistry {
57
+ register(registration: AssistantSurfaceRegistration): () => void;
58
+ activate(pageInstanceKey: string | undefined): void;
59
+ snapshot(): AssistantSurfaceSnapshot | undefined;
60
+ /** Observe registration and active-page changes; read the current snapshot when notified. */
61
+ subscribe(listener: () => void): () => void;
62
+ waitForActiveSurface(options?: {
63
+ pageInstanceKey?: string;
64
+ requireFormal?: boolean;
65
+ signal?: AbortSignal;
66
+ timeoutMs?: number;
67
+ }): Promise<AssistantSurfaceSnapshot>;
68
+ /** Waits for the current page to settle and returns a fresh, execution-compatible snapshot. */
69
+ settleActiveSurface(token: AssistantInvocationToken, signal?: AbortSignal): Promise<AssistantSurfaceSnapshot>;
70
+ requestTurn(input: Omit<AssistantTurnInput, 'context' | 'capabilities'>, token: AssistantInvocationToken, signal?: AbortSignal, progress?: AssistantTurnProgress): Promise<AssistantTurnOutput>;
71
+ invoke(call: AssistantCapabilityCall, token: AssistantInvocationToken, signal?: AbortSignal): Promise<{
72
+ value: unknown;
73
+ contextChanged: boolean;
74
+ }>;
75
+ }
76
+ export interface AssistantSurfaceHost {
77
+ registry: AssistantSurfaceRegistry;
78
+ activePageInstanceKey(): string | undefined;
79
+ capabilities?(): AssistantCapability[];
80
+ }
81
+ export declare function provideAssistantSurfaceHost(host: AssistantSurfaceHost): void;
82
+ export declare function useAssistantSurfaceHost(): AssistantSurfaceHost | undefined;
83
+ export declare class StaleAssistantInvocationError extends Error {
84
+ constructor();
85
+ }
86
+ /** Safe, bounded feedback that helps the model repair a rejected capability call. */
87
+ export declare class AssistantCapabilityUsageError extends Error {
88
+ constructor(message: string);
89
+ }
90
+ export declare function createAssistantSurfaceRegistry(): AssistantSurfaceRegistry;
91
+ /** Compares page identity and revisions, independently of object property order. */
92
+ export declare function sameAssistantInvocationToken(left: AssistantInvocationToken | undefined, right: AssistantInvocationToken | undefined): boolean;
@@ -0,0 +1,8 @@
1
+ import type { AssistantTurnInput, AssistantTurnOutput } from '../web-contracts/index';
2
+ import { type HttpClient } from './http';
3
+ export interface AssistantTurnProgress {
4
+ onTextDelta?(text: string): void;
5
+ }
6
+ export type AssistantTurnRequester = (input: AssistantTurnInput, signal: AbortSignal, progress?: AssistantTurnProgress) => Promise<AssistantTurnOutput>;
7
+ /** Uses the supplied transport as-is so page-owned tenant scope remains authoritative. */
8
+ export declare function createAssistantTurnRequester(http: HttpClient): AssistantTurnRequester;
@@ -14,6 +14,8 @@ export interface HttpRequestOptions {
14
14
  query?: Record<string, RouteQueryValue>;
15
15
  body?: unknown;
16
16
  headers?: Record<string, string>;
17
+ /** Cancels the underlying Fetch request, including a long-lived response stream. */
18
+ signal?: AbortSignal;
17
19
  }
18
20
  export interface HttpClient {
19
21
  request<T>(options: HttpRequestOptions): Promise<T>;
@@ -1,7 +1,11 @@
1
1
  export * from './errors';
2
2
  export * from './http';
3
+ export * from './sse';
3
4
  export * from './query';
4
5
  export * from './actionResult';
6
+ export * from './assistantSurface';
7
+ export * from './assistantRuntime';
8
+ export * from './assistantTurnClient';
5
9
  export * from './businessNotifications';
6
10
  export * from './dataChanges';
7
11
  export * from './realtime';
@@ -26,7 +26,7 @@ export interface ModuleContextConfig {
26
26
  }
27
27
  export interface ModuleContextOptions extends ModuleContextConfig {
28
28
  moduleAlias: string;
29
- runtimeAccess?: 'MENU' | 'REFERENCE';
29
+ runtimeAccess?: 'MENU' | 'REFERENCE' | 'VIEW';
30
30
  navigatorReference?: NavigatorReferenceRequestContext;
31
31
  }
32
32
  export declare function configureModuleContext(config: ModuleContextConfig): void;
@@ -35,7 +35,7 @@ export declare function createModuleContext<TRecord>(options: ModuleContextOptio
35
35
  export declare function createModuleTreeContext<TRecord>(options: ModuleContextOptions): ModuleTreeContext<TRecord>;
36
36
  export declare function useModuleContext<TRecord>(options?: Partial<ModuleContextOptions>): ModuleContext<TRecord>;
37
37
  export declare function useModuleTreeContext<TRecord>(options?: Partial<ModuleContextOptions>): ModuleTreeContext<TRecord>;
38
- /** An immutable transport boundary; remount it to begin a separate business data session. */
38
+ /** New consumers capture the current immutable transport; existing contexts keep their original client. */
39
39
  export declare const ModuleHttpProvider: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
40
40
  http: {
41
41
  type: PropType<HttpClient>;
@@ -55,6 +55,12 @@ export declare const ModuleContextProvider: import("vue").DefineComponent<import
55
55
  required: false;
56
56
  default: undefined;
57
57
  };
58
+ /** Reuse an already-authorized module session without recreating a MENU runtime. */
59
+ context: {
60
+ type: PropType<ModuleContext<unknown>>;
61
+ required: false;
62
+ default: undefined;
63
+ };
58
64
  }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
59
65
  [key: string]: any;
60
66
  }>[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
@@ -63,6 +69,13 @@ export declare const ModuleContextProvider: import("vue").DefineComponent<import
63
69
  required: false;
64
70
  default: undefined;
65
71
  };
72
+ /** Reuse an already-authorized module session without recreating a MENU runtime. */
73
+ context: {
74
+ type: PropType<ModuleContext<unknown>>;
75
+ required: false;
76
+ default: undefined;
77
+ };
66
78
  }>> & Readonly<{}>, {
67
79
  moduleAlias: string;
80
+ context: ModuleContext<unknown>;
68
81
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -43,7 +43,8 @@ export interface ModuleRuntimeContext {
43
43
  moduleAlias: string;
44
44
  tenantRequired?: boolean;
45
45
  title?: string;
46
- moduleKind?: 'STATIC' | 'DYNAMIC';
46
+ /** Stable wire code of the registered module kind. */
47
+ moduleKind?: 'static' | 'dynamic';
47
48
  entryType?: 'module' | 'route' | 'link';
48
49
  entryRoute?: string;
49
50
  entryExternalUrl?: string;
@@ -69,5 +70,5 @@ export interface ModuleRuntimeContextState {
69
70
  recordActionsSnapshot(recordId: string): ModuleRecordActionAvailability | undefined;
70
71
  invalidateRecordActions?(recordIds?: string[]): void;
71
72
  }
72
- export declare function createModuleRuntimeContextState(http: HttpClient, moduleAlias: string, access?: 'MENU' | 'REFERENCE'): ModuleRuntimeContextState;
73
+ export declare function createModuleRuntimeContextState(http: HttpClient, moduleAlias: string, access?: 'MENU' | 'REFERENCE' | 'VIEW'): ModuleRuntimeContextState;
73
74
  export declare function isRuntimeAbilityAvailable(context: ModuleRuntimeContext | undefined, ability: ModuleAbilityCode): boolean;
@@ -64,11 +64,15 @@ export declare function createManagedDetailRelationClient<TRecord>(http: HttpCli
64
64
  export declare function createModuleCrudClient<TRecord>(http: HttpClient, options: {
65
65
  moduleAlias: string;
66
66
  }): ModuleCrudClient<TRecord>;
67
+ /** Persisted selection recovery shares the module wire normalization used by candidate queries. */
68
+ export interface NavigatorReferenceCrudClient<TRecord> extends ModuleCrudClient<TRecord> {
69
+ translate(ids: readonly string[]): Promise<WebPageResponse<TRecord>>;
70
+ }
67
71
  /** The navigation-only read surface deliberately does not reuse the module query endpoint. */
68
72
  export declare function createNavigatorReferenceCrudClient<TRecord>(http: HttpClient, options: {
69
73
  moduleAlias: string;
70
74
  navigatorReference?: NavigatorReferenceRequestContext;
71
- }): ModuleCrudClient<TRecord>;
75
+ }): NavigatorReferenceCrudClient<TRecord>;
72
76
  export declare function createStaticResourceCrudClient<TRecord>(http: HttpClient, resourcePath: string): ModuleCrudClient<TRecord>;
73
77
  export declare function createModuleTreeClient<TRecord>(http: HttpClient, options: {
74
78
  moduleAlias: string;
@@ -0,0 +1,9 @@
1
+ export interface SseEvent {
2
+ event: string;
3
+ data: string;
4
+ }
5
+ /** Incrementally decodes the SSE framing shared by authenticated platform streams. */
6
+ export declare function createSseParser(emit: (event: SseEvent) => void): {
7
+ push(chunk: string): void;
8
+ finish(): void;
9
+ };