@codexhost/cli-linux-arm64 0.8.0 → 0.9.1

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/THIRD_PARTY_NOTICES.txt +12 -0
  3. package/app/codexhost-distribution.json +1 -1
  4. package/app/desktop-controller.mjs +67 -26
  5. package/app/host-runtime.mjs +3774 -6483
  6. package/app/plugins/antigravity/plugin.mjs +114 -93
  7. package/app/plugins/claude-code/plugin.mjs +480 -239
  8. package/app/plugins/codebuddy/plugin.mjs +2177 -846
  9. package/app/plugins/cursor-cli/plugin.mjs +35065 -10156
  10. package/app/plugins/deepseek-harness/plugin.mjs +72 -84
  11. package/app/plugins/enabled.json +4 -1
  12. package/app/plugins/grok/plugin.mjs +60 -78
  13. package/app/plugins/hermes/plugin.mjs +2431 -174
  14. package/app/plugins/kiro-cli/plugin.mjs +67 -80
  15. package/app/plugins/omp/plugin.mjs +106 -91
  16. package/app/plugins/opencode/plugin.mjs +109 -123
  17. package/app/plugins/pi/plugin.mjs +71 -84
  18. package/app/plugins/qoder/assets/icon.svg +1 -0
  19. package/app/plugins/qoder/manifest.json +12 -0
  20. package/app/plugins/qoder/plugin.mjs +52267 -0
  21. package/app/plugins/qoder-cn/assets/icon.svg +1 -0
  22. package/app/plugins/qoder-cn/manifest.json +12 -0
  23. package/app/plugins/qoder-cn/plugin.mjs +52265 -0
  24. package/app/plugins/workbuddy/assets/icon.svg +29 -0
  25. package/app/plugins/workbuddy/manifest.json +14 -0
  26. package/app/plugins/workbuddy/plugin.mjs +24818 -0
  27. package/app/renderer-extension.js +3182 -960
  28. package/bin/codexhost +0 -0
  29. package/libexec/codexhost-shim +0 -0
  30. package/libexec/codexhost-updater +0 -0
  31. package/licenses/Qoder-Agent-SDK-LICENSE.txt +7 -0
  32. package/licenses/QoderCN-Agent-SDK-LICENSE.txt +7 -0
  33. package/licenses/tailwindcss-LICENSE.txt +21 -0
  34. package/package.json +1 -1
@@ -14531,6 +14531,46 @@ config(en_default());
14531
14531
  // ../../shared-contracts/dist/version.js
14532
14532
  var WORKSPACE_CONTRACT_VERSION = 1;
14533
14533
 
14534
+ // ../../shared-contracts/dist/idle-release.js
14535
+ var IDLE_RELEASE_TIMEOUT_MINUTES_MIN = 5;
14536
+ var IDLE_RELEASE_TIMEOUT_MINUTES_MAX = 1440;
14537
+ var idleReleaseSettingsSchema = external_exports.strictObject({
14538
+ enabled: external_exports.boolean(),
14539
+ timeoutMinutes: external_exports.number().int().min(IDLE_RELEASE_TIMEOUT_MINUTES_MIN).max(IDLE_RELEASE_TIMEOUT_MINUTES_MAX)
14540
+ });
14541
+ var DEFAULT_IDLE_RELEASE_SETTINGS = Object.freeze({
14542
+ enabled: false,
14543
+ timeoutMinutes: 30
14544
+ });
14545
+
14546
+ // ../../shared-contracts/dist/loaded-sessions.js
14547
+ var loadedSessionStateSchema = external_exports.enum([
14548
+ "idle",
14549
+ "running",
14550
+ "busy",
14551
+ "closing",
14552
+ "failed",
14553
+ "blocked"
14554
+ ]);
14555
+ var loadedSessionReasonSchema = external_exports.enum([
14556
+ "none",
14557
+ "disabled",
14558
+ "timeout",
14559
+ "operation",
14560
+ "background",
14561
+ "identity",
14562
+ "persistence",
14563
+ "closeFailed"
14564
+ ]);
14565
+ var loadedSessionsSchema = external_exports.array(external_exports.strictObject({
14566
+ threadId: external_exports.string(),
14567
+ title: external_exports.string(),
14568
+ harnessId: external_exports.string(),
14569
+ state: loadedSessionStateSchema,
14570
+ reason: loadedSessionReasonSchema,
14571
+ inactiveMs: external_exports.number().nonnegative()
14572
+ }));
14573
+
14534
14574
  // ../../shared-contracts/dist/ids.js
