@pstdio/sdk 0.20.0 → 0.22.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 (63) hide show
  1. package/README.md +22 -192
  2. package/dist/api/index.js +932 -483
  3. package/dist/api.d.ts +3767 -0
  4. package/dist/client/index.js +21 -14
  5. package/dist/client.d.ts +1714 -0
  6. package/dist/extensions/index.js +262 -140
  7. package/dist/extensions/react/index.js +2 -1
  8. package/dist/{extensions/react/index.d.ts → extensions-react.d.ts} +23 -16
  9. package/dist/extensions.d.ts +3826 -0
  10. package/dist/hooks.d.ts +1775 -0
  11. package/dist/{prompts/render-prompt.d.ts → prompts.d.ts} +3 -1
  12. package/dist/resources/index.js +932 -483
  13. package/dist/resources.d.ts +422 -0
  14. package/package.json +12 -31
  15. package/dist/api/extensions.d.ts +0 -1
  16. package/dist/api/index.d.ts +0 -10
  17. package/dist/api/projects.d.ts +0 -1
  18. package/dist/api/sessions.d.ts +0 -2
  19. package/dist/api/settings.d.ts +0 -1
  20. package/dist/api/skills.d.ts +0 -1
  21. package/dist/api/templates.d.ts +0 -1
  22. package/dist/api/terminal.d.ts +0 -49
  23. package/dist/api/workspaces.d.ts +0 -12
  24. package/dist/client/agents.d.ts +0 -10
  25. package/dist/client/client.d.ts +0 -26
  26. package/dist/client/extensions.d.ts +0 -12
  27. package/dist/client/index.d.ts +0 -14
  28. package/dist/client/notifications.d.ts +0 -23
  29. package/dist/client/projects.d.ts +0 -14
  30. package/dist/client/request.d.ts +0 -25
  31. package/dist/client/runtime.d.ts +0 -5
  32. package/dist/client/sessions.d.ts +0 -45
  33. package/dist/client/settings.d.ts +0 -7
  34. package/dist/client/skills.d.ts +0 -9
  35. package/dist/client/sse.d.ts +0 -15
  36. package/dist/client/sync.d.ts +0 -35
  37. package/dist/client/templates.d.ts +0 -11
  38. package/dist/client/workspaces.d.ts +0 -20
  39. package/dist/extensions/command-outcome.d.ts +0 -5
  40. package/dist/extensions/define-command.d.ts +0 -26
  41. package/dist/extensions/define-extension-view.d.ts +0 -58
  42. package/dist/extensions/define-extension.d.ts +0 -54
  43. package/dist/extensions/index.d.ts +0 -13
  44. package/dist/extensions/params.d.ts +0 -36
  45. package/dist/extensions/refs.d.ts +0 -8
  46. package/dist/extensions/terminal-session-bridge.d.ts +0 -32
  47. package/dist/extensions/webview-client.d.ts +0 -41
  48. package/dist/extensions/when.d.ts +0 -9
  49. package/dist/hooks/base.d.ts +0 -17
  50. package/dist/hooks/entities.d.ts +0 -8
  51. package/dist/hooks/index.d.ts +0 -3
  52. package/dist/hooks/session.d.ts +0 -12
  53. package/dist/hooks/worktree.d.ts +0 -53
  54. package/dist/prompts/index.d.ts +0 -1
  55. package/dist/resources/agent.d.ts +0 -2
  56. package/dist/resources/file.d.ts +0 -1
  57. package/dist/resources/index.d.ts +0 -10
  58. package/dist/resources/project.d.ts +0 -1
  59. package/dist/resources/session.d.ts +0 -1
  60. package/dist/resources/settings.d.ts +0 -1
  61. package/dist/resources/skill.d.ts +0 -1
  62. package/dist/resources/template.d.ts +0 -1
  63. package/dist/resources/workspace.d.ts +0 -3
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,190 +13617,12 @@ 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());
13622
+ var serializableJsonObjectSchema = exports_external.record(exports_external.string(), exports_external.json()).meta({
13623
+ type: "object",
13624
+ additionalProperties: true
13625
+ });
13804
13626
  var localizedStringSchema = exports_external.object({ $l10n: exports_external.string(), default: exports_external.string().optional() });
13805
13627
  var localizableStringSchema = exports_external.union([exports_external.string(), localizedStringSchema]);
13806
13628
  var extensionSettingScopeSchema = exports_external.enum(["global", "project"]);
