tailii-host 0.5.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 (78) hide show
  1. package/dist/approval/hook.js +1 -1
  2. package/dist/approval/hook.js.map +1 -1
  3. package/dist/backend/herdr.d.ts +19 -0
  4. package/dist/backend/herdr.js +70 -13
  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 +152 -2
  10. package/dist/backend/tmux.js +477 -12
  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 +10 -0
  16. package/dist/chat/subagentTailer.js +215 -51
  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 +28 -1
  21. package/dist/chat/transcriptTailer.js +115 -2
  22. package/dist/chat/transcriptTailer.js.map +1 -1
  23. package/dist/codex/codexNativeTurnController.js +20 -4
  24. package/dist/codex/codexNativeTurnController.js.map +1 -1
  25. package/dist/codex/codexRolloutTailer.d.ts +1 -0
  26. package/dist/codex/codexRolloutTailer.js +7 -0
  27. package/dist/codex/codexRolloutTailer.js.map +1 -1
  28. package/dist/codex/codexSystemNotice.d.ts +16 -0
  29. package/dist/codex/codexSystemNotice.js +195 -0
  30. package/dist/codex/codexSystemNotice.js.map +1 -0
  31. package/dist/engine/handlers/accountUsage.d.ts +17 -0
  32. package/dist/engine/handlers/accountUsage.js +40 -6
  33. package/dist/engine/handlers/accountUsage.js.map +1 -1
  34. package/dist/engine/handlers/mode.js +42 -1
  35. package/dist/engine/handlers/mode.js.map +1 -1
  36. package/dist/engine/handlers/usage.js +4 -1
  37. package/dist/engine/handlers/usage.js.map +1 -1
  38. package/dist/hub/engineRelaySocket.d.ts +3 -0
  39. package/dist/hub/engineRelaySocket.js +2 -1
  40. package/dist/hub/engineRelaySocket.js.map +1 -1
  41. package/dist/hub/hubDaemon.js +8 -2
  42. package/dist/hub/hubDaemon.js.map +1 -1
  43. package/dist/hub/hubProtocol.js +8 -2
  44. package/dist/hub/hubProtocol.js.map +1 -1
  45. package/dist/hub/panePreviewPump.d.ts +27 -0
  46. package/dist/hub/panePreviewPump.js +62 -1
  47. package/dist/hub/panePreviewPump.js.map +1 -1
  48. package/dist/hub/sessionHub.d.ts +48 -1
  49. package/dist/hub/sessionHub.js +165 -14
  50. package/dist/hub/sessionHub.js.map +1 -1
  51. package/dist/protocol/decode.js +14 -0
  52. package/dist/protocol/decode.js.map +1 -1
  53. package/dist/protocol/messages.d.ts +28 -0
  54. package/dist/services/accountIdentity.js +3 -1
  55. package/dist/services/accountIdentity.js.map +1 -1
  56. package/dist/services/officialApps.d.ts +9 -0
  57. package/dist/services/officialApps.js +56 -23
  58. package/dist/services/officialApps.js.map +1 -1
  59. package/dist/services/planUsageFetcher.d.ts +35 -3
  60. package/dist/services/planUsageFetcher.js +34 -6
  61. package/dist/services/planUsageFetcher.js.map +1 -1
  62. package/dist/sessions/claudeSessionStore.js +30 -0
  63. package/dist/sessions/claudeSessionStore.js.map +1 -1
  64. package/dist/sessions/heartbeat.d.ts +7 -1
  65. package/dist/sessions/heartbeat.js +3 -1
  66. package/dist/sessions/heartbeat.js.map +1 -1
  67. package/dist/sessions/sessionSearch.js +23 -5
  68. package/dist/sessions/sessionSearch.js.map +1 -1
  69. package/dist/shared/crossSession.d.ts +15 -0
  70. package/dist/shared/crossSession.js +75 -0
  71. package/dist/shared/crossSession.js.map +1 -0
  72. package/dist/shared/harnessReminder.d.ts +32 -0
  73. package/dist/shared/harnessReminder.js +124 -0
  74. package/dist/shared/harnessReminder.js.map +1 -0
  75. package/dist/shared/systemNotice.d.ts +30 -0
  76. package/dist/shared/systemNotice.js +209 -0
  77. package/dist/shared/systemNotice.js.map +1 -0
  78. package/package.json +3 -3
@@ -108,6 +108,399 @@ function isInputPlaceholder(text) {
108
108
  return true;
109
109
  return text.startsWith("Message @") && text.endsWith("…");
110
110
  }
