@codexhost/cli-linux-arm64 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.
@@ -15023,10 +15023,19 @@ var model = external_exports.string().min(1).max(512);
15023
15023
  var project = external_exports.string().min(1).max(4096);
15024
15024
  var usageStatisticsParamsSchema = external_exports.strictObject({
15025
15025
  range: external_exports.enum(USAGE_STATISTICS_RANGES),
15026
+ /** Display timezone for ranges, dates and hourly buckets; omitted means the Host's local zone. */
15027
+ timeZone: external_exports.string().min(1).max(128).refine((value) => {
15028
+ try {
15029
+ new Intl.DateTimeFormat("en", { timeZone: value });
15030
+ return true;
15031
+ } catch {
15032
+ return false;
15033
+ }
15034
+ }, "Unsupported usage statistics timezone").optional(),
15026
15035
  harness: harness.optional(),
15027
15036
  model: model.nullable().optional(),
15028
15037
  project: project.nullable().optional(),
15029
- /** One local date inside the range. */
15038
+ /** One date in the query timezone inside the range. */
15030
15039
  date: localDate.optional()
15031
15040
  });
15032
15041
  var usageStatisticsTotalsSchema = external_exports.strictObject({
@@ -15062,7 +15071,7 @@ var usageStatisticsSessionSchema = external_exports.strictObject({
15062
15071
  });
15063
15072
  var usageStatisticsResultSchema = external_exports.strictObject({
15064
15073
  range: external_exports.enum(USAGE_STATISTICS_RANGES),
15065
- /** First local date of the range; null for all time. */
15074
+ /** First date in the query timezone (Host local when omitted); null for all time. */
15066
15075
  from: localDate.nullable(),
15067
15076
  to: localDate,
15068
15077
  /** The filters these figures apply, echoed so a late answer to older filters is recognised. */
@@ -15102,7 +15111,7 @@ var usageStatisticsResultSchema = external_exports.strictObject({
15102
15111
  totals: usageStatisticsTotalsSchema,
15103
15112
  /** Each date and Harness of the range: every filter except the day. */
15104
15113
  daily: external_exports.array(external_exports.strictObject({ date: localDate, harness, ...totals })).max(2e5),
15105
- /** Local weekday (0 = Sunday) and hour, all filters applied. */
15114
+ /** Weekday (0 = Sunday) and hour in the query timezone, all filters applied. */
15106
15115
  hourly: external_exports.array(external_exports.strictObject({
15107
15116
  weekday: external_exports.number().int().min(0).max(6),
15108
15117
  hour: external_exports.number().int().min(0).max(23),
@@ -15162,6 +15171,8 @@ var CONSOLE_HOST_METHODS = Object.freeze([
15162
15171
  "codexhost/harness/display-settings/set",
15163
15172
  "codexhost/harness/inspect",
15164
15173
  "codexhost/harness/installation",
15174
+ "codexhost/harness/installation/start",
15175
+ "codexhost/harness/installation/status",
15165
15176
  "codexhost/harness/launch-settings/get",
15166
15177
  "codexhost/harness/launch-settings/set",
15167
15178
  "codexhost/harness/web-ui/open",
@@ -15237,7 +15248,18 @@ var threadManualCompactionStartedSchema = external_exports.strictObject({
15237
15248
  var nonNegativeSafeIntegerSchema = external_exports.number().int().safe().nonnegative();
15238
15249
  var finiteNonNegativeNumberSchema = external_exports.number().finite().nonnegative();
15239
15250
  var cacheHitRatePercentSchema = external_exports.number().finite().min(0).max(100);
15251
+ var indicatorTextSchema = (maximum) => harnessLocalizedTextSchema.refine((entries) => Object.values(entries).every((text2) => text2.length <= maximum));
15252
+ var composerIndicatorsSchema = external_exports.array(external_exports.object({
15253
+ kind: external_exports.literal("countdown"),
15254
+ id: external_exports.string().min(1).max(64),
15255
+ expiresAtUnix: nonNegativeSafeIntegerSchema,
15256
+ label: indicatorTextSchema(256).optional(),
15257
+ tooltip: indicatorTextSchema(1024).optional()
15258
+ }).strict()).max(2).refine((entries) => new Set(entries.map(({ id }) => id)).size === entries.length, {
15259
+ message: "Composer indicator IDs must be unique"
15260
+ });
15240
15261
  var threadUsageSnapshotSchema = external_exports.object({
15262
+ composerIndicators: composerIndicatorsSchema.optional(),
15241
15263
  inputTokens: nonNegativeSafeIntegerSchema.optional(),
15242
15264
  cachedInputTokens: nonNegativeSafeIntegerSchema.optional(),
15243
15265
  cacheWriteInputTokens: nonNegativeSafeIntegerSchema.optional(),
@@ -15645,7 +15667,9 @@ var harnessSessionCapabilitiesSchema = external_exports.object({
15645
15667
  }).strict().optional(),
15646
15668
  autonomousTurns: external_exports.object({
15647
15669
  observe: external_exports.boolean()
15648
- }).strict().optional()
15670
+ }).strict().optional(),
15671
+ /** True only when `turn.steer` delivers input into the active Turn through a native primitive. */
15672
+ steer: external_exports.boolean().optional()
15649
15673
  }).strict();
15650
15674
  var harnessConfigurationStateSchema = external_exports.object({
15651
15675
  effectiveModel: harnessModelRefSchema.optional(),
@@ -15692,7 +15716,9 @@ var harnessInspectionSchema = external_exports.union([
15692
15716
  var harnessInspectParamsSchema = external_exports.object({
15693
15717
  harnessId: harnessIdSchema,
15694
15718
  cwd: nonBlankTextSchema2.max(16384).optional(),
15695
- refresh: external_exports.boolean().optional()
15719
+ refresh: external_exports.boolean().optional(),
15720
+ /** `availability` asks only whether the Harness can run; see `InspectHarnessInput.purpose`. */
15721
+ purpose: external_exports.literal("availability").optional()
15696
15722
  }).strict();
15697
15723
  var harnessWebUiOpenParamsSchema = external_exports.object({
15698
15724
  harnessId: harnessIdSchema
@@ -15775,6 +15801,15 @@ var threadOwnershipListResultSchema = external_exports.object({
15775
15801
  seen.add(thread.threadId);
15776
15802
  }
15777
15803
  });
15804
+ var threadSteeringInspectParamsSchema = external_exports.object({
15805
+ threadId: hostThreadIdSchema,
15806
+ /** The text about to be steered; a Harness command always stops and restarts. */
15807
+ text: external_exports.string().optional()
15808
+ }).strict();
15809
+ var threadSteerDeliverySchema = external_exports.enum(["activeTurn", "newTurn"]);
15810
+ var threadSteeringInspectResultSchema = external_exports.object({
15811
+ delivery: external_exports.enum(["official", "activeTurn", "newTurn"])
15812
+ }).strict();
15778
15813
 
15779
15814
  // ../../shared-contracts/dist/harness-plugins.js
15780
15815
  var HARNESS_PLUGIN_MANIFEST_MAX_BYTES = 32 * 1024;
@@ -15876,6 +15911,10 @@ var harnessInstallationStateSchema = external_exports.object({
15876
15911
  latestVersion: external_exports.string().min(1).max(128),
15877
15912
  updateAvailable: external_exports.boolean(),
15878
15913
  canUpdate: external_exports.boolean(),
15914
+ /** Defaults to CLI; some Harnesses ship only inside a desktop application. */
15915
+ versionKind: external_exports.enum(["cli", "application"]).optional(),
15916
+ /** Official download opened by the user; does not imply an automatic installation. */
15917
+ manualUpdateUrl: external_exports.url().max(2048).refine((value) => /^https:\/\/[^/?#@]+(?:[/?#]|$)/iu.test(value), "Manual updates require a credential-free HTTPS URL").optional(),
15879
15918
  // Adapter-owned diagnostic text; UI uses messageCode rather than displaying it verbatim.
15880
15919
  message: external_exports.string().max(2048).optional(),
15881
15920
  messageCode: external_exports.string().min(1).max(128).optional(),
@@ -15883,6 +15922,20 @@ var harnessInstallationStateSchema = external_exports.object({
15883
15922
  notice: harnessLocalizedTextSchema.optional(),
15884
15923
  latestVersionKind: external_exports.enum(["unknown", "tracking-branch"]).optional()
15885
15924
  }).strict();
15925
+ var harnessInstallationTaskParamsSchema = external_exports.object({ taskId: external_exports.string().uuid() }).strict();
15926
+ var harnessInstallationTaskSchema = external_exports.discriminatedUnion("status", [
15927
+ external_exports.object({ taskId: external_exports.string().uuid(), status: external_exports.literal("running") }).strict(),
15928
+ external_exports.object({
15929
+ taskId: external_exports.string().uuid(),
15930
+ status: external_exports.literal("succeeded"),
15931
+ result: harnessInstallationStateSchema
15932
+ }).strict(),
15933
+ external_exports.object({
15934
+ taskId: external_exports.string().uuid(),
15935
+ status: external_exports.literal("failed"),
15936
+ error: external_exports.object({ code: external_exports.number().int(), message: external_exports.string().min(1).max(2048) }).strict()
15937
+ }).strict()
15938
+ ]);
15886
15939
 
15887
15940
  // ../../shared-contracts/dist/codex-accounts.js
15888
15941
  var accountIdSchema = external_exports.string().min(1).max(256).regex(/^[A-Za-z0-9._~-]+$/u);
@@ -16368,6 +16421,18 @@ function sanitizeDiagnosticTail(value) {
16368
16421
  return redacted.length <= DIAGNOSTIC_TAIL_MAX_LENGTH ? redacted : redacted.slice(-DIAGNOSTIC_TAIL_MAX_LENGTH);
16369
16422
  }
16370
16423
 
16424
+ // ../../harness-adapter/dist/steer.js
16425
+ function unsupportedSteer(harnessLabel) {
16426
+ return {
16427
+ ok: false,
16428
+ error: {
16429
+ code: "unsupported",
16430
+ message: `${harnessLabel} cannot steer an active Turn natively`,
16431
+ retryable: false
16432
+ }
16433
+ };
16434
+ }
16435
+
16371
16436
  // ../../harness-adapter/dist/usage.js
16372
16437
  var tokenFields = [
16373
16438
  "inputTokens",
@@ -16395,6 +16460,7 @@ var usageFields = /* @__PURE__ */ new Set([
16395
16460
  ...safeIntegerFields,
16396
16461
  ...percentFields,
16397
16462
  "sessionCacheUsage",
16463
+ "composerIndicators",
16398
16464
  "totalCostUsd",
16399
16465
  "totalCredits",
16400
16466
  "contextUsagePercent",
@@ -18521,10 +18587,13 @@ function usageSessionTitle(value) {
18521
18587
  return void 0;
18522
18588
  if (normalized.length <= MAX_SESSION_TITLE_LENGTH)
18523
18589
  return normalized;
18524
- const characters = [...normalized];
18525
- if (characters.length <= MAX_SESSION_TITLE_LENGTH)
18526
- return normalized;
18527
- return `${characters.slice(0, MAX_SESSION_TITLE_LENGTH - 1).join("").trimEnd()}…`;
18590
+ let title = "";
18591
+ for (const character of normalized) {
18592
+ if (title.length + character.length >= MAX_SESSION_TITLE_LENGTH)
18593
+ break;
18594
+ title += character;
18595
+ }
18596
+ return `${title.trimEnd()}…`;
18528
18597
  }
18529
18598
  function sessionIdOk(value) {
18530
18599
  return typeof value === "string" && value.length > 0 && value.length <= MAX_SESSION_ID_LENGTH;
@@ -19513,6 +19582,8 @@ var HermesSession = class {
19513
19582
  switch (command.type) {
19514
19583
  case "turn.start":
19515
19584
  return this.#startTurn(command);
19585
+ case "turn.steer":
19586
+ return Promise.resolve(unsupportedSteer("Hermes"));
19516
19587
  case "turn.cancel":
19517
19588
  return this.#cancelTurn(command);
19518
19589
  case "interaction.respond":
@@ -15143,10 +15143,19 @@ var model = external_exports.string().min(1).max(512);
15143
15143
  var project = external_exports.string().min(1).max(4096);
15144
15144
  var usageStatisticsParamsSchema = external_exports.strictObject({
15145
15145
  range: external_exports.enum(USAGE_STATISTICS_RANGES),
15146
+ /** Display timezone for ranges, dates and hourly buckets; omitted means the Host's local zone. */
15147
+ timeZone: external_exports.string().min(1).max(128).refine((value) => {
15148
+ try {
15149
+ new Intl.DateTimeFormat("en", { timeZone: value });
15150
+ return true;
15151
+ } catch {
15152
+ return false;
15153
+ }
15154
+ }, "Unsupported usage statistics timezone").optional(),
15146
15155
  harness: harness.optional(),
15147
15156
  model: model.nullable().optional(),
15148
15157
  project: project.nullable().optional(),
15149
- /** One local date inside the range. */
15158
+ /** One date in the query timezone inside the range. */
15150
15159
  date: localDate.optional()
15151
15160
  });
15152
15161
  var usageStatisticsTotalsSchema = external_exports.strictObject({
@@ -15182,7 +15191,7 @@ var usageStatisticsSessionSchema = external_exports.strictObject({
15182
15191
  });
15183
15192
  var usageStatisticsResultSchema = external_exports.strictObject({
15184
15193
  range: external_exports.enum(USAGE_STATISTICS_RANGES),
15185
- /** First local date of the range; null for all time. */
15194
+ /** First date in the query timezone (Host local when omitted); null for all time. */
15186
15195
  from: localDate.nullable(),
15187
15196
  to: localDate,
15188
15197
  /** The filters these figures apply, echoed so a late answer to older filters is recognised. */
@@ -15222,7 +15231,7 @@ var usageStatisticsResultSchema = external_exports.strictObject({
15222
15231
  totals: usageStatisticsTotalsSchema,
15223
15232
  /** Each date and Harness of the range: every filter except the day. */
15224
15233
  daily: external_exports.array(external_exports.strictObject({ date: localDate, harness, ...totals })).max(2e5),
15225
- /** Local weekday (0 = Sunday) and hour, all filters applied. */
15234
+ /** Weekday (0 = Sunday) and hour in the query timezone, all filters applied. */
15226
15235
  hourly: external_exports.array(external_exports.strictObject({
15227
15236
  weekday: external_exports.number().int().min(0).max(6),
15228
15237
  hour: external_exports.number().int().min(0).max(23),
@@ -15282,6 +15291,8 @@ var CONSOLE_HOST_METHODS = Object.freeze([
15282
15291
  "codexhost/harness/display-settings/set",
15283
15292
  "codexhost/harness/inspect",
15284
15293
  "codexhost/harness/installation",
15294
+ "codexhost/harness/installation/start",
15295
+ "codexhost/harness/installation/status",
15285
15296
  "codexhost/harness/launch-settings/get",
15286
15297
  "codexhost/harness/launch-settings/set",
15287
15298
  "codexhost/harness/web-ui/open",
@@ -15357,7 +15368,18 @@ var threadManualCompactionStartedSchema = external_exports.strictObject({
15357
15368
  var nonNegativeSafeIntegerSchema = external_exports.number().int().safe().nonnegative();
15358
15369
  var finiteNonNegativeNumberSchema = external_exports.number().finite().nonnegative();
15359
15370
  var cacheHitRatePercentSchema = external_exports.number().finite().min(0).max(100);
15371
+ var indicatorTextSchema = (maximum) => harnessLocalizedTextSchema.refine((entries) => Object.values(entries).every((text) => text.length <= maximum));
15372
+ var composerIndicatorsSchema = external_exports.array(external_exports.object({
15373
+ kind: external_exports.literal("countdown"),
15374
+ id: external_exports.string().min(1).max(64),
15375
+ expiresAtUnix: nonNegativeSafeIntegerSchema,
15376
+ label: indicatorTextSchema(256).optional(),
15377
+ tooltip: indicatorTextSchema(1024).optional()
15378
+ }).strict()).max(2).refine((entries) => new Set(entries.map(({ id }) => id)).size === entries.length, {
15379
+ message: "Composer indicator IDs must be unique"
15380
+ });
15360
15381
  var threadUsageSnapshotSchema = external_exports.object({
15382
+ composerIndicators: composerIndicatorsSchema.optional(),
15361
15383
  inputTokens: nonNegativeSafeIntegerSchema.optional(),
15362
15384
  cachedInputTokens: nonNegativeSafeIntegerSchema.optional(),
15363
15385
  cacheWriteInputTokens: nonNegativeSafeIntegerSchema.optional(),
@@ -15765,7 +15787,9 @@ var harnessSessionCapabilitiesSchema = external_exports.object({
15765
15787
  }).strict().optional(),
15766
15788
  autonomousTurns: external_exports.object({
15767
15789
  observe: external_exports.boolean()
15768
- }).strict().optional()
15790
+ }).strict().optional(),
15791
+ /** True only when `turn.steer` delivers input into the active Turn through a native primitive. */
15792
+ steer: external_exports.boolean().optional()
15769
15793
  }).strict();
15770
15794
  var harnessConfigurationStateSchema = external_exports.object({
15771
15795
  effectiveModel: harnessModelRefSchema.optional(),
@@ -15812,7 +15836,9 @@ var harnessInspectionSchema = external_exports.union([
15812
15836
  var harnessInspectParamsSchema = external_exports.object({
15813
15837
  harnessId: harnessIdSchema,
15814
15838
  cwd: nonBlankTextSchema2.max(16384).optional(),
15815
- refresh: external_exports.boolean().optional()
15839
+ refresh: external_exports.boolean().optional(),
15840
+ /** `availability` asks only whether the Harness can run; see `InspectHarnessInput.purpose`. */
15841
+ purpose: external_exports.literal("availability").optional()
15816
15842
  }).strict();
15817
15843
  var harnessWebUiOpenParamsSchema = external_exports.object({
15818
15844
  harnessId: harnessIdSchema
@@ -15895,6 +15921,15 @@ var threadOwnershipListResultSchema = external_exports.object({
15895
15921
  seen.add(thread.threadId);
15896
15922
  }
15897
15923
  });
15924
+ var threadSteeringInspectParamsSchema = external_exports.object({
15925
+ threadId: hostThreadIdSchema,
15926
+ /** The text about to be steered; a Harness command always stops and restarts. */
15927
+ text: external_exports.string().optional()
15928
+ }).strict();
15929
+ var threadSteerDeliverySchema = external_exports.enum(["activeTurn", "newTurn"]);
15930
+ var threadSteeringInspectResultSchema = external_exports.object({
15931
+ delivery: external_exports.enum(["official", "activeTurn", "newTurn"])
15932
+ }).strict();
15898
15933
 
15899
15934
  // ../../shared-contracts/dist/harness-plugins.js
15900
15935
  var HARNESS_PLUGIN_MANIFEST_MAX_BYTES = 32 * 1024;
@@ -15996,6 +16031,10 @@ var harnessInstallationStateSchema = external_exports.object({
15996
16031
  latestVersion: external_exports.string().min(1).max(128),
15997
16032
  updateAvailable: external_exports.boolean(),
15998
16033
  canUpdate: external_exports.boolean(),
16034
+ /** Defaults to CLI; some Harnesses ship only inside a desktop application. */
16035
+ versionKind: external_exports.enum(["cli", "application"]).optional(),
16036
+ /** Official download opened by the user; does not imply an automatic installation. */
16037
+ manualUpdateUrl: external_exports.url().max(2048).refine((value) => /^https:\/\/[^/?#@]+(?:[/?#]|$)/iu.test(value), "Manual updates require a credential-free HTTPS URL").optional(),
15999
16038
  // Adapter-owned diagnostic text; UI uses messageCode rather than displaying it verbatim.
16000
16039
  message: external_exports.string().max(2048).optional(),
16001
16040
  messageCode: external_exports.string().min(1).max(128).optional(),
@@ -16003,6 +16042,20 @@ var harnessInstallationStateSchema = external_exports.object({
16003
16042
  notice: harnessLocalizedTextSchema.optional(),
16004
16043
  latestVersionKind: external_exports.enum(["unknown", "tracking-branch"]).optional()
16005
16044
  }).strict();
16045
+ var harnessInstallationTaskParamsSchema = external_exports.object({ taskId: external_exports.string().uuid() }).strict();
16046
+ var harnessInstallationTaskSchema = external_exports.discriminatedUnion("status", [
16047
+ external_exports.object({ taskId: external_exports.string().uuid(), status: external_exports.literal("running") }).strict(),
16048
+ external_exports.object({
16049
+ taskId: external_exports.string().uuid(),
16050
+ status: external_exports.literal("succeeded"),
16051
+ result: harnessInstallationStateSchema
16052
+ }).strict(),
16053
+ external_exports.object({
16054
+ taskId: external_exports.string().uuid(),
16055
+ status: external_exports.literal("failed"),
16056
+ error: external_exports.object({ code: external_exports.number().int(), message: external_exports.string().min(1).max(2048) }).strict()
16057
+ }).strict()
16058
+ ]);
16006
16059
 
16007
16060
  // ../../shared-contracts/dist/codex-accounts.js
16008
16061
  var accountIdSchema = external_exports.string().min(1).max(256).regex(/^[A-Za-z0-9._~-]+$/u);
@@ -16492,6 +16545,18 @@ function sanitizeDiagnosticTail(value) {
16492
16545
  return redacted.length <= DIAGNOSTIC_TAIL_MAX_LENGTH ? redacted : redacted.slice(-DIAGNOSTIC_TAIL_MAX_LENGTH);
16493
16546
  }
16494
16547
 
16548
+ // ../../harness-adapter/dist/steer.js
16549
+ function unsupportedSteer(harnessLabel) {
16550
+ return {
16551
+ ok: false,
16552
+ error: {
16553
+ code: "unsupported",
16554
+ message: `${harnessLabel} cannot steer an active Turn natively`,
16555
+ retryable: false
16556
+ }
16557
+ };
16558
+ }
16559
+
16495
16560
  // ../../harness-adapter/dist/usage.js
16496
16561
  var tokenFields = [
16497
16562
  "inputTokens",
@@ -16519,6 +16584,7 @@ var usageFields = /* @__PURE__ */ new Set([
16519
16584
  ...safeIntegerFields,
16520
16585
  ...percentFields,
16521
16586
  "sessionCacheUsage",
16587
+ "composerIndicators",
16522
16588
  "totalCostUsd",
16523
16589
  "totalCredits",
16524
16590
  "contextUsagePercent",
@@ -16541,6 +16607,7 @@ function parseHostUsage(value) {
16541
16607
  throw new Error(`Harness Usage contains unknown field '${key}'`);
16542
16608
  }
16543
16609
  }
16610
+ const indicators = value.composerIndicators === void 0 ? {} : { composerIndicators: composerIndicatorsSchema.parse(value.composerIndicators) };
16544
16611
  for (const field of [
16545
16612
  "totalCredits",
16546
16613
  "contextUsagePercent",
@@ -16611,9 +16678,9 @@ function parseHostUsage(value) {
16611
16678
  if (value.costSource !== "publicPrice") {
16612
16679
  throw new Error("Harness Usage 'unpricedModels' must be provided with a 'publicPrice' cost");
16613
16680
  }
16614
- return { ...value, unpricedModels: [...models] };
16681
+ return { ...value, ...indicators, unpricedModels: [...models] };
16615
16682
  }
16616
- return { ...value };
16683
+ return { ...value, ...indicators };
16617
16684
  }
16618
16685
  var requestTokenFields = [
16619
16686
  "inputTokens",
@@ -24422,6 +24489,8 @@ var KimiSession = class {
24422
24489
  switch (command.type) {
24423
24490
  case "turn.start":
24424
24491
  return this.#handleTurnStart(command);
24492
+ case "turn.steer":
24493
+ return unsupportedSteer("Kimi ACP");
24425
24494
  case "turn.cancel":
24426
24495
  return this.#handleTurnCancel(command);
24427
24496
  case "interaction.respond":
@@ -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),
@@ -15141,6 +15150,8 @@ var CONSOLE_HOST_METHODS = Object.freeze([
15141
15150
  "codexhost/harness/display-settings/set",
15142
15151
  "codexhost/harness/inspect",
15143
15152
  "codexhost/harness/installation",
15153
+ "codexhost/harness/installation/start",
15154
+ "codexhost/harness/installation/status",
15144
15155
  "codexhost/harness/launch-settings/get",
15145
15156
  "codexhost/harness/launch-settings/set",
15146
15157
  "codexhost/harness/web-ui/open",
@@ -15216,7 +15227,18 @@ var threadManualCompactionStartedSchema = external_exports.strictObject({
15216
15227
  var nonNegativeSafeIntegerSchema = external_exports.number().int().safe().nonnegative();
15217
15228
  var finiteNonNegativeNumberSchema = external_exports.number().finite().nonnegative();
15218
15229
  var cacheHitRatePercentSchema = external_exports.number().finite().min(0).max(100);
15230
+ var indicatorTextSchema = (maximum) => harnessLocalizedTextSchema.refine((entries) => Object.values(entries).every((text) => text.length <= maximum));
15231
+ var composerIndicatorsSchema = external_exports.array(external_exports.object({
15232
+ kind: external_exports.literal("countdown"),
15233
+ id: external_exports.string().min(1).max(64),
15234
+ expiresAtUnix: nonNegativeSafeIntegerSchema,
15235
+ label: indicatorTextSchema(256).optional(),
15236
+ tooltip: indicatorTextSchema(1024).optional()
15237
+ }).strict()).max(2).refine((entries) => new Set(entries.map(({ id }) => id)).size === entries.length, {
15238
+ message: "Composer indicator IDs must be unique"
15239
+ });
15219
15240
  var threadUsageSnapshotSchema = external_exports.object({
15241
+ composerIndicators: composerIndicatorsSchema.optional(),
15220
15242
  inputTokens: nonNegativeSafeIntegerSchema.optional(),
15221
15243
  cachedInputTokens: nonNegativeSafeIntegerSchema.optional(),
15222
15244
  cacheWriteInputTokens: nonNegativeSafeIntegerSchema.optional(),
@@ -15624,7 +15646,9 @@ var harnessSessionCapabilitiesSchema = external_exports.object({
15624
15646
  }).strict().optional(),
15625
15647
  autonomousTurns: external_exports.object({
15626
15648
  observe: external_exports.boolean()
15627
- }).strict().optional()
15649
+ }).strict().optional(),
15650
+ /** True only when `turn.steer` delivers input into the active Turn through a native primitive. */
15651
+ steer: external_exports.boolean().optional()
15628
15652
  }).strict();
15629
15653
  var harnessConfigurationStateSchema = external_exports.object({
15630
15654
  effectiveModel: harnessModelRefSchema.optional(),
@@ -15671,7 +15695,9 @@ var harnessInspectionSchema = external_exports.union([
15671
15695
  var harnessInspectParamsSchema = external_exports.object({
15672
15696
  harnessId: harnessIdSchema,
15673
15697
  cwd: nonBlankTextSchema2.max(16384).optional(),
15674
- refresh: external_exports.boolean().optional()
15698
+ refresh: external_exports.boolean().optional(),
15699
+ /** `availability` asks only whether the Harness can run; see `InspectHarnessInput.purpose`. */
15700
+ purpose: external_exports.literal("availability").optional()
15675
15701
  }).strict();
15676
15702
  var harnessWebUiOpenParamsSchema = external_exports.object({
15677
15703
  harnessId: harnessIdSchema
@@ -15754,6 +15780,15 @@ var threadOwnershipListResultSchema = external_exports.object({
15754
15780
  seen.add(thread.threadId);
15755
15781
  }
15756
15782
  });
15783
+ var threadSteeringInspectParamsSchema = external_exports.object({
15784
+ threadId: hostThreadIdSchema,
15785
+ /** The text about to be steered; a Harness command always stops and restarts. */
15786
+ text: external_exports.string().optional()
15787
+ }).strict();
15788
+ var threadSteerDeliverySchema = external_exports.enum(["activeTurn", "newTurn"]);
15789
+ var threadSteeringInspectResultSchema = external_exports.object({
15790
+ delivery: external_exports.enum(["official", "activeTurn", "newTurn"])
15791
+ }).strict();
15757
15792
 
15758
15793
  // ../../shared-contracts/dist/harness-plugins.js
15759
15794
  var HARNESS_PLUGIN_MANIFEST_MAX_BYTES = 32 * 1024;
@@ -15855,6 +15890,10 @@ var harnessInstallationStateSchema = external_exports.object({
15855
15890
  latestVersion: external_exports.string().min(1).max(128),
15856
15891
  updateAvailable: external_exports.boolean(),
15857
15892
  canUpdate: external_exports.boolean(),
15893
+ /** Defaults to CLI; some Harnesses ship only inside a desktop application. */
15894
+ versionKind: external_exports.enum(["cli", "application"]).optional(),
15895
+ /** Official download opened by the user; does not imply an automatic installation. */
15896
+ manualUpdateUrl: external_exports.url().max(2048).refine((value) => /^https:\/\/[^/?#@]+(?:[/?#]|$)/iu.test(value), "Manual updates require a credential-free HTTPS URL").optional(),
15858
15897
  // Adapter-owned diagnostic text; UI uses messageCode rather than displaying it verbatim.
15859
15898
  message: external_exports.string().max(2048).optional(),
15860
15899
  messageCode: external_exports.string().min(1).max(128).optional(),
@@ -15862,6 +15901,20 @@ var harnessInstallationStateSchema = external_exports.object({
15862
15901
  notice: harnessLocalizedTextSchema.optional(),
15863
15902
  latestVersionKind: external_exports.enum(["unknown", "tracking-branch"]).optional()
15864
15903
  }).strict();
15904
+ var harnessInstallationTaskParamsSchema = external_exports.object({ taskId: external_exports.string().uuid() }).strict();
15905
+ var harnessInstallationTaskSchema = external_exports.discriminatedUnion("status", [
15906
+ external_exports.object({ taskId: external_exports.string().uuid(), status: external_exports.literal("running") }).strict(),
15907
+ external_exports.object({
15908
+ taskId: external_exports.string().uuid(),
15909
+ status: external_exports.literal("succeeded"),
15910
+ result: harnessInstallationStateSchema
15911
+ }).strict(),
15912
+ external_exports.object({
15913
+ taskId: external_exports.string().uuid(),
15914
+ status: external_exports.literal("failed"),
15915
+ error: external_exports.object({ code: external_exports.number().int(), message: external_exports.string().min(1).max(2048) }).strict()
15916
+ }).strict()
15917
+ ]);
15865
15918
 
15866
15919
  // ../../shared-contracts/dist/codex-accounts.js
15867
15920
  var accountIdSchema = external_exports.string().min(1).max(256).regex(/^[A-Za-z0-9._~-]+$/u);
@@ -16347,6 +16400,18 @@ function sanitizeDiagnosticTail(value) {
16347
16400
  return redacted.length <= DIAGNOSTIC_TAIL_MAX_LENGTH ? redacted : redacted.slice(-DIAGNOSTIC_TAIL_MAX_LENGTH);
16348
16401
  }
16349
16402
 
16403
+ // ../../harness-adapter/dist/steer.js
16404
+ function unsupportedSteer(harnessLabel) {
16405
+ return {
16406
+ ok: false,
16407
+ error: {
16408
+ code: "unsupported",
16409
+ message: `${harnessLabel} cannot steer an active Turn natively`,
16410
+ retryable: false
16411
+ }
16412
+ };
16413
+ }
16414
+
16350
16415
  // ../../harness-adapter/dist/usage.js
16351
16416
  var tokenFields = [
16352
16417
  "inputTokens",
@@ -16374,6 +16439,7 @@ var usageFields = /* @__PURE__ */ new Set([
16374
16439
  ...safeIntegerFields,
16375
16440
  ...percentFields,
16376
16441
  "sessionCacheUsage",
16442
+ "composerIndicators",
16377
16443
  "totalCostUsd",
16378
16444
  "totalCredits",
16379
16445
  "contextUsagePercent",
@@ -16396,6 +16462,7 @@ function parseHostUsage(value) {
16396
16462
  throw new Error(`Harness Usage contains unknown field '${key}'`);
16397
16463
  }
16398
16464
  }
16465
+ const indicators = value.composerIndicators === void 0 ? {} : { composerIndicators: composerIndicatorsSchema.parse(value.composerIndicators) };
16399
16466
  for (const field of [
16400
16467
  "totalCredits",
16401
16468
  "contextUsagePercent",
@@ -16466,9 +16533,9 @@ function parseHostUsage(value) {
16466
16533
  if (value.costSource !== "publicPrice") {
16467
16534
  throw new Error("Harness Usage 'unpricedModels' must be provided with a 'publicPrice' cost");
16468
16535
  }
16469
- return { ...value, unpricedModels: [...models] };
16536
+ return { ...value, ...indicators, unpricedModels: [...models] };
16470
16537
  }
16471
- return { ...value };
16538
+ return { ...value, ...indicators };
16472
16539
  }
16473
16540
  var requestTokenFields = [
16474
16541
  "inputTokens",
@@ -23882,6 +23949,8 @@ var KiroSession = class {
23882
23949
  if (command.type === "turn.cancel") {
23883
23950
  return this.#cancelTurn(command);
23884
23951
  }
23952
+ if (command.type === "turn.steer")
23953
+ return unsupportedSteer("Kiro");
23885
23954
  if (command.type === "interaction.respond") {
23886
23955
  return this.#respondInteraction(command);
23887
23956
  }