@fses/workbench-app 0.2.18 → 0.2.21

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 (126) hide show
  1. package/WORKBENCH-CLOSURE.json +14 -14
  2. package/dist/WorkbenchCardCenterDrawer-BxRFAZDG.js +421 -0
  3. package/dist/WorkbenchDiagnosticsFooter-BXQJLBMu.js +22 -0
  4. package/dist/WorkbenchDiagnosticsPage-OdYSvQ2O.js +72 -0
  5. package/dist/Workspace-C4Co3cIc.js +22678 -0
  6. package/dist/adapters/defaultAgentTransportAdapter.d.ts +6 -0
  7. package/dist/adapters/defaultBrowserAdapters.d.ts +22 -0
  8. package/dist/adapters/defaultPlatformRequestAdapter.d.ts +6 -0
  9. package/dist/adapters/defaultRealtimeAdapter.d.ts +6 -0
  10. package/dist/adapters/endpointResolver.d.ts +16 -0
  11. package/dist/adapters/index.d.ts +7 -1
  12. package/dist/adapters/servicePorts.d.ts +20 -0
  13. package/dist/adapters/types.d.ts +27 -1
  14. package/dist/canvas/api/index.js +1 -1
  15. package/dist/canvas/bridge/workbenchCanvasBus.d.ts +13 -1
  16. package/dist/canvas/persistence/canvasSnapshotStorage.d.ts +3 -2
  17. package/dist/{canvasFacade-B8jYm_aO.js → canvasFacade-ZFqB_i7z.js} +1 -1
  18. package/dist/{cardFactory-DmEBcCf4.js → cardFactory-D5dyYSC3.js} +197 -161
  19. package/dist/components/WorkbenchAppHost.vue.d.ts +5 -5
  20. package/dist/components/WorkbenchApplication.vue.d.ts +2 -2
  21. package/dist/components/WorkbenchCardCenterDrawer.vue.d.ts +2 -0
  22. package/dist/components/WorkbenchDiagnosticsFooter.vue.d.ts +2 -0
  23. package/dist/components/WorkbenchDiagnosticsPage.vue.d.ts +2 -0
  24. package/dist/components/WorkbenchDrawerOutlet.vue.d.ts +6 -0
  25. package/dist/components/WorkbenchFeatureOutlet.vue.d.ts +2 -0
  26. package/dist/components/WorkbenchSlotOutlet.vue.d.ts +5 -0
  27. package/dist/config/workbenchAppConfig.d.ts +4 -0
  28. package/dist/customCardCatalog-D8woQgB9.js +512 -0
  29. package/dist/extensions/index.d.ts +3 -54
  30. package/dist/extensions/index.js +7 -5
  31. package/dist/extensions/manifest.d.ts +27 -0
  32. package/dist/extensions/normalizeWorkbenchExtensions.d.ts +19 -0
  33. package/dist/extensions/types.d.ts +62 -0
  34. package/dist/fses-workbench-app.js +109 -89
  35. package/dist/i18n/index.d.ts +17 -0
  36. package/dist/i18n/index.js +14 -0
  37. package/dist/index-C1Y_OWV9.js +1772 -0
  38. package/dist/index-DkGYPLLJ.js +34 -0
  39. package/dist/index.d.ts +12 -1
  40. package/dist/internal/personal-workbench/components/workbench/WorkbenchCanvas.vue.d.ts +4 -4
  41. package/dist/internal/personal-workbench/components/workbench/WorkbenchCanvasSettingsMenu.vue.d.ts +4 -4
  42. package/dist/internal/personal-workbench/components/workbench/WorkbenchFdeImageComposeDrawer.vue.d.ts +19 -0
  43. package/dist/internal/personal-workbench/components/workbench/WorkbenchFdeToolbar.vue.d.ts +36 -0
  44. package/dist/internal/personal-workbench/components/workbench/WorkbenchStudio.vue.d.ts +2 -2
  45. package/dist/internal/personal-workbench/components/workbench/controllers/canvasConfigController.d.ts +23 -0
  46. package/dist/internal/personal-workbench/components/workbench/controllers/canvasLayoutController.d.ts +12 -0
  47. package/dist/internal/personal-workbench/components/workbench/controllers/canvasRefreshController.d.ts +11 -0
  48. package/dist/internal/personal-workbench/components/workbench/controllers/canvasSelectionController.d.ts +11 -0
  49. package/dist/internal/personal-workbench/components/workbench/showcase/WorkbenchShowcase.vue.d.ts +4 -4
  50. package/dist/internal/personal-workbench/controllers/workbenchBuiltinPluginBridge.d.ts +32 -0
  51. package/dist/internal/personal-workbench/controllers/workbenchChartConfigModel.d.ts +68 -0
  52. package/dist/internal/personal-workbench/controllers/workbenchChartDataSourceController.d.ts +100 -0
  53. package/dist/internal/personal-workbench/controllers/workbenchChartDrilldownController.d.ts +96 -0
  54. package/dist/internal/personal-workbench/controllers/workbenchChartDrilldownTable.d.ts +34 -0
  55. package/dist/internal/personal-workbench/controllers/workbenchFdeVersionController.d.ts +107 -0
  56. package/dist/internal/personal-workbench/controllers/workbenchRecommendationConfigModel.d.ts +82 -0
  57. package/dist/internal/personal-workbench/lib/deepAgentApi.d.ts +13 -9
  58. package/dist/internal/personal-workbench/lib/deepAgentQueueState.d.ts +3 -1
  59. package/dist/internal/personal-workbench/lib/fdeWorkbenchConfigClient.d.ts +6 -5
  60. package/dist/internal/personal-workbench/lib/runtimeIdentity.d.ts +5 -0
  61. package/dist/internal/personal-workbench/lib/runtimePrimitiveRegistry.d.ts +1 -1
  62. package/dist/internal/personal-workbench/lib/vueRuntimeAdapters.d.ts +4 -4
  63. package/dist/internal/personal-workbench/lib/workbenchApi.d.ts +61 -47
  64. package/dist/internal/personal-workbench/lib/workbenchMetricDetailApi.d.ts +2 -1
  65. package/dist/internal/personal-workbench/lib/workbenchRemoteClient.d.ts +3 -1
  66. package/dist/internal/personal-workbench/lib/workbenchRequestTransport.d.ts +24 -0
  67. package/dist/internal/personal-workbench/lib/workbenchStorage.d.ts +8 -7
  68. package/dist/internal/personal-workbench/pages/Workspace.vue.d.ts +2 -2
  69. package/dist/internal/personal-workbench/stores/domains/actionsRuntime.d.ts +35 -0
  70. package/dist/internal/personal-workbench/stores/domains/canvasRuntime.d.ts +44 -0
  71. package/dist/internal/personal-workbench/stores/domains/conversationRuntime.d.ts +29 -0
  72. package/dist/internal/personal-workbench/stores/domains/dataBindingRuntime.d.ts +27 -0
  73. package/dist/internal/personal-workbench/stores/domains/fdeRuntime.d.ts +38 -0
  74. package/dist/internal/personal-workbench/stores/domains/memoryRuntime.d.ts +53 -0
  75. package/dist/internal/personal-workbench/stores/workbenchRuntime.d.ts +28 -1
  76. package/dist/kernel/command/createCommandRegistry.d.ts +19 -0
  77. package/dist/kernel/createWorkbenchHostContext.d.ts +43 -0
  78. package/dist/kernel/createWorkbenchKernel.d.ts +7 -0
  79. package/dist/kernel/diagnostics/createWorkbenchDiagnostics.d.ts +35 -0
  80. package/dist/kernel/event/createEventBus.d.ts +16 -0
  81. package/dist/kernel/plugin/createPluginManager.d.ts +7 -0
  82. package/dist/kernel/plugin/registrationScope.d.ts +15 -0
  83. package/dist/kernel/plugin/types.d.ts +30 -0
  84. package/dist/kernel/registry/createRegistry.d.ts +42 -0
  85. package/dist/kernel/registry/resolveSlotContributions.d.ts +14 -0
  86. package/dist/kernel/types.d.ts +52 -0
  87. package/dist/kernel/workbenchHostContext.d.ts +14 -0
  88. package/dist/normalizeWorkbenchExtensions-Ccv3n3fC.js +425 -0
  89. package/dist/plugin/index.d.ts +7 -0
  90. package/dist/plugin/index.js +8 -0
  91. package/dist/plugin/types.d.ts +106 -0
  92. package/dist/plugins/defaultWorkbenchPlugins.d.ts +11 -0
  93. package/dist/plugins/workbenchCardCenterPlugin.d.ts +13 -0
  94. package/dist/plugins/workbenchDiagnosticsPlugin.d.ts +15 -0
  95. package/dist/plugins/workbenchDrawerCommands.d.ts +16 -0
  96. package/dist/plugins/workbenchSettingsPlugin.d.ts +19 -0
  97. package/dist/plugins/workbenchThemePlugin.d.ts +15 -0
  98. package/dist/routing/createWorkbenchFeatureRoute.d.ts +11 -0
  99. package/dist/routing/resolveWorkbenchFeatureRoute.d.ts +23 -0
  100. package/dist/runtime/index.d.ts +6 -1
  101. package/dist/runtime/index.js +6 -3
  102. package/dist/runtime/scope/createWorkbenchRuntimeScope.d.ts +10 -0
  103. package/dist/runtime/store/workbenchRuntimeContext.d.ts +12 -0
  104. package/dist/runtime/store/workbenchRuntimeFacade.d.ts +3 -0
  105. package/dist/style.css +1 -1
  106. package/dist/types/index.d.ts +2 -0
  107. package/dist/useWorkbenchRuntime-CJLqEtgU.js +24062 -0
  108. package/dist/version.d.ts +1 -1
  109. package/node_modules/@fses/ai-chat/dist/fses-ai-chat.js +28256 -7528
  110. package/node_modules/@fses/ai-chat/dist/fses-ai-chat.umd.cjs +17 -17
  111. package/node_modules/@fses/ai-chat/dist/style.css +1 -1
  112. package/node_modules/@fses/ai-chat/package.json +3 -3
  113. package/node_modules/@fses/workbench-card/dist/fses-workbench-card-renderers.js +5 -5
  114. package/node_modules/@fses/workbench-card/dist/fses-workbench-card.js +5 -5
  115. package/node_modules/@fses/workbench-card/dist/fses-workbench-card.umd.cjs +1 -1
  116. package/node_modules/@fses/workbench-card/dist/types/block.d.ts +4 -1
  117. package/node_modules/@fses/workbench-card/package.json +1 -1
  118. package/node_modules/@fses/workbench-card/src/registry/cardRegistry.ts +4 -4
  119. package/node_modules/@fses/workbench-card/src/registry/echartsTemplateRegistry.generated.js +1 -1
  120. package/node_modules/@fses/workbench-card/src/registry/echartsTemplateRegistry.generated.ts +1 -1
  121. package/node_modules/@fses/workbench-card/src/types/block.ts +4 -12
  122. package/package.json +11 -3
  123. package/dist/Workspace-JvnSC-w9.js +0 -23186
  124. package/dist/index-D-WW3bXH.js +0 -829
  125. package/dist/useWorkbenchRuntime-D_AtkXIX.js +0 -23865
  126. package/dist/workbenchCustomComponentRegistry-CWUPjCnJ.js +0 -267
