@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.
@@ -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 field = shape[key]._zod;
3384
- if (field.values) {
3383
+ const field2 = shape[key]._zod;
3384
+ if (field2.values) {
3385
3385
  propValues[key] ?? (propValues[key] = /* @__PURE__ */ new Set());
3386
- for (const v of field.values)
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 local date inside the range. */
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 local date of the range; null for all time. */
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
- /** Local weekday (0 = Sunday) and hour, all filters applied. */
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
- for (const field of [
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[field];
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 '${field}' must be a finite non-negative number`);
16518
+ throw new Error(`Harness Usage '${field2}' must be a finite non-negative number`);
16407
16519
  }
16408
16520
  }
16409
- for (const field of tokenFields) {
16410
- const candidate = value[field];
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 '${field}' must be a non-negative safe integer`);
16524
+ throw new Error(`Harness Usage '${field2}' must be a non-negative safe integer`);
16413
16525
  }
16414
16526
  }
16415
- for (const field of safeIntegerFields) {
16416
- const candidate = value[field];
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 '${field}' must be a non-negative safe integer`);
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 field of percentFields) {
16428
- const candidate = value[field];
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 '${field}' must be between 0 and 100`);
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
  }