tailii-host 0.7.1 → 0.8.1

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 (58) hide show
  1. package/dist/chat/subagentTranscript.d.ts +7 -0
  2. package/dist/chat/subagentTranscript.js +65 -5
  3. package/dist/chat/subagentTranscript.js.map +1 -1
  4. package/dist/chat/transcriptTailer.d.ts +18 -0
  5. package/dist/chat/transcriptTailer.js +168 -8
  6. package/dist/chat/transcriptTailer.js.map +1 -1
  7. package/dist/commands/launch.d.ts +58 -1
  8. package/dist/commands/launch.js +161 -4
  9. package/dist/commands/launch.js.map +1 -1
  10. package/dist/engine/handlers/claudeModels.js +5 -1
  11. package/dist/engine/handlers/claudeModels.js.map +1 -1
  12. package/dist/engine/handlers/conversation.js +38 -0
  13. package/dist/engine/handlers/conversation.js.map +1 -1
  14. package/dist/engine/handlers/mode.js +9 -1
  15. package/dist/engine/handlers/mode.js.map +1 -1
  16. package/dist/engine/handlers/session.js +11 -2
  17. package/dist/engine/handlers/session.js.map +1 -1
  18. package/dist/hub/hubDaemon.js +8 -2
  19. package/dist/hub/hubDaemon.js.map +1 -1
  20. package/dist/hub/panePreviewPump.d.ts +8 -0
  21. package/dist/hub/panePreviewPump.js +15 -0
  22. package/dist/hub/panePreviewPump.js.map +1 -1
  23. package/dist/hub/sessionHub.d.ts +35 -1
  24. package/dist/hub/sessionHub.js +145 -4
  25. package/dist/hub/sessionHub.js.map +1 -1
  26. package/dist/protocol/decode.d.ts +4 -0
  27. package/dist/protocol/decode.js +50 -2
  28. package/dist/protocol/decode.js.map +1 -1
  29. package/dist/protocol/encode.js +2 -0
  30. package/dist/protocol/encode.js.map +1 -1
  31. package/dist/protocol/messages.d.ts +39 -0
  32. package/dist/push/approvalPushNotifier.d.ts +19 -0
  33. package/dist/push/approvalPushNotifier.js +26 -2
  34. package/dist/push/approvalPushNotifier.js.map +1 -1
  35. package/dist/push/pushTypes.d.ts +4 -1
  36. package/dist/push/pushTypes.js +4 -2
  37. package/dist/push/pushTypes.js.map +1 -1
  38. package/dist/services/claudeModelCatalog.d.ts +14 -0
  39. package/dist/services/claudeModelCatalog.js +47 -0
  40. package/dist/services/claudeModelCatalog.js.map +1 -1
  41. package/dist/services/peerSessions.d.ts +36 -0
  42. package/dist/services/peerSessions.js +114 -0
  43. package/dist/services/peerSessions.js.map +1 -0
  44. package/dist/sessions/claudeSessionStore.js +4 -2
  45. package/dist/sessions/claudeSessionStore.js.map +1 -1
  46. package/dist/sessions/sessionSearch.js +6 -4
  47. package/dist/sessions/sessionSearch.js.map +1 -1
  48. package/dist/shared/clientBuild.d.ts +1 -1
  49. package/dist/shared/clientBuild.js +1 -1
  50. package/dist/shared/crossSession.d.ts +20 -6
  51. package/dist/shared/crossSession.js +185 -34
  52. package/dist/shared/crossSession.js.map +1 -1
  53. package/dist/shared/systemNotice.js +9 -0
  54. package/dist/shared/systemNotice.js.map +1 -1
  55. package/dist/shared/usageLimitWait.d.ts +18 -0
  56. package/dist/shared/usageLimitWait.js +72 -0
  57. package/dist/shared/usageLimitWait.js.map +1 -0
  58. package/package.json +3 -3
