@pstdio/workbench 0.40.0 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,7 @@
1
- import { ControlValue, ControlValueMap, ControlsQueryResult, ControlsQueryResult as ControlsQueryResult$1, DockedWorkbenchRegion, DockedWorkbenchRegion as DockedWorkbenchRegion$1, FileRendererSectionTarget, KanbanRendererAttributeDisplay, Localizable, ModeRegionSettings, NavigationTargetPage, NavigationTargetPanel, PageLocation, PageMain, PageOpenIntent, PageRef, PageSlot, PlacementIdentity, PlacementItem, PlacementRef, ResourceConstraint, ResourceRef, ResourceRef as ResourceRef$1, defaultPageResourceCodec, dockedWorkbenchRegions } from "@pstdio/sdk/extensions";
2
- //#region src/core/shared/disposable.d.ts
3
- interface Disposable {
4
- dispose(): void;
5
- }
6
- //#endregion
1
+ import { ControlValue, ControlValueMap, ControlsQueryResult, ControlsQueryResult as ControlsQueryResult$1, DataTableRendererSettings, DockedWorkbenchRegion, DockedWorkbenchRegion as DockedWorkbenchRegion$1, FileRendererSectionTarget, KanbanRendererAttributeDisplay, Localizable, ModeRegionSettings, NavigationTargetPage, NavigationTargetPanel, PageDocumentDeclaration, PageLocation, PageMain, PageOpenIntent, PageRef, PageSlot, PlacementIdentity, PlacementItem, PlacementRef, ResourceConstraint, ResourceRef, ResourceRef as ResourceRef$1, ViewFilterGroup, ViewSort, defaultPageResourceCodec, dockedWorkbenchRegions } from "@pstdio/sdk/extensions";
2
+ import { NamedSet } from "zustand/middleware";
3
+ import { StoreApi } from "zustand/vanilla";
4
+ import { TerminalSessionAdapter, TerminalSessionError, TerminalSessionExit, TerminalSessionRequest } from "@pstdio/sdk/api";
7
5
  //#region src/core/shared/store/workbench-store.d.ts
8
6
  type WorkbenchStoreSelector<TState, TValue> = (state: TState) => TValue;
9
7
  type WorkbenchStoreListener<TState> = (state: TState, previousState: TState) => void;
@@ -17,6 +15,38 @@ interface WorkbenchStore<TState> {
17
15
  fireImmediately?: boolean;
18
16
  }): () => void;
19
17
  }
18
+ interface InternalWorkbenchStore<TState> extends WorkbenchStore<TState> {
19
+ setState: NamedSet<TState>;
20
+ api: StoreApi<TState>;
21
+ }
22
+ //#endregion
23
+ //#region src/core/registries/resources/resource-preview.d.ts
24
+ type ResourceChange = {
25
+ label: string;
26
+ } | {
27
+ removed: true;
28
+ };
29
+ type ResourcePreviewChanges = ReadonlyMap<symbol, {
30
+ resource: ResourceRef;
31
+ change: ResourceChange;
32
+ }>;
33
+ declare const createResourcePreview: () => {
34
+ store: InternalWorkbenchStore<{
35
+ changes: ResourcePreviewChanges;
36
+ }>;
37
+ resolve(resource: ResourceRef): ResourceRef | undefined;
38
+ persist<T>(resource: ResourceRef, save: () => Promise<T>): Promise<T>;
39
+ subscribeRefresh(refresh: (resource: ResourceRef) => Promise<void>): Disposable;
40
+ begin(resource: ResourceRef, change: ResourceChange): {
41
+ rollback: () => void;
42
+ commit(): Promise<void>;
43
+ };
44
+ };
45
+ //#endregion
46
+ //#region src/core/shared/disposable.d.ts
47
+ interface Disposable {
48
+ dispose(): void;
49
+ }
20
50
  //#endregion
21
51
  //#region src/core/shared/context/context-key-service.d.ts
22
52
  type ContextKeyValue = boolean | number | string | undefined;
