@pstdio/workbench 0.12.0 → 0.36.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 (36) hide show
  1. package/dist/extensions.d.ts +1133 -3590
  2. package/dist/extensions.js +2053 -2405
  3. package/dist/extensions.js.map +1 -1
  4. package/dist/file-renderer-view-DKu2l8bT.js +637 -0
  5. package/dist/file-renderer-view-DKu2l8bT.js.map +1 -0
  6. package/dist/index-DSsmgN2a.d.ts +2385 -0
  7. package/dist/index.d.ts +3 -2624
  8. package/dist/index.js +5272 -6143
  9. package/dist/index.js.map +1 -1
  10. package/dist/kanban-presentation-BWhkLbw3.d.ts +14 -0
  11. package/dist/navigation-tree-registry-CTidmvVs.js +91 -0
  12. package/dist/navigation-tree-registry-CTidmvVs.js.map +1 -0
  13. package/dist/react-BxrTklvM.js +8523 -0
  14. package/dist/react-BxrTklvM.js.map +1 -0
  15. package/dist/react.d.ts +398 -2849
  16. package/dist/react.js +2 -54
  17. package/dist/storage.d.ts +48 -282
  18. package/dist/storage.js +218 -225
  19. package/dist/storage.js.map +1 -1
  20. package/dist/webview-runtime.d.ts +8 -7
  21. package/dist/webview-runtime.js +10 -11
  22. package/dist/webview-runtime.js.map +1 -1
  23. package/dist/workbench-renderers-RPeMVtTc.js +908 -0
  24. package/dist/workbench-renderers-RPeMVtTc.js.map +1 -0
  25. package/package.json +3 -3
  26. package/dist/file-renderer-view-BJ3LX04R.js +0 -545
  27. package/dist/file-renderer-view-BJ3LX04R.js.map +0 -1
  28. package/dist/index-DwNKY4fO.js +0 -5286
  29. package/dist/index-DwNKY4fO.js.map +0 -1
  30. package/dist/react.js.map +0 -1
  31. package/dist/workbench-menu-paths-B_QJzcNU.js +0 -12
  32. package/dist/workbench-menu-paths-B_QJzcNU.js.map +0 -1
  33. package/dist/workbench-renderers-BAPxtfpZ.js +0 -877
  34. package/dist/workbench-renderers-BAPxtfpZ.js.map +0 -1
  35. package/dist/workspaces-DdUPyzkL.js +0 -1886
  36. package/dist/workspaces-DdUPyzkL.js.map +0 -1