@@ -12,6 +12,13 @@ export declare function readCodexSubagentTranscript(file: string | null): Subage
12
12
  * 先頭切り捨て時は omitted=1 で「省略あり」を明示する(行数は数えない)。
13
13
  */
14
14
  export declare function readBackgroundOutput(file: string | null): SubagentTranscriptResult;
15
+ /**
16
+ * fork サブエージェント(Claude Code 2.1.232〜, fork mode 既定 ON)の user 行から、harness の定型
17
+ * 指示 `<fork-boilerplate>…</fork-boilerplate>` を外して指示本文だけを返す(TESTABLE, fork-subagent)。
18
+ * 実測 2026-09-14 の形: boilerplate ブロック + 空行 + `Your directive: <本文>`。
19
+ * boilerplate を含まない本文は null(通常の user 行)。
20
+ */
21
+ export declare function presentForkDirective(raw: string): string | null;
15
22
  export declare function parseSubagentTranscript(jsonl: string): SubagentTranscriptResult;
16
23
  /**
17
24
  * fork された Codex rollout には親の履歴も複製される。親→子の agent_message を境界にし、
@@ -3,10 +3,12 @@
3
3
  import * as fs from "node:fs";
4
4
  import { rolloutPatchApplyActivities, rolloutResponseItemToolActivities, } from "../codex/codexToolActivity.js";
5
5
  import { stripInjectedReminderBlocks, stripReminderTagBlocks } from "../shared/harnessReminder.js";
6
- import { crossSessionSenderLabel, presentCrossSessionMessage } from "../shared/crossSession.js";
6
+ import { crossSessionOriginHint, crossSessionSenderLabel, presentCrossSessionMessage } from "../shared/crossSession.js";
7
7
  const MAX_ENTRIES = 200;
8
8
  const MAX_TOOL_TEXT = 1_000;
9
9
  const MAX_TOOL_INPUT = 300;
10
+ /** サブエージェント自身の最終レポート送信(SubagentHandback ツール)を全文で載せるときの見出し。 */
11
+ const SUBAGENT_HANDBACK_REPORT_HEADING = "📨 最終レポート(親セッションへの hand-back)";
10
12
  /** 読めないファイルは空応答にする(要求元を待たせない)。 */
11
13
  export function readSubagentTranscript(file) {
12
14
  if (file === null)
@@ -61,8 +63,28 @@ export function readBackgroundOutput(file) {
61
63
  omitted: clamped ? 1 : 0,
62
64
  };
63
65
  }
