@codexhost/cli-darwin-x64 0.13.2 → 0.14.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 +94 -8
- package/app/console-web.js +537 -146
- package/app/desktop-controller.mjs +108 -12
- package/app/host-runtime.mjs +847 -235
- package/app/plugins/antigravity/plugin.mjs +143 -20
- package/app/plugins/claude-code/plugin.mjs +601 -71
- package/app/plugins/codebuddy/plugin.mjs +227 -30
- package/app/plugins/codex-usage/plugin.mjs +212 -77
- package/app/plugins/copilot/assets/icon.png +0 -0
- package/app/plugins/copilot/manifest.json +26 -0
- package/app/plugins/copilot/plugin.mjs +34546 -0
- package/app/plugins/cursor-cli/plugin.mjs +20805 -44862
- package/app/plugins/deepseek-harness/manifest.json +2 -2
- package/app/plugins/deepseek-harness/plugin.mjs +202 -21
- package/app/plugins/enabled.json +1 -0
- package/app/plugins/grok/plugin.mjs +278 -29
- package/app/plugins/hermes/plugin.mjs +143 -12
- package/app/plugins/kimi-code/plugin.mjs +140 -16
- package/app/plugins/kiro-cli/plugin.mjs +121 -10
- package/app/plugins/omp/plugin.mjs +2200 -2002
- package/app/plugins/opencode/plugin.mjs +137 -16
- package/app/plugins/pi/plugin.mjs +2563 -2282
- package/app/plugins/qoder/plugin.mjs +133 -14
- package/app/plugins/qoder-cn/plugin.mjs +133 -14
- package/app/plugins/workbuddy/plugin.mjs +603 -56
- package/app/plugins/zcode/plugin.mjs +133 -14
- package/app/renderer-extension.js +1171 -529
- 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.14.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.14.0","distribution":"npm","target":"macos-x64"}
|
package/app/console-server.mjs
CHANGED
|
@@ -15489,6 +15489,15 @@ var harnessDisplaySetSchema = external_exports.strictObject({
|
|
|
15489
15489
|
initializeOnly: external_exports.boolean().optional()
|
|
15490
15490
|
});
|
|
15491
15491
|
|
|
15492
|
+
// packages/shared-contracts/dist/harness-presentation.js
|
|
15493
|
+
var localeSchema = external_exports.string().max(64).regex(/^[a-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$/u);
|
|
15494
|
+
var displayText = (maximum) => external_exports.string().min(1).max(maximum).refine((text) => text.trim().length > 0);
|
|
15495
|
+
var harnessLocalizationsSchema = external_exports.record(localeSchema, external_exports.object({
|
|
15496
|
+
label: displayText(256).optional(),
|
|
15497
|
+
description: displayText(1024).optional()
|
|
15498
|
+
}).strict()).refine((entries) => Object.keys(entries).length <= 16, "Too many locales");
|
|
15499
|
+
var harnessLocalizedTextSchema = external_exports.record(localeSchema, displayText(4096)).refine((entries) => typeof entries.en === "string", "English fallback is required").refine((entries) => Object.keys(entries).length <= 16, "Too many locales");
|
|
15500
|
+
|
|
15492
15501
|
// packages/shared-contracts/dist/model-price-overrides.js
|
|
15493
15502
|
var usdPerMillionTokens = external_exports.number().finite().nonnegative();
|
|
15494
15503
|
var modelPriceOverrideSchema = external_exports.strictObject({
|
|
@@ -15538,10 +15547,19 @@ var model = external_exports.string().min(1).max(512);
|
|
|
15538
15547
|
var project = external_exports.string().min(1).max(4096);
|
|
15539
15548
|
var usageStatisticsParamsSchema = external_exports.strictObject({
|
|
15540
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(),
|
|
15541
15559
|
harness: harness.optional(),
|
|
15542
15560
|
model: model.nullable().optional(),
|
|
15543
15561
|
project: project.nullable().optional(),
|
|
15544
|
-
/** One
|
|
15562
|
+
/** One date in the query timezone inside the range. */
|
|
15545
15563
|
date: localDate.optional()
|
|
15546
15564
|
});
|
|
15547
15565
|
var usageStatisticsTotalsSchema = external_exports.strictObject({
|
|
@@ -15577,7 +15595,7 @@ var usageStatisticsSessionSchema = external_exports.strictObject({
|
|
|
15577
15595
|
});
|
|
15578
15596
|
var usageStatisticsResultSchema = external_exports.strictObject({
|
|
15579
15597
|
range: external_exports.enum(USAGE_STATISTICS_RANGES),
|
|
15580
|
-
/** First
|
|
15598
|
+
/** First date in the query timezone (Host local when omitted); null for all time. */
|
|
15581
15599
|
from: localDate.nullable(),
|
|
15582
15600
|
to: localDate,
|
|
15583
15601
|
/** The filters these figures apply, echoed so a late answer to older filters is recognised. */
|
|
@@ -15617,7 +15635,7 @@ var usageStatisticsResultSchema = external_exports.strictObject({
|
|
|
15617
15635
|
totals: usageStatisticsTotalsSchema,
|
|
15618
15636
|
/** Each date and Harness of the range: every filter except the day. */
|
|
15619
15637
|
daily: external_exports.array(external_exports.strictObject({ date: localDate, harness, ...totals })).max(2e5),
|
|
15620
|
-
/**
|
|
15638
|
+
/** Weekday (0 = Sunday) and hour in the query timezone, all filters applied. */
|
|
15621
15639
|
hourly: external_exports.array(external_exports.strictObject({
|
|
15622
15640
|
weekday: external_exports.number().int().min(0).max(6),
|
|
15623
15641
|
hour: external_exports.number().int().min(0).max(23),
|
|
@@ -15677,6 +15695,8 @@ var CONSOLE_HOST_METHODS = Object.freeze([
|
|
|
15677
15695
|
"codexhost/harness/display-settings/set",
|
|
15678
15696
|
"codexhost/harness/inspect",
|
|
15679
15697
|
"codexhost/harness/installation",
|
|
15698
|
+
"codexhost/harness/installation/start",
|
|
15699
|
+
"codexhost/harness/installation/status",
|
|
15680
15700
|
"codexhost/harness/launch-settings/get",
|
|
15681
15701
|
"codexhost/harness/launch-settings/set",
|
|
15682
15702
|
"codexhost/harness/web-ui/open",
|
|
@@ -15755,7 +15775,18 @@ var threadManualCompactionStartedSchema = external_exports.strictObject({
|
|
|
15755
15775
|
var nonNegativeSafeIntegerSchema = external_exports.number().int().safe().nonnegative();
|
|
15756
15776
|
var finiteNonNegativeNumberSchema = external_exports.number().finite().nonnegative();
|
|
15757
15777
|
var cacheHitRatePercentSchema = external_exports.number().finite().min(0).max(100);
|
|
15778
|
+
var indicatorTextSchema = (maximum) => harnessLocalizedTextSchema.refine((entries) => Object.values(entries).every((text) => text.length <= maximum));
|
|
15779
|
+
var composerIndicatorsSchema = external_exports.array(external_exports.object({
|
|
15780
|
+
kind: external_exports.literal("countdown"),
|
|
15781
|
+
id: external_exports.string().min(1).max(64),
|
|
15782
|
+
expiresAtUnix: nonNegativeSafeIntegerSchema,
|
|
15783
|
+
label: indicatorTextSchema(256).optional(),
|
|
15784
|
+
tooltip: indicatorTextSchema(1024).optional()
|
|
15785
|
+
}).strict()).max(2).refine((entries) => new Set(entries.map(({ id }) => id)).size === entries.length, {
|
|
15786
|
+
message: "Composer indicator IDs must be unique"
|
|
15787
|
+
});
|
|
15758
15788
|
var threadUsageSnapshotSchema = external_exports.object({
|
|
15789
|
+
composerIndicators: composerIndicatorsSchema.optional(),
|
|
15759
15790
|
inputTokens: nonNegativeSafeIntegerSchema.optional(),
|
|
15760
15791
|
cachedInputTokens: nonNegativeSafeIntegerSchema.optional(),
|
|
15761
15792
|
cacheWriteInputTokens: nonNegativeSafeIntegerSchema.optional(),
|
|
@@ -15828,8 +15859,24 @@ var threadUsageSnapshotSchema = external_exports.object({
|
|
|
15828
15859
|
}
|
|
15829
15860
|
});
|
|
15830
15861
|
var usagePercentSchema = external_exports.number().finite().min(0).max(100);
|
|
15862
|
+
var accountCreditsPeriodSchema = external_exports.enum([
|
|
15863
|
+
"weekly",
|
|
15864
|
+
"monthly",
|
|
15865
|
+
"five_hour",
|
|
15866
|
+
"seven_day",
|
|
15867
|
+
"unknown"
|
|
15868
|
+
]);
|
|
15869
|
+
var accountCreditsScopeSchema = external_exports.object({
|
|
15870
|
+
id: external_exports.string().min(1).max(256),
|
|
15871
|
+
label: external_exports.string().min(1).max(256),
|
|
15872
|
+
localizations: harnessLocalizationsSchema.optional()
|
|
15873
|
+
}).strict();
|
|
15831
15874
|
var accountCreditsProductUsageSchema = external_exports.object({
|
|
15832
15875
|
product: external_exports.string().min(1),
|
|
15876
|
+
/** Native period and scope, never inferred from the display name. */
|
|
15877
|
+
periodType: accountCreditsPeriodSchema.optional(),
|
|
15878
|
+
scope: accountCreditsScopeSchema.optional(),
|
|
15879
|
+
localizations: harnessLocalizationsSchema.optional(),
|
|
15833
15880
|
used: external_exports.number().finite().nonnegative().optional(),
|
|
15834
15881
|
// Zero is a real empty cap, not an absent field.
|
|
15835
15882
|
limit: external_exports.number().finite().nonnegative().optional(),
|
|
@@ -15849,9 +15896,11 @@ var accountCreditsSnapshotSchema = external_exports.object({
|
|
|
15849
15896
|
unit: external_exports.string().min(1).max(32).optional(),
|
|
15850
15897
|
/** Native label when the primary limit is scoped to a model or product group. */
|
|
15851
15898
|
label: external_exports.string().min(1).optional(),
|
|
15899
|
+
scope: accountCreditsScopeSchema.optional(),
|
|
15900
|
+
localizations: harnessLocalizationsSchema.optional(),
|
|
15852
15901
|
usedPercent: usagePercentSchema,
|
|
15853
15902
|
resetsAt: external_exports.string().min(1).optional(),
|
|
15854
|
-
periodType:
|
|
15903
|
+
periodType: accountCreditsPeriodSchema,
|
|
15855
15904
|
productUsage: external_exports.array(accountCreditsProductUsageSchema).min(1).optional(),
|
|
15856
15905
|
resetCredits: accountResetCreditsSchema.optional()
|
|
15857
15906
|
}).strict();
|
|
@@ -15862,7 +15911,9 @@ var threadUsageInspectionParamsSchema = external_exports.object({
|
|
|
15862
15911
|
var threadUsageInspectionSchema = external_exports.object({
|
|
15863
15912
|
threadId: hostThreadIdSchema,
|
|
15864
15913
|
usage: threadUsageSnapshotSchema.nullable(),
|
|
15865
|
-
accountCredits: accountCreditsSnapshotSchema.optional()
|
|
15914
|
+
accountCredits: accountCreditsSnapshotSchema.optional(),
|
|
15915
|
+
/** Whether this source can provide cached account quota independently of usage. */
|
|
15916
|
+
accountCreditsSupported: external_exports.boolean().optional()
|
|
15866
15917
|
}).strict();
|
|
15867
15918
|
|
|
15868
15919
|
// packages/shared-contracts/dist/harness-accounts.js
|
|
@@ -15989,7 +16040,8 @@ var harnessPermissionModeSchema = external_exports.object({
|
|
|
15989
16040
|
id: harnessPermissionModeIdSchema,
|
|
15990
16041
|
label: nonBlankTextSchema.max(HARNESS_PERMISSION_MODE_LABEL_MAX_LENGTH),
|
|
15991
16042
|
description: nonBlankTextSchema.max(HARNESS_PERMISSION_MODE_DESCRIPTION_MAX_LENGTH).optional(),
|
|
15992
|
-
dangerous: external_exports.boolean().optional()
|
|
16043
|
+
dangerous: external_exports.boolean().optional(),
|
|
16044
|
+
localizations: harnessLocalizationsSchema.optional()
|
|
15993
16045
|
}).strict();
|
|
15994
16046
|
var harnessPermissionModeCatalogSchema = external_exports.object({
|
|
15995
16047
|
modes: external_exports.array(harnessPermissionModeSchema).min(1).max(HARNESS_PERMISSION_MODE_CATALOG_MAX_LENGTH),
|
|
@@ -16142,7 +16194,9 @@ var harnessSessionCapabilitiesSchema = external_exports.object({
|
|
|
16142
16194
|
}).strict().optional(),
|
|
16143
16195
|
autonomousTurns: external_exports.object({
|
|
16144
16196
|
observe: external_exports.boolean()
|
|
16145
|
-
}).strict().optional()
|
|
16197
|
+
}).strict().optional(),
|
|
16198
|
+
/** True only when `turn.steer` delivers input into the active Turn through a native primitive. */
|
|
16199
|
+
steer: external_exports.boolean().optional()
|
|
16146
16200
|
}).strict();
|
|
16147
16201
|
var harnessConfigurationStateSchema = external_exports.object({
|
|
16148
16202
|
effectiveModel: harnessModelRefSchema.optional(),
|
|
@@ -16189,7 +16243,9 @@ var harnessInspectionSchema = external_exports.union([
|
|
|
16189
16243
|
var harnessInspectParamsSchema = external_exports.object({
|
|
16190
16244
|
harnessId: harnessIdSchema,
|
|
16191
16245
|
cwd: nonBlankTextSchema2.max(16384).optional(),
|
|
16192
|
-
refresh: external_exports.boolean().optional()
|
|
16246
|
+
refresh: external_exports.boolean().optional(),
|
|
16247
|
+
/** `availability` asks only whether the Harness can run; see `InspectHarnessInput.purpose`. */
|
|
16248
|
+
purpose: external_exports.literal("availability").optional()
|
|
16193
16249
|
}).strict();
|
|
16194
16250
|
var harnessWebUiOpenParamsSchema = external_exports.object({
|
|
16195
16251
|
harnessId: harnessIdSchema
|
|
@@ -16272,6 +16328,15 @@ var threadOwnershipListResultSchema = external_exports.object({
|
|
|
16272
16328
|
seen.add(thread.threadId);
|
|
16273
16329
|
}
|
|
16274
16330
|
});
|
|
16331
|
+
var threadSteeringInspectParamsSchema = external_exports.object({
|
|
16332
|
+
threadId: hostThreadIdSchema,
|
|
16333
|
+
/** The text about to be steered; a Harness command always stops and restarts. */
|
|
16334
|
+
text: external_exports.string().optional()
|
|
16335
|
+
}).strict();
|
|
16336
|
+
var threadSteerDeliverySchema = external_exports.enum(["activeTurn", "newTurn"]);
|
|
16337
|
+
var threadSteeringInspectResultSchema = external_exports.object({
|
|
16338
|
+
delivery: external_exports.enum(["official", "activeTurn", "newTurn"])
|
|
16339
|
+
}).strict();
|
|
16275
16340
|
|
|
16276
16341
|
// packages/shared-contracts/dist/harness-plugins.js
|
|
16277
16342
|
var HARNESS_PLUGIN_MANIFEST_MAX_BYTES = 32 * 1024;
|
|
@@ -16373,11 +16438,31 @@ var harnessInstallationStateSchema = external_exports.object({
|
|
|
16373
16438
|
latestVersion: external_exports.string().min(1).max(128),
|
|
16374
16439
|
updateAvailable: external_exports.boolean(),
|
|
16375
16440
|
canUpdate: external_exports.boolean(),
|
|
16441
|
+
/** Defaults to CLI; some Harnesses ship only inside a desktop application. */
|
|
16442
|
+
versionKind: external_exports.enum(["cli", "application"]).optional(),
|
|
16443
|
+
/** Official download opened by the user; does not imply an automatic installation. */
|
|
16444
|
+
manualUpdateUrl: external_exports.url().max(2048).refine((value) => /^https:\/\/[^/?#@]+(?:[/?#]|$)/iu.test(value), "Manual updates require a credential-free HTTPS URL").optional(),
|
|
16376
16445
|
// Adapter-owned diagnostic text; UI uses messageCode rather than displaying it verbatim.
|
|
16377
16446
|
message: external_exports.string().max(2048).optional(),
|
|
16378
16447
|
messageCode: external_exports.string().min(1).max(128).optional(),
|
|
16448
|
+
/** Safe plugin-owned explanation, distinct from raw diagnostic message. */
|
|
16449
|
+
notice: harnessLocalizedTextSchema.optional(),
|
|
16379
16450
|
latestVersionKind: external_exports.enum(["unknown", "tracking-branch"]).optional()
|
|
16380
16451
|
}).strict();
|
|
16452
|
+
var harnessInstallationTaskParamsSchema = external_exports.object({ taskId: external_exports.string().uuid() }).strict();
|
|
16453
|
+
var harnessInstallationTaskSchema = external_exports.discriminatedUnion("status", [
|
|
16454
|
+
external_exports.object({ taskId: external_exports.string().uuid(), status: external_exports.literal("running") }).strict(),
|
|
16455
|
+
external_exports.object({
|
|
16456
|
+
taskId: external_exports.string().uuid(),
|
|
16457
|
+
status: external_exports.literal("succeeded"),
|
|
16458
|
+
result: harnessInstallationStateSchema
|
|
16459
|
+
}).strict(),
|
|
16460
|
+
external_exports.object({
|
|
16461
|
+
taskId: external_exports.string().uuid(),
|
|
16462
|
+
status: external_exports.literal("failed"),
|
|
16463
|
+
error: external_exports.object({ code: external_exports.number().int(), message: external_exports.string().min(1).max(2048) }).strict()
|
|
16464
|
+
}).strict()
|
|
16465
|
+
]);
|
|
16381
16466
|
|
|
16382
16467
|
// packages/shared-contracts/dist/codex-accounts.js
|
|
16383
16468
|
var accountIdSchema = external_exports.string().min(1).max(256).regex(/^[A-Za-z0-9._~-]+$/u);
|
|
@@ -16502,6 +16587,7 @@ var harnessCommandDescriptorSchema = external_exports.object({
|
|
|
16502
16587
|
invocation: commandInvocationSchema,
|
|
16503
16588
|
label: commandLabelSchema,
|
|
16504
16589
|
description: commandDescriptionSchema.optional(),
|
|
16590
|
+
localizations: harnessLocalizationsSchema.optional(),
|
|
16505
16591
|
argumentMode: external_exports.enum(["none", "text"]),
|
|
16506
16592
|
/**
|
|
16507
16593
|
* Native distinction reported by the Harness. Omitted when the Harness does
|