@@ -9,6 +9,7 @@ import type { FdeWorkbenchAssetPackage } from './fdeWorkbenchAssetPackage';
9
9
  import type { MetricFilterBinding } from './workbenchMetricFilterBinding';
10
10
  import type { SystemCardWorkbenchPromptParams } from './workbenchSystemCardPrompt';
11
11
  import type { WorkbenchChatHistoryMessage } from './workbenchChatHistory';
12
+ import type { WorkbenchAgentTransportAdapter, WorkbenchPlatformRequestAdapter } from '../../../adapters/types';
12
13
  export { runtimeIdentityHeaders } from './runtimeIdentity';
13
14
  export interface WorkbenchUpdateInfoPayload {
14
15
  workspaceId: string;
@@ -131,18 +132,24 @@ export interface WorkbenchPromptAttachment {
131
132
  type?: string;
132
133
  url?: string;
133
134
  }
134
- export declare function fetchWorkbenchSnapshot(context: WorkbenchContext): Promise<WorkbenchSnapshot>;
135
+ export interface WorkbenchApiTransportOptions {
136
+ /** 平台接口请求端口,保留平台 envelope。 */
137
+ requestJson?: WorkbenchPlatformRequestAdapter['requestJson'];
138
+ /** run-agent 接口请求端口,返回解包后的业务 data。 */
139
+ agentRequestJson?: WorkbenchAgentTransportAdapter['requestJson'];
140
+ }
141
+ export declare function fetchWorkbenchSnapshot(context: WorkbenchContext, transport?: WorkbenchApiTransportOptions): Promise<WorkbenchSnapshot>;
135
142
  /**
136
143
  * 读取后端可信运行态身份,供直接打开工作台 URL 时补齐用户作用域。
137
144
  * @returns 当前请求可信用户、租户和身份来源。
138
145
  */
139
- export declare function fetchWorkbenchIdentity(): Promise<WorkbenchRuntimeIdentity>;
146
+ export declare function fetchWorkbenchIdentity(transport?: WorkbenchApiTransportOptions): Promise<WorkbenchRuntimeIdentity>;
140
147
  /**
141
148
  * Checks whether the current user can access a personal workbench resource.
142
149
  * @param resourceId - Workbench resource_id from the route entry.
143
150
  * @returns Normalized access check result.
144
151
  */
145
- export declare function fetchWorkbenchAccessCheck(resourceId: string): Promise<WorkbenchAccessCheckResult>;
152
+ export declare function fetchWorkbenchAccessCheck(resourceId: string, transport?: WorkbenchApiTransportOptions): Promise<WorkbenchAccessCheckResult>;
146
153
  /**
147
154
  * Fetches current tenant manageable applications for chart config dropdowns.
148
155
  * @param options - Optional fuzzy app name search.
@@ -150,32 +157,32 @@ export declare function fetchWorkbenchAccessCheck(resourceId: string): Promise<W
150
157
  */
151
158
  export declare function fetchWorkbenchApplications(options?: {
152
159
  name?: string;
153
- }): Promise<WorkbenchApplicationOption[]>;
160
+ }, transport?: WorkbenchApiTransportOptions): Promise<WorkbenchApplicationOption[]>;
154
161
  /**
155
162
  * Fetches model selectMore services for the selected platform application.
156
163
  * @param appId - Selected platform application id.
157
164
  * @returns Flattened model-service dropdown options.
158
165
  */
