@karlorz/codexhost-cli-win32-x64 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
@@ -15068,10 +15068,19 @@ var model = external_exports.string().min(1).max(512);
15068
15068
  var project = external_exports.string().min(1).max(4096);
15069
15069
  var usageStatisticsParamsSchema = external_exports.strictObject({
15070
15070
  range: external_exports.enum(USAGE_STATISTICS_RANGES),
15071
+ /** Display timezone for ranges, dates and hourly buckets; omitted means the Host's local zone. */
15072
+ timeZone: external_exports.string().min(1).max(128).refine((value) => {
15073
+ try {
15074
+ new Intl.DateTimeFormat("en", { timeZone: value });
15075
+ return true;
15076
+ } catch {
15077
+ return false;
15078
+ }
15079
+ }, "Unsupported usage statistics timezone").optional(),
15071
15080
  harness: harness.optional(),
15072
15081
  model: model.nullable().optional(),
15073
15082
  project: project.nullable().optional(),
15074
- /** One local date inside the range. */
15083
+ /** One date in the query timezone inside the range. */
15075
15084
  date: localDate.optional()
15076
15085
  });
15077
15086
  var usageStatisticsTotalsSchema = external_exports.strictObject({
@@ -15107,7 +15116,7 @@ var usageStatisticsSessionSchema = external_exports.strictObject({
15107
15116
  });
15108
15117
  var usageStatisticsResultSchema = external_exports.strictObject({
15109
15118
  range: external_exports.enum(USAGE_STATISTICS_RANGES),
15110
- /** First local date of the range; null for all time. */
15119
+ /** First date in the query timezone (Host local when omitted); null for all time. */
15111
15120
  from: localDate.nullable(),
15112
15121
  to: localDate,
15113
15122
  /** The filters these figures apply, echoed so a late answer to older filters is recognised. */
@@ -15147,7 +15156,7 @@ var usageStatisticsResultSchema = external_exports.strictObject({
15147
15156
  totals: usageStatisticsTotalsSchema,
15148
15157
  /** Each date and Harness of the range: every filter except the day. */
15149
15158
  daily: external_exports.array(external_exports.strictObject({ date: localDate, harness, ...totals })).max(2e5),
15150
- /** Local weekday (0 = Sunday) and hour, all filters applied. */
15159
+ /** Weekday (0 = Sunday) and hour in the query timezone, all filters applied. */
15151
15160
  hourly: external_exports.array(external_exports.strictObject({
15152
15161
  weekday: external_exports.number().int().min(0).max(6),
15153
15162
  hour: external_exports.number().int().min(0).max(23),
@@ -15238,8 +15247,12 @@ var CONSOLE_HOST_METHODS = Object.freeze([
15238
15247
  "codexhost/harness/display-settings/set",
15239
15248
  "codexhost/harness/inspect",
15240
15249
  "codexhost/harness/installation",
15250
+ "codexhost/harness/installation/start",
15251
+ "codexhost/harness/installation/status",
15241
15252
  "codexhost/harness/launch-settings/get",
15242
15253
  "codexhost/harness/launch-settings/set",
15254
+ "codexhost/harness/grok-computer-use/get",
15255
+ "codexhost/harness/grok-computer-use/set",
15243
15256
  "codexhost/harness/web-ui/open",
15244
15257
  "codexhost/harness/accounts/sources",
15245
15258
  "codexhost/harness/accounts/list",
@@ -15313,7 +15326,18 @@ var threadManualCompactionStartedSchema = external_exports.strictObject({
15313
15326
  var nonNegativeSafeIntegerSchema = external_exports.number().int().safe().nonnegative();
15314
15327
  var finiteNonNegativeNumberSchema = external_exports.number().finite().nonnegative();
15315
15328
  var cacheHitRatePercentSchema = external_exports.number().finite().min(0).max(100);
15329
+ var indicatorTextSchema = (maximum) => harnessLocalizedTextSchema.refine((entries) => Object.values(entries).every((text) => text.length <= maximum));
15330
+ var composerIndicatorsSchema = external_exports.array(external_exports.object({
15331
+ kind: external_exports.literal("countdown"),
15332
+ id: external_exports.string().min(1).max(64),
15333
+ expiresAtUnix: nonNegativeSafeIntegerSchema,
15334
+ label: indicatorTextSchema(256).optional(),
15335
+ tooltip: indicatorTextSchema(1024).optional()
15336
+ }).strict()).max(2).refine((entries) => new Set(entries.map(({ id }) => id)).size === entries.length, {
15337
+ message: "Composer indicator IDs must be unique"
15338
+ });
15316
15339
  var threadUsageSnapshotSchema = external_exports.object({
15340
+ composerIndicators: composerIndicatorsSchema.optional(),
15317
15341
  inputTokens: nonNegativeSafeIntegerSchema.optional(),
15318
15342
  cachedInputTokens: nonNegativeSafeIntegerSchema.optional(),
15319
15343
  cacheWriteInputTokens: nonNegativeSafeIntegerSchema.optional(),
@@ -15721,7 +15745,9 @@ var harnessSessionCapabilitiesSchema = external_exports.object({
15721
15745
  }).strict().optional(),
15722
15746
  autonomousTurns: external_exports.object({
15723
15747
  observe: external_exports.boolean()
15724
- }).strict().optional()
15748
+ }).strict().optional(),
15749
+ /** True only when `turn.steer` delivers input into the active Turn through a native primitive. */
15750
+ steer: external_exports.boolean().optional()
15725
15751
  }).strict();
15726
15752
  var harnessConfigurationStateSchema = external_exports.object({
15727
15753
  effectiveModel: harnessModelRefSchema.optional(),
@@ -15768,7 +15794,9 @@ var harnessInspectionSchema = external_exports.union([
15768
15794
  var harnessInspectParamsSchema = external_exports.object({
15769
15795
  harnessId: harnessIdSchema,
15770
15796
  cwd: nonBlankTextSchema2.max(16384).optional(),
15771
- refresh: external_exports.boolean().optional()
15797
+ refresh: external_exports.boolean().optional(),
15798
+ /** `availability` asks only whether the Harness can run; see `InspectHarnessInput.purpose`. */
15799
+ purpose: external_exports.literal("availability").optional()
15772
15800
  }).strict();
15773
15801
  var harnessWebUiOpenParamsSchema = external_exports.object({
15774
15802
  harnessId: harnessIdSchema
@@ -15851,6 +15879,15 @@ var threadOwnershipListResultSchema = external_exports.object({
15851
15879
  seen.add(thread.threadId);
15852
15880
  }
15853
15881
  });
15882
+ var threadSteeringInspectParamsSchema = external_exports.object({
15883
+ threadId: hostThreadIdSchema,
15884
+ /** The text about to be steered; a Harness command always stops and restarts. */
15885
+ text: external_exports.string().optional()
15886
+ }).strict();
15887
+ var threadSteerDeliverySchema = external_exports.enum(["activeTurn", "newTurn"]);
15888
+ var threadSteeringInspectResultSchema = external_exports.object({
15889
+ delivery: external_exports.enum(["official", "activeTurn", "newTurn"])
15890
+ }).strict();
15854
15891
 
15855
15892
  // ../../shared-contracts/dist/harness-plugins.js
15856
15893
  var HARNESS_PLUGIN_MANIFEST_MAX_BYTES = 32 * 1024;
@@ -15942,6 +15979,26 @@ var harnessLaunchSettingsSchema = external_exports.object({
15942
15979
  restartRequired: external_exports.boolean()
15943
15980
  }).strict();
15944
15981
 
15982
+ // ../../shared-contracts/dist/grok-computer-use.js
15983
+ var grokComputerUseGetSchema = external_exports.object({}).strict();
15984
+ var grokComputerUseSetSchema = external_exports.object({
15985
+ enabled: external_exports.boolean().optional(),
15986
+ browser: external_exports.boolean().optional()
15987
+ }).strict().refine((value) => value.enabled !== void 0 || value.browser !== void 0, {
15988
+ message: "Expected enabled or browser"
15989
+ });
15990
+ var grokComputerUseSettingsSchema = external_exports.object({
15991
+ enabled: external_exports.boolean(),
15992
+ available: external_exports.boolean(),
15993
+ unavailableReason: external_exports.string().min(1).max(500).optional(),
15994
+ browser: external_exports.boolean().optional(),
15995
+ browserFilesPresent: external_exports.boolean().optional(),
15996
+ browserAvailable: external_exports.boolean().optional(),
15997
+ browserUnavailableReason: external_exports.string().min(1).max(500).optional(),
15998
+ applyFailed: external_exports.boolean().optional(),
15999
+ applyError: external_exports.string().min(1).max(500).optional()
16000
+ }).strict();
16001
+
15945
16002
  // ../../shared-contracts/dist/harness-installation.js
15946
16003
  var harnessInstallationParamsSchema = external_exports.object({
15947
16004
  harnessId: harnessIdSchema,
@@ -15952,6 +16009,10 @@ var harnessInstallationStateSchema = external_exports.object({
15952
16009
  latestVersion: external_exports.string().min(1).max(128),
15953
16010
  updateAvailable: external_exports.boolean(),
15954
16011
  canUpdate: external_exports.boolean(),
16012
+ /** Defaults to CLI; some Harnesses ship only inside a desktop application. */
16013
+ versionKind: external_exports.enum(["cli", "application"]).optional(),
16014
+ /** Official download opened by the user; does not imply an automatic installation. */
16015
+ manualUpdateUrl: external_exports.url().max(2048).refine((value) => /^https:\/\/[^/?#@]+(?:[/?#]|$)/iu.test(value), "Manual updates require a credential-free HTTPS URL").optional(),
15955
16016
  // Adapter-owned diagnostic text; UI uses messageCode rather than displaying it verbatim.
15956
16017
  message: external_exports.string().max(2048).optional(),
15957
16018
  messageCode: external_exports.string().min(1).max(128).optional(),
@@ -15959,6 +16020,20 @@ var harnessInstallationStateSchema = external_exports.object({
15959
16020
  notice: harnessLocalizedTextSchema.optional(),
15960
16021
  latestVersionKind: external_exports.enum(["unknown", "tracking-branch"]).optional()
15961
16022
  }).strict();
16023
+ var harnessInstallationTaskParamsSchema = external_exports.object({ taskId: external_exports.string().uuid() }).strict();
16024
+ var harnessInstallationTaskSchema = external_exports.discriminatedUnion("status", [
16025
+ external_exports.object({ taskId: external_exports.string().uuid(), status: external_exports.literal("running") }).strict(),
16026
+ external_exports.object({
16027
+ taskId: external_exports.string().uuid(),
16028
+ status: external_exports.literal("succeeded"),
16029
+ result: harnessInstallationStateSchema
16030
+ }).strict(),
16031
+ external_exports.object({
16032
+ taskId: external_exports.string().uuid(),
16033
+ status: external_exports.literal("failed"),
16034
+ error: external_exports.object({ code: external_exports.number().int(), message: external_exports.string().min(1).max(2048) }).strict()
16035
+ }).strict()
16036
+ ]);
15962
16037
 
15963
16038
  // ../../shared-contracts/dist/codex-accounts.js
15964
16039
  var accountIdSchema = external_exports.string().min(1).max(256).regex(/^[A-Za-z0-9._~-]+$/u);
@@ -16482,6 +16557,18 @@ function sanitizeDiagnosticTail(value) {
16482
16557
  return redacted.length <= DIAGNOSTIC_TAIL_MAX_LENGTH ? redacted : redacted.slice(-DIAGNOSTIC_TAIL_MAX_LENGTH);
16483
16558
  }
16484
16559
 
16560
+ // ../../harness-adapter/dist/steer.js
16561
+ function unsupportedSteer(harnessLabel) {
16562
+ return {
16563
+ ok: false,
16564
+ error: {
16565
+ code: "unsupported",
16566
+ message: `${harnessLabel} cannot steer an active Turn natively`,
16567
+ retryable: false
16568
+ }
16569
+ };
16570
+ }
16571
+
16485
16572
  // ../../harness-adapter/dist/usage.js
16486
16573
  var tokenFields = [
16487
16574
  "inputTokens",
@@ -16509,6 +16596,7 @@ var usageFields = /* @__PURE__ */ new Set([
16509
16596
  ...safeIntegerFields,
16510
16597
  ...percentFields,
16511
16598
  "sessionCacheUsage",
16599
+ "composerIndicators",
16512
16600
  "totalCostUsd",
16513
16601
  "totalCredits",
16514
16602
  "contextUsagePercent",
@@ -19119,6 +19207,8 @@ var AntigravitySession = class {
19119
19207
  #closed = false;
19120
19208
  #model;
19121
19209
  #nativeRef;
19210
+ /** The last result's `response`: agy carries earlier Turns' replies in it. */
19211
+ #lastResultResponse = "";
19122
19212
  #permissionMode;
19123
19213
  #thinkingOptionId;
19124
19214
  #catalog;
@@ -19180,6 +19270,8 @@ var AntigravitySession = class {
19180
19270
  return { ok: false, error: invalidState("Antigravity Session is closed") };
19181
19271
  if (command.type === "turn.cancel")
19182
19272
  return this.#cancel(command);
19273
+ if (command.type === "turn.steer")
19274
+ return unsupportedSteer("Antigravity");
19183
19275
  if (command.type === "model.select")
19184
19276
  return this.#selectModel(command);
19185
19277
  if (command.type === "permissionMode.select")
@@ -19506,9 +19598,13 @@ ${line}`).slice(-8e3);
19506
19598
  this.#history.bindNativeSession(convId);
19507
19599
  this.#event({ type: "session.state.changed", state: this.#state() });
19508
19600
  }
19509
- if (event.result.response) {
19510
- this.#appendOrSyncAgentText(active, event.result.response, false);
19511
- }
19601
+ const response = event.result.response ?? "";
19602
+ const turnReply = response.startsWith(this.#lastResultResponse) ? response.slice(this.#lastResultResponse.length) : response;
19603
+ const repliedThisTurn = Boolean(active.agentItem) || turnReply.trim() !== "";
19604
+ if (response)
19605
+ this.#lastResultResponse = response;
19606
+ if (turnReply.trim() !== "")
19607
+ this.#appendOrSyncAgentText(active, turnReply, false);
19512
19608
  const safeTurnId = event.result.num_turns !== void 0 && event.result.num_turns !== null ? `turn:${event.result.num_turns}` : `turn:${this.#history.snapshot().length + 1}`;
19513
19609
  const safeSessionId = convId || this.#nativeRef?.nativeSessionId || "unknown-session";
19514
19610
  const nativeTurnRef = nativeTurnRefSchema.parse({
@@ -19538,13 +19634,17 @@ ${line}`).slice(-8e3);
19538
19634
  } else {
19539
19635
  const nativeError = event.result.error?.trim();
19540
19636
  const errorDetail = nativeError || active.stderr;
19541
- this.#completeTurn(active, {
19542
- status: "failed",
19543
- error: normalizedProcessError(errorDetail, `Antigravity Turn ended with status ${event.result.status}`, nativeError !== void 0),
19544
- checkpoint
19545
- }, nativeTurnRef);
19637
+ const error51 = normalizedProcessError(errorDetail, `Antigravity Turn ended with status ${event.result.status}`, nativeError !== void 0);
19638
+ if (repliedThisTurn && nativeError && this.#reportedEarlier(error51)) {
19639
+ this.#completeTurn(active, { status: "succeeded", checkpoint }, nativeTurnRef);
19640
+ } else {
19641
+ this.#completeTurn(active, { status: "failed", error: error51, checkpoint }, nativeTurnRef);
19642
+ }
19546
19643
  }
19547
19644
  }
19645
+ #reportedEarlier(error51) {
19646
+ return this.#history.snapshot().some(({ outcome }) => outcome.status === "failed" && outcome.error.code === error51.code && outcome.error.message === error51.message);
19647
+ }
19548
19648
  #publishUsage(active, usage) {
19549
19649
  active.latestUsage = { ...active.latestUsage ?? {}, ...usage };
19550
19650
  this.#event({