@codexhost/cli-linux-arm64 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
|
@@ -3380,10 +3380,10 @@ var $ZodObject = /* @__PURE__ */ $constructor("$ZodObject", (inst, def) => {
|
|
|
3380
3380
|
const shape = def.shape;
|
|
3381
3381
|
const propValues = {};
|
|
3382
3382
|
for (const key in shape) {
|
|
3383
|
-
const
|
|
3384
|
-
if (
|
|
3383
|
+
const field2 = shape[key]._zod;
|
|
3384
|
+
if (field2.values) {
|
|
3385
3385
|
propValues[key] ?? (propValues[key] = /* @__PURE__ */ new Set());
|
|
3386
|
-
for (const v of
|
|
3386
|
+
for (const v of field2.values)
|
|
3387
3387
|
propValues[key].add(v);
|
|
3388
3388
|
}
|
|
3389
3389
|
}
|
|
@@ -15002,10 +15002,19 @@ var model = external_exports.string().min(1).max(512);
|
|
|
15002
15002
|
var project = external_exports.string().min(1).max(4096);
|
|
15003
15003
|
var usageStatisticsParamsSchema = external_exports.strictObject({
|
|
15004
15004
|
range: external_exports.enum(USAGE_STATISTICS_RANGES),
|
|
15005
|
+
/** Display timezone for ranges, dates and hourly buckets; omitted means the Host's local zone. */
|
|
15006
|
+
timeZone: external_exports.string().min(1).max(128).refine((value) => {
|
|
15007
|
+
try {
|
|
15008
|
+
new Intl.DateTimeFormat("en", { timeZone: value });
|
|
15009
|
+
return true;
|
|
15010
|
+
} catch {
|
|
15011
|
+
return false;
|
|
15012
|
+
}
|
|
15013
|
+
}, "Unsupported usage statistics timezone").optional(),
|
|
15005
15014
|
harness: harness.optional(),
|
|
15006
15015
|
model: model.nullable().optional(),
|
|
15007
15016
|
project: project.nullable().optional(),
|
|
15008
|
-
/** One
|
|
15017
|
+
/** One date in the query timezone inside the range. */
|
|
15009
15018
|
date: localDate.optional()
|
|
15010
15019
|
});
|
|
15011
15020
|
var usageStatisticsTotalsSchema = external_exports.strictObject({
|
|
@@ -15041,7 +15050,7 @@ var usageStatisticsSessionSchema = external_exports.strictObject({
|
|
|
15041
15050
|
});
|
|
15042
15051
|
var usageStatisticsResultSchema = external_exports.strictObject({
|
|
15043
15052
|
range: external_exports.enum(USAGE_STATISTICS_RANGES),
|
|
15044
|
-
/** First
|
|
15053
|
+
/** First date in the query timezone (Host local when omitted); null for all time. */
|
|
15045
15054
|
from: localDate.nullable(),
|
|
15046
15055
|
to: localDate,
|
|
15047
15056
|
/** The filters these figures apply, echoed so a late answer to older filters is recognised. */
|
|
@@ -15081,7 +15090,7 @@ var usageStatisticsResultSchema = external_exports.strictObject({
|
|
|
15081
15090
|
totals: usageStatisticsTotalsSchema,
|
|
15082
15091
|
/** Each date and Harness of the range: every filter except the day. */
|
|
15083
15092
|
daily: external_exports.array(external_exports.strictObject({ date: localDate, harness, ...totals })).max(2e5),
|
|
15084
|
-
/**
|
|
15093
|
+
/** Weekday (0 = Sunday) and hour in the query timezone, all filters applied. */
|
|
15085
15094
|
hourly: external_exports.array(external_exports.strictObject({
|
|
15086
15095
|
weekday: external_exports.number().int().min(0).max(6),
|
|
15087
15096
|
hour: external_exports.number().int().min(0).max(23),
|
|
@@ -15121,6 +15130,51 @@ var hostInteractionIdSchema = opaqueIdSchema.brand();
|
|
|
15121
15130
|
var threadPrewarmDiscardParamsSchema = external_exports.object({ threadId: hostThreadIdSchema });
|
|
15122
15131
|
var threadPrewarmDiscardResultSchema = external_exports.object({ discarded: external_exports.boolean() });
|
|
15123
15132
|
|
|
15133
|
+
// ../../shared-contracts/dist/thread-questions.js
|
|
15134
|
+
var field = external_exports.discriminatedUnion("type", [
|
|
15135
|
+
external_exports.object({
|
|
15136
|
+
id: external_exports.string().min(1),
|
|
15137
|
+
type: external_exports.literal("choice"),
|
|
15138
|
+
prompt: external_exports.string(),
|
|
15139
|
+
options: external_exports.array(external_exports.object({
|
|
15140
|
+
value: external_exports.string().min(1),
|
|
15141
|
+
label: external_exports.string(),
|
|
15142
|
+
description: external_exports.string().optional()
|
|
15143
|
+
})).min(1),
|
|
15144
|
+
multiple: external_exports.boolean(),
|
|
15145
|
+
allowOther: external_exports.boolean(),
|
|
15146
|
+
optional: external_exports.boolean()
|
|
15147
|
+
}),
|
|
15148
|
+
external_exports.object({
|
|
15149
|
+
id: external_exports.string().min(1),
|
|
15150
|
+
type: external_exports.literal("text"),
|
|
15151
|
+
prompt: external_exports.string(),
|
|
15152
|
+
multiline: external_exports.boolean(),
|
|
15153
|
+
secret: external_exports.literal(false),
|
|
15154
|
+
optional: external_exports.boolean(),
|
|
15155
|
+
placeholder: external_exports.string().optional(),
|
|
15156
|
+
prefill: external_exports.string().optional()
|
|
15157
|
+
})
|
|
15158
|
+
]);
|
|
15159
|
+
var threadQuestionSchema = external_exports.object({
|
|
15160
|
+
interactionId: external_exports.string().min(1),
|
|
15161
|
+
turnId: external_exports.string().min(1),
|
|
15162
|
+
title: external_exports.string().optional(),
|
|
15163
|
+
questions: external_exports.array(field).min(1)
|
|
15164
|
+
}).refine(({ questions }) => questions.some((q) => q.type === "choice" && q.multiple), {
|
|
15165
|
+
message: "Shared cards require at least one multi-select question"
|
|
15166
|
+
});
|
|
15167
|
+
var threadQuestionsListParamsSchema = external_exports.strictObject({ threadId: external_exports.string().min(1) });
|
|
15168
|
+
var threadQuestionsResultSchema = external_exports.object({ questions: external_exports.array(threadQuestionSchema) });
|
|
15169
|
+
var threadQuestionRespondParamsSchema = external_exports.strictObject({
|
|
15170
|
+
threadId: external_exports.string().min(1),
|
|
15171
|
+
turnId: external_exports.string().min(1),
|
|
15172
|
+
interactionId: external_exports.string().min(1),
|
|
15173
|
+
answers: external_exports.record(external_exports.string(), external_exports.array(external_exports.string())),
|
|
15174
|
+
cancelled: external_exports.boolean().default(false)
|
|
15175
|
+
});
|
|
15176
|
+
var threadQuestionRespondResultSchema = external_exports.object({ accepted: external_exports.literal(true) });
|
|
15177
|
+
|
|
15124
15178
|
// ../../shared-contracts/dist/console.js
|
|
15125
15179
|
var consoleAnnouncementSchema = external_exports.strictObject({
|
|
15126
15180
|
title: external_exports.string().trim().min(1).max(200),
|
|
@@ -15141,6 +15195,8 @@ var CONSOLE_HOST_METHODS = Object.freeze([
|
|
|
15141
15195
|
"codexhost/harness/display-settings/set",
|
|
15142
15196
|
"codexhost/harness/inspect",
|
|
15143
15197
|
"codexhost/harness/installation",
|
|
15198
|
+
"codexhost/harness/installation/start",
|
|
15199
|
+
"codexhost/harness/installation/status",
|
|
15144
15200
|
"codexhost/harness/launch-settings/get",
|
|
15145
15201
|
"codexhost/harness/launch-settings/set",
|
|
15146
15202
|
"codexhost/harness/web-ui/open",
|
|
@@ -15216,7 +15272,18 @@ var threadManualCompactionStartedSchema = external_exports.strictObject({
|
|
|
15216
15272
|
var nonNegativeSafeIntegerSchema = external_exports.number().int().safe().nonnegative();
|
|
15217
15273
|
var finiteNonNegativeNumberSchema = external_exports.number().finite().nonnegative();
|
|
15218
15274
|
var cacheHitRatePercentSchema = external_exports.number().finite().min(0).max(100);
|
|
15275
|
+
var indicatorTextSchema = (maximum) => harnessLocalizedTextSchema.refine((entries) => Object.values(entries).every((text) => text.length <= maximum));
|
|
15276
|
+
var composerIndicatorsSchema = external_exports.array(external_exports.object({
|
|
15277
|
+
kind: external_exports.literal("countdown"),
|
|
15278
|
+
id: external_exports.string().min(1).max(64),
|
|
15279
|
+
expiresAtUnix: nonNegativeSafeIntegerSchema,
|
|
15280
|
+
label: indicatorTextSchema(256).optional(),
|
|
15281
|
+
tooltip: indicatorTextSchema(1024).optional()
|
|
15282
|
+
}).strict()).max(2).refine((entries) => new Set(entries.map(({ id }) => id)).size === entries.length, {
|
|
15283
|
+
message: "Composer indicator IDs must be unique"
|
|
15284
|
+
});
|
|
15219
15285
|
var threadUsageSnapshotSchema = external_exports.object({
|
|
15286
|
+
composerIndicators: composerIndicatorsSchema.optional(),
|
|
15220
15287
|
inputTokens: nonNegativeSafeIntegerSchema.optional(),
|
|
15221
15288
|
cachedInputTokens: nonNegativeSafeIntegerSchema.optional(),
|
|
15222
15289
|
cacheWriteInputTokens: nonNegativeSafeIntegerSchema.optional(),
|
|
@@ -15624,7 +15691,9 @@ var harnessSessionCapabilitiesSchema = external_exports.object({
|
|
|
15624
15691
|
}).strict().optional(),
|
|
15625
15692
|
autonomousTurns: external_exports.object({
|
|
15626
15693
|
observe: external_exports.boolean()
|
|
15627
|
-
}).strict().optional()
|
|
15694
|
+
}).strict().optional(),
|
|
15695
|
+
/** True only when `turn.steer` delivers input into the active Turn through a native primitive. */
|
|
15696
|
+
steer: external_exports.boolean().optional()
|
|
15628
15697
|
}).strict();
|
|
15629
15698
|
var harnessConfigurationStateSchema = external_exports.object({
|
|
15630
15699
|
effectiveModel: harnessModelRefSchema.optional(),
|
|
@@ -15671,7 +15740,9 @@ var harnessInspectionSchema = external_exports.union([
|
|
|
15671
15740
|
var harnessInspectParamsSchema = external_exports.object({
|
|
15672
15741
|
harnessId: harnessIdSchema,
|
|
15673
15742
|
cwd: nonBlankTextSchema2.max(16384).optional(),
|
|
15674
|
-
refresh: external_exports.boolean().optional()
|
|
15743
|
+
refresh: external_exports.boolean().optional(),
|
|
15744
|
+
/** `availability` asks only whether the Harness can run; see `InspectHarnessInput.purpose`. */
|
|
15745
|
+
purpose: external_exports.literal("availability").optional()
|
|
15675
15746
|
}).strict();
|
|
15676
15747
|
var harnessWebUiOpenParamsSchema = external_exports.object({
|
|
15677
15748
|
harnessId: harnessIdSchema
|
|
@@ -15754,6 +15825,15 @@ var threadOwnershipListResultSchema = external_exports.object({
|
|
|
15754
15825
|
seen.add(thread.threadId);
|
|
15755
15826
|
}
|
|
15756
15827
|
});
|
|
15828
|
+
var threadSteeringInspectParamsSchema = external_exports.object({
|
|
15829
|
+
threadId: hostThreadIdSchema,
|
|
15830
|
+
/** The text about to be steered; a Harness command always stops and restarts. */
|
|
15831
|
+
text: external_exports.string().optional()
|
|
15832
|
+
}).strict();
|
|
15833
|
+
var threadSteerDeliverySchema = external_exports.enum(["activeTurn", "newTurn"]);
|
|
15834
|
+
var threadSteeringInspectResultSchema = external_exports.object({
|
|
15835
|
+
delivery: external_exports.enum(["official", "activeTurn", "newTurn"])
|
|
15836
|
+
}).strict();
|
|
15757
15837
|
|
|
15758
15838
|
// ../../shared-contracts/dist/harness-plugins.js
|
|
15759
15839
|
var HARNESS_PLUGIN_MANIFEST_MAX_BYTES = 32 * 1024;
|
|
@@ -15855,6 +15935,10 @@ var harnessInstallationStateSchema = external_exports.object({
|
|
|
15855
15935
|
latestVersion: external_exports.string().min(1).max(128),
|
|
15856
15936
|
updateAvailable: external_exports.boolean(),
|
|
15857
15937
|
canUpdate: external_exports.boolean(),
|
|
15938
|
+
/** Defaults to CLI; some Harnesses ship only inside a desktop application. */
|
|
15939
|
+
versionKind: external_exports.enum(["cli", "application"]).optional(),
|
|
15940
|
+
/** Official download opened by the user; does not imply an automatic installation. */
|
|
15941
|
+
manualUpdateUrl: external_exports.url().max(2048).refine((value) => /^https:\/\/[^/?#@]+(?:[/?#]|$)/iu.test(value), "Manual updates require a credential-free HTTPS URL").optional(),
|
|
15858
15942
|
// Adapter-owned diagnostic text; UI uses messageCode rather than displaying it verbatim.
|
|
15859
15943
|
message: external_exports.string().max(2048).optional(),
|
|
15860
15944
|
messageCode: external_exports.string().min(1).max(128).optional(),
|
|
@@ -15862,6 +15946,20 @@ var harnessInstallationStateSchema = external_exports.object({
|
|
|
15862
15946
|
notice: harnessLocalizedTextSchema.optional(),
|
|
15863
15947
|
latestVersionKind: external_exports.enum(["unknown", "tracking-branch"]).optional()
|
|
15864
15948
|
}).strict();
|
|
15949
|
+
var harnessInstallationTaskParamsSchema = external_exports.object({ taskId: external_exports.string().uuid() }).strict();
|
|
15950
|
+
var harnessInstallationTaskSchema = external_exports.discriminatedUnion("status", [
|
|
15951
|
+
external_exports.object({ taskId: external_exports.string().uuid(), status: external_exports.literal("running") }).strict(),
|
|
15952
|
+
external_exports.object({
|
|
15953
|
+
taskId: external_exports.string().uuid(),
|
|
15954
|
+
status: external_exports.literal("succeeded"),
|
|
15955
|
+
result: harnessInstallationStateSchema
|
|
15956
|
+
}).strict(),
|
|
15957
|
+
external_exports.object({
|
|
15958
|
+
taskId: external_exports.string().uuid(),
|
|
15959
|
+
status: external_exports.literal("failed"),
|
|
15960
|
+
error: external_exports.object({ code: external_exports.number().int(), message: external_exports.string().min(1).max(2048) }).strict()
|
|
15961
|
+
}).strict()
|
|
15962
|
+
]);
|
|
15865
15963
|
|
|
15866
15964
|
// ../../shared-contracts/dist/codex-accounts.js
|
|
15867
15965
|
var accountIdSchema = external_exports.string().min(1).max(256).regex(/^[A-Za-z0-9._~-]+$/u);
|
|
@@ -16347,6 +16445,18 @@ function sanitizeDiagnosticTail(value) {
|
|
|
16347
16445
|
return redacted.length <= DIAGNOSTIC_TAIL_MAX_LENGTH ? redacted : redacted.slice(-DIAGNOSTIC_TAIL_MAX_LENGTH);
|
|
16348
16446
|
}
|
|
16349
16447
|
|
|
16448
|
+
// ../../harness-adapter/dist/steer.js
|
|
16449
|
+
function unsupportedSteer(harnessLabel) {
|
|
16450
|
+
return {
|
|
16451
|
+
ok: false,
|
|
16452
|
+
error: {
|
|
16453
|
+
code: "unsupported",
|
|
16454
|
+
message: `${harnessLabel} cannot steer an active Turn natively`,
|
|
16455
|
+
retryable: false
|
|
16456
|
+
}
|
|
16457
|
+
};
|
|
16458
|
+
}
|
|
16459
|
+
|
|
16350
16460
|
// ../../harness-adapter/dist/usage.js
|
|
16351
16461
|
var tokenFields = [
|
|
16352
16462
|
"inputTokens",
|
|
@@ -16374,6 +16484,7 @@ var usageFields = /* @__PURE__ */ new Set([
|
|
|
16374
16484
|
...safeIntegerFields,
|
|
16375
16485
|
...percentFields,
|
|
16376
16486
|
"sessionCacheUsage",
|
|
16487
|
+
"composerIndicators",
|
|
16377
16488
|
"totalCostUsd",
|
|
16378
16489
|
"totalCredits",
|
|
16379
16490
|
"contextUsagePercent",
|
|
@@ -16396,26 +16507,27 @@ function parseHostUsage(value) {
|
|
|
16396
16507
|
throw new Error(`Harness Usage contains unknown field '${key}'`);
|
|
16397
16508
|
}
|
|
16398
16509
|
}
|
|
16399
|
-
|
|
16510
|
+
const indicators = value.composerIndicators === void 0 ? {} : { composerIndicators: composerIndicatorsSchema.parse(value.composerIndicators) };
|
|
16511
|
+
for (const field2 of [
|
|
16400
16512
|
"totalCredits",
|
|
16401
16513
|
"contextUsagePercent",
|
|
16402
16514
|
"apiOutputTokensPerSecond"
|
|
16403
16515
|
]) {
|
|
16404
|
-
const candidate = value[
|
|
16516
|
+
const candidate = value[field2];
|
|
16405
16517
|
if (candidate !== void 0 && (typeof candidate !== "number" || !Number.isFinite(candidate) || candidate < 0)) {
|
|
16406
|
-
throw new Error(`Harness Usage '${
|
|
16518
|
+
throw new Error(`Harness Usage '${field2}' must be a finite non-negative number`);
|
|
16407
16519
|
}
|
|
16408
16520
|
}
|
|
16409
|
-
for (const
|
|
16410
|
-
const candidate = value[
|
|
16521
|
+
for (const field2 of tokenFields) {
|
|
16522
|
+
const candidate = value[field2];
|
|
16411
16523
|
if (candidate !== void 0 && (typeof candidate !== "number" || !Number.isSafeInteger(candidate) || candidate < 0)) {
|
|
16412
|
-
throw new Error(`Harness Usage '${
|
|
16524
|
+
throw new Error(`Harness Usage '${field2}' must be a non-negative safe integer`);
|
|
16413
16525
|
}
|
|
16414
16526
|
}
|
|
16415
|
-
for (const
|
|
16416
|
-
const candidate = value[
|
|
16527
|
+
for (const field2 of safeIntegerFields) {
|
|
16528
|
+
const candidate = value[field2];
|
|
16417
16529
|
if (candidate !== void 0 && (typeof candidate !== "number" || !Number.isSafeInteger(candidate) || candidate < 0)) {
|
|
16418
|
-
throw new Error(`Harness Usage '${
|
|
16530
|
+
throw new Error(`Harness Usage '${field2}' must be a non-negative safe integer`);
|
|
16419
16531
|
}
|
|
16420
16532
|
}
|
|
16421
16533
|
if (value.outputTokensPerSecond !== void 0 && (typeof value.outputTokensPerSecond !== "number" || !Number.isFinite(value.outputTokensPerSecond) || value.outputTokensPerSecond < 0)) {
|
|
@@ -16424,10 +16536,10 @@ function parseHostUsage(value) {
|
|
|
16424
16536
|
if (value.totalCostUsd !== void 0 && (typeof value.totalCostUsd !== "number" || !Number.isFinite(value.totalCostUsd) || value.totalCostUsd < 0)) {
|
|
16425
16537
|
throw new Error("Harness Usage 'totalCostUsd' must be a finite non-negative number");
|
|
16426
16538
|
}
|
|
16427
|
-
for (const
|
|
16428
|
-
const candidate = value[
|
|
16539
|
+
for (const field2 of percentFields) {
|
|
16540
|
+
const candidate = value[field2];
|
|
16429
16541
|
if (candidate !== void 0 && (typeof candidate !== "number" || !Number.isFinite(candidate) || candidate < 0 || candidate > 100)) {
|
|
16430
|
-
throw new Error(`Harness Usage '${
|
|
16542
|
+
throw new Error(`Harness Usage '${field2}' must be between 0 and 100`);
|
|
16431
16543
|
}
|
|
16432
16544
|
}
|
|
16433
16545
|
if (value.sessionCacheUsage !== void 0) {
|
|
@@ -16466,9 +16578,9 @@ function parseHostUsage(value) {
|
|
|
16466
16578
|
if (value.costSource !== "publicPrice") {
|
|
16467
16579
|
throw new Error("Harness Usage 'unpricedModels' must be provided with a 'publicPrice' cost");
|
|
16468
16580
|
}
|
|
16469
|
-
return { ...value, unpricedModels: [...models] };
|
|
16581
|
+
return { ...value, ...indicators, unpricedModels: [...models] };
|
|
16470
16582
|
}
|
|
16471
|
-
return { ...value };
|
|
16583
|
+
return { ...value, ...indicators };
|
|
16472
16584
|
}
|
|
16473
16585
|
var requestTokenFields = [
|
|
16474
16586
|
"inputTokens",
|
|
@@ -23882,6 +23994,8 @@ var KiroSession = class {
|
|
|
23882
23994
|
if (command.type === "turn.cancel") {
|
|
23883
23995
|
return this.#cancelTurn(command);
|
|
23884
23996
|
}
|
|
23997
|
+
if (command.type === "turn.steer")
|
|
23998
|
+
return unsupportedSteer("Kiro");
|
|
23885
23999
|
if (command.type === "interaction.respond") {
|
|
23886
24000
|
return this.#respondInteraction(command);
|
|
23887
24001
|
}
|