tailii-host 0.4.0 → 0.6.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 (114) hide show
  1. package/dist/approval/hook.js +11 -1
  2. package/dist/approval/hook.js.map +1 -1
  3. package/dist/backend/herdr.d.ts +30 -1
  4. package/dist/backend/herdr.js +103 -20
  5. package/dist/backend/herdr.js.map +1 -1
  6. package/dist/backend/sessionBackend.d.ts +12 -0
  7. package/dist/backend/sessionBackend.js +6 -0
  8. package/dist/backend/sessionBackend.js.map +1 -1
  9. package/dist/backend/tmux.d.ts +153 -3
  10. package/dist/backend/tmux.js +488 -14
  11. package/dist/backend/tmux.js.map +1 -1
  12. package/dist/chat/chatTailController.d.ts +3 -1
  13. package/dist/chat/chatTailController.js +3 -0
  14. package/dist/chat/chatTailController.js.map +1 -1
  15. package/dist/chat/subagentTailer.d.ts +51 -0
  16. package/dist/chat/subagentTailer.js +491 -47
  17. package/dist/chat/subagentTailer.js.map +1 -1
  18. package/dist/chat/subagentTranscript.js +51 -5
  19. package/dist/chat/subagentTranscript.js.map +1 -1
  20. package/dist/chat/transcriptTailer.d.ts +37 -1
  21. package/dist/chat/transcriptTailer.js +170 -3
  22. package/dist/chat/transcriptTailer.js.map +1 -1
  23. package/dist/codex/codexAppServer.js +20 -0
  24. package/dist/codex/codexAppServer.js.map +1 -1
  25. package/dist/codex/codexNativeTurnController.js +20 -4
  26. package/dist/codex/codexNativeTurnController.js.map +1 -1
  27. package/dist/codex/codexRolloutTailer.d.ts +1 -0
  28. package/dist/codex/codexRolloutTailer.js +7 -0
  29. package/dist/codex/codexRolloutTailer.js.map +1 -1
  30. package/dist/codex/codexSystemNotice.d.ts +16 -0
  31. package/dist/codex/codexSystemNotice.js +195 -0
  32. package/dist/codex/codexSystemNotice.js.map +1 -0
  33. package/dist/commands/doctor.d.ts +2 -6
  34. package/dist/commands/doctor.js +2 -29
  35. package/dist/commands/doctor.js.map +1 -1
  36. package/dist/commands/launch.d.ts +2 -0
  37. package/dist/commands/launch.js +5 -0
  38. package/dist/commands/launch.js.map +1 -1
  39. package/dist/engine/engine.js +32 -22
  40. package/dist/engine/engine.js.map +1 -1
  41. package/dist/engine/handlers/accountUsage.d.ts +17 -0
  42. package/dist/engine/handlers/accountUsage.js +40 -6
  43. package/dist/engine/handlers/accountUsage.js.map +1 -1
  44. package/dist/engine/handlers/mode.js +42 -1
  45. package/dist/engine/handlers/mode.js.map +1 -1
  46. package/dist/engine/handlers/session.js +5 -3
  47. package/dist/engine/handlers/session.js.map +1 -1
  48. package/dist/engine/handlers/usage.js +4 -1
  49. package/dist/engine/handlers/usage.js.map +1 -1
  50. package/dist/engine/handlers/workspace.js +38 -1
  51. package/dist/engine/handlers/workspace.js.map +1 -1
  52. package/dist/hub/effortDialog.d.ts +20 -0
  53. package/dist/hub/effortDialog.js +40 -0
  54. package/dist/hub/effortDialog.js.map +1 -0
  55. package/dist/hub/engineRelaySocket.d.ts +3 -0
  56. package/dist/hub/engineRelaySocket.js +2 -1
  57. package/dist/hub/engineRelaySocket.js.map +1 -1
  58. package/dist/hub/hubDaemon.js +20 -3
  59. package/dist/hub/hubDaemon.js.map +1 -1
  60. package/dist/hub/hubProtocol.js +8 -2
  61. package/dist/hub/hubProtocol.js.map +1 -1
  62. package/dist/hub/panePreviewPump.d.ts +27 -0
  63. package/dist/hub/panePreviewPump.js +62 -1
  64. package/dist/hub/panePreviewPump.js.map +1 -1
  65. package/dist/hub/questionInjection.js +2 -1
  66. package/dist/hub/questionInjection.js.map +1 -1
  67. package/dist/hub/reaper.d.ts +5 -0
  68. package/dist/hub/reaper.js +25 -7
  69. package/dist/hub/reaper.js.map +1 -1
  70. package/dist/hub/sessionHub.d.ts +48 -1
  71. package/dist/hub/sessionHub.js +248 -25
  72. package/dist/hub/sessionHub.js.map +1 -1
  73. package/dist/protocol/decode.js +45 -0
  74. package/dist/protocol/decode.js.map +1 -1
  75. package/dist/protocol/encode.js +2 -0
  76. package/dist/protocol/encode.js.map +1 -1
  77. package/dist/protocol/messages.d.ts +65 -1
  78. package/dist/services/accountIdentity.js +3 -1
  79. package/dist/services/accountIdentity.js.map +1 -1
  80. package/dist/services/fileService.d.ts +19 -1
  81. package/dist/services/fileService.js +126 -0
  82. package/dist/services/fileService.js.map +1 -1
  83. package/dist/services/keychainMirror.d.ts +9 -0
  84. package/dist/services/keychainMirror.js +64 -0
  85. package/dist/services/keychainMirror.js.map +1 -0
  86. package/dist/services/officialApps.d.ts +12 -0
  87. package/dist/services/officialApps.js +84 -30
  88. package/dist/services/officialApps.js.map +1 -1
  89. package/dist/services/planUsageFetcher.d.ts +53 -5
  90. package/dist/services/planUsageFetcher.js +109 -22
  91. package/dist/services/planUsageFetcher.js.map +1 -1
  92. package/dist/sessions/claudeSessionStore.js +30 -0
  93. package/dist/sessions/claudeSessionStore.js.map +1 -1
  94. package/dist/sessions/heartbeat.d.ts +7 -1
  95. package/dist/sessions/heartbeat.js +3 -1
  96. package/dist/sessions/heartbeat.js.map +1 -1
  97. package/dist/sessions/sessionSearch.js +23 -5
  98. package/dist/sessions/sessionSearch.js.map +1 -1
  99. package/dist/shared/cliVersions.d.ts +14 -0
  100. package/dist/shared/cliVersions.js +38 -0
  101. package/dist/shared/cliVersions.js.map +1 -0
  102. package/dist/shared/crossSession.d.ts +15 -0
  103. package/dist/shared/crossSession.js +75 -0
  104. package/dist/shared/crossSession.js.map +1 -0
  105. package/dist/shared/harnessReminder.d.ts +32 -0
  106. package/dist/shared/harnessReminder.js +124 -0
  107. package/dist/shared/harnessReminder.js.map +1 -0
  108. package/dist/shared/lineWriter.d.ts +7 -0
  109. package/dist/shared/lineWriter.js +26 -0
  110. package/dist/shared/lineWriter.js.map +1 -1
  111. package/dist/shared/systemNotice.d.ts +30 -0
  112. package/dist/shared/systemNotice.js +209 -0
  113. package/dist/shared/systemNotice.js.map +1 -0
  114. package/package.json +3 -3
