@karlorz/codexhost-cli-win32-arm64 0.13.3-6 → 0.14.0-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.
Files changed (34) hide show
  1. package/README.md +1 -1
  2. package/app/codexhost-distribution.json +1 -1
  3. package/app/console-server.mjs +539 -95
  4. package/app/console-web.js +879 -73
  5. package/app/cpa-live-voice-hook.js +605 -37
  6. package/app/desktop-controller.mjs +94 -9
  7. package/app/host-runtime.mjs +1662 -642
  8. package/app/plugins/antigravity/plugin.mjs +113 -13
  9. package/app/plugins/claude-code/plugin.mjs +429 -26
  10. package/app/plugins/codebuddy/plugin.mjs +139 -22
  11. package/app/plugins/codex-usage/plugin.mjs +198 -74
  12. package/app/plugins/copilot/assets/icon.png +0 -0
  13. package/app/plugins/copilot/manifest.json +26 -0
  14. package/app/plugins/copilot/plugin.mjs +34645 -0
  15. package/app/plugins/cursor-cli/plugin.mjs +20877 -44973
  16. package/app/plugins/deepseek-harness/plugin.mjs +105 -11
  17. package/app/plugins/enabled.json +1 -0
  18. package/app/plugins/grok/plugin.mjs +1073 -214
  19. package/app/plugins/hermes/plugin.mjs +102 -9
  20. package/app/plugins/kimi-code/plugin.mjs +98 -7
  21. package/app/plugins/kiro-cli/plugin.mjs +98 -7
  22. package/app/plugins/omp/plugin.mjs +2177 -2000
  23. package/app/plugins/opencode/plugin.mjs +107 -11
  24. package/app/plugins/pi/plugin.mjs +2554 -2285
  25. package/app/plugins/qoder/plugin.mjs +105 -11
  26. package/app/plugins/qoder-cn/plugin.mjs +105 -11
  27. package/app/plugins/workbuddy/plugin.mjs +400 -46
  28. package/app/plugins/zcode/plugin.mjs +106 -11
  29. package/app/renderer-extension.js +2717 -1237
  30. package/bin/codexhost.exe +0 -0
  31. package/libexec/codexhost-node-repl.exe +0 -0
  32. package/libexec/codexhost-shim.exe +0 -0
  33. package/libexec/codexhost-updater.exe +0 -0
  34. package/package.json +1 -1
