tailii-host 0.5.0 → 0.7.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 (123) 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 +60 -6
  4. package/dist/backend/herdr.js +180 -27
  5. package/dist/backend/herdr.js.map +1 -1
  6. package/dist/backend/sessionBackend.d.ts +22 -3
  7. package/dist/backend/sessionBackend.js +11 -2
  8. package/dist/backend/sessionBackend.js.map +1 -1
  9. package/dist/backend/tmux.d.ts +197 -3
  10. package/dist/backend/tmux.js +565 -16
  11. package/dist/backend/tmux.js.map +1 -1
  12. package/dist/chat/chatTailController.d.ts +4 -2
  13. package/dist/chat/chatTailController.js +19 -33
  14. package/dist/chat/chatTailController.js.map +1 -1
  15. package/dist/chat/imageService.d.ts +9 -1
  16. package/dist/chat/imageService.js +39 -0
  17. package/dist/chat/imageService.js.map +1 -1
  18. package/dist/chat/subagentTailer.d.ts +10 -0
  19. package/dist/chat/subagentTailer.js +234 -51
  20. package/dist/chat/subagentTailer.js.map +1 -1
  21. package/dist/chat/subagentTranscript.js +51 -5
  22. package/dist/chat/subagentTranscript.js.map +1 -1
  23. package/dist/chat/transcriptTailer.d.ts +53 -1
  24. package/dist/chat/transcriptTailer.js +313 -2
  25. package/dist/chat/transcriptTailer.js.map +1 -1
  26. package/dist/codex/codexAppServer.d.ts +54 -9
  27. package/dist/codex/codexAppServer.js +495 -76
  28. package/dist/codex/codexAppServer.js.map +1 -1
  29. package/dist/codex/codexNativeTurnController.d.ts +22 -1
  30. package/dist/codex/codexNativeTurnController.js +76 -11
  31. package/dist/codex/codexNativeTurnController.js.map +1 -1
  32. package/dist/codex/codexRolloutTailer.d.ts +3 -0
  33. package/dist/codex/codexRolloutTailer.js +85 -13
  34. package/dist/codex/codexRolloutTailer.js.map +1 -1
  35. package/dist/codex/codexSessionStore.js +54 -16
  36. package/dist/codex/codexSessionStore.js.map +1 -1
  37. package/dist/codex/codexSubagentTracker.d.ts +13 -0
  38. package/dist/codex/codexSubagentTracker.js +55 -1
  39. package/dist/codex/codexSubagentTracker.js.map +1 -1
  40. package/dist/codex/codexSystemNotice.d.ts +18 -0
  41. package/dist/codex/codexSystemNotice.js +212 -0
  42. package/dist/codex/codexSystemNotice.js.map +1 -0
  43. package/dist/commands/launch.js +50 -13
  44. package/dist/commands/launch.js.map +1 -1
  45. package/dist/engine/context.d.ts +32 -1
  46. package/dist/engine/context.js +39 -3
  47. package/dist/engine/context.js.map +1 -1
  48. package/dist/engine/engine.d.ts +5 -1
  49. package/dist/engine/engine.js +87 -4
  50. package/dist/engine/engine.js.map +1 -1
  51. package/dist/engine/handlers/accountUsage.d.ts +17 -0
  52. package/dist/engine/handlers/accountUsage.js +40 -6
  53. package/dist/engine/handlers/accountUsage.js.map +1 -1
  54. package/dist/engine/handlers/codex.js +37 -0
  55. package/dist/engine/handlers/codex.js.map +1 -1
  56. package/dist/engine/handlers/core.js +14 -1
  57. package/dist/engine/handlers/core.js.map +1 -1
  58. package/dist/engine/handlers/mode.js +105 -1
  59. package/dist/engine/handlers/mode.js.map +1 -1
  60. package/dist/engine/handlers/session.js +17 -33
  61. package/dist/engine/handlers/session.js.map +1 -1
  62. package/dist/engine/handlers/usage.js +4 -1
  63. package/dist/engine/handlers/usage.js.map +1 -1
  64. package/dist/engine/handlers/workspace.js +22 -1
  65. package/dist/engine/handlers/workspace.js.map +1 -1
  66. package/dist/hub/effortDialog.d.ts +15 -0
  67. package/dist/hub/effortDialog.js +60 -16
  68. package/dist/hub/effortDialog.js.map +1 -1
  69. package/dist/hub/engineRelaySocket.d.ts +7 -0
  70. package/dist/hub/engineRelaySocket.js +7 -1
  71. package/dist/hub/engineRelaySocket.js.map +1 -1
  72. package/dist/hub/hubDaemon.js +30 -5
  73. package/dist/hub/hubDaemon.js.map +1 -1
  74. package/dist/hub/hubProtocol.d.ts +10 -0
  75. package/dist/hub/hubProtocol.js +19 -2
  76. package/dist/hub/hubProtocol.js.map +1 -1
  77. package/dist/hub/panePreviewPump.d.ts +27 -0
  78. package/dist/hub/panePreviewPump.js +62 -1
  79. package/dist/hub/panePreviewPump.js.map +1 -1
  80. package/dist/hub/sessionHub.d.ts +125 -4
  81. package/dist/hub/sessionHub.js +413 -48
  82. package/dist/hub/sessionHub.js.map +1 -1
  83. package/dist/protocol/decode.js +84 -15
  84. package/dist/protocol/decode.js.map +1 -1
  85. package/dist/protocol/encode.js +2 -0
  86. package/dist/protocol/encode.js.map +1 -1
  87. package/dist/protocol/messages.d.ts +87 -1
  88. package/dist/services/accountIdentity.js +3 -1
  89. package/dist/services/accountIdentity.js.map +1 -1
  90. package/dist/services/fileService.d.ts +15 -0
  91. package/dist/services/fileService.js +176 -14
  92. package/dist/services/fileService.js.map +1 -1
  93. package/dist/services/officialApps.d.ts +21 -1
  94. package/dist/services/officialApps.js +201 -53
  95. package/dist/services/officialApps.js.map +1 -1
  96. package/dist/services/planUsageFetcher.d.ts +35 -3
  97. package/dist/services/planUsageFetcher.js +34 -6
  98. package/dist/services/planUsageFetcher.js.map +1 -1
  99. package/dist/services/previewServer.js +15 -6
  100. package/dist/services/previewServer.js.map +1 -1
  101. package/dist/sessions/claudeSessionStore.js +30 -0
  102. package/dist/sessions/claudeSessionStore.js.map +1 -1
  103. package/dist/sessions/heartbeat.d.ts +7 -1
  104. package/dist/sessions/heartbeat.js +3 -1
  105. package/dist/sessions/heartbeat.js.map +1 -1
  106. package/dist/sessions/sessionSearch.js +23 -5
  107. package/dist/sessions/sessionSearch.js.map +1 -1
  108. package/dist/sessions/transcriptPath.d.ts +3 -0
  109. package/dist/sessions/transcriptPath.js +15 -0
  110. package/dist/sessions/transcriptPath.js.map +1 -0
  111. package/dist/shared/clientBuild.d.ts +26 -0
  112. package/dist/shared/clientBuild.js +89 -0
  113. package/dist/shared/clientBuild.js.map +1 -0
  114. package/dist/shared/crossSession.d.ts +15 -0
  115. package/dist/shared/crossSession.js +75 -0
  116. package/dist/shared/crossSession.js.map +1 -0
  117. package/dist/shared/harnessReminder.d.ts +32 -0
  118. package/dist/shared/harnessReminder.js +124 -0
  119. package/dist/shared/harnessReminder.js.map +1 -0
  120. package/dist/shared/systemNotice.d.ts +30 -0
  121. package/dist/shared/systemNotice.js +209 -0
  122. package/dist/shared/systemNotice.js.map +1 -0
  123. package/package.json +3 -3
