@codexhost/cli-darwin-arm64 0.18.0-beta.1 → 0.18.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/app/codexhost-distribution.json +1 -1
- package/app/console-server.mjs +103 -93
- package/app/console-web.js +104 -94
- package/app/desktop-controller.mjs +103 -109
- package/app/host-runtime.mjs +10067 -8374
- package/app/plugins/antigravity/plugin.mjs +103 -93
- package/app/plugins/claude-code/plugin.mjs +103 -93
- package/app/plugins/codebuddy/plugin.mjs +103 -93
- package/app/plugins/codex-usage/plugin.mjs +103 -93
- package/app/plugins/copilot/plugin.mjs +103 -93
- package/app/plugins/cursor-cli/plugin.mjs +103 -93
- package/app/plugins/deepseek-harness/plugin.mjs +103 -93
- package/app/plugins/devin/plugin.mjs +103 -93
- package/app/plugins/enabled.json +0 -1
- package/app/plugins/grok/plugin.mjs +103 -93
- package/app/plugins/hermes/plugin.mjs +103 -93
- package/app/plugins/kimi-code/plugin.mjs +103 -93
- package/app/plugins/kiro-cli/plugin.mjs +103 -93
- package/app/plugins/omp/plugin.mjs +103 -93
- package/app/plugins/opencode/plugin.mjs +103 -93
- package/app/plugins/pi/plugin.mjs +103 -93
- package/app/plugins/qoder/plugin.mjs +103 -93
- package/app/plugins/qoder-cn/plugin.mjs +103 -93
- package/app/plugins/qwen-code/plugin.mjs +103 -93
- package/app/plugins/workbuddy/plugin.mjs +103 -93
- package/app/plugins/zcode/plugin.mjs +103 -93
- package/app/renderer-extension.js +122 -149
- package/app/web/assets/index-C3lniEH1.css +1 -0
- package/app/web/assets/index-aKvkfNJN.js +199 -0
- package/app/web/codexhost-settings.js +104 -94
- package/app/web/index.html +2 -2
- package/app/web/plugins/deepseek-ai__dsh-api-gateway/client.js +1 -1
- package/app/web/plugins/deepseek-ai__dsh-api-remotes/client.js +64 -64
- package/app/web/plugins/deepseek-ai__dsh-api-session-controller/client.js +69 -69
- package/app/web/plugins/deepseek-ai__dsh-client-ui-chat/client.js +2 -2
- package/app/web/plugins/deepseek-ai__dsh-client-ui-codexhost/client.js +63 -62
- package/app/web/plugins/deepseek-ai__dsh-client-ui-conversation/client.js +85 -85
- package/app/web/plugins/deepseek-ai__dsh-client-ui-directory-picker-browse/client.js +10 -10
- package/app/web/plugins/deepseek-ai__dsh-client-ui-input-trigger/client.js +1 -1
- package/app/web/plugins/deepseek-ai__dsh-client-ui-layout/client.js +3 -3
- package/app/web/plugins/deepseek-ai__dsh-client-ui-model-selection/client.js +2 -2
- package/app/web/plugins/deepseek-ai__dsh-client-ui-permission-presets/client.js +1 -1
- package/app/web/plugins/deepseek-ai__dsh-client-ui-sidebar/client.js +1 -1
- package/app/web/plugins/deepseek-ai__dsh-client-ui-sidebar-right/client.js +55 -55
- package/app/web/plugins/deepseek-ai__dsh-client-ui-tool/client.js +18 -18
- package/app/web/plugins/deepseek-ai__dsh-client-ui-workspace/client.js +8 -8
- package/app/web/sw.js +55 -24
- package/app/web-modules/server.mjs +1091 -680
- package/bin/codexhost +0 -0
- package/libexec/codexhost-shim +0 -0
- package/libexec/codexhost-updater +0 -0
- package/package.json +1 -1
- package/app/plugins/codex-cli/manifest.json +0 -16
- package/app/plugins/codex-cli/plugin.mjs +0 -20374
- package/app/web/assets/index-CIeTchMu.css +0 -1
- package/app/web/assets/index-DeAPBQbV.js +0 -199
- /package/app/{plugins/codex-cli/assets/icon.png → web/codex.png} +0 -0
|
@@ -14924,7 +14924,7 @@ var HARNESS_PERMISSION_MODE_CATALOG_MAX_LENGTH = 32;
|
|
|
14924
14924
|
var nonBlankTextSchema = external_exports.string().refine((value) => value.trim().length > 0, {
|
|
14925
14925
|
message: "Value must not be empty or whitespace"
|
|
14926
14926
|
});
|
|
14927
|
-
var harnessPermissionModeIdSchema = nonBlankTextSchema.max(HARNESS_PERMISSION_MODE_ID_MAX_LENGTH).regex(/^[A-Za-z0-9._
|
|
14927
|
+
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();
|
|
14928
14928
|
var harnessPermissionModeSchema = external_exports.object({
|
|
14929
14929
|
id: harnessPermissionModeIdSchema,
|
|
14930
14930
|
label: nonBlankTextSchema.max(HARNESS_PERMISSION_MODE_LABEL_MAX_LENGTH),
|
|
@@ -15308,7 +15308,12 @@ var threadInspectionParamsSchema = external_exports.object({
|
|
|
15308
15308
|
}).strict();
|
|
15309
15309
|
var codexThreadInspectionSchema = external_exports.object({
|
|
15310
15310
|
owner: external_exports.literal("codex"),
|
|
15311
|
-
locked: external_exports.
|
|
15311
|
+
locked: external_exports.boolean(),
|
|
15312
|
+
effectiveModel: harnessModelRefSchema.optional(),
|
|
15313
|
+
resolvedModelLabel: harnessResolvedModelLabelSchema.optional(),
|
|
15314
|
+
effectiveThinkingOptionId: harnessThinkingOptionIdSchema.optional(),
|
|
15315
|
+
effectivePermissionModeId: harnessPermissionModeIdSchema.optional(),
|
|
15316
|
+
history: harnessHistoryCapabilitiesSchema.optional(),
|
|
15312
15317
|
supportsThreadReferences: external_exports.literal(true).optional()
|
|
15313
15318
|
}).strict();
|
|
15314
15319
|
var externalThreadInspectionSchema = external_exports.object({
|
|
@@ -15530,7 +15535,8 @@ var clientThreadSnapshotSchema = external_exports.object({
|
|
|
15530
15535
|
thread: external_exports.object({
|
|
15531
15536
|
id: external_exports.string().min(1),
|
|
15532
15537
|
cwd: external_exports.string(),
|
|
15533
|
-
|
|
15538
|
+
/** External rows use codexhost; native Codex rows retain their official provider. */
|
|
15539
|
+
modelProvider: external_exports.string().min(1),
|
|
15534
15540
|
createdAt: external_exports.number(),
|
|
15535
15541
|
updatedAt: external_exports.number(),
|
|
15536
15542
|
status: external_exports.object({ type: external_exports.string() }).passthrough(),
|
|
@@ -15544,6 +15550,11 @@ var clientThreadSnapshotSchema = external_exports.object({
|
|
|
15544
15550
|
nextCursor: external_exports.string().nullable()
|
|
15545
15551
|
}),
|
|
15546
15552
|
configuration: external_exports.object({
|
|
15553
|
+
/** Native Codex model names are not external Harness transport refs. */
|
|
15554
|
+
native: external_exports.object({
|
|
15555
|
+
model: external_exports.string().min(1).max(1024).optional(),
|
|
15556
|
+
reasoningEffort: external_exports.string().min(1).max(128).optional()
|
|
15557
|
+
}).optional(),
|
|
15547
15558
|
effectiveModel: harnessModelRefSchema.optional(),
|
|
15548
15559
|
effectiveThinkingOptionId: harnessThinkingOptionIdSchema.optional(),
|
|
15549
15560
|
effectivePermissionModeId: harnessPermissionModeIdSchema.optional()
|
|
@@ -15570,6 +15581,16 @@ var clientChannelResponseSchema = external_exports.object({
|
|
|
15570
15581
|
result: record2
|
|
15571
15582
|
});
|
|
15572
15583
|
|
|
15584
|
+
// packages/shared-contracts/dist/thread-catalog.js
|
|
15585
|
+
var threadCatalogReadParamsSchema = external_exports.object({ includeArchived: external_exports.boolean().optional() }).strict();
|
|
15586
|
+
var threadCatalogReadResultSchema = external_exports.object({
|
|
15587
|
+
threads: external_exports.array(jsonObjectSchema),
|
|
15588
|
+
ownership: external_exports.array(threadOwnershipSchema),
|
|
15589
|
+
/** Known archived IDs, including visible local external records even when their rows are
|
|
15590
|
+
* excluded. Native archived IDs are complete only when includeArchived is true. */
|
|
15591
|
+
archivedThreadIds: external_exports.array(hostThreadIdSchema)
|
|
15592
|
+
}).strict();
|
|
15593
|
+
|
|
15573
15594
|
// packages/shared-contracts/dist/voice.js
|
|
15574
15595
|
var VOICE_AUDIO_MAX_BYTES = 10 * 1024 * 1024;
|
|
15575
15596
|
var voiceAudioMimeTypeSchema = external_exports.string().regex(/^audio\/[a-z0-9.+-]+(?:\s*;[^\r\n]*)?$/i);
|
|
@@ -15786,93 +15807,16 @@ var DEFAULT_IDLE_RELEASE_SETTINGS = Object.freeze({
|
|
|
15786
15807
|
timeoutMinutes: 30
|
|
15787
15808
|
});
|
|
15788
15809
|
|
|
15789
|
-
// packages/shared-contracts/dist/harness-plugins.js
|
|
15790
|
-
var HARNESS_PLUGIN_MANIFEST_MAX_BYTES = 32 * 1024;
|
|
15791
|
-
var HARNESS_PLUGIN_ICON_MAX_BYTES = 128 * 1024;
|
|
15792
|
-
var HARNESS_PLUGIN_LIMIT = 128;
|
|
15793
|
-
var HARNESS_PLUGIN_SURFACES = ["desktop", "web"];
|
|
15794
|
-
var harnessPluginSurfaceSchema = external_exports.enum(HARNESS_PLUGIN_SURFACES);
|
|
15795
|
-
var installedHarnessPluginIdSchema = external_exports.string().min(1).max(128).regex(/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/u).pipe(harnessIdSchema);
|
|
15796
|
-
var harnessPluginIdSchema = installedHarnessPluginIdSchema.refine((id) => id !== "codex", "The official Codex identity is reserved");
|
|
15797
|
-
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");
|
|
15798
|
-
var documentationUrlSchema = external_exports.url().refine((value) => /^https:\/\/[^/?#@]+(?:[/?#]|$)/iu.test(value), "Plugin documentation links must be credential-free HTTPS URLs");
|
|
15799
|
-
var localizedTextSchema = external_exports.object({ en: external_exports.string().max(4096), "zh-CN": external_exports.string().max(4096).optional() }).strict();
|
|
15800
|
-
var harnessInstallationGuideSchema = external_exports.object({
|
|
15801
|
-
commands: external_exports.array(external_exports.object({ terminal: external_exports.string().max(256), command: external_exports.string().max(4096) }).strict()).max(8),
|
|
15802
|
-
before: localizedTextSchema.optional(),
|
|
15803
|
-
after: localizedTextSchema.optional(),
|
|
15804
|
-
downloads: external_exports.array(external_exports.object({ label: external_exports.string().max(128), url: documentationUrlSchema }).strict()).max(8).optional()
|
|
15805
|
-
}).strict();
|
|
15806
|
-
var pluginPresentationShape = {
|
|
15807
|
-
id: installedHarnessPluginIdSchema,
|
|
15808
|
-
name: external_exports.string().trim().min(1).max(128),
|
|
15809
|
-
version: external_exports.string().min(1).max(128),
|
|
15810
|
-
/** Capability-only plugin; omitted for existing session-capable plugins. */
|
|
15811
|
-
kind: external_exports.literal("usage").optional(),
|
|
15812
|
-
/** Original image styling or bounded vector paths; never arbitrary CSS/SVG markup. */
|
|
15813
|
-
iconStyle: external_exports.object({
|
|
15814
|
-
vector: external_exports.object({
|
|
15815
|
-
viewBox: external_exports.string().max(128).regex(/^-?\d+(?:\.\d+)?(?: +-?\d+(?:\.\d+)?){3}$/u),
|
|
15816
|
-
color: external_exports.string().regex(/^(?:currentColor|#[a-f0-9]{6})$/iu),
|
|
15817
|
-
paths: external_exports.array(external_exports.object({
|
|
15818
|
-
d: external_exports.string().min(1).max(32768).regex(/^[MmLlHhVvCcSsQqTtAaZz\d.,+eE\s-]+$/u),
|
|
15819
|
-
fillRule: external_exports.enum(["evenodd", "nonzero"]).optional(),
|
|
15820
|
-
fill: external_exports.string().regex(/^(?:currentColor|#[a-f0-9]{6})$/iu).optional()
|
|
15821
|
-
}).strict()).min(1).max(32)
|
|
15822
|
-
}).strict().optional(),
|
|
15823
|
-
background: external_exports.string().regex(/^#[a-f0-9]{6}$/iu).optional(),
|
|
15824
|
-
borderRadius: external_exports.number().min(0).max(50).optional(),
|
|
15825
|
-
paddingRatio: external_exports.number().min(0).max(0.25).optional()
|
|
15826
|
-
}).strict().optional(),
|
|
15827
|
-
installation: harnessInstallationGuideSchema.optional(),
|
|
15828
|
-
notice: localizedTextSchema.optional(),
|
|
15829
|
-
/** The factory accepts a persisted local entrypoint through its construction context. */
|
|
15830
|
-
launchCommand: external_exports.literal(true).optional(),
|
|
15831
|
-
links: external_exports.object({
|
|
15832
|
-
website: documentationUrlSchema.optional(),
|
|
15833
|
-
documentation: documentationUrlSchema.optional(),
|
|
15834
|
-
installation: documentationUrlSchema.optional()
|
|
15835
|
-
}).strict().optional()
|
|
15836
|
-
};
|
|
15837
|
-
var harnessPluginSurfacesSchema = external_exports.array(harnessPluginSurfaceSchema).min(1).max(HARNESS_PLUGIN_SURFACES.length).refine((surfaces) => new Set(surfaces).size === surfaces.length, {
|
|
15838
|
-
message: "Plugin surfaces must be unique"
|
|
15839
|
-
});
|
|
15840
|
-
var harnessPluginManifestSchema = external_exports.object({
|
|
15841
|
-
manifestVersion: external_exports.literal(1),
|
|
15842
|
-
...pluginPresentationShape,
|
|
15843
|
-
adapterApiVersion: external_exports.number().int().positive(),
|
|
15844
|
-
entry: relativeResourceSchema,
|
|
15845
|
-
icon: relativeResourceSchema.optional(),
|
|
15846
|
-
/** Omitted means the plugin appears in every surface; never inferred from its identity. */
|
|
15847
|
-
surfaces: harnessPluginSurfacesSchema.optional()
|
|
15848
|
-
}).strict();
|
|
15849
|
-
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);
|
|
15850
|
-
var harnessPluginDescriptorSchema = external_exports.object({
|
|
15851
|
-
...pluginPresentationShape,
|
|
15852
|
-
icon: harnessPluginIconSchema.optional()
|
|
15853
|
-
}).strict();
|
|
15854
|
-
var harnessPluginListParamsSchema = external_exports.object({}).strict();
|
|
15855
|
-
var harnessPluginListResultSchema = external_exports.object({
|
|
15856
|
-
plugins: external_exports.array(harnessPluginDescriptorSchema.extend({ id: harnessPluginIdSchema })).max(HARNESS_PLUGIN_LIMIT)
|
|
15857
|
-
}).strict();
|
|
15858
|
-
var harnessPluginConfigurationSchema = external_exports.object({
|
|
15859
|
-
version: external_exports.literal(1),
|
|
15860
|
-
enabled: external_exports.array(installedHarnessPluginIdSchema).max(HARNESS_PLUGIN_LIMIT)
|
|
15861
|
-
}).strict().refine((value) => new Set(value.enabled).size === value.enabled.length, {
|
|
15862
|
-
message: "Enabled plugin IDs must be unique",
|
|
15863
|
-
path: ["enabled"]
|
|
15864
|
-
});
|
|
15865
|
-
|
|
15866
15810
|
// packages/shared-contracts/dist/harness-preferences.js
|
|
15867
15811
|
var harnessPreferenceScopeSchema = external_exports.string().regex(/^external$/u);
|
|
15868
|
-
var preferenceHarnessKey =
|
|
15812
|
+
var preferenceHarnessKey = harnessIdSchema.transform((id) => String(id));
|
|
15869
15813
|
var harnessDefaultConfigurationSchema = external_exports.strictObject({
|
|
15870
15814
|
model: harnessModelRefSchema.optional(),
|
|
15871
15815
|
thinkingOptionId: harnessThinkingOptionIdSchema.optional(),
|
|
15872
15816
|
permissionModeId: harnessPermissionModeIdSchema.optional()
|
|
15873
15817
|
}).refine((value) => Boolean(value.model || value.thinkingOptionId || value.permissionModeId), "A default configuration must contain a preference");
|
|
15874
15818
|
var newThreadDefaultsSchema = external_exports.strictObject({
|
|
15875
|
-
lastHarness:
|
|
15819
|
+
lastHarness: harnessIdSchema.optional(),
|
|
15876
15820
|
byHarness: external_exports.record(preferenceHarnessKey, harnessDefaultConfigurationSchema)
|
|
15877
15821
|
});
|
|
15878
15822
|
var modelId = external_exports.string().min(1).max(1024);
|
|
@@ -15893,19 +15837,19 @@ var harnessPreferenceOperationSchema = external_exports.discriminatedUnion("kind
|
|
|
15893
15837
|
external_exports.strictObject({ kind: external_exports.literal("idleRelease"), value: idleReleaseSettingsSchema }),
|
|
15894
15838
|
external_exports.strictObject({
|
|
15895
15839
|
kind: external_exports.literal("favorite"),
|
|
15896
|
-
harnessId:
|
|
15840
|
+
harnessId: harnessIdSchema,
|
|
15897
15841
|
modelId,
|
|
15898
15842
|
enabled: external_exports.boolean()
|
|
15899
15843
|
}),
|
|
15900
15844
|
external_exports.strictObject({
|
|
15901
15845
|
kind: external_exports.literal("favorites"),
|
|
15902
|
-
harnessId:
|
|
15846
|
+
harnessId: harnessIdSchema,
|
|
15903
15847
|
modelIds: external_exports.array(modelId).max(2048)
|
|
15904
15848
|
}),
|
|
15905
15849
|
external_exports.strictObject({
|
|
15906
15850
|
kind: external_exports.literal("newThread"),
|
|
15907
|
-
lastHarness:
|
|
15908
|
-
harnessId:
|
|
15851
|
+
lastHarness: harnessIdSchema.optional(),
|
|
15852
|
+
harnessId: harnessIdSchema.optional(),
|
|
15909
15853
|
configuration: harnessDefaultConfigurationSchema.optional()
|
|
15910
15854
|
})
|
|
15911
15855
|
]);
|
|
@@ -15921,12 +15865,6 @@ var harnessPreferencePatchSchema = external_exports.strictObject({
|
|
|
15921
15865
|
code: "custom",
|
|
15922
15866
|
message: "A default Harness or complete configuration is required"
|
|
15923
15867
|
});
|
|
15924
|
-
const harnessId = "harnessId" in operation ? operation.harnessId : void 0;
|
|
15925
|
-
if (harnessId === "codex")
|
|
15926
|
-
ctx.addIssue({
|
|
15927
|
-
code: "custom",
|
|
15928
|
-
message: "Official Codex is not an external Harness"
|
|
15929
|
-
});
|
|
15930
15868
|
}
|
|
15931
15869
|
});
|
|
15932
15870
|
var harnessPreferencesDocumentSchema = external_exports.strictObject({
|
|
@@ -16303,6 +16241,76 @@ var harnessAccountListResultSchema = external_exports.object({
|
|
|
16303
16241
|
accounts: external_exports.array(requireReportedQuota(harnessAccountSnapshotObject.extend(harnessAccountIdentityShape))).max(128)
|
|
16304
16242
|
}).strict();
|
|
16305
16243
|
|
|
16244
|
+
// packages/shared-contracts/dist/harness-plugins.js
|
|
16245
|
+
var HARNESS_PLUGIN_MANIFEST_MAX_BYTES = 32 * 1024;
|
|
16246
|
+
var HARNESS_PLUGIN_ICON_MAX_BYTES = 128 * 1024;
|
|
16247
|
+
var HARNESS_PLUGIN_LIMIT = 128;
|
|
16248
|
+
var installedHarnessPluginIdSchema = external_exports.string().min(1).max(128).regex(/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/u).pipe(harnessIdSchema);
|
|
16249
|
+
var harnessPluginIdSchema = installedHarnessPluginIdSchema.refine((id) => id !== "codex", "The official Codex identity is reserved");
|
|
16250
|
+
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");
|
|
16251
|
+
var documentationUrlSchema = external_exports.url().refine((value) => /^https:\/\/[^/?#@]+(?:[/?#]|$)/iu.test(value), "Plugin documentation links must be credential-free HTTPS URLs");
|
|
16252
|
+
var localizedTextSchema = external_exports.object({ en: external_exports.string().max(4096), "zh-CN": external_exports.string().max(4096).optional() }).strict();
|
|
16253
|
+
var harnessInstallationGuideSchema = external_exports.object({
|
|
16254
|
+
commands: external_exports.array(external_exports.object({ terminal: external_exports.string().max(256), command: external_exports.string().max(4096) }).strict()).max(8),
|
|
16255
|
+
before: localizedTextSchema.optional(),
|
|
16256
|
+
after: localizedTextSchema.optional(),
|
|
16257
|
+
downloads: external_exports.array(external_exports.object({ label: external_exports.string().max(128), url: documentationUrlSchema }).strict()).max(8).optional()
|
|
16258
|
+
}).strict();
|
|
16259
|
+
var pluginPresentationShape = {
|
|
16260
|
+
id: installedHarnessPluginIdSchema,
|
|
16261
|
+
name: external_exports.string().trim().min(1).max(128),
|
|
16262
|
+
version: external_exports.string().min(1).max(128),
|
|
16263
|
+
/** Capability-only plugin; omitted for existing session-capable plugins. */
|
|
16264
|
+
kind: external_exports.literal("usage").optional(),
|
|
16265
|
+
/** Original image styling or bounded vector paths; never arbitrary CSS/SVG markup. */
|
|
16266
|
+
iconStyle: external_exports.object({
|
|
16267
|
+
vector: external_exports.object({
|
|
16268
|
+
viewBox: external_exports.string().max(128).regex(/^-?\d+(?:\.\d+)?(?: +-?\d+(?:\.\d+)?){3}$/u),
|
|
16269
|
+
color: external_exports.string().regex(/^(?:currentColor|#[a-f0-9]{6})$/iu),
|
|
16270
|
+
paths: external_exports.array(external_exports.object({
|
|
16271
|
+
d: external_exports.string().min(1).max(32768).regex(/^[MmLlHhVvCcSsQqTtAaZz\d.,+eE\s-]+$/u),
|
|
16272
|
+
fillRule: external_exports.enum(["evenodd", "nonzero"]).optional(),
|
|
16273
|
+
fill: external_exports.string().regex(/^(?:currentColor|#[a-f0-9]{6})$/iu).optional()
|
|
16274
|
+
}).strict()).min(1).max(32)
|
|
16275
|
+
}).strict().optional(),
|
|
16276
|
+
background: external_exports.string().regex(/^#[a-f0-9]{6}$/iu).optional(),
|
|
16277
|
+
borderRadius: external_exports.number().min(0).max(50).optional(),
|
|
16278
|
+
paddingRatio: external_exports.number().min(0).max(0.25).optional()
|
|
16279
|
+
}).strict().optional(),
|
|
16280
|
+
installation: harnessInstallationGuideSchema.optional(),
|
|
16281
|
+
notice: localizedTextSchema.optional(),
|
|
16282
|
+
/** The factory accepts a persisted local entrypoint through its construction context. */
|
|
16283
|
+
launchCommand: external_exports.literal(true).optional(),
|
|
16284
|
+
links: external_exports.object({
|
|
16285
|
+
website: documentationUrlSchema.optional(),
|
|
16286
|
+
documentation: documentationUrlSchema.optional(),
|
|
16287
|
+
installation: documentationUrlSchema.optional()
|
|
16288
|
+
}).strict().optional()
|
|
16289
|
+
};
|
|
16290
|
+
var harnessPluginManifestSchema = external_exports.object({
|
|
16291
|
+
manifestVersion: external_exports.literal(1),
|
|
16292
|
+
...pluginPresentationShape,
|
|
16293
|
+
adapterApiVersion: external_exports.number().int().positive(),
|
|
16294
|
+
entry: relativeResourceSchema,
|
|
16295
|
+
icon: relativeResourceSchema.optional()
|
|
16296
|
+
}).strict();
|
|
16297
|
+
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);
|
|
16298
|
+
var harnessPluginDescriptorSchema = external_exports.object({
|
|
16299
|
+
...pluginPresentationShape,
|
|
16300
|
+
icon: harnessPluginIconSchema.optional()
|
|
16301
|
+
}).strict();
|
|
16302
|
+
var harnessPluginListParamsSchema = external_exports.object({}).strict();
|
|
16303
|
+
var harnessPluginListResultSchema = external_exports.object({
|
|
16304
|
+
plugins: external_exports.array(harnessPluginDescriptorSchema.extend({ id: harnessPluginIdSchema })).max(HARNESS_PLUGIN_LIMIT)
|
|
16305
|
+
}).strict();
|
|
16306
|
+
var harnessPluginConfigurationSchema = external_exports.object({
|
|
16307
|
+
version: external_exports.literal(1),
|
|
16308
|
+
enabled: external_exports.array(installedHarnessPluginIdSchema).max(HARNESS_PLUGIN_LIMIT)
|
|
16309
|
+
}).strict().refine((value) => new Set(value.enabled).size === value.enabled.length, {
|
|
16310
|
+
message: "Enabled plugin IDs must be unique",
|
|
16311
|
+
path: ["enabled"]
|
|
16312
|
+
});
|
|
16313
|
+
|
|
16306
16314
|
// packages/shared-contracts/dist/harness-route.js
|
|
16307
16315
|
var harnessPluginRouteSchema = external_exports.object({
|
|
16308
16316
|
harnessId: harnessPluginIdSchema,
|
|
@@ -16496,6 +16504,8 @@ var harnessCommandDescriptorSchema = external_exports.object({
|
|
|
16496
16504
|
}).strict();
|
|
16497
16505
|
var harnessCommandCatalogSchema = external_exports.object({
|
|
16498
16506
|
commands: external_exports.array(harnessCommandDescriptorSchema),
|
|
16507
|
+
/** Partial discovery failures; valid commands remain available. */
|
|
16508
|
+
warnings: external_exports.array(external_exports.string().min(1)).optional(),
|
|
16499
16509
|
/**
|
|
16500
16510
|
* `live` when the catalog includes what a native Session reports for its
|
|
16501
16511
|
* workspace (custom commands, skills); `static` for Adapter built-ins only.
|
|
@@ -16531,7 +16541,7 @@ var threadCommandExecuteParamsSchema = external_exports.object({
|
|
|
16531
16541
|
}).strict();
|
|
16532
16542
|
var threadCommandExecuteResultSchema = external_exports.object({
|
|
16533
16543
|
accepted: external_exports.literal(true),
|
|
16534
|
-
turnId: hostTurnIdSchema
|
|
16544
|
+
turnId: hostTurnIdSchema.optional()
|
|
16535
16545
|
}).strict();
|
|
16536
16546
|
|
|
16537
16547
|
// packages/shared-contracts/dist/json-rpc.js
|
|
@@ -16902,13 +16912,6 @@ async function startControllerAttachmentServer(options) {
|
|
|
16902
16912
|
if (newline < 0) return;
|
|
16903
16913
|
handled = true;
|
|
16904
16914
|
const line = request.slice(0, newline).replace(/\r$/, "");
|
|
16905
|
-
if (options.invalidateThreadCatalog && line === `CATALOG ${options.nonce}` && request.slice(newline + 1) === "") {
|
|
16906
|
-
void Promise.resolve().then(() => options.invalidateThreadCatalog?.()).then(
|
|
16907
|
-
() => respond(socket, "ready"),
|
|
16908
|
-
() => respond(socket, "failed")
|
|
16909
|
-
);
|
|
16910
|
-
return;
|
|
16911
|
-
}
|
|
16912
16915
|
const remotePrefix = `REMOTE ${options.nonce} `;
|
|
16913
16916
|
if (options.remoteConnections && line.startsWith(remotePrefix)) {
|
|
16914
16917
|
let input;
|
|
@@ -20163,15 +20166,6 @@ ${rendererSource}`,
|
|
|
20163
20166
|
attachmentServer = await dependencies.startAttachmentServer({
|
|
20164
20167
|
port: options.attachmentPort,
|
|
20165
20168
|
nonce: options.attachmentNonce,
|
|
20166
|
-
invalidateThreadCatalog: async () => {
|
|
20167
|
-
if (signal.aborted) return;
|
|
20168
|
-
try {
|
|
20169
|
-
await session?.executeRenderer(
|
|
20170
|
-
"window.__codexhostRendererBindingProbeV1?.invalidateThreadCatalog?.()"
|
|
20171
|
-
);
|
|
20172
|
-
} catch {
|
|
20173
|
-
}
|
|
20174
|
-
},
|
|
20175
20169
|
remoteConnections: async (request) => {
|
|
20176
20170
|
const current = await useSession(() => recoverSession());
|
|
20177
20171
|
return remoteConnectionsReplySchema.parse(
|