@codexhost/cli-win32-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.exe +0 -0
- package/libexec/codexhost-node-repl.exe +0 -0
- package/libexec/codexhost-shim.exe +0 -0
- package/libexec/codexhost-updater.exe +0 -0
- package/package.json +1 -1
|
@@ -15623,10 +15623,10 @@ var $ZodObject = /* @__PURE__ */ $constructor("$ZodObject", (inst, def) => {
|
|
|
15623
15623
|
const shape = def.shape;
|
|
15624
15624
|
const propValues = {};
|
|
15625
15625
|
for (const key in shape) {
|
|
15626
|
-
const
|
|
15627
|
-
if (
|
|
15626
|
+
const field2 = shape[key]._zod;
|
|
15627
|
+
if (field2.values) {
|
|
15628
15628
|
propValues[key] ?? (propValues[key] = /* @__PURE__ */ new Set());
|
|
15629
|
-
for (const v3 of
|
|
15629
|
+
for (const v3 of field2.values)
|
|
15630
15630
|
propValues[key].add(v3);
|
|
15631
15631
|
}
|
|
15632
15632
|
}
|
|
@@ -27245,10 +27245,19 @@ var model = external_exports.string().min(1).max(512);
|
|
|
27245
27245
|
var project = external_exports.string().min(1).max(4096);
|
|
27246
27246
|
var usageStatisticsParamsSchema = external_exports.strictObject({
|
|
27247
27247
|
range: external_exports.enum(USAGE_STATISTICS_RANGES),
|
|
27248
|
+
/** Display timezone for ranges, dates and hourly buckets; omitted means the Host's local zone. */
|
|
27249
|
+
timeZone: external_exports.string().min(1).max(128).refine((value) => {
|
|
27250
|
+
try {
|
|
27251
|
+
new Intl.DateTimeFormat("en", { timeZone: value });
|
|
27252
|
+
return true;
|
|
27253
|
+
} catch {
|
|
27254
|
+
return false;
|
|
27255
|
+
}
|
|
27256
|
+
}, "Unsupported usage statistics timezone").optional(),
|
|
27248
27257
|
harness: harness.optional(),
|
|
27249
27258
|
model: model.nullable().optional(),
|
|
27250
27259
|
project: project.nullable().optional(),
|
|
27251
|
-
/** One
|
|
27260
|
+
/** One date in the query timezone inside the range. */
|
|
27252
27261
|
date: localDate.optional()
|
|
27253
27262
|
});
|
|
27254
27263
|
var usageStatisticsTotalsSchema = external_exports.strictObject({
|
|
@@ -27284,7 +27293,7 @@ var usageStatisticsSessionSchema = external_exports.strictObject({
|
|
|
27284
27293
|
});
|
|
27285
27294
|
var usageStatisticsResultSchema = external_exports.strictObject({
|
|
27286
27295
|
range: external_exports.enum(USAGE_STATISTICS_RANGES),
|
|
27287
|
-
/** First
|
|
27296
|
+
/** First date in the query timezone (Host local when omitted); null for all time. */
|
|
27288
27297
|
from: localDate.nullable(),
|
|
27289
27298
|
to: localDate,
|
|
27290
27299
|
/** The filters these figures apply, echoed so a late answer to older filters is recognised. */
|
|
@@ -27324,7 +27333,7 @@ var usageStatisticsResultSchema = external_exports.strictObject({
|
|
|
27324
27333
|
totals: usageStatisticsTotalsSchema,
|
|
27325
27334
|
/** Each date and Harness of the range: every filter except the day. */
|
|
27326
27335
|
daily: external_exports.array(external_exports.strictObject({ date: localDate, harness, ...totals })).max(2e5),
|
|
27327
|
-
/**
|
|
27336
|
+
/** Weekday (0 = Sunday) and hour in the query timezone, all filters applied. */
|
|
27328
27337
|
hourly: external_exports.array(external_exports.strictObject({
|
|
27329
27338
|
weekday: external_exports.number().int().min(0).max(6),
|
|
27330
27339
|
hour: external_exports.number().int().min(0).max(23),
|
|
@@ -27364,6 +27373,51 @@ var hostInteractionIdSchema = opaqueIdSchema.brand();
|
|
|
27364
27373
|
var threadPrewarmDiscardParamsSchema = external_exports.object({ threadId: hostThreadIdSchema });
|
|
27365
27374
|
var threadPrewarmDiscardResultSchema = external_exports.object({ discarded: external_exports.boolean() });
|
|
27366
27375
|
|
|
27376
|
+
// ../../shared-contracts/dist/thread-questions.js
|
|
27377
|
+
var field = external_exports.discriminatedUnion("type", [
|
|
27378
|
+
external_exports.object({
|
|
27379
|
+
id: external_exports.string().min(1),
|
|
27380
|
+
type: external_exports.literal("choice"),
|
|
27381
|
+
prompt: external_exports.string(),
|
|
27382
|
+
options: external_exports.array(external_exports.object({
|
|
27383
|
+
value: external_exports.string().min(1),
|
|
27384
|
+
label: external_exports.string(),
|
|
27385
|
+
description: external_exports.string().optional()
|
|
27386
|
+
})).min(1),
|
|
27387
|
+
multiple: external_exports.boolean(),
|
|
27388
|
+
allowOther: external_exports.boolean(),
|
|
27389
|
+
optional: external_exports.boolean()
|
|
27390
|
+
}),
|
|
27391
|
+
external_exports.object({
|
|
27392
|
+
id: external_exports.string().min(1),
|
|
27393
|
+
type: external_exports.literal("text"),
|
|
27394
|
+
prompt: external_exports.string(),
|
|
27395
|
+
multiline: external_exports.boolean(),
|
|
27396
|
+
secret: external_exports.literal(false),
|
|
27397
|
+
optional: external_exports.boolean(),
|
|
27398
|
+
placeholder: external_exports.string().optional(),
|
|
27399
|
+
prefill: external_exports.string().optional()
|
|
27400
|
+
})
|
|
27401
|
+
]);
|
|
27402
|
+
var threadQuestionSchema = external_exports.object({
|
|
27403
|
+
interactionId: external_exports.string().min(1),
|
|
27404
|
+
turnId: external_exports.string().min(1),
|
|
27405
|
+
title: external_exports.string().optional(),
|
|
27406
|
+
questions: external_exports.array(field).min(1)
|
|
27407
|
+
}).refine(({ questions }) => questions.some((q3) => q3.type === "choice" && q3.multiple), {
|
|
27408
|
+
message: "Shared cards require at least one multi-select question"
|
|
27409
|
+
});
|
|
27410
|
+
var threadQuestionsListParamsSchema = external_exports.strictObject({ threadId: external_exports.string().min(1) });
|
|
27411
|
+
var threadQuestionsResultSchema = external_exports.object({ questions: external_exports.array(threadQuestionSchema) });
|
|
27412
|
+
var threadQuestionRespondParamsSchema = external_exports.strictObject({
|
|
27413
|
+
threadId: external_exports.string().min(1),
|
|
27414
|
+
turnId: external_exports.string().min(1),
|
|
27415
|
+
interactionId: external_exports.string().min(1),
|
|
27416
|
+
answers: external_exports.record(external_exports.string(), external_exports.array(external_exports.string())),
|
|
27417
|
+
cancelled: external_exports.boolean().default(false)
|
|
27418
|
+
});
|
|
27419
|
+
var threadQuestionRespondResultSchema = external_exports.object({ accepted: external_exports.literal(true) });
|
|
27420
|
+
|
|
27367
27421
|
// ../../shared-contracts/dist/console.js
|
|
27368
27422
|
var consoleAnnouncementSchema = external_exports.strictObject({
|
|
27369
27423
|
title: external_exports.string().trim().min(1).max(200),
|
|
@@ -27384,6 +27438,8 @@ var CONSOLE_HOST_METHODS = Object.freeze([
|
|
|
27384
27438
|
"codexhost/harness/display-settings/set",
|
|
27385
27439
|
"codexhost/harness/inspect",
|
|
27386
27440
|
"codexhost/harness/installation",
|
|
27441
|
+
"codexhost/harness/installation/start",
|
|
27442
|
+
"codexhost/harness/installation/status",
|
|
27387
27443
|
"codexhost/harness/launch-settings/get",
|
|
27388
27444
|
"codexhost/harness/launch-settings/set",
|
|
27389
27445
|
"codexhost/harness/web-ui/open",
|
|
@@ -27459,7 +27515,18 @@ var threadManualCompactionStartedSchema = external_exports.strictObject({
|
|
|
27459
27515
|
var nonNegativeSafeIntegerSchema = external_exports.number().int().safe().nonnegative();
|
|
27460
27516
|
var finiteNonNegativeNumberSchema = external_exports.number().finite().nonnegative();
|
|
27461
27517
|
var cacheHitRatePercentSchema = external_exports.number().finite().min(0).max(100);
|
|
27518
|
+
var indicatorTextSchema = (maximum) => harnessLocalizedTextSchema.refine((entries) => Object.values(entries).every((text) => text.length <= maximum));
|
|
27519
|
+
var composerIndicatorsSchema = external_exports.array(external_exports.object({
|
|
27520
|
+
kind: external_exports.literal("countdown"),
|
|
27521
|
+
id: external_exports.string().min(1).max(64),
|
|
27522
|
+
expiresAtUnix: nonNegativeSafeIntegerSchema,
|
|
27523
|
+
label: indicatorTextSchema(256).optional(),
|
|
27524
|
+
tooltip: indicatorTextSchema(1024).optional()
|
|
27525
|
+
}).strict()).max(2).refine((entries) => new Set(entries.map(({ id }) => id)).size === entries.length, {
|
|
27526
|
+
message: "Composer indicator IDs must be unique"
|
|
27527
|
+
});
|
|
27462
27528
|
var threadUsageSnapshotSchema = external_exports.object({
|
|
27529
|
+
composerIndicators: composerIndicatorsSchema.optional(),
|
|
27463
27530
|
inputTokens: nonNegativeSafeIntegerSchema.optional(),
|
|
27464
27531
|
cachedInputTokens: nonNegativeSafeIntegerSchema.optional(),
|
|
27465
27532
|
cacheWriteInputTokens: nonNegativeSafeIntegerSchema.optional(),
|
|
@@ -27867,7 +27934,9 @@ var harnessSessionCapabilitiesSchema = external_exports.object({
|
|
|
27867
27934
|
}).strict().optional(),
|
|
27868
27935
|
autonomousTurns: external_exports.object({
|
|
27869
27936
|
observe: external_exports.boolean()
|
|
27870
|
-
}).strict().optional()
|
|
27937
|
+
}).strict().optional(),
|
|
27938
|
+
/** True only when `turn.steer` delivers input into the active Turn through a native primitive. */
|
|
27939
|
+
steer: external_exports.boolean().optional()
|
|
27871
27940
|
}).strict();
|
|
27872
27941
|
var harnessConfigurationStateSchema = external_exports.object({
|
|
27873
27942
|
effectiveModel: harnessModelRefSchema.optional(),
|
|
@@ -27914,7 +27983,9 @@ var harnessInspectionSchema = external_exports.union([
|
|
|
27914
27983
|
var harnessInspectParamsSchema = external_exports.object({
|
|
27915
27984
|
harnessId: harnessIdSchema,
|
|
27916
27985
|
cwd: nonBlankTextSchema2.max(16384).optional(),
|
|
27917
|
-
refresh: external_exports.boolean().optional()
|
|
27986
|
+
refresh: external_exports.boolean().optional(),
|
|
27987
|
+
/** `availability` asks only whether the Harness can run; see `InspectHarnessInput.purpose`. */
|
|
27988
|
+
purpose: external_exports.literal("availability").optional()
|
|
27918
27989
|
}).strict();
|
|
27919
27990
|
var harnessWebUiOpenParamsSchema = external_exports.object({
|
|
27920
27991
|
harnessId: harnessIdSchema
|
|
@@ -27997,6 +28068,15 @@ var threadOwnershipListResultSchema = external_exports.object({
|
|
|
27997
28068
|
seen.add(thread.threadId);
|
|
27998
28069
|
}
|
|
27999
28070
|
});
|
|
28071
|
+
var threadSteeringInspectParamsSchema = external_exports.object({
|
|
28072
|
+
threadId: hostThreadIdSchema,
|
|
28073
|
+
/** The text about to be steered; a Harness command always stops and restarts. */
|
|
28074
|
+
text: external_exports.string().optional()
|
|
28075
|
+
}).strict();
|
|
28076
|
+
var threadSteerDeliverySchema = external_exports.enum(["activeTurn", "newTurn"]);
|
|
28077
|
+
var threadSteeringInspectResultSchema = external_exports.object({
|
|
28078
|
+
delivery: external_exports.enum(["official", "activeTurn", "newTurn"])
|
|
28079
|
+
}).strict();
|
|
28000
28080
|
|
|
28001
28081
|
// ../../shared-contracts/dist/harness-plugins.js
|
|
28002
28082
|
var HARNESS_PLUGIN_MANIFEST_MAX_BYTES = 32 * 1024;
|
|
@@ -28098,6 +28178,10 @@ var harnessInstallationStateSchema = external_exports.object({
|
|
|
28098
28178
|
latestVersion: external_exports.string().min(1).max(128),
|
|
28099
28179
|
updateAvailable: external_exports.boolean(),
|
|
28100
28180
|
canUpdate: external_exports.boolean(),
|
|
28181
|
+
/** Defaults to CLI; some Harnesses ship only inside a desktop application. */
|
|
28182
|
+
versionKind: external_exports.enum(["cli", "application"]).optional(),
|
|
28183
|
+
/** Official download opened by the user; does not imply an automatic installation. */
|
|
28184
|
+
manualUpdateUrl: external_exports.url().max(2048).refine((value) => /^https:\/\/[^/?#@]+(?:[/?#]|$)/iu.test(value), "Manual updates require a credential-free HTTPS URL").optional(),
|
|
28101
28185
|
// Adapter-owned diagnostic text; UI uses messageCode rather than displaying it verbatim.
|
|
28102
28186
|
message: external_exports.string().max(2048).optional(),
|
|
28103
28187
|
messageCode: external_exports.string().min(1).max(128).optional(),
|
|
@@ -28105,6 +28189,20 @@ var harnessInstallationStateSchema = external_exports.object({
|
|
|
28105
28189
|
notice: harnessLocalizedTextSchema.optional(),
|
|
28106
28190
|
latestVersionKind: external_exports.enum(["unknown", "tracking-branch"]).optional()
|
|
28107
28191
|
}).strict();
|
|
28192
|
+
var harnessInstallationTaskParamsSchema = external_exports.object({ taskId: external_exports.string().uuid() }).strict();
|
|
28193
|
+
var harnessInstallationTaskSchema = external_exports.discriminatedUnion("status", [
|
|
28194
|
+
external_exports.object({ taskId: external_exports.string().uuid(), status: external_exports.literal("running") }).strict(),
|
|
28195
|
+
external_exports.object({
|
|
28196
|
+
taskId: external_exports.string().uuid(),
|
|
28197
|
+
status: external_exports.literal("succeeded"),
|
|
28198
|
+
result: harnessInstallationStateSchema
|
|
28199
|
+
}).strict(),
|
|
28200
|
+
external_exports.object({
|
|
28201
|
+
taskId: external_exports.string().uuid(),
|
|
28202
|
+
status: external_exports.literal("failed"),
|
|
28203
|
+
error: external_exports.object({ code: external_exports.number().int(), message: external_exports.string().min(1).max(2048) }).strict()
|
|
28204
|
+
}).strict()
|
|
28205
|
+
]);
|
|
28108
28206
|
|
|
28109
28207
|
// ../../shared-contracts/dist/codex-accounts.js
|
|
28110
28208
|
var accountIdSchema = external_exports.string().min(1).max(256).regex(/^[A-Za-z0-9._~-]+$/u);
|
|
@@ -29263,6 +29361,18 @@ var HarnessOutputChannel = class {
|
|
|
29263
29361
|
}
|
|
29264
29362
|
};
|
|
29265
29363
|
|
|
29364
|
+
// ../../harness-adapter/dist/steer.js
|
|
29365
|
+
function unsupportedSteer(harnessLabel) {
|
|
29366
|
+
return {
|
|
29367
|
+
ok: false,
|
|
29368
|
+
error: {
|
|
29369
|
+
code: "unsupported",
|
|
29370
|
+
message: `${harnessLabel} cannot steer an active Turn natively`,
|
|
29371
|
+
retryable: false
|
|
29372
|
+
}
|
|
29373
|
+
};
|
|
29374
|
+
}
|
|
29375
|
+
|
|
29266
29376
|
// ../../harness-adapter/dist/usage.js
|
|
29267
29377
|
var tokenFields = [
|
|
29268
29378
|
"inputTokens",
|
|
@@ -29290,6 +29400,7 @@ var usageFields = /* @__PURE__ */ new Set([
|
|
|
29290
29400
|
...safeIntegerFields,
|
|
29291
29401
|
...percentFields,
|
|
29292
29402
|
"sessionCacheUsage",
|
|
29403
|
+
"composerIndicators",
|
|
29293
29404
|
"totalCostUsd",
|
|
29294
29405
|
"totalCredits",
|
|
29295
29406
|
"contextUsagePercent",
|
|
@@ -29312,26 +29423,27 @@ function parseHostUsage(value) {
|
|
|
29312
29423
|
throw new Error(`Harness Usage contains unknown field '${key}'`);
|
|
29313
29424
|
}
|
|
29314
29425
|
}
|
|
29315
|
-
|
|
29426
|
+
const indicators = value.composerIndicators === void 0 ? {} : { composerIndicators: composerIndicatorsSchema.parse(value.composerIndicators) };
|
|
29427
|
+
for (const field2 of [
|
|
29316
29428
|
"totalCredits",
|
|
29317
29429
|
"contextUsagePercent",
|
|
29318
29430
|
"apiOutputTokensPerSecond"
|
|
29319
29431
|
]) {
|
|
29320
|
-
const candidate = value[
|
|
29432
|
+
const candidate = value[field2];
|
|
29321
29433
|
if (candidate !== void 0 && (typeof candidate !== "number" || !Number.isFinite(candidate) || candidate < 0)) {
|
|
29322
|
-
throw new Error(`Harness Usage '${
|
|
29434
|
+
throw new Error(`Harness Usage '${field2}' must be a finite non-negative number`);
|
|
29323
29435
|
}
|
|
29324
29436
|
}
|
|
29325
|
-
for (const
|
|
29326
|
-
const candidate = value[
|
|
29437
|
+
for (const field2 of tokenFields) {
|
|
29438
|
+
const candidate = value[field2];
|
|
29327
29439
|
if (candidate !== void 0 && (typeof candidate !== "number" || !Number.isSafeInteger(candidate) || candidate < 0)) {
|
|
29328
|
-
throw new Error(`Harness Usage '${
|
|
29440
|
+
throw new Error(`Harness Usage '${field2}' must be a non-negative safe integer`);
|
|
29329
29441
|
}
|
|
29330
29442
|
}
|
|
29331
|
-
for (const
|
|
29332
|
-
const candidate = value[
|
|
29443
|
+
for (const field2 of safeIntegerFields) {
|
|
29444
|
+
const candidate = value[field2];
|
|
29333
29445
|
if (candidate !== void 0 && (typeof candidate !== "number" || !Number.isSafeInteger(candidate) || candidate < 0)) {
|
|
29334
|
-
throw new Error(`Harness Usage '${
|
|
29446
|
+
throw new Error(`Harness Usage '${field2}' must be a non-negative safe integer`);
|
|
29335
29447
|
}
|
|
29336
29448
|
}
|
|
29337
29449
|
if (value.outputTokensPerSecond !== void 0 && (typeof value.outputTokensPerSecond !== "number" || !Number.isFinite(value.outputTokensPerSecond) || value.outputTokensPerSecond < 0)) {
|
|
@@ -29340,10 +29452,10 @@ function parseHostUsage(value) {
|
|
|
29340
29452
|
if (value.totalCostUsd !== void 0 && (typeof value.totalCostUsd !== "number" || !Number.isFinite(value.totalCostUsd) || value.totalCostUsd < 0)) {
|
|
29341
29453
|
throw new Error("Harness Usage 'totalCostUsd' must be a finite non-negative number");
|
|
29342
29454
|
}
|
|
29343
|
-
for (const
|
|
29344
|
-
const candidate = value[
|
|
29455
|
+
for (const field2 of percentFields) {
|
|
29456
|
+
const candidate = value[field2];
|
|
29345
29457
|
if (candidate !== void 0 && (typeof candidate !== "number" || !Number.isFinite(candidate) || candidate < 0 || candidate > 100)) {
|
|
29346
|
-
throw new Error(`Harness Usage '${
|
|
29458
|
+
throw new Error(`Harness Usage '${field2}' must be between 0 and 100`);
|
|
29347
29459
|
}
|
|
29348
29460
|
}
|
|
29349
29461
|
if (value.sessionCacheUsage !== void 0) {
|
|
@@ -29382,9 +29494,9 @@ function parseHostUsage(value) {
|
|
|
29382
29494
|
if (value.costSource !== "publicPrice") {
|
|
29383
29495
|
throw new Error("Harness Usage 'unpricedModels' must be provided with a 'publicPrice' cost");
|
|
29384
29496
|
}
|
|
29385
|
-
return { ...value, unpricedModels: [...models] };
|
|
29497
|
+
return { ...value, ...indicators, unpricedModels: [...models] };
|
|
29386
29498
|
}
|
|
29387
|
-
return { ...value };
|
|
29499
|
+
return { ...value, ...indicators };
|
|
29388
29500
|
}
|
|
29389
29501
|
var requestTokenFields = [
|
|
29390
29502
|
"inputTokens",
|
|
@@ -39162,11 +39274,11 @@ var McpServer = class {
|
|
|
39162
39274
|
return EMPTY_COMPLETION_RESULT;
|
|
39163
39275
|
}
|
|
39164
39276
|
const promptShape = getObjectShape(prompt.argsSchema);
|
|
39165
|
-
const
|
|
39166
|
-
if (!isCompletable(
|
|
39277
|
+
const field2 = promptShape?.[request.params.argument.name];
|
|
39278
|
+
if (!isCompletable(field2)) {
|
|
39167
39279
|
return EMPTY_COMPLETION_RESULT;
|
|
39168
39280
|
}
|
|
39169
|
-
const completer = getCompleter(
|
|
39281
|
+
const completer = getCompleter(field2);
|
|
39170
39282
|
if (!completer) {
|
|
39171
39283
|
return EMPTY_COMPLETION_RESULT;
|
|
39172
39284
|
}
|
|
@@ -39439,8 +39551,8 @@ var McpServer = class {
|
|
|
39439
39551
|
};
|
|
39440
39552
|
this._registeredPrompts[name] = registeredPrompt;
|
|
39441
39553
|
if (argsSchema) {
|
|
39442
|
-
const hasCompletable = Object.values(argsSchema).some((
|
|
39443
|
-
const inner =
|
|
39554
|
+
const hasCompletable = Object.values(argsSchema).some((field2) => {
|
|
39555
|
+
const inner = field2 instanceof ZodOptional ? field2._def?.innerType : field2;
|
|
39444
39556
|
return isCompletable(inner);
|
|
39445
39557
|
});
|
|
39446
39558
|
if (hasCompletable) {
|
|
@@ -39649,9 +39761,9 @@ function promptArgumentsFromSchema(schema) {
|
|
|
39649
39761
|
const shape = getObjectShape(schema);
|
|
39650
39762
|
if (!shape)
|
|
39651
39763
|
return [];
|
|
39652
|
-
return Object.entries(shape).map(([name,
|
|
39653
|
-
const description = getSchemaDescription(
|
|
39654
|
-
const isOptional = isSchemaOptional(
|
|
39764
|
+
return Object.entries(shape).map(([name, field2]) => {
|
|
39765
|
+
const description = getSchemaDescription(field2);
|
|
39766
|
+
const isOptional = isSchemaOptional(field2);
|
|
39655
39767
|
return {
|
|
39656
39768
|
name,
|
|
39657
39769
|
description,
|
|
@@ -52272,6 +52384,8 @@ var QoderSession = class {
|
|
|
52272
52384
|
};
|
|
52273
52385
|
}
|
|
52274
52386
|
switch (command.type) {
|
|
52387
|
+
case "turn.steer":
|
|
52388
|
+
return unsupportedSteer("Qoder");
|
|
52275
52389
|
case "turn.start": {
|
|
52276
52390
|
if (this.#activeTurn) {
|
|
52277
52391
|
return {
|
|
@@ -52982,10 +53096,13 @@ function usageSessionTitle(value) {
|
|
|
52982
53096
|
return void 0;
|
|
52983
53097
|
if (normalized.length <= MAX_SESSION_TITLE_LENGTH)
|
|
52984
53098
|
return normalized;
|
|
52985
|
-
|
|
52986
|
-
|
|
52987
|
-
|
|
52988
|
-
|
|
53099
|
+
let title = "";
|
|
53100
|
+
for (const character of normalized) {
|
|
53101
|
+
if (title.length + character.length >= MAX_SESSION_TITLE_LENGTH)
|
|
53102
|
+
break;
|
|
53103
|
+
title += character;
|
|
53104
|
+
}
|
|
53105
|
+
return `${title.trimEnd()}…`;
|
|
52989
53106
|
}
|
|
52990
53107
|
function sessionIdOk(value) {
|
|
52991
53108
|
return typeof value === "string" && value.length > 0 && value.length <= MAX_SESSION_ID_LENGTH;
|
|
@@ -53022,13 +53139,13 @@ function parseHarnessUsageEntry(value) {
|
|
|
53022
53139
|
}
|
|
53023
53140
|
if (!tokenCount(entry.inputTokens) || !tokenCount(entry.outputTokens))
|
|
53024
53141
|
return null;
|
|
53025
|
-
for (const
|
|
53142
|
+
for (const field2 of [
|
|
53026
53143
|
"cachedInputTokens",
|
|
53027
53144
|
"cacheWriteInputTokens",
|
|
53028
53145
|
"cacheWrite1hInputTokens",
|
|
53029
53146
|
"reasoningOutputTokens"
|
|
53030
53147
|
]) {
|
|
53031
|
-
if (entry[
|
|
53148
|
+
if (entry[field2] !== void 0 && !tokenCount(entry[field2]))
|
|
53032
53149
|
return null;
|
|
53033
53150
|
}
|
|
53034
53151
|
const cached2 = entry.cachedInputTokens ?? 0;
|