@@ -9,11 +9,127 @@ export const FILE_FETCH_CHUNK_SIZE = 64 * 1024;
9
9
  /** file_fetch で配信する原本サイズの上限。iPhone 側の保存先・回線を考え 512 MiB。 */
10
10
  export const FILE_FETCH_SIZE_LIMIT = 512 * 1024 * 1024;
11
11
  const TEXT_PREVIEW_LIMIT = 256 * 1024;
12
+ /** バイナリ判定(NUL バイト探索)に使う先頭バイト数。 */
13
+ const BINARY_SNIFF_BYTES = 8 * 1024;
14
+ /** 不正バイトがこの割合以下ならテキストとして見せる。 */
15
+ const INVALID_BYTE_RATIO_LIMIT = 0.05;
16
+ /** プレビューできないファイルを「上限超過」として返す原本サイズ。 */
12
17
  const NON_IMAGE_SIZE_LIMIT = 5 * 1024 * 1024;
13
18
  const IMAGE_PREVIEW_MAX_PIXEL_SIZE = 1_024;
14
19
  function isAbsolutePath(candidate) {
15
20
  return path.isAbsolute(candidate) && !candidate.startsWith("~");
16
21
  }
22
+ /** file_search の既定件数上限(要求 `limit` はこの値まで)。 */
23
+ export const FILE_SEARCH_LIMIT = 200;
24
+ /** 1 回の検索で辿るエントリ数の上限(巨大ツリーの暴走防止)。超えたら truncated。 */
25
+ const FILE_SEARCH_VISIT_BUDGET = 200_000;
26
+ /** 1 回の検索に使う壁時計の上限。超えたら途中結果を truncated で返す。 */
27
+ const FILE_SEARCH_TIME_BUDGET_MS = 4_000;
28
+ const FILE_SEARCH_QUERY_MAX_BYTES = 256;
29
+ /** 名前検索で降りないディレクトリ(生成物・依存物。内容はまず探さない)。 */
30
+ const FILE_SEARCH_SKIP_DIRS = new Set([
31
+ ".git",
32
+ "node_modules",
33
+ ".build",
34
+ "DerivedData",
35
+ ".cache",
36
+ "__pycache__",
37
+ ".venv",
38
+ "venv",
39
+ "Pods",
40
+ ".gradle",
41
+ "target",
42
+ "dist",
43
+ ]);
44
+ /**
45
+ * 検索起点以下を再帰的に辿り、ファイル/ディレクトリ名(`/` を含む問い合わせは相対パス)の
46
+ * 大文字小文字を無視した部分一致で探す。symlink は辿らない(リンク自体は候補に含める)。
47
+ * 一致は「名前の前方一致 → 名前の部分一致 → 相対パスの部分一致」の順、同順位は相対パス昇順。
48
+ */
49
+ export function fileSearch(root, rawQuery, requestedLimit = FILE_SEARCH_LIMIT, now = Date.now) {
50
+ const query = rawQuery.trim();
51
+ const limit = Math.max(1, Math.min(FILE_SEARCH_LIMIT, Math.floor(requestedLimit)));
52
+ if (!isAbsolutePath(root) ||
53
+ query === "" ||
54
+ Buffer.byteLength(query, "utf8") > FILE_SEARCH_QUERY_MAX_BYTES) {
55
+ return { path: root, query, entries: [], truncated: false };
56
+ }
57
+ const needle = query.toLowerCase();
58
+ const matchesPath = needle.includes("/");
59
+ const candidates = [];
60
+ const stack = [""];
61
+ let visited = 0;
62
+ let truncated = false;
63
+ const startedAt = now();
64
+ while (stack.length > 0) {
65
+ const relativeDir = stack.pop() ?? "";
66
+ const absoluteDir = relativeDir === "" ? root : path.join(root, relativeDir);
67
+ let dirents;
68
+ try {
69
+ dirents = fs.readdirSync(absoluteDir, { withFileTypes: true });
70
+ }
71
+ catch {
72
+ continue;
73
+ }
74
+ for (const dirent of dirents) {
75
+ visited += 1;
76
+ if (visited > FILE_SEARCH_VISIT_BUDGET || now() - startedAt > FILE_SEARCH_TIME_BUDGET_MS) {
77
+ truncated = true;
78
+ stack.length = 0;
79
+ break;
80
+ }
81
+ const name = dirent.name;
82
+ const relative = relativeDir === "" ? name : `${relativeDir}/${name}`;
83
+ const kind = dirent.isSymbolicLink()
84
+ ? "symlink"
85
+ : dirent.isDirectory()
86
+ ? "dir"
87
+ : "file";
88
+ const lowerName = name.toLowerCase();
89
+ let rank = -1;
90
+ if (matchesPath) {
91
+ if (relative.toLowerCase().includes(needle))
92
+ rank = 2;
93
+ }
94
+ else if (lowerName.startsWith(needle)) {
95
+ rank = 0;
96
+ }
97
+ else if (lowerName.includes(needle)) {
98
+ rank = 1;
99
+ }
100
+ if (rank >= 0) {
101
+ candidates.push({ relative, name, kind, absolute: path.join(root, relative), rank });
102
+ }
103
+ if (kind === "dir" && !FILE_SEARCH_SKIP_DIRS.has(name))
104
+ stack.push(relative);
105
+ }
106
+ }
107
+ candidates.sort((lhs, rhs) => {
108
+ if (lhs.rank !== rhs.rank)
109
+ return lhs.rank - rhs.rank;
110
+ return lhs.relative < rhs.relative ? -1 : lhs.relative > rhs.relative ? 1 : 0;
111
+ });
112
+ const entries = [];
113
+ for (const candidate of candidates.slice(0, limit)) {
114
+ let size = 0;
115
+ let mtimeMs = 0;
116
+ try {
117
+ const stat = fs.lstatSync(candidate.absolute);
118
+ size = candidate.kind === "dir" ? 0 : stat.size;
119
+ mtimeMs = Math.round(stat.mtimeMs);
120
+ }
121
+ catch {
122
+ // 列挙後に消えたエントリは stat 無しで返す。
123
+ }
124
+ entries.push({ name: candidate.relative, kind: candidate.kind, size, mtimeMs });
125
+ }
126
+ return {
127
+ path: root,
128
+ query,
129
+ entries,
130
+ truncated: truncated || candidates.length > limit,
131
+ };
132
+ }
17
133
  /** ディレクトリを列挙する。不正パス・読取不能は空一覧で返す。 */
