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
@@ -0,0 +1,195 @@
1
+ // codexSystemNotice.ts
2
+ // tailii (TS host) — Codex App Server / rollout の利用者向けエラー・警告を
3
+ // chat_output(system) へ正規化する。live と rollout の二重経路は同じ streamId / 本文を
4
+ // 作り、Session Hub と iOS の双方で冪等に扱えるようにする。
5
+ import { createHash } from "node:crypto";
6
+ import { PROTOCOL_V1 } from "../protocol.js";
7
+ const NOTICE_STREAM_PREFIX = "codex-notice-";
8
+ const NOTICE_DETAIL_LIMIT = 240;
9
+ const NOTICE_NAME_LIMIT = 80;
10
+ /** Codex 専用 system 注記だけを rollout/live occurrence 照合の対象にする。 */
11
+ export function codexSystemNoticeContentKey(payload) {
12
+ if (payload.type !== "chat_output" || payload.role !== "system" ||
13
+ !payload.streamId.startsWith(NOTICE_STREAM_PREFIX))
14
+ return null;
15
+ return `system\u0000${payload.text}`;
16
+ }
17
+ /** App Server item/completed の mcpToolCall 失敗を表示用注記へ変換する。 */
18
+ export function codexMcpItemErrorNotice(item) {
19
+ if (item["type"] !== "mcpToolCall")
20
+ return null;
21
+ const id = nonEmptyString(item["id"]);
22
+ if (id === null)
23
+ return null;
24
+ const error = asRecord(item["error"]);
25
+ const errorMessage = nonEmptyString(error?.["message"]);
26
+ if (item["status"] !== "failed" && errorMessage === null)
27
+ return null;
28
+ return notice(id, `mcp:${id}`, mcpErrorText(item["server"], item["tool"], errorMessage));
29
+ }
30
+ /** rollout event_msg の利用者向け error / warning を表示用注記へ変換する。 */
31
+ export function codexRolloutSystemNotice(payload) {
32
+ const kind = payload["type"];
33
+ if (kind === "mcp_tool_call_end") {
34
+ const id = nonEmptyString(payload["call_id"]);
35
+ if (id === null)
36
+ return null;
37
+ const result = asRecord(payload["result"]);
38
+ if (result === null)
39
+ return null;
40
+ const transportError = nonEmptyString(result["Err"]);
41
+ const toolResult = asRecord(result["Ok"]);
42
+ const toolReportedError = toolResult?.["isError"] === true || toolResult?.["is_error"] === true;
43
+ if (transportError === null && !toolReportedError)
44
+ return null;
45
+ const invocation = asRecord(payload["invocation"]);
46
+ const detail = transportError ?? textContent(toolResult?.["content"]);
47
+ return notice(id, `mcp:${id}`, mcpErrorText(invocation?.["server"], invocation?.["tool"], detail));
48
+ }
49
+ if (kind !== "error" && kind !== "stream_error" && kind !== "warning")
50
+ return null;
51
+ const message = noticeMessage(payload);
52
+ if (message === null)
53
+ return null;
54
+ const turnId = nonEmptyString(payload["turn_id"]) ?? "unknown-turn";
55
+ const attempt = nonNegativeInteger(payload["retry_attempt"]);
56
+ const maxRetries = nonNegativeInteger(payload["max_retries"]);
57
+ const retrying = kind === "stream_error" &&
58
+ (maxRetries === null || attempt === null || attempt < maxRetries);
59
+ const detail = clip(message, NOTICE_DETAIL_LIMIT);
60
+ const text = kind === "warning"
61
+ ? `⚠️ Codex 警告: ${detail}`
62
+ : retrying
63
+ ? `⚠️ Codex エラー(自動再試行中): ${detail}`
64
+ : `❌ Codex エラー: ${detail}`;
65
+ // 同じ stream_error の再試行は 1 件へ畳み、上限到達(retrying=false)だけ別注記にする。
66
+ // retry attempt を ID に含めると 502 × 10 回のような一時障害で会話が埋まってしまう。
67
+ const identity = `${String(kind)}:${turnId}:${retrying ? "retrying" : "terminal"}:${detail}`;
68
+ return notice(`rollout:${identity}`, identity, text);
69
+ }
70
+ /** App Server の item 以外の error / warning 通知を表示用注記へ変換する。 */
71
+ export function codexAppServerSystemNotice(method, params) {
72
+ if (params === null)
73
+ return null;
74
+ if (method === "error") {
75
+ const turnId = nonEmptyString(params["turnId"]) ?? "unknown-turn";
76
+ const message = turnErrorMessage(params["error"]);
77
+ const willRetry = params["willRetry"] === true;
78
+ const detail = clip(message ?? "Codex でエラーが発生しました。", NOTICE_DETAIL_LIMIT);
79
+ return willRetry
80
+ ? notice(`turn-retry:${turnId}:${detail}`, `turn-retry:${turnId}:${detail}`, `⚠️ Codex エラー(自動再試行中): ${detail}`)
81
+ : notice(`turn-error:${turnId}`, `turn-error:${turnId}`, `❌ Codex エラー: ${detail}`);
82
+ }
83
+ if (method === "turn/completed") {
84
+ const turn = asRecord(params["turn"]);
85
+ if (turn?.["status"] !== "failed")
86
+ return null;
87
+ const turnId = nonEmptyString(turn["id"]) ?? "unknown-turn";
88
+ const detail = clip(turnErrorMessage(turn["error"]) ?? "ターンを完了できませんでした。", NOTICE_DETAIL_LIMIT);
89
+ return notice(`turn-error:${turnId}`, `turn-error:${turnId}`, `❌ Codex エラー: ${detail}`);
90
+ }
91
+ if (method === "mcpServer/startupStatus/updated") {
92
+ if (params["status"] !== "failed")
93
+ return null;
94
+ const name = clip(nonEmptyString(params["name"]) ?? "不明", NOTICE_NAME_LIMIT);
95
+ const detail = nonEmptyString(params["error"])
96
+ ?? (params["failureReason"] === "reauthenticationRequired"
97
+ ? "再認証が必要です。"
98
+ : "起動できませんでした。");
99
+ const text = `❌ MCP サーバー「${name}」の起動に失敗しました: ${clip(detail, NOTICE_DETAIL_LIMIT)}`;
100
+ return notice(`mcp-startup:${name}:${detail}`, `mcp-startup:${name}:${detail}`, text);
101
+ }
102
+ if (method === "mcpServer/oauthLogin/completed" && params["success"] === false) {
103
+ const name = clip(nonEmptyString(params["name"]) ?? "不明", NOTICE_NAME_LIMIT);
104
+ const detail = clip(nonEmptyString(params["error"]) ?? "ログインできませんでした。", NOTICE_DETAIL_LIMIT);
105
+ return notice(`mcp-login:${name}:${detail}`, `mcp-login:${name}:${detail}`, `❌ MCP サーバー「${name}」のログインに失敗しました: ${detail}`);
106
+ }
107
+ if (method === "warning" || method === "guardianWarning") {
108
+ const message = nonEmptyString(params["message"]);
109
+ if (message === null)
110
+ return null;
111
+ const detail = clip(message, NOTICE_DETAIL_LIMIT);
112
+ const label = method === "guardianWarning" ? "Codex セキュリティ警告" : "Codex 警告";
113
+ return notice(`${method}:${detail}`, `${method}:${detail}`, `⚠️ ${label}: ${detail}`);
114
+ }
115
+ if (method === "configWarning" || method === "deprecationNotice") {
116
+ const summary = nonEmptyString(params["summary"]);
117
+ if (summary === null)
118
+ return null;
119
+ const details = nonEmptyString(params["details"]);
120
+ const body = clip(details === null ? summary : `${summary} — ${details}`, NOTICE_DETAIL_LIMIT);
121
+ const label = method === "configWarning" ? "Codex 設定警告" : "Codex 非推奨機能";
122
+ return notice(`${method}:${body}`, `${method}:${body}`, `⚠️ ${label}: ${body}`);
123
+ }
124
+ return null;
125
+ }
126
+ function mcpErrorText(serverValue, toolValue, detailValue) {
127
+ const server = clip(nonEmptyString(serverValue) ?? "不明", NOTICE_NAME_LIMIT);
128
+ const tool = clip(nonEmptyString(toolValue) ?? "不明", NOTICE_NAME_LIMIT);
129
+ const detail = clip(detailValue ?? "ツールがエラーを返しました。", NOTICE_DETAIL_LIMIT);
130
+ return `❌ MCP「${server} / ${tool}」エラー: ${detail}`;
131
+ }
132
+ function notice(itemId, identity, text) {
133
+ const digest = createHash("sha256").update(identity).digest("hex").slice(0, 24);
134
+ return {
135
+ itemId,
136
+ payload: {
137
+ type: "chat_output",
138
+ v: PROTOCOL_V1,
139
+ streamId: `${NOTICE_STREAM_PREFIX}${digest}`,
140
+ role: "system",
141
+ text,
142
+ eof: true,
143
+ },
144
+ };
145
+ }
146
+ function noticeMessage(payload) {
147
+ const direct = nonEmptyString(payload["message"]) ?? nonEmptyString(payload["content"]);
148
+ if (direct !== null)
149
+ return direct;
150
+ return turnErrorMessage(payload["error"]);
151
+ }
152
+ function turnErrorMessage(value) {
153
+ if (typeof value === "string")
154
+ return value.trim().length > 0 ? value : null;
155
+ const error = asRecord(value);
156
+ if (error === null)
157
+ return null;
158
+ const message = nonEmptyString(error["message"]);
159
+ const additional = nonEmptyString(error["additionalDetails"]);
160
+ if (message === null)
161
+ return additional;
162
+ if (additional === null || message.includes(additional))
163
+ return message;
164
+ return `${message} — ${additional}`;
165
+ }
166
+ function textContent(value) {
167
+ if (!Array.isArray(value))
168
+ return null;
169
+ const parts = value.flatMap((entry) => {
170
+ if (typeof entry === "string" && entry.trim().length > 0)
171
+ return [entry];
172
+ const record = asRecord(entry);
173
+ const text = nonEmptyString(record?.["text"]);
174
+ return text === null ? [] : [text];
175
+ });
176
+ return parts.length > 0 ? parts.join("\n") : null;
177
+ }
178
+ /** 改行を 1 段落へ畳み、Unicode scalar 単位で切り詰める。 */
179
+ function clip(text, limit) {
180
+ const flat = text.replace(/\s*\n\s*/g, " ").trim();
181
+ const characters = [...flat];
182
+ return characters.length <= limit ? flat : characters.slice(0, limit).join("") + "…";
183
+ }
184
+ function nonEmptyString(value) {
185
+ return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
186
+ }
187
+ function nonNegativeInteger(value) {
188
+ return typeof value === "number" && Number.isSafeInteger(value) && value >= 0 ? value : null;
189
+ }
190
+ function asRecord(value) {
191
+ return typeof value === "object" && value !== null && !Array.isArray(value)
192
+ ? value
193
+ : null;
194
+ }
195
+ //# sourceMappingURL=codexSystemNotice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codexSystemNotice.js","sourceRoot":"","sources":["../../src/codex/codexSystemNotice.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,24 @@
1
1
  import type { ClaudeAccountUsage, CodexAccountUsage } from "../../protocol/messages.js";