159
- export declare function fetchWorkbenchChartModelServices(appId: string): Promise<WorkbenchChartModelServiceOption[]>;
166
+ export declare function fetchWorkbenchChartModelServices(appId: string, transport?: WorkbenchApiTransportOptions): Promise<WorkbenchChartModelServiceOption[]>;
160
167
  /**
161
168
  * Fetches metric dictionary options for the selected platform application.
162
169
  * @param appId - Selected platform application id.
163
170
  * @returns Metric dropdown options.
164
171
  */
165
- export declare function fetchWorkbenchChartMetrics(appId: string): Promise<WorkbenchChartMetricOption[]>;
172
+ export declare function fetchWorkbenchChartMetrics(appId: string, transport?: WorkbenchApiTransportOptions): Promise<WorkbenchChartMetricOption[]>;
166
173
  /**
167
174
  * Fetches list pages for the selected platform application.
168
175
  * @param appId - Selected platform application id.
169
176
  * @returns Flattened list dropdown options.
170
177
  */
171
- export declare function fetchWorkbenchChartLists(appId: string): Promise<WorkbenchChartListOption[]>;
178
+ export declare function fetchWorkbenchChartLists(appId: string, transport?: WorkbenchApiTransportOptions): Promise<WorkbenchChartListOption[]>;
172
179
  /**
173
180
  * Imports a FDE draft asset package into the ES-backed runtime workbench store.
174
181
  * @param context - Runtime target scope that will own the published workbench.
175
182
  * @param assetPackage - FDE asset package generated by the editor or host draft.
176
183
  * @returns Import counts returned by run-agent.
177
184
  */
178
- export declare function importWorkbenchAssetPackage(context: WorkbenchContext, assetPackage: FdeWorkbenchAssetPackage): Promise<WorkbenchAssetImportResult>;
185
+ export declare function importWorkbenchAssetPackage(context: WorkbenchContext, assetPackage: FdeWorkbenchAssetPackage, transport?: WorkbenchApiTransportOptions): Promise<WorkbenchAssetImportResult>;
179
186
  /**
180
187
  * Ensures a published FDE system asset package has been imported before opening its runtime workspace.
181
188
  * @param context - Runtime target scope that will own the published workbench.
@@ -184,10 +191,10 @@ export declare function importWorkbenchAssetPackage(context: WorkbenchContext, a
184
191
  */
185
192
  export declare function ensurePublishedWorkbenchAssetPackage(context: WorkbenchContext, payload: {
186
193
  resource_id: string;
187
- }): Promise<WorkbenchAssetImportResult & {
194
+ }, transport?: WorkbenchApiTransportOptions): Promise<WorkbenchAssetImportResult & {
188
195
  existed?: boolean;
189
196
  }>;
190
- export declare function fetchWorkbenchWorkspaces(context: WorkbenchIdentityContext): Promise<{
197
+ export declare function fetchWorkbenchWorkspaces(context: WorkbenchIdentityContext, transport?: WorkbenchApiTransportOptions): Promise<{
191
198
  workbenches: WorkbenchTemplate[];
192
199
  preference: UserWorkbenchPreference;
193
200
  }>;
@@ -196,31 +203,31 @@ export declare function fetchWorkbenchWorkspaces(context: WorkbenchIdentityConte
196
203
  * @param resourceId - 当前工作台 resource_id。
197
204
  * @returns 归一化后的开场白文案。
198
205
  */
199
- export declare function fetchWorkbenchPrologue(resourceId: string): Promise<WorkbenchPrologueResult>;
206
+ export declare function fetchWorkbenchPrologue(resourceId: string, transport?: WorkbenchApiTransportOptions): Promise<WorkbenchPrologueResult>;
200
207
  export declare function selectWorkbench(context: WorkbenchIdentityContext, payload: {
201
208
  workspaceId: string;
202
209
  assistantPersona?: AssistantPersonaKey;
203
- }): Promise<UserWorkbenchPreference>;
210
+ }, transport?: WorkbenchApiTransportOptions): Promise<UserWorkbenchPreference>;
204
211
  export declare function saveAssistantPersonaPreference(context: WorkbenchIdentityContext, payload: {
205
212
  workspaceId: string;
206
213
  assistantPersona: AssistantPersonaKey;
207
- }): Promise<UserWorkbenchPreference>;
208
- export declare function updateWorkbenchInfo(context: WorkbenchIdentityContext, payload: WorkbenchUpdateInfoPayload): Promise<WorkbenchTemplate>;
214
+ }, transport?: WorkbenchApiTransportOptions): Promise<UserWorkbenchPreference>;
215
+ export declare function updateWorkbenchInfo(context: WorkbenchIdentityContext, payload: WorkbenchUpdateInfoPayload, transport?: WorkbenchApiTransportOptions): Promise<WorkbenchTemplate>;
209
216
  export declare function deleteWorkbench(context: WorkbenchIdentityContext, payload: {
210
217
  workspaceId: string;
211
- }): Promise<{
218
+ }, transport?: WorkbenchApiTransportOptions): Promise<{
212
219
  message: string;
213
220
  }>;
