@fses/workbench-app 0.2.17 → 0.2.20

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 (127) hide show
  1. package/WORKBENCH-CLOSURE.json +14 -14
  2. package/dist/WorkbenchCardCenterDrawer-CWBuBD04.js +421 -0
  3. package/dist/WorkbenchDiagnosticsFooter-BxpwRNMe.js +22 -0
  4. package/dist/WorkbenchDiagnosticsPage-D0mWFNWS.js +72 -0
  5. package/dist/Workspace-DwnUU7_7.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-DcoxF7gK.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 +106 -89
  35. package/dist/index-CytMrt6f.js +1771 -0
  36. package/dist/index-DkGYPLLJ.js +34 -0
  37. package/dist/index.d.ts +10 -1
  38. package/dist/internal/personal-workbench/components/workbench/WorkbenchCanvas.vue.d.ts +4 -4
  39. package/dist/internal/personal-workbench/components/workbench/WorkbenchCanvasSettingsMenu.vue.d.ts +4 -4
  40. package/dist/internal/personal-workbench/components/workbench/WorkbenchFdeImageComposeDrawer.vue.d.ts +19 -0
  41. package/dist/internal/personal-workbench/components/workbench/WorkbenchFdeToolbar.vue.d.ts +36 -0
  42. package/dist/internal/personal-workbench/components/workbench/WorkbenchStudio.vue.d.ts +5 -4
  43. package/dist/internal/personal-workbench/components/workbench/controllers/canvasConfigController.d.ts +23 -0
  44. package/dist/internal/personal-workbench/components/workbench/controllers/canvasLayoutController.d.ts +12 -0
  45. package/dist/internal/personal-workbench/components/workbench/controllers/canvasRefreshController.d.ts +11 -0
  46. package/dist/internal/personal-workbench/components/workbench/controllers/canvasSelectionController.d.ts +11 -0
  47. package/dist/internal/personal-workbench/components/workbench/showcase/WorkbenchShowcase.vue.d.ts +4 -4
  48. package/dist/internal/personal-workbench/controllers/workbenchBuiltinPluginBridge.d.ts +32 -0
  49. package/dist/internal/personal-workbench/controllers/workbenchChartConfigModel.d.ts +68 -0
  50. package/dist/internal/personal-workbench/controllers/workbenchChartDataSourceController.d.ts +100 -0
  51. package/dist/internal/personal-workbench/controllers/workbenchChartDrilldownController.d.ts +96 -0
  52. package/dist/internal/personal-workbench/controllers/workbenchChartDrilldownTable.d.ts +34 -0
  53. package/dist/internal/personal-workbench/controllers/workbenchFdeVersionController.d.ts +107 -0
  54. package/dist/internal/personal-workbench/controllers/workbenchRecommendationConfigModel.d.ts +82 -0
  55. package/dist/internal/personal-workbench/lib/deepAgentApi.d.ts +13 -9
  56. package/dist/internal/personal-workbench/lib/deepAgentQueueState.d.ts +3 -1
  57. package/dist/internal/personal-workbench/lib/fdeWorkbenchConfigClient.d.ts +6 -5
  58. package/dist/internal/personal-workbench/lib/runtimeIdentity.d.ts +5 -0
  59. package/dist/internal/personal-workbench/lib/runtimePrimitiveRegistry.d.ts +1 -1
  60. package/dist/internal/personal-workbench/lib/vueRuntimeAdapters.d.ts +22 -5
  61. package/dist/internal/personal-workbench/lib/workbenchApi.d.ts +61 -47
  62. package/dist/internal/personal-workbench/lib/workbenchMetricDetailApi.d.ts +2 -1
  63. package/dist/internal/personal-workbench/lib/workbenchRemoteClient.d.ts +3 -1
  64. package/dist/internal/personal-workbench/lib/workbenchRequestTransport.d.ts +24 -0
  65. package/dist/internal/personal-workbench/lib/workbenchStorage.d.ts +8 -7
  66. package/dist/internal/personal-workbench/pages/Workspace.vue.d.ts +2 -2
  67. package/dist/internal/personal-workbench/stores/domains/actionsRuntime.d.ts +35 -0
  68. package/dist/internal/personal-workbench/stores/domains/canvasRuntime.d.ts +44 -0
  69. package/dist/internal/personal-workbench/stores/domains/conversationRuntime.d.ts +29 -0
  70. package/dist/internal/personal-workbench/stores/domains/dataBindingRuntime.d.ts +27 -0
  71. package/dist/internal/personal-workbench/stores/domains/fdeRuntime.d.ts +38 -0
  72. package/dist/internal/personal-workbench/stores/domains/memoryRuntime.d.ts +53 -0
  73. package/dist/internal/personal-workbench/stores/workbenchRuntime.d.ts +28 -1
  74. package/dist/kernel/command/createCommandRegistry.d.ts +19 -0
  75. package/dist/kernel/createWorkbenchHostContext.d.ts +43 -0
  76. package/dist/kernel/createWorkbenchKernel.d.ts +7 -0
  77. package/dist/kernel/diagnostics/createWorkbenchDiagnostics.d.ts +35 -0
  78. package/dist/kernel/event/createEventBus.d.ts +16 -0
  79. package/dist/kernel/plugin/createPluginManager.d.ts +7 -0
  80. package/dist/kernel/plugin/registrationScope.d.ts +15 -0
  81. package/dist/kernel/plugin/types.d.ts +30 -0
  82. package/dist/kernel/registry/createRegistry.d.ts +42 -0
  83. package/dist/kernel/registry/resolveSlotContributions.d.ts +14 -0
  84. package/dist/kernel/types.d.ts +52 -0
  85. package/dist/kernel/workbenchHostContext.d.ts +14 -0
  86. package/dist/normalizeWorkbenchExtensions-Ccv3n3fC.js +425 -0
  87. package/dist/plugin/index.d.ts +7 -0
  88. package/dist/plugin/index.js +8 -0
  89. package/dist/plugin/types.d.ts +106 -0
  90. package/dist/plugins/defaultWorkbenchPlugins.d.ts +11 -0
  91. package/dist/plugins/workbenchCardCenterPlugin.d.ts +13 -0
  92. package/dist/plugins/workbenchDiagnosticsPlugin.d.ts +15 -0
  93. package/dist/plugins/workbenchDrawerCommands.d.ts +16 -0
  94. package/dist/plugins/workbenchSettingsPlugin.d.ts +19 -0
  95. package/dist/plugins/workbenchThemePlugin.d.ts +15 -0
  96. package/dist/routing/createWorkbenchFeatureRoute.d.ts +11 -0
  97. package/dist/routing/resolveWorkbenchFeatureRoute.d.ts +23 -0
  98. package/dist/runtime/index.d.ts +6 -1
  99. package/dist/runtime/index.js +6 -3
  100. package/dist/runtime/scope/createWorkbenchRuntimeScope.d.ts +10 -0
  101. package/dist/runtime/store/workbenchRuntimeContext.d.ts +12 -0
  102. package/dist/runtime/store/workbenchRuntimeFacade.d.ts +3 -0
  103. package/dist/style.css +1 -1
  104. package/dist/types/index.d.ts +2 -0
  105. package/dist/useWorkbenchRuntime-CJLqEtgU.js +24062 -0
  106. package/dist/version.d.ts +1 -1
  107. package/node_modules/@fses/ai-chat/dist/components/FsesAiChat.vue.d.ts +9 -1
  108. package/node_modules/@fses/ai-chat/dist/composables/types.d.ts +9 -0
  109. package/node_modules/@fses/ai-chat/dist/fses-ai-chat.js +28238 -7473
  110. package/node_modules/@fses/ai-chat/dist/fses-ai-chat.umd.cjs +17 -17
  111. package/node_modules/@fses/ai-chat/dist/index.d.ts +1 -1
  112. package/node_modules/@fses/ai-chat/dist/style.css +1 -1
  113. package/node_modules/@fses/ai-chat/package.json +3 -3
  114. package/node_modules/@fses/workbench-card/dist/fses-workbench-card-renderers.js +5 -5
  115. package/node_modules/@fses/workbench-card/dist/fses-workbench-card.js +5 -5
  116. package/node_modules/@fses/workbench-card/dist/fses-workbench-card.umd.cjs +1 -1
  117. package/node_modules/@fses/workbench-card/dist/types/block.d.ts +4 -1
  118. package/node_modules/@fses/workbench-card/package.json +1 -1
  119. package/node_modules/@fses/workbench-card/src/registry/cardRegistry.ts +4 -4
  120. package/node_modules/@fses/workbench-card/src/registry/echartsTemplateRegistry.generated.js +1 -1
  121. package/node_modules/@fses/workbench-card/src/registry/echartsTemplateRegistry.generated.ts +1 -1
  122. package/node_modules/@fses/workbench-card/src/types/block.ts +4 -12
  123. package/package.json +7 -3
  124. package/dist/Workspace-r8ayksVF.js +0 -23176
  125. package/dist/index-DEOR_GPc.js +0 -829
  126. package/dist/useWorkbenchRuntime-DDD22mdF.js +0 -23831
  127. package/dist/workbenchCustomComponentRegistry-CWUPjCnJ.js +0 -267