@@ -11,12 +11,90 @@ import * as path from "node:path";
11
11
  import { PROTOCOL_V1, } from "../protocol.js";
12
12
  import { isInjectedSkillContent } from "../shared/skillInjection.js";
13
13
  import { abortableSleep } from "../shared/sleep.js";
14
+ import { createSystemNoticeContext, fallbackBlockNotice, systemNoticeText, } from "../shared/systemNotice.js";
14
15
  /** 履歴再生完了マーカーの streamId(iOS 側 `ChatLogModel` と対で解釈する)。 */
15
16
  export const HISTORY_DONE_STREAM_ID = "pc:history-done";
16
17
  /** 利用中モデル通知マーカーの streamId(iOS 側 `ChatLogModel` と対で解釈する)。 */
17
18
  export const MODEL_STREAM_ID = "pc:model";
18
19
  /** 現在コンテキストトークン数通知マーカーの streamId(iOS 側 `ChatLogModel` と対で解釈する)。 */
19
20
  export const CONTEXT_STREAM_ID = "pc:context";
21
+ /**
22
+ * 実効 reasoning effort 通知マーカーの streamId(iOS 側 `ChatLogModel` と対で解釈する)。
23
+ * claude は assistant 行のトップレベル `effort` に、その応答で実際に使った effort を記録する
24
+ * (`--effort` 起動値 / `/effort` 変更後の値。2.1.234 で確認)。iOS の工数バッジは楽観表示
25
+ * しか持たなかったので、これを権威として同期する。
26
+ */
27
+ export const EFFORT_STREAM_ID = "pc:effort";
28
+ /** claude の effort 既知値(未知値は通知しない)。 */
29
+ const EFFORT_LEVELS = new Set(["low", "medium", "high", "xhigh", "max"]);
30
+ /**
31
+ * 利用者の中断確定マーカー(claude が transcript に user 行として記録する
32
+ * "[Request interrupted by user]" / "[Request interrupted by user for tool use]")。
33
+ * iOS 側 `ChatLogModel` は同じ文字列を `contains` で「停止中」解除に使うが、host は処理中状態
34
+ * (権威)を落とす側なので行頭一致に絞り、ピア封筒などの本文引用では反応しない。
35
+ */
36
+ const INTERRUPT_MARKER_PREFIX = "[Request interrupted by user";
37
+ /** user ターン本文が中断確定マーカーか(行頭一致。本文中の引用は除外する)。 */
38
+ function isClaudeInterruptMarker(text) {
39
+ return text.trimStart().startsWith(INTERRUPT_MARKER_PREFIX);
40
+ }
41
+ /**
42
+ * transcript 末尾を読み、最後の user 発話(本文のある user ターン)が中断確定マーカーなら
43
+ * その行の timestamp(ms) を返す。マーカーの後に新しい発話があれば null(=ターン進行中の
44
+ * 可能性)。Hub 再起動時の復元で「再起動前に中断済みで放置された会話」を処理中に戻さない
45
+ * ために使う(engine の再接続購読は newerThanMs 付きで履歴マーカーを流さないため、tail
46
+ * 経由では観測できない)。本文の無い user 行(tool_result / 画像のみ / スキル注入)と
47
+ * ローカルコマンド記録(type=system の `/effort` `/rename` 等。ターンを始めない)は発話と
48
+ * みなさない。画像のみの発話で始まった進行中ターンは稀に idle 判定になり得るが、次の hook
49
+ * (PreToolUse 等)の active で数秒後に自己修復する。末尾 tailBytes だけを読むので、それより
50
+ * 長い最終行は解釈できず null(=処理中のまま)に倒れる。
51
+ */
52
+ export function findTrailingInterruptMarkerMs(transcriptPath, tailBytes = 256 * 1024) {
53
+ let fd;
54
+ try {
55
+ fd = fs.openSync(transcriptPath, "r");
56
+ }
57
+ catch {
58
+ return null;
59
+ }
60
+ try {
61
+ const size = fs.fstatSync(fd).size;
62
+ const start = Math.max(0, size - tailBytes);
63
+ // 1 バイト手前から読み、窓の先頭が行境界なら先頭要素は空文字になる(完全な行を捨てない)。
64
+ const readStart = start > 0 ? start - 1 : 0;
65
+ const buffer = Buffer.alloc(size - readStart);
66
+ const read = fs.readSync(fd, buffer, 0, buffer.length, readStart);
67
+ const lines = buffer.subarray(0, read).toString("utf8").split("\n");
68
+ if (start > 0)
69
+ lines.shift(); // 途中から読んだ先頭の欠け行(または境界の空要素)を捨てる。
70
+ let last = null;
71
+ for (const raw of lines) {
72
+ const line = raw.replaceAll("\r", "");
73
+ if (!line)
74
+ continue;
75
+ if (isSystemRecordLine(line))
76
+ continue;
77
+ const turn = extractTurn(line);
78
+ if (turn === null || turn.role !== "user" || turn.text.length === 0)
79
+ continue;
80
+ last = { interrupt: isClaudeInterruptMarker(turn.text), atMs: lineTimestampMs(Buffer.from(line, "utf8")) };
81
+ }
82
+ if (last === null || !last.interrupt || !Number.isFinite(last.atMs))
83
+ return null;
84
+ return last.atMs;
85
+ }
86
+ catch {
87
+ return null;
88
+ }
89
+ finally {
90
+ try {
91
+ fs.closeSync(fd);
92
+ }
93
+ catch {
94
+ // 二重 close 等は無視。
95
+ }
96
+ }
97
+ }
20
98
  const MAX_COMMAND_CHARACTERS = 8_000;
