tailii-host 0.7.0 → 0.8.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 (57) hide show
  1. package/dist/chat/subagentTranscript.d.ts +7 -0
  2. package/dist/chat/subagentTranscript.js +44 -0
  3. package/dist/chat/subagentTranscript.js.map +1 -1
  4. package/dist/chat/transcriptTailer.d.ts +18 -0
  5. package/dist/chat/transcriptTailer.js +194 -10
  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/engine.js +6 -4
  11. package/dist/engine/engine.js.map +1 -1
  12. package/dist/engine/handlers/claudeModels.js +5 -1
  13. package/dist/engine/handlers/claudeModels.js.map +1 -1
  14. package/dist/engine/handlers/conversation.js +38 -0
  15. package/dist/engine/handlers/conversation.js.map +1 -1
  16. package/dist/engine/handlers/mode.js +9 -1
  17. package/dist/engine/handlers/mode.js.map +1 -1
  18. package/dist/engine/handlers/session.js +11 -2
  19. package/dist/engine/handlers/session.js.map +1 -1
  20. package/dist/hub/hubDaemon.js +8 -2
  21. package/dist/hub/hubDaemon.js.map +1 -1
  22. package/dist/hub/panePreviewPump.d.ts +8 -0
  23. package/dist/hub/panePreviewPump.js +15 -0
  24. package/dist/hub/panePreviewPump.js.map +1 -1
  25. package/dist/hub/questionInjection.d.ts +12 -0
  26. package/dist/hub/questionInjection.js +70 -3
  27. package/dist/hub/questionInjection.js.map +1 -1
  28. package/dist/hub/sessionHub.d.ts +35 -1
  29. package/dist/hub/sessionHub.js +145 -4
  30. package/dist/hub/sessionHub.js.map +1 -1
  31. package/dist/protocol/decode.d.ts +4 -0
  32. package/dist/protocol/decode.js +54 -4
  33. package/dist/protocol/decode.js.map +1 -1
  34. package/dist/protocol/encode.js +2 -0
  35. package/dist/protocol/encode.js.map +1 -1
  36. package/dist/protocol/messages.d.ts +45 -0
  37. package/dist/push/approvalPushNotifier.d.ts +19 -0
  38. package/dist/push/approvalPushNotifier.js +26 -2
  39. package/dist/push/approvalPushNotifier.js.map +1 -1
  40. package/dist/push/pushTypes.d.ts +4 -1
  41. package/dist/push/pushTypes.js +4 -2
  42. package/dist/push/pushTypes.js.map +1 -1
  43. package/dist/services/claudeModelCatalog.d.ts +14 -0
  44. package/dist/services/claudeModelCatalog.js +47 -0
  45. package/dist/services/claudeModelCatalog.js.map +1 -1
  46. package/dist/services/peerSessions.d.ts +36 -0
  47. package/dist/services/peerSessions.js +114 -0
  48. package/dist/services/peerSessions.js.map +1 -0
  49. package/dist/shared/clientBuild.d.ts +18 -0
  50. package/dist/shared/clientBuild.js +29 -2
  51. package/dist/shared/clientBuild.js.map +1 -1
  52. package/dist/shared/systemNotice.js +9 -0
  53. package/dist/shared/systemNotice.js.map +1 -1
  54. package/dist/shared/usageLimitWait.d.ts +18 -0
  55. package/dist/shared/usageLimitWait.js +72 -0
  56. package/dist/shared/usageLimitWait.js.map +1 -0
  57. 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 を境界にし、
@@ -61,8 +61,28 @@ export function readBackgroundOutput(file) {
61
61
  omitted: clamped ? 1 : 0,
62
62
  };
63
63
  }