@@ -0,0 +1,34 @@
1
+ const o = "workbench.drawer.open", s = "workbench.drawer.close", d = "workbench.diagnostics.drawer", t = "workbench.drawer.open", a = "workbench.drawer.close";
2
+ function c(e) {
3
+ const r = e && typeof e == "object" ? e.drawerId : void 0;
4
+ if (typeof r != "string" || !r.trim())
5
+ throw new Error("WORKBENCH_DRAWER_ID_REQUIRED");
6
+ return r.trim();
7
+ }
8
+ function E() {
9
+ return {
10
+ id: "workbench.core.drawer-commands",
11
+ kernelApiVersion: 1,
12
+ setup(e) {
13
+ e.commands.register({
14
+ id: o,
15
+ execute: async (r) => {
16
+ const n = c(r);
17
+ return await e.events.emit(t, { drawerId: n }), { drawerId: n, opened: !0 };
18
+ }
19
+ }), e.commands.register({
20
+ id: s,
21
+ execute: async () => (await e.events.emit(a), { closed: !0 })
22
+ });
23
+ },
24
+ version: "1.0.0"
25
+ };
26
+ }
27
+ export {
28
+ o as W,
29
+ d as a,
30
+ s as b,
31
+ E as c,
32
+ a as d,
33
+ t as e
34
+ };
package/dist/index.d.ts CHANGED
@@ -29,8 +29,17 @@ export * from './runtime/data-binding/workbenchDataBindingRefreshPolicy';
29
29
  export * from './fde-runtime/runtime/fdeSkillDisplayLabel';
30
30
  export { createWorkbenchAppContext, WORKBENCH_APP_CONTEXT_KEY, useWorkbenchAppContext } from './runtime/context/workbenchAppContext';
31
31
  export type { WorkbenchAppContext, WorkbenchAppContextSource } from './runtime/context/workbenchAppContext';