18
134
  export function fileList(directoryPath) {
19
135
  if (!isAbsolutePath(directoryPath)) {
@@ -90,16 +206,14 @@ export async function fileRead(filePath, thumbnailer = sipsThumbnailer()) {
90
206
  return { ...common, kind: "error", error: String(error) };
91
207
  }
92
208
  }
93
- if (stat.size > NON_IMAGE_SIZE_LIMIT)
94
- return { ...common, kind: "tooLarge" };
95
- let content;
209
+ let head;
96
210
  try {
97
211
  const descriptor = fs.openSync(filePath, "r");
98
212
  try {
99
213
  const length = Math.min(stat.size, TEXT_PREVIEW_LIMIT);
100
- content = Buffer.alloc(length);
101
- const bytesRead = fs.readSync(descriptor, content, 0, length, 0);
102
- content = content.subarray(0, bytesRead);
214
+ head = Buffer.alloc(length);
215
+ const bytesRead = fs.readSync(descriptor, head, 0, length, 0);
216
+ head = head.subarray(0, bytesRead);
103
217
  }
104
218
  finally {
105
219
  fs.closeSync(descriptor);
@@ -108,18 +222,66 @@ export async function fileRead(filePath, thumbnailer = sipsThumbnailer()) {
108
222
  catch (error) {
109
223
  return { ...common, kind: "error", error: String(error) };
110
224
  }
225
+ // 先頭 256 KiB を読んだだけなので、末尾で多バイト文字が割れていることがある。
226
+ // 割れたぶんを落としてから判定しないと、巨大なテキストが binary へ落ちる。
227
+ const truncated = stat.size > head.length;
228
+ const content = truncated ? trimIncompleteUtf8Tail(head) : head;
229
+ const text = decodeTextPreview(content);
230
+ if (text !== null) {
231
+ return { ...common, kind: "text", content: text, truncated: stat.size > content.length };
232
+ }
233
+ if (stat.size > NON_IMAGE_SIZE_LIMIT)
234
+ return { ...common, kind: "tooLarge" };
235
+ return { ...common, kind: "binary" };
236
+ }
237
+ /**
238
+ * テキストとして表示できるなら文字列を、バイナリと判断したら null を返す。
239
+ *
240
+ * - NUL バイトを含むものはバイナリ扱い(実行ファイル・画像・アーカイブ)。
241
+ * - UTF-8 として妥当ならそのまま。妥当でなくても不正バイトが僅かなら、
242
+ * 置換文字を混ぜたテキストとして見せる(ログの文字化け 1 行でプレビュー全滅にしない)。
243
+ */
244
+ function decodeTextPreview(content) {
245
+ if (content.length === 0)
246
+ return "";
247
+ if (content.subarray(0, BINARY_SNIFF_BYTES).includes(0))
248
+ return null;
111
249
  try {
112
- const text = new TextDecoder("utf-8", { fatal: true }).decode(content);
113
- return {
114
- ...common,
115
- kind: "text",
116
- content: text,
117
- truncated: stat.size > content.length,
118
- };
250
+ return new TextDecoder("utf-8", { fatal: true }).decode(content);
119
251
  }
120
252
  catch {
121
- return { ...common, kind: "binary" };
253
+ // 継続
254
+ }
255
+ const lossy = new TextDecoder("utf-8").decode(content);
256
+ let replacements = 0;
257
+ for (const character of lossy) {
258
+ if (character === "\uFFFD")
259
+ replacements += 1;
260
+ }
261
+ if (lossy.length === 0)
262
+ return null;
263
+ return replacements / lossy.length <= INVALID_BYTE_RATIO_LIMIT ? lossy : null;
264
+ }
265
+ /** 末尾で割れた UTF-8 シーケンスを落とす。 */
266
+ function trimIncompleteUtf8Tail(buffer) {
267
+ for (let back = 1; back <= 4 && back <= buffer.length; back += 1) {
268
+ const byte = buffer[buffer.length - back];
269
+ if ((byte & 0b1100_0000) === 0b1000_0000)
270
+ continue; // 継続バイト
271
+ const expected = byte < 0x80
272
+ ? 1
273
+ : (byte & 0b1110_0000) === 0b1100_0000
274
+ ? 2
275
+ : (byte & 0b1111_0000) === 0b1110_0000
276
+ ? 3
277
+ : (byte & 0b1111_1000) === 0b1111_0000
278
+ ? 4
279
+ : 0;
280
+ if (expected === 0 || expected <= back)
281
+ return buffer; // 不正な先頭バイト or 完結済み
282
+ return buffer.subarray(0, buffer.length - back);
122
283
  }
284
+ return buffer;
123
285
  }
124
286
  function fileError(filePath, error) {
125
287
  return { path: filePath, kind: "error", size: 0, mtimeMs: 0, error };
@@ -1 +1 @@
1
- {"version":3,"file":"fileService.js","sourceRoot":"","sources":["../../src/services/fileService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fileService.js","sourceRoot":"","sources":["../../src/services/fileService.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,10 @@ export interface OfficialAppRuntimeContext {
26
26
  sessionManager: SessionBackend;
27
27
  /** Hub の処理中/設問状態をまとめた入力安全性。active URL の open 自体は busy 中も許可する。 */
28
28
  canInjectClaudeCommand: boolean;
29
- /** daemon 再起動で他会話の turn を切らないため、全 Codex turn が idle のときだけ true。 */
29
+ /**
30
+ * daemon 再起動で他会話の turn を切らないため、全 Codex turn が idle のときだけ true。
31
+ * 接続済み(status=connected)の pairing 発行は daemon を変更しないので、false でも open/repair は通す。
32
+ */
30
33
  canMutateCodexDaemon: boolean;
31
34
  /**
32
35
  * この会話の Claude transcript(`~/.claude/projects/<slug>/<uuid>.jsonl`)。
@@ -84,6 +87,7 @@ export declare class OfficialAppsService {
84
87
  private readonly diagnosticLogPath;
85
88
  private readonly codexRemoteControl;
86
89
  private readonly unverifiedVersionLogged;
90
+ private unknownAuthKeysLogged;
87
91
  constructor(options?: OfficialAppsOptions);
88
92
  /** 障害調査用の常時ログ。失敗時にどの分岐で落ちたかを事後特定できるようにする。 */
89
93
  private diag;
@@ -119,6 +123,12 @@ export declare function statusBarShowsRemoteControl(text: string): boolean;
119
123
  * 本文引用対策として末尾 3 行だけを見る。
120
124
  */
121
125
  export declare function statusBarShowsProcessing(text: string): boolean;
126
+ /**
127
+ * pane 最下部にステータスバー自体が見えているか。AskUserQuestion・承認・選択ダイアログの
128
+ * 表示中はバーがフッター(`Enter to select · … · Esc to cancel`)に置き換わり、`/rc` 点灯の
129
+ * 有無を pane からは判定できない(実測 2.1.263)。false のときは transcript を権威にする。
130
+ */
131
+ export declare function statusBarVisible(text: string): boolean;
122
132
  export interface TranscriptRemoteControlEntry {
123
133
  url: string;
124
134
  atMs: number | null;
@@ -130,6 +140,8 @@ export interface TranscriptRemoteControlEntry {
130
140
  */
131
141
  export declare function transcriptHasRemoteControlCommandSince(transcriptPath: string | null, sinceMs: number): boolean;
132
142
  export declare function lastTranscriptRemoteControlEntry(transcriptPath: string | null): TranscriptRemoteControlEntry | null;
143
+ /** `bridge-session` 行の `bridgeSessionId`(`cse_<id>`)を公式 URL(`session_<id>`)へ写す。 */
144
+ export declare function bridgeSessionUrl(bridgeSessionId: string): string | null;
133
145
  /**
134
146
  * pane から activation バナーの URL を拾う最終フォールバック。行頭(trim 後)が
135
147
  * activation 文言で始まる行だけを banner とみなし、同一行 or 直後行の URL を採る。
@@ -139,6 +151,14 @@ export declare function extractBannerClaudeUrl(text: string): string | null;
139
151
  export declare function extractClaudeRemoteDialogUrl(text: string): string | null;
140
152
  export declare function validClaudeUrl(value: string): boolean;
141
153
  export declare function classifyClaudeFailure(text: string): string | null;
154
+ interface ClaudeAuth {
155
+ loggedIn: boolean;
156
+ authMethod: string;
157
+ apiProvider: string;
158
+ }
159
+ export declare function parseClaudeAuth(text: string): ClaudeAuth | null;
160
+ /** 判定に関与しない未知キー(drift ログ用)。 */
161
+ export declare function unknownClaudeAuthKeys(text: string): string[];
142
162
  type CodexConnectionStatus = "connected" | "connecting";
143
163
  export declare function parseCodexStart(text: string): CodexConnectionStatus | null;
144
164
  interface CodexPairing {