2
+ import { type PlanUsageFailure } from "../../services/planUsageFetcher.js";
2
3
  import type { HandlerRegistry } from "../context.js";
3
4
  /** Claude 側 TTL(ms)。使用量 API は分解能が粗く、2 分で十分新しい。 */
4
5
  export declare const CLAUDE_ACCOUNT_USAGE_TTL_MS = 120000;
5
6
  /** Codex 側 TTL(ms)。App Server 経由なので Claude より短くできる。 */
6
7
  export declare const CODEX_ACCOUNT_USAGE_TTL_MS = 60000;
8
+ /**
9
+ * Claude が `login_required`(候補ゼロ / 全候補 401)で失敗したときだけ使う短い TTL(ms)。
10
+ * `/login` し直しの直後にシートを更新して復旧を見せるため。通信断(unavailable)や Codex の
11
+ * 失敗は従来 TTL のまま(オフライン中に 15s ごとに候補×5s timeout や App Server 起動試行を
12
+ * 繰り返すと、アプリの RPC timeout 12s に対して応答が遅れる)。
13
+ */
14
+ export declare const ACCOUNT_USAGE_FAILURE_TTL_MS = 15000;
7
15
  /** Claude 側の取得失敗時に返す理由文(iOS はこれをそのままカードへ出す)。 */