64
+ /**
65
+ * fork サブエージェント(Claude Code 2.1.232〜, fork mode 既定 ON)の user 行から、harness の定型
66
+ * 指示 `<fork-boilerplate>…</fork-boilerplate>` を外して指示本文だけを返す(TESTABLE, fork-subagent)。
67
+ * 実測 2026-09-14 の形: boilerplate ブロック + 空行 + `Your directive: <本文>`。
68
+ * boilerplate を含まない本文は null(通常の user 行)。
69
+ */
70
+ export function presentForkDirective(raw) {
71
+ const open = raw.indexOf("<fork-boilerplate>");
72
+ if (open < 0)
73
+ return null;
74
+ const closeTag = "</fork-boilerplate>";
75
+ const close = raw.indexOf(closeTag, open);
76
+ const rest = (close < 0 ? "" : raw.slice(close + closeTag.length)).trim();
77
+ const directive = rest.replace(/^Your directive:\s*/u, "").trim();
78
+ return directive.length > 0 ? `⑂ 分岐(fork)への指示\n\n${directive}` : "⑂ 分岐(fork)への指示";
79
+ }
64
80
  export function parseSubagentTranscript(jsonl) {
65
81
  const all = [];
82
+ // fork の transcript は親履歴を複製せず、先頭に参照レコード `fork-context-ref` を置き、その直後に
83
+ // 親が fork を起こした Agent tool_use の写しが 1 行入る(実測 2026-09-14)。写しは fork 自身の
84
+ // 行動ではないのでタイムラインから外す。
85
+ let forkSpawnCopyPending = false;
66
86
  for (const line of jsonl.split(/\r?\n/)) {
67
87
  if (!line)
68
88
  continue;
@@ -76,12 +96,21 @@ export function parseSubagentTranscript(jsonl) {
76
96
  if (typeof value !== "object" || value === null || Array.isArray(value))
77
97
  continue;
78
98
  const record = value;
99
+ if (record["type"] === "fork-context-ref") {
100
+ forkSpawnCopyPending = true;
101
+ continue;
102
+ }
79
103
  const ts = parseTimestamp(record["timestamp"]);
80
104
  const message = object(record["message"]);
81
105
  const role = message?.["role"] ?? record["type"];
82
106
  if (role !== "user" && role !== "assistant")
83
107
  continue;
84
108
  const content = message?.["content"] ?? record["content"];
109
+ if (forkSpawnCopyPending) {
110
+ forkSpawnCopyPending = false;
111
+ if (role === "assistant" && isAgentSpawnOnlyContent(content))
112
+ continue;
113
+ }
85
114
  // harness 注入の <system-reminder>(user 行のリマインダ / assistant text 末尾の背景通知)は
86
115
  // 表示せず、user 行で届く通知封筒はコンパクトな 1 行に畳む。除去で空になった text は行にしない。
87
116
  const present = (raw) => {
@@ -93,6 +122,12 @@ export function parseSubagentTranscript(jsonl) {
93
122
  const status = /<status>([^<]*)<\/status>/u.exec(raw)?.[1]?.trim() ?? "";
94
123
  return status === "" ? "⚙️ バックグラウンドタスク通知" : `⚙️ バックグラウンドタスク通知(${status})`;
95
124
  }
125
+ // fork の定型指示(<fork-boilerplate>)は harness の注入。指示本文だけを見せる。
126
+ if (role === "user") {
127
+ const directive = presentForkDirective(raw);
128
+ if (directive !== null)
129
+ return directive;
130
+ }
96
131
  // 別セッションからのメッセージ封筒(<cross-session-message>)は、封筒と harness の
97
132
  // 前置き/後置きを外して「⇄ 送信元名 より」+ 本文へ転写する(規則は shared/crossSession.ts)。
98
133
  if (role === "user") {
@@ -316,4 +351,13 @@ function snippet(value, cap) {
316
351
  function truncate(value, cap) {
317
352
  return value.length <= cap ? value : `${value.slice(0, cap)}…`;
318
353
  }
354
+ /** content が「Agent ツール呼び出しのみ」か(fork 先頭の spawn 写し判定)。 */
355
+ function isAgentSpawnOnlyContent(content) {
356
+ if (!Array.isArray(content) || content.length === 0)
357
+ return false;
358
+ return content.every((block) => {
359
+ const rec = object(block);
360
+ return rec !== null && rec["type"] === "tool_use" && rec["name"] === "Agent";
361
+ });
362
+ }
319
363
  //# 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,48 @@ 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.startsWith("Another Claude session sent a message") ||
89
+ trimmed.startsWith("[Cross-session") ||
90
+ trimmed.startsWith("<system-reminder>") ||
91
+ trimmed.includes("<task-notification>"));
92
+ }
65
93
  /**
66
94
  * transcript 末尾を読み、最後のターン記録が「ターン終端マーカー」ならその行の timestamp(ms) を
67
95
  * 返す。終端マーカー = 利用者の中断確定(user 行)/ API エラー終端(`isApiErrorMessage` の
@@ -303,6 +331,10 @@ export class TranscriptTailer {
303
331
  noticeCtx: createSystemNoticeContext(),
304
332
  activeQuestionIds: new Set(),
305
333
  pendingSkillActivities: new Map(),
334
+ pendingArtifactActivities: new Map(),
335
+ rateLimitArmed: false,
336
+ rateLimitArmedAtMs: null,
337
+ live: false,
306
338
  onLifecycle: this.lifecycleObserver,
307
339
  };
308
340
  const start = Date.now();
@@ -317,6 +349,7 @@ export class TranscriptTailer {
317
349
  bytesRead = 0;
318
350
  }
319
351
  if (bytesRead === 0) {
352
+ state.live = true;
320
353
  // 初回 EOF = 既存内容の再生完了。マーカー有効時は完了シグナルを 1 通流す。
321
354
  if (this.emitReplayDoneMarker && !announcedReplayDone) {
322
355
  announcedReplayDone = true;
@@ -488,14 +521,43 @@ function* emitLine(line, state) {
488
521
  // 実機 2026-09-07: 「You've hit your session limit」で止まった会話が hub では処理中のまま残り、
489
522
  // 停止ボタン点灯・背景購読の継続(開き直しても履歴再生が走らず host 経路が配線されない)・
490
523
  // 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 });
524
+ const apiErrorKind = apiErrorAssistantKind(text);
525
+ if (apiErrorKind !== null) {
526
+ // 使用量制限(rate_limit)の後は、Claude Code が自動再開で流す isMeta の発話を注記へ畳む。
527
+ state.rateLimitArmed = apiErrorKind === "rate_limit";
528
+ const errorAtMs = lineTimestampMs(line);
529
+ state.rateLimitArmedAtMs = state.rateLimitArmed && Number.isFinite(errorAtMs) ? errorAtMs : null;
530
+ if (state.onLifecycle !== null && Number.isFinite(errorAtMs)) {
531
+ state.onLifecycle({ kind: "api_error", atMs: errorAtMs, errorKind: apiErrorKind });
532
+ }
495
533
  }
496
534
  const turn = extractTurn(text, state.noticeCtx);
497
535
  if (turn === null)
498
536
  return;
537
+ if (state.rateLimitArmed && turn.role === "assistant" && apiErrorKind === null) {
538
+ // 自動再開プロンプトを挟まず assistant が動いた(queued 発話の自動 dequeue 等)→ 武装解除。
539
+ state.rateLimitArmed = false;
540
+ }
541
+ let foldAutoContinue = false;
542
+ if (turn.role === "user" && turn.text.length > 0 && userLineKind(text) === "utterance") {
543
+ const lineAtMs = lineTimestampMs(line);
544
+ const inWindow = state.rateLimitArmedAtMs === null || !Number.isFinite(lineAtMs) ||
545
+ lineAtMs - state.rateLimitArmedAtMs <= AUTO_CONTINUE_WINDOW_MS;
546
+ if (turn.isMeta === true && state.rateLimitArmed && inWindow && !looksLikeOtherHarnessPrompt(turn.text)) {
547
+ // 自動再開の固定プロンプト(usage-limit-wait): 利用者の発話ではないので system 注記にする。
548
+ // 文言そのものは公開されていないため、live 行に限り本文の先頭を診断ログへ残し次回の精緻化に使う。
549
+ if (state.live) {
550
+ process.stderr.write(`[tailii-host tailer] auto-continue-prompt 検出(isMeta, rate_limit 後): ${turn.text.slice(0, 120).replaceAll("\n", " ")}\n`);
551
+ }
552
+ state.rateLimitArmed = false;
553
+ // 注記への書き換えはライフサイクル観測(turn_start)の後に行う(下)。
554
+ foldAutoContinue = true;
555
+ }
556
+ else if (turn.isMeta !== true || !inWindow) {
557
+ // 本物の発話が来た(利用者が制限後に別の指示を出した)/ 時間窓を過ぎた → 武装解除。
558
+ state.rateLimitArmed = false;
559
+ }
560
+ }
499
561
  // 中断確定マーカー: ターン終了の権威(Stop hook は中断で発火しない)。表示用の chat_output
500
562
  // とは別に、行の timestamp 付きで観測者へ通知する。timestamp 不明行は履歴/ライブを区別
501
563
  // できないため通知しない(誤って進行中ターンを終了扱いにしない側へ倒す)。
@@ -513,6 +575,11 @@ function* emitLine(line, state) {
513
575
  }
514
576
  }
515
577
  }
578
+ // 自動再開プロンプト(usage-limit-wait): 発話としての観測(turn_start)は上で済ませ、表示だけ注記へ畳む。
579
+ if (foldAutoContinue) {
580
+ turn.role = "system";
581
+ turn.text = AUTO_CONTINUE_NOTICE;
582
+ }
516
583
  for (const prompt of turn.questionPrompts) {
517
584
  if (state.activeQuestionIds.has(prompt.id))
518
585
  continue;
@@ -520,6 +587,16 @@ function* emitLine(line, state) {
520
587
  yield { type: "question_prompt", v: PROTOCOL_V1, id: prompt.id, questions: prompt.questions };
521
588
  }
522
589
  for (const activity of turn.toolActivities) {
590
+ // Artifact カードは tool_result に載る公開 URL(`Published … at https://claude.ai/…`)を後付けする
591
+ // ため保持する(artifact-card)。上限は Skill と共用の値で最古から破棄。
592
+ if (activity.name === "Artifact") {
593
+ state.pendingArtifactActivities.set(activity.id, activity);
594
+ if (state.pendingArtifactActivities.size > MAX_PENDING_SKILL_ACTIVITIES) {
595
+ const oldest = state.pendingArtifactActivities.keys().next().value;
596
+ if (oldest !== undefined)
597
+ state.pendingArtifactActivities.delete(oldest);
598
+ }
599
+ }
523
600
  // Skill ツールカードは注入されるスキル本文(後続の isMeta 行)を詳細へ後付けする
524
601
  // ため保持する。本文が届かないまま溜まらないよう上限で最古から破棄。
525
602
  if (activity.name === "Skill") {
@@ -545,6 +622,14 @@ function* emitLine(line, state) {
545
622
  yield { type: "tool_activity", v: PROTOCOL_V1, activity: enriched };
546
623
  }
547
624
  }
625
+ // Artifact の公開 URL が届いたら、該当カードを url 付きで再送する(iOS は同一 id を更新として扱う)。
626
+ for (const result of turn.artifactResults ?? []) {
627
+ const pending = state.pendingArtifactActivities.get(result.toolUseId);
628
+ if (pending === undefined)
629
+ continue;
630
+ state.pendingArtifactActivities.delete(result.toolUseId);
631
+ yield { type: "tool_activity", v: PROTOCOL_V1, activity: { ...pending, url: result.url } };
632
+ }
548
633
  for (const id of turn.toolResultIds) {
549
634
  if (!state.activeQuestionIds.has(id))
550
635
  continue;
@@ -718,6 +803,13 @@ export function extractTurn(line, ctx) {
718
803
  if (injectedSkill && typeof rec["sourceToolUseID"] === "string" && plainText.length > 0) {
719
804
  turn.skillInjection = { toolUseId: rec["sourceToolUseID"], text: plainText };
720
805
  }
806
+ if (role === "user") {
807
+ if (rec["isMeta"] === true)
808
+ turn.isMeta = true;
809
+ const artifactResults = extractArtifactResults(rawContent);
810
+ if (artifactResults.length > 0)
811
+ turn.artifactResults = artifactResults;
812
+ }
721
813
  return turn;
722
814
  }
723
815
  /** usage から現在コンテキスト相当のトークン数を合算する(未知フィールドは 0 扱い)。 */
@@ -750,6 +842,15 @@ function extractText(content) {
750
842
  }
751
843
  return parts.join("");
752
844
  }
845
+ /** 選択肢を選ばず Notes 欄だけで確定したときに Claude Code が入れる回答値。 */
846
+ const NOTES_ONLY_ANSWER = "(notes only)";
847
+ /** annotations[question] からメモ本文を取り出す(無ければ空文字)。 */
848
+ function extractQuestionNotes(value) {
849
+ if (typeof value !== "object" || value === null || Array.isArray(value))
850
+ return "";
851
+ const notes = value["notes"];
852
+ return typeof notes === "string" ? notes.trim() : "";
853
+ }
753
854
  /** AskUserQuestion の toolUseResult を、会話ログへ表示するユーザー回答文へ整形する。 */
754
855
  function extractQuestionAnswerText(value) {
755
856
  if (typeof value !== "object" || value === null || Array.isArray(value))
@@ -762,6 +863,10 @@ function extractQuestionAnswerText(value) {
762
863
  if (typeof rawAnswers !== "object" || rawAnswers === null || Array.isArray(rawAnswers))
763
864
  return "";
764
865
  const answers = rawAnswers;
866
+ const rawAnnotations = result["annotations"];
867
+ const annotations = typeof rawAnnotations === "object" && rawAnnotations !== null && !Array.isArray(rawAnnotations)
868
+ ? rawAnnotations
869
+ : {};
765
870
  const rows = [];
766
871
  for (const rawQuestion of rawQuestions) {
767
872
  if (typeof rawQuestion !== "object" || rawQuestion === null || Array.isArray(rawQuestion))
@@ -775,9 +880,19 @@ function extractQuestionAnswerText(value) {
775
880
  : Array.isArray(rawAnswer)
776
881
  ? rawAnswer.filter((item) => typeof item === "string").join("、").trim()
777
882
  : "";
778
- if (answer.length === 0)
883
+ // preview 付き設問には Other 行が無く、自由記述は Notes 欄が受ける。選択肢を選ばずに
884
+ // 確定すると回答値が `(notes only)` になるので、会話ログにはメモ本文の方を出す。
885
+ // メモが空なら回答値をそのまま出す("(notes only)" のまま出す方が、行ごと消えるよりまし)。
886
+ const notes = extractQuestionNotes(annotations[question]);
887
+ let shown = answer;
888
+ if (notes.length > 0) {
889
+ shown = answer === NOTES_ONLY_ANSWER || answer.length === 0
890
+ ? notes
891
+ : `${answer}(メモ: ${notes})`;
892
+ }
893
+ if (shown.length === 0)
779
894
  continue;
780
- rows.push(`・${question.trim()} → ${answer}`);
895
+ rows.push(`・${question.trim()} → ${shown}`);
781
896
  }
782
897
  return rows.length > 0 ? `回答:\n${rows.join("\n")}` : "";
783
898
  }
@@ -947,6 +1062,37 @@ function makeToolActivity(id, name, input) {
947
1062
  activity.description = captionCap.value;
948
1063
  return activity;
949
1064
  }
1065
+ case "Artifact": {
1066
+ // Claude Code の Artifact ツール(`/design` のキャンバスや共有ページの公開, Week 34)。
1067
+ // input = { file_path?, title?, description?, favicon?, url?(更新時), action?(list/read 等) }。
1068
+ // 公開 URL は tool_result(`Published <path> at https://claude.ai/code/artifact/<id>`)から後付けする。
1069
+ const action = nonEmpty(str(input["action"]));
1070
+ const title = nonEmpty(str(input["title"]));
1071
+ const filePath = nonEmpty(str(input["file_path"]));
1072
+ const descriptionCap = cap(str(input["description"]), MAX_DESCRIPTION_CHARACTERS);
1073
+ const subject = title ?? (filePath !== null ? displayPath(filePath, name) : null);
1074
+ const label = action !== null && action !== "publish"
1075
+ ? `Artifact ${action}`
1076
+ : subject === null ? "Artifact を公開" : `Artifact を公開 ${subject}`;
1077
+ const activity = {
1078
+ id,
1079
+ name,
1080
+ label,
1081
+ commandTruncated: false,
1082
+ descriptionTruncated: descriptionCap.truncated,
1083
+ };
1084
+ if (filePath !== null)
1085
+ activity.file = filePath;
1086
+ if (descriptionCap.value !== null)
1087
+ activity.description = descriptionCap.value;
1088
+ // 公開(action 無し / publish)だけ URL を載せる。read / comments / upload_asset 等は入力に url を
1089
+ // 取るが「開く」導線にしない(カードは公開操作だけ)。
1090
+ const url = nonEmpty(str(input["url"]));
1091
+ if ((action === null || action === "publish") && url !== null && /^https:\/\/claude\.ai\//.test(url)) {
1092
+ activity.url = url;
1093
+ }
1094
+ return activity;
1095
+ }
950
1096
  case "TodoWrite": {
951
1097
  const todos = extractTodos(input["todos"]);
952
1098
  const activity = {
@@ -1118,14 +1264,52 @@ function decodeQuestionPromptQuestion(raw) {
1118
1264
  const label = rec["label"];
1119
1265
  if (typeof label !== "string")
1120
1266
  continue;
1267
+ const preview = rec["preview"];
1121
1268
  options.push({
1122
1269
  label,
1123
1270
  description: typeof rec["description"] === "string" ? rec["description"] : "",
1271
+ ...(typeof preview === "string" && preview.length > 0 ? { preview } : {}),
1124
1272
  });
1125
1273
  }
1126
1274
  }
1127
1275
  return { header, question, multiSelect, options };
1128
1276
  }
1277
+ /** Artifact ツールの tool_result から公開 URL を拾う(`https://claude.ai/code/artifact/<id>` 等)。 */
1278
+ const ARTIFACT_URL_PATTERN = /https:\/\/claude\.ai\/(?:code\/)?artifact\/[A-Za-z0-9-]+/;
1279
+ function extractArtifactResults(content) {
1280
+ if (!Array.isArray(content))
1281
+ return [];
1282
+ const out = [];
1283
+ for (const block of content) {
1284
+ if (typeof block !== "object" || block === null)
1285
+ continue;
1286
+ const rec = block;
1287
+ if (rec["type"] !== "tool_result" || typeof rec["tool_use_id"] !== "string")
1288
+ continue;
1289
+ const text = toolResultPlainText(rec["content"]);
1290
+ if (!text.includes("claude.ai/"))
1291
+ continue;
1292
+ const match = ARTIFACT_URL_PATTERN.exec(text);
1293
+ if (match !== null)
1294
+ out.push({ toolUseId: rec["tool_use_id"], url: match[0] });
1295
+ }
1296
+ return out;
1297
+ }
1298
+ /** tool_result の content(文字列 / text ブロック配列)を平文へ。 */
1299
+ function toolResultPlainText(content) {
1300
+ if (typeof content === "string")
1301
+ return content;
1302
+ if (!Array.isArray(content))
1303
+ return "";
1304
+ return content
1305
+ .map((block) => {
1306
+ if (typeof block !== "object" || block === null)
1307
+ return "";
1308
+ const rec = block;
1309
+ return rec["type"] === "text" && typeof rec["text"] === "string" ? rec["text"] : "";
1310
+ })
1311
+ .join("\n");
1312
+ }
1129
1313
  function extractToolResultIds(content) {
1130
1314
  if (!Array.isArray(content))
1131
1315
  return [];