66
+ /**
67
+ * fork サブエージェント(Claude Code 2.1.232〜, fork mode 既定 ON)の user 行から、harness の定型
68
+ * 指示 `<fork-boilerplate>…</fork-boilerplate>` を外して指示本文だけを返す(TESTABLE, fork-subagent)。
69
+ * 実測 2026-09-14 の形: boilerplate ブロック + 空行 + `Your directive: <本文>`。
70
+ * boilerplate を含まない本文は null(通常の user 行)。
71
+ */
72
+ export function presentForkDirective(raw) {
73
+ const open = raw.indexOf("<fork-boilerplate>");
74
+ if (open < 0)
75
+ return null;
76
+ const closeTag = "</fork-boilerplate>";
77
+ const close = raw.indexOf(closeTag, open);
78
+ const rest = (close < 0 ? "" : raw.slice(close + closeTag.length)).trim();
79
+ const directive = rest.replace(/^Your directive:\s*/u, "").trim();
80
+ return directive.length > 0 ? `⑂ 分岐(fork)への指示\n\n${directive}` : "⑂ 分岐(fork)への指示";
81
+ }
64
82
  export function parseSubagentTranscript(jsonl) {
65
83
  const all = [];
84
+ // fork の transcript は親履歴を複製せず、先頭に参照レコード `fork-context-ref` を置き、その直後に
85
+ // 親が fork を起こした Agent tool_use の写しが 1 行入る(実測 2026-09-14)。写しは fork 自身の
86
+ // 行動ではないのでタイムラインから外す。
87
+ let forkSpawnCopyPending = false;
66
88
  for (const line of jsonl.split(/\r?\n/)) {
67
89
  if (!line)
68
90
  continue;
@@ -76,12 +98,21 @@ export function parseSubagentTranscript(jsonl) {
76
98
  if (typeof value !== "object" || value === null || Array.isArray(value))
77
99
  continue;
78
100
  const record = value;
101
+ if (record["type"] === "fork-context-ref") {
102
+ forkSpawnCopyPending = true;
103
+ continue;
104
+ }
79
105
  const ts = parseTimestamp(record["timestamp"]);
80
106
  const message = object(record["message"]);
81
107
  const role = message?.["role"] ?? record["type"];
82
108
  if (role !== "user" && role !== "assistant")
83
109
  continue;
84
110
  const content = message?.["content"] ?? record["content"];
111
+ if (forkSpawnCopyPending) {
112
+ forkSpawnCopyPending = false;
113
+ if (role === "assistant" && isAgentSpawnOnlyContent(content))
114
+ continue;
115
+ }
85
116
  // harness 注入の <system-reminder>(user 行のリマインダ / assistant text 末尾の背景通知)は
86
117
  // 表示せず、user 行で届く通知封筒はコンパクトな 1 行に畳む。除去で空になった text は行にしない。
87
118
  const present = (raw) => {
@@ -93,12 +124,22 @@ export function parseSubagentTranscript(jsonl) {
93
124
  const status = /<status>([^<]*)<\/status>/u.exec(raw)?.[1]?.trim() ?? "";
94
125
  return status === "" ? "⚙️ バックグラウンドタスク通知" : `⚙️ バックグラウンドタスク通知(${status})`;
95
126
  }
96
- // 別セッションからのメッセージ封筒(<cross-session-message>)は、封筒と harness の
97
- // 前置き/後置きを外して「⇄ 送信元名 より」+ 本文へ転写する(規則は shared/crossSession.ts)。
127
+ // fork の定型指示(<fork-boilerplate>)は harness の注入。指示本文だけを見せる。
128
+ if (role === "user") {
129
+ const directive = presentForkDirective(raw);
130
+ if (directive !== null)
131
+ return directive;
132
+ }
133
+ // 別セッション / 別エージェントからのメッセージ封筒(<cross-session-message> / <agent-message>)
134
+ // は、封筒と harness の前置き/後置きを外して「⇄ 送信元名 より」+ 本文へ転写する(規則は
135
+ // shared/crossSession.ts)。委任したサブエージェント(この会話から見た孫)の完了報告
136
+ // (hand-back)は「⇄ サブエージェントの報告」+ レポート全文(hand-back 判定の権威は行の
137
+ // origin.handback、無ければ本文の形)。
98
138
  if (role === "user") {
99
- const peer = presentCrossSessionMessage(raw);
139
+ const peer = presentCrossSessionMessage(raw, crossSessionOriginHint(record));
100
140
  if (peer !== null) {
101
- const label = `⇄ ${crossSessionSenderLabel(peer)} より`;
141
+ // ラベル本体は shared 側(hand-back は固定見出し)。ピアだけ「〜 より」を付ける。
142
+ const label = `⇄ ${crossSessionSenderLabel(peer)}${peer.kind === "handback" ? "" : " より"}`;
102
143
  return peer.body === "" ? label : `${label}\n\n${peer.body}`;
103
144
  }
104
145
  }
@@ -123,6 +164,16 @@ export function parseSubagentTranscript(jsonl) {
123
164
  all.push(entry(role, text, ts));
124
165
  }
125
166
  if (block["type"] === "tool_use" && typeof block["name"] === "string") {
167
+ // サブエージェント自身の最終レポート送信(SubagentHandback)は input.message がレポート全文。
168
+ // 親会話面と同じ本文をここでも読めるよう、ツール入力の 300 文字スニペット(空白畳み)には
169
+ // 潰さず、見出し付きの assistant 行として全文を載せる。
170
+ const handback = role === "assistant" && block["name"] === "SubagentHandback"
171
+ ? object(block["input"])?.["message"]
172
+ : undefined;
173
+ if (typeof handback === "string" && handback.trim()) {
174
+ all.push(entry("assistant", `${SUBAGENT_HANDBACK_REPORT_HEADING}\n\n${handback.trim()}`, ts));
175
+ continue;
176
+ }
126
177
  const input = snippet(block["input"], MAX_TOOL_INPUT);
127
178
  all.push(entry("tool", input ? `${block["name"]}: ${input}` : block["name"], ts, "tool_use"));
128
179
  }
@@ -316,4 +367,13 @@ function snippet(value, cap) {
316
367
  function truncate(value, cap) {
317
368
  return value.length <= cap ? value : `${value.slice(0, cap)}…`;
318
369
  }
370
+ /** content が「Agent ツール呼び出しのみ」か(fork 先頭の spawn 写し判定)。 */
371
+ function isAgentSpawnOnlyContent(content) {
372
+ if (!Array.isArray(content) || content.length === 0)
373
+ return false;
374
+ return content.every((block) => {
375
+ const rec = object(block);
376
+ return rec !== null && rec["type"] === "tool_use" && rec["name"] === "Agent";
377
+ });
378
+ }
319
379
  //# sourceMappingURL=subagentTranscript.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subagentTranscript.js","sourceRoot":"","sources":["../../src/chat/subagentTranscript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subagentTranscript.js","sourceRoot":"","sources":["../../src/chat/subagentTranscript.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,11 @@ export declare const CONTEXT_STREAM_ID = "pc:context";
13
13
  * しか持たなかったので、これを権威として同期する。
14
14
  */
15
15
  export declare const EFFORT_STREAM_ID = "pc:effort";
16
+ /**
17
+ * API エラー終端行ならそのエラー種別(トップレベル `error` 文字列。無ければ "")を、そうでなければ
18
+ * null を返す。実測: 使用量制限は `error: "rate_limit"`(usage-limit-wait の武装に使う)。
19
+ */
20
+ export declare function apiErrorAssistantKind(text: string): string | null;
16
21
  /**
17
22
  * transcript 末尾を読み、最後のターン記録が「ターン終端マーカー」ならその行の timestamp(ms) を
18
23
  * 返す。終端マーカー = 利用者の中断確定(user 行)/ API エラー終端(`isApiErrorMessage` の
@@ -58,6 +63,12 @@ export interface ClaudeTurnLifecycleEvent {
58
63
  * 処理中状態を直接は動かさない(権威は hook)。
59
64
  */
60
65
  kind: "interrupted" | "api_error" | "turn_start";
66
+ /**
67
+ * `api_error` のエラー種別(合成 assistant 行の `error`。実測: `rate_limit` = 使用量制限 429 /
68
+ * `server_error` 529 / `authentication_failed` 403)。hub は `rate_limit` のとき、Claude Code の
69
+ * 自動再開待ち(usage-limit-wait)を pane から見張り push で知らせる。不明は省略。
70
+ */
71
+ errorKind?: string | null;
61
72
  /** transcript 行の timestamp(Unix ms)。履歴再生で流れる過去ターンのマーカーを除外する根拠。 */
62
73
  atMs: number;
63
74
  }
@@ -91,6 +102,13 @@ interface Turn {
91
102
  toolUseId: string;
92
103
  text: string;
93
104
  };
105
+ /** user 行の `isMeta`(harness 注入のプロンプト。制限リセット後の自動再開プロンプト判定に使う)。 */
106
+ isMeta?: boolean;
107
+ /** Artifact ツールの tool_result から拾った公開 URL(該当ツールカードへ後付けする, artifact-card)。 */
108
+ artifactResults?: {
109
+ toolUseId: string;
110
+ url: string;
111
+ }[];
94
112
  }
95
113
  /** claude セッショントランスクリプト(JSONL)の tail 実装。 */
96
114
  export declare class TranscriptTailer {
@@ -48,20 +48,49 @@ function isClaudeInterruptMarker(text) {
48
48
  * 空白の書式には依存させない — 書式変更で判定が無言で失効しないように)。
49
49
  */
50
50
  function isApiErrorAssistantLine(text) {
51
+ return apiErrorAssistantKind(text) !== null;
52
+ }
53
+ /**
54
+ * API エラー終端行ならそのエラー種別(トップレベル `error` 文字列。無ければ "")を、そうでなければ
55
+ * null を返す。実測: 使用量制限は `error: "rate_limit"`(usage-limit-wait の武装に使う)。
56
+ */
57
+ export function apiErrorAssistantKind(text) {
51
58
  // 引用符込みでキー名を探す(本文中に同名文字列を含む巨大 tool_result 行で parse を走らせない)。
52
59
  if (!text.includes('"isApiErrorMessage"'))
53
- return false;
60
+ return null;
54
61
  try {
55
62
  const parsed = JSON.parse(text);
56
63
  if (typeof parsed !== "object" || parsed === null)
57
- return false;
64
+ return null;
58
65
  const record = parsed;
59
- return record["type"] === "assistant" && record["isApiErrorMessage"] === true;
66
+ if (record["type"] !== "assistant" || record["isApiErrorMessage"] !== true)
67
+ return null;
68
+ return typeof record["error"] === "string" ? record["error"] : "";
60
69
  }
61
70
  catch {
62
- return false;
71
+ return null;
63
72
  }
64
73
  }
74
+ /**
75
+ * 制限リセット後の自動再開プロンプト(isMeta の user 行)を利用者向けの注記へ。cross-session の
76
+ * 起こし(`Another Claude session sent a message:` / 封筒)は自動再開ではないので対象外。
77
+ */
78
+ const AUTO_CONTINUE_NOTICE = "⏱️ 使用量制限がリセットされ、Claude Code が作業を自動再開しました";
79
+ /** 制限到達から自動再開プロンプトを待つ時間窓(週次制限のリセットでも一晩は待つ)。 */
80
+ const AUTO_CONTINUE_WINDOW_MS = 12 * 60 * 60 * 1000;
81
+ /**
82
+ * isMeta の user 行のうち、自動再開プロンプトではないと分かる harness 由来の形(cross-session の起こし /
83
+ * idle 通知 / 停止境界の注入 / バックグラウンド通知封筒)。これらは畳まず従来どおり present() に委ねる。
84
+ */
85
+ function looksLikeOtherHarnessPrompt(text) {
86
+ const trimmed = text.trimStart();
87
+ return (trimmed.includes("<cross-session-message") ||
88
+ trimmed.includes("<agent-message") ||
89
+ trimmed.startsWith("Another Claude session sent a message") ||
90
+ trimmed.startsWith("[Cross-session") ||
91
+ trimmed.startsWith("<system-reminder>") ||
92
+ trimmed.includes("<task-notification>"));
93
+ }
65
94
  /**
66
95
  * transcript 末尾を読み、最後のターン記録が「ターン終端マーカー」ならその行の timestamp(ms) を
67
96
  * 返す。終端マーカー = 利用者の中断確定(user 行)/ API エラー終端(`isApiErrorMessage` の
@@ -303,6 +332,10 @@ export class TranscriptTailer {
303
332
  noticeCtx: createSystemNoticeContext(),
304
333
  activeQuestionIds: new Set(),
305
334
  pendingSkillActivities: new Map(),
335
+ pendingArtifactActivities: new Map(),
336
+ rateLimitArmed: false,
337
+ rateLimitArmedAtMs: null,
338
+ live: false,
306
339
  onLifecycle: this.lifecycleObserver,
307
340
  };
308
341
  const start = Date.now();
@@ -317,6 +350,7 @@ export class TranscriptTailer {
317
350
  bytesRead = 0;
318
351
  }
319
352
  if (bytesRead === 0) {
353
+ state.live = true;
320
354
  // 初回 EOF = 既存内容の再生完了。マーカー有効時は完了シグナルを 1 通流す。
321
355
  if (this.emitReplayDoneMarker && !announcedReplayDone) {
322
356
  announcedReplayDone = true;
@@ -488,14 +522,43 @@ function* emitLine(line, state) {
488
522
  // 実機 2026-09-07: 「You've hit your session limit」で止まった会話が hub では処理中のまま残り、
489
523
  // 停止ボタン点灯・背景購読の継続(開き直しても履歴再生が走らず host 経路が配線されない)・
490
524
  // reaper の計時停止を招いていた。
491
- if (state.onLifecycle !== null && isApiErrorAssistantLine(text)) {
492
- const atMs = lineTimestampMs(line);
493
- if (Number.isFinite(atMs))
494
- state.onLifecycle({ kind: "api_error", atMs });
525
+ const apiErrorKind = apiErrorAssistantKind(text);
526
+ if (apiErrorKind !== null) {
527
+ // 使用量制限(rate_limit)の後は、Claude Code が自動再開で流す isMeta の発話を注記へ畳む。
528
+ state.rateLimitArmed = apiErrorKind === "rate_limit";
529
+ const errorAtMs = lineTimestampMs(line);
530
+ state.rateLimitArmedAtMs = state.rateLimitArmed && Number.isFinite(errorAtMs) ? errorAtMs : null;
531
+ if (state.onLifecycle !== null && Number.isFinite(errorAtMs)) {
532
+ state.onLifecycle({ kind: "api_error", atMs: errorAtMs, errorKind: apiErrorKind });
533
+ }
495
534
  }
496
535
  const turn = extractTurn(text, state.noticeCtx);
497
536
  if (turn === null)
498
537
  return;
538
+ if (state.rateLimitArmed && turn.role === "assistant" && apiErrorKind === null) {
539
+ // 自動再開プロンプトを挟まず assistant が動いた(queued 発話の自動 dequeue 等)→ 武装解除。
540
+ state.rateLimitArmed = false;
541
+ }
542
+ let foldAutoContinue = false;
543
+ if (turn.role === "user" && turn.text.length > 0 && userLineKind(text) === "utterance") {
544
+ const lineAtMs = lineTimestampMs(line);
545
+ const inWindow = state.rateLimitArmedAtMs === null || !Number.isFinite(lineAtMs) ||
546
+ lineAtMs - state.rateLimitArmedAtMs <= AUTO_CONTINUE_WINDOW_MS;
547
+ if (turn.isMeta === true && state.rateLimitArmed && inWindow && !looksLikeOtherHarnessPrompt(turn.text)) {
548
+ // 自動再開の固定プロンプト(usage-limit-wait): 利用者の発話ではないので system 注記にする。
549
+ // 文言そのものは公開されていないため、live 行に限り本文の先頭を診断ログへ残し次回の精緻化に使う。
550
+ if (state.live) {
551
+ process.stderr.write(`[tailii-host tailer] auto-continue-prompt 検出(isMeta, rate_limit 後): ${turn.text.slice(0, 120).replaceAll("\n", " ")}\n`);
552
+ }
553
+ state.rateLimitArmed = false;
554
+ // 注記への書き換えはライフサイクル観測(turn_start)の後に行う(下)。
555
+ foldAutoContinue = true;
556
+ }
557
+ else if (turn.isMeta !== true || !inWindow) {
558
+ // 本物の発話が来た(利用者が制限後に別の指示を出した)/ 時間窓を過ぎた → 武装解除。
559
+ state.rateLimitArmed = false;
560
+ }
561
+ }
499
562
  // 中断確定マーカー: ターン終了の権威(Stop hook は中断で発火しない)。表示用の chat_output
500
563
  // とは別に、行の timestamp 付きで観測者へ通知する。timestamp 不明行は履歴/ライブを区別
501
564
  // できないため通知しない(誤って進行中ターンを終了扱いにしない側へ倒す)。
@@ -513,6 +576,11 @@ function* emitLine(line, state) {
513
576
  }
514
577
  }
515
578
  }
579
+ // 自動再開プロンプト(usage-limit-wait): 発話としての観測(turn_start)は上で済ませ、表示だけ注記へ畳む。
580
+ if (foldAutoContinue) {
581
+ turn.role = "system";
582
+ turn.text = AUTO_CONTINUE_NOTICE;
583
+ }
516
584
  for (const prompt of turn.questionPrompts) {
517
585
  if (state.activeQuestionIds.has(prompt.id))
518
586
  continue;
@@ -520,6 +588,16 @@ function* emitLine(line, state) {
520
588
  yield { type: "question_prompt", v: PROTOCOL_V1, id: prompt.id, questions: prompt.questions };
521
589
  }
522
590
  for (const activity of turn.toolActivities) {
591
+ // Artifact カードは tool_result に載る公開 URL(`Published … at https://claude.ai/…`)を後付けする
592
+ // ため保持する(artifact-card)。上限は Skill と共用の値で最古から破棄。
593
+ if (activity.name === "Artifact") {
594
+ state.pendingArtifactActivities.set(activity.id, activity);
595
+ if (state.pendingArtifactActivities.size > MAX_PENDING_SKILL_ACTIVITIES) {
596
+ const oldest = state.pendingArtifactActivities.keys().next().value;
597
+ if (oldest !== undefined)
598
+ state.pendingArtifactActivities.delete(oldest);
599
+ }
600
+ }
523
601
  // Skill ツールカードは注入されるスキル本文(後続の isMeta 行)を詳細へ後付けする
524
602
  // ため保持する。本文が届かないまま溜まらないよう上限で最古から破棄。
525
603
  if (activity.name === "Skill") {
@@ -545,6 +623,14 @@ function* emitLine(line, state) {
545
623
  yield { type: "tool_activity", v: PROTOCOL_V1, activity: enriched };
546
624
  }
547
625
  }
626
+ // Artifact の公開 URL が届いたら、該当カードを url 付きで再送する(iOS は同一 id を更新として扱う)。
627
+ for (const result of turn.artifactResults ?? []) {
628
+ const pending = state.pendingArtifactActivities.get(result.toolUseId);
629
+ if (pending === undefined)
630
+ continue;
631
+ state.pendingArtifactActivities.delete(result.toolUseId);
632
+ yield { type: "tool_activity", v: PROTOCOL_V1, activity: { ...pending, url: result.url } };
633
+ }
548
634
  for (const id of turn.toolResultIds) {
549
635
  if (!state.activeQuestionIds.has(id))
550
636
  continue;
@@ -718,6 +804,13 @@ export function extractTurn(line, ctx) {
718
804
  if (injectedSkill && typeof rec["sourceToolUseID"] === "string" && plainText.length > 0) {
719
805
  turn.skillInjection = { toolUseId: rec["sourceToolUseID"], text: plainText };
720
806
  }
807
+ if (role === "user") {
808
+ if (rec["isMeta"] === true)
809
+ turn.isMeta = true;
810
+ const artifactResults = extractArtifactResults(rawContent);
811
+ if (artifactResults.length > 0)
812
+ turn.artifactResults = artifactResults;
813
+ }
721
814
  return turn;
722
815
  }
723
816
  /** usage から現在コンテキスト相当のトークン数を合算する(未知フィールドは 0 扱い)。 */
@@ -970,6 +1063,37 @@ function makeToolActivity(id, name, input) {
970
1063
  activity.description = captionCap.value;
971
1064
  return activity;
972
1065
  }
1066
+ case "Artifact": {
1067
+ // Claude Code の Artifact ツール(`/design` のキャンバスや共有ページの公開, Week 34)。
1068
+ // input = { file_path?, title?, description?, favicon?, url?(更新時), action?(list/read 等) }。
1069
+ // 公開 URL は tool_result(`Published <path> at https://claude.ai/code/artifact/<id>`)から後付けする。
1070
+ const action = nonEmpty(str(input["action"]));
1071
+ const title = nonEmpty(str(input["title"]));
1072
+ const filePath = nonEmpty(str(input["file_path"]));
1073
+ const descriptionCap = cap(str(input["description"]), MAX_DESCRIPTION_CHARACTERS);
1074
+ const subject = title ?? (filePath !== null ? displayPath(filePath, name) : null);
1075
+ const label = action !== null && action !== "publish"
1076
+ ? `Artifact ${action}`
1077
+ : subject === null ? "Artifact を公開" : `Artifact を公開 ${subject}`;
1078
+ const activity = {
1079
+ id,
1080
+ name,
1081
+ label,
1082
+ commandTruncated: false,
1083
+ descriptionTruncated: descriptionCap.truncated,
1084
+ };
1085
+ if (filePath !== null)
1086
+ activity.file = filePath;
1087
+ if (descriptionCap.value !== null)
1088
+ activity.description = descriptionCap.value;
1089
+ // 公開(action 無し / publish)だけ URL を載せる。read / comments / upload_asset 等は入力に url を
1090
+ // 取るが「開く」導線にしない(カードは公開操作だけ)。
1091
+ const url = nonEmpty(str(input["url"]));
1092
+ if ((action === null || action === "publish") && url !== null && /^https:\/\/claude\.ai\//.test(url)) {
1093
+ activity.url = url;
1094
+ }
1095
+ return activity;
1096
+ }
973
1097
  case "TodoWrite": {
974
1098
  const todos = extractTodos(input["todos"]);
975
1099
  const activity = {
@@ -1151,6 +1275,42 @@ function decodeQuestionPromptQuestion(raw) {
1151
1275
  }
1152
1276
  return { header, question, multiSelect, options };
1153
1277
  }
1278
+ /** Artifact ツールの tool_result から公開 URL を拾う(`https://claude.ai/code/artifact/<id>` 等)。 */
1279
+ const ARTIFACT_URL_PATTERN = /https:\/\/claude\.ai\/(?:code\/)?artifact\/[A-Za-z0-9-]+/;
1280
+ function extractArtifactResults(content) {
1281
+ if (!Array.isArray(content))
1282
+ return [];
1283
+ const out = [];
1284
+ for (const block of content) {
1285
+ if (typeof block !== "object" || block === null)
1286
+ continue;
1287
+ const rec = block;
1288
+ if (rec["type"] !== "tool_result" || typeof rec["tool_use_id"] !== "string")
1289
+ continue;
1290
+ const text = toolResultPlainText(rec["content"]);
1291
+ if (!text.includes("claude.ai/"))
1292
+ continue;
1293
+ const match = ARTIFACT_URL_PATTERN.exec(text);
1294
+ if (match !== null)
1295
+ out.push({ toolUseId: rec["tool_use_id"], url: match[0] });
1296
+ }
1297
+ return out;
1298
+ }
1299
+ /** tool_result の content(文字列 / text ブロック配列)を平文へ。 */
1300
+ function toolResultPlainText(content) {
1301
+ if (typeof content === "string")
1302
+ return content;
1303
+ if (!Array.isArray(content))
1304
+ return "";
1305
+ return content
1306
+ .map((block) => {
1307
+ if (typeof block !== "object" || block === null)
1308
+ return "";
1309
+ const rec = block;
1310
+ return rec["type"] === "text" && typeof rec["text"] === "string" ? rec["text"] : "";
1311
+ })
1312
+ .join("\n");
1313
+ }
1154
1314
  function extractToolResultIds(content) {
1155
1315
  if (!Array.isArray(content))
1156
1316
  return [];