8
16
  export declare const CLAUDE_ACCOUNT_USAGE_ERROR = "Claude \u306E\u4F7F\u7528\u91CF\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08OAuth \u30C8\u30FC\u30AF\u30F3\u7121\u52B9\u307E\u305F\u306F\u30AA\u30D5\u30E9\u30A4\u30F3\uFF09\u3002";
17
+ /**
18
+ * Claude のログインが切れている(候補ゼロ・全候補 401)ときの理由文。
19
+ * 「トークン無効またはオフライン」の二択を利用者に押し付けず、復旧手順(会話で /login)まで示す。
20
+ */
21
+ export declare const CLAUDE_ACCOUNT_USAGE_LOGIN_REQUIRED = "Claude \u306E\u30ED\u30B0\u30A4\u30F3\u304C\u5207\u308C\u3066\u3044\u307E\u3059\u3002\u4F1A\u8A71\u3067 /login \u3092\u5B9F\u884C\u3057\u3066\u30ED\u30B0\u30A4\u30F3\u3057\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
9
22
  /** Codex 側の取得失敗時に返す理由文。 */
10
23
  export declare const CODEX_ACCOUNT_USAGE_ERROR = "Codex \u306E\u4F7F\u7528\u91CF\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08Codex App Server \u306B\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093\uFF09\u3002";
