@codexhost/cli-darwin-arm64 0.18.0-beta.1 → 0.18.0-beta.4

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 (62) hide show
  1. package/README.md +1 -1
  2. package/app/codexhost-distribution.json +1 -1
  3. package/app/console-server.mjs +109 -94
  4. package/app/console-web.js +110 -95
  5. package/app/desktop-controller.mjs +109 -110
  6. package/app/host-runtime.mjs +14225 -10527
  7. package/app/plugins/antigravity/plugin.mjs +109 -94
  8. package/app/plugins/claude-code/plugin.mjs +229 -148
  9. package/app/plugins/codebuddy/plugin.mjs +109 -94
  10. package/app/plugins/codex-usage/plugin.mjs +109 -94
  11. package/app/plugins/copilot/plugin.mjs +109 -94
  12. package/app/plugins/cursor-cli/plugin.mjs +109 -94
  13. package/app/plugins/deepseek-harness/plugin.mjs +109 -94
  14. package/app/plugins/devin/plugin.mjs +109 -94
  15. package/app/plugins/enabled.json +0 -1
  16. package/app/plugins/grok/plugin.mjs +109 -94
  17. package/app/plugins/hermes/plugin.mjs +109 -94
  18. package/app/plugins/kimi-code/plugin.mjs +109 -94
  19. package/app/plugins/kiro-cli/plugin.mjs +109 -94
  20. package/app/plugins/omp/plugin.mjs +109 -94
  21. package/app/plugins/opencode/plugin.mjs +109 -94
  22. package/app/plugins/pi/plugin.mjs +109 -94
  23. package/app/plugins/qoder/plugin.mjs +109 -94
  24. package/app/plugins/qoder-cn/plugin.mjs +109 -94
  25. package/app/plugins/qwen-code/plugin.mjs +109 -94
  26. package/app/plugins/workbuddy/plugin.mjs +109 -94
  27. package/app/plugins/zcode/plugin.mjs +109 -94
  28. package/app/renderer-extension.js +128 -150
  29. package/app/web/assets/index-C3lniEH1.css +1 -0
  30. package/app/web/assets/index-D1dOzBMI.js +199 -0
  31. package/app/web/codexhost-settings.js +110 -95
  32. package/app/web/index.html +2 -2
  33. package/app/web/plugins/deepseek-ai__dsh-api-gateway/client.js +1 -1
  34. package/app/web/plugins/deepseek-ai__dsh-api-remotes/client.js +64 -64
  35. package/app/web/plugins/deepseek-ai__dsh-api-session-controller/client.js +69 -69
  36. package/app/web/plugins/deepseek-ai__dsh-client-connection/client.js +1 -1
  37. package/app/web/plugins/deepseek-ai__dsh-client-ui-chat/client.js +2 -2
  38. package/app/web/plugins/deepseek-ai__dsh-client-ui-codexhost/client.js +57 -56
  39. package/app/web/plugins/deepseek-ai__dsh-client-ui-conversation/client.js +87 -87
  40. package/app/web/plugins/deepseek-ai__dsh-client-ui-directory-picker-browse/client.js +10 -10
  41. package/app/web/plugins/deepseek-ai__dsh-client-ui-input-trigger/client.js +1 -1
  42. package/app/web/plugins/deepseek-ai__dsh-client-ui-layout/client.js +3 -3
  43. package/app/web/plugins/deepseek-ai__dsh-client-ui-model-selection/client.js +2 -2
  44. package/app/web/plugins/deepseek-ai__dsh-client-ui-permission-presets/client.js +1 -1
  45. package/app/web/plugins/deepseek-ai__dsh-client-ui-settings/client.js +1 -1
  46. package/app/web/plugins/deepseek-ai__dsh-client-ui-settings-general/client.js +2 -2
  47. package/app/web/plugins/deepseek-ai__dsh-client-ui-sidebar/client.js +2 -2
  48. package/app/web/plugins/deepseek-ai__dsh-client-ui-sidebar-right/client.js +55 -55
  49. package/app/web/plugins/deepseek-ai__dsh-client-ui-tool/client.js +18 -18
  50. package/app/web/plugins/deepseek-ai__dsh-client-ui-workspace/client.js +8 -12
  51. package/app/web/plugins.json +4 -0
  52. package/app/web/sw.js +55 -24
  53. package/app/web-modules/server.mjs +1415 -784
  54. package/bin/codexhost +0 -0
  55. package/libexec/codexhost-shim +0 -0
  56. package/libexec/codexhost-updater +0 -0
  57. package/package.json +1 -1
  58. package/app/plugins/codex-cli/manifest.json +0 -16
  59. package/app/plugins/codex-cli/plugin.mjs +0 -20374
  60. package/app/web/assets/index-CIeTchMu.css +0 -1
  61. package/app/web/assets/index-DeAPBQbV.js +0 -199
  62. /package/app/{plugins/codex-cli/assets/icon.png → web/codex.png} +0 -0