111
+ /** SGR カラー/属性エスケープ(`ESC[…m`)を除いた素のテキスト。 */
112
+ function stripSgr(line) {
113
+ // eslint-disable-next-line no-control-regex
114
+ return line.replace(/\u001b\[[0-9;]*m/g, "");
115
+ }
116
+ /**
117
+ * claude TUI の「プロンプト提案」(2.1.25x 頃〜。空の入力欄に薄字で次の一手を提示し、
118
+ * → / Tab で採用、Enter で即送信される)と空入力プレースホルダーは、いずれも通常の
119
+ * 未送信テキストと**同じ入力欄位置**に描画される。`--format text`(SGR 除去済み)では
120
+ * 本文と区別できないため、注入の残留 flush 判定・送信確定ループがこれらを実テキストと
121
+ * 誤認し、Enter で提案をそのまま送信してしまう(実障害 2026-09-03: iPhone 送信のたびに
122
+ * AI の提案文が勝手に送られ、送信が壊れる)。
123
+ *
124
+ * 決定的シグナル: 提案もプレースホルダーも本文が SGR 2(faint/薄字)で描画される。
125
+ * 利用者入力・中断時の queued 書き戻しは faint ではない(実測 herdr `pane read --format
126
+ * ansi` 2026-09-03: 提案は 本文が ESC[2m 包み、実テキストは faint 無し)。
127
+ *
128
+ * ANSI 画面から入力欄本文を切り出し、本文の可視文字がすべて faint なら「実テキスト無し」
129
+ * とみなす(=提案/プレースホルダー)。faint でない可視文字が 1 つでもあれば実テキスト有り。
130
+ * 判定不能(罫線が見つからない・本文空)は false。
131
+ */
132
+ export function inputBoxHasRealPendingText(ansiScreen) {
133
+ const analysis = analyzeInputBox(ansiScreen);
134
+ return analysis !== null && analysis.text.length > 0 && !analysis.faintOnly;
135
+ }
136
+ /**
137
+ * 入力欄の「実テキスト」(薄字プロンプト提案・プレースホルダーを除いた未送信本文)を返す。
138
+ * `null` = 入力欄が見つからない(罫線が窓外・描画崩れ)、`""` = 空 or 提案/プレースホルダー、
139
+ * それ以外 = 実テキスト。text capture の box.text を使う判定(clearInputBox の空判定・
140
+ * inputBoxContainsText の probe 照合)が提案を実テキストと誤認するのを塞ぐため、ANSI から
141
+ * faint を見て実テキストだけを取り出す(prompt-suggestion-chip)。
142
+ */
143
+ export function inputBoxRealText(ansiScreen) {
144
+ const analysis = analyzeInputBox(ansiScreen);
145
+ if (analysis === null)
146
+ return null;
147
+ return analysis.faintOnly ? "" : analysis.text;
148
+ }
149
+ /**
150
+ * claude TUI のプロンプト提案文を取り出す(提案チップ表示用)。
151
+ * 入力欄本文が薄字(faint)のみ かつ 既知プレースホルダーでない非空テキストのときだけ、その
152
+ * 本文を返す(=提案)。空・実テキスト(利用者入力/中断書き戻し)・プレースホルダーは null。
153
+ * inputBoxHasRealPendingText と同じ解析(analyzeInputBox)を共有し、判定を一貫させる。
154
+ */
155
+ export function extractInputBoxSuggestion(ansiScreen) {
156
+ const analysis = analyzeInputBox(ansiScreen);
157
+ if (analysis === null || analysis.text.length === 0)
158
+ return null;
159
+ return analysis.faintOnly ? analysis.text : null;
160
+ }
161
+ /**
162
+ * ANSI 画面から入力欄本文の可視テキスト(既知プレースホルダーは "" へ、extractClaudeInputBox
163
+ * 準拠)と「本文がすべて薄字(faint)か」を返す。罫線ペア or 末尾 `❯` 行で領域を特定する
164
+ * (extractClaudeInputBox と同型)。入力欄が見つからなければ null。
165
+ */
166
+ function analyzeInputBox(ansiScreen) {
167
+ const rawLines = ansiScreen.split("\n").map((line) => line.replace(/\r$/, ""));
168
+ const stripped = rawLines.map((line) => stripSgr(line).trim());
169
+ // 罫線ペアで入力欄領域を特定する(extractClaudeInputBox と同じ規則を SGR 除去後の行へ)。
170
+ let bottom = -1;
171
+ for (let index = stripped.length - 1; index >= 0; index -= 1) {
172
+ if (isInputBoxRuleLine(stripped[index] ?? "")) {
173
+ bottom = index;
174
+ break;
175
+ }
176
+ }
177
+ let top = -1;
178
+ for (let index = bottom - 1; index >= 0; index -= 1) {
179
+ if (isInputBoxRuleLine(stripped[index] ?? "")) {
180
+ top = index;
181
+ break;
182
+ }
183
+ }
184
+ let bodyRaw;
185
+ if (top >= 0 && bottom > top) {
186
+ bodyRaw = rawLines.slice(top + 1, bottom);
187
+ }
188
+ else {
189
+ // 罫線が無い画面は最後の `❯` 行 1 行だけを入力欄とみなす(extractClaudeInputBox と同型)。
190
+ let sigilIndex = -1;
191
+ for (let index = stripped.length - 1; index >= 0; index -= 1) {
192
+ if ((stripped[index] ?? "").startsWith("❯")) {
193
+ sigilIndex = index;
194
+ break;
195
+ }
196
+ }
197
+ if (sigilIndex < 0)
198
+ return null;
199
+ bodyRaw = [rawLines[sigilIndex] ?? ""];
200
+ }
201
+ // プレースホルダー(文言一致)は "" 扱い(extractClaudeInputBox が担保・後方互換)。
202
+ const box = extractClaudeInputBox(stripped.join("\n"));
203
+ if (box === null)
204
+ return null;
205
+ return { text: box.text, faintOnly: bodyIsFaintOnly(bodyRaw) };
206
+ }
207
+ /**
208
+ * 入力欄本文(ANSI 付き raw 行)の可視文字がすべて faint(SGR 2)か。
209
+ * SGR 状態を文字送りで追い(0 = 全リセット / 2 = faint on / 22 = faint off)、
210
+ * 空白・モード記号(`❯ › !`)以外の可視文字だけを評価する。可視文字が 1 つも無ければ false。
211
+ */
212
+ function bodyIsFaintOnly(bodyRaw) {
213
+ const ESC = "\u001b";
214
+ const NBSP = " ";
215
+ let faint = false;
216
+ let sawPrintable = false;
217
+ let allFaint = true;
218
+ for (const line of bodyRaw) {
219
+ let index = 0;
220
+ while (index < line.length) {
221
+ if (line[index] === ESC && line[index + 1] === "[") {
222
+ // eslint-disable-next-line no-control-regex
223
+ const match = /^\u001b\[([0-9;]*)m/.exec(line.slice(index));
224
+ if (match) {
225
+ const params = match[1] ?? "";
226
+ const codes = params === "" ? [0] : params.split(";").map((code) => Number(code));
227
+ // SGR を左から評価する。38/48(前景/背景色)は 2;r;g;b または 5;n の
228
+ // サブパラメータを従えるため、その分を読み飛ばす(`38;2;255;255;255` の `2` を
229
+ // faint(SGR 2) と誤認しない — この取り違えが色付き実テキストの誤判定原因だった)。
230
+ for (let cursor = 0; cursor < codes.length; cursor += 1) {
231
+ const code = codes[cursor];
232
+ if (code === 38 || code === 48) {
233
+ const mode = codes[cursor + 1];
234
+ cursor += mode === 2 ? 4 : mode === 5 ? 2 : 1;
235
+ continue;
236
+ }
237
+ if (code === 0 || code === 22)
238
+ faint = false;
239
+ else if (code === 2)
240
+ faint = true;
241
+ }
242
+ index += match[0].length;
243
+ continue;
244
+ }
245
+ }
246
+ const ch = line[index] ?? "";
247
+ // 空白・NBSP・モード記号は本文の可視性判定から除外する(記号の色は faint とは限らない)。
248
+ if (ch !== " " &&
249
+ ch !== NBSP &&
250
+ ch !== "\t" &&
251
+ ch !== "❯" &&
252
+ ch !== "›" &&
253
+ ch !== "!") {
254
+ sawPrintable = true;
255
+ if (!faint)
256
+ allFaint = false;
257
+ }
258
+ index += 1;
259
+ }
260
+ }
261
+ return sawPrintable && allFaint;
262
+ }
263
+ /**
264
+ * `/login` の OAuth コード入力待ち行(実測 claude 2.1.241: `Paste code here if prompted >`)。
265
+ * ブラウザで取得したコードを貼る唯一の入力面で、通常の入力欄(罫線ペア)は描画されない。
266
+ */
267
+ export const LOGIN_CODE_PROMPT_MARKER = "Paste code here if prompted";
268
+ /**
269
+ * `/login` でコード送信が失敗した後の再試行待ち行(実測 2.1.241:
270
+ * `OAuth error: Request failed with status code 400` の下に `Press Enter to retry.`)。
271
+ */
272
+ export const LOGIN_RETRY_MARKER = "Press Enter to retry";
273
+ /** `/login` 方式選択(`Select login method:`)のタイトル行(実測 2.1.241。フッターは `Esc to cancel` のみ)。 */
274
+ export const LOGIN_METHOD_MARKER = "Select login method";
275
+ /**
276
+ * 成功後の継続待ち画面(CLI 2.1.241 の文字列 `Login successful. Press Enter to continue…`。
277
+ * 入力欄は無く、Enter / Esc で閉じて通常の入力欄へ戻る)。
278
+ * 2026-08-25 実障害: この画面を知らず「交換中」として 10s 待って失敗を返し、利用者がキャンセル
279
+ * (Esc)すると閉じてログイン済みになる、という逆転が起きた。
280
+ */
281
+ export const LOGIN_CONTINUE_MARKER = "to continue";
282
+ /** ダイアログ行が pane 末尾(最後の非空行)からこの行数以内にあるときだけ「生きている」とみなす。 */
283
+ const LOGIN_TAIL_WINDOW = 12;
284
+ /**
285
+ * `marker` で始まる行が、生きたダイアログとして画面にあるか(TESTABLE 内部)。
286
+ * 会話本文が同じ文言を行頭に含むだけ(Ink の折り返し・/login の説明文)で発火しないよう、
287
+ * (a) 末尾 LOGIN_TAIL_WINDOW 行以内 (b) 直下 `footerReach` 行以内に `Esc to cancel` フッター、
288
+ * の 2 条件を課す(iOS 側 ClaudeLoginPromptParser.isLiveDialogLine と同じ規則)。
289
+ */
290
+ function liveDialogLineIndex(lines, marker, footerReach) {
291
+ let lastContent = -1;
292
+ for (let index = lines.length - 1; index >= 0; index -= 1) {
293
+ if ((lines[index] ?? "").trim().length > 0) {
294
+ lastContent = index;
295
+ break;
296
+ }
297
+ }
298
+ if (lastContent < 0)
299
+ return null;
300
+ for (let index = lines.length - 1; index >= 0; index -= 1) {
301
+ if (!(lines[index] ?? "").trim().startsWith(marker))
302
+ continue;
303
+ if (lastContent - index > LOGIN_TAIL_WINDOW)
304
+ return null;
305
+ const end = Math.min(lines.length, index + 1 + footerReach);
306
+ for (let below = index + 1; below < end; below += 1) {
307
+ if ((lines[below] ?? "").trim().toLowerCase().startsWith("esc to cancel"))
308
+ return index;
309
+ }
310
+ return null;
311
+ }
312
+ return null;
313
+ }
314
+ /** 画面が `/login` のコード入力待ちか(TESTABLE)。chat 注入の門番と login_code_send の前提確認に使う。 */
315
+ export function screenHasLoginCodePrompt(screen) {
316
+ return liveDialogLineIndex(screen.split("\n"), LOGIN_CODE_PROMPT_MARKER, 3) !== null;
317
+ }
318
+ function screenHasLoginRetry(screen) {
319
+ return liveDialogLineIndex(screen.split("\n"), LOGIN_RETRY_MARKER, 3) !== null;
320
+ }
321
+ function screenHasLoginMethodSelect(screen) {
322
+ // タイトル行と Esc フッターの間に選択肢(最大 3 行 + 空行)が入る。
323
+ return liveDialogLineIndex(screen.split("\n"), LOGIN_METHOD_MARKER, 8) !== null;
324
+ }
325
+ /** 成功後の継続待ち(`Login successful. Press Enter to continue…`)が pane 末尾付近にあるか。 */
326
+ export function screenHasLoginContinue(screen) {
327
+ const lines = screen.split("\n");
328
+ let lastContent = -1;
329
+ for (let index = lines.length - 1; index >= 0; index -= 1) {
330
+ if ((lines[index] ?? "").trim().length > 0) {
331
+ lastContent = index;
332
+ break;
333
+ }
334
+ }
335
+ if (lastContent < 0)
336
+ return false;
337
+ for (let index = lastContent; index >= Math.max(0, lastContent - LOGIN_TAIL_WINDOW); index -= 1) {
338
+ const text = (lines[index] ?? "").trim().toLowerCase();
339
+ if (text.includes("login successful") && text.includes(LOGIN_CONTINUE_MARKER))
340
+ return true;
341
+ if (text.startsWith("press enter to continue"))
342
+ return true;
343
+ }
344
+ return false;
345
+ }
346
+ /**
347
+ * 画面が `/login` フローのどこか(方式選択 / コード入力待ち / 失敗後の再試行待ち)にいるか(TESTABLE)。
348
+ * chat 注入の門番用。コード欄以外の 2 画面も、通常本文 + Enter が選択リストや retry を
349
+ * 押してしまうため同じく拒否する。
350
+ */
351
+ export function screenInLoginFlow(screen) {
352
+ return screenHasLoginCodePrompt(screen) || screenHasLoginRetry(screen)
353
+ || screenHasLoginMethodSelect(screen) || screenHasLoginContinue(screen);
354
+ }
355
+ export function loginCodeScreenState(screen) {
356
+ if (screenHasLoginCodePrompt(screen))
357
+ return "prompt";
358
+ if (screenHasLoginRetry(screen))
359
+ return "retry";
360
+ if (screenHasLoginMethodSelect(screen))
361
+ return "method";
362
+ if (screenHasLoginContinue(screen))
363
+ return "continue";
364
+ const lines = screen.split("\n");
365
+ const tail = lines.slice(-LOGIN_TAIL_WINDOW - 8);
366
+ const rules = tail.filter((line) => isInputBoxRuleLine(line.trim())).length;
367
+ if (rules >= 2)
368
+ return "accepted";
369
+ return "pending";
370
+ }
371
+ /**
372
+ * retry 画面の理由行。`OAuth error` で始まる行(末尾窓内の最後のもの)だけを採用する。
373
+ * 直上行フォールバックは持たない(コードをエコーしたコード欄の行が理由として result / ログへ
374
+ * 漏れる)。念のためコード欄マーカーを含む行は採用しない。
375
+ */
376
+ export function loginCodeErrorLine(screen) {
377
+ const lines = screen.split("\n").map((line) => line.trim());
378
+ const tail = lines.slice(-LOGIN_TAIL_WINDOW - 8);
379
+ for (let index = tail.length - 1; index >= 0; index -= 1) {
380
+ const text = tail[index] ?? "";
381
+ if (text.startsWith("OAuth error") && !text.includes(LOGIN_CODE_PROMPT_MARKER)) {
382
+ return text.slice(0, 200);
383
+ }
384
+ }
385
+ return null;
386
+ }
387
+ /**
388
+ * login-code 経路の失敗(利用者へそのまま出せる文言だけを message に持つ)。
389
+ * コード本文を含む生の backend エラー(tmux の args 等)を result / diag に流さないための型。
390
+ * chat 注入の門番(1 キーも送る前の確定拒否)にも使う — hub はこの型を「未送出の失敗」として
391
+ * uncertain(配送不明)に積まない。
392
+ */
393
+ export class LoginCodeError extends Error {
394
+ constructor(message) {
395
+ super(message);
396
+ this.name = "LoginCodeError";
397
+ }
398
+ }
399
+ /** login_code_send が拒否するメッセージ(コード入力待ちでない)。 */
400
+ export const LOGIN_CODE_PROMPT_NOT_VISIBLE = "Claude はログインコードの入力待ちではありません(/login を実行してから送ってください)";
401
+ /** retry 画面で login_code_send されたときの案内。 */
402
+ export const LOGIN_CODE_RETRY_PENDING = "Claude は再試行待ちです。「もう一度」を押してから、新しいコードを送ってください";
403
+ /** chat 注入が `/login` フロー中の画面を検出したときの拒否文言(hub が会話本文へそのまま出す)。 */
404
+ export const CHAT_BLOCKED_BY_LOGIN_PROMPT = "Claude が /login の途中です。転写カードから操作するか、キャンセルしてから送ってください";
405
+ /** コード送出は届いたが、待ってもコード欄が消えない(CR 取りこぼし・TUI 停止)。 */
406
+ export const LOGIN_CODE_NOT_ACCEPTED = "コードが Claude に受理されませんでした(もう一度送るか、Mac 側の画面を確認してください)";
407
+ /** コード本文がコード欄に反映されなかった(send-text 取りこぼし)。CR は撃たない。 */
408
+ export const LOGIN_CODE_NOT_ECHOED = "コードが入力欄に反映されませんでした(もう一度送ってください)";
409
+ /** 交換が長引き、受理も拒否も確定しなかった。 */
410
+ export const LOGIN_CODE_UNSETTLED = "ログインの結果を確認できませんでした(Mac 側の画面を確認してください)";
411
+ /** login_code_send の失敗を利用者向け文言へ写す(コード本文・内部 args を漏らさない)。 */
412
+ export function loginCodeErrorMessage(error) {
413
+ if (error instanceof LoginCodeError)
414
+ return error.message;
415
+ const name = error instanceof Error ? error.name : "Error";
416
+ return `コードの送出に失敗しました(${name})`;
417
+ }
418
+ /** コード欄に本文が反映されたか(入力は末尾 6 文字以外マスク表示される実測に合わせ、末尾で照合)。 */
419
+ export function loginCodeEchoed(screen, code) {
420
+ const lines = screen.split("\n");
421
+ const index = liveDialogLineIndex(lines, LOGIN_CODE_PROMPT_MARKER, 3);
422
+ if (index === null)
423
+ return false;
424
+ const probe = code.slice(-Math.min(6, code.length));
425
+ return (lines[index] ?? "").includes(probe);
426
+ }
427
+ /**
428
+ * `/login` のコードを送出し、結果を画面で確定させる(tmux / herdr 共通, TESTABLE)。
429
+ * - 送出前にコード欄が無ければ何も送らず throw(retry 画面は専用の案内)
430
+ * - 本文送出後、コード欄へのエコーを確認してから CR(反映していなければ CR を撃たず throw —
431
+ * 切り詰めたコードを送ってワンタイムコードを焼かない)
432
+ * - CR 後は `loginCodeScreenState` で待つ。retry / method は即 throw(余分な CR で retry を
433
+ * 押さない)。accepted(陽性証拠)で受理。prompt が settleMs 残れば **再キャプチャして prompt
434
+ * のときだけ** CR を 1 回再送。pending は settleMs×2 まで待ち、確定しなければ throw。
435
+ * 暗黙の ok は返さない。
436
+ */
437
+ export async function submitLoginCode(code, ops) {
438
+ const now = ops.now ?? (() => Date.now());
439
+ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
440
+ const initial = await ops.capture();
441
+ const initialState = initial === null ? "pending" : loginCodeScreenState(initial);
442
+ if (initialState === "retry")
443
+ throw new LoginCodeError(LOGIN_CODE_RETRY_PENDING);
444
+ if (initialState !== "prompt")
445
+ throw new LoginCodeError(LOGIN_CODE_PROMPT_NOT_VISIBLE);
446
+ await ops.sendLiteral(code);
447
+ await sleep(ops.delayMs);
448
+ let echoed = false;
449
+ for (let attempt = 0; attempt < 2 && !echoed; attempt += 1) {
450
+ if (attempt > 0)
451
+ await sleep(ops.pollMs);
452
+ const screen = await ops.capture();
453
+ echoed = screen !== null && loginCodeEchoed(screen, code);
454
+ }
455
+ if (!echoed)
456
+ throw new LoginCodeError(LOGIN_CODE_NOT_ECHOED);
457
+ const start = now();
458
+ const pendingDeadline = start + ops.settleMs * 2;
459
+ let entersSent = 0;
460
+ let continueEnters = 0;
461
+ let state = "prompt";
462
+ while (true) {
463
+ if (state === "prompt") {
464
+ if (entersSent >= 2)
465
+ throw new LoginCodeError(LOGIN_CODE_NOT_ACCEPTED);
466
+ await ops.sendEnter();
467
+ entersSent += 1;
468
+ }
469
+ else if (state === "continue") {
470
+ // ログインは完了している。継続待ちを Enter で閉じて入力欄へ戻す(最大 2 回)。閉じられなくても
471
+ // 失敗にはしない(iOS 側は成功画面を「続ける」カードとして転写できる)。
472
+ if (continueEnters >= 2)
473
+ return;
474
+ await ops.sendEnter();
475
+ continueEnters += 1;
476
+ }
477
+ const attemptDeadline = now() + ops.settleMs;
478
+ for (;;) {
479
+ await sleep(ops.pollMs);
480
+ const screen = await ops.capture();
481
+ state = screen === null ? "pending" : loginCodeScreenState(screen);
482
+ if (state === "retry") {
483
+ const reason = screen === null ? null : loginCodeErrorLine(screen);
484
+ throw new LoginCodeError(`コードが拒否されました${reason !== null ? `(${reason})` : ""}。もう一度サインインしてください`);
485
+ }
486
+ if (state === "method") {
487
+ throw new LoginCodeError("ログインが中断され、方式選択に戻りました。/login をやり直してください");
488
+ }
489
+ if (state === "accepted")
490
+ return;
491
+ if (state === "continue")
492
+ break;
493
+ if (state === "prompt" && now() >= attemptDeadline)
494
+ break;
495
+ if (state === "pending" && now() >= pendingDeadline) {
496
+ // 継続待ちを閉じた後の描画遅延なら成功として扱う(継続画面を一度でも見ている)。
497
+ if (continueEnters > 0)
498
+ return;
499
+ throw new LoginCodeError(LOGIN_CODE_UNSETTLED);
500
+ }
501
+ }
502
+ }
503
+ }
111
504
  /** 入力欄の行群を「モード記号 + 本文」へ分解する。 */
112
505
  function splitInputPrompt(bodyLines) {
113
506
  const body = [...bodyLines];
@@ -159,12 +552,19 @@ export class TmuxSessionManager {
159
552
  runner;
160
553
  store;
161
554
  captureLines;
555
+ /** login-code 送出の待ち時間(テスト注入用)。 */
556
+ loginTiming;
162
557
  protocolVersion;
163
558
  constructor(options = {}) {
164
559
  this.runner = options.runner ?? processTmuxCommandRunner();
165
560
  this.store = options.store ?? new SessionMetadataStore();
166
561
  this.captureLines = options.captureLines ?? 50;
167
562
  this.protocolVersion = options.protocolVersion ?? PROTOCOL_V1;
563
+ this.loginTiming = {
564
+ delayMs: options.loginTiming?.delayMs ?? 150,
565
+ pollMs: options.loginTiming?.pollMs ?? 250,
566
+ settleMs: options.loginTiming?.settleMs ?? 5_000,
567
+ };
168
568
  }
169
569
  /**
170
570
  * 現存する各セッションを name/cwd/alive で列挙する(name 昇順、メタのみは alive:false)。
@@ -276,11 +676,22 @@ export class TmuxSessionManager {
276
676
  * literal 送出 → 150ms(Ink 再描画待ち)→ Enter。
277
677
  */
278
678
  async sendTextSubmit(name, text) {
679
+ // 1 回の capture で「/login フロー中か」と「残存テキスト」を判定する(chat 毎の capture を増やさない)。
680
+ const screen = await this.captureVisibleScreenOrNull(name);
681
+ // `/login` フロー中(方式選択 / コード入力待ち / retry)は通常の入力欄が無く、注入した本文が
682
+ // 選択リストやコード欄へ入る。明示エラーで chat_send を失敗させる(コードは login_code_send、
683
+ // 再試行/中断は pane_key_send の専用経路)。
684
+ if (screen !== null && screenInLoginFlow(screen)) {
685
+ throw new LoginCodeError(CHAT_BLOCKED_BY_LOGIN_PROMPT);
686
+ }
279
687
  // 中断(停止)直後は claude が queued メッセージを入力欄へ書き戻す。残存したまま
280
688
  // 注入すると今回の本文がその後ろへ連結され 1 メッセージになる(実機FB 2026-07-29)。
281
689
  // 残存は先に Enter で独立メッセージとして送信し切ってから注入する。空入力への
282
690
  // Enter は no-op なので誤検出は無害(herdr 側 sendTextSubmit と同じ防御)。
283
- if (await this.inputBoxHasPendingText(name)) {
691
+ // 判定は ANSI で行い、薄字(faint)のプロンプト提案/プレースホルダーを実テキストと
692
+ // 数えない(実障害 2026-09-03: 提案を残留と誤認し Enter で勝手に送信していた)。
693
+ const ansiScreen = await this.captureVisibleScreenAnsiOrNull(name);
694
+ if (ansiScreen !== null && inputBoxHasRealPendingText(ansiScreen)) {
284
695
  await this.sendKeys(name, ["Enter"]);
285
696
  await new Promise((resolve) => setTimeout(resolve, 300));
286
697
  }
@@ -293,6 +704,31 @@ export class TmuxSessionManager {
293
704
  await new Promise((resolve) => setTimeout(resolve, 150));
294
705
  await this.sendKeys(name, ["Enter"]);
295
706
  }
707
+ /**
708
+ * `/login` の OAuth コードを入力欄へ渡して確定する(login_code_send)。
709
+ * コード入力待ちの画面でなければ何も送らず throw する(誤って通常入力欄へ
710
+ * コードが本文として送信されるのを防ぐ)。literal 送出 → 150ms → Enter は
711
+ * sendTextSubmit と同じ Ink の取り込み間隔。
712
+ */
713
+ async sendLoginCode(name, code) {
714
+ await submitLoginCode(code, {
715
+ capture: () => this.captureVisibleScreenOrNull(name),
716
+ sendLiteral: (text) => this.sendKeys(name, [text], true),
717
+ sendEnter: () => this.sendKeys(name, ["Enter"]),
718
+ delayMs: this.loginTiming.delayMs,
719
+ pollMs: this.loginTiming.pollMs,
720
+ settleMs: this.loginTiming.settleMs,
721
+ });
722
+ }
723
+ /** 画面キャプチャ(判定不能=capture 失敗は null)。 */
724
+ async captureVisibleScreenOrNull(name) {
725
+ try {
726
+ return await this.captureVisibleScreen(name);
727
+ }
728
+ catch {
729
+ return null;
730
+ }
731
+ }
296
732
  /**
297
733
  * 入力欄がシェルモードなら BSpace で通常入力へ戻す。判定不能・tmux エラーは no-op
298
734
  * (fail-open。この補助操作のエラーを表に出すと「送信できない」原因が BSpace 送出の
@@ -312,16 +748,6 @@ export class TmuxSessionManager {
312
748
  // no-op(fail-open)
313
749
  }
314
750
  }
315
- /** 入力欄に未送信テキストが残っているか。判定不能は false。 */
316
- async inputBoxHasPendingText(name) {
317
- try {
318
- const box = extractClaudeInputBox(await this.captureVisibleScreen(name));
319
- return box !== null && box.text.length > 0;
320
- }
321
- catch {
322
- return false;
323
- }
324
- }
325
751
  /**
326
752
  * 入力欄判定用に **viewport 全体**を取る(末尾 N 行で切らない)。
327
753
  *
@@ -343,14 +769,53 @@ export class TmuxSessionManager {
343
769
  }
344
770
  return lines.join("\n");
345
771
  }
772
+ /**
773
+ * viewport 全体を ANSI エスケープ付き(`capture-pane -e`)で取る。faint(SGR 2)属性で
774
+ * プロンプト提案/プレースホルダーを実テキストと見分けるのに使う(inputBoxHasRealPendingText)。
775
+ * 判定不能=capture 失敗は null(fail-open)。
776
+ */
777
+ async captureVisibleScreenAnsiOrNull(name) {
778
+ // 判定不能は fail-open で null(残留 flush 判定を止めない)。exitCode≠0 だけでなく
779
+ // runner の reject(spawn 失敗など)も握る(text 側 captureVisibleScreenOrNull と同じ約束)。
780
+ try {
781
+ const args = ["capture-pane", "-p", "-e", "-t", this.paneTarget(name)];
782
+ const result = await this.runner(args);
783
+ if (result.exitCode !== 0)
784
+ return null;
785
+ const lines = result.stdout.split("\n");
786
+ while (lines.length > 0 && (lines[lines.length - 1] ?? "").trim() === "") {
787
+ lines.pop();
788
+ }
789
+ return lines.join("\n");
790
+ }
791
+ catch {
792
+ return null;
793
+ }
794
+ }
795
+ /** SessionBackend: プロンプト提案抽出用の viewport ANSI キャプチャ(失敗は throw)。 */
796
+ async captureVisibleAnsi(name) {
797
+ validateSessionName(name);
798
+ const args = ["capture-pane", "-p", "-e", "-t", this.paneTarget(name)];
799
+ const result = await this.runner(args);
800
+ if (result.exitCode !== 0) {
801
+ throw new TmuxFailedError(args, result.exitCode, result.stderr);
802
+ }
803
+ const lines = result.stdout.split("\n");
804
+ while (lines.length > 0 && (lines[lines.length - 1] ?? "").trim() === "") {
805
+ lines.pop();
806
+ }
807
+ return lines.join("\n");
808
+ }
346
809
  /** 指定セッションの pane へ tmux send-keys を発行する(literal は -l)。 */
347
810
  async sendKeys(name, keys, literal = false) {
348
811
  validateSessionName(name);
349
812
  if (keys.length === 0)
350
813
  return;
351
814
  const args = ["send-keys", "-t", this.paneTarget(name)];
815
+ // literal は `--` で引数終端を明示する(先頭が `-` の本文 — base64url の OAuth コード等 —
816
+ // を tmux がフラグと誤認して `unknown flag` で失敗する)。
352
817
  if (literal)
353
- args.push("-l");
818
+ args.push("-l", "--");
354
819
  args.push(...keys);
355
820
  const result = await this.runner(args);
356
821
  if (result.exitCode !== 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"tmux.js","sourceRoot":"","sources":["../../src/backend/tmux.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tmux.js","sourceRoot":"","sources":["../../src/backend/tmux.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { LineWriter } from "../shared/lineWriter.js";
2
2
  import type { ImageService } from "./imageService.js";
3
- import { TranscriptTailer } from "./transcriptTailer.js";
3
+ import { TranscriptTailer, type ClaudeTurnLifecycleEvent } from "./transcriptTailer.js";
4
4
  import { SubagentTailer } from "./subagentTailer.js";
5
5
  import { type SubagentTranscriptResult } from "./subagentTranscript.js";
6
6
  import { CodexRolloutTailer, type CodexTurnLifecycleEvent } from "../codex/codexRolloutTailer.js";
@@ -41,6 +41,8 @@ export declare class ChatTailController {
41
41
  agent?: ChatAgent;
42
42
  codexTailer?: CodexRolloutTailer;
43
43
  onCodexTurnLifecycle?: (event: CodexTurnLifecycleEvent) => void;
44
+ /** claude の transcript 由来ライフサイクル(中断マーカー)。hub が処理中状態の補完に使う。 */
45
+ onClaudeTurnLifecycle?: (event: ClaudeTurnLifecycleEvent) => void;
44
46
  });
45
47
  /** 全文取得要求向けに、現在の subagent transcript パスを解決する。 */
46
48
  subagentTranscriptPath(nodeId: string): string | null;