@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
@@ -4209,10 +4209,13 @@ function usageSessionTitle(value) {
4209
4209
  return void 0;
4210
4210
  if (normalized.length <= MAX_SESSION_TITLE_LENGTH)
4211
4211
  return normalized;
4212
- const characters = [...normalized];
4213
- if (characters.length <= MAX_SESSION_TITLE_LENGTH)
4214
- return normalized;
4215
- return `${characters.slice(0, MAX_SESSION_TITLE_LENGTH - 1).join("").trimEnd()}…`;
4212
+ let title = "";
4213
+ for (const character of normalized) {
4214
+ if (title.length + character.length >= MAX_SESSION_TITLE_LENGTH)
4215
+ break;
4216
+ title += character;
4217
+ }
4218
+ return `${title.trimEnd()}…`;
4216
4219
  }
4217
4220
  function sessionIdOk(value) {
4218
4221
  return typeof value === "string" && value.length > 0 && value.length <= MAX_SESSION_ID_LENGTH;
@@ -18900,10 +18903,19 @@ var model = external_exports.string().min(1).max(512);
18900
18903
  var project = external_exports.string().min(1).max(4096);
18901
18904
  var usageStatisticsParamsSchema = external_exports.strictObject({
18902
18905
  range: external_exports.enum(USAGE_STATISTICS_RANGES),
18906
+ /** Display timezone for ranges, dates and hourly buckets; omitted means the Host's local zone. */
18907
+ timeZone: external_exports.string().min(1).max(128).refine((value) => {
18908
+ try {
18909
+ new Intl.DateTimeFormat("en", { timeZone: value });
18910
+ return true;
18911
+ } catch {
18912
+ return false;
18913
+ }
18914
+ }, "Unsupported usage statistics timezone").optional(),
18903
18915
  harness: harness.optional(),
18904
18916
  model: model.nullable().optional(),
18905
18917
  project: project.nullable().optional(),
18906
- /** One local date inside the range. */
18918
+ /** One date in the query timezone inside the range. */
18907
18919
  date: localDate.optional()
18908
18920
  });
18909
18921
  var usageStatisticsTotalsSchema = external_exports.strictObject({
@@ -18939,7 +18951,7 @@ var usageStatisticsSessionSchema = external_exports.strictObject({
18939
18951
  });
18940
18952
  var usageStatisticsResultSchema = external_exports.strictObject({
18941
18953
  range: external_exports.enum(USAGE_STATISTICS_RANGES),
18942
- /** First local date of the range; null for all time. */
18954
+ /** First date in the query timezone (Host local when omitted); null for all time. */
18943
18955
  from: localDate.nullable(),
18944
18956
  to: localDate,
18945
18957
  /** The filters these figures apply, echoed so a late answer to older filters is recognised. */
@@ -18979,7 +18991,7 @@ var usageStatisticsResultSchema = external_exports.strictObject({
18979
18991
  totals: usageStatisticsTotalsSchema,
18980
18992
  /** Each date and Harness of the range: every filter except the day. */
18981
18993
  daily: external_exports.array(external_exports.strictObject({ date: localDate, harness, ...totals })).max(2e5),
18982
- /** Local weekday (0 = Sunday) and hour, all filters applied. */
18994
+ /** Weekday (0 = Sunday) and hour in the query timezone, all filters applied. */
18983
18995
  hourly: external_exports.array(external_exports.strictObject({
18984
18996
  weekday: external_exports.number().int().min(0).max(6),
18985
18997
  hour: external_exports.number().int().min(0).max(23),
@@ -19070,8 +19082,12 @@ var CONSOLE_HOST_METHODS = Object.freeze([
19070
19082
  "codexhost/harness/display-settings/set",
19071
19083
  "codexhost/harness/inspect",
19072
19084
  "codexhost/harness/installation",
19085
+ "codexhost/harness/installation/start",
19086
+ "codexhost/harness/installation/status",
19073
19087
  "codexhost/harness/launch-settings/get",
19074
19088
  "codexhost/harness/launch-settings/set",
19089
+ "codexhost/harness/grok-computer-use/get",
19090
+ "codexhost/harness/grok-computer-use/set",
19075
19091
  "codexhost/harness/web-ui/open",
19076
19092
  "codexhost/harness/accounts/sources",
19077
19093
  "codexhost/harness/accounts/list",
@@ -19145,7 +19161,18 @@ var threadManualCompactionStartedSchema = external_exports.strictObject({
19145
19161
  var nonNegativeSafeIntegerSchema = external_exports.number().int().safe().nonnegative();
19146
19162
  var finiteNonNegativeNumberSchema = external_exports.number().finite().nonnegative();
19147
19163
  var cacheHitRatePercentSchema = external_exports.number().finite().min(0).max(100);
19164
+ var indicatorTextSchema = (maximum) => harnessLocalizedTextSchema.refine((entries) => Object.values(entries).every((text) => text.length <= maximum));
19165
+ var composerIndicatorsSchema = external_exports.array(external_exports.object({
19166
+ kind: external_exports.literal("countdown"),
19167
+ id: external_exports.string().min(1).max(64),
19168
+ expiresAtUnix: nonNegativeSafeIntegerSchema,
19169
+ label: indicatorTextSchema(256).optional(),
19170
+ tooltip: indicatorTextSchema(1024).optional()
19171
+ }).strict()).max(2).refine((entries) => new Set(entries.map(({ id }) => id)).size === entries.length, {
19172
+ message: "Composer indicator IDs must be unique"
19173
+ });
19148
19174
  var threadUsageSnapshotSchema = external_exports.object({
19175
+ composerIndicators: composerIndicatorsSchema.optional(),
19149
19176
  inputTokens: nonNegativeSafeIntegerSchema.optional(),
19150
19177
  cachedInputTokens: nonNegativeSafeIntegerSchema.optional(),
19151
19178
  cacheWriteInputTokens: nonNegativeSafeIntegerSchema.optional(),
@@ -19553,7 +19580,9 @@ var harnessSessionCapabilitiesSchema = external_exports.object({
19553
19580
  }).strict().optional(),
19554
19581
  autonomousTurns: external_exports.object({
19555
19582
  observe: external_exports.boolean()
19556
- }).strict().optional()
19583
+ }).strict().optional(),
19584
+ /** True only when `turn.steer` delivers input into the active Turn through a native primitive. */
19585
+ steer: external_exports.boolean().optional()
19557
19586
  }).strict();
19558
19587
  var harnessConfigurationStateSchema = external_exports.object({
19559
19588
  effectiveModel: harnessModelRefSchema.optional(),
@@ -19600,7 +19629,9 @@ var harnessInspectionSchema = external_exports.union([
19600
19629
  var harnessInspectParamsSchema = external_exports.object({
19601
19630
  harnessId: harnessIdSchema,
19602
19631
  cwd: nonBlankTextSchema2.max(16384).optional(),
19603
- refresh: external_exports.boolean().optional()
19632
+ refresh: external_exports.boolean().optional(),
19633
+ /** `availability` asks only whether the Harness can run; see `InspectHarnessInput.purpose`. */
19634
+ purpose: external_exports.literal("availability").optional()
19604
19635
  }).strict();
19605
19636
  var harnessWebUiOpenParamsSchema = external_exports.object({
19606
19637
  harnessId: harnessIdSchema
@@ -19683,6 +19714,15 @@ var threadOwnershipListResultSchema = external_exports.object({
19683
19714
  seen.add(thread.threadId);
19684
19715
  }
19685
19716
  });
19717
+ var threadSteeringInspectParamsSchema = external_exports.object({
19718
+ threadId: hostThreadIdSchema,
19719
+ /** The text about to be steered; a Harness command always stops and restarts. */
19720
+ text: external_exports.string().optional()
19721
+ }).strict();
19722
+ var threadSteerDeliverySchema = external_exports.enum(["activeTurn", "newTurn"]);
19723
+ var threadSteeringInspectResultSchema = external_exports.object({
19724
+ delivery: external_exports.enum(["official", "activeTurn", "newTurn"])
19725
+ }).strict();
19686
19726
 
19687
19727
  // ../../shared-contracts/dist/harness-plugins.js
19688
19728
  var HARNESS_PLUGIN_MANIFEST_MAX_BYTES = 32 * 1024;
@@ -19774,6 +19814,26 @@ var harnessLaunchSettingsSchema = external_exports.object({
19774
19814
  restartRequired: external_exports.boolean()
19775
19815
  }).strict();
19776
19816
 
19817
+ // ../../shared-contracts/dist/grok-computer-use.js
19818
+ var grokComputerUseGetSchema = external_exports.object({}).strict();
19819
+ var grokComputerUseSetSchema = external_exports.object({
19820
+ enabled: external_exports.boolean().optional(),
19821
+ browser: external_exports.boolean().optional()
19822
+ }).strict().refine((value) => value.enabled !== void 0 || value.browser !== void 0, {
19823
+ message: "Expected enabled or browser"
19824
+ });
19825
+ var grokComputerUseSettingsSchema = external_exports.object({
19826
+ enabled: external_exports.boolean(),
19827
+ available: external_exports.boolean(),
19828
+ unavailableReason: external_exports.string().min(1).max(500).optional(),
19829
+ browser: external_exports.boolean().optional(),
19830
+ browserFilesPresent: external_exports.boolean().optional(),
19831
+ browserAvailable: external_exports.boolean().optional(),
19832
+ browserUnavailableReason: external_exports.string().min(1).max(500).optional(),
19833
+ applyFailed: external_exports.boolean().optional(),
19834
+ applyError: external_exports.string().min(1).max(500).optional()
19835
+ }).strict();
19836
+
19777
19837
  // ../../shared-contracts/dist/harness-installation.js
19778
19838
  var harnessInstallationParamsSchema = external_exports.object({
19779
19839
  harnessId: harnessIdSchema,
@@ -19784,6 +19844,10 @@ var harnessInstallationStateSchema = external_exports.object({
19784
19844
  latestVersion: external_exports.string().min(1).max(128),
19785
19845
  updateAvailable: external_exports.boolean(),
19786
19846
  canUpdate: external_exports.boolean(),
19847
+ /** Defaults to CLI; some Harnesses ship only inside a desktop application. */
19848
+ versionKind: external_exports.enum(["cli", "application"]).optional(),
19849
+ /** Official download opened by the user; does not imply an automatic installation. */
19850
+ manualUpdateUrl: external_exports.url().max(2048).refine((value) => /^https:\/\/[^/?#@]+(?:[/?#]|$)/iu.test(value), "Manual updates require a credential-free HTTPS URL").optional(),
19787
19851
  // Adapter-owned diagnostic text; UI uses messageCode rather than displaying it verbatim.
19788
19852
  message: external_exports.string().max(2048).optional(),
19789
19853
  messageCode: external_exports.string().min(1).max(128).optional(),
@@ -19791,6 +19855,20 @@ var harnessInstallationStateSchema = external_exports.object({
19791
19855
  notice: harnessLocalizedTextSchema.optional(),
19792
19856
  latestVersionKind: external_exports.enum(["unknown", "tracking-branch"]).optional()
19793
19857
  }).strict();
19858
+ var harnessInstallationTaskParamsSchema = external_exports.object({ taskId: external_exports.string().uuid() }).strict();
19859
+ var harnessInstallationTaskSchema = external_exports.discriminatedUnion("status", [
19860
+ external_exports.object({ taskId: external_exports.string().uuid(), status: external_exports.literal("running") }).strict(),
19861
+ external_exports.object({
19862
+ taskId: external_exports.string().uuid(),
19863
+ status: external_exports.literal("succeeded"),
19864
+ result: harnessInstallationStateSchema
19865
+ }).strict(),
19866
+ external_exports.object({
19867
+ taskId: external_exports.string().uuid(),
19868
+ status: external_exports.literal("failed"),
19869
+ error: external_exports.object({ code: external_exports.number().int(), message: external_exports.string().min(1).max(2048) }).strict()
19870
+ }).strict()
19871
+ ]);
19794
19872
 
19795
19873
  // ../../shared-contracts/dist/codex-accounts.js
19796
19874
  var accountIdSchema = external_exports.string().min(1).max(256).regex(/^[A-Za-z0-9._~-]+$/u);
@@ -20348,6 +20426,18 @@ function sanitizeDiagnosticTail(value) {
20348
20426
  return redacted.length <= DIAGNOSTIC_TAIL_MAX_LENGTH ? redacted : redacted.slice(-DIAGNOSTIC_TAIL_MAX_LENGTH);
20349
20427
  }
20350
20428
 
20429
+ // ../../harness-adapter/dist/steer.js
20430
+ function unsupportedSteer(harnessLabel) {
20431
+ return {
20432
+ ok: false,
20433
+ error: {
20434
+ code: "unsupported",
20435
+ message: `${harnessLabel} cannot steer an active Turn natively`,
20436
+ retryable: false
20437
+ }
20438
+ };
20439
+ }
20440
+
20351
20441
  // ../../harness-adapter/dist/usage.js
20352
20442
  var tokenFields = [
20353
20443
  "inputTokens",
@@ -20375,6 +20465,7 @@ var usageFields = /* @__PURE__ */ new Set([
20375
20465
  ...safeIntegerFields,
20376
20466
  ...percentFields,
20377
20467
  "sessionCacheUsage",
20468
+ "composerIndicators",
20378
20469
  "totalCostUsd",
20379
20470
  "totalCredits",
20380
20471
  "contextUsagePercent",
@@ -20397,6 +20488,7 @@ function parseHostUsage(value) {
20397
20488
  throw new Error(`Harness Usage contains unknown field '${key}'`);
20398
20489
  }
20399
20490
  }
20491
+ const indicators = value.composerIndicators === void 0 ? {} : { composerIndicators: composerIndicatorsSchema.parse(value.composerIndicators) };
20400
20492
  for (const field of [
20401
20493
  "totalCredits",
20402
20494
  "contextUsagePercent",
@@ -20467,9 +20559,9 @@ function parseHostUsage(value) {
20467
20559
  if (value.costSource !== "publicPrice") {
20468
20560
  throw new Error("Harness Usage 'unpricedModels' must be provided with a 'publicPrice' cost");
20469
20561
  }
20470
- return { ...value, unpricedModels: [...models] };
20562
+ return { ...value, ...indicators, unpricedModels: [...models] };
20471
20563
  }
20472
- return { ...value };
20564
+ return { ...value, ...indicators };
20473
20565
  }
20474
20566
  var requestTokenFields = [
20475
20567
  "inputTokens",
@@ -28851,6 +28943,8 @@ var ModernHarnessSession = class {
28851
28943
  switch (command.type) {
28852
28944
  case "turn.start":
28853
28945
  return this.#start(command);
28946
+ case "turn.steer":
28947
+ return Promise.resolve(unsupportedSteer("DeepSeek Harness"));
28854
28948
  case "turn.cancel":
28855
28949
  return this.#cancel(command);
28856
28950
  case "interaction.respond":
@@ -17,6 +17,7 @@
17
17
  "qoder-cn",
18
18
  "kimi-code",
19
19
  "zcode",
20
+ "copilot",
20
21
  "codex-usage"
21
22
  ]
22
23
  }