@codexhost/cli-darwin-x64 0.13.3 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3308,10 +3308,10 @@ var $ZodObject = /* @__PURE__ */ $constructor("$ZodObject", (inst, def) => {
3308
3308
  const shape = def.shape;
3309
3309
  const propValues = {};
3310
3310
  for (const key in shape) {
3311
- const field = shape[key]._zod;
3312
- if (field.values) {
3311
+ const field2 = shape[key]._zod;
3312
+ if (field2.values) {
3313
3313
  propValues[key] ?? (propValues[key] = /* @__PURE__ */ new Set());
3314
- for (const v of field.values)
3314
+ for (const v of field2.values)
3315
3315
  propValues[key].add(v);
3316
3316
  }
3317
3317
  }
@@ -14931,10 +14931,19 @@ var model = external_exports.string().min(1).max(512);
14931
14931
  var project = external_exports.string().min(1).max(4096);
14932
14932
  var usageStatisticsParamsSchema = external_exports.strictObject({
14933
14933
  range: external_exports.enum(USAGE_STATISTICS_RANGES),
14934
+ /** Display timezone for ranges, dates and hourly buckets; omitted means the Host's local zone. */
14935
+ timeZone: external_exports.string().min(1).max(128).refine((value) => {
14936
+ try {
14937
+ new Intl.DateTimeFormat("en", { timeZone: value });
14938
+ return true;
14939
+ } catch {
14940
+ return false;
14941
+ }
14942
+ }, "Unsupported usage statistics timezone").optional(),
14934
14943
  harness: harness.optional(),
14935
14944
  model: model.nullable().optional(),
14936
14945
  project: project.nullable().optional(),
14937
- /** One local date inside the range. */
14946
+ /** One date in the query timezone inside the range. */
14938
14947
  date: localDate.optional()
14939
14948
  });
14940
14949
  var usageStatisticsTotalsSchema = external_exports.strictObject({
@@ -14970,7 +14979,7 @@ var usageStatisticsSessionSchema = external_exports.strictObject({
14970
14979
  });
14971
14980
  var usageStatisticsResultSchema = external_exports.strictObject({
14972
14981
  range: external_exports.enum(USAGE_STATISTICS_RANGES),
14973
- /** First local date of the range; null for all time. */
14982
+ /** First date in the query timezone (Host local when omitted); null for all time. */
14974
14983
  from: localDate.nullable(),
14975
14984
  to: localDate,
14976
14985
  /** The filters these figures apply, echoed so a late answer to older filters is recognised. */
@@ -15010,7 +15019,7 @@ var usageStatisticsResultSchema = external_exports.strictObject({
15010
15019
  totals: usageStatisticsTotalsSchema,
15011
15020
  /** Each date and Harness of the range: every filter except the day. */
15012
15021
  daily: external_exports.array(external_exports.strictObject({ date: localDate, harness, ...totals })).max(2e5),
15013
- /** Local weekday (0 = Sunday) and hour, all filters applied. */
15022
+ /** Weekday (0 = Sunday) and hour in the query timezone, all filters applied. */
15014
15023
  hourly: external_exports.array(external_exports.strictObject({
15015
15024
  weekday: external_exports.number().int().min(0).max(6),
15016
15025
  hour: external_exports.number().int().min(0).max(23),
@@ -15050,6 +15059,51 @@ var hostInteractionIdSchema = opaqueIdSchema.brand();
15050
15059
  var threadPrewarmDiscardParamsSchema = external_exports.object({ threadId: hostThreadIdSchema });
15051
15060
  var threadPrewarmDiscardResultSchema = external_exports.object({ discarded: external_exports.boolean() });
15052
15061
 
15062
+ // packages/shared-contracts/dist/thread-questions.js
15063
+ var field = external_exports.discriminatedUnion("type", [
15064
+ external_exports.object({
15065
+ id: external_exports.string().min(1),
15066
+ type: external_exports.literal("choice"),
15067
+ prompt: external_exports.string(),
15068
+ options: external_exports.array(external_exports.object({
15069
+ value: external_exports.string().min(1),
15070
+ label: external_exports.string(),
15071
+ description: external_exports.string().optional()
15072
+ })).min(1),
15073
+ multiple: external_exports.boolean(),
15074
+ allowOther: external_exports.boolean(),
15075
+ optional: external_exports.boolean()
15076
+ }),
15077
+ external_exports.object({
15078
+ id: external_exports.string().min(1),
15079
+ type: external_exports.literal("text"),
15080
+ prompt: external_exports.string(),
15081
+ multiline: external_exports.boolean(),
15082
+ secret: external_exports.literal(false),
15083
+ optional: external_exports.boolean(),
15084
+ placeholder: external_exports.string().optional(),
15085
+ prefill: external_exports.string().optional()
15086
+ })
15087
+ ]);
15088
+ var threadQuestionSchema = external_exports.object({
15089
+ interactionId: external_exports.string().min(1),
15090
+ turnId: external_exports.string().min(1),
15091
+ title: external_exports.string().optional(),
15092
+ questions: external_exports.array(field).min(1)
15093
+ }).refine(({ questions }) => questions.some((q) => q.type === "choice" && q.multiple), {
15094
+ message: "Shared cards require at least one multi-select question"
15095
+ });
15096
+ var threadQuestionsListParamsSchema = external_exports.strictObject({ threadId: external_exports.string().min(1) });
15097
+ var threadQuestionsResultSchema = external_exports.object({ questions: external_exports.array(threadQuestionSchema) });
15098
+ var threadQuestionRespondParamsSchema = external_exports.strictObject({
15099
+ threadId: external_exports.string().min(1),
15100
+ turnId: external_exports.string().min(1),
15101
+ interactionId: external_exports.string().min(1),
15102
+ answers: external_exports.record(external_exports.string(), external_exports.array(external_exports.string())),
15103
+ cancelled: external_exports.boolean().default(false)
15104
+ });
15105
+ var threadQuestionRespondResultSchema = external_exports.object({ accepted: external_exports.literal(true) });
15106
+
15053
15107
  // packages/shared-contracts/dist/console.js
15054
15108
  var consoleAnnouncementSchema = external_exports.strictObject({
15055
15109
  title: external_exports.string().trim().min(1).max(200),
@@ -15070,6 +15124,8 @@ var CONSOLE_HOST_METHODS = Object.freeze([
15070
15124
  "codexhost/harness/display-settings/set",
15071
15125
  "codexhost/harness/inspect",
15072
15126
  "codexhost/harness/installation",
15127
+ "codexhost/harness/installation/start",
15128
+ "codexhost/harness/installation/status",
15073
15129
  "codexhost/harness/launch-settings/get",
15074
15130
  "codexhost/harness/launch-settings/set",
15075
15131
  "codexhost/harness/web-ui/open",
@@ -15145,7 +15201,18 @@ var threadManualCompactionStartedSchema = external_exports.strictObject({
15145
15201
  var nonNegativeSafeIntegerSchema = external_exports.number().int().safe().nonnegative();
15146
15202
  var finiteNonNegativeNumberSchema = external_exports.number().finite().nonnegative();
15147
15203
  var cacheHitRatePercentSchema = external_exports.number().finite().min(0).max(100);
15204
+ var indicatorTextSchema = (maximum) => harnessLocalizedTextSchema.refine((entries) => Object.values(entries).every((text) => text.length <= maximum));
15205
+ var composerIndicatorsSchema = external_exports.array(external_exports.object({
15206
+ kind: external_exports.literal("countdown"),
15207
+ id: external_exports.string().min(1).max(64),
15208
+ expiresAtUnix: nonNegativeSafeIntegerSchema,
15209
+ label: indicatorTextSchema(256).optional(),
15210
+ tooltip: indicatorTextSchema(1024).optional()
15211
+ }).strict()).max(2).refine((entries) => new Set(entries.map(({ id }) => id)).size === entries.length, {
15212
+ message: "Composer indicator IDs must be unique"
15213
+ });
15148
15214
  var threadUsageSnapshotSchema = external_exports.object({
15215
+ composerIndicators: composerIndicatorsSchema.optional(),
15149
15216
  inputTokens: nonNegativeSafeIntegerSchema.optional(),
15150
15217
  cachedInputTokens: nonNegativeSafeIntegerSchema.optional(),
15151
15218
  cacheWriteInputTokens: nonNegativeSafeIntegerSchema.optional(),
@@ -15553,7 +15620,9 @@ var harnessSessionCapabilitiesSchema = external_exports.object({
15553
15620
  }).strict().optional(),
15554
15621
  autonomousTurns: external_exports.object({
15555
15622
  observe: external_exports.boolean()
15556
- }).strict().optional()
15623
+ }).strict().optional(),
15624
+ /** True only when `turn.steer` delivers input into the active Turn through a native primitive. */
15625
+ steer: external_exports.boolean().optional()
15557
15626
  }).strict();
15558
15627
  var harnessConfigurationStateSchema = external_exports.object({
15559
15628
  effectiveModel: harnessModelRefSchema.optional(),
@@ -15600,7 +15669,9 @@ var harnessInspectionSchema = external_exports.union([
15600
15669
  var harnessInspectParamsSchema = external_exports.object({
15601
15670
  harnessId: harnessIdSchema,
15602
15671
  cwd: nonBlankTextSchema2.max(16384).optional(),
15603
- refresh: external_exports.boolean().optional()
15672
+ refresh: external_exports.boolean().optional(),
15673
+ /** `availability` asks only whether the Harness can run; see `InspectHarnessInput.purpose`. */
15674
+ purpose: external_exports.literal("availability").optional()
15604
15675
  }).strict();
15605
15676
  var harnessWebUiOpenParamsSchema = external_exports.object({
15606
15677
  harnessId: harnessIdSchema
@@ -15683,6 +15754,15 @@ var threadOwnershipListResultSchema = external_exports.object({
15683
15754
  seen.add(thread.threadId);
15684
15755
  }
15685
15756
  });
15757
+ var threadSteeringInspectParamsSchema = external_exports.object({
15758
+ threadId: hostThreadIdSchema,
15759
+ /** The text about to be steered; a Harness command always stops and restarts. */
15760
+ text: external_exports.string().optional()
15761
+ }).strict();
15762
+ var threadSteerDeliverySchema = external_exports.enum(["activeTurn", "newTurn"]);
15763
+ var threadSteeringInspectResultSchema = external_exports.object({
15764
+ delivery: external_exports.enum(["official", "activeTurn", "newTurn"])
15765
+ }).strict();
15686
15766
 
15687
15767
  // packages/shared-contracts/dist/harness-plugins.js
15688
15768
  var HARNESS_PLUGIN_MANIFEST_MAX_BYTES = 32 * 1024;
@@ -15784,6 +15864,10 @@ var harnessInstallationStateSchema = external_exports.object({
15784
15864
  latestVersion: external_exports.string().min(1).max(128),
15785
15865
  updateAvailable: external_exports.boolean(),
15786
15866
  canUpdate: external_exports.boolean(),
15867
+ /** Defaults to CLI; some Harnesses ship only inside a desktop application. */
15868
+ versionKind: external_exports.enum(["cli", "application"]).optional(),
15869
+ /** Official download opened by the user; does not imply an automatic installation. */
15870
+ manualUpdateUrl: external_exports.url().max(2048).refine((value) => /^https:\/\/[^/?#@]+(?:[/?#]|$)/iu.test(value), "Manual updates require a credential-free HTTPS URL").optional(),
15787
15871
  // Adapter-owned diagnostic text; UI uses messageCode rather than displaying it verbatim.
15788
15872
  message: external_exports.string().max(2048).optional(),
15789
15873
  messageCode: external_exports.string().min(1).max(128).optional(),
@@ -15791,6 +15875,20 @@ var harnessInstallationStateSchema = external_exports.object({
15791
15875
  notice: harnessLocalizedTextSchema.optional(),
15792
15876
  latestVersionKind: external_exports.enum(["unknown", "tracking-branch"]).optional()
15793
15877
  }).strict();
15878
+ var harnessInstallationTaskParamsSchema = external_exports.object({ taskId: external_exports.string().uuid() }).strict();
15879
+ var harnessInstallationTaskSchema = external_exports.discriminatedUnion("status", [
15880
+ external_exports.object({ taskId: external_exports.string().uuid(), status: external_exports.literal("running") }).strict(),
15881
+ external_exports.object({
15882
+ taskId: external_exports.string().uuid(),
15883
+ status: external_exports.literal("succeeded"),
15884
+ result: harnessInstallationStateSchema
15885
+ }).strict(),
15886
+ external_exports.object({
15887
+ taskId: external_exports.string().uuid(),
15888
+ status: external_exports.literal("failed"),
15889
+ error: external_exports.object({ code: external_exports.number().int(), message: external_exports.string().min(1).max(2048) }).strict()
15890
+ }).strict()
15891
+ ]);
15794
15892
 
15795
15893
  // packages/shared-contracts/dist/codex-accounts.js
15796
15894
  var accountIdSchema = external_exports.string().min(1).max(256).regex(/^[A-Za-z0-9._~-]+$/u);
@@ -17187,9 +17285,13 @@ function requestManagerFromHookState(value, hostId2) {
17187
17285
  if (!record2(value)) return null;
17188
17286
  const direct = manager(value) ?? manager(value.manager);
17189
17287
  if (direct) return direct;
17190
- if (!hostId2 || typeof value.addManager !== "function" || typeof value.getForHostId !== "function" || typeof value.waitForManagerForHostId !== "function")
17288
+ if (!hostId2 || typeof value.addManager !== "function" || typeof value.getForHostId !== "function")
17191
17289
  return null;
17192
- return manager(value.getForHostId(hostId2));
17290
+ try {
17291
+ return manager(value.getForHostId(hostId2));
17292
+ } catch {
17293
+ return null;
17294
+ }
17193
17295
  }
17194
17296
  function discoverRendererHosts(root, ancestors = committedReactAncestors, managerFrom = requestManagerFromHookState) {
17195
17297
  const editors = [
@@ -17224,7 +17326,7 @@ function discoverRendererHosts(root, ancestors = committedReactAncestors, manage
17224
17326
  const value = hook.memoizedState;
17225
17327
  const manager = managerFrom(value);
17226
17328
  if (manager) managers.add(manager);
17227
- if (value && typeof value === "object" && "addManager" in value && typeof value.addManager === "function" && "getForHostId" in value && typeof value.getForHostId === "function" && "waitForManagerForHostId" in value && typeof value.waitForManagerForHostId === "function") {
17329
+ if (value && typeof value === "object" && "addManager" in value && typeof value.addManager === "function" && "getForHostId" in value && typeof value.getForHostId === "function") {
17228
17330
  registries.add(value);
17229
17331
  }
17230
17332
  hook = hook.next && typeof hook.next === "object" ? hook.next : null;
@@ -17239,7 +17341,13 @@ function discoverRendererHosts(root, ancestors = committedReactAncestors, manage
17239
17341
  }
17240
17342
  function resolveRendererHostManager(discovery, hostId2, managerFrom = requestManagerFromHookState) {
17241
17343
  if (!hostId2) return null;
17242
- const candidates = discovery.registries.length ? discovery.registries.map((registry2) => managerFrom(registry2.getForHostId(hostId2))) : discovery.managers;
17344
+ const candidates = discovery.registries.length ? discovery.registries.flatMap((registry2) => {
17345
+ try {
17346
+ return [managerFrom(registry2.getForHostId(hostId2))];
17347
+ } catch {
17348
+ return [];
17349
+ }
17350
+ }) : discovery.managers;
17243
17351
  const matching = new Set(
17244
17352
  candidates.filter(
17245
17353
  (manager) => manager && (manager.getHostId?.() ?? manager.requestClient.hostId) === hostId2 && (manager.requestClient.hostId === void 0 || manager.requestClient.hostId === hostId2)