@pstdio/workbench 0.44.0-nightly.20261018030230 → 0.44.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.
Files changed (30) hide show
  1. package/dist/extensions.d.ts +163 -1040
  2. package/dist/extensions.js +1194 -808
  3. package/dist/extensions.js.map +1 -1
  4. package/dist/{file-renderer-view-BsLjjvTU.js → file-renderer-view-C5dyoQQW.js} +211 -214
  5. package/dist/file-renderer-view-C5dyoQQW.js.map +1 -0
  6. package/dist/{index-JZ3eu6uE.d.ts → index-8x-QT7wg.d.ts} +1992 -533
  7. package/dist/index.d.ts +1 -1
  8. package/dist/index.js +2041 -2003
  9. package/dist/index.js.map +1 -1
  10. package/dist/{kanban-presentation-CmFF6y9I.d.ts → kanban-presentation-pexk_oCY.d.ts} +1 -1
  11. package/dist/layout-tab-presentation-Bz6EgFEa.js +15 -0
  12. package/dist/layout-tab-presentation-Bz6EgFEa.js.map +1 -0
  13. package/dist/{navigation-tree-registry-CIwRvLFJ.js → navigation-tree-registry-C5l3eO3n.js} +2 -2
  14. package/dist/{navigation-tree-registry-CIwRvLFJ.js.map → navigation-tree-registry-C5l3eO3n.js.map} +1 -1
  15. package/dist/react-C-HbdPSw.js +8881 -0
  16. package/dist/react-C-HbdPSw.js.map +1 -0
  17. package/dist/react.d.ts +75 -29
  18. package/dist/react.js +2 -2
  19. package/dist/storage.d.ts +3 -2
  20. package/dist/storage.js +142 -123
  21. package/dist/storage.js.map +1 -1
  22. package/dist/webview-runtime.js +1 -1
  23. package/dist/workbench-renderers-Bz_dLyHW.js +4775 -0
  24. package/dist/workbench-renderers-Bz_dLyHW.js.map +1 -0
  25. package/package.json +3 -3
  26. package/dist/file-renderer-view-BsLjjvTU.js.map +0 -1
  27. package/dist/react-B3WmSI5Y.js +0 -11192
  28. package/dist/react-B3WmSI5Y.js.map +0 -1
  29. package/dist/workbench-renderers-Bj4sazP5.js +0 -976
  30. package/dist/workbench-renderers-Bj4sazP5.js.map +0 -1
@@ -1,75 +1,1392 @@
1
- import { ControlValue, ControlValueMap, ControlsQueryResult, ControlsQueryResult as ControlsQueryResult$1, DataTableRendererSettings, DockedWorkbenchRegion, DockedWorkbenchRegion as DockedWorkbenchRegion$1, FileRendererSectionTarget, KanbanRendererAttributeDisplay, KanbanRendererMove, Localizable, ModeRegionSettings, NavigationTargetPage, NavigationTargetPanel, PageDocumentDeclaration, PageLocation, PageMain, PageOpenIntent, PageParamDefinition, PageParamValue, PageRef, PageSlot, PlacementIdentity, PlacementItem, PlacementRef, ResourceConstraint, ResourceRef, ResourceRef as ResourceRef$1, ViewFilterGroup, ViewSort, defaultPageResourceCodec, dockedWorkbenchRegions } from "@pstdio/sdk/extensions";
1
+ import { z } from "zod";
2
+ import { ControlValue, ControlValueMap, ControlsQueryResult, ControlsQueryResult as ControlsQueryResult$1, DataTableRendererSettings, DockedWorkbenchRegion, DockedWorkbenchRegion as DockedWorkbenchRegion$1, FileRendererSectionTarget, KanbanRendererAttributeDisplay, KanbanRendererMove, Localizable, ModeRegionSettings, NavigationTargetPage, NavigationTargetPanel, PageDocumentDeclaration, PageLocation, PageMain, PageOpenIntent, PageParamDefinition, PageParamValue, PageRef, PageSlot, PlacementIdentity, PlacementItem, PlacementRef, RelatedResourceOpenings, ResourceConstraint, ResourceRef, ResourceRef as ResourceRef$1, ViewFilterGroup, ViewSort, dockedWorkbenchRegions } from "@pstdio/sdk/extensions";
2
3
  import { NamedSet } from "zustand/middleware";
3
4
  import { StoreApi } from "zustand/vanilla";
4
5
  import { TerminalSessionAdapter, TerminalSessionError, TerminalSessionExit, TerminalSessionRequest } from "@pstdio/sdk/api";
