@codexhost/cli-darwin-x64 0.13.3 → 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 +58 -5
- package/app/console-web.js +437 -68
- package/app/desktop-controller.mjs +72 -9
- package/app/host-runtime.mjs +766 -214
- package/app/plugins/antigravity/plugin.mjs +91 -13
- package/app/plugins/claude-code/plugin.mjs +407 -26
- package/app/plugins/codebuddy/plugin.mjs +117 -22
- package/app/plugins/codex-usage/plugin.mjs +176 -74
- 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 +20701 -44819
- package/app/plugins/deepseek-harness/plugin.mjs +83 -11
- package/app/plugins/enabled.json +1 -0
- package/app/plugins/grok/plugin.mjs +214 -24
- package/app/plugins/hermes/plugin.mjs +80 -9
- package/app/plugins/kimi-code/plugin.mjs +76 -7
- package/app/plugins/kiro-cli/plugin.mjs +76 -7
- package/app/plugins/omp/plugin.mjs +2155 -2000
- package/app/plugins/opencode/plugin.mjs +85 -11
- package/app/plugins/pi/plugin.mjs +2547 -2300
- package/app/plugins/qoder/plugin.mjs +83 -11
- package/app/plugins/qoder-cn/plugin.mjs +83 -11
- package/app/plugins/workbuddy/plugin.mjs +378 -46
- package/app/plugins/zcode/plugin.mjs +84 -11
- package/app/renderer-extension.js +834 -163
- package/bin/codexhost +0 -0
- package/libexec/codexhost-shim +0 -0
- package/libexec/codexhost-updater +0 -0
- package/package.json +1 -1
|
@@ -504,10 +504,13 @@ function usageSessionTitle(value) {
|
|
|
504
504
|
return void 0;
|
|
505
505
|
if (normalized.length <= MAX_SESSION_TITLE_LENGTH)
|
|
506
506
|
return normalized;
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
507
|
+
let title = "";
|
|
508
|
+
for (const character of normalized) {
|
|
509
|
+
if (title.length + character.length >= MAX_SESSION_TITLE_LENGTH)
|
|
510
|
+
break;
|
|
511
|
+
title += character;
|
|
512
|
+
}
|
|
513
|
+
return `${title.trimEnd()}…`;
|
|
511
514
|
}
|
|
512
515
|
function sessionIdOk(value) {
|
|
513
516
|
return typeof value === "string" && value.length > 0 && value.length <= MAX_SESSION_ID_LENGTH;
|
|
@@ -15199,10 +15202,19 @@ var model = external_exports.string().min(1).max(512);
|
|
|
15199
15202
|
var project = external_exports.string().min(1).max(4096);
|
|
15200
15203
|
var usageStatisticsParamsSchema = external_exports.strictObject({
|
|
15201
15204
|
range: external_exports.enum(USAGE_STATISTICS_RANGES),
|
|
15205
|
+
/** Display timezone for ranges, dates and hourly buckets; omitted means the Host's local zone. */
|
|
15206
|
+
timeZone: external_exports.string().min(1).max(128).refine((value) => {
|
|
15207
|
+
try {
|
|
15208
|
+
new Intl.DateTimeFormat("en", { timeZone: value });
|
|
15209
|
+
return true;
|
|
15210
|
+
} catch {
|
|
15211
|
+
return false;
|
|
15212
|
+
}
|
|
15213
|
+
}, "Unsupported usage statistics timezone").optional(),
|
|
15202
15214
|
harness: harness.optional(),
|
|
15203
15215
|
model: model.nullable().optional(),
|
|
15204
15216
|
project: project.nullable().optional(),
|
|
15205
|
-
/** One
|
|
15217
|
+
/** One date in the query timezone inside the range. */
|
|
15206
15218
|
date: localDate.optional()
|
|
15207
15219
|
});
|
|
15208
15220
|
var usageStatisticsTotalsSchema = external_exports.strictObject({
|
|
@@ -15238,7 +15250,7 @@ var usageStatisticsSessionSchema = external_exports.strictObject({
|
|
|
15238
15250
|
});
|
|
15239
15251
|
var usageStatisticsResultSchema = external_exports.strictObject({
|
|
15240
15252
|
range: external_exports.enum(USAGE_STATISTICS_RANGES),
|
|
15241
|
-
/** First
|
|
15253
|
+
/** First date in the query timezone (Host local when omitted); null for all time. */
|
|
15242
15254
|
from: localDate.nullable(),
|
|
15243
15255
|
to: localDate,
|
|
15244
15256
|
/** The filters these figures apply, echoed so a late answer to older filters is recognised. */
|
|
@@ -15278,7 +15290,7 @@ var usageStatisticsResultSchema = external_exports.strictObject({
|
|
|
15278
15290
|
totals: usageStatisticsTotalsSchema,
|
|
15279
15291
|
/** Each date and Harness of the range: every filter except the day. */
|
|
15280
15292
|
daily: external_exports.array(external_exports.strictObject({ date: localDate, harness, ...totals })).max(2e5),
|
|
15281
|
-
/**
|
|
15293
|
+
/** Weekday (0 = Sunday) and hour in the query timezone, all filters applied. */
|
|
15282
15294
|
hourly: external_exports.array(external_exports.strictObject({
|
|
15283
15295
|
weekday: external_exports.number().int().min(0).max(6),
|
|
15284
15296
|
hour: external_exports.number().int().min(0).max(23),
|
|
@@ -15338,6 +15350,8 @@ var CONSOLE_HOST_METHODS = Object.freeze([
|
|
|
15338
15350
|
"codexhost/harness/display-settings/set",
|
|
15339
15351
|
"codexhost/harness/inspect",
|
|
15340
15352
|
"codexhost/harness/installation",
|
|
15353
|
+
"codexhost/harness/installation/start",
|
|
15354
|
+
"codexhost/harness/installation/status",
|
|
15341
15355
|
"codexhost/harness/launch-settings/get",
|
|
15342
15356
|
"codexhost/harness/launch-settings/set",
|
|
15343
15357
|
"codexhost/harness/web-ui/open",
|
|
@@ -15413,7 +15427,18 @@ var threadManualCompactionStartedSchema = external_exports.strictObject({
|
|
|
15413
15427
|
var nonNegativeSafeIntegerSchema = external_exports.number().int().safe().nonnegative();
|
|
15414
15428
|
var finiteNonNegativeNumberSchema = external_exports.number().finite().nonnegative();
|
|
15415
15429
|
var cacheHitRatePercentSchema = external_exports.number().finite().min(0).max(100);
|
|
15430
|
+
var indicatorTextSchema = (maximum) => harnessLocalizedTextSchema.refine((entries) => Object.values(entries).every((text) => text.length <= maximum));
|
|
15431
|
+
var composerIndicatorsSchema = external_exports.array(external_exports.object({
|
|
15432
|
+
kind: external_exports.literal("countdown"),
|
|
15433
|
+
id: external_exports.string().min(1).max(64),
|
|
15434
|
+
expiresAtUnix: nonNegativeSafeIntegerSchema,
|
|
15435
|
+
label: indicatorTextSchema(256).optional(),
|
|
15436
|
+
tooltip: indicatorTextSchema(1024).optional()
|
|
15437
|
+
}).strict()).max(2).refine((entries) => new Set(entries.map(({ id }) => id)).size === entries.length, {
|
|
15438
|
+
message: "Composer indicator IDs must be unique"
|
|
15439
|
+
});
|
|
15416
15440
|
var threadUsageSnapshotSchema = external_exports.object({
|
|
15441
|
+
composerIndicators: composerIndicatorsSchema.optional(),
|
|
15417
15442
|
inputTokens: nonNegativeSafeIntegerSchema.optional(),
|
|
15418
15443
|
cachedInputTokens: nonNegativeSafeIntegerSchema.optional(),
|
|
15419
15444
|
cacheWriteInputTokens: nonNegativeSafeIntegerSchema.optional(),
|
|
@@ -15821,7 +15846,9 @@ var harnessSessionCapabilitiesSchema = external_exports.object({
|
|
|
15821
15846
|
}).strict().optional(),
|
|
15822
15847
|
autonomousTurns: external_exports.object({
|
|
15823
15848
|
observe: external_exports.boolean()
|
|
15824
|
-
}).strict().optional()
|
|
15849
|
+
}).strict().optional(),
|
|
15850
|
+
/** True only when `turn.steer` delivers input into the active Turn through a native primitive. */
|
|
15851
|
+
steer: external_exports.boolean().optional()
|
|
15825
15852
|
}).strict();
|
|
15826
15853
|
var harnessConfigurationStateSchema = external_exports.object({
|
|
15827
15854
|
effectiveModel: harnessModelRefSchema.optional(),
|
|
@@ -15868,7 +15895,9 @@ var harnessInspectionSchema = external_exports.union([
|
|
|
15868
15895
|
var harnessInspectParamsSchema = external_exports.object({
|
|
15869
15896
|
harnessId: harnessIdSchema,
|
|
15870
15897
|
cwd: nonBlankTextSchema2.max(16384).optional(),
|
|
15871
|
-
refresh: external_exports.boolean().optional()
|
|
15898
|
+
refresh: external_exports.boolean().optional(),
|
|
15899
|
+
/** `availability` asks only whether the Harness can run; see `InspectHarnessInput.purpose`. */
|
|
15900
|
+
purpose: external_exports.literal("availability").optional()
|
|
15872
15901
|
}).strict();
|
|
15873
15902
|
var harnessWebUiOpenParamsSchema = external_exports.object({
|
|
15874
15903
|
harnessId: harnessIdSchema
|
|
@@ -15951,6 +15980,15 @@ var threadOwnershipListResultSchema = external_exports.object({
|
|
|
15951
15980
|
seen.add(thread.threadId);
|
|
15952
15981
|
}
|
|
15953
15982
|
});
|
|
15983
|
+
var threadSteeringInspectParamsSchema = external_exports.object({
|
|
15984
|
+
threadId: hostThreadIdSchema,
|
|
15985
|
+
/** The text about to be steered; a Harness command always stops and restarts. */
|
|
15986
|
+
text: external_exports.string().optional()
|
|
15987
|
+
}).strict();
|
|
15988
|
+
var threadSteerDeliverySchema = external_exports.enum(["activeTurn", "newTurn"]);
|
|
15989
|
+
var threadSteeringInspectResultSchema = external_exports.object({
|
|
15990
|
+
delivery: external_exports.enum(["official", "activeTurn", "newTurn"])
|
|
15991
|
+
}).strict();
|
|
15954
15992
|
|
|
15955
15993
|
// ../../shared-contracts/dist/harness-plugins.js
|
|
15956
15994
|
var HARNESS_PLUGIN_MANIFEST_MAX_BYTES = 32 * 1024;
|
|
@@ -16052,6 +16090,10 @@ var harnessInstallationStateSchema = external_exports.object({
|
|
|
16052
16090
|
latestVersion: external_exports.string().min(1).max(128),
|
|
16053
16091
|
updateAvailable: external_exports.boolean(),
|
|
16054
16092
|
canUpdate: external_exports.boolean(),
|
|
16093
|
+
/** Defaults to CLI; some Harnesses ship only inside a desktop application. */
|
|
16094
|
+
versionKind: external_exports.enum(["cli", "application"]).optional(),
|
|
16095
|
+
/** Official download opened by the user; does not imply an automatic installation. */
|
|
16096
|
+
manualUpdateUrl: external_exports.url().max(2048).refine((value) => /^https:\/\/[^/?#@]+(?:[/?#]|$)/iu.test(value), "Manual updates require a credential-free HTTPS URL").optional(),
|
|
16055
16097
|
// Adapter-owned diagnostic text; UI uses messageCode rather than displaying it verbatim.
|
|
16056
16098
|
message: external_exports.string().max(2048).optional(),
|
|
16057
16099
|
messageCode: external_exports.string().min(1).max(128).optional(),
|
|
@@ -16059,6 +16101,20 @@ var harnessInstallationStateSchema = external_exports.object({
|
|
|
16059
16101
|
notice: harnessLocalizedTextSchema.optional(),
|
|
16060
16102
|
latestVersionKind: external_exports.enum(["unknown", "tracking-branch"]).optional()
|
|
16061
16103
|
}).strict();
|
|
16104
|
+
var harnessInstallationTaskParamsSchema = external_exports.object({ taskId: external_exports.string().uuid() }).strict();
|
|
16105
|
+
var harnessInstallationTaskSchema = external_exports.discriminatedUnion("status", [
|
|
16106
|
+
external_exports.object({ taskId: external_exports.string().uuid(), status: external_exports.literal("running") }).strict(),
|
|
16107
|
+
external_exports.object({
|
|
16108
|
+
taskId: external_exports.string().uuid(),
|
|
16109
|
+
status: external_exports.literal("succeeded"),
|
|
16110
|
+
result: harnessInstallationStateSchema
|
|
16111
|
+
}).strict(),
|
|
16112
|
+
external_exports.object({
|
|
16113
|
+
taskId: external_exports.string().uuid(),
|
|
16114
|
+
status: external_exports.literal("failed"),
|
|
16115
|
+
error: external_exports.object({ code: external_exports.number().int(), message: external_exports.string().min(1).max(2048) }).strict()
|
|
16116
|
+
}).strict()
|
|
16117
|
+
]);
|
|
16062
16118
|
|
|
16063
16119
|
// ../../shared-contracts/dist/codex-accounts.js
|
|
16064
16120
|
var accountIdSchema = external_exports.string().min(1).max(256).regex(/^[A-Za-z0-9._~-]+$/u);
|
|
@@ -16544,6 +16600,18 @@ function sanitizeDiagnosticTail(value) {
|
|
|
16544
16600
|
return redacted.length <= DIAGNOSTIC_TAIL_MAX_LENGTH ? redacted : redacted.slice(-DIAGNOSTIC_TAIL_MAX_LENGTH);
|
|
16545
16601
|
}
|
|
16546
16602
|
|
|
16603
|
+
// ../../harness-adapter/dist/steer.js
|
|
16604
|
+
function unsupportedSteer(harnessLabel) {
|
|
16605
|
+
return {
|
|
16606
|
+
ok: false,
|
|
16607
|
+
error: {
|
|
16608
|
+
code: "unsupported",
|
|
16609
|
+
message: `${harnessLabel} cannot steer an active Turn natively`,
|
|
16610
|
+
retryable: false
|
|
16611
|
+
}
|
|
16612
|
+
};
|
|
16613
|
+
}
|
|
16614
|
+
|
|
16547
16615
|
// ../../harness-adapter/dist/usage.js
|
|
16548
16616
|
var tokenFields = [
|
|
16549
16617
|
"inputTokens",
|
|
@@ -16571,6 +16639,7 @@ var usageFields = /* @__PURE__ */ new Set([
|
|
|
16571
16639
|
...safeIntegerFields,
|
|
16572
16640
|
...percentFields,
|
|
16573
16641
|
"sessionCacheUsage",
|
|
16642
|
+
"composerIndicators",
|
|
16574
16643
|
"totalCostUsd",
|
|
16575
16644
|
"totalCredits",
|
|
16576
16645
|
"contextUsagePercent",
|
|
@@ -16593,6 +16662,7 @@ function parseHostUsage(value) {
|
|
|
16593
16662
|
throw new Error(`Harness Usage contains unknown field '${key}'`);
|
|
16594
16663
|
}
|
|
16595
16664
|
}
|
|
16665
|
+
const indicators = value.composerIndicators === void 0 ? {} : { composerIndicators: composerIndicatorsSchema.parse(value.composerIndicators) };
|
|
16596
16666
|
for (const field of [
|
|
16597
16667
|
"totalCredits",
|
|
16598
16668
|
"contextUsagePercent",
|
|
@@ -16663,9 +16733,9 @@ function parseHostUsage(value) {
|
|
|
16663
16733
|
if (value.costSource !== "publicPrice") {
|
|
16664
16734
|
throw new Error("Harness Usage 'unpricedModels' must be provided with a 'publicPrice' cost");
|
|
16665
16735
|
}
|
|
16666
|
-
return { ...value, unpricedModels: [...models] };
|
|
16736
|
+
return { ...value, ...indicators, unpricedModels: [...models] };
|
|
16667
16737
|
}
|
|
16668
|
-
return { ...value };
|
|
16738
|
+
return { ...value, ...indicators };
|
|
16669
16739
|
}
|
|
16670
16740
|
var requestTokenFields = [
|
|
16671
16741
|
"inputTokens",
|
|
@@ -23781,6 +23851,8 @@ var OpenCodeHarnessSession = class {
|
|
|
23781
23851
|
if (this.#phase !== "open") {
|
|
23782
23852
|
return { ok: false, error: invalidState("OpenCode Session is not open") };
|
|
23783
23853
|
}
|
|
23854
|
+
if (command.type === "turn.steer")
|
|
23855
|
+
return unsupportedSteer("OpenCode");
|
|
23784
23856
|
if (command.type === "turn.cancel")
|
|
23785
23857
|
return this.#cancel(command);
|
|
23786
23858
|
if (command.type === "interaction.respond")
|
|
@@ -27461,6 +27533,8 @@ var V2Session = class {
|
|
|
27461
27533
|
async execute(command) {
|
|
27462
27534
|
if (this.#closed)
|
|
27463
27535
|
return { ok: false, error: failure("OpenCode Session is closed", "invalidState") };
|
|
27536
|
+
if (command.type === "turn.steer")
|
|
27537
|
+
return unsupportedSteer("OpenCode");
|
|
27464
27538
|
if (command.type === "turn.start")
|
|
27465
27539
|
return this.#start(command, false);
|
|
27466
27540
|
if (command.type === "turn.cancel") {
|