@codexhost/cli-darwin-x64 0.13.3 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/app/codexhost-distribution.json +1 -1
- package/app/console-server.mjs +109 -11
- package/app/console-web.js +649 -132
- package/app/desktop-controller.mjs +120 -12
- package/app/host-runtime.mjs +1124 -293
- package/app/plugins/antigravity/plugin.mjs +431 -66
- package/app/plugins/claude-code/plugin.mjs +761 -139
- package/app/plugins/codebuddy/plugin.mjs +322 -68
- package/app/plugins/codex-usage/plugin.mjs +249 -102
- package/app/plugins/copilot/assets/icon.png +0 -0
- package/app/plugins/copilot/manifest.json +26 -0
- package/app/plugins/copilot/plugin.mjs +34591 -0
- package/app/plugins/cursor-cli/plugin.mjs +21011 -44970
- package/app/plugins/deepseek-harness/plugin.mjs +160 -43
- package/app/plugins/enabled.json +1 -0
- package/app/plugins/grok/plugin.mjs +565 -107
- package/app/plugins/hermes/plugin.mjs +128 -12
- package/app/plugins/kimi-code/plugin.mjs +136 -22
- package/app/plugins/kiro-cli/plugin.mjs +136 -22
- package/app/plugins/omp/plugin.mjs +2236 -2036
- package/app/plugins/opencode/plugin.mjs +187 -68
- package/app/plugins/pi/plugin.mjs +2621 -2304
- package/app/plugins/qoder/plugin.mjs +153 -36
- package/app/plugins/qoder-cn/plugin.mjs +153 -36
- package/app/plugins/workbuddy/plugin.mjs +583 -92
- package/app/plugins/zcode/plugin.mjs +183 -40
- package/app/renderer-extension.js +1758 -392
- package/bin/codexhost +0 -0
- package/libexec/codexhost-shim +0 -0
- package/libexec/codexhost-updater +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ Run Pi and Claude Code as first-class external harnesses inside Codex Desktop.
|
|
|
7
7
|
## Install
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
npm install -g @codexhost/cli@0.
|
|
10
|
+
npm install -g @codexhost/cli@0.15.0
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
Do not install this package directly. npm selects it through the optional dependencies of `@codexhost/cli`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"schemaVersion":1,"version":"0.
|
|
1
|
+
{"schemaVersion":1,"version":"0.15.0","distribution":"npm","target":"macos-x64"}
|
package/app/console-server.mjs
CHANGED
|
@@ -3925,10 +3925,10 @@ var $ZodObject = /* @__PURE__ */ $constructor("$ZodObject", (inst, def) => {
|
|
|
3925
3925
|
const shape = def.shape;
|
|
3926
3926
|
const propValues = {};
|
|
3927
3927
|
for (const key in shape) {
|
|
3928
|
-
const
|
|
3929
|
-
if (
|
|
3928
|
+
const field2 = shape[key]._zod;
|
|
3929
|
+
if (field2.values) {
|
|
3930
3930
|
propValues[key] ?? (propValues[key] = /* @__PURE__ */ new Set());
|
|
3931
|
-
for (const v of
|
|
3931
|
+
for (const v of field2.values)
|
|
3932
3932
|
propValues[key].add(v);
|
|
3933
3933
|
}
|
|
3934
3934
|
}
|
|
@@ -15547,10 +15547,19 @@ var model = external_exports.string().min(1).max(512);
|
|
|
15547
15547
|
var project = external_exports.string().min(1).max(4096);
|
|
15548
15548
|
var usageStatisticsParamsSchema = external_exports.strictObject({
|
|
15549
15549
|
range: external_exports.enum(USAGE_STATISTICS_RANGES),
|
|
15550
|
+
/** Display timezone for ranges, dates and hourly buckets; omitted means the Host's local zone. */
|
|
15551
|
+
timeZone: external_exports.string().min(1).max(128).refine((value) => {
|
|
15552
|
+
try {
|
|
15553
|
+
new Intl.DateTimeFormat("en", { timeZone: value });
|
|
15554
|
+
return true;
|
|
15555
|
+
} catch {
|
|
15556
|
+
return false;
|
|
15557
|
+
}
|
|
15558
|
+
}, "Unsupported usage statistics timezone").optional(),
|
|
15550
15559
|
harness: harness.optional(),
|
|
15551
15560
|
model: model.nullable().optional(),
|
|
15552
15561
|
project: project.nullable().optional(),
|
|
15553
|
-
/** One
|
|
15562
|
+
/** One date in the query timezone inside the range. */
|
|
15554
15563
|
date: localDate.optional()
|
|
15555
15564
|
});
|
|
15556
15565
|
var usageStatisticsTotalsSchema = external_exports.strictObject({
|
|
@@ -15586,7 +15595,7 @@ var usageStatisticsSessionSchema = external_exports.strictObject({
|
|
|
15586
15595
|
});
|
|
15587
15596
|
var usageStatisticsResultSchema = external_exports.strictObject({
|
|
15588
15597
|
range: external_exports.enum(USAGE_STATISTICS_RANGES),
|
|
15589
|
-
/** First
|
|
15598
|
+
/** First date in the query timezone (Host local when omitted); null for all time. */
|
|
15590
15599
|
from: localDate.nullable(),
|
|
15591
15600
|
to: localDate,
|
|
15592
15601
|
/** The filters these figures apply, echoed so a late answer to older filters is recognised. */
|
|
@@ -15626,7 +15635,7 @@ var usageStatisticsResultSchema = external_exports.strictObject({
|
|
|
15626
15635
|
totals: usageStatisticsTotalsSchema,
|
|
15627
15636
|
/** Each date and Harness of the range: every filter except the day. */
|
|
15628
15637
|
daily: external_exports.array(external_exports.strictObject({ date: localDate, harness, ...totals })).max(2e5),
|
|
15629
|
-
/**
|
|
15638
|
+
/** Weekday (0 = Sunday) and hour in the query timezone, all filters applied. */
|
|
15630
15639
|
hourly: external_exports.array(external_exports.strictObject({
|
|
15631
15640
|
weekday: external_exports.number().int().min(0).max(6),
|
|
15632
15641
|
hour: external_exports.number().int().min(0).max(23),
|
|
@@ -15666,6 +15675,51 @@ var hostInteractionIdSchema = opaqueIdSchema.brand();
|
|
|
15666
15675
|
var threadPrewarmDiscardParamsSchema = external_exports.object({ threadId: hostThreadIdSchema });
|
|
15667
15676
|
var threadPrewarmDiscardResultSchema = external_exports.object({ discarded: external_exports.boolean() });
|
|
15668
15677
|
|
|
15678
|
+
// packages/shared-contracts/dist/thread-questions.js
|
|
15679
|
+
var field = external_exports.discriminatedUnion("type", [
|
|
15680
|
+
external_exports.object({
|
|
15681
|
+
id: external_exports.string().min(1),
|
|
15682
|
+
type: external_exports.literal("choice"),
|
|
15683
|
+
prompt: external_exports.string(),
|
|
15684
|
+
options: external_exports.array(external_exports.object({
|
|
15685
|
+
value: external_exports.string().min(1),
|
|
15686
|
+
label: external_exports.string(),
|
|
15687
|
+
description: external_exports.string().optional()
|
|
15688
|
+
})).min(1),
|
|
15689
|
+
multiple: external_exports.boolean(),
|
|
15690
|
+
allowOther: external_exports.boolean(),
|
|
15691
|
+
optional: external_exports.boolean()
|
|
15692
|
+
}),
|
|
15693
|
+
external_exports.object({
|
|
15694
|
+
id: external_exports.string().min(1),
|
|
15695
|
+
type: external_exports.literal("text"),
|
|
15696
|
+
prompt: external_exports.string(),
|
|
15697
|
+
multiline: external_exports.boolean(),
|
|
15698
|
+
secret: external_exports.literal(false),
|
|
15699
|
+
optional: external_exports.boolean(),
|
|
15700
|
+
placeholder: external_exports.string().optional(),
|
|
15701
|
+
prefill: external_exports.string().optional()
|
|
15702
|
+
})
|
|
15703
|
+
]);
|
|
15704
|
+
var threadQuestionSchema = external_exports.object({
|
|
15705
|
+
interactionId: external_exports.string().min(1),
|
|
15706
|
+
turnId: external_exports.string().min(1),
|
|
15707
|
+
title: external_exports.string().optional(),
|
|
15708
|
+
questions: external_exports.array(field).min(1)
|
|
15709
|
+
}).refine(({ questions }) => questions.some((q) => q.type === "choice" && q.multiple), {
|
|
15710
|
+
message: "Shared cards require at least one multi-select question"
|
|
15711
|
+
});
|
|
15712
|
+
var threadQuestionsListParamsSchema = external_exports.strictObject({ threadId: external_exports.string().min(1) });
|
|
15713
|
+
var threadQuestionsResultSchema = external_exports.object({ questions: external_exports.array(threadQuestionSchema) });
|
|
15714
|
+
var threadQuestionRespondParamsSchema = external_exports.strictObject({
|
|
15715
|
+
threadId: external_exports.string().min(1),
|
|
15716
|
+
turnId: external_exports.string().min(1),
|
|
15717
|
+
interactionId: external_exports.string().min(1),
|
|
15718
|
+
answers: external_exports.record(external_exports.string(), external_exports.array(external_exports.string())),
|
|
15719
|
+
cancelled: external_exports.boolean().default(false)
|
|
15720
|
+
});
|
|
15721
|
+
var threadQuestionRespondResultSchema = external_exports.object({ accepted: external_exports.literal(true) });
|
|
15722
|
+
|
|
15669
15723
|
// packages/shared-contracts/dist/console.js
|
|
15670
15724
|
var consoleAnnouncementSchema = external_exports.strictObject({
|
|
15671
15725
|
title: external_exports.string().trim().min(1).max(200),
|
|
@@ -15686,6 +15740,8 @@ var CONSOLE_HOST_METHODS = Object.freeze([
|
|
|
15686
15740
|
"codexhost/harness/display-settings/set",
|
|
15687
15741
|
"codexhost/harness/inspect",
|
|
15688
15742
|
"codexhost/harness/installation",
|
|
15743
|
+
"codexhost/harness/installation/start",
|
|
15744
|
+
"codexhost/harness/installation/status",
|
|
15689
15745
|
"codexhost/harness/launch-settings/get",
|
|
15690
15746
|
"codexhost/harness/launch-settings/set",
|
|
15691
15747
|
"codexhost/harness/web-ui/open",
|
|
@@ -15764,7 +15820,18 @@ var threadManualCompactionStartedSchema = external_exports.strictObject({
|
|
|
15764
15820
|
var nonNegativeSafeIntegerSchema = external_exports.number().int().safe().nonnegative();
|
|
15765
15821
|
var finiteNonNegativeNumberSchema = external_exports.number().finite().nonnegative();
|
|
15766
15822
|
var cacheHitRatePercentSchema = external_exports.number().finite().min(0).max(100);
|
|
15823
|
+
var indicatorTextSchema = (maximum) => harnessLocalizedTextSchema.refine((entries) => Object.values(entries).every((text) => text.length <= maximum));
|
|
15824
|
+
var composerIndicatorsSchema = external_exports.array(external_exports.object({
|
|
15825
|
+
kind: external_exports.literal("countdown"),
|
|
15826
|
+
id: external_exports.string().min(1).max(64),
|
|
15827
|
+
expiresAtUnix: nonNegativeSafeIntegerSchema,
|
|
15828
|
+
label: indicatorTextSchema(256).optional(),
|
|
15829
|
+
tooltip: indicatorTextSchema(1024).optional()
|
|
15830
|
+
}).strict()).max(2).refine((entries) => new Set(entries.map(({ id }) => id)).size === entries.length, {
|
|
15831
|
+
message: "Composer indicator IDs must be unique"
|
|
15832
|
+
});
|
|
15767
15833
|
var threadUsageSnapshotSchema = external_exports.object({
|
|
15834
|
+
composerIndicators: composerIndicatorsSchema.optional(),
|
|
15768
15835
|
inputTokens: nonNegativeSafeIntegerSchema.optional(),
|
|
15769
15836
|
cachedInputTokens: nonNegativeSafeIntegerSchema.optional(),
|
|
15770
15837
|
cacheWriteInputTokens: nonNegativeSafeIntegerSchema.optional(),
|
|
@@ -16172,7 +16239,9 @@ var harnessSessionCapabilitiesSchema = external_exports.object({
|
|
|
16172
16239
|
}).strict().optional(),
|
|
16173
16240
|
autonomousTurns: external_exports.object({
|
|
16174
16241
|
observe: external_exports.boolean()
|
|
16175
|
-
}).strict().optional()
|
|
16242
|
+
}).strict().optional(),
|
|
16243
|
+
/** True only when `turn.steer` delivers input into the active Turn through a native primitive. */
|
|
16244
|
+
steer: external_exports.boolean().optional()
|
|
16176
16245
|
}).strict();
|
|
16177
16246
|
var harnessConfigurationStateSchema = external_exports.object({
|
|
16178
16247
|
effectiveModel: harnessModelRefSchema.optional(),
|
|
@@ -16219,7 +16288,9 @@ var harnessInspectionSchema = external_exports.union([
|
|
|
16219
16288
|
var harnessInspectParamsSchema = external_exports.object({
|
|
16220
16289
|
harnessId: harnessIdSchema,
|
|
16221
16290
|
cwd: nonBlankTextSchema2.max(16384).optional(),
|
|
16222
|
-
refresh: external_exports.boolean().optional()
|
|
16291
|
+
refresh: external_exports.boolean().optional(),
|
|
16292
|
+
/** `availability` asks only whether the Harness can run; see `InspectHarnessInput.purpose`. */
|
|
16293
|
+
purpose: external_exports.literal("availability").optional()
|
|
16223
16294
|
}).strict();
|
|
16224
16295
|
var harnessWebUiOpenParamsSchema = external_exports.object({
|
|
16225
16296
|
harnessId: harnessIdSchema
|
|
@@ -16302,6 +16373,15 @@ var threadOwnershipListResultSchema = external_exports.object({
|
|
|
16302
16373
|
seen.add(thread.threadId);
|
|
16303
16374
|
}
|
|
16304
16375
|
});
|
|
16376
|
+
var threadSteeringInspectParamsSchema = external_exports.object({
|
|
16377
|
+
threadId: hostThreadIdSchema,
|
|
16378
|
+
/** The text about to be steered; a Harness command always stops and restarts. */
|
|
16379
|
+
text: external_exports.string().optional()
|
|
16380
|
+
}).strict();
|
|
16381
|
+
var threadSteerDeliverySchema = external_exports.enum(["activeTurn", "newTurn"]);
|
|
16382
|
+
var threadSteeringInspectResultSchema = external_exports.object({
|
|
16383
|
+
delivery: external_exports.enum(["official", "activeTurn", "newTurn"])
|
|
16384
|
+
}).strict();
|
|
16305
16385
|
|
|
16306
16386
|
// packages/shared-contracts/dist/harness-plugins.js
|
|
16307
16387
|
var HARNESS_PLUGIN_MANIFEST_MAX_BYTES = 32 * 1024;
|
|
@@ -16403,6 +16483,10 @@ var harnessInstallationStateSchema = external_exports.object({
|
|
|
16403
16483
|
latestVersion: external_exports.string().min(1).max(128),
|
|
16404
16484
|
updateAvailable: external_exports.boolean(),
|
|
16405
16485
|
canUpdate: external_exports.boolean(),
|
|
16486
|
+
/** Defaults to CLI; some Harnesses ship only inside a desktop application. */
|
|
16487
|
+
versionKind: external_exports.enum(["cli", "application"]).optional(),
|
|
16488
|
+
/** Official download opened by the user; does not imply an automatic installation. */
|
|
16489
|
+
manualUpdateUrl: external_exports.url().max(2048).refine((value) => /^https:\/\/[^/?#@]+(?:[/?#]|$)/iu.test(value), "Manual updates require a credential-free HTTPS URL").optional(),
|
|
16406
16490
|
// Adapter-owned diagnostic text; UI uses messageCode rather than displaying it verbatim.
|
|
16407
16491
|
message: external_exports.string().max(2048).optional(),
|
|
16408
16492
|
messageCode: external_exports.string().min(1).max(128).optional(),
|
|
@@ -16410,6 +16494,20 @@ var harnessInstallationStateSchema = external_exports.object({
|
|
|
16410
16494
|
notice: harnessLocalizedTextSchema.optional(),
|
|
16411
16495
|
latestVersionKind: external_exports.enum(["unknown", "tracking-branch"]).optional()
|
|
16412
16496
|
}).strict();
|
|
16497
|
+
var harnessInstallationTaskParamsSchema = external_exports.object({ taskId: external_exports.string().uuid() }).strict();
|
|
16498
|
+
var harnessInstallationTaskSchema = external_exports.discriminatedUnion("status", [
|
|
16499
|
+
external_exports.object({ taskId: external_exports.string().uuid(), status: external_exports.literal("running") }).strict(),
|
|
16500
|
+
external_exports.object({
|
|
16501
|
+
taskId: external_exports.string().uuid(),
|
|
16502
|
+
status: external_exports.literal("succeeded"),
|
|
16503
|
+
result: harnessInstallationStateSchema
|
|
16504
|
+
}).strict(),
|
|
16505
|
+
external_exports.object({
|
|
16506
|
+
taskId: external_exports.string().uuid(),
|
|
16507
|
+
status: external_exports.literal("failed"),
|
|
16508
|
+
error: external_exports.object({ code: external_exports.number().int(), message: external_exports.string().min(1).max(2048) }).strict()
|
|
16509
|
+
}).strict()
|
|
16510
|
+
]);
|
|
16413
16511
|
|
|
16414
16512
|
// packages/shared-contracts/dist/codex-accounts.js
|
|
16415
16513
|
var accountIdSchema = external_exports.string().min(1).max(256).regex(/^[A-Za-z0-9._~-]+$/u);
|
|
@@ -17440,9 +17538,9 @@ function parseAnnouncement(document) {
|
|
|
17440
17538
|
const fields = /* @__PURE__ */ new Map();
|
|
17441
17539
|
for (const line of (match[1] ?? "").split("\n")) {
|
|
17442
17540
|
if (!line.trim()) continue;
|
|
17443
|
-
const
|
|
17444
|
-
if (!
|
|
17445
|
-
fields.set(
|
|
17541
|
+
const field2 = /^(enabled|title|type):[ \t]*(.+?)\s*$/u.exec(line);
|
|
17542
|
+
if (!field2?.[1] || !field2[2] || fields.has(field2[1])) return null;
|
|
17543
|
+
fields.set(field2[1], field2[2]);
|
|
17446
17544
|
}
|
|
17447
17545
|
if (fields.get("enabled") !== "true") return null;
|
|
17448
17546
|
let title = fields.get("title");
|