214
221
  export declare function saveWorkbenchSnapshot(context: WorkbenchContext, snapshot: WorkbenchSnapshot, options?: {
215
222
  baseVersion?: number;
216
223
  persistenceFallbackReason?: string;
217
224
  persistenceFallbackSummary?: Record<string, unknown>;
218
- }): Promise<WorkbenchSnapshot>;
225
+ }, transport?: WorkbenchApiTransportOptions): Promise<WorkbenchSnapshot>;
219
226
  export declare function confirmCardMutation(context: WorkbenchContext, payload: {
220
227
  turnId: string;
221
228
  conversationId?: string;
222
229
  confirmed: boolean;
223
- }): Promise<{
230
+ }, transport?: WorkbenchApiTransportOptions): Promise<{
224
231
  snapshot: WorkbenchSnapshot;
225
232
  mutationTransaction?: MutationTransaction;
226
233
  confirmation: ConversationConfirmation;
@@ -239,7 +246,7 @@ export declare function applyWorkbenchCardPatch(context: WorkbenchContext, paylo
239
246
  baseVersion?: number;
240
247
  selectedBlockId?: string;
241
248
  screenContext?: ConversationScreenContext;
242
- }): Promise<{
249
+ }, transport?: WorkbenchApiTransportOptions): Promise<{
243
250
  status: "applied" | "needs_confirmation" | "failed" | "blocked" | "version_conflict";
244
251
  patchPlan?: PatchPlan;
245
252
  snapshot?: WorkbenchSnapshot;
@@ -276,7 +283,7 @@ export declare function planWorkbench(context: WorkbenchContext, payload: {
276
283
  };
277
284
  messages: WorkbenchChatHistoryMessage[];
278
285
  screenContext?: ConversationScreenContext;
279
- }): Promise<PlanResponse>;
286
+ }, transport?: WorkbenchApiTransportOptions): Promise<PlanResponse>;
280
287
  export declare function confirmLayoutDraftStream(context: WorkbenchContext, payload: {
281
288
  turnId: string;
282
289
  sourceTurnId?: string;
@@ -284,18 +291,20 @@ export declare function confirmLayoutDraftStream(context: WorkbenchContext, payl
284
291
  layoutDraftId: string;
285
292
  }, onEvent: (event: WorkbenchPlanStreamEvent) => void, onError?: (error: Error) => void, options?: {
286
293
  signal?: AbortSignal;
294
+ }, transport?: {
295
+ openEventStream: WorkbenchAgentTransportAdapter['openEventStream'];
287
296
  }): Promise<void>;
288
297
  export declare function materializeBlocks(context: WorkbenchContext, payload: {
289
298
  blockPlans: BlockPlan[];
290
299
  mode: 'preview' | 'final';
291
- }): Promise<MaterializeResponse>;
300
+ }, transport?: WorkbenchApiTransportOptions): Promise<MaterializeResponse>;
292
301
  export declare function saveWorkbenchLayout(context: WorkbenchContext, payload: {
293
302
  baseVersion?: number;
294
303
  layoutVersion?: number;
295
304
  layout: BlockLayout[];
296
305
  layoutConfig?: LayoutConfig;
297
306
  visualConfig?: WorkbenchSnapshot['visualConfig'] | null;
298
- }): Promise<WorkbenchSnapshot>;
307
+ }, transport?: WorkbenchApiTransportOptions): Promise<WorkbenchSnapshot>;
299
308
  export declare function insertWorkbenchCard(context: WorkbenchContext, payload: {
300
309
  baseVersion: number;
301
310
  title: string;
@@ -307,7 +316,7 @@ export declare function insertWorkbenchCard(context: WorkbenchContext, payload:
307
316
  style?: Record<string, unknown>;
308
317
  commonMeta?: Record<string, unknown>;
309
318
  dataBinding?: Record<string, unknown>;
310
- }): Promise<WorkbenchSnapshot>;
319
+ }, transport?: WorkbenchApiTransportOptions): Promise<WorkbenchSnapshot>;
311
320
  export type SmartInsertStatus = 'applied' | 'needs_confirmation' | 'blocked' | 'requires_query' | 'version_conflict' | 'layout_conflict' | 'legacy_host_resolved' | 'failed';
312
321
  export type LayoutResolutionSource = 'frontend_runtime' | 'host_port' | 'host_existing_insert' | 'fallback_layout';
313
322
  export interface CanonicalLayoutContextSummary {
@@ -379,7 +388,7 @@ export declare function recommendWorkbenchCards(context: WorkbenchContext, paylo
379
388
  conversationId: string;
380
389
  input?: string;
381
390
  preferredCategories?: string[];
382
- }): Promise<WorkbenchCardRecommendationResult>;
391
+ }, transport?: WorkbenchApiTransportOptions): Promise<WorkbenchCardRecommendationResult>;
383
392
  /**
384
393
  * Inserts a selected registered/system card through CardModule instead of the workbench chat stream.
385
394
  * @param context - Current workbench identity context.
@@ -398,7 +407,7 @@ export declare function insertRegisteredWorkbenchCard(context: Pick<WorkbenchCon
398
407
  canonicalLayoutContext?: Record<string, unknown>;
399
408
  targetResolution?: Record<string, unknown>;
400
409
  screenContext?: Omit<ConversationScreenContext, 'roleId'>;
401
- }): Promise<RegisteredWorkbenchCardInsertResult>;
410
+ }, transport?: WorkbenchApiTransportOptions): Promise<RegisteredWorkbenchCardInsertResult>;
402
411
  export interface WorkbenchDataBindingQueryResult {
403
412
  bindingId: string;
404
413
  success: boolean;
@@ -456,7 +465,7 @@ export interface WorkbenchDataBindingRepairResult {
456
465
  * @param context - Current workbench identity context.
457
466
  * @returns Scoped repair report returned by run-agent.
458
467
  */
459
- export declare function repairWorkbenchDataBindings(context: Pick<WorkbenchContext, 'workspaceId' | 'userId' | 'tenantId' | 'appId'>): Promise<WorkbenchDataBindingRepairResult>;
468
+ export declare function repairWorkbenchDataBindings(context: Pick<WorkbenchContext, 'workspaceId' | 'userId' | 'tenantId' | 'appId'>, transport?: WorkbenchApiTransportOptions): Promise<WorkbenchDataBindingRepairResult>;
460
469
  /**
461
470
  * Runs scoped data-binding repair after a stale refresh failure.
462
471
  * @param context - User scope for the current workbench.
@@ -464,7 +473,7 @@ export declare function repairWorkbenchDataBindings(context: Pick<WorkbenchConte
464
473
  * @param error - Refresh error to inspect.
465
474
  * @returns Repair report when repair was triggered, otherwise null.
466
475
  */
467
- export declare function repairWorkbenchDataBindingsForRefreshApi(context: Pick<WorkbenchContext, 'userId' | 'tenantId' | 'appId'>, refreshApi: string, error: unknown): Promise<WorkbenchDataBindingRepairResult | null>;
476
+ export declare function repairWorkbenchDataBindingsForRefreshApi(context: Pick<WorkbenchContext, 'userId' | 'tenantId' | 'appId'>, refreshApi: string, error: unknown, transport?: WorkbenchApiTransportOptions, pendingRepairsByScope?: Map<string, Promise<WorkbenchDataBindingRepairResult>>): Promise<WorkbenchDataBindingRepairResult | null>;
468
477
  export declare function queryWorkbenchDataBinding(context: Pick<WorkbenchContext, 'userId'> & Partial<Pick<WorkbenchContext, 'tenantId' | 'appId' | 'roleId'>> & {
469
478
  conversationId?: string;
470
479
  }, refreshApi: string, options?: {
@@ -472,7 +481,7 @@ export declare function queryWorkbenchDataBinding(context: Pick<WorkbenchContext
472
481
  semanticAppId?: string;
473
482
  filterValues?: Record<string, unknown>;
474
483
  metricFilterBindings?: MetricFilterBinding[];
475
- }): Promise<WorkbenchDataBindingQueryResult>;
484
+ }, transport?: WorkbenchApiTransportOptions): Promise<WorkbenchDataBindingQueryResult>;
476
485
  /**
477
486
  * 更新已有运行态指标卡的 FDE 筛选绑定。
478
487
  * @param context - 当前可信运行时身份
@@ -481,7 +490,7 @@ export declare function queryWorkbenchDataBinding(context: Pick<WorkbenchContext
481
490
  * @param bindings - 已确认指标筛选绑定
482
491
  * @returns 更新后的前端安全绑定摘要
483
492
  */