@@ -15028,7 +15028,7 @@ var HARNESS_PERMISSION_MODE_CATALOG_MAX_LENGTH = 32;
15028
15028
  var nonBlankTextSchema = external_exports.string().refine((value) => value.trim().length > 0, {
15029
15029
  message: "Value must not be empty or whitespace"
15030
15030
  });
15031
- var harnessPermissionModeIdSchema = nonBlankTextSchema.max(HARNESS_PERMISSION_MODE_ID_MAX_LENGTH).regex(/^[A-Za-z0-9._~-]+$/u, "Permission Mode ID must use transport-safe characters").brand();
15031
+ var harnessPermissionModeIdSchema = nonBlankTextSchema.max(HARNESS_PERMISSION_MODE_ID_MAX_LENGTH).regex(/^[A-Za-z0-9._~:-]+$/u, "Permission Mode ID must use transport-safe characters").brand();
15032
15032
  var harnessPermissionModeSchema = external_exports.object({
15033
15033
  id: harnessPermissionModeIdSchema,
15034
15034
  label: nonBlankTextSchema.max(HARNESS_PERMISSION_MODE_LABEL_MAX_LENGTH),
@@ -15412,7 +15412,12 @@ var threadInspectionParamsSchema = external_exports.object({
15412
15412
  }).strict();
15413
15413
  var codexThreadInspectionSchema = external_exports.object({
15414
15414
  owner: external_exports.literal("codex"),
15415
- locked: external_exports.literal(true),
15415
+ locked: external_exports.boolean(),
15416
+ effectiveModel: harnessModelRefSchema.optional(),
15417
+ resolvedModelLabel: harnessResolvedModelLabelSchema.optional(),
15418
+ effectiveThinkingOptionId: harnessThinkingOptionIdSchema.optional(),
15419
+ effectivePermissionModeId: harnessPermissionModeIdSchema.optional(),
15420
+ history: harnessHistoryCapabilitiesSchema.optional(),
15416
15421
  supportsThreadReferences: external_exports.literal(true).optional()
15417
15422
  }).strict();
15418
15423
  var externalThreadInspectionSchema = external_exports.object({
@@ -15634,7 +15639,8 @@ var clientThreadSnapshotSchema = external_exports.object({
15634
15639
  thread: external_exports.object({
15635
15640
  id: external_exports.string().min(1),
15636
15641
  cwd: external_exports.string(),
15637
- modelProvider: external_exports.literal("codexhost"),
15642
+ /** External rows use codexhost; native Codex rows retain their official provider. */
15643
+ modelProvider: external_exports.string().min(1),
15638
15644
  createdAt: external_exports.number(),
15639
15645
  updatedAt: external_exports.number(),
15640
15646
  status: external_exports.object({ type: external_exports.string() }).passthrough(),
@@ -15648,6 +15654,11 @@ var clientThreadSnapshotSchema = external_exports.object({
15648
15654
  nextCursor: external_exports.string().nullable()
15649
15655
  }),
15650
15656
  configuration: external_exports.object({
15657
+ /** Native Codex model names are not external Harness transport refs. */
15658
+ native: external_exports.object({
15659
+ model: external_exports.string().min(1).max(1024).optional(),
15660
+ reasoningEffort: external_exports.string().min(1).max(128).optional()
15661
+ }).optional(),
15651
15662
  effectiveModel: harnessModelRefSchema.optional(),
15652
15663
  effectiveThinkingOptionId: harnessThinkingOptionIdSchema.optional(),
15653
15664
  effectivePermissionModeId: harnessPermissionModeIdSchema.optional()
@@ -15674,6 +15685,21 @@ var clientChannelResponseSchema = external_exports.object({
15674
15685
  result: record2
15675
15686
  });
15676
15687
 
15688
+ // ../../shared-contracts/dist/thread-catalog.js
15689
+ var threadCatalogReadParamsSchema = external_exports.object({
15690
+ includeArchived: external_exports.boolean().optional(),
15691
+ /** Absent means first page; null means this branch is exhausted. Native cursors only. */
15692
+ officialCursor: external_exports.object({ live: external_exports.string().nullable(), archived: external_exports.string().nullable().optional() }).strict().optional()
15693
+ }).strict();
15694
+ var threadCatalogReadResultSchema = external_exports.object({
15695
+ threads: external_exports.array(jsonObjectSchema),
15696
+ ownership: external_exports.array(threadOwnershipSchema),
15697
+ /** Known archived IDs, including visible local external records even when their rows are
15698
+ * excluded. Native archived IDs describe only the returned page, never a complete set. */
15699
+ archivedThreadIds: external_exports.array(hostThreadIdSchema),
15700
+ officialCursor: external_exports.object({ live: external_exports.string().nullable(), archived: external_exports.string().nullable().optional() }).strict().optional()
15701
+ }).strict();
15702
+
15677
15703
  // ../../shared-contracts/dist/voice.js
15678
15704
  var VOICE_AUDIO_MAX_BYTES = 10 * 1024 * 1024;
15679
15705
  var voiceAudioMimeTypeSchema = external_exports.string().regex(/^audio\/[a-z0-9.+-]+(?:\s*;[^\r\n]*)?$/i);
@@ -15886,96 +15912,19 @@ var idleReleaseSettingsSchema = external_exports.strictObject({
15886
15912
  });
15887
15913
  var DEFAULT_IDLE_RELEASE_SETTINGS = Object.freeze({
15888
15914
  enabled: false,
15889
- timeoutMinutes: 30
15890
- });
15891
-
15892
- // ../../shared-contracts/dist/harness-plugins.js
15893
- var HARNESS_PLUGIN_MANIFEST_MAX_BYTES = 32 * 1024;
15894
- var HARNESS_PLUGIN_ICON_MAX_BYTES = 128 * 1024;
15895
- var HARNESS_PLUGIN_LIMIT = 128;
15896
- var HARNESS_PLUGIN_SURFACES = ["desktop", "web"];
15897
- var harnessPluginSurfaceSchema = external_exports.enum(HARNESS_PLUGIN_SURFACES);
15898
- var installedHarnessPluginIdSchema = external_exports.string().min(1).max(128).regex(/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/u).pipe(harnessIdSchema);
15899
- var harnessPluginIdSchema = installedHarnessPluginIdSchema.refine((id) => id !== "codex", "The official Codex identity is reserved");
15900
- var relativeResourceSchema = external_exports.string().min(1).max(512).refine((value) => !/[\\\u0000:#?]/u.test(value) && !value.startsWith("/") && !value.split("/").some((part) => part === ".." || part === ""), "Plugin resources must be relative paths inside the plugin");
15901
- var documentationUrlSchema = external_exports.url().refine((value) => /^https:\/\/[^/?#@]+(?:[/?#]|$)/iu.test(value), "Plugin documentation links must be credential-free HTTPS URLs");
15902
- var localizedTextSchema = external_exports.object({ en: external_exports.string().max(4096), "zh-CN": external_exports.string().max(4096).optional() }).strict();
15903
- var harnessInstallationGuideSchema = external_exports.object({
15904
- commands: external_exports.array(external_exports.object({ terminal: external_exports.string().max(256), command: external_exports.string().max(4096) }).strict()).max(8),
15905
- before: localizedTextSchema.optional(),
15906
- after: localizedTextSchema.optional(),
15907
- downloads: external_exports.array(external_exports.object({ label: external_exports.string().max(128), url: documentationUrlSchema }).strict()).max(8).optional()
15908
- }).strict();
15909
- var pluginPresentationShape = {
15910
- id: installedHarnessPluginIdSchema,
15911
- name: external_exports.string().trim().min(1).max(128),
15912
- version: external_exports.string().min(1).max(128),
15913
- /** Capability-only plugin; omitted for existing session-capable plugins. */
15914
- kind: external_exports.literal("usage").optional(),
15915
- /** Original image styling or bounded vector paths; never arbitrary CSS/SVG markup. */
15916
- iconStyle: external_exports.object({
15917
- vector: external_exports.object({
15918
- viewBox: external_exports.string().max(128).regex(/^-?\d+(?:\.\d+)?(?: +-?\d+(?:\.\d+)?){3}$/u),
15919
- color: external_exports.string().regex(/^(?:currentColor|#[a-f0-9]{6})$/iu),
15920
- paths: external_exports.array(external_exports.object({
15921
- d: external_exports.string().min(1).max(32768).regex(/^[MmLlHhVvCcSsQqTtAaZz\d.,+eE\s-]+$/u),
15922
- fillRule: external_exports.enum(["evenodd", "nonzero"]).optional(),
15923
- fill: external_exports.string().regex(/^(?:currentColor|#[a-f0-9]{6})$/iu).optional()
15924
- }).strict()).min(1).max(32)
15925
- }).strict().optional(),
15926
- background: external_exports.string().regex(/^#[a-f0-9]{6}$/iu).optional(),
15927
- borderRadius: external_exports.number().min(0).max(50).optional(),
15928
- paddingRatio: external_exports.number().min(0).max(0.25).optional()
15929
- }).strict().optional(),
15930
- installation: harnessInstallationGuideSchema.optional(),
15931
- notice: localizedTextSchema.optional(),
15932
- /** The factory accepts a persisted local entrypoint through its construction context. */
15933
- launchCommand: external_exports.literal(true).optional(),
15934
- links: external_exports.object({
15935
- website: documentationUrlSchema.optional(),
15936
- documentation: documentationUrlSchema.optional(),
15937
- installation: documentationUrlSchema.optional()
15938
- }).strict().optional()
15939
- };
15940
- var harnessPluginSurfacesSchema = external_exports.array(harnessPluginSurfaceSchema).min(1).max(HARNESS_PLUGIN_SURFACES.length).refine((surfaces) => new Set(surfaces).size === surfaces.length, {
15941
- message: "Plugin surfaces must be unique"
15942
- });
15943
- var harnessPluginManifestSchema = external_exports.object({
15944
- manifestVersion: external_exports.literal(1),
15945
- ...pluginPresentationShape,
15946
- adapterApiVersion: external_exports.number().int().positive(),
15947
- entry: relativeResourceSchema,
15948
- icon: relativeResourceSchema.optional(),
15949
- /** Omitted means the plugin appears in every surface; never inferred from its identity. */
15950
- surfaces: harnessPluginSurfacesSchema.optional()
15951
- }).strict();
15952
- var harnessPluginIconSchema = external_exports.string().max(Math.ceil(HARNESS_PLUGIN_ICON_MAX_BYTES / 3) * 4 + 64).regex(/^data:image\/(?:png|jpeg|webp|svg\+xml);base64,[A-Za-z0-9+/]+={0,2}$/u);
15953
- var harnessPluginDescriptorSchema = external_exports.object({
15954
- ...pluginPresentationShape,
15955
- icon: harnessPluginIconSchema.optional()
15956
- }).strict();
15957
- var harnessPluginListParamsSchema = external_exports.object({}).strict();
15958
- var harnessPluginListResultSchema = external_exports.object({
15959
- plugins: external_exports.array(harnessPluginDescriptorSchema.extend({ id: harnessPluginIdSchema })).max(HARNESS_PLUGIN_LIMIT)
15960
- }).strict();
15961
- var harnessPluginConfigurationSchema = external_exports.object({
15962
- version: external_exports.literal(1),
15963
- enabled: external_exports.array(installedHarnessPluginIdSchema).max(HARNESS_PLUGIN_LIMIT)
15964
- }).strict().refine((value) => new Set(value.enabled).size === value.enabled.length, {
15965
- message: "Enabled plugin IDs must be unique",
15966
- path: ["enabled"]
15915
+ timeoutMinutes: 10
15967
15916
  });
15968
15917
 
15969
15918
  // ../../shared-contracts/dist/harness-preferences.js
15970
15919
  var harnessPreferenceScopeSchema = external_exports.string().regex(/^external$/u);
15971
- var preferenceHarnessKey = installedHarnessPluginIdSchema.transform((id) => String(id));
15920
+ var preferenceHarnessKey = harnessIdSchema.transform((id) => String(id));
15972
15921
  var harnessDefaultConfigurationSchema = external_exports.strictObject({
15973
15922
  model: harnessModelRefSchema.optional(),
15974
15923
  thinkingOptionId: harnessThinkingOptionIdSchema.optional(),
15975
15924
  permissionModeId: harnessPermissionModeIdSchema.optional()
15976
15925
  }).refine((value) => Boolean(value.model || value.thinkingOptionId || value.permissionModeId), "A default configuration must contain a preference");
15977
15926
  var newThreadDefaultsSchema = external_exports.strictObject({
15978
- lastHarness: installedHarnessPluginIdSchema.optional(),
15927
+ lastHarness: harnessIdSchema.optional(),
15979
15928
  byHarness: external_exports.record(preferenceHarnessKey, harnessDefaultConfigurationSchema)
15980
15929
  });
15981
15930
  var modelId = external_exports.string().min(1).max(1024);
@@ -15996,19 +15945,19 @@ var harnessPreferenceOperationSchema = external_exports.discriminatedUnion("kind
15996
15945
  external_exports.strictObject({ kind: external_exports.literal("idleRelease"), value: idleReleaseSettingsSchema }),
15997
15946
  external_exports.strictObject({
15998
15947
  kind: external_exports.literal("favorite"),
15999
- harnessId: installedHarnessPluginIdSchema,
15948
+ harnessId: harnessIdSchema,
16000
15949
  modelId,
16001
15950
  enabled: external_exports.boolean()
16002
15951
  }),
16003
15952
  external_exports.strictObject({
16004
15953
  kind: external_exports.literal("favorites"),
16005
- harnessId: installedHarnessPluginIdSchema,
15954
+ harnessId: harnessIdSchema,
16006
15955
  modelIds: external_exports.array(modelId).max(2048)
16007
15956
  }),
16008
15957
  external_exports.strictObject({
16009
15958
  kind: external_exports.literal("newThread"),
16010
- lastHarness: installedHarnessPluginIdSchema.optional(),
16011
- harnessId: installedHarnessPluginIdSchema.optional(),
15959
+ lastHarness: harnessIdSchema.optional(),
15960
+ harnessId: harnessIdSchema.optional(),
16012
15961
  configuration: harnessDefaultConfigurationSchema.optional()
16013
15962
  })
16014
15963
  ]);
@@ -16024,12 +15973,6 @@ var harnessPreferencePatchSchema = external_exports.strictObject({
16024
15973
  code: "custom",
16025
15974
  message: "A default Harness or complete configuration is required"
16026
15975
  });
16027
- const harnessId = "harnessId" in operation ? operation.harnessId : void 0;
16028
- if (harnessId === "codex")
16029
- ctx.addIssue({
16030
- code: "custom",
16031
- message: "Official Codex is not an external Harness"
16032
- });
16033
15976
  }
16034
15977
  });
16035
15978
  var harnessPreferencesDocumentSchema = external_exports.strictObject({
@@ -16406,6 +16349,76 @@ var harnessAccountListResultSchema = external_exports.object({
16406
16349
  accounts: external_exports.array(requireReportedQuota(harnessAccountSnapshotObject.extend(harnessAccountIdentityShape))).max(128)
16407
16350
  }).strict();
16408
16351
 
16352
+ // ../../shared-contracts/dist/harness-plugins.js
16353
+ var HARNESS_PLUGIN_MANIFEST_MAX_BYTES = 32 * 1024;
16354
+ var HARNESS_PLUGIN_ICON_MAX_BYTES = 128 * 1024;
16355
+ var HARNESS_PLUGIN_LIMIT = 128;
16356
+ var installedHarnessPluginIdSchema = external_exports.string().min(1).max(128).regex(/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/u).pipe(harnessIdSchema);
16357
+ var harnessPluginIdSchema = installedHarnessPluginIdSchema.refine((id) => id !== "codex", "The official Codex identity is reserved");
16358
+ var relativeResourceSchema = external_exports.string().min(1).max(512).refine((value) => !/[\\\u0000:#?]/u.test(value) && !value.startsWith("/") && !value.split("/").some((part) => part === ".." || part === ""), "Plugin resources must be relative paths inside the plugin");
16359
+ var documentationUrlSchema = external_exports.url().refine((value) => /^https:\/\/[^/?#@]+(?:[/?#]|$)/iu.test(value), "Plugin documentation links must be credential-free HTTPS URLs");
16360
+ var localizedTextSchema = external_exports.object({ en: external_exports.string().max(4096), "zh-CN": external_exports.string().max(4096).optional() }).strict();
16361
+ var harnessInstallationGuideSchema = external_exports.object({
16362
+ commands: external_exports.array(external_exports.object({ terminal: external_exports.string().max(256), command: external_exports.string().max(4096) }).strict()).max(8),
16363
+ before: localizedTextSchema.optional(),
16364
+ after: localizedTextSchema.optional(),
16365
+ downloads: external_exports.array(external_exports.object({ label: external_exports.string().max(128), url: documentationUrlSchema }).strict()).max(8).optional()
16366
+ }).strict();
16367
+ var pluginPresentationShape = {
16368
+ id: installedHarnessPluginIdSchema,
16369
+ name: external_exports.string().trim().min(1).max(128),
16370
+ version: external_exports.string().min(1).max(128),
16371
+ /** Capability-only plugin; omitted for existing session-capable plugins. */
16372
+ kind: external_exports.literal("usage").optional(),
16373
+ /** Original image styling or bounded vector paths; never arbitrary CSS/SVG markup. */
16374
+ iconStyle: external_exports.object({
16375
+ vector: external_exports.object({
16376
+ viewBox: external_exports.string().max(128).regex(/^-?\d+(?:\.\d+)?(?: +-?\d+(?:\.\d+)?){3}$/u),
16377
+ color: external_exports.string().regex(/^(?:currentColor|#[a-f0-9]{6})$/iu),
16378
+ paths: external_exports.array(external_exports.object({
16379
+ d: external_exports.string().min(1).max(32768).regex(/^[MmLlHhVvCcSsQqTtAaZz\d.,+eE\s-]+$/u),
16380
+ fillRule: external_exports.enum(["evenodd", "nonzero"]).optional(),
16381
+ fill: external_exports.string().regex(/^(?:currentColor|#[a-f0-9]{6})$/iu).optional()
16382
+ }).strict()).min(1).max(32)
16383
+ }).strict().optional(),
16384
+ background: external_exports.string().regex(/^#[a-f0-9]{6}$/iu).optional(),
16385
+ borderRadius: external_exports.number().min(0).max(50).optional(),
16386
+ paddingRatio: external_exports.number().min(0).max(0.25).optional()
16387
+ }).strict().optional(),
16388
+ installation: harnessInstallationGuideSchema.optional(),
16389
+ notice: localizedTextSchema.optional(),
16390
+ /** The factory accepts a persisted local entrypoint through its construction context. */
16391
+ launchCommand: external_exports.literal(true).optional(),
16392
+ links: external_exports.object({
16393
+ website: documentationUrlSchema.optional(),
16394
+ documentation: documentationUrlSchema.optional(),
16395
+ installation: documentationUrlSchema.optional()
16396
+ }).strict().optional()
16397
+ };
16398
+ var harnessPluginManifestSchema = external_exports.object({
16399
+ manifestVersion: external_exports.literal(1),
16400
+ ...pluginPresentationShape,
16401
+ adapterApiVersion: external_exports.number().int().positive(),
16402
+ entry: relativeResourceSchema,
16403
+ icon: relativeResourceSchema.optional()
16404
+ }).strict();
16405
+ var harnessPluginIconSchema = external_exports.string().max(Math.ceil(HARNESS_PLUGIN_ICON_MAX_BYTES / 3) * 4 + 64).regex(/^data:image\/(?:png|jpeg|webp|svg\+xml);base64,[A-Za-z0-9+/]+={0,2}$/u);
16406
+ var harnessPluginDescriptorSchema = external_exports.object({
16407
+ ...pluginPresentationShape,
16408
+ icon: harnessPluginIconSchema.optional()
16409
+ }).strict();
16410
+ var harnessPluginListParamsSchema = external_exports.object({}).strict();
16411
+ var harnessPluginListResultSchema = external_exports.object({
16412
+ plugins: external_exports.array(harnessPluginDescriptorSchema.extend({ id: harnessPluginIdSchema })).max(HARNESS_PLUGIN_LIMIT)
16413
+ }).strict();
16414
+ var harnessPluginConfigurationSchema = external_exports.object({
16415
+ version: external_exports.literal(1),
16416
+ enabled: external_exports.array(installedHarnessPluginIdSchema).max(HARNESS_PLUGIN_LIMIT)
16417
+ }).strict().refine((value) => new Set(value.enabled).size === value.enabled.length, {
16418
+ message: "Enabled plugin IDs must be unique",
16419
+ path: ["enabled"]
16420
+ });
16421
+
16409
16422
  // ../../shared-contracts/dist/harness-route.js
16410
16423
  var harnessPluginRouteSchema = external_exports.object({
16411
16424
  harnessId: harnessPluginIdSchema,
@@ -16599,6 +16612,8 @@ var harnessCommandDescriptorSchema = external_exports.object({
16599
16612
  }).strict();
16600
16613
  var harnessCommandCatalogSchema = external_exports.object({
16601
16614
  commands: external_exports.array(harnessCommandDescriptorSchema),
16615
+ /** Partial discovery failures; valid commands remain available. */
16616
+ warnings: external_exports.array(external_exports.string().min(1)).optional(),
16602
16617
  /**
16603
16618
  * `live` when the catalog includes what a native Session reports for its
16604
16619
  * workspace (custom commands, skills); `static` for Adapter built-ins only.
@@ -16634,7 +16649,7 @@ var threadCommandExecuteParamsSchema = external_exports.object({
16634
16649
  }).strict();
16635
16650
  var threadCommandExecuteResultSchema = external_exports.object({
16636
16651
  accepted: external_exports.literal(true),
16637
- turnId: hostTurnIdSchema
16652
+ turnId: hostTurnIdSchema.optional()
16638
16653
  }).strict();
16639
16654
 
16640
16655
  // ../../shared-contracts/dist/json-rpc.js