@@ -79,6 +109,7 @@ interface ResourceHierarchyCycle {
79
109
  //#endregion
80
110
  //#region src/core/registries/resources/resource-registry.d.ts
81
111
  declare const workbenchResourceTypeContextKey = "workbench.resource.type";
112
+ declare const workbenchResourceOwnerContextKey = "workbench.resource.extensionId";
82
113
  declare const workbenchResourceIdContextKey = "workbench.resource.id";
83
114
  declare const workbenchResourceMetadataContextKey: (key: string) => string;
84
115
  declare const workbenchSelectionResourceKeyMetadataKey = "workbench.selectionResourceKey";
@@ -115,6 +146,7 @@ interface ResourceRegistryStoreState {
115
146
  hierarchyProviders: Record<string, ResolvedResourceHierarchyProvider>;
116
147
  }
117
148
  interface ResourceRegistry {
149
+ preview: ReturnType<typeof createResourcePreview>;
118
150
  removed(resource: ResourceRef): void;
119
151
  onWillRemove(listener: (resource: ResourceRef) => readonly PlacementIdentity[]): Disposable;
120
152
  store: WorkbenchStore<ResourceRegistryStoreState>;
@@ -202,6 +234,7 @@ interface Command {
202
234
  icon?: string;
203
235
  when?: string;
204
236
  params?: CommandParamSchema;
237
+ resourceMutation?: import("@pstdio/sdk/extensions").CommandDefinition["resourceMutation"];
205
238
  }
206
239
  interface CommandHandler<TArgs = unknown, TResult = unknown> {
207
240
  prepareArgs?(args: TArgs, context?: WorkbenchCommandExecutionContext, onArgsChange?: (args: TArgs) => void): TArgs | Promise<TArgs>;
@@ -239,13 +272,19 @@ interface WorkbenchCommandParamsRequest {
239
272
  id: string;
240
273
  label: string;
241
274
  params?: CommandParamSchema;
275
+ resourceMutation?: import("@pstdio/sdk/extensions").CommandDefinition["resourceMutation"];
242
276
  };
243
277
  };
244
278
  label: string;
245
279
  args?: unknown;
246
280
  context?: WorkbenchCommandExecutionContext;
247
281
  }
282
+ interface WorkbenchCommandConfirmation {
283
+ label: string;
284
+ resolve(confirmed: boolean): void;
285
+ }
248
286
  interface WorkbenchCommandPaletteState {
287
+ confirmation: WorkbenchCommandConfirmation | null;
249
288
  open: boolean;
250
289
  view: WorkbenchCommandPaletteView;
251
290
  initialQuery: string;
@@ -264,6 +303,7 @@ interface WorkbenchCommandPaletteController {
264
303
  open(input?: WorkbenchCommandPaletteOpenInput): void;
265
304
  close(): void;
266
305
  toggle(): void;
306
+ requestConfirmation(label: string): Promise<boolean>;
267
307
  requestParams(request: WorkbenchCommandParamsRequest): void;
268
308
  clearParams(): void;
269
309
  onDidChange(listener: WorkbenchCommandPaletteChangeListener): Disposable;
@@ -564,6 +604,8 @@ interface WorkbenchRegionState {
564
604
  visible: boolean;
565
605
  size?: number;
566
606
  widgets: WorkbenchWidgetPlacement[];
607
+ /** Page snapshots retain mixed-owner order without storing shared mode content. Consumed on restore. */
608
+ savedWidgetOrder?: string[];
567
609
  activeWidgetId?: string;
568
610
  /** Side region only: how the open Side Panel is shown. `visible` says whether it is open. */
569
611
  presentation?: Exclude<WorkbenchSidePanelMode, "closed">;
@@ -784,7 +826,11 @@ interface TreeContext extends TreeQueryContext {
784
826
  refresh(): void;
785
827
  setSelectedNode(nodeId: string | undefined): void;
786
828
  }
829
+ interface TreeMoveContext extends TreeContext {
830
+ position?: "before" | "after" | "inside";
831
+ }
787
832
  interface TreeAction {
833
+ resourceMutation?: import("@pstdio/sdk/extensions").CommandDefinition["resourceMutation"];
788
834
  id: string;
789
835
  label?: string;
790
836
  icon?: string;
@@ -892,7 +938,7 @@ interface TreeRendererContribution {
892
938
  getFooter?(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
893
939
  getChildren(node: TreeNode, ctx: TreeContext): Promise<TreeNode[]> | TreeNode[];
894
940
  canMove?: TreeMovePolicy;
895
- moveNode?(source: TreeNode, target: TreeNode | undefined, ctx: TreeContext): Promise<void> | void;
941
+ moveNode?(source: TreeNode, target: TreeNode | undefined, ctx: TreeMoveContext): Promise<void> | void;
896
942
  }
897
943
  interface RegisteredTreeRendererContribution extends TreeRendererContribution, RegisteredContributionMetadata {}
898
944
  interface TreeRendererState {
@@ -940,6 +986,11 @@ interface TreeRendererRegistry {
940
986
  }
941
987
  //#endregion
942
988
  //#region src/core/registries/navigation/navigation-tree-registry.d.ts
989
+ interface DeclaredNavigationAction {
990
+ label: string;
991
+ action: NavigationTarget$1;
992
+ category?: string;
993
+ }
943
994
  type NavigationTreeSlot = "header" | "content" | "footer";
944
995
  interface NavigationTreeOwner {
945
996
  kind: "mode" | "page";
@@ -950,6 +1001,9 @@ interface NavigationTreeContext {
950
1001
  resource?: ResourceRef$1;
951
1002
  signal?: AbortSignal;
952
1003
  }
1004
+ interface NavigationTreeMoveContext extends NavigationTreeContext {
1005
+ position?: "before" | "after" | "inside";
1006
+ }
953
1007
  interface NavigationTreeContribution {
954
1008
  id: string;
955
1009
  /** Prefix projected section and node ids when they come from an independent tree renderer. */
@@ -964,13 +1018,19 @@ interface NavigationTreeContribution {
964
1018
  resolveResource?(resource: ResourceRef$1 | undefined): ResourceRef$1 | undefined;
965
1019
  getSections?(context: NavigationTreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
966
1020
  getChildren?(node: TreeNode, context: NavigationTreeContext): Promise<TreeNode[]> | TreeNode[];
1021
+ /** Authored actions for discovery, independent of tree data and visibility context. */
1022
+ listActions?(): DeclaredNavigationAction[];
967
1023
  }
968
1024
  interface NavigationTreeRegistry {
1025
+ listActions(): (DeclaredNavigationAction & {
1026
+ ownerId: string;
1027
+ })[];
969
1028
  registerContribution(contribution: NavigationTreeContribution): Disposable;
970
1029
  resolveOwner(kind: NavigationTreeOwner["kind"], id: string, slot?: NavigationTreeSlot): NavigationTreeOwner | undefined;
971
1030
  getReadKey(owner: NavigationTreeOwner, context?: NavigationTreeContext): string;
972
1031
  getSections(owner: NavigationTreeOwner, slot?: NavigationTreeSlot, context?: NavigationTreeContext): Promise<TreeViewSection[]>;
973
1032
  getChildren(node: TreeNode, context?: NavigationTreeContext): Promise<TreeNode[]>;
1033
+ moveNode(source: TreeNode, target: TreeNode | undefined, context?: NavigationTreeMoveContext): Promise<void>;
974
1034
  getDefaultExpandedSectionIds(owner: NavigationTreeOwner, slot?: NavigationTreeSlot): string[];
975
1035
  onDidChange(listener: () => void): Disposable;
976
1036
  }
@@ -1035,162 +1095,6 @@ interface ControlsRendererContribution {
1035
1095
  subscribe?: (listener: () => void) => Disposable | (() => void);
1036
1096
  }
1037
1097
  //#endregion
1038
- //#region src/core/registries/renderers/view-toolbar-action.d.ts
1039
- interface ViewToolbarAction extends TreeAction {
1040
- presentation?: "primary" | "secondary";
1041
- }
1042
- //#endregion
1043
- //#region src/core/registries/renderers/data-table-renderer-registry.d.ts
1044
- interface DataTableRendererThemeColor {
1045
- light: string;
1046
- dark: string;
1047
- foreground?: {
1048
- light: string;
1049
- dark: string;
1050
- };
1051
- }
1052
- type DataTableRendererColumnStat = {
1053
- type: "unique";
1054
- } | {
1055
- type: "histogram";
1056
- bins?: number;
1057
- } | {
1058
- type: "top-values";
1059
- limit?: number;
1060
- };
1061
- type DataTableRendererBadgePalette = "gray" | "red" | "orange" | "yellow" | "green" | "teal" | "blue" | "cyan" | "purple" | "pink";
1062
- type DataTableRendererColumnRenderer = {
1063
- type: "json";
1064
- } | {
1065
- type: "color-scale";
1066
- stops: Array<{
1067
- value: number;
1068
- color: DataTableRendererThemeColor;
1069
- }>;
1070
- } | {
1071
- type: "categorical-color";
1072
- categories: Array<{
1073
- value: string | number | boolean | null;
1074
- color: DataTableRendererThemeColor;
1075
- }>;
1076
- } | {
1077
- type: "badge";
1078
- categories?: Array<{
1079
- value: string | number | boolean | null;
1080
- palette: DataTableRendererBadgePalette;
1081
- }>;
1082
- } | {
1083
- type: "diff";
1084
- } | {
1085
- type: "date";
1086
- } | {
1087
- type: "path";
1088
- };
1089
- interface DataTableRendererColumn {
1090
- id: string;
1091
- label?: string;
1092
- description?: string;
1093
- icon?: unknown;
1094
- hidden?: boolean;
1095
- /** Starts unchecked in the column menu; viewers can still show the column. */
1096
- defaultHidden?: boolean;
1097
- stat?: DataTableRendererColumnStat;
1098
- renderer?: DataTableRendererColumnRenderer;
1099
- }
1100
- interface DataTableRendererRow {
1101
- id: string;
1102
- values: Record<string, unknown>;
1103
- resource?: ResourceRef$1;
1104
- }
1105
- interface DataTableRendererQueryResult {
1106
- rows: DataTableRendererRow[];
1107
- columns?: DataTableRendererColumn[];
1108
- }
1109
- interface DataTableRendererQueryContext {
1110
- resource?: ResourceRef$1;
1111
- modeId?: string;
1112
- }
1113
- interface DataTableRendererRowAction {
1114
- id: string;
1115
- label: string;
1116
- icon?: unknown;
1117
- destructive?: boolean;
1118
- run(row: DataTableRendererRow): Promise<void> | void;
1119
- }
1120
- interface DataTableRendererSelectionAction {
1121
- id: string;
1122
- label: string;
1123
- icon?: unknown;
1124
- destructive?: boolean;
1125
- run(rows: DataTableRendererRow[]): Promise<void> | void;
1126
- }
1127
- interface DataTableRendererContribution {
1128
- id: string;
1129
- title: string;
1130
- toolbarActions?: ViewToolbarAction[];
1131
- resourceKind?: string;
1132
- columns?: DataTableRendererColumn[];
1133
- selectionMode?: "none" | "multiple";
1134
- selectionActions?: DataTableRendererSelectionAction[];
1135
- rowActions?: DataTableRendererRowAction[];
1136
- initialPageSize?: number;
1137
- pageSizeOptions?: number[];
1138
- /** Whether column statistics start visible. Defaults to `true`. */
1139
- defaultShowStats?: boolean;
1140
- emptyTitle?: string;
1141
- emptyDescription?: string;
1142
- /** Context keys that choose which rows the query returns. A change drops the old rows and starts a new read. */
1143
- contextKeys?: string[];
1144
- executeQuery(context: DataTableRendererQueryContext, signal: AbortSignal): Promise<DataTableRendererQueryResult> | DataTableRendererQueryResult;
1145
- subscribe?: (listener: () => void) => Disposable | (() => void);
1146
- onRowActivate?: (row: DataTableRendererRow) => Promise<void> | void;
1147
- }
1148
- interface RegisteredDataTableRendererContribution extends DataTableRendererContribution, RegisteredContributionMetadata {}
1149
- //#endregion
1150
- //#region src/core/registries/renderers/file-renderer-registry.d.ts
1151
- interface FileRendererContent {
1152
- fileName?: string;
1153
- /** Workspace-relative path shown above the file preview. */
1154
- filePath?: string;
1155
- mimeType?: string;
1156
- content?: string;
1157
- dataUrl?: string;
1158
- placeholder?: string;
1159
- /** Override contribution-level save support for one loaded file. */
1160
- editable?: boolean;
1161
- /** Request Monaco for text that automatic dispatch would open as markdown. */
1162
- textRenderer?: "automatic" | "monaco";
1163
- /** Represent a deliberate no-file selection without an editable blank document. */
1164
- emptyState?: {
1165
- title: string;
1166
- description?: string;
1167
- };
1168
- /** Ordered backing-store revision when one is available. */
1169
- revision?: string;
1170
- }
1171
- interface FileRendererRefreshOrigin {
1172
- rendererId: string;
1173
- instanceId: string;
1174
- operationId: string;
1175
- }
1176
- interface FileRendererRefreshEnvelope {
1177
- resourceKey?: string;
1178
- origin?: FileRendererRefreshOrigin;
1179
- revision?: string;
1180
- }
1181
- interface FileRendererSaveResult {
1182
- revision?: string;
1183
- }
1184
- interface FileRendererContribution {
1185
- id: string;
1186
- title: string;
1187
- resourceKind?: string;
1188
- /** Resolve the file's content (and identity) for the bound resource. */
1189
- load(resource: ResourceRef$1 | undefined, signal: AbortSignal): Promise<FileRendererContent> | FileRendererContent;
1190
- /** Persist edited text. Absent ⇒ read-only. Never called for images. */
1191
- save?(resource: ResourceRef$1 | undefined, content: string, origin?: FileRendererRefreshOrigin): Promise<FileRendererSaveResult | undefined> | FileRendererSaveResult | void;
1192
- }
1193
- //#endregion
1194
1098
  //#region src/core/registries/renderers/kanban-renderer-contracts.d.ts
1195
1099
  /**
1196
1100
  * Core-owned contracts for kanban renderer contributions. @pstdio/ui's
@@ -1199,9 +1103,7 @@ interface FileRendererContribution {
1199
1103
  * API shape to UI package ownership.
1200
1104
  */
1201
1105
  type ViewMode = "board" | "list";
1202
- type SortDirection = "asc" | "desc";
1203
1106
  declare const NO_GROUPING = "none";
1204
- declare const MANUAL_ORDERING = "manual";
1205
1107
  interface EnumOption {
1206
1108
  value: string;
1207
1109
  label: string;
@@ -1224,6 +1126,9 @@ type AttributeType = {
1224
1126
  } | {
1225
1127
  kind: "enum-multi";
1226
1128
  options: EnumOptions;
1129
+ } | {
1130
+ kind: "boolean";
1131
+ legacyValues?: Record<string, boolean>;
1227
1132
  } | {
1228
1133
  kind: "string";
1229
1134
  } | {
@@ -1267,24 +1172,22 @@ interface KanbanRendererRow {
1267
1172
  resource?: unknown;
1268
1173
  attributes: Record<string, unknown>;
1269
1174
  }
1270
- interface KanbanRendererOrdering {
1271
- attributeId: string | typeof MANUAL_ORDERING;
1272
- direction: SortDirection;
1273
- }
1175
+ /** Board display settings. Order lives in the view's sorts. */
1274
1176
  interface KanbanRendererSettings {
1275
1177
  viewMode: ViewMode;
1276
1178
  columnGrouping: string | typeof NO_GROUPING;
1277
1179
  rowGrouping: string | typeof NO_GROUPING;
1278
- ordering: KanbanRendererOrdering;
1279
1180
  displayProperties: string[];
1280
1181
  }
1281
- type KanbanRendererFilterState = Record<string, string[]>;
1282
- interface KanbanRendererSavedView {
1182
+ /** A view stores display settings, one filter, and its sorts. Search is screen state and never saved. */
1183
+ interface CollectionSavedView<TSettings> {
1283
1184
  id: string;
1284
1185
  title: string;
1285
- settings: KanbanRendererSettings;
1286
- filters: KanbanRendererFilterState;
1186
+ settings: TSettings;
1187
+ filter: ViewFilterGroup;
1188
+ sorts: ViewSort[];
1287
1189
  }
1190
+ type KanbanRendererSavedView = CollectionSavedView<KanbanRendererSettings>;
1288
1191
  type KanbanRendererCreateFieldType = "text" | "longtext" | "markdown" | "number" | "boolean" | "select" | "multi-select" | "files";
1289
1192
  interface KanbanRendererCreateField {
1290
1193
  id: string;
@@ -1345,39 +1248,218 @@ interface ResourceContextAction<TNode = unknown> {
1345
1248
  endContent?: TNode;
1346
1249
  separatorBefore?: boolean;
1347
1250
  }
1348
- interface KanbanRendererViewsSource {
1349
- views: (KanbanRendererSavedView & {
1251
+ interface CollectionViewsSource<TSettings> {
1252
+ views: (CollectionSavedView<TSettings> & {
1350
1253
  builtIn: boolean;
1351
1254
  })[];
1352
1255
  defaultViewId: string;
1353
1256
  onCreateView: (input: {
1354
1257
  title: string;
1355
- settings: KanbanRendererSettings;
1356
- filters: KanbanRendererFilterState;
1258
+ settings: TSettings;
1259
+ filter: ViewFilterGroup;
1260
+ sorts: ViewSort[];
1357
1261
  copyFrom?: string;
1358
- }) => Promise<KanbanRendererSavedView>;
1262
+ }) => Promise<CollectionSavedView<TSettings>>;
1359
1263
  onUpdateView: (id: string, input: {
1360
1264
  title?: string;
1361
- settings?: KanbanRendererSettings;
1362
- filters?: KanbanRendererFilterState;
1265
+ settings?: TSettings;
1266
+ filter?: ViewFilterGroup;
1267
+ sorts?: ViewSort[];
1363
1268
  }) => Promise<void>;
1364
1269
  onDeleteView: (id: string) => Promise<void>;
1365
1270
  onSetDefaultView: (id: string | null) => Promise<void>;
1366
1271
  }
1367
- interface KanbanRendererViewsProvider {
1368
- getSnapshot: () => KanbanRendererViewsSource | undefined;
1272
+ interface CollectionViewsProvider<TSettings> {
1273
+ getSnapshot: () => CollectionViewsSource<TSettings> | undefined;
1369
1274
  subscribe: (listener: () => void) => () => void;
1370
1275
  }
1276
+ type KanbanRendererViewsSource = CollectionViewsSource<KanbanRendererSettings>;
1277
+ type KanbanRendererViewsProvider = CollectionViewsProvider<KanbanRendererSettings>;
1278
+ //#endregion
1279
+ //#region src/core/registries/renderers/view-toolbar-action.d.ts
1280
+ interface ViewToolbarAction extends TreeAction {
1281
+ presentation?: "primary" | "secondary";
1282
+ }
1283
+ //#endregion
1284
+ //#region src/core/registries/renderers/data-table-renderer-registry.d.ts
1285
+ interface DataTableRendererThemeColor {
1286
+ light: string;
1287
+ dark: string;
1288
+ foreground?: {
1289
+ light: string;
1290
+ dark: string;
1291
+ };
1292
+ }
1293
+ type DataTableRendererColumnStat = {
1294
+ type: "unique";
1295
+ } | {
1296
+ type: "histogram";
1297
+ bins?: number;
1298
+ } | {
1299
+ type: "top-values";
1300
+ limit?: number;
1301
+ };
1302
+ type DataTableRendererBadgePalette = "gray" | "red" | "orange" | "yellow" | "green" | "teal" | "blue" | "cyan" | "purple" | "pink";
1303
+ type DataTableRendererColumnRenderer = {
1304
+ type: "json";
1305
+ } | {
1306
+ type: "color-scale";
1307
+ stops: Array<{
1308
+ value: number;
1309
+ color: DataTableRendererThemeColor;
1310
+ }>;
1311
+ } | {
1312
+ type: "categorical-color";
1313
+ categories: Array<{
1314
+ value: string | number | boolean | null;
1315
+ color: DataTableRendererThemeColor;
1316
+ }>;
1317
+ } | {
1318
+ type: "badge";
1319
+ categories?: Array<{
1320
+ value: string | number | boolean | null;
1321
+ palette: DataTableRendererBadgePalette;
1322
+ }>;
1323
+ } | {
1324
+ type: "diff";
1325
+ } | {
1326
+ type: "date";
1327
+ } | {
1328
+ type: "path";
1329
+ };
1330
+ interface DataTableRendererColumn {
1331
+ id: string;
1332
+ label?: string;
1333
+ /** How filters and sorts compare the column. Without it, the type is inferred from the values. */
1334
+ type?: "string" | "number" | "boolean" | "date";
1335
+ /** Offers the column under Grouping in the table's Display menu. */
1336
+ groupable?: boolean;
1337
+ /** Whether this column can be filtered. Defaults to true. */
1338
+ filterable?: boolean;
1339
+ description?: string;
1340
+ icon?: unknown;
1341
+ hidden?: boolean;
1342
+ stat?: DataTableRendererColumnStat;
1343
+ renderer?: DataTableRendererColumnRenderer;
1344
+ }
1345
+ interface DataTableRendererRow {
1346
+ id: string;
1347
+ values: Record<string, unknown>;
1348
+ resource?: ResourceRef$1;
1349
+ }
1350
+ interface DataTableRendererQueryResult {
1351
+ rows: DataTableRendererRow[];
1352
+ columns?: DataTableRendererColumn[];
1353
+ }
1354
+ interface DataTableRendererQueryContext {
1355
+ resource?: ResourceRef$1;
1356
+ modeId?: string;
1357
+ filter: ViewFilterGroup;
1358
+ sorts: ViewSort[];
1359
+ settings: DataTableRendererSettings;
1360
+ }
1361
+ type DataTableRendererSavedView = CollectionSavedView<DataTableRendererSettings>;
1362
+ interface DataTableRendererRowAction {
1363
+ id: string;
1364
+ commandId?: string;
1365
+ label: string;
1366
+ icon?: unknown;
1367
+ destructive?: boolean;
1368
+ run(row: DataTableRendererRow): Promise<void> | void;
1369
+ }
1370
+ interface DataTableRendererSelectionAction {
1371
+ id: string;
1372
+ commandId?: string;
1373
+ label: string;
1374
+ icon?: unknown;
1375
+ destructive?: boolean;
1376
+ run(rows: DataTableRendererRow[]): Promise<void> | void;
1377
+ }
1378
+ interface DataTableRendererContribution {
1379
+ id: string;
1380
+ title: string;
1381
+ toolbarActions?: ViewToolbarAction[];
1382
+ resourceKind?: string;
1383
+ columns?: DataTableRendererColumn[];
1384
+ selectionMode?: "none" | "multiple";
1385
+ selectionActions?: DataTableRendererSelectionAction[];
1386
+ rowActions?: DataTableRendererRowAction[];
1387
+ initialPageSize?: number;
1388
+ pageSizeOptions?: number[];
1389
+ /** The view state used before a saved view is active, such as hidden columns or statistics. */
1390
+ defaultSettings?: Partial<DataTableRendererSettings>;
1391
+ defaultFilter?: ViewFilterGroup;
1392
+ defaultSorts?: ViewSort[];
1393
+ defaultViews?: DataTableRendererSavedView[];
1394
+ defaultActiveViewId?: string;
1395
+ /** Shared saved views. Without it the table offers its default views only. */
1396
+ viewsProvider?: CollectionViewsProvider<DataTableRendererSettings>;
1397
+ emptyTitle?: string;
1398
+ emptyDescription?: string;
1399
+ /** Context keys that choose which rows the query returns. A change drops the old rows and starts a new read. */
1400
+ contextKeys?: string[];
1401
+ executeQuery(context: DataTableRendererQueryContext, signal: AbortSignal): Promise<DataTableRendererQueryResult> | DataTableRendererQueryResult;
1402
+ subscribe?: (listener: () => void) => Disposable | (() => void);
1403
+ onRowActivate?: (row: DataTableRendererRow) => Promise<void> | void;
1404
+ }
1405
+ interface RegisteredDataTableRendererContribution extends DataTableRendererContribution, RegisteredContributionMetadata {}
1406
+ //#endregion
1407
+ //#region src/core/registries/renderers/file-renderer-registry.d.ts
1408
+ interface FileRendererContent {
1409
+ fileName?: string;
1410
+ /** Workspace-relative path shown above the file preview. */
1411
+ filePath?: string;
1412
+ mimeType?: string;
1413
+ content?: string;
1414
+ dataUrl?: string;
1415
+ placeholder?: string;
1416
+ /** Override contribution-level save support for one loaded file. */
1417
+ editable?: boolean;
1418
+ /** Request Monaco for text that automatic dispatch would open as markdown. */
1419
+ textRenderer?: "automatic" | "monaco";
1420
+ /** Represent a deliberate no-file selection without an editable blank document. */
1421
+ emptyState?: {
1422
+ title: string;
1423
+ description?: string;
1424
+ };
1425
+ /** Ordered backing-store revision when one is available. */
1426
+ revision?: string;
1427
+ }
1428
+ interface FileRendererRefreshOrigin {
1429
+ rendererId: string;
1430
+ instanceId: string;
1431
+ operationId: string;
1432
+ }
1433
+ interface FileRendererRefreshEnvelope {
1434
+ resourceKey?: string;
1435
+ origin?: FileRendererRefreshOrigin;
1436
+ revision?: string;
1437
+ }
1438
+ interface FileRendererSaveResult {
1439
+ revision?: string;
1440
+ }
1441
+ interface FileRendererContribution {
1442
+ id: string;
1443
+ title: string;
1444
+ resourceKind?: string;
1445
+ /** Resolve the file's content (and identity) for the bound resource. */
1446
+ load(resource: ResourceRef$1 | undefined, signal: AbortSignal): Promise<FileRendererContent> | FileRendererContent;
1447
+ /** Persist edited text. Absent ⇒ read-only. Never called for images. */
1448
+ save?(resource: ResourceRef$1 | undefined, content: string, origin?: FileRendererRefreshOrigin): Promise<FileRendererSaveResult | undefined> | FileRendererSaveResult | void;
1449
+ }
1371
1450
  //#endregion
1372
1451
  //#region src/core/registries/renderers/kanban-renderer-registry.d.ts
1373
1452
  interface KanbanRendererQueryState {
1374
1453
  settings: KanbanRendererSettings;
1375
- filters: KanbanRendererFilterState;
1454
+ filter: ViewFilterGroup;
1455
+ sorts: ViewSort[];
1376
1456
  }
1377
1457
  interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRendererRow, TNode = unknown, TIcon = unknown> {
1378
1458
  id: string;
1379
1459
  title: string;
1380
1460
  toolbarActions?: ViewToolbarAction[];
1461
+ /** Authored row actions for discovery without querying rows or evaluating a row menu. */
1462
+ listRowActions?: () => Pick<ViewToolbarAction, "commandId" | "label" | "args">[];
1381
1463
  resourceKind?: string;
1382
1464
  /** Host-owned scope for persisted display settings. */
1383
1465
  storageScope?: string;
@@ -1396,9 +1478,10 @@ interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRend
1396
1478
  hideToolbar?: boolean;
1397
1479
  emptyTitle?: string;
1398
1480
  emptyDescription?: string;
1399
- /** Initial settings/filters applied when the kanban renderer mounts. */
1481
+ /** The view state used before a saved view is active. */
1400
1482
  defaultSettings?: Partial<KanbanRendererSettings>;
1401
- defaultFilters?: KanbanRendererFilterState;
1483
+ defaultFilter?: ViewFilterGroup;
1484
+ defaultSorts?: ViewSort[];
1402
1485
  viewsProvider?: KanbanRendererViewsProvider;
1403
1486
  defaultViews?: KanbanRendererSavedView[];
1404
1487
  defaultActiveViewId?: string;
@@ -1419,7 +1502,7 @@ interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRend
1419
1502
  * column value).
1420
1503
  */
1421
1504
  onAttributeChange?: (rowId: string, attributeId: string, value: unknown) => Promise<void> | void;
1422
- /** Manual within-column reorder (only fires when ordering is manual). */
1505
+ /** Manual within-column reorder. Only fires while the view has no sorts. */
1423
1506
  onReorder?: (rowId: string, beforeRowId?: string) => Promise<void> | void;
1424
1507
  createRow?: KanbanRendererCreateRowConfig;
1425
1508
  onCreateRow?: (submission: KanbanRendererCreateSubmission) => Promise<void> | void;
@@ -1435,7 +1518,7 @@ interface RendererReadRequest<T> {
1435
1518
  onError(error: unknown): void;
1436
1519
  }
1437
1520
  interface RendererReadBinding {
1438
- request<T>(request: RendererReadRequest<T>, reason?: "refresh" | "retry"): void;
1521
+ request<T>(request: RendererReadRequest<T>, reason?: "refresh" | "retry"): Promise<void>;
1439
1522
  dispose(): void;
1440
1523
  }
1441
1524
  interface RendererReadRegistry {
@@ -1526,6 +1609,7 @@ interface WorkbenchPageContribution {
1526
1609
  modeId: string;
1527
1610
  parentId?: string;
1528
1611
  resource?: ResourceConstraint;
1612
+ document?: PageDocumentDeclaration;
1529
1613
  main: WorkbenchPageMain;
1530
1614
  slots: readonly WorkbenchPageSlot[];
1531
1615
  }
@@ -1568,7 +1652,7 @@ interface WorkbenchPageRegistry<Value> {
1568
1652
  };
1569
1653
  getPage(pageId: string): WorkbenchPageContribution | undefined;
1570
1654
  listPages(): WorkbenchPageContribution[];
1571
- pinPlacement(identity: PlacementIdentity): void;
1655
+ pinPlacement(identity: PlacementIdentity, open?: PageOpenIntent): void;
1572
1656
  openSlot(input: WorkbenchPageSlotOpenInput): void;
1573
1657
  }
1574
1658
  //#endregion
@@ -1679,31 +1763,10 @@ interface WorkbenchShellController {
1679
1763
  }
1680
1764
  //#endregion
1681
1765
  //#region src/core/controllers/terminal/terminal-controller.d.ts
1682
- interface WorkbenchTerminalSessionRequest {
1683
- command?: string[];
1684
- cwd?: string;
1685
- env?: Record<string, string>;
1686
- cols: number;
1687
- rows: number;
1688
- }
1689
- interface WorkbenchTerminalSessionExit {
1690
- code: number | null;
1691
- signal: string | null;
1692
- }
1693
- interface WorkbenchTerminalSessionError {
1694
- message: string;
1695
- }
1696
- interface WorkbenchTerminalSessionAdapter {
1697
- readonly id: string;
1698
- write(data: string | Uint8Array): void;
1699
- resize(cols: number, rows: number): void;
1700
- kill(signal?: string): Promise<void> | void;
1701
- onData(handler: (chunk: Uint8Array) => void): () => void;
1702
- /** Foreground process name updates, when the opener can report them (real PTYs). */
1703
- onTitle?(handler: (title: string) => void): () => void;
1704
- onExit(handler: (exit: WorkbenchTerminalSessionExit) => void): () => void;
1705
- onError(handler: (error: WorkbenchTerminalSessionError) => void): () => void;
1706
- }
1766
+ type WorkbenchTerminalSessionRequest = TerminalSessionRequest;
1767
+ type WorkbenchTerminalSessionExit = TerminalSessionExit;
1768
+ type WorkbenchTerminalSessionError = TerminalSessionError;
1769
+ type WorkbenchTerminalSessionAdapter = TerminalSessionAdapter;
1707
1770
  type WorkbenchTerminalSessionOpener = (request: WorkbenchTerminalSessionRequest) => Promise<WorkbenchTerminalSessionAdapter>;
1708
1771
  type WorkbenchTerminalSessionStatus = "running" | "exited" | "killed";
1709
1772
  interface WorkbenchTerminalSessionModel {
@@ -1758,9 +1821,11 @@ interface WorkbenchTerminalController {
1758
1821
  interface CommandPaletteResourceQueryContext {
1759
1822
  query: string;
1760
1823
  limit: number;
1824
+ signal?: AbortSignal;
1761
1825
  }
1762
1826
  interface CommandPaletteResourceResult {
1763
1827
  id: string;
1828
+ resource?: ResourceRef;
1764
1829
  label: string;
1765
1830
  description?: string;
1766
1831
  icon?: string;
@@ -1793,6 +1858,8 @@ interface CommandPaletteResourceRegistry {
1793
1858
  //#endregion
1794
1859
  //#region src/core/registries/keybindings/keybinding-registry.d.ts
1795
1860
  interface Keybinding {
1861
+ /** Extension that authored this binding, when registered by an extension host. */
1862
+ sourceExtensionId?: string;
1796
1863
  /** Action the chord executes through the shared navigation executor. */
1797
1864
  action: NavigationTarget$1;
1798
1865
  keybinding: KeybindingSequence;
@@ -2101,16 +2168,28 @@ interface WorkbenchStatusBarItem {
2101
2168
  }
2102
2169
  interface WorkbenchStatusBarRegistryState {
2103
2170
  items: Record<string, WorkbenchStatusBarItem>;
2171
+ order: string[];
2104
2172
  }
2173
+ interface WorkbenchStatusBarPersistenceAdapter {
2174
+ getOrder(): string[] | undefined;
2175
+ setOrder(ids: string[]): void;
2176
+ }
2177
+ type WorkbenchStatusBarPosition = {
2178
+ beforeItemId: string;
2179
+ } | {
2180
+ afterItemId: string;
2181
+ };
2105
2182
  interface WorkbenchStatusBarRegistry {
2106
2183
  store: WorkbenchStore<WorkbenchStatusBarRegistryState>;
2107
2184
  registerItem(item: WorkbenchStatusBarItem): Disposable;
2108
2185
  getItem(id: string): WorkbenchStatusBarItem | undefined;
2109
2186
  listItems(): WorkbenchStatusBarItem[];
2110
2187
  listVisibleItems(slot?: WorkbenchStatusBarSlot): WorkbenchStatusBarItem[];
2188
+ reorderItem(id: string, position: WorkbenchStatusBarPosition): void;
2111
2189
  }
2112
2190
  interface CreateWorkbenchStatusBarRegistryInput {
2113
2191
  hasView(viewId: string): boolean;
2192
+ persistence?: WorkbenchStatusBarPersistenceAdapter;
2114
2193
  }
2115
2194
  declare const createStatusBarRegistry: (input: CreateWorkbenchStatusBarRegistryInput) => WorkbenchStatusBarRegistry;
2116
2195
  //#endregion
@@ -2223,7 +2302,11 @@ type WorkbenchLayoutModel = LayoutModel & MenuRegistry;
2223
2302
  type WorkbenchModuleLayoutModel = Omit<WorkbenchLayoutModel, "registerPanel" | "registerWidget" | "openPanel" | "openWidget" | "registerPlaceholder" | "registerPanelMenu">;
2224
2303
  type WorkbenchTreeViews = Pick<TreeRendererRegistry, "getTreeState" | "setNodeExpanded" | "setSectionExpanded" | "setSelectedNode">;
2225
2304
  interface WorkbenchCoreContributionContext {
2226
- pinPlacement(identity: import("@pstdio/sdk/extensions").PlacementIdentity): void;
2305
+ pinPlacement(identity: import("@pstdio/sdk/extensions").PlacementIdentity, pinned?: boolean): void;
2306
+ getPanelDestinations(instanceId: string): WorkbenchPanelRegion[];
2307
+ movePanel(instanceId: string, region: WorkbenchPanelRegion, position?: WorkbenchTabPosition): void;
2308
+ resetLayout(): void;
2309
+ onDidResetLayout(listener: () => void): Disposable;
2227
2310
  closePlacement(identity: import("@pstdio/sdk/extensions").PlacementIdentity): void;
2228
2311
  breadcrumbs: WorkbenchBreadcrumbController;
2229
2312
  commandPalette: WorkbenchCommandPaletteController;
@@ -2312,6 +2395,7 @@ interface createWorkbenchInput {
2312
2395
  preferencePersistence?: PreferencePersistenceAdapter;
2313
2396
  treePersistence?: TreeRendererPersistenceAdapter;
2314
2397
  panelMenuStatePersistence?: WorkbenchPanelMenuStatePersistenceAdapter;
2398
+ statusBarPersistence?: WorkbenchStatusBarPersistenceAdapter;
2315
2399
  defaultPanelOpenByRegionId?: Partial<Record<WorkbenchRegion, boolean>>;
2316
2400
  /** Host-level region layout policy. The active mode's regionSettings win over it. */
2317
2401
  regionSettings?: Partial<Record<WorkbenchRegion, WorkbenchRegionSettings>>;
@@ -2331,11 +2415,7 @@ interface WorkbenchModuleContribution {
2331
2415
  //#region src/core/workbench-core.d.ts
2332
2416
  declare const createWorkbench: (input?: createWorkbenchInput) => WorkbenchCore;
2333
2417
  //#endregion
2334
- //#region src/core/registries/modes/mode-layout.d.ts
2335
- declare const getWorkbenchModePanelForRegion: (region: WorkbenchRegion) => "main" | "secondary" | "side" | undefined;
2336
- declare const isWorkbenchModePanelAvailable: (mode: WorkbenchModeContribution | undefined, panel: WorkbenchPanelRegion) => boolean;
2337
- //#endregion
2338
- //#region src/core/registries/modes/mode-registry.d.ts
2418
+ //#region src/core/registries/modes/mode-registry-types.d.ts
2339
2419
  type WorkbenchModeActivationContext = WorkbenchCoreContributionContext;
2340
2420
  type WorkbenchModeActivationResult = Disposable | readonly Disposable[] | undefined;
2341
2421
  interface WorkbenchModeAddablePanel {
@@ -2385,10 +2465,14 @@ interface WorkbenchModeRegistry {
2385
2465
  onDidChangeActive(listener: WorkbenchModeChangeListener): Disposable;
2386
2466
  }
2387
2467
  //#endregion
2468
+ //#region src/core/registries/modes/mode-layout.d.ts
2469
+ declare const getWorkbenchModePanelForRegion: (region: WorkbenchRegion) => "main" | "secondary" | "side" | undefined;
2470
+ declare const isWorkbenchModePanelAvailable: (mode: WorkbenchModeContribution | undefined, panel: WorkbenchPanelRegion) => boolean;
2471
+ //#endregion
2388
2472
  //#region src/core/controllers/composition/composition-controller.d.ts
2389
2473
  interface WorkbenchCompositionAddablePanel extends WorkbenchModeAddablePanel {
2390
2474
  contribution: RegisteredWidgetContribution;
2391
- open?(resource?: ResourceRef$1): void;
2475
+ open?(resource?: ResourceRef$1): void | Promise<void>;
2392
2476
  }
2393
2477
  interface WorkbenchCompositionRegionPanels {
2394
2478
  open: readonly WorkbenchWidgetPlacement[];
@@ -2423,7 +2507,7 @@ declare const createLevelNavigation: (host: LevelNavigationHost) => {
2423
2507
  //#endregion
2424
2508
  //#region src/core/registries/layout/surface-map.d.ts
2425
2509
  type AnchorId = "primary" | "secondary" | "attached";
2426
- declare const resolveAnchorRegion: (anchorId: AnchorId) => "nav" | "activity" | "sidenav" | "main-header" | "main-left-menu" | "main" | "main-right-menu" | "secondary-header" | "secondary-left-menu" | "secondary" | "secondary-right-menu" | "side-header" | "side-left-menu" | "side" | "side-right-menu" | "status" | "overlay";
2510
+ declare const resolveAnchorRegion: (anchorId: AnchorId) => "activity" | "sidenav" | "main" | "secondary" | "side" | "status" | "nav" | "main-header" | "main-left-menu" | "main-right-menu" | "secondary-header" | "secondary-left-menu" | "secondary-right-menu" | "side-header" | "side-left-menu" | "side-right-menu" | "overlay";
2427
2511
  //#endregion
2428
2512
  //#region src/core/registries/menus/workbench-menu-paths.d.ts
2429
2513
  declare const headerLeadingMenuPath: (region: string) => MenuPath;
@@ -2435,6 +2519,9 @@ declare const workbenchTopHeaderLeadingMenuPath: MenuPath;
2435
2519
  declare const workbenchTopHeaderTrailingMenuPath: MenuPath;
2436
2520
  declare const resourceContextMenuPath: (resourceKind: string) => MenuPath;
2437
2521
  //#endregion
2522
+ //#region src/core/registries/navigation/navigation-target-key.d.ts
2523
+ declare const getNavigationTargetKey: (action: NavigationTarget$1) => string;
2524
+ //#endregion
2438
2525
  //#region src/core/registries/resources/resource-icons.d.ts
2439
2526
  declare const standardResourceIcons: {
2440
2527
  readonly project: "folder-root";
@@ -2451,9 +2538,14 @@ declare const rendererReadKey: (placement: WorkbenchPanelInstance, lane?: string
2451
2538
  //#region src/core/registries/views/settle-read-batch.d.ts
2452
2539
  declare const settleReadBatch: <T>(tasks: ((signal: AbortSignal) => Promise<T> | T)[], signal?: AbortSignal) => Promise<Awaited<T>[]>;
2453
2540
  //#endregion
2541
+ //#region src/core/shared/run-user-action.d.ts
2542
+ declare const runUserAction: (workbench: {
2543
+ notifications: Pick<NotificationRegistry, "show">;
2544
+ }, label: string, run: () => unknown) => Promise<void>;
2545
+ //#endregion
2454
2546
  //#region src/core/shared/store/workbench-batch.d.ts
2455
2547
  /** Commit related stores before their subscribers read the resulting workbench state. */
2456
2548
  declare const batchWorkbenchChanges: <Result>(commit: () => Result) => Result;
2457
2549
  //#endregion
2458
- export { createStatusRegistry as $, WorkbenchHierarchyNode as $i, ResourceContextAction as $n, WorkbenchPanelInstance as $r, WorkbenchTerminalSessionRequest as $t, WorkbenchCoreContributionContext as A, CommandParamDescriptor as Ai, createRendererReadRegistry as An, TreeAction as Ar, RegisteredWorkbenchNotification as At, ThemeRegistry as B, ResourceListContext as Bi, EnumOption as Bn, TreeViewSection as Br, KeybindingSequence as Bt, WorkbenchModeAddablePanelContext as C, NavigationTargetCompound as Ci, WorkbenchViewRegistry as Cn, ControlsResetInput as Cr, WorkbenchShellPlacementContribution as Ct, isWorkbenchModePanelAvailable as D, WorkbenchCommandPaletteOpenInput as Di, RendererReadBinding as Dn, NavigationTreeOwner as Dr, WorkbenchOverlayContribution as Dt, getWorkbenchModePanelForRegion as E, WorkbenchCommandPaletteController as Ei, workbenchViewIdContextKey as En, NavigationTreeContribution as Er, WorkbenchPlaceholderRegistry as Et, WorkbenchPagePersistenceScope as F, WorkbenchCommandExecutionError as Fi, AttributeKind as Fn, TreeNodeInlineInput as Fr, WorkbenchModePlacementContribution as Ft, FileIconThemeRegistry as G, createWorkbenchSelectionResourceMetadata as Gi, KanbanRendererCreateRowConfig as Gn, RegisteredMenuItem as Gr, CommandPaletteResourceRegistry as Gt, ThemePreferenceMode as H, ResourceRef$1 as Hi, EnumOptionsSource as Hn, MenuItem as Hr, CommandPaletteResourceProvider as Ht, WorkbenchPagePersistenceScopeInput as I, WorkbenchBreadcrumbController as Ii, AttributeType as In, TreeQueryContext as Ir, WorkbenchModePlacementRegistry as It, WorkbenchStatusRegistry as J, workbenchResourceMetadataContextKey as Ji, KanbanRendererOrdering as Jn, LayoutPersistenceAdapter as Jr, WorkbenchTerminalSessionAdapter as Jt, FileIconThemeFont as K, getWorkbenchSelectionResourceKeys as Ki, KanbanRendererCreateSubmission as Kn, WorkbenchFocusController as Kr, CommandPaletteResourceResult as Kt, WorkbenchPersistenceAdapter as L, WorkbenchBreadcrumbItem as Li, AttributesSource as Ln, TreeRendererContribution as Lr, WorkbenchOwnedPlacementItem as Lt, WorkbenchModuleContext as M, CommandParamSchema as Mi, KanbanRendererQueryState as Mn, TreeMoveEndpoint as Mr, WorkbenchNotificationAction as Mt, WorkbenchModuleContribution as N, CommandRegistry as Ni, AttributeDescriptor as Nn, TreeMovePolicy as Nr, WorkbenchNotificationEvent as Nt, createWorkbench as O, Command as Oi, RendererReadRegistry as On, NavigationTreeRegistry as Or, WorkbenchOverlayRegistry as Ot, WorkbenchModuleContributionContext as P, WorkbenchCommandExecutionContext as Pi, AttributeDisplayDescriptor as Pn, TreeNode as Pr, WorkbenchNotificationLevel as Pt, WorkflowStatusAction as Q, ResourceHierarchyProvider as Qi, KanbanRendererViewsSource as Qn, WorkbenchLayout as Qr, WorkbenchTerminalSessionOpener as Qt, WorkbenchSnapshot as R, ResourceBrowseEntry as Ri, BoardColumnAction as Rn, TreeRendererPersistenceAdapter as Rr, Keybinding as Rt, WorkbenchModeAddablePanel as S, NavigationTargetCommand as Si, WorkbenchViewContribution as Sn, ControlsRendererLayout as Sr, PreferenceValue as St, WorkbenchModeRegistry as T, NavigationTargetPanel$1 as Ti, createViewRegistry as Tn, NavigationTreeContext as Tr, WorkbenchPlaceholderContribution as Tt, ThemePreferenceOption as U, ResourceRegistry as Ui, KanbanRendererCreateField as Un, MenuPath as Ur, CommandPaletteResourceProviderResult as Ut, ThemePreference as V, ResourceProvider as Vi, EnumOptions as Vn, WorkbenchPanelRenderInput as Vr, getKeybindingSteps as Vt, ThemePreferenceTokens as W, createWorkbenchResourceContextValues as Wi, KanbanRendererCreateFieldType as Wn, MenuRegistry as Wr, CommandPaletteResourceQueryContext as Wt, WorkbenchStatusSetContribution as X, workbenchSelectionResourceKeyMetadataKey as Xi, KanbanRendererSettings as Xn, RegisteredWidgetContribution as Xr, WorkbenchTerminalSessionExit as Xt, WorkbenchStatusRegistryState as Y, workbenchResourceTypeContextKey as Yi, KanbanRendererRow as Yn, RegisteredPlaceholderContribution as Yr, WorkbenchTerminalSessionError as Yt, WorkflowStatus as Z, ResourceHierarchyCycle as Zi, KanbanRendererViewsProvider as Zn, WorkbenchCommandTarget as Zr, WorkbenchTerminalSessionModel as Zt, resolveAnchorRegion as _, workbenchRegions as _i, WorkbenchViewMenuContribution as _n, DataTableRendererThemeColor as _r, PreferencePropertySchema as _t, standardResourceIcons as a, ContextKeyScope as aa, WorkbenchTabMenuGroup as ai, WorkbenchShellRegionState as an, FileRendererRefreshOrigin as ar, CollectionSettingsPanel as at, WorkbenchModeActivationContext as b, NavigationRegistry as bi, WorkbenchReactViewBody as bn, ControlsQueryResult$1 as br, PreferenceScope as bt, headerLeadingMenuPath as c, matchesContextExpression as ca, WorkbenchTabRetention as ci, PersistedWorkbenchPageLocation as cn, DataTableRendererColumn as cr, SettingsCollectionGroupBy as ct, workbenchCommandPaletteMenuPath as d, WorkbenchWidgetTab as di, WorkbenchPageLocationController as dn, DataTableRendererContribution as dr, SettingsPanelPreference as dt, WorkbenchViewHierarchyNode as ea, WorkbenchPanelMountStrategy as ei, WorkbenchTerminalSessionSink as en, SortDirection as er, WorkbenchStatusBarItem as et, workbenchRegionTabAddMenuPath as f, WorkbenchPanelMenuRegion as fi, WorkbenchPageLocationDiagnostic as fn, DataTableRendererQueryContext as fr, SettingsRegistry as ft, AnchorId as g, workbenchPanelRegions as gi, WorkbenchPlacementPresentation as gn, DataTableRendererSelectionAction as gr, PreferencePersistenceAdapter as gt, workbenchTopHeaderTrailingMenuPath as h, WorkbenchRegion as hi, WorkbenchPageContribution as hn, DataTableRendererRowAction as hr, ViewSettingsPanel as ht, StandardResourceIcon as i, ContributionSource as ia, WorkbenchTabAction as ii, WorkbenchShellOpenRegion as in, FileRendererRefreshEnvelope as ir, createStatusBarRegistry as it, WorkbenchHost as j, CommandParamOption as ji, KanbanRendererContribution as jn, TreeContext as jr, WorkbenchNotification as jt, WorkbenchCore as k, CommandHandler as ki, RendererReadRequest as kn, NavigationTreeSlot as kr, NotificationRegistry as kt, headerTrailingMenuPath as l, WorkbenchStore as la, WorkbenchTabSnapshot as li, WorkbenchPageBrowserEntry as ln, DataTableRendererColumnRenderer as lr, SettingsPanelBase as lt, workbenchTopHeaderLeadingMenuPath as m, WorkbenchPanelRegion as mi, WorkbenchPageNavigationResult as mn, DataTableRendererRow as mr, SettingsSectionContribution as mt, settleReadBatch as n, resourceHierarchyCycleCode as na, WorkbenchRegionSize as ni, WorkbenchTerminalState as nn, FileRendererContent as nr, WorkbenchStatusBarRegistryState as nt, DockedWorkbenchRegion$1 as o, ContextKeyService as oa, WorkbenchTabMenuRow as oi, WorkbenchSidePanelPresentation as on, FileRendererSaveResult as or, SchemaSettingsPanel as ot, workbenchRegionTabLeadingMenuPath as p, WorkbenchPanelMenuSide as pi, WorkbenchPageLocationPersistence as pn, DataTableRendererQueryResult as pr, SettingsScope as pt, FileIconThemePreferenceOption as q, workbenchResourceIdContextKey as qi, KanbanRendererFilterState as qn, WorkbenchFocusRegionId as qr, WorkbenchTerminalController as qt, rendererReadKey as r, ContributionMetadata as ra, WorkbenchSidePanelMode as ri, WorkbenchShellController as rn, FileRendererContribution as rr, WorkbenchStatusBarSlot as rt, dockedWorkbenchRegions as s, ContextKeyValue as sa, WorkbenchTabPosition as si, WorkbenchPanelMenuStatePersistenceAdapter as sn, DataTableRendererBadgePalette as sr, SettingsAction as st, batchWorkbenchChanges as t, isWorkbenchViewHierarchyNode as ta, WorkbenchPanelTab as ti, WorkbenchTerminalSessionStatus as tn, ViewMode as tr, WorkbenchStatusBarRegistry as tt, resourceContextMenuPath as u, Disposable as ua, WorkbenchWidgetPlacement as ui, WorkbenchPageLocationBrowser as un, DataTableRendererColumnStat as ur, SettingsPanelContribution as ut, defaultPageResourceCodec as v, NavigationDispatcherContext as vi, WorkbenchViewMenuRegistry as vn, RegisteredDataTableRendererContribution as vr, PreferenceRegistry as vt, WorkbenchModeContribution as w, NavigationTargetItem as wi, WorkbenchViewRegistryStoreState as wn, ControlsUpdateValueInput as wr, WorkbenchShellPlacementRegistry as wt, WorkbenchModeActivationResult as x, NavigationTarget$1 as xi, WorkbenchViewBody as xn, ControlsRendererContribution as xr, PreferenceScopeRef as xt, createLevelNavigation as y, NavigationParser as yi, RegisteredWorkbenchView as yn, ControlsApplyInput as yr, PreferenceSchemaContribution as yt, createWorkbenchInput as z, ResourceKindContribution as zi, BoardColumnConfig as zn, TreeRendererState as zr, KeybindingRegistry as zt };
2550
+ export { WorkflowStatus as $, workbenchResourceOwnerContextKey as $i, RegisteredDataTableRendererContribution as $n, RegisteredPlaceholderContribution as $r, WorkbenchTerminalSessionError as $t, createWorkbench as A, WorkbenchCommandPaletteController as Ai, workbenchViewIdContextKey as An, NavigationTreeContribution as Ar, WorkbenchPlaceholderRegistry as At, WorkbenchSnapshot as B, WorkbenchBreadcrumbController as Bi, FileRendererRefreshOrigin as Bn, TreeQueryContext as Br, WorkbenchModePlacementRegistry as Bt, isWorkbenchModePanelAvailable as C, NavigationParser as Ci, RegisteredWorkbenchView as Cn, ControlsApplyInput as Cr, PreferenceSchemaContribution as Ct, WorkbenchModeAddablePanelContext as D, NavigationTargetCompound as Di, WorkbenchViewRegistry as Dn, ControlsResetInput as Dr, WorkbenchShellPlacementContribution as Dt, WorkbenchModeAddablePanel as E, NavigationTargetCommand as Ei, WorkbenchViewContribution as En, ControlsRendererLayout as Er, PreferenceValue as Et, WorkbenchModuleContribution as F, CommandParamOption as Fi, KanbanRendererContribution as Fn, TreeContext as Fr, WorkbenchNotification as Ft, ThemePreferenceOption as G, ResourceProvider as Gi, DataTableRendererColumnStat as Gn, WorkbenchPanelRenderInput as Gr, getKeybindingSteps as Gt, ThemeRegistry as H, ResourceBrowseEntry as Hi, DataTableRendererBadgePalette as Hn, TreeRendererPersistenceAdapter as Hr, Keybinding as Ht, WorkbenchModuleContributionContext as I, CommandParamSchema as Ii, KanbanRendererQueryState as In, TreeMoveEndpoint as Ir, WorkbenchNotificationAction as It, FileIconThemeFont as J, createWorkbenchResourceContextValues as Ji, DataTableRendererQueryResult as Jn, MenuRegistry as Jr, CommandPaletteResourceQueryContext as Jt, ThemePreferenceTokens as K, ResourceRef$1 as Ki, DataTableRendererContribution as Kn, MenuItem as Kr, CommandPaletteResourceProvider as Kt, WorkbenchPagePersistenceScope as L, CommandRegistry as Li, FileRendererContent as Ln, TreeMovePolicy as Lr, WorkbenchNotificationEvent as Lt, WorkbenchCoreContributionContext as M, Command as Mi, RendererReadRegistry as Mn, NavigationTreeRegistry as Mr, WorkbenchOverlayRegistry as Mt, WorkbenchHost as N, CommandHandler as Ni, RendererReadRequest as Nn, NavigationTreeSlot as Nr, NotificationRegistry as Nt, WorkbenchModeContribution as O, NavigationTargetItem as Oi, WorkbenchViewRegistryStoreState as On, ControlsUpdateValueInput as Or, WorkbenchShellPlacementRegistry as Ot, WorkbenchModuleContext as P, CommandParamDescriptor as Pi, createRendererReadRegistry as Pn, TreeAction as Pr, RegisteredWorkbenchNotification as Pt, WorkbenchStatusSetContribution as Q, workbenchResourceMetadataContextKey as Qi, DataTableRendererThemeColor as Qn, LayoutPersistenceAdapter as Qr, WorkbenchTerminalSessionAdapter as Qt, WorkbenchPagePersistenceScopeInput as R, WorkbenchCommandExecutionContext as Ri, FileRendererContribution as Rn, TreeNode as Rr, WorkbenchNotificationLevel as Rt, getWorkbenchModePanelForRegion as S, NavigationDispatcherContext as Si, WorkbenchViewMenuRegistry as Sn, ViewMode as Sr, PreferenceRegistry as St, WorkbenchModeActivationResult as T, NavigationTarget$1 as Ti, WorkbenchViewBody as Tn, ControlsRendererContribution as Tr, PreferenceScopeRef as Tt, ThemePreference as U, ResourceKindContribution as Ui, DataTableRendererColumn as Un, TreeRendererState as Ur, KeybindingRegistry as Ut, createWorkbenchInput as V, WorkbenchBreadcrumbItem as Vi, FileRendererSaveResult as Vn, TreeRendererContribution as Vr, WorkbenchOwnedPlacementItem as Vt, ThemePreferenceMode as W, ResourceListContext as Wi, DataTableRendererColumnRenderer as Wn, TreeViewSection as Wr, KeybindingSequence as Wt, WorkbenchStatusRegistry as X, getWorkbenchSelectionResourceKeys as Xi, DataTableRendererRowAction as Xn, WorkbenchFocusController as Xr, CommandPaletteResourceResult as Xt, FileIconThemePreferenceOption as Y, createWorkbenchSelectionResourceMetadata as Yi, DataTableRendererRow as Yn, RegisteredMenuItem as Yr, CommandPaletteResourceRegistry as Yt, WorkbenchStatusRegistryState as Z, workbenchResourceIdContextKey as Zi, DataTableRendererSelectionAction as Zn, WorkbenchFocusRegionId as Zr, WorkbenchTerminalController as Zt, workbenchTopHeaderTrailingMenuPath as _, WorkbenchPanelMenuSide as _i, WorkbenchPageLocationPersistence as _n, KanbanRendererRow as _r, SettingsScope as _t, StandardResourceIcon as a, WorkbenchViewHierarchyNode as aa, WorkbenchPanelTab as ai, WorkbenchTerminalSessionStatus as an, BoardColumnAction as ar, WorkbenchStatusBarRegistry as at, defaultPageResourceCodec as b, workbenchPanelRegions as bi, WorkbenchPlacementPresentation as bn, KanbanRendererViewsSource as br, PreferencePersistenceAdapter as bt, dockedWorkbenchRegions as c, ContributionMetadata as ca, WorkbenchTabAction as ci, WorkbenchShellOpenRegion as cn, CollectionViewsProvider as cr, createStatusBarRegistry as ct, headerTrailingMenuPath as d, ContextKeyService as da, WorkbenchTabPosition as di, WorkbenchPanelMenuStatePersistenceAdapter as dn, EnumOptions as dr, SettingsAction as dt, workbenchResourceTypeContextKey as ea, RegisteredWidgetContribution as ei, WorkbenchTerminalSessionExit as en, AttributeDescriptor as er, WorkflowStatusAction as et, resourceContextMenuPath as f, ContextKeyValue as fa, WorkbenchTabRetention as fi, PersistedWorkbenchPageLocation as fn, EnumOptionsSource as fr, SettingsCollectionGroupBy as ft, workbenchTopHeaderLeadingMenuPath as g, WorkbenchPanelMenuRegion as gi, WorkbenchPageLocationDiagnostic as gn, KanbanRendererCreateSubmission as gr, SettingsRegistry as gt, workbenchRegionTabLeadingMenuPath as h, WorkbenchStore as ha, WorkbenchWidgetTab as hi, WorkbenchPageLocationController as hn, KanbanRendererCreateRowConfig as hr, SettingsPanelPreference as ht, rendererReadKey as i, WorkbenchHierarchyNode as ia, WorkbenchPanelMountStrategy as ii, WorkbenchTerminalSessionSink as in, AttributesSource as ir, WorkbenchStatusBarPosition as it, WorkbenchCore as j, WorkbenchCommandPaletteOpenInput as ji, RendererReadBinding as jn, NavigationTreeOwner as jr, WorkbenchOverlayContribution as jt, WorkbenchModeRegistry as k, NavigationTargetPanel$1 as ki, createViewRegistry as kn, NavigationTreeContext as kr, WorkbenchPlaceholderContribution as kt, getNavigationTargetKey as l, ContributionSource as la, WorkbenchTabMenuGroup as li, WorkbenchShellRegionState as ln, CollectionViewsSource as lr, CollectionSettingsPanel as lt, workbenchRegionTabAddMenuPath as m, Disposable as ma, WorkbenchWidgetPlacement as mi, WorkbenchPageLocationBrowser as mn, KanbanRendererCreateFieldType as mr, SettingsPanelContribution as mt, runUserAction as n, ResourceHierarchyCycle as na, WorkbenchLayout as ni, WorkbenchTerminalSessionOpener as nn, AttributeKind as nr, WorkbenchStatusBarItem as nt, standardResourceIcons as o, isWorkbenchViewHierarchyNode as oa, WorkbenchRegionSize as oi, WorkbenchTerminalState as on, BoardColumnConfig as or, WorkbenchStatusBarRegistryState as ot, workbenchCommandPaletteMenuPath as p, matchesContextExpression as pa, WorkbenchTabSnapshot as pi, WorkbenchPageBrowserEntry as pn, KanbanRendererCreateField as pr, SettingsPanelBase as pt, FileIconThemeRegistry as q, ResourceRegistry as qi, DataTableRendererQueryContext as qn, MenuPath as qr, CommandPaletteResourceProviderResult as qt, settleReadBatch as r, ResourceHierarchyProvider as ra, WorkbenchPanelInstance as ri, WorkbenchTerminalSessionRequest as rn, AttributeType as rr, WorkbenchStatusBarPersistenceAdapter as rt, DockedWorkbenchRegion$1 as s, resourceHierarchyCycleCode as sa, WorkbenchSidePanelMode as si, WorkbenchShellController as sn, CollectionSavedView as sr, WorkbenchStatusBarSlot as st, batchWorkbenchChanges as t, workbenchSelectionResourceKeyMetadataKey as ta, WorkbenchCommandTarget as ti, WorkbenchTerminalSessionModel as tn, AttributeDisplayDescriptor as tr, createStatusRegistry as tt, headerLeadingMenuPath as u, ContextKeyScope as ua, WorkbenchTabMenuRow as ui, WorkbenchSidePanelPresentation as un, EnumOption as ur, SchemaSettingsPanel as ut, AnchorId as v, WorkbenchPanelRegion as vi, WorkbenchPageNavigationResult as vn, KanbanRendererSettings as vr, SettingsSectionContribution as vt, WorkbenchModeActivationContext as w, NavigationRegistry as wi, WorkbenchReactViewBody as wn, ControlsQueryResult$1 as wr, PreferenceScope as wt, createLevelNavigation as x, workbenchRegions as xi, WorkbenchViewMenuContribution as xn, ResourceContextAction as xr, PreferencePropertySchema as xt, resolveAnchorRegion as y, WorkbenchRegion as yi, WorkbenchPageContribution as yn, KanbanRendererViewsProvider as yr, ViewSettingsPanel as yt, WorkbenchPersistenceAdapter as z, WorkbenchCommandExecutionError as zi, FileRendererRefreshEnvelope as zn, TreeNodeInlineInput as zr, WorkbenchModePlacementContribution as zt };
2459
2551
  export {};