484
- export declare function updateWorkbenchMetricFilterBindings(context: Pick<WorkbenchContext, 'userId'> & Partial<Pick<WorkbenchContext, 'tenantId' | 'appId' | 'roleId'>>, workspaceId: string, bindingId: string, bindings: MetricFilterBinding[]): Promise<{
493
+ export declare function updateWorkbenchMetricFilterBindings(context: Pick<WorkbenchContext, 'userId'> & Partial<Pick<WorkbenchContext, 'tenantId' | 'appId' | 'roleId'>>, workspaceId: string, bindingId: string, bindings: MetricFilterBinding[], transport?: WorkbenchApiTransportOptions): Promise<{
485
494
  bindingId: string;
486
495
  refreshApi: string;
487
496
  fieldMapping: Record<string, unknown>;
@@ -495,7 +504,7 @@ export declare function updateWorkbenchMetricFilterBindings(context: Pick<Workbe
495
504
  */
496
505
  export declare function queryWorkbenchDataBindingCandidate(context: WorkbenchContext & {
497
506
  conversationId?: string;
498
- }, cardId: string): Promise<WorkbenchDataBindingQueryResult>;
507
+ }, cardId: string, transport?: WorkbenchApiTransportOptions): Promise<WorkbenchDataBindingQueryResult>;
499
508
  /**
500
509
  * Rebinds any card to a user-supplied business wording and executes a real query.
501
510
  * @param context - Current workbench identity and optional conversation scope.
@@ -511,7 +520,7 @@ export declare function rebindWorkbenchCardDataBinding(context: WorkbenchContext
511
520
  fieldLabels?: Record<string, unknown>;
512
521
  cardConfig?: Record<string, unknown>;
513
522
  selectedConfig?: Record<string, unknown>;
514
- }): Promise<WorkbenchDataBindingQueryResult>;
523
+ }, transport?: WorkbenchApiTransportOptions): Promise<WorkbenchDataBindingQueryResult>;
515
524
  /**
516
525
  * Queries paged detail rows for a clicked chart category.
517
526
  * @param context - Current workbench identity.
@@ -524,7 +533,7 @@ export declare function queryWorkbenchManualSqlDrilldownPage(context: WorkbenchC
524
533
  categoryValue: unknown;
525
534
  pageIndex: number;
526
535
  pageSize: number;
527
- }): Promise<WorkbenchManualSqlDrilldownPageResult>;
536
+ }, transport?: WorkbenchApiTransportOptions): Promise<WorkbenchManualSqlDrilldownPageResult>;
528
537
  export declare function updateWorkbenchCard(context: WorkbenchContext, cardId: string, payload: {
529
538
  baseVersion: number;
530
539
  cardVersion: number;
@@ -539,7 +548,7 @@ export declare function updateWorkbenchCard(context: WorkbenchContext, cardId: s
539
548
  commonMeta?: Record<string, unknown>;
540
549
  bodyJson?: Record<string, unknown>;
541
550
  };
542
- }): Promise<WorkbenchSnapshot>;
551
+ }, transport?: WorkbenchApiTransportOptions): Promise<WorkbenchSnapshot>;
543
552
  /**
544
553
  * 删除指定工作台卡片,并返回后端增量处理后的最新快照。
545
554
  * @param context - 当前工作台上下文。
@@ -550,10 +559,10 @@ export declare function updateWorkbenchCard(context: WorkbenchContext, cardId: s
550
559
  export declare function deleteWorkbenchCard(context: WorkbenchContext, cardId: string, payload: {
551
560
  baseVersion: number;
552
561
  cardVersion: number;
553
- }): Promise<WorkbenchSnapshot>;
562
+ }, transport?: WorkbenchApiTransportOptions): Promise<WorkbenchSnapshot>;
554
563
  export declare function refreshWorkbench(context: WorkbenchContext, payload?: {
555
564
  blockId?: string;
556
- }): Promise<WorkbenchSnapshot>;
565
+ }, transport?: WorkbenchApiTransportOptions): Promise<WorkbenchSnapshot>;
557
566
  export interface RuntimeBusinessQueryResult {
558
567
  objectType: string;
559
568
  objectLabel: string;
@@ -572,13 +581,13 @@ export interface RuntimeBusinessQueryResult {
572
581
  }
573
582
  export declare function queryRuntimeBusinessObjects(context: WorkbenchContext, payload: {
574
583
  params: Record<string, unknown>;
575
- }): Promise<RuntimeBusinessQueryResult>;
584
+ }, transport?: WorkbenchApiTransportOptions): Promise<RuntimeBusinessQueryResult>;
576
585
  export declare function executeRuntimeAction(context: WorkbenchContext, payload: {
577
586
  actionType: string;
578
587
  blockId?: string;
579
588
  capabilityId?: string;
580
589
  params?: Record<string, unknown>;
581
- }): Promise<{
590
+ }, transport?: WorkbenchApiTransportOptions): Promise<{
582
591
  snapshot: WorkbenchSnapshot;
583
592
  actionLog: Array<Record<string, unknown>>;
584
593
  event: Record<string, unknown>;
@@ -588,7 +597,7 @@ export declare function submitWorkbenchForm(context: WorkbenchContext, payload:
588
597
  blockId: string;
589
598
  values: Record<string, unknown>;
590
599
  confirmed?: boolean;
591
- }): Promise<{
600
+ }, transport?: WorkbenchApiTransportOptions): Promise<{
592
601
  snapshot: WorkbenchSnapshot;
593
602
  message: string;
594
603
  }>;
@@ -596,7 +605,7 @@ export declare function submitWorkbenchSurvey(context: WorkbenchContext, payload
596
605
  blockId: string;
597
606
  answers: Record<string, unknown>;
598
607
  confirmed?: boolean;
599
- }): Promise<{
608
+ }, transport?: WorkbenchApiTransportOptions): Promise<{
600
609
  snapshot: WorkbenchSnapshot;
601
610
  message: string;
602
611
  }>;
@@ -605,7 +614,7 @@ export declare function executeWorkbenchAction(context: WorkbenchContext, payloa
605
614
  actionId: string;
606
615
  actionLabel: string;
607
616
  confirmed?: boolean;
608
- }): Promise<{
617
+ }, transport?: WorkbenchApiTransportOptions): Promise<{
609
618
  snapshot: WorkbenchSnapshot;
610
619
  actionLog: Array<Record<string, unknown>>;
611
620
  message: string;
@@ -613,7 +622,7 @@ export declare function executeWorkbenchAction(context: WorkbenchContext, payloa
613
622
  export declare function generateWorkbenchReport(context: WorkbenchContext, payload: {
614
623
  blockId: string;
615
624
  confirmed?: boolean;
616
- }): Promise<{
625
+ }, transport?: WorkbenchApiTransportOptions): Promise<{
617
626
  snapshot: WorkbenchSnapshot;
618
627
  artifact: Record<string, unknown>;
619
628
  message: string;
@@ -624,7 +633,7 @@ export declare function confirmSubmitDraft(context: WorkbenchContext, payload: {
624
633
  turnId?: string;
625
634
  conversationId?: string;
626
635
  filledFields?: Record<string, unknown>;
627
- }): Promise<{
636
+ }, transport?: WorkbenchApiTransportOptions): Promise<{
628
637
  snapshot?: WorkbenchSnapshot;
629
638
  submitDraft: SubmitDraft;
630
639
  confirmation: ConversationConfirmation;
@@ -635,10 +644,11 @@ export declare function confirmSubmitDraft(context: WorkbenchContext, payload: {
635
644
  submission?: Record<string, unknown>;
636
645
  }>;
637
646
  /**
638
- * 发起编排流请求(SSE)
639
- * @param params - 编排请求参数
640
- * @param onEvent - SSE 事件回调
641
- * @returns Promise,在流完成后 resolve
647
+ * 发起编排流请求(SSE)。
648
+ * @param params - 编排请求参数。
649
+ * @param onEvent - SSE 事件回调。
650
+ * @param transport - 可选 Agent 流传输端口。
651
+ * @returns Promise,在流完成后 resolve。
642
652
  */
643
653
  export declare function composeStream(params: {
644
654
  workspaceId: string;
@@ -650,7 +660,9 @@ export declare function composeStream(params: {
650
660
  }, onEvent: (event: {
651
661
  type: string;
652
662
  data?: unknown;
653
- }) => void): Promise<void>;
663
+ }) => void, transport?: {
664
+ openEventStream: WorkbenchAgentTransportAdapter['openEventStream'];
665
+ }): Promise<void>;
654
666
  /**
655
667
  * 发起 Workbench V2 图片编排流请求。
656
668
  * @param params - V2 图片编排请求参数。
@@ -683,4 +695,6 @@ export declare function composeImageV2Stream(params: {
683
695
  optimizedHeight?: number;
684
696
  };
685
697
  conversationId?: string;
686
- }, onEvent: (event: ComposeStreamEvent) => void, options?: ComposeImageV2StreamOptions): Promise<void>;
698
+ }, onEvent: (event: ComposeStreamEvent) => void, options?: ComposeImageV2StreamOptions, transport?: {
699
+ openEventStream: WorkbenchAgentTransportAdapter['openEventStream'];
700
+ }): Promise<void>;
@@ -3,6 +3,7 @@
3
3
  * @author seadon
4
4
  * @created 2026-07-12
5
5
  */
