tailii-host 0.11.0 → 0.12.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 (59) hide show
  1. package/dist/backend/herdr.d.ts +40 -0
  2. package/dist/backend/herdr.js +97 -26
  3. package/dist/backend/herdr.js.map +1 -1
  4. package/dist/backend/sessionBackend.d.ts +3 -0
  5. package/dist/backend/sessionBackend.js +3 -0
  6. package/dist/backend/sessionBackend.js.map +1 -1
  7. package/dist/backend/tmux.d.ts +31 -4
  8. package/dist/backend/tmux.js +84 -4
  9. package/dist/backend/tmux.js.map +1 -1
  10. package/dist/chat/imageService.d.ts +34 -1
  11. package/dist/chat/imageService.js +136 -22
  12. package/dist/chat/imageService.js.map +1 -1
  13. package/dist/codex/codexAppServer.d.ts +6 -0
  14. package/dist/codex/codexAppServer.js +27 -0
  15. package/dist/codex/codexAppServer.js.map +1 -1
  16. package/dist/codex/codexSessionStore.d.ts +11 -0
  17. package/dist/codex/codexSessionStore.js +51 -8
  18. package/dist/codex/codexSessionStore.js.map +1 -1
  19. package/dist/commands/doctor.d.ts +5 -0
  20. package/dist/commands/doctor.js +59 -0
  21. package/dist/commands/doctor.js.map +1 -1
  22. package/dist/commands/launch.d.ts +14 -0
  23. package/dist/commands/launch.js +81 -23
  24. package/dist/commands/launch.js.map +1 -1
  25. package/dist/commands/setup.js +1 -1
  26. package/dist/commands/setup.js.map +1 -1
  27. package/dist/engine/context.d.ts +5 -0
  28. package/dist/engine/context.js.map +1 -1
  29. package/dist/engine/engine.d.ts +9 -0
  30. package/dist/engine/engine.js +56 -3
  31. package/dist/engine/engine.js.map +1 -1
  32. package/dist/engine/handlers/conversation.js +62 -6
  33. package/dist/engine/handlers/conversation.js.map +1 -1
  34. package/dist/engine/handlers/session.d.ts +6 -1
  35. package/dist/engine/handlers/session.js +52 -44
  36. package/dist/engine/handlers/session.js.map +1 -1
  37. package/dist/hub/hubDaemon.js +11 -3
  38. package/dist/hub/hubDaemon.js.map +1 -1
  39. package/dist/hub/panePreviewPump.d.ts +33 -0
  40. package/dist/hub/panePreviewPump.js +62 -3
  41. package/dist/hub/panePreviewPump.js.map +1 -1
  42. package/dist/hub/sessionHub.d.ts +5 -0
  43. package/dist/hub/sessionHub.js +7 -3
  44. package/dist/hub/sessionHub.js.map +1 -1
  45. package/dist/protocol/decode.d.ts +3 -0
  46. package/dist/protocol/decode.js +27 -1
  47. package/dist/protocol/decode.js.map +1 -1
  48. package/dist/protocol/messages.d.ts +26 -1
  49. package/dist/services/gitService.js +9 -4
  50. package/dist/services/gitService.js.map +1 -1
  51. package/dist/sessions/claudeSessionStore.d.ts +27 -0
  52. package/dist/sessions/claudeSessionStore.js +82 -1
  53. package/dist/sessions/claudeSessionStore.js.map +1 -1
  54. package/dist/sessions/conversationDelete.d.ts +32 -0
  55. package/dist/sessions/conversationDelete.js +168 -0
  56. package/dist/sessions/conversationDelete.js.map +1 -0
  57. package/dist/shared/clientBuild.d.ts +1 -1
  58. package/dist/shared/clientBuild.js +1 -1
  59. package/package.json +3 -3
@@ -92,6 +92,87 @@ export function sipsThumbnailer(sipsPath = "/usr/bin/sips") {
92
92
  };
93
93
  };
94
94
  }