@@ -13820,6 +13642,9 @@ var extensionRecordSchema = exports_external.object({
13820
13642
  id: exports_external.string(),
13821
13643
  name: exports_external.string(),
13822
13644
  displayName: exports_external.string(),
13645
+ extensionInstanceId: exports_external.string().optional(),
13646
+ installedExtensionId: exports_external.string().optional(),
13647
+ installName: exports_external.string().optional(),
13823
13648
  version: exports_external.string().optional(),
13824
13649
  description: exports_external.string().optional(),
13825
13650
  sourcePath: exports_external.string()
@@ -13850,6 +13675,7 @@ var commandSourceSchema = exports_external.enum([
13850
13675
  var extensionWhenExpressionSchema = exports_external.object({
13851
13676
  mode: exports_external.union([exports_external.string(), exports_external.array(exports_external.string())]).optional(),
13852
13677
  source: exports_external.array(commandSourceSchema).optional(),
13678
+ viewId: exports_external.union([exports_external.string(), exports_external.array(exports_external.string())]).optional(),
13853
13679
  resourceType: exports_external.array(exports_external.string()).optional(),
13854
13680
  metadata: jsonObjectSchema.optional()
13855
13681
  });
@@ -13912,6 +13738,42 @@ var extensionArtifactMountSchema = exports_external.object({
13912
13738
  fullPath: exports_external.string(),
13913
13739
  label: localizableStringSchema
13914
13740
  });
13741
+ // ../pstdio-api-contracts/src/extension-kernel/workbench-targets.ts
13742
+ var workbenchMenuTargets = ["workbench.nav.actions", "workbench.nav.overflow"];
13743
+ var workbenchTreeTargets = [
13744
+ "workbench.left.tree",
13745
+ "workbench.main.left.tree",
13746
+ "workbench.main.right.tree"
13747
+ ];
13748
+ var workbenchRegions = [
13749
+ "nav",
13750
+ "activity",
13751
+ "sidenav",
13752
+ "main-header",
13753
+ "main",
13754
+ "secondary-header",
13755
+ "secondary",
13756
+ "side-header",
13757
+ "side",
13758
+ "status",
13759
+ "overlay"
13760
+ ];
13761
+ var workbenchViewTargets = [
13762
+ "workbench.main",
13763
+ "workbench.main.left",
13764
+ "workbench.main.right",
13765
+ "workbench.secondary"
13766
+ ];
13767
+ var workbenchSettingsTargets = ["workbench.settings"];
13768
+ var workbenchSettingsScopes = ["project", "global"];
13769
+ var workbenchModeLayoutTargets = [
13770
+ "workbench.left",
13771
+ "workbench.main.left",
13772
+ "workbench.main",
13773
+ "workbench.main.right",
13774
+ "workbench.secondary"
13775
+ ];
13776
+
13915
13777
  // ../pstdio-api-contracts/src/extensions/targets.ts
13916
13778
  var workbenchMenuTargetSchema = exports_external.enum(workbenchMenuTargets);
13917
13779
  var workbenchTreeTargetSchema = exports_external.enum(workbenchTreeTargets);
@@ -13936,6 +13798,8 @@ var extensionCommandRecordSchema = exports_external.object({
13936
13798
  cliPath: exports_external.string().optional(),
13937
13799
  cliAliases: exports_external.array(exports_external.string()).optional(),
13938
13800
  examples: exports_external.array(exports_external.string()).optional(),
13801
+ automation: exports_external.boolean().optional(),
13802
+ mutating: exports_external.boolean().optional(),
13939
13803
  params: exports_external.record(exports_external.string(), exports_external.object({ type: exports_external.string() }).catchall(exports_external.unknown())).optional()
13940
13804
  });
13941
13805
  var extensionParamObjectSchema = exports_external.record(exports_external.string(), exports_external.object({ type: exports_external.string() }).catchall(exports_external.unknown()));
@@ -13991,14 +13855,67 @@ var extensionCommandPaletteContributionSchema = exports_external.object({
13991
13855
  when: extensionWhenExpressionSchema.optional()
13992
13856
  });
13993
13857
 
13858
+ // ../pstdio-api-contracts/src/extensions/host-capabilities.ts
13859
+ var extensionHostCapabilitySchema = exports_external.object({
13860
+ version: exports_external.number().int().positive(),
13861
+ since: exports_external.string().optional()
13862
+ });
13863
+ var extensionHostCapabilitiesSchema = exports_external.object({
13864
+ host: exports_external.literal("dashboard"),
13865
+ hostVersion: exports_external.string(),
13866
+ capabilities: exports_external.record(exports_external.string(), extensionHostCapabilitySchema)
13867
+ });
13868
+ var extensionHostCompatibilitySchema = exports_external.object({
13869
+ status: exports_external.enum(["verified", "unverified"]),
13870
+ host: extensionHostCapabilitiesSchema.optional(),
13871
+ diagnostics: exports_external.array(extensionDiagnosticSchema)
13872
+ });
13873
+
13874
+ // ../pstdio-api-contracts/src/extension-kernel/types/composition.ts
13875
+ var dockedWorkbenchRegions = ["sidenav", "main", "secondary", "side"];
13876
+ var extensionPanelRegions = ["main", "secondary", "side"];
13877
+
13878
+ // ../pstdio-api-contracts/src/extensions/connections.ts
13879
+ var workbenchExtensionConnectionRecordSchema = exports_external.object({
13880
+ id: exports_external.string(),
13881
+ localId: exports_external.string(),
13882
+ extensionId: exports_external.string(),
13883
+ label: localizableStringSchema,
13884
+ authType: exports_external.enum(["bearer", "header"]),
13885
+ supportsCheck: exports_external.boolean()
13886
+ });
13887
+ var extensionConnectionRecordSchema = exports_external.object({
13888
+ id: exports_external.string(),
13889
+ extensionId: exports_external.string(),
13890
+ connectionId: exports_external.string(),
13891
+ baseUrl: exports_external.string(),
13892
+ authType: exports_external.enum(["bearer", "header"]),
13893
+ configured: exports_external.boolean(),
13894
+ lastCheck: exports_external.object({
13895
+ ok: exports_external.boolean(),
13896
+ status: exports_external.number().int().nullable(),
13897
+ error: exports_external.string().nullable(),
13898
+ checkedAt: exports_external.string()
13899
+ }).nullable(),
13900
+ updatedAt: exports_external.string()
13901
+ });
13902
+ var configureExtensionConnectionSchema = exports_external.object({
13903
+ baseUrl: exports_external.url(),
13904
+ secret: exports_external.string().optional()
13905
+ });
13906
+ var listExtensionConnectionsResponseSchema = exports_external.object({
13907
+ connections: exports_external.array(extensionConnectionRecordSchema)
13908
+ });
13909
+
13994
13910
  // ../pstdio-api-contracts/src/extensions/execute.ts
13995
13911
  var extensionResourceRefSchema = exports_external.object({
13996
13912
  type: exports_external.string(),
13997
13913
  id: exports_external.string(),
13998
13914
  projectId: exports_external.string().optional(),
13999
13915
  label: exports_external.string().optional(),
13916
+ icon: exports_external.string().optional(),
14000
13917
  extensionId: exports_external.string().optional(),
14001
- metadata: jsonObjectSchema.optional()
13918
+ metadata: serializableJsonObjectSchema.optional()
14002
13919
  });
14003
13920
  var extensionRepoContextSchema = exports_external.object({
14004
13921
  projectId: exports_external.string(),
@@ -14087,73 +14004,162 @@ var commandExecuteResponseSchema = exports_external.object({
14087
14004
  outcome: commandOutcomeSchema
14088
14005
  });
14089
14006
 
14090
- // ../pstdio-api-contracts/src/extensions/composition.ts
14091
- var dockedWorkbenchRegionSchema = exports_external.enum(dockedWorkbenchRegions);
14092
- var extensionResourceSlotSchema = exports_external.object({
14093
- cardinality: exports_external.enum(["one", "many"]),
14094
- external: exports_external.boolean()
14095
- });
14096
- var extensionResourceKindRecordSchema = exports_external.object({
14007
+ // ../pstdio-api-contracts/src/extensions/control-declarations.ts
14008
+ var base = { id: exports_external.string(), name: exports_external.string(), description: exports_external.string().optional(), readOnly: exports_external.boolean().optional() };
14009
+ var numeric = { min: exports_external.number().optional(), max: exports_external.number().optional(), step: exports_external.number().optional() };
14010
+ var vector = exports_external.strictObject({ x: exports_external.number(), y: exports_external.number() });
14011
+ var range = exports_external.tuple([exports_external.number(), exports_external.number()]);
14012
+ var selectionValue = exports_external.union([exports_external.string(), exports_external.array(exports_external.string())]);
14013
+ var selectionOption = exports_external.strictObject({
14097
14014
  id: exports_external.string(),
14098
- extensionId: exports_external.string(),
14099
- surface: exports_external.enum(["primary", "secondary", "attached"]),
14100
- label: localizableStringSchema.optional(),
14015
+ name: exports_external.string(),
14101
14016
  icon: exports_external.string().optional(),
14102
- slots: exports_external.record(exports_external.string(), extensionResourceSlotSchema)
14103
- });
14104
- var extensionResourcePanelRecordSchema = exports_external.object({
14105
- id: exports_external.string(),
14106
- extensionId: exports_external.string(),
14107
- resourceKind: exports_external.string(),
14108
- panel: exports_external.string(),
14109
- slot: exports_external.string()
14110
- });
14111
- var panelBodySchema = {
14112
- webview: exports_external.object({ entry: exports_external.object({ kind: exports_external.literal("package-asset"), path: exports_external.string(), baseUrl: exports_external.string() }) }).optional(),
14113
- renderer: exports_external.object({ kind: exports_external.enum(["tree", "file", "controls", "dataTable", "kanban"]), id: exports_external.string() }).optional()
14114
- };
14115
- var extensionModePlacementSchema = exports_external.object({
14116
- region: dockedWorkbenchRegionSchema,
14117
- allowedRegions: exports_external.array(dockedWorkbenchRegionSchema).optional(),
14118
- required: exports_external.boolean().optional(),
14119
- defaultOpen: exports_external.boolean().optional(),
14120
- pinned: exports_external.boolean().optional()
14121
- });
14122
- var extensionPanelPlacementSchema = exports_external.object({
14123
- for: exports_external.string().optional(),
14124
- region: dockedWorkbenchRegionSchema,
14125
- allowedRegions: exports_external.array(dockedWorkbenchRegionSchema).optional(),
14126
- required: exports_external.boolean().optional()
14017
+ color: exports_external.string().optional(),
14018
+ description: exports_external.string().optional(),
14019
+ disabled: exports_external.boolean().optional()
14127
14020
  });
14128
- var extensionCompositionPanelRecordSchema = exports_external.object({
14021
+ var selection = {
14022
+ placeholder: exports_external.string().optional(),
14023
+ searchable: exports_external.boolean().optional(),
14024
+ searchPlaceholder: exports_external.string().optional(),
14025
+ emptyText: exports_external.string().optional(),
14026
+ disabled: exports_external.boolean().optional()
14027
+ };
14028
+ var image = exports_external.strictObject({ src: exports_external.string(), alt: exports_external.string() });
14029
+ var primitive = exports_external.union([exports_external.string(), exports_external.number(), exports_external.boolean(), exports_external.null()]);
14030
+ var readOnlyContent = exports_external.union([
14031
+ primitive,
14032
+ exports_external.array(primitive),
14033
+ image.extend({ type: exports_external.literal("image") }),
14034
+ exports_external.strictObject({ type: exports_external.literal("image-gallery"), images: exports_external.array(image) })
14035
+ ]);
14036
+ var controlValueSchema = exports_external.union([primitive, exports_external.array(exports_external.string()), range, vector]);
14037
+ var controlValuesSchema = exports_external.record(exports_external.string(), controlValueSchema);
14038
+ var controlParamSchema = exports_external.discriminatedUnion("type", [
14039
+ exports_external.strictObject({ ...base, ...numeric, type: exports_external.literal("number"), defaultValue: exports_external.number() }),
14040
+ exports_external.strictObject({ ...base, type: exports_external.literal("boolean"), defaultValue: exports_external.boolean() }),
14041
+ exports_external.strictObject({ ...base, type: exports_external.literal("text"), defaultValue: exports_external.string(), singleLine: exports_external.boolean().optional() }),
14042
+ exports_external.strictObject({
14043
+ ...base,
14044
+ type: exports_external.literal("markdown"),
14045
+ defaultValue: exports_external.string(),
14046
+ placeholder: exports_external.string().optional()
14047
+ }),
14048
+ exports_external.strictObject({
14049
+ ...base,
14050
+ ...selection,
14051
+ type: exports_external.literal("selection"),
14052
+ defaultValue: selectionValue,
14053
+ options: exports_external.array(selectionOption),
14054
+ multiSelect: exports_external.boolean().optional(),
14055
+ clearable: exports_external.boolean().optional(),
14056
+ group: exports_external.strictObject({
14057
+ id: exports_external.string(),
14058
+ name: exports_external.string(),
14059
+ defaultValue: exports_external.string(),
14060
+ options: exports_external.array(selectionOption),
14061
+ ...selection
14062
+ }).optional()
14063
+ }),
14064
+ exports_external.strictObject({
14065
+ ...base,
14066
+ type: exports_external.literal("date"),
14067
+ defaultValue: exports_external.string(),
14068
+ min: exports_external.string().optional(),
14069
+ max: exports_external.string().optional()
14070
+ }),
14071
+ exports_external.strictObject({ ...base, type: exports_external.literal("color"), defaultValue: exports_external.string() }),
14072
+ exports_external.strictObject({ ...base, type: exports_external.literal("readOnly"), value: readOnlyContent }),
14073
+ exports_external.strictObject({
14074
+ ...base,
14075
+ type: exports_external.literal("resource"),
14076
+ defaultValue: selectionValue,
14077
+ options: exports_external.array(exports_external.strictObject({
14078
+ id: exports_external.string(),
14079
+ name: exports_external.string(),
14080
+ icon: exports_external.string().optional(),
14081
+ color: exports_external.string().optional(),
14082
+ description: exports_external.string().optional(),
14083
+ href: exports_external.string().optional(),
14084
+ ref: extensionResourceRefSchema.optional(),
14085
+ copyText: exports_external.string().optional()
14086
+ })),
14087
+ multiSelect: exports_external.boolean().optional(),
14088
+ editable: exports_external.boolean().optional(),
14089
+ placeholder: exports_external.string().optional(),
14090
+ emptyText: exports_external.string().optional()
14091
+ }),
14092
+ exports_external.strictObject({
14093
+ ...base,
14094
+ ...numeric,
14095
+ type: exports_external.literal("range"),
14096
+ defaultValue: range,
14097
+ min: exports_external.number(),
14098
+ max: exports_external.number(),
14099
+ unit: exports_external.string().optional(),
14100
+ markerCount: exports_external.number().optional()
14101
+ }),
14102
+ exports_external.strictObject({
14103
+ ...base,
14104
+ type: exports_external.literal("segmented"),
14105
+ defaultValue: exports_external.string(),
14106
+ variant: exports_external.enum(["default", "dots"]).optional(),
14107
+ options: exports_external.array(exports_external.strictObject({
14108
+ id: exports_external.string(),
14109
+ name: exports_external.string(),
14110
+ icon: exports_external.string().optional(),
14111
+ indicatorColor: exports_external.string().optional()
14112
+ }))
14113
+ }),
14114
+ exports_external.strictObject({
14115
+ ...base,
14116
+ type: exports_external.literal("actions"),
14117
+ defaultValue: exports_external.string().optional(),
14118
+ options: exports_external.array(exports_external.strictObject({
14119
+ id: exports_external.string(),
14120
+ name: exports_external.string(),
14121
+ icon: exports_external.string().optional(),
14122
+ disabled: exports_external.boolean().optional()
14123
+ }))
14124
+ }),
14125
+ exports_external.strictObject({
14126
+ ...base,
14127
+ type: exports_external.literal("anchorGrid"),
14128
+ defaultValue: exports_external.enum([
14129
+ "top-left",
14130
+ "top",
14131
+ "top-right",
14132
+ "left",
14133
+ "center",
14134
+ "right",
14135
+ "bottom-left",
14136
+ "bottom",
14137
+ "bottom-right"
14138
+ ])
14139
+ }),
14140
+ exports_external.strictObject({
14141
+ ...base,
14142
+ ...numeric,
14143
+ type: exports_external.literal("vector"),
14144
+ defaultValue: vector,
14145
+ coordinateMode: exports_external.enum(["cartesian", "screen"]).optional(),
14146
+ xLabel: exports_external.string().optional(),
14147
+ yLabel: exports_external.string().optional()
14148
+ })
14149
+ ]);
14150
+ var controlGroupSchema = exports_external.strictObject({
14129
14151
  id: exports_external.string(),
14130
- extensionId: exports_external.string(),
14131
- title: localizableStringSchema,
14132
- icon: exports_external.string().optional(),
14133
- show: exports_external.union([extensionPanelPlacementSchema, exports_external.array(extensionPanelPlacementSchema).min(1)]).optional(),
14134
- ...panelBodySchema
14135
- }).refine((value) => [value.webview, value.renderer].filter(Boolean).length === 1, {
14136
- message: "Composition panels must declare exactly one body"
14137
- });
14138
- var extensionModeResourceRecipeSchema = exports_external.object({
14139
- slots: exports_external.record(exports_external.string(), extensionModePlacementSchema).optional(),
14140
- panels: exports_external.record(exports_external.string(), extensionModePlacementSchema).optional()
14141
- });
14142
- var extensionModeCompositionRecordSchema = exports_external.object({
14143
- resources: exports_external.record(exports_external.string(), extensionModeResourceRecipeSchema),
14144
- modePanels: exports_external.record(exports_external.string(), extensionModePlacementSchema).optional(),
14145
- defaultResource: exports_external.union([extensionResourceRefSchema, exports_external.object({ commandId: exports_external.string() })]).optional()
14146
- });
14147
- var workbenchNavigationTargetSchema = exports_external.object({
14148
- modeId: exports_external.string().optional(),
14149
- resource: extensionResourceRefSchema.optional(),
14150
- replaceActive: exports_external.boolean().optional()
14152
+ title: exports_external.string(),
14153
+ description: exports_external.string().optional(),
14154
+ params: exports_external.array(controlParamSchema),
14155
+ collapsible: exports_external.boolean().optional(),
14156
+ defaultCollapsed: exports_external.boolean().optional()
14151
14157
  });
14152
- var extensionResourceHierarchyProviderRecordSchema = exports_external.object({
14153
- id: exports_external.string(),
14154
- extensionId: exports_external.string(),
14155
- resourceKind: exports_external.string(),
14156
- metadata: jsonObjectSchema.optional()
14158
+ var controlsQueryResultSchema = exports_external.strictObject({
14159
+ params: exports_external.array(controlParamSchema).optional(),
14160
+ groups: exports_external.array(controlGroupSchema).optional(),
14161
+ values: controlValuesSchema.optional(),
14162
+ readOnly: exports_external.boolean().optional()
14157
14163
  });
14158
14164
 
14159
14165
  // ../pstdio-api-contracts/src/extensions/renderers.ts
@@ -14170,6 +14176,7 @@ var extensionRendererRecordBaseSchema = exports_external.object({
14170
14176
  var extensionTreeRendererRecordSchema = extensionRendererRecordBaseSchema.extend({
14171
14177
  searchable: exports_external.boolean().optional(),
14172
14178
  searchPlaceholder: localizableStringSchema.optional(),
14179
+ headerHandlerId: exports_external.string().optional(),
14173
14180
  bodyHandlerId: exports_external.string(),
14174
14181
  childrenHandlerId: exports_external.string().optional(),
14175
14182
  footerHandlerId: exports_external.string().optional(),
@@ -14187,7 +14194,7 @@ var extensionControlsRendererRecordSchema = extensionRendererRecordBaseSchema.ex
14187
14194
  valueChangeHandlerId: exports_external.string().optional(),
14188
14195
  applyHandlerId: exports_external.string().optional(),
14189
14196
  resetHandlerId: exports_external.string().optional(),
14190
- defaultValues: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
14197
+ defaultValues: controlValuesSchema.optional()
14191
14198
  });
14192
14199
 
14193
14200
  // ../pstdio-api-contracts/src/extensions/data-table-renderer.ts
@@ -14246,22 +14253,6 @@ var extensionDataTableRendererRecordSchema = extensionRendererRecordBaseSchema.e
14246
14253
  pageSizeOptions: exports_external.array(exports_external.number().int().positive()).optional()
14247
14254
  });
14248
14255
 
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
14256
  // ../pstdio-api-contracts/src/extensions/kanban-renderer.ts
14266
14257
  var kanbanRendererEnumOptionSchema = exports_external.object({
14267
14258
  value: exports_external.string(),
@@ -14272,13 +14263,22 @@ var kanbanRendererEnumOptionSchema = exports_external.object({
14272
14263
  var kanbanRendererAttributeTypeSchema = exports_external.discriminatedUnion("kind", [
14273
14264
  exports_external.object({ kind: exports_external.literal("enum"), options: exports_external.array(kanbanRendererEnumOptionSchema) }),
14274
14265
  exports_external.object({ kind: exports_external.literal("enum-multi"), options: exports_external.array(kanbanRendererEnumOptionSchema) }),
14266
+ exports_external.object({
14267
+ kind: exports_external.literal("status"),
14268
+ statuses: exports_external.object({
14269
+ extensionId: exports_external.string().optional(),
14270
+ kind: exports_external.literal("status"),
14271
+ id: exports_external.string()
14272
+ })
14273
+ }),
14275
14274
  exports_external.object({ kind: exports_external.literal("string") }),
14276
14275
  exports_external.object({ kind: exports_external.literal("date") }),
14277
14276
  exports_external.object({ kind: exports_external.literal("number") }),
14278
14277
  exports_external.object({ kind: exports_external.literal("user") })
14279
14278
  ]);
14280
- var kanbanRendererAttributeDisplaySchema = exports_external.discriminatedUnion("kind", [
14281
- exports_external.object({ kind: exports_external.literal("workspace-badge"), itemsAttributeId: exports_external.string() })
14279
+ var kanbanRendererAttributeDisplaySchema = exports_external.union([
14280
+ exports_external.object({ kind: exports_external.literal("badge-list"), itemsAttributeId: exports_external.string() }),
14281
+ exports_external.object({ kind: exports_external.string() }).passthrough().refine((display) => display.kind !== "badge-list")
14282
14282
  ]);
14283
14283
  var kanbanRendererAttributeSchema = exports_external.object({
14284
14284
  id: exports_external.string(),
@@ -14355,10 +14355,56 @@ var extensionCommandPaletteResourceRecordSchema = exports_external.object({
14355
14355
  extensionId: exports_external.string(),
14356
14356
  title: localizableStringSchema,
14357
14357
  resourceKind: exports_external.string().optional(),
14358
- queryCommandId: exports_external.string(),
14358
+ queryHandlerId: exports_external.string(),
14359
14359
  refreshEventIds: exports_external.array(exports_external.string().min(1)).optional()
14360
14360
  });
14361
14361
 
14362
+ // ../pstdio-api-contracts/src/extensions/workbench-refs-metadata.ts
14363
+ var contributionRefSchema = (kind) => exports_external.object({ extensionId: exports_external.string(), kind: exports_external.literal(kind), id: exports_external.string() });
14364
+ var pageRefSchema = contributionRefSchema("page");
14365
+ var placementRefSchema = contributionRefSchema("placement");
14366
+ var modeRefSchema = contributionRefSchema("mode");
14367
+ var viewRefSchema = contributionRefSchema("view");
14368
+ var resourceKindRefSchema = contributionRefSchema("resource-kind");
14369
+ var pageSlotRefSchema = exports_external.object({
14370
+ kind: exports_external.literal("page-slot"),
14371
+ page: pageRefSchema,
14372
+ id: exports_external.string()
14373
+ });
14374
+ var panelRefSchema = exports_external.union([placementRefSchema, pageSlotRefSchema]);
14375
+ var commandTargetSchema = exports_external.object({
14376
+ command: contributionRefSchema("command"),
14377
+ params: serializableJsonObjectSchema.optional()
14378
+ });
14379
+
14380
+ // ../pstdio-api-contracts/src/extensions/navigation-target-metadata.ts
14381
+ var sectionSchema = exports_external.object({
14382
+ anchors: exports_external.array(exports_external.object({ id: exports_external.string(), heading: exports_external.string(), occurrence: exports_external.number().int().nonnegative().optional() }))
14383
+ });
14384
+ var pageTargetSchema = exports_external.lazy(() => exports_external.object({
14385
+ kind: exports_external.literal("page"),
14386
+ page: pageRefSchema,
14387
+ resource: extensionResourceRefSchema.optional(),
14388
+ open: exports_external.enum(["preview", "pin"]).optional(),
14389
+ section: sectionSchema.optional(),
14390
+ parent: pageTargetSchema.optional()
14391
+ })).meta({ id: "WorkbenchMetadataPageTarget" });
14392
+ var navigationOperationSchema = exports_external.union([
14393
+ pageTargetSchema,
14394
+ exports_external.object({
14395
+ kind: exports_external.literal("panel"),
14396
+ panel: panelRefSchema,
14397
+ resource: extensionResourceRefSchema.optional(),
14398
+ open: exports_external.enum(["preview", "pin"]).optional()
14399
+ })
14400
+ ]);
14401
+ var navigationTargetSchema = exports_external.union([
14402
+ navigationOperationSchema,
14403
+ exports_external.object({ kind: exports_external.literal("command"), target: commandTargetSchema }),
14404
+ exports_external.object({ kind: exports_external.literal("href"), href: exports_external.string() }),
14405
+ exports_external.object({ kind: exports_external.literal("compound"), targets: exports_external.array(navigationOperationSchema).min(1) })
14406
+ ]);
14407
+
14362
14408
  // ../pstdio-api-contracts/src/extensions/keybindings.ts
14363
14409
  var parsedKeybindingChordSchema = exports_external.object({
14364
14410
  key: exports_external.string(),
@@ -14371,7 +14417,7 @@ var parsedKeybindingChordSchema = exports_external.object({
14371
14417
  var extensionKeybindingRecordSchema = exports_external.object({
14372
14418
  id: exports_external.string(),
14373
14419
  extensionId: exports_external.string(),
14374
- commandId: exports_external.string(),
14420
+ action: navigationTargetSchema,
14375
14421
  key: exports_external.string(),
14376
14422
  canonicalChord: exports_external.string(),
14377
14423
  parsed: parsedKeybindingChordSchema,
@@ -14380,118 +14426,72 @@ var extensionKeybindingRecordSchema = exports_external.object({
14380
14426
  linux: exports_external.string().optional(),
14381
14427
  win: exports_external.string().optional()
14382
14428
  }).optional(),
14383
- when: extensionWhenExpressionSchema.optional(),
14384
- args: jsonObjectSchema.optional()
14429
+ when: extensionWhenExpressionSchema.optional()
14385
14430
  });
14386
14431
 
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()
14432
+ // ../pstdio-api-contracts/src/extensions/placement-metadata.ts
14433
+ var workbenchPlacementPresentationSchema = exports_external.object({
14434
+ mountStrategy: exports_external.enum(["active", "keep-mounted"]).optional(),
14435
+ hiddenByDefault: exports_external.boolean().optional(),
14436
+ headerBorderBottom: exports_external.boolean().optional(),
14437
+ tab: exports_external.object({
14438
+ queryHandlerId: exports_external.string(),
14439
+ refreshEventIds: exports_external.array(exports_external.string()).optional()
14396
14440
  }).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
14441
  });
14420
- var extensionPanelRecordSchema = extensionPanelRecordBaseSchema.refine(hasSinglePanelBody, {
14421
- message: singlePanelBodyMessage
14442
+ var placementPresenceSchema = exports_external.enum(["fixed", "open", "closed"]);
14443
+ var regionSizeSchema = exports_external.object({
14444
+ defaultPx: exports_external.number().optional(),
14445
+ minPx: exports_external.number().optional(),
14446
+ maxPx: exports_external.number().optional()
14422
14447
  });
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
14448
+ var regionSettingsSchema = exports_external.object({
14449
+ showHeader: exports_external.boolean().optional(),
14450
+ size: regionSizeSchema.optional(),
14451
+ collapsible: exports_external.boolean().optional(),
14452
+ alwaysShowTabs: exports_external.boolean().optional()
14429
14453
  });
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()
14454
+
14455
+ // ../pstdio-api-contracts/src/extensions/resource-binding-metadata.ts
14456
+ var resourceConstraintSchema = exports_external.object({ kinds: exports_external.array(resourceKindRefSchema).min(1) }).strict();
14457
+ var resourceBindingSchema = resourceConstraintSchema.extend({
14458
+ view: viewRefSchema,
14459
+ cardinality: exports_external.enum(["one", "many"]),
14460
+ add: navigationTargetSchema.optional()
14461
14461
  });
14462
- var extensionModeRecordSchema = exports_external.object({
14462
+ var placementItemSchema = exports_external.discriminatedUnion("kind", [
14463
+ exports_external.object({ kind: exports_external.literal("view"), view: viewRefSchema, presence: placementPresenceSchema }).strict(),
14464
+ exports_external.object({ kind: exports_external.literal("binding"), binding: resourceBindingSchema }).strict()
14465
+ ]);
14466
+
14467
+ // ../pstdio-api-contracts/src/extensions/page-metadata.ts
14468
+ var mainSchema = exports_external.discriminatedUnion("kind", [
14469
+ workbenchPlacementPresentationSchema.extend({
14470
+ kind: exports_external.literal("view"),
14471
+ view: viewRefSchema,
14472
+ cardinality: exports_external.enum(["one", "many"])
14473
+ }).strict(),
14474
+ exports_external.object({ kind: exports_external.literal("panels"), empty: viewRefSchema }).strict()
14475
+ ]);
14476
+ var slotSchema = workbenchPlacementPresentationSchema.extend({
14463
14477
  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({
14478
+ region: exports_external.enum(["main", "secondary", "side"]),
14479
+ order: exports_external.number().optional(),
14480
+ item: placementItemSchema,
14481
+ openOn: exports_external.literal("page-resource").optional()
14482
+ }).strict();
14483
+ var workbenchExtensionPageRecordSchema = exports_external.object({
14471
14484
  id: exports_external.string(),
14485
+ localId: exports_external.string(),
14472
14486
  extensionId: exports_external.string(),
14473
14487
  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()
14488
+ icon: exports_external.string().optional(),
14489
+ path: exports_external.string(),
14490
+ mode: modeRefSchema,
14491
+ parent: pageRefSchema.optional(),
14492
+ resource: resourceConstraintSchema.optional(),
14493
+ main: mainSchema,
14494
+ slots: exports_external.array(slotSchema)
14495
14495
  });
14496
14496
 
14497
14497
  // ../pstdio-api-contracts/src/extensions/settings.ts
@@ -14540,94 +14540,293 @@ var extensionSettingsSectionRecordSchema = exports_external.object({
14540
14540
  order: exports_external.number().optional()
14541
14541
  });
14542
14542
 
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
14543
+ // ../pstdio-api-contracts/src/extensions/workbench-metadata.ts
14544
+ var contributionRefSchema2 = (kind) => exports_external.object({ extensionId: exports_external.string(), kind: exports_external.literal(kind), id: exports_external.string() });
14545
+ var commandRefSchema = contributionRefSchema2("command");
14546
+ var modeRefSchema2 = contributionRefSchema2("mode");
14547
+ var pageRefSchema2 = contributionRefSchema2("page");
14548
+ var resourceKindRefSchema2 = contributionRefSchema2("resource-kind");
14549
+ var settingsSectionRefSchema = contributionRefSchema2("settings-section");
14550
+ var statusRefSchema = contributionRefSchema2("status");
14551
+ var viewRefSchema2 = contributionRefSchema2("view");
14552
+ var normalizedWhenSchema = exports_external.object({
14553
+ mode: exports_external.union([modeRefSchema2, exports_external.array(modeRefSchema2)]).optional(),
14554
+ source: exports_external.array(exports_external.enum(["cli", "dashboard", "api", "schedule", "event", "automation", "command-panel"])).optional(),
14555
+ view: exports_external.union([viewRefSchema2, exports_external.array(viewRefSchema2)]).optional(),
14556
+ resourceType: exports_external.array(resourceKindRefSchema2).optional(),
14557
+ metadata: jsonObjectSchema.optional()
14577
14558
  });
14578
- var workbenchExtensionHarnessRecordSchema = exports_external.object({
14559
+ var rendererBaseOmissions = {
14560
+ id: true,
14561
+ extensionId: true,
14562
+ title: true,
14563
+ icon: true,
14564
+ resourceKind: true
14565
+ };
14566
+ var commandActionSchema = exports_external.object({
14567
+ id: exports_external.string(),
14568
+ label: localizableStringSchema,
14569
+ icon: exports_external.string().optional(),
14570
+ destructive: exports_external.boolean().optional(),
14571
+ command: commandRefSchema
14572
+ });
14573
+ var kanbanCreateRowSchema = exports_external.object({
14574
+ command: commandRefSchema,
14575
+ title: localizableStringSchema.optional(),
14576
+ submitLabel: localizableStringSchema.optional(),
14577
+ columnParam: exports_external.string().optional(),
14578
+ params: exports_external.record(exports_external.string(), exports_external.unknown()).optional(),
14579
+ attributesParam: exports_external.string().optional(),
14580
+ attachments: exports_external.object({ command: commandRefSchema, resourceParam: exports_external.string(), fileParam: exports_external.string() }).optional(),
14581
+ labels: exports_external.object({
14582
+ cancel: localizableStringSchema.optional(),
14583
+ properties: localizableStringSchema.optional(),
14584
+ submitError: localizableStringSchema.optional(),
14585
+ removeFile: localizableStringSchema.optional()
14586
+ }).optional()
14587
+ });
14588
+ var webviewBodySchema = exports_external.object({ kind: exports_external.literal("webview"), webview: workbenchExtensionWebviewSchema });
14589
+ var treeBodySchema = extensionTreeRendererRecordSchema.omit(rendererBaseOmissions).extend({ kind: exports_external.literal("tree") });
14590
+ var fileBodySchema = extensionFileRendererRecordSchema.omit(rendererBaseOmissions).extend({ kind: exports_external.literal("file") });
14591
+ var controlsBodySchema = extensionControlsRendererRecordSchema.omit(rendererBaseOmissions).extend({ kind: exports_external.literal("controls") });
14592
+ var kanbanBodySchema = extensionKanbanRendererRecordSchema.omit({ ...rendererBaseOmissions, createRow: true, rowActions: true }).extend({
14593
+ kind: exports_external.literal("kanban"),
14594
+ createRow: kanbanCreateRowSchema.optional(),
14595
+ rowActions: exports_external.array(commandActionSchema).optional()
14596
+ });
14597
+ var dataTableBodySchema = extensionDataTableRendererRecordSchema.omit({ ...rendererBaseOmissions, selectionActions: true, rowActions: true }).extend({
14598
+ kind: exports_external.literal("dataTable"),
14599
+ selectionActions: exports_external.array(commandActionSchema).optional(),
14600
+ rowActions: exports_external.array(commandActionSchema).optional()
14601
+ });
14602
+ var workbenchExtensionViewBodySchema = exports_external.discriminatedUnion("kind", [
14603
+ webviewBodySchema,
14604
+ treeBodySchema,
14605
+ fileBodySchema,
14606
+ controlsBodySchema,
14607
+ kanbanBodySchema,
14608
+ dataTableBodySchema
14609
+ ]);
14610
+ var workbenchExtensionViewRecordSchema = exports_external.object({
14611
+ id: exports_external.string(),
14612
+ localId: exports_external.string(),
14613
+ extensionId: exports_external.string(),
14614
+ title: localizableStringSchema,
14615
+ icon: exports_external.string().optional(),
14616
+ body: workbenchExtensionViewBodySchema
14617
+ });
14618
+ var workbenchExtensionModeRecordSchema = exports_external.object({
14579
14619
  id: exports_external.string(),
14580
14620
  localId: exports_external.string(),
14581
14621
  extensionId: exports_external.string(),
14582
- label: localizableStringSchema.optional()
14622
+ label: localizableStringSchema,
14623
+ icon: exports_external.string().optional(),
14624
+ regions: exports_external.array(exports_external.enum(extensionPanelRegions)),
14625
+ floatingPanels: exports_external.enum(["visible", "hidden"]).optional(),
14626
+ regionSettings: exports_external.partialRecord(exports_external.enum(dockedWorkbenchRegions), regionSettingsSchema).optional(),
14627
+ defaultTheme: contributionRefSchema2("theme").optional(),
14628
+ chrome: exports_external.partialRecord(exports_external.enum(["nav", "sidenav", "activity", "status"]), exports_external.union([viewRefSchema2, exports_external.literal(false)])).optional()
14583
14629
  });
14584
- var workbenchExtensionViewRecordSchema = exports_external.object({
14630
+ var workbenchExtensionPlacementRecordSchema = workbenchPlacementPresentationSchema.extend({
14631
+ id: exports_external.string(),
14632
+ localId: exports_external.string(),
14633
+ extensionId: exports_external.string(),
14634
+ mode: modeRefSchema2,
14635
+ item: placementItemSchema,
14636
+ region: exports_external.enum(extensionPanelRegions),
14637
+ order: exports_external.number().optional(),
14638
+ movableTo: exports_external.array(exports_external.enum(extensionPanelRegions)).optional()
14639
+ });
14640
+ var workbenchExtensionViewMenuRecordSchema = exports_external.object({
14641
+ id: exports_external.string(),
14642
+ extensionId: exports_external.string(),
14643
+ owner: viewRefSchema2,
14644
+ view: viewRefSchema2,
14645
+ side: exports_external.enum(["left", "right"]),
14646
+ group: exports_external.string().optional(),
14647
+ placement: exports_external.enum(["first", "default", "last"]).optional(),
14648
+ hostTreeHeader: exports_external.enum(["default", "none"]).optional(),
14649
+ hostTreeFooter: exports_external.enum(["default", "none"]).optional()
14650
+ });
14651
+ var workbenchExtensionNavigationItemRecordSchema = exports_external.object({
14652
+ id: exports_external.string(),
14653
+ extensionId: exports_external.string(),
14654
+ owner: exports_external.union([modeRefSchema2, pageRefSchema2]),
14655
+ slot: exports_external.enum(["header", "content", "footer"]),
14656
+ label: localizableStringSchema,
14657
+ icon: exports_external.string().optional(),
14658
+ group: exports_external.string().optional(),
14659
+ when: normalizedWhenSchema.optional(),
14660
+ action: navigationTargetSchema
14661
+ });
14662
+ var workbenchExtensionNavigationTreeRecordSchema = exports_external.object({
14663
+ id: exports_external.string(),
14664
+ extensionId: exports_external.string(),
14665
+ owner: exports_external.union([modeRefSchema2, pageRefSchema2]),
14666
+ slot: exports_external.enum(["header", "content", "footer"]),
14667
+ view: viewRefSchema2
14668
+ });
14669
+ var workbenchExtensionResourceKindRecordSchema = exports_external.object({
14670
+ id: exports_external.string(),
14671
+ localId: exports_external.string(),
14672
+ extensionId: exports_external.string(),
14673
+ label: localizableStringSchema.optional(),
14674
+ icon: exports_external.string().optional(),
14675
+ menuSlots: exports_external.array(exports_external.object({
14676
+ id: exports_external.string(),
14677
+ placement: exports_external.enum(["header-primary", "header-overflow", "context-menu"]),
14678
+ label: localizableStringSchema.optional(),
14679
+ access: exports_external.enum(["owner", "public"]),
14680
+ order: exports_external.number().optional()
14681
+ })).optional()
14682
+ });
14683
+ var workbenchExtensionSettingsPanelRecordSchema2 = exports_external.object({
14684
+ id: exports_external.string(),
14685
+ extensionId: exports_external.string(),
14686
+ view: viewRefSchema2,
14687
+ slot: exports_external.object({ id: exports_external.string() }),
14688
+ section: settingsSectionRefSchema.optional()
14689
+ });
14690
+ var workbenchExtensionStatusBarItemRecordSchema = exports_external.object({
14691
+ id: exports_external.string(),
14692
+ extensionId: exports_external.string(),
14693
+ view: viewRefSchema2,
14694
+ slot: exports_external.object({ id: exports_external.string() }),
14695
+ order: exports_external.number().optional(),
14696
+ when: normalizedWhenSchema.optional()
14697
+ });
14698
+ var workbenchExtensionStatusRecordSchema = exports_external.object({
14585
14699
  id: exports_external.string(),
14586
14700
  localId: exports_external.string(),
14587
14701
  extensionId: exports_external.string(),
14588
- title: localizableStringSchema.optional()
14702
+ title: localizableStringSchema,
14703
+ actions: exports_external.array(exports_external.object({ id: exports_external.string(), label: localizableStringSchema, icon: exports_external.string().optional() })).optional(),
14704
+ queryHandlerId: exports_external.string(),
14705
+ saveHandlerId: exports_external.string().optional()
14589
14706
  });
14590
14707
  var workbenchExtensionMetadataSchema = exports_external.object({
14591
14708
  extensions: exports_external.array(extensionRecordSchema),
14592
14709
  commands: exports_external.array(extensionCommandRecordSchema),
14593
14710
  menuContributions: exports_external.array(extensionMenuContributionSchema),
14594
14711
  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(),
14712
+ modes: exports_external.array(workbenchExtensionModeRecordSchema),
14713
+ pages: exports_external.array(workbenchExtensionPageRecordSchema),
14714
+ views: exports_external.array(workbenchExtensionViewRecordSchema),
14715
+ viewMenus: exports_external.array(workbenchExtensionViewMenuRecordSchema),
14716
+ placements: exports_external.array(workbenchExtensionPlacementRecordSchema),
14717
+ resourceKinds: exports_external.array(workbenchExtensionResourceKindRecordSchema),
14718
+ resourceHierarchyProviders: exports_external.array(exports_external.object({ id: exports_external.string(), extensionId: exports_external.string(), resourceKind: resourceKindRefSchema2 })).optional(),
14719
+ navigationItems: exports_external.array(workbenchExtensionNavigationItemRecordSchema),
14720
+ navigationTrees: exports_external.array(workbenchExtensionNavigationTreeRecordSchema),
14721
+ statusBarItems: exports_external.array(workbenchExtensionStatusBarItemRecordSchema),
14722
+ statuses: exports_external.array(workbenchExtensionStatusRecordSchema),
14723
+ activityItems: exports_external.array(exports_external.object({
14724
+ id: exports_external.string(),
14725
+ extensionId: exports_external.string(),
14726
+ title: localizableStringSchema,
14727
+ icon: exports_external.string(),
14728
+ modes: exports_external.array(modeRefSchema2),
14729
+ placement: exports_external.enum(["first", "default", "last"]).optional(),
14730
+ command: commandRefSchema,
14731
+ params: jsonObjectSchema.optional()
14732
+ })).optional(),
14604
14733
  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(),
14734
+ settingsPanels: exports_external.array(workbenchExtensionSettingsPanelRecordSchema2),
14608
14735
  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
14736
  keybindings: exports_external.array(extensionKeybindingRecordSchema).optional(),
14613
14737
  settingsDefinitions: exports_external.array(extensionSettingDefinitionRecordSchema).optional(),
14614
14738
  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(),
14739
+ connections: exports_external.array(workbenchExtensionConnectionRecordSchema).optional(),
14740
+ harnesses: exports_external.array(exports_external.object({
14741
+ id: exports_external.string(),
14742
+ localId: exports_external.string(),
14743
+ extensionId: exports_external.string(),
14744
+ label: localizableStringSchema.optional()
14745
+ })).optional(),
14746
+ skills: exports_external.array(exports_external.object({
14747
+ id: exports_external.string(),
14748
+ localId: exports_external.string(),
14749
+ extensionId: exports_external.string(),
14750
+ title: localizableStringSchema.optional()
14751
+ })).optional(),
14752
+ templates: exports_external.array(exports_external.object({
14753
+ id: exports_external.string(),
14754
+ localId: exports_external.string(),
14755
+ extensionId: exports_external.string(),
14756
+ title: localizableStringSchema.optional()
14757
+ })).optional(),
14758
+ templateTypes: exports_external.array(exports_external.object({
14759
+ id: exports_external.string(),
14760
+ localId: exports_external.string(),
14761
+ extensionId: exports_external.string(),
14762
+ label: localizableStringSchema,
14763
+ description: localizableStringSchema.optional(),
14764
+ order: exports_external.number().optional(),
14765
+ commands: exports_external.object({ list: exports_external.string(), read: exports_external.string(), save: exports_external.string(), delete: exports_external.string() }).optional()
14766
+ })).optional(),
14767
+ themes: exports_external.array(exports_external.object({
14768
+ id: exports_external.string(),
14769
+ localId: exports_external.string(),
14770
+ extensionId: exports_external.string(),
14771
+ title: localizableStringSchema.optional()
14772
+ })).optional(),
14619
14773
  diagnostics: exports_external.array(extensionDiagnosticSchema)
14620
14774
  });
14775
+
14776
+ // ../pstdio-api-contracts/src/extensions/check.ts
14777
+ var extensionViewLikeSchema = exports_external.object({
14778
+ id: exports_external.string(),
14779
+ extensionId: exports_external.string()
14780
+ });
14781
+ var checkWorkbenchMetadataSchema = workbenchExtensionMetadataSchema.pick({
14782
+ extensions: true,
14783
+ commands: true,
14784
+ menuContributions: true,
14785
+ commandPaletteContributions: true,
14786
+ modes: true,
14787
+ pages: true,
14788
+ views: true,
14789
+ viewMenus: true,
14790
+ placements: true,
14791
+ resourceKinds: true,
14792
+ resourceHierarchyProviders: true,
14793
+ navigationItems: true,
14794
+ navigationTrees: true,
14795
+ statusBarItems: true,
14796
+ statuses: true,
14797
+ activityItems: true,
14798
+ settingsSections: true,
14799
+ settingsPanels: true,
14800
+ commandPaletteResources: true,
14801
+ keybindings: true,
14802
+ settingsDefinitions: true,
14803
+ diagnostics: true
14804
+ });
14805
+ var extensionsCheckResponseSchema = checkWorkbenchMetadataSchema.extend({
14806
+ extensionsRoot: exports_external.string(),
14807
+ extensionsRootExists: exports_external.boolean(),
14808
+ errorCount: exports_external.number().int().nonnegative(),
14809
+ warningCount: exports_external.number().int().nonnegative(),
14810
+ middlewares: exports_external.array(extensionMiddlewareRecordSchema),
14811
+ hooks: exports_external.array(extensionHookRecordSchema),
14812
+ schedules: exports_external.array(extensionScheduleRecordSchema),
14813
+ artifactMounts: exports_external.array(extensionArtifactMountSchema),
14814
+ themes: exports_external.array(extensionThemeRecordSchema),
14815
+ fileIconThemes: exports_external.array(extensionFileIconThemeRecordSchema),
14816
+ templates: exports_external.array(extensionViewLikeSchema),
14817
+ skills: exports_external.array(extensionViewLikeSchema),
14818
+ hostCompatibility: extensionHostCompatibilitySchema
14819
+ });
14621
14820
  var listExtensionCommandsResponseSchema = exports_external.object({
14622
- commands: exports_external.array(extensionCommandRecordSchema),
14821
+ commands: workbenchExtensionMetadataSchema.shape.commands,
14623
14822
  translations: exports_external.array(extensionTranslationRecordSchema).optional(),
14624
- diagnostics: exports_external.array(extensionDiagnosticSchema)
14823
+ diagnostics: workbenchExtensionMetadataSchema.shape.diagnostics
14625
14824
  });
14626
14825
  var listExtensionAppearanceResponseSchema = exports_external.object({
14627
14826
  themes: exports_external.array(extensionThemeRecordSchema),
14628
14827
  fileIconThemes: exports_external.array(extensionFileIconThemeRecordSchema),
14629
14828
  translations: exports_external.array(extensionTranslationRecordSchema),
14630
- diagnostics: exports_external.array(extensionDiagnosticSchema)
14829
+ diagnostics: workbenchExtensionMetadataSchema.shape.diagnostics
14631
14830
  });
14632
14831
  // ../pstdio-api-contracts/src/extensions/install.ts
14633
14832
  var enableInstalledExtensionRequestSchema = exports_external.object({
@@ -14673,7 +14872,14 @@ var marketplaceExtensionSchema = exports_external.object({
14673
14872
  installName: exports_external.string(),
14674
14873
  displayName: exports_external.string(),
14675
14874
  description: exports_external.string(),
14676
- installed: exports_external.boolean()
14875
+ installed: exports_external.boolean(),
14876
+ origin: exports_external.object({
14877
+ kind: exports_external.literal("git"),
14878
+ url: exports_external.string(),
14879
+ path: exports_external.string(),
14880
+ ref: exports_external.string()
14881
+ }),
14882
+ publisher: exports_external.string().optional()
14677
14883
  });
14678
14884
  var listProjectExtensionsResponseSchema = exports_external.object({
14679
14885
  extensions: exports_external.array(projectExtensionInstanceSchema),
@@ -14696,14 +14902,6 @@ var upgradeProjectExtensionResponseSchema = exports_external.object({
14696
14902
  var installMarketplaceExtensionResponseSchema = exports_external.object({
14697
14903
  extension: projectExtensionInstanceSchema
14698
14904
  });
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
14905
  var setupProjectExtensionResponseSchema = exports_external.object({
14708
14906
  extensionId: exports_external.string(),
14709
14907
  name: exports_external.string(),
@@ -14715,6 +14913,259 @@ var setupProjectExtensionResponseSchema = exports_external.object({
14715
14913
  installedAgents: exports_external.array(exports_external.string())
14716
14914
  }))
14717
14915
  });
14916
+ // ../pstdio-api-contracts/src/automation.ts
14917
+ var automationRunStatusSchema = exports_external.enum(["queued", "running", "succeeded", "failed", "cancelled", "rejected"]);
14918
+ var issueAutomationTokenInputSchema = exports_external.object({
14919
+ name: exports_external.string().trim().min(1).max(120),
14920
+ projectId: exports_external.string().min(1),
14921
+ principalId: exports_external.string().uuid().optional(),
14922
+ commandScopes: exports_external.array(exports_external.string().min(1)).min(1),
14923
+ expiresInSeconds: exports_external.number().int().positive().max(365 * 24 * 60 * 60)
14924
+ }).strict();
14925
+ var automationTokenRecordSchema = exports_external.object({
14926
+ id: exports_external.string(),
14927
+ principalId: exports_external.string(),
14928
+ name: exports_external.string(),
14929
+ tokenPrefix: exports_external.string(),
14930
+ projectId: exports_external.string(),
14931
+ commandScopes: exports_external.array(exports_external.string()),
14932
+ expiresAt: exports_external.string(),
14933
+ lastUsedAt: exports_external.string().nullable(),
14934
+ revokedAt: exports_external.string().nullable(),
14935
+ createdAt: exports_external.string()
14936
+ });
14937
+ var issueAutomationTokenResponseSchema = automationTokenRecordSchema.extend({ token: exports_external.string() });
14938
+ var listAutomationTokensResponseSchema = exports_external.object({ tokens: exports_external.array(automationTokenRecordSchema) });
14939
+ var createAutomationRunInputSchema = exports_external.object({
14940
+ commandId: exports_external.string().min(1),
14941
+ input: exports_external.object({
14942
+ workspaceId: exports_external.string().optional(),
14943
+ params: jsonObjectSchema.optional(),
14944
+ resource: extensionResourceRefSchema.optional(),
14945
+ metadata: jsonObjectSchema.optional()
14946
+ }).strict()
14947
+ }).strict();
14948
+ var automationRunErrorSchema = exports_external.object({
14949
+ code: exports_external.string(),
14950
+ message: exports_external.string(),
14951
+ retryable: exports_external.boolean()
14952
+ });
14953
+ var automationRunSchema = exports_external.object({
14954
+ id: exports_external.string(),
14955
+ projectId: exports_external.string(),
14956
+ commandId: exports_external.string(),
14957
+ status: automationRunStatusSchema,
14958
+ createdAt: exports_external.string(),
14959
+ startedAt: exports_external.string().nullable(),
14960
+ finishedAt: exports_external.string().nullable(),
14961
+ result: exports_external.unknown().nullable(),
14962
+ error: automationRunErrorSchema.nullable()
14963
+ });
14964
+ var automationRunEventSchema = exports_external.object({
14965
+ cursor: exports_external.number().int().nonnegative(),
14966
+ runId: exports_external.string(),
14967
+ type: exports_external.string(),
14968
+ payload: jsonObjectSchema,
14969
+ createdAt: exports_external.string()
14970
+ });
14971
+ var listAutomationRunEventsResponseSchema = exports_external.object({ events: exports_external.array(automationRunEventSchema) });
14972
+ // ../pstdio-api-contracts/src/extension-kernel/builtin-refs.ts
14973
+ var hostRef = (kind, id) => ({ extensionId: "pstdio", kind, id });
14974
+ var workbenchModes = {
14975
+ project: hostRef("mode", "project"),
14976
+ sessions: hostRef("mode", "sessions"),
14977
+ settings: hostRef("mode", "settings")
14978
+ };
14979
+ var workbenchModeDefinitions = {
14980
+ project: { ref: workbenchModes.project, regions: dockedWorkbenchRegions },
14981
+ sessions: { ref: workbenchModes.sessions, regions: dockedWorkbenchRegions },
14982
+ settings: { ref: workbenchModes.settings, regions: dockedWorkbenchRegions }
14983
+ };
14984
+ var hostResourceKind = (id, label, menuSlots) => ({
14985
+ id,
14986
+ ref: hostRef("resource-kind", id),
14987
+ label,
14988
+ menuSlots
14989
+ });
14990
+ var headerMenuSlots = [
14991
+ { id: "headerPrimary", placement: "header-primary", access: "public" },
14992
+ { id: "headerOverflow", placement: "header-overflow", access: "public" }
14993
+ ];
14994
+ var workbenchResourceKindDefinitions = {
14995
+ project: hostResourceKind("project", "Extension", headerMenuSlots),
14996
+ session: hostResourceKind("session", "Session", headerMenuSlots),
14997
+ workspace: hostResourceKind("workspace", "Workspace", headerMenuSlots)
14998
+ };
14999
+ var workbenchResourceKinds = {
15000
+ project: workbenchResourceKindDefinitions.project.ref,
15001
+ session: workbenchResourceKindDefinitions.session.ref,
15002
+ workspace: workbenchResourceKindDefinitions.workspace.ref
15003
+ };
15004
+ var workbenchPages = {
15005
+ start: hostRef("page", "start"),
15006
+ sessions: hostRef("page", "sessions"),
15007
+ session: hostRef("page", "session"),
15008
+ workspaces: hostRef("page", "workspaces"),
15009
+ workspace: hostRef("page", "workspace")
15010
+ };
15011
+ var workbenchPageDefinitions = {
15012
+ start: {
15013
+ ref: workbenchPages.start,
15014
+ mode: workbenchModes.project,
15015
+ path: "",
15016
+ primary: { cardinality: "one", resourceKinds: [] }
15017
+ },
15018
+ sessions: {
15019
+ ref: workbenchPages.sessions,
15020
+ mode: workbenchModes.sessions,
15021
+ path: "sessions",
15022
+ primary: { cardinality: "one", resourceKinds: [] }
15023
+ },
15024
+ session: {
15025
+ ref: workbenchPages.session,
15026
+ mode: workbenchModes.sessions,
15027
+ path: "session",
15028
+ primary: { cardinality: "one", resourceKinds: ["session", "session-draft"] }
15029
+ },
15030
+ workspaces: {
15031
+ ref: workbenchPages.workspaces,
15032
+ mode: workbenchModes.project,
15033
+ path: "workspaces",
15034
+ primary: { cardinality: "one", resourceKinds: [] }
15035
+ },
15036
+ workspace: {
15037
+ ref: workbenchPages.workspace,
15038
+ mode: workbenchModes.project,
15039
+ path: "workspace",
15040
+ primary: { cardinality: "many", resourceKinds: ["workspace"] }
15041
+ }
15042
+ };
15043
+ var workbenchPanels = {
15044
+ projectSession: hostRef("placement", "project-session")
15045
+ };
15046
+ var workbenchPanelDefinitions = {
15047
+ projectSession: {
15048
+ ref: workbenchPanels.projectSession,
15049
+ mode: workbenchModes.project,
15050
+ cardinality: "many",
15051
+ resourceKinds: ["session", "session-draft"]
15052
+ }
15053
+ };
15054
+ var workbenchSlots = {
15055
+ projectSettings: hostRef("settings-panel", "project.settings"),
15056
+ statusBarLeading: hostRef("status-bar-item", "status-bar.leading"),
15057
+ statusBarTrailing: hostRef("status-bar-item", "status-bar.trailing")
15058
+ };
15059
+ // ../pstdio-api-contracts/src/extension-kernel/contribution-id.ts
15060
+ var localContributionIdPattern = /^[a-z0-9]+(?:-[a-z0-9]+)*(?:\.[a-z0-9]+(?:-[a-z0-9]+)*)*$/;
15061
+ var isValidLocalContributionId = (id) => localContributionIdPattern.test(id);
15062
+ var localContributionIdGrammar = 'lowercase kebab-case segments separated by dots, such as "ticket-status.create"';
15063
+ // ../pstdio-api-contracts/src/extension-kernel/refs.ts
15064
+ var createCommandRef = (input) => ({ ...input, kind: "command" });
15065
+ var commandRef = Object.assign(createCommandRef, {
15066
+ forExtension: (owner) => (id) => createCommandRef({ extensionId: `${owner.publisher}.${owner.name}`, id })
15067
+ });
15068
+ var eventRef = (input) => ({
15069
+ ...input,
15070
+ kind: "event"
15071
+ });
15072
+
15073
+ // ../pstdio-api-contracts/src/extension-kernel/slots.ts
15074
+ var defineSlot = (id, options) => ({
15075
+ id,
15076
+ kind: options.kind,
15077
+ label: options.label,
15078
+ description: options.description,
15079
+ metadata: options.metadata
15080
+ });
15081
+
15082
+ // ../pstdio-api-contracts/src/extension-kernel/kernel-slots.ts
15083
+ var hostEventRef = (id) => eventRef({ extensionId: "pstdio", id });
15084
+ var resourceMenuSlotRef = (resourceKind, id) => defineSlot(`${resourceKind.id}.${id}`, { kind: "menu" });
15085
+ var projectSlots = {
15086
+ sidenav: defineSlot("project.sidenav", { kind: "panel" }),
15087
+ headerPrimary: resourceMenuSlotRef(workbenchResourceKinds.project, "headerPrimary"),
15088
+ headerOverflow: resourceMenuSlotRef(workbenchResourceKinds.project, "headerOverflow"),
15089
+ settingsPanels: defineSlot("project.settingsPanels", { kind: "settings" })
15090
+ };
15091
+ var sessionSlots = {
15092
+ headerPrimary: resourceMenuSlotRef(workbenchResourceKinds.session, "headerPrimary"),
15093
+ headerOverflow: resourceMenuSlotRef(workbenchResourceKinds.session, "headerOverflow")
15094
+ };
15095
+ var workspaceSlots = {
15096
+ headerPrimary: resourceMenuSlotRef(workbenchResourceKinds.workspace, "headerPrimary"),
15097
+ headerOverflow: resourceMenuSlotRef(workbenchResourceKinds.workspace, "headerOverflow"),
15098
+ sidenav: defineSlot("workspace.sidenav", { kind: "panel" })
15099
+ };
15100
+ var projectEvents = {
15101
+ opened: hostEventRef("project.opened")
15102
+ };
15103
+ var sessionEvents = {
15104
+ started: hostEventRef("session.started"),
15105
+ resumed: hostEventRef("session.resumed"),
15106
+ awaitingInput: hostEventRef("session.awaitingInput"),
15107
+ succeeded: hostEventRef("session.succeeded"),
15108
+ failed: hostEventRef("session.failed"),
15109
+ completed: hostEventRef("session.completed")
15110
+ };
15111
+ var workspaceEvents = {
15112
+ created: hostEventRef("workspace.created"),
15113
+ provision: hostEventRef("workspace.provision"),
15114
+ ready: hostEventRef("workspace.ready"),
15115
+ archived: hostEventRef("workspace.archived"),
15116
+ deleted: hostEventRef("workspace.deleted")
15117
+ };
15118
+ var worktreeEvents = {
15119
+ removed: hostEventRef("worktree.removed")
15120
+ };
15121
+ var gitEvents = {
15122
+ committed: hostEventRef("git.committed"),
15123
+ rebased: hostEventRef("git.rebased"),
15124
+ merged: hostEventRef("git.merged"),
15125
+ conflicted: hostEventRef("git.conflicted")
15126
+ };
15127
+ // ../pstdio-api-contracts/src/extension-kernel/l10n.ts
15128
+ var l10n = (key, defaultValue) => ({
15129
+ $l10n: key,
15130
+ ...defaultValue === undefined ? {} : { default: defaultValue }
15131
+ });
15132
+ var isLocalizedString = (value) => typeof value === "object" && value !== null && ("$l10n" in value) && typeof value.$l10n === "string";
15133
+ // ../pstdio-api-contracts/src/extension-kernel/package-asset.ts
15134
+ var packageAsset = (path, baseUrl) => ({
15135
+ kind: "package-asset",
15136
+ path,
15137
+ baseUrl
15138
+ });
15139
+ // ../pstdio-api-contracts/src/extension-kernel/types/extension.ts
15140
+ var EXTENSION_API_VERSION = "1.0.0-alpha.10";
15141
+ // ../pstdio-api-contracts/src/extension-kernel/types/webview-capabilities.ts
15142
+ var WEBVIEW_HOST_CAPABILITY_VERSION = 1;
15143
+ var WEBVIEW_DECLARABLE_CAPABILITIES = [
15144
+ "commands.execute",
15145
+ "navigation.open",
15146
+ "placement.close",
15147
+ "notification.show",
15148
+ "notification.action",
15149
+ "notification.resolve",
15150
+ "notification.dismiss",
15151
+ "preferences.get",
15152
+ "preferences.set",
15153
+ "extension.settings.all",
15154
+ "extension.settings.get",
15155
+ "extension.settings.set",
15156
+ "extension.settings.delete",
15157
+ "terminal.session",
15158
+ "files.upload",
15159
+ "files.list",
15160
+ "files.delete"
15161
+ ];
15162
+ var WEBVIEW_SCOPED_DECLARABLE_CAPABILITIES = ["artifacts.read"];
15163
+ var ALWAYS_AVAILABLE_WEBVIEW_CAPABILITIES = ["host.dispatchKeyboardEvent"];
15164
+ var WEBVIEW_HOST_CAPABILITIES = [
15165
+ ...WEBVIEW_DECLARABLE_CAPABILITIES,
15166
+ ...WEBVIEW_SCOPED_DECLARABLE_CAPABILITIES,
15167
+ ...ALWAYS_AVAILABLE_WEBVIEW_CAPABILITIES
15168
+ ];
14718
15169
  // ../pstdio-api-contracts/src/files.ts
14719
15170
  var fileRecordSchema = exports_external.object({
14720
15171
  id: exports_external.string(),
@@ -14960,8 +15411,6 @@ var createSessionInputSchema = exports_external.object({
14960
15411
  project_id: exports_external.string().min(1),
14961
15412
  title: exports_external.string().min(1),
14962
15413
  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
15414
  agent: exports_external.string().min(1).optional(),
14966
15415
  workspace_id: exports_external.string().optional(),
14967
15416
  anchors: exports_external.array(extensionResourceRefSchema).optional(),
@@ -14975,8 +15424,6 @@ var questionResponseSchema = exports_external.object({
14975
15424
  });
14976
15425
  var followUpInputSchema = exports_external.object({
14977
15426
  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
15427
  agent: exports_external.string().optional(),
14981
15428
  model: exports_external.string().optional(),
14982
15429
  question_response: questionResponseSchema.optional(),
@@ -15059,53 +15506,54 @@ var updateSkillInputSchema = exports_external.object({
15059
15506
  title: exports_external.string().min(1).optional(),
15060
15507
  description: exports_external.string().optional()
15061
15508
  });
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
15509
  // ../pstdio-api-contracts/src/workspaces.ts
15510
+ var workspaceProviderRefShape = {
15511
+ version: exports_external.number().int().positive(),
15512
+ data: jsonObjectSchema
15513
+ };
15514
+ var workspaceProviderRefSchema = exports_external.object(workspaceProviderRefShape);
15515
+ var workspaceProviderStates = [
15516
+ "provisioning",
15517
+ "ready",
15518
+ "failed",
15519
+ "cancelled",
15520
+ "archiving",
15521
+ "archived",
15522
+ "deleting",
15523
+ "provider_missing"
15524
+ ];
15525
+ var workspaceProviderStateSchema = exports_external.enum(workspaceProviderStates);
15526
+ var workspaceExecutionKindSchema = exports_external.enum(["local", "remote"]);
15527
+ var workspaceCapabilitiesSchema = exports_external.object({
15528
+ files: exports_external.enum(["none", "read", "write"]),
15529
+ diff: exports_external.boolean(),
15530
+ merge: exports_external.boolean(),
15531
+ rebase: exports_external.boolean(),
15532
+ archive: exports_external.boolean(),
15533
+ delete: exports_external.boolean()
15534
+ });
15535
+ var workspaceProviderErrorSchema = exports_external.object({
15536
+ code: exports_external.string(),
15537
+ message: exports_external.string(),
15538
+ retryable: exports_external.boolean(),
15539
+ occurred_at: exports_external.string()
15540
+ });
15103
15541
  var workspaceSchema = exports_external.object({
15104
15542
  id: exports_external.string(),
15105
15543
  project_id: exports_external.string(),
15106
15544
  name: exports_external.string(),
15107
15545
  branch: exports_external.string().nullable(),
15108
15546
  worktree_path: exports_external.string().nullable(),
15547
+ provider_id: exports_external.string(),
15548
+ provider_params_json: jsonObjectSchema,
15549
+ provider_ref_json: workspaceProviderRefSchema.nullable(),
15550
+ provider_state: workspaceProviderStateSchema,
15551
+ execution_kind: workspaceExecutionKindSchema,
15552
+ provider_operation_id: exports_external.string().nullable(),
15553
+ provider_operation_kind: exports_external.enum(["create", "cancel", "archive", "delete"]).nullable(),
15554
+ provider_error_json: workspaceProviderErrorSchema.nullable(),
15555
+ provider_capabilities_json: workspaceCapabilitiesSchema,
15556
+ display_path: exports_external.string().nullable(),
15109
15557
  is_default: exports_external.boolean(),
15110
15558
  archived: exports_external.boolean(),
15111
15559
  workspace_shorthand: exports_external.string(),
@@ -15117,7 +15565,8 @@ var workspaceSchema = exports_external.object({
15117
15565
  });
15118
15566
  var createWorkspaceInputSchema = exports_external.object({
15119
15567
  project_id: exports_external.string().min(1),
15120
- type: exports_external.literal("worktree").optional(),
15568
+ provider_id: exports_external.string().optional(),
15569
+ params: jsonObjectSchema.optional(),
15121
15570
  repo_id: exports_external.string().optional(),
15122
15571
  base: exports_external.string().optional()
15123
15572
  });