@@ -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),
@@ -15193,8 +15202,12 @@ var CONSOLE_HOST_METHODS = Object.freeze([
15193
15202
  "codexhost/harness/display-settings/set",
15194
15203
  "codexhost/harness/inspect",
15195
15204
  "codexhost/harness/installation",
15205
+ "codexhost/harness/installation/start",
15206
+ "codexhost/harness/installation/status",
15196
15207
  "codexhost/harness/launch-settings/get",
15197
15208
  "codexhost/harness/launch-settings/set",
15209
+ "codexhost/harness/grok-computer-use/get",
15210
+ "codexhost/harness/grok-computer-use/set",
15198
15211
  "codexhost/harness/web-ui/open",
15199
15212
  "codexhost/harness/accounts/sources",
15200
15213
  "codexhost/harness/accounts/list",
@@ -15268,7 +15281,18 @@ var threadManualCompactionStartedSchema = external_exports.strictObject({
15268
15281
  var nonNegativeSafeIntegerSchema = external_exports.number().int().safe().nonnegative();
15269
15282
  var finiteNonNegativeNumberSchema = external_exports.number().finite().nonnegative();
15270
15283
  var cacheHitRatePercentSchema = external_exports.number().finite().min(0).max(100);
15284
+ var indicatorTextSchema = (maximum) => harnessLocalizedTextSchema.refine((entries) => Object.values(entries).every((text2) => text2.length <= maximum));
15285
+ var composerIndicatorsSchema = external_exports.array(external_exports.object({
15286
+ kind: external_exports.literal("countdown"),
15287
+ id: external_exports.string().min(1).max(64),
15288
+ expiresAtUnix: nonNegativeSafeIntegerSchema,
15289
+ label: indicatorTextSchema(256).optional(),
15290
+ tooltip: indicatorTextSchema(1024).optional()
15291
+ }).strict()).max(2).refine((entries) => new Set(entries.map(({ id }) => id)).size === entries.length, {
15292
+ message: "Composer indicator IDs must be unique"
15293
+ });
15271
15294
  var threadUsageSnapshotSchema = external_exports.object({
15295
+ composerIndicators: composerIndicatorsSchema.optional(),
15272
15296
  inputTokens: nonNegativeSafeIntegerSchema.optional(),
15273
15297
  cachedInputTokens: nonNegativeSafeIntegerSchema.optional(),
15274
15298
  cacheWriteInputTokens: nonNegativeSafeIntegerSchema.optional(),
@@ -15676,7 +15700,9 @@ var harnessSessionCapabilitiesSchema = external_exports.object({
15676
15700
  }).strict().optional(),
15677
15701
  autonomousTurns: external_exports.object({
15678
15702
  observe: external_exports.boolean()
15679
- }).strict().optional()
15703
+ }).strict().optional(),
15704
+ /** True only when `turn.steer` delivers input into the active Turn through a native primitive. */
15705
+ steer: external_exports.boolean().optional()
15680
15706
  }).strict();
15681
15707
  var harnessConfigurationStateSchema = external_exports.object({
15682
15708
  effectiveModel: harnessModelRefSchema.optional(),
@@ -15723,7 +15749,9 @@ var harnessInspectionSchema = external_exports.union([
15723
15749
  var harnessInspectParamsSchema = external_exports.object({
15724
15750
  harnessId: harnessIdSchema,
15725
15751
  cwd: nonBlankTextSchema2.max(16384).optional(),
15726
- refresh: external_exports.boolean().optional()
15752
+ refresh: external_exports.boolean().optional(),
15753
+ /** `availability` asks only whether the Harness can run; see `InspectHarnessInput.purpose`. */
15754
+ purpose: external_exports.literal("availability").optional()
15727
15755
  }).strict();
15728
15756
  var harnessWebUiOpenParamsSchema = external_exports.object({
15729
15757
  harnessId: harnessIdSchema
@@ -15806,6 +15834,15 @@ var threadOwnershipListResultSchema = external_exports.object({
15806
15834
  seen.add(thread.threadId);
15807
15835
  }
15808
15836
  });
15837
+ var threadSteeringInspectParamsSchema = external_exports.object({
15838
+ threadId: hostThreadIdSchema,
15839
+ /** The text about to be steered; a Harness command always stops and restarts. */
15840
+ text: external_exports.string().optional()
15841
+ }).strict();
15842
+ var threadSteerDeliverySchema = external_exports.enum(["activeTurn", "newTurn"]);
15843
+ var threadSteeringInspectResultSchema = external_exports.object({
15844
+ delivery: external_exports.enum(["official", "activeTurn", "newTurn"])
15845
+ }).strict();
15809
15846
 
15810
15847
  // ../../shared-contracts/dist/harness-plugins.js
15811
15848
  var HARNESS_PLUGIN_MANIFEST_MAX_BYTES = 32 * 1024;
@@ -15897,6 +15934,26 @@ var harnessLaunchSettingsSchema = external_exports.object({
15897
15934
  restartRequired: external_exports.boolean()
15898
15935
  }).strict();
15899
15936
 
15937
+ // ../../shared-contracts/dist/grok-computer-use.js
15938
+ var grokComputerUseGetSchema = external_exports.object({}).strict();
15939
+ var grokComputerUseSetSchema = external_exports.object({
15940
+ enabled: external_exports.boolean().optional(),
15941
+ browser: external_exports.boolean().optional()
15942
+ }).strict().refine((value) => value.enabled !== void 0 || value.browser !== void 0, {
15943
+ message: "Expected enabled or browser"
15944
+ });
15945
+ var grokComputerUseSettingsSchema = external_exports.object({
15946
+ enabled: external_exports.boolean(),
15947
+ available: external_exports.boolean(),
15948
+ unavailableReason: external_exports.string().min(1).max(500).optional(),
15949
+ browser: external_exports.boolean().optional(),
15950
+ browserFilesPresent: external_exports.boolean().optional(),
15951
+ browserAvailable: external_exports.boolean().optional(),
15952
+ browserUnavailableReason: external_exports.string().min(1).max(500).optional(),
15953
+ applyFailed: external_exports.boolean().optional(),
15954
+ applyError: external_exports.string().min(1).max(500).optional()
15955
+ }).strict();
15956
+
15900
15957
  // ../../shared-contracts/dist/harness-installation.js
15901
15958
  var harnessInstallationParamsSchema = external_exports.object({
15902
15959
  harnessId: harnessIdSchema,
@@ -15907,6 +15964,10 @@ var harnessInstallationStateSchema = external_exports.object({
15907
15964
  latestVersion: external_exports.string().min(1).max(128),
15908
15965
  updateAvailable: external_exports.boolean(),
15909
15966
  canUpdate: external_exports.boolean(),
15967
+ /** Defaults to CLI; some Harnesses ship only inside a desktop application. */
15968
+ versionKind: external_exports.enum(["cli", "application"]).optional(),
15969
+ /** Official download opened by the user; does not imply an automatic installation. */
15970
+ manualUpdateUrl: external_exports.url().max(2048).refine((value) => /^https:\/\/[^/?#@]+(?:[/?#]|$)/iu.test(value), "Manual updates require a credential-free HTTPS URL").optional(),
15910
15971
  // Adapter-owned diagnostic text; UI uses messageCode rather than displaying it verbatim.
15911
15972
  message: external_exports.string().max(2048).optional(),
15912
15973
  messageCode: external_exports.string().min(1).max(128).optional(),
@@ -15914,6 +15975,20 @@ var harnessInstallationStateSchema = external_exports.object({
15914
15975
  notice: harnessLocalizedTextSchema.optional(),
15915
15976
  latestVersionKind: external_exports.enum(["unknown", "tracking-branch"]).optional()
15916
15977
  }).strict();
15978
+ var harnessInstallationTaskParamsSchema = external_exports.object({ taskId: external_exports.string().uuid() }).strict();
15979
+ var harnessInstallationTaskSchema = external_exports.discriminatedUnion("status", [
15980
+ external_exports.object({ taskId: external_exports.string().uuid(), status: external_exports.literal("running") }).strict(),
15981
+ external_exports.object({
15982
+ taskId: external_exports.string().uuid(),
15983
+ status: external_exports.literal("succeeded"),
15984
+ result: harnessInstallationStateSchema
15985
+ }).strict(),
15986
+ external_exports.object({
15987
+ taskId: external_exports.string().uuid(),
15988
+ status: external_exports.literal("failed"),
15989
+ error: external_exports.object({ code: external_exports.number().int(), message: external_exports.string().min(1).max(2048) }).strict()
15990
+ }).strict()
15991
+ ]);
15917
15992
 
15918
15993
  // ../../shared-contracts/dist/codex-accounts.js
15919
15994
  var accountIdSchema = external_exports.string().min(1).max(256).regex(/^[A-Za-z0-9._~-]+$/u);
@@ -16445,6 +16520,18 @@ function sanitizeDiagnosticTail(value) {
16445
16520
  return redacted.length <= DIAGNOSTIC_TAIL_MAX_LENGTH ? redacted : redacted.slice(-DIAGNOSTIC_TAIL_MAX_LENGTH);
16446
16521
  }
16447
16522
 
16523
+ // ../../harness-adapter/dist/steer.js
16524
+ function unsupportedSteer(harnessLabel) {
16525
+ return {
16526
+ ok: false,
16527
+ error: {
16528
+ code: "unsupported",
16529
+ message: `${harnessLabel} cannot steer an active Turn natively`,
16530
+ retryable: false
16531
+ }
16532
+ };
16533
+ }
16534
+
16448
16535
  // ../../harness-adapter/dist/usage.js
16449
16536
  var tokenFields = [
16450
16537
  "inputTokens",
@@ -16472,6 +16559,7 @@ var usageFields = /* @__PURE__ */ new Set([
16472
16559
  ...safeIntegerFields,
16473
16560
  ...percentFields,
16474
16561
  "sessionCacheUsage",
16562
+ "composerIndicators",
16475
16563
  "totalCostUsd",
16476
16564
  "totalCredits",
16477
16565
  "contextUsagePercent",
@@ -18598,10 +18686,13 @@ function usageSessionTitle(value) {
18598
18686
  return void 0;
18599
18687
  if (normalized.length <= MAX_SESSION_TITLE_LENGTH)
18600
18688
  return normalized;
18601
- const characters = [...normalized];
18602
- if (characters.length <= MAX_SESSION_TITLE_LENGTH)
18603
- return normalized;
18604
- return `${characters.slice(0, MAX_SESSION_TITLE_LENGTH - 1).join("").trimEnd()}…`;
18689
+ let title = "";
18690
+ for (const character of normalized) {
18691
+ if (title.length + character.length >= MAX_SESSION_TITLE_LENGTH)
18692
+ break;
18693
+ title += character;
18694
+ }
18695
+ return `${title.trimEnd()}…`;
18605
18696
  }
18606
18697
  function sessionIdOk(value) {
18607
18698
  return typeof value === "string" && value.length > 0 && value.length <= MAX_SESSION_ID_LENGTH;
@@ -19590,6 +19681,8 @@ var HermesSession = class {
19590
19681
  switch (command.type) {
19591
19682
  case "turn.start":
19592
19683
  return this.#startTurn(command);
19684
+ case "turn.steer":
19685
+ return Promise.resolve(unsupportedSteer("Hermes"));
19593
19686
  case "turn.cancel":
19594
19687
  return this.#cancelTurn(command);
19595
19688
  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),
@@ -15313,8 +15322,12 @@ var CONSOLE_HOST_METHODS = Object.freeze([
15313
15322
  "codexhost/harness/display-settings/set",
15314
15323
  "codexhost/harness/inspect",
15315
15324
  "codexhost/harness/installation",
15325
+ "codexhost/harness/installation/start",
15326
+ "codexhost/harness/installation/status",
15316
15327
  "codexhost/harness/launch-settings/get",
15317
15328
  "codexhost/harness/launch-settings/set",
15329
+ "codexhost/harness/grok-computer-use/get",
15330
+ "codexhost/harness/grok-computer-use/set",
15318
15331
  "codexhost/harness/web-ui/open",
15319
15332
  "codexhost/harness/accounts/sources",
15320
15333
  "codexhost/harness/accounts/list",
@@ -15388,7 +15401,18 @@ var threadManualCompactionStartedSchema = external_exports.strictObject({
15388
15401
  var nonNegativeSafeIntegerSchema = external_exports.number().int().safe().nonnegative();
15389
15402
  var finiteNonNegativeNumberSchema = external_exports.number().finite().nonnegative();
15390
15403
  var cacheHitRatePercentSchema = external_exports.number().finite().min(0).max(100);
15404
+ var indicatorTextSchema = (maximum) => harnessLocalizedTextSchema.refine((entries) => Object.values(entries).every((text) => text.length <= maximum));
15405
+ var composerIndicatorsSchema = external_exports.array(external_exports.object({
15406
+ kind: external_exports.literal("countdown"),
15407
+ id: external_exports.string().min(1).max(64),
15408
+ expiresAtUnix: nonNegativeSafeIntegerSchema,
15409
+ label: indicatorTextSchema(256).optional(),
15410
+ tooltip: indicatorTextSchema(1024).optional()
15411
+ }).strict()).max(2).refine((entries) => new Set(entries.map(({ id }) => id)).size === entries.length, {
15412
+ message: "Composer indicator IDs must be unique"
15413
+ });
15391
15414
  var threadUsageSnapshotSchema = external_exports.object({
15415
+ composerIndicators: composerIndicatorsSchema.optional(),
15392
15416
  inputTokens: nonNegativeSafeIntegerSchema.optional(),
15393
15417
  cachedInputTokens: nonNegativeSafeIntegerSchema.optional(),
15394
15418
  cacheWriteInputTokens: nonNegativeSafeIntegerSchema.optional(),
@@ -15796,7 +15820,9 @@ var harnessSessionCapabilitiesSchema = external_exports.object({
15796
15820
  }).strict().optional(),
15797
15821
  autonomousTurns: external_exports.object({
15798
15822
  observe: external_exports.boolean()
15799
- }).strict().optional()
15823
+ }).strict().optional(),
15824
+ /** True only when `turn.steer` delivers input into the active Turn through a native primitive. */
15825
+ steer: external_exports.boolean().optional()
15800
15826
  }).strict();
15801
15827
  var harnessConfigurationStateSchema = external_exports.object({
15802
15828
  effectiveModel: harnessModelRefSchema.optional(),
@@ -15843,7 +15869,9 @@ var harnessInspectionSchema = external_exports.union([
15843
15869
  var harnessInspectParamsSchema = external_exports.object({
15844
15870
  harnessId: harnessIdSchema,
15845
15871
  cwd: nonBlankTextSchema2.max(16384).optional(),
15846
- refresh: external_exports.boolean().optional()
15872
+ refresh: external_exports.boolean().optional(),
15873
+ /** `availability` asks only whether the Harness can run; see `InspectHarnessInput.purpose`. */
15874
+ purpose: external_exports.literal("availability").optional()
15847
15875
  }).strict();
15848
15876
  var harnessWebUiOpenParamsSchema = external_exports.object({
15849
15877
  harnessId: harnessIdSchema
@@ -15926,6 +15954,15 @@ var threadOwnershipListResultSchema = external_exports.object({
15926
15954
  seen.add(thread.threadId);
15927
15955
  }
15928
15956
  });
15957
+ var threadSteeringInspectParamsSchema = external_exports.object({
15958
+ threadId: hostThreadIdSchema,
15959
+ /** The text about to be steered; a Harness command always stops and restarts. */
15960
+ text: external_exports.string().optional()
15961
+ }).strict();
15962
+ var threadSteerDeliverySchema = external_exports.enum(["activeTurn", "newTurn"]);
15963
+ var threadSteeringInspectResultSchema = external_exports.object({
15964
+ delivery: external_exports.enum(["official", "activeTurn", "newTurn"])
15965
+ }).strict();
15929
15966
 
15930
15967
  // ../../shared-contracts/dist/harness-plugins.js
15931
15968
  var HARNESS_PLUGIN_MANIFEST_MAX_BYTES = 32 * 1024;
@@ -16017,6 +16054,26 @@ var harnessLaunchSettingsSchema = external_exports.object({
16017
16054
  restartRequired: external_exports.boolean()
16018
16055
  }).strict();
16019
16056
 
16057
+ // ../../shared-contracts/dist/grok-computer-use.js
16058
+ var grokComputerUseGetSchema = external_exports.object({}).strict();
16059
+ var grokComputerUseSetSchema = external_exports.object({
16060
+ enabled: external_exports.boolean().optional(),
16061
+ browser: external_exports.boolean().optional()
16062
+ }).strict().refine((value) => value.enabled !== void 0 || value.browser !== void 0, {
16063
+ message: "Expected enabled or browser"
16064
+ });
16065
+ var grokComputerUseSettingsSchema = external_exports.object({
16066
+ enabled: external_exports.boolean(),
16067
+ available: external_exports.boolean(),
16068
+ unavailableReason: external_exports.string().min(1).max(500).optional(),
16069
+ browser: external_exports.boolean().optional(),
16070
+ browserFilesPresent: external_exports.boolean().optional(),
16071
+ browserAvailable: external_exports.boolean().optional(),
16072
+ browserUnavailableReason: external_exports.string().min(1).max(500).optional(),
16073
+ applyFailed: external_exports.boolean().optional(),
16074
+ applyError: external_exports.string().min(1).max(500).optional()
16075
+ }).strict();
16076
+
16020
16077
  // ../../shared-contracts/dist/harness-installation.js
16021
16078
  var harnessInstallationParamsSchema = external_exports.object({
16022
16079
  harnessId: harnessIdSchema,
@@ -16027,6 +16084,10 @@ var harnessInstallationStateSchema = external_exports.object({
16027
16084
  latestVersion: external_exports.string().min(1).max(128),
16028
16085
  updateAvailable: external_exports.boolean(),
16029
16086
  canUpdate: external_exports.boolean(),
16087
+ /** Defaults to CLI; some Harnesses ship only inside a desktop application. */
16088
+ versionKind: external_exports.enum(["cli", "application"]).optional(),
16089
+ /** Official download opened by the user; does not imply an automatic installation. */
16090
+ manualUpdateUrl: external_exports.url().max(2048).refine((value) => /^https:\/\/[^/?#@]+(?:[/?#]|$)/iu.test(value), "Manual updates require a credential-free HTTPS URL").optional(),
16030
16091
  // Adapter-owned diagnostic text; UI uses messageCode rather than displaying it verbatim.
16031
16092
  message: external_exports.string().max(2048).optional(),
16032
16093
  messageCode: external_exports.string().min(1).max(128).optional(),
@@ -16034,6 +16095,20 @@ var harnessInstallationStateSchema = external_exports.object({
16034
16095
  notice: harnessLocalizedTextSchema.optional(),
16035
16096
  latestVersionKind: external_exports.enum(["unknown", "tracking-branch"]).optional()
16036
16097
  }).strict();
16098
+ var harnessInstallationTaskParamsSchema = external_exports.object({ taskId: external_exports.string().uuid() }).strict();
16099
+ var harnessInstallationTaskSchema = external_exports.discriminatedUnion("status", [
16100
+ external_exports.object({ taskId: external_exports.string().uuid(), status: external_exports.literal("running") }).strict(),
16101
+ external_exports.object({
16102
+ taskId: external_exports.string().uuid(),
16103
+ status: external_exports.literal("succeeded"),
16104
+ result: harnessInstallationStateSchema
16105
+ }).strict(),
16106
+ external_exports.object({
16107
+ taskId: external_exports.string().uuid(),
16108
+ status: external_exports.literal("failed"),
16109
+ error: external_exports.object({ code: external_exports.number().int(), message: external_exports.string().min(1).max(2048) }).strict()
16110
+ }).strict()
16111
+ ]);
16037
16112
 
16038
16113
  // ../../shared-contracts/dist/codex-accounts.js
16039
16114
  var accountIdSchema = external_exports.string().min(1).max(256).regex(/^[A-Za-z0-9._~-]+$/u);
@@ -16569,6 +16644,18 @@ function sanitizeDiagnosticTail(value) {
16569
16644
  return redacted.length <= DIAGNOSTIC_TAIL_MAX_LENGTH ? redacted : redacted.slice(-DIAGNOSTIC_TAIL_MAX_LENGTH);
16570
16645
  }
16571
16646
 
16647
+ // ../../harness-adapter/dist/steer.js
16648
+ function unsupportedSteer(harnessLabel) {
16649
+ return {
16650
+ ok: false,
16651
+ error: {
16652
+ code: "unsupported",
16653
+ message: `${harnessLabel} cannot steer an active Turn natively`,
16654
+ retryable: false
16655
+ }
16656
+ };
16657
+ }
16658
+
16572
16659
  // ../../harness-adapter/dist/usage.js
16573
16660
  var tokenFields = [
16574
16661
  "inputTokens",
@@ -16596,6 +16683,7 @@ var usageFields = /* @__PURE__ */ new Set([
16596
16683
  ...safeIntegerFields,
16597
16684
  ...percentFields,
16598
16685
  "sessionCacheUsage",
16686
+ "composerIndicators",
16599
16687
  "totalCostUsd",
16600
16688
  "totalCredits",
16601
16689
  "contextUsagePercent",
@@ -16618,6 +16706,7 @@ function parseHostUsage(value) {
16618
16706
  throw new Error(`Harness Usage contains unknown field '${key}'`);
16619
16707
  }
16620
16708
  }
16709
+ const indicators = value.composerIndicators === void 0 ? {} : { composerIndicators: composerIndicatorsSchema.parse(value.composerIndicators) };
16621
16710
  for (const field of [
16622
16711
  "totalCredits",
16623
16712
  "contextUsagePercent",
@@ -16688,9 +16777,9 @@ function parseHostUsage(value) {
16688
16777
  if (value.costSource !== "publicPrice") {
16689
16778
  throw new Error("Harness Usage 'unpricedModels' must be provided with a 'publicPrice' cost");
16690
16779
  }
16691
- return { ...value, unpricedModels: [...models] };
16780
+ return { ...value, ...indicators, unpricedModels: [...models] };
16692
16781
  }
16693
- return { ...value };
16782
+ return { ...value, ...indicators };
16694
16783
  }
16695
16784
  var requestTokenFields = [
16696
16785
  "inputTokens",
@@ -24499,6 +24588,8 @@ var KimiSession = class {
24499
24588
  switch (command.type) {
24500
24589
  case "turn.start":
24501
24590
  return this.#handleTurnStart(command);
24591
+ case "turn.steer":
24592
+ return unsupportedSteer("Kimi ACP");
24502
24593
  case "turn.cancel":
24503
24594
  return this.#handleTurnCancel(command);
24504
24595
  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),
@@ -15172,8 +15181,12 @@ var CONSOLE_HOST_METHODS = Object.freeze([
15172
15181
  "codexhost/harness/display-settings/set",
15173
15182
  "codexhost/harness/inspect",
15174
15183
  "codexhost/harness/installation",
15184
+ "codexhost/harness/installation/start",
15185
+ "codexhost/harness/installation/status",
15175
15186
  "codexhost/harness/launch-settings/get",
15176
15187
  "codexhost/harness/launch-settings/set",
15188
+ "codexhost/harness/grok-computer-use/get",
15189
+ "codexhost/harness/grok-computer-use/set",
15177
15190
  "codexhost/harness/web-ui/open",
15178
15191
  "codexhost/harness/accounts/sources",
15179
15192
  "codexhost/harness/accounts/list",
@@ -15247,7 +15260,18 @@ var threadManualCompactionStartedSchema = external_exports.strictObject({
15247
15260
  var nonNegativeSafeIntegerSchema = external_exports.number().int().safe().nonnegative();
15248
15261
  var finiteNonNegativeNumberSchema = external_exports.number().finite().nonnegative();
15249
15262
  var cacheHitRatePercentSchema = external_exports.number().finite().min(0).max(100);
15263
+ var indicatorTextSchema = (maximum) => harnessLocalizedTextSchema.refine((entries) => Object.values(entries).every((text) => text.length <= maximum));
15264
+ var composerIndicatorsSchema = external_exports.array(external_exports.object({
15265
+ kind: external_exports.literal("countdown"),
15266
+ id: external_exports.string().min(1).max(64),
15267
+ expiresAtUnix: nonNegativeSafeIntegerSchema,
15268
+ label: indicatorTextSchema(256).optional(),
15269
+ tooltip: indicatorTextSchema(1024).optional()
15270
+ }).strict()).max(2).refine((entries) => new Set(entries.map(({ id }) => id)).size === entries.length, {
15271
+ message: "Composer indicator IDs must be unique"
15272
+ });
15250
15273
  var threadUsageSnapshotSchema = external_exports.object({
15274
+ composerIndicators: composerIndicatorsSchema.optional(),
15251
15275
  inputTokens: nonNegativeSafeIntegerSchema.optional(),
15252
15276
  cachedInputTokens: nonNegativeSafeIntegerSchema.optional(),
15253
15277
  cacheWriteInputTokens: nonNegativeSafeIntegerSchema.optional(),
@@ -15655,7 +15679,9 @@ var harnessSessionCapabilitiesSchema = external_exports.object({
15655
15679
  }).strict().optional(),
15656
15680
  autonomousTurns: external_exports.object({
15657
15681
  observe: external_exports.boolean()
15658
- }).strict().optional()
15682
+ }).strict().optional(),
15683
+ /** True only when `turn.steer` delivers input into the active Turn through a native primitive. */
15684
+ steer: external_exports.boolean().optional()
15659
15685
  }).strict();
15660
15686
  var harnessConfigurationStateSchema = external_exports.object({
15661
15687
  effectiveModel: harnessModelRefSchema.optional(),
@@ -15702,7 +15728,9 @@ var harnessInspectionSchema = external_exports.union([
15702
15728
  var harnessInspectParamsSchema = external_exports.object({
15703
15729
  harnessId: harnessIdSchema,
15704
15730
  cwd: nonBlankTextSchema2.max(16384).optional(),
15705
- refresh: external_exports.boolean().optional()
15731
+ refresh: external_exports.boolean().optional(),
15732
+ /** `availability` asks only whether the Harness can run; see `InspectHarnessInput.purpose`. */
15733
+ purpose: external_exports.literal("availability").optional()
15706
15734
  }).strict();
15707
15735
  var harnessWebUiOpenParamsSchema = external_exports.object({
15708
15736
  harnessId: harnessIdSchema
@@ -15785,6 +15813,15 @@ var threadOwnershipListResultSchema = external_exports.object({
15785
15813
  seen.add(thread.threadId);
15786
15814
  }
15787
15815
  });
15816
+ var threadSteeringInspectParamsSchema = external_exports.object({
15817
+ threadId: hostThreadIdSchema,
15818
+ /** The text about to be steered; a Harness command always stops and restarts. */
15819
+ text: external_exports.string().optional()
15820
+ }).strict();
15821
+ var threadSteerDeliverySchema = external_exports.enum(["activeTurn", "newTurn"]);
15822
+ var threadSteeringInspectResultSchema = external_exports.object({
15823
+ delivery: external_exports.enum(["official", "activeTurn", "newTurn"])
15824
+ }).strict();
15788
15825
 
15789
15826
  // ../../shared-contracts/dist/harness-plugins.js
15790
15827
  var HARNESS_PLUGIN_MANIFEST_MAX_BYTES = 32 * 1024;
@@ -15876,6 +15913,26 @@ var harnessLaunchSettingsSchema = external_exports.object({
15876
15913
  restartRequired: external_exports.boolean()
15877
15914
  }).strict();
15878
15915
 
15916
+ // ../../shared-contracts/dist/grok-computer-use.js
15917
+ var grokComputerUseGetSchema = external_exports.object({}).strict();
15918
+ var grokComputerUseSetSchema = external_exports.object({
15919
+ enabled: external_exports.boolean().optional(),
15920
+ browser: external_exports.boolean().optional()
15921
+ }).strict().refine((value) => value.enabled !== void 0 || value.browser !== void 0, {
15922
+ message: "Expected enabled or browser"
15923
+ });
15924
+ var grokComputerUseSettingsSchema = external_exports.object({
15925
+ enabled: external_exports.boolean(),
15926
+ available: external_exports.boolean(),
15927
+ unavailableReason: external_exports.string().min(1).max(500).optional(),
15928
+ browser: external_exports.boolean().optional(),
15929
+ browserFilesPresent: external_exports.boolean().optional(),
15930
+ browserAvailable: external_exports.boolean().optional(),
15931
+ browserUnavailableReason: external_exports.string().min(1).max(500).optional(),
15932
+ applyFailed: external_exports.boolean().optional(),
15933
+ applyError: external_exports.string().min(1).max(500).optional()
15934
+ }).strict();
15935
+
15879
15936
  // ../../shared-contracts/dist/harness-installation.js
15880
15937
  var harnessInstallationParamsSchema = external_exports.object({
15881
15938
  harnessId: harnessIdSchema,
@@ -15886,6 +15943,10 @@ var harnessInstallationStateSchema = external_exports.object({
15886
15943
  latestVersion: external_exports.string().min(1).max(128),
15887
15944
  updateAvailable: external_exports.boolean(),
15888
15945
  canUpdate: external_exports.boolean(),
15946
+ /** Defaults to CLI; some Harnesses ship only inside a desktop application. */
15947
+ versionKind: external_exports.enum(["cli", "application"]).optional(),
15948
+ /** Official download opened by the user; does not imply an automatic installation. */
15949
+ manualUpdateUrl: external_exports.url().max(2048).refine((value) => /^https:\/\/[^/?#@]+(?:[/?#]|$)/iu.test(value), "Manual updates require a credential-free HTTPS URL").optional(),
15889
15950
  // Adapter-owned diagnostic text; UI uses messageCode rather than displaying it verbatim.
15890
15951
  message: external_exports.string().max(2048).optional(),
15891
15952
  messageCode: external_exports.string().min(1).max(128).optional(),
@@ -15893,6 +15954,20 @@ var harnessInstallationStateSchema = external_exports.object({
15893
15954
  notice: harnessLocalizedTextSchema.optional(),
15894
15955
  latestVersionKind: external_exports.enum(["unknown", "tracking-branch"]).optional()
15895
15956
  }).strict();
15957
+ var harnessInstallationTaskParamsSchema = external_exports.object({ taskId: external_exports.string().uuid() }).strict();
15958
+ var harnessInstallationTaskSchema = external_exports.discriminatedUnion("status", [
15959
+ external_exports.object({ taskId: external_exports.string().uuid(), status: external_exports.literal("running") }).strict(),
15960
+ external_exports.object({
15961
+ taskId: external_exports.string().uuid(),
15962
+ status: external_exports.literal("succeeded"),
15963
+ result: harnessInstallationStateSchema
15964
+ }).strict(),
15965
+ external_exports.object({
15966
+ taskId: external_exports.string().uuid(),
15967
+ status: external_exports.literal("failed"),
15968
+ error: external_exports.object({ code: external_exports.number().int(), message: external_exports.string().min(1).max(2048) }).strict()
15969
+ }).strict()
15970
+ ]);
15896
15971
 
15897
15972
  // ../../shared-contracts/dist/codex-accounts.js
15898
15973
  var accountIdSchema = external_exports.string().min(1).max(256).regex(/^[A-Za-z0-9._~-]+$/u);
@@ -16424,6 +16499,18 @@ function sanitizeDiagnosticTail(value) {
16424
16499
  return redacted.length <= DIAGNOSTIC_TAIL_MAX_LENGTH ? redacted : redacted.slice(-DIAGNOSTIC_TAIL_MAX_LENGTH);
16425
16500
  }
16426
16501
 
16502
+ // ../../harness-adapter/dist/steer.js
16503
+ function unsupportedSteer(harnessLabel) {
16504
+ return {
16505
+ ok: false,
16506
+ error: {
16507
+ code: "unsupported",
16508
+ message: `${harnessLabel} cannot steer an active Turn natively`,
16509
+ retryable: false
16510
+ }
16511
+ };
16512
+ }
16513
+
16427
16514
  // ../../harness-adapter/dist/usage.js
16428
16515
  var tokenFields = [
16429
16516
  "inputTokens",
@@ -16451,6 +16538,7 @@ var usageFields = /* @__PURE__ */ new Set([
16451
16538
  ...safeIntegerFields,
16452
16539
  ...percentFields,
16453
16540
  "sessionCacheUsage",
16541
+ "composerIndicators",
16454
16542
  "totalCostUsd",
16455
16543
  "totalCredits",
16456
16544
  "contextUsagePercent",
@@ -16473,6 +16561,7 @@ function parseHostUsage(value) {
16473
16561
  throw new Error(`Harness Usage contains unknown field '${key}'`);
16474
16562
  }
16475
16563
  }
16564
+ const indicators = value.composerIndicators === void 0 ? {} : { composerIndicators: composerIndicatorsSchema.parse(value.composerIndicators) };
16476
16565
  for (const field of [
16477
16566
  "totalCredits",
16478
16567
  "contextUsagePercent",
@@ -16543,9 +16632,9 @@ function parseHostUsage(value) {
16543
16632
  if (value.costSource !== "publicPrice") {
16544
16633
  throw new Error("Harness Usage 'unpricedModels' must be provided with a 'publicPrice' cost");
16545
16634
  }
16546
- return { ...value, unpricedModels: [...models] };
16635
+ return { ...value, ...indicators, unpricedModels: [...models] };
16547
16636
  }
16548
- return { ...value };
16637
+ return { ...value, ...indicators };
16549
16638
  }
16550
16639
  var requestTokenFields = [
16551
16640
  "inputTokens",
@@ -23959,6 +24048,8 @@ var KiroSession = class {
23959
24048
  if (command.type === "turn.cancel") {
23960
24049
  return this.#cancelTurn(command);
23961
24050
  }
24051
+ if (command.type === "turn.steer")
24052
+ return unsupportedSteer("Kiro");
23962
24053
  if (command.type === "interaction.respond") {
23963
24054
  return this.#respondInteraction(command);
23964
24055
  }