95
+ /**
96
+ * macOS 標準 `sips` による全画面表示用の縮小(既定 resizer, image-fetch-display)。
97
+ * 長辺が `maxPixelSize` を超えるものは縮め、形式は HEIC にする(PNG スクリーンショットで大きく効く)。
98
+ * 長辺が収まっている JPEG / HEIC は原本のままで十分軽いので触らない。GIF はアニメーションが
99
+ * 止まるので触らない。拡大はしない(`-Z` は小さい画像を引き伸ばすため、収まるときは付けない)。
100
+ */
101
+ export function sipsResizer(sipsPath = "/usr/bin/sips", timeoutMs = 15_000) {
102
+ // sips が固まっても応答を返せるよう打ち切る(打ち切りは失敗扱い = 原本へフォールバック)。
103
+ const run = (args) => new Promise((resolve) => {
104
+ execFile(sipsPath, args, { maxBuffer: 4 * 1024 * 1024, timeout: timeoutMs }, (error) => {
105
+ resolve(error ? (typeof error.code === "number" ? error.code : 1) : 0);
106
+ });
107
+ });
108
+ const probe = (imagePath) => new Promise((resolve) => {
109
+ execFile(sipsPath, ["-g", "pixelWidth", "-g", "pixelHeight", imagePath], { timeout: timeoutMs }, (error, stdout) => {
110
+ if (error)
111
+ return resolve(null);
112
+ const width = parseSipsProperty(String(stdout), "pixelWidth");
113
+ const height = parseSipsProperty(String(stdout), "pixelHeight");
114
+ resolve(width !== null && height !== null && width > 0 && height > 0 ? { width, height } : null);
115
+ });
116
+ });
117
+ return async (imagePath, maxPixelSize) => {
118
+ const ext = path.extname(imagePath).slice(1).toLowerCase();
119
+ if (ext === "gif")
120
+ return null;
121
+ const size = await probe(imagePath);
122
+ if (size === null)
123
+ return null;
124
+ const fits = Math.max(size.width, size.height) <= maxPixelSize;
125
+ if (fits && ["jpg", "jpeg", "heic", "heif"].includes(ext))
126
+ return null;
127
+ const tmp = path.join(os.tmpdir(), `tailii-display-${process.pid}-${Math.random().toString(36).slice(2)}.heic`);
128
+ try {
129
+ const args = ["-s", "format", "heic"];
130
+ if (!fits)
131
+ args.push("-Z", String(maxPixelSize));
132
+ args.push(imagePath, "--out", tmp);
133
+ if (await run(args) !== 0)
134
+ return null;
135
+ const data = fs.readFileSync(tmp);
136
+ return data.length > 0 ? { data, mime: "image/heic" } : null;
137
+ }
138
+ catch {
139
+ return null;
140
+ }
141
+ finally {
142
+ try {
143
+ fs.unlinkSync(tmp);
144
+ }
145
+ catch {
146
+ // 一時ファイル掃除の失敗は無視。
147
+ }
148
+ }
149
+ };
150
+ }
151
+ /** 画像バイト列を `image_fetch_response` の seq/eof 分割メッセージ列にする。 */
152
+ function chunkedFetchResponse(id, data, mime) {
153
+ if (data.length === 0) {
154
+ // 空原本でも 1 チャンク(eof:true, data 空)を返す。
155
+ return [{ type: "image_fetch_response", v: PROTOCOL_V1, id, seq: 0, data: "", eof: true, mime }];
156
+ }
157
+ const messages = [];
158
+ let offset = 0;
159
+ let seq = 0;
160
+ while (offset < data.length) {
161
+ const end = Math.min(offset + FETCH_CHUNK_SIZE, data.length);
162
+ messages.push({
163
+ type: "image_fetch_response",
164
+ v: PROTOCOL_V1,
165
+ id,
166
+ seq,
167
+ data: data.subarray(offset, end).toString("base64"),
168
+ eof: end === data.length,
169
+ mime,
170
+ });
171
+ offset = end;
172
+ seq += 1;
173
+ }
174
+ return messages;
175
+ }
95
176
  function parseSipsProperty(stdout, name) {
96
177
  const match = stdout.match(new RegExp(`${name}:\\s*(\\d+)`));
97
178
  if (!match || match[1] === undefined)
@@ -112,6 +193,17 @@ export class ImageService {
112
193
  */
113
194
  thumbnailMemo = new Map();
114
195
  static THUMBNAIL_MEMO_LIMIT = 256;
196
+ resizer;
197
+ /**
198
+ * 全画面表示用の縮小結果のメモ(key = path + mtimeMs + size + maxPixelSize, image-fetch-display)。
199
+ * 開き直しや別端末から同じ画像を開くたびに sips を走らせない。合計バイト数の上限を
200
+ * 超えたら古いものから捨てる(挿入順 = LRU 順)。
201
+ */
202
+ displayMemo = new Map();
203
+ displayMemoBytes = 0;
204
+ /** 縮小中の要求(同じ画像への同時要求で sips を二重に走らせない)。 */
205
+ displayInFlight = new Map();
206
+ static DISPLAY_MEMO_BYTE_LIMIT = 64 * 1024 * 1024;
115
207
  constructor(options = {}) {
116
208
  const home = os.homedir();
117
209
  this.pendingBase = options.pendingBase ?? path.join(home, ".tailii", "images", "pending");
@@ -119,6 +211,7 @@ export class ImageService {
119
211
  // サムネ最大辺(px)。インライン表示は 120pt 枠なので粗めで十分。WebP と併せて転送量を抑える。
120
212
  this.thumbnailMaxPixelSize = options.thumbnailMaxPixelSize ?? 160;
121
213
  this.thumbnailer = options.thumbnailer ?? sipsThumbnailer();
214
+ this.resizer = options.resizer ?? sipsResizer();
122
215
  }
123
216
  /**
124
217
  * pending キューを drain し、各エントリを `image_available` または `error` に変換する。
@@ -140,42 +233,63 @@ export class ImageService {
140
233
  }
141
234
  /**
142
235
  * `id` を index 逆引きし、原本を `image_fetch_response` の seq/eof 分割メッセージ列で返す。
236
+ * `maxPixelSize` があれば全画面表示用に縮めたものを返す(縮めても軽くならなければ原本,
237
+ * image-fetch-display)。
143
238
  * index に無い / 原本消失 / 読み取り不可 → `error(image_not_found)` を単一要素で返す。
144
239
  */
145
- fetch(id) {
240
+ async fetch(id, maxPixelSize) {
146
241
  const p = this.readIndexPath(id);
147
242
  if (p === null)
148
243
  return [notFound(id)];
149
244
  let data;
245
+ let stat;
150
246
  try {
247
+ stat = fs.statSync(p);
151
248
  data = fs.readFileSync(p);
152
249
  }
153
250
  catch {
154
251
  return [notFound(id)];
155
252
  }
156
- const mime = mimeTypeForExtension(path.extname(p).slice(1));
157
- if (data.length === 0) {
158
- // 空原本でも 1 チャンク(eof:true, data 空)を返す。
159
- return [{ type: "image_fetch_response", v: PROTOCOL_V1, id, seq: 0, data: "", eof: true, mime }];
253
+ let mime = mimeTypeForExtension(path.extname(p).slice(1));
254
+ if (maxPixelSize !== undefined && data.length > 0) {
255
+ const resized = await this.displayImage(p, stat, maxPixelSize);
256
+ if (resized !== null && resized.data.length < data.length) {
257
+ data = resized.data;
258
+ mime = resized.mime;
259
+ }
260
+ }
261
+ return chunkedFetchResponse(id, data, mime);
262
+ }
263
+ /** 全画面表示用の縮小結果をメモ経由で得る(image-fetch-display)。 */
264
+ async displayImage(imagePath, stat, maxPixelSize) {
265
+ const key = `${imagePath}\u0000${stat.mtimeMs}\u0000${stat.size}\u0000${maxPixelSize}`;
266
+ const hit = this.displayMemo.get(key);
267
+ if (hit !== undefined) {
268
+ this.displayMemo.delete(key);
269
+ this.displayMemo.set(key, hit);
270
+ return hit;
160
271
  }
161
- const messages = [];
162
- let offset = 0;
163
- let seq = 0;
164
- while (offset < data.length) {
165
- const end = Math.min(offset + FETCH_CHUNK_SIZE, data.length);
166
- messages.push({
167
- type: "image_fetch_response",
168
- v: PROTOCOL_V1,
169
- id,
170
- seq,
171
- data: data.subarray(offset, end).toString("base64"),
172
- eof: end === data.length,
173
- mime,
174
- });
175
- offset = end;
176
- seq += 1;
272
+ const inFlight = this.displayInFlight.get(key);
273
+ if (inFlight !== undefined)
274
+ return inFlight;
275
+ const pending = this.resizer(imagePath, maxPixelSize).catch(() => null);
276
+ this.displayInFlight.set(key, pending);
277
+ const resized = await pending;
278
+ this.displayInFlight.delete(key);
279
+ // 縮めなかった・縮められなかった(sips の失敗・打ち切りを含む)結果は覚えない。一時的な
280
+ // 失敗でその画像がファイルが変わるまで原本で返り続けないようにする(判定は probe 1 回で安い)。
281
+ if (resized === null)
282
+ return null;
283
+ this.displayMemo.set(key, resized);
284
+ this.displayMemoBytes += resized.data.length;
285
+ while (this.displayMemoBytes > ImageService.DISPLAY_MEMO_BYTE_LIMIT && this.displayMemo.size > 1) {
286
+ const oldest = this.displayMemo.keys().next().value;
287
+ if (oldest === undefined)
288
+ break;
289
+ this.displayMemoBytes -= this.displayMemo.get(oldest)?.data.length ?? 0;
290
+ this.displayMemo.delete(oldest);
177
291
  }
178
- return messages;
292
+ return resized;
179
293
  }
180
294
  /**
181
295
  * 指定パスから直接 `image_available` を生成する(pending 非経由・chat 添付用)。
@@ -1 +1 @@
1
- {"version":3,"file":"imageService.js","sourceRoot":"","sources":["../../src/chat/imageService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imageService.js","sourceRoot":"","sources":["../../src/chat/imageService.ts"],"names":[],"mappings":"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"}
@@ -252,6 +252,12 @@ export declare class CodexAppServerManager {
252
252
  * schema上は空文字もstringだが、実App Serverは `thread name must not be empty` で拒否する。
253
253
  */
254
254
  setThreadName(threadId: string, name: string): Promise<void>;
255
+ /**
256
+ * thread を完全に削除する(conversation-delete)。公式 `codex delete` と同じ App Server の
257
+ * `thread/delete`(rollout と状態 DB の両方から消える)。停止中なら起動してから呼ぶ。
258
+ * 既に無い thread は成功扱い(冪等)。
259
+ */
260
+ deleteThread(threadId: string): Promise<void>;
255
261
  /** 現在共有中の App Server から Remote Control 状態を読む。 */
256
262
  remoteControlStatus(): Promise<CodexRemoteControlStatus | null>;
257
263
  /** 現在共有中の App Server 自体で Remote Control を有効化する。 */
@@ -854,6 +854,33 @@ export class CodexAppServerManager {
854
854
  connection.close();
855
855
  }
856
856
  }
857
+ /**
858
+ * thread を完全に削除する(conversation-delete)。公式 `codex delete` と同じ App Server の
859
+ * `thread/delete`(rollout と状態 DB の両方から消える)。停止中なら起動してから呼ぶ。
860
+ * 既に無い thread は成功扱い(冪等)。
861
+ */
862
+ async deleteThread(threadId) {
863
+ const normalizedThreadId = threadId.trim();
864
+ if (normalizedThreadId.length === 0) {
865
+ throw new Error("Codex thread id must not be empty");
866
+ }
867
+ await this.ensureRunning();
868
+ const connection = await this.connect(this.socketPath);
869
+ try {
870
+ await connection.initialize();
871
+ await connection.request("thread/delete", { threadId: normalizedThreadId });
872
+ }
873
+ catch (error) {
874
+ // 既に無い thread(2 度目の削除・別経路で削除済み・存在しない id)は 0.158 実測で
875
+ // `no rollout found for thread id …` が返る。削除の目的は達しているので成功扱い(冪等)。
876
+ if (error instanceof Error && /no rollout found/i.test(error.message))
877
+ return;
878
+ throw error;
879
+ }
880
+ finally {
881
+ connection.close();
882
+ }
883
+ }
857
884
  /** 現在共有中の App Server から Remote Control 状態を読む。 */
858
885
  async remoteControlStatus() {
859
886
  return this.remoteControlRequest("remoteControl/status/read", {}, parseRemoteControlStatus);