21
99
  const MAX_DESCRIPTION_CHARACTERS = 2_000;
22
100
  const MAX_DIFF_FIELD_CHARACTERS = 24_000;
@@ -32,12 +110,17 @@ export class TranscriptTailer {
32
110
  tailDeadlineMs;
33
111
  tailIndefinitely;
34
112
  emitReplayDoneMarker;
113
+ lifecycleObserver = null;
35
114
  constructor(options = {}) {
36
115
  this.pollIntervalMs = options.pollIntervalMs ?? 50;
37
116
  this.tailDeadlineMs = options.tailDeadlineMs ?? null;
38
117
  this.tailIndefinitely = options.tailIndefinitely ?? false;
39
118
  this.emitReplayDoneMarker = options.emitReplayDoneMarker ?? false;
40
119
  }
120
+ /** ターン権威ライフサイクル(中断マーカー等)の観測者を登録する。以後に開始した tail から有効。 */
121
+ setTurnLifecycleObserver(observer) {
122
+ this.lifecycleObserver = observer;
123
+ }
41
124
  /** `path` の JSONL を頭から読み、assistant/user ターンを chat_output として流す。 */
42
125
  async *streamTranscript(transcriptPath, signal) {
43
126
  yield* this.runTail(transcriptPath, null, signal);
@@ -120,8 +203,11 @@ export class TranscriptTailer {
120
203
  seq: 0,
121
204
  lastModel: null,
122
205
  lastContextTokens: null,
206
+ lastEffort: null,
207
+ noticeCtx: createSystemNoticeContext(),
123
208
  activeQuestionIds: new Set(),
124
209
  pendingSkillActivities: new Map(),
210
+ onLifecycle: this.lifecycleObserver,
125
211
  };
126
212
  const start = Date.now();
127
213
  let announcedReplayDone = false;
@@ -203,14 +289,32 @@ function lineTimestampMs(line) {
203
289
  catch { /* emitLine と同様に不正行は破棄する。 */ }
204
290
  return Number.NEGATIVE_INFINITY;
205
291
  }
292
+ /** type=system の記録行か(ローカルコマンド記録など。extractTurn は表示用に user 扱いへ写す)。 */
293
+ function isSystemRecordLine(line) {
294
+ try {
295
+ const parsed = JSON.parse(line);
296
+ return parsed.type === "system";
297
+ }
298
+ catch {
299
+ return false;
300
+ }
301
+ }
206
302
  /** 1 行(JSONL)をパースし、生成メッセージを列挙する。解釈できない行はスキップ。 */
207
303
  function* emitLine(line, state) {
208
304
  const text = line.toString("utf8").replaceAll("\r", "");
209
305
  if (!text)
210
306
  return;
211
- const turn = extractTurn(text);
307
+ const turn = extractTurn(text, state.noticeCtx);
212
308
  if (turn === null)
213
309
  return;
310
+ // 中断確定マーカー: ターン終了の権威(Stop hook は中断で発火しない)。表示用の chat_output
311
+ // とは別に、行の timestamp 付きで観測者へ通知する。timestamp 不明行は履歴/ライブを区別
312
+ // できないため通知しない(誤って進行中ターンを終了扱いにしない側へ倒す)。
313
+ if (state.onLifecycle !== null && turn.role === "user" && isClaudeInterruptMarker(turn.text)) {
314
+ const atMs = lineTimestampMs(line);
315
+ if (Number.isFinite(atMs))
316
+ state.onLifecycle({ kind: "interrupted", atMs });
317
+ }
214
318
  for (const prompt of turn.questionPrompts) {
215
319
  if (state.activeQuestionIds.has(prompt.id))
216
320
  continue;
@@ -263,6 +367,18 @@ function* emitLine(line, state) {
263
367
  eof: true,
264
368
  };
265
369
  }
370
+ // 実効 effort の通知: assistant 行の `effort` が変わったらマーカーを 1 通流す(工数バッジ同期)。
371
+ if (turn.effort !== null && turn.effort !== state.lastEffort) {
372
+ state.lastEffort = turn.effort;
373
+ yield {
374
+ type: "chat_output",
375
+ v: PROTOCOL_V1,
376
+ streamId: EFFORT_STREAM_ID,
377
+ role: "system",
378
+ text: turn.effort,
379
+ eof: true,
380
+ };
381
+ }
266
382
  // 現在コンテキストトークン数の通知: assistant ターンの `message.usage` 合計が変わったらマーカーを 1 通流す。
267
383
  if (turn.contextTokens !== null && turn.contextTokens !== state.lastContextTokens) {
268
384
  state.lastContextTokens = turn.contextTokens;
@@ -290,7 +406,7 @@ function* emitLine(line, state) {
290
406
  }
291
407
  }
292
408
  /** JSONL の 1 行から assistant/user ターンを寛容に抽出する(形式依存を 1 関数に集約)。 */
293
- export function extractTurn(line) {
409
+ export function extractTurn(line, ctx) {
294
410
  let obj;
295
411
  try {
296
412
  obj = JSON.parse(line);
@@ -322,6 +438,7 @@ export function extractTurn(line) {
322
438
  toolResultIds: [],
323
439
  model: null,
324
440
  contextTokens: null,
441
+ effort: null,
325
442
  };
326
443
  }
327
444
  if (rec["type"] === "system") {
@@ -333,6 +450,7 @@ export function extractTurn(line) {
333
450
  toolResultIds: [],
334
451
  model: null,
335
452
  contextTokens: null,
453
+ effort: null,
336
454
  };
337
455
  // Remote Control の activation 通知(bridge_status)。未接続から /remote-control で
338
456
  // 有効化したとき、可視信号はこの行だけ(TUI バナーは通常ターンに残らない)。
@@ -345,6 +463,12 @@ export function extractTurn(line) {
345
463
  if (rec["subtype"] === "local_command" && content.includes("<")) {
346
464
  return { ...emptyTurn, role: "user", text: content };
347
465
  }
466
+ // 利用者に意味のある通知(モデル自動切替 / API エラー / 会話圧縮 / warning・error 級)を
467
+ // 日本語の system 注記へ(system-notice)。握り潰すと「理由なくモデルが変わった」ように
468
+ // 見える(2026-09-04 実障害: model_refusal_fallback)。転写規則は shared/systemNotice.ts。
469
+ const notice = systemNoticeText(rec, ctx);
470
+ if (notice !== null)
471
+ return { ...emptyTurn, role: "system", text: notice };
348
472
  return null;
349
473
  }
350
474
  const message = typeof rec["message"] === "object" && rec["message"] !== null
@@ -377,7 +501,22 @@ export function extractTurn(line) {
377
501
  const toolResultIds = extractToolResultIds(rawContent);
378
502
  const model = typeof message?.["model"] === "string" ? message["model"] : null;
379
503
  const contextTokens = role === "assistant" ? extractContextTokens(message?.["usage"]) : null;
380
- const turn = { id, role, text, toolActivities, questionPrompts, toolResultIds, model, contextTokens };
504
+ const rawEffort = rec["effort"];
505
+ const effort = role === "assistant" && typeof rawEffort === "string" && EFFORT_LEVELS.has(rawEffort) ? rawEffort : null;
506
+ // モデル自動切替の実時刻告知: assistant 行の `fallback` ブロック(from/to)は切替の瞬間に
507
+ // 書かれ、フォールバック先の最初のツール実行より前に位置する。本文もツールも無いこの行を
508
+ // system 注記へ転写する(model は残して pc:model マーカーも同じ行で切り替える)。後から
509
+ // 来る system/model_refusal_fallback は ctx で重複告知を抑える(system-notice)。
510
+ if (role === "assistant" && text.length === 0 && toolActivities.length === 0) {
511
+ const fallbackNotice = fallbackBlockNotice(rawContent, ctx);
512
+ if (fallbackNotice !== null) {
513
+ return {
514
+ id, role: "system", text: fallbackNotice,
515
+ toolActivities: [], questionPrompts: [], toolResultIds: [], model, contextTokens, effort,
516
+ };
517
+ }
518
+ }
519
+ const turn = { id, role, text, toolActivities, questionPrompts, toolResultIds, model, contextTokens, effort };
381
520
  if (injectedSkill && typeof rec["sourceToolUseID"] === "string" && plainText.length > 0) {
382
521
  turn.skillInjection = { toolUseId: rec["sourceToolUseID"], text: plainText };
383
522
  }
@@ -582,6 +721,34 @@ function makeToolActivity(id, name, input) {
582
721
  activity.description = argsCap.value;
583
722
  return activity;
584
723
  }
724
+ case "SendUserFile": {
725
+ // Claude Code が成果物(PDF 等)を利用者へ渡すツール。input = { files: [abs], caption?, display? }。
726
+ // iOS はこのカードをダウンロード導線にする(file-download)。
727
+ const files = Array.isArray(input["files"])
728
+ ? input["files"].filter((f) => typeof f === "string" && f.length > 0)
729
+ : [];
730
+ const captionCap = cap(str(input["caption"]), MAX_DESCRIPTION_CHARACTERS);
731
+ const first = files[0] ?? null;
732
+ const summary = first === null
733
+ ? null
734
+ : files.length > 1
735
+ ? `${displayPath(first, name)} ほか${files.length - 1}件`
736
+ : displayPath(first, name);
737
+ const activity = {
738
+ id,
739
+ name,
740
+ label: summary === null ? "ファイルを送信" : `ファイルを送信 ${summary}`,
741
+ commandTruncated: false,
742
+ descriptionTruncated: captionCap.truncated,
743
+ };
744
+ if (first !== null)
745
+ activity.file = first;
746
+ if (files.length > 0)
747
+ activity.files = files;
748
+ if (captionCap.value !== null)
749
+ activity.description = captionCap.value;
750
+ return activity;
751
+ }
585
752
  case "TodoWrite": {
586
753
  const todos = extractTodos(input["todos"]);
587
754
  const activity = {
@@ -1 +1 @@
1
- {"version":3,"file":"transcriptTailer.js","sourceRoot":"","sources":["../../src/chat/transcriptTailer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transcriptTailer.js","sourceRoot":"","sources":["../../src/chat/transcriptTailer.ts"],"names":[],"mappings":"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"}
@@ -65,16 +65,36 @@ class WebSocketCodexAppServerConnection {
65
65
  // permessage-deflateを送るとRust側がhandshakeを拒否する。
66
66
  perMessageDeflate: false,
67
67
  });
68
+ // handshake にも期限を切る。UNIX socket は listen backlog がある限りカーネルが接続を
69
+ // 受理するため、app-server が「死んでいる」のではなく「応答不能(刺さっている)」場合は
70
+ // open も error も発火せず Promise が永久に settle しない。これを直列 await する
71
+ // engine の read loop と hub の tick ループが同時に止まる(request 側には期限があるのに
72
+ // connect だけ素通しだった非対称の解消)。
73
+ let handshakeTimer = null;
68
74
  const onError = (error) => {
75
+ if (handshakeTimer !== null)
76
+ clearTimeout(handshakeTimer);
69
77
  socket.removeListener("open", onOpen);
70
78
  reject(error);
71
79
  };
72
80
  const onOpen = () => {
81
+ if (handshakeTimer !== null)
82
+ clearTimeout(handshakeTimer);
73
83
  socket.removeListener("error", onError);
74
84
  resolve(new WebSocketCodexAppServerConnection(socket, requestTimeoutMs));
75
85
  };
76
86
  socket.once("error", onError);
77
87
  socket.once("open", onOpen);
88
+ handshakeTimer = setTimeout(() => {
89
+ socket.removeListener("open", onOpen);
90
+ socket.removeListener("error", onError);
91
+ // terminate は基底ソケットを破棄するため ECONNRESET 等の "error" を後追いで
92
+ // 発火しうる。リスナー不在の EventEmitter "error" は throw になるので、
93
+ // 捨てる先を必ず用意してから落とす。
94
+ socket.on("error", () => { });
95
+ socket.terminate();
96
+ reject(new Error("Codex App Server handshake timed out"));
97
+ }, requestTimeoutMs);
78
98
  });
79
99
  }
80
100
  async initialize() {