@@ -1,3590 +1,1133 @@
1
- import { CommandExecuteRequest } from '@pstdio/sdk/api';
2
- import { CommandExecuteResponse } from '@pstdio/sdk/api';
3
- import { ComponentType } from 'react';
4
- import { ControlsQueryResult } from '@pstdio/sdk/extensions';
5
- import { ControlValue } from '@pstdio/sdk/extensions';
6
- import { ControlValueMap } from '@pstdio/sdk/extensions';
7
- import { DockedWorkbenchRegion } from '@pstdio/sdk/extensions';
8
- import { ExtensionCommandPaletteContribution } from '@pstdio/sdk/api';
9
- import { ExtensionMenuContribution } from '@pstdio/sdk/api';
10
- import { FileRendererSectionTarget } from '@pstdio/sdk/extensions';
11
- import { JSX } from 'react/jsx-runtime';
12
- import { KanbanRendererAttributeDisplay } from '@pstdio/sdk/extensions';
13
- import { Localizable } from '@pstdio/sdk/extensions';
14
- import { ModeRegionSettings } from '@pstdio/sdk/extensions';
15
- import { NavigationTarget as NavigationTarget_2 } from '@pstdio/sdk/extensions';
16
- import { NavigationTargetPage as NavigationTargetPage_2 } from '@pstdio/sdk/extensions';
17
- import { NavigationTargetPanel as NavigationTargetPanel_2 } from '@pstdio/sdk/extensions';
18
- import { PageLocation } from '@pstdio/sdk/extensions';
19
- import { PageMain } from '@pstdio/sdk/extensions';
20
- import { PageOpenIntent } from '@pstdio/sdk/extensions';
21
- import { PageRef } from '@pstdio/sdk/extensions';
22
- import { PageSlot } from '@pstdio/sdk/extensions';
23
- import { PlacementIdentity } from '@pstdio/sdk/extensions';
24
- import { PlacementItem } from '@pstdio/sdk/extensions';
25
- import { PlacementRef } from '@pstdio/sdk/extensions';
26
- import { ReactNode } from 'react';
27
- import { ResourceConstraint } from '@pstdio/sdk/extensions';
28
- import { ResourceRef } from '@pstdio/sdk/extensions';
29
- import { WebviewHostCapability } from '@pstdio/sdk/extensions';
30
- import { WorkbenchExtensionCommandPaletteResourceRecord } from '@pstdio/sdk/api';
31
- import { WorkbenchExtensionMetadata } from '@pstdio/sdk/api';
32
- import { z } from 'zod';
33
-
34
- declare interface AttributeDescriptor<TNode = unknown> {
35
- id: string;
36
- label: string;
37
- type: AttributeType;
38
- filterable?: boolean;
39
- groupable?: boolean;
40
- sortable?: boolean;
41
- displayable?: boolean;
42
- editable?: boolean;
43
- display?: AttributeDisplayDescriptor;
44
- render?: (value: unknown, row: KanbanRendererRow) => TNode;
45
- compare?: (a: unknown, b: unknown) => number;
46
- }
47
-
48
- declare type AttributeDisplayDescriptor = KanbanRendererAttributeDisplay;
49
-
50
- /**
51
- * Reactive source for an entire attribute schema. Lets a contribution
52
- * add/remove/edit attributes at runtime without re-registering.
53
- */
54
- declare interface AttributesSource<TNode = unknown> {
55
- subscribe: (listener: () => void) => () => void;
56
- getSnapshot: () => AttributeDescriptor<TNode>[];
57
- }
58
-
59
- declare type AttributeType = {
60
- kind: "enum";
61
- options: EnumOptions;
62
- } | {
63
- kind: "enum-multi";
64
- options: EnumOptions;
65
- } | {
66
- kind: "string";
67
- } | {
68
- kind: "date";
69
- } | {
70
- kind: "number";
71
- } | {
72
- kind: "user";
73
- };
74
-
75
- declare interface BoardColumnAction<TIcon = unknown> {
76
- id: string;
77
- label: string;
78
- icon: TIcon;
79
- }
80
-
81
- /** Board-column behavior and menu configuration for a resolved column group. */
82
- declare interface BoardColumnConfig<TIcon = unknown> {
83
- /** Color palette token used for the column header and group badges. */
84
- color?: string;
85
- canDragIn?: boolean;
86
- canDragOut?: boolean;
87
- canCreate?: boolean;
88
- actions?: BoardColumnAction<TIcon>[];
89
- }
90
-
91
- export declare interface BridgeWebviewConfig {
92
- title?: string;
93
- runtimeUrl: string;
94
- moduleUrl: string;
95
- styles?: string[];
96
- capabilities?: string[];
97
- }
98
-
99
- export declare interface BridgeWebviewRenderContext {
100
- workbench: WorkbenchCore;
101
- webviewId: string;
102
- placement: WorkbenchPanelInstance;
103
- /** Channel for pushing host events (e.g. terminal output) into this webview. */
104
- hostEvents: HostEventPublisher;
105
- }
106
-
107
- export declare const buildWorkbenchExtensionCommandPaletteRegistrations: (input: {
108
- metadata: CommandContributionMetadata;
109
- createCommandId?: (contribution: ExtensionCommandPaletteContribution) => string;
110
- resolveString?: WorkbenchExtensionStringResolver;
111
- }) => WorkbenchExtensionCommandPaletteRegistration[];
112
-
113
- export declare const buildWorkbenchExtensionMenuRegistrations: (input: {
114
- metadata: CommandContributionMetadata;
115
- menuSlotsById: ReadonlyMap<string, WorkbenchExtensionMenuSlotConfig>;
116
- menuTargetsById?: ReadonlyMap<string, WorkbenchExtensionMenuSlotConfig>;
117
- createCommandId?: (contribution: ExtensionMenuContribution) => string;
118
- createWhenExpression?: WorkbenchExtensionMenuWhenBuilder;
119
- resolveString?: WorkbenchExtensionStringResolver;
120
- }) => {
121
- registrations: WorkbenchExtensionMenuRegistration[];
122
- unresolved: UnresolvedWorkbenchExtensionMenuContribution[];
123
- };
124
-
125
- /**
126
- * A data-driven list of items, each opening a contributor-supplied editor. The
127
- * framework knows nothing about what an item is — it only calls these hooks.
128
- */
129
- declare interface CollectionSettingsPanel<TItem = unknown> extends SettingsPanelBase {
130
- kind: "collection";
131
- viewId: string;
132
- items(): TItem[] | Promise<TItem[]>;
133
- itemId(item: TItem): string;
134
- itemLabel(item: TItem): string;
135
- itemIcon?(item: TItem): string | undefined;
136
- groupBy?: SettingsCollectionGroupBy<TItem>;
137
- actions?: SettingsAction[];
138
- }
139
-
140
- declare interface Command {
141
- id: string;
142
- label: string;
143
- category?: string;
144
- description?: string;
145
- icon?: string;
146
- when?: string;
147
- params?: CommandParamSchema;
148
- }
149
-
150
- declare type CommandContributionMetadata = Pick<WorkbenchExtensionMetadata, "commands" | "commandPaletteContributions" | "menuContributions">;
151
-
152
- declare interface CommandHandler<TArgs = unknown, TResult = unknown> {
153
- prepareArgs?(args: TArgs, context?: WorkbenchCommandExecutionContext, onArgsChange?: (args: TArgs) => void): TArgs | Promise<TArgs>;
154
- execute(args: TArgs, context?: WorkbenchCommandExecutionContext): TResult | Promise<TResult>;
155
- isEnabled?(args: TArgs): boolean;
156
- isVisible?(args: TArgs): boolean;
157
- isToggled?(args: TArgs): boolean;
158
- }
159
-
160
- declare interface CommandPaletteResourceProvider {
161
- id: string;
162
- title: string;
163
- refreshEventIds?: string[];
164
- query(context: CommandPaletteResourceQueryContext): Promise<readonly CommandPaletteResourceResult[]>;
165
- }
166
-
167
- declare interface CommandPaletteResourceProviderResult {
168
- providerId: string;
169
- title: string;
170
- results: readonly CommandPaletteResourceResult[];
171
- }
172
-
173
- declare interface CommandPaletteResourceQueryContext {
174
- query: string;
175
- limit: number;
176
- }
177
-
178
- declare interface CommandPaletteResourceRegistry {
179
- store: WorkbenchStore<CommandPaletteResourceRegistryStoreState>;
180
- registerProvider(provider: CommandPaletteResourceProvider): Disposable_2;
181
- listProviders(): CommandPaletteResourceProvider[];
182
- queryProviders(context: CommandPaletteResourceQueryContext): Promise<CommandPaletteResourceProviderResult[]>;
183
- refresh(): void;
184
- }
185
-
186
- declare interface CommandPaletteResourceRegistryStoreState {
187
- providers: Record<string, CommandPaletteResourceProvider>;
188
- refreshToken: number;
189
- }
190
-
191
- declare interface CommandPaletteResourceResult {
192
- id: string;
193
- label: string;
194
- description?: string;
195
- icon?: string;
196
- keywords?: string[];
197
- group?: string;
198
- activate(): void | Promise<void>;
199
- }
200
-
201
- declare interface CommandParamDescriptor {
202
- type: string;
203
- label?: string;
204
- description?: string;
205
- required?: boolean;
206
- defaultValue?: unknown;
207
- options?: CommandParamOption[];
208
- templateType?: string;
209
- resourceType?: string;
210
- accept?: string;
211
- multiple?: boolean;
212
- metadata?: Record<string, unknown>;
213
- resolvedFrom?: "resource";
214
- }
215
-
216
- declare interface CommandParamOption {
217
- label: string;
218
- value: string;
219
- icon?: string;
220
- }
221
-
222
- declare type CommandParamSchema = Record<string, CommandParamDescriptor>;
223
-
224
- declare interface CommandRegistry {
225
- store: WorkbenchStore<CommandRegistryStoreState>;
226
- registerCommand<TArgs = unknown, TResult = unknown>(command: Command, handler: CommandHandler<TArgs, TResult>, metadata?: ContributionMetadata): Disposable_2;
227
- getCommand(id: string): RegisteredCommand | undefined;
228
- listCommands(): RegisteredCommand[];
229
- isCommandEnabled(id: string, args?: unknown): boolean;
230
- isCommandVisible(id: string, args?: unknown): boolean;
231
- isCommandToggled(id: string, args?: unknown): boolean;
232
- prepareCommandArgs(id: string, args: unknown, context?: WorkbenchCommandExecutionContext, onArgsChange?: (args: unknown) => void): Promise<unknown>;
233
- executeCommand(id: string, args?: unknown, context?: WorkbenchCommandExecutionContext): Promise<unknown>;
234
- onDidExecuteError(listener: WorkbenchCommandExecutionErrorListener): Disposable_2;
235
- }
236
-
237
- declare interface CommandRegistryStoreState {
238
- commands: Record<string, RegisteredCommand>;
239
- }
240
-
241
- declare interface ContextKeyScope extends Disposable_2 {
242
- ownerId: string;
243
- set(key: string, value: ContextKeyValue): void;
244
- get(key: string): ContextKeyValue;
245
- delete(key: string): void;
246
- }
247
-
248
- declare interface ContextKeyService {
249
- store: WorkbenchStore<ContextKeyStoreState>;
250
- set(key: string, value: ContextKeyValue): void;
251
- get(key: string): ContextKeyValue;
252
- delete(key: string): void;
253
- createScope(ownerId: string): ContextKeyScope;
254
- deleteOwner(ownerId: string): void;
255
- snapshot(): Record<string, ContextKeyValue>;
256
- matches(expression?: string): boolean;
257
- }
258
-
259
- declare interface ContextKeyStoreState {
260
- values: Record<string, ContextKeyValue>;
261
- }
262
-
263
- declare type ContextKeyValue = boolean | number | string | undefined;
264
-
265
- declare interface ContributionMetadata {
266
- source?: ContributionSource;
267
- ownerId?: string;
268
- priority?: number;
269
- }
270
-
271
- declare type ContributionSource = "module" | "extension";
272
-
273
- declare interface ControlsApplyInput {
274
- values: ControlValueMap;
275
- resource?: ResourceRef;
276
- }
277
-
278
- declare interface ControlsRendererContribution {
279
- id: string;
280
- title: string;
281
- resourceKind?: string;
282
- emptyTitle?: string;
283
- emptyDescription?: string;
284
- layout?: ControlsRendererLayout;
285
- defaultValues?: ControlValueMap;
286
- /** Load the control declarations + current values for the active resource. */
287
- executeQuery(resource?: ResourceRef): Promise<ControlsQueryResult> | ControlsQueryResult;
288
- /** Live-save a single control edit. Omit for explicit-apply or read-only panels. */
289
- updateValue?(input: ControlsUpdateValueInput): Promise<void> | void;
290
- /** Commit the full value map from a sticky footer. */
291
- apply?(input: ControlsApplyInput): Promise<void> | void;
292
- /** Reset some or all controls to their defaults. */
293
- reset?(input: ControlsResetInput): Promise<void> | void;
294
- subscribe?: (listener: () => void) => Disposable_2 | (() => void);
295
- }
296
-
297
- declare interface ControlsRendererLayout {
298
- region?: ControlsRendererRegion;
299
- defaultPx?: number;
300
- minPx?: number;
301
- maxPx?: number;
302
- }
303
-
304
- declare type ControlsRendererRegion = "main-right-menu" | "secondary" | "overlay";
305
-
306
- declare interface ControlsResetInput {
307
- controlIds?: string[];
308
- resource?: ResourceRef;
309
- }
310
-
311
- declare interface ControlsUpdateValueInput {
312
- controlId: string;
313
- value: ControlValue;
314
- values: ControlValueMap;
315
- resource?: ResourceRef;
316
- }
317
-
318
- export declare type CreateBridgeWebviewHostCapabilities = (context: BridgeWebviewRenderContext) => HostCapabilityRegistry;
319
-
320
- export declare type CreateBridgeWebviewProps = (context: BridgeWebviewRenderContext) => unknown;
321
-
322
- export declare type CreateBridgeWebviewTheme = (context: BridgeWebviewRenderContext) => ThemePreference_2;
323
-
324
- /**
325
- * Host side of the `terminal.session` webview capability. Sessions live in the
326
- * workbench terminal controller; only serializable operation payloads and session
327
- * ids cross the webview boundary. Output/exit events flow through the host event
328
- * publisher under the `terminal.session` scope.
329
- */
330
- export declare const createTerminalSessionCapability: (input: CreateTerminalSessionCapabilityInput) => HostCapability;
331
-
332
- declare interface CreateTerminalSessionCapabilityInput {
333
- terminal: WorkbenchTerminalController;
334
- hostEvents: HostEventPublisher;
335
- }
336
-
337
- export declare const createWorkbenchWebviewHostCapabilities: (input: CreateWorkbenchWebviewHostCapabilitiesInput) => {
338
- "terminal.session"?: HostCapability | undefined;
339
- "commands.execute": (params: unknown) => Promise<unknown>;
340
- "navigation.open": (params: unknown) => Promise<readonly unknown[]>;
341
- "notification.show": (params: unknown) => RegisteredWorkbenchNotification;
342
- "preferences.get": (params: unknown) => PreferenceValue | undefined;
343
- "preferences.set": (params: unknown) => {
344
- name: string;
345
- value: PreferenceValue;
346
- };
347
- "host.dispatchKeyboardEvent": (params: unknown) => void;
348
- "placement.close"?: ((params: unknown) => void) | undefined;
349
- };
350
-
351
- declare interface CreateWorkbenchWebviewHostCapabilitiesInput {
352
- dispatchKeyboardEvent?: (event: KeyboardEventInit) => void;
353
- workbench: WorkbenchCore;
354
- placement?: WorkbenchPanelInstance;
355
- /** Event channel into the guest; terminal.session is only offered when present. */
356
- hostEvents?: HostEventPublisher;
357
- }
358
-
359
- declare interface DataTableRendererColumn {
360
- id: string;
361
- label?: string;
362
- description?: string;
363
- icon?: unknown;
364
- hidden?: boolean;
365
- stat?: DataTableRendererColumnStat;
366
- renderer?: DataTableRendererColumnRenderer;
367
- }
368
-
369
- declare type DataTableRendererColumnRenderer = {
370
- type: "json";
371
- } | {
372
- type: "color-scale";
373
- stops: Array<{
374
- value: number;
375
- color: DataTableRendererThemeColor;
376
- }>;
377
- } | {
378
- type: "categorical-color";
379
- categories: Array<{
380
- value: string | number | boolean | null;
381
- color: DataTableRendererThemeColor;
382
- }>;
383
- };
384
-
385
- declare type DataTableRendererColumnStat = {
386
- type: "unique";
387
- } | {
388
- type: "histogram";
389
- bins?: number;
390
- } | {
391
- type: "top-values";
392
- limit?: number;
393
- };
394
-
395
- declare interface DataTableRendererContribution {
396
- id: string;
397
- title: string;
398
- resourceKind?: string;
399
- columns?: DataTableRendererColumn[];
400
- selectionMode?: "none" | "multiple";
401
- selectionActions?: DataTableRendererSelectionAction[];
402
- rowActions?: DataTableRendererRowAction[];
403
- initialPageSize?: number;
404
- pageSizeOptions?: number[];
405
- emptyTitle?: string;
406
- emptyDescription?: string;
407
- executeQuery(context: DataTableRendererQueryContext): Promise<DataTableRendererQueryResult> | DataTableRendererQueryResult;
408
- subscribe?: (listener: () => void) => Disposable_2 | (() => void);
409
- onRowActivate?: (row: DataTableRendererRow) => Promise<void> | void;
410
- }
411
-
412
- declare interface DataTableRendererQueryContext {
413
- resource?: ResourceRef;
414
- modeId?: string;
415
- }
416
-
417
- declare interface DataTableRendererQueryResult {
418
- rows: DataTableRendererRow[];
419
- columns?: DataTableRendererColumn[];
420
- }
421
-
422
- declare interface DataTableRendererRow {
423
- id: string;
424
- values: Record<string, unknown>;
425
- resource?: ResourceRef;
426
- }
427
-
428
- declare interface DataTableRendererRowAction {
429
- id: string;
430
- label: string;
431
- icon?: unknown;
432
- destructive?: boolean;
433
- run(row: DataTableRendererRow): Promise<void> | void;
434
- }
435
-
436
- declare interface DataTableRendererSelectionAction {
437
- id: string;
438
- label: string;
439
- icon?: unknown;
440
- destructive?: boolean;
441
- run(rows: DataTableRendererRow[]): Promise<void> | void;
442
- }
443
-
444
- declare interface DataTableRendererThemeColor {
445
- light: string;
446
- dark: string;
447
- foreground?: {
448
- light: string;
449
- dark: string;
450
- };
451
- }
452
-
453
- declare interface Disposable_2 {
454
- dispose(): void;
455
- }
456
-
457
- declare type DistributiveOmit<T, K extends PropertyKey> = T extends unknown ? Omit<T, K> : never;
458
-
459
- export declare const emptyWorkbenchExtensionMetadata: {
460
- commands: never[];
461
- commandPaletteContributions: never[];
462
- diagnostics: never[];
463
- extensions: never[];
464
- menuContributions: never[];
465
- modes: never[];
466
- pages: never[];
467
- views: never[];
468
- viewMenus: never[];
469
- placements: never[];
470
- resourceKinds: never[];
471
- navigationItems: never[];
472
- navigationTrees: never[];
473
- statusBarItems: never[];
474
- statuses: never[];
475
- settingsPanels: never[];
476
- settingsDefinitions: never[];
477
- };
478
-
479
- declare interface EnumOption {
480
- value: string;
481
- label: string;
482
- color?: string;
483
- icon?: string | null;
484
- }
485
-
486
- declare type EnumOptions = EnumOption[] | EnumOptionsSource;
487
-
488
- /**
489
- * Reactive options source for enum / enum-multi attributes. Mirrors React's
490
- * useSyncExternalStore contract so a contribution can hand its options off as
491
- * a live collection instead of a frozen array.
492
- */
493
- declare interface EnumOptionsSource {
494
- subscribe: (listener: () => void) => () => void;
495
- getSnapshot: () => EnumOption[];
496
- }
497
-
498
- declare interface ExecuteWorkbenchExtensionCommandInput {
499
- metadata?: Record<string, unknown>;
500
- params?: Record<string, unknown>;
501
- resource?: ResourceRef;
502
- slot?: CommandExecuteRequest["slot"];
503
- }
504
-
505
- export declare const executeWorkbenchExtensionCommandResponse: (context: Pick<WorkbenchExtensionCommandContext, "executeCommand" | "projectId"> & {
506
- workbench: Pick<WorkbenchModuleContext, "navigation" | "notifications">;
507
- }, commandId: string, input?: ExecuteWorkbenchExtensionCommandInput) => Promise<unknown>;
508
-
509
- declare const extensionCommandPaletteResourceRecordSchema: z.ZodObject<{
510
- id: z.ZodString;
511
- extensionId: z.ZodString;
512
- title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
513
- $l10n: z.ZodString;
514
- default: z.ZodOptional<z.ZodString>;
515
- }, z.core.$strip>]>;
516
- resourceKind: z.ZodOptional<z.ZodString>;
517
- queryHandlerId: z.ZodString;
518
- refreshEventIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
519
- }, z.core.$strip>;
520
-
521
- declare const extensionControlsRendererRecordSchema: z.ZodObject<{
522
- id: z.ZodString;
523
- extensionId: z.ZodString;
524
- title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
525
- $l10n: z.ZodString;
526
- default: z.ZodOptional<z.ZodString>;
527
- }, z.core.$strip>]>;
528
- icon: z.ZodOptional<z.ZodString>;
529
- resourceKind: z.ZodOptional<z.ZodString>;
530
- refreshEventIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
531
- emptyTitle: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
532
- $l10n: z.ZodString;
533
- default: z.ZodOptional<z.ZodString>;
534
- }, z.core.$strip>]>>;
535
- emptyDescription: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
536
- $l10n: z.ZodString;
537
- default: z.ZodOptional<z.ZodString>;
538
- }, z.core.$strip>]>>;
539
- queryHandlerId: z.ZodString;
540
- valueChangeHandlerId: z.ZodOptional<z.ZodString>;
541
- applyHandlerId: z.ZodOptional<z.ZodString>;
542
- resetHandlerId: z.ZodOptional<z.ZodString>;
543
- 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<{
544
- x: z.ZodNumber;
545
- y: z.ZodNumber;
546
- }, z.core.$strict>]>>>;
547
- }, z.core.$strip>;
548
-
549
- declare type ExtensionDataTableRendererRecord = z.infer<typeof extensionDataTableRendererRecordSchema>;
550
-
551
- declare const extensionDataTableRendererRecordSchema: z.ZodObject<{
552
- id: z.ZodString;
553
- extensionId: z.ZodString;
554
- title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
555
- $l10n: z.ZodString;
556
- default: z.ZodOptional<z.ZodString>;
557
- }, z.core.$strip>]>;
558
- icon: z.ZodOptional<z.ZodString>;
559
- resourceKind: z.ZodOptional<z.ZodString>;
560
- refreshEventIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
561
- emptyTitle: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
562
- $l10n: z.ZodString;
563
- default: z.ZodOptional<z.ZodString>;
564
- }, z.core.$strip>]>>;
565
- emptyDescription: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
566
- $l10n: z.ZodString;
567
- default: z.ZodOptional<z.ZodString>;
568
- }, z.core.$strip>]>>;
569
- columns: z.ZodOptional<z.ZodArray<z.ZodObject<{
570
- id: z.ZodString;
571
- label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
572
- $l10n: z.ZodString;
573
- default: z.ZodOptional<z.ZodString>;
574
- }, z.core.$strip>]>>;
575
- description: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
576
- $l10n: z.ZodString;
577
- default: z.ZodOptional<z.ZodString>;
578
- }, z.core.$strip>]>>;
579
- icon: z.ZodOptional<z.ZodString>;
580
- hidden: z.ZodOptional<z.ZodBoolean>;
581
- stat: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
582
- type: z.ZodLiteral<"unique">;
583
- }, z.core.$strip>, z.ZodObject<{
584
- type: z.ZodLiteral<"histogram">;
585
- bins: z.ZodOptional<z.ZodNumber>;
586
- }, z.core.$strip>, z.ZodObject<{
587
- type: z.ZodLiteral<"top-values">;
588
- limit: z.ZodOptional<z.ZodNumber>;
589
- }, z.core.$strip>], "type">>;
590
- renderer: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
591
- type: z.ZodLiteral<"json">;
592
- }, z.core.$strip>, z.ZodObject<{
593
- type: z.ZodLiteral<"color-scale">;
594
- stops: z.ZodArray<z.ZodObject<{
595
- value: z.ZodNumber;
596
- color: z.ZodObject<{
597
- light: z.ZodString;
598
- dark: z.ZodString;
599
- foreground: z.ZodOptional<z.ZodObject<{
600
- light: z.ZodString;
601
- dark: z.ZodString;
602
- }, z.core.$strip>>;
603
- }, z.core.$strip>;
604
- }, z.core.$strip>>;
605
- }, z.core.$strip>, z.ZodObject<{
606
- type: z.ZodLiteral<"categorical-color">;
607
- categories: z.ZodArray<z.ZodObject<{
608
- value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
609
- color: z.ZodObject<{
610
- light: z.ZodString;
611
- dark: z.ZodString;
612
- foreground: z.ZodOptional<z.ZodObject<{
613
- light: z.ZodString;
614
- dark: z.ZodString;
615
- }, z.core.$strip>>;
616
- }, z.core.$strip>;
617
- }, z.core.$strip>>;
618
- }, z.core.$strip>], "type">>;
619
- }, z.core.$strip>>>;
620
- queryHandlerId: z.ZodString;
621
- selectionMode: z.ZodOptional<z.ZodEnum<{
622
- none: "none";
623
- multiple: "multiple";
624
- }>>;
625
- selectionActions: z.ZodOptional<z.ZodArray<z.ZodObject<{
626
- id: z.ZodString;
627
- label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
628
- $l10n: z.ZodString;
629
- default: z.ZodOptional<z.ZodString>;
630
- }, z.core.$strip>]>;
631
- icon: z.ZodOptional<z.ZodString>;
632
- destructive: z.ZodOptional<z.ZodBoolean>;
633
- commandId: z.ZodString;
634
- }, z.core.$strip>>>;
635
- rowActions: z.ZodOptional<z.ZodArray<z.ZodObject<{
636
- id: z.ZodString;
637
- label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
638
- $l10n: z.ZodString;
639
- default: z.ZodOptional<z.ZodString>;
640
- }, z.core.$strip>]>;
641
- icon: z.ZodOptional<z.ZodString>;
642
- destructive: z.ZodOptional<z.ZodBoolean>;
643
- commandId: z.ZodString;
644
- }, z.core.$strip>>>;
645
- rowActivationHandlerId: z.ZodOptional<z.ZodString>;
646
- initialPageSize: z.ZodOptional<z.ZodNumber>;
647
- pageSizeOptions: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
648
- }, z.core.$strip>;
649
-
650
- declare const extensionFileRendererRecordSchema: z.ZodObject<{
651
- id: z.ZodString;
652
- extensionId: z.ZodString;
653
- title: 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
- resourceKind: z.ZodOptional<z.ZodString>;
659
- refreshEventIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
660
- emptyTitle: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
661
- $l10n: z.ZodString;
662
- default: z.ZodOptional<z.ZodString>;
663
- }, z.core.$strip>]>>;
664
- emptyDescription: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
665
- $l10n: z.ZodString;
666
- default: z.ZodOptional<z.ZodString>;
667
- }, z.core.$strip>]>>;
668
- loadHandlerId: z.ZodString;
669
- saveHandlerId: z.ZodOptional<z.ZodString>;
670
- }, z.core.$strip>;
671
-
672
- declare const extensionKanbanRendererRecordSchema: z.ZodObject<{
673
- id: z.ZodString;
674
- extensionId: z.ZodString;
675
- title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
676
- $l10n: z.ZodString;
677
- default: z.ZodOptional<z.ZodString>;
678
- }, z.core.$strip>]>;
679
- icon: z.ZodOptional<z.ZodString>;
680
- resourceKind: z.ZodOptional<z.ZodString>;
681
- refreshEventIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
682
- emptyTitle: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
683
- $l10n: z.ZodString;
684
- default: z.ZodOptional<z.ZodString>;
685
- }, z.core.$strip>]>>;
686
- emptyDescription: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
687
- $l10n: z.ZodString;
688
- default: z.ZodOptional<z.ZodString>;
689
- }, z.core.$strip>]>>;
690
- extensionInstanceId: z.ZodOptional<z.ZodString>;
691
- attributes: z.ZodOptional<z.ZodArray<z.ZodObject<{
692
- id: z.ZodString;
693
- label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
694
- $l10n: z.ZodString;
695
- default: z.ZodOptional<z.ZodString>;
696
- }, z.core.$strip>]>;
697
- type: z.ZodDiscriminatedUnion<[z.ZodObject<{
698
- kind: z.ZodLiteral<"enum">;
699
- options: z.ZodArray<z.ZodObject<{
700
- value: z.ZodString;
701
- label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
702
- $l10n: z.ZodString;
703
- default: z.ZodOptional<z.ZodString>;
704
- }, z.core.$strip>]>;
705
- color: z.ZodOptional<z.ZodString>;
706
- icon: z.ZodOptional<z.ZodNullable<z.ZodString>>;
707
- }, z.core.$strip>>;
708
- }, z.core.$strip>, z.ZodObject<{
709
- kind: z.ZodLiteral<"enum-multi">;
710
- options: z.ZodArray<z.ZodObject<{
711
- value: z.ZodString;
712
- label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
713
- $l10n: z.ZodString;
714
- default: z.ZodOptional<z.ZodString>;
715
- }, z.core.$strip>]>;
716
- color: z.ZodOptional<z.ZodString>;
717
- icon: z.ZodOptional<z.ZodNullable<z.ZodString>>;
718
- }, z.core.$strip>>;
719
- }, z.core.$strip>, z.ZodObject<{
720
- kind: z.ZodLiteral<"status">;
721
- statuses: z.ZodObject<{
722
- extensionId: z.ZodOptional<z.ZodString>;
723
- kind: z.ZodLiteral<"status">;
724
- id: z.ZodString;
725
- }, z.core.$strip>;
726
- }, z.core.$strip>, z.ZodObject<{
727
- kind: z.ZodLiteral<"string">;
728
- }, z.core.$strip>, z.ZodObject<{
729
- kind: z.ZodLiteral<"date">;
730
- }, z.core.$strip>, z.ZodObject<{
731
- kind: z.ZodLiteral<"number">;
732
- }, z.core.$strip>, z.ZodObject<{
733
- kind: z.ZodLiteral<"user">;
734
- }, z.core.$strip>], "kind">;
735
- filterable: z.ZodOptional<z.ZodBoolean>;
736
- groupable: z.ZodOptional<z.ZodBoolean>;
737
- sortable: z.ZodOptional<z.ZodBoolean>;
738
- displayable: z.ZodOptional<z.ZodBoolean>;
739
- editable: z.ZodOptional<z.ZodBoolean>;
740
- display: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
741
- kind: z.ZodLiteral<"badge-list">;
742
- itemsAttributeId: z.ZodString;
743
- }, z.core.$strip>, z.ZodObject<{
744
- kind: z.ZodString;
745
- }, z.core.$loose>]>>;
746
- }, z.core.$strip>>>;
747
- queryHandlerId: z.ZodString;
748
- attributeChangeHandlerId: z.ZodOptional<z.ZodString>;
749
- reorderHandlerId: z.ZodOptional<z.ZodString>;
750
- columnActionHandlerId: z.ZodOptional<z.ZodString>;
751
- createRow: z.ZodOptional<z.ZodObject<{
752
- commandId: z.ZodString;
753
- title: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
754
- $l10n: z.ZodString;
755
- default: z.ZodOptional<z.ZodString>;
756
- }, z.core.$strip>]>>;
757
- submitLabel: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
758
- $l10n: z.ZodString;
759
- default: z.ZodOptional<z.ZodString>;
760
- }, z.core.$strip>]>>;
761
- columnParam: z.ZodOptional<z.ZodString>;
762
- params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
763
- type: z.ZodString;
764
- }, z.core.$catchall<z.ZodUnknown>>>>;
765
- attributesParam: z.ZodOptional<z.ZodString>;
766
- attachments: z.ZodOptional<z.ZodObject<{
767
- commandId: z.ZodString;
768
- resourceParam: z.ZodString;
769
- fileParam: z.ZodString;
770
- }, z.core.$strip>>;
771
- labels: z.ZodOptional<z.ZodObject<{
772
- cancel: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
773
- $l10n: z.ZodString;
774
- default: z.ZodOptional<z.ZodString>;
775
- }, z.core.$strip>]>>;
776
- properties: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
777
- $l10n: z.ZodString;
778
- default: z.ZodOptional<z.ZodString>;
779
- }, z.core.$strip>]>>;
780
- submitError: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
781
- $l10n: z.ZodString;
782
- default: z.ZodOptional<z.ZodString>;
783
- }, z.core.$strip>]>>;
784
- removeFile: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
785
- $l10n: z.ZodString;
786
- default: z.ZodOptional<z.ZodString>;
787
- }, z.core.$strip>]>>;
788
- }, z.core.$strip>>;
789
- }, z.core.$strip>>;
790
- rowActions: z.ZodOptional<z.ZodArray<z.ZodObject<{
791
- id: z.ZodString;
792
- label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
793
- $l10n: z.ZodString;
794
- default: z.ZodOptional<z.ZodString>;
795
- }, z.core.$strip>]>;
796
- icon: z.ZodOptional<z.ZodString>;
797
- commandId: z.ZodString;
798
- destructive: z.ZodOptional<z.ZodBoolean>;
799
- }, z.core.$strip>>>;
800
- rowActivationHandlerId: z.ZodOptional<z.ZodString>;
801
- defaultSettings: z.ZodOptional<z.ZodObject<{
802
- viewMode: z.ZodOptional<z.ZodEnum<{
803
- board: "board";
804
- list: "list";
805
- }>>;
806
- columnGrouping: z.ZodOptional<z.ZodString>;
807
- rowGrouping: z.ZodOptional<z.ZodString>;
808
- ordering: z.ZodOptional<z.ZodObject<{
809
- attributeId: z.ZodString;
810
- direction: z.ZodEnum<{
811
- asc: "asc";
812
- desc: "desc";
813
- }>;
814
- }, z.core.$strip>>;
815
- displayProperties: z.ZodOptional<z.ZodArray<z.ZodString>>;
816
- }, z.core.$strip>>;
817
- defaultFilters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
818
- defaultViews: z.ZodOptional<z.ZodArray<z.ZodObject<{
819
- id: z.ZodString;
820
- title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
821
- $l10n: z.ZodString;
822
- default: z.ZodOptional<z.ZodString>;
823
- }, z.core.$strip>]>;
824
- settings: z.ZodObject<{
825
- viewMode: z.ZodEnum<{
826
- board: "board";
827
- list: "list";
828
- }>;
829
- columnGrouping: z.ZodString;
830
- rowGrouping: z.ZodString;
831
- ordering: z.ZodObject<{
832
- attributeId: z.ZodString;
833
- direction: z.ZodEnum<{
834
- asc: "asc";
835
- desc: "desc";
836
- }>;
837
- }, z.core.$strip>;
838
- displayProperties: z.ZodArray<z.ZodString>;
839
- }, z.core.$strip>;
840
- filters: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>;
841
- isDefault: z.ZodOptional<z.ZodBoolean>;
842
- }, z.core.$strip>>>;
843
- defaultActiveViewId: z.ZodOptional<z.ZodString>;
844
- hideToolbar: z.ZodOptional<z.ZodBoolean>;
845
- }, z.core.$strip>;
846
-
847
- declare type ExtensionKeybindingRecord = z.infer<typeof extensionKeybindingRecordSchema>;
848
-
849
- declare const extensionKeybindingRecordSchema: z.ZodObject<{
850
- id: z.ZodString;
851
- extensionId: z.ZodString;
852
- action: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodType<MetadataPageTarget, unknown, z.core.$ZodTypeInternals<MetadataPageTarget, unknown>>, z.ZodObject<{
853
- kind: z.ZodLiteral<"panel">;
854
- panel: z.ZodUnion<readonly [z.ZodObject<{
855
- extensionId: z.ZodString;
856
- kind: z.ZodLiteral<"placement">;
857
- id: z.ZodString;
858
- }, z.core.$strip>, z.ZodObject<{
859
- kind: z.ZodLiteral<"page-slot">;
860
- page: z.ZodObject<{
861
- extensionId: z.ZodString;
862
- kind: z.ZodLiteral<"page">;
863
- id: z.ZodString;
864
- }, z.core.$strip>;
865
- id: z.ZodString;
866
- }, z.core.$strip>]>;
867
- resource: z.ZodOptional<z.ZodObject<{
868
- shorthand: z.ZodOptional<z.ZodString>;
869
- type: z.ZodString;
870
- id: z.ZodString;
871
- projectId: z.ZodOptional<z.ZodString>;
872
- label: z.ZodOptional<z.ZodString>;
873
- icon: z.ZodOptional<z.ZodString>;
874
- extensionId: z.ZodOptional<z.ZodString>;
875
- metadata: z.ZodOptional<z.ZodType<JsonObject, unknown, z.core.$ZodTypeInternals<JsonObject, unknown>>>;
876
- }, z.core.$strip>>;
877
- open: z.ZodOptional<z.ZodEnum<{
878
- preview: "preview";
879
- pin: "pin";
880
- }>>;
881
- }, z.core.$strip>]>, z.ZodObject<{
882
- kind: z.ZodLiteral<"command">;
883
- target: z.ZodObject<{
884
- command: z.ZodObject<{
885
- extensionId: z.ZodString;
886
- kind: z.ZodLiteral<"command">;
887
- id: z.ZodString;
888
- }, z.core.$strip>;
889
- params: z.ZodOptional<z.ZodType<JsonObject, unknown, z.core.$ZodTypeInternals<JsonObject, unknown>>>;
890
- }, z.core.$strip>;
891
- }, z.core.$strip>, z.ZodObject<{
892
- kind: z.ZodLiteral<"href">;
893
- href: z.ZodString;
894
- }, z.core.$strip>, z.ZodObject<{
895
- kind: z.ZodLiteral<"compound">;
896
- targets: z.ZodArray<z.ZodUnion<readonly [z.ZodType<MetadataPageTarget, unknown, z.core.$ZodTypeInternals<MetadataPageTarget, unknown>>, z.ZodObject<{
897
- kind: z.ZodLiteral<"panel">;
898
- panel: z.ZodUnion<readonly [z.ZodObject<{
899
- extensionId: z.ZodString;
900
- kind: z.ZodLiteral<"placement">;
901
- id: z.ZodString;
902
- }, z.core.$strip>, z.ZodObject<{
903
- kind: z.ZodLiteral<"page-slot">;
904
- page: z.ZodObject<{
905
- extensionId: z.ZodString;
906
- kind: z.ZodLiteral<"page">;
907
- id: z.ZodString;
908
- }, z.core.$strip>;
909
- id: z.ZodString;
910
- }, z.core.$strip>]>;
911
- resource: z.ZodOptional<z.ZodObject<{
912
- shorthand: z.ZodOptional<z.ZodString>;
913
- type: z.ZodString;
914
- id: z.ZodString;
915
- projectId: z.ZodOptional<z.ZodString>;
916
- label: z.ZodOptional<z.ZodString>;
917
- icon: z.ZodOptional<z.ZodString>;
918
- extensionId: z.ZodOptional<z.ZodString>;
919
- metadata: z.ZodOptional<z.ZodType<JsonObject, unknown, z.core.$ZodTypeInternals<JsonObject, unknown>>>;
920
- }, z.core.$strip>>;
921
- open: z.ZodOptional<z.ZodEnum<{
922
- preview: "preview";
923
- pin: "pin";
924
- }>>;
925
- }, z.core.$strip>]>>;
926
- }, z.core.$strip>]>;
927
- key: z.ZodString;
928
- canonicalChord: z.ZodString;
929
- parsed: z.ZodObject<{
930
- key: z.ZodString;
931
- ctrl: z.ZodBoolean;
932
- shift: z.ZodBoolean;
933
- alt: z.ZodBoolean;
934
- meta: z.ZodBoolean;
935
- modifiers: z.ZodArray<z.ZodString>;
936
- }, z.core.$strip>;
937
- platformOverrides: z.ZodOptional<z.ZodObject<{
938
- mac: z.ZodOptional<z.ZodString>;
939
- linux: z.ZodOptional<z.ZodString>;
940
- win: z.ZodOptional<z.ZodString>;
941
- }, z.core.$strip>>;
942
- when: z.ZodOptional<z.ZodObject<{
943
- mode: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
944
- source: z.ZodOptional<z.ZodArray<z.ZodEnum<{
945
- event: "event";
946
- schedule: "schedule";
947
- api: "api";
948
- cli: "cli";
949
- dashboard: "dashboard";
950
- automation: "automation";
951
- "command-panel": "command-panel";
952
- }>>>;
953
- viewId: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
954
- resourceType: z.ZodOptional<z.ZodArray<z.ZodString>>;
955
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
956
- }, z.core.$strip>>;
957
- }, z.core.$strip>;
958
-
959
- declare type ExtensionMenuContribution_2 = z.infer<typeof extensionMenuContributionSchema>;
960
-
961
- declare const extensionMenuContributionSchema: z.ZodObject<{
962
- id: z.ZodString;
963
- extensionId: z.ZodString;
964
- commandId: z.ZodString;
965
- slotId: z.ZodString;
966
- target: z.ZodOptional<z.ZodEnum<{
967
- "workbench.nav.actions": "workbench.nav.actions";
968
- "workbench.nav.overflow": "workbench.nav.overflow";
969
- }>>;
970
- label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
971
- $l10n: z.ZodString;
972
- default: z.ZodOptional<z.ZodString>;
973
- }, z.core.$strip>]>;
974
- group: z.ZodOptional<z.ZodString>;
975
- placement: z.ZodOptional<z.ZodEnum<{
976
- default: "default";
977
- first: "first";
978
- last: "last";
979
- }>>;
980
- icon: z.ZodOptional<z.ZodString>;
981
- presentation: z.ZodOptional<z.ZodEnum<{
982
- button: "button";
983
- "menu-item": "menu-item";
984
- "icon-button": "icon-button";
985
- }>>;
986
- params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
987
- when: z.ZodOptional<z.ZodObject<{
988
- mode: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
989
- source: z.ZodOptional<z.ZodArray<z.ZodEnum<{
990
- event: "event";
991
- schedule: "schedule";
992
- api: "api";
993
- cli: "cli";
994
- dashboard: "dashboard";
995
- automation: "automation";
996
- "command-panel": "command-panel";
997
- }>>>;
998
- viewId: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
999
- resourceType: z.ZodOptional<z.ZodArray<z.ZodString>>;
1000
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1001
- }, z.core.$strip>>;
1002
- }, z.core.$strip>;
1003
-
1004
- declare const extensionResourceRefSchema: z.ZodObject<{
1005
- shorthand: z.ZodOptional<z.ZodString>;
1006
- type: z.ZodString;
1007
- id: z.ZodString;
1008
- projectId: z.ZodOptional<z.ZodString>;
1009
- label: z.ZodOptional<z.ZodString>;
1010
- icon: z.ZodOptional<z.ZodString>;
1011
- extensionId: z.ZodOptional<z.ZodString>;
1012
- metadata: z.ZodOptional<z.ZodType<JsonObject, unknown, z.core.$ZodTypeInternals<JsonObject, unknown>>>;
1013
- }, z.core.$strip>;
1014
-
1015
- declare type ExtensionSettingDefinitionRecord = z.infer<typeof extensionSettingDefinitionRecordSchema>;
1016
-
1017
- declare const extensionSettingDefinitionRecordSchema: z.ZodObject<{
1018
- key: z.ZodString;
1019
- extensionId: z.ZodString;
1020
- type: z.ZodEnum<{
1021
- string: "string";
1022
- number: "number";
1023
- boolean: "boolean";
1024
- object: "object";
1025
- array: "array";
1026
- }>;
1027
- scope: z.ZodEnum<{
1028
- project: "project";
1029
- global: "global";
1030
- }>;
1031
- default: z.ZodOptional<z.ZodUnknown>;
1032
- enum: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
1033
- title: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1034
- $l10n: z.ZodString;
1035
- default: z.ZodOptional<z.ZodString>;
1036
- }, z.core.$strip>]>>;
1037
- description: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1038
- $l10n: z.ZodString;
1039
- default: z.ZodOptional<z.ZodString>;
1040
- }, z.core.$strip>]>>;
1041
- }, z.core.$strip>;
1042
-
1043
- declare type ExtensionSettingsSectionRecord = z.infer<typeof extensionSettingsSectionRecordSchema>;
1044
-
1045
- declare const extensionSettingsSectionRecordSchema: z.ZodObject<{
1046
- id: z.ZodString;
1047
- extensionId: z.ZodString;
1048
- title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1049
- $l10n: z.ZodString;
1050
- default: z.ZodOptional<z.ZodString>;
1051
- }, z.core.$strip>]>;
1052
- scope: z.ZodOptional<z.ZodEnum<{
1053
- project: "project";
1054
- global: "global";
1055
- }>>;
1056
- order: z.ZodOptional<z.ZodNumber>;
1057
- }, z.core.$strip>;
1058
-
1059
- declare type ExtensionTreeRendererRecord = NonNullable<InternalWorkbenchExtensionMetadata["treeRenderers"]>[number];
1060
-
1061
- declare const extensionTreeRendererRecordSchema: z.ZodObject<{
1062
- id: z.ZodString;
1063
- extensionId: z.ZodString;
1064
- title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1065
- $l10n: z.ZodString;
1066
- default: z.ZodOptional<z.ZodString>;
1067
- }, z.core.$strip>]>;
1068
- icon: z.ZodOptional<z.ZodString>;
1069
- resourceKind: z.ZodOptional<z.ZodString>;
1070
- refreshEventIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1071
- emptyTitle: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1072
- $l10n: z.ZodString;
1073
- default: z.ZodOptional<z.ZodString>;
1074
- }, z.core.$strip>]>>;
1075
- emptyDescription: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1076
- $l10n: z.ZodString;
1077
- default: z.ZodOptional<z.ZodString>;
1078
- }, z.core.$strip>]>>;
1079
- searchable: z.ZodOptional<z.ZodBoolean>;
1080
- searchPlaceholder: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1081
- $l10n: z.ZodString;
1082
- default: z.ZodOptional<z.ZodString>;
1083
- }, z.core.$strip>]>>;
1084
- headerHandlerId: z.ZodOptional<z.ZodString>;
1085
- bodyHandlerId: z.ZodString;
1086
- childrenHandlerId: z.ZodOptional<z.ZodString>;
1087
- footerHandlerId: z.ZodOptional<z.ZodString>;
1088
- defaultExpandedSectionIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1089
- defaultExpandedNodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1090
- }, z.core.$strip>;
1091
-
1092
- declare type ExtensionTreeResource = ResourceRef;
1093
-
1094
- declare type ExtensionTreeViewRecord = InternalWorkbenchExtensionMetadata["panels"][number] | NonNullable<InternalWorkbenchExtensionMetadata["panels"][number]["panelMenus"]>[number];
1095
-
1096
- export declare interface ExtensionWebviewArtifactCapabilities {
1097
- read(params: unknown, context: {
1098
- webviewId: string;
1099
- }): Promise<unknown> | unknown;
1100
- }
1101
-
1102
- export declare interface ExtensionWebviewFileCapabilities {
1103
- delete(params: unknown): Promise<unknown> | unknown;
1104
- list(params: unknown): Promise<unknown> | unknown;
1105
- upload(params: unknown): Promise<unknown> | unknown;
1106
- }
1107
-
1108
- /**
1109
- * Core-owned contract for file icon theme registrations. Structurally identical
1110
- * to @pstdio/ui's FileIconThemePreferenceOption; the React layer bridges the two
1111
- * so core does not depend on UI package ownership.
1112
- */
1113
- declare interface FileIconThemeFont {
1114
- fontFamily: string;
1115
- src: {
1116
- url: string;
1117
- format?: string;
1118
- }[];
1119
- weight?: string;
1120
- style?: string;
1121
- }
1122
-
1123
- declare interface FileIconThemePreferenceOption {
1124
- id: string;
1125
- title?: string;
1126
- definitions: Record<string, unknown>;
1127
- fileExtensions: Record<string, string>;
1128
- fileNames: Record<string, string>;
1129
- defaults: {
1130
- file?: string;
1131
- folder?: string;
1132
- };
1133
- fonts: FileIconThemeFont[];
1134
- }
1135
-
1136
- declare interface FileIconThemeRegistry {
1137
- store: WorkbenchStore<WorkbenchFileIconThemeStoreState>;
1138
- register(themes: readonly FileIconThemePreferenceOption[]): Disposable_2;
1139
- listThemes(): readonly FileIconThemePreferenceOption[];
1140
- }
1141
-
1142
- declare interface FileRendererContent {
1143
- fileName?: string;
1144
- /** Workspace-relative path shown above the file preview. */
1145
- filePath?: string;
1146
- mimeType?: string;
1147
- content?: string;
1148
- dataUrl?: string;
1149
- placeholder?: string;
1150
- /** Override contribution-level save support for one loaded file. */
1151
- editable?: boolean;
1152
- /** Request Monaco for text that automatic dispatch would open as markdown. */
1153
- textRenderer?: "automatic" | "monaco";
1154
- /** Represent a deliberate no-file selection without an editable blank document. */
1155
- emptyState?: {
1156
- title: string;
1157
- description?: string;
1158
- };
1159
- /** Ordered backing-store revision when one is available. */
1160
- revision?: string;
1161
- }
1162
-
1163
- declare interface FileRendererContribution {
1164
- id: string;
1165
- title: string;
1166
- resourceKind?: string;
1167
- /** Resolve the file's content (and identity) for the bound resource. */
1168
- load(resource: ResourceRef | undefined): Promise<FileRendererContent> | FileRendererContent;
1169
- /** Persist edited text. Absent ⇒ read-only. Never called for images. */
1170
- save?(resource: ResourceRef | undefined, content: string, origin?: FileRendererRefreshOrigin): Promise<FileRendererSaveResult | undefined> | FileRendererSaveResult | void;
1171
- }
1172
-
1173
- declare interface FileRendererRefreshEnvelope {
1174
- resourceKey?: string;
1175
- origin?: FileRendererRefreshOrigin;
1176
- revision?: string;
1177
- }
1178
-
1179
- export declare const fileRendererRefreshEnvelopeFromCommand: (body: CommandExecuteRequest, response: CommandExecuteResponse) => FileRendererRefreshEnvelope | undefined;
1180
-
1181
- declare interface FileRendererRefreshOrigin {
1182
- rendererId: string;
1183
- instanceId: string;
1184
- operationId: string;
1185
- }
1186
-
1187
- declare interface FileRendererSaveResult {
1188
- revision?: string;
1189
- }
1190
-
1191
- export declare const getBridgeWebviewHostEventPublisher: (workbench: WorkbenchCore, instance: WorkbenchPanelInstance) => HostEventPublisher;
1192
-
1193
- declare type HostCapability<TParams = unknown, TResult = unknown> = (params: TParams) => Promise<TResult> | TResult;
1194
-
1195
- declare type HostCapabilityRegistry = Partial<Record<WebviewHostCapability, HostCapability>>;
1196
-
1197
- declare type HostEventMessage = {
1198
- scope: string;
1199
- payload: unknown;
1200
- };
1201
-
1202
- /**
1203
- * Host-side fan-in for events pushed into one guest webview. Capability
1204
- * implementations `emit` while the frame owns the transport: events emitted
1205
- * before the guest connection is up are buffered and flushed on `bind`.
1206
- */
1207
- declare interface HostEventPublisher {
1208
- emit(message: HostEventMessage): void;
1209
- bind(sink: (message: HostEventMessage) => void): void;
1210
- onDisconnect(listener: () => void): () => void;
1211
- /** Drop the current sink and return to buffering until the next bind. */
1212
- unbind(): void;
1213
- }
1214
-
1215
- declare interface HostTreeDefaultNodesInput {
1216
- ctx: TreeContext;
1217
- record: ExtensionTreeRendererRecord;
1218
- panel: ExtensionTreeViewRecord;
1219
- }
1220
-
1221
- declare type HostTreeDefaultNodesResolver = (input: HostTreeDefaultNodesInput) => Promise<TreeNode[]> | TreeNode[];
1222
-
1223
- declare interface InternalWorkbenchExtensionMetadata {
1224
- extensions: WorkbenchExtensionMetadata["extensions"];
1225
- commands: WorkbenchExtensionMetadata["commands"];
1226
- menuContributions: ExtensionMenuContribution_2[];
1227
- commandPaletteContributions: WorkbenchExtensionMetadata["commandPaletteContributions"];
1228
- modes: Array<{
1229
- id: string;
1230
- extensionId: string;
1231
- modeId: string;
1232
- label: WorkbenchExtensionMetadata["modes"][number]["label"];
1233
- icon?: string;
1234
- defaultTheme?: string;
1235
- chrome?: Partial<Record<"nav" | "sidenav" | "activity" | "status", string | false>>;
1236
- panelRegions: WorkbenchExtensionMetadata["modes"][number]["regions"];
1237
- regionSettings?: WorkbenchExtensionMetadata["modes"][number]["regionSettings"];
1238
- floatingPanels?: WorkbenchExtensionMetadata["modes"][number]["floatingPanels"];
1239
- }>;
1240
- pages: WorkbenchPageContribution[];
1241
- placements: Array<{
1242
- id: string;
1243
- ref: {
1244
- extensionId: string;
1245
- kind: "placement";
1246
- id: string;
1247
- };
1248
- modeId: string;
1249
- item: WorkbenchOwnedPlacementItem;
1250
- region: "main" | "secondary" | "side";
1251
- order?: number;
1252
- movableTo?: readonly ("main" | "secondary" | "side")[];
1253
- } & WorkbenchPlacementPresentation>;
1254
- panels: InternalWorkbenchExtensionPanel[];
1255
- resourceKinds: Array<{
1256
- id: string;
1257
- extensionId: string;
1258
- label?: WorkbenchExtensionMetadata["resourceKinds"][number]["label"];
1259
- icon?: string;
1260
- menuSlots: Record<string, {
1261
- placement: "header-primary" | "header-overflow" | "context-menu";
1262
- external: boolean;
1263
- order?: number;
1264
- }>;
1265
- }>;
1266
- resourceHierarchyProviders: Array<{
1267
- id: string;
1268
- extensionId: string;
1269
- resourceKind: string;
1270
- }>;
1271
- settingsSections: ExtensionSettingsSectionRecord[];
1272
- settingsPanels: Array<{
1273
- id: string;
1274
- extensionId: string;
1275
- viewId: string;
1276
- slotId: string;
1277
- scope: "global" | "project";
1278
- title: MetadataView["title"];
1279
- icon?: string;
1280
- section?: string;
1281
- }>;
1282
- kanbanRenderers: WorkbenchExtensionKanbanRendererRecord[];
1283
- dataTableRenderers: WorkbenchExtensionDataTableRendererRecord[];
1284
- commandPaletteResources: WorkbenchExtensionCommandPaletteResourceRecord_2[];
1285
- treeRenderers: WorkbenchExtensionTreeRendererRecord[];
1286
- fileRenderers: WorkbenchExtensionFileRendererRecord[];
1287
- controlsRenderers: WorkbenchExtensionControlsRendererRecord[];
1288
- keybindings: ExtensionKeybindingRecord[];
1289
- settingsDefinitions: ExtensionSettingDefinitionRecord[];
1290
- statuses: WorkbenchExtensionMetadata["statuses"];
1291
- statusBarItems: Array<{
1292
- id: string;
1293
- extensionId: string;
1294
- viewId: string;
1295
- slot: "leading" | "trailing";
1296
- order?: number;
1297
- when?: {
1298
- mode?: string | string[];
1299
- source?: string[];
1300
- viewId?: string | string[];
1301
- resourceType?: string[];
1302
- metadata?: Record<string, unknown>;
1303
- };
1304
- }>;
1305
- diagnostics: WorkbenchExtensionMetadata["diagnostics"];
1306
- }
1307
-
1308
- declare interface InternalWorkbenchExtensionPanel {
1309
- id: string;
1310
- extensionId: string;
1311
- title: MetadataView["title"];
1312
- icon?: string;
1313
- webview?: MetadataWebview;
1314
- renderer?: {
1315
- kind: MetadataRendererKind;
1316
- id: string;
1317
- };
1318
- panelMenus?: InternalWorkbenchExtensionPanelMenu[];
1319
- }
1320
-
1321
- declare interface InternalWorkbenchExtensionPanelMenu {
1322
- id: string;
1323
- extensionId: string;
1324
- ownerPanelId: string;
1325
- viewId: string;
1326
- title: MetadataView["title"];
1327
- side: "left" | "right";
1328
- group?: string;
1329
- placement?: "first" | "default" | "last";
1330
- hostTreeHeader?: "default" | "none";
1331
- hostTreeFooter?: "default" | "none";
1332
- webview?: MetadataWebview;
1333
- renderer?: {
1334
- kind: MetadataRendererKind;
1335
- id: string;
1336
- };
1337
- }
1338
-
1339
- export declare const isExtensionNavigationTarget: (value: unknown) => value is NavigationTarget_2;
1340
-
1341
- declare type JsonObject = {
1342
- [key: string]: JsonValue;
1343
- };
1344
-
1345
- declare type JsonPrimitive = string | number | boolean | null;
1346
-
1347
- declare type JsonValue = JsonPrimitive | JsonValue[] | JsonObject;
1348
-
1349
- declare interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRendererRow, TNode = unknown, TIcon = unknown> {
1350
- id: string;
1351
- title: string;
1352
- resourceKind?: string;
1353
- /** Host-owned scope for persisted display settings. */
1354
- storageScope?: string;
1355
- /**
1356
- * Declarative attribute schema. The renderer dispatches filter / group /
1357
- * sort / display / inline-edit behavior on each descriptor's `type.kind`.
1358
- *
1359
- * Pass an `AttributesSource` ({ subscribe, getSnapshot }) instead of a
1360
- * static array to let the contribution mutate its schema at runtime —
1361
- * `WorkbenchKanbanView` subscribes so additions / removals / kind changes
1362
- * propagate live without re-registering the renderer.
1363
- */
1364
- attributes: AttributeDescriptor<TNode>[] | AttributesSource<TNode>;
1365
- /** Per-board-column overrides (color, drag/create rules, custom actions). */
1366
- getBoardColumnConfig?: (groupKey: string) => BoardColumnConfig<TIcon>;
1367
- hideToolbar?: boolean;
1368
- emptyTitle?: string;
1369
- emptyDescription?: string;
1370
- /** Initial settings/filters applied when the kanban renderer mounts. */
1371
- defaultSettings?: Partial<KanbanRendererSettings>;
1372
- defaultFilters?: KanbanRendererFilterState;
1373
- defaultViews?: KanbanRendererSavedView[];
1374
- defaultActiveViewId?: string;
1375
- /**
1376
- * Data source. Receives the current display state so backends can paginate
1377
- * / filter / sort. The renderer re-applies filter / sort / group locally,
1378
- * so this can return unfiltered rows in simple cases.
1379
- */
1380
- executeQuery(state: KanbanRendererQueryState): Promise<TRow[]> | TRow[];
1381
- subscribe?: (listener: () => void) => Disposable_2 | (() => void);
1382
- /** Row activation surfaced by the renderer (mirrored from <KanbanRenderer>). */
1383
- onRowActivate?: (row: TRow) => Promise<void> | void;
1384
- /** Per-row right-click context menu actions (mirrored from <KanbanRenderer>). */
1385
- getRowContextMenuActions?: (row: TRow) => ResourceContextAction<TNode>[];
1386
- /**
1387
- * Fires for inline attribute edits AND for cross-column drag-to-reorder on
1388
- * the board (the renderer passes the grouping attribute id + the target
1389
- * column value).
1390
- */
1391
- onAttributeChange?: (rowId: string, attributeId: string, value: unknown) => Promise<void> | void;
1392
- /** Manual within-column reorder (only fires when ordering is manual). */
1393
- onReorder?: (rowId: string, beforeRowId?: string) => Promise<void> | void;
1394
- createRow?: KanbanRendererCreateRowConfig;
1395
- onCreateRow?: (submission: KanbanRendererCreateSubmission) => Promise<void> | void;
1396
- onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;
1397
- }
1398
-
1399
- declare interface KanbanRendererCreateField {
1400
- id: string;
1401
- label: string;
1402
- description?: string;
1403
- placeholder?: string;
1404
- type: KanbanRendererCreateFieldType;
1405
- required?: boolean;
1406
- defaultValue?: unknown;
1407
- options?: EnumOption[];
1408
- /** `files` fields only. */
1409
- multiple?: boolean;
1410
- accept?: string;
1411
- }
1412
-
1413
- declare type KanbanRendererCreateFieldType = "text" | "longtext" | "markdown" | "number" | "boolean" | "select" | "multi-select" | "files";
1414
-
1415
- /** Chrome copy is supplied by the caller so the dialog ships no strings of its own. */
1416
- declare interface KanbanRendererCreateLabels {
1417
- cancel: string;
1418
- properties: string;
1419
- submitError: string;
1420
- removeFile: string;
1421
- }
1422
-
1423
- declare interface KanbanRendererCreateRowConfig {
1424
- title: string;
1425
- submitLabel: string;
1426
- fields: KanbanRendererCreateField[];
1427
- labels: KanbanRendererCreateLabels;
1428
- }
1429
-
1430
- declare interface KanbanRendererCreateSubmission {
1431
- columnId: string;
1432
- columnAttributeId?: string;
1433
- /** Declared field values, excluding `files` fields — those arrive as `files`. */
1434
- values: Record<string, unknown>;
1435
- /** Every editable attribute the user set, keyed by attribute id. */
1436
- attributeValues: Record<string, unknown>;
1437
- files: File[];
1438
- }
1439
-
1440
- declare type KanbanRendererFilterState = Record<string, string[]>;
1441
-
1442
- declare interface KanbanRendererOrdering {
1443
- attributeId: string | typeof MANUAL_ORDERING;
1444
- direction: SortDirection;
1445
- }
1446
-
1447
- declare interface KanbanRendererQueryState {
1448
- settings: KanbanRendererSettings;
1449
- filters: KanbanRendererFilterState;
1450
- }
1451
-
1452
- declare interface KanbanRendererRow {
1453
- id: string;
1454
- title: string;
1455
- /**
1456
- * Optional navigation handle. When set, the renderer's default click handler
1457
- * routes through the contribution's onRowActivate (which typically opens the
1458
- * resource via the workbench).
1459
- */
1460
- resource?: unknown;
1461
- attributes: Record<string, unknown>;
1462
- }
1463
-
1464
- declare type KanbanRendererRow_2 = Awaited<ReturnType<ReactKanbanRendererContribution["executeQuery"]>>[number];
1465
-
1466
- declare interface KanbanRendererSavedView {
1467
- id: string;
1468
- title: string;
1469
- settings: KanbanRendererSettings;
1470
- filters: KanbanRendererFilterState;
1471
- isDefault?: boolean;
1472
- }
1473
-
1474
- declare interface KanbanRendererSettings {
1475
- viewMode: ViewMode;
1476
- columnGrouping: string | typeof NO_GROUPING;
1477
- rowGrouping: string | typeof NO_GROUPING;
1478
- ordering: KanbanRendererOrdering;
1479
- displayProperties: string[];
1480
- }
1481
-
1482
- declare interface Keybinding {
1483
- /** Action the chord executes through the shared navigation executor. */
1484
- action: NavigationTarget;
1485
- keybinding: KeybindingSequence;
1486
- when?: string;
1487
- }
1488
-
1489
- declare interface KeybindingRegistry {
1490
- store: WorkbenchStore<KeybindingRegistryStoreState>;
1491
- registerKeybinding(keybinding: Keybinding, metadata?: ContributionMetadata): Disposable_2;
1492
- listKeybindings(): RegisteredKeybinding[];
1493
- listActiveKeybindings(): RegisteredKeybinding[];
1494
- /** Chords bound to plain command actions, for rendering shortcut hints beside commands. */
1495
- listCommandKeybindings(): {
1496
- commandId: string;
1497
- keybinding: KeybindingSequence;
1498
- }[];
1499
- }
1500
-
1501
- declare interface KeybindingRegistryStoreState {
1502
- keybindings: RegisteredKeybinding[];
1503
- }
1504
-
1505
- declare type KeybindingSequence = string | string[];
1506
-
1507
- declare interface LayoutModel {
1508
- store: WorkbenchStore<WorkbenchLayoutStoreState>;
1509
- registerPlaceholder(placeholder: PlaceholderContribution, metadata?: ContributionMetadata): {
1510
- dispose(): void;
1511
- };
1512
- registerPanel(panel: WorkbenchPanelContribution, metadata?: ContributionMetadata): {
1513
- dispose(): void;
1514
- };
1515
- registerWidget(widget: WidgetContribution, metadata?: ContributionMetadata): {
1516
- dispose(): void;
1517
- };
1518
- registerPanelMenu(panelMenu: WorkbenchPanelMenuContribution, metadata?: ContributionMetadata): {
1519
- dispose(): void;
1520
- };
1521
- unregisterWidget(id: string, options?: {
1522
- removePlacements?: boolean;
1523
- persist?: boolean;
1524
- }): void;
1525
- getPlaceholder(regionId: WorkbenchRegion): RegisteredPlaceholderContribution | undefined;
1526
- getWidget(id: string): RegisteredWidgetContribution | undefined;
1527
- getPanel(id: string): WorkbenchPanelContribution | undefined;
1528
- getRegionSize(regionId: WorkbenchRegion): WorkbenchRegionSize | undefined;
1529
- getRegionSettings(regionId: WorkbenchRegion): WorkbenchRegionSettings | undefined;
1530
- getRegionCollapsible(regionId: WorkbenchRegion): boolean;
1531
- getRegionHeaderBorderBottom(regionId: WorkbenchRegion): boolean;
1532
- setRegionVisible(regionId: WorkbenchRegion, visible: boolean): void;
1533
- setRegionSize(regionId: WorkbenchRegion, size: number): void;
1534
- listPlaceholders(): RegisteredPlaceholderContribution[];
1535
- listWidgets(): RegisteredWidgetContribution[];
1536
- listPanels(): WorkbenchPanelContribution[];
1537
- listPanelInstances(region?: WorkbenchRegion): WorkbenchPanelInstance[];
1538
- getActivePanel(region?: WorkbenchRegion): WorkbenchPanelInstance | undefined;
1539
- openWidget(id: string, input?: OpenWidgetInput): WorkbenchWidgetPlacement;
1540
- openPanel(id: string, input?: OpenWorkbenchPanelInput): WorkbenchPanelInstance;
1541
- updatePanel(instanceId: string, input: OpenWorkbenchPanelInput): WorkbenchPanelInstance;
1542
- reorderPanel(instanceId: string, position: WorkbenchTabPosition): void;
1543
- activatePanel(instanceId: string): WorkbenchPanelInstance;
1544
- closePanel(instanceId: string): WorkbenchPanelInstance | undefined;
1545
- updateWidgetPlacement(widgetId: string, input: OpenWidgetInput): WorkbenchWidgetPlacement;
1546
- reorderWidget(widgetId: string, position: WorkbenchTabPosition): void;
1547
- expirePreviewTabs(ownerResourceKey?: string): void;
1548
- activateWidget(widgetId: string): WorkbenchWidgetPlacement;
1549
- setRegionActiveWidget(regionId: WorkbenchRegion, widgetId: string | undefined): void;
1550
- closeWidget(widgetId: string): WorkbenchWidgetPlacement | undefined;
1551
- removeWidgetPlacement(widgetId: string): WorkbenchWidgetPlacement | undefined;
1552
- clearRegion(regionId: WorkbenchRegion): void;
1553
- resetRegions(): void;
1554
- getLayout(): WorkbenchLayout;
1555
- restoreLayout(layout: WorkbenchLayout): void;
1556
- setPersistenceScope(scope: LayoutScope | undefined, input?: {
1557
- carryRegionState?: readonly WorkbenchRegion[];
1558
- }): void;
1559
- getPersistenceScope(): LayoutScope | undefined;
1560
- /** True when the current persistence scope already stores a layout. A new scope returns false. */
1561
- /** Whether anything is stored for the active scope right now. */
1562
- hasPersistedLayout(): boolean;
1563
- /**
1564
- * Whether the active scope was entered with a layout the user already had. Unlike
1565
- * `hasPersistedLayout`, writes made while entering a mode do not change the answer.
1566
- */
1567
- enteredWithPersistedLayout(): boolean;
1568
- /** Moves owned panel menus beside their owner's current region and removes orphan menus. */
1569
- reconcilePanelMenus(): void;
1570
- onWillChangePersistenceScope(listener: (scope: LayoutScope | undefined) => void): {
1571
- dispose(): void;
1572
- };
1573
- onDidChangePersistenceScope(listener: (scope: LayoutScope | undefined) => void): {
1574
- dispose(): void;
1575
- };
1576
- }
1577
-
1578
- declare type LayoutScope = string;
1579
-
1580
- declare type Localizer = (value: unknown, fallback?: string) => string;
1581
-
1582
- declare const MANUAL_ORDERING = "manual";
1583
-
1584
- declare interface MenuItem {
1585
- commandId: string;
1586
- sourceCommandId?: string;
1587
- label?: string;
1588
- description?: string;
1589
- icon?: string;
1590
- iconSrc?: string;
1591
- overflowLabel?: string;
1592
- when?: string;
1593
- group?: string;
1594
- order?: number;
1595
- args?: unknown;
1596
- readOnly?: boolean;
1597
- /** Marks a menu action that navigates outside the app, rendered with a trailing external-link icon. */
1598
- external?: boolean;
1599
- }
1600
-
1601
- declare type MenuPath = readonly string[];
1602
-
1603
- declare interface MenuRegistry {
1604
- menuStore: WorkbenchStore<MenuRegistryStoreState>;
1605
- registerMenuItem(path: MenuPath, item: MenuItem, metadata?: ContributionMetadata): Disposable_2;
1606
- listMenuItems(path: MenuPath): RegisteredMenuItem[];
1607
- }
1608
-
1609
- declare interface MenuRegistryStoreState {
1610
- itemsByPath: Record<string, RegisteredMenuItem[]>;
1611
- }
1612
-
1613
- declare interface MetadataPageTarget {
1614
- kind: "page";
1615
- page: z.infer<typeof pageRefSchema>;
1616
- resource?: z.infer<typeof extensionResourceRefSchema>;
1617
- open?: "preview" | "pin";
1618
- section?: z.infer<typeof sectionSchema>;
1619
- parent?: MetadataPageTarget;
1620
- }
1621
-
1622
- declare type MetadataRendererKind = Exclude<MetadataView["body"]["kind"], "webview">;
1623
-
1624
- declare type MetadataView = WorkbenchExtensionMetadata["views"][number];
1625
-
1626
- declare type MetadataWebview = Extract<MetadataView["body"], {
1627
- kind: "webview";
1628
- }>["webview"];
1629
-
1630
- declare type NativeViewBody<Kind extends string, Contribution> = {
1631
- kind: Kind;
1632
- } & Omit<Contribution, "id" | "title" | "icon">;
1633
-
1634
- declare type NavigationOperation = Extract<NavigationTarget_2, {
1635
- kind: "page" | "panel";
1636
- }>;
1637
-
1638
- declare interface NavigationParser {
1639
- id: string;
1640
- priority?: number;
1641
- canParse(location: string): boolean;
1642
- parse(location: string): NavigationTarget;
1643
- }
1644
-
1645
- declare interface NavigationRegistry {
1646
- store: WorkbenchStore<NavigationRegistryStoreState>;
1647
- registerParser(parser: NavigationParser, metadata?: ContributionMetadata): Disposable_2;
1648
- listParsers(): RegisteredNavigationParser[];
1649
- resolveLocation(location: string): NavigationTarget;
1650
- openTarget(target: NavigationTarget): Promise<readonly unknown[]>;
1651
- /** Opens a page location through the shared executor. */
1652
- openPage(target: Omit<NavigationTargetPage, "kind">): Promise<readonly unknown[]>;
1653
- /** Opens or activates an owned panel through the shared executor. */
1654
- openPanel(target: DistributiveOmit<NavigationTargetPanel, "kind">): Promise<readonly unknown[]>;
1655
- navigate(location: string): Promise<readonly unknown[]>;
1656
- }
1657
-
1658
- declare interface NavigationRegistryStoreState {
1659
- parsers: Record<string, RegisteredNavigationParser>;
1660
- }
1661
-
1662
- declare type NavigationTarget = NavigationTargetItem | NavigationTargetCompound;
1663
-
1664
- declare interface NavigationTargetCommand {
1665
- kind: "command";
1666
- commandId: string;
1667
- args?: unknown;
1668
- }
1669
-
1670
- declare interface NavigationTargetCompound {
1671
- kind: "compound";
1672
- targets: readonly (NavigationTargetPage | NavigationTargetPanel)[];
1673
- }
1674
-
1675
- declare interface NavigationTargetHref {
1676
- kind: "href";
1677
- href: string;
1678
- }
1679
-
1680
- declare type NavigationTargetItem = NavigationTargetPage | NavigationTargetPanel | NavigationTargetCommand | NavigationTargetHref;
1681
-
1682
- declare type NavigationTargetPage = NavigationTargetPage_2;
1683
-
1684
- declare type NavigationTargetPanel = NavigationTargetPanel_2 | NavigationTargetShellPanel;
1685
-
1686
- declare interface NavigationTargetShellPanel {
1687
- kind: "panel";
1688
- panel: ShellPlacementRef;
1689
- resource?: NavigationTargetPanel_2["resource"];
1690
- open?: NavigationTargetPanel_2["open"];
1691
- title?: string;
1692
- }
1693
-
1694
- declare interface NavigationTreeContext {
1695
- resource?: ResourceRef;
1696
- }
1697
-
1698
- declare interface NavigationTreeContribution {
1699
- id: string;
1700
- /** Prefix projected section and node ids when they come from an independent tree renderer. */
1701
- idScope?: string;
1702
- owner: NavigationTreeOwner;
1703
- sourceExtensionId: string;
1704
- declarationIndex: number;
1705
- slot?: NavigationTreeSlot;
1706
- viewId?: string;
1707
- defaultExpandedSectionIds?: string[];
1708
- getSections?(context: NavigationTreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
1709
- getChildren?(node: TreeNode, context: NavigationTreeContext): Promise<TreeNode[]> | TreeNode[];
1710
- }
1711
-
1712
- declare interface NavigationTreeOwner {
1713
- kind: "mode" | "page";
1714
- id: string;
1715
- extensionId: string;
1716
- }
1717
-
1718
- declare interface NavigationTreeRegistry {
1719
- registerContribution(contribution: NavigationTreeContribution): Disposable_2;
1720
- resolveOwner(kind: NavigationTreeOwner["kind"], id: string): NavigationTreeOwner | undefined;
1721
- getSections(owner: NavigationTreeOwner, slot?: NavigationTreeSlot, context?: NavigationTreeContext): Promise<TreeViewSection[]>;
1722
- getChildren(node: TreeNode, context?: NavigationTreeContext): Promise<TreeNode[]>;
1723
- getDefaultExpandedSectionIds(owner: NavigationTreeOwner): string[];
1724
- onDidChange(listener: () => void): Disposable_2;
1725
- }
1726
-
1727
- declare type NavigationTreeSlot = "header" | "content" | "footer";
1728
-
1729
- declare const NO_GROUPING = "none";
1730
-
1731
- declare interface NotificationRegistry {
1732
- store: WorkbenchStore<WorkbenchNotificationStoreState>;
1733
- show(notification: WorkbenchNotification, metadata?: ContributionMetadata): RegisteredWorkbenchNotification;
1734
- dismiss(id: string): boolean;
1735
- clear(): void;
1736
- listNotifications(): RegisteredWorkbenchNotification[];
1737
- subscribe(listener: WorkbenchNotificationListener): Disposable_2;
1738
- }
1739
-
1740
- declare interface OpenModePlacementTarget {
1741
- panel: PlacementRef;
1742
- resource?: ResourceRef;
1743
- open?: PageOpenIntent;
1744
- }
1745
-
1746
- declare interface OpenWidgetInput {
1747
- viewId?: string | null;
1748
- resource?: ResourceRef | null;
1749
- title?: string;
1750
- region?: WorkbenchRegion;
1751
- role?: WorkbenchWidgetRole;
1752
- ownerId?: string;
1753
- source?: ContributionSource;
1754
- pinned?: boolean;
1755
- closable?: boolean;
1756
- mountStrategy?: WidgetMountStrategy;
1757
- hiddenByDefault?: boolean;
1758
- tabRetention?: WorkbenchTabRetention;
1759
- tabPosition?: WorkbenchTabPosition;
1760
- tab?: WorkbenchWidgetTab;
1761
- replaceActive?: boolean;
1762
- replaceWidgetId?: string;
1763
- }
1764
-
1765
- declare interface OpenWorkbenchOverlayInput {
1766
- resource?: ResourceRef;
1767
- title?: string;
1768
- }
1769
-
1770
- declare interface OpenWorkbenchPanelInput {
1771
- /** Set by the view registry. Low-level layout callers should leave this undefined. */
1772
- viewId?: string | null;
1773
- /** `null` explicitly clears an existing singleton placement's resource binding. */
1774
- resource?: ResourceRef | null;
1775
- title?: string;
1776
- region?: WorkbenchRegion;
1777
- role?: WorkbenchWidgetRole;
1778
- pinned?: boolean;
1779
- closable?: boolean;
1780
- mountStrategy?: WorkbenchPanelMountStrategy;
1781
- hiddenByDefault?: boolean;
1782
- tab?: WorkbenchPanelTab;
1783
- strategy?: WorkbenchPanelOpenStrategy;
1784
- }
1785
-
1786
- declare interface OpenWorkbenchShellPlacementInput {
1787
- placementId: string;
1788
- resource?: ResourceRef;
1789
- open?: PageOpenIntent;
1790
- title?: string;
1791
- }
1792
-
1793
- declare interface OwnedPlacementLocationContext {
1794
- modeId: string;
1795
- pageId?: string;
1796
- projectId?: string;
1797
- location?: PageLocation;
1798
- }
1799
-
1800
- declare interface OwnedPlacementReconciliation<Value> {
1801
- add: readonly ResolvedOwnedPlacement<Value>[];
1802
- retain: readonly ResolvedOwnedPlacement<Value>[];
1803
- update: readonly OwnedPlacementUpdate<Value>[];
1804
- activate: readonly ResolvedOwnedPlacement<Value>[];
1805
- remove: readonly ResolvedOwnedPlacement<Value>[];
1806
- }
1807
-
1808
- declare interface OwnedPlacementUpdate<Value> {
1809
- current: ResolvedOwnedPlacement<Value>;
1810
- desired: ResolvedOwnedPlacement<Value>;
1811
- }
1812
-
1813
- declare const pageRefSchema: z.ZodObject<{
1814
- extensionId: z.ZodString;
1815
- kind: z.ZodLiteral<"page">;
1816
- id: z.ZodString;
1817
- }, z.core.$strip>;
1818
-
1819
- declare interface PlaceholderContribution {
1820
- id: string;
1821
- title: string;
1822
- region: WorkbenchRegion;
1823
- rendererId: string;
1824
- regionSize?: WorkbenchRegionSize;
1825
- regionCollapsible?: boolean;
1826
- config?: unknown;
1827
- priority?: number;
1828
- }
1829
-
1830
- declare interface PreferencePropertySchema {
1831
- type: "boolean" | "number" | "string" | "array" | "object";
1832
- enum?: PreferenceValue[];
1833
- default?: PreferenceValue;
1834
- scope: PreferenceScope;
1835
- description?: string;
1836
- }
1837
-
1838
- declare interface PreferenceRegistry {
1839
- store: WorkbenchStore<PreferenceRegistryStoreState>;
1840
- registerSchema(schema: PreferenceSchemaContribution, metadata?: ContributionMetadata): Disposable_2;
1841
- getSchema(name: string): RegisteredPreferenceSchema | undefined;
1842
- setValue(name: string, value: PreferenceValue, scope: PreferenceScopeRef): void;
1843
- getValue(name: string, scope?: PreferenceScopeRef): PreferenceValue | undefined;
1844
- }
1845
-
1846
- declare interface PreferenceRegistryStoreState {
1847
- schemas: Record<string, RegisteredPreferenceSchema>;
1848
- }
1849
-
1850
- declare interface PreferenceSchemaContribution {
1851
- properties: Record<string, PreferencePropertySchema>;
1852
- }
1853
-
1854
- declare type PreferenceScope = "default" | "user" | "project" | "repo" | "workspace" | "extension" | "session";
1855
-
1856
- declare interface PreferenceScopeRef {
1857
- scope: PreferenceScope;
1858
- scopeId?: string;
1859
- }
1860
-
1861
- declare type PreferenceValue = boolean | number | string | string[] | number[] | boolean[] | Record<string, unknown>;
1862
-
1863
- declare type ReactAttributeDescriptor = AttributeDescriptor<ReactNode>;
1864
-
1865
- declare type ReactColumnIcon = ComponentType<{
1866
- size?: number | string;
1867
- }>;
1868
-
1869
- declare type ReactKanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRendererRow> = KanbanRendererContribution<TRow, ReactNode, ReactColumnIcon>;
1870
-
1871
- export declare const refreshOpenWorkbenchExtensionWebviews: (workbench: WorkbenchModuleContext, metadata: WorkbenchExtensionMetadata) => void;
1872
-
1873
- export declare const refreshWorkbenchExtensionRenderer: (workbench: WorkbenchModuleContext, target: RendererRefreshTarget, envelope?: FileRendererRefreshEnvelope) => void;
1874
-
1875
- declare interface RegisteredCommand extends RegisteredContributionMetadata {
1876
- command: Command;
1877
- handler: CommandHandler;
1878
- }
1879
-
1880
- declare interface RegisteredContributionMetadata {
1881
- source: ContributionSource;
1882
- ownerId: string;
1883
- priority: number;
1884
- }
1885
-
1886
- declare interface RegisteredKeybinding extends Keybinding, RegisteredContributionMetadata {
1887
- }
1888
-
1889
- declare interface RegisteredMenuItem extends MenuItem, RegisteredContributionMetadata {
1890
- path: MenuPath;
1891
- }
1892
-
1893
- declare type RegisteredNavigationParser = Omit<NavigationParser, "priority"> & RegisteredContributionMetadata;
1894
-
1895
- declare type RegisteredPlaceholderContribution = Omit<PlaceholderContribution, "priority"> & RegisteredContributionMetadata;
1896
-
1897
- declare type RegisteredPreferenceSchema = PreferencePropertySchema & {
1898
- ownerId: string;
1899
- source: string;
1900
- };
1901
-
1902
- declare interface RegisteredResourceKind extends ResourceKindContribution, RegisteredContributionMetadata {
1903
- }
1904
-
1905
- declare type RegisteredSettingsPanel = SettingsPanelContribution & RegisteredContributionMetadata;
1906
-
1907
- declare type RegisteredSettingsSection = SettingsSectionContribution & RegisteredContributionMetadata;
1908
-
1909
- declare interface RegisteredTreeRendererContribution extends TreeRendererContribution, RegisteredContributionMetadata {
1910
- }
1911
-
1912
- declare type RegisteredWidgetContribution = Omit<WidgetContribution, "priority" | "singleton" | "reuse"> & {
1913
- ownedPanelMenuIds?: readonly string[];
1914
- singleton: boolean;
1915
- reuse: WidgetReusePolicy;
1916
- } & RegisteredContributionMetadata;
1917
-
1918
- declare interface RegisteredWorkbenchNotification extends RegisteredContributionMetadata {
1919
- id: string;
1920
- level: WorkbenchNotificationLevel;
1921
- title: string;
1922
- message?: string;
1923
- createdAt: string;
1924
- resource?: ResourceRef;
1925
- actions?: WorkbenchNotificationAction[];
1926
- metadata?: Record<string, unknown>;
1927
- }
1928
-
1929
- declare type RegisteredWorkbenchStatusSet = WorkbenchStatusSetContribution & RegisteredContributionMetadata;
1930
-
1931
- declare type RegisteredWorkbenchView = WorkbenchViewContribution & RegisteredContributionMetadata;
1932
-
1933
- export declare const registerWorkbenchExtensionCommandPaletteResources: (context: WorkbenchExtensionCommandContext, records: readonly WorkbenchExtensionCommandPaletteResourceRecord[]) => {
1934
- dispose(): void;
1935
- };
1936
-
1937
- export declare const registerWorkbenchExtensionContributions: (sourceInput: RegisterWorkbenchExtensionContributionsInput) => {
1938
- dispose(): void;
1939
- };
1940
-
1941
- export declare interface RegisterWorkbenchExtensionContributionsInput {
1942
- createKeybindingWhenExpression?: (when: ExtensionKeybindingRecord["when"]) => string | undefined;
1943
- createMenuWhenExpression?: WorkbenchExtensionMenuWhenBuilder;
1944
- createNavigationWhenExpression?: (when: WorkbenchExtensionMetadata["navigationItems"][number]["when"]) => string | undefined;
1945
- createWebviewHostCapabilities?: CreateBridgeWebviewHostCapabilities;
1946
- createWebviewHostCapabilityOverrides?: CreateBridgeWebviewHostCapabilities;
1947
- createWebviewProps?: CreateBridgeWebviewProps;
1948
- createWebviewTheme?: CreateBridgeWebviewTheme;
1949
- executeCommand(commandId: string, body: CommandExecuteRequest): Promise<unknown> | unknown;
1950
- kanbanAdapter?: WorkbenchExtensionKanbanRendererAdapter;
1951
- menuSlotsById?: ReadonlyMap<string, WorkbenchExtensionMenuSlotConfig>;
1952
- menuTargetsById?: ReadonlyMap<string, WorkbenchExtensionMenuSlotConfig>;
1953
- menuRegistrations?: readonly WorkbenchExtensionHostMenuRegistration[];
1954
- metadata: WorkbenchExtensionMetadata;
1955
- openHref?: (href: string) => unknown;
1956
- prepareCommandArgs?(commandId: string, args: unknown, context?: WorkbenchCommandExecutionContext, onArgsChange?: (args: unknown) => void): Promise<unknown> | unknown;
1957
- projectId: string;
1958
- resolveTreeNodeResource?: RegisterWorkbenchExtensionTreeRenderersInput["resolveNodeResource"];
1959
- renderWebview?(input: WorkbenchPanelRenderInput): unknown;
1960
- settingsSectionId?: string;
1961
- settingsSectionTitle?: string;
1962
- subscribeRefreshEvents?: (listener: (event: WorkbenchExtensionRefreshEvent) => void) => Disposable_2;
1963
- webviewArtifacts?: ExtensionWebviewArtifactCapabilities;
1964
- webviewFiles?: ExtensionWebviewFileCapabilities;
1965
- workbench: WorkbenchModuleContext;
1966
- }
1967
-
1968
- export declare const registerWorkbenchExtensionControlsRenderers: (context: WorkbenchExtensionCommandContext, records: WorkbenchExtensionControlsRendererRecord[], adapter?: WorkbenchExtensionControlsAdapter) => Disposable_2;
1969
-
1970
- export declare const registerWorkbenchExtensionDataTableRenderers: (context: WorkbenchExtensionCommandContext, records: WorkbenchExtensionDataTableRendererRecord[]) => Disposable_2;
1971
-
1972
- export declare const registerWorkbenchExtensionFileRenderers: (input: RegisterWorkbenchExtensionFileRenderersInput) => {
1973
- dispose(): void;
1974
- };
1975
-
1976
- export declare interface RegisterWorkbenchExtensionFileRenderersInput {
1977
- executeCommand(commandId: string, body: CommandExecuteRequest): Promise<unknown> | unknown;
1978
- metadata: InternalWorkbenchExtensionMetadata;
1979
- projectId: string;
1980
- workbench: WorkbenchModuleContext;
1981
- }
1982
-
1983
- export declare const registerWorkbenchExtensionKanbanRenderers: (context: WorkbenchExtensionCommandContext, records: readonly WorkbenchExtensionKanbanRendererRecord[], adapter?: WorkbenchExtensionKanbanRendererAdapter) => {
1984
- dispose(): void;
1985
- };
1986
-
1987
- export declare const registerWorkbenchExtensionRendererRefreshEvents: (input: RegisterWorkbenchExtensionRendererRefreshEventsInput) => Disposable_2;
1988
-
1989
- export declare interface RegisterWorkbenchExtensionRendererRefreshEventsInput {
1990
- metadata: WorkbenchExtensionMetadata;
1991
- subscribe: (listener: (event: WorkbenchExtensionRefreshEvent) => void) => Disposable_2;
1992
- workbench: WorkbenchModuleContext;
1993
- }
1994
-
1995
- export declare const registerWorkbenchExtensionTreeRenderers: (input: RegisterWorkbenchExtensionTreeRenderersInput) => {
1996
- dispose(): void;
1997
- };
1998
-
1999
- export declare interface RegisterWorkbenchExtensionTreeRenderersInput {
2000
- executeCommand(commandId: string, body: CommandExecuteRequest): Promise<unknown> | unknown;
2001
- getHostTreeFooterNodes?: HostTreeDefaultNodesResolver;
2002
- getHostTreeHeaderNodes?: HostTreeDefaultNodesResolver;
2003
- metadata: InternalWorkbenchExtensionMetadata;
2004
- projectId: string;
2005
- /**
2006
- * Host canonicalization for node resources. A host that gives extension
2007
- * resources its own URIs (layout scopes, history, and hierarchy key on the
2008
- * URI) must convert tree node resources the same way, or the same resource
2009
- * gets a second identity when opened from a tree.
2010
- */
2011
- resolveNodeResource?: (resource: ExtensionTreeResource) => ResourceRef;
2012
- workbench: WorkbenchModuleContext;
2013
- }
2014
-
2015
- export declare const renderBridgeWebviewFrame: (input: {
2016
- context: BridgeWebviewRenderContext;
2017
- createHostCapabilities: CreateBridgeWebviewHostCapabilities;
2018
- createProps: CreateBridgeWebviewProps;
2019
- createTheme?: CreateBridgeWebviewTheme;
2020
- ownerId?: string;
2021
- title: string;
2022
- webview: BridgeWebviewConfig;
2023
- }) => JSX.Element;
2024
-
2025
- declare interface RendererRefreshTarget {
2026
- id: string;
2027
- kind: WorkbenchExtensionRendererKind;
2028
- }
2029
-
2030
- declare interface ResolvedOwnedPlacement<Value = unknown> {
2031
- identity: PlacementIdentity;
2032
- region: WorkbenchRegion;
2033
- order: number;
2034
- value: Value;
2035
- }
2036
-
2037
- declare type ResolvedResourceHierarchyProvider = Required<ResourceHierarchyProvider>;
2038
-
2039
- declare interface ResourceBrowseEntry {
2040
- resource: ResourceRef;
2041
- searchText?: string;
2042
- description?: string;
2043
- group?: string;
2044
- order?: number;
2045
- activate?: (resource: ResourceRef) => unknown | Promise<unknown>;
2046
- }
2047
-
2048
- /** Row-level context menu action surfaced by the renderer. */
2049
- declare interface ResourceContextAction<TNode = unknown> {
2050
- key: string;
2051
- label: string;
2052
- onClick: () => Promise<void> | void;
2053
- isDisabled?: boolean;
2054
- icon?: TNode;
2055
- endContent?: TNode;
2056
- separatorBefore?: boolean;
2057
- }
2058
-
2059
- declare interface ResourceHierarchyCycle {
2060
- code: typeof resourceHierarchyCycleCode;
2061
- path: WorkbenchHierarchyNode[];
2062
- repeatedUri: string;
2063
- }
2064
-
2065
- declare const resourceHierarchyCycleCode = "resource_hierarchy_cycle";
2066
-
2067
- declare interface ResourceHierarchyProvider {
2068
- id: string;
2069
- priority?: number;
2070
- canResolve(resource: ResourceRef): boolean;
2071
- getParent(resource: ResourceRef): WorkbenchHierarchyNode | undefined;
2072
- }
2073
-
2074
- declare interface ResourceKindContribution {
2075
- kind: string;
2076
- label: string;
2077
- icon?: string;
2078
- }
2079
-
2080
- declare interface ResourceListContext {
2081
- primary?: ResourceRef;
2082
- }
2083
-
2084
- declare interface ResourceProvider {
2085
- id: string;
2086
- kind: string;
2087
- list(query: string, context: ResourceListContext): readonly ResourceBrowseEntry[];
2088
- }
2089
-
2090
- declare interface ResourceRegistry {
2091
- removed(resource: ResourceRef): void;
2092
- onWillRemove(listener: (resource: ResourceRef) => readonly PlacementIdentity[]): Disposable_2;
2093
- store: WorkbenchStore<ResourceRegistryStoreState>;
2094
- registerKind(kind: ResourceKindContribution, metadata?: ContributionMetadata): Disposable_2;
2095
- getKind(kind: string): RegisteredResourceKind | undefined;
2096
- listKinds(): RegisteredResourceKind[];
2097
- registerProvider(provider: ResourceProvider): Disposable_2;
2098
- listProviders(): ResourceProvider[];
2099
- listResources(query: string): readonly ResourceBrowseEntry[];
2100
- registerHierarchyProvider(provider: ResourceHierarchyProvider): Disposable_2;
2101
- listHierarchyProviders(): ResolvedResourceHierarchyProvider[];
2102
- walkHierarchy(resource: ResourceRef | undefined): WorkbenchHierarchyNode[];
2103
- onDidDetectHierarchyCycle(listener: (cycle: ResourceHierarchyCycle) => void): Disposable_2;
2104
- }
2105
-
2106
- declare interface ResourceRegistryStoreState {
2107
- kinds: Record<string, RegisteredResourceKind>;
2108
- providers: Record<string, ResourceProvider>;
2109
- hierarchyProviders: Record<string, ResolvedResourceHierarchyProvider>;
2110
- }
2111
-
2112
- declare type RowAction = NonNullable<WorkbenchExtensionKanbanRendererRecord["rowActions"]>[number];
2113
-
2114
- /** Auto-rendered as a param editor from the registered preference schema. */
2115
- declare interface SchemaSettingsPanel extends SettingsPanelBase {
2116
- kind: "schema";
2117
- preferences: SettingsPanelPreference[];
2118
- /** "live" persists on change (default); "apply" stages edits behind Save/Discard. */
2119
- save?: "live" | "apply";
2120
- }
2121
-
2122
- declare const sectionSchema: z.ZodObject<{
2123
- anchors: z.ZodArray<z.ZodObject<{
2124
- id: z.ZodString;
2125
- heading: z.ZodString;
2126
- occurrence: z.ZodOptional<z.ZodNumber>;
2127
- }, z.core.$strip>>;
2128
- }, z.core.$strip>;
2129
-
2130
- /** A "+ create"-style action surfaced on a section or a collection's parent node. */
2131
- declare interface SettingsAction {
2132
- id: string;
2133
- label: string;
2134
- icon?: string;
2135
- run(): void | Promise<void>;
2136
- }
2137
-
2138
- declare interface SettingsCollectionGroupBy<TItem> {
2139
- key(item: TItem): string;
2140
- order?: string[];
2141
- label(key: string): string;
2142
- icon?(key: string): string | undefined;
2143
- }
2144
-
2145
- declare interface SettingsPanelBase {
2146
- id: string;
2147
- title: string;
2148
- description?: string;
2149
- /** Section id this panel belongs to. */
2150
- section?: string;
2151
- icon?: string;
2152
- /** Lower sorts first; ties fall back to contribution priority then registration order. */
2153
- order?: number;
2154
- scope?: SettingsScope;
2155
- when?: string;
2156
- }
2157
-
2158
- declare type SettingsPanelContribution = SchemaSettingsPanel | ViewSettingsPanel | CollectionSettingsPanel;
2159
-
2160
- /** A preference this panel edits; a bare string uses the preference name as its label. */
2161
- declare type SettingsPanelPreference = string | {
2162
- name: string;
2163
- label?: string;
2164
- };
2165
-
2166
- declare interface SettingsRegistry {
2167
- store: WorkbenchStore<SettingsRegistryStoreState>;
2168
- registerSection(section: SettingsSectionContribution, metadata?: ContributionMetadata): Disposable_2;
2169
- registerPanel<TItem = unknown>(panel: SchemaSettingsPanel | ViewSettingsPanel | CollectionSettingsPanel<TItem>, metadata?: ContributionMetadata): Disposable_2;
2170
- getSection(id: string): RegisteredSettingsSection | undefined;
2171
- getPanel(id: string): RegisteredSettingsPanel | undefined;
2172
- listSections(): RegisteredSettingsSection[];
2173
- listPanels(): RegisteredSettingsPanel[];
2174
- resolveCollectionItem(panelId: string, itemId: string): Promise<unknown | undefined>;
2175
- getCollectionItem(panelId: string, itemId: string): unknown | undefined;
2176
- /** Signal that a collection's backing data changed so the surface refreshes. */
2177
- refresh(): void;
2178
- }
2179
-
2180
- declare interface SettingsRegistryStoreState {
2181
- sections: Record<string, RegisteredSettingsSection>;
2182
- panels: Record<string, RegisteredSettingsPanel>;
2183
- /** Bumped by refresh() so the surface re-reads collection items() after backing data changes. */
2184
- revision: number;
2185
- }
2186
-
2187
- /** Settings are stored either per-user (global) or per-project. Projectless surfaces show only global entries. */
2188
- declare type SettingsScope = "global" | "project";
2189
-
2190
- /** An ordered sidenav container. Headerless when `title` is omitted. */
2191
- declare interface SettingsSectionContribution {
2192
- id: string;
2193
- title?: string;
2194
- order?: number;
2195
- scope?: SettingsScope;
2196
- actions?: SettingsAction[];
2197
- }
2198
-
2199
- /** Core-only panel ref for host-owned shell placements. Extensions cannot address them. */
2200
- declare interface ShellPlacementRef {
2201
- kind: "shell-placement";
2202
- id: string;
2203
- }
2204
-
2205
- declare type SortDirection = "asc" | "desc";
2206
-
2207
- /**
2208
- * Core-owned contract for theme registrations. Structurally identical to
2209
- * @pstdio/ui's ThemePreferenceOption; the React layer bridges the two so core
2210
- * does not depend on UI package ownership.
2211
- */
2212
- declare type ThemePreference = string;
2213
-
2214
- declare type ThemePreference_2 = "dark" | "light";
2215
-
2216
- declare type ThemePreferenceMode = "light" | "dark";
2217
-
2218
- declare interface ThemePreferenceOption {
2219
- id: ThemePreference;
2220
- title?: string;
2221
- mode: ThemePreferenceMode;
2222
- tokens?: ThemePreferenceTokens;
2223
- monacoTheme?: unknown;
2224
- }
2225
-
2226
- declare type ThemePreferenceTokens = Record<string, string>;
2227
-
2228
- declare interface ThemeRegistry {
2229
- store: WorkbenchStore<WorkbenchThemeStoreState>;
2230
- register(themes: readonly ThemePreferenceOption[]): Disposable_2;
2231
- listThemes(): readonly ThemePreferenceOption[];
2232
- }
2233
-
2234
- export declare function toWorkbenchNavigationTarget(target: NavigationOperation, input?: ToWorkbenchNavigationTargetInput): NavigationOperation;
2235
-
2236
- export declare function toWorkbenchNavigationTarget(target: NavigationTarget_2, input?: ToWorkbenchNavigationTargetInput): NavigationTarget;
2237
-
2238
- export declare interface ToWorkbenchNavigationTargetInput {
2239
- commandIdOf?(command: Extract<NavigationTarget_2, {
2240
- kind: "command";
2241
- }>["target"]["command"]): string | undefined;
2242
- commandTargetOf?(target: Extract<NavigationTarget_2, {
2243
- kind: "command";
2244
- }>): NavigationTargetCommand;
2245
- extensionId?: string;
2246
- projectId?: string;
2247
- }
2248
-
2249
- export declare const toWorkbenchNavigationTargetResult: (value: unknown, input?: ToWorkbenchNavigationTargetInput) => NavigationTarget | undefined;
2250
-
2251
- export declare const toWorkbenchWhenExpression: (when: WorkbenchExtensionMetadata["navigationItems"][number]["when"] | WorkbenchExtensionMetadata["statusBarItems"][number]["when"]) => {
2252
- mode: string | string[] | undefined;
2253
- source: ("event" | "schedule" | "api" | "cli" | "dashboard" | "automation" | "command-panel")[] | undefined;
2254
- viewId: string | string[] | undefined;
2255
- resourceType: string[] | undefined;
2256
- metadata: Record<string, unknown> | undefined;
2257
- } | undefined;
2258
-
2259
- declare interface TreeAction {
2260
- id: string;
2261
- label?: string;
2262
- icon?: string;
2263
- commandId?: string;
2264
- args?: unknown;
2265
- params?: CommandParamSchema;
2266
- submitLabel?: string;
2267
- when?: string;
2268
- disabled?: boolean;
2269
- run?(args?: unknown): Promise<void> | void;
2270
- }
2271
-
2272
- declare interface TreeContext extends TreeQueryContext {
2273
- state: Readonly<TreeRendererState>;
2274
- refresh(): void;
2275
- setSelectedNode(nodeId: string | undefined): void;
2276
- }
2277
-
2278
- declare interface TreeMoveEndpoint {
2279
- kind: "section" | "node";
2280
- sectionId: string;
2281
- id: string;
2282
- moveScope?: string;
2283
- }
2284
-
2285
- declare type TreeMovePolicy = (move: {
2286
- source: TreeMoveEndpoint;
2287
- destination: TreeMoveEndpoint;
2288
- }) => boolean;
2289
-
2290
- declare interface TreeNode {
2291
- id: string;
2292
- selected?: boolean;
2293
- /** Host-owned customization boundary. Extension callbacks cannot set it. */
2294
- moveScope?: string;
2295
- label: string;
2296
- icon?: string;
2297
- iconElement?: unknown;
2298
- iconColor?: string;
2299
- iconTooltip?: string;
2300
- endContent?: unknown;
2301
- commandId?: string;
2302
- resource?: ResourceRef;
2303
- target?: NavigationTarget;
2304
- /** Visual row variant for non-data rows such as placeholders. */
2305
- rowVariant?: TreeNodeRowVariant;
2306
- inlineInput?: TreeNodeInlineInput;
2307
- actions?: TreeAction[];
2308
- contextMenuActions?: TreeAction[];
2309
- contextMenuPath?: MenuPath;
2310
- menuPath?: MenuPath;
2311
- menuPlacement?: "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "left-start";
2312
- showContextMenuTrigger?: boolean;
2313
- collapsible?: boolean;
2314
- disabled?: boolean;
2315
- children?: TreeNode[];
2316
- description?: string;
2317
- contextValue?: string;
2318
- hiddenByDefault?: boolean;
2319
- /** When true, the node (e.g. a header/footer row) opts in to the tree's hide/show customization menu. */
2320
- canHide?: boolean;
2321
- /** When false, the node stays fixed within its Sidenav group. */
2322
- canReorder?: boolean;
2323
- /** Allow this node to be moved to another tree location. */
2324
- canDrag?: boolean;
2325
- /** Allow movable nodes to be dropped on this node. */
2326
- canDrop?: boolean;
2327
- }
2328
-
2329
- declare interface TreeNodeInlineInput {
2330
- ariaLabel: string;
2331
- defaultValue?: string;
2332
- placeholder?: string;
2333
- onCommit(value: string): Promise<void> | void;
2334
- onCancel?(): void;
2335
- }
2336
-
2337
- declare type TreeNodeRowVariant = "empty-state";
2338
-
2339
- declare interface TreeQueryContext {
2340
- filter?: string;
2341
- resource?: ResourceRef;
2342
- /** Widget/view contribution id for trees rendered through a view-backed widget. */
2343
- viewId?: string;
2344
- }
2345
-
2346
- declare interface TreeRendererContribution {
2347
- id: string;
2348
- title: string;
2349
- icon?: string;
2350
- searchable?: boolean;
2351
- searchPlaceholder?: string;
2352
- when?: string;
2353
- defaultExpandedSectionIds?: string[];
2354
- defaultExpandedNodeIds?: string[];
2355
- getBody(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
2356
- getHeader?(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
2357
- getFooter?(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
2358
- getChildren(node: TreeNode, ctx: TreeContext): Promise<TreeNode[]> | TreeNode[];
2359
- canMove?: TreeMovePolicy;
2360
- moveNode?(source: TreeNode, target: TreeNode | undefined, ctx: TreeContext): Promise<void> | void;
2361
- }
2362
-
2363
- declare type TreeRendererImplementation = (input: WorkbenchPanelRenderInput & {
2364
- treeId: string;
2365
- }) => unknown;
2366
-
2367
- declare interface TreeRendererRefreshEvent {
2368
- treeId: string;
2369
- }
2370
-
2371
- declare type TreeRendererRefreshListener = (event: TreeRendererRefreshEvent) => void;
2372
-
2373
- declare interface TreeRendererRegistry {
2374
- treeStore: WorkbenchStore<TreeRendererStoreState>;
2375
- registerTreeRenderer(view: TreeRendererContribution, metadata?: ContributionMetadata): Disposable_2;
2376
- setTreeRendererImplementation(impl: TreeRendererImplementation): void;
2377
- getTreeRenderer(id: string): RegisteredTreeRendererContribution | undefined;
2378
- listTreeRenderers(): RegisteredTreeRendererContribution[];
2379
- getBody(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
2380
- getHeader(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
2381
- getFooter(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
2382
- getChildren(id: string, node: TreeNode, ctx?: TreeQueryContext): Promise<TreeNode[]>;
2383
- getTreeState(id: string): TreeRendererState;
2384
- setNodeExpanded(id: string, nodeId: string, expanded: boolean): void;
2385
- setSectionExpanded(id: string, sectionId: string, expanded: boolean): void;
2386
- setSelectedNode(id: string, nodeId: string | undefined): void;
2387
- setLoading(id: string, loading: boolean): void;
2388
- refresh(id: string): void;
2389
- onDidRefresh(listener: TreeRendererRefreshListener): Disposable_2;
2390
- }
2391
-
2392
- declare interface TreeRendererState {
2393
- expandedNodeIds: string[];
2394
- expandedSectionIds: string[];
2395
- selectedNodeId?: string;
2396
- loading?: boolean;
2397
- }
2398
-
2399
- declare interface TreeRendererStoreState {
2400
- trees: Record<string, RegisteredTreeRendererContribution>;
2401
- statesByTreeId: Record<string, TreeRendererState>;
2402
- refreshKeysByTreeId: Record<string, number>;
2403
- }
2404
-
2405
- declare interface TreeSectionEmptyState {
2406
- title: string;
2407
- description?: string;
2408
- icon?: string;
2409
- }
2410
-
2411
- declare interface TreeViewSection {
2412
- id: string;
2413
- /** Host-owned customization boundary. Extension callbacks cannot set it. */
2414
- moveScope?: string;
2415
- label?: string;
2416
- actions?: TreeAction[];
2417
- collapsible?: boolean;
2418
- emptyState?: TreeSectionEmptyState;
2419
- nodes: TreeNode[];
2420
- hiddenByDefault?: boolean;
2421
- /** When true, the section (category) opts in to the tree's hide/show customization menu. */
2422
- canHide?: boolean;
2423
- /** When false, the section stays fixed within the Sidenav main region. */
2424
- canReorder?: boolean;
2425
- }
2426
-
2427
- declare interface UnresolvedWorkbenchExtensionMenuContribution {
2428
- contribution: ExtensionMenuContribution;
2429
- targetId: string;
2430
- }
2431
-
2432
- /**
2433
- * Core-owned contracts for kanban renderer contributions. @pstdio/ui's
2434
- * KanbanRenderer props are structurally identical; the React layer bridges the
2435
- * two, so drift surfaces as a compile error there instead of coupling core's
2436
- * API shape to UI package ownership.
2437
- */
2438
- declare type ViewMode = "board" | "list";
2439
-
2440
- declare interface ViewSettingsPanel extends SettingsPanelBase {
2441
- kind: "view";
2442
- viewId: string;
2443
- }
2444
-
2445
- declare interface WidgetContribution {
2446
- id: string;
2447
- title: string;
2448
- icon?: string;
2449
- region: WorkbenchRegion;
2450
- fallbackRegion?: WorkbenchRegion;
2451
- singleton?: boolean;
2452
- reuse?: WidgetReusePolicy;
2453
- mountStrategy?: WidgetMountStrategy;
2454
- closable?: boolean;
2455
- hiddenByDefault?: boolean;
2456
- regionSize?: WorkbenchRegionSize;
2457
- regionCollapsible?: boolean;
2458
- headerBorderBottom?: boolean;
2459
- resourceKinds?: string[];
2460
- priority?: number;
2461
- rendererId: string;
2462
- openCommand?: WorkbenchCommandTarget;
2463
- eligibleLocations?: WorkbenchLocationEligibility;
2464
- panelMenuOwner?: WorkbenchPanelMenuOwner;
2465
- tab?: WorkbenchWidgetTab;
2466
- config?: unknown;
2467
- canOpen?(resource: ResourceRef): boolean;
2468
- }
2469
-
2470
- declare type WidgetMountStrategy = "active" | "keep-mounted";
2471
-
2472
- declare type WidgetReusePolicy = "resource" | "none";
2473
-
2474
- declare type WorkbenchBreadcrumbChangeListener = () => void;
2475
-
2476
- declare interface WorkbenchBreadcrumbController {
2477
- store: WorkbenchStore<WorkbenchBreadcrumbState>;
2478
- setItems(items: WorkbenchBreadcrumbItem[]): Disposable_2;
2479
- clearItems(): void;
2480
- getItems(): WorkbenchBreadcrumbItem[] | undefined;
2481
- onDidChange(listener: WorkbenchBreadcrumbChangeListener): Disposable_2;
2482
- }
2483
-
2484
- declare interface WorkbenchBreadcrumbItem {
2485
- title: unknown;
2486
- icon?: string;
2487
- indicator?: "session-status";
2488
- url?: string;
2489
- onClick?: () => void;
2490
- resource?: ResourceRef;
2491
- }
2492
-
2493
- declare interface WorkbenchBreadcrumbState {
2494
- items: WorkbenchBreadcrumbItem[] | undefined;
2495
- }
2496
-
2497
- declare interface WorkbenchCommandExecutionContext {
2498
- resource?: ResourceRef;
2499
- source?: "panel-add";
2500
- }
2501
-
2502
- declare interface WorkbenchCommandExecutionError {
2503
- commandId: string;
2504
- args: unknown;
2505
- error: unknown;
2506
- }
2507
-
2508
- declare type WorkbenchCommandExecutionErrorListener = (event: WorkbenchCommandExecutionError) => void;
2509
-
2510
- declare type WorkbenchCommandPaletteChangeListener = (open: boolean) => void;
2511
-
2512
- declare interface WorkbenchCommandPaletteController {
2513
- store: WorkbenchStore<WorkbenchCommandPaletteState>;
2514
- isOpen(): boolean;
2515
- getView(): WorkbenchCommandPaletteView;
2516
- getInitialQuery(): string;
2517
- getParamsRequest(): WorkbenchCommandParamsRequest | null;
2518
- open(input?: WorkbenchCommandPaletteOpenInput): void;
2519
- close(): void;
2520
- toggle(): void;
2521
- requestParams(request: WorkbenchCommandParamsRequest): void;
2522
- clearParams(): void;
2523
- onDidChange(listener: WorkbenchCommandPaletteChangeListener): Disposable_2;
2524
- }
2525
-
2526
- declare interface WorkbenchCommandPaletteOpenInput {
2527
- view?: WorkbenchCommandPaletteView;
2528
- initialQuery?: string;
2529
- }
2530
-
2531
- declare interface WorkbenchCommandPaletteState {
2532
- open: boolean;
2533
- view: WorkbenchCommandPaletteView;
2534
- initialQuery: string;
2535
- paramsRequest: WorkbenchCommandParamsRequest | null;
2536
- }
2537
-
2538
- declare type WorkbenchCommandPaletteView = "main" | "theme";
2539
-
2540
- declare interface WorkbenchCommandParamsRequest {
2541
- record: {
2542
- command: {
2543
- id: string;
2544
- label: string;
2545
- params?: CommandParamSchema;
2546
- };
2547
- };
2548
- label: string;
2549
- args?: unknown;
2550
- context?: WorkbenchCommandExecutionContext;
2551
- }
2552
-
2553
- declare interface WorkbenchCommandTarget {
2554
- commandId: string;
2555
- args?: unknown;
2556
- }
2557
-
2558
- declare interface WorkbenchCompositionAddablePanel extends WorkbenchModeAddablePanel {
2559
- contribution: RegisteredWidgetContribution;
2560
- open?(resource?: ResourceRef): void;
2561
- }
2562
-
2563
- declare interface WorkbenchCompositionController {
2564
- panelsFor(region: WorkbenchPanelRegion): WorkbenchCompositionRegionPanels;
2565
- }
2566
-
2567
- declare interface WorkbenchCompositionRegionPanels {
2568
- open: readonly WorkbenchWidgetPlacement[];
2569
- addable: readonly WorkbenchCompositionAddablePanel[];
2570
- closable: readonly string[];
2571
- }
2572
-
2573
- declare interface WorkbenchCore extends WorkbenchCoreContributionContext {
2574
- host: WorkbenchHost;
2575
- layout: WorkbenchLayoutModel;
2576
- registerModule(module: WorkbenchModuleContribution): Disposable_2;
2577
- unregisterModule(moduleId: string): void;
2578
- }
2579
-
2580
- declare interface WorkbenchCoreContributionContext {
2581
- pinPlacement(identity: PlacementIdentity): void;
2582
- closePlacement(identity: PlacementIdentity): void;
2583
- breadcrumbs: WorkbenchBreadcrumbController;
2584
- commandPalette: WorkbenchCommandPaletteController;
2585
- commandPaletteResources: CommandPaletteResourceRegistry;
2586
- commands: CommandRegistry;
2587
- composition: WorkbenchCompositionController;
2588
- context: ContextKeyService;
2589
- focus: WorkbenchFocusController;
2590
- keybindings: KeybindingRegistry;
2591
- layout: WorkbenchModuleLayoutModel;
2592
- modes: WorkbenchModeRegistry;
2593
- modePlacements: WorkbenchModePlacementRegistry;
2594
- shellPlacements: WorkbenchShellPlacementRegistry;
2595
- navigation: NavigationRegistry;
2596
- navigationTrees: NavigationTreeRegistry;
2597
- notifications: NotificationRegistry;
2598
- overlays: WorkbenchOverlayRegistry;
2599
- placeholders: WorkbenchPlaceholderRegistry;
2600
- pageLocations: WorkbenchPageLocationController;
2601
- pages: WorkbenchPageRegistry<WorkbenchWidgetPlacement>;
2602
- panelMenuState: WorkbenchPanelMenuStateController;
2603
- preferences: PreferenceRegistry;
2604
- treeViews: WorkbenchTreeViews;
2605
- resources: ResourceRegistry;
2606
- views: WorkbenchViewRegistry;
2607
- viewMenus: WorkbenchViewMenuRegistry;
2608
- settings: SettingsRegistry;
2609
- statusBar: WorkbenchStatusBarRegistry;
2610
- statuses: WorkbenchStatusRegistry;
2611
- shell: WorkbenchShellController;
2612
- sidePanel: WorkbenchSidePanelController;
2613
- terminal: WorkbenchTerminalController;
2614
- themes: ThemeRegistry;
2615
- fileIconThemes: FileIconThemeRegistry;
2616
- getPrimaryResource(): ResourceRef | undefined;
2617
- onDidChangePrimaryResource(listener: (resource: ResourceRef | undefined) => void): Disposable_2;
2618
- getActiveResource(): ResourceRef | undefined;
2619
- onDidChangeActiveResource(listener: (resource: ResourceRef | undefined) => void): Disposable_2;
2620
- registerChildModule(module: WorkbenchModuleContribution): Disposable_2;
2621
- }
2622
-
2623
- export declare interface WorkbenchExtensionCommandContext {
2624
- executeCommand(commandId: string, body: CommandExecuteRequest): Promise<unknown> | unknown;
2625
- prepareCommandArgs?(commandId: string, args: unknown, context?: WorkbenchCommandExecutionContext, onArgsChange?: (args: unknown) => void): Promise<unknown> | unknown;
2626
- projectId: string;
2627
- workbench: WorkbenchModuleContext;
2628
- }
2629
-
2630
- export declare interface WorkbenchExtensionCommandPaletteRegistration {
2631
- command: Command;
2632
- contribution: ExtensionCommandPaletteContribution;
2633
- menuItem: MenuItem;
2634
- targetCommandId: string;
2635
- }
2636
-
2637
- declare type WorkbenchExtensionCommandPaletteResourceRecord_2 = z.infer<typeof extensionCommandPaletteResourceRecordSchema>;
2638
-
2639
- export declare interface WorkbenchExtensionControlsAdapter {
2640
- /** Supply a fallback resource when the widget placement carries none. */
2641
- resolveResource?: (record: WorkbenchExtensionControlsRendererRecord) => ResourceRef | undefined;
2642
- }
2643
-
2644
- declare type WorkbenchExtensionControlsRendererRecord = z.infer<typeof extensionControlsRendererRecordSchema>;
2645
-
2646
- declare type WorkbenchExtensionDataTableRendererRecord = ExtensionDataTableRendererRecord;
2647
-
2648
- declare type WorkbenchExtensionFileRendererRecord = z.infer<typeof extensionFileRendererRecordSchema>;
2649
-
2650
- export declare interface WorkbenchExtensionHostMenuRegistration extends Omit<WorkbenchExtensionMenuRegistration, "menuItem" | "menuPath"> {
2651
- menuItems: Array<{
2652
- menuItem: MenuItem;
2653
- menuPath: MenuPath;
2654
- }>;
2655
- }
2656
-
2657
- export declare interface WorkbenchExtensionKanbanRendererAdapter {
2658
- /** Override label resolution. Defaults to workbench's `text(value, fallback)`. */
2659
- resolveLabel?: Localizer;
2660
- /** Post-process an attribute descriptor (after localization). Defaults to identity. */
2661
- decorateAttribute?: (record: WorkbenchExtensionKanbanRendererRecord, attribute: ReactAttributeDescriptor) => ReactAttributeDescriptor;
2662
- /**
2663
- * Translate a row's transport-shaped resource (`{ type, id }`) into a workbench
2664
- * `ResourceRef`. Defaults to the workbench `pstdio://extension-resource/...`
2665
- * scheme — dashboard supplies its own. Returns `undefined` for rows that do not
2666
- * carry an explicit resource.
2667
- */
2668
- resolveRowResource?: (record: WorkbenchExtensionKanbanRendererRecord, row: KanbanRendererRow_2) => ResourceRef | undefined;
2669
- /**
2670
- * Synthesize a `ResourceRef` for row-action execution context when the row does
2671
- * not carry an explicit resource. Defaults to a `pstdio://extension-resource/`
2672
- * fallback built from `record.resourceKind` and `row.id`.
2673
- */
2674
- resolveRowActionResource?: (record: WorkbenchExtensionKanbanRendererRecord, row: KanbanRendererRow_2) => ResourceRef | undefined;
2675
- /**
2676
- * Override the row-action runner. `runDefault` performs the workbench's standard
2677
- * flow (look up the row-action command, request params if needed, execute it).
2678
- */
2679
- executeRowAction?: (input: {
2680
- record: WorkbenchExtensionKanbanRendererRecord;
2681
- action: RowAction;
2682
- row: KanbanRendererRow_2;
2683
- resource: ResourceRef | undefined;
2684
- runDefault: () => Promise<void>;
2685
- }) => void | Promise<void>;
2686
- /**
2687
- * Handle a row click when the renderer has no declared activation handler.
2688
- */
2689
- onRowClick?: (input: {
2690
- record: WorkbenchExtensionKanbanRendererRecord;
2691
- row: KanbanRendererRow_2;
2692
- resource: ResourceRef | undefined;
2693
- }) => void;
2694
- /** Called after a successful renderer-owned create form submission. */
2695
- onAfterCreate?: (input: {
2696
- record: WorkbenchExtensionKanbanRendererRecord;
2697
- created: unknown;
2698
- submission: KanbanRendererCreateSubmission;
2699
- }) => void | Promise<void>;
2700
- /**
2701
- * Called after any mutation (attribute change, reorder, column action, default
2702
- * create) resolves successfully. Hosts that drive refresh via the outer command
2703
- * pipeline (testbench / workbench) leave this unset; dashboard supplies
2704
- * `ctx.views.refreshView(id)`.
2705
- */
2706
- onAfterMutation?: (record: WorkbenchExtensionKanbanRendererRecord) => void;
2707
- }
2708
-
2709
- declare type WorkbenchExtensionKanbanRendererRecord = z.infer<typeof extensionKanbanRendererRecordSchema>;
2710
-
2711
- export declare interface WorkbenchExtensionMenuRegistration {
2712
- command: Command;
2713
- contribution: ExtensionMenuContribution;
2714
- menuItem: MenuItem;
2715
- menuPath: MenuPath;
2716
- targetCommandId: string;
2717
- }
2718
-
2719
- export declare interface WorkbenchExtensionMenuSlotConfig {
2720
- menuPath: MenuPath;
2721
- group?: string;
2722
- overflowLabel?: string;
2723
- }
2724
-
2725
- export declare type WorkbenchExtensionMenuWhenBuilder = (contribution: ExtensionMenuContribution) => string | undefined;
2726
-
2727
- export { WorkbenchExtensionMetadata }
2728
-
2729
- declare interface WorkbenchExtensionRefreshEvent extends FileRendererRefreshEnvelope {
2730
- id: string;
2731
- }
2732
-
2733
- export declare type WorkbenchExtensionRendererKind = "tree" | "file" | "controls" | "dataTable" | "kanban";
2734
-
2735
- declare type WorkbenchExtensionStringResolver = (value: Localizable<string> | undefined, extensionId: string) => string;
2736
-
2737
- declare type WorkbenchExtensionTreeRendererRecord = z.infer<typeof extensionTreeRendererRecordSchema>;
2738
-
2739
- declare interface WorkbenchFileIconThemeStoreState {
2740
- themes: readonly FileIconThemePreferenceOption[];
2741
- }
2742
-
2743
- declare type WorkbenchFocusChangeListener = (region: WorkbenchFocusRegionId | undefined) => void;
2744
-
2745
- declare interface WorkbenchFocusController {
2746
- store: WorkbenchStore<WorkbenchFocusState>;
2747
- setActiveRegion(region: WorkbenchFocusRegionId): void;
2748
- clearFocus(): void;
2749
- getActiveRegion(): WorkbenchFocusRegionId | undefined;
2750
- onDidChange(listener: WorkbenchFocusChangeListener): Disposable_2;
2751
- }
2752
-
2753
- declare type WorkbenchFocusRegionId = (typeof workbenchFocusRegions)[number];
2754
-
2755
- declare const workbenchFocusRegions: readonly ["activity", "sidenav", "main", "secondary", "side", "status"];
2756
-
2757
- declare interface WorkbenchFocusState {
2758
- activeRegion: WorkbenchFocusRegionId | undefined;
2759
- }
2760
-
2761
- declare type WorkbenchHierarchyNode = ResourceRef | WorkbenchViewHierarchyNode;
2762
-
2763
- declare interface WorkbenchHost {
2764
- getSnapshot(): WorkbenchSnapshot;
2765
- restoreSnapshot(snapshot: WorkbenchSnapshot): void;
2766
- setPersistenceScope(scope: string | undefined, input?: {
2767
- carryRegions?: readonly WorkbenchRegion[];
2768
- }): void;
2769
- getPersistenceScope(): string | undefined;
2770
- }
2771
-
2772
- declare interface WorkbenchLayout {
2773
- regions: Record<WorkbenchRegion, WorkbenchRegionState>;
2774
- locationSubPanelSelections?: Record<string, Partial<Record<WorkbenchPanelRegion, string>>>;
2775
- activeWidgetId?: string;
2776
- activeLocationWidgetId?: string;
2777
- activeResourceKey?: string;
2778
- }
2779
-
2780
- declare type WorkbenchLayoutModel = LayoutModel & MenuRegistry;
2781
-
2782
- declare interface WorkbenchLayoutStoreState {
2783
- layout: WorkbenchLayout;
2784
- widgets: Record<string, RegisteredWidgetContribution>;
2785
- placeholders: Partial<Record<WorkbenchRegion, RegisteredPlaceholderContribution>>;
2786
- }
2787
-
2788
- declare interface WorkbenchLocationEligibility {
2789
- modeIds?: string[];
2790
- resourceKinds?: string[];
2791
- resourceIds?: string[];
2792
- canOpen?(resource: ResourceRef): boolean;
2793
- canOpenLocation?(location: {
2794
- resource?: ResourceRef;
2795
- viewId?: string;
2796
- }): boolean;
2797
- }
2798
-
2799
- declare type WorkbenchModeActivationContext = WorkbenchCoreContributionContext;
2800
-
2801
- declare type WorkbenchModeActivationResult = Disposable_2 | readonly Disposable_2[] | undefined;
2802
-
2803
- declare interface WorkbenchModeAddablePanel {
2804
- panelId: string;
2805
- region: WorkbenchPanelRegion;
2806
- allowedRegions?: readonly WorkbenchRegion[];
2807
- pinned?: boolean;
2808
- }
2809
-
2810
- declare interface WorkbenchModeAddablePanelContext {
2811
- layout: WorkbenchLayout;
2812
- resource?: ResourceRef;
2813
- }
2814
-
2815
- declare type WorkbenchModeChangeListener = () => void;
2816
-
2817
- declare interface WorkbenchModeContribution {
2818
- id: string;
2819
- label?: string;
2820
- defaultTheme?: string;
2821
- floatingPanels?: "visible" | "hidden";
2822
- chrome?: Partial<Record<"nav" | "sidenav" | "activity" | "status", string | false>>;
2823
- panels?: readonly WorkbenchPanelRegion[];
2824
- /** Region-level layout policy while this mode is active. */
2825
- regionSettings?: Partial<Record<WorkbenchRegion, WorkbenchRegionSettings>>;
2826
- resourceKinds?: readonly string[];
2827
- defaultResource?: ResourceRef | (() => Promise<ResourceRef | undefined> | ResourceRef | undefined);
2828
- listAddablePanels?(context: WorkbenchModeAddablePanelContext): readonly WorkbenchModeAddablePanel[];
2829
- activate(ctx: WorkbenchModeActivationContext): WorkbenchModeActivationResult;
2830
- seed?(ctx: WorkbenchModeActivationContext): void;
2831
- enter?(ctx: WorkbenchModeActivationContext): WorkbenchModeActivationResult;
2832
- reconcile?(ctx: WorkbenchModeActivationContext): void;
2833
- }
2834
-
2835
- declare interface WorkbenchModePlacementContribution extends WorkbenchPlacementPresentation {
2836
- readonly id: string;
2837
- readonly ref: PlacementRef;
2838
- readonly modeId: string;
2839
- readonly item: WorkbenchOwnedPlacementItem;
2840
- readonly region: DockedWorkbenchRegion;
2841
- readonly order?: number;
2842
- readonly movableTo?: readonly DockedWorkbenchRegion[];
2843
- }
2844
-
2845
- declare interface WorkbenchModePlacementRegistry {
2846
- registerPlacement(placement: WorkbenchModePlacementContribution): Disposable_2;
2847
- getPlacement(ref: PlacementRef): WorkbenchModePlacementContribution | undefined;
2848
- listPlacements(modeId?: string): WorkbenchModePlacementContribution[];
2849
- openPlacement(input: OpenModePlacementTarget): PlacementIdentity;
2850
- updatePlacement(identity: PlacementIdentity, input: {
2851
- resource?: ResourceRef;
2852
- title?: string;
2853
- open?: PageOpenIntent;
2854
- }): void;
2855
- closePlacement(identity: PlacementIdentity): void;
2856
- resolvePlacements(modeId: string, context?: OwnedPlacementLocationContext): readonly ResolvedOwnedPlacement<WorkbenchWidgetPlacement>[];
2857
- onDidChange(listener: () => void): Disposable_2;
2858
- }
2859
-
2860
- declare interface WorkbenchModeRegistry {
2861
- store: WorkbenchStore<WorkbenchModeStoreState>;
2862
- dispose(): void;
2863
- registerMode(mode: WorkbenchModeContribution): Disposable_2;
2864
- getMode(id: string): WorkbenchModeContribution | undefined;
2865
- listModes(): WorkbenchModeContribution[];
2866
- getActiveModeId(): string | undefined;
2867
- isTransitioning(): boolean;
2868
- setActiveMode(id: string | undefined, input?: {
2869
- deferSeed?: boolean;
2870
- }): void;
2871
- seedActiveMode(): void;
2872
- onDidChangeActive(listener: WorkbenchModeChangeListener): Disposable_2;
2873
- }
2874
-
2875
- declare interface WorkbenchModeStoreState {
2876
- modes: Record<string, WorkbenchModeContribution>;
2877
- activeModeId: string | undefined;
2878
- }
2879
-
2880
- declare type WorkbenchModuleActivationResult = Disposable_2 | readonly Disposable_2[] | undefined;
2881
-
2882
- declare type WorkbenchModuleContext = WorkbenchCoreContributionContext;
2883
-
2884
- declare interface WorkbenchModuleContribution {
2885
- id: string;
2886
- source?: ContributionSource;
2887
- ownerId?: string;
2888
- activate(ctx: WorkbenchModuleContributionContext): WorkbenchModuleActivationResult;
2889
- }
2890
-
2891
- declare type WorkbenchModuleContributionContext = WorkbenchModuleContext;
2892
-
2893
- declare type WorkbenchModuleLayoutModel = Omit<WorkbenchLayoutModel, "registerPanel" | "registerWidget" | "openPanel" | "openWidget" | "registerPlaceholder" | "registerPanelMenu">;
2894
-
2895
- declare interface WorkbenchNotification {
2896
- id?: string;
2897
- level: WorkbenchNotificationLevel;
2898
- title: string;
2899
- message?: string;
2900
- createdAt?: string;
2901
- resource?: ResourceRef;
2902
- actions?: WorkbenchNotificationAction[];
2903
- metadata?: Record<string, unknown>;
2904
- }
2905
-
2906
- declare interface WorkbenchNotificationAction {
2907
- commandId: string;
2908
- title: string;
2909
- args?: unknown;
2910
- }
2911
-
2912
- declare type WorkbenchNotificationEvent = {
2913
- type: "show";
2914
- id: string;
2915
- notification: RegisteredWorkbenchNotification;
2916
- } | {
2917
- type: "dismiss";
2918
- id: string;
2919
- };
2920
-
2921
- declare type WorkbenchNotificationLevel = "info" | "success" | "warning" | "error";
2922
-
2923
- declare type WorkbenchNotificationListener = (event: WorkbenchNotificationEvent) => void;
2924
-
2925
- declare interface WorkbenchNotificationStoreState {
2926
- notifications: Record<string, RegisteredWorkbenchNotification>;
2927
- }
2928
-
2929
- declare interface WorkbenchOverlayContribution extends Omit<WorkbenchPlacementPresentation, "mountStrategy"> {
2930
- id: string;
2931
- viewId: string;
2932
- closable?: boolean;
2933
- }
2934
-
2935
- declare interface WorkbenchOverlayRegistry {
2936
- registerOverlay(overlay: WorkbenchOverlayContribution): Disposable_2;
2937
- getOverlay(id: string): WorkbenchOverlayContribution | undefined;
2938
- listOverlays(): WorkbenchOverlayContribution[];
2939
- openOverlay(id: string, input?: OpenWorkbenchOverlayInput): string;
2940
- closeOverlay(instanceId: string): void;
2941
- }
2942
-
2943
- declare type WorkbenchOwnedPlacementItem = PlacementItem;
2944
-
2945
- declare interface WorkbenchPageContribution {
2946
- id: string;
2947
- ref: PageRef;
2948
- title?: Localizable<string>;
2949
- icon?: string;
2950
- path: string;
2951
- modeId: string;
2952
- parentId?: string;
2953
- resource?: ResourceConstraint;
2954
- main: WorkbenchPageMain;
2955
- slots: readonly WorkbenchPageSlot[];
2956
- }
2957
-
2958
- declare interface WorkbenchPageLocationController {
2959
- historyStore: WorkbenchStore<WorkbenchPageLocationHistoryState>;
2960
- setProject(projectId: string): void;
2961
- clearProject(): void;
2962
- isCurrentProjectUrl(projectId: string): boolean;
2963
- hasCurrentPageUrl(projectId: string): boolean;
2964
- boot(projectId: string): WorkbenchPageNavigationResult;
2965
- switchProject(projectId: string): WorkbenchPageNavigationResult;
2966
- navigate(target: NavigationTargetPage_2): WorkbenchPageNavigationResult;
2967
- replay(location: PageLocation): WorkbenchPageNavigationResult;
2968
- navigateToParent(): WorkbenchPageNavigationResult;
2969
- closePlacement(identity: PlacementIdentity): WorkbenchPageNavigationResult;
2970
- removeResource(resource: ResourceRef, retained: readonly PlacementIdentity[]): void;
2971
- goBack(): void;
2972
- goForward(): void;
2973
- dispose(): void;
2974
- }
2975
-
2976
- declare interface WorkbenchPageLocationDiagnostic {
2977
- code: "page-location-unresolved";
2978
- source: "boot" | "history" | "navigation" | "project-switch";
2979
- message: string;
2980
- }
2981
-
2982
- declare interface WorkbenchPageLocationHistoryState {
2983
- canGoBack: boolean;
2984
- canGoForward: boolean;
2985
- }
2986
-
2987
- declare type WorkbenchPageMain = PageMain extends infer Main ? Main extends PageMain ? Omit<Main, "tab"> & {
2988
- readonly tab?: WorkbenchPlacementPresentation["tab"];
2989
- } : never : never;
2990
-
2991
- declare type WorkbenchPageNavigationResult = {
2992
- ok: true;
2993
- location: PageLocation;
2994
- } | {
2995
- ok: false;
2996
- diagnostic: WorkbenchPageLocationDiagnostic;
2997
- };
2998
-
2999
- declare interface WorkbenchPageRegistry<Value> {
3000
- store: WorkbenchStore<WorkbenchPageRegistryStoreState<Value>>;
3001
- registerPage(page: WorkbenchPageContribution): {
3002
- dispose(): void;
3003
- };
3004
- getPage(pageId: string): WorkbenchPageContribution | undefined;
3005
- listPages(): WorkbenchPageContribution[];
3006
- pinPlacement(identity: PlacementIdentity): void;
3007
- openSlot(input: WorkbenchPageSlotOpenInput): void;
3008
- }
3009
-
3010
- declare interface WorkbenchPageRegistryStoreState<Value> {
3011
- pages: Readonly<Record<string, WorkbenchPageContribution>>;
3012
- pageStates: Readonly<Record<string, WorkbenchPageRuntimeState>>;
3013
- projectId?: string;
3014
- location?: PageLocation;
3015
- activeModeId?: string;
3016
- activePageId?: string;
3017
- placements: readonly ResolvedOwnedPlacement<Value>[];
3018
- reconciliation: OwnedPlacementReconciliation<Value>;
3019
- }
3020
-
3021
- declare interface WorkbenchPageRuntimeState {
3022
- openStaticSlotIds: readonly string[];
3023
- resourceInstances: Readonly<Record<string, readonly WorkbenchPageSlotInstance[]>>;
3024
- activePrimaryInstanceKey?: string;
3025
- }
3026
-
3027
- declare interface WorkbenchPageSlot extends Omit<PageSlot, "tab"> {
3028
- readonly tab?: WorkbenchPlacementPresentation["tab"];
3029
- }
3030
-
3031
- declare interface WorkbenchPageSlotInstance {
3032
- instanceKey: string;
3033
- resource: ResourceRef;
3034
- section?: FileRendererSectionTarget;
3035
- open?: PageOpenIntent;
3036
- }
3037
-
3038
- declare interface WorkbenchPageSlotOpenInput {
3039
- pageId: string;
3040
- slotId: string;
3041
- resource?: ResourceRef;
3042
- open?: PageOpenIntent;
3043
- }
3044
-
3045
- declare interface WorkbenchPanelContribution {
3046
- id: string;
3047
- title: string;
3048
- icon?: string;
3049
- region: WorkbenchRegion;
3050
- fallbackRegion?: WorkbenchRegion;
3051
- rendererId: string;
3052
- singleton?: boolean;
3053
- reuse?: WorkbenchPanelReusePolicy;
3054
- mountStrategy?: WorkbenchPanelMountStrategy;
3055
- closable?: boolean;
3056
- hiddenByDefault?: boolean;
3057
- regionSize?: WorkbenchRegionSize;
3058
- regionCollapsible?: boolean;
3059
- headerBorderBottom?: boolean;
3060
- resourceKinds?: string[];
3061
- eligibleLocations?: WorkbenchLocationEligibility;
3062
- priority?: number;
3063
- openCommand?: WorkbenchCommandTarget;
3064
- tab?: WorkbenchPanelTab;
3065
- config?: unknown;
3066
- canOpen?(resource: ResourceRef): boolean;
3067
- ownerId?: string;
3068
- source?: ContributionSource;
3069
- panelMenus?: readonly WorkbenchPanelMenuDefinition[];
3070
- }
3071
-
3072
- declare interface WorkbenchPanelInstance {
3073
- instanceId: string;
3074
- panelId: string;
3075
- placementIdentity?: PlacementIdentity;
3076
- viewId?: string;
3077
- ownerId?: string;
3078
- source?: ContributionSource;
3079
- resource?: ResourceRef;
3080
- section?: FileRendererSectionTarget;
3081
- resourceKey?: string;
3082
- ownerResourceKey?: string;
3083
- title?: string;
3084
- pinned?: boolean;
3085
- closable: boolean;
3086
- mountStrategy?: WorkbenchPanelMountStrategy;
3087
- hiddenByDefault?: boolean;
3088
- tabRetention?: WorkbenchTabRetention;
3089
- tab?: WorkbenchPanelTab;
3090
- }
3091
-
3092
- declare type WorkbenchPanelMenuContribution = Omit<WidgetContribution, "region" | "fallbackRegion"> & {
3093
- region: WorkbenchPanelMenuRegion;
3094
- fallbackRegion?: WorkbenchPanelMenuRegion;
3095
- };
3096
-
3097
- declare interface WorkbenchPanelMenuDefinition {
3098
- id: string;
3099
- title: string;
3100
- icon?: string;
3101
- side: WorkbenchPanelMenuSide;
3102
- singleton?: boolean;
3103
- reuse?: WorkbenchPanelReusePolicy;
3104
- mountStrategy?: WorkbenchPanelMountStrategy;
3105
- hiddenByDefault?: boolean;
3106
- regionSize?: WorkbenchRegionSize;
3107
- regionCollapsible?: boolean;
3108
- headerBorderBottom?: boolean;
3109
- rendererId: string;
3110
- priority?: number;
3111
- config?: unknown;
3112
- }
3113
-
3114
- declare type WorkbenchPanelMenuOwner = {
3115
- level: "panel";
3116
- contributionId?: string;
3117
- } | {
3118
- level: "sub-panel";
3119
- contributionId: string;
3120
- };
3121
-
3122
- declare type WorkbenchPanelMenuRegion = (typeof workbenchPanelMenuRegions)[WorkbenchPanelRegion][WorkbenchPanelMenuSide];
3123
-
3124
- declare const workbenchPanelMenuRegions: {
3125
- readonly main: {
3126
- readonly left: "main-left-menu";
3127
- readonly right: "main-right-menu";
3128
- };
3129
- readonly secondary: {
3130
- readonly left: "secondary-left-menu";
3131
- readonly right: "secondary-right-menu";
3132
- };
3133
- readonly side: {
3134
- readonly left: "side-left-menu";
3135
- readonly right: "side-right-menu";
3136
- };
3137
- };
3138
-
3139
- declare type WorkbenchPanelMenuSide = "left" | "right";
3140
-
3141
- declare interface WorkbenchPanelMenuState {
3142
- openByMenuId: Record<string, boolean>;
3143
- }
3144
-
3145
- declare type WorkbenchPanelMenuStateChangeListener = (state: WorkbenchPanelMenuState) => void;
3146
-
3147
- declare interface WorkbenchPanelMenuStateController {
3148
- store: WorkbenchStore<WorkbenchPanelMenuState>;
3149
- isOpen(menuId: string): boolean;
3150
- setOpen(menuId: string, open: boolean): void;
3151
- toggle(menuId: string): void;
3152
- setPersistenceScope(scope: string | undefined): void;
3153
- getPersistenceScope(): string | undefined;
3154
- onDidChange(listener: WorkbenchPanelMenuStateChangeListener): Disposable_2;
3155
- }
3156
-
3157
- declare type WorkbenchPanelMountStrategy = WidgetMountStrategy;
3158
-
3159
- declare type WorkbenchPanelOpenStrategy = {
3160
- kind: "persistent";
3161
- position?: WorkbenchTabPosition;
3162
- } | {
3163
- kind: "replace-active";
3164
- } | {
3165
- kind: "replace-panel";
3166
- instanceId: string;
3167
- retention?: WorkbenchTabRetention;
3168
- } | {
3169
- kind: "preview";
3170
- position?: WorkbenchTabPosition;
3171
- };
3172
-
3173
- declare type WorkbenchPanelRegion = (typeof workbenchPanelRegions)[number];
3174
-
3175
- declare const workbenchPanelRegions: readonly ["main", "secondary", "side"];
3176
-
3177
- declare interface WorkbenchPanelRenderInput {
3178
- workbench: WorkbenchCore;
3179
- panel: WorkbenchPanelContribution | PlaceholderContribution | RegisteredPlaceholderContribution;
3180
- instance: WorkbenchPanelInstance;
3181
- refresh: () => void;
3182
- }
3183
-
3184
- declare type WorkbenchPanelReusePolicy = WidgetReusePolicy;
3185
-
3186
- declare type WorkbenchPanelTab = WorkbenchWidgetTab;
3187
-
3188
- declare interface WorkbenchPlaceholderContribution {
3189
- id: string;
3190
- viewId: string;
3191
- title?: string;
3192
- region: WorkbenchRegion;
3193
- regionSize?: WorkbenchRegionSize;
3194
- regionCollapsible?: boolean;
3195
- config?: unknown;
3196
- }
3197
-
3198
- declare interface WorkbenchPlaceholderRegistry {
3199
- registerPlaceholder(placeholder: WorkbenchPlaceholderContribution, metadata?: ContributionMetadata): Disposable_2;
3200
- }
3201
-
3202
- declare interface WorkbenchPlacementPresentation {
3203
- mountStrategy?: WidgetMountStrategy;
3204
- hiddenByDefault?: boolean;
3205
- headerBorderBottom?: boolean;
3206
- tab?: WorkbenchPanelTab;
3207
- config?: unknown;
3208
- }
3209
-
3210
- declare interface WorkbenchReactViewBody {
3211
- kind: "react";
3212
- render: WorkbenchRendererRegistration["render"];
3213
- }
3214
-
3215
- declare type WorkbenchRegion = (typeof workbenchRegions)[number];
3216
-
3217
- 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"];
3218
-
3219
- /** Region-level layout policy owned by the active mode or the host, never by a placement. */
3220
- declare type WorkbenchRegionSettings = ModeRegionSettings;
3221
-
3222
- declare interface WorkbenchRegionSize {
3223
- defaultPx?: number;
3224
- minPx?: number;
3225
- maxPx?: number;
3226
- }
3227
-
3228
- declare interface WorkbenchRegionState {
3229
- id: WorkbenchRegion;
3230
- visible: boolean;
3231
- size?: number;
3232
- widgets: WorkbenchWidgetPlacement[];
3233
- activeWidgetId?: string;
3234
- }
3235
-
3236
- declare interface WorkbenchRendererRegistration {
3237
- id: string;
3238
- render: (input: WorkbenchPanelRenderInput) => unknown;
3239
- }
3240
-
3241
- declare interface WorkbenchShellController {
3242
- getRegionState(region: WorkbenchRegion): WorkbenchShellRegionState;
3243
- setRegionOpen(region: WorkbenchShellOpenRegion, open: boolean): void;
3244
- setRegionSize(region: WorkbenchRegion, size: number): void;
3245
- getSidePanelPresentation(): WorkbenchSidePanelPresentation;
3246
- setSidePanelPresentation(presentation: WorkbenchSidePanelPresentation): void;
3247
- onDidChange(listener: () => void): Disposable_2;
3248
- }
3249
-
3250
- declare type WorkbenchShellOpenRegion = "sidenav" | "secondary" | "side";
3251
-
3252
- declare interface WorkbenchShellPlacementContribution extends WorkbenchPlacementPresentation {
3253
- readonly id: string;
3254
- readonly item: WorkbenchOwnedPlacementItem;
3255
- readonly region: WorkbenchRegion;
3256
- readonly order?: number;
3257
- }
3258
-
3259
- declare interface WorkbenchShellPlacementRegistry {
3260
- registerPlacement(placement: WorkbenchShellPlacementContribution): Disposable_2;
3261
- getPlacement(placementId: string): WorkbenchShellPlacementContribution | undefined;
3262
- listPlacements(): WorkbenchShellPlacementContribution[];
3263
- openPlacement(input: OpenWorkbenchShellPlacementInput): PlacementIdentity;
3264
- updatePlacement(identity: PlacementIdentity, input: {
3265
- resource?: ResourceRef;
3266
- title?: string;
3267
- open?: PageOpenIntent;
3268
- }): void;
3269
- closePlacement(identity: PlacementIdentity): void;
3270
- resolvePlacements(context?: OwnedPlacementLocationContext): readonly ResolvedOwnedPlacement<WorkbenchWidgetPlacement>[];
3271
- onDidChange(listener: () => void): Disposable_2;
3272
- }
3273
-
3274
- declare interface WorkbenchShellRegionState {
3275
- open: boolean;
3276
- size?: number;
3277
- }
3278
-
3279
- declare type WorkbenchSidePanelChangeListener = (mode: WorkbenchSidePanelMode) => void;
3280
-
3281
- declare interface WorkbenchSidePanelController {
3282
- canFloat(): boolean;
3283
- store: WorkbenchStore<WorkbenchSidePanelState>;
3284
- getMode(): WorkbenchSidePanelMode;
3285
- setMode(mode: WorkbenchSidePanelMode): void;
3286
- onDidChange(listener: WorkbenchSidePanelChangeListener): Disposable_2;
3287
- }
3288
-
3289
- declare type WorkbenchSidePanelMode = "floating" | "closed" | "attached";
3290
-
3291
- declare type WorkbenchSidePanelPresentation = WorkbenchSidePanelMode;
3292
-
3293
- declare interface WorkbenchSidePanelState {
3294
- mode: WorkbenchSidePanelMode;
3295
- }
3296
-
3297
- declare interface WorkbenchSnapshot {
3298
- layout: WorkbenchLayout;
3299
- }
3300
-
3301
- declare interface WorkbenchStatusBarItem {
3302
- id: string;
3303
- viewId: string;
3304
- slot: WorkbenchStatusBarSlot;
3305
- order?: number;
3306
- isVisible?(): boolean;
3307
- }
3308
-
3309
- declare interface WorkbenchStatusBarRegistry {
3310
- store: WorkbenchStore<WorkbenchStatusBarRegistryState>;
3311
- registerItem(item: WorkbenchStatusBarItem): Disposable_2;
3312
- getItem(id: string): WorkbenchStatusBarItem | undefined;
3313
- listItems(): WorkbenchStatusBarItem[];
3314
- listVisibleItems(slot?: WorkbenchStatusBarSlot): WorkbenchStatusBarItem[];
3315
- }
3316
-
3317
- declare interface WorkbenchStatusBarRegistryState {
3318
- items: Record<string, WorkbenchStatusBarItem>;
3319
- }
3320
-
3321
- declare type WorkbenchStatusBarSlot = "leading" | "trailing";
3322
-
3323
- declare interface WorkbenchStatusRegistry {
3324
- store: WorkbenchStore<WorkbenchStatusRegistryState>;
3325
- registerStatusSet(contribution: WorkbenchStatusSetContribution, metadata?: ContributionMetadata): Disposable_2;
3326
- getStatusSet(id: string): RegisteredWorkbenchStatusSet | undefined;
3327
- listStatusSets(): RegisteredWorkbenchStatusSet[];
3328
- getStatuses(id: string): readonly WorkflowStatus[] | undefined;
3329
- load(id: string): Promise<readonly WorkflowStatus[]>;
3330
- query(id: string): Promise<readonly WorkflowStatus[]>;
3331
- save(id: string, statuses: readonly WorkflowStatus[]): Promise<readonly WorkflowStatus[]>;
3332
- }
3333
-
3334
- declare interface WorkbenchStatusRegistryState {
3335
- statusSets: Record<string, RegisteredWorkbenchStatusSet>;
3336
- values: Record<string, readonly WorkflowStatus[]>;
3337
- }
3338
-
3339
- declare interface WorkbenchStatusSetContribution {
3340
- id: string;
3341
- title: string;
3342
- actions?: readonly WorkflowStatusAction[];
3343
- query(): Promise<readonly WorkflowStatus[]> | readonly WorkflowStatus[];
3344
- save?(statuses: readonly WorkflowStatus[]): Promise<readonly WorkflowStatus[]> | readonly WorkflowStatus[];
3345
- }
3346
-
3347
- declare interface WorkbenchStore<TState> {
3348
- getState(): TState;
3349
- getInitialState(): TState;
3350
- subscribe(listener: WorkbenchStoreListener<TState>): () => void;
3351
- subscribeSelector<TValue>(selector: WorkbenchStoreSelector<TState, TValue>, listener: WorkbenchStoreSelectorListener<TValue>, options?: {
3352
- equalityFn?: (left: TValue, right: TValue) => boolean;
3353
- fireImmediately?: boolean;
3354
- }): () => void;
3355
- }
3356
-
3357
- declare type WorkbenchStoreListener<TState> = (state: TState, previousState: TState) => void;
3358
-
3359
- declare type WorkbenchStoreSelector<TState, TValue> = (state: TState) => TValue;
3360
-
3361
- declare type WorkbenchStoreSelectorListener<TValue> = (value: TValue, previousValue: TValue) => void;
3362
-
3363
- declare type WorkbenchTabAction = ({
3364
- kind: "command";
3365
- } & WorkbenchCommandTarget) | {
3366
- kind: "navigation";
3367
- target: NavigationTarget;
3368
- };
3369
-
3370
- declare interface WorkbenchTabMenuGroup {
3371
- id: string;
3372
- rows: readonly WorkbenchTabMenuRow[];
3373
- }
3374
-
3375
- declare interface WorkbenchTabMenuRow {
3376
- id: string;
3377
- label: string;
3378
- icon?: string;
3379
- iconColor?: string;
3380
- selected?: boolean;
3381
- disabled?: boolean;
3382
- action?: WorkbenchTabAction;
3383
- }
3384
-
3385
- declare type WorkbenchTabPosition = "start" | "end" | {
3386
- beforeWidgetId: string;
3387
- } | {
3388
- afterWidgetId: string;
3389
- };
3390
-
3391
- declare type WorkbenchTabRetention = "preview" | "persistent";
3392
-
3393
- declare interface WorkbenchTabSnapshot {
3394
- label?: string;
3395
- icon?: string;
3396
- indicator?: {
3397
- icon: string;
3398
- color?: string;
3399
- label?: string;
3400
- };
3401
- menu?: readonly WorkbenchTabMenuGroup[];
3402
- }
3403
-
3404
- declare interface WorkbenchTerminalController {
3405
- store: WorkbenchStore<WorkbenchTerminalState>;
3406
- /** True once the host injected a session opener. */
3407
- isAvailable(): boolean;
3408
- setSessionOpener(opener: WorkbenchTerminalSessionOpener | null): void;
3409
- /** Opens a session; the live adapter stays host-side and only the id is returned. */
3410
- open(input: {
3411
- bindingId?: string;
3412
- request: WorkbenchTerminalSessionRequest;
3413
- title?: string;
3414
- }): Promise<{
3415
- sessionId: string;
3416
- }>;
3417
- write(input: {
3418
- sessionId: string;
3419
- data: string | Uint8Array;
3420
- }): void;
3421
- resize(input: {
3422
- sessionId: string;
3423
- cols: number;
3424
- rows: number;
3425
- }): void;
3426
- kill(input: {
3427
- sessionId: string;
3428
- signal?: string;
3429
- }): Promise<void>;
3430
- killBinding(bindingId: string): Promise<void>;
3431
- subscribe(sessionId: string, sink: WorkbenchTerminalSessionSink): () => void;
3432
- getSession(sessionId: string): WorkbenchTerminalSessionModel | undefined;
3433
- listSessions(): WorkbenchTerminalSessionModel[];
3434
- /** Kills every live session. Called when the owning workbench is torn down. */
3435
- dispose(): Promise<void>;
3436
- }
3437
-
3438
- declare interface WorkbenchTerminalSessionAdapter {
3439
- readonly id: string;
3440
- write(data: string | Uint8Array): void;
3441
- resize(cols: number, rows: number): void;
3442
- kill(signal?: string): Promise<void> | void;
3443
- onData(handler: (chunk: Uint8Array) => void): () => void;
3444
- /** Foreground process name updates, when the opener can report them (real PTYs). */
3445
- onTitle?(handler: (title: string) => void): () => void;
3446
- onExit(handler: (exit: WorkbenchTerminalSessionExit) => void): () => void;
3447
- onError(handler: (error: WorkbenchTerminalSessionError) => void): () => void;
3448
- }
3449
-
3450
- declare interface WorkbenchTerminalSessionError {
3451
- message: string;
3452
- }
3453
-
3454
- declare interface WorkbenchTerminalSessionExit {
3455
- code: number | null;
3456
- signal: string | null;
3457
- }
3458
-
3459
- declare interface WorkbenchTerminalSessionModel {
3460
- id: string;
3461
- title: string;
3462
- status: WorkbenchTerminalSessionStatus;
3463
- exit?: WorkbenchTerminalSessionExit;
3464
- }
3465
-
3466
- declare type WorkbenchTerminalSessionOpener = (request: WorkbenchTerminalSessionRequest) => Promise<WorkbenchTerminalSessionAdapter>;
3467
-
3468
- declare interface WorkbenchTerminalSessionRequest {
3469
- command?: string[];
3470
- cwd?: string;
3471
- env?: Record<string, string>;
3472
- cols: number;
3473
- rows: number;
3474
- }
3475
-
3476
- declare interface WorkbenchTerminalSessionSink {
3477
- onData?(chunk: Uint8Array): void;
3478
- onExit?(exit: WorkbenchTerminalSessionExit): void;
3479
- onError?(error: WorkbenchTerminalSessionError): void;
3480
- }
3481
-
3482
- declare type WorkbenchTerminalSessionStatus = "running" | "exited" | "killed";
3483
-
3484
- declare interface WorkbenchTerminalState {
3485
- sessionsById: Record<string, WorkbenchTerminalSessionModel>;
3486
- }
3487
-
3488
- declare interface WorkbenchThemeStoreState {
3489
- themes: readonly ThemePreferenceOption[];
3490
- }
3491
-
3492
- declare type WorkbenchTreeViews = Pick<TreeRendererRegistry, "getTreeState" | "setNodeExpanded" | "setSectionExpanded" | "setSelectedNode">;
3493
-
3494
- declare type WorkbenchViewBody = WorkbenchReactViewBody | NativeViewBody<"tree", TreeRendererContribution> | NativeViewBody<"file", FileRendererContribution> | NativeViewBody<"controls", ControlsRendererContribution> | NativeViewBody<"kanban", KanbanRendererContribution> | NativeViewBody<"dataTable", DataTableRendererContribution>;
3495
-
3496
- declare interface WorkbenchViewContribution {
3497
- id: string;
3498
- title: string;
3499
- icon?: string;
3500
- body: WorkbenchViewBody;
3501
- }
3502
-
3503
- declare interface WorkbenchViewHierarchyNode {
3504
- type: "view";
3505
- viewId: string;
3506
- label?: string;
3507
- icon?: string;
3508
- }
3509
-
3510
- declare interface WorkbenchViewMenuContribution {
3511
- id: string;
3512
- ownerViewId: string;
3513
- viewId: string;
3514
- side: "left" | "right";
3515
- priority?: number;
3516
- mountStrategy?: "active" | "keep-mounted";
3517
- hiddenByDefault?: boolean;
3518
- regionSize?: WorkbenchRegionSize;
3519
- regionCollapsible?: boolean;
3520
- headerBorderBottom?: boolean;
3521
- config?: unknown;
3522
- }
3523
-
3524
- declare interface WorkbenchViewMenuRegistry {
3525
- registerViewMenu(menu: WorkbenchViewMenuContribution): Disposable_2;
3526
- getViewMenu(id: string): WorkbenchViewMenuContribution | undefined;
3527
- listViewMenus(ownerViewId?: string): WorkbenchViewMenuContribution[];
3528
- definitionsFor(ownerViewId: string, placementId: string): readonly WorkbenchPanelMenuDefinition[];
3529
- }
3530
-
3531
- declare interface WorkbenchViewRegistry {
3532
- store: WorkbenchStore<WorkbenchViewRegistryStoreState>;
3533
- registerView(view: WorkbenchViewContribution, metadata?: ContributionMetadata): Disposable_2;
3534
- getView(viewId: string): RegisteredWorkbenchView | undefined;
3535
- listViews(): RegisteredWorkbenchView[];
3536
- refreshView(viewId: string, input?: unknown): void;
3537
- }
3538
-
3539
- declare interface WorkbenchViewRegistryStoreState {
3540
- views: Record<string, RegisteredWorkbenchView>;
3541
- }
3542
-
3543
- declare interface WorkbenchWidgetPlacement {
3544
- widgetId: string;
3545
- contributionId: string;
3546
- placementIdentity?: PlacementIdentity;
3547
- viewId?: string;
3548
- ownerId?: string;
3549
- source?: ContributionSource;
3550
- resource?: ResourceRef;
3551
- section?: FileRendererSectionTarget;
3552
- resourceKey?: string;
3553
- ownerResourceKey?: string;
3554
- title?: string;
3555
- pinned?: boolean;
3556
- closable?: boolean;
3557
- mountStrategy?: WidgetMountStrategy;
3558
- hiddenByDefault?: boolean;
3559
- tabRetention?: WorkbenchTabRetention;
3560
- tab?: WorkbenchWidgetTab;
3561
- role?: WorkbenchWidgetRole;
3562
- }
3563
-
3564
- declare type WorkbenchWidgetRole = "content" | "location" | "sub-panel" | "panel-menu";
3565
-
3566
- declare interface WorkbenchWidgetTab {
3567
- getSnapshot(instance: WorkbenchPanelInstance): WorkbenchTabSnapshot;
3568
- subscribe?(listener: () => void): {
3569
- dispose(): void;
3570
- } | (() => void);
3571
- refreshEvents?: readonly string[];
3572
- }
3573
-
3574
- declare interface WorkflowStatus {
3575
- id: string;
3576
- label: string;
3577
- color: string;
3578
- icon?: string | null;
3579
- sortOrder: number;
3580
- isDefault?: boolean;
3581
- actions?: readonly string[];
3582
- }
3583
-
3584
- declare interface WorkflowStatusAction {
3585
- id: string;
3586
- label: string;
3587
- icon?: string;
3588
- }
3589
-
3590
- export { }
1
+ import { Bn as TreeNode, Jn as MenuPath, Ln as TreeContext, O as WorkbenchCore, Sr as FileRendererRefreshEnvelope, Ti as Command, Ur as WorkbenchPanelRenderInput, Vt as WorkbenchOwnedPlacementItem, Zr as WorkbenchPanelInstance, Zt as WorkbenchTerminalController, bn as WorkbenchPageContribution, fr as KanbanRendererCreateSubmission, j as WorkbenchModuleContext, ji as WorkbenchCommandExecutionContext, kt as RegisteredWorkbenchNotification, qn as MenuItem, sa as Disposable, vi as NavigationTarget$1, xn as WorkbenchPlacementPresentation, xt as PreferenceValue, yi as NavigationTargetCommand, zi as ResourceRef$1 } from "./index-DSsmgN2a.js";
2
+ import { i as ReactKanbanRendererContribution, t as ReactAttributeDescriptor } from "./kanban-presentation-BWhkLbw3.js";
3
+ import { Localizable, NavigationTarget, ResourceRef, WebviewHostCapability } from "@pstdio/sdk/extensions";
4
+ import { CommandExecuteRequest, CommandExecuteResponse, ExtensionCommandPaletteContribution, ExtensionMenuContribution, WorkbenchExtensionCommandPaletteResourceRecord, WorkbenchExtensionMetadata, WorkbenchExtensionMetadata as WorkbenchExtensionMetadata$1 } from "@pstdio/sdk/api";
5
+ import { z } from "zod";
6
+ //#region ../pstdio-extensions/src/bridge/contract/capabilities.d.ts
7
+ type HostCapability<TParams = unknown, TResult = unknown> = (params: TParams) => Promise<TResult> | TResult;
8
+ type HostCapabilityRegistry = Partial<Record<WebviewHostCapability, HostCapability>>;
9
+ //#endregion
10
+ //#region ../pstdio-extensions/src/bridge/contract/index.d.ts
11
+ type ThemePreference = "dark" | "light";
12
+ type HostEventMessage = {
13
+ scope: string;
14
+ payload: unknown;
15
+ };
16
+ //#endregion
17
+ //#region ../pstdio-extensions/src/bridge/host/host-event-publisher.d.ts
18
+ /**
19
+ * Host-side fan-in for events pushed into one guest webview. Capability
20
+ * implementations `emit` while the frame owns the transport: events emitted
21
+ * before the guest connection is up are buffered and flushed on `bind`.
22
+ */
23
+ interface HostEventPublisher {
24
+ emit(message: HostEventMessage): void;
25
+ bind(sink: (message: HostEventMessage) => void): void;
26
+ onDisconnect(listener: () => void): () => void;
27
+ /** Drop the current sink and return to buffering until the next bind. */
28
+ unbind(): void;
29
+ }
30
+ //#endregion
31
+ //#region src/extensions/bridge/bridge-webview-renderer.d.ts
32
+ interface BridgeWebviewRenderContext {
33
+ workbench: WorkbenchCore;
34
+ webviewId: string;
35
+ placement: WorkbenchPanelInstance;
36
+ /** Channel for pushing host events (e.g. terminal output) into this webview. */
37
+ hostEvents: HostEventPublisher;
38
+ }
39
+ type CreateBridgeWebviewHostCapabilities = (context: BridgeWebviewRenderContext) => HostCapabilityRegistry;
40
+ type CreateBridgeWebviewProps = (context: BridgeWebviewRenderContext) => unknown;
41
+ type CreateBridgeWebviewTheme = (context: BridgeWebviewRenderContext) => ThemePreference;
42
+ interface BridgeWebviewConfig {
43
+ title?: string;
44
+ runtimeUrl: string;
45
+ moduleUrl: string;
46
+ styles?: string[];
47
+ capabilities?: string[];
48
+ }
49
+ export declare const getBridgeWebviewHostEventPublisher: (workbench: WorkbenchCore, instance: WorkbenchPanelInstance) => HostEventPublisher;
50
+ export declare const renderBridgeWebviewFrame: (input: {
51
+ context: BridgeWebviewRenderContext;
52
+ createHostCapabilities: CreateBridgeWebviewHostCapabilities;
53
+ createProps: CreateBridgeWebviewProps;
54
+ createTheme?: CreateBridgeWebviewTheme;
55
+ ownerId?: string;
56
+ title: string;
57
+ webview: BridgeWebviewConfig;
58
+ }) => import("react/jsx-runtime").JSX.Element;
59
+ //#endregion
60
+ //#region src/extensions/bridge/terminal-session-capability.d.ts
61
+ interface CreateTerminalSessionCapabilityInput {
62
+ terminal: WorkbenchTerminalController;
63
+ hostEvents: HostEventPublisher;
64
+ }
65
+ /**
66
+ * Host side of the `terminal.session` webview capability. Sessions live in the
67
+ * workbench terminal controller; only serializable operation payloads and session
68
+ * ids cross the webview boundary. Output/exit events flow through the host event
69
+ * publisher under the `terminal.session` scope.
70
+ */
71
+ export declare const createTerminalSessionCapability: (input: CreateTerminalSessionCapabilityInput) => HostCapability;
72
+ //#endregion
73
+ //#region src/extensions/bridge/webview-command-capabilities.d.ts
74
+ interface ExtensionWebviewFileCapabilities {
75
+ delete(params: unknown): Promise<unknown> | unknown;
76
+ list(params: unknown): Promise<unknown> | unknown;
77
+ upload(params: unknown): Promise<unknown> | unknown;
78
+ }
79
+ interface ExtensionWebviewArtifactCapabilities {
80
+ read(params: unknown, context: {
81
+ webviewId: string;
82
+ }): Promise<unknown> | unknown;
83
+ }
84
+ //#endregion
85
+ //#region src/extensions/bridge/webview-host-capabilities.d.ts
86
+ interface CreateWorkbenchWebviewHostCapabilitiesInput {
87
+ dispatchKeyboardEvent?: (event: KeyboardEventInit) => void;
88
+ workbench: WorkbenchCore;
89
+ placement?: WorkbenchPanelInstance;
90
+ /** Event channel into the guest; terminal.session is only offered when present. */
91
+ hostEvents?: HostEventPublisher;
92
+ }
93
+ export declare const createWorkbenchWebviewHostCapabilities: (input: CreateWorkbenchWebviewHostCapabilitiesInput) => {
94
+ "terminal.session"?: HostCapability | undefined;
95
+ "commands.execute": (params: unknown) => Promise<unknown>;
96
+ "navigation.open": (params: unknown) => Promise<readonly unknown[]>;
97
+ "notification.show": (params: unknown) => RegisteredWorkbenchNotification;
98
+ "preferences.get": (params: unknown) => PreferenceValue | undefined;
99
+ "preferences.set": (params: unknown) => {
100
+ name: string;
101
+ value: PreferenceValue;
102
+ };
103
+ "host.dispatchKeyboardEvent": (params: unknown) => void;
104
+ "placement.close"?: ((params: unknown) => void) | undefined;
105
+ };
106
+ //#endregion
107
+ //#region src/extensions/host/workbench-extension-command.d.ts
108
+ interface WorkbenchExtensionCommandContext {
109
+ executeCommand(commandId: string, body: CommandExecuteRequest, signal?: AbortSignal): Promise<unknown> | unknown;
110
+ prepareCommandArgs?(commandId: string, args: unknown, context?: WorkbenchCommandExecutionContext, onArgsChange?: (args: unknown) => void): Promise<unknown> | unknown;
111
+ projectId: string;
112
+ workbench: WorkbenchModuleContext;
113
+ }
114
+ interface ExecuteWorkbenchExtensionCommandInput {
115
+ workspaceId?: string;
116
+ signal?: AbortSignal;
117
+ metadata?: Record<string, unknown>;
118
+ params?: Record<string, unknown>;
119
+ resource?: ResourceRef$1;
120
+ slot?: CommandExecuteRequest["slot"];
121
+ }
122
+ export declare const executeWorkbenchExtensionCommandResponse: (context: Pick<WorkbenchExtensionCommandContext, "executeCommand" | "projectId"> & {
123
+ workbench: Pick<WorkbenchModuleContext, "navigation" | "notifications">;
124
+ }, commandId: string, input?: ExecuteWorkbenchExtensionCommandInput) => Promise<unknown>;
125
+ //#endregion
126
+ //#region src/extensions/contributions/command-palette-resource-contributions.d.ts
127
+ export declare const registerWorkbenchExtensionCommandPaletteResources: (context: WorkbenchExtensionCommandContext, records: readonly WorkbenchExtensionCommandPaletteResourceRecord[]) => {
128
+ dispose(): void;
129
+ };
130
+ //#endregion
131
+ //#region ../pstdio-api-contracts/src/extension-kernel/types/json.d.ts
132
+ type JsonPrimitive = string | number | boolean | null;
133
+ type JsonValue = JsonPrimitive | JsonValue[] | JsonObject;
134
+ type JsonObject = {
135
+ [key: string]: JsonValue;
136
+ };
137
+ //#endregion
138
+ //#region ../pstdio-api-contracts/src/extensions/resource-ref.d.ts
139
+ declare const extensionResourceRefSchema: z.ZodObject<{
140
+ shorthand: z.ZodOptional<z.ZodString>;
141
+ type: z.ZodString;
142
+ id: z.ZodString;
143
+ projectId: z.ZodOptional<z.ZodString>;
144
+ label: z.ZodOptional<z.ZodString>;
145
+ icon: z.ZodOptional<z.ZodString>;
146
+ extensionId: z.ZodOptional<z.ZodString>;
147
+ metadata: z.ZodOptional<z.ZodType<JsonObject, unknown, z.core.$ZodTypeInternals<JsonObject, unknown>>>;
148
+ }, z.core.$strip>;
149
+ //#endregion
150
+ //#region ../pstdio-api-contracts/src/extensions/workbench-refs-metadata.d.ts
151
+ declare const pageRefSchema: z.ZodObject<{
152
+ extensionId: z.ZodString;
153
+ kind: z.ZodLiteral<"page">;
154
+ id: z.ZodString;
155
+ }, z.core.$strip>;
156
+ //#endregion
157
+ //#region ../pstdio-api-contracts/src/extensions/navigation-target-metadata.d.ts
158
+ declare const sectionSchema: z.ZodObject<{
159
+ anchors: z.ZodArray<z.ZodObject<{
160
+ id: z.ZodString;
161
+ heading: z.ZodString;
162
+ occurrence: z.ZodOptional<z.ZodNumber>;
163
+ }, z.core.$strip>>;
164
+ }, z.core.$strip>;
165
+ interface MetadataPageTarget {
166
+ kind: "page";
167
+ page: z.infer<typeof pageRefSchema>;
168
+ resource?: z.infer<typeof extensionResourceRefSchema>;
169
+ open?: "preview" | "pin";
170
+ section?: z.infer<typeof sectionSchema>;
171
+ parent?: MetadataPageTarget;
172
+ }
173
+ //#endregion
174
+ //#region ../pstdio-api-contracts/src/extensions/commands.d.ts
175
+ declare const extensionMenuContributionSchema: z.ZodObject<{
176
+ id: z.ZodString;
177
+ extensionId: z.ZodString;
178
+ commandId: z.ZodString;
179
+ slotId: z.ZodString;
180
+ target: z.ZodOptional<z.ZodEnum<{
181
+ "workbench.nav.actions": "workbench.nav.actions";
182
+ "workbench.nav.overflow": "workbench.nav.overflow";
183
+ }>>;
184
+ label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
185
+ $l10n: z.ZodString;
186
+ default: z.ZodOptional<z.ZodString>;
187
+ }, z.core.$strip>]>;
188
+ group: z.ZodOptional<z.ZodString>;
189
+ placement: z.ZodOptional<z.ZodEnum<{
190
+ default: "default";
191
+ first: "first";
192
+ last: "last";
193
+ }>>;
194
+ icon: z.ZodOptional<z.ZodString>;
195
+ presentation: z.ZodOptional<z.ZodEnum<{
196
+ "menu-item": "menu-item";
197
+ button: "button";
198
+ "icon-button": "icon-button";
199
+ }>>;
200
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
201
+ when: z.ZodOptional<z.ZodObject<{
202
+ mode: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
203
+ source: z.ZodOptional<z.ZodArray<z.ZodEnum<{
204
+ schedule: "schedule";
205
+ automation: "automation";
206
+ api: "api";
207
+ event: "event";
208
+ cli: "cli";
209
+ dashboard: "dashboard";
210
+ "command-panel": "command-panel";
211
+ }>>>;
212
+ viewId: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
213
+ resourceType: z.ZodOptional<z.ZodArray<z.ZodString>>;
214
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
215
+ }, z.core.$strip>>;
216
+ }, z.core.$strip>;
217
+ type ExtensionMenuContribution$1 = z.infer<typeof extensionMenuContributionSchema>;
218
+ //#endregion
219
+ //#region ../pstdio-api-contracts/src/extensions/controls-renderer.d.ts
220
+ declare const extensionControlsRendererRecordSchema: z.ZodObject<{
221
+ id: z.ZodString;
222
+ extensionId: z.ZodString;
223
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
224
+ $l10n: z.ZodString;
225
+ default: z.ZodOptional<z.ZodString>;
226
+ }, z.core.$strip>]>;
227
+ icon: z.ZodOptional<z.ZodString>;
228
+ resourceKind: z.ZodOptional<z.ZodString>;
229
+ refreshEventIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
230
+ emptyTitle: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
231
+ $l10n: z.ZodString;
232
+ default: z.ZodOptional<z.ZodString>;
233
+ }, z.core.$strip>]>>;
234
+ emptyDescription: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
235
+ $l10n: z.ZodString;
236
+ default: z.ZodOptional<z.ZodString>;
237
+ }, z.core.$strip>]>>;
238
+ queryHandlerId: z.ZodString;
239
+ valueChangeHandlerId: z.ZodOptional<z.ZodString>;
240
+ applyHandlerId: z.ZodOptional<z.ZodString>;
241
+ resetHandlerId: z.ZodOptional<z.ZodString>;
242
+ 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<{
243
+ x: z.ZodNumber;
244
+ y: z.ZodNumber;
245
+ }, z.core.$strict>]>>>;
246
+ }, z.core.$strip>;
247
+ type WorkbenchExtensionControlsRendererRecord = z.infer<typeof extensionControlsRendererRecordSchema>;
248
+ //#endregion
249
+ //#region ../pstdio-api-contracts/src/extensions/data-table-renderer.d.ts
250
+ declare const extensionDataTableRendererRecordSchema: z.ZodObject<{
251
+ id: z.ZodString;
252
+ extensionId: z.ZodString;
253
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
254
+ $l10n: z.ZodString;
255
+ default: z.ZodOptional<z.ZodString>;
256
+ }, z.core.$strip>]>;
257
+ icon: z.ZodOptional<z.ZodString>;
258
+ resourceKind: z.ZodOptional<z.ZodString>;
259
+ refreshEventIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
260
+ emptyTitle: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
261
+ $l10n: z.ZodString;
262
+ default: z.ZodOptional<z.ZodString>;
263
+ }, z.core.$strip>]>>;
264
+ emptyDescription: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
265
+ $l10n: z.ZodString;
266
+ default: z.ZodOptional<z.ZodString>;
267
+ }, z.core.$strip>]>>;
268
+ columns: z.ZodOptional<z.ZodArray<z.ZodObject<{
269
+ id: z.ZodString;
270
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
271
+ $l10n: z.ZodString;
272
+ default: z.ZodOptional<z.ZodString>;
273
+ }, z.core.$strip>]>>;
274
+ description: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
275
+ $l10n: z.ZodString;
276
+ default: z.ZodOptional<z.ZodString>;
277
+ }, z.core.$strip>]>>;
278
+ icon: z.ZodOptional<z.ZodString>;
279
+ hidden: z.ZodOptional<z.ZodBoolean>;
280
+ stat: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
281
+ type: z.ZodLiteral<"unique">;
282
+ }, z.core.$strip>, z.ZodObject<{
283
+ type: z.ZodLiteral<"histogram">;
284
+ bins: z.ZodOptional<z.ZodNumber>;
285
+ }, z.core.$strip>, z.ZodObject<{
286
+ type: z.ZodLiteral<"top-values">;
287
+ limit: z.ZodOptional<z.ZodNumber>;
288
+ }, z.core.$strip>], "type">>;
289
+ renderer: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
290
+ type: z.ZodLiteral<"json">;
291
+ }, z.core.$strip>, z.ZodObject<{
292
+ type: z.ZodLiteral<"color-scale">;
293
+ stops: z.ZodArray<z.ZodObject<{
294
+ value: z.ZodNumber;
295
+ color: z.ZodObject<{
296
+ light: z.ZodString;
297
+ dark: z.ZodString;
298
+ foreground: z.ZodOptional<z.ZodObject<{
299
+ light: z.ZodString;
300
+ dark: z.ZodString;
301
+ }, z.core.$strip>>;
302
+ }, z.core.$strip>;
303
+ }, z.core.$strip>>;
304
+ }, z.core.$strip>, z.ZodObject<{
305
+ type: z.ZodLiteral<"categorical-color">;
306
+ categories: z.ZodArray<z.ZodObject<{
307
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
308
+ color: z.ZodObject<{
309
+ light: z.ZodString;
310
+ dark: z.ZodString;
311
+ foreground: z.ZodOptional<z.ZodObject<{
312
+ light: z.ZodString;
313
+ dark: z.ZodString;
314
+ }, z.core.$strip>>;
315
+ }, z.core.$strip>;
316
+ }, z.core.$strip>>;
317
+ }, z.core.$strip>], "type">>;
318
+ }, z.core.$strip>>>;
319
+ queryHandlerId: z.ZodString;
320
+ selectionMode: z.ZodOptional<z.ZodEnum<{
321
+ none: "none";
322
+ multiple: "multiple";
323
+ }>>;
324
+ selectionActions: z.ZodOptional<z.ZodArray<z.ZodObject<{
325
+ id: z.ZodString;
326
+ label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
327
+ $l10n: z.ZodString;
328
+ default: z.ZodOptional<z.ZodString>;
329
+ }, z.core.$strip>]>;
330
+ icon: z.ZodOptional<z.ZodString>;
331
+ destructive: z.ZodOptional<z.ZodBoolean>;
332
+ commandId: z.ZodString;
333
+ }, z.core.$strip>>>;
334
+ rowActions: z.ZodOptional<z.ZodArray<z.ZodObject<{
335
+ id: z.ZodString;
336
+ label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
337
+ $l10n: z.ZodString;
338
+ default: z.ZodOptional<z.ZodString>;
339
+ }, z.core.$strip>]>;
340
+ icon: z.ZodOptional<z.ZodString>;
341
+ destructive: z.ZodOptional<z.ZodBoolean>;
342
+ commandId: z.ZodString;
343
+ }, z.core.$strip>>>;
344
+ rowActivationHandlerId: z.ZodOptional<z.ZodString>;
345
+ initialPageSize: z.ZodOptional<z.ZodNumber>;
346
+ pageSizeOptions: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
347
+ }, z.core.$strip>;
348
+ type ExtensionDataTableRendererRecord = z.infer<typeof extensionDataTableRendererRecordSchema>;
349
+ type WorkbenchExtensionDataTableRendererRecord = ExtensionDataTableRendererRecord;
350
+ //#endregion
351
+ //#region ../pstdio-api-contracts/src/extensions/kanban-renderer.d.ts
352
+ declare const extensionKanbanRendererRecordSchema: z.ZodObject<{
353
+ id: z.ZodString;
354
+ extensionId: z.ZodString;
355
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
356
+ $l10n: z.ZodString;
357
+ default: z.ZodOptional<z.ZodString>;
358
+ }, z.core.$strip>]>;
359
+ icon: z.ZodOptional<z.ZodString>;
360
+ resourceKind: z.ZodOptional<z.ZodString>;
361
+ refreshEventIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
362
+ emptyTitle: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
363
+ $l10n: z.ZodString;
364
+ default: z.ZodOptional<z.ZodString>;
365
+ }, z.core.$strip>]>>;
366
+ emptyDescription: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
367
+ $l10n: z.ZodString;
368
+ default: z.ZodOptional<z.ZodString>;
369
+ }, z.core.$strip>]>>;
370
+ extensionInstanceId: z.ZodOptional<z.ZodString>;
371
+ attributes: z.ZodOptional<z.ZodArray<z.ZodObject<{
372
+ id: z.ZodString;
373
+ label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
374
+ $l10n: z.ZodString;
375
+ default: z.ZodOptional<z.ZodString>;
376
+ }, z.core.$strip>]>;
377
+ type: z.ZodDiscriminatedUnion<[z.ZodObject<{
378
+ kind: z.ZodLiteral<"enum">;
379
+ options: z.ZodArray<z.ZodObject<{
380
+ value: z.ZodString;
381
+ label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
382
+ $l10n: z.ZodString;
383
+ default: z.ZodOptional<z.ZodString>;
384
+ }, z.core.$strip>]>;
385
+ color: z.ZodOptional<z.ZodString>;
386
+ icon: z.ZodOptional<z.ZodNullable<z.ZodString>>;
387
+ }, z.core.$strip>>;
388
+ }, z.core.$strip>, z.ZodObject<{
389
+ kind: z.ZodLiteral<"enum-multi">;
390
+ options: z.ZodArray<z.ZodObject<{
391
+ value: z.ZodString;
392
+ label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
393
+ $l10n: z.ZodString;
394
+ default: z.ZodOptional<z.ZodString>;
395
+ }, z.core.$strip>]>;
396
+ color: z.ZodOptional<z.ZodString>;
397
+ icon: z.ZodOptional<z.ZodNullable<z.ZodString>>;
398
+ }, z.core.$strip>>;
399
+ }, z.core.$strip>, z.ZodObject<{
400
+ kind: z.ZodLiteral<"status">;
401
+ statuses: z.ZodObject<{
402
+ extensionId: z.ZodOptional<z.ZodString>;
403
+ kind: z.ZodLiteral<"status">;
404
+ id: z.ZodString;
405
+ }, z.core.$strip>;
406
+ }, z.core.$strip>, z.ZodObject<{
407
+ kind: z.ZodLiteral<"string">;
408
+ }, z.core.$strip>, z.ZodObject<{
409
+ kind: z.ZodLiteral<"date">;
410
+ }, z.core.$strip>, z.ZodObject<{
411
+ kind: z.ZodLiteral<"number">;
412
+ }, z.core.$strip>, z.ZodObject<{
413
+ kind: z.ZodLiteral<"user">;
414
+ }, z.core.$strip>], "kind">;
415
+ filterable: z.ZodOptional<z.ZodBoolean>;
416
+ groupable: z.ZodOptional<z.ZodBoolean>;
417
+ sortable: z.ZodOptional<z.ZodBoolean>;
418
+ displayable: z.ZodOptional<z.ZodBoolean>;
419
+ editable: z.ZodOptional<z.ZodBoolean>;
420
+ display: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
421
+ kind: z.ZodLiteral<"badge-list">;
422
+ itemsAttributeId: z.ZodString;
423
+ }, z.core.$strip>, z.ZodObject<{
424
+ kind: z.ZodString;
425
+ }, z.core.$loose>]>>;
426
+ }, z.core.$strip>>>;
427
+ queryHandlerId: z.ZodString;
428
+ attributeChangeHandlerId: z.ZodOptional<z.ZodString>;
429
+ reorderHandlerId: z.ZodOptional<z.ZodString>;
430
+ columnActionHandlerId: z.ZodOptional<z.ZodString>;
431
+ createRow: z.ZodOptional<z.ZodObject<{
432
+ commandId: z.ZodString;
433
+ title: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
434
+ $l10n: z.ZodString;
435
+ default: z.ZodOptional<z.ZodString>;
436
+ }, z.core.$strip>]>>;
437
+ submitLabel: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
438
+ $l10n: z.ZodString;
439
+ default: z.ZodOptional<z.ZodString>;
440
+ }, z.core.$strip>]>>;
441
+ columnParam: z.ZodOptional<z.ZodString>;
442
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
443
+ type: z.ZodString;
444
+ }, z.core.$catchall<z.ZodUnknown>>>>;
445
+ attributesParam: z.ZodOptional<z.ZodString>;
446
+ attachments: z.ZodOptional<z.ZodObject<{
447
+ commandId: z.ZodString;
448
+ resourceParam: z.ZodString;
449
+ fileParam: z.ZodString;
450
+ }, z.core.$strip>>;
451
+ labels: z.ZodOptional<z.ZodObject<{
452
+ cancel: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
453
+ $l10n: z.ZodString;
454
+ default: z.ZodOptional<z.ZodString>;
455
+ }, z.core.$strip>]>>;
456
+ properties: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
457
+ $l10n: z.ZodString;
458
+ default: z.ZodOptional<z.ZodString>;
459
+ }, z.core.$strip>]>>;
460
+ submitError: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
461
+ $l10n: z.ZodString;
462
+ default: z.ZodOptional<z.ZodString>;
463
+ }, z.core.$strip>]>>;
464
+ removeFile: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
465
+ $l10n: z.ZodString;
466
+ default: z.ZodOptional<z.ZodString>;
467
+ }, z.core.$strip>]>>;
468
+ }, z.core.$strip>>;
469
+ }, z.core.$strip>>;
470
+ rowActions: z.ZodOptional<z.ZodArray<z.ZodObject<{
471
+ id: z.ZodString;
472
+ label: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
473
+ $l10n: z.ZodString;
474
+ default: z.ZodOptional<z.ZodString>;
475
+ }, z.core.$strip>]>;
476
+ icon: z.ZodOptional<z.ZodString>;
477
+ commandId: z.ZodString;
478
+ destructive: z.ZodOptional<z.ZodBoolean>;
479
+ }, z.core.$strip>>>;
480
+ rowActivationHandlerId: z.ZodOptional<z.ZodString>;
481
+ defaultSettings: z.ZodOptional<z.ZodObject<{
482
+ viewMode: z.ZodOptional<z.ZodEnum<{
483
+ list: "list";
484
+ board: "board";
485
+ }>>;
486
+ columnGrouping: z.ZodOptional<z.ZodString>;
487
+ rowGrouping: z.ZodOptional<z.ZodString>;
488
+ ordering: z.ZodOptional<z.ZodObject<{
489
+ attributeId: z.ZodString;
490
+ direction: z.ZodEnum<{
491
+ asc: "asc";
492
+ desc: "desc";
493
+ }>;
494
+ }, z.core.$strip>>;
495
+ displayProperties: z.ZodOptional<z.ZodArray<z.ZodString>>;
496
+ }, z.core.$strip>>;
497
+ defaultFilters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
498
+ defaultViews: z.ZodOptional<z.ZodArray<z.ZodObject<{
499
+ id: z.ZodString;
500
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
501
+ $l10n: z.ZodString;
502
+ default: z.ZodOptional<z.ZodString>;
503
+ }, z.core.$strip>]>;
504
+ settings: z.ZodObject<{
505
+ viewMode: z.ZodEnum<{
506
+ list: "list";
507
+ board: "board";
508
+ }>;
509
+ columnGrouping: z.ZodString;
510
+ rowGrouping: z.ZodString;
511
+ ordering: z.ZodObject<{
512
+ attributeId: z.ZodString;
513
+ direction: z.ZodEnum<{
514
+ asc: "asc";
515
+ desc: "desc";
516
+ }>;
517
+ }, z.core.$strip>;
518
+ displayProperties: z.ZodArray<z.ZodString>;
519
+ }, z.core.$strip>;
520
+ filters: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>;
521
+ isDefault: z.ZodOptional<z.ZodBoolean>;
522
+ }, z.core.$strip>>>;
523
+ defaultActiveViewId: z.ZodOptional<z.ZodString>;
524
+ hideToolbar: z.ZodOptional<z.ZodBoolean>;
525
+ }, z.core.$strip>;
526
+ declare const extensionCommandPaletteResourceRecordSchema: z.ZodObject<{
527
+ id: z.ZodString;
528
+ extensionId: z.ZodString;
529
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
530
+ $l10n: z.ZodString;
531
+ default: z.ZodOptional<z.ZodString>;
532
+ }, z.core.$strip>]>;
533
+ resourceKind: z.ZodOptional<z.ZodString>;
534
+ queryHandlerId: z.ZodString;
535
+ refreshEventIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
536
+ }, z.core.$strip>;
537
+ type WorkbenchExtensionKanbanRendererRecord = z.infer<typeof extensionKanbanRendererRecordSchema>;
538
+ type WorkbenchExtensionCommandPaletteResourceRecord$1 = z.infer<typeof extensionCommandPaletteResourceRecordSchema>;
539
+ //#endregion
540
+ //#region ../pstdio-api-contracts/src/extensions/keybindings.d.ts
541
+ declare const extensionKeybindingRecordSchema: z.ZodObject<{
542
+ id: z.ZodString;
543
+ extensionId: z.ZodString;
544
+ action: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodType<MetadataPageTarget, unknown, z.core.$ZodTypeInternals<MetadataPageTarget, unknown>>, z.ZodObject<{
545
+ kind: z.ZodLiteral<"panel">;
546
+ panel: z.ZodUnion<readonly [z.ZodObject<{
547
+ extensionId: z.ZodString;
548
+ kind: z.ZodLiteral<"placement">;
549
+ id: z.ZodString;
550
+ }, z.core.$strip>, z.ZodObject<{
551
+ kind: z.ZodLiteral<"page-slot">;
552
+ page: z.ZodObject<{
553
+ extensionId: z.ZodString;
554
+ kind: z.ZodLiteral<"page">;
555
+ id: z.ZodString;
556
+ }, z.core.$strip>;
557
+ id: z.ZodString;
558
+ }, z.core.$strip>]>;
559
+ resource: z.ZodOptional<z.ZodObject<{
560
+ shorthand: z.ZodOptional<z.ZodString>;
561
+ type: z.ZodString;
562
+ id: z.ZodString;
563
+ projectId: z.ZodOptional<z.ZodString>;
564
+ label: z.ZodOptional<z.ZodString>;
565
+ icon: z.ZodOptional<z.ZodString>;
566
+ extensionId: z.ZodOptional<z.ZodString>;
567
+ metadata: z.ZodOptional<z.ZodType<JsonObject, unknown, z.core.$ZodTypeInternals<JsonObject, unknown>>>;
568
+ }, z.core.$strip>>;
569
+ open: z.ZodOptional<z.ZodEnum<{
570
+ preview: "preview";
571
+ pin: "pin";
572
+ }>>;
573
+ }, z.core.$strip>]>, z.ZodObject<{
574
+ kind: z.ZodLiteral<"command">;
575
+ target: z.ZodObject<{
576
+ command: z.ZodObject<{
577
+ extensionId: z.ZodString;
578
+ kind: z.ZodLiteral<"command">;
579
+ id: z.ZodString;
580
+ }, z.core.$strip>;
581
+ params: z.ZodOptional<z.ZodType<JsonObject, unknown, z.core.$ZodTypeInternals<JsonObject, unknown>>>;
582
+ }, z.core.$strip>;
583
+ }, z.core.$strip>, z.ZodObject<{
584
+ kind: z.ZodLiteral<"href">;
585
+ href: z.ZodString;
586
+ }, z.core.$strip>, z.ZodObject<{
587
+ kind: z.ZodLiteral<"compound">;
588
+ targets: z.ZodArray<z.ZodUnion<readonly [z.ZodType<MetadataPageTarget, unknown, z.core.$ZodTypeInternals<MetadataPageTarget, unknown>>, z.ZodObject<{
589
+ kind: z.ZodLiteral<"panel">;
590
+ panel: z.ZodUnion<readonly [z.ZodObject<{
591
+ extensionId: z.ZodString;
592
+ kind: z.ZodLiteral<"placement">;
593
+ id: z.ZodString;
594
+ }, z.core.$strip>, z.ZodObject<{
595
+ kind: z.ZodLiteral<"page-slot">;
596
+ page: z.ZodObject<{
597
+ extensionId: z.ZodString;
598
+ kind: z.ZodLiteral<"page">;
599
+ id: z.ZodString;
600
+ }, z.core.$strip>;
601
+ id: z.ZodString;
602
+ }, z.core.$strip>]>;
603
+ resource: z.ZodOptional<z.ZodObject<{
604
+ shorthand: z.ZodOptional<z.ZodString>;
605
+ type: z.ZodString;
606
+ id: z.ZodString;
607
+ projectId: z.ZodOptional<z.ZodString>;
608
+ label: z.ZodOptional<z.ZodString>;
609
+ icon: z.ZodOptional<z.ZodString>;
610
+ extensionId: z.ZodOptional<z.ZodString>;
611
+ metadata: z.ZodOptional<z.ZodType<JsonObject, unknown, z.core.$ZodTypeInternals<JsonObject, unknown>>>;
612
+ }, z.core.$strip>>;
613
+ open: z.ZodOptional<z.ZodEnum<{
614
+ preview: "preview";
615
+ pin: "pin";
616
+ }>>;
617
+ }, z.core.$strip>]>>;
618
+ }, z.core.$strip>]>;
619
+ key: z.ZodString;
620
+ canonicalChord: z.ZodString;
621
+ parsed: z.ZodObject<{
622
+ key: z.ZodString;
623
+ ctrl: z.ZodBoolean;
624
+ shift: z.ZodBoolean;
625
+ alt: z.ZodBoolean;
626
+ meta: z.ZodBoolean;
627
+ modifiers: z.ZodArray<z.ZodString>;
628
+ }, z.core.$strip>;
629
+ platformOverrides: z.ZodOptional<z.ZodObject<{
630
+ mac: z.ZodOptional<z.ZodString>;
631
+ linux: z.ZodOptional<z.ZodString>;
632
+ win: z.ZodOptional<z.ZodString>;
633
+ }, z.core.$strip>>;
634
+ when: z.ZodOptional<z.ZodObject<{
635
+ mode: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
636
+ source: z.ZodOptional<z.ZodArray<z.ZodEnum<{
637
+ schedule: "schedule";
638
+ automation: "automation";
639
+ api: "api";
640
+ event: "event";
641
+ cli: "cli";
642
+ dashboard: "dashboard";
643
+ "command-panel": "command-panel";
644
+ }>>>;
645
+ viewId: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
646
+ resourceType: z.ZodOptional<z.ZodArray<z.ZodString>>;
647
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
648
+ }, z.core.$strip>>;
649
+ }, z.core.$strip>;
650
+ type ExtensionKeybindingRecord = z.infer<typeof extensionKeybindingRecordSchema>;
651
+ //#endregion
652
+ //#region ../pstdio-api-contracts/src/extensions/renderers.d.ts
653
+ declare const extensionTreeRendererRecordSchema: z.ZodObject<{
654
+ id: z.ZodString;
655
+ extensionId: z.ZodString;
656
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
657
+ $l10n: z.ZodString;
658
+ default: z.ZodOptional<z.ZodString>;
659
+ }, z.core.$strip>]>;
660
+ icon: z.ZodOptional<z.ZodString>;
661
+ resourceKind: z.ZodOptional<z.ZodString>;
662
+ refreshEventIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
663
+ emptyTitle: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
664
+ $l10n: z.ZodString;
665
+ default: z.ZodOptional<z.ZodString>;
666
+ }, z.core.$strip>]>>;
667
+ emptyDescription: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
668
+ $l10n: z.ZodString;
669
+ default: z.ZodOptional<z.ZodString>;
670
+ }, z.core.$strip>]>>;
671
+ searchable: z.ZodOptional<z.ZodBoolean>;
672
+ searchPlaceholder: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
673
+ $l10n: z.ZodString;
674
+ default: z.ZodOptional<z.ZodString>;
675
+ }, z.core.$strip>]>>;
676
+ headerHandlerId: z.ZodOptional<z.ZodString>;
677
+ bodyHandlerId: z.ZodString;
678
+ childrenHandlerId: z.ZodOptional<z.ZodString>;
679
+ footerHandlerId: z.ZodOptional<z.ZodString>;
680
+ defaultExpandedSectionIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
681
+ defaultExpandedNodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
682
+ }, z.core.$strip>;
683
+ declare const extensionFileRendererRecordSchema: z.ZodObject<{
684
+ id: z.ZodString;
685
+ extensionId: z.ZodString;
686
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
687
+ $l10n: z.ZodString;
688
+ default: z.ZodOptional<z.ZodString>;
689
+ }, z.core.$strip>]>;
690
+ icon: z.ZodOptional<z.ZodString>;
691
+ resourceKind: z.ZodOptional<z.ZodString>;
692
+ refreshEventIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
693
+ emptyTitle: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
694
+ $l10n: z.ZodString;
695
+ default: z.ZodOptional<z.ZodString>;
696
+ }, z.core.$strip>]>>;
697
+ emptyDescription: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
698
+ $l10n: z.ZodString;
699
+ default: z.ZodOptional<z.ZodString>;
700
+ }, z.core.$strip>]>>;
701
+ loadHandlerId: z.ZodString;
702
+ saveHandlerId: z.ZodOptional<z.ZodString>;
703
+ }, z.core.$strip>;
704
+ type WorkbenchExtensionFileRendererRecord = z.infer<typeof extensionFileRendererRecordSchema>;
705
+ type WorkbenchExtensionTreeRendererRecord = z.infer<typeof extensionTreeRendererRecordSchema>;
706
+ //#endregion
707
+ //#region ../pstdio-api-contracts/src/extensions/settings.d.ts
708
+ declare const extensionSettingDefinitionRecordSchema: z.ZodObject<{
709
+ key: z.ZodString;
710
+ extensionId: z.ZodString;
711
+ type: z.ZodEnum<{
712
+ string: "string";
713
+ number: "number";
714
+ boolean: "boolean";
715
+ object: "object";
716
+ array: "array";
717
+ }>;
718
+ scope: z.ZodEnum<{
719
+ global: "global";
720
+ project: "project";
721
+ }>;
722
+ default: z.ZodOptional<z.ZodUnknown>;
723
+ enum: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
724
+ title: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
725
+ $l10n: z.ZodString;
726
+ default: z.ZodOptional<z.ZodString>;
727
+ }, z.core.$strip>]>>;
728
+ description: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
729
+ $l10n: z.ZodString;
730
+ default: z.ZodOptional<z.ZodString>;
731
+ }, z.core.$strip>]>>;
732
+ }, z.core.$strip>;
733
+ declare const extensionSettingsSectionRecordSchema: z.ZodObject<{
734
+ id: z.ZodString;
735
+ extensionId: z.ZodString;
736
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
737
+ $l10n: z.ZodString;
738
+ default: z.ZodOptional<z.ZodString>;
739
+ }, z.core.$strip>]>;
740
+ scope: z.ZodOptional<z.ZodEnum<{
741
+ global: "global";
742
+ project: "project";
743
+ }>>;
744
+ order: z.ZodOptional<z.ZodNumber>;
745
+ }, z.core.$strip>;
746
+ type ExtensionSettingDefinitionRecord = z.infer<typeof extensionSettingDefinitionRecordSchema>;
747
+ type ExtensionSettingsSectionRecord = z.infer<typeof extensionSettingsSectionRecordSchema>;
748
+ //#endregion
749
+ //#region src/extensions/contributions/controls-renderer-contributions.d.ts
750
+ interface WorkbenchExtensionControlsAdapter {
751
+ /** Supply a fallback resource when the widget placement carries none. */
752
+ resolveResource?: (record: WorkbenchExtensionControlsRendererRecord) => ResourceRef$1 | undefined;
753
+ }
754
+ export declare const registerWorkbenchExtensionControlsRenderers: (context: WorkbenchExtensionCommandContext, records: WorkbenchExtensionControlsRendererRecord[], adapter?: WorkbenchExtensionControlsAdapter) => Disposable;
755
+ //#endregion
756
+ //#region src/extensions/contributions/data-table-renderer-contributions.d.ts
757
+ export declare const registerWorkbenchExtensionDataTableRenderers: (context: WorkbenchExtensionCommandContext, records: WorkbenchExtensionDataTableRendererRecord[]) => Disposable;
758
+ //#endregion
759
+ //#region src/extensions/contributions/extension-contributions.d.ts
760
+ interface WorkbenchExtensionMenuSlotConfig {
761
+ menuPath: MenuPath;
762
+ group?: string;
763
+ overflowLabel?: string;
764
+ }
765
+ type WorkbenchExtensionMenuWhenBuilder = (contribution: ExtensionMenuContribution) => string | undefined;
766
+ type WorkbenchExtensionStringResolver = (value: Localizable<string> | undefined, extensionId: string) => string;
767
+ interface WorkbenchExtensionMenuRegistration {
768
+ command: Command;
769
+ contribution: ExtensionMenuContribution;
770
+ menuItem: MenuItem;
771
+ menuPath: MenuPath;
772
+ targetCommandId: string;
773
+ }
774
+ interface WorkbenchExtensionCommandPaletteRegistration {
775
+ command: Command;
776
+ contribution: ExtensionCommandPaletteContribution;
777
+ menuItem: MenuItem;
778
+ targetCommandId: string;
779
+ }
780
+ interface UnresolvedWorkbenchExtensionMenuContribution {
781
+ contribution: ExtensionMenuContribution;
782
+ targetId: string;
783
+ }
784
+ export declare const emptyWorkbenchExtensionMetadata: {
785
+ commands: never[];
786
+ commandPaletteContributions: never[];
787
+ diagnostics: never[];
788
+ extensions: never[];
789
+ menuContributions: never[];
790
+ modes: never[];
791
+ pages: never[];
792
+ views: never[];
793
+ viewMenus: never[];
794
+ placements: never[];
795
+ resourceKinds: never[];
796
+ navigationItems: never[];
797
+ navigationTrees: never[];
798
+ statusBarItems: never[];
799
+ statuses: never[];
800
+ settingsPanels: never[];
801
+ settingsDefinitions: never[];
802
+ };
803
+ type CommandContributionMetadata = Pick<WorkbenchExtensionMetadata$1, "commands" | "commandPaletteContributions" | "menuContributions">;
804
+ export declare const buildWorkbenchExtensionMenuRegistrations: (input: {
805
+ metadata: CommandContributionMetadata;
806
+ menuSlotsById: ReadonlyMap<string, WorkbenchExtensionMenuSlotConfig>;
807
+ menuTargetsById?: ReadonlyMap<string, WorkbenchExtensionMenuSlotConfig>;
808
+ createCommandId?: (contribution: ExtensionMenuContribution) => string;
809
+ createWhenExpression?: WorkbenchExtensionMenuWhenBuilder;
810
+ resolveString?: WorkbenchExtensionStringResolver;
811
+ }) => {
812
+ registrations: WorkbenchExtensionMenuRegistration[];
813
+ unresolved: UnresolvedWorkbenchExtensionMenuContribution[];
814
+ };
815
+ export declare const buildWorkbenchExtensionCommandPaletteRegistrations: (input: {
816
+ metadata: CommandContributionMetadata;
817
+ createCommandId?: (contribution: ExtensionCommandPaletteContribution) => string;
818
+ resolveString?: WorkbenchExtensionStringResolver;
819
+ }) => WorkbenchExtensionCommandPaletteRegistration[];
820
+ //#endregion
821
+ //#region src/extensions/host/internal-workbench-extension-metadata.d.ts
822
+ type MetadataView = WorkbenchExtensionMetadata$1["views"][number];
823
+ type MetadataWebview = Extract<MetadataView["body"], {
824
+ kind: "webview";
825
+ }>["webview"];
826
+ type MetadataRendererKind = Exclude<MetadataView["body"]["kind"], "webview">;
827
+ interface InternalWorkbenchExtensionPanelMenu {
828
+ id: string;
829
+ extensionId: string;
830
+ ownerPanelId: string;
831
+ viewId: string;
832
+ title: MetadataView["title"];
833
+ side: "left" | "right";
834
+ group?: string;
835
+ placement?: "first" | "default" | "last";
836
+ hostTreeHeader?: "default" | "none";
837
+ hostTreeFooter?: "default" | "none";
838
+ webview?: MetadataWebview;
839
+ renderer?: {
840
+ kind: MetadataRendererKind;
841
+ id: string;
842
+ };
843
+ }
844
+ interface InternalWorkbenchExtensionPanel {
845
+ id: string;
846
+ extensionId: string;
847
+ title: MetadataView["title"];
848
+ icon?: string;
849
+ webview?: MetadataWebview;
850
+ renderer?: {
851
+ kind: MetadataRendererKind;
852
+ id: string;
853
+ };
854
+ panelMenus?: InternalWorkbenchExtensionPanelMenu[];
855
+ }
856
+ interface InternalWorkbenchExtensionMetadata {
857
+ extensions: WorkbenchExtensionMetadata$1["extensions"];
858
+ commands: WorkbenchExtensionMetadata$1["commands"];
859
+ menuContributions: ExtensionMenuContribution$1[];
860
+ commandPaletteContributions: WorkbenchExtensionMetadata$1["commandPaletteContributions"];
861
+ modes: Array<{
862
+ id: string;
863
+ extensionId: string;
864
+ modeId: string;
865
+ label: WorkbenchExtensionMetadata$1["modes"][number]["label"];
866
+ icon?: string;
867
+ defaultTheme?: string;
868
+ chrome?: Partial<Record<"nav" | "sidenav" | "activity" | "status", string | false>>;
869
+ panelRegions: WorkbenchExtensionMetadata$1["modes"][number]["regions"];
870
+ regionSettings?: WorkbenchExtensionMetadata$1["modes"][number]["regionSettings"];
871
+ floatingPanels?: WorkbenchExtensionMetadata$1["modes"][number]["floatingPanels"];
872
+ }>;
873
+ pages: WorkbenchPageContribution[];
874
+ placements: Array<{
875
+ id: string;
876
+ ref: {
877
+ extensionId: string;
878
+ kind: "placement";
879
+ id: string;
880
+ };
881
+ modeId: string;
882
+ item: WorkbenchOwnedPlacementItem;
883
+ region: "main" | "secondary" | "side";
884
+ order?: number;
885
+ movableTo?: readonly ("main" | "secondary" | "side")[];
886
+ } & WorkbenchPlacementPresentation>;
887
+ panels: InternalWorkbenchExtensionPanel[];
888
+ resourceKinds: Array<{
889
+ id: string;
890
+ extensionId: string;
891
+ label?: WorkbenchExtensionMetadata$1["resourceKinds"][number]["label"];
892
+ icon?: string;
893
+ menuSlots: Record<string, {
894
+ placement: "header-primary" | "header-overflow" | "context-menu";
895
+ external: boolean;
896
+ order?: number;
897
+ }>;
898
+ }>;
899
+ resourceHierarchyProviders: Array<{
900
+ id: string;
901
+ extensionId: string;
902
+ resourceKind: string;
903
+ }>;
904
+ settingsSections: ExtensionSettingsSectionRecord[];
905
+ settingsPanels: Array<{
906
+ id: string;
907
+ extensionId: string;
908
+ viewId: string;
909
+ slotId: string;
910
+ scope: "global" | "project";
911
+ title: MetadataView["title"];
912
+ icon?: string;
913
+ section?: string;
914
+ }>;
915
+ kanbanRenderers: WorkbenchExtensionKanbanRendererRecord[];
916
+ dataTableRenderers: WorkbenchExtensionDataTableRendererRecord[];
917
+ commandPaletteResources: WorkbenchExtensionCommandPaletteResourceRecord$1[];
918
+ treeRenderers: WorkbenchExtensionTreeRendererRecord[];
919
+ fileRenderers: WorkbenchExtensionFileRendererRecord[];
920
+ controlsRenderers: WorkbenchExtensionControlsRendererRecord[];
921
+ keybindings: ExtensionKeybindingRecord[];
922
+ settingsDefinitions: ExtensionSettingDefinitionRecord[];
923
+ statuses: WorkbenchExtensionMetadata$1["statuses"];
924
+ statusBarItems: Array<{
925
+ id: string;
926
+ extensionId: string;
927
+ viewId: string;
928
+ slot: "leading" | "trailing";
929
+ order?: number;
930
+ when?: {
931
+ mode?: string | string[];
932
+ source?: string[];
933
+ viewId?: string | string[];
934
+ resourceType?: string[];
935
+ metadata?: Record<string, unknown>;
936
+ };
937
+ }>;
938
+ diagnostics: WorkbenchExtensionMetadata$1["diagnostics"];
939
+ }
940
+ //#endregion
941
+ //#region src/extensions/contributions/file-renderer-contributions.d.ts
942
+ interface RegisterWorkbenchExtensionFileRenderersInput {
943
+ executeCommand(commandId: string, body: CommandExecuteRequest, signal?: AbortSignal): Promise<unknown> | unknown;
944
+ metadata: InternalWorkbenchExtensionMetadata;
945
+ projectId: string;
946
+ workbench: WorkbenchModuleContext;
947
+ }
948
+ export declare const fileRendererRefreshEnvelopeFromCommand: (body: CommandExecuteRequest, response: CommandExecuteResponse) => FileRendererRefreshEnvelope | undefined;
949
+ export declare const registerWorkbenchExtensionFileRenderers: (input: RegisterWorkbenchExtensionFileRenderersInput) => {
950
+ dispose(): void;
951
+ };
952
+ //#endregion
953
+ //#region src/extensions/contributions/kanban-renderer-contribution-helpers.d.ts
954
+ type KanbanRendererRow = Awaited<ReturnType<ReactKanbanRendererContribution["executeQuery"]>>[number];
955
+ type RowAction = NonNullable<WorkbenchExtensionKanbanRendererRecord["rowActions"]>[number];
956
+ type Localizer = (value: unknown, fallback?: string) => string;
957
+ //#endregion
958
+ //#region src/extensions/contributions/kanban-renderer-contributions.d.ts
959
+ interface WorkbenchExtensionKanbanRendererAdapter {
960
+ /** Override label resolution. Defaults to workbench's `text(value, fallback)`. */
961
+ resolveLabel?: Localizer;
962
+ /** Post-process an attribute descriptor (after localization). Defaults to identity. */
963
+ decorateAttribute?: (record: WorkbenchExtensionKanbanRendererRecord, attribute: ReactAttributeDescriptor) => ReactAttributeDescriptor;
964
+ /**
965
+ * Translate a row's transport-shaped resource (`{ type, id }`) into a workbench
966
+ * `ResourceRef`. Defaults to the workbench `pstdio://extension-resource/...`
967
+ * scheme — dashboard supplies its own. Returns `undefined` for rows that do not
968
+ * carry an explicit resource.
969
+ */
970
+ resolveRowResource?: (record: WorkbenchExtensionKanbanRendererRecord, row: KanbanRendererRow) => ResourceRef$1 | undefined;
971
+ /**
972
+ * Synthesize a `ResourceRef` for row-action execution context when the row does
973
+ * not carry an explicit resource. Defaults to a `pstdio://extension-resource/`
974
+ * fallback built from `record.resourceKind` and `row.id`.
975
+ */
976
+ resolveRowActionResource?: (record: WorkbenchExtensionKanbanRendererRecord, row: KanbanRendererRow) => ResourceRef$1 | undefined;
977
+ /**
978
+ * Override the row-action runner. `runDefault` performs the workbench's standard
979
+ * flow (look up the row-action command, request params if needed, execute it).
980
+ */
981
+ executeRowAction?: (input: {
982
+ record: WorkbenchExtensionKanbanRendererRecord;
983
+ action: RowAction;
984
+ row: KanbanRendererRow;
985
+ resource: ResourceRef$1 | undefined;
986
+ runDefault: () => Promise<void>;
987
+ }) => void | Promise<void>;
988
+ /**
989
+ * Handle a row click when the renderer has no declared activation handler.
990
+ */
991
+ onRowClick?: (input: {
992
+ record: WorkbenchExtensionKanbanRendererRecord;
993
+ row: KanbanRendererRow;
994
+ resource: ResourceRef$1 | undefined;
995
+ }) => void;
996
+ /** Called after a successful renderer-owned create form submission. */
997
+ onAfterCreate?: (input: {
998
+ record: WorkbenchExtensionKanbanRendererRecord;
999
+ created: unknown;
1000
+ submission: KanbanRendererCreateSubmission;
1001
+ }) => void | Promise<void>;
1002
+ /**
1003
+ * Called after any mutation (attribute change, reorder, column action, default
1004
+ * create) resolves successfully. Hosts that drive refresh via the outer command
1005
+ * pipeline (testbench / workbench) leave this unset; dashboard supplies
1006
+ * `ctx.views.refreshView(id)`.
1007
+ */
1008
+ onAfterMutation?: (record: WorkbenchExtensionKanbanRendererRecord) => void;
1009
+ }
1010
+ export declare const registerWorkbenchExtensionKanbanRenderers: (context: WorkbenchExtensionCommandContext, records: readonly WorkbenchExtensionKanbanRendererRecord[], adapter?: WorkbenchExtensionKanbanRendererAdapter) => {
1011
+ dispose(): void;
1012
+ };
1013
+ //#endregion
1014
+ //#region src/extensions/contributions/tree-renderer-contribution-types.d.ts
1015
+ type ExtensionTreeRendererRecord = NonNullable<InternalWorkbenchExtensionMetadata["treeRenderers"]>[number];
1016
+ type ExtensionTreeViewRecord = InternalWorkbenchExtensionMetadata["panels"][number] | NonNullable<InternalWorkbenchExtensionMetadata["panels"][number]["panelMenus"]>[number];
1017
+ type ExtensionTreeResource = ResourceRef;
1018
+ //#endregion
1019
+ //#region src/extensions/contributions/tree-renderer-host-defaults.d.ts
1020
+ interface HostTreeDefaultNodesInput {
1021
+ ctx: TreeContext;
1022
+ record: ExtensionTreeRendererRecord;
1023
+ panel: ExtensionTreeViewRecord;
1024
+ }
1025
+ type HostTreeDefaultNodesResolver = (input: HostTreeDefaultNodesInput) => Promise<TreeNode[]> | TreeNode[];
1026
+ //#endregion
1027
+ //#region src/extensions/contributions/tree-renderer-contributions.d.ts
1028
+ interface RegisterWorkbenchExtensionTreeRenderersInput {
1029
+ executeCommand(commandId: string, body: CommandExecuteRequest): Promise<unknown> | unknown;
1030
+ getHostTreeFooterNodes?: HostTreeDefaultNodesResolver;
1031
+ getHostTreeHeaderNodes?: HostTreeDefaultNodesResolver;
1032
+ metadata: InternalWorkbenchExtensionMetadata;
1033
+ projectId: string;
1034
+ /**
1035
+ * Host canonicalization for node resources. A host that gives extension
1036
+ * resources its own URIs (layout scopes, history, and hierarchy key on the
1037
+ * URI) must convert tree node resources the same way, or the same resource
1038
+ * gets a second identity when opened from a tree.
1039
+ */
1040
+ resolveNodeResource?: (resource: ExtensionTreeResource) => ResourceRef$1;
1041
+ workbench: WorkbenchModuleContext;
1042
+ }
1043
+ export declare const registerWorkbenchExtensionTreeRenderers: (input: RegisterWorkbenchExtensionTreeRenderersInput) => {
1044
+ dispose(): void;
1045
+ };
1046
+ //#endregion
1047
+ //#region src/extensions/host/extension-navigation-target.d.ts
1048
+ interface ToWorkbenchNavigationTargetInput {
1049
+ commandIdOf?(command: Extract<NavigationTarget, {
1050
+ kind: "command";
1051
+ }>["target"]["command"]): string | undefined;
1052
+ commandTargetOf?(target: Extract<NavigationTarget, {
1053
+ kind: "command";
1054
+ }>): NavigationTargetCommand;
1055
+ extensionId?: string;
1056
+ projectId?: string;
1057
+ }
1058
+ type NavigationOperation = Extract<NavigationTarget, {
1059
+ kind: "page" | "panel";
1060
+ }>;
1061
+ export declare function toWorkbenchNavigationTarget(target: NavigationOperation, input?: ToWorkbenchNavigationTargetInput): NavigationOperation;
1062
+ export declare function toWorkbenchNavigationTarget(target: NavigationTarget, input?: ToWorkbenchNavigationTargetInput): NavigationTarget$1;
1063
+ export declare const isExtensionNavigationTarget: (value: unknown) => value is NavigationTarget;
1064
+ export declare const toWorkbenchNavigationTargetResult: (value: unknown, input?: ToWorkbenchNavigationTargetInput) => NavigationTarget$1 | undefined;
1065
+ //#endregion
1066
+ //#region src/extensions/host/workbench-extension-refresh.d.ts
1067
+ type WorkbenchExtensionRendererKind = "tree" | "file" | "controls" | "dataTable" | "kanban";
1068
+ interface RendererRefreshTarget {
1069
+ id: string;
1070
+ kind: WorkbenchExtensionRendererKind;
1071
+ }
1072
+ interface WorkbenchExtensionRefreshEvent extends FileRendererRefreshEnvelope {
1073
+ id: string;
1074
+ }
1075
+ interface RegisterWorkbenchExtensionRendererRefreshEventsInput {
1076
+ metadata: WorkbenchExtensionMetadata$1;
1077
+ subscribe: (listener: (event: WorkbenchExtensionRefreshEvent) => void) => Disposable;
1078
+ workbench: WorkbenchModuleContext;
1079
+ }
1080
+ export declare const refreshWorkbenchExtensionRenderer: (workbench: WorkbenchModuleContext, target: RendererRefreshTarget, envelope?: FileRendererRefreshEnvelope) => void;
1081
+ export declare const registerWorkbenchExtensionRendererRefreshEvents: (input: RegisterWorkbenchExtensionRendererRefreshEventsInput) => Disposable;
1082
+ export declare const refreshOpenWorkbenchExtensionWebviews: (workbench: WorkbenchModuleContext, metadata: WorkbenchExtensionMetadata$1) => void;
1083
+ //#endregion
1084
+ //#region src/extensions/host/workbench-extension-host-types.d.ts
1085
+ interface WorkbenchExtensionHostMenuRegistration extends Omit<WorkbenchExtensionMenuRegistration, "menuItem" | "menuPath"> {
1086
+ menuItems: Array<{
1087
+ menuItem: MenuItem;
1088
+ menuPath: MenuPath;
1089
+ }>;
1090
+ }
1091
+ interface RegisterWorkbenchExtensionContributionsInput {
1092
+ createKeybindingWhenExpression?: (when: ExtensionKeybindingRecord["when"]) => string | undefined;
1093
+ createMenuWhenExpression?: WorkbenchExtensionMenuWhenBuilder;
1094
+ createNavigationWhenExpression?: (when: WorkbenchExtensionMetadata$1["navigationItems"][number]["when"]) => string | undefined;
1095
+ createWebviewHostCapabilities?: CreateBridgeWebviewHostCapabilities;
1096
+ createWebviewHostCapabilityOverrides?: CreateBridgeWebviewHostCapabilities;
1097
+ createWebviewProps?: CreateBridgeWebviewProps;
1098
+ createWebviewTheme?: CreateBridgeWebviewTheme;
1099
+ executeCommand(commandId: string, body: CommandExecuteRequest, signal?: AbortSignal): Promise<unknown> | unknown;
1100
+ kanbanAdapter?: WorkbenchExtensionKanbanRendererAdapter;
1101
+ menuSlotsById?: ReadonlyMap<string, WorkbenchExtensionMenuSlotConfig>;
1102
+ menuTargetsById?: ReadonlyMap<string, WorkbenchExtensionMenuSlotConfig>;
1103
+ menuRegistrations?: readonly WorkbenchExtensionHostMenuRegistration[];
1104
+ metadata: WorkbenchExtensionMetadata$1;
1105
+ openHref?: (href: string) => unknown;
1106
+ prepareCommandArgs?(commandId: string, args: unknown, context?: WorkbenchCommandExecutionContext, onArgsChange?: (args: unknown) => void): Promise<unknown> | unknown;
1107
+ projectId: string;
1108
+ resolveTreeNodeResource?: RegisterWorkbenchExtensionTreeRenderersInput["resolveNodeResource"];
1109
+ renderWebview?(input: WorkbenchPanelRenderInput): unknown;
1110
+ settingsSectionId?: string;
1111
+ settingsSectionTitle?: string;
1112
+ subscribeRefreshEvents?: (listener: (event: WorkbenchExtensionRefreshEvent) => void) => Disposable;
1113
+ webviewArtifacts?: ExtensionWebviewArtifactCapabilities;
1114
+ webviewFiles?: ExtensionWebviewFileCapabilities;
1115
+ workbench: WorkbenchModuleContext;
1116
+ }
1117
+ //#endregion
1118
+ //#region src/extensions/host/workbench-extension-host.d.ts
1119
+ export declare const registerWorkbenchExtensionContributions: (sourceInput: RegisterWorkbenchExtensionContributionsInput) => {
1120
+ dispose(): void;
1121
+ };
1122
+ //#endregion
1123
+ //#region src/extensions/host/workbench-extension-metadata-ref.d.ts
1124
+ export declare const toWorkbenchWhenExpression: (when: WorkbenchExtensionMetadata$1["navigationItems"][number]["when"] | WorkbenchExtensionMetadata$1["statusBarItems"][number]["when"]) => {
1125
+ mode: string | string[] | undefined;
1126
+ source: ("schedule" | "automation" | "api" | "event" | "cli" | "dashboard" | "command-panel")[] | undefined;
1127
+ viewId: string | string[] | undefined;
1128
+ resourceType: string[] | undefined;
1129
+ metadata: Record<string, unknown> | undefined;
1130
+ } | undefined;
1131
+ //#endregion
1132
+ export type { BridgeWebviewConfig, BridgeWebviewRenderContext, CreateBridgeWebviewHostCapabilities, CreateBridgeWebviewProps, CreateBridgeWebviewTheme, ExtensionWebviewArtifactCapabilities, ExtensionWebviewFileCapabilities, RegisterWorkbenchExtensionContributionsInput, RegisterWorkbenchExtensionFileRenderersInput, RegisterWorkbenchExtensionRendererRefreshEventsInput, RegisterWorkbenchExtensionTreeRenderersInput, ToWorkbenchNavigationTargetInput, WorkbenchExtensionCommandContext, WorkbenchExtensionCommandPaletteRegistration, WorkbenchExtensionControlsAdapter, WorkbenchExtensionHostMenuRegistration, WorkbenchExtensionKanbanRendererAdapter, WorkbenchExtensionMenuRegistration, WorkbenchExtensionMenuSlotConfig, WorkbenchExtensionMenuWhenBuilder, WorkbenchExtensionMetadata, WorkbenchExtensionRendererKind };
1133
+ export {};