32
+ export { createWorkbenchHostContext } from './kernel/createWorkbenchHostContext';
33
+ export type { CreateWorkbenchHostContextOptions, WorkbenchHostContext, WorkbenchHostDefinition, } from './kernel/createWorkbenchHostContext';
34
+ export { WORKBENCH_HOST_CONTEXT_KEY, useWorkbenchHostContext } from './kernel/workbenchHostContext';
35
+ export { createWorkbenchFeatureRoute } from './routing/createWorkbenchFeatureRoute';
36
+ export type { CreateWorkbenchFeatureRouteOptions } from './routing/createWorkbenchFeatureRoute';
37
+ export type { WorkbenchFeatureRouteResolution } from './routing/resolveWorkbenchFeatureRoute';
32
38
  export type { WorkbenchRuntimeFacade } from './runtime/store/workbenchRuntimeFacade';
33
- export { useWorkbenchRuntime, useWorkbenchRuntimeStore } from './runtime';
39
+ export { createWorkbenchRuntimeStoreDefinition, useWorkbenchRuntime, useWorkbenchRuntimeStore, } from './runtime';
40
+ export type { CreateWorkbenchRuntimeStoreDefinitionOptions } from './runtime';
41
+ export { createWorkbenchRuntimeScope } from './runtime/scope/createWorkbenchRuntimeScope';
42
+ export type { WorkbenchRuntimeScope } from './runtime/scope/createWorkbenchRuntimeScope';
34
43
  export { ensurePlatformUserSessionReady } from './internal/personal-workbench/lib/platformFetchClient';
35
44
  export { formatAmount } from './internal/personal-workbench/lib/formatters';
36
45
  export * from './internal/personal-workbench/lib/agentMemoryClient';
