@pstdio/sdk 0.20.0 → 0.21.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.
package/dist/api/index.js CHANGED
@@ -10952,7 +10952,7 @@ function finalize(ctx, schema) {
10952
10952
  result.$schema = "http://json-schema.org/draft-07/schema#";
10953
10953
  } else if (ctx.target === "draft-04") {
10954
10954
  result.$schema = "http://json-schema.org/draft-04/schema#";
10955
- } else if (ctx.target === "openapi-3.0") {} else {}
10955
+ } else if (ctx.target === "openapi-3.0") {}
10956
10956
  if (ctx.external?.uri) {
10957
10957
  const id = ctx.external.registry.get(schema)?.id;
10958
10958
  if (!id)
@@ -11200,7 +11200,7 @@ var literalProcessor = (schema, ctx, json, _params) => {
11200
11200
  if (val === undefined) {
11201
11201
  if (ctx.unrepresentable === "throw") {
11202
11202
  throw new Error("Literal `undefined` cannot be represented in JSON Schema");
11203
- } else {}
11203
+ }
11204
11204
  } else if (typeof val === "bigint") {
11205
11205
  if (ctx.unrepresentable === "throw") {
11206
11206
  throw new Error("BigInt literals cannot be represented in JSON Schema");
@@ -13617,188 +13617,6 @@ var agentModelSchema = exports_external.object({
13617
13617
  paramOverrides: exports_external.record(exports_external.string(), harnessParamDescriptorSchema.nullable()).optional()
13618
13618
  });
13619
13619
  var harnessLocalId = (id) => id.slice(id.lastIndexOf(".") + 1);
13620
- // ../pstdio-api-contracts/src/extension-kernel/refs.ts
13621
- var commandRef = (id) => ({ id });
13622
- var eventRef = (id) => ({ id });
13623
-
13624
- // ../pstdio-api-contracts/src/extension-kernel/slots.ts
13625
- var defineSlot = (id, options) => ({
13626
- id,
13627
- kind: options.kind,
13628
- label: options.label,
13629
- description: options.description,
13630
- metadata: options.metadata
13631
- });
13632
-
13633
- // ../pstdio-api-contracts/src/extension-kernel/kernel-slots.ts
13634
- var projectSlots = {
13635
- sidenav: defineSlot("project.sidenav", { kind: "panel" }),
13636
- headerPrimary: defineSlot("project.headerPrimary", { kind: "menu" }),
13637
- headerOverflow: defineSlot("project.headerOverflow", { kind: "menu" }),
13638
- settingsPanels: defineSlot("project.settingsPanels", { kind: "settings" })
13639
- };
13640
- var sessionSlots = {
13641
- headerPrimary: defineSlot("session.headerPrimary", { kind: "menu" }),
13642
- headerOverflow: defineSlot("session.headerOverflow", { kind: "menu" }),
13643
- transcriptActions: defineSlot("session.transcriptActions", { kind: "menu" })
13644
- };
13645
- var workspaceSlots = {
13646
- headerPrimary: defineSlot("workspace.headerPrimary", { kind: "menu" }),
13647
- headerOverflow: defineSlot("workspace.headerOverflow", { kind: "menu" }),
13648
- sidenav: defineSlot("workspace.sidenav", { kind: "panel" })
13649
- };
13650
- var projectEvents = {
13651
- opened: eventRef("project.opened")
13652
- };
13653
- var sessionEvents = {
13654
- started: eventRef("session.started"),
13655
- resumed: eventRef("session.resumed"),
13656
- awaitingInput: eventRef("session.awaitingInput"),
13657
- succeeded: eventRef("session.succeeded"),
13658
- failed: eventRef("session.failed"),
13659
- completed: eventRef("session.completed")
13660
- };
13661
- var workspaceEvents = {
13662
- created: eventRef("workspace.created"),
13663
- provision: eventRef("workspace.provision"),
13664
- ready: eventRef("workspace.ready"),
13665
- archived: eventRef("workspace.archived"),
13666
- deleted: eventRef("workspace.deleted")
13667
- };
13668
- var worktreeEvents = {
13669
- removed: eventRef("worktree.removed")
13670
- };
13671
- var gitEvents = {
13672
- committed: eventRef("git.committed"),
13673
- rebased: eventRef("git.rebased"),
13674
- merged: eventRef("git.merged"),
13675
- conflicted: eventRef("git.conflicted")
13676
- };
13677
- // ../pstdio-api-contracts/src/extension-kernel/l10n.ts
13678
- var l10n = (key, defaultValue) => ({
13679
- $l10n: key,
13680
- ...defaultValue === undefined ? {} : { default: defaultValue }
13681
- });
13682
- var isLocalizedString = (value) => typeof value === "object" && value !== null && ("$l10n" in value) && typeof value.$l10n === "string";
13683
- // ../pstdio-api-contracts/src/extension-kernel/package-asset.ts
13684
- var packageAsset = (path, baseUrl) => ({
13685
- kind: "package-asset",
13686
- path,
13687
- baseUrl
13688
- });
13689
- // ../pstdio-api-contracts/src/extension-kernel/types/composition.ts
13690
- var dockedWorkbenchRegions = ["sidenav", "main", "secondary", "side"];
13691
- // ../pstdio-api-contracts/src/extension-kernel/types/extension.ts
13692
- var EXTENSION_API_VERSION = "1.0.0-alpha.2";
13693
- // ../pstdio-api-contracts/src/extension-kernel/types/webview-capabilities.ts
13694
- var WEBVIEW_HOST_CAPABILITY_VERSION = 1;
13695
- var WEBVIEW_DECLARABLE_CAPABILITIES = [
13696
- "commands.execute",
13697
- "resource.open",
13698
- "notification.show",
13699
- "notification.action",
13700
- "notification.resolve",
13701
- "notification.dismiss",
13702
- "preferences.get",
13703
- "preferences.set",
13704
- "extension.settings.all",
13705
- "extension.settings.get",
13706
- "extension.settings.set",
13707
- "extension.settings.delete",
13708
- "terminal.session",
13709
- "files.upload",
13710
- "files.list",
13711
- "files.delete"
13712
- ];
13713
- var ALWAYS_AVAILABLE_WEBVIEW_CAPABILITIES = ["host.dispatchKeyboardEvent"];
13714
- var WEBVIEW_HOST_CAPABILITIES = [
13715
- ...WEBVIEW_DECLARABLE_CAPABILITIES,
13716
- ...ALWAYS_AVAILABLE_WEBVIEW_CAPABILITIES
13717
- ];
13718
- // ../pstdio-api-contracts/src/extension-kernel/workbench-targets.ts
13719
- var workbenchMenuTargets = ["workbench.nav.actions", "workbench.nav.overflow"];
13720
- var workbenchTreeTargets = [
13721
- "workbench.left.tree",
13722
- "workbench.main.left.tree",
13723
- "workbench.main.right.tree"
13724
- ];
13725
- var workbenchRegions = [
13726
- "nav",
13727
- "activity",
13728
- "sidenav-header",
13729
- "sidenav",
13730
- "main-header",
13731
- "main",
13732
- "secondary-header",
13733
- "secondary",
13734
- "side-header",
13735
- "side",
13736
- "status",
13737
- "overlay"
13738
- ];
13739
- var workbenchViewTargets = [
13740
- "workbench.main",
13741
- "workbench.main.left",
13742
- "workbench.main.right",
13743
- "workbench.secondary"
13744
- ];
13745
- var workbenchSettingsTargets = ["workbench.settings"];
13746
- var workbenchSettingsScopes = ["project", "global"];
13747
- var workbenchModePanels = ["main", "secondary", "side"];
13748
- var workbenchModeLayoutTargets = [
13749
- "workbench.left",
13750
- "workbench.main.left",
13751
- "workbench.main",
13752
- "workbench.main.right",
13753
- "workbench.secondary"
13754
- ];
13755
- var workbenchModeLayoutTargetPanels = {
13756
- "workbench.left": undefined,
13757
- "workbench.main.left": "main",
13758
- "workbench.main": "main",
13759
- "workbench.main.right": "main",
13760
- "workbench.secondary": "secondary"
13761
- };
13762
- var getWorkbenchModeLayoutTargetPanel = (target) => workbenchModeLayoutTargetPanels[target];
13763
- var workbenchTargets = [
13764
- {
13765
- id: "workbench.nav.actions",
13766
- allowedKinds: ["menu"],
13767
- granularity: "surface",
13768
- rationale: "Primary command surface in the host-owned nav (top) workbench chrome."
13769
- },
13770
- {
13771
- id: "workbench.nav.overflow",
13772
- allowedKinds: ["menu"],
13773
- granularity: "surface",
13774
- rationale: "Secondary command surface in the host-owned nav (top) workbench chrome."
13775
- },
13776
- {
13777
- id: "workbench.left.tree",
13778
- allowedKinds: ["treeItem"],
13779
- granularity: "areaTree",
13780
- rationale: "Tree entries for the active tree renderer mounted in the left area."
13781
- },
13782
- {
13783
- id: "workbench.main.left.tree",
13784
- allowedKinds: ["treeItem"],
13785
- granularity: "areaTree",
13786
- rationale: "Tree entries for the active tree renderer mounted in the main-left area."
13787
- },
13788
- {
13789
- id: "workbench.main.right.tree",
13790
- allowedKinds: ["treeItem"],
13791
- granularity: "areaTree",
13792
- rationale: "Tree entries for the active tree renderer mounted in the main-right area."
13793
- },
13794
- {
13795
- id: "workbench.settings",
13796
- allowedKinds: ["settings"],
13797
- granularity: "surface",
13798
- rationale: "Settings panel placement in host-owned settings navigation."
13799
- }
13800
- ];
13801
- var getWorkbenchTargetDefinition = (id) => workbenchTargets.find((target) => target.id === id);
13802
13620
  // ../pstdio-api-contracts/src/extensions/common.ts
13803
13621
  var jsonObjectSchema = exports_external.record(exports_external.string(), exports_external.unknown());
13804
13622
  var localizedStringSchema = exports_external.object({ $l10n: exports_external.string(), default: exports_external.string().optional() });
@@ -13850,6 +13668,7 @@ var commandSourceSchema = exports_external.enum([
13850
13668
  var extensionWhenExpressionSchema = exports_external.object({
13851
13669
  mode: exports_external.union([exports_external.string(), exports_external.array(exports_external.string())]).optional(),
13852
13670
  source: exports_external.array(commandSourceSchema).optional(),
13671
+ viewId: exports_external.union([exports_external.string(), exports_external.array(exports_external.string())]).optional(),
13853
13672
  resourceType: exports_external.array(exports_external.string()).optional(),
13854
13673
  metadata: jsonObjectSchema.optional()
13855
13674
  });
@@ -13912,6 +13731,44 @@ var extensionArtifactMountSchema = exports_external.object({
13912
13731
  fullPath: exports_external.string(),
13913
13732
  label: localizableStringSchema
13914
13733
  });
13734
+ // ../pstdio-api-contracts/src/extension-kernel/workbench-targets.ts
13735
+ var workbenchMenuTargets = ["workbench.nav.actions", "workbench.nav.overflow"];
13736
+ var workbenchTreeTargets = [
13737
+ "workbench.left.tree",
13738
+ "workbench.main.left.tree",
13739
+ "workbench.main.right.tree"
13740
+ ];
13741
+ var workbenchRegions = [
13742
+ "nav",
13743
+ "activity",
13744
+ "sidenav-header",
13745
+ "sidenav",
13746
+ "main-header",
13747
+ "main",
13748
+ "secondary-header",
13749
+ "secondary",
13750
+ "side-header",
13751
+ "side",
13752
+ "status",
13753
+ "overlay"
13754
+ ];
13755
+ var workbenchViewTargets = [
13756
+ "workbench.main",
13757
+ "workbench.main.left",
13758
+ "workbench.main.right",
13759
+ "workbench.secondary"
13760
+ ];
13761
+ var workbenchSettingsTargets = ["workbench.settings"];
13762
+ var workbenchSettingsScopes = ["project", "global"];
13763
+ var workbenchModePanels = ["main", "secondary", "side"];
13764
+ var workbenchModeLayoutTargets = [
13765
+ "workbench.left",
13766
+ "workbench.main.left",
13767
+ "workbench.main",
13768
+ "workbench.main.right",
13769
+ "workbench.secondary"
13770
+ ];
13771
+
13915
13772
  // ../pstdio-api-contracts/src/extensions/targets.ts
13916
13773
  var workbenchMenuTargetSchema = exports_external.enum(workbenchMenuTargets);
13917
13774
  var workbenchTreeTargetSchema = exports_external.enum(workbenchTreeTargets);
@@ -13936,6 +13793,8 @@ var extensionCommandRecordSchema = exports_external.object({
13936
13793
  cliPath: exports_external.string().optional(),
13937
13794
  cliAliases: exports_external.array(exports_external.string()).optional(),
13938
13795
  examples: exports_external.array(exports_external.string()).optional(),
13796
+ automation: exports_external.boolean().optional(),
13797
+ mutating: exports_external.boolean().optional(),
13939
13798
  params: exports_external.record(exports_external.string(), exports_external.object({ type: exports_external.string() }).catchall(exports_external.unknown())).optional()
13940
13799
  });
13941
13800
  var extensionParamObjectSchema = exports_external.record(exports_external.string(), exports_external.object({ type: exports_external.string() }).catchall(exports_external.unknown()));
@@ -13991,6 +13850,25 @@ var extensionCommandPaletteContributionSchema = exports_external.object({
13991
13850
  when: extensionWhenExpressionSchema.optional()
13992
13851
  });
13993
13852
 
13853
+ // ../pstdio-api-contracts/src/extensions/host-capabilities.ts
13854
+ var extensionHostCapabilitySchema = exports_external.object({
13855
+ version: exports_external.number().int().positive(),
13856
+ since: exports_external.string().optional()
13857
+ });
13858
+ var extensionHostCapabilitiesSchema = exports_external.object({
13859
+ host: exports_external.literal("dashboard"),
13860
+ hostVersion: exports_external.string(),
13861
+ capabilities: exports_external.record(exports_external.string(), extensionHostCapabilitySchema)
13862
+ });
13863
+ var extensionHostCompatibilitySchema = exports_external.object({
13864
+ status: exports_external.enum(["verified", "unverified"]),
13865
+ host: extensionHostCapabilitiesSchema.optional(),
13866
+ diagnostics: exports_external.array(extensionDiagnosticSchema)
13867
+ });
13868
+
13869
+ // ../pstdio-api-contracts/src/extension-kernel/types/composition.ts
13870
+ var dockedWorkbenchRegions = ["sidenav", "main", "secondary", "side"];
13871
+
13994
13872
  // ../pstdio-api-contracts/src/extensions/execute.ts
13995
13873
  var extensionResourceRefSchema = exports_external.object({
13996
13874
  type: exports_external.string(),
@@ -14093,13 +13971,20 @@ var extensionResourceSlotSchema = exports_external.object({
14093
13971
  cardinality: exports_external.enum(["one", "many"]),
14094
13972
  external: exports_external.boolean()
14095
13973
  });
13974
+ var extensionResourceMenuSlotSchema = exports_external.object({
13975
+ placement: exports_external.enum(["header-primary", "header-overflow", "context-menu"]),
13976
+ label: localizableStringSchema.optional(),
13977
+ external: exports_external.boolean(),
13978
+ order: exports_external.number().optional()
13979
+ });
14096
13980
  var extensionResourceKindRecordSchema = exports_external.object({
14097
13981
  id: exports_external.string(),
14098
13982
  extensionId: exports_external.string(),
14099
13983
  surface: exports_external.enum(["primary", "secondary", "attached"]),
14100
13984
  label: localizableStringSchema.optional(),
14101
13985
  icon: exports_external.string().optional(),
14102
- slots: exports_external.record(exports_external.string(), extensionResourceSlotSchema)
13986
+ slots: exports_external.record(exports_external.string(), extensionResourceSlotSchema),
13987
+ menuSlots: exports_external.record(exports_external.string(), extensionResourceMenuSlotSchema).default({})
14103
13988
  });
14104
13989
  var extensionResourcePanelRecordSchema = exports_external.object({
14105
13990
  id: exports_external.string(),
@@ -14156,59 +14041,202 @@ var extensionResourceHierarchyProviderRecordSchema = exports_external.object({
14156
14041
  metadata: jsonObjectSchema.optional()
14157
14042
  });
14158
14043
 
14159
- // ../pstdio-api-contracts/src/extensions/renderers.ts
14160
- var extensionRendererRecordBaseSchema = exports_external.object({
14044
+ // ../pstdio-api-contracts/src/extensions/panels.ts
14045
+ var hasSinglePanelBody = (value) => [value.webview, value.renderer].filter(Boolean).length === 1;
14046
+ var singlePanelBodyMessage = "Extension panels must declare exactly one body: webview or renderer";
14047
+ var hostTreeDefaultSchema = exports_external.enum(["default", "none"]);
14048
+ var panelBodySchema2 = {
14049
+ webview: extensionWebviewContributionSchema.optional(),
14050
+ renderer: exports_external.object({
14051
+ kind: exports_external.enum(["tree", "file", "controls", "dataTable", "kanban"]),
14052
+ id: exports_external.string()
14053
+ }).optional()
14054
+ };
14055
+ var extensionPanelMenuRecordSchema = exports_external.object({
14056
+ id: exports_external.string(),
14057
+ extensionId: exports_external.string(),
14058
+ ownerPanelId: exports_external.string(),
14059
+ title: localizableStringSchema,
14060
+ side: exports_external.enum(["left", "right"]),
14061
+ group: exports_external.string().optional(),
14062
+ placement: extensionPlacementSchema.optional(),
14063
+ hostTreeHeader: hostTreeDefaultSchema.optional(),
14064
+ hostTreeFooter: hostTreeDefaultSchema.optional(),
14065
+ ...panelBodySchema2
14066
+ }).refine(hasSinglePanelBody, { message: singlePanelBodyMessage });
14067
+ var workbenchExtensionPanelMenuRecordSchema = extensionPanelMenuRecordSchema.safeExtend({ webview: workbenchExtensionWebviewSchema.optional() }).refine(hasSinglePanelBody, { message: singlePanelBodyMessage });
14068
+ var extensionPanelRecordBaseSchema = exports_external.object({
14161
14069
  id: exports_external.string(),
14162
14070
  extensionId: exports_external.string(),
14163
14071
  title: localizableStringSchema,
14072
+ path: exports_external.string().optional(),
14073
+ aliases: exports_external.array(exports_external.string()).optional(),
14164
14074
  icon: exports_external.string().optional(),
14165
- resourceKind: exports_external.string().optional(),
14166
- refreshEventIds: exports_external.array(exports_external.string().min(1)).optional(),
14167
- emptyTitle: localizableStringSchema.optional(),
14168
- emptyDescription: localizableStringSchema.optional()
14169
- });
14170
- var extensionTreeRendererRecordSchema = extensionRendererRecordBaseSchema.extend({
14171
- searchable: exports_external.boolean().optional(),
14172
- searchPlaceholder: localizableStringSchema.optional(),
14173
- bodyHandlerId: exports_external.string(),
14174
- childrenHandlerId: exports_external.string().optional(),
14175
- footerHandlerId: exports_external.string().optional(),
14176
- defaultExpandedSectionIds: exports_external.array(exports_external.string()).optional(),
14177
- defaultExpandedNodeIds: exports_external.array(exports_external.string()).optional()
14178
- });
14179
- var extensionFileRendererRecordSchema = extensionRendererRecordBaseSchema.extend({
14180
- loadHandlerId: exports_external.string(),
14181
- saveHandlerId: exports_external.string().optional()
14075
+ show: exports_external.union([extensionPanelPlacementSchema, exports_external.array(extensionPanelPlacementSchema).min(1)]).optional(),
14076
+ panelMenus: exports_external.array(extensionPanelMenuRecordSchema).optional(),
14077
+ ...panelBodySchema2
14182
14078
  });
14183
-
14184
- // ../pstdio-api-contracts/src/extensions/controls-renderer.ts
14185
- var extensionControlsRendererRecordSchema = extensionRendererRecordBaseSchema.extend({
14186
- queryHandlerId: exports_external.string(),
14187
- valueChangeHandlerId: exports_external.string().optional(),
14188
- applyHandlerId: exports_external.string().optional(),
14189
- resetHandlerId: exports_external.string().optional(),
14190
- defaultValues: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
14079
+ var extensionPanelRecordSchema = extensionPanelRecordBaseSchema.refine(hasSinglePanelBody, {
14080
+ message: singlePanelBodyMessage
14191
14081
  });
14192
-
14193
- // ../pstdio-api-contracts/src/extensions/data-table-renderer.ts
14194
- var themeColorSchema = exports_external.object({
14195
- light: exports_external.string(),
14196
- dark: exports_external.string(),
14197
- foreground: exports_external.object({ light: exports_external.string(), dark: exports_external.string() }).optional()
14082
+ var extensionRouteRecordSchema = exports_external.object({
14083
+ id: exports_external.string(),
14084
+ extensionId: exports_external.string(),
14085
+ path: exports_external.string(),
14086
+ label: localizableStringSchema,
14087
+ webview: extensionWebviewContributionSchema
14198
14088
  });
14199
- var columnStatSchema = exports_external.discriminatedUnion("type", [
14200
- exports_external.object({ type: exports_external.literal("unique") }),
14201
- exports_external.object({ type: exports_external.literal("histogram"), bins: exports_external.number().int().positive().optional() }),
14202
- exports_external.object({ type: exports_external.literal("top-values"), limit: exports_external.number().int().positive().optional() })
14203
- ]);
14204
- var columnRendererSchema = exports_external.discriminatedUnion("type", [
14205
- exports_external.object({ type: exports_external.literal("json") }),
14089
+ var extensionTreeItemActionSchema = exports_external.discriminatedUnion("kind", [
14206
14090
  exports_external.object({
14207
- type: exports_external.literal("color-scale"),
14208
- stops: exports_external.array(exports_external.object({ value: exports_external.number(), color: themeColorSchema }))
14091
+ kind: exports_external.literal("command"),
14092
+ commandId: exports_external.string(),
14093
+ args: jsonObjectSchema.optional()
14209
14094
  }),
14210
- exports_external.object({
14211
- type: exports_external.literal("categorical-color"),
14095
+ exports_external.object({ kind: exports_external.literal("view"), viewId: exports_external.string() }),
14096
+ exports_external.object({ kind: exports_external.literal("href"), href: exports_external.string() }),
14097
+ exports_external.object({ kind: exports_external.literal("resource"), resource: extensionResourceRefSchema })
14098
+ ]);
14099
+ var extensionActivityItemRecordSchema = exports_external.object({
14100
+ id: exports_external.string(),
14101
+ extensionId: exports_external.string(),
14102
+ title: localizableStringSchema,
14103
+ icon: exports_external.string(),
14104
+ modes: exports_external.array(exports_external.string()),
14105
+ placement: extensionPlacementSchema.optional(),
14106
+ commandId: exports_external.string(),
14107
+ params: jsonObjectSchema.optional()
14108
+ });
14109
+ var extensionTreeItemContributionSchema = exports_external.object({
14110
+ id: exports_external.string(),
14111
+ extensionId: exports_external.string(),
14112
+ target: workbenchTreeTargetSchema,
14113
+ label: localizableStringSchema,
14114
+ group: exports_external.string().nullable().optional(),
14115
+ placement: extensionPlacementSchema.optional(),
14116
+ icon: exports_external.string().optional(),
14117
+ action: extensionTreeItemActionSchema,
14118
+ when: extensionWhenExpressionSchema.optional()
14119
+ });
14120
+ var extensionModeRecordSchema = exports_external.object({
14121
+ id: exports_external.string(),
14122
+ extensionId: exports_external.string(),
14123
+ modeId: exports_external.string(),
14124
+ label: localizableStringSchema,
14125
+ icon: exports_external.string().optional(),
14126
+ panelRegions: exports_external.array(exports_external.enum(workbenchModePanels)).optional()
14127
+ }).extend(extensionModeCompositionRecordSchema.partial().shape);
14128
+ var extensionStatusItemRecordSchema = exports_external.object({
14129
+ id: exports_external.string(),
14130
+ extensionId: exports_external.string(),
14131
+ title: localizableStringSchema,
14132
+ when: extensionWhenExpressionSchema.optional(),
14133
+ webview: workbenchExtensionWebviewSchema.optional()
14134
+ });
14135
+ var workbenchExtensionPanelRecordSchema = extensionPanelRecordBaseSchema.extend({
14136
+ extensionInstanceId: exports_external.string().optional(),
14137
+ installedExtensionId: exports_external.string().optional(),
14138
+ installName: exports_external.string().optional(),
14139
+ webview: workbenchExtensionWebviewSchema.optional(),
14140
+ panelMenus: exports_external.array(workbenchExtensionPanelMenuRecordSchema).optional()
14141
+ }).refine(hasSinglePanelBody, {
14142
+ message: singlePanelBodyMessage
14143
+ });
14144
+ var workbenchExtensionRouteRecordSchema = extensionRouteRecordSchema.extend({
14145
+ extensionInstanceId: exports_external.string().optional(),
14146
+ installedExtensionId: exports_external.string().optional(),
14147
+ installName: exports_external.string().optional(),
14148
+ webview: workbenchExtensionWebviewSchema
14149
+ });
14150
+ var extensionViewLikeSchema = exports_external.object({
14151
+ id: exports_external.string(),
14152
+ extensionId: exports_external.string()
14153
+ });
14154
+
14155
+ // ../pstdio-api-contracts/src/extensions/connections.ts
14156
+ var workbenchExtensionConnectionRecordSchema = exports_external.object({
14157
+ id: exports_external.string(),
14158
+ localId: exports_external.string(),
14159
+ extensionId: exports_external.string(),
14160
+ label: localizableStringSchema,
14161
+ authType: exports_external.enum(["bearer", "header"]),
14162
+ supportsCheck: exports_external.boolean()
14163
+ });
14164
+ var extensionConnectionRecordSchema = exports_external.object({
14165
+ id: exports_external.string(),
14166
+ extensionId: exports_external.string(),
14167
+ connectionId: exports_external.string(),
14168
+ baseUrl: exports_external.string(),
14169
+ authType: exports_external.enum(["bearer", "header"]),
14170
+ configured: exports_external.boolean(),
14171
+ lastCheck: exports_external.object({
14172
+ ok: exports_external.boolean(),
14173
+ status: exports_external.number().int().nullable(),
14174
+ error: exports_external.string().nullable(),
14175
+ checkedAt: exports_external.string()
14176
+ }).nullable(),
14177
+ updatedAt: exports_external.string()
14178
+ });
14179
+ var configureExtensionConnectionSchema = exports_external.object({
14180
+ baseUrl: exports_external.url(),
14181
+ secret: exports_external.string().optional()
14182
+ });
14183
+ var listExtensionConnectionsResponseSchema = exports_external.object({
14184
+ connections: exports_external.array(extensionConnectionRecordSchema)
14185
+ });
14186
+
14187
+ // ../pstdio-api-contracts/src/extensions/renderers.ts
14188
+ var extensionRendererRecordBaseSchema = exports_external.object({
14189
+ id: exports_external.string(),
14190
+ extensionId: exports_external.string(),
14191
+ title: localizableStringSchema,
14192
+ icon: exports_external.string().optional(),
14193
+ resourceKind: exports_external.string().optional(),
14194
+ refreshEventIds: exports_external.array(exports_external.string().min(1)).optional(),
14195
+ emptyTitle: localizableStringSchema.optional(),
14196
+ emptyDescription: localizableStringSchema.optional()
14197
+ });
14198
+ var extensionTreeRendererRecordSchema = extensionRendererRecordBaseSchema.extend({
14199
+ searchable: exports_external.boolean().optional(),
14200
+ searchPlaceholder: localizableStringSchema.optional(),
14201
+ bodyHandlerId: exports_external.string(),
14202
+ childrenHandlerId: exports_external.string().optional(),
14203
+ footerHandlerId: exports_external.string().optional(),
14204
+ defaultExpandedSectionIds: exports_external.array(exports_external.string()).optional(),
14205
+ defaultExpandedNodeIds: exports_external.array(exports_external.string()).optional()
14206
+ });
14207
+ var extensionFileRendererRecordSchema = extensionRendererRecordBaseSchema.extend({
14208
+ loadHandlerId: exports_external.string(),
14209
+ saveHandlerId: exports_external.string().optional()
14210
+ });
14211
+
14212
+ // ../pstdio-api-contracts/src/extensions/controls-renderer.ts
14213
+ var extensionControlsRendererRecordSchema = extensionRendererRecordBaseSchema.extend({
14214
+ queryHandlerId: exports_external.string(),
14215
+ valueChangeHandlerId: exports_external.string().optional(),
14216
+ applyHandlerId: exports_external.string().optional(),
14217
+ resetHandlerId: exports_external.string().optional(),
14218
+ defaultValues: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
14219
+ });
14220
+
14221
+ // ../pstdio-api-contracts/src/extensions/data-table-renderer.ts
14222
+ var themeColorSchema = exports_external.object({
14223
+ light: exports_external.string(),
14224
+ dark: exports_external.string(),
14225
+ foreground: exports_external.object({ light: exports_external.string(), dark: exports_external.string() }).optional()
14226
+ });
14227
+ var columnStatSchema = exports_external.discriminatedUnion("type", [
14228
+ exports_external.object({ type: exports_external.literal("unique") }),
14229
+ exports_external.object({ type: exports_external.literal("histogram"), bins: exports_external.number().int().positive().optional() }),
14230
+ exports_external.object({ type: exports_external.literal("top-values"), limit: exports_external.number().int().positive().optional() })
14231
+ ]);
14232
+ var columnRendererSchema = exports_external.discriminatedUnion("type", [
14233
+ exports_external.object({ type: exports_external.literal("json") }),
14234
+ exports_external.object({
14235
+ type: exports_external.literal("color-scale"),
14236
+ stops: exports_external.array(exports_external.object({ value: exports_external.number(), color: themeColorSchema }))
14237
+ }),
14238
+ exports_external.object({
14239
+ type: exports_external.literal("categorical-color"),
14212
14240
  categories: exports_external.array(exports_external.object({ value: exports_external.union([exports_external.string(), exports_external.number(), exports_external.boolean(), exports_external.null()]), color: themeColorSchema }))
14213
14241
  })
14214
14242
  ]);
@@ -14246,22 +14274,6 @@ var extensionDataTableRendererRecordSchema = extensionRendererRecordBaseSchema.e
14246
14274
  pageSizeOptions: exports_external.array(exports_external.number().int().positive()).optional()
14247
14275
  });
14248
14276
 
14249
- // ../pstdio-api-contracts/src/extensions/host-capabilities.ts
14250
- var extensionHostCapabilitySchema = exports_external.object({
14251
- version: exports_external.number().int().positive(),
14252
- since: exports_external.string().optional()
14253
- });
14254
- var extensionHostCapabilitiesSchema = exports_external.object({
14255
- host: exports_external.literal("dashboard"),
14256
- hostVersion: exports_external.string(),
14257
- capabilities: exports_external.record(exports_external.string(), extensionHostCapabilitySchema)
14258
- });
14259
- var extensionHostCompatibilitySchema = exports_external.object({
14260
- status: exports_external.enum(["verified", "unverified"]),
14261
- host: extensionHostCapabilitiesSchema.optional(),
14262
- diagnostics: exports_external.array(extensionDiagnosticSchema)
14263
- });
14264
-
14265
14277
  // ../pstdio-api-contracts/src/extensions/kanban-renderer.ts
14266
14278
  var kanbanRendererEnumOptionSchema = exports_external.object({
14267
14279
  value: exports_external.string(),
@@ -14272,6 +14284,14 @@ var kanbanRendererEnumOptionSchema = exports_external.object({
14272
14284
  var kanbanRendererAttributeTypeSchema = exports_external.discriminatedUnion("kind", [
14273
14285
  exports_external.object({ kind: exports_external.literal("enum"), options: exports_external.array(kanbanRendererEnumOptionSchema) }),
14274
14286
  exports_external.object({ kind: exports_external.literal("enum-multi"), options: exports_external.array(kanbanRendererEnumOptionSchema) }),
14287
+ exports_external.object({
14288
+ kind: exports_external.literal("status"),
14289
+ statuses: exports_external.object({
14290
+ extensionId: exports_external.string().optional(),
14291
+ kind: exports_external.literal("status"),
14292
+ id: exports_external.string()
14293
+ })
14294
+ }),
14275
14295
  exports_external.object({ kind: exports_external.literal("string") }),
14276
14296
  exports_external.object({ kind: exports_external.literal("date") }),
14277
14297
  exports_external.object({ kind: exports_external.literal("number") }),
@@ -14355,7 +14375,7 @@ var extensionCommandPaletteResourceRecordSchema = exports_external.object({
14355
14375
  extensionId: exports_external.string(),
14356
14376
  title: localizableStringSchema,
14357
14377
  resourceKind: exports_external.string().optional(),
14358
- queryCommandId: exports_external.string(),
14378
+ queryHandlerId: exports_external.string(),
14359
14379
  refreshEventIds: exports_external.array(exports_external.string().min(1)).optional()
14360
14380
  });
14361
14381
 
@@ -14384,116 +14404,6 @@ var extensionKeybindingRecordSchema = exports_external.object({
14384
14404
  args: jsonObjectSchema.optional()
14385
14405
  });
14386
14406
 
14387
- // ../pstdio-api-contracts/src/extensions/panels.ts
14388
- var hasSinglePanelBody = (value) => [value.webview, value.renderer].filter(Boolean).length === 1;
14389
- var singlePanelBodyMessage = "Extension panels must declare exactly one body: webview or renderer";
14390
- var hostTreeDefaultSchema = exports_external.enum(["default", "none"]);
14391
- var panelBodySchema2 = {
14392
- webview: extensionWebviewContributionSchema.optional(),
14393
- renderer: exports_external.object({
14394
- kind: exports_external.enum(["tree", "file", "controls", "dataTable", "kanban"]),
14395
- id: exports_external.string()
14396
- }).optional()
14397
- };
14398
- var extensionPanelMenuRecordSchema = exports_external.object({
14399
- id: exports_external.string(),
14400
- extensionId: exports_external.string(),
14401
- ownerPanelId: exports_external.string(),
14402
- title: localizableStringSchema,
14403
- side: exports_external.enum(["left", "right"]),
14404
- group: exports_external.string().optional(),
14405
- placement: extensionPlacementSchema.optional(),
14406
- hostTreeHeader: hostTreeDefaultSchema.optional(),
14407
- hostTreeFooter: hostTreeDefaultSchema.optional(),
14408
- ...panelBodySchema2
14409
- }).refine(hasSinglePanelBody, { message: singlePanelBodyMessage });
14410
- var workbenchExtensionPanelMenuRecordSchema = extensionPanelMenuRecordSchema.safeExtend({ webview: workbenchExtensionWebviewSchema.optional() }).refine(hasSinglePanelBody, { message: singlePanelBodyMessage });
14411
- var extensionPanelRecordBaseSchema = exports_external.object({
14412
- id: exports_external.string(),
14413
- extensionId: exports_external.string(),
14414
- title: localizableStringSchema,
14415
- icon: exports_external.string().optional(),
14416
- show: exports_external.union([extensionPanelPlacementSchema, exports_external.array(extensionPanelPlacementSchema).min(1)]).optional(),
14417
- panelMenus: exports_external.array(extensionPanelMenuRecordSchema).optional(),
14418
- ...panelBodySchema2
14419
- });
14420
- var extensionPanelRecordSchema = extensionPanelRecordBaseSchema.refine(hasSinglePanelBody, {
14421
- message: singlePanelBodyMessage
14422
- });
14423
- var extensionRouteRecordSchema = exports_external.object({
14424
- id: exports_external.string(),
14425
- extensionId: exports_external.string(),
14426
- path: exports_external.string(),
14427
- label: localizableStringSchema,
14428
- webview: extensionWebviewContributionSchema
14429
- });
14430
- var extensionTreeItemActionSchema = exports_external.discriminatedUnion("kind", [
14431
- exports_external.object({
14432
- kind: exports_external.literal("command"),
14433
- commandId: exports_external.string(),
14434
- args: jsonObjectSchema.optional()
14435
- }),
14436
- exports_external.object({ kind: exports_external.literal("panel"), panelId: exports_external.string() }),
14437
- exports_external.object({ kind: exports_external.literal("route"), route: exports_external.string() }),
14438
- exports_external.object({ kind: exports_external.literal("href"), href: exports_external.string() }),
14439
- exports_external.object({ kind: exports_external.literal("resource"), resource: extensionResourceRefSchema })
14440
- ]);
14441
- var extensionActivityItemRecordSchema = exports_external.object({
14442
- id: exports_external.string(),
14443
- extensionId: exports_external.string(),
14444
- title: localizableStringSchema,
14445
- icon: exports_external.string(),
14446
- modes: exports_external.array(exports_external.string()),
14447
- placement: extensionPlacementSchema.optional(),
14448
- commandId: exports_external.string(),
14449
- params: jsonObjectSchema.optional()
14450
- });
14451
- var extensionTreeItemContributionSchema = exports_external.object({
14452
- id: exports_external.string(),
14453
- extensionId: exports_external.string(),
14454
- target: workbenchTreeTargetSchema,
14455
- label: localizableStringSchema,
14456
- group: exports_external.string().nullable().optional(),
14457
- placement: extensionPlacementSchema.optional(),
14458
- icon: exports_external.string().optional(),
14459
- action: extensionTreeItemActionSchema,
14460
- when: extensionWhenExpressionSchema.optional()
14461
- });
14462
- var extensionModeRecordSchema = exports_external.object({
14463
- id: exports_external.string(),
14464
- extensionId: exports_external.string(),
14465
- modeId: exports_external.string(),
14466
- label: localizableStringSchema,
14467
- icon: exports_external.string().optional(),
14468
- panelRegions: exports_external.array(exports_external.enum(workbenchModePanels)).optional()
14469
- }).extend(extensionModeCompositionRecordSchema.partial().shape);
14470
- var extensionStatusItemRecordSchema = exports_external.object({
14471
- id: exports_external.string(),
14472
- extensionId: exports_external.string(),
14473
- title: localizableStringSchema,
14474
- when: extensionWhenExpressionSchema.optional(),
14475
- webview: workbenchExtensionWebviewSchema.optional()
14476
- });
14477
- var workbenchExtensionPanelRecordSchema = extensionPanelRecordBaseSchema.extend({
14478
- extensionInstanceId: exports_external.string().optional(),
14479
- installedExtensionId: exports_external.string().optional(),
14480
- installName: exports_external.string().optional(),
14481
- webview: workbenchExtensionWebviewSchema.optional(),
14482
- panelMenus: exports_external.array(workbenchExtensionPanelMenuRecordSchema).optional()
14483
- }).refine(hasSinglePanelBody, {
14484
- message: singlePanelBodyMessage
14485
- });
14486
- var workbenchExtensionRouteRecordSchema = extensionRouteRecordSchema.extend({
14487
- extensionInstanceId: exports_external.string().optional(),
14488
- installedExtensionId: exports_external.string().optional(),
14489
- installName: exports_external.string().optional(),
14490
- webview: workbenchExtensionWebviewSchema
14491
- });
14492
- var extensionViewLikeSchema = exports_external.object({
14493
- id: exports_external.string(),
14494
- extensionId: exports_external.string()
14495
- });
14496
-
14497
14407
  // ../pstdio-api-contracts/src/extensions/settings.ts
14498
14408
  var extensionSettingsPanelRecordSchema = exports_external.object({
14499
14409
  id: exports_external.string(),
@@ -14540,94 +14450,320 @@ var extensionSettingsSectionRecordSchema = exports_external.object({
14540
14450
  order: exports_external.number().optional()
14541
14451
  });
14542
14452
 
14543
- // ../pstdio-api-contracts/src/extensions/check.ts
14544
- var extensionsCheckResponseSchema = exports_external.object({
14545
- extensionsRoot: exports_external.string(),
14546
- extensionsRootExists: exports_external.boolean(),
14547
- errorCount: exports_external.number().int().nonnegative(),
14548
- warningCount: exports_external.number().int().nonnegative(),
14549
- extensions: exports_external.array(extensionRecordSchema),
14550
- commands: exports_external.array(extensionCommandRecordSchema),
14551
- middlewares: exports_external.array(extensionMiddlewareRecordSchema),
14552
- hooks: exports_external.array(extensionHookRecordSchema),
14553
- schedules: exports_external.array(extensionScheduleRecordSchema),
14554
- artifactMounts: exports_external.array(extensionArtifactMountSchema),
14555
- themes: exports_external.array(extensionThemeRecordSchema),
14556
- fileIconThemes: exports_external.array(extensionFileIconThemeRecordSchema),
14557
- menuContributions: exports_external.array(extensionMenuContributionSchema),
14558
- commandPaletteContributions: exports_external.array(extensionCommandPaletteContributionSchema),
14559
- modes: exports_external.array(extensionModeRecordSchema),
14560
- panels: exports_external.array(extensionPanelRecordSchema),
14561
- routes: exports_external.array(extensionRouteRecordSchema),
14562
- treeItems: exports_external.array(extensionTreeItemContributionSchema),
14563
- activityItems: exports_external.array(extensionActivityItemRecordSchema).optional(),
14564
- settingsPanels: exports_external.array(extensionSettingsPanelRecordSchema),
14565
- kanbanRenderers: exports_external.array(extensionKanbanRendererRecordSchema),
14566
- dataTableRenderers: exports_external.array(extensionDataTableRendererRecordSchema).optional(),
14567
- commandPaletteResources: exports_external.array(extensionCommandPaletteResourceRecordSchema),
14568
- treeRenderers: exports_external.array(extensionTreeRendererRecordSchema),
14569
- fileRenderers: exports_external.array(extensionFileRendererRecordSchema),
14570
- controlsRenderers: exports_external.array(extensionControlsRendererRecordSchema),
14571
- keybindings: exports_external.array(extensionKeybindingRecordSchema),
14572
- settingsDefinitions: exports_external.array(extensionSettingDefinitionRecordSchema).optional(),
14573
- templates: exports_external.array(extensionViewLikeSchema),
14574
- skills: exports_external.array(extensionViewLikeSchema),
14575
- diagnostics: exports_external.array(extensionDiagnosticSchema),
14576
- hostCompatibility: extensionHostCompatibilitySchema
14453
+ // ../pstdio-api-contracts/src/extensions/workbench-metadata.ts
14454
+ var contributionRefSchema = (kind) => exports_external.object({ extensionId: exports_external.string(), kind: exports_external.literal(kind), id: exports_external.string() });
14455
+ var commandRefSchema = contributionRefSchema("command");
14456
+ var modeRefSchema = contributionRefSchema("mode");
14457
+ var navigationSlotRefSchema = contributionRefSchema("navigation-item");
14458
+ var resourceKindRefSchema = contributionRefSchema("resource-kind");
14459
+ var settingsSectionRefSchema = contributionRefSchema("settings-section");
14460
+ var statusRefSchema = contributionRefSchema("status");
14461
+ var viewRefSchema = contributionRefSchema("view");
14462
+ var normalizedWhenSchema = exports_external.object({
14463
+ mode: exports_external.union([modeRefSchema, exports_external.array(modeRefSchema)]).optional(),
14464
+ source: exports_external.array(exports_external.enum(["cli", "dashboard", "api", "schedule", "event", "automation", "command-panel"])).optional(),
14465
+ view: exports_external.union([viewRefSchema, exports_external.array(viewRefSchema)]).optional(),
14466
+ resourceType: exports_external.array(resourceKindRefSchema).optional(),
14467
+ metadata: jsonObjectSchema.optional()
14468
+ });
14469
+ var commandTargetSchema = exports_external.object({ command: commandRefSchema, params: jsonObjectSchema.optional() });
14470
+ var navigationTargetItemSchema = exports_external.discriminatedUnion("kind", [
14471
+ exports_external.object({
14472
+ kind: exports_external.literal("view"),
14473
+ view: viewRefSchema,
14474
+ input: exports_external.object({ strategy: exports_external.enum(["persistent", "preview", "replace-active", "replace-invoking"]).optional() }).optional()
14475
+ }),
14476
+ exports_external.object({
14477
+ kind: exports_external.literal("resource"),
14478
+ resource: extensionResourceRefSchema,
14479
+ input: exports_external.object({ strategy: exports_external.enum(["persistent", "replace-active"]).optional() }).optional(),
14480
+ section: exports_external.object({
14481
+ anchors: exports_external.array(exports_external.object({
14482
+ id: exports_external.string(),
14483
+ heading: exports_external.string(),
14484
+ occurrence: exports_external.number().int().nonnegative().optional()
14485
+ }))
14486
+ }).optional()
14487
+ }),
14488
+ exports_external.object({ kind: exports_external.literal("command"), target: commandTargetSchema }),
14489
+ exports_external.object({ kind: exports_external.literal("href"), href: exports_external.string() })
14490
+ ]);
14491
+ var navigationTargetSchema = exports_external.union([
14492
+ navigationTargetItemSchema,
14493
+ exports_external.object({ kind: exports_external.literal("compound"), targets: exports_external.array(navigationTargetItemSchema).min(1) })
14494
+ ]);
14495
+ var rendererBaseOmissions = {
14496
+ id: true,
14497
+ extensionId: true,
14498
+ title: true,
14499
+ icon: true,
14500
+ resourceKind: true
14501
+ };
14502
+ var commandActionSchema = exports_external.object({
14503
+ id: exports_external.string(),
14504
+ label: localizableStringSchema,
14505
+ icon: exports_external.string().optional(),
14506
+ destructive: exports_external.boolean().optional(),
14507
+ command: commandRefSchema
14508
+ });
14509
+ var kanbanCreateRowSchema = exports_external.object({
14510
+ command: commandRefSchema,
14511
+ title: localizableStringSchema.optional(),
14512
+ submitLabel: localizableStringSchema.optional(),
14513
+ columnParam: exports_external.string().optional(),
14514
+ params: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
14515
+ attributesParam: exports_external.string().optional(),
14516
+ attachments: exports_external.object({ command: commandRefSchema, resourceParam: exports_external.string(), fileParam: exports_external.string() }).optional(),
14517
+ labels: exports_external.object({
14518
+ cancel: localizableStringSchema.optional(),
14519
+ properties: localizableStringSchema.optional(),
14520
+ submitError: localizableStringSchema.optional(),
14521
+ removeFile: localizableStringSchema.optional()
14522
+ }).optional()
14577
14523
  });
14578
- var workbenchExtensionHarnessRecordSchema = exports_external.object({
14524
+ var webviewBodySchema = exports_external.object({ kind: exports_external.literal("webview"), webview: workbenchExtensionWebviewSchema });
14525
+ var treeBodySchema = extensionTreeRendererRecordSchema.omit(rendererBaseOmissions).extend({ kind: exports_external.literal("tree") });
14526
+ var fileBodySchema = extensionFileRendererRecordSchema.omit(rendererBaseOmissions).extend({ kind: exports_external.literal("file") });
14527
+ var controlsBodySchema = extensionControlsRendererRecordSchema.omit(rendererBaseOmissions).extend({ kind: exports_external.literal("controls") });
14528
+ var kanbanBodySchema = extensionKanbanRendererRecordSchema.omit({ ...rendererBaseOmissions, createRow: true, rowActions: true }).extend({
14529
+ kind: exports_external.literal("kanban"),
14530
+ createRow: kanbanCreateRowSchema.optional(),
14531
+ rowActions: exports_external.array(commandActionSchema).optional()
14532
+ });
14533
+ var dataTableBodySchema = extensionDataTableRendererRecordSchema.omit({ ...rendererBaseOmissions, selectionActions: true, rowActions: true }).extend({
14534
+ kind: exports_external.literal("dataTable"),
14535
+ selectionActions: exports_external.array(commandActionSchema).optional(),
14536
+ rowActions: exports_external.array(commandActionSchema).optional()
14537
+ });
14538
+ var workbenchExtensionViewBodySchema = exports_external.discriminatedUnion("kind", [
14539
+ webviewBodySchema,
14540
+ treeBodySchema,
14541
+ fileBodySchema,
14542
+ controlsBodySchema,
14543
+ kanbanBodySchema,
14544
+ dataTableBodySchema
14545
+ ]);
14546
+ var workbenchExtensionViewRecordSchema = exports_external.object({
14579
14547
  id: exports_external.string(),
14580
14548
  localId: exports_external.string(),
14581
14549
  extensionId: exports_external.string(),
14582
- label: localizableStringSchema.optional()
14550
+ title: localizableStringSchema,
14551
+ icon: exports_external.string().optional(),
14552
+ path: exports_external.string().optional(),
14553
+ body: workbenchExtensionViewBodySchema
14583
14554
  });
14584
- var workbenchExtensionViewRecordSchema = exports_external.object({
14555
+ var workbenchExtensionModeRecordSchema = exports_external.object({
14556
+ id: exports_external.string(),
14557
+ localId: exports_external.string(),
14558
+ extensionId: exports_external.string(),
14559
+ label: localizableStringSchema,
14560
+ icon: exports_external.string().optional()
14561
+ });
14562
+ var workbenchExtensionPlacementRecordSchema = exports_external.object({
14563
+ id: exports_external.string(),
14564
+ localId: exports_external.string(),
14565
+ extensionId: exports_external.string(),
14566
+ mode: modeRefSchema,
14567
+ item: exports_external.discriminatedUnion("kind", [
14568
+ exports_external.object({ kind: exports_external.literal("view"), view: viewRefSchema }),
14569
+ exports_external.object({
14570
+ kind: exports_external.literal("resource-slot"),
14571
+ slot: exports_external.object({ resourceKind: resourceKindRefSchema, id: exports_external.string() })
14572
+ })
14573
+ ]),
14574
+ region: exports_external.enum(dockedWorkbenchRegions),
14575
+ order: exports_external.number().optional(),
14576
+ defaultOpen: exports_external.boolean().optional(),
14577
+ required: exports_external.boolean().optional(),
14578
+ movableTo: exports_external.array(exports_external.enum(dockedWorkbenchRegions)).optional()
14579
+ });
14580
+ var workbenchExtensionViewMenuRecordSchema = exports_external.object({
14581
+ id: exports_external.string(),
14582
+ extensionId: exports_external.string(),
14583
+ owner: viewRefSchema,
14584
+ view: viewRefSchema,
14585
+ side: exports_external.enum(["left", "right"]),
14586
+ group: exports_external.string().optional(),
14587
+ placement: exports_external.enum(["first", "default", "last"]).optional(),
14588
+ hostTreeHeader: exports_external.enum(["default", "none"]).optional(),
14589
+ hostTreeFooter: exports_external.enum(["default", "none"]).optional()
14590
+ });
14591
+ var workbenchExtensionNavigationItemRecordSchema = exports_external.object({
14592
+ id: exports_external.string(),
14593
+ extensionId: exports_external.string(),
14594
+ slot: navigationSlotRefSchema,
14595
+ label: localizableStringSchema,
14596
+ icon: exports_external.string().optional(),
14597
+ group: exports_external.string().optional(),
14598
+ order: exports_external.number().optional(),
14599
+ when: normalizedWhenSchema.optional(),
14600
+ action: navigationTargetSchema
14601
+ });
14602
+ var workbenchExtensionResourceKindRecordSchema = exports_external.object({
14585
14603
  id: exports_external.string(),
14586
14604
  localId: exports_external.string(),
14587
14605
  extensionId: exports_external.string(),
14588
- title: localizableStringSchema.optional()
14606
+ surface: exports_external.enum(["primary", "secondary", "attached"]),
14607
+ label: localizableStringSchema.optional(),
14608
+ icon: exports_external.string().optional(),
14609
+ slots: exports_external.array(exports_external.object({ id: exports_external.string(), cardinality: exports_external.enum(["one", "many"]), access: exports_external.enum(["owner", "public"]) })).optional(),
14610
+ menuSlots: exports_external.array(exports_external.object({
14611
+ id: exports_external.string(),
14612
+ placement: exports_external.enum(["header-primary", "header-overflow", "context-menu"]),
14613
+ label: localizableStringSchema.optional(),
14614
+ access: exports_external.enum(["owner", "public"]),
14615
+ order: exports_external.number().optional()
14616
+ })).optional()
14617
+ });
14618
+ var workbenchExtensionResourceViewRecordSchema = exports_external.object({
14619
+ id: exports_external.string(),
14620
+ extensionId: exports_external.string(),
14621
+ resourceKind: resourceKindRefSchema,
14622
+ slot: exports_external.object({ resourceKind: resourceKindRefSchema, id: exports_external.string() }),
14623
+ view: viewRefSchema,
14624
+ order: exports_external.number().optional()
14625
+ });
14626
+ var workbenchExtensionSettingsPanelRecordSchema2 = exports_external.object({
14627
+ id: exports_external.string(),
14628
+ extensionId: exports_external.string(),
14629
+ view: viewRefSchema,
14630
+ slot: exports_external.object({ id: exports_external.string() }),
14631
+ section: settingsSectionRefSchema.optional()
14632
+ });
14633
+ var workbenchExtensionStatusBarItemRecordSchema = exports_external.object({
14634
+ id: exports_external.string(),
14635
+ extensionId: exports_external.string(),
14636
+ view: viewRefSchema,
14637
+ slot: exports_external.object({ id: exports_external.string() }),
14638
+ order: exports_external.number().optional(),
14639
+ when: normalizedWhenSchema.optional()
14640
+ });
14641
+ var workbenchExtensionStatusRecordSchema = exports_external.object({
14642
+ id: exports_external.string(),
14643
+ localId: exports_external.string(),
14644
+ extensionId: exports_external.string(),
14645
+ title: localizableStringSchema,
14646
+ actions: exports_external.array(exports_external.object({ id: exports_external.string(), label: localizableStringSchema, icon: exports_external.string().optional() })).optional(),
14647
+ queryHandlerId: exports_external.string(),
14648
+ saveHandlerId: exports_external.string().optional()
14589
14649
  });
14590
14650
  var workbenchExtensionMetadataSchema = exports_external.object({
14591
14651
  extensions: exports_external.array(extensionRecordSchema),
14592
14652
  commands: exports_external.array(extensionCommandRecordSchema),
14593
14653
  menuContributions: exports_external.array(extensionMenuContributionSchema),
14594
14654
  commandPaletteContributions: exports_external.array(extensionCommandPaletteContributionSchema).optional(),
14595
- modes: exports_external.array(extensionModeRecordSchema),
14596
- panels: exports_external.array(workbenchExtensionPanelRecordSchema),
14597
- resourceKinds: exports_external.array(extensionResourceKindRecordSchema).optional(),
14598
- resourcePanels: exports_external.array(extensionResourcePanelRecordSchema).optional(),
14599
- resourceHierarchyProviders: exports_external.array(extensionResourceHierarchyProviderRecordSchema).optional(),
14600
- statusItems: exports_external.array(extensionStatusItemRecordSchema).optional(),
14601
- routes: exports_external.array(workbenchExtensionRouteRecordSchema),
14602
- treeItems: exports_external.array(extensionTreeItemContributionSchema).optional(),
14603
- activityItems: exports_external.array(extensionActivityItemRecordSchema).optional(),
14655
+ modes: exports_external.array(workbenchExtensionModeRecordSchema),
14656
+ views: exports_external.array(workbenchExtensionViewRecordSchema),
14657
+ viewMenus: exports_external.array(workbenchExtensionViewMenuRecordSchema),
14658
+ placements: exports_external.array(workbenchExtensionPlacementRecordSchema),
14659
+ resourceKinds: exports_external.array(workbenchExtensionResourceKindRecordSchema),
14660
+ resourceViews: exports_external.array(workbenchExtensionResourceViewRecordSchema),
14661
+ resourceHierarchyProviders: exports_external.array(exports_external.object({ id: exports_external.string(), extensionId: exports_external.string(), resourceKind: resourceKindRefSchema })).optional(),
14662
+ navigationItems: exports_external.array(workbenchExtensionNavigationItemRecordSchema),
14663
+ statusBarItems: exports_external.array(workbenchExtensionStatusBarItemRecordSchema),
14664
+ statuses: exports_external.array(workbenchExtensionStatusRecordSchema),
14665
+ activityItems: exports_external.array(exports_external.object({
14666
+ id: exports_external.string(),
14667
+ extensionId: exports_external.string(),
14668
+ title: localizableStringSchema,
14669
+ icon: exports_external.string(),
14670
+ modes: exports_external.array(modeRefSchema),
14671
+ placement: exports_external.enum(["first", "default", "last"]).optional(),
14672
+ command: commandRefSchema,
14673
+ params: jsonObjectSchema.optional()
14674
+ })).optional(),
14604
14675
  settingsSections: exports_external.array(extensionSettingsSectionRecordSchema).optional(),
14605
- settingsPanels: exports_external.array(workbenchExtensionSettingsPanelRecordSchema),
14606
- kanbanRenderers: exports_external.array(extensionKanbanRendererRecordSchema).optional(),
14607
- dataTableRenderers: exports_external.array(extensionDataTableRendererRecordSchema).optional(),
14676
+ settingsPanels: exports_external.array(workbenchExtensionSettingsPanelRecordSchema2),
14608
14677
  commandPaletteResources: exports_external.array(extensionCommandPaletteResourceRecordSchema).optional(),
14609
- treeRenderers: exports_external.array(extensionTreeRendererRecordSchema).optional(),
14610
- fileRenderers: exports_external.array(extensionFileRendererRecordSchema).optional(),
14611
- controlsRenderers: exports_external.array(extensionControlsRendererRecordSchema).optional(),
14612
14678
  keybindings: exports_external.array(extensionKeybindingRecordSchema).optional(),
14613
14679
  settingsDefinitions: exports_external.array(extensionSettingDefinitionRecordSchema).optional(),
14614
14680
  automations: exports_external.array(workbenchExtensionAutomationRecordSchema).optional(),
14615
- harnesses: exports_external.array(workbenchExtensionHarnessRecordSchema).optional(),
14616
- skills: exports_external.array(workbenchExtensionViewRecordSchema).optional(),
14617
- templates: exports_external.array(workbenchExtensionViewRecordSchema).optional(),
14618
- themes: exports_external.array(workbenchExtensionViewRecordSchema).optional(),
14681
+ connections: exports_external.array(workbenchExtensionConnectionRecordSchema).optional(),
14682
+ harnesses: exports_external.array(exports_external.object({
14683
+ id: exports_external.string(),
14684
+ localId: exports_external.string(),
14685
+ extensionId: exports_external.string(),
14686
+ label: localizableStringSchema.optional()
14687
+ })).optional(),
14688
+ skills: exports_external.array(exports_external.object({
14689
+ id: exports_external.string(),
14690
+ localId: exports_external.string(),
14691
+ extensionId: exports_external.string(),
14692
+ title: localizableStringSchema.optional()
14693
+ })).optional(),
14694
+ templates: exports_external.array(exports_external.object({
14695
+ id: exports_external.string(),
14696
+ localId: exports_external.string(),
14697
+ extensionId: exports_external.string(),
14698
+ title: localizableStringSchema.optional()
14699
+ })).optional(),
14700
+ templateTypes: exports_external.array(exports_external.object({
14701
+ id: exports_external.string(),
14702
+ localId: exports_external.string(),
14703
+ extensionId: exports_external.string(),
14704
+ label: localizableStringSchema,
14705
+ description: localizableStringSchema.optional(),
14706
+ order: exports_external.number().optional(),
14707
+ commands: exports_external.object({ list: exports_external.string(), read: exports_external.string(), save: exports_external.string(), delete: exports_external.string() }).optional()
14708
+ })).optional(),
14709
+ themes: exports_external.array(exports_external.object({
14710
+ id: exports_external.string(),
14711
+ localId: exports_external.string(),
14712
+ extensionId: exports_external.string(),
14713
+ title: localizableStringSchema.optional()
14714
+ })).optional(),
14619
14715
  diagnostics: exports_external.array(extensionDiagnosticSchema)
14620
14716
  });
14717
+
14718
+ // ../pstdio-api-contracts/src/extensions/check.ts
14719
+ var checkWorkbenchMetadataSchema = workbenchExtensionMetadataSchema.pick({
14720
+ extensions: true,
14721
+ commands: true,
14722
+ menuContributions: true,
14723
+ commandPaletteContributions: true,
14724
+ modes: true,
14725
+ views: true,
14726
+ viewMenus: true,
14727
+ placements: true,
14728
+ resourceKinds: true,
14729
+ resourceViews: true,
14730
+ resourceHierarchyProviders: true,
14731
+ navigationItems: true,
14732
+ statusBarItems: true,
14733
+ statuses: true,
14734
+ activityItems: true,
14735
+ settingsSections: true,
14736
+ settingsPanels: true,
14737
+ commandPaletteResources: true,
14738
+ keybindings: true,
14739
+ settingsDefinitions: true,
14740
+ diagnostics: true
14741
+ });
14742
+ var extensionsCheckResponseSchema = checkWorkbenchMetadataSchema.extend({
14743
+ extensionsRoot: exports_external.string(),
14744
+ extensionsRootExists: exports_external.boolean(),
14745
+ errorCount: exports_external.number().int().nonnegative(),
14746
+ warningCount: exports_external.number().int().nonnegative(),
14747
+ middlewares: exports_external.array(extensionMiddlewareRecordSchema),
14748
+ hooks: exports_external.array(extensionHookRecordSchema),
14749
+ schedules: exports_external.array(extensionScheduleRecordSchema),
14750
+ artifactMounts: exports_external.array(extensionArtifactMountSchema),
14751
+ themes: exports_external.array(extensionThemeRecordSchema),
14752
+ fileIconThemes: exports_external.array(extensionFileIconThemeRecordSchema),
14753
+ templates: exports_external.array(extensionViewLikeSchema),
14754
+ skills: exports_external.array(extensionViewLikeSchema),
14755
+ hostCompatibility: extensionHostCompatibilitySchema
14756
+ });
14621
14757
  var listExtensionCommandsResponseSchema = exports_external.object({
14622
- commands: exports_external.array(extensionCommandRecordSchema),
14758
+ commands: workbenchExtensionMetadataSchema.shape.commands,
14623
14759
  translations: exports_external.array(extensionTranslationRecordSchema).optional(),
14624
- diagnostics: exports_external.array(extensionDiagnosticSchema)
14760
+ diagnostics: workbenchExtensionMetadataSchema.shape.diagnostics
14625
14761
  });
14626
14762
  var listExtensionAppearanceResponseSchema = exports_external.object({
14627
14763
  themes: exports_external.array(extensionThemeRecordSchema),
14628
14764
  fileIconThemes: exports_external.array(extensionFileIconThemeRecordSchema),
14629
14765
  translations: exports_external.array(extensionTranslationRecordSchema),
14630
- diagnostics: exports_external.array(extensionDiagnosticSchema)
14766
+ diagnostics: workbenchExtensionMetadataSchema.shape.diagnostics
14631
14767
  });
14632
14768
  // ../pstdio-api-contracts/src/extensions/install.ts
14633
14769
  var enableInstalledExtensionRequestSchema = exports_external.object({
@@ -14673,7 +14809,14 @@ var marketplaceExtensionSchema = exports_external.object({
14673
14809
  installName: exports_external.string(),
14674
14810
  displayName: exports_external.string(),
14675
14811
  description: exports_external.string(),
14676
- installed: exports_external.boolean()
14812
+ installed: exports_external.boolean(),
14813
+ origin: exports_external.object({
14814
+ kind: exports_external.literal("git"),
14815
+ url: exports_external.string(),
14816
+ path: exports_external.string(),
14817
+ ref: exports_external.string()
14818
+ }),
14819
+ publisher: exports_external.string().optional()
14677
14820
  });
14678
14821
  var listProjectExtensionsResponseSchema = exports_external.object({
14679
14822
  extensions: exports_external.array(projectExtensionInstanceSchema),
@@ -14696,14 +14839,6 @@ var upgradeProjectExtensionResponseSchema = exports_external.object({
14696
14839
  var installMarketplaceExtensionResponseSchema = exports_external.object({
14697
14840
  extension: projectExtensionInstanceSchema
14698
14841
  });
14699
- var updateInstalledExtensionTemplateInputSchema = exports_external.object({
14700
- content: exports_external.string().min(1)
14701
- });
14702
- var updateInstalledExtensionTemplateResponseSchema = exports_external.object({
14703
- installName: exports_external.string(),
14704
- key: exports_external.string(),
14705
- content: exports_external.string()
14706
- });
14707
14842
  var setupProjectExtensionResponseSchema = exports_external.object({
14708
14843
  extensionId: exports_external.string(),
14709
14844
  name: exports_external.string(),
@@ -14715,6 +14850,201 @@ var setupProjectExtensionResponseSchema = exports_external.object({
14715
14850
  installedAgents: exports_external.array(exports_external.string())
14716
14851
  }))
14717
14852
  });
14853
+ // ../pstdio-api-contracts/src/automation.ts
14854
+ var automationRunStatusSchema = exports_external.enum(["queued", "running", "succeeded", "failed", "cancelled", "rejected"]);
14855
+ var issueAutomationTokenInputSchema = exports_external.object({
14856
+ name: exports_external.string().trim().min(1).max(120),
14857
+ projectId: exports_external.string().min(1),
14858
+ principalId: exports_external.string().uuid().optional(),
14859
+ commandScopes: exports_external.array(exports_external.string().min(1)).min(1),
14860
+ expiresInSeconds: exports_external.number().int().positive().max(365 * 24 * 60 * 60)
14861
+ }).strict();
14862
+ var automationTokenRecordSchema = exports_external.object({
14863
+ id: exports_external.string(),
14864
+ principalId: exports_external.string(),
14865
+ name: exports_external.string(),
14866
+ tokenPrefix: exports_external.string(),
14867
+ projectId: exports_external.string(),
14868
+ commandScopes: exports_external.array(exports_external.string()),
14869
+ expiresAt: exports_external.string(),
14870
+ lastUsedAt: exports_external.string().nullable(),
14871
+ revokedAt: exports_external.string().nullable(),
14872
+ createdAt: exports_external.string()
14873
+ });
14874
+ var issueAutomationTokenResponseSchema = automationTokenRecordSchema.extend({ token: exports_external.string() });
14875
+ var listAutomationTokensResponseSchema = exports_external.object({ tokens: exports_external.array(automationTokenRecordSchema) });
14876
+ var createAutomationRunInputSchema = exports_external.object({
14877
+ commandId: exports_external.string().min(1),
14878
+ input: exports_external.object({
14879
+ workspaceId: exports_external.string().optional(),
14880
+ params: jsonObjectSchema.optional(),
14881
+ resource: extensionResourceRefSchema.optional(),
14882
+ metadata: jsonObjectSchema.optional()
14883
+ }).strict()
14884
+ }).strict();
14885
+ var automationRunErrorSchema = exports_external.object({
14886
+ code: exports_external.string(),
14887
+ message: exports_external.string(),
14888
+ retryable: exports_external.boolean()
14889
+ });
14890
+ var automationRunSchema = exports_external.object({
14891
+ id: exports_external.string(),
14892
+ projectId: exports_external.string(),
14893
+ commandId: exports_external.string(),
14894
+ status: automationRunStatusSchema,
14895
+ createdAt: exports_external.string(),
14896
+ startedAt: exports_external.string().nullable(),
14897
+ finishedAt: exports_external.string().nullable(),
14898
+ result: exports_external.unknown().nullable(),
14899
+ error: automationRunErrorSchema.nullable()
14900
+ });
14901
+ var automationRunEventSchema = exports_external.object({
14902
+ cursor: exports_external.number().int().nonnegative(),
14903
+ runId: exports_external.string(),
14904
+ type: exports_external.string(),
14905
+ payload: jsonObjectSchema,
14906
+ createdAt: exports_external.string()
14907
+ });
14908
+ var listAutomationRunEventsResponseSchema = exports_external.object({ events: exports_external.array(automationRunEventSchema) });
14909
+ // ../pstdio-api-contracts/src/extension-kernel/builtin-refs.ts
14910
+ var hostRef = (kind, id) => ({ extensionId: "pstdio", kind, id });
14911
+ var workbenchCommands = {
14912
+ switchMode: hostRef("command", "workbench.action.switchMode")
14913
+ };
14914
+ var workbenchModes = {
14915
+ project: hostRef("mode", "project"),
14916
+ settings: hostRef("mode", "settings")
14917
+ };
14918
+ var hostResourceKind = (id, label, menuSlots) => ({
14919
+ id,
14920
+ ref: hostRef("resource-kind", id),
14921
+ surface: "primary",
14922
+ label,
14923
+ menuSlots
14924
+ });
14925
+ var headerMenuSlots = [
14926
+ { id: "headerPrimary", placement: "header-primary", access: "public" },
14927
+ { id: "headerOverflow", placement: "header-overflow", access: "public" }
14928
+ ];
14929
+ var workbenchResourceKindDefinitions = {
14930
+ project: hostResourceKind("project", "Extension", headerMenuSlots),
14931
+ session: hostResourceKind("session", "Session", headerMenuSlots),
14932
+ workspace: hostResourceKind("workspace", "Workspace", headerMenuSlots)
14933
+ };
14934
+ var workbenchResourceKinds = {
14935
+ project: workbenchResourceKindDefinitions.project.ref,
14936
+ session: workbenchResourceKindDefinitions.session.ref,
14937
+ workspace: workbenchResourceKindDefinitions.workspace.ref
14938
+ };
14939
+ var workbenchSlots = {
14940
+ projectNavigation: hostRef("navigation-item", "project.navigation"),
14941
+ projectSettings: hostRef("settings-panel", "project.settings"),
14942
+ statusBarLeading: hostRef("status-bar-item", "status-bar.leading"),
14943
+ statusBarTrailing: hostRef("status-bar-item", "status-bar.trailing")
14944
+ };
14945
+ // ../pstdio-api-contracts/src/extension-kernel/refs.ts
14946
+ var createCommandRef = (input) => ({ ...input, kind: "command" });
14947
+ var commandRef = Object.assign(createCommandRef, {
14948
+ forExtension: (owner) => (id) => createCommandRef({ extensionId: `${owner.publisher}.${owner.name}`, id })
14949
+ });
14950
+ var eventRef = (input) => ({
14951
+ ...input,
14952
+ kind: "event"
14953
+ });
14954
+
14955
+ // ../pstdio-api-contracts/src/extension-kernel/slots.ts
14956
+ var defineSlot = (id, options) => ({
14957
+ id,
14958
+ kind: options.kind,
14959
+ label: options.label,
14960
+ description: options.description,
14961
+ metadata: options.metadata
14962
+ });
14963
+
14964
+ // ../pstdio-api-contracts/src/extension-kernel/kernel-slots.ts
14965
+ var hostEventRef = (id) => eventRef({ extensionId: "pstdio", id });
14966
+ var resourceMenuSlotRef = (resourceKind, id) => defineSlot(`${resourceKind.id}.${id}`, { kind: "menu" });
14967
+ var projectSlots = {
14968
+ sidenav: defineSlot("project.sidenav", { kind: "panel" }),
14969
+ headerPrimary: resourceMenuSlotRef(workbenchResourceKinds.project, "headerPrimary"),
14970
+ headerOverflow: resourceMenuSlotRef(workbenchResourceKinds.project, "headerOverflow"),
14971
+ settingsPanels: defineSlot("project.settingsPanels", { kind: "settings" })
14972
+ };
14973
+ var sessionSlots = {
14974
+ headerPrimary: resourceMenuSlotRef(workbenchResourceKinds.session, "headerPrimary"),
14975
+ headerOverflow: resourceMenuSlotRef(workbenchResourceKinds.session, "headerOverflow")
14976
+ };
14977
+ var workspaceSlots = {
14978
+ headerPrimary: resourceMenuSlotRef(workbenchResourceKinds.workspace, "headerPrimary"),
14979
+ headerOverflow: resourceMenuSlotRef(workbenchResourceKinds.workspace, "headerOverflow"),
14980
+ sidenav: defineSlot("workspace.sidenav", { kind: "panel" })
14981
+ };
14982
+ var projectEvents = {
14983
+ opened: hostEventRef("project.opened")
14984
+ };
14985
+ var sessionEvents = {
14986
+ started: hostEventRef("session.started"),
14987
+ resumed: hostEventRef("session.resumed"),
14988
+ awaitingInput: hostEventRef("session.awaitingInput"),
14989
+ succeeded: hostEventRef("session.succeeded"),
14990
+ failed: hostEventRef("session.failed"),
14991
+ completed: hostEventRef("session.completed")
14992
+ };
14993
+ var workspaceEvents = {
14994
+ created: hostEventRef("workspace.created"),
14995
+ provision: hostEventRef("workspace.provision"),
14996
+ ready: hostEventRef("workspace.ready"),
14997
+ archived: hostEventRef("workspace.archived"),
14998
+ deleted: hostEventRef("workspace.deleted")
14999
+ };
15000
+ var worktreeEvents = {
15001
+ removed: hostEventRef("worktree.removed")
15002
+ };
15003
+ var gitEvents = {
15004
+ committed: hostEventRef("git.committed"),
15005
+ rebased: hostEventRef("git.rebased"),
15006
+ merged: hostEventRef("git.merged"),
15007
+ conflicted: hostEventRef("git.conflicted")
15008
+ };
15009
+ // ../pstdio-api-contracts/src/extension-kernel/l10n.ts
15010
+ var l10n = (key, defaultValue) => ({
15011
+ $l10n: key,
15012
+ ...defaultValue === undefined ? {} : { default: defaultValue }
15013
+ });
15014
+ var isLocalizedString = (value) => typeof value === "object" && value !== null && ("$l10n" in value) && typeof value.$l10n === "string";
15015
+ // ../pstdio-api-contracts/src/extension-kernel/package-asset.ts
15016
+ var packageAsset = (path, baseUrl) => ({
15017
+ kind: "package-asset",
15018
+ path,
15019
+ baseUrl
15020
+ });
15021
+ // ../pstdio-api-contracts/src/extension-kernel/types/extension.ts
15022
+ var EXTENSION_API_VERSION = "1.0.0-alpha.5";
15023
+ // ../pstdio-api-contracts/src/extension-kernel/types/webview-capabilities.ts
15024
+ var WEBVIEW_HOST_CAPABILITY_VERSION = 1;
15025
+ var WEBVIEW_DECLARABLE_CAPABILITIES = [
15026
+ "commands.execute",
15027
+ "resource.open",
15028
+ "notification.show",
15029
+ "notification.action",
15030
+ "notification.resolve",
15031
+ "notification.dismiss",
15032
+ "preferences.get",
15033
+ "preferences.set",
15034
+ "extension.settings.all",
15035
+ "extension.settings.get",
15036
+ "extension.settings.set",
15037
+ "extension.settings.delete",
15038
+ "terminal.session",
15039
+ "files.upload",
15040
+ "files.list",
15041
+ "files.delete"
15042
+ ];
15043
+ var ALWAYS_AVAILABLE_WEBVIEW_CAPABILITIES = ["host.dispatchKeyboardEvent"];
15044
+ var WEBVIEW_HOST_CAPABILITIES = [
15045
+ ...WEBVIEW_DECLARABLE_CAPABILITIES,
15046
+ ...ALWAYS_AVAILABLE_WEBVIEW_CAPABILITIES
15047
+ ];
14718
15048
  // ../pstdio-api-contracts/src/files.ts
14719
15049
  var fileRecordSchema = exports_external.object({
14720
15050
  id: exports_external.string(),
@@ -14960,8 +15290,6 @@ var createSessionInputSchema = exports_external.object({
14960
15290
  project_id: exports_external.string().min(1),
14961
15291
  title: exports_external.string().min(1),
14962
15292
  prompt: exports_external.string().min(1).optional(),
14963
- template: exports_external.string().min(1).optional(),
14964
- vars: exports_external.record(exports_external.string(), exports_external.string()).optional(),
14965
15293
  agent: exports_external.string().min(1).optional(),
14966
15294
  workspace_id: exports_external.string().optional(),
14967
15295
  anchors: exports_external.array(extensionResourceRefSchema).optional(),
@@ -14975,8 +15303,6 @@ var questionResponseSchema = exports_external.object({
14975
15303
  });
14976
15304
  var followUpInputSchema = exports_external.object({
14977
15305
  prompt: exports_external.string().min(1).optional(),
14978
- template: exports_external.string().min(1).optional(),
14979
- vars: exports_external.record(exports_external.string(), exports_external.string()).optional(),
14980
15306
  agent: exports_external.string().optional(),
14981
15307
  model: exports_external.string().optional(),
14982
15308
  question_response: questionResponseSchema.optional(),
@@ -15059,53 +15385,54 @@ var updateSkillInputSchema = exports_external.object({
15059
15385
  title: exports_external.string().min(1).optional(),
15060
15386
  description: exports_external.string().optional()
15061
15387
  });
15062
- // ../pstdio-api-contracts/src/templates.ts
15063
- var templateTypeSchema = exports_external.string().min(1);
15064
- var templateSourceKindSchema = exports_external.enum(["project", "extension"]);
15065
- var templateSchema = exports_external.object({
15066
- id: exports_external.string(),
15067
- project_id: exports_external.string().nullable(),
15068
- name: exports_external.string(),
15069
- title: exports_external.string(),
15070
- template_type: exports_external.string(),
15071
- source_kind: templateSourceKindSchema,
15072
- file_id: exports_external.string().optional(),
15073
- is_default: exports_external.boolean(),
15074
- editable: exports_external.boolean(),
15075
- extension_instance_id: exports_external.string().optional(),
15076
- extension_id: exports_external.string().optional(),
15077
- installed_extension_id: exports_external.string().optional(),
15078
- install_name: exports_external.string().optional(),
15079
- key: exports_external.string().optional(),
15080
- source: packageAssetDescriptorSchema.optional(),
15081
- enabled: exports_external.boolean().optional(),
15082
- created_at: exports_external.string(),
15083
- updated_at: exports_external.string(),
15084
- deleted_at: exports_external.string().nullable()
15085
- });
15086
- var templateWithContentSchema = templateSchema.extend({
15087
- content: exports_external.string()
15088
- });
15089
- var createTemplateInputSchema = exports_external.object({
15090
- name: exports_external.string().min(1),
15091
- template_type: templateTypeSchema,
15092
- content: exports_external.string().min(1).optional(),
15093
- is_default: exports_external.boolean().optional()
15094
- });
15095
- var updateTemplateInputSchema = exports_external.object({
15096
- content: exports_external.string().min(1).optional(),
15097
- is_default: exports_external.boolean().optional(),
15098
- template_type: templateTypeSchema.optional(),
15099
- enabled: exports_external.boolean().optional(),
15100
- title: exports_external.string().min(1).optional()
15101
- });
15102
15388
  // ../pstdio-api-contracts/src/workspaces.ts
15389
+ var workspaceProviderRefShape = {
15390
+ version: exports_external.number().int().positive(),
15391
+ data: jsonObjectSchema
15392
+ };
15393
+ var workspaceProviderRefSchema = exports_external.object(workspaceProviderRefShape);
15394
+ var workspaceProviderStates = [
15395
+ "provisioning",
15396
+ "ready",
15397
+ "failed",
15398
+ "cancelled",
15399
+ "archiving",
15400
+ "archived",
15401
+ "deleting",
15402
+ "provider_missing"
15403
+ ];
15404
+ var workspaceProviderStateSchema = exports_external.enum(workspaceProviderStates);
15405
+ var workspaceExecutionKindSchema = exports_external.enum(["local", "remote"]);
15406
+ var workspaceCapabilitiesSchema = exports_external.object({
15407
+ files: exports_external.enum(["none", "read", "write"]),
15408
+ diff: exports_external.boolean(),
15409
+ merge: exports_external.boolean(),
15410
+ rebase: exports_external.boolean(),
15411
+ archive: exports_external.boolean(),
15412
+ delete: exports_external.boolean()
15413
+ });
15414
+ var workspaceProviderErrorSchema = exports_external.object({
15415
+ code: exports_external.string(),
15416
+ message: exports_external.string(),
15417
+ retryable: exports_external.boolean(),
15418
+ occurred_at: exports_external.string()
15419
+ });
15103
15420
  var workspaceSchema = exports_external.object({
15104
15421
  id: exports_external.string(),
15105
15422
  project_id: exports_external.string(),
15106
15423
  name: exports_external.string(),
15107
15424
  branch: exports_external.string().nullable(),
15108
15425
  worktree_path: exports_external.string().nullable(),
15426
+ provider_id: exports_external.string(),
15427
+ provider_params_json: jsonObjectSchema,
15428
+ provider_ref_json: workspaceProviderRefSchema.nullable(),
15429
+ provider_state: workspaceProviderStateSchema,
15430
+ execution_kind: workspaceExecutionKindSchema,
15431
+ provider_operation_id: exports_external.string().nullable(),
15432
+ provider_operation_kind: exports_external.enum(["create", "cancel", "archive", "delete"]).nullable(),
15433
+ provider_error_json: workspaceProviderErrorSchema.nullable(),
15434
+ provider_capabilities_json: workspaceCapabilitiesSchema,
15435
+ display_path: exports_external.string().nullable(),
15109
15436
  is_default: exports_external.boolean(),
15110
15437
  archived: exports_external.boolean(),
15111
15438
  workspace_shorthand: exports_external.string(),
@@ -15117,7 +15444,8 @@ var workspaceSchema = exports_external.object({
15117
15444
  });
15118
15445
  var createWorkspaceInputSchema = exports_external.object({
15119
15446
  project_id: exports_external.string().min(1),
15120
- type: exports_external.literal("worktree").optional(),
15447
+ provider_id: exports_external.string().optional(),
15448
+ params: jsonObjectSchema.optional(),
15121
15449
  repo_id: exports_external.string().optional(),
15122
15450
  base: exports_external.string().optional()
15123
15451
  });