@codexhost/cli-linux-arm64 0.14.0 → 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 +51 -6
- package/app/console-web.js +212 -64
- package/app/desktop-controller.mjs +48 -3
- package/app/host-runtime.mjs +358 -79
- package/app/plugins/antigravity/plugin.mjs +340 -53
- package/app/plugins/claude-code/plugin.mjs +373 -132
- package/app/plugins/codebuddy/plugin.mjs +205 -46
- package/app/plugins/codex-usage/plugin.mjs +73 -28
- package/app/plugins/copilot/plugin.mjs +98 -53
- package/app/plugins/cursor-cli/plugin.mjs +205 -46
- package/app/plugins/deepseek-harness/plugin.mjs +77 -32
- package/app/plugins/grok/plugin.mjs +352 -84
- package/app/plugins/hermes/plugin.mjs +48 -3
- package/app/plugins/kimi-code/plugin.mjs +60 -15
- package/app/plugins/kiro-cli/plugin.mjs +60 -15
- package/app/plugins/omp/plugin.mjs +80 -35
- package/app/plugins/opencode/plugin.mjs +102 -57
- package/app/plugins/pi/plugin.mjs +113 -43
- package/app/plugins/qoder/plugin.mjs +70 -25
- package/app/plugins/qoder-cn/plugin.mjs +70 -25
- package/app/plugins/workbuddy/plugin.mjs +205 -46
- package/app/plugins/zcode/plugin.mjs +99 -29
- package/app/renderer-extension.js +944 -249
- package/bin/codexhost +0 -0
- package/libexec/codexhost-shim +0 -0
- package/libexec/codexhost-updater +0 -0
- package/package.json +1 -1
|
@@ -7281,10 +7281,10 @@ var $ZodObject = /* @__PURE__ */ $constructor("$ZodObject", (inst, def) => {
|
|
|
7281
7281
|
const shape = def.shape;
|
|
7282
7282
|
const propValues = {};
|
|
7283
7283
|
for (const key in shape) {
|
|
7284
|
-
const
|
|
7285
|
-
if (
|
|
7284
|
+
const field2 = shape[key]._zod;
|
|
7285
|
+
if (field2.values) {
|
|
7286
7286
|
propValues[key] ?? (propValues[key] = /* @__PURE__ */ new Set());
|
|
7287
|
-
for (const v of
|
|
7287
|
+
for (const v of field2.values)
|
|
7288
7288
|
propValues[key].add(v);
|
|
7289
7289
|
}
|
|
7290
7290
|
}
|
|
@@ -19031,6 +19031,51 @@ var hostInteractionIdSchema = opaqueIdSchema.brand();
|
|
|
19031
19031
|
var threadPrewarmDiscardParamsSchema = external_exports.object({ threadId: hostThreadIdSchema });
|
|
19032
19032
|
var threadPrewarmDiscardResultSchema = external_exports.object({ discarded: external_exports.boolean() });
|
|
19033
19033
|
|
|
19034
|
+
// ../../shared-contracts/dist/thread-questions.js
|
|
19035
|
+
var field = external_exports.discriminatedUnion("type", [
|
|
19036
|
+
external_exports.object({
|
|
19037
|
+
id: external_exports.string().min(1),
|
|
19038
|
+
type: external_exports.literal("choice"),
|
|
19039
|
+
prompt: external_exports.string(),
|
|
19040
|
+
options: external_exports.array(external_exports.object({
|
|
19041
|
+
value: external_exports.string().min(1),
|
|
19042
|
+
label: external_exports.string(),
|
|
19043
|
+
description: external_exports.string().optional()
|
|
19044
|
+
})).min(1),
|
|
19045
|
+
multiple: external_exports.boolean(),
|
|
19046
|
+
allowOther: external_exports.boolean(),
|
|
19047
|
+
optional: external_exports.boolean()
|
|
19048
|
+
}),
|
|
19049
|
+
external_exports.object({
|
|
19050
|
+
id: external_exports.string().min(1),
|
|
19051
|
+
type: external_exports.literal("text"),
|
|
19052
|
+
prompt: external_exports.string(),
|
|
19053
|
+
multiline: external_exports.boolean(),
|
|
19054
|
+
secret: external_exports.literal(false),
|
|
19055
|
+
optional: external_exports.boolean(),
|
|
19056
|
+
placeholder: external_exports.string().optional(),
|
|
19057
|
+
prefill: external_exports.string().optional()
|
|
19058
|
+
})
|
|
19059
|
+
]);
|
|
19060
|
+
var threadQuestionSchema = external_exports.object({
|
|
19061
|
+
interactionId: external_exports.string().min(1),
|
|
19062
|
+
turnId: external_exports.string().min(1),
|
|
19063
|
+
title: external_exports.string().optional(),
|
|
19064
|
+
questions: external_exports.array(field).min(1)
|
|
19065
|
+
}).refine(({ questions }) => questions.some((q) => q.type === "choice" && q.multiple), {
|
|
19066
|
+
message: "Shared cards require at least one multi-select question"
|
|
19067
|
+
});
|
|
19068
|
+
var threadQuestionsListParamsSchema = external_exports.strictObject({ threadId: external_exports.string().min(1) });
|
|
19069
|
+
var threadQuestionsResultSchema = external_exports.object({ questions: external_exports.array(threadQuestionSchema) });
|
|
19070
|
+
var threadQuestionRespondParamsSchema = external_exports.strictObject({
|
|
19071
|
+
threadId: external_exports.string().min(1),
|
|
19072
|
+
turnId: external_exports.string().min(1),
|
|
19073
|
+
interactionId: external_exports.string().min(1),
|
|
19074
|
+
answers: external_exports.record(external_exports.string(), external_exports.array(external_exports.string())),
|
|
19075
|
+
cancelled: external_exports.boolean().default(false)
|
|
19076
|
+
});
|
|
19077
|
+
var threadQuestionRespondResultSchema = external_exports.object({ accepted: external_exports.literal(true) });
|
|
19078
|
+
|
|
19034
19079
|
// ../../shared-contracts/dist/console.js
|
|
19035
19080
|
var consoleAnnouncementSchema = external_exports.strictObject({
|
|
19036
19081
|
title: external_exports.string().trim().min(1).max(200),
|
|
@@ -20390,26 +20435,26 @@ function parseHostUsage(value) {
|
|
|
20390
20435
|
}
|
|
20391
20436
|
}
|
|
20392
20437
|
const indicators = value.composerIndicators === void 0 ? {} : { composerIndicators: composerIndicatorsSchema.parse(value.composerIndicators) };
|
|
20393
|
-
for (const
|
|
20438
|
+
for (const field2 of [
|
|
20394
20439
|
"totalCredits",
|
|
20395
20440
|
"contextUsagePercent",
|
|
20396
20441
|
"apiOutputTokensPerSecond"
|
|
20397
20442
|
]) {
|
|
20398
|
-
const candidate = value[
|
|
20443
|
+
const candidate = value[field2];
|
|
20399
20444
|
if (candidate !== void 0 && (typeof candidate !== "number" || !Number.isFinite(candidate) || candidate < 0)) {
|
|
20400
|
-
throw new Error(`Harness Usage '${
|
|
20445
|
+
throw new Error(`Harness Usage '${field2}' must be a finite non-negative number`);
|
|
20401
20446
|
}
|
|
20402
20447
|
}
|
|
20403
|
-
for (const
|
|
20404
|
-
const candidate = value[
|
|
20448
|
+
for (const field2 of tokenFields) {
|
|
20449
|
+
const candidate = value[field2];
|
|
20405
20450
|
if (candidate !== void 0 && (typeof candidate !== "number" || !Number.isSafeInteger(candidate) || candidate < 0)) {
|
|
20406
|
-
throw new Error(`Harness Usage '${
|
|
20451
|
+
throw new Error(`Harness Usage '${field2}' must be a non-negative safe integer`);
|
|
20407
20452
|
}
|
|
20408
20453
|
}
|
|
20409
|
-
for (const
|
|
20410
|
-
const candidate = value[
|
|
20454
|
+
for (const field2 of safeIntegerFields) {
|
|
20455
|
+
const candidate = value[field2];
|
|
20411
20456
|
if (candidate !== void 0 && (typeof candidate !== "number" || !Number.isSafeInteger(candidate) || candidate < 0)) {
|
|
20412
|
-
throw new Error(`Harness Usage '${
|
|
20457
|
+
throw new Error(`Harness Usage '${field2}' must be a non-negative safe integer`);
|
|
20413
20458
|
}
|
|
20414
20459
|
}
|
|
20415
20460
|
if (value.outputTokensPerSecond !== void 0 && (typeof value.outputTokensPerSecond !== "number" || !Number.isFinite(value.outputTokensPerSecond) || value.outputTokensPerSecond < 0)) {
|
|
@@ -20418,10 +20463,10 @@ function parseHostUsage(value) {
|
|
|
20418
20463
|
if (value.totalCostUsd !== void 0 && (typeof value.totalCostUsd !== "number" || !Number.isFinite(value.totalCostUsd) || value.totalCostUsd < 0)) {
|
|
20419
20464
|
throw new Error("Harness Usage 'totalCostUsd' must be a finite non-negative number");
|
|
20420
20465
|
}
|
|
20421
|
-
for (const
|
|
20422
|
-
const candidate = value[
|
|
20466
|
+
for (const field2 of percentFields) {
|
|
20467
|
+
const candidate = value[field2];
|
|
20423
20468
|
if (candidate !== void 0 && (typeof candidate !== "number" || !Number.isFinite(candidate) || candidate < 0 || candidate > 100)) {
|
|
20424
|
-
throw new Error(`Harness Usage '${
|
|
20469
|
+
throw new Error(`Harness Usage '${field2}' must be between 0 and 100`);
|
|
20425
20470
|
}
|
|
20426
20471
|
}
|
|
20427
20472
|
if (value.sessionCacheUsage !== void 0) {
|
|
@@ -20492,19 +20537,19 @@ function parseHostUsageRequest(value) {
|
|
|
20492
20537
|
if (typeof value.requestId !== "string" || value.requestId.length === 0) {
|
|
20493
20538
|
throw new Error("Harness Usage request 'requestId' must be a non-empty string");
|
|
20494
20539
|
}
|
|
20495
|
-
for (const
|
|
20496
|
-
const candidate = value[
|
|
20540
|
+
for (const field2 of ["model", "provider"]) {
|
|
20541
|
+
const candidate = value[field2];
|
|
20497
20542
|
if (candidate !== void 0 && (typeof candidate !== "string" || candidate.length === 0)) {
|
|
20498
|
-
throw new Error(`Harness Usage request '${
|
|
20543
|
+
throw new Error(`Harness Usage request '${field2}' must be a non-empty string`);
|
|
20499
20544
|
}
|
|
20500
20545
|
}
|
|
20501
20546
|
if (value.historical !== void 0 && typeof value.historical !== "boolean") {
|
|
20502
20547
|
throw new Error("Harness Usage request 'historical' must be a boolean");
|
|
20503
20548
|
}
|
|
20504
|
-
for (const
|
|
20505
|
-
const candidate = value[
|
|
20549
|
+
for (const field2 of requestTokenFields) {
|
|
20550
|
+
const candidate = value[field2];
|
|
20506
20551
|
if (candidate !== void 0 && (typeof candidate !== "number" || !Number.isSafeInteger(candidate) || candidate < 0)) {
|
|
20507
|
-
throw new Error(`Harness Usage request '${
|
|
20552
|
+
throw new Error(`Harness Usage request '${field2}' must be a non-negative safe integer`);
|
|
20508
20553
|
}
|
|
20509
20554
|
}
|
|
20510
20555
|
if (value.inputTokens === void 0 || value.outputTokens === void 0) {
|
|
@@ -21319,9 +21364,9 @@ var DEEPSEEK_USAGE_COUNTERS = [
|
|
|
21319
21364
|
"reasoningOutputTokens"
|
|
21320
21365
|
];
|
|
21321
21366
|
function mergeDeepSeekUsage(current, next) {
|
|
21322
|
-
const counters = Object.fromEntries(DEEPSEEK_USAGE_COUNTERS.flatMap((
|
|
21323
|
-
const value = (current?.[
|
|
21324
|
-
return current?.[
|
|
21367
|
+
const counters = Object.fromEntries(DEEPSEEK_USAGE_COUNTERS.flatMap((field2) => {
|
|
21368
|
+
const value = (current?.[field2] ?? 0) + (next[field2] ?? 0);
|
|
21369
|
+
return current?.[field2] !== void 0 || next[field2] !== void 0 ? [[field2, value]] : [];
|
|
21325
21370
|
}));
|
|
21326
21371
|
const context = next.contextUsedTokens !== void 0 && next.contextWindowTokens !== void 0 ? {
|
|
21327
21372
|
contextUsedTokens: next.contextUsedTokens,
|
|
@@ -21733,7 +21778,7 @@ function onlyKeys(value, required2, optional2 = []) {
|
|
|
21733
21778
|
return required2.every((key) => Object.hasOwn(value, key)) && Reflect.ownKeys(value).every((key) => typeof key === "string" && allowed.has(key));
|
|
21734
21779
|
}
|
|
21735
21780
|
function requiredFields(value, fields) {
|
|
21736
|
-
if (fields.some((
|
|
21781
|
+
if (fields.some((field2) => !Object.hasOwn(value, field2)))
|
|
21737
21782
|
throw invalid("required fields");
|
|
21738
21783
|
}
|
|
21739
21784
|
function assertJsonValue2(value, label) {
|
|
@@ -22057,9 +22102,9 @@ function validateTeamPayload(type, data) {
|
|
|
22057
22102
|
identifier(value.id, "team payload id");
|
|
22058
22103
|
if (key === "member") {
|
|
22059
22104
|
requiredOptionalKeys(value, ["id", "name", "description", "provider", "context", "phase"], ["error"]);
|
|
22060
|
-
for (const
|
|
22061
|
-
if (typeof value[
|
|
22062
|
-
throw invalid(`team member ${
|
|
22105
|
+
for (const field2 of ["name", "description", "provider"])
|
|
22106
|
+
if (typeof value[field2] !== "string")
|
|
22107
|
+
throw invalid(`team member ${field2}`);
|
|
22063
22108
|
if (!["fresh", "fork"].includes(value.context) || !["provisioning", "active", "failed"].includes(value.phase) || value.error !== void 0 && typeof value.error !== "string")
|
|
22064
22109
|
throw invalid("team member");
|
|
22065
22110
|
} else if (key === "task") {
|
|
@@ -22073,8 +22118,8 @@ function validateTeamPayload(type, data) {
|
|
|
22073
22118
|
stringArray(value.writeScopes, "team task writeScopes");
|
|
22074
22119
|
} else {
|
|
22075
22120
|
exactKeys(value, ["id", "senderId", "senderName", "targetId", "content"]);
|
|
22076
|
-
for (const
|
|
22077
|
-
identifier(value[
|
|
22121
|
+
for (const field2 of ["senderId", "senderName", "targetId"])
|
|
22122
|
+
identifier(value[field2], `team message ${field2}`);
|
|
22078
22123
|
validateBlocks(value.content);
|
|
22079
22124
|
}
|
|
22080
22125
|
}
|
|
@@ -28076,7 +28121,7 @@ function validateToolResultMessage(value, profile) {
|
|
|
28076
28121
|
return callId;
|
|
28077
28122
|
}
|
|
28078
28123
|
function requiredFields2(value, fields) {
|
|
28079
|
-
if (fields.some((
|
|
28124
|
+
if (fields.some((field2) => !Object.hasOwn(value, field2))) {
|
|
28080
28125
|
fail("Modern history known event omitted a required field");
|
|
28081
28126
|
}
|
|
28082
28127
|
}
|
|
@@ -28101,7 +28146,7 @@ function validUsage(value) {
|
|
|
28101
28146
|
if (!nonNegativeSafeInteger2(value.inputTokens) || !nonNegativeSafeInteger2(value.outputTokens)) {
|
|
28102
28147
|
return false;
|
|
28103
28148
|
}
|
|
28104
|
-
return fields.slice(2).every((
|
|
28149
|
+
return fields.slice(2).every((field2) => value[field2] === void 0 || nonNegativeSafeInteger2(value[field2]));
|
|
28105
28150
|
}
|
|
28106
28151
|
function validateTurnReason(value) {
|
|
28107
28152
|
if (!isRecord4(value) || typeof value.kind !== "string") {
|