@@ -136,6 +136,8 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {
136
136
  requestRefreshConfigDraftBlock: typeof requestRefreshConfigDraftBlock;
137
137
  requestCardRenderedSize: typeof requestCardRenderedSize;
138
138
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
139
+ insertSystemCard: (selection: SystemCardPromptSelection) => any;
140
+ insertCustomCard: (entry: WorkbenchCustomCardCatalogEntry) => any;
139
141
  focusBlock: (blockId: string) => any;
140
142
  metricDetail: (payload: WorkbenchMetricDetailPayload) => any;
141
143
  focusNestedBlock: (payload: {
@@ -150,8 +152,6 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {
150
152
  cardPresetSizeConfigChange: (config: WorkbenchCardPresetSizeConfig) => any;
151
153
  canvasGapPresetChange: (preset: WorkbenchCanvasGapPreset) => any;
152
154
  pasteCardPrompt: (selection: SystemCardPromptSelection) => any;
153
- insertSystemCard: (selection: SystemCardPromptSelection) => any;
154
- insertCustomCard: (entry: WorkbenchCustomCardCatalogEntry) => any;
155
155
  layoutChange: (layout: readonly LayoutChangeItem[]) => any;
156
156
  configModeChange: (active: boolean) => any;
157
157
  configDirtyChange: (dirty: boolean) => any;
@@ -192,6 +192,8 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {
192
192
  canvasNoticeAction: (actionId: string) => any;
193
193
  autoArrangeFeedback: (payload: AutoArrangeFeedbackPayload) => any;
194
194
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
195
+ onInsertSystemCard?: (selection: SystemCardPromptSelection) => any;
196
+ onInsertCustomCard?: (entry: WorkbenchCustomCardCatalogEntry) => any;
195
197
  onFocusBlock?: (blockId: string) => any;
196
198
  onMetricDetail?: (payload: WorkbenchMetricDetailPayload) => any;
197
199
  onFocusNestedBlock?: (payload: {
@@ -206,8 +208,6 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {
206
208
  onCardPresetSizeConfigChange?: (config: WorkbenchCardPresetSizeConfig) => any;
207
209
  onCanvasGapPresetChange?: (preset: WorkbenchCanvasGapPreset) => any;
208
210
  onPasteCardPrompt?: (selection: SystemCardPromptSelection) => any;
209
- onInsertSystemCard?: (selection: SystemCardPromptSelection) => any;
210
- onInsertCustomCard?: (entry: WorkbenchCustomCardCatalogEntry) => any;
211
211
  onLayoutChange?: (layout: readonly LayoutChangeItem[]) => any;
212
212
  onConfigModeChange?: (active: boolean) => any;
213
213
  onConfigDirtyChange?: (dirty: boolean) => any;
@@ -14,23 +14,23 @@ type __VLS_Props = {
14
14
  saving?: boolean;
15
15
  };
16
16
  declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
17
+ insertSystemCard: (selection: SystemCardPromptSelection) => any;
18
+ insertCustomCard: (entry: WorkbenchCustomCardCatalogEntry) => any;
17
19
  workbenchStyleChange: (style: WorkbenchStyleKey) => any;
18
20
  workbenchStyleCodeSave: (style: WorkbenchStyleKey, code: string) => any;
19
21
  cardStyleConfigChange: (config: WorkbenchCardStyleConfig) => any;
20
22
  cardPresetSizeConfigChange: (config: WorkbenchCardPresetSizeConfig) => any;
21
23
  canvasGapPresetChange: (preset: WorkbenchCanvasGapPreset) => any;
22
24
  pasteCardPrompt: (selection: SystemCardPromptSelection) => any;
23
- insertSystemCard: (selection: SystemCardPromptSelection) => any;
24
- insertCustomCard: (entry: WorkbenchCustomCardCatalogEntry) => any;
25
25
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
26
+ onInsertSystemCard?: (selection: SystemCardPromptSelection) => any;
27
+ onInsertCustomCard?: (entry: WorkbenchCustomCardCatalogEntry) => any;
26
28
  onWorkbenchStyleChange?: (style: WorkbenchStyleKey) => any;
27
29
  onWorkbenchStyleCodeSave?: (style: WorkbenchStyleKey, code: string) => any;
28
30
  onCardStyleConfigChange?: (config: WorkbenchCardStyleConfig) => any;
29
31
  onCardPresetSizeConfigChange?: (config: WorkbenchCardPresetSizeConfig) => any;
30
32
  onCanvasGapPresetChange?: (preset: WorkbenchCanvasGapPreset) => any;
31
33
  onPasteCardPrompt?: (selection: SystemCardPromptSelection) => any;
32
- onInsertSystemCard?: (selection: SystemCardPromptSelection) => any;
33
- onInsertCustomCard?: (entry: WorkbenchCustomCardCatalogEntry) => any;
34
34
  }>, {
35
35
  cardStyleConfig: WorkbenchCardStyleConfig;
36
36
  cardPresetSizeConfig: WorkbenchCardPresetSizeConfig;
@@ -0,0 +1,19 @@
1
+ type __VLS_Props = {
2
+ fileName?: string;
3
+ };
4
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
5
+ close: () => any;
6
+ drawerElementChange: (element: HTMLElement) => any;
7
+ fileChange: (event: Event) => any;
8
+ fileInputElementChange: (element: HTMLInputElement) => any;
9
+ focusout: (event: FocusEvent) => any;
10
+ triggerUpload: () => any;
11
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
12
+ onClose?: () => any;
13
+ onDrawerElementChange?: (element: HTMLElement) => any;
14
+ onFileChange?: (event: Event) => any;
15
+ onFileInputElementChange?: (element: HTMLInputElement) => any;
16
+ onFocusout?: (event: FocusEvent) => any;
17
+ onTriggerUpload?: () => any;
18
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
19
+ export default _default;
@@ -0,0 +1,36 @@
1
+ import type { WorkbenchFdeVersionOption } from '../../controllers/workbenchFdeVersionController';
2
+ type FdeToolbarTool = 'imageCompose' | 'cardCenter';
3
+ type __VLS_Props = {
4
+ activeTool: '' | 'imageCompose';
5
+ busy: boolean;
6
+ cardCenterActive: boolean;
7
+ contextReady: boolean;
8
+ dirty: boolean;
9
+ fallbackName?: string;
10
+ resourceName?: string;
11
+ versionLabel: string;
12
+ versionMenuOpen: boolean;
13
+ versions: WorkbenchFdeVersionOption[];
14
+ };
15
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
16
+ restoreVersion: (versionNo: string | number) => any;
17
+ save: () => any;
18
+ saveAs: () => any;
19
+ toolClick: (tool: FdeToolbarTool, event: MouseEvent) => any;
20
+ toolPointerDown: (tool: FdeToolbarTool) => any;
21
+ toolsElementChange: (element: HTMLElement) => any;
22
+ versionMenuElementChange: (element: HTMLElement) => any;
23
+ versionMenuFocusout: (event: FocusEvent) => any;
24
+ versionMenuOpenChange: (open: boolean) => any;
25
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
26
+ onRestoreVersion?: (versionNo: string | number) => any;
27
+ onSave?: () => any;
28
+ onSaveAs?: () => any;
29
+ onToolClick?: (tool: FdeToolbarTool, event: MouseEvent) => any;
30
+ onToolPointerDown?: (tool: FdeToolbarTool) => any;
31
+ onToolsElementChange?: (element: HTMLElement) => any;
32
+ onVersionMenuElementChange?: (element: HTMLElement) => any;
33
+ onVersionMenuFocusout?: (event: FocusEvent) => any;
34
+ onVersionMenuOpenChange?: (open: boolean) => any;
35
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
36
+ export default _default;
@@ -1,12 +1,13 @@
1
1
  import { type WorkbenchCardStyleConfig } from "@workbench-internal/lib/cardStyleConfig";
2
2
  import { type WorkbenchChatHistoryMessage } from "@workbench-internal/lib/workbenchChatHistory";
3
+ import type { RestoredConversationTurn } from "@workbench-internal/lib/vueRuntimeAdapters";
3
4
  import { type MetricWorkbenchCardSpec } from "@workbench-internal/lib/aiMetricCardSpec";
4
5
  import { type WorkbenchCanvasGapPreset, type WorkbenchCardPresetSizeConfig } from "@workbench-internal/lib/cardSizeConfig";
5
6
  import { type WorkbenchActionPayload } from "@workbench-internal/lib/workbenchApi";
6
7
  import type { WorkbenchStyleCodeMap, WorkbenchStyleKey } from "@workbench-internal/lib/workbenchThemes";
7
8
  import type { SystemCardPromptSelection, SystemCardWorkbenchPromptParams } from "@workbench-internal/lib/workbenchSystemCardPrompt";
8
9
  import type { CardRecommendationChooseFeedback, CardRecommendationItem, ChatAttachment, FsesAiChatQuickEntry } from "@fses/workbench-app/types";
9
- import type { AssistantPersonaKey, ConversationGroupSummary, ConversationTurn, LayoutConfig, WorkbenchIntentChannel, WorkbenchTemplate } from '@fses/workbench-app/types';
10
+ import type { AssistantPersonaKey, ConversationGroupSummary, LayoutConfig, WorkbenchIntentChannel, WorkbenchTemplate } from '@fses/workbench-app/types';
10
11
  import type { BusinessGroupContext } from "@fses/workbench-app/types";
11
12
  import type { ChartCardSpec } from "@fses/workbench-app/types";
12
13
  type UploadedChatAttachmentPayload = {
@@ -35,7 +36,7 @@ type __VLS_Props = {
35
36
  input: string;
36
37
  planning: boolean;
37
38
  saving: boolean;
38
- turns: ConversationTurn[];
39
+ turns: RestoredConversationTurn[];
39
40
  activeTurnId?: string | null;
40
41
  activeConversationId?: string;
41
42
  conversations?: ConversationGroupSummary[];
@@ -117,13 +118,13 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {
117
118
  openWorkbenchHistory: typeof openWorkbenchHistory;
118
119
  openWorkbenchSettings: typeof openWorkbenchSettings;
119
120
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
121
+ insertSystemCard: (selection: SystemCardPromptSelection) => any;
120
122
  workbenchStyleChange: (style: WorkbenchStyleKey) => any;
121
123
  workbenchStyleCodeSave: (style: WorkbenchStyleKey, code: string) => any;
122
124
  cardStyleConfigChange: (config: WorkbenchCardStyleConfig) => any;
123
125
  cardPresetSizeConfigChange: (config: WorkbenchCardPresetSizeConfig) => any;
124
126
  canvasGapPresetChange: (preset: WorkbenchCanvasGapPreset) => any;
125
127
  pasteCardPrompt: (selection: SystemCardPromptSelection) => any;
126
- insertSystemCard: (selection: SystemCardPromptSelection) => any;
127
128
  inputChange: (value: string) => any;
128
129
  send: (payload?: WorkbenchChatSendPayload) => any;
129
130
  stop: (turnId?: string) => any;
@@ -186,13 +187,13 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {
186
187
  }) => any;
187
188
  clearSelectedPatchTarget: () => any;
188
189
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
190
+ onInsertSystemCard?: (selection: SystemCardPromptSelection) => any;
189
191
  onWorkbenchStyleChange?: (style: WorkbenchStyleKey) => any;
190
192
  onWorkbenchStyleCodeSave?: (style: WorkbenchStyleKey, code: string) => any;
191
193
  onCardStyleConfigChange?: (config: WorkbenchCardStyleConfig) => any;
192
194
  onCardPresetSizeConfigChange?: (config: WorkbenchCardPresetSizeConfig) => any;
193
195
  onCanvasGapPresetChange?: (preset: WorkbenchCanvasGapPreset) => any;
194
196
  onPasteCardPrompt?: (selection: SystemCardPromptSelection) => any;
195
- onInsertSystemCard?: (selection: SystemCardPromptSelection) => any;
196
197
  onInputChange?: (value: string) => any;
197
198
  onSend?: (payload?: WorkbenchChatSendPayload) => any;
198
199
  onStop?: (turnId?: string) => any;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @fileoverview WorkbenchCanvas 配置 controller - 解析 card.data JSON、iframe 和 ECharts script 草稿。
3
+ * @author seadon
4
+ * @created 2026-09-01
5
+ */
6
+ export interface CanvasCardDataDraftInput {
7
+ draft: string;
8
+ nativeEcharts: boolean;
9
+ rootPath: string;
10
+ messages: {
11
+ empty: string;
12
+ invalid: string;
13
+ invalidObject: string;
14
+ nativeNarrative: string;
15
+ nativeGlNarrative: string;
16
+ };
17
+ }
18
+ /** 判断 script 是否需要 echarts-gl。 */
19
+ export declare function scriptRequiresEchartsGl(script: string): boolean;
20
+ /** 归一化可编辑 card.data。 */
21
+ export declare function normalizeEditedCardData(data: Record<string, unknown>): Record<string, unknown>;
22
+ /** 解析 card.data 编辑草稿。 */
23
+ export declare function normalizeCanvasCardDataDraft(input: CanvasCardDataDraftInput): Record<string, unknown>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @fileoverview WorkbenchCanvas 布局 controller - 提供稳定排序、范围夹取和布局签名。
3
+ * @author seadon
4
+ * @created 2026-09-01
5
+ */
6
+ import type { MaterializedBlock } from '@fses/workbench-app/types';
7
+ /** 按当前画布 y/x/id 稳定排序。 */
8
+ export declare function sortedByCurrentLayout(blocks: MaterializedBlock[]): MaterializedBlock[];
9
+ /** 将自动排列值限制在给定范围。 */
10
+ export declare function clampArrangeValue(value: number, min: number, max: number): number;
11
+ /** 生成只包含 ID 和布局关键字段的稳定签名。 */
12
+ export declare function arrangeLayoutSignature(blocks: MaterializedBlock[]): string;
@@ -0,0 +1,11 @@
1
+ import type { MaterializedBlock } from '@fses/workbench-app/types';
2
+ export interface CanvasRefreshControllerOptions {
3
+ businessGapDiagnostics(block: MaterializedBlock): string;
4
+ isImageBusinessGapBadge(block: MaterializedBlock): boolean;
5
+ needsBusinessGap(block: MaterializedBlock): boolean;
6
+ }
7
+ /** 创建 data-binding badge 提示 controller。 */
8
+ export declare function createCanvasRefreshController(options: CanvasRefreshControllerOptions): {
9
+ dataBindingBadgeHintDetail(block: MaterializedBlock, badgeTitle?: string): string;
10
+ dataBindingBadgeHintTitle(block: MaterializedBlock, label: string): string;
11
+ };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @fileoverview WorkbenchCanvas 选择 controller - 隔离交互控件过滤和静态卡片命中。
3
+ * @author seadon
4
+ * @created 2026-09-01
5
+ */
6
+ /** 判断目标是否应跳过拖拽编辑。 */
7
+ export declare function isCanvasEditIgnoredTarget(target: EventTarget | null): boolean;
8
+ /** 判断目标是否应跳过普通卡片选择。 */
9
+ export declare function isCanvasCardFocusIgnoredTarget(target: EventTarget | null): boolean;
10
+ /** 从左键 pointer 事件解析静态卡片 ID。 */
11
+ export declare function canvasCardIdFromPointerEvent(event: PointerEvent): string;
@@ -116,6 +116,8 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {
116
116
  requestRefreshConfigDraftBlock: typeof requestRefreshConfigDraftBlock;
117
117
  requestCardRenderedSize: typeof requestCardRenderedSize;
118
118
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
119
+ insertSystemCard: (selection: SystemCardPromptSelection) => any;
120
+ insertCustomCard: (entry: WorkbenchCustomCardCatalogEntry) => any;
119
121
  focusBlock: (blockId: string) => any;
120
122
  metricDetail: (payload: WorkbenchMetricDetailPayload) => any;
121
123
  focusNestedBlock: (payload: {
@@ -130,8 +132,6 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {
130
132
  cardPresetSizeConfigChange: (config: WorkbenchCardPresetSizeConfig) => any;
131
133
  canvasGapPresetChange: (preset: WorkbenchCanvasGapPreset) => any;
132
134
  pasteCardPrompt: (selection: SystemCardPromptSelection) => any;
133
- insertSystemCard: (selection: SystemCardPromptSelection) => any;
134
- insertCustomCard: (entry: WorkbenchCustomCardCatalogEntry) => any;
135
135
  layoutChange: (layout: readonly {
136
136
  i: string;
137
137
  x: number;
@@ -177,6 +177,8 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {
177
177
  }) => any;
178
178
  runShortcut: (prompt: string) => any;
179
179
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
180
+ onInsertSystemCard?: (selection: SystemCardPromptSelection) => any;
181
+ onInsertCustomCard?: (entry: WorkbenchCustomCardCatalogEntry) => any;
180
182
  onFocusBlock?: (blockId: string) => any;
181
183
  onMetricDetail?: (payload: WorkbenchMetricDetailPayload) => any;
182
184
  onFocusNestedBlock?: (payload: {
@@ -191,8 +193,6 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {
191
193
  onCardPresetSizeConfigChange?: (config: WorkbenchCardPresetSizeConfig) => any;
192
194
  onCanvasGapPresetChange?: (preset: WorkbenchCanvasGapPreset) => any;
193
195
  onPasteCardPrompt?: (selection: SystemCardPromptSelection) => any;
194
- onInsertSystemCard?: (selection: SystemCardPromptSelection) => any;
195
- onInsertCustomCard?: (entry: WorkbenchCustomCardCatalogEntry) => any;
196
196
  onLayoutChange?: (layout: readonly {
197
197
  i: string;
198
198
  x: number;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @fileoverview Workspace 内置插件桥接控制器 - 隔离插件命令、事件校验和订阅生命周期。
3
+ * @author seadon
4
+ * @created 2026-09-01
5
+ */
6
+ import type { WorkbenchCustomCardCatalogEntry } from '@fses/workbench-app/types';
7
+ import type { WorkbenchHostContext } from '../../../kernel/createWorkbenchHostContext';
8
+ import type { SystemCardPromptSelection } from '../lib/workbenchSystemCardPrompt';
9
+ import type { WorkbenchStyleKey } from '../lib/workbenchThemes';
10
+ export interface WorkbenchBuiltinPluginBridgeOptions {
11
+ hostContext: WorkbenchHostContext;
12
+ onInsertCustomCard(entry: WorkbenchCustomCardCatalogEntry): void | Promise<void>;
13
+ onInsertSystemCard(selection: SystemCardPromptSelection): void | Promise<void>;
14
+ onSettingsClose(): void;
15
+ onSettingsOpen(): void;
16
+ onSettingsSave(done?: (ok: boolean) => void): void;
17
+ onThemeApply(themeKey: WorkbenchStyleKey): void;
18
+ }
19
+ export interface WorkbenchBuiltinPluginBridge {
20
+ dispose(): void;
21
+ requestCardCenterOpen(): Promise<void>;
22
+ requestSettingsClose(): Promise<void>;
23
+ requestSettingsOpen(): Promise<void>;
24
+ requestSettingsSave(done?: (ok: boolean) => void): Promise<void>;
25
+ requestThemeApply(themeKey: WorkbenchStyleKey): Promise<void>;
26
+ }
27
+ /**
28
+ * 创建 Workspace 内置插件桥接控制器。
29
+ * @param options - 当前实例上下文和既有业务 handler。
30
+ * @returns 可请求插件命令并统一释放订阅的控制器。
31
+ */
32
+ export declare function createWorkbenchBuiltinPluginBridge(options: WorkbenchBuiltinPluginBridgeOptions): WorkbenchBuiltinPluginBridge;
@@ -0,0 +1,68 @@
1
+ import type { MaterializedBlock, WorkbenchLayoutV4 } from '@fses/workbench-app/types';
2
+ export type ChartConfigDataRange = 'metric' | 'model_service' | 'list';
3
+ export interface WorkbenchCardRenderedSize {
4
+ height: number;
5
+ width: number;
6
+ }
7
+ /**
8
+ * 将未知值收敛为普通记录。
9
+ * @param value - 候选记录。
10
+ * @returns 普通记录或空对象。
11
+ */
12
+ export declare function chartConfigRecord(value: unknown): Record<string, unknown>;
13
+ /**
14
+ * 读取记录中的非空字符串字段。
15
+ * @param record - 来源记录。
16
+ * @param key - 字段 key。
17
+ * @returns 去除首尾空白的字符串。
18
+ */
19
+ export declare function chartConfigString(record: Record<string, unknown>, key: string): string;
20
+ /**
21
+ * 读取图表配置抽屉使用的卡片标题。
22
+ * @param block - 当前卡片。
23
+ * @param fallback - 无标题时的国际化兜底文案。
24
+ * @returns 可编辑标题。
25
+ */
26
+ export declare function chartConfigInitialTitle(block: MaterializedBlock, fallback?: string): string;
27
+ /**
28
+ * 读取卡片标题初始隐藏状态。
29
+ * @param block - 当前卡片。
30
+ * @returns 标题是否隐藏。
31
+ */
32
+ export declare function chartConfigInitialHideTitle(block: MaterializedBlock): boolean;
33
+ /**
34
+ * 归一化图表配置数据范围。
35
+ * @param value - 持久化数据范围。
36
+ * @returns 受支持的数据范围。
37
+ */
38
+ export declare function normalizeChartConfigDataRange(value: unknown): ChartConfigDataRange;
39
+ /**
40
+ * 按可见标签和值过滤异步下拉选项。
41
+ * @param input - 用户搜索文本。
42
+ * @param option - 下拉选项。
43
+ * @returns 选项是否匹配。
44
+ */
45
+ export declare function filterChartConfigSelectOption(input: string, option?: {
46
+ label?: unknown;
47
+ value?: unknown;
48
+ }): boolean;
49
+ /**
50
+ * 读取异步选项 ID。
51
+ * @param value - 持久化选项值。
52
+ * @returns 去除首尾空白的选项 ID。
53
+ */
54
+ export declare function chartConfigDynamicOptionValue(value: unknown): string;
55
+ /**
56
+ * 读取有限正数。
57
+ * @param value - 候选数值。
58
+ * @param fallback - 非法时的兜底值。
59
+ * @returns 有限正数。
60
+ */
61
+ export declare function chartConfigPositiveNumber(value: unknown, fallback: number): number;
62
+ /**
63
+ * 根据 GridStack 元数据估算卡片像素尺寸。
64
+ * @param block - 当前卡片。
65
+ * @param layoutTree - 可选布局树。
66
+ * @returns 宽高像素值。
67
+ */
68
+ export declare function chartConfigEstimatedSizePx(block: MaterializedBlock, layoutTree?: WorkbenchLayoutV4 | null): WorkbenchCardRenderedSize;
@@ -0,0 +1,100 @@
1
+ import type { MaterializedBlock } from '@fses/workbench-app/types';
2
+ import type { WorkbenchApplicationOption, WorkbenchChartListOption, WorkbenchChartMetricOption, WorkbenchChartModelServiceOption } from '../lib/workbenchApi';
3
+ import { type ChartConfigDataRange } from './workbenchChartConfigModel';
4
+ export interface ChartConfigDataSourceDraft {
5
+ applicationId: string;
6
+ dataRange: ChartConfigDataRange;
7
+ listId: string;
8
+ metricId: string;
9
+ modelServiceId: string;
10
+ }
11
+ export interface WorkbenchChartDataSourceServices {
12
+ loadApplications(): Promise<WorkbenchApplicationOption[]>;
13
+ loadLists(appId: string): Promise<WorkbenchChartListOption[]>;
14
+ loadMetrics(appId: string): Promise<WorkbenchChartMetricOption[]>;
15
+ loadModelServices(appId: string): Promise<WorkbenchChartModelServiceOption[]>;
16
+ }
17
+ export interface WorkbenchChartDataSourceControllerOptions {
18
+ isActive(): boolean;
19
+ services: WorkbenchChartDataSourceServices;
20
+ }
21
+ /**
22
+ * 创建图表数据源选项控制器。
23
+ * @param options - 抽屉激活读取器和实例请求端口。
24
+ * @returns reactive 表单状态、异步加载和草稿投影操作。
25
+ */
26
+ export declare function createWorkbenchChartDataSourceController(options: WorkbenchChartDataSourceControllerOptions): {
27
+ applicationId: import("vue").Ref<string, string>;
28
+ applicationOptions: import("vue").Ref<{
29
+ value: string;
30
+ label: string;
31
+ }[], WorkbenchApplicationOption[] | {
32
+ value: string;
33
+ label: string;
34
+ }[]>;
35
+ applicationSelectOptions: import("vue").ComputedRef<WorkbenchApplicationOption[]>;
36
+ applicationsError: import("vue").Ref<string, string>;
37
+ applicationsLoaded: import("vue").Ref<boolean, boolean>;
38
+ applicationsLoading: import("vue").Ref<boolean, boolean>;
39
+ dataRange: import("vue").Ref<ChartConfigDataRange, ChartConfigDataRange>;
40
+ dispose: import("vue").WatchHandle;
41
+ draft: () => ChartConfigDataSourceDraft;
42
+ hydrate: (block: MaterializedBlock) => void;
43
+ listId: import("vue").Ref<string, string>;
44
+ listOptions: import("vue").Ref<{
45
+ value: string;
46
+ label: string;
47
+ appId: string;
48
+ dataCode: string;
49
+ formKey: string;
50
+ }[], WorkbenchChartListOption[] | {
51
+ value: string;
52
+ label: string;
53
+ appId: string;
54
+ dataCode: string;
55
+ formKey: string;
56
+ }[]>;
57
+ listSelectOptions: import("vue").ComputedRef<WorkbenchChartListOption[]>;
58
+ listsError: import("vue").Ref<string, string>;
59
+ listsLoading: import("vue").Ref<boolean, boolean>;
60
+ loadApplications: () => Promise<void>;
61
+ loadDependentOptions: () => Promise<void>;
62
+ loadLists: () => Promise<void>;
63
+ loadMetrics: () => Promise<void>;
64
+ loadModelServices: () => Promise<void>;
65
+ metricId: import("vue").Ref<string, string>;
66
+ metricOptions: import("vue").Ref<{
67
+ value: string;
68
+ label: string;
69
+ appId: string;
70
+ metricCode: string;
71
+ }[], WorkbenchChartMetricOption[] | {
72
+ value: string;
73
+ label: string;
74
+ appId: string;
75
+ metricCode: string;
76
+ }[]>;
77
+ metricSelectOptions: import("vue").ComputedRef<WorkbenchChartMetricOption[]>;
78
+ metricsError: import("vue").Ref<string, string>;
79
+ metricsLoading: import("vue").Ref<boolean, boolean>;
80
+ modelServiceId: import("vue").Ref<string, string>;
81
+ modelServiceOptions: import("vue").Ref<{
82
+ value: string;
83
+ label: string;
84
+ appId: string;
85
+ dataCode: string;
86
+ svcCode: string;
87
+ dataSvcMode: string;
88
+ }[], WorkbenchChartModelServiceOption[] | {
89
+ value: string;
90
+ label: string;
91
+ appId: string;
92
+ dataCode: string;
93
+ svcCode: string;
94
+ dataSvcMode: string;
95
+ }[]>;
96
+ modelServiceSelectOptions: import("vue").ComputedRef<WorkbenchChartModelServiceOption[]>;
97
+ modelServicesError: import("vue").Ref<string, string>;
98
+ modelServicesLoading: import("vue").Ref<boolean, boolean>;
99
+ resetDependentOptions: () => void;
100
+ };
@@ -0,0 +1,96 @@
1
+ import type { MaterializedBlock, WorkbenchEchartClickParams } from '@fses/workbench-app/types';
2
+ import type { TableColumnsType } from 'ant-design-vue';
3
+ import { type ComputedRef, type Ref } from 'vue';
4
+ import type { WorkbenchMetricDetailColumn, WorkbenchMetricDetailPageRequest, WorkbenchMetricDetailPageResult, WorkbenchMetricFilter } from '../lib/workbenchMetricDetailApi';
5
+ export type WorkbenchChartClickPayload = WorkbenchEchartClickParams & {
6
+ blockId: string;
7
+ block: MaterializedBlock;
8
+ };
9
+ export type WorkbenchMetricDetailPayload = {
10
+ blockId: string;
11
+ block: MaterializedBlock;
12
+ };
13
+ export type ChartDrilldownTableRow = Record<string, unknown> & {
14
+ __rowKey: string;
15
+ };
16
+ export interface WorkbenchChartDrilldownTarget {
17
+ bindingId: string;
18
+ block: MaterializedBlock;
19
+ cardId: string;
20
+ categoryValue: unknown;
21
+ filters?: WorkbenchMetricFilter[];
22
+ label: string;
23
+ metricName: string;
24
+ }
25
+ export interface WorkbenchChartDrilldownAction extends WorkbenchChartDrilldownTarget {
26
+ left: number;
27
+ top: number;
28
+ }
29
+ export interface WorkbenchChartDrilldownControllerOptions {
30
+ isConfigDrawerOpen(): boolean;
31
+ loadPage(request: WorkbenchMetricDetailPageRequest): Promise<WorkbenchMetricDetailPageResult>;
32
+ notify: {
33
+ error(message: string): void;
34
+ info(message: string): void;
35
+ warning(message: string): void;
36
+ };
37
+ onSelectBlock(blockId: string): void;
38
+ resolveBindingId(block: MaterializedBlock): string;
39
+ supportsDetail?: (block: MaterializedBlock | null | undefined) => boolean;
40
+ workspaceId(): string;
41
+ }
42
+ export interface WorkbenchChartDrilldownController {
43
+ action: Ref<WorkbenchChartDrilldownAction | null>;
44
+ closeAction(): void;
45
+ closeModal(): void;
46
+ columns: Ref<WorkbenchMetricDetailColumn[]>;
47
+ dispose(): void;
48
+ error: Ref<string>;
49
+ handleChartClick(payload: WorkbenchChartClickPayload): Promise<void>;
50
+ handleColumnResize(width: number, column: unknown): void;
51
+ handleMetricDetail(payload: WorkbenchMetricDetailPayload): Promise<void>;
52
+ handleOutsidePointerDown(event: PointerEvent): void;
53
+ handlePageChange(pageIndex: number): Promise<void>;
54
+ handlePageSizeChange(current: number, pageSize: number): Promise<void>;
55
+ initialLoading: ComputedRef<boolean>;
56
+ loading: Ref<boolean>;
57
+ modalOpen: Ref<boolean>;
58
+ openActionDetail(): Promise<void>;
59
+ openTarget(target: WorkbenchChartDrilldownTarget): Promise<void>;
60
+ pageIndex: Ref<number>;
61
+ pageSize: Ref<number>;
62
+ pageSizeOptions: string[];
63
+ paginationLocale: {
64
+ items_per_page: string;
65
+ };
66
+ rows: Ref<Array<Record<string, unknown>>>;
67
+ setActionElement(element: unknown): void;
68
+ setTableElement(element: unknown): void;
69
+ tableColumns: ComputedRef<TableColumnsType<ChartDrilldownTableRow>>;
70
+ tableHasHorizontalScroll: ComputedRef<boolean>;
71
+ tableLocale: ComputedRef<{
72
+ emptyText: string;
73
+ }>;
74
+ tableNeedsVerticalScroll: ComputedRef<boolean>;
75
+ tableRows: ComputedRef<ChartDrilldownTableRow[]>;
76
+ tableScroll: ComputedRef<{
77
+ x: number;
78
+ y?: string;
79
+ }>;
80
+ target: Ref<WorkbenchChartDrilldownTarget | null>;
81
+ total: Ref<number>;
82
+ windowHeight: Ref<number>;
83
+ }
84
+ /**
85
+ * 规范化详情列,接口缺少 columns 时从首行推导。
86
+ * @param columns - 接口列定义。
87
+ * @param rows - 当前页数据行。
88
+ * @returns 可渲染列定义。
89
+ */
90
+ export declare function chartDrilldownColumnsFromResult(columns: WorkbenchMetricDetailPageResult['columns'], rows: Array<Record<string, unknown>>): WorkbenchMetricDetailColumn[];
91
+ /**
92
+ * 创建图表明细控制器。
93
+ * @param options - 查询、binding、选中和通知端口。
94
+ * @returns 明细状态、动作、分页与 DOM 生命周期操作。
95
+ */
96
+ export declare function createWorkbenchChartDrilldownController(options: WorkbenchChartDrilldownControllerOptions): WorkbenchChartDrilldownController;