5
- //#region src/core/shared/store/workbench-store.d.ts
6
- type WorkbenchStoreSelector<TState, TValue> = (state: TState) => TValue;
7
- type WorkbenchStoreListener<TState> = (state: TState, previousState: TState) => void;
8
- type WorkbenchStoreSelectorListener<TValue> = (value: TValue, previousValue: TValue) => void;
9
- interface WorkbenchStore<TState> {
10
- getState(): TState;
11
- getInitialState(): TState;
12
- subscribe(listener: WorkbenchStoreListener<TState>): () => void;
13
- subscribeSelector<TValue>(selector: WorkbenchStoreSelector<TState, TValue>, listener: WorkbenchStoreSelectorListener<TValue>, options?: {
14
- equalityFn?: (left: TValue, right: TValue) => boolean;
15
- fireImmediately?: boolean;
16
- }): () => void;
17
- }
18
- interface InternalWorkbenchStore<TState> extends WorkbenchStore<TState> {
19
- setState: NamedSet<TState>;
20
- api: StoreApi<TState>;
6
+ //#region ../pstdio-api-contracts/src/extension-kernel/types/contribution-identity.d.ts
7
+ type ContributionKind = "activity-item" | "artifact-mount" | "command" | "command-palette-resource" | "connection" | "file-icon-theme" | "harness" | "hook" | "keybinding" | "middleware" | "mode" | "navigation-item" | "navigation-tree" | "page" | "placement" | "resource-hierarchy-provider" | "resource-kind" | "schedule" | "settings-panel" | "settings-section" | "skill" | "status-bar-item" | "template" | "template-type" | "theme" | "view" | "view-menu" | "workspace-type";
8
+ interface ContributionRef<Kind extends ContributionKind> {
9
+ readonly extensionId?: string;
10
+ readonly kind: Kind;
11
+ readonly id: string;
21
12
  }
13
+ type PageRef$1 = ContributionRef<"page">;
14
+ type PlacementRef$1 = ContributionRef<"placement">;
22
15
  //#endregion
23
- //#region src/core/registries/resources/resource-preview.d.ts
24
- type ResourceChange = {
25
- label: string;
16
+ //#region ../pstdio-api-contracts/src/extension-kernel/types/json.d.ts
17
+ type JsonPrimitive = string | number | boolean | null;
18
+ type JsonValue = JsonPrimitive | JsonValue[] | JsonObject;
19
+ type JsonObject = {
20
+ [key: string]: JsonValue;
21
+ };
22
+ type MaybePromise<T> = T | Promise<T>;
23
+ type Struct = object;
24
+ //#endregion
25
+ //#region ../pstdio-api-contracts/src/extensions.terminal.d.ts
26
+ type TerminalSessionResult = {
27
+ operation: "open";
28
+ sessionId: string;
26
29
  } | {
27
- removed: true;
30
+ operation: "write" | "resize" | "kill" | "subscribe";
31
+ accepted: true;
28
32
  };
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>;
33
+ //#endregion
34
+ //#region ../pstdio-api-contracts/src/extension-kernel/types/webview-capabilities.d.ts
35
+ interface WebviewCommandsExecuteParams {
36
+ commandId: string;
37
+ params?: JsonObject;
38
+ workspaceId?: string;
39
+ resource?: ResourceRef$2;
40
+ metadata?: JsonObject;
41
+ }
42
+ /** @deprecated Invoke a command using ctx.notify.setStatus or setStatusByKey. */
43
+ type WebviewNotificationActionParams = Omit<CreateNotificationInput, "projectId">;
44
+ /** @deprecated Invoke a command using ctx.notify.setStatus or setStatusByKey. */
45
+ interface WebviewNotificationResolveParams {
46
+ id?: string;
47
+ dedupeKey?: string;
48
+ status?: Extract<NotificationStatus, "done" | "dismissed" | "expired">;
49
+ }
50
+ interface WebviewPreferencesGetParams {
51
+ /** Access to another extension's registered names is deprecated. Use names owned by the caller. */
52
+ name: string;
53
+ scope?: {
54
+ scope: "default" | "user" | "project" | "workspace" | "extension" | "session";
55
+ scopeId?: string;
43
56
  };
57
+ }
58
+ interface WebviewPreferencesSetParams extends WebviewPreferencesGetParams {
59
+ value: boolean | number | string | string[] | number[] | boolean[] | Record<string, unknown>;
60
+ }
61
+ interface WebviewPageParamsUpdateParams {
62
+ /** Merge overrides into the active page. Null resets a name to its declared default. */
63
+ params: Readonly<Record<string, PageParamValue$1 | null>>;
64
+ }
65
+ interface WebviewExtensionSettingKeyParams {
66
+ key: string;
67
+ }
68
+ interface WebviewExtensionSettingSetParams extends WebviewExtensionSettingKeyParams {
69
+ value: unknown;
70
+ }
71
+ type WebviewFileScope = {
72
+ type: "project";
73
+ } | {
74
+ type: "resource";
75
+ id: string;
76
+ } | {
77
+ type: string;
78
+ id?: string;
79
+ };
80
+ interface WebviewFilesUploadParams {
81
+ name: string;
82
+ data: Uint8Array | ArrayBuffer;
83
+ mimeType?: string;
84
+ scope?: WebviewFileScope;
85
+ }
86
+ interface WebviewFilesListParams {
87
+ scope?: WebviewFileScope;
88
+ }
89
+ interface WebviewFilesDeleteParams {
90
+ id: string;
91
+ }
92
+ type WebviewArtifactsReadParams = {
93
+ op: "list";
94
+ mount: string;
95
+ prefix?: string;
96
+ } | {
97
+ op: "readText";
98
+ mount: string;
99
+ path: string;
100
+ } | {
101
+ op: "imageUrl";
102
+ mount: string;
103
+ path: string;
44
104
  };
105
+ interface WebviewArtifactFile {
106
+ path: string;
107
+ size: number;
108
+ mediaType: string;
109
+ }
110
+ interface WebviewHostCapabilityResults {
111
+ "commands.execute": {
112
+ outcome: CommandOutcome;
113
+ };
114
+ "commands.stream": {
115
+ operation: "start" | "cancel" | "ack";
116
+ accepted: true;
117
+ };
118
+ "page.params.update": {
119
+ location: PageLocation$1;
120
+ };
121
+ "navigation.open": void;
122
+ "placement.close": void;
123
+ "notification.show": void;
124
+ /** @deprecated Invoke a command using ctx.notify.setStatus or setStatusByKey. */
125
+ "notification.action": Notification;
126
+ /** @deprecated Invoke a command using ctx.notify.setStatus or setStatusByKey. */
127
+ "notification.resolve": Notification | {
128
+ resolved: number;
129
+ notifications: Notification[];
130
+ };
131
+ /** @deprecated Invoke a command using ctx.notify.setStatus or setStatusByKey. */
132
+ "notification.dismiss": Notification | {
133
+ resolved: number;
134
+ notifications: Notification[];
135
+ };
136
+ "preferences.get": WebviewPreferencesSetParams["value"] | undefined;
137
+ "preferences.set": {
138
+ name: string;
139
+ value: WebviewPreferencesSetParams["value"];
140
+ };
141
+ "extension.settings.all": Record<string, unknown>;
142
+ "extension.settings.get": unknown;
143
+ "extension.settings.set": {
144
+ key: string;
145
+ value: unknown;
146
+ };
147
+ "extension.settings.delete": void;
148
+ /** @deprecated Use the host terminal surface. */
149
+ "terminal.session": TerminalSessionResult;
150
+ "files.upload": ExtensionBlobRef;
151
+ /** @deprecated Use extension commands and owned storage. */
152
+ "files.list": {
153
+ files: ExtensionBlobRef[];
154
+ };
155
+ /** @deprecated Use extension commands and owned storage. */
156
+ "files.delete": void;
157
+ "artifacts.read": WebviewArtifactFile[] | string;
158
+ "host.dispatchKeyboardEvent": void;
159
+ }
160
+ //#endregion
161
+ //#region ../pstdio-api-contracts/src/extension-kernel/types/pages.d.ts
162
+ type PageParamValue$1 = string | number | boolean | readonly string[];
163
+ type PageParams = Readonly<Record<string, PageParamValue$1>>;
164
+ type PageOpenIntent$1 = "preview" | "pin";
165
+ interface PageSlotRef {
166
+ readonly kind: "page-slot";
167
+ readonly page: PageRef$1;
168
+ readonly id: string;
169
+ }
170
+ type PanelRef = PlacementRef$1 | PageSlotRef;
171
+ /** One-based source coordinates. Owners clamp them to the loaded document. */
172
+ interface FileSourcePosition {
173
+ readonly line: number;
174
+ readonly column?: number;
175
+ readonly endLine?: number;
176
+ readonly endColumn?: number;
177
+ }
178
+ interface PageLocation$1 {
179
+ readonly page: PageRef$1;
180
+ readonly resource?: ResourceRef$2;
181
+ readonly section?: FileRendererSectionTarget$1;
182
+ readonly position?: FileSourcePosition;
183
+ /** Overrides that differ from declared defaults. */
184
+ readonly params?: PageParams;
185
+ readonly parent?: PageLocation$1;
186
+ }
187
+ //#endregion
188
+ //#region ../pstdio-api-contracts/src/extension-kernel/types/resources.d.ts
189
+ interface ResourceRef$2 {
190
+ type: string;
191
+ id: string;
192
+ shorthand?: string;
193
+ projectId?: string;
194
+ label?: string;
195
+ icon?: string;
196
+ extensionId?: string;
197
+ metadata?: JsonObject;
198
+ }
45
199
  //#endregion
46
- //#region src/core/shared/disposable.d.ts
47
- interface Disposable {
48
- dispose(): void;
200
+ //#region ../pstdio-api-contracts/src/notifications/types.d.ts
201
+ type NotificationKind = "needs_review" | "ready_to_merge" | "blocked" | "approval_required" | "failed" | "info";
202
+ type NotificationStatus = "open" | "read" | "snoozed" | "done" | "dismissed" | "expired";
203
+ type NotificationPriority = "low" | "normal" | "high" | "urgent";
204
+ type NotificationActorType = "user" | "agent" | "system";
205
+ type NotificationOrigin = "core" | "extension" | "agent";
206
+ type NotificationAction = {
207
+ id: string;
208
+ label: string;
209
+ kind: "navigate";
210
+ target: NavigationTarget$2;
211
+ primary?: boolean;
212
+ } | {
213
+ id: string;
214
+ label: string;
215
+ kind: "command";
216
+ command: string;
217
+ params?: JsonObject;
218
+ primary?: boolean;
219
+ destructive?: boolean;
220
+ } | {
221
+ id: string;
222
+ label: string;
223
+ kind: "url";
224
+ href: string;
225
+ primary?: boolean;
226
+ };
227
+ interface Notification {
228
+ id: string;
229
+ projectId: string;
230
+ title: string;
231
+ body?: string | null;
232
+ kind: NotificationKind;
233
+ status: NotificationStatus;
234
+ priority: NotificationPriority;
235
+ source: CommandSource;
236
+ origin: NotificationOrigin;
237
+ sourceExtensionId?: string | null;
238
+ actorType?: NotificationActorType | null;
239
+ actorId?: string | null;
240
+ target?: ResourceRef$2 | null;
241
+ related: ResourceRef$2[];
242
+ actions: NotificationAction[];
243
+ dedupeKey?: string | null;
244
+ metadata?: JsonObject | null;
245
+ createdAt: string;
246
+ updatedAt: string;
247
+ readAt?: string | null;
248
+ resolvedAt?: string | null;
249
+ snoozedUntil?: string | null;
250
+ expiresAt?: string | null;
251
+ }
252
+ interface CreateNotificationInput {
253
+ projectId: string;
254
+ title: string;
255
+ body?: string;
256
+ kind: NotificationKind;
257
+ priority?: NotificationPriority;
258
+ target?: ResourceRef$2;
259
+ related?: ResourceRef$2[];
260
+ actions?: NotificationAction[];
261
+ dedupeKey?: string;
262
+ expiresAt?: string;
263
+ snoozedUntil?: string;
264
+ metadata?: JsonObject;
265
+ }
266
+ //#endregion
267
+ //#region ../pstdio-api-contracts/src/extension-kernel/types/storage.d.ts
268
+ interface ExtensionBlobRef {
269
+ id: string;
270
+ name: string;
271
+ mimeType: string | null;
272
+ size: number;
273
+ hash: string | null;
274
+ url: string;
275
+ createdAt: string;
276
+ updatedAt: string;
49
277
  }
50
278
  //#endregion
51
- //#region src/core/shared/context/context-key-service.d.ts
52
- type ContextKeyValue = boolean | number | string | undefined;
53
- interface ContextKeyStoreState {
54
- values: Record<string, ContextKeyValue>;
279
+ //#region ../pstdio-api-contracts/src/extension-kernel/types/file-renderer.d.ts
280
+ interface FileRendererSectionAnchor {
281
+ /** Stable extension-owned tree node id. */
282
+ id: string;
283
+ /** Plain heading text as it appears in the Markdown document. */
284
+ heading: string;
285
+ /** Zero-based occurrence when the document repeats the same heading text. */
286
+ occurrence?: number;
287
+ }
288
+ interface FileRendererSectionTarget$1 {
289
+ /** The document outline used for deep-linking and active-heading sync. */
290
+ anchors: FileRendererSectionAnchor[];
291
+ }
292
+ //#endregion
293
+ //#region ../pstdio-api-contracts/src/extension-kernel/types/navigation-target.d.ts
294
+ interface NavigationTargetPage$2 {
295
+ kind: "page";
296
+ page: PageRef$1;
297
+ resource?: ResourceRef$2;
298
+ section?: FileRendererSectionTarget$1;
299
+ position?: FileSourcePosition;
300
+ open?: PageOpenIntent$1;
301
+ params?: PageParams;
302
+ parent?: NavigationTargetPage$2;
303
+ }
304
+ interface NavigationTargetPanel$2 {
305
+ kind: "panel";
306
+ panel: PanelRef;
307
+ resource?: ResourceRef$2;
308
+ open?: PageOpenIntent$1;
55
309
  }
56
- interface ContextKeyScope extends Disposable {
57
- ownerId: string;
58
- set(key: string, value: ContextKeyValue): void;
59
- get(key: string): ContextKeyValue;
60
- delete(key: string): void;
310
+ interface NavigationTargetCommand$1 {
311
+ kind: "command";
312
+ target: CommandTarget<JsonObject>;
61
313
  }
62
- interface ContextKeyService {
63
- store: WorkbenchStore<ContextKeyStoreState>;
64
- set(key: string, value: ContextKeyValue): void;
65
- get(key: string): ContextKeyValue;
66
- delete(key: string): void;
67
- createScope(ownerId: string): ContextKeyScope;
68
- deleteOwner(ownerId: string): void;
69
- snapshot(): Record<string, ContextKeyValue>;
70
- matches(expression?: string): boolean;
314
+ interface NavigationTargetHref$1 {
315
+ kind: "href";
316
+ href: string;
71
317
  }
72
- declare const matchesContextExpression: (values: Record<string, ContextKeyValue>, expression?: string) => boolean;
318
+ type NavigationTargetItem$1 = NavigationTargetPage$2 | NavigationTargetPanel$2 | NavigationTargetCommand$1 | NavigationTargetHref$1;
319
+ interface NavigationTargetCompound$1 {
320
+ kind: "compound";
321
+ targets: readonly (NavigationTargetPage$2 | NavigationTargetPanel$2)[];
322
+ }
323
+ type NavigationTarget$2 = NavigationTargetItem$1 | NavigationTargetCompound$1;
324
+ //#endregion
325
+ //#region ../pstdio-api-contracts/src/extension-kernel/types/commands.d.ts
326
+ type CommandSource = "cli" | "dashboard" | "api" | "schedule" | "event" | "automation" | "command-panel";
327
+ interface CommandRef<TParams extends Struct = Struct, TResult = unknown> extends ContributionRef<"command"> {
328
+ params?: TParams;
329
+ result?: TResult;
330
+ }
331
+ interface CommandTarget<TParams extends Struct = Struct> {
332
+ command: CommandRef<TParams, unknown>;
333
+ params?: TParams;
334
+ }
335
+ interface SerializedError {
336
+ name?: string;
337
+ message: string;
338
+ stack?: string;
339
+ cause?: JsonValue;
340
+ }
341
+ interface CommandFailureDetails {
342
+ code?: string;
343
+ reason: string;
344
+ data?: JsonObject;
345
+ cause?: JsonValue;
346
+ error?: SerializedError;
347
+ notices?: CommandNotice[];
348
+ diagnostics?: CommandDiagnostic[];
349
+ }
350
+ interface CommandNotice {
351
+ type: "info" | "success" | "warning" | "error";
352
+ title?: string;
353
+ message: string;
354
+ metadata?: JsonObject;
355
+ }
356
+ interface CommandDiagnostic {
357
+ code: string;
358
+ message: string;
359
+ severity: "info" | "warning" | "error";
360
+ extensionId?: string;
361
+ commandId?: string;
362
+ metadata?: JsonObject;
363
+ }
364
+ type CommandOutcome<TResult = unknown> = {
365
+ ok: true;
366
+ status: "success";
367
+ value: TResult;
368
+ navigationRequests?: NavigationTarget$2[];
369
+ notices?: CommandNotice[];
370
+ diagnostics?: CommandDiagnostic[];
371
+ } | (CommandFailureDetails & {
372
+ ok: false;
373
+ status: "rejected";
374
+ }) | (CommandFailureDetails & {
375
+ ok: false;
376
+ status: "error";
377
+ });
378
+ //#endregion
379
+ //#region ../pstdio-api-contracts/src/extension-kernel/types/webview-host-props.d.ts
380
+ interface WebviewHostProps {
381
+ projectId?: string;
382
+ themePreference: string;
383
+ locale: string;
384
+ resource?: ResourceRef$2;
385
+ pageLocation?: PageLocation$1;
386
+ pageParams: PageParams;
387
+ translations: {
388
+ locale: string;
389
+ defaultLocale: string;
390
+ bundle: Record<string, string>;
391
+ defaultBundle: Record<string, string>;
392
+ };
393
+ /** @deprecated Subscribe through client.events or useCommandQuery.refreshOn. */
394
+ lastCommand?: unknown;
395
+ }
396
+ //#endregion
397
+ //#region ../pstdio-api-contracts/src/extension-kernel/page-url.d.ts
398
+ interface PageResourceCodec {
399
+ normalize(resource: ResourceRef$2): ResourceRef$2;
400
+ toUri(resource: ResourceRef$2): string;
401
+ fromUri(uri: string): ResourceRef$2 | undefined;
402
+ }
403
+ //#endregion
404
+ //#region ../pstdio-api-contracts/src/extension-kernel/page-resource-codec.d.ts
405
+ /** Resource URI conversion belongs to route and persistence adapters. */
406
+ declare const defaultPageResourceCodec: PageResourceCodec;
407
+ //#endregion
408
+ //#region ../pstdio-api-contracts/src/extensions/resource-ref.d.ts
409
+ declare const extensionResourceRefSchema: z.ZodObject<{
410
+ shorthand: z.ZodOptional<z.ZodString>;
411
+ type: z.ZodString;
412
+ id: z.ZodString;
413
+ projectId: z.ZodOptional<z.ZodString>;
414
+ label: z.ZodOptional<z.ZodString>;
415
+ icon: z.ZodOptional<z.ZodString>;
416
+ extensionId: z.ZodOptional<z.ZodString>;
417
+ metadata: z.ZodOptional<z.ZodType<JsonObject, unknown, z.core.$ZodTypeInternals<JsonObject, unknown>>>;
418
+ }, z.core.$strip>;
419
+ //#endregion
420
+ //#region ../pstdio-api-contracts/src/extensions/workbench-refs-metadata.d.ts
421
+ declare const pageRefSchema: z.ZodObject<{
422
+ extensionId: z.ZodString;
423
+ kind: z.ZodLiteral<"page">;
424
+ id: z.ZodString;
425
+ }, z.core.$strip>;
426
+ //#endregion
427
+ //#region ../pstdio-api-contracts/src/extensions/navigation-target-metadata.d.ts
428
+ declare const sectionSchema: z.ZodObject<{
429
+ anchors: z.ZodArray<z.ZodObject<{
430
+ id: z.ZodString;
431
+ heading: z.ZodString;
432
+ occurrence: z.ZodOptional<z.ZodNumber>;
433
+ }, z.core.$strip>>;
434
+ }, z.core.$strip>;
435
+ interface MetadataPageTarget {
436
+ kind: "page";
437
+ page: z.infer<typeof pageRefSchema>;
438
+ resource?: z.infer<typeof extensionResourceRefSchema>;
439
+ open?: "preview" | "pin";
440
+ section?: z.infer<typeof sectionSchema>;
441
+ position?: FileSourcePosition;
442
+ params?: PageParams;
443
+ parent?: MetadataPageTarget;
444
+ }
445
+ //#endregion
446
+ //#region ../pstdio-api-contracts/src/extensions/commands.d.ts
447
+ declare const extensionMenuContributionSchema: z.ZodObject<{
448
+ id: z.ZodString;
449
+ extensionId: z.ZodString;
450
+ commandId: z.ZodString;
451
+ slotId: z.ZodString;
452
+ target: z.ZodOptional<z.ZodEnum<{
453
+ "workbench.nav.actions": "workbench.nav.actions";
454
+ "workbench.nav.overflow": "workbench.nav.overflow";
455
+ }>>;
456
+ label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
457
+ $l10n: z.ZodString;
458
+ default: z.ZodOptional<z.ZodString>;
459
+ }, z.core.$strip>]>;
460
+ group: z.ZodOptional<z.ZodString>;
461
+ placement: z.ZodOptional<z.ZodEnum<{
462
+ default: "default";
463
+ first: "first";
464
+ last: "last";
465
+ }>>;
466
+ icon: z.ZodOptional<z.ZodString>;
467
+ presentation: z.ZodOptional<z.ZodEnum<{
468
+ button: "button";
469
+ "icon-button": "icon-button";
470
+ "menu-item": "menu-item";
471
+ }>>;
472
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
473
+ when: z.ZodOptional<z.ZodObject<{
474
+ mode: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
475
+ source: z.ZodOptional<z.ZodArray<z.ZodEnum<{
476
+ api: "api";
477
+ automation: "automation";
478
+ cli: "cli";
479
+ "command-panel": "command-panel";
480
+ dashboard: "dashboard";
481
+ event: "event";
482
+ schedule: "schedule";
483
+ }>>>;
484
+ viewId: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
485
+ resourceType: z.ZodOptional<z.ZodArray<z.ZodString>>;
486
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
487
+ }, z.core.$strip>>;
488
+ disabledWhen: z.ZodOptional<z.ZodObject<{
489
+ mode: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
490
+ source: z.ZodOptional<z.ZodArray<z.ZodEnum<{
491
+ api: "api";
492
+ automation: "automation";
493
+ cli: "cli";
494
+ "command-panel": "command-panel";
495
+ dashboard: "dashboard";
496
+ event: "event";
497
+ schedule: "schedule";
498
+ }>>>;
499
+ viewId: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
500
+ resourceType: z.ZodOptional<z.ZodArray<z.ZodString>>;
501
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
502
+ }, z.core.$strip>>;
503
+ disabledReason: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
504
+ $l10n: z.ZodString;
505
+ default: z.ZodOptional<z.ZodString>;
506
+ }, z.core.$strip>]>>;
507
+ }, z.core.$strip>;
508
+ type ExtensionMenuContribution$1 = z.infer<typeof extensionMenuContributionSchema>;
509
+ //#endregion
510
+ //#region ../pstdio-api-contracts/src/extensions/controls-renderer.d.ts
511
+ declare const extensionControlsRendererRecordSchema: z.ZodObject<{
512
+ id: z.ZodString;
513
+ extensionId: z.ZodString;
514
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
515
+ $l10n: z.ZodString;
516
+ default: z.ZodOptional<z.ZodString>;
517
+ }, z.core.$strip>]>;
518
+ icon: z.ZodOptional<z.ZodString>;
519
+ resourceKind: z.ZodOptional<z.ZodString>;
520
+ refreshEventIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
521
+ emptyTitle: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
522
+ $l10n: z.ZodString;
523
+ default: z.ZodOptional<z.ZodString>;
524
+ }, z.core.$strip>]>>;
525
+ emptyDescription: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
526
+ $l10n: z.ZodString;
527
+ default: z.ZodOptional<z.ZodString>;
528
+ }, z.core.$strip>]>>;
529
+ queryHandlerId: z.ZodString;
530
+ valueChangeHandlerId: z.ZodOptional<z.ZodString>;
531
+ applyHandlerId: z.ZodOptional<z.ZodString>;
532
+ resetHandlerId: z.ZodOptional<z.ZodString>;
533
+ defaultValues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, z.ZodArray<z.ZodString>, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodObject<{
534
+ x: z.ZodNumber;
535
+ y: z.ZodNumber;
536
+ }, z.core.$strict>, z.ZodObject<{
537
+ harnessId: z.ZodString;
538
+ model: z.ZodOptional<z.ZodString>;
539
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodBoolean]>>>;
540
+ }, z.core.$strict>]>>>;
541
+ }, z.core.$strip>;
542
+ type WorkbenchExtensionControlsRendererRecord = z.infer<typeof extensionControlsRendererRecordSchema>;
543
+ //#endregion
544
+ //#region ../pstdio-api-contracts/src/extensions/data-table-renderer.d.ts
545
+ declare const extensionDataTableRendererRecordSchema: z.ZodObject<{
546
+ id: z.ZodString;
547
+ extensionId: z.ZodString;
548
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
549
+ $l10n: z.ZodString;
550
+ default: z.ZodOptional<z.ZodString>;
551
+ }, z.core.$strip>]>;
552
+ icon: z.ZodOptional<z.ZodString>;
553
+ resourceKind: z.ZodOptional<z.ZodString>;
554
+ refreshEventIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
555
+ emptyTitle: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
556
+ $l10n: z.ZodString;
557
+ default: z.ZodOptional<z.ZodString>;
558
+ }, z.core.$strip>]>>;
559
+ emptyDescription: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
560
+ $l10n: z.ZodString;
561
+ default: z.ZodOptional<z.ZodString>;
562
+ }, z.core.$strip>]>>;
563
+ toolbarActions: z.ZodOptional<z.ZodArray<z.ZodObject<{
564
+ id: z.ZodString;
565
+ label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
566
+ $l10n: z.ZodString;
567
+ default: z.ZodOptional<z.ZodString>;
568
+ }, z.core.$strip>]>;
569
+ icon: z.ZodOptional<z.ZodString>;
570
+ presentation: z.ZodOptional<z.ZodEnum<{
571
+ secondary: "secondary";
572
+ primary: "primary";
573
+ }>>;
574
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
575
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
576
+ type: z.ZodString;
577
+ description: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
578
+ $l10n: z.ZodString;
579
+ default: z.ZodOptional<z.ZodString>;
580
+ }, z.core.$strip>]>>;
581
+ }, z.core.$catchall<z.ZodUnknown>>>>;
582
+ submitLabel: z.ZodOptional<z.ZodString>;
583
+ when: z.ZodOptional<z.ZodString>;
584
+ disabled: z.ZodOptional<z.ZodBoolean>;
585
+ commandId: z.ZodString;
586
+ }, z.core.$strip>>>;
587
+ columns: z.ZodOptional<z.ZodArray<z.ZodObject<{
588
+ id: z.ZodString;
589
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
590
+ $l10n: z.ZodString;
591
+ default: z.ZodOptional<z.ZodString>;
592
+ }, z.core.$strip>]>>;
593
+ type: z.ZodOptional<z.ZodEnum<{
594
+ string: "string";
595
+ number: "number";
596
+ boolean: "boolean";
597
+ date: "date";
598
+ }>>;
599
+ groupable: z.ZodOptional<z.ZodBoolean>;
600
+ filterable: z.ZodOptional<z.ZodBoolean>;
601
+ description: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
602
+ $l10n: z.ZodString;
603
+ default: z.ZodOptional<z.ZodString>;
604
+ }, z.core.$strip>]>>;
605
+ icon: z.ZodOptional<z.ZodString>;
606
+ hidden: z.ZodOptional<z.ZodBoolean>;
607
+ stat: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
608
+ type: z.ZodLiteral<"unique">;
609
+ }, z.core.$strip>, z.ZodObject<{
610
+ type: z.ZodLiteral<"histogram">;
611
+ bins: z.ZodOptional<z.ZodNumber>;
612
+ }, z.core.$strip>, z.ZodObject<{
613
+ type: z.ZodLiteral<"top-values">;
614
+ limit: z.ZodOptional<z.ZodNumber>;
615
+ }, z.core.$strip>], "type">>;
616
+ renderer: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
617
+ type: z.ZodLiteral<"json">;
618
+ }, z.core.$strip>, z.ZodObject<{
619
+ type: z.ZodLiteral<"color-scale">;
620
+ stops: z.ZodArray<z.ZodObject<{
621
+ value: z.ZodNumber;
622
+ color: z.ZodObject<{
623
+ light: z.ZodString;
624
+ dark: z.ZodString;
625
+ foreground: z.ZodOptional<z.ZodObject<{
626
+ light: z.ZodString;
627
+ dark: z.ZodString;
628
+ }, z.core.$strip>>;
629
+ }, z.core.$strip>;
630
+ }, z.core.$strip>>;
631
+ }, z.core.$strip>, z.ZodObject<{
632
+ type: z.ZodLiteral<"categorical-color">;
633
+ categories: z.ZodArray<z.ZodObject<{
634
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
635
+ color: z.ZodObject<{
636
+ light: z.ZodString;
637
+ dark: z.ZodString;
638
+ foreground: z.ZodOptional<z.ZodObject<{
639
+ light: z.ZodString;
640
+ dark: z.ZodString;
641
+ }, z.core.$strip>>;
642
+ }, z.core.$strip>;
643
+ }, z.core.$strip>>;
644
+ }, z.core.$strip>], "type">>;
645
+ }, z.core.$strip>>>;
646
+ queryHandlerId: z.ZodString;
647
+ selectionMode: z.ZodOptional<z.ZodEnum<{
648
+ none: "none";
649
+ multiple: "multiple";
650
+ }>>;
651
+ selectionActions: z.ZodOptional<z.ZodArray<z.ZodObject<{
652
+ id: z.ZodString;
653
+ label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
654
+ $l10n: z.ZodString;
655
+ default: z.ZodOptional<z.ZodString>;
656
+ }, z.core.$strip>]>;
657
+ icon: z.ZodOptional<z.ZodString>;
658
+ destructive: z.ZodOptional<z.ZodBoolean>;
659
+ commandId: z.ZodString;
660
+ }, z.core.$strip>>>;
661
+ rowActions: z.ZodOptional<z.ZodArray<z.ZodObject<{
662
+ id: z.ZodString;
663
+ label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
664
+ $l10n: z.ZodString;
665
+ default: z.ZodOptional<z.ZodString>;
666
+ }, z.core.$strip>]>;
667
+ icon: z.ZodOptional<z.ZodString>;
668
+ destructive: z.ZodOptional<z.ZodBoolean>;
669
+ commandId: z.ZodString;
670
+ }, z.core.$strip>>>;
671
+ rowActivationHandlerId: z.ZodOptional<z.ZodString>;
672
+ initialPageSize: z.ZodOptional<z.ZodNumber>;
673
+ pageSizeOptions: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
674
+ defaultSettings: z.ZodOptional<z.ZodObject<{
675
+ grouping: z.ZodOptional<z.ZodString>;
676
+ rowNumbers: z.ZodOptional<z.ZodBoolean>;
677
+ wrapRows: z.ZodOptional<z.ZodBoolean>;
678
+ showStats: z.ZodOptional<z.ZodBoolean>;
679
+ hiddenColumns: z.ZodOptional<z.ZodArray<z.ZodString>>;
680
+ columnOrder: z.ZodOptional<z.ZodArray<z.ZodString>>;
681
+ }, z.core.$strip>>;
682
+ defaultFilter: z.ZodOptional<z.ZodObject<{
683
+ conjunction: z.ZodEnum<{
684
+ and: "and";
685
+ or: "or";
686
+ }>;
687
+ rules: z.ZodArray<z.ZodObject<{
688
+ attributeId: z.ZodString;
689
+ condition: z.ZodEnum<{
690
+ contains: "contains";
691
+ "does-not-contain": "does-not-contain";
692
+ is: "is";
693
+ "is-not": "is-not";
694
+ gt: "gt";
695
+ gte: "gte";
696
+ lt: "lt";
697
+ lte: "lte";
698
+ "is-before": "is-before";
699
+ "is-after": "is-after";
700
+ "is-on-or-before": "is-on-or-before";
701
+ "is-on-or-after": "is-on-or-after";
702
+ "is-any-of": "is-any-of";
703
+ "is-none-of": "is-none-of";
704
+ "has-any-of": "has-any-of";
705
+ "has-all-of": "has-all-of";
706
+ "has-none-of": "has-none-of";
707
+ "is-empty": "is-empty";
708
+ "is-not-empty": "is-not-empty";
709
+ }>;
710
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString, z.ZodNumber, z.ZodArray<z.ZodString>]>>;
711
+ }, z.core.$strip>>;
712
+ groups: z.ZodOptional<z.ZodArray<z.ZodObject<{
713
+ conjunction: z.ZodEnum<{
714
+ and: "and";
715
+ or: "or";
716
+ }>;
717
+ rules: z.ZodArray<z.ZodObject<{
718
+ attributeId: z.ZodString;
719
+ condition: z.ZodEnum<{
720
+ contains: "contains";
721
+ "does-not-contain": "does-not-contain";
722
+ is: "is";
723
+ "is-not": "is-not";
724
+ gt: "gt";
725
+ gte: "gte";
726
+ lt: "lt";
727
+ lte: "lte";
728
+ "is-before": "is-before";
729
+ "is-after": "is-after";
730
+ "is-on-or-before": "is-on-or-before";
731
+ "is-on-or-after": "is-on-or-after";
732
+ "is-any-of": "is-any-of";
733
+ "is-none-of": "is-none-of";
734
+ "has-any-of": "has-any-of";
735
+ "has-all-of": "has-all-of";
736
+ "has-none-of": "has-none-of";
737
+ "is-empty": "is-empty";
738
+ "is-not-empty": "is-not-empty";
739
+ }>;
740
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString, z.ZodNumber, z.ZodArray<z.ZodString>]>>;
741
+ }, z.core.$strip>>;
742
+ }, z.core.$strict>>>;
743
+ }, z.core.$strict>>;
744
+ defaultSorts: z.ZodOptional<z.ZodArray<z.ZodObject<{
745
+ attributeId: z.ZodString;
746
+ direction: z.ZodEnum<{
747
+ asc: "asc";
748
+ desc: "desc";
749
+ }>;
750
+ }, z.core.$strip>>>;
751
+ defaultViews: z.ZodOptional<z.ZodArray<z.ZodObject<{
752
+ id: z.ZodString;
753
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
754
+ $l10n: z.ZodString;
755
+ default: z.ZodOptional<z.ZodString>;
756
+ }, z.core.$strip>]>;
757
+ settings: z.ZodOptional<z.ZodObject<{
758
+ grouping: z.ZodOptional<z.ZodString>;
759
+ rowNumbers: z.ZodOptional<z.ZodBoolean>;
760
+ wrapRows: z.ZodOptional<z.ZodBoolean>;
761
+ showStats: z.ZodOptional<z.ZodBoolean>;
762
+ hiddenColumns: z.ZodOptional<z.ZodArray<z.ZodString>>;
763
+ columnOrder: z.ZodOptional<z.ZodArray<z.ZodString>>;
764
+ }, z.core.$strip>>;
765
+ filter: z.ZodOptional<z.ZodObject<{
766
+ conjunction: z.ZodEnum<{
767
+ and: "and";
768
+ or: "or";
769
+ }>;
770
+ rules: z.ZodArray<z.ZodObject<{
771
+ attributeId: z.ZodString;
772
+ condition: z.ZodEnum<{
773
+ contains: "contains";
774
+ "does-not-contain": "does-not-contain";
775
+ is: "is";
776
+ "is-not": "is-not";
777
+ gt: "gt";
778
+ gte: "gte";
779
+ lt: "lt";
780
+ lte: "lte";
781
+ "is-before": "is-before";
782
+ "is-after": "is-after";
783
+ "is-on-or-before": "is-on-or-before";
784
+ "is-on-or-after": "is-on-or-after";
785
+ "is-any-of": "is-any-of";
786
+ "is-none-of": "is-none-of";
787
+ "has-any-of": "has-any-of";
788
+ "has-all-of": "has-all-of";
789
+ "has-none-of": "has-none-of";
790
+ "is-empty": "is-empty";
791
+ "is-not-empty": "is-not-empty";
792
+ }>;
793
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString, z.ZodNumber, z.ZodArray<z.ZodString>]>>;
794
+ }, z.core.$strip>>;
795
+ groups: z.ZodOptional<z.ZodArray<z.ZodObject<{
796
+ conjunction: z.ZodEnum<{
797
+ and: "and";
798
+ or: "or";
799
+ }>;
800
+ rules: z.ZodArray<z.ZodObject<{
801
+ attributeId: z.ZodString;
802
+ condition: z.ZodEnum<{
803
+ contains: "contains";
804
+ "does-not-contain": "does-not-contain";
805
+ is: "is";
806
+ "is-not": "is-not";
807
+ gt: "gt";
808
+ gte: "gte";
809
+ lt: "lt";
810
+ lte: "lte";
811
+ "is-before": "is-before";
812
+ "is-after": "is-after";
813
+ "is-on-or-before": "is-on-or-before";
814
+ "is-on-or-after": "is-on-or-after";
815
+ "is-any-of": "is-any-of";
816
+ "is-none-of": "is-none-of";
817
+ "has-any-of": "has-any-of";
818
+ "has-all-of": "has-all-of";
819
+ "has-none-of": "has-none-of";
820
+ "is-empty": "is-empty";
821
+ "is-not-empty": "is-not-empty";
822
+ }>;
823
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString, z.ZodNumber, z.ZodArray<z.ZodString>]>>;
824
+ }, z.core.$strip>>;
825
+ }, z.core.$strict>>>;
826
+ }, z.core.$strict>>;
827
+ sorts: z.ZodOptional<z.ZodArray<z.ZodObject<{
828
+ attributeId: z.ZodString;
829
+ direction: z.ZodEnum<{
830
+ asc: "asc";
831
+ desc: "desc";
832
+ }>;
833
+ }, z.core.$strip>>>;
834
+ }, z.core.$strip>>>;
835
+ defaultActiveViewId: z.ZodOptional<z.ZodString>;
836
+ }, z.core.$strip>;
837
+ type ExtensionDataTableRendererRecord = z.infer<typeof extensionDataTableRendererRecordSchema>;
838
+ type WorkbenchExtensionDataTableRendererRecord = ExtensionDataTableRendererRecord;
839
+ //#endregion
840
+ //#region ../pstdio-api-contracts/src/extensions/kanban-renderer.d.ts
841
+ declare const extensionKanbanRendererRecordSchema: z.ZodObject<{
842
+ id: z.ZodString;
843
+ extensionId: z.ZodString;
844
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
845
+ $l10n: z.ZodString;
846
+ default: z.ZodOptional<z.ZodString>;
847
+ }, z.core.$strip>]>;
848
+ icon: z.ZodOptional<z.ZodString>;
849
+ resourceKind: z.ZodOptional<z.ZodString>;
850
+ refreshEventIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
851
+ emptyTitle: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
852
+ $l10n: z.ZodString;
853
+ default: z.ZodOptional<z.ZodString>;
854
+ }, z.core.$strip>]>>;
855
+ emptyDescription: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
856
+ $l10n: z.ZodString;
857
+ default: z.ZodOptional<z.ZodString>;
858
+ }, z.core.$strip>]>>;
859
+ toolbarActions: z.ZodOptional<z.ZodArray<z.ZodObject<{
860
+ id: z.ZodString;
861
+ label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
862
+ $l10n: z.ZodString;
863
+ default: z.ZodOptional<z.ZodString>;
864
+ }, z.core.$strip>]>;
865
+ icon: z.ZodOptional<z.ZodString>;
866
+ presentation: z.ZodOptional<z.ZodEnum<{
867
+ secondary: "secondary";
868
+ primary: "primary";
869
+ }>>;
870
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
871
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
872
+ type: z.ZodString;
873
+ description: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
874
+ $l10n: z.ZodString;
875
+ default: z.ZodOptional<z.ZodString>;
876
+ }, z.core.$strip>]>>;
877
+ }, z.core.$catchall<z.ZodUnknown>>>>;
878
+ submitLabel: z.ZodOptional<z.ZodString>;
879
+ when: z.ZodOptional<z.ZodString>;
880
+ disabled: z.ZodOptional<z.ZodBoolean>;
881
+ commandId: z.ZodString;
882
+ }, z.core.$strip>>>;
883
+ extensionInstanceId: z.ZodOptional<z.ZodString>;
884
+ attributes: z.ZodOptional<z.ZodArray<z.ZodObject<{
885
+ id: z.ZodString;
886
+ label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
887
+ $l10n: z.ZodString;
888
+ default: z.ZodOptional<z.ZodString>;
889
+ }, z.core.$strip>]>;
890
+ type: z.ZodDiscriminatedUnion<[z.ZodObject<{
891
+ kind: z.ZodLiteral<"enum">;
892
+ options: z.ZodArray<z.ZodObject<{
893
+ value: z.ZodString;
894
+ label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
895
+ $l10n: z.ZodString;
896
+ default: z.ZodOptional<z.ZodString>;
897
+ }, z.core.$strip>]>;
898
+ color: z.ZodOptional<z.ZodString>;
899
+ icon: z.ZodOptional<z.ZodNullable<z.ZodString>>;
900
+ }, z.core.$strip>>;
901
+ }, z.core.$strip>, z.ZodObject<{
902
+ kind: z.ZodLiteral<"enum-multi">;
903
+ options: z.ZodArray<z.ZodObject<{
904
+ value: z.ZodString;
905
+ label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
906
+ $l10n: z.ZodString;
907
+ default: z.ZodOptional<z.ZodString>;
908
+ }, z.core.$strip>]>;
909
+ color: z.ZodOptional<z.ZodString>;
910
+ icon: z.ZodOptional<z.ZodNullable<z.ZodString>>;
911
+ }, z.core.$strip>>;
912
+ }, z.core.$strip>, z.ZodObject<{
913
+ kind: z.ZodLiteral<"boolean">;
914
+ legacyValues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
915
+ }, z.core.$strip>, z.ZodObject<{
916
+ kind: z.ZodLiteral<"string">;
917
+ }, z.core.$strip>, z.ZodObject<{
918
+ kind: z.ZodLiteral<"date">;
919
+ }, z.core.$strip>, z.ZodObject<{
920
+ kind: z.ZodLiteral<"number">;
921
+ }, z.core.$strip>, z.ZodObject<{
922
+ kind: z.ZodLiteral<"user">;
923
+ }, z.core.$strip>], "kind">;
924
+ filterable: z.ZodOptional<z.ZodBoolean>;
925
+ groupable: z.ZodOptional<z.ZodBoolean>;
926
+ sortable: z.ZodOptional<z.ZodBoolean>;
927
+ displayable: z.ZodOptional<z.ZodBoolean>;
928
+ editable: z.ZodOptional<z.ZodBoolean>;
929
+ display: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
930
+ kind: z.ZodLiteral<"badge-list">;
931
+ itemsAttributeId: z.ZodString;
932
+ }, z.core.$strip>, z.ZodObject<{
933
+ kind: z.ZodString;
934
+ }, z.core.$loose>]>>;
935
+ }, z.core.$strip>>>;
936
+ queryHandlerId: z.ZodString;
937
+ attributeChangeHandlerId: z.ZodOptional<z.ZodString>;
938
+ moveHandlerId: z.ZodOptional<z.ZodString>;
939
+ schemaRefreshEventIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
940
+ columnActionHandlerId: z.ZodOptional<z.ZodString>;
941
+ createRow: z.ZodOptional<z.ZodObject<{
942
+ commandId: z.ZodString;
943
+ title: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
944
+ $l10n: z.ZodString;
945
+ default: z.ZodOptional<z.ZodString>;
946
+ }, z.core.$strip>]>>;
947
+ submitLabel: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
948
+ $l10n: z.ZodString;
949
+ default: z.ZodOptional<z.ZodString>;
950
+ }, z.core.$strip>]>>;
951
+ columnParam: z.ZodOptional<z.ZodString>;
952
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
953
+ type: z.ZodString;
954
+ description: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
955
+ $l10n: z.ZodString;
956
+ default: z.ZodOptional<z.ZodString>;
957
+ }, z.core.$strip>]>>;
958
+ }, z.core.$catchall<z.ZodUnknown>>>>;
959
+ attributesParam: z.ZodOptional<z.ZodString>;
960
+ attachments: z.ZodOptional<z.ZodObject<{
961
+ commandId: z.ZodString;
962
+ resourceParam: z.ZodString;
963
+ fileParam: z.ZodString;
964
+ }, z.core.$strip>>;
965
+ labels: z.ZodOptional<z.ZodObject<{
966
+ cancel: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
967
+ $l10n: z.ZodString;
968
+ default: z.ZodOptional<z.ZodString>;
969
+ }, z.core.$strip>]>>;
970
+ properties: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
971
+ $l10n: z.ZodString;
972
+ default: z.ZodOptional<z.ZodString>;
973
+ }, z.core.$strip>]>>;
974
+ submitError: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
975
+ $l10n: z.ZodString;
976
+ default: z.ZodOptional<z.ZodString>;
977
+ }, z.core.$strip>]>>;
978
+ removeFile: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
979
+ $l10n: z.ZodString;
980
+ default: z.ZodOptional<z.ZodString>;
981
+ }, z.core.$strip>]>>;
982
+ }, z.core.$strip>>;
983
+ }, z.core.$strip>>;
984
+ rowActions: z.ZodOptional<z.ZodArray<z.ZodObject<{
985
+ id: z.ZodString;
986
+ label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
987
+ $l10n: z.ZodString;
988
+ default: z.ZodOptional<z.ZodString>;
989
+ }, z.core.$strip>]>;
990
+ icon: z.ZodOptional<z.ZodString>;
991
+ commandId: z.ZodString;
992
+ destructive: z.ZodOptional<z.ZodBoolean>;
993
+ }, z.core.$strip>>>;
994
+ rowActivationHandlerId: z.ZodOptional<z.ZodString>;
995
+ defaultSettings: z.ZodOptional<z.ZodObject<{
996
+ viewMode: z.ZodOptional<z.ZodEnum<{
997
+ list: "list";
998
+ board: "board";
999
+ }>>;
1000
+ columnGrouping: z.ZodOptional<z.ZodString>;
1001
+ rowGrouping: z.ZodOptional<z.ZodString>;
1002
+ displayProperties: z.ZodOptional<z.ZodArray<z.ZodString>>;
1003
+ }, z.core.$strip>>;
1004
+ defaultFilter: z.ZodOptional<z.ZodObject<{
1005
+ conjunction: z.ZodEnum<{
1006
+ and: "and";
1007
+ or: "or";
1008
+ }>;
1009
+ rules: z.ZodArray<z.ZodObject<{
1010
+ attributeId: z.ZodString;
1011
+ condition: z.ZodEnum<{
1012
+ contains: "contains";
1013
+ "does-not-contain": "does-not-contain";
1014
+ is: "is";
1015
+ "is-not": "is-not";
1016
+ gt: "gt";
1017
+ gte: "gte";
1018
+ lt: "lt";
1019
+ lte: "lte";
1020
+ "is-before": "is-before";
1021
+ "is-after": "is-after";
1022
+ "is-on-or-before": "is-on-or-before";
1023
+ "is-on-or-after": "is-on-or-after";
1024
+ "is-any-of": "is-any-of";
1025
+ "is-none-of": "is-none-of";
1026
+ "has-any-of": "has-any-of";
1027
+ "has-all-of": "has-all-of";
1028
+ "has-none-of": "has-none-of";
1029
+ "is-empty": "is-empty";
1030
+ "is-not-empty": "is-not-empty";
1031
+ }>;
1032
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString, z.ZodNumber, z.ZodArray<z.ZodString>]>>;
1033
+ }, z.core.$strip>>;
1034
+ groups: z.ZodOptional<z.ZodArray<z.ZodObject<{
1035
+ conjunction: z.ZodEnum<{
1036
+ and: "and";
1037
+ or: "or";
1038
+ }>;
1039
+ rules: z.ZodArray<z.ZodObject<{
1040
+ attributeId: z.ZodString;
1041
+ condition: z.ZodEnum<{
1042
+ contains: "contains";
1043
+ "does-not-contain": "does-not-contain";
1044
+ is: "is";
1045
+ "is-not": "is-not";
1046
+ gt: "gt";
1047
+ gte: "gte";
1048
+ lt: "lt";
1049
+ lte: "lte";
1050
+ "is-before": "is-before";
1051
+ "is-after": "is-after";
1052
+ "is-on-or-before": "is-on-or-before";
1053
+ "is-on-or-after": "is-on-or-after";
1054
+ "is-any-of": "is-any-of";
1055
+ "is-none-of": "is-none-of";
1056
+ "has-any-of": "has-any-of";
1057
+ "has-all-of": "has-all-of";
1058
+ "has-none-of": "has-none-of";
1059
+ "is-empty": "is-empty";
1060
+ "is-not-empty": "is-not-empty";
1061
+ }>;
1062
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString, z.ZodNumber, z.ZodArray<z.ZodString>]>>;
1063
+ }, z.core.$strip>>;
1064
+ }, z.core.$strict>>>;
1065
+ }, z.core.$strict>>;
1066
+ defaultSorts: z.ZodOptional<z.ZodArray<z.ZodObject<{
1067
+ attributeId: z.ZodString;
1068
+ direction: z.ZodEnum<{
1069
+ asc: "asc";
1070
+ desc: "desc";
1071
+ }>;
1072
+ }, z.core.$strip>>>;
1073
+ defaultViews: z.ZodOptional<z.ZodArray<z.ZodObject<{
1074
+ id: z.ZodString;
1075
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1076
+ $l10n: z.ZodString;
1077
+ default: z.ZodOptional<z.ZodString>;
1078
+ }, z.core.$strip>]>;
1079
+ settings: z.ZodObject<{
1080
+ viewMode: z.ZodEnum<{
1081
+ list: "list";
1082
+ board: "board";
1083
+ }>;
1084
+ columnGrouping: z.ZodString;
1085
+ rowGrouping: z.ZodString;
1086
+ displayProperties: z.ZodArray<z.ZodString>;
1087
+ }, z.core.$strip>;
1088
+ filter: z.ZodObject<{
1089
+ conjunction: z.ZodEnum<{
1090
+ and: "and";
1091
+ or: "or";
1092
+ }>;
1093
+ rules: z.ZodArray<z.ZodObject<{
1094
+ attributeId: z.ZodString;
1095
+ condition: z.ZodEnum<{
1096
+ contains: "contains";
1097
+ "does-not-contain": "does-not-contain";
1098
+ is: "is";
1099
+ "is-not": "is-not";
1100
+ gt: "gt";
1101
+ gte: "gte";
1102
+ lt: "lt";
1103
+ lte: "lte";
1104
+ "is-before": "is-before";
1105
+ "is-after": "is-after";
1106
+ "is-on-or-before": "is-on-or-before";
1107
+ "is-on-or-after": "is-on-or-after";
1108
+ "is-any-of": "is-any-of";
1109
+ "is-none-of": "is-none-of";
1110
+ "has-any-of": "has-any-of";
1111
+ "has-all-of": "has-all-of";
1112
+ "has-none-of": "has-none-of";
1113
+ "is-empty": "is-empty";
1114
+ "is-not-empty": "is-not-empty";
1115
+ }>;
1116
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString, z.ZodNumber, z.ZodArray<z.ZodString>]>>;
1117
+ }, z.core.$strip>>;
1118
+ groups: z.ZodOptional<z.ZodArray<z.ZodObject<{
1119
+ conjunction: z.ZodEnum<{
1120
+ and: "and";
1121
+ or: "or";
1122
+ }>;
1123
+ rules: z.ZodArray<z.ZodObject<{
1124
+ attributeId: z.ZodString;
1125
+ condition: z.ZodEnum<{
1126
+ contains: "contains";
1127
+ "does-not-contain": "does-not-contain";
1128
+ is: "is";
1129
+ "is-not": "is-not";
1130
+ gt: "gt";
1131
+ gte: "gte";
1132
+ lt: "lt";
1133
+ lte: "lte";
1134
+ "is-before": "is-before";
1135
+ "is-after": "is-after";
1136
+ "is-on-or-before": "is-on-or-before";
1137
+ "is-on-or-after": "is-on-or-after";
1138
+ "is-any-of": "is-any-of";
1139
+ "is-none-of": "is-none-of";
1140
+ "has-any-of": "has-any-of";
1141
+ "has-all-of": "has-all-of";
1142
+ "has-none-of": "has-none-of";
1143
+ "is-empty": "is-empty";
1144
+ "is-not-empty": "is-not-empty";
1145
+ }>;
1146
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString, z.ZodNumber, z.ZodArray<z.ZodString>]>>;
1147
+ }, z.core.$strip>>;
1148
+ }, z.core.$strict>>>;
1149
+ }, z.core.$strict>;
1150
+ sorts: z.ZodArray<z.ZodObject<{
1151
+ attributeId: z.ZodString;
1152
+ direction: z.ZodEnum<{
1153
+ asc: "asc";
1154
+ desc: "desc";
1155
+ }>;
1156
+ }, z.core.$strip>>;
1157
+ }, z.core.$strip>>>;
1158
+ defaultActiveViewId: z.ZodOptional<z.ZodString>;
1159
+ hideToolbar: z.ZodOptional<z.ZodBoolean>;
1160
+ }, z.core.$strip>;
1161
+ declare const extensionCommandPaletteResourceRecordSchema: z.ZodObject<{
1162
+ id: z.ZodString;
1163
+ extensionId: z.ZodString;
1164
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1165
+ $l10n: z.ZodString;
1166
+ default: z.ZodOptional<z.ZodString>;
1167
+ }, z.core.$strip>]>;
1168
+ resourceKind: z.ZodOptional<z.ZodString>;
1169
+ queryHandlerId: z.ZodString;
1170
+ refreshEventIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1171
+ }, z.core.$strip>;
1172
+ type WorkbenchExtensionKanbanRendererRecord = z.infer<typeof extensionKanbanRendererRecordSchema>;
1173
+ type WorkbenchExtensionCommandPaletteResourceRecord$1 = z.infer<typeof extensionCommandPaletteResourceRecordSchema>;
1174
+ //#endregion
1175
+ //#region ../pstdio-api-contracts/src/extensions/keybindings.d.ts
1176
+ declare const extensionKeybindingRecordSchema: z.ZodObject<{
1177
+ id: z.ZodString;
1178
+ extensionId: z.ZodString;
1179
+ action: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodType<MetadataPageTarget, unknown, z.core.$ZodTypeInternals<MetadataPageTarget, unknown>>, z.ZodObject<{
1180
+ kind: z.ZodLiteral<"panel">;
1181
+ panel: z.ZodUnion<readonly [z.ZodObject<{
1182
+ extensionId: z.ZodString;
1183
+ kind: z.ZodLiteral<"placement">;
1184
+ id: z.ZodString;
1185
+ }, z.core.$strip>, z.ZodObject<{
1186
+ kind: z.ZodLiteral<"page-slot">;
1187
+ page: z.ZodObject<{
1188
+ extensionId: z.ZodString;
1189
+ kind: z.ZodLiteral<"page">;
1190
+ id: z.ZodString;
1191
+ }, z.core.$strip>;
1192
+ id: z.ZodString;
1193
+ }, z.core.$strip>]>;
1194
+ resource: z.ZodOptional<z.ZodObject<{
1195
+ shorthand: z.ZodOptional<z.ZodString>;
1196
+ type: z.ZodString;
1197
+ id: z.ZodString;
1198
+ projectId: z.ZodOptional<z.ZodString>;
1199
+ label: z.ZodOptional<z.ZodString>;
1200
+ icon: z.ZodOptional<z.ZodString>;
1201
+ extensionId: z.ZodOptional<z.ZodString>;
1202
+ metadata: z.ZodOptional<z.ZodType<JsonObject, unknown, z.core.$ZodTypeInternals<JsonObject, unknown>>>;
1203
+ }, z.core.$strip>>;
1204
+ open: z.ZodOptional<z.ZodEnum<{
1205
+ preview: "preview";
1206
+ pin: "pin";
1207
+ }>>;
1208
+ }, z.core.$strip>]>, z.ZodObject<{
1209
+ kind: z.ZodLiteral<"command">;
1210
+ target: z.ZodObject<{
1211
+ command: z.ZodObject<{
1212
+ extensionId: z.ZodString;
1213
+ kind: z.ZodLiteral<"command">;
1214
+ id: z.ZodString;
1215
+ }, z.core.$strip>;
1216
+ params: z.ZodOptional<z.ZodType<JsonObject, unknown, z.core.$ZodTypeInternals<JsonObject, unknown>>>;
1217
+ }, z.core.$strip>;
1218
+ }, z.core.$strip>, z.ZodObject<{
1219
+ kind: z.ZodLiteral<"href">;
1220
+ href: z.ZodString;
1221
+ }, z.core.$strip>, z.ZodObject<{
1222
+ kind: z.ZodLiteral<"compound">;
1223
+ targets: z.ZodArray<z.ZodUnion<readonly [z.ZodType<MetadataPageTarget, unknown, z.core.$ZodTypeInternals<MetadataPageTarget, unknown>>, z.ZodObject<{
1224
+ kind: z.ZodLiteral<"panel">;
1225
+ panel: z.ZodUnion<readonly [z.ZodObject<{
1226
+ extensionId: z.ZodString;
1227
+ kind: z.ZodLiteral<"placement">;
1228
+ id: z.ZodString;
1229
+ }, z.core.$strip>, z.ZodObject<{
1230
+ kind: z.ZodLiteral<"page-slot">;
1231
+ page: z.ZodObject<{
1232
+ extensionId: z.ZodString;
1233
+ kind: z.ZodLiteral<"page">;
1234
+ id: z.ZodString;
1235
+ }, z.core.$strip>;
1236
+ id: z.ZodString;
1237
+ }, z.core.$strip>]>;
1238
+ resource: z.ZodOptional<z.ZodObject<{
1239
+ shorthand: z.ZodOptional<z.ZodString>;
1240
+ type: z.ZodString;
1241
+ id: z.ZodString;
1242
+ projectId: z.ZodOptional<z.ZodString>;
1243
+ label: z.ZodOptional<z.ZodString>;
1244
+ icon: z.ZodOptional<z.ZodString>;
1245
+ extensionId: z.ZodOptional<z.ZodString>;
1246
+ metadata: z.ZodOptional<z.ZodType<JsonObject, unknown, z.core.$ZodTypeInternals<JsonObject, unknown>>>;
1247
+ }, z.core.$strip>>;
1248
+ open: z.ZodOptional<z.ZodEnum<{
1249
+ preview: "preview";
1250
+ pin: "pin";
1251
+ }>>;
1252
+ }, z.core.$strip>]>>;
1253
+ }, z.core.$strip>]>;
1254
+ key: z.ZodString;
1255
+ canonicalChord: z.ZodString;
1256
+ parsed: z.ZodObject<{
1257
+ key: z.ZodString;
1258
+ ctrl: z.ZodBoolean;
1259
+ shift: z.ZodBoolean;
1260
+ alt: z.ZodBoolean;
1261
+ meta: z.ZodBoolean;
1262
+ modifiers: z.ZodArray<z.ZodString>;
1263
+ }, z.core.$strip>;
1264
+ platformOverrides: z.ZodOptional<z.ZodObject<{
1265
+ mac: z.ZodOptional<z.ZodString>;
1266
+ linux: z.ZodOptional<z.ZodString>;
1267
+ win: z.ZodOptional<z.ZodString>;
1268
+ }, z.core.$strip>>;
1269
+ when: z.ZodOptional<z.ZodObject<{
1270
+ mode: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
1271
+ source: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1272
+ api: "api";
1273
+ automation: "automation";
1274
+ cli: "cli";
1275
+ "command-panel": "command-panel";
1276
+ dashboard: "dashboard";
1277
+ event: "event";
1278
+ schedule: "schedule";
1279
+ }>>>;
1280
+ viewId: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
1281
+ resourceType: z.ZodOptional<z.ZodArray<z.ZodString>>;
1282
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1283
+ }, z.core.$strip>>;
1284
+ }, z.core.$strip>;
1285
+ type ExtensionKeybindingRecord = z.infer<typeof extensionKeybindingRecordSchema>;
1286
+ //#endregion
1287
+ //#region ../pstdio-api-contracts/src/extensions/renderers.d.ts
1288
+ declare const extensionTreeRendererRecordSchema: z.ZodObject<{
1289
+ id: z.ZodString;
1290
+ extensionId: z.ZodString;
1291
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1292
+ $l10n: z.ZodString;
1293
+ default: z.ZodOptional<z.ZodString>;
1294
+ }, z.core.$strip>]>;
1295
+ icon: z.ZodOptional<z.ZodString>;
1296
+ resourceKind: z.ZodOptional<z.ZodString>;
1297
+ refreshEventIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1298
+ emptyTitle: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1299
+ $l10n: z.ZodString;
1300
+ default: z.ZodOptional<z.ZodString>;
1301
+ }, z.core.$strip>]>>;
1302
+ emptyDescription: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1303
+ $l10n: z.ZodString;
1304
+ default: z.ZodOptional<z.ZodString>;
1305
+ }, z.core.$strip>]>>;
1306
+ searchable: z.ZodOptional<z.ZodBoolean>;
1307
+ searchPlaceholder: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1308
+ $l10n: z.ZodString;
1309
+ default: z.ZodOptional<z.ZodString>;
1310
+ }, z.core.$strip>]>>;
1311
+ headerHandlerId: z.ZodOptional<z.ZodString>;
1312
+ bodyHandlerId: z.ZodString;
1313
+ childrenHandlerId: z.ZodOptional<z.ZodString>;
1314
+ moveHandlerId: z.ZodOptional<z.ZodString>;
1315
+ footerHandlerId: z.ZodOptional<z.ZodString>;
1316
+ defaultExpandedSectionIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1317
+ defaultExpandedNodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1318
+ }, z.core.$strip>;
1319
+ declare const extensionFileRendererRecordSchema: z.ZodObject<{
1320
+ id: z.ZodString;
1321
+ extensionId: z.ZodString;
1322
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1323
+ $l10n: z.ZodString;
1324
+ default: z.ZodOptional<z.ZodString>;
1325
+ }, z.core.$strip>]>;
1326
+ icon: z.ZodOptional<z.ZodString>;
1327
+ resourceKind: z.ZodOptional<z.ZodString>;
1328
+ refreshEventIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1329
+ emptyTitle: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1330
+ $l10n: z.ZodString;
1331
+ default: z.ZodOptional<z.ZodString>;
1332
+ }, z.core.$strip>]>>;
1333
+ emptyDescription: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1334
+ $l10n: z.ZodString;
1335
+ default: z.ZodOptional<z.ZodString>;
1336
+ }, z.core.$strip>]>>;
1337
+ loadHandlerId: z.ZodString;
1338
+ saveHandlerId: z.ZodOptional<z.ZodString>;
1339
+ }, z.core.$strip>;
1340
+ type WorkbenchExtensionFileRendererRecord = z.infer<typeof extensionFileRendererRecordSchema>;
1341
+ type WorkbenchExtensionTreeRendererRecord = z.infer<typeof extensionTreeRendererRecordSchema>;
1342
+ //#endregion
1343
+ //#region ../pstdio-api-contracts/src/extensions/settings.d.ts
1344
+ declare const extensionSettingDefinitionRecordSchema: z.ZodObject<{
1345
+ key: z.ZodString;
1346
+ extensionId: z.ZodString;
1347
+ type: z.ZodEnum<{
1348
+ string: "string";
1349
+ number: "number";
1350
+ boolean: "boolean";
1351
+ object: "object";
1352
+ array: "array";
1353
+ }>;
1354
+ scope: z.ZodEnum<{
1355
+ global: "global";
1356
+ project: "project";
1357
+ }>;
1358
+ default: z.ZodOptional<z.ZodUnknown>;
1359
+ enum: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
1360
+ options: z.ZodOptional<z.ZodObject<{
1361
+ commandId: z.ZodString;
1362
+ valueField: z.ZodString;
1363
+ labelField: z.ZodString;
1364
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1365
+ }, z.core.$strip>>;
1366
+ title: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1367
+ $l10n: z.ZodString;
1368
+ default: z.ZodOptional<z.ZodString>;
1369
+ }, z.core.$strip>]>>;
1370
+ description: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1371
+ $l10n: z.ZodString;
1372
+ default: z.ZodOptional<z.ZodString>;
1373
+ }, z.core.$strip>]>>;
1374
+ }, z.core.$strip>;
1375
+ declare const extensionSettingsSectionRecordSchema: z.ZodObject<{
1376
+ id: z.ZodString;
1377
+ extensionId: z.ZodString;
1378
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1379
+ $l10n: z.ZodString;
1380
+ default: z.ZodOptional<z.ZodString>;
1381
+ }, z.core.$strip>]>;
1382
+ scope: z.ZodOptional<z.ZodEnum<{
1383
+ global: "global";
1384
+ project: "project";
1385
+ }>>;
1386
+ order: z.ZodOptional<z.ZodNumber>;
1387
+ }, z.core.$strip>;
1388
+ type ExtensionSettingDefinitionRecord = z.infer<typeof extensionSettingDefinitionRecordSchema>;
1389
+ type ExtensionSettingsSectionRecord = z.infer<typeof extensionSettingsSectionRecordSchema>;
73
1390
  //#endregion