6
+ import { type WorkbenchJsonRequestTransport } from './workbenchRequestTransport';
6
7
  export interface WorkbenchMetricDetailColumn {
7
8
  label?: string;
8
9
  name: string;
@@ -59,4 +60,4 @@ export interface WorkbenchMetricDetailPageResult {
59
60
  * @param request - 指标详情分页请求
60
61
  * @returns 分页表格数据
61
62
  */
62
- export declare function queryWorkbenchMetricDetailPage(request: WorkbenchMetricDetailPageRequest): Promise<WorkbenchMetricDetailPageResult>;
63
+ export declare function queryWorkbenchMetricDetailPage(request: WorkbenchMetricDetailPageRequest, transport?: WorkbenchJsonRequestTransport): Promise<WorkbenchMetricDetailPageResult>;
@@ -4,6 +4,7 @@
4
4
  * @created 2026-05-10
5
5
  */
6
6
  import type { BlockLayout, LayoutConfig, RoleId, WorkbenchSnapshot } from '@fses/workbench-app/types';
7
+ import type { WorkbenchPlatformRequestAdapter } from '../../../adapters/types';
7
8
  export interface WorkbenchRemoteContext {
8
9
  workspaceId: string;
9
10
  userId: string;
@@ -13,6 +14,7 @@ export interface WorkbenchRemoteContext {
13
14
  }
14
15
  export interface WorkbenchRemoteClientOptions {
15
16
  baseUrl?: string;
17
+ requestJson?: WorkbenchPlatformRequestAdapter['requestJson'];
16
18
  }
17
19
  export interface WorkbenchRemoteSaveLayoutPayload {
18
20
  baseVersion: number;
@@ -32,7 +34,7 @@ export interface WorkbenchRemoteSaveSnapshotPayload {
32
34
  * @param options - 远端客户端配置。
33
35
  * @returns 工作台快照读取与保存客户端。
34
36
  */
35
- export declare function createWorkbenchRemoteClient({ baseUrl }?: WorkbenchRemoteClientOptions): {
37
+ export declare function createWorkbenchRemoteClient({ baseUrl, requestJson }?: WorkbenchRemoteClientOptions): {
36
38
  fetchSnapshot(context: WorkbenchRemoteContext): Promise<WorkbenchSnapshot>;
37
39
  saveLayout(context: WorkbenchRemoteContext, payload: WorkbenchRemoteSaveLayoutPayload): Promise<WorkbenchSnapshot>;
38
40
  saveSnapshot(context: WorkbenchRemoteContext, payload: WorkbenchRemoteSaveSnapshotPayload): Promise<WorkbenchSnapshot>;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @fileoverview 工作台 JSON 请求 transport - 在实例 Service Port 与 legacy 请求间做单路选择。
3
+ * @author seadon
4
+ * @created 2026-09-01
5
+ */
6
+ import type { WorkbenchAgentTransportAdapter, WorkbenchPlatformRequestAdapter } from '../../../adapters/types';
7
+ export interface WorkbenchJsonRequestTransport {
8
+ agentRequestJson?: WorkbenchAgentTransportAdapter['requestJson'];
9
+ requestJson?: WorkbenchPlatformRequestAdapter['requestJson'];
10
+ }
11
+ export interface WorkbenchJsonRequestConfig {
12
+ headers?: Record<string, string>;
13
+ method?: string;
14
+ payload?: unknown;
15
+ signal?: AbortSignal;
16
+ url: string;
17
+ }
18
+ /**
19
+ * 通过当前实例 JSON port 发起请求;未提供 port 时回退 legacy。
20
+ * @param config - 请求配置。
21
+ * @param transport - 当前实例 transport。
22
+ * @returns JSON 业务响应。
23
+ */
24
+ export declare function requestWorkbenchJsonWithTransport<T>(config: WorkbenchJsonRequestConfig, transport?: WorkbenchJsonRequestTransport): Promise<T>;
@@ -2,6 +2,7 @@ import type { AssistantPersonaKey, LayoutConfig, RoleId } from '@fses/workbench-
2
2
  import type { WorkbenchCanvasGapPreset, WorkbenchCardPresetSizeConfig } from './cardSizeConfig';
3
3
  import type { WorkbenchCardStyleConfig } from './cardStyleConfig';
4
4
  import type { RecoverableDeepAgentTurnSnapshot } from './deepAgentQueueState';
5
+ import type { WorkbenchStorageAdapter } from '../../../adapters/types';
5
6
  export interface WorkbenchCanvasSettingsMemory {
6
7
  layoutConfig?: LayoutConfig;
7
8
  cardStyleConfig?: WorkbenchCardStyleConfig;
@@ -46,24 +47,24 @@ export interface WorkbenchUiMemory {
46
47
  * @returns 稳定的 scope key;关键身份缺失时返回空字符串。
47
48
  */
48
49
  export declare function buildConversationScopeKey(scope: WorkbenchConversationScope): string;
49
- export declare function readWorkbenchUiMemory(): WorkbenchUiMemory | null;
50
- export declare function writeWorkbenchUiMemory(memory: WorkbenchUiMemory): void;
50
+ export declare function readWorkbenchUiMemory(storage?: WorkbenchStorageAdapter): WorkbenchUiMemory | null;
51
+ export declare function writeWorkbenchUiMemory(memory: WorkbenchUiMemory, storage?: WorkbenchStorageAdapter): void;
51
52
  /**
52
53
  * 读取当前 scope 的最近真实会话 ID。
53
54
  * @param scope - 当前运行态身份、工作台和聊天模式。
54
55
  * @returns DeepAgent threadId;没有可恢复会话时返回空字符串。
55
56
  */
56
- export declare function readScopedSelectedConversationId(scope: WorkbenchConversationScope): string;
57
+ export declare function readScopedSelectedConversationId(scope: WorkbenchConversationScope, storage?: WorkbenchStorageAdapter): string;
57
58
  /**
58
59
  * 写入当前 scope 的最近真实会话 ID。
59
60
  * @param scope - 当前运行态身份、工作台和聊天模式。
60
61
  * @param conversationId - DeepAgent threadId。
61
62
  */
62
- export declare function writeScopedSelectedConversationId(scope: WorkbenchConversationScope, conversationId: string): void;
63
+ export declare function writeScopedSelectedConversationId(scope: WorkbenchConversationScope, conversationId: string, storage?: WorkbenchStorageAdapter): void;
63
64
  /**
64
65
  * 清理当前 scope 的最近真实会话 ID。
65
66
  * @param scope - 当前运行态身份、工作台和聊天模式。
66
67
  */
67
- export declare function clearScopedSelectedConversationId(scope: WorkbenchConversationScope): void;
68
- export declare function readWorkbenchCanvasSettings(workspaceId: string): WorkbenchCanvasSettingsMemory;
69
- export declare function writeWorkbenchCanvasSettings(workspaceId: string, settings: WorkbenchCanvasSettingsMemory): void;
68
+ export declare function clearScopedSelectedConversationId(scope: WorkbenchConversationScope, storage?: WorkbenchStorageAdapter): void;
69
+ export declare function readWorkbenchCanvasSettings(workspaceId: string, storage?: WorkbenchStorageAdapter): WorkbenchCanvasSettingsMemory;
70
+ export declare function writeWorkbenchCanvasSettings(workspaceId: string, settings: WorkbenchCanvasSettingsMemory, storage?: WorkbenchStorageAdapter): void;
@@ -1,9 +1,9 @@
1
1
  type __VLS_Props = {
2
2
  embedInPortal?: boolean;
3
3
  };
4
- declare var __VLS_16: {};
4
+ declare var __VLS_31: {};
5
5
  type __VLS_Slots = {} & {
6
- 'before-workbench'?: (props: typeof __VLS_16) => any;
6
+ 'before-workbench'?: (props: typeof __VLS_31) => any;
7
7
  };
8
8
  declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
9
9
  embedInPortal: boolean;
@@ -0,0 +1,35 @@
1
+ import type { ConversationTaskState, ConversationTurn, WorkbenchPlanStreamEvent } from '@fses/workbench-app/types';
2
+ import type { WorkbenchCardDataTaskContinuation, WorkbenchCardDataTaskRuntimeState } from '../../vue-types/workbenchRuntime';
3
+ export type CardDataTaskStreamEvent = Extract<WorkbenchPlanStreamEvent, {
4
+ type: 'card_data_task_started' | 'card_data_task_progress' | 'card_data_task_confirmation' | 'card_data_task_empty' | 'card_data_task_bound' | 'card_data_task_config_required' | 'card_data_task_failed';
5
+ }>;
6
+ /** 判断轮次是否已有指定任务状态。 */
7
+ export declare function turnHasTaskState(turn: ConversationTurn, taskId: string | undefined): boolean;
8
+ /** 将 task_state 同步写入当前和历史轮次。 */
9
+ export declare function applyTaskStateEventToTurns(turns: ConversationTurn[], targetTurnId: string, event: Extract<WorkbenchPlanStreamEvent, {
10
+ type: 'task_state';
11
+ }>): ConversationTurn[];
12
+ /** 判断是否为 card-data-task 流事件。 */
13
+ export declare function isCardDataTaskStreamEvent(event: WorkbenchPlanStreamEvent): event is CardDataTaskStreamEvent;
14
+ /** 返回 card-data-task 的展示标题。 */
15
+ export declare function cardDataTaskReturnTitle(event: CardDataTaskStreamEvent): string;
16
+ /** 返回 card-data-task 的展示摘要。 */
17
+ export declare function cardDataTaskReturnSummary(event: CardDataTaskStreamEvent): string;
18
+ /** 将后端确认候选转换为任务状态候选。 */
19
+ export declare function cardDataTaskClarificationOptions(options: Array<Record<string, unknown>>): ConversationTaskState['clarificationOptions'];
20
+ /** 将 card-data-task 确认事件转换为通用任务状态。 */
21
+ export declare function cardDataTaskConfirmationState(event: Extract<WorkbenchPlanStreamEvent, {
22
+ type: 'card_data_task_confirmation';
23
+ }>): ConversationTaskState;
24
+ /** 判断 card-data-task 事件是否需要展示返回项。 */
25
+ export declare function shouldAppendCardDataTaskReturnItem(event: CardDataTaskStreamEvent): boolean;
26
+ /** 根据确认短语构造 card-data-task 续接参数。 */
27
+ export declare function cardDataTaskContinuationFromPhrase(task: WorkbenchCardDataTaskRuntimeState, phrase: string): WorkbenchCardDataTaskContinuation | null;
28
+ /** 判断输入是否为任务取消短语。 */
29
+ export declare function isTaskCancelPhrase(value: string): boolean;
30
+ /** 判断输入是否为候选序号。 */
31
+ export declare function isTaskOptionSelectionPhrase(value: string): boolean;
32
+ /** 本地更新一个任务确认状态。 */
33
+ export declare function taskStateAfterPhraseSubmit(task: ConversationTaskState, phrase: string): ConversationTaskState;
34
+ /** 同步更新所有持有同 taskId 的任务卡。 */
35
+ export declare function markTaskStatePhraseSubmittedInTurns(turns: ConversationTurn[], taskId: string, phrase: string): ConversationTurn[];
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @fileoverview 工作台 canvas runtime domain - 管理图表可读尺寸和 V2 布局树投影算法。
3
+ * @author seadon
4
+ * @created 2026-09-01
5
+ */
6
+ import type { BlockLayout, MaterializedBlock } from '@fses/workbench-app/types';
7
+ import type { WorkbenchV2Card, WorkbenchV2Document } from '../../types/workbenchV2';
8
+ export interface ReadableChartMinimumSize {
9
+ height?: number;
10
+ width?: number;
11
+ }
12
+ /** 读取有限正数。 */
13
+ export declare function positiveRuntimeNumber(value: unknown): number | undefined;
14
+ /** 估算中英文标签展示宽度。 */
15
+ export declare function runtimeDisplayWidth(value: unknown): number;
16
+ /** 将布局数值规整到三位小数。 */
17
+ export declare function roundRuntimeLayoutValue(value: number): number;
18
+ /** 估算类目轴最小可读宽度。 */
19
+ export declare function readableCategoryAxisMinimumWidth(categoryCount: number, longestLabelWidth: number): number | undefined;
20
+ /** 读取 ECharts series 记录。 */
21
+ export declare function runtimeEChartsSeries(option: unknown): Record<string, unknown>[];
22
+ /** 判断 series 是否为南丁格尔玫瑰图。 */
23
+ export declare function isRuntimeRosePieSeries(series: Record<string, unknown>): boolean;
24
+ /** 估算 pie/rose 标签统计。 */
25
+ export declare function runtimePieSeriesLabelStats(series: Record<string, unknown>): {
26
+ count: number;
27
+ longest: number;
28
+ };
29
+ /** 估算原生 ECharts option 最小可读尺寸。 */
30
+ export declare function readableEChartsOptionMinimumSize(option: unknown): ReadableChartMinimumSize;
31
+ /** 按 renderer data 估算图表最小可读尺寸。 */
32
+ export declare function readableChartMinimumSize(data: Record<string, unknown>): ReadableChartMinimumSize;
33
+ /** 判断扩宽后是否仍为空槽。 */
34
+ export declare function canGrowReadableChartWidth(layout: BlockLayout, width: number, height: number, siblingLayouts: readonly BlockLayout[]): boolean;
35
+ /** 计算可应用的图表增长宽度。 */
36
+ export declare function readableChartNextWidth(layout: BlockLayout, minimumWidth: number | undefined, siblingLayouts: readonly BlockLayout[], height?: number): number | undefined;
37
+ /** 在不缩小已有布局的前提下应用可读尺寸。 */
38
+ export declare function layoutWithReadableChartMinimumSize(layout: BlockLayout, data: Record<string, unknown>, siblingLayouts?: readonly BlockLayout[]): BlockLayout;
39
+ /** 应用 MaterializedBlock 图表可读尺寸。 */
40
+ export declare function layoutWithReadableChartMinimum(block: MaterializedBlock, data: Record<string, unknown>, siblingBlocks?: readonly MaterializedBlock[]): BlockLayout;
41
+ /** 应用 V2 card layout 图表可读尺寸。 */
42
+ export declare function v2LayoutWithReadableChartMinimum(layout: WorkbenchV2Card['layout'] | undefined, cardId: string, data: Record<string, unknown>, siblingLayouts?: readonly BlockLayout[]): WorkbenchV2Card['layout'] | undefined;
43
+ /** 同步 V2 visualConfig.layoutTree 中的图表可读尺寸。 */
44
+ export declare function v2DocumentWithReadableChartLayoutTree(document: WorkbenchV2Document, cardId: string, data: Record<string, unknown>): WorkbenchV2Document;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @fileoverview 工作台 conversation runtime domain - 管理 DeepAgent run 与 invocation 去重资源。
3
+ * @author seadon
4
+ * @created 2026-09-01
5
+ */
6
+ export interface DeepAgentDedupeResources {
7
+ terminalRunIds: Set<string>;
8
+ visibleInvocationIdsByRun: Map<string, Set<string>>;
9
+ }
10
+ export interface DeepAgentRuntimeEventLike {
11
+ status?: string;
12
+ type: string;
13
+ }
14
+ /** 生成 run 级去重 key。 */
15
+ export declare function deepAgentRunDedupeKey(threadId: string, runId: string): string;
16
+ /** 标记已展示的结构化 invocation。 */
17
+ export declare function markDeepAgentVisibleInvocation(resources: DeepAgentDedupeResources, threadId: string, runId: string, invocationId: string): void;
18
+ /** 判断 invocation 是否已经展示。 */
19
+ export declare function hasDeepAgentVisibleInvocation(resources: DeepAgentDedupeResources, threadId: string, runId: string, invocationId: string): boolean;
20
+ /** 标记 run 已进入终态。 */
21
+ export declare function markDeepAgentTerminalRun(resources: DeepAgentDedupeResources, threadId: string, runId: string): void;
22
+ /** 判断 run 是否已经终止。 */
23
+ export declare function isDeepAgentTerminalRun(resources: DeepAgentDedupeResources, threadId: string, runId: string): boolean;
24
+ /** 清理 run 终态标记。 */
25
+ export declare function clearDeepAgentTerminalRuns(resources: DeepAgentDedupeResources, threadId?: string | null, runId?: string | null): void;
26
+ /** 清理 invocation 去重状态。 */
27
+ export declare function clearDeepAgentVisibleInvocations(resources: DeepAgentDedupeResources, threadId?: string | null, runId?: string | null): void;
28
+ /** 判断运行态事件是否代表 run 终态。 */
29
+ export declare function isDeepAgentTerminalRuntimeEvent(event: DeepAgentRuntimeEventLike): boolean;
@@ -0,0 +1,27 @@
1
+ import type { MaterializedBlock, WorkbenchSnapshot } from '@fses/workbench-app/types';
2
+ /** 判断 renderer series 是否包含数据。 */
3
+ export declare function rendererSeriesHasValues(value: unknown): boolean;
4
+ /** 判断 renderer data 是否已有可渲染 payload。 */
5
+ export declare function rendererDataHasRenderablePayload(rendererData: Record<string, unknown>): boolean;
6
+ /** 判断 binding 或 renderer 是否已有确认查询数据。 */
7
+ export declare function dataBindingHasConfirmedPayload(bindingValue: unknown, rendererDataValue?: unknown): boolean;
8
+ /** 判断 renderer data 是否包含 binding 生命周期 metadata。 */
9
+ export declare function hasDataBindingRuntimeMetadata(value: unknown): boolean;
10
+ /** 将 source 中缺失的 runtime 字段补到 target。 */
11
+ export declare function fillMissingRuntimeFields(target: Record<string, unknown>, source: Record<string, unknown>, fields: string[]): void;
12
+ /** 读取 binding id。 */
13
+ export declare function dataBindingRuntimeId(value: unknown): string;
14
+ /** 判断旧 metadata 是否可安全复制到 incoming。 */
15
+ export declare function canPreserveRuntimeMetadata(previous: Record<string, unknown>, incoming: Record<string, unknown>): boolean;
16
+ /** 判断 incoming 是否仍是失败状态。 */
17
+ export declare function canPreserveRuntimeErrorMetadata(value: Record<string, unknown>): boolean;
18
+ /** 读取 binding 生命周期状态。 */
19
+ export declare function runtimeDataBindingStatus(value: Record<string, unknown>): string;
20
+ /** 将仅由旧 metadata 复制出的 running 状态收敛到终态。 */
21
+ export declare function normalizeImplicitRunningRuntimeMetadata(value: Record<string, unknown>): Record<string, unknown>;
22
+ /** 判断卡片是否为手动替换占位卡。 */
23
+ export declare function isRuntimeManualReplacementPlaceholder(block: MaterializedBlock): boolean;
24
+ /** 保留单卡 sparse response 中省略的 data-binding metadata。 */
25
+ export declare function preserveBlockDataBindingRuntimeMetadata(previous: MaterializedBlock | undefined, incoming: MaterializedBlock): MaterializedBlock;
26
+ /** 保留 sparse snapshot 中同 ID 卡片的 data-binding metadata。 */
27
+ export declare function preserveSnapshotDataBindingRuntimeMetadata(previousSnapshot: WorkbenchSnapshot | null, nextSnapshot: WorkbenchSnapshot): WorkbenchSnapshot;