14535
14575
  var opaqueIdSchema = external_exports.string().refine((value) => value.trim().length > 0, {
14536
14576
  message: "Identifier must not be empty or whitespace"
@@ -15016,6 +15056,8 @@ var pluginPresentationShape = {
15016
15056
  id: harnessPluginIdSchema,
15017
15057
  name: external_exports.string().trim().min(1).max(128),
15018
15058
  version: external_exports.string().min(1).max(128),
15059
+ /** The factory accepts a persisted local entrypoint through its construction context. */
15060
+ launchCommand: external_exports.literal(true).optional(),
15019
15061
  links: external_exports.object({
15020
15062
  documentation: documentationUrlSchema.optional(),
15021
15063
  installation: documentationUrlSchema.optional()
@@ -15053,6 +15095,19 @@ var harnessPluginRouteSchema = external_exports.object({
15053
15095
  permissionModeId: harnessPermissionModeIdSchema.optional()
15054
15096
  }).strict();
15055
15097
 
15098
+ // ../../shared-contracts/dist/harness-launch-settings.js
15099
+ var harnessLaunchPathSchema = external_exports.string().trim().min(1).max(4096).refine((value) => !/[\u0000\r\n]/u.test(value), "Invalid entrypoint path");
15100
+ var harnessLaunchSettingsGetSchema = external_exports.object({
15101
+ harnessId: harnessPluginIdSchema
15102
+ }).strict();
15103
+ var harnessLaunchSettingsSetSchema = harnessLaunchSettingsGetSchema.extend({
15104
+ path: harnessLaunchPathSchema.nullable()
15105
+ });
15106
+ var harnessLaunchSettingsSchema = external_exports.object({
15107
+ path: harnessLaunchPathSchema.nullable(),
15108
+ restartRequired: external_exports.boolean()
15109
+ }).strict();
15110
+
15056
15111
  // ../../shared-contracts/dist/codex-accounts.js
15057
15112
  var accountIdSchema = external_exports.string().min(1).max(256).regex(/^[A-Za-z0-9._~-]+$/u);
15058
15113
  var nonBlankTextSchema3 = external_exports.string().trim().min(1);
@@ -15081,75 +15136,15 @@ var codexAccountSchema = external_exports.object({
15081
15136
  email: external_exports.string().email().max(320).optional(),
15082
15137
  planType: codexAccountPlanTypeSchema.optional()
15083
15138
  }).strict();
15084
- var codexAccountPhaseSchema = external_exports.enum(["ready", "changing", "unavailable"]);
15085
- var codexAccountPendingOperationSchema = external_exports.object({
15086
- operationId: nonBlankTextSchema3.max(1024),
15087
- kind: external_exports.enum(["login", "switch", "logout", "recovery"])
15088
- }).strict();
15089
- var codexAccountCapabilitiesSchema = external_exports.object({
15090
- manage: external_exports.boolean(),
15091
- switch: external_exports.boolean(),
15092
- login: external_exports.boolean(),
15093
- delete: external_exports.boolean(),
15094
- recover: external_exports.boolean().optional(),
15095
- logout: external_exports.boolean().optional(),
15096
- reason: external_exports.enum([
15097
- "ssh-single-account",
15098
- "unsupported-storage",
15099
- "unsupported-version",
15100
- "recovery-required",
15101
- "keyring-unavailable",
15102
- "migration-required"
15103
- ]).optional()
15104
- }).strict();
15139
+ var codexAccountPhaseSchema = external_exports.enum(["ready", "unavailable"]);
15105
15140
  var codexAccountListResultSchema = external_exports.object({
15106
15141
  version: external_exports.literal(2),
15107
15142
  currentAccountId: accountIdSchema.nullable(),
15108
15143
  phase: codexAccountPhaseSchema,
15109
15144
  revision: external_exports.number().int().nonnegative(),
15110
15145
  instanceId: nonBlankTextSchema3.max(1024).optional(),
15111
- cleanupRequired: external_exports.boolean().optional(),
15112
- /** Credentials were adopted; other native homes/history remain unmerged. */
15113
- legacyHistoryPreserved: external_exports.boolean().optional(),
15114
- pendingOperation: codexAccountPendingOperationSchema.optional(),
15115
- capabilities: codexAccountCapabilitiesSchema,
15116
- accounts: external_exports.array(codexAccountSchema).max(128)
15146
+ accounts: external_exports.array(codexAccountSchema).max(1)
15117
15147
  }).strict();
15118
- var codexAccountActivateParamsSchema = external_exports.object({ accountId: accountIdSchema }).strict();
15119
- var codexAccountSwitchParamsSchema = external_exports.object({ accountId: accountIdSchema }).strict();
15120
- var codexAccountReadyMutationResultShape = {
15121
- phase: external_exports.literal("ready"),
15122
- revision: external_exports.number().int().nonnegative()
15123
- };
15124
- var codexAccountSwitchResultSchema = external_exports.object({
15125
- currentAccountId: accountIdSchema,
15126
- ...codexAccountReadyMutationResultShape
15127
- }).strict();
15128
- var codexAccountDeleteParamsSchema = external_exports.object({ accountId: accountIdSchema }).strict();
15129
- var codexAccountDeleteResultSchema = external_exports.object({ deletedAccountId: accountIdSchema }).strict();
15130
- var codexAccountLoginStartParamsSchema = external_exports.object({ accountId: accountIdSchema.optional() }).strict();
15131
- var codexAccountLoginStartResultSchema = external_exports.object({
15132
- accountId: accountIdSchema,
15133
- loginId: nonBlankTextSchema3.max(1024),
15134
- verificationUrl: external_exports.string().url().max(16384),
15135
- userCode: nonBlankTextSchema3.max(1024)
15136
- }).strict();
15137
- var codexAccountLoginCancelParamsSchema = external_exports.object({ loginId: nonBlankTextSchema3.max(1024) }).strict();
15138
- var codexAccountLoginCancelResultSchema = external_exports.object({ cancelled: external_exports.boolean() }).strict();
15139
- var codexAccountLoginCompletedSchema = external_exports.object({
15140
- accountId: accountIdSchema,
15141
- loginId: nonBlankTextSchema3.max(1024),
15142
- success: external_exports.boolean(),
15143
- error: external_exports.string().max(4096).nullable(),
15144
- saved: external_exports.boolean().optional(),
15145
- cleanupRequired: external_exports.boolean().optional()
15146
- }).strict();
15147
- var codexAccountLogoutParamsSchema = external_exports.object({}).strict();
15148
- var codexAccountLogoutResultSchema = external_exports.object({
15149
- currentAccountId: external_exports.null(),
15150
- ...codexAccountReadyMutationResultShape
15151
- }).strict();
15152
- var codexAccountRecoverParamsSchema = external_exports.object({}).strict();
15153
15148
  var codexAccountUsageParamsSchema = external_exports.object({ accountId: accountIdSchema, refresh: external_exports.boolean().optional() }).strict();
15154
15149
  var codexAccountUsageResultSchema = external_exports.object({
15155
15150
  accountId: accountIdSchema,
@@ -15158,21 +15153,6 @@ var codexAccountUsageResultSchema = external_exports.object({
15158
15153
  freshness: external_exports.enum(["live", "cached"]),
15159
15154
  observedAt: external_exports.string().datetime().nullable()
15160
15155
  }).strict();
15161
- var codexAccountResetCreditConsumeParamsSchema = external_exports.object({
15162
- accountId: accountIdSchema,
15163
- idempotencyKey: external_exports.string().uuid().optional()
15164
- }).strict();
15165
- var codexAccountResetCreditConsumeOutcomeSchema = external_exports.enum([
15166
- "reset",
15167
- "nothingToReset",
15168
- "noCredit",
15169
- "alreadyRedeemed"
15170
- ]);
15171
- var codexAccountResetCreditConsumeResultSchema = external_exports.object({
15172
- accountId: accountIdSchema,
15173
- outcome: codexAccountResetCreditConsumeOutcomeSchema,
15174
- accountCredits: accountCreditsSnapshotSchema.optional()
15175
- }).strict();
15176
15156
 
15177
15157
  // ../../shared-contracts/dist/harness-session-import.js
15178
15158
  var HARNESS_SESSION_IMPORT_ID_MAX_LENGTH = 1024;
@@ -17807,6 +17787,7 @@ var infoSchema = external_exports.object({
17807
17787
  });
17808
17788
  var AntigravitySubagents = class {
17809
17789
  #states = /* @__PURE__ */ new Map();
17790
+ #lastObservedAt = /* @__PURE__ */ new Map();
17810
17791
  #transcripts = /* @__PURE__ */ new Map();
17811
17792
  #items = /* @__PURE__ */ new Map();
17812
17793
  #options;
@@ -17902,18 +17883,27 @@ var AntigravitySubagents = class {
17902
17883
  return;
17903
17884
  const parentId = this.#options.parentId();
17904
17885
  const port = await this.#options.port();
17905
- if (!parentId || port === null)
17886
+ if (!parentId || port === null) {
17887
+ for (const id of this.#states.keys())
17888
+ this.#expireUnobserved(id);
17889
+ if (this.#ended && !this.running)
17890
+ this.stop();
17906
17891
  return;
17892
+ }
17907
17893
  for (const [id, previous] of this.#states) {
17908
17894
  if (this.#stopped)
17909
17895
  return;
17910
17896
  let status = previous.status;
17897
+ let statusObserved = false;
17911
17898
  try {
17912
17899
  const value = await subagentRpc(port, id, "GetCascadeTrajectory");
17913
17900
  const observed = subagentRunStatus(value, parentId);
17914
17901
  if (observed !== "completed" || status !== "interrupted" && status !== "failed") {
17915
17902
  status = observed ?? status;
17916
17903
  }
17904
+ statusObserved = observed !== null;
17905
+ if (statusObserved)
17906
+ this.#lastObservedAt.set(id, Date.now());
17917
17907
  } catch {
17918
17908
  }
17919
17909
  const transcript = await readSubagentTranscript({
@@ -17944,6 +17934,8 @@ var AntigravitySubagents = class {
17944
17934
  this.#options.emit({ type: "subagent.transcript.changed", nativeSubagentId: id });
17945
17935
  }
17946
17936
  }
17937
+ if (!statusObserved)
17938
+ this.#expireUnobserved(id);
17947
17939
  }
17948
17940
  if (this.#ended && !this.running)
17949
17941
  this.stop();
@@ -17954,9 +17946,35 @@ var AntigravitySubagents = class {
17954
17946
  this.#complete(delegation, outcome);
17955
17947
  }
17956
17948
  this.#ended = true;
17949
+ const now = Date.now();
17950
+ for (const [id, state] of this.#states) {
17951
+ if (state.status === "running" || state.status === "pending") {
17952
+ this.#lastObservedAt.set(id, now);
17953
+ }
17954
+ }
17957
17955
  if (!this.running)
17958
17956
  this.stop();
17959
17957
  }
17958
+ #expireUnobserved(id) {
17959
+ if (!this.#ended || this.#stopped)
17960
+ return;
17961
+ const state = this.#states.get(id);
17962
+ if (!state || state.status !== "running" && state.status !== "pending")
17963
+ return;
17964
+ const now = Date.now();
17965
+ if (now - (this.#lastObservedAt.get(id) ?? now) < this.#options.observationTimeoutMs)
17966
+ return;
17967
+ const resultSummary = "Observation timed out; native Subagent completion could not be confirmed.";
17968
+ this.#states.set(id, { ...state, status: "interrupted", resultSummary });
17969
+ this.#options.emit({
17970
+ type: "subagent.state.changed",
17971
+ nativeSubagentId: id,
17972
+ status: "interrupted",
17973
+ resultSummary
17974
+ });
17975
+ this.#options.emit({ type: "subagent.transcript.changed", nativeSubagentId: id });
17976
+ this.#lastObservedAt.delete(id);
17977
+ }
17960
17978
  cancel() {
17961
17979
  return this.#cancellation ??= this.#cancelNative();
17962
17980
  }
@@ -18008,6 +18026,7 @@ var AntigravitySubagents = class {
18008
18026
  stop() {
18009
18027
  this.#stopped = true;
18010
18028
  clearInterval(this.#timer);
18029
+ this.#lastObservedAt.clear();
18011
18030
  this.#settled?.();
18012
18031
  }
18013
18032
  #watch() {
@@ -18041,6 +18060,7 @@ var antigravityHarnessId = harnessIdSchema.parse("antigravity");
18041
18060
  var DEFAULT_INSPECT_TIMEOUT_MS = 2e4;
18042
18061
  var DEFAULT_PRINT_TIMEOUT = "30m";
18043
18062
  var DEFAULT_TOOL_OUTPUT_LIMIT = 64e3;
18063
+ var DEFAULT_SUBAGENT_OBSERVATION_TIMEOUT_MS = 3e4;
18044
18064
  var CONTEXT_USAGE_TIMEOUT_MS = 8e3;
18045
18065
  var CONTEXT_USAGE_RETRY_MS = 100;
18046
18066
  var TRAJECTORY_TIMEOUT_MS = 2e3;
@@ -18286,6 +18306,7 @@ var AntigravitySession = class {
18286
18306
  #onClosed;
18287
18307
  #printTimeout;
18288
18308
  #toolOutputLimit;
18309
+ #subagentObservationTimeoutMs;
18289
18310
  #history;
18290
18311
  #subagentObservers = /* @__PURE__ */ new Set();
18291
18312
  #active = null;
@@ -18309,6 +18330,7 @@ var AntigravitySession = class {
18309
18330
  this.#printTimeout = input.printTimeout;
18310
18331
  this.#thinkingOptionId = input.thinkingOptionId ?? input.history.thinkingOptionId;
18311
18332
  this.#toolOutputLimit = input.toolOutputLimit;
18333
+ this.#subagentObservationTimeoutMs = input.subagentObservationTimeoutMs;
18312
18334
  this.#onClosed = input.onClosed;
18313
18335
  this.initialState = this.#state();
18314
18336
  this.outputs = this.#channel.outputs;
@@ -18462,6 +18484,7 @@ var AntigravitySession = class {
18462
18484
  }
18463
18485
  const active = {
18464
18486
  command,
18487
+ model: this.#model,
18465
18488
  process: child,
18466
18489
  exited: new Promise((resolve) => child.once("close", () => resolve())),
18467
18490
  questions,
@@ -18471,6 +18494,7 @@ var AntigravitySession = class {
18471
18494
  port: () => this.#languageServerPort(active),
18472
18495
  cwd: this.#cwd,
18473
18496
  outputLimit: this.#toolOutputLimit,
18497
+ observationTimeoutMs: this.#subagentObservationTimeoutMs,
18474
18498
  initialStates: this.#history.snapshot().flatMap((turn) => turn.items.flatMap(({ item }) => item.type === "subagentDelegation" ? item.subagents : [])),
18475
18499
  emit: (event) => {
18476
18500
  if (event.type === "subagent.state.changed") {
@@ -18630,7 +18654,7 @@ ${line}`).slice(-8e3);
18630
18654
  if (event.step_update.conversation_id !== this.#nativeRef?.nativeSessionId)
18631
18655
  return;
18632
18656
  await this.#handleStep(active, event.step_update);
18633
- const usage = hostUsage(event.step_update.usage, this.#model?.id);
18657
+ const usage = hostUsage(event.step_update.usage, active.model?.id);
18634
18658
  if (usage)
18635
18659
  this.#publishUsage(active, usage);
18636
18660
  this.#ensureContextUsage(active, event.step_update.conversation_id);
@@ -18644,7 +18668,7 @@ ${line}`).slice(-8e3);
18644
18668
  async #handleResult(active, event) {
18645
18669
  if (this.#active !== active)
18646
18670
  return;
18647
- const usage = hostUsage(event.result.usage, this.#model?.id);
18671
+ const usage = hostUsage(event.result.usage, active.model?.id);
18648
18672
  if (usage)
18649
18673
  this.#publishUsage(active, usage);
18650
18674
  this.#ensureContextUsage(active, event.result.conversation_id);
@@ -18716,7 +18740,7 @@ ${line}`).slice(-8e3);
18716
18740
  #ensureContextUsage(active, conversationId) {
18717
18741
  if (active.contextUsagePromise)
18718
18742
  return;
18719
- active.contextUsagePromise = pollAntigravityContextUsage(active.logPath, conversationId, this.#model?.id, () => active.receivedResult || active.cancellationRequested || active.process.exitCode !== null);
18743
+ active.contextUsagePromise = pollAntigravityContextUsage(active.logPath, conversationId, active.model?.id, () => active.receivedResult || active.cancellationRequested || active.process.exitCode !== null);
18720
18744
  }
18721
18745
  async #handleStep(active, step) {
18722
18746
  if (step.step_type === "subagent") {
@@ -18964,12 +18988,6 @@ ${line}`).slice(-8e3);
18964
18988
  return { ok: true, value: { cancellationRequested: true } };
18965
18989
  }
18966
18990
  #selectModel(command) {
18967
- if (this.isActive) {
18968
- return {
18969
- ok: false,
18970
- error: { code: "sessionBusy", message: "Turn is active", retryable: true }
18971
- };
18972
- }
18973
18991
  this.#model = harnessModelRefSchema.parse(command.model);
18974
18992
  const available = antigravityAvailableThinkingOptions(this.#catalog, this.#model);
18975
18993
  if (this.#thinkingOptionId && !available?.some(({ id }) => id === this.#thinkingOptionId)) {
@@ -18980,12 +18998,6 @@ ${line}`).slice(-8e3);
18980
18998
  return { ok: true, value: { completed: true } };
18981
18999
  }
18982
19000
  #selectThinking(command) {
18983
- if (this.isActive) {
18984
- return {
18985
- ok: false,
18986
- error: { code: "sessionBusy", message: "Turn is active", retryable: true }
18987
- };
18988
- }
18989
19001
  const requested = harnessThinkingOptionIdSchema.safeParse(command.thinkingOptionId);
18990
19002
  if (!requested.success) {
18991
19003
  return {
@@ -19094,6 +19106,7 @@ var AntigravityAdapter = class {
19094
19106
  #printTimeout;
19095
19107
  #sessions = /* @__PURE__ */ new Set();
19096
19108
  #toolOutputLimit;
19109
+ #subagentObservationTimeoutMs;
19097
19110
  #closed = false;
19098
19111
  #quota = null;
19099
19112
  #quotaCwd = null;
@@ -19105,6 +19118,11 @@ var AntigravityAdapter = class {
19105
19118
  this.#inspectTimeoutMs = options.inspectTimeoutMs ?? DEFAULT_INSPECT_TIMEOUT_MS;
19106
19119
  this.#printTimeout = options.printTimeout ?? DEFAULT_PRINT_TIMEOUT;
19107
19120
  this.#toolOutputLimit = options.toolOutputLimit ?? DEFAULT_TOOL_OUTPUT_LIMIT;
19121
+ const subagentObservationTimeoutMs = options.subagentObservationTimeoutMs ?? DEFAULT_SUBAGENT_OBSERVATION_TIMEOUT_MS;
19122
+ if (!Number.isFinite(subagentObservationTimeoutMs) || subagentObservationTimeoutMs <= 0) {
19123
+ throw new RangeError("subagentObservationTimeoutMs must be a finite positive number");
19124
+ }
19125
+ this.#subagentObservationTimeoutMs = subagentObservationTimeoutMs;
19108
19126
  }
19109
19127
  async inspect(input = {}) {
19110
19128
  if (this.#closed) {
@@ -19287,6 +19305,7 @@ var AntigravityAdapter = class {
19287
19305
  printTimeout: this.#printTimeout,
19288
19306
  ...params.thinkingOptionId ? { thinkingOptionId: params.thinkingOptionId } : {},
19289
19307
  toolOutputLimit: this.#toolOutputLimit,
19308
+ subagentObservationTimeoutMs: this.#subagentObservationTimeoutMs,
19290
19309
  onClosed: () => this.#sessions.delete(session2)
19291
19310
  });
19292
19311
  this.#sessions.add(session2);
@@ -19322,6 +19341,7 @@ var AntigravityAdapter = class {
19322
19341
  printTimeout: this.#printTimeout,
19323
19342
  ...params.thinkingOptionId ? { thinkingOptionId: params.thinkingOptionId } : {},
19324
19343
  toolOutputLimit: this.#toolOutputLimit,
19344
+ subagentObservationTimeoutMs: this.#subagentObservationTimeoutMs,
19325
19345
  onClosed: () => this.#sessions.delete(session2)
19326
19346
  });
19327
19347
  this.#sessions.add(session2);
@@ -19378,6 +19398,7 @@ var AntigravityAdapter = class {
19378
19398
  printTimeout: this.#printTimeout,
19379
19399
  ...thinkingOptionId ? { thinkingOptionId } : {},
19380
19400
  toolOutputLimit: this.#toolOutputLimit,
19401
+ subagentObservationTimeoutMs: this.#subagentObservationTimeoutMs,
19381
19402
  onClosed: () => this.#sessions.delete(session)
19382
19403
  });
19383
19404
  this.#sessions.add(session);