@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.
- package/README.md +1 -1
- package/app/codexhost-distribution.json +1 -1
- package/app/console-server.mjs +109 -94
- package/app/console-web.js +110 -95
- package/app/desktop-controller.mjs +109 -110
- package/app/host-runtime.mjs +14225 -10527
- package/app/plugins/antigravity/plugin.mjs +109 -94
- package/app/plugins/claude-code/plugin.mjs +229 -148
- package/app/plugins/codebuddy/plugin.mjs +109 -94
- package/app/plugins/codex-usage/plugin.mjs +109 -94
- package/app/plugins/copilot/plugin.mjs +109 -94
- package/app/plugins/cursor-cli/plugin.mjs +109 -94
- package/app/plugins/deepseek-harness/plugin.mjs +109 -94
- package/app/plugins/devin/plugin.mjs +109 -94
- package/app/plugins/enabled.json +0 -1
- package/app/plugins/grok/plugin.mjs +109 -94
- package/app/plugins/hermes/plugin.mjs +109 -94
- package/app/plugins/kimi-code/plugin.mjs +109 -94
- package/app/plugins/kiro-cli/plugin.mjs +109 -94
- package/app/plugins/omp/plugin.mjs +109 -94
- package/app/plugins/opencode/plugin.mjs +109 -94
- package/app/plugins/pi/plugin.mjs +109 -94
- package/app/plugins/qoder/plugin.mjs +109 -94
- package/app/plugins/qoder-cn/plugin.mjs +109 -94
- package/app/plugins/qwen-code/plugin.mjs +109 -94
- package/app/plugins/workbuddy/plugin.mjs +109 -94
- package/app/plugins/zcode/plugin.mjs +109 -94
- package/app/renderer-extension.js +128 -150
- package/app/web/assets/index-C3lniEH1.css +1 -0
- package/app/web/assets/index-D1dOzBMI.js +199 -0
- package/app/web/codexhost-settings.js +110 -95
- 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-connection/client.js +1 -1
- 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 +57 -56
- package/app/web/plugins/deepseek-ai__dsh-client-ui-conversation/client.js +87 -87
- 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-settings/client.js +1 -1
- package/app/web/plugins/deepseek-ai__dsh-client-ui-settings-general/client.js +2 -2
- package/app/web/plugins/deepseek-ai__dsh-client-ui-sidebar/client.js +2 -2
- 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 -12
- package/app/web/plugins.json +4 -0
- package/app/web/sw.js +55 -24
- package/app/web-modules/server.mjs +1415 -784
- 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,21 @@ 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({
|
|
15586
|
+
includeArchived: external_exports.boolean().optional(),
|
|
15587
|
+
/** Absent means first page; null means this branch is exhausted. Native cursors only. */
|
|
15588
|
+
officialCursor: external_exports.object({ live: external_exports.string().nullable(), archived: external_exports.string().nullable().optional() }).strict().optional()
|
|
15589
|
+
}).strict();
|
|
15590
|
+
var threadCatalogReadResultSchema = external_exports.object({
|
|
15591
|
+
threads: external_exports.array(jsonObjectSchema),
|
|
15592
|
+
ownership: external_exports.array(threadOwnershipSchema),
|
|
15593
|
+
/** Known archived IDs, including visible local external records even when their rows are
|
|
15594
|
+
* excluded. Native archived IDs describe only the returned page, never a complete set. */
|
|
15595
|
+
archivedThreadIds: external_exports.array(hostThreadIdSchema),
|
|
15596
|
+
officialCursor: external_exports.object({ live: external_exports.string().nullable(), archived: external_exports.string().nullable().optional() }).strict().optional()
|
|
15597
|
+
}).strict();
|
|
15598
|
+
|
|
15573
15599
|
// packages/shared-contracts/dist/voice.js
|
|
15574
15600
|
var VOICE_AUDIO_MAX_BYTES = 10 * 1024 * 1024;
|
|
15575
15601
|
var voiceAudioMimeTypeSchema = external_exports.string().regex(/^audio\/[a-z0-9.+-]+(?:\s*;[^\r\n]*)?$/i);
|
|
@@ -15783,96 +15809,19 @@ var idleReleaseSettingsSchema = external_exports.strictObject({
|
|
|
15783
15809
|
});
|
|
15784
15810
|
var DEFAULT_IDLE_RELEASE_SETTINGS = Object.freeze({
|
|
15785
15811
|
enabled: false,
|
|
15786
|
-
timeoutMinutes:
|
|
15787
|
-
});
|
|
15788
|
-
|
|
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"]
|
|
15812
|
+
timeoutMinutes: 10
|
|
15864
15813
|
});
|
|
15865
15814
|
|
|
15866
15815
|
// packages/shared-contracts/dist/harness-preferences.js
|
|
15867
15816
|
var harnessPreferenceScopeSchema = external_exports.string().regex(/^external$/u);
|
|
15868
|
-
var preferenceHarnessKey =
|
|
15817
|
+
var preferenceHarnessKey = harnessIdSchema.transform((id) => String(id));
|
|
15869
15818
|
var harnessDefaultConfigurationSchema = external_exports.strictObject({
|
|
15870
15819
|
model: harnessModelRefSchema.optional(),
|
|
15871
15820
|
thinkingOptionId: harnessThinkingOptionIdSchema.optional(),
|
|
15872
15821
|
permissionModeId: harnessPermissionModeIdSchema.optional()
|
|
15873
15822
|
}).refine((value) => Boolean(value.model || value.thinkingOptionId || value.permissionModeId), "A default configuration must contain a preference");
|
|
15874
15823
|
var newThreadDefaultsSchema = external_exports.strictObject({
|
|
15875
|
-
lastHarness:
|
|
15824
|
+
lastHarness: harnessIdSchema.optional(),
|
|
15876
15825
|
byHarness: external_exports.record(preferenceHarnessKey, harnessDefaultConfigurationSchema)
|
|
15877
15826
|
});
|
|
15878
15827
|
var modelId = external_exports.string().min(1).max(1024);
|
|
@@ -15893,19 +15842,19 @@ var harnessPreferenceOperationSchema = external_exports.discriminatedUnion("kind
|
|
|
15893
15842
|
external_exports.strictObject({ kind: external_exports.literal("idleRelease"), value: idleReleaseSettingsSchema }),
|
|
15894
15843
|
external_exports.strictObject({
|
|
15895
15844
|
kind: external_exports.literal("favorite"),
|
|
15896
|
-
harnessId:
|
|
15845
|
+
harnessId: harnessIdSchema,
|
|
15897
15846
|
modelId,
|
|
15898
15847
|
enabled: external_exports.boolean()
|
|
15899
15848
|
}),
|
|
15900
15849
|
external_exports.strictObject({
|
|
15901
15850
|
kind: external_exports.literal("favorites"),
|
|
15902
|
-
harnessId:
|
|
15851
|
+
harnessId: harnessIdSchema,
|
|
15903
15852
|
modelIds: external_exports.array(modelId).max(2048)
|
|
15904
15853
|
}),
|
|
15905
15854
|
external_exports.strictObject({
|
|
15906
15855
|
kind: external_exports.literal("newThread"),
|
|
15907
|
-
lastHarness:
|
|
15908
|
-
harnessId:
|
|
15856
|
+
lastHarness: harnessIdSchema.optional(),
|
|
15857
|
+
harnessId: harnessIdSchema.optional(),
|
|
15909
15858
|
configuration: harnessDefaultConfigurationSchema.optional()
|
|
15910
15859
|
})
|
|
15911
15860
|
]);
|
|
@@ -15921,12 +15870,6 @@ var harnessPreferencePatchSchema = external_exports.strictObject({
|
|
|
15921
15870
|
code: "custom",
|
|
15922
15871
|
message: "A default Harness or complete configuration is required"
|
|
15923
15872
|
});
|
|
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
15873
|
}
|
|
15931
15874
|
});
|
|
15932
15875
|
var harnessPreferencesDocumentSchema = external_exports.strictObject({
|
|
@@ -16303,6 +16246,76 @@ var harnessAccountListResultSchema = external_exports.object({
|
|
|
16303
16246
|
accounts: external_exports.array(requireReportedQuota(harnessAccountSnapshotObject.extend(harnessAccountIdentityShape))).max(128)
|
|
16304
16247
|
}).strict();
|
|
16305
16248
|
|
|
16249
|
+
// packages/shared-contracts/dist/harness-plugins.js
|
|
16250
|
+
var HARNESS_PLUGIN_MANIFEST_MAX_BYTES = 32 * 1024;
|
|
16251
|
+
var HARNESS_PLUGIN_ICON_MAX_BYTES = 128 * 1024;
|
|
16252
|
+
var HARNESS_PLUGIN_LIMIT = 128;
|
|
16253
|
+
var installedHarnessPluginIdSchema = external_exports.string().min(1).max(128).regex(/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/u).pipe(harnessIdSchema);
|
|
16254
|
+
var harnessPluginIdSchema = installedHarnessPluginIdSchema.refine((id) => id !== "codex", "The official Codex identity is reserved");
|
|
16255
|
+
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");
|
|
16256
|
+
var documentationUrlSchema = external_exports.url().refine((value) => /^https:\/\/[^/?#@]+(?:[/?#]|$)/iu.test(value), "Plugin documentation links must be credential-free HTTPS URLs");
|
|
16257
|
+
var localizedTextSchema = external_exports.object({ en: external_exports.string().max(4096), "zh-CN": external_exports.string().max(4096).optional() }).strict();
|
|
16258
|
+
var harnessInstallationGuideSchema = external_exports.object({
|
|
16259
|
+
commands: external_exports.array(external_exports.object({ terminal: external_exports.string().max(256), command: external_exports.string().max(4096) }).strict()).max(8),
|
|
16260
|
+
before: localizedTextSchema.optional(),
|
|
16261
|
+
after: localizedTextSchema.optional(),
|
|
16262
|
+
downloads: external_exports.array(external_exports.object({ label: external_exports.string().max(128), url: documentationUrlSchema }).strict()).max(8).optional()
|
|
16263
|
+
}).strict();
|
|
16264
|
+
var pluginPresentationShape = {
|
|
16265
|
+
id: installedHarnessPluginIdSchema,
|
|
16266
|
+
name: external_exports.string().trim().min(1).max(128),
|
|
16267
|
+
version: external_exports.string().min(1).max(128),
|
|
16268
|
+
/** Capability-only plugin; omitted for existing session-capable plugins. */
|
|
16269
|
+
kind: external_exports.literal("usage").optional(),
|
|
16270
|
+
/** Original image styling or bounded vector paths; never arbitrary CSS/SVG markup. */
|
|
16271
|
+
iconStyle: external_exports.object({
|
|
16272
|
+
vector: external_exports.object({
|
|
16273
|
+
viewBox: external_exports.string().max(128).regex(/^-?\d+(?:\.\d+)?(?: +-?\d+(?:\.\d+)?){3}$/u),
|
|
16274
|
+
color: external_exports.string().regex(/^(?:currentColor|#[a-f0-9]{6})$/iu),
|
|
16275
|
+
paths: external_exports.array(external_exports.object({
|
|
16276
|
+
d: external_exports.string().min(1).max(32768).regex(/^[MmLlHhVvCcSsQqTtAaZz\d.,+eE\s-]+$/u),
|
|
16277
|
+
fillRule: external_exports.enum(["evenodd", "nonzero"]).optional(),
|
|
16278
|
+
fill: external_exports.string().regex(/^(?:currentColor|#[a-f0-9]{6})$/iu).optional()
|
|
16279
|
+
}).strict()).min(1).max(32)
|
|
16280
|
+
}).strict().optional(),
|
|
16281
|
+
background: external_exports.string().regex(/^#[a-f0-9]{6}$/iu).optional(),
|
|
16282
|
+
borderRadius: external_exports.number().min(0).max(50).optional(),
|
|
16283
|
+
paddingRatio: external_exports.number().min(0).max(0.25).optional()
|
|
16284
|
+
}).strict().optional(),
|
|
16285
|
+
installation: harnessInstallationGuideSchema.optional(),
|
|
16286
|
+
notice: localizedTextSchema.optional(),
|
|
16287
|
+
/** The factory accepts a persisted local entrypoint through its construction context. */
|
|
16288
|
+
launchCommand: external_exports.literal(true).optional(),
|
|
16289
|
+
links: external_exports.object({
|
|
16290
|
+
website: documentationUrlSchema.optional(),
|
|
16291
|
+
documentation: documentationUrlSchema.optional(),
|
|
16292
|
+
installation: documentationUrlSchema.optional()
|
|
16293
|
+
}).strict().optional()
|
|
16294
|
+
};
|
|
16295
|
+
var harnessPluginManifestSchema = external_exports.object({
|
|
16296
|
+
manifestVersion: external_exports.literal(1),
|
|
16297
|
+
...pluginPresentationShape,
|
|
16298
|
+
adapterApiVersion: external_exports.number().int().positive(),
|
|
16299
|
+
entry: relativeResourceSchema,
|
|
16300
|
+
icon: relativeResourceSchema.optional()
|
|
16301
|
+
}).strict();
|
|
16302
|
+
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);
|
|
16303
|
+
var harnessPluginDescriptorSchema = external_exports.object({
|
|
16304
|
+
...pluginPresentationShape,
|
|
16305
|
+
icon: harnessPluginIconSchema.optional()
|
|
16306
|
+
}).strict();
|
|
16307
|
+
var harnessPluginListParamsSchema = external_exports.object({}).strict();
|
|
16308
|
+
var harnessPluginListResultSchema = external_exports.object({
|
|
16309
|
+
plugins: external_exports.array(harnessPluginDescriptorSchema.extend({ id: harnessPluginIdSchema })).max(HARNESS_PLUGIN_LIMIT)
|
|
16310
|
+
}).strict();
|
|
16311
|
+
var harnessPluginConfigurationSchema = external_exports.object({
|
|
16312
|
+
version: external_exports.literal(1),
|
|
16313
|
+
enabled: external_exports.array(installedHarnessPluginIdSchema).max(HARNESS_PLUGIN_LIMIT)
|
|
16314
|
+
}).strict().refine((value) => new Set(value.enabled).size === value.enabled.length, {
|
|
16315
|
+
message: "Enabled plugin IDs must be unique",
|
|
16316
|
+
path: ["enabled"]
|
|
16317
|
+
});
|
|
16318
|
+
|
|
16306
16319
|
// packages/shared-contracts/dist/harness-route.js
|
|
16307
16320
|
var harnessPluginRouteSchema = external_exports.object({
|
|
16308
16321
|
harnessId: harnessPluginIdSchema,
|
|
@@ -16496,6 +16509,8 @@ var harnessCommandDescriptorSchema = external_exports.object({
|
|
|
16496
16509
|
}).strict();
|
|
16497
16510
|
var harnessCommandCatalogSchema = external_exports.object({
|
|
16498
16511
|
commands: external_exports.array(harnessCommandDescriptorSchema),
|
|
16512
|
+
/** Partial discovery failures; valid commands remain available. */
|
|
16513
|
+
warnings: external_exports.array(external_exports.string().min(1)).optional(),
|
|
16499
16514
|
/**
|
|
16500
16515
|
* `live` when the catalog includes what a native Session reports for its
|
|
16501
16516
|
* workspace (custom commands, skills); `static` for Adapter built-ins only.
|
|
@@ -16531,7 +16546,7 @@ var threadCommandExecuteParamsSchema = external_exports.object({
|
|
|
16531
16546
|
}).strict();
|
|
16532
16547
|
var threadCommandExecuteResultSchema = external_exports.object({
|
|
16533
16548
|
accepted: external_exports.literal(true),
|
|
16534
|
-
turnId: hostTurnIdSchema
|
|
16549
|
+
turnId: hostTurnIdSchema.optional()
|
|
16535
16550
|
}).strict();
|
|
16536
16551
|
|
|
16537
16552
|
// packages/shared-contracts/dist/json-rpc.js
|
|
@@ -16902,13 +16917,6 @@ async function startControllerAttachmentServer(options) {
|
|
|
16902
16917
|
if (newline < 0) return;
|
|
16903
16918
|
handled = true;
|
|
16904
16919
|
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
16920
|
const remotePrefix = `REMOTE ${options.nonce} `;
|
|
16913
16921
|
if (options.remoteConnections && line.startsWith(remotePrefix)) {
|
|
16914
16922
|
let input;
|
|
@@ -20163,15 +20171,6 @@ ${rendererSource}`,
|
|
|
20163
20171
|
attachmentServer = await dependencies.startAttachmentServer({
|
|
20164
20172
|
port: options.attachmentPort,
|
|
20165
20173
|
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
20174
|
remoteConnections: async (request) => {
|
|
20176
20175
|
const current = await useSession(() => recoverSession());
|
|
20177
20176
|
return remoteConnectionsReplySchema.parse(
|