11
24
  export interface AccountUsageHandlerOptions {
@@ -13,7 +26,11 @@ export interface AccountUsageHandlerOptions {
13
26
  now?: () => number;
14
27
  claudeTtlMs?: number;
15
28
  codexTtlMs?: number;
29
+ /** 失敗エントリの TTL(既定 ACCOUNT_USAGE_FAILURE_TTL_MS)。 */
30
+ failureTtlMs?: number;
16
31
  }
32
+ /** Claude 側の失敗理由文(分類に応じて出し分け)。 */
33
+ export declare function claudeAccountUsageErrorText(failure: PlanUsageFailure | null): string;
17
34
  /**
18
35
  * account_usage ハンドラを作る。TTL メモを閉包に持つため、テストは独自インスタンスを
19
36
  * 生成して互いに干渉させない(ENGINE_HANDLERS 側は engine プロセス全体で 1 つを共有する)。
@@ -10,14 +10,40 @@
10
10
  // - agent 別 TTL メモを持ち、シートの連打で外部 API を叩かない。TTL 内は前回値を返し、
11
11
  // `fetchedAt` は実際に取得した時刻のまま(最も古い方)を載せる — 表示が「いつの値か」で嘘をつかない。
12
12
  // - 成功だけでなく失敗もキャッシュする(TTL の目的が外部 API の保護なので、失敗連打も止める)。
13
+ import { isPlanUsageFailure } from "../../services/planUsageFetcher.js";
13
14
  /** Claude 側 TTL(ms)。使用量 API は分解能が粗く、2 分で十分新しい。 */
14
15
  export const CLAUDE_ACCOUNT_USAGE_TTL_MS = 120_000;
15
16
  /** Codex 側 TTL(ms)。App Server 経由なので Claude より短くできる。 */
16
17
  export const CODEX_ACCOUNT_USAGE_TTL_MS = 60_000;
18
+ /**
19
+ * Claude が `login_required`(候補ゼロ / 全候補 401)で失敗したときだけ使う短い TTL(ms)。
20
+ * `/login` し直しの直後にシートを更新して復旧を見せるため。通信断(unavailable)や Codex の
21
+ * 失敗は従来 TTL のまま(オフライン中に 15s ごとに候補×5s timeout や App Server 起動試行を
22
+ * 繰り返すと、アプリの RPC timeout 12s に対して応答が遅れる)。
23
+ */
24
+ export const ACCOUNT_USAGE_FAILURE_TTL_MS = 15_000;
17
25
  /** Claude 側の取得失敗時に返す理由文(iOS はこれをそのままカードへ出す)。 */
18
26
  export const CLAUDE_ACCOUNT_USAGE_ERROR = "Claude の使用量を取得できませんでした(OAuth トークン無効またはオフライン)。";
27
+ /**
28
+ * Claude のログインが切れている(候補ゼロ・全候補 401)ときの理由文。
29
+ * 「トークン無効またはオフライン」の二択を利用者に押し付けず、復旧手順(会話で /login)まで示す。
30
+ */
31
+ export const CLAUDE_ACCOUNT_USAGE_LOGIN_REQUIRED = "Claude のログインが切れています。会話で /login を実行してログインし直してください。";
19
32
  /** Codex 側の取得失敗時に返す理由文。 */
20
33
  export const CODEX_ACCOUNT_USAGE_ERROR = "Codex の使用量を取得できませんでした(Codex App Server に接続できません)。";
34
+ /** キャッシュが TTL 内か(`login_required` の失敗エントリだけ短い failureTtlMs で判定する)。 */
35
+ function cacheFresh(entry, nowMs, successTtlMs, failureTtlMs) {
36
+ if (entry === null)
37
+ return false;
38
+ const ttl = entry.value === null && entry.failure === "login_required" ? failureTtlMs : successTtlMs;
39
+ return nowMs - entry.atMs < ttl;
40
+ }
41
+ /** Claude 側の失敗理由文(分類に応じて出し分け)。 */
42
+ export function claudeAccountUsageErrorText(failure) {
43
+ return failure === "login_required"
44
+ ? CLAUDE_ACCOUNT_USAGE_LOGIN_REQUIRED
45
+ : CLAUDE_ACCOUNT_USAGE_ERROR;
46
+ }
21
47
  /**
22
48
  * Claude usage が同じ OAuth token で account 解決を試みた印。
23
49
  * non-enumerable Symbol は JSON に出ず、dropExpiredWindows が加工後のコピーへ明示継承する。
@@ -31,25 +57,33 @@ export function createAccountUsageHandlers(options = {}) {
31
57
  const now = options.now ?? (() => Date.now());
32
58
  const claudeTtlMs = options.claudeTtlMs ?? CLAUDE_ACCOUNT_USAGE_TTL_MS;
33
59
  const codexTtlMs = options.codexTtlMs ?? CODEX_ACCOUNT_USAGE_TTL_MS;
60
+ const failureTtlMs = options.failureTtlMs ?? ACCOUNT_USAGE_FAILURE_TTL_MS;
34
61
  let claudeCache = null;
35
62
  let codexCache = null;
36
63
  async function loadClaude(ctx) {
37
64
  const at = now();
38
- if (claudeCache !== null && at - claudeCache.atMs < claudeTtlMs)
65
+ if (cacheFresh(claudeCache, at, claudeTtlMs, failureTtlMs))
39
66
  return claudeCache;
40
67
  let value = null;
68
+ let failure = null;
41
69
  try {
42
- value = toClaudeAccountUsage(await ctx.planUsage());
70
+ const result = await ctx.planUsage();
71
+ if (isPlanUsageFailure(result)) {
72
+ failure = result.failure;
73
+ }
74
+ else {
75
+ value = toClaudeAccountUsage(result);
76
+ }
43
77
  }
44
78
  catch {
45
79
  value = null;
46
80
  }
47
- claudeCache = { atMs: at, value };
81
+ claudeCache = { atMs: at, value, failure };
48
82
  return claudeCache;
49
83
  }
50
84
  async function loadCodex(ctx) {
51
85
  const at = now();
52
- if (codexCache !== null && at - codexCache.atMs < codexTtlMs)
86
+ if (cacheFresh(codexCache, at, codexTtlMs, failureTtlMs))
53
87
  return codexCache;
54
88
  let value = null;
55
89
  try {
@@ -58,7 +92,7 @@ export function createAccountUsageHandlers(options = {}) {
58
92
  catch {
59
93
  value = null;
60
94
  }
61
- codexCache = { atMs: at, value };
95
+ codexCache = { atMs: at, value, failure: null };
62
96
  return codexCache;
63
97
  }
64
98
  /**
@@ -108,7 +142,7 @@ export function createAccountUsageHandlers(options = {}) {
108
142
  id: message.id,
109
143
  ...(claudeValue !== null
110
144
  ? { claude: claudeValue }
111
- : { claudeError: CLAUDE_ACCOUNT_USAGE_ERROR }),
145
+ : { claudeError: claudeAccountUsageErrorText(claude.failure) }),
112
146
  ...(codexValue !== null
113
147
  ? { codex: codexValue }
114
148
  : { codexError: CODEX_ACCOUNT_USAGE_ERROR }),
@@ -1 +1 @@
1
- {"version":3,"file":"accountUsage.js","sourceRoot":"","sources":["../../../src/engine/handlers/accountUsage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accountUsage.js","sourceRoot":"","sources":["../../../src/engine/handlers/accountUsage.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,8 @@
3
3
  // Codex TUI 番号付きダイアログへの選択返送(pane_choice_send)。
4
4
  import { parsePermissionMode } from "../../shared/permissionMode.js";
5
5
  import { sleep } from "../../shared/sleep.js";
6
- import { engineDiag, writeError } from "../context.js";
6
+ import { loginCodeErrorMessage } from "../../backend/tmux.js";
7
+ import { engineDiag, writeError, } from "../context.js";
7
8
  export const modeHandlers = {
8
9
  mode_get: async (message, ctx) => {
9
10
  const { writer, state, sessionManager } = ctx;
@@ -107,7 +108,47 @@ export const modeHandlers = {
107
108
  });
108
109
  }
109
110
  },
111
+ login_code_send: async (message, ctx) => {
112
+ // 結果確定まで最大 ~10s 待つ(OAuth 交換の待ち)。engine の read loop は handler を直列 await
113
+ // するため、ここで待つと chat_send / interrupt / pane_preview が全部止まる。起動だけして
114
+ // 応答は非同期に write する(writer は直列化済み)。
115
+ void runLoginCodeSend(message, ctx);
116
+ },
110
117
  };
118
+ async function runLoginCodeSend(message, ctx) {
119
+ {
120
+ const { writer, state, sessionManager } = ctx;
121
+ const v = state.negotiatedVersion;
122
+ // `/login` の OAuth コードをコード入力待ちの画面へ渡す(login-code)。通常の chat 注入は
123
+ // 入力欄検証・C-u クリアでコード欄を壊すため、backend の専用経路(literal + Enter)で送る。
124
+ // コードは一度きりの認可コードなので diag ログには長さだけ載せる。
125
+ engineDiag(`login_code_send id=${message.id} session=${message.session} len=${message.code.length}`);
126
+ if (!LOGIN_CODE_PATTERN.test(message.code)) {
127
+ writer.write({
128
+ type: "login_code_send_result", v, id: message.id,
129
+ ok: false, error: "ログインコードの形式が不正です",
130
+ });
131
+ return;
132
+ }
133
+ try {
134
+ await sessionManager.sendLoginCode(message.session, message.code);
135
+ writer.write({ type: "login_code_send_result", v, id: message.id, ok: true, error: null });
136
+ }
137
+ catch (error) {
138
+ // backend の生エラー(tmux の args 等)はコード本文を含みうるので、ログにも応答にも
139
+ // 利用者向け文言だけを載せる。
140
+ const text = loginCodeErrorMessage(error);
141
+ engineDiag(`login_code_send 失敗 id=${message.id}: ${text}`);
142
+ writer.write({ type: "login_code_send_result", v, id: message.id, ok: false, error: text });
143
+ }
144
+ }
145
+ }
146
+ /**
147
+ * login_code_send が受理するコード形式。書式は Claude Code 側の仕様(手動コールバックの
148
+ * `<code>#<state>`)で host が握っていないため文字種を狭めず、literal 送出で危険な
149
+ * 空白・改行・制御文字(ESC 等)だけを落とす(印字可能 ASCII のみ、512 文字以内)。
150
+ */
151
+ const LOGIN_CODE_PATTERN = /^[\x21-\x7e]{1,512}$/;
111
152
  /**
112
153
  * pane_key_send が受理する制御キー(tmux 互換キー名)。テキスト注入経路には使わせない。
113
154
  * Up/Down/Enter は Claude TUI の選択ダイアログ(/remote-control 等)の転写カードから
@@ -1 +1 @@
1
- {"version":3,"file":"mode.js","sourceRoot":"","sources":["../../../src/engine/handlers/mode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mode.js","sourceRoot":"","sources":["../../../src/engine/handlers/mode.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import * as path from "node:path";
6
6
  import { CodexRolloutTailer } from "../../codex/codexRolloutTailer.js";
7
7
  import { aggregateCodexUsage } from "../../codex/codexUsage.js";
8
8
  import { claudeProjectSlug } from "../../shared/paths.js";
9
+ import { isPlanUsageFailure } from "../../services/planUsageFetcher.js";
9
10
  import { aggregateUsage, emptyUsageTotals } from "../../services/usageAggregator.js";
10
11
  import { TranscriptTailer } from "../../chat/transcriptTailer.js";
11
12
  export const usageHandlers = {
@@ -65,7 +66,9 @@ export const usageHandlers = {
65
66
  const currentMeta = ctx.activeChatSession.name === null ? null : metadataStore?.get(ctx.activeChatSession.name) ?? null;
66
67
  const transcript = currentMeta === null ? null : TranscriptTailer.resolveJsonl(path.join(os.homedir(), ".claude", "projects", claudeProjectSlug(currentMeta.cwd)), currentMeta.providerSessionId ?? currentMeta.claudeSessionId ?? null, null);
67
68
  const totals = transcript !== null ? aggregateUsage(transcript) : emptyUsageTotals();
68
- const plan = await ctx.planUsage();
69
+ // 会話スコープの usage_response は plan 系フィールドを省略するだけ(理由文は account_usage が担う)。
70
+ const planResult = await ctx.planUsage();
71
+ const plan = isPlanUsageFailure(planResult) ? null : planResult;
69
72
  try {
70
73
  writer.write({
71
74
  type: "usage_response",
@@ -1 +1 @@
1
- {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../../src/engine/handlers/usage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../../src/engine/handlers/usage.ts"],"names":[],"mappings":"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"}
@@ -19,11 +19,14 @@ export type RemotePendingMessage = {
19
19
  * protocol.ts には載せない。iOS へは転送しない)。
20
20
  * - active: UserPromptSubmit / PreToolUse / PostToolUse(ハートビート)
21
21
  * - done: Stop(応答完了)
22
+ * - event: 発火した hook 名(任意)。Hub は UserPromptSubmit だけをターン開始の権威とし、
23
+ * Pre/PostToolUse は継続(中断直後の遅着は残響として無視)と解釈する。旧 hook は省略。
22
24
  */
23
25
  export type SessionProcessingMessage = {
24
26
  type: "session_processing";
25
27
  session: string;
26
28
  state: "active" | "done";
29
+ event?: string;
27
30
  };
28
31
  /**
29
32
  * hook → engine の AskUserQuestion ライフサイクル通知(host 内部 IPC 専用。ワイヤープロトコル外)。
@@ -74,7 +74,8 @@ function decodeEngineRelayLine(line) {
74
74
  const session = record["session"];
75
75
  const state = record["state"];
76
76
  if (typeof session === "string" && session.length > 0 && (state === "active" || state === "done")) {
77
- return { type: "session_processing", session, state };
77
+ const event = record["event"];
78
+ return { type: "session_processing", session, state, ...(typeof event === "string" ? { event } : {}) };
78
79
  }
79
80
  return null;
80
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engineRelaySocket.js","sourceRoot":"","sources":["../../src/hub/engineRelaySocket.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,4EAA4E;AAE5E,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AA0CvE,KAAK,UAAU,aAAa,CAAC,UAAkB;IAC7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;YACzB,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAI5C;IACC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,4BAA4B,EAAE,CAAC;IACxE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAEtC,IAAI,MAAM,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,GAAG,CAAC,4DAA4D,UAAU,IAAI,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAc,CAAC;IACtC,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,EAAE;QACzC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,GAAG,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YAC7D,IAAI,GAAW,CAAC;YAChB,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACnD,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBAC5B,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;gBAC5C,IAAI,OAAO,KAAK,IAAI;oBAAE,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACnD,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,GAAG,EAAE,CAAC;IAE3B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE;YAC7B,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACvC,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,kDAAkD,UAAU,IAAI,CAAC,CAAC;IAEtE,OAAO;QACL,UAAU;QACV,KAAK,EAAE,GAAG,EAAE,CACV,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC5B,KAAK,MAAM,MAAM,IAAI,OAAO;gBAAE,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;gBAChB,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvC,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;KACL,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY;IACzC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAC9B,qEAAqE;IACrE,cAAc;IACd,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QACxC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,GAA8B,CAAC;YAC9C,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,oBAAoB,EAAE,CAAC;gBAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;gBAClC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC9B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM,CAAC,EAAE,CAAC;oBAClG,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;gBACxD,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,gBAAgB,EAAE,CAAC;gBACxC,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAuB,CAAC;IAC5B,IAAI,CAAC;QACH,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,IAAI,OAAO,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;QACnF,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,SAAS,mBAAmB,CAAC,MAA+B;IAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC3D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC/E,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrE,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,OAAO;QACP,KAAK;QACL,EAAE;QACF,SAAS,EAAE,SAAqC;KACjD,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAA6B,EAC7B,UAAU,GAAW,4BAA4B,EAAE,EACnD,WAAW,GAAG,GAAG;IAEjB,MAAM,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAC3E,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,OAAiC,EACjC,UAAU,GAAW,4BAA4B,EAAE,EACnD,WAAW,GAAG,GAAG;IAEjB,MAAM,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAA6B,EAC7B,UAAU,GAAW,4BAA4B,EAAE,EACnD,WAAW,GAAG,GAAG;IAEjB,MAAM,gBAAgB,CACpB,oBAAoB,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,EACjE,UAAU,EACV,WAAW,CACZ,CAAC;AACJ,CAAC;AAED,oEAAoE;AACpE,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,UAAkB,EAAE,WAAmB;IACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;IAC1C,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;YAClD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACvC,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,MAAM,GAAG,CAAC,EAAW,EAAQ,EAAE;gBACnC,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,CAAC,EAAE,CAAC,CAAC;YACd,CAAC,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;gBAC1B,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,IAAI,IAAI;YAAE,OAAO;QACjB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"engineRelaySocket.js","sourceRoot":"","sources":["../../src/hub/engineRelaySocket.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,8 @@ import { SessionHub } from "./sessionHub.js";
19
19
  import { SessionMetadataStore } from "../sessions/sessionMetadataStore.js";
20
20
  import { abortableSleep } from "../shared/sleep.js";
21
21
  import { resolveHubSocketPath } from "../shared/socketPath.js";
22
- import { processTmuxCommandRunner } from "../backend/tmux.js";
22
+ import { processTmuxCommandRunner, screenInLoginFlow } from "../backend/tmux.js";
23
+ import { screenHasSelectionFooter } from "../backend/herdr.js";
23
24
  import { readPackageVersion } from "../shared/version.js";
24
25
  import { ChatTailController } from "../chat/chatTailController.js";
25
26
  import { TranscriptTailer } from "../chat/transcriptTailer.js";
@@ -374,20 +375,25 @@ export async function runHubCommand(args) {
374
375
  pendingQuestionsPath: defaultPendingQuestionsPath(),
375
376
  chatReceiptsPath: defaultChatReceiptsPath(),
376
377
  log,
377
- tailFactory: (write, onCodexTurnLifecycle) => new ChatTailController({
378
+ tailFactory: (write, onCodexTurnLifecycle, onClaudeTurnLifecycle) => new ChatTailController({
378
379
  writer: controlMessageCallbackWriter(write),
379
380
  tailer: new TranscriptTailer({ tailIndefinitely: true, emitReplayDoneMarker: true }),
380
381
  projectsRoot: path.join(os.homedir(), ".claude", "projects"),
381
382
  imageService,
382
383
  protocolVersion: () => PROTOCOL_MAX_SUPPORTED,
383
384
  onCodexTurnLifecycle,
385
+ onClaudeTurnLifecycle,
384
386
  }),
385
387
  previewPumpFactory: (write, onPermissionMode, pollIntervalMs) => new PanePreviewPump({
386
388
  writer: controlMessageCallbackWriter(write),
387
389
  capture: (session) => sessionBackend.capturePane(session, { lines: 60, joinWrappedLines: true }),
390
+ // プロンプト提案(薄字ゴースト)抽出用の viewport ANSI キャプチャ(prompt-suggestion-chip)。
391
+ captureSuggestion: (session) => sessionBackend.captureVisibleAnsi(session),
388
392
  onPermissionMode,
389
393
  ...(pollIntervalMs !== undefined ? { pollIntervalMs } : {}),
390
394
  log,
395
+ // 静止した入力待ちダイアログ(選択 / /login)は初回フレームから送る(開き直しで転写カードを出す)。
396
+ emitInitialIf: (text) => screenHasSelectionFooter(text) || screenInLoginFlow(text),
391
397
  }),
392
398
  questionInjector: (answers, session) => injectQuestionAnswers(answers, session, sessionBackend),
393
399
  // 本文+送信確定は backend 側の 1 操作に委ねる(herdr は本文+CR 単一コール必須。