74
1391
  //#region src/core/shared/contributions/metadata.d.ts
75
1392
  type ContributionSource = "module" | "extension";
@@ -84,326 +1401,56 @@ interface RegisteredContributionMetadata {
84
1401
  priority: number;
85
1402
  }
86
1403
  //#endregion
87
- //#region src/core/registries/resources/resource-hierarchy.d.ts
88
- interface WorkbenchViewHierarchyNode {
89
- type: "view";
90
- viewId: string;
91
- label?: string;
92
- icon?: string;
1404
+ //#region src/core/shared/disposable.d.ts
1405
+ interface Disposable {
1406
+ dispose(): void;
93
1407
  }
94
- type WorkbenchHierarchyNode = ResourceRef$1 | WorkbenchViewHierarchyNode;
95
- declare const isWorkbenchViewHierarchyNode: (node: WorkbenchHierarchyNode) => node is WorkbenchViewHierarchyNode;
96
- interface ResourceHierarchyProvider {
97
- id: string;
98
- priority?: number;
99
- canResolve(resource: ResourceRef$1): boolean;
100
- getParent(resource: ResourceRef$1): WorkbenchHierarchyNode | undefined;
1408
+ //#endregion
1409
+ //#region src/core/shared/store/workbench-store.d.ts
1410
+ type WorkbenchStoreSelector<TState, TValue> = (state: TState) => TValue;
1411
+ type WorkbenchStoreListener<TState> = (state: TState, previousState: TState) => void;
1412
+ type WorkbenchStoreSelectorListener<TValue> = (value: TValue, previousValue: TValue) => void;
1413
+ interface WorkbenchStore<TState> {
1414
+ getState(): TState;
1415
+ getInitialState(): TState;
1416
+ subscribe(listener: WorkbenchStoreListener<TState>): () => void;
1417
+ subscribeSelector<TValue>(selector: WorkbenchStoreSelector<TState, TValue>, listener: WorkbenchStoreSelectorListener<TValue>, options?: {
1418
+ equalityFn?: (left: TValue, right: TValue) => boolean;
1419
+ fireImmediately?: boolean;
1420
+ }): () => void;
101
1421
  }
102
- type ResolvedResourceHierarchyProvider = Required<ResourceHierarchyProvider>;
103
- declare const resourceHierarchyCycleCode = "resource_hierarchy_cycle";
104
- interface ResourceHierarchyCycle {
105
- code: typeof resourceHierarchyCycleCode;
106
- path: WorkbenchHierarchyNode[];
107
- repeatedUri: string;
1422
+ interface InternalWorkbenchStore<TState> extends WorkbenchStore<TState> {
1423
+ setState: NamedSet<TState>;
1424
+ api: StoreApi<TState>;
108
1425
  }
109
1426
  //#endregion
110
- //#region src/core/registries/resources/resource-registry.d.ts
111
- declare const workbenchResourceTypeContextKey = "workbench.resource.type";
112
- declare const workbenchResourceOwnerContextKey = "workbench.resource.extensionId";
113
- declare const workbenchResourceIdContextKey = "workbench.resource.id";
114
- declare const workbenchResourceMetadataContextKey: (key: string) => string;
115
- declare const workbenchSelectionResourceKeyMetadataKey = "workbench.selectionResourceKey";
116
- declare const createWorkbenchResourceContextValues: (resource: ResourceRef | undefined) => Record<string, ContextKeyValue>;
117
- declare const createWorkbenchSelectionResourceMetadata: (resource: ResourceRef) => {
118
- "workbench.selectionResourceKey": string;
1427
+ //#region src/core/registries/layout/layout-regions.d.ts
1428
+ declare const workbenchRegions: readonly ["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"];
1429
+ type WorkbenchRegion = (typeof workbenchRegions)[number];
1430
+ declare const workbenchPanelRegions: readonly ["main", "secondary", "side"];
1431
+ type WorkbenchPanelRegion = (typeof workbenchPanelRegions)[number];
1432
+ type WorkbenchPanelMenuSide = "left" | "right";
1433
+ declare const workbenchPanelMenuRegions: {
1434
+ readonly main: {
1435
+ readonly left: "main-left-menu";
1436
+ readonly right: "main-right-menu";
1437
+ };
1438
+ readonly secondary: {
1439
+ readonly left: "secondary-left-menu";
1440
+ readonly right: "secondary-right-menu";
1441
+ };
1442
+ readonly side: {
1443
+ readonly left: "side-left-menu";
1444
+ readonly right: "side-right-menu";
1445
+ };
119
1446
  };
120
- declare const getWorkbenchSelectionResourceKeys: (resource: ResourceRef | undefined) => string[];
121
- interface ResourceKindContribution {
122
- kind: string;
123
- label: string;
124
- icon?: string;
125
- }
126
- interface RegisteredResourceKind extends ResourceKindContribution, RegisteredContributionMetadata {}
127
- interface ResourceBrowseEntry {
128
- resource: ResourceRef;
129
- searchText?: string;
130
- description?: string;
131
- group?: string;
132
- order?: number;
133
- activate?: (resource: ResourceRef) => unknown | Promise<unknown>;
134
- }
135
- interface ResourceListContext {
136
- primary?: ResourceRef;
137
- }
138
- interface ResourceProvider {
139
- id: string;
140
- kind: string;
141
- list(query: string, context: ResourceListContext): readonly ResourceBrowseEntry[];
142
- }
143
- interface ResourceRegistryStoreState {
144
- kinds: Record<string, RegisteredResourceKind>;
145
- providers: Record<string, ResourceProvider>;
146
- hierarchyProviders: Record<string, ResolvedResourceHierarchyProvider>;
147
- }
148
- interface ResourceRegistry {
149
- preview: ReturnType<typeof createResourcePreview>;
150
- removed(resource: ResourceRef): void;
151
- onWillRemove(listener: (resource: ResourceRef) => readonly PlacementIdentity[]): Disposable;
152
- store: WorkbenchStore<ResourceRegistryStoreState>;
153
- registerKind(kind: ResourceKindContribution, metadata?: ContributionMetadata): Disposable;
154
- getKind(kind: string): RegisteredResourceKind | undefined;
155
- listKinds(): RegisteredResourceKind[];
156
- registerProvider(provider: ResourceProvider): Disposable;
157
- listProviders(): ResourceProvider[];
158
- listResources(query: string): readonly ResourceBrowseEntry[];
159
- registerHierarchyProvider(provider: ResourceHierarchyProvider): Disposable;
160
- listHierarchyProviders(): ResolvedResourceHierarchyProvider[];
161
- walkHierarchy(resource: ResourceRef | undefined): WorkbenchHierarchyNode[];
162
- onDidDetectHierarchyCycle(listener: (cycle: ResourceHierarchyCycle) => void): Disposable;
163
- }
164
- //#endregion
165
- //#region src/core/controllers/breadcrumbs/breadcrumb-registry.d.ts
166
- interface WorkbenchBreadcrumbItem {
167
- title: unknown;
168
- icon?: string;
169
- indicator?: "session-status";
170
- /** The crumb leaves the project navigation: it opens a Sidenav level or a mode that replaces the Sidenav. */
171
- startsLevel?: boolean;
172
- url?: string;
173
- onClick?: () => void;
174
- resource?: ResourceRef$1;
175
- }
176
- type WorkbenchBreadcrumbChangeListener = () => void;
177
- interface WorkbenchBreadcrumbState {
178
- items: WorkbenchBreadcrumbItem[] | undefined;
179
- }
180
- interface WorkbenchBreadcrumbController {
181
- store: WorkbenchStore<WorkbenchBreadcrumbState>;
182
- setItems(items: WorkbenchBreadcrumbItem[]): Disposable;
183
- clearItems(): void;
184
- getItems(): WorkbenchBreadcrumbItem[] | undefined;
185
- onDidChange(listener: WorkbenchBreadcrumbChangeListener): Disposable;
186
- }
187
- //#endregion
188
- //#region src/core/registries/commands/command-registry.d.ts
189
- interface WorkbenchCommandExecutionError {
190
- commandId: string;
191
- args: unknown;
192
- error: unknown;
193
- }
194
- type WorkbenchCommandExecutionErrorListener = (event: WorkbenchCommandExecutionError) => void;
195
- interface WorkbenchCommandExecutionContext {
196
- resource?: ResourceRef$1;
197
- signal?: AbortSignal;
198
- source?: "panel-add";
199
- }
200
- interface CommandParamOption {
201
- label: string;
202
- value: string;
203
- icon?: string;
204
- }
205
- interface CommandParamOptionSource {
206
- commandId: string;
207
- valueField: string;
208
- labelField: string;
209
- params?: Record<string, unknown>;
210
- }
211
- interface CommandParamDescriptor {
212
- type: string;
213
- label?: string;
214
- description?: string;
215
- required?: boolean;
216
- defaultValue?: unknown;
217
- options?: CommandParamOption[] | CommandParamOptionSource;
218
- allowCustomValues?: boolean;
219
- templateType?: string;
220
- resourceType?: string;
221
- /** Workspace provider ids a `workspace` param may offer. */
222
- providers?: string[];
223
- accept?: string;
224
- multiple?: boolean;
225
- metadata?: Record<string, unknown>;
226
- resolvedFrom?: "resource";
227
- }
228
- type CommandParamSchema = Record<string, CommandParamDescriptor>;
229
- interface Command {
230
- id: string;
231
- label: string;
232
- category?: string;
233
- description?: string;
234
- icon?: string;
235
- when?: string;
236
- params?: CommandParamSchema;
237
- resourceMutation?: import("@pstdio/sdk/extensions").CommandDefinition["resourceMutation"];
238
- }
239
- interface CommandHandler<TArgs = unknown, TResult = unknown> {
240
- prepareArgs?(args: TArgs, context?: WorkbenchCommandExecutionContext, onArgsChange?: (args: TArgs) => void): TArgs | Promise<TArgs>;
241
- execute(args: TArgs, context?: WorkbenchCommandExecutionContext): TResult | Promise<TResult>;
242
- isEnabled?(args: TArgs): boolean;
243
- isVisible?(args: TArgs): boolean;
244
- isToggled?(args: TArgs): boolean;
245
- }
246
- interface RegisteredCommand extends RegisteredContributionMetadata {
247
- command: Command;
248
- handler: CommandHandler;
249
- }
250
- interface CommandRegistryStoreState {
251
- commands: Record<string, RegisteredCommand>;
252
- }
253
- interface CommandRegistry {
254
- store: WorkbenchStore<CommandRegistryStoreState>;
255
- registerCommand<TArgs = unknown, TResult = unknown>(command: Command, handler: CommandHandler<TArgs, TResult>, metadata?: ContributionMetadata): Disposable;
256
- getCommand(id: string): RegisteredCommand | undefined;
257
- listCommands(): RegisteredCommand[];
258
- isCommandEnabled(id: string, args?: unknown): boolean;
259
- isCommandVisible(id: string, args?: unknown): boolean;
260
- isCommandToggled(id: string, args?: unknown): boolean;
261
- prepareCommandArgs(id: string, args: unknown, context?: WorkbenchCommandExecutionContext, onArgsChange?: (args: unknown) => void): Promise<unknown>;
262
- executeCommand(id: string, args?: unknown, context?: WorkbenchCommandExecutionContext): Promise<unknown>;
263
- onDidExecuteError(listener: WorkbenchCommandExecutionErrorListener): Disposable;
264
- }
265
- //#endregion
266
- //#region src/core/controllers/command-palette/command-palette-controller.d.ts
267
- type WorkbenchCommandPaletteChangeListener = (open: boolean) => void;
268
- type WorkbenchCommandPaletteView = "main" | "theme";
269
- interface WorkbenchCommandParamsRequest {
270
- record: {
271
- command: {
272
- id: string;
273
- label: string;
274
- params?: CommandParamSchema;
275
- resourceMutation?: import("@pstdio/sdk/extensions").CommandDefinition["resourceMutation"];
276
- };
277
- };
278
- label: string;
279
- args?: unknown;
280
- context?: WorkbenchCommandExecutionContext;
281
- }
282
- interface WorkbenchCommandConfirmation {
283
- label: string;
284
- description?: string;
285
- buttonLabel?: string;
286
- onConfirm?: () => Promise<void>;
287
- resolve(confirmed: boolean): void;
288
- }
289
- interface WorkbenchCommandPaletteState {
290
- confirmation: WorkbenchCommandConfirmation | null;
291
- open: boolean;
292
- view: WorkbenchCommandPaletteView;
293
- initialQuery: string;
294
- paramsRequest: WorkbenchCommandParamsRequest | null;
295
- }
296
- interface WorkbenchCommandPaletteOpenInput {
297
- view?: WorkbenchCommandPaletteView;
298
- initialQuery?: string;
299
- }
300
- interface WorkbenchCommandPaletteController {
301
- store: WorkbenchStore<WorkbenchCommandPaletteState>;
302
- isOpen(): boolean;
303
- getView(): WorkbenchCommandPaletteView;
304
- getInitialQuery(): string;
305
- getParamsRequest(): WorkbenchCommandParamsRequest | null;
306
- open(input?: WorkbenchCommandPaletteOpenInput): void;
307
- close(): void;
308
- toggle(): void;
309
- requestConfirmation(label: string, options?: Pick<WorkbenchCommandConfirmation, "description" | "buttonLabel" | "onConfirm">): Promise<boolean>;
310
- requestParams(request: WorkbenchCommandParamsRequest): void;
311
- clearParams(): void;
312
- onDidChange(listener: WorkbenchCommandPaletteChangeListener): Disposable;
313
- }
314
- //#endregion
315
- //#region src/core/registries/navigation/navigation-registry.d.ts
316
- /** Core-only panel ref for host-owned shell placements. Extensions cannot address them. */
317
- interface ShellPlacementRef {
318
- kind: "shell-placement";
319
- id: string;
320
- }
321
- interface NavigationTargetShellPanel {
322
- kind: "panel";
323
- panel: ShellPlacementRef;
324
- resource?: NavigationTargetPanel["resource"];
325
- open?: NavigationTargetPanel["open"];
326
- title?: string;
327
- }
328
- type NavigationTargetPanel$1 = NavigationTargetPanel | NavigationTargetShellPanel;
329
- type NavigationTargetPage$1 = NavigationTargetPage;
330
- type DistributiveOmit<T, K extends PropertyKey> = T extends unknown ? Omit<T, K> : never;
331
- interface NavigationTargetCommand {
332
- kind: "command";
333
- commandId: string;
334
- args?: unknown;
335
- }
336
- interface NavigationTargetHref {
337
- kind: "href";
338
- href: string;
339
- }
340
- type NavigationTargetItem = NavigationTargetPage$1 | NavigationTargetPanel$1 | NavigationTargetCommand | NavigationTargetHref;
341
- interface NavigationTargetCompound {
342
- kind: "compound";
343
- targets: readonly (NavigationTargetPage$1 | NavigationTargetPanel$1)[];
344
- }
345
- type NavigationTarget$1 = NavigationTargetItem | NavigationTargetCompound;
346
- interface NavigationParser {
347
- id: string;
348
- priority?: number;
349
- canParse(location: string): boolean;
350
- parse(location: string): NavigationTarget$1;
351
- }
352
- type RegisteredNavigationParser = Omit<NavigationParser, "priority"> & RegisteredContributionMetadata;
353
- interface NavigationDispatcherContext {
354
- canOpenPanel?(target: NavigationTargetPanel$1): boolean;
355
- canExecuteCommand?(commandId: string): boolean;
356
- prepareNavigation?(targets: readonly (NavigationTargetPage$1 | NavigationTargetPanel$1)[]): {
357
- commit(): unknown;
358
- };
359
- openPanelTarget?(target: NavigationTargetPanel$1): unknown;
360
- openPageTarget?(target: NavigationTargetPage$1): unknown;
361
- executeCommand(commandId: string, args?: unknown): Promise<unknown> | unknown;
362
- openHref?(href: string): Promise<unknown> | unknown;
363
- }
364
- interface NavigationRegistryStoreState {
365
- parsers: Record<string, RegisteredNavigationParser>;
366
- }
367
- interface NavigationRegistry {
368
- store: WorkbenchStore<NavigationRegistryStoreState>;
369
- registerParser(parser: NavigationParser, metadata?: ContributionMetadata): Disposable;
370
- listParsers(): RegisteredNavigationParser[];
371
- resolveLocation(location: string): NavigationTarget$1;
372
- openTarget(target: NavigationTarget$1): Promise<readonly unknown[]>;
373
- /** Opens a page location through the shared executor. */
374
- openPage(target: Omit<NavigationTargetPage$1, "kind">): Promise<readonly unknown[]>;
375
- /** Opens or activates an owned panel through the shared executor. */
376
- openPanel(target: DistributiveOmit<NavigationTargetPanel$1, "kind">): Promise<readonly unknown[]>;
377
- navigate(location: string): Promise<readonly unknown[]>;
378
- }
379
- //#endregion
380
- //#region src/core/registries/layout/layout-regions.d.ts
381
- declare const workbenchRegions: readonly ["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"];
382
- type WorkbenchRegion = (typeof workbenchRegions)[number];
383
- declare const workbenchPanelRegions: readonly ["main", "secondary", "side"];
384
- type WorkbenchPanelRegion = (typeof workbenchPanelRegions)[number];
385
- type WorkbenchPanelMenuSide = "left" | "right";
386
- declare const workbenchPanelMenuRegions: {
387
- readonly main: {
388
- readonly left: "main-left-menu";
389
- readonly right: "main-right-menu";
390
- };
391
- readonly secondary: {
392
- readonly left: "secondary-left-menu";
393
- readonly right: "secondary-right-menu";
394
- };
395
- readonly side: {
396
- readonly left: "side-left-menu";
397
- readonly right: "side-right-menu";
398
- };
399
- };
400
- type WorkbenchPanelMenuRegion = (typeof workbenchPanelMenuRegions)[WorkbenchPanelRegion][WorkbenchPanelMenuSide];
401
- //#endregion
402
- //#region src/core/registries/layout/layout-types.d.ts
403
- interface WorkbenchRegionSize {
404
- defaultPx?: number;
405
- minPx?: number;
406
- maxPx?: number;
1447
+ type WorkbenchPanelMenuRegion = (typeof workbenchPanelMenuRegions)[WorkbenchPanelRegion][WorkbenchPanelMenuSide];
1448
+ //#endregion
1449
+ //#region src/core/registries/layout/layout-types.d.ts
1450
+ interface WorkbenchRegionSize {
1451
+ defaultPx?: number;
1452
+ minPx?: number;
1453
+ maxPx?: number;
407
1454
  }
408
1455
  /** Region-level layout policy owned by the active mode or the host, never by a placement. */
409
1456
  type WorkbenchRegionSettings = ModeRegionSettings;
@@ -456,6 +1503,7 @@ interface WorkbenchTabMenuRow {
456
1503
  }
457
1504
  interface WorkbenchTabMenuGroup {
458
1505
  id: string;
1506
+ label?: string;
459
1507
  rows: readonly WorkbenchTabMenuRow[];
460
1508
  }
461
1509
  interface WorkbenchTabSnapshot {
@@ -500,176 +1548,546 @@ interface WidgetContribution {
500
1548
  config?: unknown;
501
1549
  canOpen?(resource: ResourceRef$1): boolean;
502
1550
  }
503
- interface WorkbenchPanelMenuDefinition {
1551
+ interface WorkbenchPanelMenuDefinition {
1552
+ id: string;
1553
+ title: string;
1554
+ icon?: string;
1555
+ side: WorkbenchPanelMenuSide;
1556
+ singleton?: boolean;
1557
+ reuse?: WorkbenchPanelReusePolicy;
1558
+ mountStrategy?: WorkbenchPanelMountStrategy;
1559
+ hiddenByDefault?: boolean;
1560
+ regionSize?: WorkbenchRegionSize;
1561
+ regionCollapsible?: boolean;
1562
+ headerBorderBottom?: boolean;
1563
+ rendererId: string;
1564
+ priority?: number;
1565
+ config?: unknown;
1566
+ }
1567
+ interface WorkbenchPanelContribution {
1568
+ id: string;
1569
+ title: string;
1570
+ icon?: string;
1571
+ region: WorkbenchRegion;
1572
+ fallbackRegion?: WorkbenchRegion;
1573
+ rendererId: string;
1574
+ singleton?: boolean;
1575
+ reuse?: WorkbenchPanelReusePolicy;
1576
+ mountStrategy?: WorkbenchPanelMountStrategy;
1577
+ closable?: boolean;
1578
+ hiddenByDefault?: boolean;
1579
+ regionSize?: WorkbenchRegionSize;
1580
+ regionCollapsible?: boolean;
1581
+ headerBorderBottom?: boolean;
1582
+ resourceKinds?: string[];
1583
+ eligibleLocations?: WorkbenchLocationEligibility;
1584
+ priority?: number;
1585
+ openCommand?: WorkbenchCommandTarget;
1586
+ tab?: WorkbenchPanelTab;
1587
+ config?: unknown;
1588
+ canOpen?(resource: ResourceRef$1): boolean;
1589
+ ownerId?: string;
1590
+ source?: ContributionSource;
1591
+ panelMenus?: readonly WorkbenchPanelMenuDefinition[];
1592
+ }
1593
+ type WorkbenchPanelMenuContribution = Omit<WidgetContribution, "region" | "fallbackRegion"> & {
1594
+ region: WorkbenchPanelMenuRegion;
1595
+ fallbackRegion?: WorkbenchPanelMenuRegion;
1596
+ };
1597
+ type RegisteredWidgetContribution = Omit<WidgetContribution, "priority" | "singleton" | "reuse"> & {
1598
+ ownedPanelMenuIds?: readonly string[];
1599
+ singleton: boolean;
1600
+ reuse: WidgetReusePolicy;
1601
+ } & RegisteredContributionMetadata;
1602
+ interface PlaceholderContribution {
1603
+ id: string;
1604
+ title: string;
1605
+ region: WorkbenchRegion;
1606
+ rendererId: string;
1607
+ regionSize?: WorkbenchRegionSize;
1608
+ regionCollapsible?: boolean;
1609
+ config?: unknown;
1610
+ priority?: number;
1611
+ }
1612
+ type RegisteredPlaceholderContribution = Omit<PlaceholderContribution, "priority"> & RegisteredContributionMetadata;
1613
+ interface WorkbenchWidgetPlacement {
1614
+ /** Page identity that opened this tab automatically. Manual opening or pinning clears it. */
1615
+ relatedSource?: string;
1616
+ widgetId: string;
1617
+ contributionId: string;
1618
+ placementIdentity?: PlacementIdentity;
1619
+ viewId?: string;
1620
+ ownerId?: string;
1621
+ source?: ContributionSource;
1622
+ resource?: ResourceRef$1;
1623
+ section?: FileRendererSectionTarget;
1624
+ resourceKey?: string;
1625
+ ownerResourceKey?: string;
1626
+ title?: string;
1627
+ pinned?: boolean;
1628
+ closable?: boolean;
1629
+ mountStrategy?: WidgetMountStrategy;
1630
+ hiddenByDefault?: boolean;
1631
+ tabRetention?: WorkbenchTabRetention;
1632
+ tab?: WorkbenchWidgetTab;
1633
+ role?: WorkbenchWidgetRole;
1634
+ }
1635
+ interface WorkbenchPanelInstance {
1636
+ instanceId: string;
1637
+ panelId: string;
1638
+ placementIdentity?: PlacementIdentity;
1639
+ viewId?: string;
1640
+ ownerId?: string;
1641
+ source?: ContributionSource;
1642
+ resource?: ResourceRef$1;
1643
+ section?: FileRendererSectionTarget;
1644
+ resourceKey?: string;
1645
+ ownerResourceKey?: string;
1646
+ title?: string;
1647
+ pinned?: boolean;
1648
+ closable: boolean;
1649
+ mountStrategy?: WorkbenchPanelMountStrategy;
1650
+ hiddenByDefault?: boolean;
1651
+ tabRetention?: WorkbenchTabRetention;
1652
+ tab?: WorkbenchPanelTab;
1653
+ }
1654
+ type WorkbenchSidePanelMode = "floating" | "closed" | "attached";
1655
+ interface WorkbenchRegionState {
1656
+ id: WorkbenchRegion;
1657
+ visible: boolean;
1658
+ size?: number;
1659
+ widgets: WorkbenchWidgetPlacement[];
1660
+ /** Page snapshots retain mixed-owner order without storing shared mode content. Consumed on restore. */
1661
+ savedWidgetOrder?: string[];
1662
+ activeWidgetId?: string;
1663
+ /** Side region only: how the open Side Panel is shown. `visible` says whether it is open. */
1664
+ presentation?: Exclude<WorkbenchSidePanelMode, "closed">;
1665
+ }
1666
+ interface WorkbenchLayout {
1667
+ regions: Record<WorkbenchRegion, WorkbenchRegionState>;
1668
+ locationSubPanelSelections?: Record<string, Partial<Record<WorkbenchPanelRegion, string>>>;
1669
+ activeWidgetId?: string;
1670
+ activeLocationWidgetId?: string;
1671
+ activeResourceKey?: string;
1672
+ }
1673
+ interface WorkbenchLayoutStoreState {
1674
+ layout: WorkbenchLayout;
1675
+ widgets: Record<string, RegisteredWidgetContribution>;
1676
+ placeholders: Partial<Record<WorkbenchRegion, RegisteredPlaceholderContribution>>;
1677
+ }
1678
+ interface OpenWidgetInput {
1679
+ viewId?: string | null;
1680
+ resource?: ResourceRef$1 | null;
1681
+ title?: string;
1682
+ region?: WorkbenchRegion;
1683
+ role?: WorkbenchWidgetRole;
1684
+ ownerId?: string;
1685
+ source?: ContributionSource;
1686
+ pinned?: boolean;
1687
+ closable?: boolean;
1688
+ mountStrategy?: WidgetMountStrategy;
1689
+ hiddenByDefault?: boolean;
1690
+ tabRetention?: WorkbenchTabRetention;
1691
+ tabPosition?: WorkbenchTabPosition;
1692
+ tab?: WorkbenchWidgetTab;
1693
+ replaceActive?: boolean;
1694
+ replaceWidgetId?: string;
1695
+ }
1696
+ type WorkbenchPanelOpenStrategy = {
1697
+ kind: "persistent";
1698
+ position?: WorkbenchTabPosition;
1699
+ } | {
1700
+ kind: "replace-active";
1701
+ } | {
1702
+ kind: "replace-panel";
1703
+ instanceId: string;
1704
+ retention?: WorkbenchTabRetention;
1705
+ } | {
1706
+ kind: "preview";
1707
+ position?: WorkbenchTabPosition;
1708
+ };
1709
+ interface OpenWorkbenchPanelInput {
1710
+ /** Set by the view registry. Low-level layout callers should leave this undefined. */
1711
+ viewId?: string | null;
1712
+ /** `null` explicitly clears an existing singleton placement's resource binding. */
1713
+ resource?: ResourceRef$1 | null;
1714
+ title?: string;
1715
+ region?: WorkbenchRegion;
1716
+ role?: WorkbenchWidgetRole;
1717
+ pinned?: boolean;
1718
+ closable?: boolean;
1719
+ mountStrategy?: WorkbenchPanelMountStrategy;
1720
+ hiddenByDefault?: boolean;
1721
+ tab?: WorkbenchPanelTab;
1722
+ strategy?: WorkbenchPanelOpenStrategy;
1723
+ }
1724
+ //#endregion
1725
+ //#region src/core/registries/navigation/navigation-registry.d.ts
1726
+ /** Core-only panel ref for host-owned shell placements. Extensions cannot address them. */
1727
+ interface ShellPlacementRef {
1728
+ kind: "shell-placement";
1729
+ id: string;
1730
+ }
1731
+ interface NavigationTargetShellPanel {
1732
+ kind: "panel";
1733
+ panel: ShellPlacementRef;
1734
+ resource?: NavigationTargetPanel["resource"];
1735
+ open?: NavigationTargetPanel["open"];
1736
+ title?: string;
1737
+ region?: WorkbenchPanelRegion;
1738
+ }
1739
+ type NavigationTargetPanel$1 = (NavigationTargetPanel & {
1740
+ region?: WorkbenchPanelRegion;
1741
+ }) | NavigationTargetShellPanel;
1742
+ type NavigationTargetPage$1 = NavigationTargetPage;
1743
+ type DistributiveOmit<T, K extends PropertyKey> = T extends unknown ? Omit<T, K> : never;
1744
+ interface NavigationTargetCommand {
1745
+ kind: "command";
1746
+ commandId: string;
1747
+ args?: unknown;
1748
+ region?: WorkbenchPanelRegion;
1749
+ }
1750
+ interface NavigationTargetHref {
1751
+ kind: "href";
1752
+ href: string;
1753
+ }
1754
+ type NavigationTargetItem = NavigationTargetPage$1 | NavigationTargetPanel$1 | NavigationTargetCommand | NavigationTargetHref;
1755
+ interface NavigationTargetCompound {
1756
+ kind: "compound";
1757
+ targets: readonly (NavigationTargetPage$1 | NavigationTargetPanel$1)[];
1758
+ }
1759
+ type NavigationTarget$1 = NavigationTargetItem | NavigationTargetCompound;
1760
+ interface NavigationParser {
1761
+ id: string;
1762
+ priority?: number;
1763
+ canParse(location: string): boolean;
1764
+ parse(location: string): NavigationTarget$1;
1765
+ }
1766
+ type RegisteredNavigationParser = Omit<NavigationParser, "priority"> & RegisteredContributionMetadata;
1767
+ interface NavigationDispatcherContext {
1768
+ canOpenPanel?(target: NavigationTargetPanel$1): boolean;
1769
+ canExecuteCommand?(commandId: string): boolean;
1770
+ prepareNavigation?(targets: readonly (NavigationTargetPage$1 | NavigationTargetPanel$1)[]): {
1771
+ commit(): unknown;
1772
+ };
1773
+ openPanelTarget?(target: NavigationTargetPanel$1): unknown;
1774
+ openPageTarget?(target: NavigationTargetPage$1): unknown;
1775
+ executeCommand(commandId: string, args?: unknown, region?: WorkbenchPanelRegion): Promise<unknown> | unknown;
1776
+ openHref?(href: string): Promise<unknown> | unknown;
1777
+ }
1778
+ interface NavigationRegistryStoreState {
1779
+ parsers: Record<string, RegisteredNavigationParser>;
1780
+ }
1781
+ interface NavigationRegistry {
1782
+ store: WorkbenchStore<NavigationRegistryStoreState>;
1783
+ registerParser(parser: NavigationParser, metadata?: ContributionMetadata): Disposable;
1784
+ listParsers(): RegisteredNavigationParser[];
1785
+ resolveLocation(location: string): NavigationTarget$1;
1786
+ openTarget(target: NavigationTarget$1): Promise<readonly unknown[]>;
1787
+ /** Opens a page location through the shared executor. */
1788
+ openPage(target: Omit<NavigationTargetPage$1, "kind">): Promise<readonly unknown[]>;
1789
+ /** Opens or activates an owned panel through the shared executor. */
1790
+ openPanel(target: DistributiveOmit<NavigationTargetPanel$1, "kind">): Promise<readonly unknown[]>;
1791
+ navigate(location: string): Promise<readonly unknown[]>;
1792
+ onDidOpenTarget(listener: (target: NavigationTarget$1) => void): Disposable;
1793
+ }
1794
+ //#endregion
1795
+ //#region src/core/registries/resources/resource-preview.d.ts
1796
+ type ResourceChange = {
1797
+ label: string;
1798
+ } | {
1799
+ removed: true;
1800
+ };
1801
+ type ResourcePreviewChanges = ReadonlyMap<symbol, {
1802
+ resource: ResourceRef;
1803
+ change: ResourceChange;
1804
+ }>;
1805
+ declare const createResourcePreview: () => {
1806
+ store: InternalWorkbenchStore<{
1807
+ changes: ResourcePreviewChanges;
1808
+ }>;
1809
+ resolve(resource: ResourceRef): ResourceRef | undefined;
1810
+ persist<T>(resource: ResourceRef, save: () => Promise<T>): Promise<T>;
1811
+ subscribeRefresh(refresh: (resource: ResourceRef) => Promise<void>): Disposable;
1812
+ begin(resource: ResourceRef, change: ResourceChange): {
1813
+ rollback: () => void;
1814
+ commit(): Promise<void>;
1815
+ };
1816
+ };
1817
+ //#endregion
1818
+ //#region src/core/shared/context/context-key-service.d.ts
1819
+ type ContextKeyValue = boolean | number | string | undefined;
1820
+ interface ContextKeyStoreState {
1821
+ values: Record<string, ContextKeyValue>;
1822
+ }
1823
+ interface ContextKeyScope extends Disposable {
1824
+ ownerId: string;
1825
+ set(key: string, value: ContextKeyValue): void;
1826
+ get(key: string): ContextKeyValue;
1827
+ delete(key: string): void;
1828
+ }
1829
+ interface ContextKeyService {
1830
+ store: WorkbenchStore<ContextKeyStoreState>;
1831
+ set(key: string, value: ContextKeyValue): void;
1832
+ get(key: string): ContextKeyValue;
1833
+ delete(key: string): void;
1834
+ createScope(ownerId: string): ContextKeyScope;
1835
+ deleteOwner(ownerId: string): void;
1836
+ snapshot(): Record<string, ContextKeyValue>;
1837
+ matches(expression?: string): boolean;
1838
+ }
1839
+ declare const matchesContextExpression: (values: Record<string, ContextKeyValue>, expression?: string) => boolean;
1840
+ //#endregion
1841
+ //#region src/core/registries/resources/resource-hierarchy.d.ts
1842
+ interface WorkbenchViewHierarchyNode {
1843
+ type: "view";
1844
+ viewId: string;
1845
+ label?: string;
1846
+ icon?: string;
1847
+ }
1848
+ type WorkbenchHierarchyNode = ResourceRef$1 | WorkbenchViewHierarchyNode;
1849
+ declare const isWorkbenchViewHierarchyNode: (node: WorkbenchHierarchyNode) => node is WorkbenchViewHierarchyNode;
1850
+ interface ResourceHierarchyProvider {
1851
+ id: string;
1852
+ priority?: number;
1853
+ canResolve(resource: ResourceRef$1): boolean;
1854
+ getParent(resource: ResourceRef$1): WorkbenchHierarchyNode | undefined;
1855
+ }
1856
+ type ResolvedResourceHierarchyProvider = Required<ResourceHierarchyProvider>;
1857
+ declare const resourceHierarchyCycleCode = "resource_hierarchy_cycle";
1858
+ interface ResourceHierarchyCycle {
1859
+ code: typeof resourceHierarchyCycleCode;
1860
+ path: WorkbenchHierarchyNode[];
1861
+ repeatedUri: string;
1862
+ }
1863
+ //#endregion
1864
+ //#region src/core/registries/resources/resource-registry.d.ts
1865
+ declare const workbenchResourceTypeContextKey = "workbench.resource.type";
1866
+ declare const workbenchResourceOwnerContextKey = "workbench.resource.extensionId";
1867
+ declare const workbenchResourceIdContextKey = "workbench.resource.id";
1868
+ declare const workbenchResourceMetadataContextKey: (key: string) => string;
1869
+ declare const workbenchSelectionResourceKeyMetadataKey = "workbench.selectionResourceKey";
1870
+ declare const createWorkbenchResourceContextValues: (resource: ResourceRef | undefined) => Record<string, ContextKeyValue>;
1871
+ declare const createWorkbenchSelectionResourceMetadata: (resource: ResourceRef) => {
1872
+ "workbench.selectionResourceKey": string;
1873
+ };
1874
+ declare const getWorkbenchSelectionResourceKeys: (resource: ResourceRef | undefined) => string[];
1875
+ interface ResourceKindContribution {
1876
+ kind: string;
1877
+ extensionId?: string;
1878
+ relatedOpenings?(resource: ResourceRef, signal: AbortSignal): RelatedResourceOpenings | Promise<RelatedResourceOpenings>;
1879
+ label: string;
1880
+ icon?: string;
1881
+ /** Read current owner data without storing a second copy in the workbench. */
1882
+ resolve?(resource: ResourceRef): ResourceRef | undefined;
1883
+ subscribe?(listener: () => void): Disposable | (() => void);
1884
+ }
1885
+ interface RegisteredResourceKind extends ResourceKindContribution, RegisteredContributionMetadata {}
1886
+ interface ResourceBrowseEntry {
1887
+ resource: ResourceRef;
1888
+ indicator?: {
1889
+ icon: string;
1890
+ color?: string;
1891
+ label?: string;
1892
+ };
1893
+ target?: NavigationTarget$1;
1894
+ searchText?: string;
1895
+ description?: string;
1896
+ group?: string;
1897
+ order?: number;
1898
+ activate?: (resource: ResourceRef) => unknown | Promise<unknown>;
1899
+ }
1900
+ interface ResourceListContext {
1901
+ primary?: ResourceRef;
1902
+ }
1903
+ interface ResourceProvider {
1904
+ id: string;
1905
+ kind: string;
1906
+ list(query: string, context: ResourceListContext): readonly ResourceBrowseEntry[];
1907
+ /** Direct relationships in the owner's recent-first order. */
1908
+ related?(resource: ResourceRef): readonly ResourceBrowseEntry[];
1909
+ }
1910
+ interface ResourceRegistryStoreState {
1911
+ kinds: Record<string, RegisteredResourceKind>;
1912
+ providers: Record<string, ResourceProvider>;
1913
+ hierarchyProviders: Record<string, ResolvedResourceHierarchyProvider>;
1914
+ }
1915
+ interface ResourceRegistry {
1916
+ preview: ReturnType<typeof createResourcePreview>;
1917
+ removed(resource: ResourceRef): void;
1918
+ onWillRemove(listener: (resource: ResourceRef) => readonly PlacementIdentity[]): Disposable;
1919
+ store: WorkbenchStore<ResourceRegistryStoreState>;
1920
+ registerKind(kind: ResourceKindContribution, metadata?: ContributionMetadata): Disposable;
1921
+ getKind(kind: string, extensionId?: string): RegisteredResourceKind | undefined;
1922
+ listKinds(): RegisteredResourceKind[];
1923
+ registerProvider(provider: ResourceProvider): Disposable;
1924
+ listProviders(): ResourceProvider[];
1925
+ listResources(query: string): readonly ResourceBrowseEntry[];
1926
+ listRelatedResources(resource: ResourceRef): readonly ResourceBrowseEntry[];
1927
+ registerHierarchyProvider(provider: ResourceHierarchyProvider): Disposable;
1928
+ listHierarchyProviders(): ResolvedResourceHierarchyProvider[];
1929
+ walkHierarchy(resource: ResourceRef | undefined): WorkbenchHierarchyNode[];
1930
+ onDidDetectHierarchyCycle(listener: (cycle: ResourceHierarchyCycle) => void): Disposable;
1931
+ }
1932
+ //#endregion
1933
+ //#region src/core/controllers/breadcrumbs/breadcrumb-registry.d.ts
1934
+ interface WorkbenchBreadcrumbItem {
1935
+ title: unknown;
1936
+ icon?: string;
1937
+ indicator?: "session-status";
1938
+ /** The crumb leaves the project navigation: it opens a Sidenav level or a mode that replaces the Sidenav. */
1939
+ startsLevel?: boolean;
1940
+ url?: string;
1941
+ onClick?: () => void;
1942
+ resource?: ResourceRef$1;
1943
+ }
1944
+ type WorkbenchBreadcrumbChangeListener = () => void;
1945
+ interface WorkbenchBreadcrumbState {
1946
+ items: WorkbenchBreadcrumbItem[] | undefined;
1947
+ }
1948
+ interface WorkbenchBreadcrumbController {
1949
+ store: WorkbenchStore<WorkbenchBreadcrumbState>;
1950
+ setItems(items: WorkbenchBreadcrumbItem[]): Disposable;
1951
+ clearItems(): void;
1952
+ getItems(): WorkbenchBreadcrumbItem[] | undefined;
1953
+ onDidChange(listener: WorkbenchBreadcrumbChangeListener): Disposable;
1954
+ }
1955
+ //#endregion
1956
+ //#region src/core/registries/commands/command-registry.d.ts
1957
+ interface WorkbenchCommandExecutionError {
1958
+ commandId: string;
1959
+ args: unknown;
1960
+ error: unknown;
1961
+ }
1962
+ type WorkbenchCommandExecutionErrorListener = (event: WorkbenchCommandExecutionError) => void;
1963
+ interface WorkbenchCommandExecutionContext {
1964
+ resource?: ResourceRef$1;
1965
+ signal?: AbortSignal;
1966
+ source?: "panel-add";
1967
+ /** Panel chosen by the caller for newly created tabs. */
1968
+ region?: WorkbenchPanelRegion;
1969
+ }
1970
+ interface CommandParamOption {
1971
+ label: string;
1972
+ value: string;
1973
+ icon?: string;
1974
+ }
1975
+ interface CommandParamOptionSource {
1976
+ commandId: string;
1977
+ valueField: string;
1978
+ labelField: string;
1979
+ params?: Record<string, unknown>;
1980
+ }
1981
+ interface CommandParamDescriptor {
1982
+ type: string;
1983
+ label?: string;
1984
+ description?: string;
1985
+ required?: boolean;
1986
+ defaultValue?: unknown;
1987
+ options?: CommandParamOption[] | CommandParamOptionSource;
1988
+ allowCustomValues?: boolean;
1989
+ templateType?: string;
1990
+ resourceType?: string;
1991
+ /** Workspace provider ids a `workspace` param may offer. */
1992
+ providers?: string[];
1993
+ accept?: string;
1994
+ multiple?: boolean;
1995
+ metadata?: Record<string, unknown>;
1996
+ resolvedFrom?: "resource";
1997
+ }
1998
+ type CommandParamSchema = Record<string, CommandParamDescriptor>;
1999
+ interface Command {
504
2000
  id: string;
505
- title: string;
2001
+ label: string;
2002
+ category?: string;
2003
+ description?: string;
506
2004
  icon?: string;
507
- side: WorkbenchPanelMenuSide;
508
- singleton?: boolean;
509
- reuse?: WorkbenchPanelReusePolicy;
510
- mountStrategy?: WorkbenchPanelMountStrategy;
511
- hiddenByDefault?: boolean;
512
- regionSize?: WorkbenchRegionSize;
513
- regionCollapsible?: boolean;
514
- headerBorderBottom?: boolean;
515
- rendererId: string;
516
- priority?: number;
517
- config?: unknown;
2005
+ when?: string;
2006
+ params?: CommandParamSchema;
2007
+ resourceMutation?: import("@pstdio/sdk/extensions").CommandDefinition["resourceMutation"];
518
2008
  }
519
- interface WorkbenchPanelContribution {
520
- id: string;
521
- title: string;
522
- icon?: string;
523
- region: WorkbenchRegion;
524
- fallbackRegion?: WorkbenchRegion;
525
- rendererId: string;
526
- singleton?: boolean;
527
- reuse?: WorkbenchPanelReusePolicy;
528
- mountStrategy?: WorkbenchPanelMountStrategy;
529
- closable?: boolean;
530
- hiddenByDefault?: boolean;
531
- regionSize?: WorkbenchRegionSize;
532
- regionCollapsible?: boolean;
533
- headerBorderBottom?: boolean;
534
- resourceKinds?: string[];
535
- eligibleLocations?: WorkbenchLocationEligibility;
536
- priority?: number;
537
- openCommand?: WorkbenchCommandTarget;
538
- tab?: WorkbenchPanelTab;
539
- config?: unknown;
540
- canOpen?(resource: ResourceRef$1): boolean;
541
- ownerId?: string;
542
- source?: ContributionSource;
543
- panelMenus?: readonly WorkbenchPanelMenuDefinition[];
2009
+ interface CommandHandler<TArgs = unknown, TResult = unknown> {
2010
+ prepareArgs?(args: TArgs, context?: WorkbenchCommandExecutionContext, onArgsChange?: (args: TArgs) => void): TArgs | Promise<TArgs>;
2011
+ execute(args: TArgs, context?: WorkbenchCommandExecutionContext): TResult | Promise<TResult>;
2012
+ isEnabled?(args: TArgs, context?: WorkbenchCommandExecutionContext): boolean;
2013
+ isVisible?(args: TArgs, context?: WorkbenchCommandExecutionContext): boolean;
2014
+ isToggled?(args: TArgs): boolean;
544
2015
  }
545
- type WorkbenchPanelMenuContribution = Omit<WidgetContribution, "region" | "fallbackRegion"> & {
546
- region: WorkbenchPanelMenuRegion;
547
- fallbackRegion?: WorkbenchPanelMenuRegion;
548
- };
549
- type RegisteredWidgetContribution = Omit<WidgetContribution, "priority" | "singleton" | "reuse"> & {
550
- ownedPanelMenuIds?: readonly string[];
551
- singleton: boolean;
552
- reuse: WidgetReusePolicy;
553
- } & RegisteredContributionMetadata;
554
- interface PlaceholderContribution {
555
- id: string;
556
- title: string;
557
- region: WorkbenchRegion;
558
- rendererId: string;
559
- regionSize?: WorkbenchRegionSize;
560
- regionCollapsible?: boolean;
561
- config?: unknown;
562
- priority?: number;
2016
+ interface RegisteredCommand extends RegisteredContributionMetadata {
2017
+ command: Command;
2018
+ handler: CommandHandler;
563
2019
  }
564
- type RegisteredPlaceholderContribution = Omit<PlaceholderContribution, "priority"> & RegisteredContributionMetadata;
565
- interface WorkbenchWidgetPlacement {
566
- widgetId: string;
567
- contributionId: string;
568
- placementIdentity?: PlacementIdentity;
569
- viewId?: string;
570
- ownerId?: string;
571
- source?: ContributionSource;
572
- resource?: ResourceRef$1;
573
- section?: FileRendererSectionTarget;
574
- resourceKey?: string;
575
- ownerResourceKey?: string;
576
- title?: string;
577
- pinned?: boolean;
578
- closable?: boolean;
579
- mountStrategy?: WidgetMountStrategy;
580
- hiddenByDefault?: boolean;
581
- tabRetention?: WorkbenchTabRetention;
582
- tab?: WorkbenchWidgetTab;
583
- role?: WorkbenchWidgetRole;
2020
+ interface CommandRegistryStoreState {
2021
+ commands: Record<string, RegisteredCommand>;
584
2022
  }
585
- interface WorkbenchPanelInstance {
586
- instanceId: string;
587
- panelId: string;
588
- placementIdentity?: PlacementIdentity;
589
- viewId?: string;
590
- ownerId?: string;
591
- source?: ContributionSource;
592
- resource?: ResourceRef$1;
593
- section?: FileRendererSectionTarget;
594
- resourceKey?: string;
595
- ownerResourceKey?: string;
596
- title?: string;
597
- pinned?: boolean;
598
- closable: boolean;
599
- mountStrategy?: WorkbenchPanelMountStrategy;
600
- hiddenByDefault?: boolean;
601
- tabRetention?: WorkbenchTabRetention;
602
- tab?: WorkbenchPanelTab;
2023
+ interface CommandRegistry {
2024
+ store: WorkbenchStore<CommandRegistryStoreState>;
2025
+ registerCommand<TArgs = unknown, TResult = unknown>(command: Command, handler: CommandHandler<TArgs, TResult>, metadata?: ContributionMetadata): Disposable;
2026
+ getCommand(id: string): RegisteredCommand | undefined;
2027
+ listCommands(): RegisteredCommand[];
2028
+ isCommandEnabled(id: string, args?: unknown, context?: WorkbenchCommandExecutionContext): boolean;
2029
+ isCommandVisible(id: string, args?: unknown, context?: WorkbenchCommandExecutionContext): boolean;
2030
+ isCommandToggled(id: string, args?: unknown): boolean;
2031
+ prepareCommandArgs(id: string, args: unknown, context?: WorkbenchCommandExecutionContext, onArgsChange?: (args: unknown) => void): Promise<unknown>;
2032
+ executeCommand(id: string, args?: unknown, context?: WorkbenchCommandExecutionContext): Promise<unknown>;
2033
+ onDidExecuteError(listener: WorkbenchCommandExecutionErrorListener): Disposable;
603
2034
  }
604
- type WorkbenchSidePanelMode = "floating" | "closed" | "attached";
605
- interface WorkbenchRegionState {
606
- id: WorkbenchRegion;
607
- visible: boolean;
608
- size?: number;
609
- widgets: WorkbenchWidgetPlacement[];
610
- /** Page snapshots retain mixed-owner order without storing shared mode content. Consumed on restore. */
611
- savedWidgetOrder?: string[];
612
- activeWidgetId?: string;
613
- /** Side region only: how the open Side Panel is shown. `visible` says whether it is open. */
614
- presentation?: Exclude<WorkbenchSidePanelMode, "closed">;
2035
+ //#endregion
2036
+ //#region src/core/controllers/command-palette/command-palette-controller.d.ts
2037
+ type WorkbenchCommandPaletteChangeListener = (open: boolean) => void;
2038
+ type WorkbenchCommandPaletteView = "main" | "theme";
2039
+ interface WorkbenchCommandParamsRequest {
2040
+ record: {
2041
+ command: {
2042
+ id: string;
2043
+ label: string;
2044
+ params?: CommandParamSchema;
2045
+ resourceMutation?: import("@pstdio/sdk/extensions").CommandDefinition["resourceMutation"];
2046
+ };
2047
+ };
2048
+ label: string;
2049
+ args?: unknown;
2050
+ context?: WorkbenchCommandExecutionContext;
615
2051
  }
616
- interface WorkbenchLayout {
617
- regions: Record<WorkbenchRegion, WorkbenchRegionState>;
618
- locationSubPanelSelections?: Record<string, Partial<Record<WorkbenchPanelRegion, string>>>;
619
- activeWidgetId?: string;
620
- activeLocationWidgetId?: string;
621
- activeResourceKey?: string;
2052
+ interface WorkbenchCommandConfirmation {
2053
+ label: string;
2054
+ description?: string;
2055
+ buttonLabel?: string;
2056
+ onConfirm?: () => Promise<void>;
2057
+ resolve(confirmed: boolean): void;
622
2058
  }
623
- interface WorkbenchLayoutStoreState {
624
- layout: WorkbenchLayout;
625
- widgets: Record<string, RegisteredWidgetContribution>;
626
- placeholders: Partial<Record<WorkbenchRegion, RegisteredPlaceholderContribution>>;
2059
+ interface WorkbenchResourceSearchRequest {
2060
+ label: string;
2061
+ placeholder: string;
2062
+ list(query: string): readonly ResourceBrowseEntry[];
2063
+ subscribe?(listener: () => void): () => void;
627
2064
  }
628
- interface OpenWidgetInput {
629
- viewId?: string | null;
630
- resource?: ResourceRef$1 | null;
631
- title?: string;
632
- region?: WorkbenchRegion;
633
- role?: WorkbenchWidgetRole;
634
- ownerId?: string;
635
- source?: ContributionSource;
636
- pinned?: boolean;
637
- closable?: boolean;
638
- mountStrategy?: WidgetMountStrategy;
639
- hiddenByDefault?: boolean;
640
- tabRetention?: WorkbenchTabRetention;
641
- tabPosition?: WorkbenchTabPosition;
642
- tab?: WorkbenchWidgetTab;
643
- replaceActive?: boolean;
644
- replaceWidgetId?: string;
2065
+ interface WorkbenchCommandPaletteState {
2066
+ resourceSearch: WorkbenchResourceSearchRequest | null;
2067
+ confirmation: WorkbenchCommandConfirmation | null;
2068
+ open: boolean;
2069
+ view: WorkbenchCommandPaletteView;
2070
+ initialQuery: string;
2071
+ paramsRequest: WorkbenchCommandParamsRequest | null;
645
2072
  }
646
- type WorkbenchPanelOpenStrategy = {
647
- kind: "persistent";
648
- position?: WorkbenchTabPosition;
649
- } | {
650
- kind: "replace-active";
651
- } | {
652
- kind: "replace-panel";
653
- instanceId: string;
654
- retention?: WorkbenchTabRetention;
655
- } | {
656
- kind: "preview";
657
- position?: WorkbenchTabPosition;
658
- };
659
- interface OpenWorkbenchPanelInput {
660
- /** Set by the view registry. Low-level layout callers should leave this undefined. */
661
- viewId?: string | null;
662
- /** `null` explicitly clears an existing singleton placement's resource binding. */
663
- resource?: ResourceRef$1 | null;
664
- title?: string;
665
- region?: WorkbenchRegion;
666
- role?: WorkbenchWidgetRole;
667
- pinned?: boolean;
668
- closable?: boolean;
669
- mountStrategy?: WorkbenchPanelMountStrategy;
670
- hiddenByDefault?: boolean;
671
- tab?: WorkbenchPanelTab;
672
- strategy?: WorkbenchPanelOpenStrategy;
2073
+ interface WorkbenchCommandPaletteOpenInput {
2074
+ resourceSearch?: WorkbenchResourceSearchRequest;
2075
+ view?: WorkbenchCommandPaletteView;
2076
+ initialQuery?: string;
2077
+ }
2078
+ interface WorkbenchCommandPaletteController {
2079
+ store: WorkbenchStore<WorkbenchCommandPaletteState>;
2080
+ isOpen(): boolean;
2081
+ getView(): WorkbenchCommandPaletteView;
2082
+ getInitialQuery(): string;
2083
+ getParamsRequest(): WorkbenchCommandParamsRequest | null;
2084
+ open(input?: WorkbenchCommandPaletteOpenInput): void;
2085
+ close(): void;
2086
+ toggle(): void;
2087
+ requestConfirmation(label: string, options?: Pick<WorkbenchCommandConfirmation, "description" | "buttonLabel" | "onConfirm">): Promise<boolean>;
2088
+ requestParams(request: WorkbenchCommandParamsRequest): void;
2089
+ clearParams(): void;
2090
+ onDidChange(listener: WorkbenchCommandPaletteChangeListener): Disposable;
673
2091
  }
674
2092
  //#endregion
675
2093
  //#region src/core/registries/layout/layout-model-types.d.ts
@@ -722,6 +2140,13 @@ interface LayoutModel {
722
2140
  openPanel(id: string, input?: OpenWorkbenchPanelInput): WorkbenchPanelInstance;
723
2141
  updatePanel(instanceId: string, input: OpenWorkbenchPanelInput): WorkbenchPanelInstance;
724
2142
  reorderPanel(instanceId: string, position: WorkbenchTabPosition): void;
2143
+ /** Explicit panel selection, excluding automatic focus after closing or restoring. */
2144
+ onDidActivatePanel(listener: (panel: WorkbenchPanelInstance) => void): {
2145
+ dispose(): void;
2146
+ };
2147
+ onWillRestoreLayout(listener: () => void): {
2148
+ dispose(): void;
2149
+ };
725
2150
  activatePanel(instanceId: string): WorkbenchPanelInstance;
726
2151
  closePanel(instanceId: string): WorkbenchPanelInstance | undefined;
727
2152
  updateWidgetPlacement(widgetId: string, input: OpenWidgetInput): WorkbenchWidgetPlacement;
@@ -775,6 +2200,8 @@ interface WorkbenchFocusController {
775
2200
  //#region src/core/registries/menus/menu-registry.d.ts
776
2201
  type MenuPath = readonly string[];
777
2202
  interface MenuItem {
2203
+ /** Stable identity of this contribution, independent of its position or command arguments. */
2204
+ id?: string;
778
2205
  commandId: string;
779
2206
  sourceCommandId?: string;
780
2207
  label?: string;
@@ -783,7 +2210,13 @@ interface MenuItem {
783
2210
  iconSrc?: string;
784
2211
  overflowLabel?: string;
785
2212
  when?: string;
2213
+ disabledWhen?: string;
2214
+ disabledReason?: string;
786
2215
  group?: string;
2216
+ resourceGroup?: {
2217
+ id: string;
2218
+ label: string;
2219
+ };
787
2220
  order?: number;
788
2221
  args?: unknown;
789
2222
  readOnly?: boolean;
@@ -792,6 +2225,7 @@ interface MenuItem {
792
2225
  external?: boolean;
793
2226
  }
794
2227
  interface RegisteredMenuItem extends MenuItem, RegisteredContributionMetadata {
2228
+ id: string;
795
2229
  path: MenuPath;
796
2230
  }
797
2231
  interface MenuRegistryStoreState {
@@ -1046,6 +2480,10 @@ interface NavigationTreeRegistry {
1046
2480
  }
1047
2481
  //#endregion
1048
2482
  //#region src/core/registries/layout/placement-reconciliation.d.ts
2483
+ interface PlacementDestination {
2484
+ identity: PlacementIdentity;
2485
+ region: WorkbenchRegion;
2486
+ }
1049
2487
  interface ResolvedOwnedPlacement<Value = unknown> {
1050
2488
  identity: PlacementIdentity;
1051
2489
  region: WorkbenchRegion;
@@ -1057,6 +2495,7 @@ interface OwnedPlacementUpdate<Value> {
1057
2495
  desired: ResolvedOwnedPlacement<Value>;
1058
2496
  }
1059
2497
  interface OwnedPlacementReconciliation<Value> {
2498
+ destinations?: readonly PlacementDestination[];
1060
2499
  add: readonly ResolvedOwnedPlacement<Value>[];
1061
2500
  retain: readonly ResolvedOwnedPlacement<Value>[];
1062
2501
  update: readonly OwnedPlacementUpdate<Value>[];
@@ -1461,7 +2900,9 @@ interface FileRendererContribution {
1461
2900
  /** Resolve the file's content (and identity) for the bound resource. */
1462
2901
  load(resource: ResourceRef$1 | undefined, signal: AbortSignal, pageParams?: import("@pstdio/sdk/extensions").PageParams): Promise<FileRendererContent> | FileRendererContent;
1463
2902
  /** Persist edited text. Absent ⇒ read-only. Never called for images. */
1464
- save?(resource: ResourceRef$1 | undefined, content: string, origin?: FileRendererRefreshOrigin): Promise<FileRendererSaveResult | undefined> | FileRendererSaveResult | void;
2903
+ save?(resource: ResourceRef$1 | undefined, content: string, origin?: FileRendererRefreshOrigin,
2904
+ /** The loaded document that the editor started from. */
2905
+ loaded?: FileRendererContent): Promise<FileRendererSaveResult | undefined> | FileRendererSaveResult | void;
1465
2906
  }
1466
2907
  //#endregion
1467
2908
  //#region src/core/registries/renderers/kanban-renderer-registry.d.ts
@@ -1642,6 +3083,8 @@ interface WorkbenchPageSlotOpenInput {
1642
3083
  slotId: string;
1643
3084
  resource?: ResourceRef;
1644
3085
  open?: PageOpenIntent;
3086
+ /** Explicit destination for this open. Omit to keep an existing tab's placement. */
3087
+ region?: DockedWorkbenchRegion;
1645
3088
  }
1646
3089
  interface WorkbenchPageSlotInstance {
1647
3090
  instanceKey: string;
@@ -1655,6 +3098,8 @@ interface WorkbenchPageRuntimeState {
1655
3098
  activePrimaryInstanceKey?: string;
1656
3099
  }
1657
3100
  interface WorkbenchPageRegistryStoreState<Value> {
3101
+ /** The runtime's committed result; consumers must not infer mode restoration from page caches. */
3102
+ layoutActivation?: "open-page" | "restore-mode";
1658
3103
  pages: Readonly<Record<string, WorkbenchPageContribution>>;
1659
3104
  pageStates: Readonly<Record<string, WorkbenchPageRuntimeState>>;
1660
3105
  projectId?: string;
@@ -1671,6 +3116,8 @@ interface WorkbenchPageRegistry<Value> {
1671
3116
  };
1672
3117
  getPage(pageId: string): WorkbenchPageContribution | undefined;
1673
3118
  listPages(): WorkbenchPageContribution[];
3119
+ resourceReferenceKey(resource: ResourceRef): string;
3120
+ refreshResource(resource: ResourceRef): void;
1674
3121
  pinPlacement(identity: PlacementIdentity, open?: PageOpenIntent): void;
1675
3122
  openSlot(input: WorkbenchPageSlotOpenInput): void;
1676
3123
  }
@@ -1720,6 +3167,9 @@ interface WorkbenchPageLocationController {
1720
3167
  getBootLocation(projectId: string): PageLocation | undefined;
1721
3168
  boot(projectId: string): WorkbenchPageNavigationResult;
1722
3169
  switchProject(projectId: string): WorkbenchPageNavigationResult;
3170
+ onDidNavigate(listener: (location: PageLocation) => void): {
3171
+ dispose(): void;
3172
+ };
1723
3173
  navigate(target: NavigationTargetPage): WorkbenchPageNavigationResult;
1724
3174
  updateParams(patch: Readonly<Record<string, PageParamValue | null>>): PageLocation;
1725
3175
  replay(location: PageLocation): WorkbenchPageNavigationResult;
@@ -1928,8 +3378,11 @@ interface WorkbenchModePlacementContribution extends WorkbenchPlacementPresentat
1928
3378
  }
1929
3379
  interface OpenModePlacementTarget {
1930
3380
  panel: PlacementRef;
3381
+ /** Explicit destination for this open. Omit to keep an existing tab's placement. */
3382
+ region?: DockedWorkbenchRegion;
1931
3383
  resource?: ResourceRef$1;
1932
3384
  open?: PageOpenIntent;
3385
+ relatedSource?: string;
1933
3386
  }
1934
3387
  interface WorkbenchModePlacementRegistry {
1935
3388
  registerPlacement(placement: WorkbenchModePlacementContribution): Disposable;
@@ -2035,9 +3488,14 @@ interface WorkbenchShellPlacementContribution extends WorkbenchPlacementPresenta
2035
3488
  }
2036
3489
  interface OpenWorkbenchShellPlacementInput {
2037
3490
  placementId: string;
3491
+ /** Explicit destination for this open. Omit to keep an existing tab's placement. */
3492
+ region?: WorkbenchRegion;
2038
3493
  resource?: ResourceRef$1;
2039
3494
  open?: PageOpenIntent;
2040
3495
  title?: string;
3496
+ relatedSource?: string;
3497
+ /** Leave the current tab and global focus selected when opening in the background. */
3498
+ activate?: boolean;
2041
3499
  }
2042
3500
  interface WorkbenchShellPlacementRegistry {
2043
3501
  registerPlacement(placement: WorkbenchShellPlacementContribution): Disposable;
@@ -2087,6 +3545,7 @@ interface PreferenceValueAdapter {
2087
3545
  set(value: PreferenceValue): void | Promise<void>;
2088
3546
  }
2089
3547
  interface PreferenceRegistry {
3548
+ onDidChangeValue(listener: (name: string) => void): Disposable;
2090
3549
  registerValueAdapter(name: string, adapter: PreferenceValueAdapter): Disposable;
2091
3550
  store: WorkbenchStore<PreferenceRegistryStoreState>;
2092
3551
  registerSchema(schema: PreferenceSchemaContribution, metadata?: ContributionMetadata): Disposable;
@@ -2577,5 +4036,5 @@ declare const runUserAction: (workbench: {
2577
4036
  /** Commit related stores before their subscribers read the resulting workbench state. */
2578
4037
  declare const batchWorkbenchChanges: <Result>(commit: () => Result) => Result;
2579
4038
  //#endregion
2580
- export { WorkbenchStatusSetContribution as $, workbenchResourceMetadataContextKey as $i, DataTableRendererThemeColor as $n, LayoutPersistenceAdapter as $r, WorkbenchTerminalSessionAdapter as $t, WorkbenchModeRegistry as A, NavigationTargetPanel$1 as Ai, createViewRegistry as An, NavigationTreeContext as Ar, WorkbenchPlaceholderContribution as At, WorkbenchPersistenceAdapter as B, WorkbenchCommandExecutionError as Bi, FileRendererRefreshEnvelope as Bn, TreeNodeInlineInput as Br, WorkbenchModePlacementContribution as Bt, getWorkbenchModePanelForRegion as C, NavigationDispatcherContext as Ci, WorkbenchViewMenuRegistry as Cn, ViewMode as Cr, PreferenceRegistry as Ct, WorkbenchModeAddablePanel as D, NavigationTargetCommand as Di, WorkbenchViewContribution as Dn, ControlsRendererLayout as Dr, PreferenceValue as Dt, WorkbenchModeActivationResult as E, NavigationTarget$1 as Ei, WorkbenchViewBody as En, ControlsRendererContribution as Er, PreferenceScopeRef as Et, WorkbenchModuleContext as F, CommandParamDescriptor as Fi, createRendererReadRegistry as Fn, TreeAction as Fr, RegisteredWorkbenchNotification as Ft, ThemePreferenceMode as G, ResourceListContext as Gi, DataTableRendererColumnRenderer as Gn, TreeViewSection as Gr, KeybindingSequence as Gt, createWorkbenchInput as H, WorkbenchBreadcrumbItem as Hi, FileRendererSaveResult as Hn, TreeRendererContribution as Hr, WorkbenchOwnedPlacementItem as Ht, WorkbenchModuleContribution as I, CommandParamOption as Ii, KanbanRendererContribution as In, TreeContext as Ir, WorkbenchNotification as It, FileIconThemeRegistry as J, ResourceRegistry as Ji, DataTableRendererQueryContext as Jn, MenuPath as Jr, CommandPaletteResourceProviderResult as Jt, ThemePreferenceOption as K, ResourceProvider as Ki, DataTableRendererColumnStat as Kn, WorkbenchPanelRenderInput as Kr, getKeybindingSteps as Kt, WorkbenchModuleContributionContext as L, CommandParamSchema as Li, KanbanRendererQueryState as Ln, TreeMoveEndpoint as Lr, WorkbenchNotificationAction as Lt, WorkbenchCore as M, WorkbenchCommandPaletteOpenInput as Mi, RendererReadBinding as Mn, NavigationTreeOwner as Mr, WorkbenchOverlayContribution as Mt, WorkbenchCoreContributionContext as N, Command as Ni, RendererReadRegistry as Nn, NavigationTreeRegistry as Nr, WorkbenchOverlayRegistry as Nt, WorkbenchModeAddablePanelContext as O, NavigationTargetCompound as Oi, WorkbenchViewRegistry as On, ControlsResetInput as Or, WorkbenchShellPlacementContribution as Ot, WorkbenchHost as P, CommandHandler as Pi, RendererReadRequest as Pn, NavigationTreeSlot as Pr, NotificationRegistry as Pt, WorkbenchStatusRegistryState as Q, workbenchResourceIdContextKey as Qi, DataTableRendererSelectionAction as Qn, WorkbenchFocusRegionId as Qr, WorkbenchTerminalController as Qt, WorkbenchPagePersistenceScope as R, CommandRegistry as Ri, FileRendererContent as Rn, TreeMovePolicy as Rr, WorkbenchNotificationEvent as Rt, createLevelNavigation as S, workbenchRegions as Si, WorkbenchViewMenuContribution as Sn, ResourceContextAction as Sr, PreferencePropertySchema as St, WorkbenchModeActivationContext as T, NavigationRegistry as Ti, WorkbenchReactViewBody as Tn, ControlsQueryResult$1 as Tr, PreferenceScope as Tt, ThemeRegistry as U, ResourceBrowseEntry as Ui, DataTableRendererBadgePalette as Un, TreeRendererPersistenceAdapter as Ur, Keybinding as Ut, WorkbenchSnapshot as V, WorkbenchBreadcrumbController as Vi, FileRendererRefreshOrigin as Vn, TreeQueryContext as Vr, WorkbenchModePlacementRegistry as Vt, ThemePreference as W, ResourceKindContribution as Wi, DataTableRendererColumn as Wn, TreeRendererState as Wr, KeybindingRegistry as Wt, FileIconThemePreferenceOption as X, createWorkbenchSelectionResourceMetadata as Xi, DataTableRendererRow as Xn, RegisteredMenuItem as Xr, CommandPaletteResourceRegistry as Xt, FileIconThemeFont as Y, createWorkbenchResourceContextValues as Yi, DataTableRendererQueryResult as Yn, MenuRegistry as Yr, CommandPaletteResourceQueryContext as Yt, WorkbenchStatusRegistry as Z, getWorkbenchSelectionResourceKeys as Zi, DataTableRendererRowAction as Zn, WorkbenchFocusController as Zr, CommandPaletteResourceResult as Zt, workbenchTopHeaderLeadingMenuPath as _, WorkbenchPanelMenuRegion as _i, WorkbenchPageLocationDiagnostic as _n, KanbanRendererCreateSubmission as _r, SettingsRegistry as _t, StandardResourceIcon as a, WorkbenchHierarchyNode as aa, WorkbenchPanelMountStrategy as ai, WorkbenchTerminalSessionSink as an, AttributesSource as ar, WorkbenchStatusBarPosition as at, resolveAnchorRegion as b, WorkbenchRegion as bi, WorkbenchPageContribution as bn, KanbanRendererViewsProvider as br, ViewSettingsPanel as bt, dockedWorkbenchRegions as c, resourceHierarchyCycleCode as ca, WorkbenchSidePanelMode as ci, WorkbenchShellController as cn, CollectionSavedView as cr, WorkbenchStatusBarSlot as ct, headerTrailingMenuPath as d, ContextKeyScope as da, WorkbenchTabMenuRow as di, WorkbenchSidePanelPresentation as dn, EnumOption as dr, SchemaSettingsPanel as dt, workbenchResourceOwnerContextKey as ea, RegisteredPlaceholderContribution as ei, WorkbenchTerminalSessionError as en, RegisteredDataTableRendererContribution as er, WorkflowStatus as et, resourceContextMenuPath as f, ContextKeyService as fa, WorkbenchTabPosition as fi, WorkbenchPanelMenuStatePersistenceAdapter as fn, EnumOptions as fr, SettingsAction as ft, workbenchRegionTabLeadingMenuPath as g, WorkbenchStore as ga, WorkbenchWidgetTab as gi, WorkbenchPageLocationController as gn, KanbanRendererCreateRowConfig as gr, SettingsPanelPreference as gt, workbenchRegionTabAddMenuPath as h, Disposable as ha, WorkbenchWidgetPlacement as hi, WorkbenchPageLocationBrowser as hn, KanbanRendererCreateFieldType as hr, SettingsPanelContribution as ht, rendererReadKey as i, ResourceHierarchyProvider as ia, WorkbenchPanelInstance as ii, WorkbenchTerminalSessionRequest as in, AttributeType as ir, WorkbenchStatusBarPersistenceAdapter as it, createWorkbench as j, WorkbenchCommandPaletteController as ji, workbenchViewIdContextKey as jn, NavigationTreeContribution as jr, WorkbenchPlaceholderRegistry as jt, WorkbenchModeContribution as k, NavigationTargetItem as ki, WorkbenchViewRegistryStoreState as kn, ControlsUpdateValueInput as kr, WorkbenchShellPlacementRegistry as kt, getNavigationTargetKey as l, ContributionMetadata as la, WorkbenchTabAction as li, WorkbenchShellOpenRegion as ln, CollectionViewsProvider as lr, createStatusBarRegistry as lt, workbenchCommandPaletteMenuPath as m, matchesContextExpression as ma, WorkbenchTabSnapshot as mi, WorkbenchPageBrowserEntry as mn, KanbanRendererCreateField as mr, SettingsPanelBase as mt, runUserAction as n, workbenchSelectionResourceKeyMetadataKey as na, WorkbenchCommandTarget as ni, WorkbenchTerminalSessionModel as nn, AttributeDisplayDescriptor as nr, createStatusRegistry as nt, standardResourceIcons as o, WorkbenchViewHierarchyNode as oa, WorkbenchPanelTab as oi, WorkbenchTerminalSessionStatus as on, BoardColumnAction as or, WorkbenchStatusBarRegistry as ot, workbenchBreadcrumbLocationMenuPath as p, ContextKeyValue as pa, WorkbenchTabRetention as pi, PersistedWorkbenchPageLocation as pn, EnumOptionsSource as pr, SettingsCollectionGroupBy as pt, ThemePreferenceTokens as q, ResourceRef$1 as qi, DataTableRendererContribution as qn, MenuItem as qr, CommandPaletteResourceProvider as qt, settleReadBatch as r, ResourceHierarchyCycle as ra, WorkbenchLayout as ri, WorkbenchTerminalSessionOpener as rn, AttributeKind as rr, WorkbenchStatusBarItem as rt, DockedWorkbenchRegion$1 as s, isWorkbenchViewHierarchyNode as sa, WorkbenchRegionSize as si, WorkbenchTerminalState as sn, BoardColumnConfig as sr, WorkbenchStatusBarRegistryState as st, batchWorkbenchChanges as t, workbenchResourceTypeContextKey as ta, RegisteredWidgetContribution as ti, WorkbenchTerminalSessionExit as tn, AttributeDescriptor as tr, WorkflowStatusAction as tt, headerLeadingMenuPath as u, ContributionSource as ua, WorkbenchTabMenuGroup as ui, WorkbenchShellRegionState as un, CollectionViewsSource as ur, CollectionSettingsPanel as ut, workbenchTopHeaderTrailingMenuPath as v, WorkbenchPanelMenuSide as vi, WorkbenchPageLocationPersistence as vn, KanbanRendererRow as vr, SettingsScope as vt, isWorkbenchModePanelAvailable as w, NavigationParser as wi, RegisteredWorkbenchView as wn, ControlsApplyInput as wr, PreferenceSchemaContribution as wt, defaultPageResourceCodec as x, workbenchPanelRegions as xi, WorkbenchPlacementPresentation as xn, KanbanRendererViewsSource as xr, PreferencePersistenceAdapter as xt, AnchorId as y, WorkbenchPanelRegion as yi, WorkbenchPageNavigationResult as yn, KanbanRendererSettings as yr, SettingsSectionContribution as yt, WorkbenchPagePersistenceScopeInput as z, WorkbenchCommandExecutionContext as zi, FileRendererContribution as zn, TreeNode as zr, WorkbenchNotificationLevel as zt };
4039
+ export { WorkflowStatus as $, WorkbenchTabMenuGroup as $i, RegisteredDataTableRendererContribution as $n, WorkbenchCommandPaletteController as $r, WorkbenchTerminalSessionError as $t, createWorkbench as A, PageLocation$1 as Aa, resourceHierarchyCycleCode as Ai, workbenchViewIdContextKey as An, NavigationTreeContribution as Ar, WorkbenchPlaceholderRegistry as At, WorkbenchSnapshot as B, WebviewNotificationResolveParams as Ba, NavigationTargetCompound as Bi, FileRendererRefreshOrigin as Bn, TreeQueryContext as Br, WorkbenchModePlacementRegistry as Bt, isWorkbenchModePanelAvailable as C, WorkbenchExtensionDataTableRendererRecord as Ca, workbenchResourceTypeContextKey as Ci, RegisteredWorkbenchView as Cn, ControlsApplyInput as Cr, PreferenceSchemaContribution as Ct, WorkbenchModeAddablePanelContext as D, WebviewHostProps as Da, WorkbenchHierarchyNode as Di, WorkbenchViewRegistry as Dn, ControlsResetInput as Dr, WorkbenchShellPlacementContribution as Dt, WorkbenchModeAddablePanel as E, defaultPageResourceCodec as Ea, ResourceHierarchyProvider as Ei, WorkbenchViewContribution as En, ControlsRendererLayout as Er, PreferenceValue as Et, WorkbenchModuleContribution as F, WebviewFilesDeleteParams as Fa, NavigationDispatcherContext as Fi, KanbanRendererContribution as Fn, TreeContext as Fr, WorkbenchNotification as Ft, ThemePreferenceOption as G, WorkbenchCommandTarget as Gi, DataTableRendererColumnStat as Gn, WorkbenchPanelRenderInput as Gr, getKeybindingSteps as Gt, ThemeRegistry as H, WebviewPreferencesGetParams as Ha, NavigationTargetPanel$1 as Hi, DataTableRendererBadgePalette as Hn, TreeRendererPersistenceAdapter as Hr, Keybinding as Ht, WorkbenchModuleContributionContext as I, WebviewFilesListParams as Ia, NavigationParser as Ii, KanbanRendererQueryState as In, TreeMoveEndpoint as Ir, WorkbenchNotificationAction as It, FileIconThemeFont as J, WorkbenchPanelMountStrategy as Ji, DataTableRendererQueryResult as Jn, MenuRegistry as Jr, CommandPaletteResourceQueryContext as Jt, ThemePreferenceTokens as K, WorkbenchLayout as Ki, DataTableRendererContribution as Kn, MenuItem as Kr, CommandPaletteResourceProvider as Kt, WorkbenchPagePersistenceScope as L, WebviewFilesUploadParams as La, NavigationRegistry as Li, FileRendererContent as Ln, TreeMovePolicy as Lr, WorkbenchNotificationEvent as Lt, WorkbenchCoreContributionContext as M, WebviewArtifactsReadParams as Ma, ContextKeyService as Mi, RendererReadRegistry as Mn, NavigationTreeRegistry as Mr, WorkbenchOverlayRegistry as Mt, WorkbenchHost as N, WebviewCommandsExecuteParams as Na, ContextKeyValue as Ni, RendererReadRequest as Nn, NavigationTreeSlot as Nr, NotificationRegistry as Nt, WorkbenchModeContribution as O, CommandNotice as Oa, WorkbenchViewHierarchyNode as Oi, WorkbenchViewRegistryStoreState as On, ControlsUpdateValueInput as Or, WorkbenchShellPlacementRegistry as Ot, WorkbenchModuleContext as P, WebviewExtensionSettingSetParams as Pa, matchesContextExpression as Pi, createRendererReadRegistry as Pn, TreeAction as Pr, RegisteredWorkbenchNotification as Pt, WorkbenchStatusSetContribution as Q, WorkbenchTabAction as Qi, DataTableRendererThemeColor as Qn, LayoutPersistenceAdapter as Qr, WorkbenchTerminalSessionAdapter as Qt, WorkbenchPagePersistenceScopeInput as R, WebviewHostCapabilityResults as Ra, NavigationTarget$1 as Ri, FileRendererContribution as Rn, TreeNode as Rr, WorkbenchNotificationLevel as Rt, getWorkbenchModePanelForRegion as S, WorkbenchExtensionKanbanRendererRecord as Sa, workbenchResourceOwnerContextKey as Si, WorkbenchViewMenuRegistry as Sn, ViewMode as Sr, PreferenceRegistry as St, WorkbenchModeActivationResult as T, ExtensionMenuContribution$1 as Ta, ResourceHierarchyCycle as Ti, WorkbenchViewBody as Tn, ControlsRendererContribution as Tr, PreferenceScopeRef as Tt, ThemePreference as U, WebviewPreferencesSetParams as Ua, RegisteredPlaceholderContribution as Ui, DataTableRendererColumn as Un, TreeRendererState as Ur, KeybindingRegistry as Ut, createWorkbenchInput as V, WebviewPageParamsUpdateParams as Va, NavigationTargetItem as Vi, FileRendererSaveResult as Vn, TreeRendererContribution as Vr, WorkbenchOwnedPlacementItem as Vt, ThemePreferenceMode as W, MaybePromise as Wa, RegisteredWidgetContribution as Wi, DataTableRendererColumnRenderer as Wn, TreeViewSection as Wr, KeybindingSequence as Wt, WorkbenchStatusRegistry as X, WorkbenchRegionSize as Xi, DataTableRendererRowAction as Xn, WorkbenchFocusController as Xr, CommandPaletteResourceResult as Xt, FileIconThemePreferenceOption as Y, WorkbenchPanelTab as Yi, DataTableRendererRow as Yn, RegisteredMenuItem as Yr, CommandPaletteResourceRegistry as Yt, WorkbenchStatusRegistryState as Z, WorkbenchSidePanelMode as Zi, DataTableRendererSelectionAction as Zn, WorkbenchFocusRegionId as Zr, WorkbenchTerminalController as Zt, workbenchTopHeaderLeadingMenuPath as _, ExtensionSettingsSectionRecord as _a, createWorkbenchResourceContextValues as _i, WorkbenchPageLocationPersistence as _n, KanbanRendererRow as _r, SettingsScope as _t, StandardResourceIcon as a, WorkbenchWidgetTab as aa, CommandParamSchema as ai, WorkbenchTerminalSessionStatus as an, BoardColumnAction as ar, WorkbenchStatusBarRegistry as at, resolveAnchorRegion as b, ExtensionKeybindingRecord as ba, workbenchResourceIdContextKey as bi, WorkbenchPlacementPresentation as bn, KanbanRendererViewsSource as br, PreferencePersistenceAdapter as bt, dockedWorkbenchRegions as c, WorkbenchPanelRegion as ca, WorkbenchCommandExecutionError as ci, WorkbenchShellOpenRegion as cn, CollectionViewsProvider as cr, createStatusBarRegistry as ct, headerTrailingMenuPath as d, workbenchRegions as da, ResourceBrowseEntry as di, WorkbenchPanelMenuStatePersistenceAdapter as dn, EnumOptions as dr, SettingsAction as dt, WorkbenchTabMenuRow as ea, WorkbenchCommandPaletteOpenInput as ei, WorkbenchTerminalSessionExit as en, AttributeDescriptor as er, WorkflowStatusAction as et, resourceContextMenuPath as f, WorkbenchStore as fa, ResourceKindContribution as fi, PersistedWorkbenchPageLocation as fn, EnumOptionsSource as fr, SettingsCollectionGroupBy as ft, workbenchRegionTabLeadingMenuPath as g, ExtensionSettingDefinitionRecord as ga, ResourceRegistry as gi, WorkbenchPageLocationDiagnostic as gn, KanbanRendererCreateSubmission as gr, SettingsRegistry as gt, workbenchRegionTabAddMenuPath as h, ContributionSource as ha, ResourceRef$1 as hi, WorkbenchPageLocationController as hn, KanbanRendererCreateRowConfig as hr, SettingsPanelPreference as ht, rendererReadKey as i, WorkbenchWidgetPlacement as ia, CommandParamOption as ii, WorkbenchTerminalSessionSink as in, AttributesSource as ir, WorkbenchStatusBarPosition as it, WorkbenchCore as j, PageParamValue$1 as ja, ContextKeyScope as ji, RendererReadBinding as jn, NavigationTreeOwner as jr, WorkbenchOverlayContribution as jt, WorkbenchModeRegistry as k, NavigationTarget$2 as ka, isWorkbenchViewHierarchyNode as ki, createViewRegistry as kn, NavigationTreeContext as kr, WorkbenchPlaceholderContribution as kt, getNavigationTargetKey as l, WorkbenchRegion as la, WorkbenchBreadcrumbController as li, WorkbenchShellRegionState as ln, CollectionViewsSource as lr, CollectionSettingsPanel as lt, workbenchCommandPaletteMenuPath as m, ContributionMetadata as ma, ResourceProvider as mi, WorkbenchPageLocationBrowser as mn, KanbanRendererCreateFieldType as mr, SettingsPanelContribution as mt, runUserAction as n, WorkbenchTabRetention as na, CommandHandler as ni, WorkbenchTerminalSessionOpener as nn, AttributeKind as nr, WorkbenchStatusBarItem as nt, standardResourceIcons as o, WorkbenchPanelMenuRegion as oa, CommandRegistry as oi, WorkbenchTerminalState as on, BoardColumnConfig as or, WorkbenchStatusBarRegistryState as ot, workbenchBreadcrumbLocationMenuPath as p, Disposable as pa, ResourceListContext as pi, WorkbenchPageBrowserEntry as pn, KanbanRendererCreateField as pr, SettingsPanelBase as pt, FileIconThemeRegistry as q, WorkbenchPanelInstance as qi, DataTableRendererQueryContext as qn, MenuPath as qr, CommandPaletteResourceProviderResult as qt, settleReadBatch as r, WorkbenchTabSnapshot as ra, CommandParamDescriptor as ri, WorkbenchTerminalSessionRequest as rn, AttributeType as rr, WorkbenchStatusBarPersistenceAdapter as rt, DockedWorkbenchRegion$1 as s, WorkbenchPanelMenuSide as sa, WorkbenchCommandExecutionContext as si, WorkbenchShellController as sn, CollectionSavedView as sr, WorkbenchStatusBarSlot as st, batchWorkbenchChanges as t, WorkbenchTabPosition as ta, Command as ti, WorkbenchTerminalSessionModel as tn, AttributeDisplayDescriptor as tr, createStatusRegistry as tt, headerLeadingMenuPath as u, workbenchPanelRegions as ua, WorkbenchBreadcrumbItem as ui, WorkbenchSidePanelPresentation as un, EnumOption as ur, SchemaSettingsPanel as ut, workbenchTopHeaderTrailingMenuPath as v, WorkbenchExtensionFileRendererRecord as va, createWorkbenchSelectionResourceMetadata as vi, WorkbenchPageNavigationResult as vn, KanbanRendererSettings as vr, SettingsSectionContribution as vt, WorkbenchModeActivationContext as w, WorkbenchExtensionControlsRendererRecord as wa, workbenchSelectionResourceKeyMetadataKey as wi, WorkbenchReactViewBody as wn, ControlsQueryResult$1 as wr, PreferenceScope as wt, createLevelNavigation as x, WorkbenchExtensionCommandPaletteResourceRecord$1 as xa, workbenchResourceMetadataContextKey as xi, WorkbenchViewMenuContribution as xn, ResourceContextAction as xr, PreferencePropertySchema as xt, AnchorId as y, WorkbenchExtensionTreeRendererRecord as ya, getWorkbenchSelectionResourceKeys as yi, WorkbenchPageContribution as yn, KanbanRendererViewsProvider as yr, ViewSettingsPanel as yt, WorkbenchPersistenceAdapter as z, WebviewNotificationActionParams as za, NavigationTargetCommand as zi, FileRendererRefreshEnvelope as zn, TreeNodeInlineInput as zr, WorkbenchModePlacementContribution as zt };
2581
4040
  export {};